Använd inte MD5 eller SHA-1

Det är egentligen ganska enkelt: använd inte md5 eller sha-1 för att hasha dina användares lösenord. Inte ens om du använder salt.

United States Computer Emergency Readiness Team skrev 2008:

Software developers, Certification Authorities, website owners, and users should avoid using the MD5 algorithm in any capacity. As previous research has demonstrated, it should be considered cryptographically broken and unsuitable for further use.

Computer Security Division vid NIST skrev 2006:

Federal agencies should stop using SHA-1 for digital signatures, digital time stamping and other applications that require collision resistance as soon as practical, and must use the SHA-2 family of hash functions for these applications after 2010.

Säkerhetsgurun Ron Rivest skrev 2005: ”… now that md5 and sha1 are both clearly broken (in terms of collision-resistance).”

Förutom att algoritmerna har påvisade säkerhetsbrister går det väldigt snabbt att skapa uppslagstabeller för att ta reda på vilket lösenord som döljer sig bakom ett hash.

Med optimerade algoritmer och genom att använda grafikkort för att beräkna hashsummorna (de är snabbare än vanliga processorer på detta), har man kommit upp i 700 miljoner hashar per sekund för SHA-1. Mina tester visar att MD5 går ännu snabbare.

Det betyder att ditt ”säkra” lösenord på 8 tecken (ex. ”LvZ49l3U”, ”ibOQ3sjL”, ”LwL5opHp”) knäcks på en vecka. Om du är som de flesta och har lösenord på max 6 tecken, är det knäckt på under en halvtimme.

(Det finns också färdiga sådana uppslagstabeller som kallas rainbow tables som man kan använda för att blixtsnabbt knäcka alla tänkbara lösenord.)

Jag skrev tidigare en kort introduktion till hur man lagrar lösenord säkert, men sedan dess har jag lärt mig mer och kan sammanfatta det så här:

Använd SHA-256 med key stretching och dynamiskt salt för varje användare eller bcrypt med Blowfish (PHP-kodare bör använda PHPass). Då klarar du dig rätt bra.

En reaktion på “Använd inte MD5 eller SHA-1

  1. Pingback: Hur lagrar man användarnas lösenord säkert? | Apprikos

Kommentarer inaktiverade.