Mediante il confronto del checksum relativo al file Packages.gz contenuto nel Release file e del checksum del file Packages.gz contenuto nei repository, apt capisce se la copia scaricata di Package.gz file è corretta.
Quando poi scarica un singolo pacchetto, apt esegue il check di questo con quanto contenuto nel file Packages.gz.
La firma crittografica del file Release è costituita da un file chiamato Release.gpg che viene fornito insieme al file Release.
Ecco il contenuto di http://ftp.it.debian.org/debian/dists/lenny/Release.gpg:
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iQIcBAABAgAGBQJLY2zLAAoJEJqjjc1VvjAr6E0QAJMm3HWcrMd3GPUxQ/tThtNz PsIUH5Bkd5LwHGXnRntz/pF1eeQPZ9VvwTNc0q+AP5ZP21/q3kiTFBbaqTkqXsc0 QOiF2mKMI+tv4iJaLqMI/IBEAXqwyIdDGXzuyCG50RxajKmARb4Npab2OqSz/Dy3 IMROR9wy8tzPnCtyVnkOZ7I1Vz0AF5JQYBCCDscQJu4O7i6t5itqkgF0vA/FvXJ2 GHOQPSAVOAMhd1vudVjn9bu5mP6cAT6wQoJKa/uNs5pRlotC2qN4unZKleZ2NHvU 9E7pVleKb1ND07dFPQZjDdT7Ir7B4J2Ma7yHXn8nFdPRrOHb0/fXBC5js0XgenHH ZASRQeZnjVh8PRAZDU47bhF9DIsaxnbds0DMMLFhMDQM2vGjQlTcWRoEPm1QMLv+ ttL7aD4rrq/S413cKodqaR9TnuXjydNoja8Od/cgtH9VvMKVtBbPdhjn749Fx5Hw b3fnwmzTbgguzsleRyF9/fJIBSuVc9TQH42GmCa7OsCB7wRHlOEdyj/4FtFfP37R 0gYTVQeeV5l9wP/cun3boWyhGSg2cXwhPKFU+I7cDW2TobQ3I/eUrodeyr/ikrPe iLqGsUXBIWmlAC7NGUBrITQw6rouc82qnDSKR+RLPBuXZeEVRy95d+LI+CvPa0sr TiHtlcssVR+1v/d1G9Qk =/CSh -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) iEYEABECAAYFAktjbk0ACgkQTScNBvQlhOYVJgCgg1ry+a9GkDe5EDGy8M5ReE64 /TIAn1WqrgX49oOr6RVLXil2roYhCaX/ =003L -----END PGP SIGNATURE-----
Se apt non riesce a scaricare Release.gpg o se la firma non è verificata, avvisa che il Packages.gz al quale il file Release fa riferimento (e ovviamente tutti i file in esso listati) provengono da una "fonte non verificata".
Il meccanismo di sicurezza si basa sulla verifica dell'esistenza e della validità di Release.gpg, validità accertata eseguendo il controllo di quella firma.
Per eseguire tale controllo, apt deve conoscere la chiave pubblica della persona che l'ha firmato (come detto la firma avviene per mezzo della propria chiave privata).
Tali chiavi pubbliche sono contenute nel keyring /etc/apt/trusted.gpg:
# apt-key list /etc/apt/trusted.gpg -------------------- pub 1024D/6070D3A1 2006-11-20 [expired: 2009-07-01] uid Debian Archive Automatic Signing Key (4.0/etch)pub 1024D/ADB11277 2006-09-17 uid Etch Stable Release Key pub 1024D/BBE55AB3 2007-03-31 [expired: 2010-03-30] uid Debian-Volatile Archive Automatic Signing Key (4.0/etch) pub 1024D/F42584E6 2008-04-06 [expires: 2012-05-15] uid Lenny Stable Release Key ... [cut] ...