Al igual que con muchos sistemas bien diseñados, el sistema de paquetes de Debian tiene defensa en profundidad : múltiples capas, cada una de las cuales puede verificarse.
-
¿Cómo confiamos en que el archivo del paquete es lo que promete el sistema? El valor hash se calcula y compara con el valor almacenado.
-
¿Cómo confiamos en que el valor de hash no coincida accidentalmente con otro archivo? Se utilizan múltiples algoritmos hash, y solo si todos coinciden con los valores almacenados, confiamos en que el contenido realmente coincida.
-
¿Cómo confiamos en que los valores almacenados están destinados al archivo de paquete que descargamos? Los valores de hash se descargan en un archivo separado (los diversos archivos Packages.*
) previamente calculados automáticamente por el sistema de archivo.
-
¿Cómo confiamos en que los archivos Packages.*
descargados son lo prometido por el sistema? El valor de hash para cada archivo se almacena en un solo archivo Release
para todo el archivo.
-
¿Cómo podemos confiar en que el archivo Release
es lo prometido por el sistema? La firma criptográfica se calcula y se compara con la firma precalculada del archivo que se descarga por separado.
-
¿Cómo confiamos en que las firmas almacenadas en el archivo son realmente del archivo que esperábamos? Está certificado por una clave de archivo que podemos obtener independientemente de una URL separada, y se instala en la configuración inicial del sistema operativo.
Y así sucesivamente. En algún momento de la cadena, debe confiar en parte de (y participar en) el sistema, en pruebas menos que ideales.
Con las capas anteriores, la ventana de confianza de baja evidencia se puede mantener pequeña y fácil de analizar. Los hashes de una vía y las firmas criptográficas nos permiten confiar en las matemáticas para certificar lo que sigue en secuencia.
La wiki de Debian tiene una buena y completa descripción de cómo se asegura el sistema APT .
Por supuesto, muchas otras cosas pueden salir mal por error o malicia, y violar nuestras suposiciones sobre lo que realmente está sucediendo. Como de costumbre, la única defensa persistente contra posibles ataques es: la vigilancia eterna.