De ce trebuie să vă îngrijorați de fiecare dată când baza de date a parolei unui serviciu este scursă
"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 asigurări la valoarea nominală?
Realitatea este că compromisurile bazei de date pentru parole sunteți 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 de cât de proaste sunt practicile de securitate ale companiei.
Cum ar trebui să fie stocate parolele
Iată cum companiile ar trebui să stocheze parole î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 "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 niciun 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 imense de hash-uri 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ă "săruie" coșurile lor. În loc să creați un hash de la parola însăși, aceștia adaugă un șir aleatoriu în fața sau la sfârșitul parolei înainte de a-l șterge. Cu alte cuvinte, un utilizator ar introduce parola "parola", iar serviciul ar adăuga sarea și hash-ul o parolă care arata mai degrabă "password35s2dg." Fiecare cont de utilizator ar trebui să aibă propria sa sare unică și acest lucru ar asigura că fiecare cont de utilizator ar avea o valoare hash diferită pentru parola lor în baza de date. Chiar dacă mai multe conturi au folosit parola "password1", ar 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 unic pentru fiecare cont de utilizator și sarea sa unică. Acest lucru ar necesita mult mai mult timp de calcul și memorie.
Acesta este motivul pentru care serviciile adesea spun că nu vă faceți griji. Un serviciu care utilizează proceduri de securitate adecvate ar trebui să spună că folosesc hashes de parolă sărate. Dacă ei spun pur și simplu că parolele sunt "hashed", asta e mai îngrijorător. LinkedIn și-a salvat parolele, de exemplu, dar nu le sare - deci a fost o afacere mare când LinkedIn a pierdut 6,5 milioane de parole rulate în 2012.
Metode de parole greșite
Acest lucru nu este cel mai greu de pus în aplicare, dar multe site-uri reușesc să-l încurce într-o varietate de moduri:
- Stocarea parolelor în text simplu: Mai degrabă decât să deranjeze cu hash, unii dintre cei mai răi infractori pot doar 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 erau.
- Hashing parolele fără a le salting: Unele servicii pot rupe parolele și pot renunța 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ă de cont de utilizator. Acest lucru este inutil - daca aceeasi sare a fost folosita pentru fiecare utilizator, doi utilizatori cu aceeasi parola ar avea acelasi hash.
- Folosirea sarelor scurte: Dacă se utilizează săruri de doar câteva cifre, ar fi posibil să se genereze tabele de căutare care încorporează 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ă.
Companiile nu vă vor spune mereu î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 erori pe partea de precauție.
Alte preocupări
Probabil că valoarea sarei este prezentă și în baza de date a parolei. Nu este așa 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ă rupă 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 știe 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 o forță bruta atâta timp cât știu 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, probabil scurgeri atunci când o bază de date de parolă este furat: Nume de utilizator, adrese de e-mail și multe altele. În cazul scurgeri 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 multe conturi ale oamenilor 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 baze de date 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 dvs. de credit.
Image Credit: Marc Falardeau pe Flickr, Wikimedia Commons