Attaques par chiffrement de flux - Stream cipher attacks
Les chiffrements de flux , où les bits de texte en clair sont combinés avec un flux de bits de chiffrement par une opération ou exclusif ( xor ), peuvent être très sécurisés s'ils sont utilisés correctement. Cependant, ils sont vulnérables aux attaques si certaines précautions ne sont pas respectées :
- les clés ne doivent jamais être utilisées deux fois
- un décryptage valide ne doit jamais être invoqué pour indiquer l'authenticité
Attaque de clé réutilisée
Les chiffrements de flux sont vulnérables aux attaques si la même clé est utilisée deux fois (profondeur de deux) ou plus.
Supposons que nous envoyions des messages A et B de même longueur, tous deux chiffrés à l'aide de la même clé, K . Le chiffrement de flux produit une chaîne de bits C(K) de la même longueur que les messages. Les versions cryptées des messages sont alors :
- E(A) = A xou C
- E(B) = B xou C
où xor est exécuté bit par bit.
Supposons qu'un adversaire ait intercepté E(A) et E(B) . Il peut facilement calculer :
- E(A) xou E(B)
Cependant, xor est commutatif et a la propriété que X xor X = 0 (auto-inverse) donc :
- E(A) xor E(B) = (A xor C) xor (B xor C) = A xor B xor C xor C = A xor B
Si un message est plus long que l'autre, notre adversaire tronque simplement le message le plus long à la taille du plus court et son attaque ne révélera que cette partie du message le plus long. En d'autres termes, si quelqu'un intercepte deux messages chiffrés avec la même clé, il peut récupérer A xou B , qui est une forme de chiffrement de clé en cours d' exécution . Même si aucun message n'est connu, tant que les deux messages sont dans un langage naturel, un tel chiffre peut souvent être brisé par des méthodes papier-crayon. Pendant la Seconde Guerre mondiale , le cryptanalyste britannique John Tiltman a accompli cela avec le chiffrement de Lorenz (surnommé « Tunny »). Avec un ordinateur personnel moyen , de tels chiffrements peuvent généralement être brisés en quelques minutes. Si un message est connu, la solution est triviale.
Une autre situation où la récupération est triviale est si les mesures de sécurité du flux de trafic ont chaque station envoyant un flux continu de bits de chiffrement, avec des caractères nuls (par exemple LTRS dans Baudot ) étant envoyés lorsqu'il n'y a pas de trafic réel. Ceci est courant dans les communications militaires. Dans ce cas, et si le canal de transmission n'est pas complètement chargé, il y a de fortes chances que l'un des flux de texte chiffré soit simplement nul. La NSA fait de grands efforts pour empêcher les clés d'être utilisées deux fois. Les systèmes de cryptage des années 1960 comprenaient souvent un lecteur de cartes perforées pour le chargement des clés. Le mécanisme couperait automatiquement la carte en deux lorsque la carte était retirée, empêchant sa réutilisation.
Une façon d'éviter ce problème consiste à utiliser un vecteur d'initialisation (IV), envoyé en clair, qui est combiné à une clé principale secrète pour créer une clé à usage unique pour le chiffrement de flux. Cela se fait dans plusieurs systèmes courants qui utilisent le chiffrement de flux populaire RC4 , notamment Wired Equivalent Privacy (WEP), Wi-Fi Protected Access (WPA) et Ciphersaber . L'un des nombreux problèmes du WEP était que son IV était trop court, 24 bits. Cela signifiait qu'il y avait une forte probabilité que le même IV soit utilisé deux fois si plus de quelques milliers de paquets étaient envoyés avec la même clé principale (voir attaque anniversaire ), soumettant les paquets avec IV dupliqué à l'attaque de réutilisation de clé. Ce problème a été résolu dans WPA en changeant fréquemment la clé "maître".
Attaque par retournement de bits
Supposons qu'un adversaire connaisse le contenu exact de tout ou partie de l'un de nos messages. Dans le cadre d'une attaque homme du milieu ou d' une attaque par rejeu , il peut modifier le contenu du message sans en connaître la clé, K . Disons, par exemple, qu'il sait qu'une partie du message, disons un transfert de fonds électronique, contient la chaîne ASCII "$1000,00" . Il peut changer cela en "$9500.00" en XORant cette partie du texte chiffré avec la chaîne : "$1000,00" xor "$9500.00" . Pour voir comment cela fonctionne, considérez que le texte chiffré que nous envoyons est juste C(K) xor "$1000,00" . Le nouveau message que l'adversaire crée est :
- (C(K) xor "$1000,00") xor ("$1000,00" xor "$9500.00") = C(K) xor "$1000,00" xor "$1000,00" xor "$9500.00" = C(K) xor "$9500.00"
Rappelez-vous qu'une chaîne XOR avec elle-même produit tous des zéros et qu'une chaîne de zéros XOR avec une autre chaîne laisse cette chaîne intacte. Le résultat, C(K) xor "$9500.00", est ce que notre texte chiffré aurait été si $9500 étaient le montant correct.
Les attaques par retournement de bits peuvent être évitées en incluant un code d'authentification de message pour augmenter la probabilité qu'une falsification soit détectée.
Attaque choisie IV
Les chiffrements de flux combinent une clé secrète avec un vecteur d'initialisation convenu (IV) pour produire une séquence pseudo-aléatoire qui de temps en temps est resynchronisée. Une attaque "Chosen IV" repose sur la recherche d'IV particuliers qui, pris ensemble, révéleront probablement des informations sur la clé secrète. Généralement, plusieurs paires de IV sont choisies et les différences dans les flux de clés générés sont ensuite analysées statistiquement pour une corrélation linéaire et/ou une relation algébrique booléenne (voir aussi Cryptanalyse différentielle ). Si le choix de valeurs particulières du vecteur d'initialisation expose un motif non aléatoire dans la séquence générée, alors cette attaque calcule certains bits et raccourcit ainsi la longueur de clé effective. Un symptôme de l'attaque serait une resynchronisation fréquente. Les chiffrements de flux modernes incluent des étapes pour mélanger adéquatement la clé secrète avec un vecteur d'initialisation, généralement en effectuant de nombreux tours initiaux.
Les références
Liens externes
- Sécurité de l'algorithme WEP
- "Attacks in Stream Ciphers: A Survey" - un bref aperçu 2014 des différentes attaques de chiffrement de flux
- "Attacks on Stream Ciphers: A Perspective" - diaporamas de 2011