J'ai une tâche impossible de déchiffrer les paquets de données cryptés AES / CBC envoyés à partir d'un client. J'ai fait des tonnes de recherches menant à moi de croire que le cryptage n'est pas sûr si le IV est statique. Pour cette tâche spécifiquement, l'IV est toujours défini sur le plan statique à 0. Y a-t-il une manière que cela puisse être fait? P>
EDIT: strong> Le texte brut est des extraits du script de hameau. Le client les envoie dans des morceaux aléatoires afin que la longueur ne soit même cohérente. Les paquets peuvent éventuellement répéter mais je ne suis pas sûr à 100%. P>
4 Réponses :
pas sans la clé. p>
Spécifiquement, en supposant qu'il n'y ait pas de rembourrage, la vulnérabilité qui se produit avec l'utilisation de la même IV à chaque fois est que si vous commencez à chiffrer les mêmes données que vous avez cryptées la dernière fois, vous obtiendrez la même chaîne cryptée des deux fois. Cela permet aux attaquants de déduire quelque chose sur le contenu du message, bien que cela ne les aide pas à le déchiffrer. P>
Zero IV peut toutefois fuir certaines informations sur les premiers octets de données, si elles diffèrent, cela ne devrait pas être un problème (cependant, il n'est pas recommandé d'utiliser). Par exemple, OpenPGP utilise zéro IV dans certains cas. P>
Juste pour la notation, le terme "déchiffrement" désigne l'opération normale à l'aide de la clé. Si vous n'avez pas la clé, cela s'appelle normalement «rupture», «craquelation» ou «cryptanalyse». P>
CBC avec un vecteur d'initialisation fixe a la propriété que les messages (chiffrés avec la même clé) avec des blocs de départ identiques afficheront également des blocs de départ identiques dans le cipherext ... et cela concerne la seule faiblesse. Donc, si vous pouvez obtenir votre victime de crypter une hypothèse de deviner pour votre message (avec la même clé), vous pouvez comparer son CIPHERText sur celui utilisé dans le message que vous utilisez. P>
Ceci est plus facile lorsque le message est de format fixe et sans espoir si le message contient suffisamment de données aléatoires avant la partie intéressante (il s'agit de «vecteur d'initialisation de l'homme pauvre»). P>
Autres faiblesses de CBC qui dépendent des attaques choisies de CIPHERText où vous avez choisi le vecteur d'initialisation et observe une certaine validation du déchiffrement de celui-ci peut également être applicable (vous définiriez le premier bloc CIPHERText et observeriez si le deuxième bloc a un remplissage valide). < / p>
Le principal problème avec un IV non aléatoire est que deux blocs initiaux identiques cryptés avec la même clé produiront la même sortie. Donc, compte tenu de votre description des pièces de Hamlet, sachant que vous utilisez le même IV à plusieurs reprises, je ferais ce qui suit: p>
Je ferais la même chose avec plusieurs autres phrases bien connues. Il s'agit d'une opération que je peux faire massivement parallèlement avant même de capturer votre fichier et votre cache dans une base de données. Le terme général de cette approche est un table arc-en-ciel . P>
Mon travail devient beaucoup plus facile si j'arrive si je connais les 16 premiers octets de vos messages (tels que s'ils sont des messages électroniques à une personne connue, ou des demandes HTTP avec des en-têtes connus ou similaires). P >
Mais si vous utilisez des touches aléatoires (ou un kdf approprié comme PBKDF2)? Eh bien, disons que j'ai quelques messages de votre part, et au moins certains d'entre eux ont les mêmes 16 premiers octets (encore une fois, les en-têtes du protocole m'aident beaucoup ici). Eh bien, la première étape est que je sais que ces messages ont les mêmes 16 premiers octets. C'est des informations assez utiles. Et maintenant j'ai un Crib pour attaquer vos messages. P>
La réutilisation d'une clé IV + dans CBC ne détruisait pas complètement sa sécurité (en réutilisant une clé nonce + en mode CTR). Mais cela donne à l'attaquant beaucoup d'outils utiles pour simplifier l'attaque. P>
Je ne dis pas que celles-ci vous permettraient de déchiffrer votre ciIphertext spécifique dans une courte période de temps. Mais ils dégradent tous fortement la prétendue cryptographie de l'AES. P>
Y a-t-il des motifs / répétition connus dans le clairexuel? Je ne connais pas une approche pour un texte clair complètement aléatoire.