Verifiera en nedladdning – rätt checksumma kan ändå komma från fel källa

|Författare: QUASA:s redaktion|5 min läsning
Verifiera en nedladdning – rätt checksumma kan ändå komma från fel källa

För att kontrollera en nedladdad programfil behöver du skilja på innehåll och avsändare. Beräkna filens SHA-256-värde och jämför det med ett referensvärde du litar på; verifiera sedan en fristående digital signatur med utgivarens offentliga nyckel. GnuPG:s vägledning om integritetskontroll visar att en giltig signatur från en nyckel med okänd identitet fortfarande kräver kontroll av nyckelns fingeravtryck.

Om någon ändrar både programfilen och dess publicerade checksumma på samma nedladdningssida kan värdena passa ihop trots att filen kommer från fel källa. Kontrollera därför fingeravtrycket genom en separat, sedan tidigare betrodd kanal. Det är den kontrollen som binder en tekniskt giltig signatur till den utgivare du avsåg att ladda ned från.

Hämta underlagen innan du börjar

Spara själva programfilen och den fristående signaturfil som hör till samma utgåva, om utgivaren tillhandahåller en. En sådan signaturfil kan sluta på .sig eller .asc. Se till att du vet vilken datafil signaturen avser; ett liknande filnamn eller samma versionsnummer räcker inte för att avgöra det.

Spara också den publicerade SHA-256-summan, men skilj på att hitta ett värde och att lita på det. Om filen, summan och en ny offentlig nyckel alla ligger på samma angriparkontrollerade sida kan de bytas ut tillsammans. Ett referensvärde eller fingeravtryck som du redan har fått via en oberoende kanal ger en annan grund för beslutet.

Använd ett redan betrott exemplar av GnuPG när du verifierar en GnuPG-nedladdning. Den nyss nedladdade kopian ska inte granska sin egen signatur. För andra program gäller samma grundprincip: kontrollverktyget måste vara tillgängligt oberoende av filen vars ursprung du försöker fastställa.

Beräkna och jämför filens SHA-256

Windows, macOS och Linux beräknar SHA-256 för en nedladdad programfil som jämförs med ett referensvärde.

Kommandona nedan beräknar SHA-256 för den lokala filen. Microsofts dokumentation för Get-FileHash anger att -LiteralPath läser sökvägen bokstavligt och att -Algorithm SHA256 väljer algoritmen uttryckligen. Byt ut programfil mot det verkliga filnamnet, inklusive ändelse, och kör kommandot i mappen där filen finns.

  • Windows, i PowerShell: Get-FileHash -LiteralPath '.\programfil' -Algorithm SHA256
  • macOS, i Terminal: shasum -a 256 'programfil'
  • Linux, i terminalen: sha256sum 'programfil'

Jämför hela det beräknade värdet med summan som gäller just den filen. Skilj på olika arkiv, operativsystem och versioner: filer med nästan samma namn kan ha olika innehåll och därmed olika hashvärden. Om den beräknade summan avviker ska du inte installera filen. Kontrollera först filnamnet och referensen och hämta annars filen på nytt från en betrodd plats.

En träff ger ett precist besked om innehållet i relation till referensvärdet. Den visar inte vem som skapade referensen. Det gäller även om en nedladdningssida listar en lång SHA-256-sträng bredvid filen; en angripare som styr sidan kan publicera en ny sträng för sin ändrade fil.

Verifiera signaturen för exakt samma fil

En fristående signatur måste kontrolleras tillsammans med den fil som ska installeras. GnuPG:s manual för gpg beskriver ordningen signaturfil följd av datafil i kommandot gpg --verify programfil.sig programfil. Genom att ange båda filnamnen undviker du att programmet härleder datafilens namn från signaturfilens ändelse.

Kör kommandot från mappen med filerna, eller ange deras fullständiga sökvägar. Om filnamnen innehåller mellanslag, sätt varje namn inom citattecken. Ett felmeddelande om ogiltig signatur betyder att den aktuella signaturen inte verifierar den angivna filen med den använda nyckeln; utgå inte från att en lyckad hashjämförelse upphäver felet.

Meddelandet ”No public key” betyder i stället att GnuPG saknar nyckeln som behövs för kontrollen. Hämta då den offentliga nyckel som utgivaren anger för signeringen, men behandla nyckelfilen som ett påstående om identitet tills fingeravtrycket har jämförts separat. Namnet eller e-postadressen som visas på nyckeln kan skrivas dit av den som skapade den.

Knyt nyckelns fingeravtryck till utgivaren

En GnuPG-nyckels fingeravtryck jämförs via en separat kanal innan en giltig signatur knyts till utgivaren.

Om nyckeln distribueras som utgivare.asc kan du granska den utan att först importera den med gpg --show-keys --with-fingerprint utgivare.asc. Jämför det fullständiga fingeravtrycket, inte bara ett kort nyckel-ID eller några tecken i början. Kontrollera också att uppgiften gäller den nyckel som utgivaren använder för den aktuella utgåvan.

En separat kanal kan vara ett fingeravtryck du sparat efter en tidigare betrodd kontroll eller en nyckeluppgift du fått direkt av utgivaren genom en redan etablerad kontaktväg. En ny undersida på samma misstänkta webbplats räcker inte som oberoende jämförelse. En nyckelserver kan leverera nyckelfilen, men att den finns där knyter inte automatiskt nyckeln till namnet som står på den.

När fingeravtrycket stämmer kan du importera nyckeln med gpg --import utgivare.asc och köra gpg --verify programfil.sig programfil igen. Importen gör nyckeln tillgänglig för kontrollen; den ger inte i sig nyckelägaren förtroende i GnuPG:s tillitsmodell. Därför kan ett meddelande om ”Good signature” fortfarande följas av en varning om okänd tillit.

Om du får ”Good signature” men inte kan fastställa fingeravtrycket är den matematiska kontrollen klar medan utgivarens identitet fortfarande är obekräftad. Om fingeravtrycket skiljer sig från det separat verifierade värdet ska du inte acceptera signaturen som utgivarens, även om GnuPG kallar den giltig.

Tolka resultatet innan installation

En avvikande checksumma eller en ogiltig signatur är skäl att stoppa installationen och reda ut vilka filer du faktiskt har. En giltig signatur med ett oidentifierat fingeravtryck är ett annat slags stopp: filen passar nyckeln, men du vet ännu inte att nyckeln hör till rätt utgivare. När filkontrollen stämmer och nyckelns identitet är fastställd kan du knyta nedladdningen till den avsedda utgivarens signering.

Om kontrollen automatiseras ska skriptet kontrollera vilken signatur och vilken signeringsnyckel som godkänts. Ett lyckat anrop till gpg räcker inte som identitetsbesked; använd programmets maskinläsbara statusfält eller gpgv med en nyckelring vars nycklar har valts och verifierats i förväg. Det är samma tillitsfråga som i den manuella kontrollen, inbyggd i skriptets beslut.

Läs också:

Dela:

Prenumerera på vårt nyhetsbrev

Få de senaste nyheterna om Web3, AI och krypto direkt i din inkorg.

0