AccueilđŸ‡«đŸ‡·Chercher

Attaque temporelle

En cryptanalyse, une attaque temporelle consiste Ă  estimer et analyser le temps mis pour effectuer certaines opĂ©rations cryptographiques dans le but de dĂ©couvrir des informations secrĂštes. Certaines opĂ©rations peuvent prendre plus de temps que d'autres et l'Ă©tude de ces informations temporelles peut ĂȘtre prĂ©cieuse pour le cryptanalyste. La mise en Ɠuvre de ce genre d'attaque est intimement liĂ©e au matĂ©riel ou au logiciel attaquĂ©.

Limitations

Des attaques temporelles peuvent aussi se faire à distance, via un réseau. L'observation des délais dans un systÚme est en général soumise à des perturbations aléatoires. Ceci est d'autant plus vrai que l'observation se fait via un réseau. La plupart des attaques temporelles demandent que l'adversaire connaisse les détails de l'implémentation. Cependant, ces attaques peuvent aussi servir à identifier les algorithmes employés et faire de l'ingénierie inverse.

Attaques sur la cryptographie asymétrique

Les algorithmes d'exponentation modulaire sont coûteux, le temps d'exécution dépend linéairement du nombre de bits à '1' dans la clé. Si connaßtre le nombre de '1' n'est pas une information toujours suffisante pour trouver la clé, le recoupement statistique entre plusieurs chiffrements avec cette clé peut offrir de nouvelles possibilités au cryptanalyste.

Attaques sur un réseau

En 2003, Boneh et Brumley , travaillant tous les deux à Stanford, ont démontré une attaque pratique contre des serveurs SSL. Leur cryptanalyse est basée sur des vulnérabilités découvertes dans les implémentations du théorÚme des restes chinois. L'attaque fut toutefois menée à travers un réseau de taille limitée mais elle montrait que ce type d'attaque était sérieuse et praticable en l'espace de quelques heures. Les implémentations furent améliorées pour limiter les corrélations entre la clé et le temps de chiffrement.

Attaque sur les chiffrements par bloc

Les chiffrements par bloc sont en gĂ©nĂ©ral moins sensibles aux attaques temporelles, la corrĂ©lation entre la clĂ© et les opĂ©rations Ă©tant plus limitĂ©es, mais celles-ci existent quand mĂȘme. La plupart reposent sur les temps mis pour accĂ©der aux diffĂ©rentes tables (par exemple les S-Boxes).

En 2005, Daniel J. Bernstein a démontré qu'une attaque contre une implémentation vulnérable d'AES était possible à partir du cache des processeurs modernes des PC (AMD ou Intel)[1]. Bernstein reproche au NIST d'avoir négligé ces problÚmes lors du concours AES, il ajoute que le NIST s'est trompé en partant du principe que le temps d'accÚs aux tables était constant.

Exemple d'attaque

En 1996, Paul Kocher exhibe une faille dans une implémentation du calcul de l'exponentiation modulaire[2]. L'algorithme consiste à calculer mod , avec public, et obtenu par espionnage (ou une quelconque autre maniÚre). Le but de l'attaquant est de trouver la valeur de (la clé secrÚte).

Pour que cette attaque se dĂ©roule correctement, la 'victime' doit calculer mod pour plusieurs valeurs de , oĂč , et le temps de calcul (Ă  un grain suffisamment fin) sont connus de l'attaquant.

Voici l'algorithme, avec le nombre de bits de longueur de .

Soit
Pour allant de Ă  faire
Si le -Ăšme bit de vaut 1
Alors mod
Sinon
mod
FinPour
Renvoyer ()

On remarque que selon la valeur du bit, on calcule soit mod soit rien (en fait, on effectue l'affectation , mais en termes de temps de calcul c'est négligeable). Donc si on peut observer suffisamment finement le temps d'exécution de l'algorithme, on peut déduire la valeur du bit en fonction du temps de calcul, et ainsi recouvrer totalement le secret en procédant par itération sur les bits de l'exposant.

DĂ©fense

Cette attaque peut ĂȘtre contrĂ©e en modifiant l’implĂ©mentation pour que tous les calculs soient effectuĂ©s d’office, quels que soient les bits de la clĂ© :

Soit
Pour allant de Ă  faire
Soit mod
Si le -Ăšme bit de vaut 1
Alors
Sinon
mod
FinPour
Renvoyer ()

Cette fois-ci, le temps de calcul ne dĂ©pend aucunement de la valeur de la clĂ© (seule la source de l’affectation Ă  change), l’attaque temporelle devient donc impossible sur ce fragment de code. Cela rend certes plus long le temps de calcul total, mais, dans le contexte qui nous intĂ©resse, l’impĂ©ratif de sĂ©curitĂ© est incommensurablement plus important que celui de la vitesse.

Notes et références

Annexes

Bibliographie

  • [Kocher 1996] (en) Paul Carl Kocher, « Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems », Advances in Cryptology, Springer, lecture Notes in Computer Science, vol. 1109 « CRYPTO '96, 16th Annual International Cryptology Conference »,‎ , p. 104–113 (ISBN 978-3-540-61512-5, ISSN 0302-9743, DOI 10.1007/3-540-68697-5_9, lire en ligne [PDF]).

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.