back

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]
...
back