Primul task s-a incheiat destul de bine. Acum ca v-ati dezmortit neuronii, sa vedem al doilea task.
Ca in cazul anterior, raspunsul ar fi bine sa contina intre 50 si 500 de cuvinte. Nu va zgarciti la detalii pentru ca sunt apreciate - si intotdeauna sunt placute, cand sunt citite de o minte curioasa

Aveti doua zile sa va prezentati parerile. Spor la postat si have fun!

O parola buna e una lunga si complicata.
Acum sa definim ce inseamna lung si complicat, de la cat incepe o parola sa fie considerata "lunga".
O parola de lungime 8 care contine cel putin una din caracterele a-z,A-Z,0-9 + simboluri (32 la numar) va putea fi sparta ruland barsWF pe o placa nvidia tesla de ultima generatie in
38 de zile. Avand 38 placi la dispozitie evident timpul se imparte la numarul de placi, deci o zi.
Timpul necesar pentru a sparge o parola creste extrem de rapid odata cu cresterea lungimii parolei.
Asadar pentru a sparge o parola cu specificatiile de mai sus, dar de lungime 9 pe 38 placi, ar dura
~100 zileIn contrast, cu cat e mai putin complexa parola, cu atat e mai usor de spart :
Sa consideram 38 placi nvidia tesla ruland barsWF :
o parola a-z lungime 12 ar fi sparta in 15 zile
o parola A-Z lungime 12 ar fi sparta tot in 15 zile
o parola a-z + A-Z lungime 10 ar fi sparta in 22 zile
o parola a-z + A-Z + 0-9 lungime 10 ar fi sparta in 130 zile
o parola a-z + A-Z + 0-9 + simboluri + spatiu lungime 9 ar fi sparta in 100 zile
Luand in considerare faptul ca adaugand un caracter in plus la o parola, timpul necesar pentru a o sparge creste exponential => o parola este "sigura" daca e :
a-z, lungime >=13;
A-Z, lungime >=13;
a-z + A-Z, >=11
a-z + A-Z + 0-9, >=11
a-z + A-Z + 0-9 + simboluri + spatiu, >=10
//nu mai calculez la cea numerica, deoarece ar trece de 16.
Ce inseamna o parola a-z + A-Z + 0-9 + simboluri + spatiu, >=10 ?
Parola trebuie sa contina cel putin una din caracterele ce apartin acelor intervale, avand o lungime mai mare sau egala cu 11.
exemplu : "n2-zn@lL=\x"
Poate va intrebati de ce nu am luat in considerare si alte caractere ASCII. Deoarece foarte putine aplicatii web au suport pentru asfel de caractere, iar majoritatea sunt "mapped" (trec din acel caracter ascii intr-un caracter ce se incadreaza in intervalele a-z, A-Z si asa mai departe, de exemplu ă trece intai in "a" iar apoi este hashuit).
De ce am ales algoritmul MD5 in exemplu ?
Deoarece majoritatea sistemelor "web" folosesc acest algoritm hash, majoritatea fara salt, fara conversii speciale => e cel mai usor si frecvent atacat.
De ce nu m-am legat de rainbow tables in explicatia mea ?
Deoarece pentru a genera tabele pentru acele lungimi nu e fezabil, e nevoie de peste 100 TiB doar pentru mixalpha-numeric-symbol32-space#1-10, probabillitatea de succes 99.9% (rateaza 1 din 1000).
De ce am ales crackerul barsWF ?
Deoarece este cel mai rapid din lume folosind hash reversing + foloseste toata puterea tehnologiei CUDA, ale placilor cu marca Nvidia.
Daca vreti detalii cum am ajuns la aceste cifre, lasati un reply si voi posta o explicatie cu toate amanuntele necesare.
Mi lene acum, si nu vad necesara aceasta explicatie cel putin deocamdata.
Wtf, ce-i cu ozn-ul asta, de unde cunosti atatea despre hash cracking ?
//lauda de sine..//
Sunt moderator + dezvoltator al site-ului freerainbowtables.com de 2 ani jumate.
LE :
Ce exemplu de hash poti sa-mi dai care e "sigur".
Niciun algoritm hash nu e "sigur", in permanenta exista cercetatori care cauta asa numitele coliziuni, in general cu cat dureaza mai mult parcurgerea in intregime a algoritmului cu atat timpul pentru a sparge hashul e mai lung => cu atat e mai sigur.
Exemple : SHA-512, Haval-256, RipeMD-320, Whirlpool
LE2:
Ca algoritm de encriptare, ce sa folosesc ?
PGP recomand (gpg4win). Dar si AES-256 e relativ safe atm.
//multumesc Agkelos ca m-ai instiintat de "concurs"