web-dev-qa-db-fra.com

Les volumes chiffrés Veracrypt sont-ils protégés par une force brute?

J'ai un volume crypté de 10 Mo que j'ai créé avec Veracrypt et que je prévoyais de le télécharger sur Internet. J'ai un mot de passe assez fort mais j'étais inquiet de sa protection contre les attaques par force brute. Après avoir recherché ce SE, il semble qu'un volume chiffré Veracrypt puisse être facilement forcé brutalement ref1 , ref2 . Si tel est le cas, avec suffisamment de ressources, nous pouvons casser n'importe quel volume chiffré avec n'importe quelle longueur de mot de passe (> 100) en quelques jours avec le forçage brutal parallèle au lieu d'années.

Les volumes chiffrés Veracrypt ont-ils une sorte de protection par force brute intégrée? Les créateurs de Veracrypt n'étaient-ils pas au courant de ce problème? Existe-t-il un autre système de cryptage puissant doté d'une protection contre la force brute?

22
Eka

Tout cryptage est vulnérable aux attaques par force brute, par exemple AES-256 a 2 ^ 256 clés, et avec suffisamment de matériel, nous pouvons "facilement" le forcer brutalement. Le problème est qu'il n'y a pas assez de silicium sur Terre pour construire suffisamment de processeurs pour le faire avant la mort thermique de l'univers. Le fait que le chiffrement puisse être forcé ne signifie pas que cela se produira dans un délai raisonnable, et nous pouvons remercier la théorie des probabilités pour cela;)

Le lien le plus faible n'est presque toujours pas la clé de l'algorithme de chiffrement, mais le mot de passe dont la clé est dérivée. Certains mots de passe sont plus probables que d'autres, ce qui permet des attaques par dictionnaire sur les mots de passe.

À cet égard, le projet VeraCrypt fait tout par les livres: ils utilisent PBKDF2 avec des algorithmes de hachage puissants et un nombre d'itérations élevé (cela est quelque peu contrôlé par l'utilisateur). L'utilisation de PBKDF2 avec du sel aléatoire empêche l'attaquant d'utiliser des tables de hachage prédéfinies et les force à calculer chaque tentative de clé spécifiquement pour votre conteneur. Un nombre d'itérations élevé fait que chaque tentative prend beaucoup de temps (millisecondes à secondes). Le hachage répété est intrinsèquement incomparable (une seule opération PBKDF2 est incomparable, l'attaquant peut effectuer plusieurs suppositions simultanées bien sûr), donc le matériel personnalisé n'aiderait pas beaucoup.

Dans ces conditions, la seule attaque possible est basée sur un dictionnaire, la force brute prendrait trop de temps. Si votre mot de passe est protégé contre les attaques par dictionnaire, vous pouvez avoir un degré élevé de certitude dans la sécurité de vos données.

Documentation pertinente: https://www.veracrypt.fr/en/Header%20Key%20Derivation.html

64
Andrew Morozko

Les créateurs de Veracrypt n'étaient-ils pas au courant de ce problème?

(N'ayant pas de protection par force brute)

Comme Andrew Morozko le note dans sa réponse , ils ont résolu ce problème - dans la mesure du possible - en utilisant une fonction de génération de clé sécurisée (PBKDF2) et un nombre d'itérations élevé. Cela limite considérablement la capacité de force brute (en supposant que le mot de passe est suffisamment long et aléatoire 1 ).

Quelles autres méthodes pensez-vous qu'ils auraient pu utiliser?

Sur un site Web, où le logiciel surveillant les tentatives de connexion appartient au défenseur, vous pouvez faire des choses comme les tentatives de connexion à débit limité (avec des délais croissants, bien au-delà du temps de calcul réel pour vérifier le mot de passe) et verrouiller le compte après trop d'échecs tentatives.

Cependant, avec VeraCrypt, le logiciel gérant un volume chiffré sera placé sur la machine attaquant, et doit donc être considéré comme "détenu" par l'attaquant. Même si les rédacteurs devaient incorporer du code aux tentatives de limitation de débit, il serait "trivial" que quelqu'un procède à une rétro-ingénierie du binaire et supprime/contourne le code de limitation de débit.

Conclusion : pratiquement 2  toute mesure au-delà de ce qui est intrinsèquement nécessaire pour vérifier le mot de passe serait inutile et facilement contournée.


1  Les deux références que vous citez pour affirmer que "n volume crypté veracrypt peut être facilement forcé par la force" ne le montrent pas, en fait. Le premier est celui où le mot de passe correct est connu pour être dans une liste de candidats "1000-20"; l'autre où "la plupart du mot de passe" est mémorisé. Le premier est clairement trivial; la seconde dépend de la quantité inconnue/non mémorisée, mais ni est un scénario de forçage brutal "typique". Comme le dit Andrew, "Si votre mot de passe est sécurisé contre les attaques par dictionnaire - vous pouvez avoir un degré élevé de certitude dans la sécurité de vos données.".

2  À propos de la seule méthode peut-être envisageable à laquelle je peux penser serait où le processus de validation des informations d'identification impliquait (et requis) parler aux serveurs sous le contrôle de quelqu'un d'autre. Par exemple, si une partie du processus de génération de clés (pendant le chiffrement et le déchiffrement) nécessaire en passant des éléments, par exemple, les serveurs de VeryCrypt, alors ils pourraient, en théorie, imposer une limitation de débit ou un verrouillage supplémentaire - des mesures.

Cependant, même si cela pouvait être fait (d'une manière qui était à la fois cryptographiquement nécessaire, mais ne laissait pas de copies des clés avec VeraCrypt), cela serait inacceptable pour pratiquement tous les cas d'utilisation: nécessitant une connexion Internet fonctionnelle à chaque fois que quelqu'un montait un lecteur, et tous les volumes chiffrés deviendraient inutiles si VeraCrypt (et leurs serveurs) cessaient de l'être.

20
TripeHound