Timing Attack — Attaque par canal temporel

Side-channel Avancé

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.