APT seguro: Secure APT
APT utiliza el sistema de criptografía GPG para validar los paquetes .deb descargados y asegurarse de que no han sido alterados. A esto se le llama Secure APT y funciona de la siguiente manera:
- cuando nos conectamos a un repositorio de paquetes .deb, APT descarga los archivos Packages.gz (que contiene el archivo Packages comprimido), Release y Release.gpg.
- cuando nos descargamos un paquete binario .deb APT comprueba que su md5sum coincide con la que figura en Packages.
- para asegurarse de que el archivo Packages no ha sido alterado, APT comprueba que su md5sum coincide con la que figura en Release.
- para asegurarse de que el archivo Release no ha sido alterado, APT comprueba su firma,
el archivo Release.pgp. Para comprobar Release.pgp, APT debe conocer la
clave pública del que firma el archivo, es decir, esa clave pública debe estar en
el archivo /etc/apt/trusted.gpg. Veremos el contenido de /etc/apt/trusted.gpg
con el comando:
# apt-key list /etc/apt/trusted.gpg -------------------- pub 1024D/6070D3A1 2006-11-20 [expires: 2009-07-01] uid Debian Key (4.0/etch) <[email protected]>
Como vemos, por defecto tenemos una clave pública en el anillo de claves de APT, referencia 6070D3A1 y caducidad 2009-07-01. Es la clave pública del repositorio oficial de Debian que hemos utilizado al instalar nuestra máquina.
- si añadimos otro repositorio a /etc/apt/sources.list (o si la clave del
repositorio oficial caduca), tendremos que conseguir su clave pública y añadirla
al anillo de claves de APT para que la pueda utilizar para verificar los paquetes. El proceso
consta de dos pasos:
- conseguir la clave pública GPG del nuevo repositorio. Para ello, tenemos que buscarla
en un servidor de claves públicas. Por ejemplo, podemos buscar la clave pública del
repositorio de Christian Marillat (debian-multimedia.org)
en el servidor de claves de RedIRIS
(rediris.es/cert/servicios/keyserver/),
donde veremos que su UID es 1F41B907 (este UID también figura en el mensaje de
error que nos habrá tirado ATP). Importaremos la clave y la añadiremos al
anillo de GPG con el comando:
# gpg --recv-keys 1F41B907
Comprobaremos que GPG ha añadido la clave a su anillo con el comando:
# gpg --list-keys
- añadir la clave pública al anillo de claves de APT. Lo haremos con el comando:
# gpg -a --export 1F41B907 | apt-key add -
Comprobamos que APT ha añadido la clave a su anillo:
# apt-key list /etc/apt/trusted.gpg -------------------- pub 1024D/6070D3A1 2006-11-20 [expires: 2009-07-01] uid Debian Key (4.0/etch) <[email protected]> pub 1024D/1F41B907 1999-10-03 uid Christian Marillat <[email protected]>
Para terminar haremos un:
# apt-get update
Si todo está correcto, APT no se quejará.
- conseguir la clave pública GPG del nuevo repositorio. Para ello, tenemos que buscarla
en un servidor de claves públicas. Por ejemplo, podemos buscar la clave pública del
repositorio de Christian Marillat (debian-multimedia.org)
en el servidor de claves de RedIRIS
(rediris.es/cert/servicios/keyserver/),
donde veremos que su UID es 1F41B907 (este UID también figura en el mensaje de
error que nos habrá tirado ATP). Importaremos la clave y la añadiremos al
anillo de GPG con el comando:
- ¿Y qué pasa si no disponemos de la clave pública del repositorio, si ésta ha caducado o si la firma está mal? APT nos advertirá de que la fuente está sin autentificar y nos dará la opción de Abortar o Continuar la instalación, eso sí, sin garantía de su autenticidad.
- ¿No hay alguna GUI para gestionar todo esto? Sí, GAK (GUI APT Key manager, (infodrom.org/projects/gui-apt-key/, paquete gui-apt-key) permite gestionar las clave públicas GPG de los repositorios Debian.
Nota
Veamos el contenido de los archivos Packages, Release y Release.gpg:
- parte del contenido de Packages:
Package: 3dchess Priority: optional Section: games Installed-Size: 136 Maintainer: Debian QA Group <[email protected]> Architecture: i386 Version: 0.8.1-12 Depends: libc6, libx11-6, libxext6, libxmu6, libxpm4, xaw3dg Filename: pool/main/3/3dchess/3dchess_0.8.1-12_i386.deb Size: 33564 MD5sum: fecee217870b621286f75e528496d3b1 SHA1: 88343e19f566cf5cd11ef099bad97fbabf4e316d SHA256: 3601709708044f7e489a0a74dbe4aca0e04b2fe1bc533655b268a ...
- parte del contenido de Release:
Origin: Debian Label: Debian Suite: stable Version: 4.0r0 Codename: etch Date: Sun, 08 Apr 2007 10:41:22 UTC Architectures: alpha amd64 arm hppa i386 ia64 powerpc s390 sparc Components: main contrib non-free Description: Debian 4.0r0 Released 8 April 2007 MD5Sum: 1757dd307e43c7d86c9d08406044 19454084 main/binary/Packages c83575303b87ea665bc62e1f8d56 5637843 main/binary/Packages.gz SHA1: 1083885552dc601b8206b7ee269915fd 19454084 main/binary/Packages 924f355bb8567e7db7255df336876547 5637843 main/binary/Packages.gz ...
- contenido de Release.gpg:
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) iD8DBQBGGMb4pw2vU2Bw06ERAmPbAJ4wTvLZlocu/sTJBGBxaS0TXhT6hgCbBnQl Rlof3xGJXxYnsUoHishfZMY= =QSdS -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQBGGLggtdDIBK2xEncRAl8+AJwNeefC/JOB7dz6cbKjym2MjywKQACfeuCJ 4MbfYYrUSg4wi7D4fs/Tv4g= =flEJ -----END PGP SIGNATURE-----
Deja un comentario