Password Rules Are Bullshit

Mereu m-au iritat regulile parolelor: de ce este nevoie să am simbol, număr și majusculă? De ce nu am voie cu spații? De ce am o lungime maximă a parolei?

Câteva reguli de care să ții cont:

  1. Password rules are bullshit
  2. Enforce a minimum Unicode password length
  3. Check for common passwords
  4. Check for basic entropy
  5. Reject special case passwords

https://blog.codinghorror.com/password-rules-are-bullshit/

3 Likes

Daca ar fi dupa mine, parolele ar trebui sa aiba urmatoarele limitari:

  • minim doua din urmatoare 4 tipuri de caractere: numar, majuscula, minuscula, simbol
  • minim 16 caractere (personal as recomanda minim 32, dar 16 ar oferi o tranzitie mai usoara)
  • maxim 256 caractere
  • minim 6 caractere unice (sa ne asiguram ca parola nu este de tipul aaaaaaaaaaaaaaaa ci, mai de graba, parolaaaaaaaaaaa, care este mai sigura… putin)

Ultima regula ca sa fie ceva quasi-standardizat. Adica, totusi, odata cu parola, creste exponential probabilitatea sa gresesti parola. Iar asta ar insemna ca 3 incercari inainte de timeout sa se transforme in minim 10.

Ah, si nu ar strica sa primeasca si cateva exemple de cum sa faca o parola, cand parola introdusa de ei este mai mica de 16 caractere.

1 Like

Ai argumente pentru astea?

Pot băga mâna în foc că cinci-șase cuvinte (grupate sau nu într-o propoziție) - deci 30-50 caractere - sunt mai sigure și mai ușor de ținut minte decât zece caractere ce urmează un anumit pattern.

Mergând pe aceeași idee, pot reține mai ușor o frază de 150 chars vs o parolă de 16…

3 Likes

Atac tip dictionar. Incerci toate combinatiile de cuvinte posibile. In cazul in care hash-urile parolelor sunt leaked, sa calculezi sha3-ul tuturor combinatiilor de cuvinte este mult mai usor daca nu au si caractere random printre ele. Sau in cazul in care boti sunt folositi pentru a incerca spargerea parolei unui utilizator.

Adica, spre exemplu, pentru apa strict de 3 caractere, ai de incercat apa, apA. aPA, APA, APa, Apa, aPa, 0pa, @pa, etc.
Iar daca este sa mai luam in considerare si mai multe caractere, pentru aceeasi parola, iarasi avem o crestere exponentiala a a posibilelor parole care ar trebui incercate, pentur spargerea parolei…


Oricat am vrea noi sa nu se intample, asta este realitatea lumii in care traim. Adica inteleg ca tehnic vorbind comentariul acesta contine instructiuni pentru spargerea parolelor, dar consider ca este important sa se stie si sa fie luate in considerare aceste posibilitati, atunci cand concepem un sistem ce poate crea daune semnificative (cand este compromis, si nu numai).

Aveam un coleg care folosea pentru parolă o strofă de poezie și tot așteptam câte 10 secunde dupa el până termina să introducă toată strofa, cred că era cel mai secure.

Dacă chiar vreți securitate folosiți two factor auth cu ceva stick de genul:

Personal nu am folosit dar am văzut la un coleg care îl utiliza pentru conectare la server prin SSH dar și pentru alte servicii.

2 Likes

“Unde naiba am pus stick-ul ala!?
Ah (mandru de sine), sunt la cheile de la masina!
Da’ unde’s cheile?
(dupa 30 de min de alergat prin hol, sufragerie, dormitoare, bucatarie, frigider, baie) SHIT! Băăăăăăă! MI-AM PIERDUT CHEILE!!!”

1 Like

Eu folosesc aplicația Google Authenticator pe telefon. Asta pentru că e gratis și nu trebuie să mai am grija cheiței. Dezavantajul cred că ar fi că este mai puțin secure în comparație cu cheița, însă nu m-am documentat foarte mult pe acest subiect.

Luând în considerare efortul depus pentru activarea 2FA eu zic că se merită.

The future is MFA! MFA saves.

Eu mă încred doar în sms/apel + coduri pe hârtie ascunse bine de tot. Este posibil ca ora să se decaleze puțin la telefon și te uiți jumătate de oră cum să te loghezi, respectiv face figuri programul pe telefoane sub 500 lei.

Este o prostie să ai password rules complex, o parolă lungă e mai bună ca o parolă de 8 caractere cu #$„. și litere mari/mici. Google îți spune cât de sigură e parola și e treaba ta dacă îți pui o parolă slabă.

1 Like

Pe mine mă enervează site-urile și aplicațiile care mă obligă să folosesc parole complexe. Deși folosesc un password manager, uneori parolele generate de el nu sunt destul de secure (12 caractere, minim 2 simboluri + majuscule și litere mici).

Cred că e dreptul meu de a folosi parole stupide pentru servicii/site-uri de care chiar nu-mi pasă dacă sunt hack-uite sau nu. Consider că mi se limitează dreptul fundamental de fi prost când cineva mă obligă să folosesc nu știu ce parolă pentru un serviciu de care chiar nu-mi pasă. Mi se pare ok să mi se atragă atenția că parola e foarte slabă, dar să mă lase să o folosesc dacă sunt încăpățânat.

Legat de parole secure și ușor de ținut minte. Sunt de acord cu ce a zis @iamntz, o frază/propoziție cu ceva reguli (gen prima literă din fiecare cuvânt majusculă și eventual un număr la final) e mai mult decât ok în orice situație. Nu cred că ce zice @Sapioit e așa grav. Dacă cineva ajunge să facă brute force pe o parolă există probleme mult mai grave cu sistemul respectiv decât faptul că nu ai tu parola super secure. Într-un sistem cu minimul de securitate te alegi cu un ban după 3-5 încercări de login nereușite, făcând atacul inutil. Dacă cineva are access la hash-ul parolei descifrarea parolei e cea mai mică problemă - asta în cazul în care nu le repeți.

Pentru mine un serviciu secure oferă:

  • 2 Factor Authentication
  • ban la orice activitate de pe un IP/sistem nou sau suspectă. De exemplu pe unul din serviciile care le folosesc primesc un mail de confirmare login de fiecare dată când mă conectez de pe un IP/device nou.

Iar ca individ, poți îmbunătăți securitatea dacă:

  • Folosești un password manager să te asiguri că toate parolele sunt unice și dacă cineva are access la una din parole nu mai poate accessa nimic altceva cu ea
  • Îți alegi 2-3 servicii care sunt foarte foarte importante pentru tine și îți pui niște parole foarte strong la ele. De exemplu pentru mine GMail e foarte important (toate conturile sunt cumva conectate la el și dacă cineva are access la el o să poată să dea recover password la majoritatea conturilor mele). Însă contul de xda-developers de exemplu e mult mai puțin important. Chiar dacă mi-l sparge cineva nu cred că mă poate afecta cu ceva (nu cred că am mai mult de 2 mesaje acolo). Așa că parola de la xda poate fi una mult mai slabă și una pe care o refolosesc pe când cea de la GMail e mult mai strong și unică.
7 Likes

Inteleg ce spui, dar trebuie sa ai in vedere cel putin un lucru. Pentru serviciile foarte populare, cu numar foarte mare de utilizatori, daca nu impui un policy pentru parola la creare de cont, sunt cel putin doua probleme: 1) suportul o sa fie bombardat de ticket-uri care trebuie macar citite de cineva, chiar daca rezolvarea lor doar presupune un reply standard, si 2) vei avea un numar imens de utilizatori carora le-a fost spart contul pentru ca si-au pus parola “1234567” aceeasi pe care o folosesc la o gramada de alte website-uri. Chiar daca tu nu esti cu nimic de vina ca utilizatorii sunt bizoni, side effects care le vei avea nu sunt placute.

Personal as vrea sa vad ca web-browserele incep sa ofere o functionalitate built-in de generare de parole. Ar fi un feature simplu si toate web-browser-ele au deja form filler, deci nu cred ca ar fi o problema ca ar fi dati in judecata de produsele de pe piata (asa cum incearca Karspersky sa dea in judecata Microsoft pentru Windows Defender pentru unfair competition) ceea ce mi se pare ridicol. Dar cine stie, incurcate sunt caile legilor.

4 Likes

Asa ai zice, nu? :slight_smile: Am citat doar partea care mi s-a parut aiurea, ca sunt idioate multe din regulile fortate pentru parole, total de acord

username: bogdan / parola: myKickAssPassw0rd
sa zicem ca nu imi pasa de serviciul oferit de tine, dar te rog frumos sa nu imi ingradesti dreptul de a fi prost si sa imi dezactivezi contul

@bogdan mă bucur că a prins gluma

@kilogrammer Sunt de acord doar parțial cu tine. Impunerea unui nivel minim de securitate parolă e ultima chestie care ar trebui făcută chiar și de către site-urile/serviciile populare. Sunt atât de multe chestii care pot fi implementate ca să limiteze succesul unui atac asupra parolelor ușor de ghicit încât nu cred că are rost să-ți bați capul cu nivelul minim de securitate al parolei.

O parolă fie ea și ușoară e ușor de spart doar dacă atacatorul poate încerca mai multe parole rapid. Un minim de decență de a bloca contul 15 minute - 1 oră după câteva încercări nereușit. Ar limita foarte mult șansele de atac chiar și în cazul parolelor comune.

Prima linie de apărare în cazul de față e serviciul propriu zis. Un utilizator needucat poate să aibă cea mai tare parolă dacă nu știe cum să se apere de un atact de tip phishing. Care din nou poate fi limitat ca efect dacă implementezi blocarea contului pe device-uri noi până nu confirmi cu un link trimis pe mail.

E ok să ceri parole secure (gen minim de 6 caractere, sau să nu fie în topul celor mai comune parole), însă să multe servicii exagerează cu asta. Un warning când setezi parola prin care iei la cunoștiință că parola ta e ușor de spart ar fi de ajuns. Răspunsurile la support pot fi și automatizate.

Generator de parole în browser da! Aș vrea și eu să văd asta, deși sunt ok și cu cel oferit de password manager.

2 Likes

Uhm…

https://www.chromium.org/developers/design-documents/password-generation

1 Like

Nu e vorba de securitate, nu e vorba de a atinge securitatea perfecta.

Warning? Crezi ca cine isi pune parola 12345678 citeste sau ia in seama warning-urile?

Nu poti sa automatizezi asa ceva incat sa fii sigur 100%. Imagineaza-ti un bot care raspunde la o plangere de login sau parola furata cu mesajul ala standard desi nu e cazul.

Total de acord ca se exagereaza. Developers gone wild. Ma intreb cati clienti pierd aia doar din faptul ca se cere o asemenea parola.
Dar tu ce propui e complet opusul, sa fie scoase de tot orice conditie de setare de parola. Sau asta am inteles eu.

Mie imi place ce finut o face Google la creare de cont pt GMail. Un progress bar si un mesaj simplu, dar foarte explicit.

O idee funky: exista site-uri oare care sugereaza parola in form-ul de sign-up, chiar in input-ul de parola? Parca am vazut doar foarte foarte rar. Evident ma refer la parole create local, pe client, in JS, un prefill la campul de password. Problema e ca trebuie cumva userul sa vada continutul campului :). Poate merge corelat cu un buton de “view password” care arata parola efectiv din input? Te-ar putea pune sa o rescrii in al 2 lea camp de password, cel pentru confirmare.

Eu vorbesc despre un edge-case. Un 0day si userii pot vedea toata baza de date. Iar apoi iti pui in cap toti userii carora le-au fost sparte parolele prin brute force, inainte sa descoperi tu asta.

Nu zic ca ar fi ceva la ordinea zilei, dar pentru doua reguli in plus (minim doua tipuri de caractere si minim 6 caractere unice) scapi de multe batai de cap, cand pica sistemul. Si daca vrei sa fi prost si-ti pui parola ‘Parolaaaaaaaaaaa’, poti fi. Doar ca si asta este (mult) mai sigura decat ‘parola123’.

Plus de-asta, nu e chiar asa greu de implementat cele doua reguli in plus. Adica bun, reguli mai inteligente si mai simple, pentru parole, dar cele doua reguli in plus ar adauga chiar atat de multe neplaceri incat sa nu merite adaugate?

Personal cred ca un popup cu regulile de generare ale parolei ar fi mai ok, pentru ca userul sa poata da copy-paste, in caseta de text pentru parola si oriunde altundeva ar vrea, precum si re-genera parola, in caz ca prin intamplare a ajuns sa fie prea slaba.

Asta e și ideea. Dacă a ignorat warning-ul e problema lui (e ca și cum acceptat Termenii și condițiile). Și un utilizator care folosește parole așa simple poate fi oricând destul de naiv încât să nu recunoască atacuri de tip phishing și atunci degeaba are el parolă greu de spart dacă o dă de bună voie atacatorului.

Nu vreau să se scoată de tot. Vreau doar să fie mai relax regulile că uneori sunt prea stupide. Cred că am exagerat puțin în exprimare :smiley:

Și mie îmi place ce face Google. Dar asta nu înseamnă că trebuie să aplicăm aceleași reguli la orice site/serviciu. Un email e foarte important că dacă cineva îți sparge contul de email are access la toate conturile unde e folosit pentru recover password. Pe când un cont obișnuit de forum sau site de quiz-uri de exemplu nu e chiar așa mare pagubă dacă-l pierzi de exemplu și poți lăsa userul să-și facă cont și cu parolă mai slabă (îl avertizezi că e slabă dar nu-i impui reguli ca la email de exemplu).

În phpMyAdmin există ceva de genul când creezi un user nou (screenshot).

Asta mi se pare rezolvarea simptomului și nu a cauzei principale a problemei. Nu mai bine te concentrezi pe adăugate salt la parole și folosire de algorimi mai costisitori ca timp care să nu fie așa greu de brute-force-uit?

Și dacă are deja access la baza de date, descifrarea parolei devine utilă pentru hacker numai dacă vrea să o încerce și la alte conturi ale aceluiași user, și atunci din nou, faptul că tu ceri o parolă foarte complexă nu rezolvă cu nimic problema userului care o va refolosi.

Nu e greu, de acord. Dar câteodată dai de niște cerințe de parole așa absurde încât îți vine să crezi că programatorul nu mai face nimic ca să aibă grijă de securitate și aruncă toată responsabilitatea pe tine.

1 Like

Nu ai de unde sa stii ce “important”. Tu ceri unui forum sa nu aiba cerinte de parola la fel de bune ca un email, doar pentru ca e ‘forum’.
Tu folosesti password manager doar pentru ce e ‘important’ sau pentru orice site?

1 Like

Dacă un forum are cerințe absurde pentru parolă mulți o să renunțe să-și facă cont. Trebuie să fii conștient care sunt riscurile în cazul în care un cont este compromis și atunci îți dai seama ce e important și ce nu. De multe ori riscurile nu sunt așa mari cât să justifice deranjul cauzat.

Principiile menționate în articolul de la care am plecat (primul post) sunt OK și sunt de acord cu ele în mare parte pentru că nu sunt enervante! Aș schimba doar lungimea parolei minime la 6 dacă riscurile sunt minime.

Enervante consider că sunt cele care-ți cer numerele, caractere speciale, majusculă etc care mă duc cu gândul la asta.

Folosesc password manager pentru tot, dar mă îndoiesc că toți folosesc așa ceva.

In limba engleza sunt 171476 cuvinte. Daca ar fi sa luam parole compuse din 3 cuvinte, ar exista 840,332,546,270,900 combinatii. Asta considerand ca aceste cuvinte sunt scrise cu minuscule si fara separatoare intre ele. Daca mai introduci si majuscule in discutie cifra ajunge astronomica, nu ca acum ar fi mica.

Daca luam 24 caractere minuscule + 24 majuscule + 10 cifre + sa zicem vreo 20 semne si consideram lungimea parolei de 8 caractere, avem doar 23,446,881,315

Este de 35840 ori mai sigura o parola din 3 cuvinte.

Acum, desigur, putem incepe sa filozofam pe tot felul de aspecte cum ar fi ca nu folosim toate cuvintele si cele uzuale sunt mai putine, ca tindem sa folosim cuvinte care au se leaga semantic intre ele, sau ca putem folosi 3 cuvinte din 3 limbi diferite.

Eu pentru parolele mele importante folosesc urmatoarea euristica:

  1. 2 cuvinte in 2 limbi diferite
  2. separate cu spatiu
  3. fiecare are o majuscula random undeva prin el
  4. in parola includ si un semn

Daca vreti sa faceti niste calcule de combinatii uite aici un site: http://stattrek.com/online-calculator/combinations-permutations.aspx

4 Likes