Timing Attack — Attaque par canal temporel
★★★★★
Principe
Une attaque temporelle exploite les variations de temps d'exécution pour extraire un secret. Exemple classique : une comparaison de chaîne qui s'arrête au premier octet différent révèle, par le temps, combien d'octets initiaux sont corrects.
Exemple vulnérable
# Comparaison non constante (VULNÉRABLE)
if token == secret: # s arrête au 1er octet faux
...
# -> mesurer le temps permet de deviner octet par octet
# Sûr : comparaison à temps constant
import hmac
hmac.compare_digest(token, secret) Portée
Concerne la vérification de MAC/token, RSA (exposant), AES (accès cache). Défense : comparaisons à temps constant, implémentations "constant-time", et blinding pour les opérations RSA/ECC.