Sådan kontrolleres SHA1, SHA256 og SHA512 Hashes på Linux
Hvordan ved du sikkert, at den 4 GB-fil, du lige har downloadet, er blevet overført uden fejl? En måde er at bruge en hashalgoritme, der producerer et "fingeraftryk" eller en "beskedfordeling" af den downloadede fil. Ligesom menneskelige fingeraftryk er den resulterende tegnstreng menes at være unik, og kun den fil kan producere det pågældende fingeraftryk. Websteder, der tilbyder store downloads, siger en Linux-distribution som Fedora, vil også offentliggøre en liste over hashene for filerne. Alt du skal gøre er at tjekke hash for den fil, du har mod den offentliggjorte hash, og hvis de er de samme, så er filen blevet downloadet korrekt.
Tidligere var den foretrukne hashing-algoritme MD5, og selvom den stadig er meget udbredt (for eksempel giver Ubuntu-projektet stadig MD5 hashes), bliver det langsomt erstattet af SHA-familien af hashes. Problemet med MD5 er, at det er muligt at oprette flere filer med samme fingeraftryk. I et berømt tilfælde blandt kryptograferne sagde en sikkerhedsforsker, at han vidste, hvem der ville vinde præsidentvalget, og han havde oprettet en fil med resultatet i det og udstedt MD5-hash. Han ville frigive sin fil efter valget og bevise, at hans forudsigelse var rigtig. Faktisk var det, han havde lavet, at skabe flere filer med alle mulige vindere og manipulerede filerne på en sådan måde, at de alle havde det samme MD5 fingeraftryk!
Der er flere forskellige Secure Hash Algorithms (SHA) inklusive SHA1, SHA256 og SHA512. Teknisk SHA256 og SHA512 bruger begge samme algoritme, men behandler data i forskellige størrelser - SHA256 bruger 32 bit blokke og SHA512 64 bit blokke.
SHA1 ligner MD5 og som MD5, der er nogle bekymringer om den unikke karakter af de resulterende hash, og den er ikke længere godkendt til mange kryptografiske anvendelser siden 2010. Men hvis du finder et websted, der udgiver SHA1 hash, kan du tjekke dem som dette :
sha1sum Fedora-19-i386-netinst.iso
Udgangen vil se sådan ud:
b24e9b7bd49168839fd056bbd0ac8f2aec6b68b9 Fedora-19-i386-netinst.iso
SHA256 hash er genereret på samme måde:
sha256 Fedora-19-i386-netinst.iso
Og output er ens, med undtagelse af at fingeraftrykstrengen er meget længere:
2b16f5826a810bb8c17aa2c2e0f70c4895ee4b89f7d59bb8bf39b07600d6357c Fedora-19-i386-netinst.iso
Og ligeledes for SHA512:
sha512sum Fedora-19-i386-netinst.iso
Det resulterende fingeraftryk er endnu længere:
9eb35d03cc289aa5d5a29cfc9080c3152a3da1b91a2b12d352b16a3d817a7479b9d1be3c7ecf011abf6a01f3122c66892f96a2c213756df786117412d8df99b3 Fedora-19-i386-netinst.iso
I stedet for blot at udgive fingerprintstrengen isoleret, indeholder nogle websteder en checksumfil, som indeholder alle hash-oplysningerne i en maskinlæsbar form, som de forskellige sha
kommandoer kan bruge til automatisk at verificere filer. En checksumfil til netinstallationen 32 bit Intel-version af Fedora 19 kan se sådan ud:
2b16f5826a810bb8c17aa2c2e0f70c4895ee4b89f7d59bb8bf39b07600d6357c * Fedora-19-i386-netinst.iso
For at kontrollere dette skal du bruge parameteren " -c
" som denne:
sha256sum-c Fedora-19-i386-CHECKSUM
Hvor Fedora-19-i386-CHECKSUM
er navnet på filen, der indeholder fingeraftryksoplysningerne som vist ovenfor.
Hvis fingeraftrykene matcher, så ser udgangen sådan ud:
Fedora-19-i386-netinst.iso: OK
Hvis der er en fejl i den downloadede fil, vil output være:
Fedora-19-i386-netinst.iso: FAILED sha256sum: ADVARSEL: 1 beregnet checksum matchede IKKE
Prøv dette
Din Linux-distribution indeholder sandsynligvis også kommandoen sha224
og sha384
. Disse to hash-algoritmer er trunkerede versioner af SHA256 og SHA512. De kan bruges på nøjagtig samme måde som kommandoerne sha256
og sha512
. Prøv at producere hashser bruger dem og bemærk forskellene i produktionen.