”Vores adgangskodedatabase blev stjålet i går. Men rolig: dine adgangskoder blev krypteret. " Vi ser regelmæssigt udsagn som denne online, inklusive i går, fra Yahoo . Men skal vi virkelig tage disse forsikringer til pålydende værdi?
Virkeligheden er, at adgangskodedatabase kompromitterer er en bekymring, uanset hvordan en virksomhed kan forsøge at dreje den. Men der er et par ting, du kan gøre for at isolere dig selv, uanset hvor dårlig en virksomheds sikkerhedspraksis er.
Hvordan adgangskoder skal gemmes
Sådan skal virksomheder gemme adgangskoder i en ideel verden: Du opretter en konto og giver en adgangskode. I stedet for at gemme adgangskoden selv genererer tjenesten en "hash" fra adgangskoden. Dette er et unikt fingeraftryk, der ikke kan vendes. For eksempel kan adgangskoden "adgangskode" blive til noget, der ligner mere "4jfh75to4sud7gh93247g ...". Når du indtaster din adgangskode for at logge ind, genererer tjenesten en hash fra den og kontrollerer, om hashværdien matcher den værdi, der er gemt i databasen. På intet tidspunkt gemmer tjenesten nogensinde selve din adgangskode på disken.
For at bestemme din aktuelle adgangskode skal en hacker med adgang til databasen forud beregne hash for almindelige adgangskoder og derefter kontrollere, om de findes i databasen. Angribere gør dette med opslagstabeller - enorme lister med hashes, der matcher adgangskoder. Hasherne kan derefter sammenlignes med databasen. For eksempel vil en hacker kende hash for "password1" og derefter se om nogen konti i databasen bruger den hash. Hvis de er det, ved angriberen, at deres adgangskode er "password1".
For at forhindre dette skal tjenester "salt" deres hash. I stedet for at oprette en hash fra selve adgangskoden, tilføjer de en tilfældig streng foran eller slutningen af adgangskoden, før de hasher den. Med andre ord vil en bruger indtaste adgangskoden "adgangskode", og tjenesten tilføjer salt og hash en adgangskode, der ligner mere "password35s2dg." Hver brugerkonto skal have sit eget unikke salt, og dette vil sikre, at hver brugerkonto har en anden hash-værdi for deres adgangskode i databasen. Selvom flere konti brugte adgangskoden "password1", ville de have forskellige hashes på grund af de forskellige saltværdier. Dette ville besejre en angriber, der forsøgte at forhåndsberegne hash for adgangskoder. I stedet for at kunne generere hashes, der gælder for hver brugerkonto i hele databasen på én gang, er de nødt til at generere unikke hashes for hver brugerkonto og dens unikke salt. Dette ville tage meget mere beregningstid og hukommelse.
Derfor siger tjenester ofte ikke at bekymre sig. En tjeneste, der bruger de rette sikkerhedsprocedurer, skal sige, at de brugte saltet adgangskodeshash. Hvis de blot siger adgangskoderne er "hashede", er det mere bekymrende. LinkedIn hash deres adgangskoder, for eksempel, men de saltede dem ikke - så det var en big deal da LinkedIn mistede 6,5 millioner hash-adgangskoder i 2012 .
Dårlig praksis med adgangskode
Dette er ikke den sværeste ting at implementere, men mange websteder formår stadig at ødelægge det på en række måder:
- Opbevaring af adgangskoder i almindelig tekst : I stedet for at gider med hashing, kan nogle af de værste lovovertrædere bare dumpe adgangskoderne i almindelig tekstform i en database. Hvis en sådan database er kompromitteret, er dine adgangskoder naturligvis kompromitterede. Det betyder ikke noget, hvor stærke de var.
- Hashing adgangskoder uden saltning dem : Nogle tjenester kan hash kodeordene og give op der og vælger ikke at bruge salte. Sådanne adgangskodedatabaser ville være meget sårbare over for opslagstabeller. En angriber kunne generere hash for mange adgangskoder og derefter kontrollere, om de eksisterede i databasen - de kunne gøre dette for hver konto på én gang, hvis der ikke blev brugt salt.
- Genanvendelse af salte : Nogle tjenester bruger muligvis et salt, men de genbruger muligvis det samme salt til hver adgangskode til en brugerkonto. Dette er meningsløst - hvis det samme salt blev brugt til hver bruger, ville to brugere med samme adgangskode have den samme hash.
- Brug af korte salte : Hvis der anvendes salte med kun få cifre, ville det være muligt at generere opslagstabeller, der inkorporerede alt muligt salt. For eksempel, hvis et enkelt ciffer blev brugt som et salt, kunne angriberen let generere lister med hashes, der inkorporerede ethvert muligt salt.
Virksomheder fortæller dig ikke altid hele historien, så selvom de siger, at en adgangskode er hashet (eller hashet og saltet), bruger de muligvis ikke de bedste fremgangsmåder. Fejl altid ved siden af forsigtighed.
Andre bekymringer
Det er sandsynligt, at saltværdien også findes i adgangskodedatabasen. Dette er ikke så slemt - hvis der blev brugt en unik saltværdi for hver bruger, ville angriberne bruge enorme mængder CPU-strøm på at bryde alle disse adgangskoder.
I praksis bruger så mange mennesker åbenlyse adgangskoder, at det sandsynligvis ville være let at bestemme mange brugerkontos adgangskoder. For eksempel, hvis en angriber kender din hash, og de kender dit salt, kan de let kontrollere, om du bruger nogle af de mest almindelige adgangskoder.
RELATEREDE: Hvordan angribere faktisk "hacker konti" online, og hvordan du beskytter dig selv
Hvis en hacker har det ude for dig og ønsker at knække dit kodeord, kan de gøre det med brutal kraft, så længe de kender saltværdien - hvilket de sandsynligvis gør. Med lokal, offline adgang til adgangskodedatabaser kan angribere anvende al den brutale kraftangreb de vil have.
Andre personlige data lækker sandsynligvis også, når en adgangskodedatabase stjæles: Brugernavne, e-mail-adresser og mere. I tilfælde af Yahoo-lækagen lækkede også sikkerhedsspørgsmål og svar - hvilket, som vi alle ved, gør det lettere at stjæle adgang til andres konto.
Hjælp, hvad skal jeg gøre?
Uanset hvad en tjeneste siger, når dens adgangskodedatabase stjæles, er det bedst at antage, at enhver tjeneste er fuldstændig inkompetent og handle i overensstemmelse hermed.
For det første må du ikke genbruge adgangskoder på flere websteder. Brug en adgangskodeadministrator, der genererer unikke adgangskoder til hvert websted . Hvis en angriber formår at opdage, at din adgangskode til en tjeneste er "43 ^ tSd% 7uho2 # 3", og du kun bruger adgangskoden på det ene specifikke websted, har de ikke lært noget nyttigt. Hvis du bruger den samme adgangskode overalt, kunne de få adgang til dine andre konti. Dette er hvor mange menneskers konti bliver "hacket".
Hvis en tjeneste bliver kompromitteret, skal du sørge for at ændre den adgangskode, du bruger der. Du bør også ændre adgangskoden på andre websteder, hvis du genbruger den der - men du skal ikke gøre det i første omgang.
Du bør også overveje ved hjælp af tofaktorautentificering , som vil beskytte dig, selvom en angriber lærer din adgangskode.
RELATEREDE: Hvorfor du skal bruge en adgangskodeadministrator, og hvordan du kommer i gang
Det vigtigste er ikke at genbruge adgangskoder. Kompromitterede adgangskodedatabaser kan ikke skade dig, hvis du bruger en unik adgangskode overalt - medmindre de gemmer noget andet vigtigt i databasen, som f.eks. Dit kreditkortnummer.
Billedkredit: Marc Falardeau på Flickr , Wikimedia Commons