Pacman/Package signing (Italiano)

From ArchWiki
< Pacman
Revision as of 11:45, 19 January 2012 by 4javier (Talk | contribs) (Configurare pacman)

Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Pacman-key è un nuovo tool disponibile con pacman 4. Con la nuova implementazione dei pacchetti firmati, permette all'utente di amministrarne la lista delle chiavi affidabili in pacman. Per un po' di storia sulla questione, si rimanda a questi articoli blog: [1] [2] [3] [4] e alla proposta di controllo delle firme in Pacman della wiki.

Funzionamento

Il sistema di firmatura pacchetti in pacman utilizza il modello "web of trust" per assicurare che i pacchetti vengano dagli sviluppatori e non da qualcuno che si sostituisca a loro indebitamente. Gli sviluppatori dei pacchetti e i Trusted User hanno chiavi PGP individuali che utilizzano per firmare i propri pacchetti. Questo significa che loro garantiscono il contenuto del pacchetto. Anche l'utente comune possiede una PGP key unica, che viene generata quando questi configura pacman-key.

Le chiavi possono essere usate per firmare altre key. Ciò significa che il proprietario della chiave firmante garantisce per l'autenticità della chiave firmata. Per verificare un pacchetto, è necessario avere una catena di firme dalla propria chiave PGP al pacchetto stesso. Con la struttura di chiavi Arch questo può avventire in tre modi:

  • Pacchetti personali (custom): l'utente crea da sé il proprio pacchetto e lo firma con una key personale.
  • Pacchetti non ufficiali (unofficial): uno sviluppatore fa un pacchetto e lo firma. L'utente utilizza la propria key per firmare quella dello sviluppatore.
  • Pacchetti ufficiali (official): uno sviluppatore fa un pacchetto e lo firma. La chiave dello sviluppatore viene convalidata dalle chiavi principali (master-key). L'utente fa poi affidamento su queste ultime per garantire gli sviluppatori.

Installazione

Configurare pacman

Prima di tutto, si deve decidere che livello di controllo si desidera. A determinarlo è l'opzione SigLevel nel file /etc/pacman.conf. Alcune possibilità sono menzionate nei commenti di quel file. Per un'esposizione più dettagliata, si rimanda alla pagina di manuale pacman.conf.

Warning: L'opzione TrustAll esiste per uno scopo di debugging. Essa rende molto facile convalidare key che non sono state verificate. L'utente dovrebbe usare l'opzione TrustedOnly per tutti i repository ufficiali.

Al momento della stesura di questo articolo, Dicembre 2011, il sistema di firme del database non è ancora stato completato, quindi si dovrebbe aggiungere l'opzione DatabaseOptional se si usa un livello di controllo Required, ad esempio:

SigLevel = Required DatabaseOptional TrustedOnly

Inizializzare il portachiavi

Per impostare il portachiavi di pacman, usare il comando:

# pacman-key --init

In tal modo si crea un nuovo portachiavi in /etc/pacman.d/gnupg e si genera una chiave principale (master-key) unica per il proprio sistema.

Gestire il portachiavi

Le chiavi che sono necessarie per verificare le firme dei pacchetti sono raccolte in un "portachiavi" gestito da pacman-key. Quando è necessaria una key e questa non si trova nel portachiavi, pacman e pacman-key possono recuperarla da un keyserver. Il keyserver da usare è configurato in /etc/pacman.d/gnupg/gpg.conf. È possibile sostituirlo usando l'opzione --keyserver da riga di comando. (Se si stanno cercando keyserver diversi, è possibile trovare una piccola lista sull'articolo di Wikipedia.)

Le chiavi PGP di solito sono troppo grandi (2048 bit o più) perché le persone possano lavorarci, quindi di solito sono spezzate per creare una fingerprint a 40 cifre esadecimali. Le ultime otto cifre sono note come "key ID" e sono una sorta di "nome" della key. La fingerprint più lunga si deve usare qualora si voglia controllare a mano che le due chiavi siano le medesime.

Chiavi principali o master-key

Le master-key sono cinque chiavi principali di Arch Linux, che sono utilizzate per firmare le key di sviluppatori e Trusted User. Queste chiavi dovrebbero essere nel portachiavi dell'utente. Si possono trovare le keyIDs dalla pagina delle Master Key. Per installarle, dare il comando:

# pacman-key -r <keyid> <keyid> <keyid> <keyid> <keyid>

Si potrebbe aver bisogno di firmare in locale queste key ed inpostare il loro livello di affidabilità come per lo meno "marginal" (marginale):

# pacman-key --edit-key <keyid> <keyid> <keyid> <keyid> <keyid>

Prima di firmare e rendere affidabile qualsiasi chiave, si deve verificare la sua fingerprint. Il modo più sicuro per farlo è di non utilizzare un computer, ad esempio, telefonare ad Allan , offrirgli una birra e chiederla a lui di persona. Scherzi a parte, è ragionevolmente sicuro controllare la fingerprint confrontando liste diverse, come la pagina delle Master Key e il blog di Allan.

gpg> lsign
...
 Primary key fingerprint: ...
...
Really sign? (y/N)

Qualora la fingerprint corrisponda, si proceda a convalidarla. È anche necessario assegnare un livello di affidabilità di almeno "marginal" (marginale) ad ogni chiave principale.

Really sign? (y/N) y
gpg> trust
...
Your decision? 3
gpg> q
Save changes? (y/N) y

Tale processo sarà da ripetere per ogni chiave principale.

Le key degli sviluppatori ufficiali

Le chiavi degli sviluppatori ufficiali e dei Trusted User sono firmate dalle master-key, quindi all'utente non sarà necessario usare pacman-key per firmarle in locale. Nel caso in cui pacman incontri una key e non la riconosca, domanderà all'utente se desidera scaricarla da un keyserver.

Key non ufficiali

Se si desidera aggiungere una chiave non ufficiale al proprio portachiavi, si dovrà farlo manualmente usando pacman-key. Prima di tutto, ci si deve procurare l'ID dal proprietario della key. Dare da riga di comando:

# pacman-key -r <keyid>

per scaricarla da un keyserver. Assicurarsi di verificare la fingerprint, come si farebbe per una chiave principale, o con ogni altra chiave che si stia per convalidare. Dopo aver fatto ciò, sarà necessario firmare localmente questa key:

# pacman-key --lsign-key <keyid>

In questo modo si permetterà alla chiave di firmare i pacchetti.

Aggiungere le key automaticamente

Questa sezione mette a disposizione degli script, che possono essere usati per scaricare automaticamente le chiavi. Per evitare di convalidare una chiave maligna, si dovrebbero usare questi script con estrema cautela.

Master-key

Warning: Utilizzare con cautela. Questo script convalida automaticamente ogni chiave che si scarica, quindi l'utente verifichi le fingerprint PRIMA di usare pacman!

Lo script deve essere avviato come root, per aggiungere le key.

for key in FFF979E7 CDFD6BB0 4C7EA887 6AC6A4C2 824B18E8; do
    pacman-key --recv-keys $key
    pacman-key --lsign-key $key
    printf 'trust\n3\nquit\n' | gpg --homedir /etc/pacman.d/gnupg/ \
        --no-permission-warning --command-fd 0 --edit-key $key
done

Chiavi degli sviluppatori e dei Trusted User

Warning: Questo script dovrebbe essere usato soltanto per scaricare le chiavi se si sta usando un livello di controllo TrustedOnly!

Questo script usa curl per scaricare la pagina Sviluppatori ed estrarre le fingerprint delle chiavi PGP. Quindi, con pacman --recv-keys e pgp.mit.edu come keyserver, li aggiunge al portachiavi pacman. Lo script deve essere avviato come root per aggiungere le key (in alternativa si aggiunga sudo davanti al comando pacman-key.

curl https://www.archlinux.org/{developers,trustedusers}/ |
awk -F\" '(/pgp.mit.edu/) {sub(/.*search=0x/,"");print $1}' |
xargs pacman-key --recv-keys

Risoluzione dei problemi

Impossibile importare le key

Alcuni ISP potrebbe aver bloccato la porta utilizzata per importare le chiavi PGP. Una soluzione è quella di utilizzare il keyserver del Massachusset's Institute of Technology che mette a disposizione una porta alternativa. Per farlo, modificare /etc/pacman.d/gnupg/gpg.conf, rimpiazzando la linea dei keyserver keyserver hkp://keys.gnupg.net con keyserver hkp://pgp.mit.edu:11371.

Disabilitare il controllo delle firme

Warning: Usare con cautela. Disabilitare la firma dei pacchetti permette a pacman di installare automaticamente pacchetti inaffidabili.

Se non si è interessati alla firma dei pacchetti, è possibile disabilitare il controllo delle firme PGP completamente. È sufficiente modificare /etc/pacman.conf e scommentare la linea seguente sotto [options]:

SigLevel = Never

Da ciò consegue l'assenza di controllo delle firme (il comportamento predefinito prima di pacman 4). Se si decide di farlo, non è necessario impostare un portachiavi con pacman-key. Sarà possibile modificare tale opzione, qualora si decida di abilitare la verifica dei pacchetti.