Bcrypt ca înlocuire hash md5

De ce are parola hashes?

În ultimele zile, hub-ul a raportat că bazele de date cu parole de servicii populare intră în mâinile intrușilor (1), (2). Se știe că serviciul linked.in utilizează metoda hash-ului SHA-1, iar last.fm utilizează MD5. Cele mai multe parole sunt cuvinte scurte de vocabular, astfel încât un atacator care are un hash poate găsi parola originală chiar și fără o forță brute, pur și simplu folosind mese irizate.






Aceasta este o încălcare gravă a securității, în ciuda faptului că mulți dezvoltatori cred că salvarea unui hash de parolă în loc de parola însăși poate proteja utilizatorii serviciului în eventualitatea scurgerii unei baze de date. Desigur, este mult mai bine decât păstrarea parolelor în mod clar, dar în mod evident nu suficient de sigur. Metoda BCrypt, spre deosebire de MD5 și SHA-1, nu este foarte cunoscută pe RuNet, în Wikipedia în limba rusă nu există nici măcar un articol despre aceasta. Ce este el?

Ce este BCrypt?

BCrypt este un algoritm de hashing criptografic care utilizează metoda de criptare Blowfish. Folosește cheia secretă K (Key Factor), care vă permite să configurați puterea de criptare și o evidențiază printre alți algoritmi de hashing. Abilitatea de a crește puterea criptografică în viitor, când computerele devin mult mai puternice, înseamnă că acest algoritm poate fi folosit fără a se uita la puterea crescândă a procesoarelor și a dimensiunilor fermelor de calcul.







Încet nu înseamnă rău

BCrypt funcționează mult mai încet decât alte metode de hash, dar rezultatul său este mult mai sigur. La urma urmei, când vine vorba de hash și criptare, mai rapid nu înseamnă mai bine. Cu cât criptarea este mai lungă, cu atât decriptarea mai lungă va dura. Metoda populară MD5 este calculată atât de repede încât zeci de mii de coșuri pe secundă pot fi calculate pe un laptop obișnuit. Și pe un server puternic - sute de mii și milioane! Toată frumusețea și concisitatea acestei metode sunt fără putere înainte de o forță brută simplă.

De ce nu folosiți sare?

Funcția hash standard MD5 este:
MD5 (parola)
De la un cuvânt care este o parolă, se calculează un hash, care va fi stocat în baza de date. Când un utilizator dorește să se autentifice, parola acestuia va fi calculată din nou și comparată cu cea din baza de date. Dacă se potrivesc hash-urile, atunci parolele se potrivesc și utilizatorul are dreptul să se conecteze. Dacă un atacator îndepărtează baza de date cu hashes de parole, atunci, folosind tabele curcubeu, găsește repede parole simple, hași de care există deja.

Funcția de identificare a hash-ului MD5 cu sarea are, de exemplu, următoarea formă:
MD5 (parola MD5 + sare)
Mai întâi există un hash al cuvântului, care este o parolă. La acest hash, se adaugă sare (un set aleatoriu de similari unic pentru fiecare utilizator), iar hash-ul parolei + sare este din nou un hash care va fi stocat în baza de date. Sarea este stocată în aceeași bază de date și este utilizată pentru a calcula hash-ul de fiecare dată când utilizatorul se conectează.
Acum, dacă un atacator va lua baza dvs. cu hashes, tabele curcubeu nu-l va ajuta, deoarece le puteți căuta numai cu hashes de cuvinte de dicționar sau seturi de numere. În acest caz, atacatorul, cel mai probabil, va folosi bruteforce. Având un hash și o sare pe mână, înarmat cu un procesor rapid, el va lua hașile până când el va primi un meci.

Ce va rezolva problema?






Trimiteți-le prietenilor: