O funcție hash criptografică 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 unei funcții hash criptografice este de a verifica autenticitatea unei anumite date. Două fișiere pot fi considerate identice numai dacă sumele de control generate de fiecare fișier, utilizând aceeași funcție hash criptografică, sunt identice.
Unele funcții de hash criptografice utilizate frecvent includ MD5 și SHA-1, deși există și multe altele.
Funcțiile hash criptografice sunt deseori denumite "funcții hash", dar acest lucru nu este punct de vedere tehnic corect. O funcție hash este un termen generic care cuprinde funcțiile hash criptografice împreună cu alte tipuri de algoritmi, cum ar fi controalele de redundanță ciclică.
Funcții criptografice de hash: Un caz de utilizare
Spuneți că descărcați cea mai recentă versiune a browserului Firefox. Din anumite motive, trebuie să îl descărcați de pe un alt site decât Mozilla. Deoarece nu este găzduit pe un site pe care l-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 control de sumă, calculați o sumă de control utilizând o funcție hash criptografică specifică, cum ar fi SHA-2, și apoi o comparați cu cea publicată pe site-ul Mozilla. Dacă acestea sunt egale, puteți fi în mod rezonabil sigur că descărcarea pe care o aveți este cea pe care ați intenționat-o să o aveți.
Pot fi inversate funcțiile de criptare criptografică?
Funcțiile hash criptografice sunt proiectate pentru a împiedica posibilitatea 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 o masă de curcubeu pentru a înțelege textul simplu al unei sume de control.
Tabelele cu curbe sunt dicționare care afișează mii, milioane sau chiar miliarde de sumele de control, alături de valoarea corespunzătoare a textului simplu.
În timp ce acest lucru nu este inversarea tehnică a algoritmului hash criptografic, ar putea fi, de asemenea, având în vedere că este atât de simplu de făcut. În realitate, deoarece nici o masă de curcubeu nu poate enumera toate sumele de control posibile existente, acestea sunt, de obicei, utile doar pentru fraze simple, cum ar fi parolele slabe.
Iată o versiune simplificată a unei tabele de curcubeu pentru a arăta cum s-ar putea lucra atunci când se utilizează funcția hash criptografică SHA-1:
| Text simplu | Suma de verificare SHA-1 |
| 12345 | 8cb2237d0679ca88db6464eac60da96345513964 |
| parola1 | e38ad214943daad1d64c102faec29de4afe9da3d |
| imi iubesc cainele | a25fb3505406c9ac761c8428692fbf5d5ddf1316 |
| Jenny400 | 7d5eb0173008fe55275d12e9629eef8bdb408c1f |
| dallas1984 | c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2 |
Un hacker trebuie să știe ce algoritm de hash criptografic a fost folosit pentru a genera sumele de control pentru a determina valorile.
Pentru o protecție suplimentară, unele site-uri care stochează parolele utilizatorilor efectuează funcții suplimentare pe algoritmul hash criptografic după generarea valorii, dar înainte de a fi stocate. Acest proces produce o nouă valoare pe care numai serverul web o înțelege și care nu se potrivește cu suma de control originală.
De exemplu, după ce o parolă este introdusă și suma de control este generată, ea poate fi separată în mai multe părți și rearanjată înainte de a fi stocată în baza de date a parolei, sau anumite caractere pot fi schimbate cu altele. Când încercați să autentificați data viitoare când utilizatorul se conectează, serverul web inversează această funcție suplimentară, iar suma de control originală este din nou generată pentru a verifica dacă parola unui utilizator este validă.
Efectuarea acestor pași limitează utilitatea unui hack în cazul în care toate sumele de control sunt furate. Ideea este de a efectua o funcție necunoscută, astfel încât, dacă hacker-ul cunoaște algoritmul hash criptografic, dar nu și cel personalizat, atunci cunoașterea sumelor de control al parolei este nefolositoare.
Parole și funcții de criptare criptografică
O bază de date salvează parolele utilizatorilor într-o manieră similară cu cea a unui tabel curcubeu. Când este introdusă parola, suma de control este generată și comparată cu cea înregistrată cu numele dvs. de utilizator. Apoi, veți primi acces dacă cele două sunt identice.
Dat fiind faptul că o funcție hash criptografică produce o sumă de control nereversibilă, este sigur să vă faceți parola cât mai simplă 12345, in loc de 12@34$5, pur și simplu pentru că sumele de control nu pot fi înțelese? Nu, și de-aia.
Aceste două parole sunt ambele imposibil de descifrat doar dacă privim doar la sumele de control:
MD5 pentru 12345: 827ccb0eea8a706c4c34a16891f84e7b
MD5 pentru 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b
La prima vedere, vă puteți gândi că este bine să utilizați oricare dintre aceste parole. Acest lucru este valabil dacă un atacator a încercat să-ți imagineze parola, ghicind suma de control MD5, pe care nimeni nu o face, dar nu este adevărată dacă se efectuează o forță brute sau atac de dicționar, care este o tactică comună.
Un atac de forță brute apare atunci când sunt luate mai multe stări aleatorii la ghicitul unei parole. În acest caz, ar fi ușor să ghiciți 12345, dar destul de dificil să-l dăm la întâmplare pe celălalt. Un atac de dicționar este similar prin faptul că atacatorul poate încerca orice cuvânt, număr sau expresie dintr-o listă de parole comune (și nu atât de comune) și12345 este una dintre acele parole comune.
Chiar dacă funcțiile hash criptografice produc sume de control dificil-imposibil de ghicit, ar trebui să utilizați în continuare o parolă complexă pentru toate conturile de utilizator online și locale.
Mai multe informații despre funcțiile de criptare 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 bidirecțional în care ceva este criptat pentru a deveni necitit și apoi decodificat mai târziu pentru a fi folosit în mod normal din nou. S-ar putea să criptați fișierele pe care le-ați stocat, astfel încât oricine care le accesează să nu le poată utiliza 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, deoarece sumele de control nu sunt menite să fie inversate cu o parolă specială dehashing. Singurul scop al funcțiilor hash criptografice este de a compara două fragmente de date, cum ar fi descărcarea fișierelor, stocarea parolelor și tragerea datelor dintr-o bază de date.
Este posibil ca o funcție hash criptografică să producă aceeași sumă de control pentru diferite piese de date. Când se întâmplă acest lucru, se numește o coliziune, care este o problemă uriașă, având în vedere că întregul punct al unei funcții hash criptografice este de a realiza controale unice pentru fiecare intrare de date în ea.
Coliziunile pot apărea deoarece fiecare funcție hash criptografică produce o valoare a unei lungimi fixe indiferent de datele de intrare. De exemplu, funcția hash criptografică MD5 generează 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 și e10adc3949ba59abbe56e057f20f883e pentru trei blocuri de date complet diferite.
Prima sumă de control este de la 12345. Al doilea a fost generat din peste 700 de litere și numere, iar al treilea este de la 123456.
Toate cele trei intrări sunt de lungimi diferite, dar rezultatele sunt întotdeauna de numai 32 de caractere de când a fost folosită suma de control MD5.
Nu există o limită a numărului de sumele de control care ar putea fi create, deoarece fiecare modificare minimă a intrării ar trebui să producă o sumă de control complet diferită. Deoarece există o limită a numărului de sumele de control pe care o funcție de hash criptografic poate produce, există întotdeauna posibilitatea să întâlniți o coliziune.
De aceea, au fost create și 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 care are controlul, cu atât este mai puțin probabil ca o coliziune să aibă loc.




