17Aug
"Baza de date a parolei a fost furată ieri. Dar nu vă faceți griji: parolele dvs. au fost criptate. "În mod regulat vedem declarații ca aceasta online, inclusiv ieri, de la Yahoo. Dar ar trebui să luăm cu adevărat aceste garanții la valoarea nominală?
Realitatea este că baza de date cu parole compromisoare sunt o preocupare, indiferent de modul în care o companie poate încerca să-l rotească.Dar există câteva lucruri pe care le puteți face pentru a vă izola, indiferent cât de rău sunt practicile de securitate ale unei companii.
Cum ar trebui stocate parolele
Iată cum ar trebui să stocheze parolele într-o lume ideală: Creați un cont și furnizați o parolă.În loc să stocheze parola în sine, serviciul generează o "hash" din parolă.Aceasta este o amprentă unică care nu poate fi inversată.De exemplu, parola "parola" se poate transforma în ceva care arată mai mult ca "4jfh75to4sud7gh93247g. ..".Când introduceți parola pentru a vă conecta, serviciul generează un hash din acesta și verifică dacă valoarea hash corespunde valorii stocate în baza de date.În nici un moment serviciul nu vă salvează parola pe disc.
Pentru a determina parola actuală, un atacator care are acces la baza de date va trebui să pre-calculeze hash-urile pentru parole comune și apoi să verifice dacă acestea există în baza de date. Atacatorii fac acest lucru cu tabelele de căutare - liste uriașe de hashes care se potrivesc cu parolele. Chestiile pot fi apoi comparate cu baza de date. De exemplu, un atacator ar cunoaște hash-ul pentru "password1" și apoi va vedea dacă orice conturi din baza de date utilizează acel hash. Dacă sunt, atacatorul știe că parola lor este "parola1".
Pentru a preveni acest lucru, serviciile ar trebui să "sare" hashesurile lor.În loc să creați un hash din parola în sine, ele adaugă un șir aleatoriu în fața sau la sfârșitul parolei înainte de a-l șterge. Cu alte cuvinte, un utilizator va introduce parola "parola" și serviciul ar adăuga sarea și hash-ul o parolă care ar părea mai degrabă "password35s2dg." Fiecare cont de utilizator ar trebui să aibă sare unică proprie și acest lucru ar asigura că fiecare cont de utilizatorar avea o valoare hash diferită pentru parola lor în baza de date. Chiar dacă mai multe conturi au folosit parola "password1", vor avea diferite hash-uri din cauza diferitelor valori ale sarei. Acest lucru ar învinge un atacator care a încercat să pre-calcula hashes pentru parole.În loc să fie capabili să genereze hash-uri care se aplică fiecărui cont de utilizator dintr-o dată în întreaga bază de date, aceștia ar trebui să genereze hashes-uri unice pentru fiecare cont de utilizator și sarea sa unică.Acest lucru ar necesita mult mai mult timp de calcul și memorie.
De aceea, serviciile spun adesea că nu vă faceți griji. Un serviciu care utilizează proceduri de securitate adecvate ar trebui să spună că utilizează hashes de parole sărate. Dacă ei spun pur și simplu că parolele sunt "hashed", asta e mai îngrijorător. LinkedIn și-a spart parolele, de exemplu, dar nu le-a sare - deci a fost o afacere mare când LinkedIn a pierdut 6,5 milioane de parole rulate în 2012.
Bad Password Practices
Acest lucru nu este cel mai greu de implementat,încă reușesc să o dezamăgească într-o varietate de moduri:
- Stocarea parolelor în text simplu : Mai degrabă decât să te deranjeze cu hash, unii dintre cei mai răi infractori ar putea să arunce parolele în formă de text simplu într-o bază de date. Dacă o astfel de bază de date este compromisă, parolele dvs. sunt în mod evident compromise. Nu contează cât de puternici sunt.
- Hashing parolele fără a le săruri : Unele servicii pot săruri parolele și să renunțe acolo, optând să nu folosească săruri. Aceste baze de date de parole ar fi foarte vulnerabile la tabelele de căutare. Un atacator ar putea genera hash-urile pentru mai multe parole și apoi verifica dacă acestea există în baza de date - ar putea face acest lucru pentru fiecare cont simultan dacă nu s-ar folosi sare.
- Reutilizarea sărurilor : Unele servicii pot folosi o sare, dar pot reutiliza aceeași sare pentru fiecare parolă a contului de utilizator. Acest lucru este inutil - dacă aceeași sare ar fi fost utilizată pentru fiecare utilizator, doi utilizatori cu aceeași parolă ar avea același hash.
- Utilizarea sarelor scurte : Dacă se folosesc săruri de doar câteva cifre, ar fi posibil să se genereze tabele de căutare care includ orice sare posibilă.De exemplu, dacă o singură cifră a fost utilizată ca o sare, atacatorul ar putea genera cu ușurință liste de hashes care încorporează orice sare posibilă.
nu vă vor spune întotdeauna întreaga poveste, deci chiar dacă spun că o parolă a fost spartă( sau hashed și sărat), este posibil ca acestea să nu folosească cele mai bune practici. Mereu se întâmplă o eroare din partea prudenței.
Alte preocupări
Este probabil că valoarea sării este prezentă și în baza de date a parolei. Nu este chiar atât de rău - dacă ar fi fost folosită o valoare unică de sare pentru fiecare utilizator, atacatorii ar trebui să cheltuiască cantități masive de putere CPU care să spargă toate aceste parole.
În practică, atât de mulți utilizatori folosesc parole evidente că probabil ar fi ușor să determinați mai multe parole de conturi de utilizatori. De exemplu, dacă un atacator știe hash-ul dvs. și știu sarea dvs., ei pot verifica cu ușurință pentru a vedea dacă utilizați unele dintre cele mai comune parole.
Dacă un atacator o are pentru dvs. și dorește să vă spargă parola, o pot face cu forța bruta atâta timp cât cunosc valoarea sarei pe care probabil o fac. Cu acces local, offline la bazele de date cu parole, atacatorii pot folosi toate atacurile de forță brute pe care le doresc.
Alte date personale sunt, de asemenea, posibile scurgeri atunci când o bază de date de parolă este furat: nume de utilizator, adrese de e-mail și multe altele.În cazul scurgerii Yahoo, s-au scurs și întrebări de securitate și răspunsuri - care, după cum știm cu toții, ușurează accesul la contul cuiva. Ajutor
, ce ar trebui să fac?
Oricare ar spune un serviciu atunci când baza de date pentru parole este furată, este mai bine să presupunem că fiecare serviciu este complet incompetent și acționează în consecință.
În primul rând, nu reutilizați parolele pe mai multe site-uri web. Utilizați un manager de parole care generează parole unice pentru fiecare site web. Dacă un atacator reușește să descopere că parola dvs. pentru un serviciu este "43 ^ tSd% 7uho2 # 3" și folosiți această parolă doar pe acel site specific, nu au învățat nimic util. Dacă utilizați aceeași parolă peste tot, ei ar putea accesa celelalte conturi. Acesta este modul în care conturile multor persoane devin "hacked".
Dacă un serviciu devine compromis, asigurați-vă că schimbați parola pe care o utilizați acolo. De asemenea, ar trebui să schimbați parola pe alte site-uri dacă o reutilizați acolo - dar nu ar trebui să faceți acest lucru în primul rând.
De asemenea, trebuie să luați în considerare utilizarea autentificării cu două factori, care vă va proteja chiar dacă un atacator vă învață parola.
Cel mai important lucru nu este reutilizarea parolelor. Bazele de date parola compromise nu vă pot răni dacă folosiți o parolă unică peste tot - cu excepția cazului în care stochează altceva important în baza de date, cum ar fi numărul cărții de credit.
Credit de imagine: Marc Falardeau pe Flickr, Wikimedia Commons