web-dev-qa-db-fra.com

Combien de temps le mot de passe de chiffrement Zip devrait-il prendre 10 ans pour se fissurer?

J'utilise Zip 3.0.0 sur macOS High Sierra et Debian. Voici ma version Zip sur macOS:

$ Zip --version | head
Copyright (c) 1990-2008 Info-Zip - Type 'Zip "-L"' for software license.
This is Zip 3.0 (July 5th 2008), by Info-Zip.
Currently maintained by E. Gordon.  Please send bug reports to
the authors using the web page at www.info-Zip.org; see README for details.

Latest sources and executables are at ftp://ftp.info-Zip.org/pub/infozip,
as of above date; see http://www.info-Zip.org/ for other sites.

Compiled with gcc 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.37.14) for Unix (Mac OS X) on Feb 22 2019.

Voici celui sur Ubuntu:

$ Zip --version | head
Copyright (c) 1990-2008 Info-Zip - Type 'Zip "-L"' for software license.
This is Zip 3.0 (July 5th 2008), by Info-Zip.
Currently maintained by E. Gordon.  Please send bug reports to
the authors using the web page at www.info-Zip.org; see README for details.

Latest sources and executables are at ftp://ftp.info-Zip.org/pub/infozip,
as of above date; see http://www.info-Zip.org/ for other sites.

Compiled with gcc 6.3.0 20170221 for Unix (Linux ELF).

J'ai lu cette réponse sur https://security.stackexchange.com/a/186132/108239 qui déconseille d'utiliser Zip pour le chiffrement.

Cependant, dans l'environnement dans lequel je me trouve, je dois envoyer un fichier en toute sécurité à des utilisateurs non techniques. Voici mes contraintes:

  • Je suis autorisé à envoyer à mes destinataires un mot de passe arbitrairement long.
  • Je suis autorisé à leur envoyer des fichiers Zip (cryptés ou non cryptés).
  • Je ne suis pas autorisé à demander à mes destinataires d'installer des logiciels supplémentaires.
  • Je me soucie uniquement de la confidentialité du contenu du fichier.
  • Je ne me soucie pas de la confidentialité du nom de fichier ou des métadonnées du fichier.
  • Je ne me soucie pas de l'intégrité ou de la non-répudiation.

Compte tenu de ces contraintes, jusqu'à présent, j'ai envoyé des fichiers de cette façon:

Zip -e secret.Zip secret.txt

J'utilise un alphanumérique de 80 caractères généré aléatoirement (A-Za-z0-9) mot de passe pour crypter le fichier secret. L'utilitaire Zip n'accepte plus les mots de passe. Si vous essayez de le faire, vous obtenez (line too long--try again) Erreur.

Cela utilise la méthode de chiffrement suivante:

$ 7z l -slt secret.Zip | grep Method
Method = ZipCrypto Deflate

Mes questions:

  • Un mot de passe alphanumérique généré de façon aléatoire de 80 caractères est-il suffisamment puissant pour compenser la faible technologie de chiffrement de l'utilitaire Zip?
  • Quelle est l'entropie minimale qu'un mot de passe devrait avoir pour le rendre suffisamment sécurisé pour être utilisé avec l'utilitaire Zip? Pour définir "suffisamment sécurisé", disons, le craquage du fichier Zip devrait prendre environ 10 ans avec la puissance de calcul actuelle (ignorer une augmentation de la puissance de calcul pour l'instant pour des raisons de simplicité).
10
Lone Learner

Si vous utilisez ZipCrypto pour le chiffrement, toute longueur de mot de passe n'est pas sécurisée.

Vous utilisez le chiffrement ZipCrypto, plutôt que l'AES plus sécurisé. ZipCrypto est extrêmement faible, car il est basé en interne sur une construction non cryptographique appelée CRC . Il est très vulnérable à une attaque connue en texte brut, qui, en pratique, ne nécessite pas de savoir exactement ce que contient votre fichier Zip, mais seulement une minuscule portion. Cela peut généralement être satisfait en utilisant l'en-tête d'un fichier, qui est généralement connu.

L'attaque, découverte dans les années 90, est détaillée dans A Known Plaintext Attack on the PKZIP Stream Cipher . Avec 13 octets de texte en clair connu, la clé complète peut être récupérée avec une complexité de 238, ce qui n'est pas beaucoup. En fait, cela n'a pris que quelques heures sur un ordinateur personnel, et c'était avec du matériel des années 90! Les attaques ne font que s'améliorer avec le temps, et l'attaque contre ZipCrypto ne fait pas exception. Il a depuis été amélioré, comme décrit dans l'article ne amélioration de l'attaque connue en texte clair sur l'algorithme de cryptage PKZIP .


Si vous passez au nouveau format de cryptage Zip qui prend en charge AES, vous pouvez crypter les fichiers en toute sécurité et avoir confiance qu'ils resteront confidentiels indéfiniment. En supposant que vous vouliez un minimum de 128 bits de sécurité et que vous choisissez un mot de passe parmi un ensemble de 62 symboles (un mot de passe alphanumérique), vous voudriez utiliser au moins 22 caractères , comme journal2(6222) ≈ 131 bits et, évidemment, 131 ≥ 128. Le cryptage Zip de toute nature ne garantit pas l'intégrité, mais vous avez précisé que vous n'avez besoin que de confidentialité.

8
forest

Un mot de passe alphanumérique généré de façon aléatoire de 80 caractères est-il suffisamment puissant pour compenser la faible technologie de chiffrement de l'utilitaire Zip?

Tout d'abord, vous devez chiffrer avec un minimum de 128 AES, étant donné les 10 années que vous voudrez peut-être envisager 256 (je vais laisser de côté les possibilités quantiques pendant une décennie).

Je ne connais pas votre package Zip, désolé, mais s'il ne peut pas le supporter car il est trop ancien. Vous voudrez peut-être rechercher un package plus récent, car les applications plus anciennes sont susceptibles de contenir des vulnérabilités, ce qui vous laisse susceptible d'être exploité à un moment donné.

Choisir une clé longue et pseudo-aléatoire est oui important. Allez aussi longtemps et au hasard que vous le pouvez. Le stockage sûr de votre clé est tout aussi important sur 10 ans.

Quelle est l'entropie minimale qu'un mot de passe devrait avoir pour le rendre suffisamment sécurisé pour être utilisé avec l'utilitaire Zip? Par exemple, pour définir "suffisamment sécurisé", le fichier Zip doit rester non fissuré pendant une dizaine d'années.

Difficile à dire, car 10 ans pourraient révéler des assauts de puissance de calcul supplémentaire et des vulnérabilités dans les algorithmes de chiffrement. Allez encore longtemps et utilisez des générateurs pseudo-aléatoires de confiance.

0
ISMSDEV

Ce sont deux questions en une. L'un est facile, l'autre est difficile. Commençons par le plus simple:

Pendant combien de temps mon mot de passe de chiffrement doit-il rester sécurisé pendant 10 ans?

Il est bien connu qu'un secret de 128 bits aléatoire est beaucoup d'entropie à ne pas craquer, même s'il est protégé par l'algorithme de hachage le plus rapide possible (mais non vulnérable). La raison pour laquelle j'amène le hachage est parce qu'il y a beaucoup de recherches, de bons logiciels et de nombreux points de référence pour le hachage de mot de passe. Le décryptage d'un fichier Zip consiste essentiellement à décrypter et à vérifier si vous pouvez décrypter un octet dont vous connaissez la valeur. (Voir la section 6.1 de la spécification du format Zip , ou l'implémentation Python .) La seule indication de vitesse concernant le craquage des fichiers Zip sur un GPU est ne revendication marketing de 10 milliards tentatives par seconde. Ceci est mentionné dans un petit texte gris sans référence ou plus d'informations sur leur configuration. C'est un point de données à considérer, mais pas un très fiable. Le hachage est similaire à cela en ce que les algorithmes de hachage sont conçus pour être très rapides, et vous appliquez également des opérations et vérifiez le résultat.

Par exemple, les crackers MD5 peuvent atteindre des centaines de milliards de tentatives par seconde sur du matériel modérément cher. Utilisons cela comme notre base plutôt que la revendication marketing de 10 milliards, car nous ne savons pas quelle année c'était ou quelle configuration ils ont utilisée.

Même si nous supposons que la loi de Moore tient (ce n'est pas le cas) et peut être interprétée comme "la vitesse de l'ordinateur double tous les 18 mois" (cela ne peut pas), alors en 10 ans, nous aurions eu 6,7 doublements. Par souci de commodité, disons que nous courons à cette vitesse tout le temps, donc nous courons à quelques centaines de milliards de fois 26,7, donc quelques trillions de tentatives par seconde (disons 50 trillions). En 10 ans, il y a 3600 * 24 * 365,25 * 10 = 316 millions de secondes. C'est 50e12 * 316e6 = 16 suppositions sextillion (16e21) ... nous aurons donc vérifié environ 73 bits d'entropie, soit 0,00000000000000005% des clés possibles (car log (16e21)/log (2) est ~ 73 et 16e21/2128* 100 est le pourcentage susmentionné).

Si vous voulez y jouer à risque, vous pouvez opter pour un mot de passe contenant environ 80 bits d'entropie, et un attaquant aurait une petite (mais non négligeable) chance de le casser. Plus réaliste, vous voudriez avoir une certaine marge d'erreur, même si l'algorithme de chiffrement est affaibli. Je conseillerais de s'en tenir à 128 bits d'entropie comme une bonne idée. Cela correspond également à ce que conclut un projet de recherche de l'Union européenne: "Pour une protection générale à long terme (30 ans), des clés de 128 bits sont recommandées (niveau 7)." (Source: moi sur Wikipedia )

Si nous utilisons a-z, A-Z, 0-9, chaque position de votre mot de passe peut avoir 26 + 26 + 10 = 62 valeurs possibles. Pour calculer le nombre de caractères dont nous avons besoin pour 128 bits, nous pouvons utiliser: log (10 ^128 * journal (2))/log (62) = 21,5 caractères (car log (62 ^ 21,5)/log (2) = 128).

Réponse: 22 au hasard caractères générés, comprenant les caractères A à Z, a à z et 0 à 9 Exemple: M89bqltyuPQ0g34Uv2CR6b. Pas besoin d'un mot de passe de 80 caractères comme vous l'avez suggéré!

Maintenant, la question difficile:

Le cryptage Zip sera-t-il sûr pendant 10 ans?

Il existe différents types de cryptage pris en charge par le format Zip. J'ai écrit cette section en supposant que le logiciel Zip utilise AES par défaut ces jours-ci, pas l'ancien et crypté CRC, qui, selon la forêt, utilise réellement par défaut.

Donc, si vous configurez le logiciel pour utiliser AES:

C'est une hypothèse, mais elle semble avoir résisté à un certain temps et à un examen minutieux. Bien que certaines attaques soient connues, il semble peu probable qu'elles soient considérablement affaiblies au cours de la prochaine décennie. Un ordinateur quantique change quelque peu les choses, mais personne ne peut dire quel sera le calendrier pour cela. Un ordinateur quantique décent dans la prochaine décennie, spécialement disponible pour ceux qui n'ont pas des milliards d'euros à investir dans un, semble très optimiste.

Si vous êtes préoccupé par les ordinateurs quantiques, utilisez un logiciel qui n'utilise que des algorithmes de chiffrement symétrique et des algorithmes de hachage de au moins 256 bits (donc votre clé doit contenir autant d'entropie et le logiciel doit l'utiliser) , comme AES-256 et SHA-256. Selon l'implémentation que vous utilisez, Zip peut être qualifié: selon la spécification , le format version 5.1 ajoute la prise en charge d'AES-256. Le cryptage d'origine est un cryptage symétrique et ne se cassera pas de manière aussi catastrophique que le cryptage asymétrique, mais il utilise des clés trop courtes. Alors qu'un ordinateur quantique affaiblira les algorithmes de chiffrement et de hachage symétriques, l'algorithme de Grover nous dit qu'il est essentiellement de l'ordre de la moitié du nombre de bits, donc un mot de passe contenant 256 bits d'entropie aujourd'hui, pour un ordinateur quantique, sera aussi fort que un mot de passe contenant 128 bits d'entropie.

(Notez que vous devez également appliquer une bonne gestion des mots de passe: ne réutilisez pas le mot de passe ailleurs ou d'autres choses que les gens font généralement mal avec les mots de passe. Mais comment gérer vos mots de passe est hors de portée pour cette réponse.)

Réponse: Si vous utilisez Zip avec AES, alors probablement oui, mais il est impossible de le dire avec certitude.

0
Luc