How to verify authenticity of downloaded Debian ISO images
UPDATE - 2018-03-10: The Debian team released the fourth update of its stable distribution Debian 9 (codename stretch).
When you download an official release of Debian ISO image, you can use the signed checksum files that come with it to validate that the images you download are correct.
Basically you want to check two things:
- that the checksum file has not been tampered with, and
- that the ISO image checksum matches the one expected from the checksum file
Here I will explain to you how to do these checks by using
sha512sum
and gpg
tools.
Download a Debian ISO image
Download the ISO image and its signed checksum files from one of the registered mirrors, note that some mirrors may not be up to date, in this case you can use the primary CD image server.
$ wget -c https://cdimage.debian.org/debian-cd/9.4.0-live/amd64/iso-hybrid/debian-live-9.4.0-amd64-gnome.iso
$ wget https://cdimage.debian.org/debian-cd/9.4.0-live/amd64/iso-hybrid/SHA512SUMS
$ wget https://cdimage.debian.org/debian-cd/9.4.0-live/amd64/iso-hybrid/SHA512SUMS.sign
First, you verify the authenticity of the actual SHA512SUMS
checksum
file which will be used to verify the content of the Debian ISO image.
Import Debian public key
Probably the Debian CD public key is not available on your system, so try first to verify the signature.
$ gpg --verify SHA512SUMS.sign
gpg: assuming signed data in `SHA512SUMS'
gpg: Signature made Sun 18 Jun 2017 02:32:31 CEST using RSA key ID 6294BE9B
gpg: Can't check signature: public key not found
If you see the message
gpg: Good signature from "Debian CD signing key <debian-cd@lists.debian.org>"
then you already have the Debian public key, otherwise you need to
download it from the Debian keyring server.
From the output of the previous command command you can get the ID of
the public key to import which in this case is 6294BE9B
, so import the
key with this command.
$ gpg --keyserver keyring.debian.org --recv 6294BE9B
gpg: requesting key 6294BE9B from hkp server keyring.debian.org
gpg: key 6294BE9B: public key "Debian CD signing key <debian-cd@lists.debian.org>" imported
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0 valid: 3 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 3u
gpg: next trustdb check due at 2021-01-25
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
Validate the checksum file
Now you can check that the checksum file has not been tampered by verifying the signature and it should be a good one.
$ gpg --verify SHA512SUMS.sign SHA512SUMS
gpg: Signature made Sun 18 Jun 2017 02:32:31 CEST using RSA key ID 6294BE9B
gpg: Good signature from "Debian CD signing key <debian-cd@lists.debian.org>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: DF9B 9C49 EAA9 2984 3258 9D76 DA87 E80D 6294 BE9B
The last line show you the fingerprint of key used to sign the file, you can compare it with the ones listed at https://www.debian.org/CD/verify page, which includes a list of the fingerprints for the keys that have been used for Debian releases in recent years.
Verify ISO image content
Finally you can check that that the ISO image checksum matches the one expected from the checksum file, for use this command.
$ sha512sum -c SHA512SUMS 2>/dev/null | grep debian-live-9.4.0-amd64-gnome.iso
debian-live-9.4.0-amd64-gnome.iso: OK
Now, you are ready to use your Debian.
Danilo