Pacman/Package signing (Italiano)

From ArchWiki
Revision as of 21:13, 17 January 2012 by Ninquitassar (Talk | contribs) (Created page with "Category:Pacman development (English) {{i18n|Pacman-key}} fr:pacman-key {{Attenzione|Questo articolo è in fase di traduzione. Seguite per ora le istruzioni della vers...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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 – فارسی

Attenzione: Questo articolo è in fase di traduzione. Seguite per ora le istruzioni della versione inglese.

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 firme a Pacman della wiki.

Panoramica sulle keys e sulle fingerprints

Una PGP key permette agli sviluppatori di firmare in modo unico il loro pacchetto, assicurando così che il pacchetto e il file non venga da qualcuno che li impersoni indebitamente.

Fingerprint o keyID

  • Una fingerprint o "impronta digitale" è un versione breve della key (chiave). Può essere usata per identificare la chiave stessa senza il bisogno di averla intera (in quanto a volte è decisamente lunga). È un po' il "nome" della key. Nella documentazione di pacman sono ciò che è chiamato keyIDs.
  • Formati di fingerprint
    • Fingerprint come "6645 B0A8 C700 5E78 DB1D 7864 F99F FE0F EAE9 99BD" devono essere compresse come "6645B0A8C7005E78DB1D7864F99FFE0FEAE999BD" (rimozione degli spazi)
    • La parte "0x" davanti alla key è opzionale: che sia aggiunta o tolta, funzionerà comunque.

Keyserver

  • I PGP key server immagazzinano i file key. In tal modo permettono all'utente di reperire le key basate sulle fingerprint. Se ne può specificare uno con l'opzione --keyserver.
  • hkp://pgp.mit.edu è un keyserver PGP che sarà usato dagli sviluppatori Archlinux.
  • Il keyserver predefinito può essere cambiato in /etc/pacman.d/gnupg/gpg.conf.

Installazione

Per disabilitare il controllo delle chavi PGP completamente, aggiungere la linea seguente sotto [Options] in /etc/pacman.conf:

SigLevel     = Never

Quindi, per settare la memorizzazione GPG delle key, usare:

# pacman-key --init

L'istruzione SigLevel può avere tre valori principali:

  • Required, che forza l'esecuzione del controllo delle firme;GPG
  • Optional (predefinita), che controlla le firme se presenti. I pacchetti e i database non firmati, saranno comunque accettati;
  • Never, che non fa eseguire il controllo delle firme.

Aggiungere le key

Quando pacman incontra chiavi sconosciute sui pacchetti, chiederà all'utente di aggiungerle. Per far ciò si può scaricare il file della PGP key e avviare 'pacman-key -a key-file'; in alternativa è possibile reperila da un keyserver basato sulla fingerprint. Questa seconda possibilità è più semplice ed è spiegata qui sotto:

  • Trovare la fingerprint della chiave di uno sviluppatore: si visiti la pagina degli sviluppatori e si trovi il link PGP Key. Il link è la fingerprint.
  • Dare il comando pacman-key -r <fingerprint> --keyserver <key server>. Come keyserver <key server> utilizzare "hkp://pgp.mit.edu".
  • pacman-key -l mostra le key aggiunte.
  • Ciò aggiunge le key al portachiavi, ma lascia il livellfiduciao di affidabilità come "unknown" (sconosciuto).

Firmare le key

Perché le chiavi funzionino il livello di affidabilità deve essere cambiato.

Per firmare la key localmente, usare:

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

Ciò può essere fatto anche usando il comando di gpg lsign o, ugualmente, pacman-key --edit-key "<fingerprint>" e quindi lsign

Alternativamente è possibile settare pacman per convalidare ogni key nel suo portachiavi. Per quest'ultima ipotesi, si aggiunga UNA delle opzioni seguenti sotto [Options] in /etc/pacman.conf

SigLevel     = Required TrustAll
SigLevel     = Optional TrustAll

Script per aggiungere le chiavi PGP richieste

Quando le chiavi principali sono state aggiunte, non è necessario convalidare ogni PGP key degli Sviluppatori Arch Linux o degli Utenti Affidabili. Infatti esse saranno firmate da almeno tre di queste chiavi principali.

Script per aggiungere tutte le principali PGP key

Questo script aggiunge le master key alle chiavi memorizzate da pacman e imposta il livello di affidabilità a "marginal" (3).

Warning: Usare con attenzione. Controllare che le chiavi elencate sotto corrispondano alle master-keys. È possibile che qualcuno modifichi illecitamente le chiavi principali ed inserisca chiavi PGP maligne, rendendo l'intero processo di controllo inutile.

Lo script deve essere avviato come root per aggiungere le key (in alternativa si aggiunga sudo davanti al comando pacman-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

Script to add all the developer PGP keys from the Developers page

This script uses curl to download the Developer page, extract the PGP key fingerprints and uses pacman --recv-keys with pgp.mit.edu as the keyserver, to add them to the pacman key store.

Warning: Use with caution. It is possible that someone will hack the Developer page and insert malicious PGP key(s), making the whole signing process useless.

This has to be run as root to add keys or add a sudo before the pacman-key command.

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

Script to add all the trusted user PGP keys from the Trusted Users page

This script uses curl to download the "Trusted Users" page, extract the PGP key fingerprints and uses pacman --recv-keys with pgp.mit.edu as the keyserver, to add them to the pacman key store.

Warning: Use with caution. It is possible that someone will hack the Trusted Users page and insert malicious PGP key(s), making the whole signing process useless.

This has to be run as root to add keys or add a sudo before the pacman-key command.

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

Script to add all the PGP keys (both Developers and Trusted Users)

Warning: Use with caution. It is possible that someone will hack the Developers and/or Trusted Users pages and insert malicious PGP key(s), making the whole signing process useless.
curl https://www.archlinux.org/{developers,trustedusers}/ |
awk -F\" '(/pgp.mit.edu/) {sub(/.*search=0x/,"");print $1}' |
xargs pacman-key --recv-keys

Potential fix if keys importing fails

The problem could be that some ISP's have blocked the port used to import PGP keys.

Edit /etc/pacman.d/gnupg/gpg.conf ,replace keyserver hkp://keys.gnupg.net with keyserver hkp://pgp.mit.edu:11371. Everything should work fine.