Zašto lozinke nikada nisu bile slabije—a krekeri nikada nisu bili jači

Napad na rječnike

Ova vrsta razbijanja lozinki ušla je u svijest javnosti uglavnom zahvaljujući hakerskom trileru iz 1980-ih Kukavičje jaje, u kojem autor Cliff Stoll bilježi svoju stvarnu potragu za hakerom koji provaljuje u američke računalne sustave i krade osjetljive vojne i sigurnosne dokumente u ime sovjetskog KGB-a.

Duga povijest lozinki

Prva zabilježena upotreba tajnih riječi za provjeru autentičnosti ljudskog bića datira barem iz starog Rima, prema Josephu Bonneau, student Sveučilišta u Cambridgeu koji je nedavno završio doktorsku tezu o lozinkama i osobnim identifikacijskim brojevima pod naslovom "Pogađanje tajni koje su odabrali ljudi." Rimska vojska razvila je pažljivu proceduru za kruženje dnevnih parola poznatih kao signa kako bi spriječili infiltraciju neprijateljskih vojnika.

Tajne riječi za provjeru autentičnosti također se pojavljuju u priči "Ali Baba i četrdeset razbojnika", uključenoj u neke verzije Tisuću i jedna noć zbirka narodnih priča, kada protagonist koristi poznatu rečenicu "otvori sezam" kako bi otpečatio čarobnu špilju.

Bernardo u Shakespeareu Hamlet također može prizvati šifru kada se, na početku predstave, identificira stražarima dvorca riječima "Živio kralj!"

Vjeruje se da se prva upotreba lozinki za računalni sustav dogodila 1960-ih s kompatibilnim Sustav dijeljenja vremena na Massachusetts Institute of Technology, prema Bonneau (s dodatnom bojom iz Ožičeno reporter Robert McMillan ovdje). Lozinka za svaki korisnički račun pohranjena je u nešifriranoj glavnoj datoteci i korištena je za određivanje oskudnog vremena računanja. Prema oba izvještaja, doktorand na koledžu je priznao ono što će vjerojatno biti prvi kompromis u lozinci kako bi mogao povećati vrijeme dostupno za svoje projekte.

Sustav je uočio možda prvo curenje baze podataka o lozinkama 1965. kada je greška poslala datoteku na javni pisač, zahtijevajući od administratora da ručno poništi svaku lozinku.

Knjiga je krcata ljudima na visokim položajima koji potkopavaju nacionalnu sigurnost lošom higijenom lozinki — račun na mreži obrambenog poduzetnika SRI Inc. s korisničkim imenom i lozinkom "SAC", na primjer, ili super-korisnički račun za Lawrence Berkeley Labs koji nije mijenjan godinama.

"Kada je novac bio pohranjen u trezorima, provaljivači sefova napali su brave s kombinacijom", piše Stoll, koji kao pomaknuti astronom postaje nevjerojatni protagonist knjige u lovu na hakere. "Sada kada su vrijednosni papiri samo komadići u memoriji računala, lopovi traže lozinke."

Stollov račun bio je jedan od prvih koji je pokazao kako haker naoružan s malo više od rječnika i Unixa računalo može probiti bilo koju lozinku na engleskom jeziku, čak i kada je šifra pohranjena samo kao hash na hakiranom mašina. U jednom trenutku, Stoll uspoređuje kripto funkciju—koja se tada temeljila na sada zastarjelim podacima Encryption Standard (DES)—do jednosmjernog mlina za meso koji svaku čovjeku čitljivu riječ pretvara u jedinstvenu šifrirani tekst.

"Je li ovaj haker imao čarobnu formulu za dešifriranje?" - pita Stoll. "Ako okrenete ručicu stroja za kobasice unatrag, svinje neće izaći s drugog kraja."

Tek će kasnije Stoll saznati da je haker unosio svaku riječ iz rječnika - počevši od aardvark i završavajući sa zymurgy - u istu DES hash funkciju koju su koristili hakirani Unix sustavi. Uljez je zatim usporedio izlaz sa šifriranim tekstom sadržanim u presretnutim datotekama lozinki.

Ovo su bile ozbiljne stvari, napisao je Stoll. "To je značilo da svaki put kad sam ga vidio kako kopira datoteku s lozinkama, sada je mogao otkriti lozinke legitimnih korisnika. Loše vijesti."

Stoll to u to vrijeme nije znao, ali iako je uljez koristio rječnik da pogodi korisničke lozinke, kriptografi osmišljavali su novu vrstu napada koji bi u konačnici mogao probiti nekoliko redova veličine više hash-ova u frakciji vrijeme.

Veza duge

Klica ovog novog pristupa potekla je od Martina E. Hellman. Godine 1980. Hellman je objavio rad pod naslovom "Kriptoanalitički kompromis između vremena i pamćenja" koji je predložio ono što se kasnije nazvalo Hellmanovim tablicama. Ove su tablice sastavljene prije napada lozinkom i radile su pomoću unaprijed izračunatih podataka pohranjenih na disku. Hellmanove tablice smanjile su računalne resurse potrebne za krekiranje DES hash-a s oko 5000 USD na samo 10 USD. Godine 2003., kolega kriptograf Phillippe Oechslin predložio dorade Hellmanove tehnike što je znatno poboljšalo učinkovitost.

Rezultat je sada ono što je poznato kao dugine tablice. Gotovo preko noći promijenili su način na koji su ljudi krenuli u razbijanje velikog broja hashova zaporki. Kao i raniji kompromisi vremena i memorije koje je predložio Hellman, koncept je bio jednostavan. Umjesto da se od računala traži da nabroji svaku moguću lozinku u stvarnom vremenu i usporedi je s ciljanim hashom, unaprijed izračunati podaci pohranjeni su u memoriji ili na disku u visoko komprimiranom obliku kako bi se ubrzao proces i smanjili računalni zahtjevi potrebni za brute force golemog broja hashiranja.

Iako su ranije tehnike također isprobale ovaj pristup, proizvele su tablice koje su bile nepotrebno velike i stoga nezgrapne za probijanje lozinki. Genijalnost duginih tablica je složena matematička formula koja izražava gotovo svaku moguću kombinaciju lozinki bez potrebe da svaka bude pohranjena u memoriji ili na disku. Svaka tablica cilja na određeni algoritam i prostor ključeva te sadrži kolekciju lanaca. Svaki lanac počinje proizvoljnom lozinkom na jednoj strani i završava jednom hash vrijednošću na drugom kraju. Početna lozinka prolazi kroz algoritam za generiranje njezinog hash-a, a ta se vrijednost zatim prolazi kroz jednu od mnogih različitih "funkcija redukcije" za generiranje novog pogađanja lozinke. Nova lozinka se zatim raspršuje.

Od kriptografa Kestasa Kuliukasa: Lanac duginih tablica počinje s proizvoljnim otvorenim tekstom, hashira ga, reducira hash na drugi otvoreni tekst, hashira novi otvoreni tekst, i tako dalje. Tablica pohranjuje samo početni otvoreni tekst i konačni hash, pa tako lanac koji

Od kriptografa Kestasa Kuliukasa: Lanac duginih tablica počinje s proizvoljnim otvorenim tekstom, hashira ga, reducira hash na drugi otvoreni tekst, hashira novi otvoreni tekst, i tako dalje. Tablica pohranjuje samo početni otvoreni tekst i konačni hash, pa tako lanac koji "sadrži" milijune hashova može biti predstavljen sa samo jednim početnim otvorenim tekstom i jednim završnim hashom.

Kestas Kuliukas

Proces se nastavlja sve dok se ne dosegne hash na kraju lanca.

Pregled generiranja duginih tablica s četiri lanca.
Povećaj/ Pregled generiranja duginih tablica s četiri lanca.
Cryptohaze.com

Proboj nije bio samo brzina kojom su tablice mogle probiti lozinke; bila je to i njihova sposobnost puknuća gotovo sve moguće lozinke sve dok nije ispao izvan ciljanog prostora tipki. Vjeruje se da su dugine tablice dobile svoje ime jer svaka karika lanca koristi različitu funkciju redukcije, ali sve lanci slijede isti uzorak—kao što je svaka boja u dugi drugačija, ali sve duge slijede ROYGBIV uzorak.

Sama ušteda prostora je ogromna. Pohranjivanje tablice svake moguće lozinke od 10 znakova samo s malim slovima, zajedno s pripadajućim MD5 hashom, zahtijevalo bi oko 3108 terabajta prostora na disku. Za razliku od toga, dugina tablica koja izražava 99,9 posto tih kombinacija zahtijeva samo 167 gigabajta.

U eri sustava Windows XP, kada je Microsoftov temeljni LAN Manager ograničio duljinu lozinke na najviše 14 znakova najviše su pretvorene u dvije lozinke od sedam znakova i koje su sva slova pretvorile u velika slova, rezultati su bili razoran. Godine 2003. hakeri su pustili Ophcrack, program otvorenog koda koji je koristio dugine tablice za razbijanje većine Windows lozinki u samo nekoliko minuta. Ubrzo su uslijedile još snažnije aplikacije za krekiranje.

"Činjenica da možete imati ovu stvar koju svatko može preuzeti, a koja će razbiti doslovno svaku šifru lozinke za Windows XP bila je stvarno super", rekao je Marlinspike, koji je dizajnirao CloudCracker, usluga kojoj je potrebno oko 20 minuta da provjeri WiFi lozinku u odnosu na 300 milijuna mogućih riječi. "Nije da sam dobio 20 posto, ili 50 posto, ili čak 80 posto. Imaš ih sve. To je bila važna stvar."

Međutim, golemi napredak u razbijanju lozinki uz pomoć GPU-a umanjio je mnoge prednosti duginih tablica. Lozinke sa šest ili manje znakova mogu se provaliti brutalnom silom uz manje muke korištenjem GPU-a računala, dok lozinke duže od devet ili 10 znakova zahtijevaju dugine tablice s nezgrapnom datotekom veličine. To ostavlja samo malo slatko mjesto od sedam ili osam znakova gdje su dugine tablice posebno korisne ovih dana.

Ipak, tablice zadržavaju svoj status korisnog, iako nišnog, alata za neke hakere. Svjedok Besplatni Rainbow stolovi, projekt koji omogućuje volonterima da doniraju rezervne računalne cikluse za generiranje javno dostupnih tablica koje razbijaju hashove koje vraćaju algoritmi uključujući SHA1, MD5 i NTLM. Organizatori su već prikupili šest terabajta podataka. Uz sudjelovanje više od 3900 računala volontera, Free Rainbow Tables dodaje procijenjenu 36 megabita tabličnih podataka svake sekunde, prema Jamesu Nobisu, jednom od programera koji stoji iza projekt.

Treba više soli

Ažurirana verzija LAN Managera poznata kao NTLM predstavljena je sa sustavom Windows NT 3.1. Smanjio je osjetljivost Windows lozinki na napade duginih tablica, ali nije eliminirao rizik. Do danas, sustav provjere autentičnosti još uvijek ne primjenjuje kriptografsku "sol" na lozinke kako bi takve napade učinio neizvedivim.

Salting dodaje nekoliko jedinstvenih znakova svakoj lozinci računa prije nego što je pokrene iako a kriptografska funkcija, proces koji smanjuje vrijednost duginih tablica i drugih vrsta unaprijed izračunati napadi. Za 16-bitnu sol, na primjer, potrebno je 65 535—ili 216— odvojeni stolovi za poraz. Nasumična sol od 32 bita čini napade duginim tablicama još nepraktičnijim povećavajući broj potrebnih tablica na više od četiri milijarde. (Sol se mora spremiti za svakog korisnika i obično se pohranjuje pored korisničkog imena i lozinke, tako da su informacije dostupne tijekom svake prijave korisnika. Sol se rijetko drži odvojeno od hašiša. Čak i kada je poznata, njegova vrlina leži u njegovoj jedinstvenosti, koja pobjeđuje prethodno izračunavanje rezultata.)

Da bismo ilustrirali kako to izgleda u praksi, stvorili smo novi Linux račun za "testuser". Operativni sustav pohranjuje podatke za prijavu u jednom dugom retku teksta (koji se čuva u /etc/shadow, gdje Linux pohranjuje lozinke):

testuser:$6$2lvEhpi5$KnVn901C4Y23zsVZK1/UILbTkKIU6hA6V/opXZ3yQU.EhVxQS6/KjaO2bH7VZOOr/DTGko9LjqWOi7CrU.Ggy0:15569:0:99999:7

Redak je razdvojen dvotočkama — prvo dolazi korisničko ime, zatim dugačak dio zaporke, zatim podaci o tome kada je lozinka zadnji put promijenjena, koliko je stara, kada račun ističe i više.

Važan dio za naše svrhe je odjeljak za lozinku, koji je interno podijeljen simbolima $. Prvo dolazi broj koji identificira korišteni algoritam raspršivanja—u ovom slučaju 6 odgovara algoritmu SHA-512. Sljedeća je sol, 2lvEhpi5. Konačno, tu je i sam hash, dugačak niz slova i simbola.

Osim što napade duginim stolom čini neizvedivim, soljenje također može značajno povećati resurse potrebne za nošenje više tradicionalnih napada krekiranja, jer osigurava da je svaki pohranjeni hash jedinstven čak i ako dva korisnika odaberu isti lozinka. To zauzvrat zahtijeva da se svaki hash u kompromitiranoj tablici zasebno probije, čak i ako maskiraju jednu ili više identičnih lozinki otvorenog teksta.

Unatoč dobrobiti ove tehnike i relativnoj jednostavnosti njezine primjene, iznenađujući broj web stranica—uključujući LinkedIn, Yahoo, i eHarmonija— nisu ga upotrijebili kada su nedavno probijeni. Hashevi izvedeni iz NTLM-a, budući da nikad ne koriste soljenje, među najlakšima su za razbijanje.

Na štetu milijuna korisnika interneta, izostavljanje soli samo je jedan od mnogih grijeha koje popularne web stranice rutinski čine protiv sigurnosti lozinki.

Najnoviji post na blogu

3-D ispis, sada od nehrđajućeg čelika
August 21, 2023

Izradite svoje dizajne u metalu, brzo i jeftino, iz udobnosti vašeg računala. Sad možeš prestati lupati po tom nakovnju; proizvodnja čelika presel...

Sada možete reći Googleu što da radi s vašim računom u zagrobnom životu
September 26, 2023

54 s Nema boljeg načina da započnete poslijepodne od pomirenja sa svojom smrtnošću, što ćete morati učiniti ako želite iskoristiti Googleovu novu N...

Atarijev korporativni zombi prikupio je 110.000 dolara preko noći od Centipede NFT-ova
September 18, 2023

116 s Ova slika je praktički bezvrijedna. Ali NFT koji predstavlja isti 3D model upravo je prodan za 18 000 dolara. Ova digitalna "relikvija" tre...