Varför Ska Du Oroa dig När en Tjänst Lösenord Databas Är Läckt

0
360

“Vår databas lösenord stals i går. Men oroa dig inte: lösenorden var krypterade.” Vi ser regelbundet rapporter som denna online, inklusive igår, från Yahoo. Men ska vi verkligen ta dessa försäkringar till nominellt värde?

Verkligheten är som lösenord för databasen kompromisser är ett problem, oavsett hur ett företag kan försöka att snurra på den. Men det finns några saker du kan göra för att skydda dig själv, oavsett hur dåliga företagets säkerhetsrutiner.

Hur Lösenord Bör Förvaras

Här är hur företag bör lagra lösenord i en perfekt värld: Du skapa ett konto och tillhandahålla ett lösenord. Istället för att lagra lösenord i sig, tjänsten genererar en “hash” från lösenord. Detta är ett unikt fingeravtryck som inte kan vändas. Till exempel lösenord “lösenord” kan förvandlas till något som ser mer ut som “4jfh75to4sud7gh93247g…”. När du anger ditt lösenord för att logga in i tjänsten genererar en hash av det och kontrollerar om hash-värde som matchar värdet som lagras i databasen. Ingenstans i tjänsten någonsin spara ditt lösenord sig till disk.

För att bestämma din aktuella lösenord, en angripare med tillgång till databasen skulle ha att i förväg beräkna hash-värden för vanliga lösenord och sedan kontrollera om de finns i databasen. Angriparna göra detta med lookup tabeller—enorma listor med hashar som matchar lösenord. Den hash-värden kan sedan jämföras med databasen. Till exempel, en angripare skulle veta hash för “password1” och sedan se om någon står i databasen använder för att hash. Om de är angriparen vet deras lösenord är “password1”.

För att förhindra detta, tjänster skulle “salta” sina hashar. Istället för att skapa en hash från själva lösenordet, de lägga till en slumpmässig sträng på framsidan och i slutet av lösenord innan hash det. Med andra ord, en användare skulle ange lösenord “lösenord” och tjänsten skulle tillsätt salt och hash för ett lösenord som ser mer ut som “password35s2dg.” Varje användarkonto har sina egna unika salt, och detta skulle säkerställa att varje användarkonto skulle ha en annan hash-värde för sina lösenord i databasen. Även om flera konton används lösenordet “password1”, skulle de ha olika hash-värden på grund av de olika salt värden. Detta skulle besegra en angripare som försökt att i förväg beräkna hash-värden för lösenord. I stället för att kunna generera hashar som tillämpas för varje användarkonto i hela databasen på en gång, skulle de ha för att generera unika hash-värden för varje användarkonto och dess unika salt. Detta skulle ta mycket mer beräkningstiden och minne.

Detta är anledningen till att tjänster ofta säga att inte oroa sig. En service med god säkerhet förfaranden bör säga att de var med saltad hash-värden för lösenord. Om de är helt enkelt säga lösenorden är “kodad” det är mer oroande. LinkedIn del av deras lösenord, till exempel, men de ville inte salt—så det var en stor sak när LinkedIn förlorat 6,5 miljoner hashed passwords under 2012.

Dåliga Lösenord Praxis

Detta är inte det svåraste att genomföra, men många webbplatser fortfarande lyckas strula till det på olika sätt:

  • Att lagra Lösenord i Klartext: i Stället för att bry sig om hash, några av de värsta syndarna kan bara dumpa lösenord i klartext form i en databas. Om en sådan databas äventyras, dina lösenord är uppenbarligen äventyras. Skulle det ingen roll hur starka de var.
  • Hashning av Lösenord Utan Saltning Dem: Vissa tjänster kan hash lösenorden och ge upp det, väljer att inte använda salter. Sådana lösenord databaser skulle vara mycket sårbara för lookup-tabeller. En angripare kan skapa hash-värden för lösenord och sedan kolla om de fanns i databasen — att de kunde göra detta för varje konto på en gång om inget salt användes.
  • Att återanvända SalterVissa tjänster kan använda sig av ett salt, men de kan återanvända samma salt för varje användare lösenord för kontot. Detta är meningslöst—om samma salt som användes för varje användare, två användare med samma lösenord som skulle ha samma hash.
  • Att använda Kort Salter: Om salter av bara några siffror används, skulle det vara möjligt att generera lookup-tabeller som ingår varje möjligt salt. Till exempel, om en enda siffra användes som ett salt, angriparen kan enkelt skapa listor för hashar som ingår varje möjligt salt.

Företag kommer inte alltid berätta hela historien, så även om de säger ett lösenord var kodad (eller del av och salta), de får inte vara använda bästa praxis. Alltid fela på sidan av försiktighet.

Andra Frågor

Det är troligt att salt-värde är också närvarande i lösenord för databasen. Detta är inte så illa—om en unik salt-värde användes för varje användare, angripare skulle behöva spendera enorma mängder av CPU-kraft att bryta alla dessa lösenord.

I praktiken så många människor använder uppenbara lösenord som det skulle sannolikt vara lätt att avgöra många användarkonton lösenord. Till exempel, om en angripare vet din hash och de vet din salt, de kan enkelt kontrollera om du använder några av de vanligaste lösenorden.

RELATERAD ARTIKELHur Angriparna Faktiskt “Hacka Konton” på Nätet och Hur du Skyddar Dig

Om en angripare har det för dig och vill att knäcka ditt lösenord, kan de göra det med brutal kraft så länge som de vet att salt-värde—vilket de förmodligen gör. Med lokala, offline-tillgång till lösenord för databaser, angripare kan utnyttja alla brute force-attacker som de vill.

Andra personliga data sannolikt också läcker när ett lösenord för databasen är stulen: Användarnamn, e-postadresser och mycket mer. I fallet med Yahoo läcka, säkerhet frågor och svar var också läckt ut—vilket, som vi alla vet, göra det lättare att stjäla tillgång till någons konto.

Hjälp, Vad Ska Jag Göra?

Vad en tjänst säger när dess lösenord för databasen är stulen, det är bäst att anta att varje tjänst är helt inkompetent och agera därefter.

För det första, inte återanvända lösenord på flera olika webbplatser. Använda ett lösenord manager, som ger unika lösenord för varje webbplats. Om en angripare lyckas att upptäcka att ditt lösenord för en tjänst är “43^tSd%7uho2#3″ och du bara använder samma lösenord på att en viss webbplats, de har lärt sig något användbart. Om du använder samma lösenord överallt, de kunde komma åt dina andra konton. Detta är hur många konton blir hackade.”

Om en tjänst inte bli äventyras, se till att ändra lösenord du använder det. Du bör också ändra lösenord på andra webbplatser om du återanvända det där — men man ska inte göra det i första hand.

Du bör också överväga att använda två-faktor autentisering, vilket kommer att skydda dig även om en angripare lär sig ditt lösenord.

RELATERADE ARTIKLAR– Varför Du Bör Använda ett Lösenord Manager, och Hur man kan Komma IgångVad Är Två-Faktor Autentisering, och Varför Behöver jag Det?

Det viktigaste är att inte återanvända lösenord. Äventyras lösenord databaser kan inte skada dig om du använder ett unikt lösenord överallt — om de inte lagra något annat viktigt i databasen, som ditt kreditkortsnummer.

Image Credit: Marc Falardeau på Flickr, Wikimedia Commons