Timing Attack

Timing Attack

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é.

Sommaire

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.

Plus de limitations

La technique consiste à surveiller les temps de traitement : 1 temps pour un bit a zéro, 2 temps pour un bit à 1. Si vous êtes rendu là il est alors trivial de récupérer le registre qui contient ou pointe sur la clef.Pas besoin de surveiller les traitements L'attaque ne peut avoir lieu qu’au moment du chiffrage quand l’utilisateur a rentré sa clef et non pas tranquillement chez l’attaquant L’attaque permet simplement de connaitre la clef utilisée : pas d’en déduire la seconde ou de casser le RSA. L’intérêt est très limité

La défense

Exemple du RSA (mais aussi BBS...) Quand vous chiffrez avec le RSA le nombre de calculs de base est le nombre de bits de la clef plus la moitie de ce nombre, en considérant une répartition égale des bits à 1 et 0 dans celle ci. Pour une clef de 1024 bits vous ferez donc 1024+512=1536 calculs Le calcul de base comportant une multiplication et un modulo le temps de chiffrage se compte en milliardième de seconde L’idée est donc de faire durer le traitement le même temps que le bit soit à 1 ou a 0. Nous effectuerons alors 1024+1024= 2048 calcul au lieu de 1536. Le temps se compte toujours en milliardième de secondes donc négligeable. Le but est de neutraliser, dans certains cas le deuxième calcul. Ici une multiplication par 1.

P:=clef 
tant que (clef ≠ 0) faire
    C := C*C'
    si impair clef 
    C := C *P
    Décaler droite clef
   fait
renvoyer (C)

On se rend compte que le temps est bien le double Maintenant on va modifier le test ou du moins sa conséquence.

P:=clef
r:=clef 
tant que (clef ≠ 0) faire
    C := C*C'
    si impair clef
    P := 1
    C := C *P
    P:=R
    Décaler droite clef
   fait
renvoyer (C)

On fera la deuxième multiplication à chaque tour mais quand P sera égal à 1 la multiplication ne modifiera pas C. Le P=R est ‘gratuit’ il est effectue dans la latence de la multiplication (Comme le test de parité sur Clef, voir le décalage)! Bonne chance aux chronométreurs ! L’attaque temporelle est un bel exercice intellectuel mais ne s'y font prendre que ceux qui le veulent bien

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 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). 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 implantation du calcul de l'exponentiation modulaire. L'algorithme consiste à calculer R = yx mod n, avec n public, et y obtenu par espionnage (ou une quelconque autre manière). Le but de l'attaquant est de trouver la valeur de x (la clé secrète).

Pour que cette attaque se déroule correctement, la 'victime' doit calculer yx mod n pour plusieurs valeurs de y, où y, n et le temps de calcul (à un grain suffisamment fin) sont connus de l'attaquant.

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

Soit s0 = 1
Pour k allant de 0 à w − 1 faire
Si le k-ème bit de x vaut 1
Alors R_k = (s_k \times y) mod n
Sinon Rk = Sk
S_{k+1} = R^2_{k} mod n
FinPour
Renvoyer (Rw − 1)

On remarque que selon la valeur du bit, on calcule soit (S_k \times y) mod n soit rien (en fait, on effectue l'affectation Rk = Sk, 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 0 \ldots b-1 de l'exposant.

Liens externes

  • Portail de la cryptologie Portail de la cryptologie
Ce document provient de « Attaque temporelle ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Timing Attack de Wikipédia en français (auteurs)

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • Timing attack — In cryptography, a timing attack is a side channel attack in which the attacker attempts to compromise a cryptosystem by analyzing the time taken to execute cryptographic algorithms. The attack exploits the fact that every operation in a computer …   Wikipedia

  • Attack on Pearl Harbor — Part of the Pacific Theater of World War II …   Wikipedia

  • Attack — is a word meaning to strike out at an opponent, among other definitions.It can also refer to: *Angle of attack, a term used in aerodynamics * The Attack (Animorphs), the twenty sixth book in the Animorphs series * Attack! (board game), a 2003… …   Wikipedia

  • Side-channel attack — In cryptography, a side channel attack is any attack based on information gained from the physical implementation of a cryptosystem, rather than brute force or theoretical weaknesses in the algorithms (compare cryptanalysis). For example, timing… …   Wikipedia

  • Side channel attack — Die von dem US amerikanischen Kryptologen Paul C. Kocher 1996 bekannt gemachte Seitenkanalattacke (engl. side channel attack) bezeichnet eine kryptoanalytische Methode, die die physikalische Implementierung eines Kryptosystems in einem Gerät… …   Deutsch Wikipedia

  • Chosen-plaintext attack — Die Kryptoanalyse (in neueren Publikationen auch: Kryptanalyse) bezeichnet im ursprünglichen Sinne das Studium von Methoden und Techniken, um Informationen aus verschlüsselten Texten zu gewinnen. Diese Informationen können sowohl der verwendete… …   Deutsch Wikipedia

  • attack timing — The predicted or actual time of bursts, impacts, or arrival of weapons at their intended targets …   Military dictionary

  • Strike (attack) — A strike is an attack with an inanimate object, such as a weapon, or with a part of the human body intended to cause an effect upon an opponent or to simply cause harm to an opponent. There a many different varieties of strikes. An attack with… …   Wikipedia

  • Bad Timing (Farscape episode) — Infobox Television episode Title =Bad Timing Series =Farscape Caption =John and Aeryn watch as an enemy craft approaches Season =4 Episode =22 Airdate =March 21, 2003 Production =| Writer =David Kemper Director =Andrew Prowse Guests =Raelee Hill… …   Wikipedia

  • Events leading to the attack on Pearl Harbor — More than a decade s worth of events leading to the attack on Pearl Harbor occurred prior to the actual attack. War between Japan and the United States had been a possibility that each nation s militaries planned for since the 1920s, though real… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”