Vad är MD5, SHA-1 och SHA-256 Hashes, och hur kontrollerar jag dem?
Du ser ibland MD5, SHA-1 eller SHA-256 hashes som visas tillsammans med nedladdningar under dina internetresor, men inte riktigt kända vad de är. Dessa till synes slumpmässiga strängar av text gör att du kan verifiera att filer du laddar ner inte är skadade eller manipulerade med. Du kan göra det med kommandon inbyggda i Windows, MacOS och Linux.
Hur Hashes arbetar, och hur de används för datakontroll
Hashes är produkterna av kryptografiska algoritmer utformade för att producera en rad tecken. Ofta har dessa strängar en fast längd, oavsett storleken på ingångsdata. Ta en titt på ovanstående diagram och du kommer att se att både "Fox" och "The Red Fox hoppar över den blå hunden" ger samma längd.
Jämför nu det andra exemplet i diagrammet till tredje, fjärde och femte. Det kommer du att se, trots en väldigt liten förändring i inmatningsdata, är de resulterande hasherna alla väldigt olika från varandra. Även om någon ändrar en mycket liten del av inmatningsdata, förändras hash dramatiskt.
MD5, SHA-1 och SHA-256 är alla olika hashfunktioner. Programvaruutvecklare tar ofta en filhämtning - som en Linux .iso-fil, eller till och med en Windows .exe-fil - och kör den via en hash-funktion. De erbjuder då en officiell lista över hasharna på sina webbplatser.
På så sätt kan du ladda ner filen och sedan köra hashfunktionen för att bekräfta att du har den riktiga, ursprungliga filen och att den inte har skadats under nedladdningsprocessen. Som vi såg ovan, kommer även en liten ändring av filen dramatiskt att förändra hasen.
Dessa kan också vara användbara om du har en fil du har från en inofficiell källa och du vill bekräfta att den är legitim. Låt oss säga att du har en Linux. ISO-fil som du kom från någonstans och du vill bekräfta att den inte har manipulerats. Du kan leta upp hash för den specifika ISO-filen online på Linux-distributions webbplats. Du kan sedan köra den via hash-funktionen på din dator och bekräfta att den matchar hashvärdet du förväntar dig att ha. Detta bekräftar att filen du har är exakt samma fil som erbjuds för nedladdning på Linux-distributions webbplats, utan några ändringar.
Observera att "kollisioner" har hittats med funktionerna MD5 och SHA-1. Det här är flera olika filer, till exempel en säker fil och en skadlig fil, som resulterar i samma MD5 eller SHA-1-hash. Det är därför du borde föredra SHA-256 när det är möjligt.
Hur man jämför Hash-funktioner på vilket operativsystem som helst
Med det i åtanke, låt oss se hur du kontrollerar hash av en fil du laddat ner, och jämföra den med den du får. Här är metoder för Windows, MacOS och Linux. Hackarna kommer alltid att vara identiska om du använder samma hashing-funktion på samma fil. Det spelar ingen roll vilket operativsystem du använder.
Windows
Denna process är möjlig utan någon tredje parts programvara på Windows tack vare PowerShell.
För att komma igång, öppna ett PowerShell-fönster genom att starta "Windows PowerShell" -genvägen i din Start-meny.
Kör följande kommando, ersätt "C: \ path \ to \ file.iso" med sökvägen till en fil som du vill visa hash av:
Get-FileHash C: \ path \ till \ file.iso
Det kommer ta lite tid att generera hash för filen, beroende på filens storlek, den algoritm du använder och hastigheten på enheten som filen är på.
Som standard kommer kommandot att visa SHA-256-hash för en fil. Du kan dock ange den hashingalgoritm du vill använda om du behöver en MD5, SHA-1 eller annan typ av hash.
Kör en av följande kommandon för att ange en annan hashingalgoritm:
Get-FileHash C: \ path \ till \ file.iso -Algorithm MD5
Få-FileHash C: \ path \ till \ file.iso -Algorithm SHA1
Get-FileHash C: \ path \ till \ file.iso -Algorithm SHA256
Få-FileHash C: \ path \ till \ file.iso -Algorithm SHA384
Get-FileHash C: \ path \ till \ file.iso -Algorithm SHA512
Get-FileHash C: \ path \ till \ file.iso -Algorithm MACTripleDES
Get-FileHash C: \ path \ till \ file.iso -Algorithm RIPEMD160
Jämför resultatet av hashfunktionen med det resultat du förväntade dig att se. Om det är samma värde har filen inte skadats, manipulerats eller på annat sätt ändrats från originalet.
Mac OS
macOS innehåller kommandon för visning av olika typer av hascher. För att komma åt dem, starta ett terminalfönster. Du hittar den på Finder> Program> Verktyg> Terminal.
De md5
Kommando visar MD5-hash för en fil:
md5 / path / to / file
De shasum
Kommando visar SHA-1-hash för en fil som standard. Det betyder att följande kommandon är identiska:
shasum / väg / till / fil
shasum -a 1 / path / to / file
För att visa SHA-256-hash för en fil, kör följande kommando:
shasum-a 256 / path / to / file
Linux
På Linux, öppna en terminal och kör en av följande kommandon för att visa hash för en fil beroende på vilken typ av hash du vill visa:
md5sum / path / to / file
sha1sum / path / to / file
sha256sum / path / to / file
Några Hashes är kryptografiskt signerade för ännu mer säkerhet
Medan hashes kan hjälpa dig att bekräfta att en fil inte var manipulerad, finns det fortfarande en aveny av attack här. En angripare kan få kontroll över en Linux-distributions webbplats och ändra de hash som visas på den, eller en angripare kan utföra en man-i-mitten attack och ändra webbsidan i transit om du åtkomst till webbplatsen via HTTP istället för krypterad HTTPS.
Därför ger moderna Linux-distributioner ofta mer än hash listade på webbsidor. De signerar kryptografiskt dessa hash för att skydda mot attacker som kan försöka ändra hasherna. Du vill verifiera kryptografiska signaturen för att se till att hashfilen faktiskt signerades av Linux-distributionen om du vill vara helt säker på att hash och fil inte manipulerades med.
Verifiering av kryptografiska signaturen är en mer involverad process. Läs vår guide för att verifiera Linux ISOs har inte manipulerats för fullständiga instruktioner.
Bildkrediter: Jorge Stolfi / Wikimedia