Analyse de la sécurité du stockage et du hachage des mots de passe à l'aide de l'algorithme MD5

Avec l'avènement de la technologie informatique, il est devenu plus productif de stocker des informations dans des bases de données plutôt que sur papier. Les applications Web qui nécessitent une authentification utilisateur vérifient généralement les mots de passe de connexion par rapport aux mots de passe réels, qui sont généralement stockés dans les bases de données privées de l'entreprise. Si des intrus accèdent à la base de données susmentionnée, les données personnelles des utilisateurs seront perdues. Actuellement, les bases de données utilisent des algorithmes de hachage pour protéger les mots de passe stockés, mais les problèmes de sécurité sont toujours d'actualité. Chaque année, des pirates publient une grande liste de mots de passe piratés provenant de réseaux sociaux ou de magasins de données bien connus. Ces attaques ont réussi grâce à l'utilisation d'un algorithme de hachage faible.





Les fonctions de hachage cryptographique, souvent appelées simplement hachages, sont un outil indispensable et omniprésent utilisé pour effectuer une variété de tâches, y compris l'authentification, la vérification de l'intégrité des données, la protection des fichiers et même la détection des logiciels malveillants. Il s'agit d'un algorithme mathématique qui convertit un tableau arbitraire de données en une chaîne de lettres et de chiffres de longueur fixe. De plus, à condition que le même type de hachage soit utilisé, cette longueur restera inchangée, quelle que soit la quantité de données d'entrée [2]. Il existe de nombreux algorithmes de hachage qui diffèrent par la force cryptographique, la complexité, la profondeur de bits et d'autres propriétés. On pense que l'idée de hachage appartient à un employé d'IBM, est apparue il y a environ 50 ans et n'a pas fondamentalement changé depuis.De nos jours, le hachage a acquis de nombreuses nouvelles propriétés et est utilisé dans de nombreux domaines des technologies de l'information.





L'algorithme de hachage de message MD5 est la 5ème version de l'algorithme de hachage de message développé par Ron Rivest en 1991 pour produire un message de sortie de 128 bits. Cette version [5] a été présentée comme améliorée en termes de fiabilité par rapport à l'algorithme MD4 précédent.





La conversion d'un message de longueur arbitraire en une valeur de hachage implique cinq étapes de l'algorithme, chacune ayant sa propre tâche spécifique. Regardons de plus près les étapes de l'algorithme:





Étape 1: Alignez le flux





Il est nécessaire d'ajouter des bits supplémentaires au message d'origine de telle sorte que la longueur du message d'origine avec les bits supplémentaires soit égale à 448 modulo 512. L'addition est effectuée même si la longueur du message d'origine est déjà comparable à 448. Dans les bits de remplissage, seul le premier bit est 1 et le reste des bits est à 0.





2.





64- ( ) . , 512 . 512 .





3: MD-





(A, B, C, D) . A, B, C, D 32 - ,









Word A





01





23





45





67





Word B





89





AB





CD





EF





Word C





FE





DC





BA





98





Word D





76





54





32





10









4:





MD5 , 32- 32- [1].





OR, XOR, AND, NOT. ( ) , . , .





5.





A, B, C, D MD5, .






MD5 . - , . MD5 , - .





MD5 , «» MD5:





1)





— - , . , , . , . . 





— ,     ,  , (  )      [7].

. , , . , , – . ( ), . - .





     PasswordsProMD5BFCPFJohn the Ripper.





2)  





- , , , . - , -, [4].





- H  n  P. - : ,  h   p  P, H(p)=h, , .  — H(p)  p  P, , -.





 — .  —    R, P. , R -. - [11]:





1) - ;





2) .













, , .





H R, .





 h, ( ), R(…R(H(R(h)))…). - - - , .  h, .





-. , : H, R1, H, R2, …, H, Rk. 





. ,  k  .





-, .  —   . , 100% . , , , -, .





MD5  





- ( ) .   -, «» .







MD5 2004 . 2004 MD5- .





[10] , 512- , -. MD5 1 . , ( ):





, , . , MD5 .





,









. , , , .





H = Llog_2N N  — . H  . [9]





, , , . , , 2 , « » . , . , . : , .





“”





, . , , , , . - , , ( ), [8]. , , , . , 48 . :





1) : , , . .





2) () : , . , . . , , , , .





3) . , , username, . , . , , , “root” “admin”.











, − , . , - : -, , - -, , . , , MD5 .  IETF (Internet Engineering Task Force) MD5 , .





MD5 , .






:





1. MD5 // wikipedia.org. ( : 20.11.2020).





2. A.. , .. , .. , .. . . 2- , . -2006.





3. - // wikipedia.org. ( : 5.12.2020).





4. // wikipedia.org ( : 2.12.2020).





5. Rivest, R. (1992, April). The MD5 Message Digest Algorithm. Request for Comments (RFC) 1321. Retrieved from https://www.rfceditor.org/rfc/rfc1321.txt





6. Kioon M. C, Wang Z. S, Shubra D.D Security Analysis of MD5 Algorithm in Password Storage // Scientific.Net. 2013. . 2706-2711.







7. Nechaev V.I. Éléments de cryptographie (Fondamentaux de la théorie de la sécurité de l'information): Manuel. Un manuel pour les bottes hautes en fourrure et ped. universités. / Ed. VIRGINIE. Sadovnichy - M.: Plus haut. shk., 1999.



8. John Black, Martin Cochran, Chiffrement de logiciel rapide de Trevor Highland. FSE ed. 2006.S.262-277.





9. Information entropy // ru.wikipedia.org/ (date d'accès: 12.11.2020).





10. Comment interrompre MD5 et autres fonctions de hachage // (date d'accès: 17/10/2020).





11. Structures de données / chaînes de hachage // medium.com (date d'accès: 10.12.2020).








All Articles