Complexitatea (sau puterea , puterea ) unei parole este o măsură a evaluării timpului care trebuie petrecut ghicind parola sau selectând-o prin orice metodă, de exemplu, forța brută . O estimare a câte încercări (timp) este nevoie în medie pentru ca un atacator să ghicească o parolă. O altă definiție a termenului este o funcție de lungimea parolei, complexitatea și imprevizibilitatea acesteia.
O parolă slabă este o parolă care poate fi ușor de ghicit sau forțată. O parolă puternică este o parolă greu de ghicit și care durează mult timp pentru a fi selectată prin căutare cu forță brută.
Utilizarea parolelor complexe crește timpul necesar unui atacator pentru a ghici o parolă, dar nu elimină nevoia de a utiliza alte măsuri de securitate. Eficacitatea unei parole cu o anumită putere depinde de proiectarea și implementarea software-ului sistemelor de autentificare , în special de cât de repede va răspunde sistemul de autentificare la un atacator atunci când încearcă să ghicească parola și cât de sigur sunt stocate informațiile despre parolă. si transmis. Riscurile sunt reprezentate și de unele mijloace de încălcare a securității computerelor care nu sunt legate de complexitatea parolei. Acestea sunt metode precum phishing , înregistrarea tastelor , interceptarea telefonului, inginerie socială , căutarea de informații utile în coșul de gunoi, atacuri pe canale laterale , vulnerabilități software , uși din spate , exploit -uri .
Există doi factori care determină complexitatea unei parole:
Primul factor este determinat de modul în care este stocată parola și pentru ce este folosită. Al doilea factor este determinat de lungimea parolei, setul de caractere utilizat și modul în care a fost creată parola.
Cea mai evidentă modalitate de a testa o ipoteză este să încerci să folosești o parolă ghicită pentru a obține acces la o resursă protejată prin parolă. Cu toate acestea, această metodă poate fi lentă sau chiar imposibilă, deoarece este destul de comun ca sistemele să întârzie sau să blocheze accesul la un cont după mai multe încercări de a introduce parole incorecte. Sistemele care folosesc parole pentru autentificare trebuie să le stocheze într-o formă oarecare pentru reconciliere cu parolele introduse de utilizatori. De obicei, în locul unei parole, este stocată valoarea funcției hash criptografice a parolei. Dacă funcția hash este suficient de complexă, este dificil să se calculeze parola din hash-ul parolei, ceea ce înseamnă că un atacator ar putea să nu poată recupera parola din hash-ul furat. Cu toate acestea, cunoașterea funcției de hash și hash a parolei permite unui atacator să verifice rapid parolele ghicite fără a accesa sistemul atacat.
Dacă o parolă este folosită pentru a genera o cheie criptografică folosită pentru a cripta datele, un atacator poate verifica rapid dacă o parolă ghicită este corectă, văzând dacă datele criptate sunt decriptate cu succes.
Dacă sistemul de stocare a parolelor nu folosește o sare criptografică , atunci un atacator poate precalcula valori hash pentru parolele comune și pentru parolele care sunt mai mici de o anumită lungime. Folosind hashurile primite, un atacator poate recupera rapid parolele din memoria cache. Hash-urile de parole precalculate pot fi stocate eficient folosind un tabel curcubeu . Astfel de tabele sunt disponibile pe Internet pentru unele sisteme publice de autentificare cu parole.
Parolele sunt generate fie automat (folosind generatoare de numere aleatorii ), fie de către o persoană. Puterea unei parole pentru un atac cu forță brută poate fi calculată exact. În cele mai multe cazuri, parolele sunt create de oameni, cum ar fi atunci când se creează conturi pentru sisteme informatice sau site-uri web. Oamenii creează parole pe baza unor sfaturi sau a unui set de reguli, dar tind să urmeze tipare care joacă în mâinile atacatorului. Listele de parole alese frecvent sunt comune pentru utilizarea în programele de ghicire a parolelor. Dicționarul oricărei limbi este o astfel de listă, astfel încât cuvintele din dicționar sunt considerate parole slabe. Câteva decenii de analiză a parolelor în sistemele informatice cu mai mulți utilizatori au arătat [1] că mai mult de 40% dintre parole sunt ușor de ghicit folosind doar programe de calculator și chiar mai multe pot fi ghicite atunci când informațiile despre un anumit utilizator sunt luate în considerare în timpul un atac.
Generarea automată a parolei, dacă este făcută corect, ajută la evitarea oricărei conexiuni între parolă și utilizatorul acesteia. De exemplu, este puțin probabil ca numele animalului de companie al utilizatorului să fie generat de un astfel de sistem. Pentru o parolă aleasă dintr-un spațiu suficient de mare de posibilități, căutarea prin forță brută poate deveni aproape imposibilă. Cu toate acestea, parolele cu adevărat aleatorii pot fi dificil de generat și, în general, dificil de reținut de utilizator.
Complexitatea parolei în industria calculatoarelor este de obicei măsurată în termeni de entropie informațională (un concept din teoria informației ), măsurată în biți. În loc de numărul de încercări necesare pentru a ghici parola, se calculează logaritmul de bază 2 al acelui număr, iar numărul rezultat se numește numărul de „biți de entropie” din parolă. O parolă cu, să zicem, complexitate de 42 de biți calculată în acest mod va corespunde unei parole de 42 de biți generate aleatoriu . Cu alte cuvinte, pentru a găsi o parolă cu complexitate de 42 de biți prin forță brută, trebuie să creați 2 42 de parole și să încercați să le utilizați; una dintre cele 242 de parole va fi corectă. Conform formulei, dacă lungimea parolei este mărită cu un bit, numărul de parole posibile se va dubla, ceea ce va face ca sarcina atacatorului să fie de două ori mai dificilă. În medie, un atacator va trebui să verifice jumătate din toate parolele posibile înainte de a o găsi pe cea potrivită. Vezi legea numerelor mari .
Parolele aleatorii sunt create prin selectarea aleatorie a oricărui număr de caractere din orice set, astfel încât alegerea oricărui caracter din set să fie la fel de probabilă. Complexitatea unei parole aleatoare depinde de entropia generatorului de numere aleatorii utilizat; sunt adesea folosiți generatori de numere pseudoaleatoare . Multe generatoare de parole disponibile public folosesc generatoare de numere aleatorii care se găsesc în bibliotecile de software care oferă entropie limitată. Cu toate acestea, majoritatea sistemelor de operare moderne au generatoare de numere aleatorii puternice din punct de vedere criptografic, care sunt potrivite pentru generarea de parole. Zarurile obișnuite pot fi folosite și pentru a genera o parolă aleatorie . Programele concepute pentru a genera parole aleatoare tind adesea să garanteze că rezultatul va satisface politica locală de parole; de exemplu, creând întotdeauna o parolă dintr-un amestec de litere, cifre și caractere speciale. Complexitatea unei parole aleatorii, măsurată în termeni de entropie informațională, va fi egală cu
unde N este numărul de caractere posibile și L este numărul de caractere din parolă. H se măsoară în biți.
Set de caractere | Număr de caractere, N | Entropie pe simbol, H , biți |
---|---|---|
Cifre arabe (0-9) | zece | 3,3219 |
Cifre hexazecimale ( 0-9, AF) | 16 | 4,0000 |
Litere latine mici (az) | 26 | 4,7004 |
Cifre arabe și litere latine mici (az, 0-9) | 36 | 5,1699 |
Literele mici și mari ale alfabetului latin (az, AZ) | 52 | 5,7004 |
Cifre arabe, litere mici și mari ale alfabetului latin (az, AZ, 0-9) | 62 | 5,9542 |
Toate caracterele ASCII imprimabile | 95 | 6,5699 |
Oamenii tind să creeze parole cu entropie insuficientă. Unii magicieni folosesc această caracteristică umană pentru a distra și a amuza publicul ghicind numerele presupus aleatorii pe care publicul le-a ghicit.
De exemplu, o analiză a trei milioane de parole cu opt caractere create de om a arătat că litera „e” a fost folosită în parole de 1,5 milioane de ori, în timp ce litera „f” a fost folosită doar de 250.000 de ori . Cu o distribuție uniformă, fiecare caracter ar apărea de 900.000 de ori . Cel mai frecvent număr este „1”, în timp ce cele mai populare litere sunt „a”, „e”, „o” și „r” [2] .
Institutul Național de Standarde și Tehnologie (SUA) (NIST) sugerează utilizarea următorului algoritm pentru a estima entropia unei parole create de o persoană și fără a include caractere din alfabete non-engleze:
Conform acestui algoritm, entropia unei parole create de om, formată din 8 caractere, care nu conține majuscule și care nu conține caractere non-alfabetice, va fi de aproximativ 4 + 7 * 2 = 18 biți . Algoritmul se bazează pe presupunerea că oamenii aleg parole cu aceeași entropie ca și textul în limba engleză.
În scopuri practice, parolele ar trebui să fie atât de complexitate rezonabilă, cât și funcționale pentru utilizatorul final, dar suficient de complexe pentru a fi protejate împotriva atacurilor deliberate. Parolele complexe pot fi uitate cu ușurință și sunt mai probabil să fie notate pe hârtie, ceea ce implică un anumit risc. Pe de altă parte, dacă utilizatorilor li se cere să memoreze parole, vor veni cu parole mai ușoare, ceea ce va crește serios riscul de hacking.
Au fost găsite unele criterii de fiabilitate la căutarea cheii utilizate pentru a cripta datele folosind metoda forței brute . Această problemă nu este aceeași, deoarece aceste metode implică un număr astronomic de încercări, dar rezultatele vă pot ajuta să vă decideți asupra alegerii parolei. În 1999, membrii Electronic Frontier Foundation au spart cifrul DES pe 56 de biți în mai puțin de o zi folosind hardware special conceput [3] . În 2002, membrii comunității distributed.net au finalizat cracarea unei chei pe 64 de biți în 4 ani, 9 luni și 23 de zile [4] . Și pe 12 octombrie 2011, comunitatea distributed.net a estimat că ar dura 124,8 ani pentru a sparge o cheie pe 72 de biți folosind capabilitățile de atunci [5] . Datorită complexității enorme și limitărilor asociate cu înțelegerea noastră a legilor fizicii, nu se poate aștepta ca niciun computer digital (sau o combinație a acestora) să poată sparge un cifr de 256 de biți folosind forța brută [6] . Într-un fel sau altul, în teorie există posibilitatea ( algoritmul lui Shor ) ca computerele cuantice să poată rezolva astfel de probleme, dar nu se știe dacă acest lucru va fi posibil în practică.
Ca urmare, nu se poate da un răspuns exact la o problemă oarecum diferită, problema complexității optime a parolei. Institutul Național de Standarde și Tehnologie (SUA) (NIST) recomandă utilizarea unei parole cu entropie de 80 de biți pentru cea mai bună securitate, care poate fi obținută cu un alfabet de 95 de caractere (adică un set de caractere din ASCII ) de 12 caractere parola (12 * 6,5 biți = 78).
Recomandările pentru alegerea unei parole bune sunt concepute pentru a face parola mai rezistentă la diverse trucuri de crackeri [7] [8] .
Unele recomandări sfătuiesc să nu scrieți parola nicăieri, în timp ce altele, observând existența unui număr mare de sisteme protejate prin parolă la care utilizatorul trebuie să aibă acces, favorizează ideea notării parolelor, dacă, bineînțeles, lista de parole va fi într-un loc sigur.
Unele parole similare sunt mai slabe decât altele. De exemplu, diferența dintre o parolă constând dintr-un cuvânt de dicționar și o parolă constând dintr-un cuvânt confuz (adică un cuvânt în care literele sunt înlocuite cu, să zicem, numere de un stil similar, de exemplu: „o” la „0”, „h” până la „4”) poate costa un spargerea parolelor câteva secunde în plus - adaugă un pic de complexitate parolei. Exemplele de mai jos arată o varietate de moduri de a crea parole slabe. Metodele folosesc modele simple, ceea ce explică entropia scăzută a parolelor rezultate - ușurința de a le ghici.
Există multe alte posibilități ca o parolă să fie slabă, judecând după complexitatea unor modele de atac; principiul principal este că parola ar trebui să aibă entropie mare și să nu fie determinată de un model inteligent sau de informații personale. Serviciile online oferă adesea o opțiune de recuperare a parolei pe care un hacker o poate folosi pentru a afla parola. Alegerea unui răspuns greu de ghicit la o întrebare vă va ajuta să vă protejați parola.
O politică de parole este un set de reguli concepute pentru:
Unele politici impun următoarele:
Setarea intervalului de timp în care poate fi utilizată o parolă oferă asigurarea că:
Cea mai dificilă parolă de spart este una care constă din caractere aleatorii, chiar dacă se cunosc lungimea parolei și setul de caractere valide. O parolă aleatorie din cauza entropiei mari nu este doar dificil de reținut, ci și selectarea prin forță brută necesită mult timp. Cerința de a compune parole complexe poate încuraja utilizatorii uituci să noteze parolele pe hârtie, telefoane mobile, PDA-uri și să le partajeze altor utilizatori. Bruce Schneier recomandă să vă notați parolele.
Oamenii nu își mai pot aminti parolele care sunt suficient de bune pentru a se apăra în mod fiabil împotriva atacurilor de dicționar și va fi mult mai sigur dacă vor alege o parolă prea greu de reținut și o notează. Este destul de ușor pentru noi toți să păstrăm în siguranță o bucată de hârtie. Recomand oamenilor să-și noteze parolele pe o foaie mică de hârtie și să o păstreze împreună cu alte bucăți de hârtie valoroase într-un portofel.
Text original (engleză)[ arataascunde] Pur și simplu, oamenii nu își mai pot aminti parolele suficient de bune pentru a se apăra în mod fiabil împotriva atacurilor de dicționar și sunt mult mai siguri dacă aleg o parolă prea complicată pentru a fi reținută și apoi o notează. Cu toții ne pricepem să asigurăm bucăți mici de hârtie. Recomand oamenilor să-și noteze parolele pe o foaie mică de hârtie și să o păstreze împreună cu celelalte bucăți mici de hârtie valoroase: în portofel. — Bruce Schneier 2005Politicile de parole oferă uneori tehnici pentru a ajuta oamenii să-și amintească parolele:
De obicei, oamenii sunt sfătuiți să nu își noteze parolele nicăieri și să nu folosească niciodată aceeași parolă pentru conturi diferite. În ciuda acestui fapt, utilizatorii obișnuiți pot avea zeci de conturi și pot folosi aceeași parolă pentru toate conturile. Pentru a nu vă aminti multe parole, puteți utiliza un software special - un manager de parole, care vă permite să stocați parolele în formă criptată. De asemenea, puteți cripta parola manual și nota criptarea pe hârtie, amintindu-vă în același timp metoda de decriptare și cheia. De asemenea, puteți schimba ușor parolele pentru conturile obișnuite și puteți alege parole complexe și diferite pentru conturile de mare valoare, cum ar fi, de exemplu, Internet banking .
Un manager de parole este un program de calculator care permite utilizatorului să folosească mai multe parole și poate necesita introducerea unei singure parole pentru a accesa parolele stocate. Parola pentru managerul de parole, desigur, ar trebui să fie cât mai complexă și nu ar trebui să fie scrisă nicăieri.