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
UseAuditerwhenuneauditingimplémentation de cryptoimplementationsmaisonfor(RSA,timingAES,vulnerabilities.ECDSA…).
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"timinglasidedescriptionchannel",complète"constant-timeci-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
(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