Dnevne stolice: Najgora noćna mora zaporke

Nemojte dopustiti da vam njihovo slatko ime budalo, to su zastrašujuće.

Iako možda mislite na Rainbow Tables kao eklektičan šareni namještaj, one nisu one koje ćemo raspravljati. Dnevne ploče o kojima govorimo koriste se za ispuštanje lozinki i još su jedan alat u sve većem arsenalu hakera .

Što je pakao Rainbow tablice? Kako bi nešto sa takvim slatkim i cuddly imenom bilo tako štetno?

Osnovni koncept iza tablica duga

Ja sam loš tip koji je upravo spustio palac pogon na poslužitelj ili radnu stanicu, ponovno pokrenuo i pokrenuo program koji kopira datoteku sigurnosne baze podataka koja sadrži korisnička imena i lozinke na moj palac voziti.

Zaporke u datoteci su šifrirane tako da ih ne mogu čitati. Morat ću probiti lozinke u datoteci (ili barem administratorsku lozinku) kako bih ih mogao koristiti za pristup sustavu.

Koje su opcije za krekiranje zaporki? Mogu pokušati upotrijebiti program za lomljenje lozinke s velikim silama kao što je John the Ripper, koji se udaljava od lozinke, pokušavajući iterativno pogoditi svaku moguću kombinaciju lozinke. Druga opcija je učitavanje rječnika za lomljenje zaporke koji sadrži stotine tisuća najčešće korištenih zaporki i vidjeti hoće li dobiti hitove. Ove metode mogu potrajati tjednima, mjesecima ili čak godinama ako su zaporke dovoljno jake.

Kada se lozinka "pokušao" protiv sustava, "šalje" se pomoću enkripcije, tako da se stvarna lozinka ne šalje u jasnom tekstu preko komunikacijske linije. To sprječava prisluškivanje od presretanja lozinke. Hash lozinke obično izgleda kao hrpa smeća i obično je drugačija duljina od izvorne lozinke. Vaša zaporka može biti "shitzu", ali hash vaše zaporke izgleda nešto poput "7378347eedbfdd761619451949225ec1".

Da biste potvrdili korisnika, sustav uzima hash vrijednost izrađenu funkcijom šifriranja zaporke na klijentskom računalu i uspoređuje ga s hash vrijednošću pohranjenom u tablici na poslužitelju. Ako se hashovi podudaraju, korisnik je ovjeren i odobren pristup.

Udaranje lozinke je jednosmjerna funkcija, što znači da ne možete dekriptirati hash da biste vidjeli što je jasan tekst lozinke. Nema ključa za dešifriranje hashe kada se stvori. Ako ne želite, nema "dekoderskog prstena".

Programi zaprljanja lozinki rade na sličan način kao i proces prijave. Program pucanja započinje uzimanjem lozinki čistog teksta, provodi ih kroz hash algoritam, kao što je MD5, a zatim uspoređuje hash izlaz s hashom u ukradenoj lozinki. Ako pronađe utakmicu, program je napukao lozinku. Kao što smo već rekli, ovaj proces može potrajati jako dugo.

Unesite Rainbow tablice

Dnevne tablice su u osnovi ogromni setovi unaprijed izrađenih tablica ispunjenih vrijednostima hash-a koji se unaprijed podudaraju s mogućim lozinkama. Dnevne ploče bitno dopušta hakerima da preokrenu funkciju raspršivanja da bi utvrdila što bi lozinka neispravnog teksta mogla biti. Moguće je da dvije različite lozinke rezultiraju istim hashom tako da nije važno otkriti što je izvorna lozinka, kao čeznuti kao ima isti hash. Lozinka čistog teksta možda neće ni biti ista lozinka koju je izradio korisnik, ali sve dok se hash podudara, onda nije važno što je izvorna lozinka.

Upotreba Rainbow Tablica omogućuju da se lozinke u kratkom vremenskom razmaku puknu u usporedbi s metodama brutalne sile, međutim, kompromis je da je potrebno puno prostora za pohranu (ponekad Terabytes) da same drže Rainbow tablice, Pohranjivanje ovih dana je izdašno i jeftino, tako da ovaj kompromis nije tako velik posao kao prije deset godina kad terabajtni pogoni nisu bili nešto što biste mogli pokupiti na lokalnoj Best Buy.

Hakeri mogu kupiti prekompletirane Rainbow tablice za krekiranje lozinki ranjivih operacijskih sustava kao što su Windows XP, Vista, Windows 7 i aplikacije koje koriste MD5 i SHA1 kao njihov mehanizam za šifriranje zaporke (mnogi razvojni programeri web aplikacija i dalje upotrebljavaju ove hashing algoritme).

Kako se zaštititi od napada na lozinke temeljene na Rainbow tablicama

Željeli bismo da je ovaj savjet bolji za svakoga. Želimo reći da će jača lozinka pomoći, ali to nije istina jer slabost lozinke nije problem, to je slabost povezana s funkcijom hashe koja se koristi za šifriranje lozinke.

Najbolji savjet koji možemo pružiti korisnicima je da se držite podalje od web aplikacija koje ograničavaju duljinu zaporke na kratki broj znakova. Ovo je jasan znak ranjivih rutina autentifikacije lozinke za staru školu. Proširena duljina lozinke i složenost mogu malo pomoći, ali nisu zajamčeni oblik zaštite. Što je dulje vaše lozinke, veće će Rainbow tablice morati biti ispucale, ali haker s puno resursa i dalje može to ostvariti.

Naši savjeti o tome kako se obraniti od Rainbow Tablica zaista su namijenjeni programerima aplikacija i administratorima sustava. Oni su na prvoj crti kada je riječ o zaštiti korisnika od ove vrste napada.

Evo nekoliko savjeta za razvojne programere koji se bave protiv napada na Rainbow Table:

  1. Ne upotrebljavajte MD5 ili SHA1 u svojem funkcijom raspršivanja zaporke. MD5 i SHA1 su zastarjeli algoritmi za šifriranje zaporki, a većina dugačkih tablica koje se koriste za ispuštanje lozinki izrađuju se za ciljanje aplikacija i sustava pomoću tih metoda ishešavanja. Razmislite o korištenju modernijih metoda raspršivanja poput SHA2.
  2. Upotrijebite kriptografsku "sol" u rutinskoj isječci zaporke. Dodavanje kriptografske soli u vašu funkciju šifriranja zaporke pomoći će u obrani od korištenja Rainbow tablica koje se koriste za ispuštanje zaporki u vašoj aplikaciji. Da biste vidjeli neke primjere kodiranja o upotrebi kriptografske soli da biste pomogli "Rainbow-Proof" vašoj prijavi, molimo vas da provjerite WebMasters By Design site koji ima veliki članak o toj temi.

Ako želite vidjeti kako hakeri obavljaju lozinku napad pomoću Rainbow tablica, možete pročitati ovaj odličan članak o tome kako koristiti ove tehnike kako biste oporavili svoje lozinke.