Pentru a vă autentifica pe un site web, trebuie să furnizați un nume de utilizator și o parolă. Site-ul verifică apoi detaliile de autentificare pe care le-ați furnizat comparându-le cu detaliile pe care le-a stocat în baza de date. Dacă detaliile se potrivesc, accesul este acordat. Dacă detaliile nu se potrivesc, accesul este refuzat.
Din păcate, încălcările de date sunt un eveniment relativ frecvent. Încălcările de date pot fi o mare problemă, deoarece unul dintre biții de date vizați cel mai frecvent sunt datele utilizatorului, în special lista de nume de utilizator și parole. Dacă parolele sunt doar stocate așa cum sunt, în text simplu, atunci oricine are acces la baza de date poate accesa contul oricărui alt utilizator. Este ca și cum li s-ar înmâna un breloc cu cheia fiecărei uși dintr-un bloc de apartamente.
Deși se depune mult efort pentru prevenirea încălcării datelor în primul rând, se recomandă o strategie de apărare în profunzime. Mai exact, sfaturile de securitate susțin că parolele ar trebui să fie hashing, cu hash-ul parolei stocat vreodată. O funcție hash este o funcție unidirecțională care convertește întotdeauna aceeași intrare în aceeași ieșire. Chiar și o modificare minoră a intrării, totuși, produce o ieșire complet diferită. În mod critic, nu există nicio modalitate de a inversa funcția și de a transforma hash-ul ieșit înapoi în intrarea originală. Totuși, ceea ce puteți face este să hașați o nouă intrare și să vedeți dacă rezultatul se potrivește cu hash-ul stocat în baza de date. Dacă o face, știți că parola corespunde, fără să știți niciodată parola reală.
De asemenea, acest lucru înseamnă că, dacă un atacator încalcă baza de date, nu primește o listă de parole utile imediat, ci primește hashuri. Pentru a putea folosi aceste hashuri, acestea trebuie să fie sparte.
Schimbarea hash-urilor parolelor cu inteligență
Schimbarea unui hash de parolă este procesul de a afla care este parola originală pe care o reprezintă hash-ul. Pentru că nu există nicio modalitate de a inversa funcția hash și de a transforma hash-ul în parolă. Singura modalitate de a sparge un hash este să ghiciți parola. O metodă este să folosești un atac cu forță brută. Acest lucru implică literalmente încercarea tuturor parolelor posibile. Asta înseamnă să începeți de la „a”, să încercați fiecare literă, în ambele cazuri, și fiecare număr și simbol. Apoi atacatorul trebuie să încerce toate combinațiile de două caractere, combinațiile de trei caractere și așa mai departe. Creșterea posibilelor combinații de caractere este exponențială de fiecare dată când adăugați un caracter. Acest lucru face dificilă ghicirea eficientă a parolelor lungi chiar și atunci când algoritmii de hashing rapid sunt utilizați cu platforme puternice de cracare a GPU.
Un efort poate fi economisit analizând cerințele de parole ale site-ului și nu încercând parole care ar fi prea scurte pentru a fi permise sau care nu prezintă un număr, de exemplu. Acest lucru ar economisi ceva timp și încă se încadrează în clasa unui atac de forță brută care încearcă toate parolele permise. Atacurile cu forță brută, în timp ce sunt lente, vor - dacă sunt lăsate suficient de mult timp cu multă putere de procesare - vor sparge în cele din urmă orice parolă, deoarece vor fi încercate toate combinațiile posibile.
Problema atacurilor cu forța brută este că nu sunt foarte inteligenți. Un atac de dicționar este o variantă mult mai țintită. În loc să încerce doar orice parolă posibilă, încearcă o listă de parole specificate. Succesul acestui tip de atac depinde de lista de parole și de dicționarul în cauză.
Făcând presupuneri educate
Dicționarele de parole sunt de obicei construite din parole sparte anterior de la alte încălcări ale datelor. Aceste dicționare pot conține mii sau milioane de intrări. Acest lucru se bazează pe conceptul că oamenii sunt prost să creeze parole unice. Dovezile privind încălcările datelor arată că acest lucru este și cazul, din păcate. Oamenii încă folosesc variante ale cuvântului „parolă”. Alte subiecte obișnuite sunt echipele sportive, numele animalelor de companie, numele locurilor, numele companiilor, ura ta de muncă și parolele în funcție de dată. Aceasta din urmă tinde să se întâmple în mod special atunci când oamenii sunt forțați să-și schimbe în mod regulat parolele.
Utilizarea unui dicționar de parole reduce masiv numărul de presupuneri care trebuie făcute în comparație cu un atac cu forță brută. Dicționarele de parole tind, de asemenea, să conțină atât parole scurte, cât și mai lungi, ceea ce înseamnă că unele parole ar putea fi încercate, care nu ar fi atinse nici măcar cu ani sau cu forța brută. Abordarea se dovedește și ea de succes. Statisticile variază în funcție de încălcarea datelor și de dimensiunea și calitatea dicționarului folosit, dar ratele de succes pot depăși 70%.
Ratele de succes pot fi crescute și mai mult cu algoritmii de manipulare a cuvintelor. Acești algoritmi preiau fiecare cuvânt din dicționarul de parole și apoi îl modifică puțin. Aceste modificări tind să fie înlocuiri standard de caractere și adăugarea de numere sau simboluri finale. De exemplu, este obișnuit ca oamenii să înlocuiască litera „e” cu „3” și „s” cu „$” sau să adauge un semn de exclamare la sfârșit. Algoritmii de manipulare a cuvintelor creează duplicate ale fiecărei intrări din dicționarul de parole. Fiecare duplicat are o variantă diferită a acestor înlocuiri de caractere. Acest lucru crește semnificativ numărul de parole de ghicit și, de asemenea, crește rata de succes, în unele cazuri peste 90%.
Concluzie
Un atac de dicționar este o variantă țintită a unui atac de forță brută. În loc să încerce toate combinațiile de caractere posibile, este testat un subset de combinații de caractere. Acest subset este o listă de parole care au fost găsite anterior și, dacă este necesar, sparte în încălcări ale datelor din trecut. Acest lucru reduce masiv numărul de presupuneri care trebuie făcute în timp ce acoperă parolele care au fost folosite înainte și, în unele cazuri, văzute des. Un atac de dicționar nu are o rată de succes la fel de mare ca un atac cu forță brută. Cu toate acestea, aceasta presupune că aveți timp și putere de procesare nelimitate. Un atac de dicționar tinde să obțină o rată de succes decent mare mult mai rapid decât poate un atac cu forță brută. Acest lucru se datorează faptului că nu pierde timpul cu combinații extrem de puțin probabile de personaje.
Unul dintre principalele lucruri pe care ar trebui să le faceți atunci când veniți cu o parolă este să vă asigurați că aceasta nu va apărea pe o listă de cuvinte. O modalitate de a face acest lucru este să creați o parolă complexă, alta este să creați o parolă lungă. În general, cea mai bună opțiune este să creați o parolă lungă formată din câteva cuvinte. Este important doar ca acele cuvinte să nu constituie o frază reală, așa cum s-ar putea ghici. Ar trebui să nu aibă nicio legătură. Este recomandat să alegeți o parolă de peste 10 caractere, cu 8 drept minim absolut.