„Baza noastră de date a fost furată ieri. Dar nu vă faceți griji: parolele dvs. au fost criptate. ” Vedem în mod regulat declarații de genul acesta online, inclusiv ieri, de la Yahoo . Dar ar trebui să luăm cu adevărat aceste asigurări la valoarea nominală?
Realitatea este că baza de date a parolelor compromite sunt o preocupare, indiferent de modul în care o companie ar putea încerca să o rotească. Dar există câteva lucruri pe care le puteți face pentru a vă izola, indiferent cât de rele sunt practicile de securitate ale unei companii.
Cum ar trebui stocate parolele
Iată cum ar trebui companiile să stocheze parolele într-o lume ideală: creați un cont și furnizați o parolă. În loc să stocheze parola, serviciul generează un „hash” din parolă. Aceasta este o amprentă unică, care nu poate fi inversată. De exemplu, parola „parolă” se poate transforma în ceva care seamănă mai mult cu „4jfh75to4sud7gh93247g ...”. Când introduceți parola pentru a vă conecta, serviciul generează un hash din acesta și verifică dacă valoarea hash se potrivește cu valoarea stocată în baza de date. Serviciul nu salvează niciodată parola pe disc.
Pentru a determina parola reală, un atacator cu acces la baza de date ar trebui să calculeze în prealabil hashurile pentru parolele comune și apoi să verifice dacă acestea există în baza de date. Atacatorii fac acest lucru cu tabele de căutare - liste imense de hash-uri care se potrivesc cu parolele. Hash-urile pot fi apoi comparate cu baza de date. De exemplu, un atacator ar cunoaște hashul pentru „parola1” și apoi ar vedea dacă vreun cont din baza de date folosește acel hash. Dacă sunt, atacatorul știe că parola lor este „parola1”.
Pentru a preveni acest lucru, serviciile ar trebui să-și „sărăm” hashurile. În loc să creeze un hash din parola însăși, ele adaugă un șir aleatoriu în partea din față sau la sfârșitul parolei înainte de a o hash. Cu alte cuvinte, un utilizator ar introduce parola „parolă”, iar serviciul ar adăuga sare și hash o parolă care seamănă mai mult cu „parola35s2dg”. Fiecare cont de utilizator ar trebui să aibă propria sare unică și acest lucru ar asigura că fiecare cont de utilizator ar avea o valoare hash diferită pentru parola sa din baza de date. Chiar dacă mai multe conturi au folosit parola „parolă1”, acestea ar avea hashuri diferite din cauza valorilor diferite ale sării. Acest lucru ar învinge un atacator care a încercat să pre-calculeze hash-uri pentru parole. În loc să poată genera hashuri care se aplică simultan fiecărui cont de utilizator din întreaga bază de date, ar trebui să genereze hashuri unice 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 spun adesea să nu vă faceți griji. Un serviciu care utilizează proceduri de securitate adecvate ar trebui să spună că foloseau hashuri de parolă sărate. Dacă spun pur și simplu că parolele sunt „hash”, este mai îngrijorător. LinkedIn și-a scos parolele, de exemplu, dar nu le-au sărat - deci a fost o mare problemă când LinkedIn a pierdut 6,5 milioane de parole hash în 2012 .
Practici de parolă greșite
Acesta nu este cel mai greu lucru de implementat, dar multe site-uri web reușesc în continuare să-l încurce într-o varietate de moduri:
- Stocarea parolelor în text simplu : Mai degrabă decât să se deranjeze cu hashing, unii dintre cei mai răi infractori pot arunca parolele în format text simplu într-o bază de date. Dacă o astfel de bază de date este compromisă, parolele dvs. sunt în mod evident compromise. Nu ar conta cât de puternici erau.
- Ascunderea parolelor fără să le săriți : Unele servicii pot hash parolele și pot renunța acolo, optând pentru a nu utiliza săruri. Astfel de baze de date cu parole ar fi foarte vulnerabile la tabelele de căutare. Un atacator ar putea genera hash-uri pentru multe parole și apoi să verifice 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 utiliza o sare, dar pot reutiliza aceeași sare pentru fiecare parolă de cont de utilizator. Acest lucru este inutil - dacă s-ar folosi aceeași sare pentru fiecare utilizator, doi utilizatori cu aceeași parolă ar avea același hash.
- Utilizarea sărurilor scurte : Dacă sunt utilizate săruri de doar câteva cifre, ar fi posibil să se genereze tabele de căutare care să încorporeze fiecare sare posibilă. De exemplu, dacă s-ar folosi o singură cifră ca sare, atacatorul ar putea genera cu ușurință liste de hash-uri care încorporează fiecare sare posibilă.
Companiile nu vă vor spune întotdeauna întreaga poveste, așa că, chiar dacă spun că o parolă a fost hash (sau hash și sărată), este posibil să nu folosească cele mai bune practici. Greșește întotdeauna cu precauție.
Alte preocupări
Este probabil ca valoarea sării să fie prezentă și în baza de date a parolelor. Acest lucru nu este atât de rău - dacă s-ar folosi o valoare de sare unică pentru fiecare utilizator, atacatorii ar trebui să cheltuiască cantități masive de putere a procesorului, rupând toate aceste parole.
În practică, atât de mulți oameni folosesc parole evidente, încât ar fi ușor să se determine parolele multor conturi de utilizator. De exemplu, dacă un atacator vă cunoaște hash-ul și vă cunoaște sarea, poate verifica cu ușurință dacă utilizați unele dintre cele mai comune parole.
LEGATE DE: Cum atacatorii „piratează conturile” online și cum să vă protejați
Dacă un atacator o elimină și dorește să vă spargă parola, o poate face cu forță brută atâta timp cât știu valoarea sării - ceea ce probabil o fac. Cu acces local, offline la bazele de date cu parolă, atacatorii pot folosi toată bruta atacuri de forță ei vor.
Este posibil ca alte date cu caracter personal să se scurgă atunci când este furată o bază de date cu parole: nume de utilizator, adrese de e-mail și multe altele. În cazul scurgerii Yahoo, s-au scurs și întrebări și răspunsuri de securitate - care, după cum știm cu toții, facilitează accesul la contul cuiva.
Ajutor, ce ar trebui să fac?
Orice spune un serviciu atunci când baza de date a parolei este furată, este mai bine să presupunem că fiecare serviciu este complet incompetent și să acționeze în consecință.
Mai întâi, nu refolosiț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 utilizați parola respectivă numai pe acel site web, nu au aflat nimic util. Dacă folosiți aceeași parolă peste tot, aceștia vă pot accesa celelalte conturi. Aceasta este câte conturi de persoane devin „piratate”.
Dacă un serviciu devine compromis, asigurați-vă că modificați parola pe care o folosiț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 asta în primul rând.
De asemenea, ar trebui să luați în considerare folosind autentificarea cu doi factori , care vă va proteja chiar dacă un atacator vă învață parola.
LEGATE DE: De ce ar trebui să utilizați un manager de parole și cum să începeți
Cel mai important lucru nu este refolosirea parolelor. Bazele de date cu parole compromise nu vă pot face rău dacă utilizați o parolă unică peste tot - cu excepția cazului în care stochează altceva important în baza de date, cum ar fi numărul cardului dvs. de credit.
Credit de imagine: Marc Falardeau pe Flickr , Wikimedia Commons