6.6. Comprobación de la autenticidad de un paquete
La seguridad es muy importante para los administradores de Falcot Corp. Por consiguiente, necesitan asegurar que sólo instalen paquetes con garantía de que provienen de Debian sin modificaciones en el camino. Un «cracker» podría intentar agregar código malicioso en un paquete que de otra forma sería legítimo. Si se instala tal paquete, éste podría hacer cualquier cosa para la que dicho «cracker» lo diseño, inclusive revelar contraseñas o información confidencial por ejemplo. Para evitar este riesgo, Debian provee un sello contra modificaciones para garantizar — al momento de instalación — que el paquete realmente proviene de su encargado oficial y no fue modificado por un tercero.
El sello funciona con una firma y una cadena de «hashes» criptográficos y se explica en detalle en apt-secure(8). A partir de Debian 10 Buster, el archivo InRelease
, provisto por las réplicas Debian, es el firmado. También hay un archivo de la versión anterior llamado Release
. Ambos contienen una lista de los archivos Packages
(incluyendo sus formas comprimidas, Packages.gz
y Packages.xz
, así como las versiones incrementales), junto con sus «hashes» SHA256 lo que asegura que los archivos no fueron modificados. Estos archivos Packages
contienen una lista de los paquetes Debian disponibles en la réplica junto con sus hashes lo que asegura, a su vez, que el contenido de los paquetes mismos tampoco fue modificado. La diferencia entre InRelease
y Release
es que el anterior está firmado criptográficamente en línea, mientras que el último proporciona una firma separada en la forma del archivo Release.gpg
.
APT necesita un conjunto de claves públicas GnuPG para verificar las firmas disponibles en los archivos InRelease
y Release.gpg
disponibles en los espejos. Las obtiene de archivos en /etc/apt/trusted.gpg.d/
y del conjunto de claves /etc/apt/trusted.gpg
(gestionado por la orden apt-key
). Las claves oficiales de Debian son proporcionadas y mantenidas al día por el paquete debian-archive-keyring paquete que las pone en /etc/apt/trusted.gpg.d/
:
#
ls /etc/apt/trusted.gpg.d/
debian-archive-bullseye-automatic.gpg
debian-archive-bullseye-security-automatic.gpg
debian-archive-bullseye-stable.gpg
debian-archive-buster-automatic.gpg
debian-archive-buster-security-automatic.gpg
debian-archive-buster-stable.gpg
debian-archive-stretch-automatic.gpg
debian-archive-stretch-security-automatic.gpg
debian-archive-stretch-stable.gpg
Una vez que las claves apropiadas se ecuentran en el conjunto, APT revisará las firmas antes de cualquier operación de riesgo para que las interfaces muestren una advertencia si pide instalar un paquete sobre el que no se puede verificar autenticidad.
Recuerde que los paquetes binarios generalmente no están firmados. La integridad de un paquete sólo se puede confirmar comprobando su suma de verificación contra una fuente de verificación de confianza (y posiblemente firmada).