Husk både hash og salt!
Nej, det er ikke min indkøbsliste. Heller ikke et indlæg i debatten om legalisering af hash.
Men når det gælder beskyttelse af passwords, er hash ikke til at komme udenom. Altså i betydningen hashfunktioner.
I den senere tid har vi set flere såkaldte megalækager, hvor millioner af brugernavne og passwords til web-tjenester er sat til salg.
Det er gået ud over brugerne af LinkedIn, Fling, Tumblr og MySpace.
Dataene stammer fra hackerangreb på tjenesterne, hvor hackerne fik fat i data om brugerne.
Angrebene understreger vigtigheden af at beskytte passwords effektivt. Her er hashfunktionen et uomgængeligt redskab.
Brug hashfunktioner
Som bekendt er en hashfunktion en envejsfunktion, der ud fra et input af vilkårlig længde genererer et output med en fast længde. Det samme input fører altid til det samme output.
To forskellige input må ikke give det samme output.
Vi har brugt hashfunktioner til at beskytte passwords i mange år. Vi lagrer aldrig et password. I stedet lagrer vi en hashværdi af det.
Når en bruger indtaster sit brugernavn og password for at logge ind, beregner vi hashværdien af passwordet og sammenligner den med den lagrede hashværdi.
Angrebene på webtjenesterne viser, at det er afgørende at lagre passwords, så de ikke kan knækkes, hvis uvedkommende får fat i dem.
Kombiner med salt
En hashfunktion er et vigtigt første skridt.
Men den er ikke nok. Hvis man lagrer de rene hashværdier, kan de knækkes. Det kan ske med ren brute force, et dictionary-angreb, eller med tabeller over passwords og hashværdier, der er beregnet på forhånd.
For at beskytte mod angreb skal man derfor kombinere passwordet med en unik værdi, et såkaldt salt, før man beregner hashværdien.
Det havde LinkedIn forsømt, da firmaet i 2012 blev offer for et hackerangreb.
Dengang troede vi, at angriberne kun havde fået fat i 6,5 millioner hashværdier.
Men i maj måned i år blev 165 millioner brugernavne og tilhørende hashværdier for passwords til LinkedIn sat til salg på det sorte marked.
Passwords var lagret i form af hashværdier dannet med SHA1-algoritmen. Og der var ikke benyttet noget salt.
Der var 61,8 millioner unikke hashværdier, idet mange brugere anvendte samme password. Det tog et sikkerhedsfirma et par dage at knække knap 50 millioner af dem.
Brug særlige algoritmer
LinkedIn-sagen understreger, at det er vigtigt at kombinere hashfunktionen med salt.
Envidere er det en god ide at beskytte mod angreb ved at anvende en algoritme, der er skræddersyet til at beskytte passwords.
Den type algoritme bruger kendte hashfunktioner på en måde, så det kræver lang beregningstid at knække dem. Et par eksempler er PBKDF2 (Password-Based Key Derivation Function 2) og Argon2.
Undgå genbrug
Som tjenesteudbydere kan vi altså gøre noget for at beskytte vores passwords - også selvom uvedkommende skulle få fat i brugerdatabasen.
Når det gælder brugerne, viser de aktuelle lækager et velkendt problem: Genbrug af passwords.
I kølvandet på lækagerne har blandt andre GitHub og Carbonite ændret passwords for brugerne.
Ikke fordi, hackere har fået fat i disse tjenesters brugerdatabaser. Men hackere har anvendt kombinationer af brugernavne og passwords fra de lækkede databaser til at komme ind på dem.
Når en bruger anvender samme mail-adresse og password på flere tjenester, skal kun en af dem blive kompromitteret, for at hackere kan få adgang til de øvrige.
Her har de sikkerhedsansvarlige også en opgave: Vi skal lære brugerne fornuftig adfærd.
To budskaber
Brugerne bør lære to hovedbudskaber: Brug sikre passwords. Og genbrug dem ikke.
Hvis et password er sikkert, kan det ikke knækkes med et af de gængse angreb. Det kræver, at det er langt og består af en kombination af store og små bogstaver, tal og specialtegn.
En stor del af passwords i megalækagerne er lette at knække. Men der er nogle af dem, som ikke er blevet knækket, selvom dataene har været offentligt kendt i flere uger.
Det viser, at et tilstrækkelig stærkt password stadig kan være en god sikring. Alligevel bør brugerne naturligvis skifte password, når hackere har fået adgang til hashværdier af passwords.
Ud over de tekniske kontroller med hash, salt og langsomme algoritmer bør sikkerhedsansvarlige derfor også afsætte ressourcer til den menneskelige side: Informationskampagner og uddannelse med jævnlige test af, at medarbejderne forstår budskaberne.
Har du i øvrigt prøvet at køre et program til at knække passwords på jeres firmas passworddatabase? Det kan give et hint om, hvor stærke passwords brugerne anvender
DKCERT (www.cert.dk) er et dansk Computer Security Incident Response Team, der håndterer sikkerhedshændelser på forskningsnettet. I samarbejde med tilsvarende organisationer over hele verden indsamler DKCERT information om internetsikkerhed.
DKCERT er en organisation i DeIC (Danish e-Infrastructure Cooperation).
Henrik Larsen, der er chef for DKCERT og bestyrelsesmedlem i Rådet for Digital Sikkerhed, opdaterer en gang om måneden Computerworlds læsere med de seneste tendenser inden for informationssikkerhed.