Zakaj bi vas bilo treba skrbeti, kadar je baza podatkov gesel storitve razpoka
»Včeraj smo ukradli našo bazo podatkov o geslih. Ampak ne skrbite: vaša gesla so bila šifrirana. «Izjave, kot je ta, redno vidimo na spletu, vključno z včerajšnjim, iz Yahooa. Toda ali bi res lahko vzeli ta zagotovila po nominalni vrednosti?
Resničnost je kompromis baze podatkov o geslih so ne glede na to, kako ga lahko podjetje poskuša zavrteti. Obstaja pa nekaj stvari, ki jih lahko naredite, da se izolirate, ne glede na to, kako slabe so varnostne prakse podjetja.
Kako je treba shraniti gesla
Kako naj podjetja shranjujejo gesla v idealnem svetu: ustvarite račun in vnesete geslo. Namesto shranjevanja gesla, storitev ustvari "hash" iz gesla. To je edinstven prstni odtis, ki ga ni mogoče obrniti. Na primer, geslo »geslo« se lahko spremeni v nekaj, kar izgleda bolj kot »4jfh75to4sud7gh93247g…«. Ko vnesete svoje geslo za prijavo, storitev generira razpršeno vrednost in preveri, ali se vrednost razpršitve ujema z vrednostjo, shranjeno v bazi podatkov. Storitev v nobenem trenutku ne shranjuje samega gesla na disk.
Če želite določiti svoje dejansko geslo, mora napadalec z dostopom do baze podatkov vnaprej izračunati hashe za skupna gesla in nato preveriti, ali obstajajo v bazi podatkov. Napadalci to storijo z iskalnimi tabelami - ogromnimi seznami hashov, ki se ujemajo z gesli. Heshe lahko nato primerjate z bazo podatkov. Na primer, napadalec bi vedel razpršenost za »password1« in nato preveril, ali kateri računi v bazi podatkov uporabljajo to razpršitev. Če so, napadalec ve, da je njihovo geslo »password1«.
Da bi to preprečili, bi morale službe „soliti“ svoje haše. Namesto, da ustvarite zgoščevanje iz gesla, dodajo na sprednji ali končni del gesla naključni niz, preden ga zgoščejo. Z drugimi besedami, uporabnik bi vnesel geslo »geslo« in storitev bi dodala sol in hašiš geslo, ki je bolj podobno »password35s2dg«. Vsak uporabniški račun bi moral imeti svojo edinstveno sol, kar bi zagotovilo, da vsak uporabniški račun bi imela drugačno hash vrednost za geslo v bazi podatkov. Tudi če bi več računov uporabilo geslo »password1«, bi imeli zaradi različnih vrednosti soli različne hashove. To bi premagalo napadalca, ki je poskušal vnaprej izračunati hasheve za gesla. Namesto da bi lahko ustvarili hashe, ki se uporabljajo za vsak uporabniški račun v celotni bazi podatkov naenkrat, bi morali ustvariti edinstvene razpršitve za vsak uporabniški račun in njegovo edinstveno sol. To bi zahtevalo veliko več časa za računanje in pomnilnika.
Zato službe pogosto pravijo, da ne skrbi. Storitev, ki uporablja ustrezne varnostne postopke, bi morala povedati, da so uporabljali soljene gesle. Če preprosto pravijo, da so gesla »zgoščena«, je to bolj zaskrbljujoče. LinkedIn je na primer zbrisal svoja gesla, vendar jih ni posolil - tako je bilo veliko, ko je LinkedIn v letu 2012 izgubil 6,5 milijona heširanih gesel.
Nepravilno ravnanje z geslom
To ni najtežje za izvedbo, vendar veliko spletnih mest še vedno uniči na različne načine:
- Shranjevanje gesel v navadnem besedilu: Namesto da bi se trudili z razprševanjem, lahko nekateri od najhujših kršiteljev preprosto izločijo gesla v obliki navadnega besedila v bazo podatkov. Če je taka baza podatkov ogrožena, so vaša gesla očitno ogrožena. Ne bi bilo pomembno, kako močne so bile.
- Razpuščanje gesel brez njih: Nekatere storitve lahko zgoščajo gesla in se odrečejo tam in se odločijo, da ne bodo uporabljale soli. Takšne podatkovne baze gesel bi bile zelo ranljive za pregledne tabele. Napadalec lahko ustvari hasheve za številna gesla in nato preveri, ali so obstajali v bazi podatkov - to lahko naredijo za vsak račun hkrati, če ni bila uporabljena sol.
- Ponovna uporaba soli: Nekatere storitve lahko uporabljajo sol, vendar lahko ponovno uporabijo isto sol za vsako geslo uporabniškega računa. To je nesmiselno - če je bila za vsakega uporabnika uporabljena ista sol, bi imeli dva uporabnika z istim geslom isto razpršitev.
- Uporaba kratkih soli: Če uporabljamo soli le nekaj številk, bi bilo mogoče ustvariti pregledne tabele, ki bi vključevale vse možne soli. Na primer, če bi se kot sol uporabila ena števka, bi lahko napadalec zlahka ustvaril sezname hashov, ki so vključevali vse možne soli.
Podjetja vam ne bodo vedno povedala celotne zgodbe, zato tudi, če pravijo, da je geslo zgoščeno (ali zgoščeno in soljeno), morda ne uporabljajo najboljših praks. Vedno se motite na strani previdnosti.
Druge skrbi
Verjetno je vrednost soli prisotna tudi v bazi podatkov o geslih. To ni tako slabo - če je bila za vsakega uporabnika uporabljena edinstvena vrednost soli, bi morali napadalci porabiti ogromne količine moči procesorja, da bi uničili vsa ta gesla..
V praksi tako veliko ljudi uporablja očitna gesla, da bi bilo težko določiti gesla mnogih uporabniških računov. Na primer, če napadalec pozna vašo razpršitev in pozna vašo sol, lahko zlahka preverijo, ali uporabljate nekaj najpogostejših gesel..
Če je napadalec na voljo za vas in želi zlomiti vaše geslo, lahko to storijo s surovo silo, če poznajo vrednost soli - kar verjetno storijo. Z lokalnim, offline dostopom do podatkovnih baz z gesli lahko napadalci uporabijo vse napade, ki jih želijo.
Drugi osebni podatki prav tako verjetno puščajo, če je ukradena baza podatkov o geslih: uporabniška imena, e-poštni naslovi in drugo. V primeru uhajanja Yahooa so se pojavila tudi varnostna vprašanja in odgovori, ki, kot vsi vemo, olajšajo krajo dostopa do računa nekoga.
Pomoč, kaj naj storim?
Ne glede na to, kaj storitev pravi, ko je ukradena njena gesla, je najbolje, da domnevamo, da je vsaka storitev popolnoma nesposobna in da deluje ustrezno.
Najprej ne uporabljajte več gesel na več spletnih mestih. Uporabite upravitelja gesel, ki ustvarja edinstvena gesla za vsako spletno mesto. Če napadalec odkrije, da je vaše geslo za storitev »43 ^ Sd% 7uho2 # 3« in ga uporabljate samo na tem določenem spletnem mestu, se niso naučili nič koristnega. Če uporabite isto geslo povsod, lahko dostopajo do drugih računov. To je, koliko računov ljudi postane "vdrto".
Če storitev postane ogrožena, spremenite geslo, ki ga uporabljate. Prav tako morate spremeniti geslo na drugih mestih, če ga ponovno uporabite - vendar tega ne bi smeli delati.
Razmislite tudi o uporabi dvokomponentnega preverjanja pristnosti, ki vas bo zaščitil tudi, če bo napadalec izvedel vaše geslo.
Najpomembnejša stvar ni ponovna uporaba gesel. Podatkovne zbirke z ogroženimi gesli vam ne morejo škoditi, če povsod uporabite edinstveno geslo - razen če shranite kaj drugega v bazo podatkov, na primer številko kreditne kartice.
Zasluge za sliko: Marc Falardeau na Flickru, Wikimedia Commons