Verifica del primo collegamento nella catena di verifica apt-get

1

Mi sto ponendo la seguente domanda ultimamente: Come sai, che hai installato il pacchetto che hai ordinato con debian / ubuntu con l'uso di APT?

Penso di aver compreso le basi della catena di verifica, ad eccezione del primissimo link.

Quindi quando dico di installare un pacchetto, scarica il file Release dal repository-mirror specificato in sources.list . Quel file è firmato dalla chiave segreta maintainer repository . Apt verifica la firma con le chiavi di fiducia locali ( apt-key list ). Se tutto è a posto, apt utilizza i checksum nel file "Release" per verificare ulteriori file Packages e i relativi checksum per verificare che i file .deb che sto installando non siano stati manomessi.

Quello che non ho in questo momento è come verificare che abbia un buon set di chiavi affidabili per verificare la firma del file "release" (cioè il primo link della catena).

Nel caso comune ricevo le chiavi tramite i pacchetti debian-archive-keyring o il suo equivalente di ubuntu. Ma dal momento che il mio portachiavi è probabilmente vuoto all'inizio prima di installarlo, non posso verificare questo pacchetto in modo efficace. Ci deve essere un'altra opzione.

  1. Per debian, ho trovato questo simpatico collegamento che posso accedere tramite HTTPS che elenca tutti i repository validi - chiavi del custode. Quindi posso usare apt-key per verificare le impronte digitali delle mie chiavi locali con quelle del sito web. Sembra buono per me. Ma non riesco a trovare qualcosa di simile per Ubuntu. E questo sembra non essere il metodo "popolare" per verificare il portachiavi.

    Hanno persino questa frase nella pagina:

    Please note that the details here are for information only, you should not rely on them and use other ways to verify them.

  2. Tramite la rete della fiducia. Ho letto alcune cose a riguardo, ma ora non lo sono se sono convinto. ad es .: quando cerco la chiave stalla debian attuale su pgp.mit.edu vedo che la chiave è firmata da quattro chiavi diverse. Ma non conosco nessuno di loro. Per essere onesti, tre di questi quattro sono pesantemente firmati da molte persone. Ma nemmeno io conosco nessuno di loro.

    link

Non sarebbe meglio se ogni "creatore del repository" (come debian, ubuntu) avesse una pagina https facilmente accessibile e sicura in cui puoi facilmente confrontare la tua chiave locale, invece di scavare attraverso il WOT per cercare, si spera, un link convincente al progetto Debian?

Domanda bonus : esiste la possibilità di "verificare", che un pacchetto è il risultato di un processo di compilazione da un codice sorgente specifico che puoi visualizzare?

Finora penso che il maintainer del repository che firma il file release "promette" (non conosco una parola migliore) io questo con la sua firma. È corretto?

    
posta Freelandposture 27.09.2016 - 15:34
fonte

1 risposta

1

Il portachiavi Debian viene fornito con il programma di installazione della distribuzione, pertanto il supporto di installazione viene riavviato in base al trust del repository. Questo vale anche per (probabilmente) tutte le altre distribuzioni Linux basate su OpenPGP / GnuPG per la verifica nei gestori di pacchetti.

Se non ti fidi del tuo mezzo di installazione, dovresti verificarlo con uno dei mezzi forniti (recuperarlo da un'origine fidata, confrontarlo con altri, controllare le firme OpenPGP emesse, ...).

Se vuoi costruire manualmente un percorso di fiducia nel portachiavi Debian, trova alcuni sviluppatori Debian e verifica la loro identità / firma le loro chiavi. Di solito, si incontreranno volentieri con te se glielo chiederai gentilmente.

Wouldn't it be better if every 'repository creator' (like debian, ubuntu) had an easily and secure accessible https page where you can easily compare your local key to, instead of digging through the WOT in order to hopefully find a convincing link to the debian project?

Ci sono persone in giro che non si fidano di HTTP e del sistema gerarchico di fiducia per alcuni motivi (validi) (ma questo è ben oltre questa risposta, e già discusso molte volte) e preferiscono fare affidamento sulla rete di fiducia decentralizzata OpenPGP, in particolare per il trust bootstrap.

Alla fine la verifica si riduce alla ricerca di un'origine di immagine CD attendibile, comunque.

But I know none of them. To be fair, three of those four are heavily signed by a lot of people. But I don't know any of them either.

Fondamentalmente, dovresti avviare la tua rete di fiducia da qualche parte (incontrandoti con altri già collegati alla rete di fiducia, verificando il loro ID e firmando la loro chiave), e vai ad estendere la tua visione personale sulla rete della fiducia di selezionando ricorsivamente le persone di cui ti fidi fino a raggiungere le chiavi di firma Debian. Di sicuro, questo non è un compito banale.

Decidere se fidarsi di una pagina HTTP subisce gli stessi problemi: ancora e ancora, ci sono segnalazioni di autorità di certificazione compromesse e infrante. Conosci tutte quelle centinaia di CA e ti fidi di ciascuna di esse? Sono tutti affidabili e possono emettere certificati Debian validi!

Bonus question: Is there a possibility to 'verify', that a package is the result of a build process from a specific sourcecode you can look at?

Debian ti promette firmando i pacchetti che è stato creato utilizzando il file di rilascio dalle rispettive fonti Debian. I pacchetti sono costruiti su server di build e firmati da chiavi speciali, questo non è nulla che i singoli sviluppatori Debian facciano manualmente.

    
risposta data 27.09.2016 - 18:30
fonte

Leggi altre domande sui tag