Risposte:
Il contenuto dei mirror è firmato mediante chiavi PGP, direttamente o indirettamente. A partire dalla "radice" di una distribuzione Debian:
Release
, firmato con una firma distaccata in Release.gpg
, contiene gli hash (MD5, SHA1, SHA256) di tutti gli indici dei pacchetti e gli hash di installazione ( InRelease
ora combina i due);binary-amd64
) contengono gli hash (MD5 e SHA256) dei pacchetti.Gli hash e le firme sono controllati da strumenti come l' apt-get
uso delle chiavi PGP memorizzate nel sistema (gestito da apt-key
). Finché il sistema di ricezione è valido, per impostazione predefinita nessun pacchetto può essere installato dagli archivi Debian se non è stato firmato (indirettamente) dalla chiave PGP dell'archivio. Eventuali intrusi sui mirror non sarebbero in grado di sostituire i binari se non avessero anche il controllo della chiave PGP pertinente.
Ciò significa che compromettere l'archivio non è sufficiente per compromettere effettivamente i sistemi dell'utente finale; dovresti anche scendere a compromessi con una chiave PGP di cui quei sistemi già si fidano. (Un corollario di questo è che l'aggiunta di una chiave a un sistema Debian non è qualcosa da prendere alla leggera.) Questo in qualche modo affronta la tua prima domanda, dato che la sicurezza dell'archivio non ha molta importanza. Tuttavia, i sistemi critici (dove avviene la firma) sono strettamente monitorati e supervisionati e pochissime persone hanno accesso ad essi.
Garantire che i pacchetti siano "in effetti quelli che i manutentori pensano di essere" è un po 'più coinvolto. Questo è il percorso seguito da un pacchetto:
Se il manutentore carica i binari insieme alla fonte del pacchetto, questi sono i file che finiscono per essere serviti (per il momento). Poiché il caricamento dei file binari è ora facoltativo, è sempre più comune ignorarli e, alla fine, i file binari caricati verranno eliminati. (Questo è sempre stato il caso di Ubuntu.) Il fatto che gli altri binari corrispondano alle aspettative del manutentore dipende dalla rete buildd; quindi i buildd sono anche sistemi critici, sotto stretta supervisione e con scarso accesso umano. Poiché tutti gli artefatti sono firmati, è sempre possibile verificare l'integrità dei file: prima contro la chiave del manutentore, poi contro le chiavi dei buildd e infine contro la chiave dell'archivio.
Come sottolineato da plugwash , le firme originali non sono disponibili sui mirror e qualsiasi DD può caricare un binario mancante. Le firme originali possono essere recuperate dagli archivi debian-devel-changes .
In sintesi , mentre il sistema attuale non è perfetto, fornisce tracciabilità per tutti i file che è possibile scaricare dai mirror. Ci sono una serie di sforzi per migliorare la situazione: build riproducibili (che consentiranno la verifica indipendente della corrispondenza dei binari con la fonte pubblicata), eliminando i binari forniti dal manutentore ...
apt-get
verifica i pacchetti usando queste chiavi pre-embedded locali, perché si fida di loro?
debian-archive-keyring
pacchetto. apt-get
verifica i Release
file utilizzando tali chiavi e i pacchetti utilizzando gli hash contenuti nei file Release
e Packages
.