Skip to main content

constant-time-testing

constant-time-testing

Catalogue généré le 2026-05-11

En une phrase

Constant-Le constant-time testing detectsvérifie timingqu'une sideopération channelscryptographique inmet cryptographictoujours code.exactement le même temps à s'exécuter — sinon un attaquant peut deviner ta clé secrète juste en chronométrant le serveur.

Quand l'utiliser

  • UseAuditer whenune auditingimplémentation de crypto implementationsmaison for(RSA, timingAES, vulnerabilities.ECDSA…).
Vérifier qu'une fonction de comparaison de signature ne fuit pas d'info par le temps. Auditer une bibliothèque crypto avant déploiement. Quand tu fais de la crypto post-quantique (Kyber, Dilithium…). Vérifier qu'une fonction compare_password ne révèle pas la longueur du bon mot de passe.

Comment l'invoquer

  • Slash command : /constant-time-testing (si exposé dans ton CLI)
  • Phrases déclencheurs (texte) : voir"timing laside descriptionchannel", complète"constant-time ci-dessouscrypto", "timing attack"
  • Auto-invocation : surSur demande explicite

Description complètedétaillée

Constant-Imagine que tu vérifies un mot de passe. Si ton code dit "non, faux !" plus vite quand la première lettre est fausse que quand les 10 premières lettres sont bonnes mais la 11e fausse, alors un attaquant peut deviner ton mot de passe lettre par lettre en chronométrant. C'est une "attaque par canal auxiliaire temporel" (timing attack). Elle existe depuis 1996 (Kocher) et a déjà cassé en pratique RSA, OpenSSL et même de la crypto post-quantique récente.

Le constant-time testing detectsconsiste timingà sidevérifier channelsque inton cryptographic code. Use when auditingcode crypto implementationsmet fortoujours timingexactement vulnerabilities.le même temps, quel que soit le secret qu'il traite. Concrètement, il faut s'assurer que les branchements (if/else) et les accès mémoire ne dépendent pas du secret. Ça paraît simple, mais le compilateur peut réintroduire des branches sans prévenir, et les processeurs modernes ont des optimisations (caches, prédictions) qui créent des micro-différences mesurables, même à distance sur un réseau.

Cette skill te guide dans l'audit : repérer les patterns dangereux (early returns sur secret, accès tableau indexé par un secret, divisions/multiplications variables), utiliser des outils comme dudect, ctgrind ou timecop pour mesurer expérimentalement le temps, et appliquer des patterns "constant-time" reconnus. Indispensable pour toute crypto destinée à un usage réel.

Pour aller plus loin

Constant-Time

Pour Testingles

Timingexemples attacksconcrets, exploitoptions variationsde inconfiguration executionet timepatterns to extract secret information from cryptographic implementations. Unlike cryptanalysis that targets theoretical weaknesses, timing attacks leverage implementation flaws - and they can affect any cryptographic code.

Background

Timing attacks were introduced by Kocher in 1996. Since then, researchers have demonstrated practical attacks on RSA (Schindler), OpenSSL (Brumley and Boneh), AES implementations, and even post-quantum algorithms like Kyber.

Key Concepts

Concept Description Constant-time Code path and memory accesses independent of secret data Timing leakage Observable execution time differences correlated with secrets

(extrait —avancés, voir le SKILL.md complet pour la suite)original.

Source

  • Plugin : trailofbits/testing-handbook-skills
  • Nom interne : constant-time-testing
  • Fichier : /home/thymon/.claude/plugins/cache/trailofbits/testing-handbook-skills/1.0.1/skills/constant-time-testing/SKILL.md