Respuestas:
El contenido de los espejos se firma con claves PGP, directa o indirectamente. Comenzando en la "raíz" de una distribución Debian:
Release
, firmado con una firma separada Release.gpg
, contiene los hashes (MD5, SHA1, SHA256) de todos los índices de paquete y hash del instalador ( InRelease
ahora combina los dos);binary-amd64
) contienen los hashes (MD5 y SHA256) de los paquetes.Los hash y las firmas se verifican mediante herramientas como el apt-get
uso de claves PGP almacenadas en el sistema (administradas por apt-key
). Por lo tanto, siempre que el sistema receptor sea sólido, por defecto no se puede instalar ningún paquete desde los archivos de Debian si no ha sido firmado (indirectamente) por la clave PGP del archivo. Los intrusos en los espejos no podrían reemplazar los archivos binarios si tampoco tuvieran el control de la clave PGP correspondiente.
Esto significa que comprometer el archivo no es suficiente para comprometer realmente los sistemas del usuario final; también necesitaría comprometer una clave PGP en la que esos sistemas ya confían. (Un corolario de esto es que agregar una clave a un sistema Debian no es algo que deba tomarse a la ligera). Eso responde a su primera pregunta hasta cierto punto, ya que la seguridad del archivo no importa tanto. Sin embargo, los sistemas críticos (donde ocurre la firma) son estrictamente monitoreados y supervisados, y muy pocas personas tienen acceso a ellos.
Asegurarse de que los paquetes sean "de hecho los que los encargados creen que son" es un poco más complicado. Este es el camino tomado por un paquete:
Si el responsable de mantenimiento carga los archivos binarios junto con la fuente del paquete, estos son los archivos que terminan sirviéndose (por el momento). Dado que cargar binarios ahora es opcional, es cada vez más común omitirlos, y eventualmente se eliminarán los binarios cargados. (Este siempre ha sido el caso en Ubuntu.) Si los otros binarios coinciden con las expectativas del mantenedor depende de la red construida; así que los edificios también son sistemas críticos, bajo estrecha supervisión y con poco acceso humano. Dado que todos los artefactos están firmados, siempre es posible verificar la integridad de los archivos: primero contra la clave del mantenedor, luego contra las claves de los buildds y finalmente contra la clave del archivo.
Como lo señaló plugwash , las firmas originales no están disponibles en los espejos, y cualquier DD puede cargar un binario faltante. Las firmas originales se pueden recuperar de los archivos debian-devel-changes .
En resumen , si bien el sistema actual no es perfecto, proporciona trazabilidad para todos los archivos que puede descargar de los espejos. Hay una serie de esfuerzos para mejorar la situación: compilaciones reproducibles (que permitirán la verificación independiente de la correspondencia de los binarios a la fuente publicada), eliminando los binarios proporcionados por el mantenedor ...
apt-get
verifica los paquetes usando estas claves pre-incrustadas locales, porque confía en ellos?
debian-archive-keyring
paquete. apt-get
verifica los Release
archivos con esas claves y los paquetes con los hashes contenidos en los archivos Release
y Packages
.