Sådan verificerer du en Linux ISO's checksum og bekræfter, at den ikke er blevet tæmmet
I sidste måned blev Linux Mint's hjemmeside hacket, og en ændret ISO blev sat til download, der indeholdt en bagdør. Mens problemet blev rettet hurtigt, viser det vigtigheden af at kontrollere Linux ISO-filer, du downloader, før du kører og installerer dem. Sådan er det.
Linux-distributioner offentliggør checksums, så du kan bekræfte de filer, du downloader, er, hvad de hævder at være, og disse er ofte underskrevet, så du kan kontrollere checksummerne selv ikke er blevet manipuleret med. Dette er især nyttigt, hvis du downloader en ISO fra et andet sted end det primære websted - som et spejl fra tredjepart eller via BItTorrent, hvor det er meget lettere for folk at manipulere med filer.
Sådan fungerer denne proces
Processen med at kontrollere en ISO er lidt kompleks, så før vi kommer ind i de nøjagtige trin, lad os forklare præcis hvad processen indebærer:
- Du henter Linux ISO-filen fra Linux-distributionens hjemmeside - eller et andet sted - som normalt.
- Du downloader et checksum og dets digitale signatur fra Linux distributionens hjemmeside. Disse kan være to separate TXT-filer, eller du kan få en enkelt TXT-fil, der indeholder begge dele data.
- Du får en offentlig PGP-nøgle, der tilhører Linux-distributionen. Du kan få dette fra Linux distributionens hjemmeside eller en separat nøgleserver, der administreres af de samme personer, afhængigt af din Linux distribution.
- Du bruger PGP-nøglen til at kontrollere, at checksummets digitale signatur blev oprettet af den samme person, der lavede nøglen - i dette tilfælde, der er vedligeholdende for den Linux-distribution. Dette bekræfter, at checksummen selv ikke er blevet manipuleret.
- Du genererer checksummen for din downloadede ISO-fil, og verificerer den svarer til den checksum, TXT-fil, du downloadede. Dette bekræfter, at ISO-filen ikke er blevet manipuleret eller ødelagt.
Processen kan variere lidt for forskellige ISO'er, men det følger normalt det generelle mønster. For eksempel er der flere forskellige typer checksums. Traditionelt har MD5 summer været den mest populære. SHA-256 summer bruges nu hyppigere af moderne Linux-distributioner, da SHA-256 er mere modstandsdygtig overfor teoretiske angreb. Vi diskuterer primært SHA-256 summer her, selv om en lignende proces vil fungere for MD5 summer. Nogle Linux distros kan også give SHA-1 summer, selv om disse er endnu mindre almindelige.
På samme måde underskriver nogle distroer ikke deres checksums med PGP. Du skal kun udføre trin 1, 2 og 5, men processen er meget mere sårbar. Når alt kommer til alt, hvis angriberen kan erstatte ISO-filen til download, kan de også erstatte checksummen.
Brug af PGP er meget mere sikker, men ikke idiotsikker. Angregeren kan stadig erstatte den offentlige nøgle med deres egne, de kan stadig narre dig til at tro, at ISO er legitimt. Men hvis den offentlige nøgle er hostet på en anden server - som det er tilfældet med Linux Mint - bliver det langt mindre sandsynligt (da de skulle hakke to servere i stedet for blot en). Men hvis den offentlige nøgle er gemt på samme server som ISO og checksum, som det er tilfældet med nogle distroer, giver det ikke så meget sikkerhed.
Men hvis du forsøger at bekræfte PGP-signaturen på en checksumfil og derefter validerer din download med det checksum, er det alt, hvad du med rimelighed kan gøre som en slutbruger, der downloader en Linux ISO. Du er stadig meget mere sikker end de mennesker, der ikke generer.
Sådan verificeres et checksum på Linux
Vi bruger Linux Mint som et eksempel her, men du skal muligvis søge på din Linux distribution hjemmeside for at finde de verificeringsmuligheder, den tilbyder. Til Linux Mint leveres to filer sammen med ISO-downloadet på dens downloadspejle. Download ISO, og download derefter filen "sha256sum.txt" og "sha256sum.txt.gpg" til din computer. Højreklik på filerne og vælg "Gem link som" for at downloade dem.
På dit Linux-skrivebord skal du åbne et terminalvindue og downloade PGP-nøglen. I dette tilfælde er Linux Mints PGP-nøgle hostet på Ubuntus nøgleserver, og vi skal køre følgende kommando for at få det.
gpg --keyserver hkp: //keyserver.ubuntu.com --recv-nøgler 0FF405B2
Din Linux Distro hjemmeside vil pege dig mod den nøgle, du har brug for.
Vi har nu alt, hvad vi har brug for: ISO, checksumfilen, checksummets digitale signaturfil og PGP-tasten. Så næste, skift til den mappe, de blev downloadet til ...
cd ~ / downloads
... og kør følgende kommando for at kontrollere underskriften af checksumfilen:
gpg - verificere sha256sum.txt.gpg sha256sum.txt
Hvis GPG-kommandoen giver dig besked om, at den downloadede sha256sum.txt-fil har en "god signatur", kan du fortsætte. I den fjerde linje af skærmbilledet nedenfor understreger GPG os, at dette er en "god underskrift", der hævder at være forbundet med Clement Lefebvre, Linux Mint's skaber.
Du skal ikke bekymre dig om, at nøglen ikke er certificeret med en "betroet signatur." Dette skyldes den måde PGP-kryptering fungerer på. Du har ikke oprettet et web af tillid ved at importere nøgler fra betroede personer. Denne fejl vil være meget almindelig.
Endelig, da vi ved, at checksummet er oprettet af Linux Mint-underviserne, skal du køre følgende kommando for at generere et checksum fra den downloadede .iso-fil og sammenligne den med den checksum TXT-fil, du downloadede:
sha256sum - check sha256sum.txt
Du kan se mange "ikke sådanne filer eller mapper" -meddelelser, hvis du kun downloadede en enkelt ISO-fil, men du skal se en "OK" besked for den fil, du downloadede, hvis den matcher checksummen.
Du kan også køre checksumkommandoer direkte på en .iso-fil. Det vil undersøge .iso filen og spytte sin checksum. Du kan så bare tjekke den passer til det gyldige checksum ved at se på begge med dine øjne.
For eksempel for at få SHA-256 summen af en ISO-fil:
sha256sum /path/to/file.iso
Eller hvis du har en md5sum-værdi og skal hente md5sumet af en fil:
md5sum /path/to/file.iso
Sammenlign resultatet med checksum TXT-filen for at se, om de matcher.
Sådan kontrolleres et checksum på Windows
Hvis du downloader en Linux ISO fra en Windows-maskine, kan du også kontrollere checksummet derom - selvom Windows ikke har den nødvendige software indbygget. Så skal du downloade og installere Gpg4win-værktøjet open source.
Find din Linux distros signatur nøglefil og checksumfiler. Vi bruger Fedora som et eksempel her. Fedoras hjemmeside indeholder checksum downloads og fortæller os, at vi kan downloade Fedora-signaturnøglen fra https://getfedora.org/static/fedora.gpg.
Når du har downloadet disse filer, skal du installere signaturnøglen ved hjælp af Kleopatra-programmet, der følger med Gpg4win. Start Kleopatra, og klik på Filer> Importcertifikater. Vælg den .gpg-fil, du downloadede.
Du kan nu kontrollere, om den downloadede checksumfil blev underskrevet med en af de nøglefiler, du importerede. Det gør du ved at klikke på Filer> Dekryptere / verificere filer. Vælg den downloadede checksumfil. Fjern markeringen i "Indtastningsfilen er en løsrevet signatur" og klik på "Decrypt / Verify."
Du er sikker på at se en fejlmeddelelse, hvis du gør det på denne måde, da du ikke har gennemgået problemerne med at bekræfte, at Fedora-certifikaterne faktisk er legitime. Det er en vanskeligere opgave. Det er sådan, PGP er designet til at arbejde - du møder og udveksler nøgler personligt, for eksempel, og samler et web af tillid. De fleste mennesker bruger det ikke på denne måde.
Du kan dog se flere detaljer og bekræfte, at checksumfilen blev underskrevet med en af de nøgler, du importerede. Dette er meget bedre end bare at stole på en downloadet ISO-fil uden at kontrollere, alligevel.
Du skal nu kunne vælge Filer> Bekræft Checksum Files og bekræfte oplysningerne i checksumfilen matcher den downloadede .iso-fil. Det virkede imidlertid ikke for os - måske er det bare Fedora's checksumfil er lagt ud. Da vi forsøgte dette med Linux Mints sha256sum.txt fil, fungerede det.
Hvis dette ikke virker for din Linux distribution af valg, er der en løsning. Klik først på Indstillinger> Konfigurer Kleopatra. Vælg "Crypto Operations", vælg "File Operations," og indstil Kleopatra for at bruge "sha256sum" checksum programmet, da det er hvad dette særlige checksum blev genereret med. Hvis du har et MD5 checksum, skal du vælge "md5sum" i listen her.
Klik nu på File> Create Checksum Files og vælg din downloadede ISO-fil. Kleopatra vil generere et checksum fra den downloadede .iso-fil og gemme den til en ny fil.
Du kan åbne begge disse filer - den downloadede checksumfil og den, du lige har genereret - i et tekstredigeringsprogram som Notesblok. Bekræft, at checksummet er identisk både med dine egne øjne. Hvis det er identisk, har du bekræftet, at din hentede ISO-fil ikke er blevet manipuleret.
Disse verifikationsmetoder var ikke oprindeligt beregnet til beskyttelse mod malware. De var designet til at bekræfte, at din ISO-fil blev downloadet korrekt og ikke ødelagt under overførslen, så du kunne brænde og bruge den uden at bekymre dig. De er ikke en helt idiotsikker løsning, da du skal stole på PGP-nøglen, du downloader. Dette giver dog stadig større sikkerhed end blot at bruge en ISO-fil uden at tjekke det overhovedet.
Billedkredit: Eduardo Quagliato på Flickr