web-dev-qa-db-fra.com

Combien de temps faudrait-il pour brutaliser un pdf protégé AES-128 sachant que la clé est de 20 lettres et que le jeu de caractères est A-Z, 0-9?

La question dit tout, sachant qu'un pdf est protégé à l'aide du cryptage de mot de passe Adobe standard fourni avec Acrobat Pro (qui, à ma connaissance, est AES 128) combien faudrait-il pour brutaliser une clé connue pour être de 20 caractères et que le jeu de caractères est AZ, 0-9? Veuillez supposer pour le calcul une plate-forme GPU moderne ou un cluster GPU à partir d'un exemple d'Amazon AWS.

7
Blobber

A-Z et 0-9 signifie 36 caractères possibles. 20 de ces caractères impliquent 3620 touches possibles. C'est approximativement égal à 2103,4.

Le plus gros effort de force brute actuellement connu publiquement concernait une clé 64 bits (pour RC5, mais la différence entre RC5 et AES n'est pas importante ici); il est décrit ici . Cela a pris près de cinq ans et beaucoup de contributeurs; le taux de fissuration de pointe était équivalent à ce que 30000 meilleurs ordinateurs de l'époque pouvaient faire. Bien sûr, c'était il y a une décennie, et les ordinateurs sont devenus plus rapides, mais pas au point de combler l'écart de 264 à 2103,4: nous parlons d'un problème qui est 725 milliards de fois plus difficile .

Le GPU ne serait pas une plate-forme très efficace pour briser l'AES; le système le plus rentable serait un processeur avec opcodes AES-NI . Notez cependant qu'une clé AES est une séquence de 128, 192 ou 256 bits; pas une séquence de caractères. Par conséquent, vos personnages sont probablement transformés par une sorte de hachage en une clé AES, et le calcul de la fonction de hachage sera probablement plus cher que l'invocation AES elle-même. Selon la fonction de hachage utilisée, le GPU peut redevenir compétitif. En tout cas, on parle au mieux de quelques milliards de clés par seconde et par GPU. Un milliard d'un tel GPU produirait beaucoup de chaleur ... et aurait encore besoin de milliards de secondes pour passer (un milliard de secondes est de 30 ans).

La seule réponse réaliste à votre question est donc: pour toujours . Une clé du format que vous décrivez (20 caractères dans un alphabet de taille 36) sera pas craquée par la force brute. Forcer brutalement une telle clé n'aurait pas de sens: même si c'était technologiquement faisable (ce qui suppose plus de ressources que celles dont disposent les plus grands gouvernements ou les sociétés existantes), cela coûterait beaucoup plus que ce que la clé protège. Par exemple, si je possédais les millions de milliards de dollars impliqués dans le processus, j'achèterais simplement les États-Unis en gros (grandes sociétés, gouvernement, ... y compris un rachat complet de la dette nationale) (c'est-à-dire, si cela me plaisait) posséder les États-Unis, ce qui est, quand vous y arrivez, une idée étrange).

(Dans tout ce qui précède, j'utilise le "milliard" américain, c'est-à-dire mille millions, pas un million de millions.)

18
Tom Leek

Permet de prendre une vitesse moyenne du processeur, pas trop sophistiquée, se fissurant approximativement à 22,004k/s a PDF. En supposant que vous brutez uniquement a-z0-9A-Z sans espaces, caractères spéciaux, etc.

Cela prendrait environ 1 septillion d'années. ou 1.0306281275164522e + 24 ans 33 jours 7 heures 30 minutes et 54 secondes

Le nombre de combinaisons de mots de passe que vous auriez potentiellement à tester est (7.159713505559651e + 35 combinaisons de mots de passe)

Encore une fois, je suppose que nous sommes NE PAS en utilisant n'importe quel GPU, Amazons AWS, etc. Nous utilisons un processeur moyen. Si vous utilisez GPU ou AWS, cela accélérerait considérablement votre crack. Vous pouvez jouer avec les chiffres ici. site .

J'espère que cela répond à votre question.

2
eof0100

AES128 utilise exactement une longueur de clé de 128 bits, 20 caractères est un mot de passe et non une clé, la clé est créée à partir du mot de passe, tout comme le vecteur d'initialisation (un peu comme une extension de clé à certains égards, pour une utilisation en mode CBC AES). Les méthodes pour générer la clé et l'IV à partir du mot de passe et les meilleures ajoutent également un peu de sel, mais la génération de clé ne fait pas partie d'AES.

La réponse est un temps moyen de 2127 et maximum 2128 tentatives.

En supposant que le mode CBC (un mode très populaire et sécurisé) les tentatives par seconde varient énormément avec la longueur du document car vous devez décrypter le fichier entier et vérifier s'il est du charabia, séparément pour chaque clé. Toutes les séquences de 128 bits sont des clés AES valides et "décrypteront" le document, mais toutes sauf une produiront de mauvaises données décryptées.

Le bloc de chiffrement est de 16 octets. Supposons que le PDF n'est que de 16 octets, et le GPU décrypte à 32 Gio/s [235 B/s]. (J'ai vu un nombre similaire quelque part pour les performances gpu AES) C'est 231 décryptages par seconde (supposons que le processeur peut également analyser la sortie du charabia aussi rapidement) Donc, une moyenne de 2127/ 231 = 296 secondes et max 297 secondes, soit 2,5e21 ans en moyenne, 5e21 max. 21 zéros, c'est beaucoup de zéros. Répartissez la charge entre un million d'appareils et c'est 2,5e15 ans ou 25 millions de millions. Et puis vous avez AES-256.

Là encore, vous pouvez également avoir de la chance et trouver que c'est la première clé que vous essayez. Les chances de loterie Powerball sont de un sur 300 millions. Les chances de toucher la bonne clé au cours des 1,7e13 premières années sont de 1 sur 300 millions [avec une seule machine], avec un million de machines qui tombent à 1,6e7 ou 16 millions d'années

0
Max Power

La seule attaque qui ne prend pas des millions d'années nécessite beaucoup d'argent.

  • Construire sur mesure un cracker AES 32 nm
  • Construisez 50 usines de puces pour fabriquer ces puces
  • Passer un an à faire des chips
  • Construisez un cluster géant de systèmes
  • Exécutez le cluster pendant 1 an

Notez que le coût de R&D sur la puce sera compris entre 50 et 250 millions de dollars, les usines représenteront chacune 1 à 2 milliards de dollars et les coûts d'exploitation seront en milliards. Notez également que nous utilisons 32 nm car une solution <20 nm multiplierait les coûts par 5 facilement. De façon réaliste, obtenir toutes les pièces et personnes pour 50 usines mettrait une grande pression sur la fabrication de puces GLOBAL.

0
Walter

En ce qui concerne le temps que cela prendrait, si nous utilisons un outil comme crunch pour générer la liste de mots à utiliser pour le craquage dudit fichier PDF PDF, la sortie serait la suivante:

[root@yokai ~]# crunch 20 20 ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Crunch will now generate the following amount of data: 11388113619364347904 bytes
10860551471104 MB
10606007296 GB
10357429 TB
10114 PB
Crunch will now generate the following number of lines: 2299123893656354816

Avec cela, nous pouvons voir combien de données devraient être traitées dans une telle attaque par force brute. Sûr de dire que sans en savoir plus sur le mot de passe utilisé et sans faire de modificateurs de génération spécifiques pour affiner les mots de passe possibles, il ne sera jamais fissuré dans cette vie par pure force brute. Peut-être même pas dans les 10 à 20 prochaines vies.

Il existe cependant une approche aléatoire selon laquelle le tout premier mot de passe pourrait être le mot de passe correct. Dites comme si vous utilisiez Linux pour l'attaque, vous pourriez créer un script pour attaquer avec des mots de passe complets générés aléatoirement.

#!/bin/bash

PASS_GEN="$(tr -dc 'A-Z0-9' </dev/urandom | head -c 20)"

echo "$PASS_GEN

while [ "$something" != "$something_else" ]
do
      try_password
done

Bien sûr, seule la commande "tr" est la vraie commande qui fonctionne dans ce code bash mais vous avez l'idée. Il est possible, même improbable, de générer très rapidement le mot de passe correct.

0
Yokai