APT-SECURE(8)

NOME
apt-secure - supporto per l'autenticazione degli archivi per APT

DESCRIZIONE

Starting with version 0.6, APT contains code that does signature checking of the Release file for all repositories. This ensures that data like packages in the archive can't be modified by people who have no access to the Release file signing key. Starting with version 1.1 APT requires repositories to provide recent authentication information for unimpeded usage of the repository.

If an archive has an unsigned Release file or no Release file at all current APT versions will refuse to download data from them by default in update operations and even if forced to download front-ends like apt-get(8) will require explicit confirmation if an installation request includes a package from such an unauthenticated archive.

As a temporary exception apt-get(8) (not apt(8)!) raises warnings only if it encounters unauthenticated archives to give a slightly longer grace period on this backward compatibility effecting change. This exception will be removed in future releases and you can opt-out of this grace period by setting the configuration option Binary::apt-get::Acquire::AllowInsecureRepositories to false or --no-allow-insecure-repositories on the command line.

You can force all APT clients to raise only warnings by setting the configuration option Acquire::AllowInsecureRepositories to true. Individual repositories can also be allowed to be insecure via the sources.list(5) option allow-insecure=yes. Note that insecure repositories are strongly discouraged and all options to force apt to continue supporting them will eventually be removed. Users also have the Trusted option available to disable even the warnings, but be sure to understand the implications as detailed in sources.list(5).

A repository which previously was authenticated but would loose this state in an update operation raises an error in all APT clients irrespective of the option to allow or forbid usage of insecure repositories. The error can be overcome by additionally setting Acquire::AllowDowngradeToInsecureRepositories to true or for Individual repositories with the sources.list(5) option allow-downgrade-to-insecure=yes.

Nota: tutti i front-end di gestione dei pacchetti basati su APT, come apt-get(8), aptitude(8) e synaptic(8), supportano questa funzionalità di autenticazione, perciò questa pagina di manuale usa APT per fare riferimento a tutti loro solo per ragioni di semplicità.

REPOSITORY FIDATI

La catena di fiducia da un archivio APT all'utente finale è composta di vari passaggi intermedi. apt-secure è l'ultimo della catena; il fatto che si abbia fiducia in un archivio non significa che si abbia fiducia che i suoi pacchetti non contengano codice malevolo, ma significa che si ha fiducia nel manutentore dell'archivio. È responsabilità del manutentore dell'archivio assicurare che sia preservata l'integrità dell'archivio.

apt-secure non controlla le firme a livello di pacchetto. Se si desiderano strumenti per farlo, si possono guardare debsig-verify e debsign (forniti rispettivamente nei pacchetti debsig-verify e devscripts).

La catena di fiducia in Debian ha inizio (ad esempio) quando un manutentore carica un nuovo pacchetto o una nuova versione di un pacchetto nell'archivio Debian. Per poter diventare effettivo, questo caricamento deve essere firmato con una chiave contenuta in uno dei portachiavi dei manutentori Debian (disponibili nel pacchetto debian-keyring). Le chiavi dei manutentori sono firmate da altri manutentori seguendo delle procedure prestabilite, per assicurare l'identità del proprietario della chiave. Procedure simili esistono in tutte le distribuzioni basate su Debian.

Una volta che il pacchetto caricato è verificato e incluso nell'archivio, la firma del manutentore viene rimossa e i codici di controllo del pacchetto vengono calcolati e messi nel file Packages. Vengono quindi calcolati i codici di controllo di tutti i file Packages e vengono messi nel file Release. Il file Release viene poi firmato con la chiave dell'archivio per questo rilascio di Debian e viene distribuito insieme ai pacchetti e ai file Packages nei mirror Debian. Le chiavi sono nel portachiavi degli archivi Debian, disponibile nel pacchetto debian-archive-keyring.

Gli utenti finali possono controllare la firma del file Release, estrarre da esso il codice di controllo di un pacchetto e confrontarlo con il codice di controllo del pacchetto che hanno scaricato a mano, oppure possono affidarsi ad APT che lo fa automaticamente.

Notare che questo è diverso dal controllare le firme per ciascun pacchetto. È progettato per prevenire due possibili attacchi:

    • Attacchi di rete «man in the middle». Senza il controllo delle firme, soggetti malevoli possono introdursi nel processo di scaricamento dei pacchetti e fornire software pericoloso controllando un elemento di rete (router, switch, ecc.) oppure ridirigendo il traffico ad un server cattivo (attraverso attacchi di falsificazione di DNS e ARP).

    • Compromissione della rete dei mirror. Senza il controllo delle firme, soggetti malevoli possono compromettere un host mirror e modificare i file su di esso per propagare il software pericoloso a tutti gli utenti che scaricano i pacchetti da quell'host.

Tuttavia non difende dalle compromissioni del server principale stesso (che firma i pacchetti) o dalla compromissione della chiave usata per firmare i file Release. In ogni caso, questo meccanismo può complementare le firme a livello di singolo pacchetto.

CONFIGURAZIONE UTENTE

apt-key è il programma che gestisce l'elenco delle chiavi usate da APT per fidarsi dei repository. Può essere usato per aggiungere o rimuovere chiavi, oltre che per elencare le chiavi fidate. È possibile limitare quali chiavi possono firmare determinati archivi usando Signed-By in sources.list(5).

Notare che un'installazione predefinita contiene già tutte le chiavi per acquisire in modo sicuro i pacchetti dai repository predefiniti, perciò le modifiche fatte a mano con apt-key sono necessarie solo se vengono aggiunti repository di terze parti.

Per aggiungere una nuova chiave, è necessario prima scaricarla (ci si dovrebbe assicurare di usare un canale di comunicazione fidato quando la si recupera), aggiungerla con apt-key e poi eseguire apt-get update, in modo che apt possa scaricare e verificare i file InRelease o Release.gpg dagli archivi che sono configurati.

CONFIGURAZIONE DELLARCHIVIO

Se si desiderano fornire firme per un archivio di cui si è il manutentore, si deve:

    • Creare un file Release di livello più alto, se non esiste già. Lo si può fare eseguendo apt-ftparchive release (fornito in apt-utils).

    • Firmarlo. Lo si può fare eseguendo gpg --clearsign -o InRelease Release e gpg -abs -o Release.gpg Release.

    • Pubblicare l'impronta digitale della chiave, in modo che i propri utenti sappiano quale chiave devono importare per poter autenticare i file nell'archivio. È meglio distribuire la propria chiave in un proprio pacchetto portachiavi, come Debian fa con debian-archive-keyring per essere in grado in futuro di distribuire aggiornamenti e transizioni di chiave in modo automatico.

    • Fornire istruzioni su come aggiungere il proprio archivio e la propria chiave. Se i propri utenti non possono acquisire la chiave in maniera sicura, la catena di fiducia descritta sopra viene interrotta. Il modo in cui si può aiutare gli utenti ad aggiungere la propria chiave dipende dal proprio archivio e dalla propria utenza e va da avere un proprio pacchetto portachiavi incluso in un altro archivio che gli utenti hanno già configurato (come i repository predefiniti della loro distribuzione) a sfruttare la rete di fiducia.

Ogni volta che i contenuti dell'archivio cambiano (sono aggiunti o rimossi nuovi pacchetti), il manutentore dell'archivio deve compiere nuovamente i primi due passi descritti sopra.

VEDERE ANCHE

apt.conf(5), apt-get(8), sources.list(5), apt-key(8), apt-ftparchive(1), debsign(1), debsig-verify(1), gpg(1)

Per maggiori informazioni sui concetti alla base di questo sistema, si può leggere il capitolo Debian Security Infrastructure[1] del manuale Securing Debian (disponibile anche nel pacchetto harden-doc) e il Strong Distribution HOWTO[2] di V. Alex Brennen.

BUGS

APT bug page[3]. If you wish to report a bug in APT, please see /usr/share/doc/debian/bug-reporting.txt or the reportbug(1) command.

AUTHOR

APT was written by the APT team <apt@packages.debian.org>.

AUTORI DELLA PAGINA DI MANUALE

Questa pagina di manuale è basata sul lavoro di Javier Fernández-Sanguino Peña, Isaac Jones, Colin Walters, Florian Weimer e Michael Vogt.

TRANSLATION

The english translation was done by John Doe <john@doe.org> in 2009, 2010 and Daniela Acme <daniela@acme.us> in 2010 together with the Debian Dummy l10n Team <debian-l10n-dummy@lists.debian.org>.

Note that this translated document may contain untranslated parts. This is done on purpose, to avoid losing content when the translation is lagging behind the original content.

AUTORI

Jason Gunthorpe

APT team

NOTE

1.  Debian Security Infrastructure
    https://www.debian.org/doc/manuals/securing-debian-howto/ch7

2.  Strong Distribution HOWTO
    http://www.cryptnet.net/fdp/crypto/strong_distro.html

3.  APT bug page
    http://bugs.debian.org/src:apt