Annons

I en ny artikel om att kontrollera om du gjorde det påverkas av Gawkers hackhändelse Hur du tar reda på om din e-postadress läcktes genom Gawkers databas Läs mer , ett av stegen innebar att konvertera din e-postadress till en MD5-hash.

Vi hade några frågor från läsarna som frågade exakt vad som hände och varför denna process var nödvändig. Det är inte vår stil att låta er ställa frågor, så här är en fullständig nedgång av MD5, hashing och en liten översikt över datorer och kryptografi.

Cryptographic Hashing

MD5 står för Message Digest algoritm 5 och uppfanns av den berömda amerikanska kryptografen professor Ronald Rivest 1991 för att ersätta den gamla MD4-standarden. MD5 är helt enkelt namnet på en typ av kryptografisk hashingfunktion som Ron kom med, långt tillbaka i '91.

Tanken bakom kryptografisk hashing är att ta ett godtyckligt block av data och returnera ett fast ”hash” -värde. Det kan vara vilken data som helst, av vilken storlek som helst men hashvärdet kommer alltid att fastställas. Prova det själv här.

instagram viewer
md5-hash

Cryptographic hashing har ett antal användningsområden, och det finns ett stort antal algoritmer (andra än MD5) som är utformade för att göra ett liknande jobb. En av de viktigaste användningarna för kryptografisk hashing är att verifiera innehållet i ett meddelande eller fil efter överföring.

Om du någonsin har laddat ner en särskilt stor fil (Linux distributioner, den typen) du kommer antagligen ha märkt hashvärdet som följer med det. När denna fil har laddats ner kan du använda hash för att verifiera att filen du laddade ner inte på något sätt skiljer sig från den annonserade filen.

Samma metod fungerar för meddelanden, med hash som verifierar att meddelandet som mottas stämmer med det skickade meddelandet. På en mycket grundläggande nivå, om du och en vän har en stor fil vardera och vill verifiera att de är exakt samma utan den rejäl överföringen, kommer hashkoden att göra det åt dig.

Hashing-algoritmer spelar också en roll i data- eller filidentifiering. Ett bra exempel för detta är peer to peer-fildelningsnätverk, till exempel eDonkey2000. Systemet använde en variant av MD4-algoritmen (Nedan) som också kombinerade filstorlek till en hash för att snabbt peka på filer i nätverket.

vad är md5-hash

Ett signaturexempel på detta är möjligheten att snabbt hitta data i hashtabeller, en metod som vanligtvis används av sökmotorer.

En annan användning för hashes är lagring av lösenord. Att lagra lösenord som tydlig text är en dålig idé, av uppenbara skäl så istället konverteras de till hashvärden. När en användare matar in ett lösenord konverteras det till ett hashvärde och kontrolleras mot den kända lagrade hash. Eftersom hashing är en enkelriktad process, förutsatt att algoritmen är sund så finns det teoretiskt sett liten risk för att det ursprungliga lösenordet avkodas från hash.

Kryptografisk hashing används också ofta för att skapa lösenord och derivatlösenord från en enda fras.

Message Digest-algoritm 5

MD5-funktionen ger ett 32-siffrigt hexadecimaltal. Om vi ​​skulle göra "makeuseof.com" till ett MD5-hashvärde så skulle det se ut som: 64399513b7d734ca90181b27a62134dc. Det byggdes på en metod som kallas Merkle ”” Damgardstruktur (Nedan), som används för att bygga vad som kallas ”kollisionssäker” hashfunktioner.

vad är md5-hash

Ingen säkerhet är dock allt-bevis, och 1996 hittades potentiella brister inom MD5-hash-algoritmen. Då sågs dessa inte som dödliga och MD5 fortsatte att användas. 2004 upptäcktes ett mycket mer allvarligt problem efter att en grupp forskare beskrev hur man skapar två separata filer som har samma MD5-hashvärde. Detta var det första fallet av en kollisionsattack som användes mot MD5-hashningsalgoritmen. En kollisionsattack försöker hitta två skiljedata som ger samma hashvärde - därmed en kollision (två filer som finns med samma värde).

Under de närmaste åren inträffade försök att hitta ytterligare säkerhetsproblem inom MD5, och 2008 lyckades en annan forskargrupp använda kollisionsattackmetoden för att förfalska SSL-certifikat giltighet. Detta kan tappa användare till att tro att de surfar på ett säkert sätt när de inte är det. US Department of Homeland Security meddelat den där: "användare bör undvika att använda MD5-algoritmen i någon kapacitet. Som tidigare forskning har visat bör den betraktas som kryptografiskt trasig och olämplig för vidare användning“.

md5-hash

Trots regeringens varning använder många tjänster fortfarande MD5 och är som sådan tekniskt riskerade. Det är dock möjligt att "salta" lösenord för att förhindra att potentiella angripare använder ordboksattacker (testar kända ord) mot systemet. Om en hacker har en lista med slumpmässigt ofta använda lösenord och din användarkontodatabas kan de kontrollera hasherna i databasen mot de som finns på listan. Salt är en slumpmässig sträng som är länkad till befintliga lösenord hash och sedan hashas igen. Saltvärdet och resulterande hash lagras sedan i databasen.

Om en hackare ville ta reda på dina användares lösenord skulle han behöva dechiffrera salt hasherna först, och detta gör en ordbokattack ganska värdelös. Salt påverkar inte själva lösenordet, så du måste alltid välja ett lösenord som är svårt att gissa.

Slutsats

MD5 är en av många olika metoder för att identifiera, säkra och verifiera data. Kryptografisk hashing är ett viktigt kapitel i historien om säkerhet och att hålla saker dolda. Som med många saker designade med säkerhet i åtanke, har någon gått och brutit det.

Du behöver förmodligen inte oroa dig för hashing och MD5-kontrollsumma i dina dagliga surfvanor, men åtminstone nu vet du vad de gör och hur de gör det.

Har du någonsin behövt hash någonting? Verifierar du filerna du laddar ner? Känner du till några bra MD5-webbappar? Låt oss veta i kommentarerna!

Introduktionsbild: Shutterstock

Tim är frilansförfattare som bor i Melbourne, Australien. Du kan följa honom på Twitter.