Cum să creați și să vă amintiți o parolă puternică. Algoritm nou pentru verificarea puterii parolei


Toată lumea știe că parolele pot fi complexe și nu atât de complexe. De exemplu, alpin nu este o parolă foarte complexă și setarea acesteia ca parolă root pe un milion de dispozitive conectate la Internet este cel puțin neînțelept. 7_U]Ah"C dimpotrivă, parola este destul de complexă. Orice utilizator avansat de internet vă va confirma acest lucru, iar unii chiar vă vor putea explica de ce. De exemplu, este mai lung și există o mulțime de simboluri diferite în el: aici aveți litere mari și mari și tot felul de simboluri speciale. În general, este complex și cu siguranță mai complex decât o parolă alpin.

Cum poți compara complexitatea a două parole când diferența nu este atât de evidentă? De exemplu, ce parolă este mai dificilă: 7_U]Ah"C sau xrmdCawGZ? Deși a doua parolă pare să fie formată dintr-o varietate mai mică de caractere - litere cu majuscule diferite - este mai lungă cu un caracter. Este suficient acest lucru pentru a compensa lipsa alfabetului?

Alfabet este setul de caractere din care poate consta o parolă. În exemplul nostru, parola 7_U]Ah"C compus dintr-un alfabet care contine urmatoarele caractere:

  • Litere latine în ambele cazuri: a-z, A-Z(26*2=52 buc.)
  • numere: 0-9 (10 bucati.)
  • Simboluri speciale: ! , " , # , $ , % ... (32 buc.)
Dimensiunea unui astfel de alfabet este M = 52 + 10 + 32 = 94, iar complexitatea unei parole de opt (N=8) caractere este calculată prin formula M**N = 94**8.

Complexitatea parolei (sau a cheii cripto) este exprimată în așa-numitul. factor de complexitate a cifrului(factorul de muncă). Cea mai comună explicație a esenței CTS sună astfel: este timpul și resurse informatice, necesar pentru a sparge o parolă folosind forța brută ( forta bruta ) tot din el opțiuni posibile. Din combinatorică știm că numărul de combinații de la M (dimensiunea alfabetului) la N (lungimea parolei) este egal cu M**N (M la puterea lui N).

Complexitatea parolei este de obicei numită rata de biți. Spune care este parola K-bit, vrem să spunem că complexitatea sa este comparabilă cu complexitatea unei parole de K zerouri și unu (un alfabet de doar două caractere: 0 și 1). De exemplu, 7_U]Ah"C -- Parolă pe 52 de biți: K = log2 (94**8) = log2 (6095689385410816) ~ 52 .

Parola xrmdCawGZ un alfabet mai modest: din litere latine din ambele registre, totalul este 26*2 = 52 simbol. Complexitatea este în mod corespunzător egală cu M**N = 52**9 = 2779905883635712și adâncimea de biți - K = log2 (2779905883635712 ) ~ 51 . În consecință, prima parolă este de aproximativ două ori mai complexă decât a doua, ceea ce în general nu reprezintă un avantaj.

Se pune întrebarea, de ce atunci avem nevoie de alfabete făcute din toate aceste citate, paranteze și alte ghilicuri? Nu este mai ușor să inventezi parole lungi folosind caractere mai familiare? Răspunsul este simplu: fără motiv. Va fi mai bine și mai de încredere să vă amintiți o expresie de acces lungă, chiar dacă nu conține semne exotice. În prezent, o frază de acces cu o adâncime de biți de 128 sau mai mare este considerată fiabilă. Adică, o frază de 20 de litere va fi suficientă.

Experți în Securitatea calculatorului de la Universitatea din Cambridge a analizat structura a peste 70 de milioane de parole. Și au aflat că cel mai mult parole complexeîn lume există utilizatori din Germania și Coreea. Mai mult, o fac în largul lor și natural, fără antrenament special. Iar secretul stabilității combinațiilor constă în specificul limbajului lor. Ei folosesc aceleași simboluri latine, aceleași numere, dar iau ca bază cuvintele lor native „dificile” - nume, toponime, termeni etc. De exemplu, Annaberg-Buchholz#122. Este ușor să veniți cu și să vă amintiți aceste opțiuni, dar alegerea lor este mult mai dificilă în comparație cu cuvintele din vocabular în alte limbi.

Dacă tu, dragă cititor, nu știi coreeană sau germană, asta, desigur, nu înseamnă că ar trebui să ignori parolele complexe. Ele sunt cheia securității datelor dumneavoastră pe Internet (în sistemele de plată online, pe site-uri web, forumuri). Acest articol vă va spune care trebuie să fie cerințele cheie pentru accesarea contului dvs. (ce ar trebui să fie) și cum să-l creați.

Definiţia dificultate

Complexitatea cheie este o măsură a rezistenței la selecție la nivel simbolic folosind metode manuale și automate (calcul logic, selecția dicționarului). Este determinată de numărul de încercări pe care le face crackerul, adică de cât timp îi va lua să calculeze combinația compilată de utilizator.

Următorii factori afectează complexitatea parolei:

  • Numărul de caractere din cheie. Cu cât sunt mai multe personaje în secvență, cu atât mai bine. O combinație de 5 caractere are o probabilitate mare de a fi piratată rapid. Dar selectarea unei secvențe de 20 de caractere poate dura ani, decenii și chiar secole.
  • Alternând litere mari și mici. Exemple: cheia dfS123UYt folosind registrul litere mari mult mai complicat decât aceeași combinație, dar numai cu litere mici - dfs123uyt.
  • Seturi de caractere. O varietate de tipuri de simbol îmbunătățește stabilitatea. Dacă faci o cheie din mic și litere mari, numere și caractere speciale cu lungimea de 15-20 de caractere, practic nu există nicio șansă de a-l ridica.

Cum să faci combinații stabile?

Următoarele metode vă vor ajuta să găsiți o cheie simbolică foarte complexă, ușor de reținut.

1. Creați contururi vizuale figură geometrică sau orice obiect de pe tastatura computerului. Și apoi tastați caracterele de-a lungul cărora merg liniile.

Atenţie! Evitați „construcțiile” simple - linii, pătrate sau diagonale. Sunt ușor de prezis.

2. Alcătuiește o propoziție complexă care sfidează logica. Cu alte cuvinte, un joc de cuvinte:

De exemplu: Pisica Vaska a prins o știucă pe Jupiter.

Apoi ia primele 2-3 litere ale fiecărui cuvânt din propoziția alcătuită:
Cat + Va + Na + Yup + st + stiuca

Introduceți silabele cu litere latine:
Rjn + Df + Yf + >g + ek + oer

După transliterare, introduceți între silabe câteva numere care vă sunt familiare: data nașterii, înălțimea, greutatea, vârsta, ultimele sau primele cifre ale unui număr de telefon.
Rjn066Df 45Yf 178>g 115ek1202oer

Asta e tot! După cum puteți vedea, sa dovedit a fi o combinație destul de „puternică”. Pentru a-l aminti rapid, aveți nevoie doar de cheie (propoziție de cuvinte) și de numerele folosite.

3. Luați ca bază 2 întâlniri memorabile. De exemplu, două zile de naștere (a ta și a celui drag).
12.08.1983 05.01.1977

Separați ziua, luna și anul cu câteva caractere speciale:
12|08/1983|05\01|1977

Acum înlocuiți zerourile din date cu o litera mică „o”.
12|o8/1983|o5\o1|1977

Se dovedește a fi o cheie destul de complicată.

4. Realizați o masă specială: plasați matricea pe verticală și pe orizontală scrisoriși numere, iar în rânduri și coloane - simboluri într-o ordine haotică.

Pentru a genera o cheie, luați mai multe cuvinte simple scris cu litere engleze, de exemplu, parola mea foarte puternică

Luați prima pereche de litere. În cazul nostru este „al meu”. Găsiți „m” în lista verticală și „y” în lista orizontală. La intersecția liniilor veți primi primul caracter al parolei.

În același mod, prin următoarele perechi, găsiți restul personajelor cheie.

Dacă ai uitat parola, folosește simplu cuvânt cheieși o masă.

Cum se verifică puterea parolei?

Durabilitate combinație de caractere pentru selecție pot fi găsite pe servicii web speciale. Să luăm în considerare cele mai populare:

Serviciu online de la laborator antivirus Kaspersky. Determină, pe baza setului de caractere și a lungimii tastei, cât timp va dura să o acceseze diverse calculatoare. După analizarea secvenței, statisticile afișează timpul de căutare pe ZX-Spectrum (legendara mașină de 8 biți a anilor 80), Mac Book Pro (modele 2012), supercomputerul Tianhe-2 și rețeaua botnet Conficker.

Utilitate online pe uriașul portal de servicii 2IP.ru. După ce a trimis cheia către server, acesta își afișează starea (de încredere, nesigur) și timpul petrecut cu spargerea acesteia.

Verificarea parolei este necesară atunci când nu sunteți sigur sau vă îndoiți de complexitatea și securitatea ei suficientă. Din fericire, există servicii online pentru aceasta care vă permit să verificați cât de sigură este o anumită parolă. Mai multe despre asta.

De ce să verificați puterea parolei dvs.?

De fapt, verificarea parolei pentru putere este necesară în primul rând pentru cei care nu știu ce parole ar trebui să fie. Articolul a oferit sfaturi despre crearea de parole complexe, practic de nedescris. Cele 3 servicii online discutate în acest articol vă vor ajuta să creați o astfel de parolă.

Cum se verifică complexitatea parolei?

Există servicii online care vă permit să verificați complexitatea parolei dvs., precum și cât timp durează atacatorii să o ghicească. Astăzi ne vom uita la 3 astfel de servicii care merită cea mai mare atenție.

Serviciul nr. 1.

Acest serviciu, după cum probabil ați ghicit, probabil de la Kaspersky Lab, se numește „Salvarea lumii cu cuvinte”. Acest serviciu vă ajută să creați parole puternice verificând complexitatea acestora.

Serviciul arată că parola dată hack-uri în 1 secundă. Așa este, chiar și cu ajutorul forței brute (un program pentru ghicirea parolelor), această parolă va fi ghicită mai repede decât poți spune „Oh!”

Dar iată o parolă mai complexă folosind , numere și litere cu majuscule diferite:

O astfel de parolă va fi foarte greu de ghicit, parola generală de încredere și într-o oarecare măsură de necuprins (neculegător).

După cum puteți vedea, serviciul arată cât timp durează să spargeți o anumită parolă pe diferite computere, acestea sunt ZX Spectrum (anii 80), Mac Book Pro (2012), Tianhe-2 (un supercomputer dezvoltat în China) și, de asemenea, folosind rețele de calculatoare (botnet).

Serviciul nr. 2.

Următorul serviciu de verificare a siguranței parolei de la Microsoft. Se află la această adresă.

Totul este simplu aici, intra parola necesară iar programul arată cât de fiabil este. Nimic in plus. Gradul de fiabilitate este indicat de 4 dreptunghiuri de mai jos. Un dreptunghi este o parolă foarte simplă, iar patru dreptunghiuri verzi înseamnă o parolă complexă.

Serviciul nr. 3.

În al treilea rând și ultimul serviciu verifică complexitatea parolei pentru astăzi. Site-ul se numește „Cât de sigură este parola mea? "

Interfața este în engleză, dar e în regulă. În linia „Parolă” trebuie să introduceți o parolă, iar serviciul va arăta și cât de sigur este, aceasta este parola dvs.

În exemplul de mai sus, serviciul indică faptul că parola este bună (aceasta este indicată de fundal verde site-ul). Dacă fundalul site-ului este roșu, atunci parola este, de asemenea, nesigură.

Mai jos puteți vedea și timpul aproximativ necesar pentru o selecție brută (forță brută). Și, de asemenea, dacă parola pe care ați introdus-o nu este complexă și de încredere, serviciul va indica acest lucru și va oferi sfaturi pentru crearea unei parole mai sigure.

Desigur, nu există parole care nu pot fi sparte; aceste servicii arată doar câte parole va trebui să spargă selectorul (folosind forța brută). Dar există și alte moduri de a pirata - Inginerie sociala, utilizarea keylogger-urilor fără știrea utilizatorului de computer și așa mai departe. Prin urmare, păstrați-vă parolele cu înțelepciune și nu le împărtășiți nimănui.

Multe site-uri încearcă să ajute utilizatorii să stabilească parole mai complexe. Pentru a face acest lucru, setați reguli de baza, care de obicei necesită să specificați cel puțin unul majusculă, unu litera mica, o cifră și așa mai departe. Regulile sunt de obicei primitive astfel:

„parolă” => [ „obligatoriu”, „confirmat”, „min:8”, „regex:/^(?=\S*)(?=\S*)(?=\S*[\d]) \S*$/", ];
Din păcate, așa reguli simpleînseamnă că parola Abcd1234 va fi considerată bună și de înaltă calitate, la fel ca Password1. Pe de altă parte, parola mu-icac-of-jaz-doad nu va trece validarea.

Iată primele două parole.

Iată două parole care nu vor trece de verificarea de securitate.

Ce să fac? Poate că nu ar trebui să forțați folosirea caracterelor speciale și să introduceți din ce în ce mai multe reguli noi, cum ar fi interzicerea repetării mai multor caractere la rând, folosind nu unul, ci două sau trei caractere și numere speciale, mărind lungimea minimă a parolei, etc.

În loc de toate acestea, este suficient să faci lucru simplu- Ușor de instalat constrângere de entropie minimă parola, si gata! Puteți utiliza evaluatorul gata făcut zxcvbn pentru aceasta.

Există și alte soluții în afară de zxcvbn. Chiar săptămâna trecută, o lucrare (pdf) a cercetătorilor de securitate de la Symantec Research și institutul francez de cercetare Eurecom a fost prezentată la conferința ACM Computer and Communications Security. S-au dezvoltat program nou pentru verificarea puterii parolelor, care estimează numărul aproximativ de încercări de forță brută necesare folosind metoda Monte Carlo. Metoda propusă diferă prin aceea că necesită o cantitate minimă de resurse de calcul pe server și este potrivită pentru cantitate mare modele probabiliste și în același timp destul de precise. Metoda a fost testată pe parole din baza de date de 10 milioane de parole Xato, care sunt în domeniul public (copie pe Archive.org) - a arătat bun rezultat. Adevărat, acest studiu realizat de Symantec Research și Eurecom este mai degrabă de natură teoretică, cel puțin ei nu și-au publicat programul în acces deschisîn orice formă acceptabilă. Cu toate acestea, scopul lucrării este clar: în loc de reguli euristice pentru verificarea parolelor, este recomandabil ca site-urile web să implementeze verificarea entropiei.

Analizorul de parole SeaMonkey

Acest analizor de parole a fost dezvoltat ca parte a proiectului SeaMonkey, un set gratuit de programe de internet create și întreținute de Seamonkey Council, un spin-off al Fundației Mozilla. Mecanismul de analiză a parolei în sine face parte din . Algoritmul muncii sale este de a calcula greutatea parolei, pe baza datelor despre caracterele din care este compusă parola. Greutatea parolei este calculată folosind următoarea formulă:
pwstrength= ((lungimea * 10) - 20) + (numeric * 10) + (simboluri numerice * 15) + (sus * 10) , unde
  • lungime egal cu 5 dacă numărul de caractere din parolă este mai mare de 5, sau egal cu lungimea parolei;
  • numeric egal cu 3 dacă numărul de cifre din parolă este mai mare de 3, în caz contrar egal cu numărul de cifre;
  • simboluri numerice se consideră egal cu 3 dacă numărul de caractere din parolă, altele decât litere, cifre și litere de subliniere este mai mare de 3, în caz contrar - numărul de astfel de caractere;
  • superior este egal cu 3 dacă numărul de litere mari este mai mare de 3, sau numărul de litere mari în caz contrar.
După calcul, greutatea parolei este normalizată, astfel încât valoarea acesteia să fie în intervalul de la 0 la 100. Normalizarea se efectuează atunci când valoarea ponderii nu se încadrează în acest interval. În cazul când pwstrength mai mică de 0, valoare pwstrength egal cu zero, iar atunci când este mai mare de 0, valoarea ponderii este setată la 100. Clasamentul parolei după putere este lăsat la latitudinea dezvoltatorilor care folosesc biblioteca.
După cum puteți vedea, analizatorul descris nu folosește verificări folosind dicționare, ceea ce face estimările sale oarecum unilaterale și probabil mai puțin precise în comparație cu programele de la Google și Microsoft discutate mai sus.

Contorul de putere a parolei (plugin jQuery)

O altă opțiune de evaluare a parolelor la nivelul clientului este Password Strength Meter(), un plugin conceput pentru cadru JavaScript jQuery.
Procedura de evaluare funcționează după cum urmează. Există multe calități cunoscute care fac ca o parolă să crească sau să-i scadă rezistența la ghicire. Fiecare calitate are propria sa greutate strict definită. Algoritmul constă într-o verificare pas cu pas a prezenței acestor calități într-o parolă și, dacă acestea sunt prezente, ponderea totală a parolei crește, pe baza valorii căreia, după vizualizarea tuturor caracteristicilor, o concluzie. este făcut despre nivelul de putere a parolei.
Să luăm în considerare algoritmul complet pentru procedura de evaluare a parolei:
  1. Greutatea parolei este setată la zero.
  2. Dacă lungimea parolei este mai mică de 4 caractere, atunci algoritmul se termină și rezultatul „parola este prea scurtă” este returnat. În caz contrar, treceți la pasul 3.
  3. Creștem greutatea parolei cu 4*len, Unde len- lungimea parolei.
  4. Se încearcă comprimarea parolei folosind la următorul algoritm. Dacă parola conține un subșir de genul SS, Unde S este un șir de lungime 1, apoi prima parte a acestui subșir este eliminată și compresia continuă din poziția începutului celei de-a doua părți a acestui subșir. De exemplu, aplicarea acestui algoritm șirului aaabbcab, ieșirea va fi șirul abcab. După efectuarea operației de compresie, greutatea parolei este redusă cu len - lenCompress, Unde len este lungimea parolei și lenCompress– lungimea parolei după compresie.
  5. Se încearcă comprimarea parolei pentru cazuri de șir S 2, 3 și 4 caractere. Greutatea parolei este redusă în mod similar cu cantitatea len - lenCompress. Rețineți că compresia se efectuează de fiecare dată pe parola care se verifică, și nu pe șirurile obținute în încercările anterioare.
  6. Dacă parola conține cel puțin 3 cifre, atunci creșteți greutatea cu 5.
  7. Dacă parola conține cel puțin 2 caractere, atunci creșteți greutatea cu 5.
  8. Dacă parola conține litere atât în ​​majuscule, cât și în minuscule, atunci creșteți greutatea parolei cu 10.
  9. Dacă parola conține litere și cifre, atunci creșteți greutatea parolei cu 15.
  10. Dacă parola conține caractere și numere, atunci creșteți greutatea cu 15.
  11. Dacă parola conține litere și simboluri, atunci creșteți greutatea cu 15.
  12. Dacă parola constă numai din litere sau doar cifre, atunci reduceți greutatea parolei cu 10.
  13. Dacă greutatea parolei este mai mică de 0, setați-o egală cu 0. Dacă este mai mare de 100, setați-o egală cu 100.
  14. O parolă a cărei greutate este mai mică de 34 este considerată „slabă”. Dacă greutatea este de la 34 la 67, atunci parola este clasificată drept „bună”, iar dacă este mai mare de 67, atunci parola este considerată „excelentă”.
Analizorul analizat, ca și produsul de la SeaMonkey, nu verifică parola folosind niciun dicționar. În plus, întrebarea rămâne deschisă cu privire la validitatea alegerii anumitor valori ale coeficienților de ponderare atunci când se formează o evaluare a parolei.
Disponibil care demonstrează funcționalitatea acestui plugin.

Universitatea Cornell - Verificator pentru puterea parolei

Serviciu oficial on-line oferit de Centrul de Securitate al Universității Cornell (Ithaca, SUA). Cu ajutorul acestuia, utilizatorii își pot verifica parola completând un formular web și trimițându-l pentru verificare. Evaluarea parolei, ca în cazul serviciu Google, se face pe partea serverului.
Implementarea algoritmului nu este dezvăluită pentru acces public, cu toate acestea, descrierea serviciului indică cerințele pe care parola trebuie să le îndeplinească pentru ca verificarea să aibă succes:
  1. parola trebuie să aibă cel puțin 8 caractere;
  2. La alcătuirea unei parole, sunt folosite caractere din cel puțin trei alfabete din următoarea listă:
    • litere mari latine
    • litere latine mici
    • numere
    • caractere speciale (cum ar fi ! * () : |)
  3. parola nu trebuie să conțină cuvinte din dicționar;
  4. Parola nu trebuie să conțină secvențe de litere repetate (de exemplu, AAA) și secvențe precum abc, qwerty, 123, 321.
Aceste cerințe trebuie respectate cu strictețe. Dacă cel puțin o anumită cerință nu este îndeplinită, parola este considerată nesigură.
Următoarele critici pot fi aduse acestei abordări. Deci, o parolă cu o lungime arbitrar de lungă, de exemplu, o propoziție în limbaj natural, nu va îndeplini condiția nr. 3, care va furniza automat parolei cu un scor scăzut, deși acest lucru poate să nu fie în întregime justificat.

Tester pentru puterea parolei

Analizor de parole JavaScript, care este dezvoltat și întreținut ca parte a proiectului Rumkin.com.
Algoritmul de evaluare implementat în acest analizor se bazează pe Dispoziții generale teoria informaţiei. Evaluarea principală a unei parole este entropia acesteia, care este calculată folosind tabele cu diagrame pentru limba engleză.
Entropia (capacitatea de informare) a unei parole este o măsură a aleatoriei alegerii secvenței de simboluri care alcătuiesc parola, estimată prin metodele teoriei informației.
Capacitate de informare E măsurată în biți și caracterizează rezistența la ghicirea parolei folosind o metodă de forță brută, cu condiția să nu existe informații a priori despre natura parolei și atacatorul să folosească o strategie optimă de forță brută, în care numărul mediu așteptat de încercări înainte de un succes. unul este 2 E-1 . Potrivit creatorului acestui evaluator, pentru a reduce cantitatea de informații încărcate pe partea clientului, toate caracterele non-alfabetice au fost combinate într-un singur grup. Acest grup acționează ca un fel de simbol universal, care este folosit în tabelul de frecvență. După cum notează dezvoltatorul, cu această ipoteză, valoarea entropiei rezultate va fi mai mică decât în ​​cazul în care toate simbolurile sunt prezentate separat în tabelul de frecvență.
În funcție de valoarea de entropie obținută, parolei i se atribuie caracteristica corespunzătoare a puterii sale.
Entropie Nivel de durabilitate