Les fichiers ZIP cryptés peuvent avoir deux mots de passe corrects

Arseniy Sharoglazov, chercheur en cybersécurité chez Positive Technologies, a récemment partagé une expérience simple sur les plateformes sociales et a souligné qu'il peut y avoir deux mots de passe corrects dans un fichier ZIP crypté, et que les deux peuvent extraire le même résultat.

" Créez un ZIP : 7z a http://x.zip /etc/passwd -mem=AES256 -p
utilisez ce mot de passe : Nev1r-G0nna-G2ve-Y8u-Up-N5v1r-G1nna-Let-Y4u-D1wn-N8v4r-G5nna -D0sert-You

Extrayez-le : 7z e http://x.zip
utilisez ce mot de passe : pkH8a0AqNbHcdw8GrmSp

La magie!"

Sharoglazov a créé un fichier ZIP protégé par mot de passe appelé x.zip, et le mot de passe choisi était un jeu de mots sur la chanson anglaise à succès de 1987 :

Nev1r-G0nna-G2ve-Y8u-Up-N5v1r-G1nna-Let-Y4u-D1wn-N8v4r-G5nna-D0sert-You

Mais les résultats expérimentaux montrent que lorsqu'il utilise un mot de passe complètement différent (pkH8a0AqNbHcdw8GrmSp) pour extraire x.zip, il ne recevra aucun message d'erreur.

 

En réponse, BleepingComputer a réussi à reproduire l'expérience en utilisant un programme ZIP différent. Le site utilise p7zip (l'équivalent macOS de 7-Zip) et un autre outil ZIP appelé Keka, et comme Sharoglazov a été créé avec un long mot de passe et le mode de cryptage AES-256 activé. Les résultats ont montré que bien que le ZIP ait été chiffré avec un chiffrement plus long, l'archive a été extraite avec succès avec l'un ou l'autre chiffrement.

Certains internautes  ont discuté de l'expérience sous  la dynamique de Sharoglazov . Un utilisateur dont l'ID est Unblvr a souligné que la raison de ce résultat pourrait être :

ZIP utilise PBKDF2, qui hache l'entrée si elle est trop grande. Ce hachage (sous forme d'octets bruts) devient le mot de passe réel. Essayez de hacher le premier mot de passe avec SHA1 et décodez le résumé hexadécimal en ASCII... :) 

Lors de la génération d'une archive ZIP protégée par mot de passe avec le mode AES-256 activé, si le mot de passe est trop long, le format ZIP utilise l'algorithme PBKDF2 et hache  le mot de passe fourni par l'utilisateur . Dans ce cas, ce hachage nouvellement calculé sera le mot de passe réel du fichier. Trop long signifie plus de 64 octets (caractères), ont expliqué les chercheurs.

Lorsque l'utilisateur tente d'extraire le fichier et entre un mot de passe qui dépasse 64 octets, l'entrée de l'utilisateur est à nouveau hachée par l'application ZIP et comparée au mot de passe correct (qui est maintenant un hachage lui-même). S'il correspond, l'extraction du fichier réussira.

Le chiffrement alternatif pkH8a0AqNbHcdw8GrmSp utilisé dans l'exemple est en fait la représentation ASCII du hachage SHA-1 du chiffrement le plus long. Somme de contrôle SHA-1 pour Nev1r-G0nna-G2ve-... = 706b4838613041714e62486364773847726d5370. Cette somme de contrôle est produite lors de la conversion en ASCII : pkH8a0AqNbHcdw8GrmSp.

Mais il convient de noter que lors du cryptage ou du décryptage d'un fichier, le hachage n'est effectué que si le mot de passe contient plus de 64 caractères. En d'autres termes, les mots de passe plus courts ne seront pas le cas à aucune étape de la compression ou de la décompression du ZIP. C'est aussi pourquoi, lorsque la longue chaîne "Nev1r-G0nna-G2ve-..." est choisie comme mot de passe pendant la phase de chiffrement, le mot de passe réel défini par le programme ZIP est en fait le hachage (SHA1) de cette chaîne.

Si Nev1r-G0nna-G2ve-... est entré dans la phase de déchiffrement, il sera haché et comparé avec le mot de passe précédemment stocké (c'est-à-dire le hachage SHA1). Cependant, la saisie du mot de passe "pkH8a0AqNbHcdw8GrmSp" plus court pendant la phase de décryptage obligera l'application à comparer directement cette valeur avec le mot de passe stocké (alias le hachage SHA1). Des informations plus techniques peuvent être trouvées dans la section collisions HMAC  de PBKDF2 sur Wikipedia  .

"PBKDF2 a une propriété intéressante lors de l'utilisation de HMAC comme fonction pseudo-aléatoire. N'importe quel nombre de paires de chiffrements distincts peut être facilement construit, chacun avec des collisions. Si le chiffrement fourni est plus long que la taille de bloc de la fonction de hachage HMAC sous-jacente, le mot de passe est d'abord pré-haché dans un résumé, puis le résumé est utilisé comme mot de passe."

Cependant, le fait qu'il y ait deux mots de passe possibles pour le même ZIP n'implique pas une faille de sécurité ; générer le hachage du mot de passe nécessite de connaître le mot de passe d'origine.

おすすめ

転載: www.oschina.net/news/207560/encrypted-zip-file-two-correct-passwords