Zašto biste trebali brinuti kad god je baza podataka zaporke usluge procurila
- Juče smo ukrali bazu podataka za zaporke. Ali ne brinite: vaše su lozinke šifrirane. ”Izjave poput ove redovito vidimo na internetu, uključujući jučer, iz Yahooa. No, trebamo li stvarno uzeti ta uvjeravanja u nominalnu vrijednost?
Stvarnost je kompromis baze podataka lozinki su zabrinutost, bez obzira na to kako ga tvrtka može pokušati zavrtjeti. Ali postoji nekoliko stvari koje možete učiniti da se izolirate, bez obzira koliko loše sigurnosne prakse tvrtke postoje.
Kako se pohranjuju lozinke
Evo kako tvrtke trebaju pohranjivati lozinke u idealnom svijetu: kreirate račun i unosite zaporku. Umjesto pohranjivanja same lozinke, usluga generira "hash" iz lozinke. Ovo je jedinstveni otisak prsta koji se ne može promijeniti. Na primjer, zaporka "lozinka" može se pretvoriti u nešto što izgleda više kao "4jfh75to4sud7gh93247g…". Kada unesete lozinku za prijavu, usluga generira hash i provjerava odgovara li vrijednost hash vrijednosti pohranjenoj u bazi podataka. Usluga ni u jednom trenutku ne čuva samu lozinku na disku.
Da biste odredili stvarnu zaporku, napadač s pristupom bazi podataka morao bi unaprijed izračunati hasheve za uobičajene lozinke, a zatim provjeriti postoje li u bazi podataka. Napadači to rade s preglednim tablicama - ogromnim popisima hasheva koji odgovaraju lozinkama. Zatim se heš može usporediti s bazom podataka. Naprimjer, napadač bi znao hash za "password1", a zatim provjerio koristi li bilo koji račun u bazi podataka taj hash. Ako jesu, napadač zna da je njihova lozinka "password1".
Da bi se to spriječilo, službe bi trebale „soliti“ svoje haše. Umjesto stvaranja hash-a od same lozinke, dodaju nasumični niz na prednju ili krajnju lozinku prije nego što je hashing. Drugim riječima, korisnik bi unio lozinku "lozinka", a usluga bi dodala sol i hash lozinku koja izgleda više kao "password35s2dg." će imati različitu vrijednost za svoju lozinku u bazi podataka. Čak i ako višestruki računi koriste lozinku “password1”, zbog različitih vrijednosti soli imat će različite hasheve. To bi porazilo napadača koji je pokušao unaprijed izračunati hasheve za lozinke. Umjesto da mogu generirati hasheve koji se primjenjuju na svaki korisnički račun u cijeloj bazi podataka odjednom, morali bi generirati jedinstvene hasheve za svaki korisnički račun i njegovu jedinstvenu sol. To bi zahtijevalo mnogo više vremena i memorije.
Zato usluge često kažu da se ne brinite. Usluga koja koristi odgovarajuće sigurnosne procedure trebala bi reći da su koristili slane hasheve lozinki. Ako jednostavno kažu da su lozinke "raspršene", to je više zabrinjavajuće. LinkedIn je, primjerice, zgazio svoje lozinke, ali ih nije posolio - tako da je to bila velika stvar kada je LinkedIn izgubio 6,5 milijuna heširanih lozinki u 2012. godini.
Loša praksa lozinki
To nije najteže implementirati, ali mnoge web-lokacije još uvijek uspijevaju zabrljati na razne načine:
- Pohranjivanje lozinki u običnom tekstu: Umjesto da se gnjavite, neka od najgorih počinitelja mogu samo odlagati lozinke u obliku običnog teksta u bazu podataka. Ako je takva baza podataka ugrožena, lozinke su očito ugrožene. Ne bi bilo važno koliko su jaki.
- Hashing lozinke bez njih Salting: Neke usluge mogu hash-ove lozinke i odustati od njih, odlučivši se ne koristiti soli. Takve baze podataka lozinki bile bi vrlo osjetljive na pregledne tablice. Napadač može generirati hasheve za mnoge lozinke, a zatim provjeriti postoje li u bazi podataka - to mogu učiniti za svaki račun odjednom, ako nije korištena sol.
- Ponovno korištenje soli: Neke usluge mogu koristiti sol, ali mogu ponovno koristiti istu sol za svaku lozinku korisničkog računa. To je besmisleno - ako se ista sol koristi za svakog korisnika, dva korisnika s istom lozinkom imat će isti hash.
- Korištenje kratkih soli: Ako se koriste soli od samo nekoliko znamenki, moguće je generirati pregledne tablice koje uključuju svaku moguću sol. Na primjer, ako je jedna znamenka korištena kao sol, napadač bi lako mogao generirati popise hashesa koji su sadržavali svaku moguću sol.
Tvrtke vam neće uvijek ispričati cijelu priču, pa čak i ako kažu da je lozinka raspršena (ili raspršena i usoljena), možda ne koriste najbolje prakse. Uvijek griješite na strani opreza.
Ostale brige
Vrlo je vjerojatno da je vrijednost soli također prisutna u bazi lozinki. To nije tako loše - ako se za svakog korisnika koristi jedinstvena vrijednost soli, napadači će morati potrošiti ogromne količine snage CPU-a kako bi uništili sve te lozinke.
U praksi, toliko ljudi koristi očite lozinke da bi bilo lako odrediti lozinke mnogih korisničkih računa. Na primjer, ako napadač poznaje vaš hash i oni znaju vašu sol, lako mogu provjeriti koriste li se neke od najčešćih zaporki.
Ako je napadač ima za vas i želi otkriti vašu lozinku, oni to mogu učiniti s brutalnom silom sve dok znaju vrijednost soli - što vjerojatno i čine. S lokalnim, izvanmrežnim pristupom bazi podataka za lozinke, napadači mogu upotrijebiti sve napade brutalnim silama koje žele.
Drugi osobni podaci vjerojatno također propuštaju kada je ukradena baza podataka lozinki: korisnička imena, adrese e-pošte i drugo. U slučaju curenja Yahooa, sigurnosna pitanja i odgovori također su procurili - što, kao što svi znamo, olakšavaju krađu pristupa nečijem računu.
Pomoć, što trebam učiniti?
Što god usluga kaže kada je ukradena baza podataka za lozinke, najbolje je pretpostaviti da je svaka usluga potpuno nesposobna i da se ponaša u skladu s tim.
Prvo, ne upotrebljavajte ponovno lozinke na više web-lokacija. Koristite upravitelja zaporki koji generira jedinstvene zaporke za svaku web-lokaciju. Ako napadač uspije otkriti da je vaša zaporka za uslugu "43 ^ Sd% 7uho2 # 3" i da tu lozinku koristite samo na toj određenoj web-lokaciji, nisu naučili ništa korisno. Ako koristite istu lozinku posvuda, mogli bi pristupiti vašim drugim računima. Ovako mnogi računi ljudi postaju "sjeckani".
Ako usluga postane kompromitirana, svakako promijenite zaporku koju koristite. Također biste trebali promijeniti zaporku na drugim web-mjestima ako je ponovno upotrebljavate - ali to prvo ne biste trebali raditi.
Razmislite io autentifikaciji u dva faktora koja će vas štititi čak i ako napadač sazna vašu lozinku.
Najvažnija stvar nije ponovno korištenje lozinki. Baze podataka ugroženih zaporki ne mogu vas povrijediti ako upotrebljavate jedinstvenu lozinku posvuda - osim ako ne pohranjuju nešto drugo važno u bazi podataka, kao što je broj vaše kreditne kartice.
Zasluge za sliku: Marc Falardeau na Flickru, Wikimedia Commons