Zaporka od 8 znakova - relikt prošlosti

Odavno postoje sustavi zaštite, poput biometričkih sustava, koji pokušavaju nadomjestiti, poboljšati ili učiniti sigurnijima postojeće načine autentikacije. No, nijedan još nije zamijenio običnu zaporku, koju ukucavate nekoliko puta na dan (a mnogi i nekoliko desetaka puta na dan). No, ono što čini običnu zaporku opasnom je njena duljina.

Današnji hardver je, a pri tome poglavito mislimo na procesore na grafičkim karticama, prilagođen upravo matematičkim operacijama koje se rabe u kriptografiji. Vremena procesiranja kriptografskih funkcija su se smanjila za nekoliko redova veličina, ali tu nije kraj poboljšanjima.

U nekim su se popularnim algoritmima pronašle slabosti koje značajno oslabljuju njihovu snagu u realnoj primjeni, a time i njihovu vrijednost u pogledu sigurnosti. Neki algoritmi su se, pak, pokazali kao jednostavno preslabim za današnje uvjete, pa se polako izbacuju iz upotrebe. Čak se i za PGP/GnuPG ključeve sada preporučuje uporaba samo najjačih ključeva, onih od 2048 bitova.

Nadalje, nije sve ni u sirovoj snazi procesora. Postoje već izračunate tablice s riječima iz rječnika, pa se ovaj tip napada (a to je vid klasičnog rječničkog napada - dictionary attack) može obaviti vrlo brzo. Umjesto da se izračunava kriptografski hash za svaku moguću inačicu zaporke, dovoljno ju je usporediti s onom iz tablice. Tablice su nazvane vrlo zanimljivo - rainbow tables.

Ni to nije sve. Svako toliko se može pročitati kako su hackeri provali u bazu podataka korisnika nekog servisa te pokupili njihove zaporke. To je odlična prilika za analizu zaporki koje ljudi najčešće rabe. Kada se kombiniraju tablice rainbow, milijuni proanaliziranih korisničkih zaporki i slabosti untar uobičajenih enkripcijskih rutina, nije teško zaključiti da je odzvonilo klasičnim zaporkama  tipa "ma dosta ti je 8 znakova".

Nećemo ulaziti u daljnje analize kvalitete kriptogtafskih algoritama ili kvalitete zaštite on-line servisa, ali ćemo se upitati što možemo učiniti da povećamo vlastitu sigurnost? Odgovor je: povećati duljinu zaporke! Pogledajmo strip sa čuvene stranice xkcd.com:

Ovaj kratki strip jako dobro ilustrira ono što želimo reći. Godinama su nas učili, a mi dalje prenosili, da je potpuno siguran onaj password, koji ima 8 znakova, s time da se rabe i interpunkcijski znakovi, zamjenjuju neka slova brojkama i slične manipulacije. Ovo više nije dobar savjet, jer će svaki program za probijanje zaporki uzeti ovakve manipulacije u obzir. Dakle, zamjena slova brojevima i drugim znakovima (u stilu "L337 $P34|<  - leet speak") više ne prolazi. Dodavanje brojeva na kraju zaporke također više ne prolazi. Ono što još prolazi je jednostavno povećati duljinu zaporke, što će broj kombinacija povećati na vrijednosti koje je teško sustići s današnjim, ali i sutrašnjim hardverom.

Postoje web stranice nakojima možete izračunati "snagu" svoje zaporke, ali teško je reći koliko su ti podaci precizni. Uz to, ukoliko koristite neki drugi kalkulator, dobit ćete drugačije podatke. Svejedno, navest ćemo jedan, pa provjerite svoju zaporku:

https://www.grc.com/haystack.htm

Nećemo vas zamarati s brojnim linkovima, ali ćemo navesti link gdje možete naći podatak da se s klasterom od (samo) 25 Radeon grafičkih procesora svaki NTLM hash (mreža u Windowsu) može razbiti u manje od 6 sati. Taj sustav može napraviti 180 milijardi MD5 hasheva u sekundi. Ili, 63 milijarde SHA1 hasheva u sekundi. Složeniji algoritmima treba više vremena, ali i tu se radi o milijunima izračuna u sekundi. Originalni članak potražite na adresi:

http://www.net-security.org/secworld.php?id=14077

Da završimo misao... ukoliko koristite zaporku tipa pero1205 (gdje je 12.05. datum vaseg rođenja), ne možete računati na sigurnost zaporke (i bez činjenice da ne treba koristiti nikakve lako dostupne podatke o vama u zaporci). Jasno da ne možete narediti svojim korisnicima da prijeđu na duljine zaporki od 10 ili 12 znakova, ali napravite tu promjenu za kritične korisničke račune, one s povišenim privilegijama. Način na koji ćete ih složiti nije toliko bitan.

Nemojte koristiti iste zaporke na više mjesta, pogotovo ako se radi o nekim on-line servisima, društvenim mrežama i slično. Ubacite koji interpunkcijski znak i nemojte koristiti manje od 10 (ili bolje, 12) znakova, pa ćete moći "preživjeti" još koju godinu.

Vijesti: 
Vote: 
5
Vaša ocjena: Nema Average: 5 (2 votes)

Komentari

Kada se govori o sigurnosti računalnih sustava, često je fokus na duljini lozinki i kriptografskim algoritmima koji se koriste kod prijenosa lozinke kroz mrežu odnosno kod provjere lozinke.

Tu se uvijek općenito spominje dictionary attack i rainbow tables ali bez pojedinosti iz stvarnog svijeta. Npr. nisam još susreo da je navedeno koliko su stvarno veliki ti rječnici/tablice, tj. koliko lozinki oni pokrivaju. Također, pokrivaju li sve svjetske jezike ili samo engleski i još po koji svjetski jezik?

Nadalje, korisnicima se rijetko ukazuje na druga pitanja sigurnosti prilikom korištenja računalnih sustava.

Npr. kako na siguran način spremati lozinke (budući da korisnik mora koristiti puno različitih i dugačkih lozinki koje ne može sve zapamtiti)? Kako postupati s tim spremištima lozinki?

Što se može dogoditi u slučaju fizičkog otuđenja osobnog računala? Poznato je da na mnogim sustavima fizička dostupnost do računala daje mogućnost promjene lozinke lokalnog administratora (superusera) koji zatim može promijeniti lozinku bilo kojeg drugog lokalnog korisnika. Nakon prijave na tako probijeni korisnički račun dobiva se i pristup na korisnikov e-mail i razne internetske servise ako je korisnik dozvolio da e-mail klijent i web preglednik pamte njihove lozinke za pristup na internetske servise, što je čest slučaj. Dakle, provalnik može počiniti višestruku krađu korisnikovog identiteta.

Danas se sve više koriste pametni telefoni za pristup e-mailu i drugim internetskim servisima. Kako se zaštititi od krađe korisnikovog identiteta u slučaju otuđenja takvog telefona?

Posebno je bitno pitanje sigurnosti prilikom korištenja web preglednika i drugih aplikacija kroz koje se korisnik prijavljuje na internetske servise. Zna li korisnik prepoznati da komunikacija između njegovog web preglednika i web servera nije kriptirana? Što je s prihvaćanjem SSL-certifikata koji nisu potpisani od strane nekog CA? Zna li korisnik prepoznati phishing attack kako ne bi nasjeo na njega i odao svoje lozinke?

Itd.

Naravno da si u pravu, ima još mnogo toga što bi trebalo usavršiti.

No probaj svoje korisnike, a posebno upravu, nagovoriti da ti odobre da na tehničkoj razini zadaš složeni password koji treba često mijenjati!

Nema šanse, dok god je na čelu ustanove doktor znanosti koji koristi password u stilu pero123! On ti neće odobriti bilo kakav pokušaj da se sigurnost poboljša na elementarnoj razini.

I to je to! I zato se uvijek vraćamo na početak.

Učili su učili, od srijede do petka, al se nisu makli dalje od početka! :)