III.

Protejarea identității dumneavoastră

Ce știu site-urile web despre dumneavoastră?

Dumneavoastră controlați informațiile pe care le oferiți site-urilor web pe care le vizitați. Nu ar trebui să le oferiți site-urilor mai multe informații decât acestea au nevoie pentru a furniza serviciul dorit de dumneavoastră. Dacă nu vă așteptați ca site-urile să vă ofere ceva la domiciliu, probabil că nu ar trebui să le dați adresa dumneavoastră doar pentru că site-urile vă solicită să procedați astfel. Același lucru se aplică și în cazul numărului dumneavoastră de telefon, a numelui complet sau chiar a adresei dumneavoastră de email. Cu cât mai puține informații oferiți site-urilor web, cu atât mai puțin veți avea de pierdut în cazul în care cineva fie vinde informațiile, fie cineva obține acces la contul dumneavoastră.

Exemplu

Atunci când au loc scurgeri de date, acestea sunt adesea postate pe internet, pentru știința celorlalți. Dacă ați dezvăluit numele de dinainte de căsătorie al mamei dumneavoastră sau numele animalului dumneavoastră de companie ca răspuns la o întrebare de securitate, aceste informații ar putea fi disponibile oricărei persoane care știe cum să utilizeze Google. Aceste tipuri de întrebări de securitate sunt inerent nesecurizate, deoarece numele de dinainte de căsătorie al mamei dumneavoastră, numele animalului dumneavoastră de companie sau prima dumneavoastră adresă sunt informații care se obțin de obicei foarte ușor.

Dar dacă informațiile care s-au scurs sunt parola dumneavoastră? Ați utilizat aceeași parolă în orice alt loc? Dacă da, atunci oricine poate încerca combinația dintre emailul dumneavoastră și parola și pentru alte site-uri. Adesea informațiile astfel dezvăluite sunt folosite în alte atacuri înainte să devină publice.

De obicei, parolele sunt primul obstacol în calea unui atac. În ultimele capitole vom prezenta alte elemente care pot împiedica, de asemenea, accesarea conturilor dumneavoastră de către atacatori. Această abordare a apărării în profunzime este o practică comună în securitatea cibernetică. Înseamnă că există mai multe straturi care protejează activul pe care-l doriți protejat. Dacă se strică un strat de apărare, de exemplu, parola dumneavoastră, acest fapt nu înseamnă că atacatorii au acces neîngrădit la informațiile dumneavoastră.

Note
Săgeți care încearcă să treacă prin straturi multiple perforate de apărare
Săgeți care încearcă să treacă prin straturi multiple perforate de apărare

Apărarea în profunzime este un concept utilizat în securitatea informațiilor prin care sunt amplasate straturi multiple de controale ale securității (apărare) la nivelul întregului sistem de tehnologie a informațiilor. Conceptul vizează să furnizeze redundanță în cazul în care eșuează un control al securității sau este exploatată o vulnerabilitate care poate acoperi aspecte privind personalul, procedurile, securitatea tehnică și fizică pe durata ciclului de viață al sistemului.

Pentru conturile de pe internet, parola este de obicei primul strat protector pe care-l aveți. Vom merge puțin mai în profunzime în ceea ce privește funcționarea parolelor în teorie înainte de a ne familiariza cu celelalte straturi pe care le putem utiliza.

Atacurile prin enumerare și nume de utilizator

Atacurile prin enumerare se utilizează de către atacatori pentru a stabili nume valabile de utilizatori ca un prim pas în dobândirea datelor de înregistrare ale unui utilizator. Zonele obișnuite pentru acest tip de atac includ funcțiile de înregistrare a utilizatorului și cele de „ați uitat parola”. De exemplu, în unele cazuri, un site poate fie sursa neintenționată a unei scurgeri de informații cu privire la membrii săi atunci când transmite diferite mesaje referitoare la încercările de înregistrare bazate pe existența numelui de utilizator sau a adresei de email.

Exemplu

Ați tastat vreodată greșit, din întâmplare, un nume de utilizator incorect și ați primit un mesaj de eroare, de tipul „numele de utilizator nu este valabil” sau ”numele de utilizator nu există”? Dacă site-ul are un mesaj similar care izolează doar ceea este incorect, și anume parola, atunci atacatorul poate utiliza aceste informații pentru a ști dacă un nume de utilizator este valabil. Acest fapt le permite atacatorilor să enumere liste enorme de emailuri, de exemplu, și să primească informații despre persoanele care au un cont pe site-ul țintă. Iată de ce este o practică bună ca site-urile web să aibă mesaje de eroare la înregistrare care nu izolează ceea ce este incorect la încercarea de înregistrare, cum ar fi „numele de utilizator SAU parola nu sunt valabile”.

În majoritatea situațiilor, aceste informații ca atare nu sunt dăunătoare. Cu toate acestea, dacă oricine poate verifica existența unui cont pe un serviciu de matrimoniale sau pentru escorte, aceste informații pot fi folosite împotriva respectivelor persoane.

Atacurile prin enumerare se pot folosi, de asemenea, pentru a dirija mai bine atacurile de tip phishing la adresa persoanelor și se utilizează pentru a ușura impactul atacurilor prin forță brută prin intermediul reducerii numărului de ținte posibile, de asemenea. Vom prezenta în scurtă vreme definițiile phisingului și ale forței brute.

Atacurile prin enumerare nu se limitează la formularele de înregistrare. Acestea se pot utiliza și odată cu resetarea parolei sau cu crearea contului. De exemplu, crearea contului protejează de obicei de crearea de conturi duble și va informa utilizatorul care încearcă să creeze un cont dublu că există deja un cont cu adresa de email sau cu numele de utilizator furnizate.

Pasul următor pentru a dobândi acces la utilizarea informațiilor de înregistrare este să se cunoască parola. În cele ce urmează ne vom concentra pe acest aspect.

Parole

Majoritatea site-urilor web pe care le utilizați vă identifică după combinația dintre un nume de utilizator și o parolă. Deoarece în calitatea noastră de utilizatori online avem zeci sau chiar sute de servicii diferite pe care le accesăm, în general încercăm să creăm parole care pot fi memorate. Problema cu parolele ușor de memorat este că, de obicei, sunt la fel de ușor de ghicit și de către atacatori. Dat fiind că parolele cele mai răspândite în 2020 erau „123456”, „123456789”, „qwerty” și „password”, nu este greu să piratezi informatic un număr enorm de conturi doar încercând aceste parole cu adrese de email la întâmplare.

Cele mai răspândite parole din 2020

  • 123456

  • 123456789

  • qwerty

  • password

  • 1234567

  • 12345678

  • 12345

  • iloveyou

  • 111111

  • 123123

Cerințele cele mai utilizate pentru configurarea parolelor au fost insuficiente de-a lungul timpului și i-au învățat pe oameni cum să-și creeze parole ușor de ghicit. Aceste recomandări greșite le-au cerut oamenilor să-și creeze parole care sunt greu de reținut dar ușor de ghicit de către computere.

Site-ul de caricaturi pe internet XKCD rezumă foarte bine securitatea parolelor.

Două chei de lungimi diferite
Două chei de lungimi diferite

O parolă bună nu trebuie neapărat să conțină simboluri obscure pentru a fi sigură. În general, cu cât este mai lungă parola, cu atât mai sigură este. Cerințele care vă obligă să includeți simboluri, semne minuscule și majuscule și numere în parole nu țin seama, de obicei, de cât de greu este de fapt să ghicești parolele. Cerințele extind keyspace (numărul de combinații posibile de parole de o lungime dată), deși același rezultat s-ar fi obținut și dacă s-ar fi cerut o parolă mai lungă.

Să luăm un exemplu:

Dacă setul posibil de semne care pot fi utilizate pentru o parolă este setul literelor cu minusculă din alfabetul englez, adică 26 de semne, iar lungimea parolei este de 6 semne la întâmplare, keyspace s-ar calcula după cum urmează:

266= 308,915,776 parole posibile

Note

simbolul „^” este adesea folosit pentru a semnifica „la puterea”, exprimat și ca 26. Nu trebuie să știți matematică în această situație, dar, dacă aveți această curiozitate, puteți tasta o ecuație de tipul 26^6 în majoritatea motoarelor de căutare online pentru a obține răspunsul

Dacă parola este de 8 semne la întâmplare, keyspace ar fi:

268= 208,827,064,576 parole posibile

După cum puteți vedea, keyspace devine mult mai mare dacă lungimea parolei crește cu doar 2 litere. Să luăm un alt exemplu de semne suplimentare și să adăugăm majuscule în combinație, dublând numărul de semne care pot fi utilizate pentru parolă.

526= 19,770,609,664 parole posibile

Observați imediat că keyspace este cu mult mai mare față de cât era când am început. Cu toate acestea, nu este nici măcar apropiat de keyspace pentru parola mai lungă alcătuită doar din litere minuscule. Ce-ar fi să adăugăm câteva simboluri generale precum „!”, „“”, „#”, „¤”, „%”, „&”, „/”, „(”, „)” și „=”? Acest lucru înseamnă că numărul de semne disponibile este acum 62.

626= 56,800,235,584 parole posibile

Odată cu adăugarea celor 10 semne suplimentare în setul de semne permise, aproape că am mărit de patru ori keyspace disponibil. În același timp, am făcut parolele mult mai greu de reținut. Cu toate acestea, keyspace este cu mult mai mult decât în exemplul cu parola de 8 semne.

O parolă aleasă pur la întâmplare învinge și alte tipuri de atacuri, precum atacurile prin intermediul dicționarului. Atacurile prin intermediul dicționarului utilizează faptul că utilizatorii încearcă să creeze parole memorabile cu ajutorul cuvintelor, al numelor din dicționar, sau al variațiilor acestora. Cea de-a doua ediție a Dicționarului Oxford English din 20 de volume conține intrări pentru 171 476 de cuvinte, deci, dacă utilizați o parolă cu doar un singur cuvânt, vă puteți gândi la aceasta ca utilizând un keyspace de 170 000. Adesea,aceste cuvinte nu sunt utilizate ca atare, ci sunt modificate într-un mod care le păstrează capacitatea de a fi memorabile.

Exemplu

Pentru a merge cu exemplul chiar și mai departe, să vedem cât de extins este keyspace dacă se utilizează doar cuvinte în limba engleză. Să presupunem că alegem aleatoriu 3 cuvinte în limba engleză din dicționar și creăm o parolă cu această combinație. Calculul ar fi de:

170 000^3 = 4 913 000 000 000 000

O parolă ca aceasta ar fi mult mai ușor de memorat și, dacă nu ne îngrijorează decât spargerea acesteia prin forța brută, este și cu mult mai greu de ghicit. Există și alte motive pentru care keyspace ar putea să nu fie atât de extins față de cum am presupune inițial. Majoritatea vorbitorilor de engleză utilizează doar un vocabular de aproximativ 3 000 de cuvinte, iar parolele alese astfel reflectă acest fapt. De asemenea, oamenii se pricep destul de puțin să aleagă aleatoriu. Ceea ce nouă ne pare o combinație aleatorie de cuvinte ar putea fi afectată ușor de context, de gândurile noastre sau de cuvintele selectate anterior. Dacă utilizați o parolă doar din cuvinte, folosiți un generator de parole în loc să vă bizuiți pe conceptul uman de aleatoriu.

Citiți mai multe despre această metodă.

O modalitate obișnuită prin care oamenii încearcă să evite cuvinte din dicționar utilizează substituțiile sau adăugarea unui număr la cuvântul respectiv pentru a crea o parolă. Din nefericire, aceste modificări sunt, în general, bine înțelese, iar rutina unui calculator este de a rula toate variațiile prognozate. Înlocuiri simple, precum înlocuirea literei „o” cu numărul „0” nu face parola decât mai greu de reținut, însă nu obligă un computer să lucreze mai mult. Aceste simple înlocuiri nu extind semnificativ respectivul keyspace. Nu se întâmplă astfel nici în cazul adăugării unui număr sau a anului curent la începutul sau la sfârșitul unui cuvânt. Programele software de descifrat parole și oamenii care au creat aceste programe cunosc toate aceste trucuri și au ținut sema de ele.

Entropia

Tăria unei parole de obicei nu se măsoară doar după spațiul posibilelor taste. „Entropie” este un termen utilizat, de asemenea, în securitatea cibernetică - înseamnă o modalitate de a măsura dificultatea asumată a spargerii parolelor în lumea reală. Entropia se calculează luând funcția matematică „log2” din keyspace (nu vă faceți probleme cu matematica, nu trebuie să o faceți dumneavoastră, dar, dacă doriți cu adevărat, puteți tasta formula în majoritatea motoarelor de căutare pentru a o rezolva. De exemplu, încercați „log2(26^8)” pe www.google.com).

Așadar, ce înseamnă entropia în practică? Dacă se utilizează rezultatul calculului entropiei, tăria parolei se poate măsura cu ajutorul acestui tabel:

<28 biți = foarte slabă; ar putea ține la distanță pe membrii familiei

28-35 biți = slabă; ar trebui să țină la distanță pe majoritatea oamenilor, adesea suficientă pentru parolele de înregistrare într-un desktop

36-59 biți = rezonabilă; parole foarte sigure pentru rețea și parole pentru întreprinderi

60-127 biți = puternică; poate fi bună pentru păstrarea informațiilor financiare

128+ biți = foarte puternică; adesea exagerată

Note

În exemplul nostru anterior, entropia unei parole de 8 semne ar fi:

log2(26^8) = 37,6 biți

O parolă de 6 semne ar avea o entropie de:

log2(26^6) = 28,2 biți

În exemplul de mai sus, entropia a 8 semne aleatorii (37 biți) rar ajunge în categoria parolelor rezonabile. O parolă de 15 semne (70 biți) ar fi puternică, însă tot nu este în categoria parolelor foarte puternice. Caracterul exponențial al acestor calcule înseamnă că dacă parola este mai lungă, acest fapt poate avea o influență enormă asupra dificultății de a sparge respectiva parolă.

Entropia, deși utilă, nu este un parametru infailibil. O parolă de doar 8 semne tot se poate considera destul de nesigură în mare măsură, vom prezenta care este motivul acestei afirmații în secțiunea de mai jos.

Cum se sparg parolele

Pentru a vedea cum se sparg parolele, mai întâi trebuie să înțelegem cum sunt acestea protejate.

Parolele sunt stocate, de obicei, într-o bază de date „criptată” cu ceva ce se numește un algoritm de compresie unidirecțională. Un algoritm de compresie este un cifru, utilizat la transformarea parolei dumneavoastră din text simplu în text codificat. Funcționează doar într-o singură direcție. Un text prelucrat cu un algoritm de compresie securizată nu poate fi făcut să revină la starea inițială, chiar dacă se cunoaște algoritmul. Rezultatul final obținut în urma prelucrării cu ajutorul algoritmului de compresie este cunoscut ca hash. Un hash este o secvență de semne alcătuită din litere și cifre, care reprezintă versiunea codificată a textului introdus inițial.

Note

Strict vorbind, un hash nu este o criptare. Criptarea este un proces bidirecțional care poate fi parcurs în sens invers, în timp ce hashingul este unidirecțional. Dacă algoritmul de compresie funcționează cum trebuie, valoarea finală nu poate fi făcută să revină la starea inițială.

Puteți citi mai multe despre funcțiile hash criptografice pe Wikipedia

Să luăm exemplul unui algoritm binecunoscut, considerat acum nesigur, algoritmul de compresie: MD5. Cu ajutorul MD5, dacă comprimați textul „password” obțineți un hash final codificat de „5f4dcc3b5aa765d61d8327deb882cf99”.

O mică modificare în textul original va crea o valoare hash total diferită. Aceasta este o altă funcție valoroasă a unui hash. Nu puteți estima ce hash se va baza pe datele inițiale.

De exemplu, un hash obținut prin MD5 pentru „passwore” este „a826176c6495c5116189db91770e20ce”, care nu seamănă cu hashul pentru „password”.

Atunci când se înregistrează un utilizator, parola text clar a acestuia este supusă compresiei, iar hashul rezultant se compară cu valoarea hash (versiunea codificată a parolei utilizatorului) stocată în baza de date. Dacă acestea corespund, i se permite utilizatorului să se înregistreze.

Dată fiind toată această protecție: parolele din text simplu ascunse în spatele unui cod imprevizibil, prin intermediul unui algoritm ireversibil - cum pot fi sparte parolele? Ce face ca algoritmi de compresie mai vechi ca MD5 să fie vulnerabili?

Note

O valoare comprimată (versiunea codificată a parolei originale) poate fi precalculată și stocată într-o listă enormă de parole. Aceste fișiere se numesc tabele curcubeu și se găsesc ușor pe internet. De exemplu, puteți găsi ușor un fișier cu toate valorile hash create cu ajutorul unui algoritm MD5 pentru orice parolă care are până la 10 semne care conține orice combinație de litere minuscule și numere (abcdefghijklmnopqrstuvwxyz0123456789).

Tabelele curcubeu sunt create prin rularea dicționarelor de parole (cuvinte reale din dicționar, precum și liste de parole încetățenite) descoperite pe internet cu ajutorul algoritmilor de compresie. Hashurile codificate rezultante sunt comparate cu versiunile inițiale ale parolelor corespunzătoare, alcătuite din text pur, după care sunt utilizate la piratarea informatică a conturilor de utilizator.

Solniță
Solniță

„Salted” și „Hashed”

Înseamnă oare că funcția hashing este depășită pentru majoritatea parolelor? Nu! Vestea cea bună este că programatorii au mai multe tehnici inteligente la îndemână pentru a complica descoperirea valorii hash pentru o parolă. Se aplică adesea de multe ori o funcție hash pentru a crește intervalul de timp necesar pentru verificarea unei parole și pentru a întârzia astfel atacurile comise prin forță brută.

Un alt mod prin care programatorii protejează parolele utilizatorilor lor este cu ajutorul unei tehnici cunoscute drept „salting” (sărare). În această situație, se adaugă textului pur o valoare specială, denumită „salt” (sare) după ce utilizatorul își introduce parola, însă înainte de aplicarea funcției hashing, pentru a împiedica utilizarea unei liste de hash-uri precalculate (tabelele curcubeu). Dacă este aplicată, valoarea „salt” împiedică utilizarea fișierului de tabel curcubeu și reprezintă o modalitate ușoară de a împiedica aceste tipuri de atacuri.

De exemplu, utilizarea algoritmului hash MD5, dacă adăugăm o „sare” aleatorie la textul pur „password” obținem MD5 („xhsr2dpassword”), care este „ebf20a6c99eccaefa0bf4d88a5bd3456”. Acesta este un rezultat complet diferit față de hash-ul original produs de MD5 pentru „password” de mai sus pe care oricare hacker îl poate identifica într-un tabel curcubeu de pe internet. Dacă se „sărează” parola, chiar dacă am avea un tabel curcubeu cu valori hash pentru fiecare parolă posibilă alcătuită din litere minuscule și având o lungime maximă de 10, n-am găsi corespondența pentru hash și am fi împiedicat utilizarea valorilor hash precalculate.

„Sărarea” în practică înseamnă că atacatorii trebuie să atace cu ajutorul „forței brute” toate parolele pentru a pirata cu succes valorile hash codificate într-o bază de date.

Utilizarea forței brute la spargerea parolelor înseamnă utilizarea parolelor computerelor pentru a încerca programatic valori hash diferite până ce se găsește o valoare hash corespondentă. Funcțiile hashing se bazează pe dificultatea de a crea două mesaje diferite care produc aceeași valoare hash. Acest fapt se numește coliziune. Dacă se poate forța o funcție hash pentru a genera aceleași valori pentru date inițiale diferite, se consideră spartă.

Note

Poate fi greu cu adevărat să aplici parolelor forța brută. Cu ajutorul computerelor moderne, se pot calcula mii de valori hash pe secundă. Cardurile grafice din computerele moderne sunt hardware specializat și sunt cu adevărat eficace la calcularea valorilor hash. În unele cazuri, acestea pot ajunge la miliarde de hashuri pe secundă.

Cu toate acestea, o parolă lună de 15 semne minuscule poate avea 1 677 259 342 285 725 925 376 variații diferite, iar pentru a calcula atât de multe valori hash cu viteza de 1 miliard de hashuri pe secundă vor fi necesari puțin peste 50 000 ani. Intervalul de calcul scade la aproximativ 3,5 minute pentru o parolă cu o lungime de 8 semne.

Ca utilizator al unui serviciu online, de obicei nu vă puteți asigura dacă dezvoltatorii au utilizat măsurile preventive posibile. Aceasta înseamnă că ar trebui să plecați de la presupunerea s-ar putea utiliza tabelele curcubeu împotriva parolelor dumneavoastră. În practică înseamnă că ar trebui să preferați parole mai lungi, deoarece acestea fac ca majoritatea tabelelor curcubeu să nu mai fie practice. Gândiți-vă pur și simplu la exemplul de mai sus - prin adăugarea a 7 semne la parola dumneavoastră puteți face viața unui hacker cu MULT mai grea!

Next section
IV. Cum să vă securizați parolele