Ce este o funcție hash criptografică?

Cuprins:

Ce este o funcție hash criptografică?
Ce este o funcție hash criptografică?
Anonim

O funcție hash criptografică (CHF) este un algoritm care poate fi rulat pe date, cum ar fi un fișier individual sau o parolă, pentru a produce o valoare numită sumă de control.

Utilizarea principală a unui CHF este de a verifica autenticitatea unei date. Se poate presupune că două fișiere sunt identice numai dacă sumele de control generate din fiecare fișier, folosind aceeași funcție hash criptografică, sunt identice.

Unele funcții hash criptografice utilizate în mod obișnuit includ MD5 și SHA-1, deși există și multe altele. Acestea sunt adesea denumite „funcții hash”, dar acest lucru nu este corect din punct de vedere tehnic. O funcție hash este un termen generic care cuprinde CHF împreună cu alte tipuri de algoritmi, cum ar fi verificările de redundanță ciclică.

Funcții hash criptografice: un caz de utilizare

Supuneți că descărcați cea mai recentă versiune a browserului Firefox. Din anumite motive, trebuia să îl descărcați de pe un alt site decât cel al Mozilla. Deoarece nu este găzduit pe un site în care ați învățat să aveți încredere, doriți să vă asigurați că fișierul de instalare pe care tocmai l-ați descărcat este exact același cu cel oferit de Mozilla.

Folosind un calculator de sumă de control, calculați o sumă de control folosind o anumită funcție hash criptografică, cum ar fi SHA-2, și apoi o comparați cu cea publicată pe site-ul Mozilla. Dacă sunt egale, puteți fi sigur că descărcarea pe care o aveți este cea pe care Mozilla și-a propus să o aveți.

Image
Image

Funcțiile hash criptografice pot fi inversate?

Funcțiile hash criptografice sunt concepute pentru a preveni capacitatea de a inversa sumele de control pe care le creează înapoi la textele originale. Cu toate acestea, chiar dacă sunt practic imposibil de inversat, nu sunt garantate 100% pentru a proteja datele.

Hackerii pot folosi un tabel curcubeu pentru a afla textul simplu al unei sume de control. Tabelele curcubeu sunt dicționare care listează mii, milioane sau chiar miliarde de sume de control alături de valoarea lor corespunzătoare text simplu.

Deși acest lucru nu inversează din punct de vedere tehnic algoritmul hash criptografic, ar putea la fel de bine să fie, având în vedere că este atât de simplu de făcut. În realitate, deoarece niciun tabel curcubeu nu poate enumera fiecare sumă de control posibilă existentă, acestea sunt de obicei utile doar pentru expresii simple, cum ar fi parolele slabe.

Iată o versiune simplificată a unui tabel curcubeu pentru a arăta cum ar funcționa atunci când se folosește funcția hash criptografică SHA-1:

Exemplu de masă curcubeu
Text simplu SHA-1 Sumă de verificare
12345 8cb2237d0679ca88db6464eac60da96345513964
parolă1 e38ad214943daad1d64c102faec29de4afe9da3d
ilovemydog a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Un hacker trebuie să știe ce algoritm criptografic hash a fost folosit pentru a genera sumele de verificare pentru a afla valorile.

Pentru protecție suplimentară, unele site-uri web care stochează parolele utilizatorilor efectuează funcții suplimentare pe algoritmul de hash criptografic după ce valoarea este generată, dar înainte de a fi stocată. Acest proces produce o nouă valoare pe care doar serverul web o înțelege și care nu se potrivește cu suma de control inițială.

De exemplu, după ce o parolă este introdusă și suma de control generată, aceasta poate fi separată în mai multe părți și rearanjată înainte de a fi stocată în baza de date a parolelor sau anumite caractere pot fi schimbate cu altele. Când încercați să vă autentificați data viitoare când utilizatorul se conectează, serverul inversează această funcție suplimentară și suma de control inițială este generată din nou pentru a verifica dacă parola unui utilizator este validă.

Facerea acestor pași limitează utilitatea unui hack în care toate sumele de control sunt furate. Ideea este de a efectua o funcție necunoscută, așa că dacă hackerul cunoaște algoritmul hash criptografic, dar nu cel personalizat, atunci cunoașterea sumelor de verificare a parolelor nu este de ajutor.

Parole și funcții de hash criptografic

O bază de date salvează parolele utilizatorilor într-un mod similar cu un tabel curcubeu. Când parola dvs. este introdusă, suma de control este generată și comparată cu cea înregistrată cu numele dvs. de utilizator. Apoi vi se acordă acces dacă cele două sunt identice.

Având în vedere că un CHF produce o sumă de control nereversibilă, este sigur să vă faceți parola la fel de simplă ca 12345, în loc de 12@34 $5, pur și simplu pentru că sumele de verificare în sine nu pot fi înțelese? Nu, și iată de ce.

Aceste două parole sunt ambele imposibil de descifrat doar privind doar sumele de verificare:

MD5 pentru 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 pentru 12@34$5: a4d3cc004f487b18b2ccd4853053818b

La prima vedere, ați putea crede că este bine să utilizați oricare dintre aceste parole. Acest lucru este adevărat dacă un atacator a încercat să-ți descopere parola ghicind suma de control MD5, ceea ce nimeni nu o face, dar nu este adevărat dacă se efectuează un atac cu forță brută sau un dicționar, care este o tactică comună.

Un atac cu forță brută are loc atunci când sunt luate mai multe lovituri aleatorii la ghicirea unei parole. În acest caz, ar fi ușor să ghiciți 12345, dar destul de dificil să-l dați la întâmplare pe celăl alt. Un atac de dicționar este similar prin faptul că atacatorul poate încerca fiecare cuvânt, număr sau expresie dintr-o listă de parole obișnuite (și mai puțin obișnuite), iar 12345 este una dintre acelea comune. parole.

Chiar dacă funcțiile hash criptografice produc sume de verificare dificil până la imposibil de ghicit, ar trebui să utilizați totuși o parolă complexă pentru toate conturile dvs. de utilizator online și locale.

Mai multe informații despre funcțiile hash criptografic

Ar putea părea că funcțiile hash criptografice sunt legate de criptare, dar cele două funcționează în moduri diferite.

Criptarea este un proces în două sensuri în care ceva este criptat pentru a deveni ilizibil și apoi decriptat mai târziu pentru a fi utilizat din nou normal. Este posibil să criptați fișierele pe care le-ați stocat, astfel încât oricine le accesează să nu le poată folosi, sau puteți utiliza criptarea transferului de fișiere pentru a cripta fișierele care se deplasează într-o rețea, cum ar fi cele pe care le încărcați sau le descărcați online.

Funcțiile hash criptografice funcționează diferit, prin aceea că sumele de control nu sunt menite să fie inversate cu o parolă specială de dehashing. Singurul scop al CHF este de a compara două date, cum ar fi atunci când descărcați fișiere, stochează parole și extrage date dintr-o bază de date.

Este posibil ca o funcție hash criptografică să producă aceeași sumă de control pentru diferite date. Când se întâmplă acest lucru, se numește coliziune, care este o problemă uriașă, având în vedere că întregul scop al funcției este de a face sume de control unice pentru fiecare intrare de date în ea.

Pot apărea coliziuni deoarece fiecare CHF produce o valoare de lungime fixă, indiferent de datele de intrare. De exemplu, funcția hash criptografică MD5 generează 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 și e10adc3949ba59a16891f84e7b pentru un total de trei blocuri de date diferite de 56e833s520f302c7a497983.

Prima sumă de verificare este de la 12345. Al doilea a fost generat din peste 700 de litere și cifre, iar al treilea este din 123456. Toate cele trei intrări au lungimi diferite, dar rezultatele au întotdeauna doar 32 de caractere, deoarece a fost folosită suma de control MD5.

Nu există o limită a numărului de sume de control care ar putea fi create, deoarece fiecare modificare mică în intrare ar trebui să producă o sumă de control complet diferită. Deoarece există o limită a numărului de sume de control pe care le poate produce un CHF, există întotdeauna posibilitatea să întâmpinați o coliziune.

De aceea au fost create alte funcții hash criptografice. În timp ce MD5 generează o valoare de 32 de caractere, SHA-1 generează 40 de caractere, iar SHA-2 (512) generează 128. Cu cât este mai mare numărul de caractere al sumei de control, cu atât este mai puțin probabil să apară o coliziune.

Recomandat: