Password Rules Are Bullshit

Cred ca unele calcule au dat cu virgula.

171k^3 e O(10^15) dar si (24+24+10+20)^8 tot O(10^15). Asadar sunt valori comparabile.

Problema cu parolele din cuvinte e ca spatiul de cautare este mult mai mic decat o estimare strict matematica. Cf Quora/The Guardian, un vorbitor nativ si absolvent de studii superioare are in jur de 15-20k cuvinte in vocabular, care duce la O(10^12) parole te testat. Dar realistic plaja de propozitii cu sens pe care oamenii le-ar putea tine minte este mult mai mica - unele estimate ajung chiar si la un 1 milion[1]. Fraze din trei sau patru cuvinte nu au sa mareasca numarul asta suficient sa ajunga iar in sfera 10^xx. Iar fraze mai lungi o sa devina din ce in ce mai greu de memorat pentru utilizatori. Unul din motivele pentru care se insista ca parolele sa aiba minuscule, majuscle, cifre etc. e sa se mareasca setul de cuvinte din vocabular pe care oamenii l-ar folosi in mod uzual, si care are O(1 milion) de elemente pentru cele mai extinse limbi.


Ar fi interesant de vazut numarul asta pe bune. O analiza a unei surse de text mari precum wikipedia sau stack overflow poate indica un estimat.

1 Like

Eu folosesc la wifi parola “mama face macaroane” si “ana are mere” :slight_smile:

1 Like

Nu le mai am cu matematica foarte mult, dar din cate tin minte trebuie sa faci combinatii de r luate cate n, adica 171476! / 3! * (171476-3)! = 171476171475171475/6 = 8.4033745e+14 = 840,332,546,270,900 … dar poate ma insel eu cu formula.

1 Like

Cu combinatii numeri fara a tine cont de ordinea cuvintelor. Ai numara multimile de 3 cuvinte formate din cele 171k de cuvinte.

Putin mai precis ar fi numarul de aranjamente, care ar fi 171000*(171000-1)*(171000-2), prin care numeri propozitii cu cuvinte distincte. Sau in general n! / (n-k)! Dar pentru k mic e aproape de n^k.


Ca fun-factoid, de la aranjamente / permutari (unde se tine cont de ordinea elementelor), la combinatii / multimi (unde nu se tine cont), se ajunge divizand n! / (n-k)! cu k!. Adica numeri toate aranjamentele, dar stii ca sunt grupuri de cate k! aranjamente care transformate in multimi sunt echivalente, asa ca imparti la k!.

1 Like

De-asta alt good practice, pentru parolele care contin cuvinte, este sa aiba typos (greseli gramaticale), astfel incat un Dictionary Attack sa fie mult mai putin probabil sa nimereasca ceva.
Eu, cel putin, asa fac, in cazul parolelor importante.

Din pacate s-au inventat algoritmi pentru orice :slight_smile:

1 Like

Luand asta in considerare, este mai sigur decat a nu avea nici o variatie de la standard. Deoarece trebuie sa verifice nu doar pentru variatie 0, ci si pentru variatie 1, 2, etc.

Corect, e mai sigur in sensul ca sunt mai multe variante de testat.

Acuma intrebarea e ce anume protejam cu parola aia. Protejam parola in sine sau altceva? Tind sa cred ca protejam parola in sine, sa nu poate fi descoperita daca cineva fura baza de date cu parole hashed. Altfel nu vad la ce ar folosi o parola lunga. Orice serviciu remote normal la cap ar trebui sa foloseasca o metoda oarecare de tarpitting sau sa baneze ip-ul dupa un numar oarecare de incercari (3,5,10, oricum insuficiente sa nimeresti o parola de 3 caractere).

Un atacator are acces sa testeze miliarde de parole fara sa-l deranjeze nimeni doar cand are acces fizic la sistemul respectiv (wifi, un hdd criptat pe care l-a furat, acces local la server, o tabela cu hash-uri de parole etc).

Raspuns incomplet. Nu bannam DOAR ip-ul, ci si contul in sine, pe care il deblocam peste cateva ore, sau la resetarea parolei prin email.

Si as recomanda ca oricum sa se blocheze contul (oferindu-se un mesaj corespunzator) si sa trimita userului mail ca cineva incearca sa se logheze, daca parola este nimerita, cu doua link-uri, unul ca sa schimbe parola (in cazul in care nu userul a efectuat logarea) si un link de deblocare (in caz ca userul a efectuat logarea).

Neah, ce sugerezi tu aici este o invitatie la Denial of Service. M-ai suparat? Intru pe yahoo sau unde ai tu cont si bag de-al dracu’ cu username-ul tau de 10 ori o parola gresita. Si timp de o ora stai fara email :slight_smile:

1 Like

E exact ceea ce făcea Yahoo aproape de la început. :slight_smile: Trebuia să intrii în mail ca să resetezi ca să te poți loga.

Tare. Daca ai 10 duşmani, ai pus-o, toata ziua trebuie sa intri sa resetezi parola :slight_smile: Si mai exista prostia asta?

E cel putin la fel de rau daca ar face asta pe PayPal. Daca de email te-ai putea lipsi cateva ore, s-ar putea sa ai o mare problema daca PayPal iti blocheaza accesul la cont pentru ca niste chinezi te trolleaza exact cand ai mai mare nevoie sa faci o plata :slight_smile:

Dar mai ai acces la email, nu?
Iar cand confirmi ca esti tu (prin email), ai ip-ul whitelisted 24h, ca sa evitam astfel de probleme.

Pana la urma, si cu 2-way-auth, daca ramai fara telefon, te-ai ars, and so on. Well, in cazul asta ai putea avea doua adrese de mail, una curenta si una de urgenta, fara sa o stie nimeni, de pe care sa poti schimba parola contului curent, in caz ca ceva de genul se intampla.

Nu e deloc acelasi lucru. Una e sa te trolleze 10 chinezi mititei (teoretic ar putea s-o faca non-stop), si alta e sa ti se defecteze sau sa pierzi telefonul. Iar whitelistarea pe IP e inutila daca ai ip dinamic.

Ideea e ca nu-i nevoie de blocarea contului daca se forteaza intrarea in el. Pur si simplu ingreunezi incercarile repetate si cu asta basta. Ai gresit de 3 ori, ban 5 minute. Ai mai gresit de 3 ori, ban o ora. Inca de 3 ori, 24 de ore.

In ritmul asta o sa-ti ia un miliard de ani sa nimeresti o parola de cateva caractere. Pana la urma despre asta e vorba, sa incetinesti cat mai mult activitatea de bruteforce.

Ai idee cat de ieftine sunt ip-urile? Si da, sunt servicii care vand IP-uri pe care sa le poti folosi pe VPN. 3 incercari, ip nou, repeat. Sau daca sunt site-uri pe care este posibil sa faci profit mare spargandu-le conturile utilizatorilor (gen paypal), crezi ca nu s-ar merita?

Bine, teoretic s-ar putea si prin botNets, dar sa ai acces la asa ceva este ilegal. Nu ca a sparge conturile utilizatorilor ar fi legal, dar poti cumpara ip-uri de utilizat, dar nu stiu daca poti cumpara botNets.

Sa fim seriosi, in deceniul actual, fara a bloca accesul de pe dispozitive noi a unui cont a carui parola se incearca de mai multe ori, cam greu scapi de probleme.

Si chiar si dupa, intervine alta problema. Botii care de pe acelasi ip incearca cate 2 parole (in cazul in care dupa 3 ai ban) per cont per 24h, si in acelasi timp avand alt bot care incearca noi nume de conturi, pe care sa le sparga.

Dar probabil deja dam in overengineering. Daca vor sa te sparga, te sparg ei oricum.

hai s-o dam de tot in offtopic

eu folosesc deseori tor (https://www.google.ro/amp/www.digitaltrends.com/computing/a-beginners-guide-to-tor-how-to-navigate-through-the-underground-internet/amp/) ca sa “ma dau pe net” dar si ca sa testez aplicatii pe care le fac pt clienti

mi s-a intamplat in acest context sa ma autentific cu parola gresita si sa-mi iau ban din prima, pe criterii geografice, ipul de pe care venea tor fiind din cu totul alte tari; nu mi s-a parut deloc ok o banare de la prima greseala

si tot legat de geografie, de cate ori ies cu treaba din tara incepe cosmarul accesarii conturilor, toti confirma ca-s chiar eu, desi parola e buna mai trimit cârca de mailuri ca s-a intrat de nu-stiu-unde; poate ar trebui sa vada ca se repeta

2 Likes

Nu sunt chiar asa ieftine ip-urile. Oricum nu e o idee prea fericita sa cumperi o clasa de IP-uri pentru asta, ca vei fi usor de identificat. In mod sigur se folosesc botnet-uri.

Chestia e ca la viteza de cateva parole pe ora o sa-ti creasca barba pana la cot inainte sa nimeresti o parola decenta. Mai rau, s-ar putea sa nu stie nici macar username-ul. So…

Si cum zicea si tekkie, e posibil sa urmareasca din ce ţară activezi de obicei si cand brusc vad China sau Ucraina in loc de Romania, logic ca va fi blocat din prima.

Nu, nu este eficient asa. De aia nici nu prea se foloseste metoda asta, e mult mai productiv social engineering-ul.

1 Like

Apropo de social engineering, chiar ieri ma distram cu unul din aia care trimit spam-uri. Ma intrebam cum naiba castiga bani din prostiile alea, nu-mi dadeam seama care e mecanismul.

Am ales unul care zicea ca ministrul finantelor i-a dat lui un card Visa cu 2.7 milioane de dolari, sa mi-l trimita prin curier. Cam asa a fost dialogul :slight_smile:

  • (Eu) In sfarsit, de cand asteptam cardul ala. Il astept, trimite-mi-l.
  • (El) Ok, da-mi adresa ta si nr te telefon.
  • (Eu) Pai nu ti-a spus ministrul adresa mea?
  • (El) Am doar adresa de email, da-mi adresa ta si numarul de telefon.
  • (Eu) Nu am incredere sa dau adresa mea unei persoane straine. Cum il cheama pe ministrul finantelor?
  • (El) Mohamed Ahmed. Uite adresa lui de email, sa-l contactezi (si-mi da o adresa de hotmail)
  • (Eu) Din ce tara e ministrul de finante?
  • (El) Da-mi adresa ta si numarul de telefon. Scrie-i direct ministrului (pe adresa de hotmail)
  • (Eu) Spune-mi tara, ca il contactez eu pe adresa lui oficiala, nu pe hotmail.
  • (El) Uite, am facut o poza cardului tau VISA (si imi ataseaza un fake grosolan pe care e lipit numele meu)
  • (Eu) E un fake grosolan, try harder.
  • (El) Nu e fake.
    Nu-i mai raspund.
  • (El din nou) Pai daca nu vrei sa platesti taxele de transport pentru card, cu parere de rau o sa returnez cardul tau VISA bancii.
    M-am plictisit, nu i-am mai raspuns.

So, din dialogul de mai sus cred ca se observa ca oamenii astia sunt deosebit de proşti. Si cumva gasesc oameni si mai proşti decat ei pe care sa-i prosteasca.

1 Like