Pacman-key: Unterschied zwischen den Versionen
→Inoffizielle Keys: Key wieder entfernen bzw. eine eigene Signatur eiens Keys |
|||
Zeile 71: | Zeile 71: | ||
# pacman-key --lsign-key <keyid> | # pacman-key --lsign-key <keyid> | ||
Der Schlüssel ist jetzt als vertrauenswürdig eingestuft. | Der Schlüssel ist jetzt als vertrauenswürdig eingestuft. | ||
Möchte man diese lokale Signierung wieder entfernen muss man wie folgt vorgehen: | |||
# pacman-key --edit-key <keyid> | |||
# (danach ist man in der gpg shell) | |||
# uid 1 | |||
# delsig <keyid> | |||
# quit | |||
# (danach ist man wieder in der "normalen" shell) | |||
# pacman-key -d <keyid> | |||
Nur das Löschen alleine mit "pacman-key -d" reicht NICHT! | |||
=== Schlüssel automatisiert hinzufügen === | === Schlüssel automatisiert hinzufügen === |
Version vom 5. Februar 2012, 22:31 Uhr
Pacman-key ist ein neues, mit Pacman 4 verfügbares Werkzeug. Es ermöglicht dem Nutzer, die Liste vertrauenswürdiger Schlüssel zu verwalten. Hintergrundinformationen zu diesem Thema sind in folgenden (englischen) Blogeinträgen, [1] [2] [3] [4] sowie dem englischsprachigen Wiki und in diesem Thread im deutschen Archforum zu finden.
Funktionsweise
Um sicherzustellen das Pakete auch wirklich von den Entwicklern stammen und nicht von jemandem, der sich als diese ausgibt, bedient sich die Paketsignierung Pacmans des "Web Of Trust" Models. Entwickler und Trusted User besitzen individuelle PGP-Schlüssel, mit denen sie ihre Pakete signieren. Mit dieser Signatur wird der Ursprung der Pakete belegt. Der Nutzer verfügt demgegenüber ebenfalls über ein Schlüsselunikat, welches beim Setup von pacman-key erstellt wird.
Schlüssel können auch dazu benutzt werden, andere Schlüssel zu signieren, was bedeutet, dass der Besitzer des zum Signieren verwendeten Schlüssels für die Authentizität des signierten Schlüssels garantiert. Um ein Paket als vertrauenswürdig einstufen zu können, wird eine Kette von Signaturen benötigt, die vom eigenen PGP Schlüssel bis hin zum Paket selbst reicht. Durch die Arch-Schlüssel-Struktur kann dies auf drei Arten geschehen:
- Custom Pakete: Man hat das Paket persönlich erstellt und es mit dem eigenen Schlüssel signiert.
- Inoffizielle Pakete: Ein Entwickler hat ein Paket erstellt und signiert; Man selbst hat es mit seinem eigenen Schlüssel signiert.
- Offizielle Pakete: Ein Entwickler hat ein Paket erstellt und signiert. Der Schlüssel des Entwicklers wurde mit einem Arch Linux Master Key signiert. Der Arch Linux Master Key wurde mit dem eigenen Schlüssel signiert und somit für vertrauenswürdig erklärt, um die Authentizität des Entwickler Schlüssels zu garantieren.
Setup
Pacman konfigurieren
Zunächst muss man sich für die Art der Signaturprüfung entscheiden. Diese wird über die SigLevel-Option in der /etc/pacman.conf
eingestellt.
In den Kommentaren werden verschiedene Möglichkeiten aufgezeigt, eine detaillierte Erklärung ist in der pacman.conf man page zu finden.
Achtung: Die TrustAll Option ist für debugging Zwecke vorgesehen und ermöglicht es, nicht verifizierte Schlüssel als vertrauenswürdig einzustufen. Für alle ofiziellen Repositorien sollte man TrustedOnly verwenden!
Da die Datenbanksignierung bislang (Stand: Dezember 2011) noch nicht implementiert wurde, muss die Option DatabaseOptional
verwendet werden, wenn man Required
benutzt:
SigLevel = Required DatabaseOptional TrustedOnly
Schlüsselbund initialisieren
Pacman-Keyring erstellen:
# pacman-key --init
Dies erstellt einen neuen Keyring in /etc/pacman.d/gnupg
und generiert einen individuellen und einzigartigen Master-Key für das eigene System.
Schlüsselbund verwalten
Schlüssel, die benötigt werden um Paketsignaturen zu verifizieren, werden von pacman-key in einem Schlüsselbund (Keyring) verwaltet. Wird ein Schlüssel benötigt, der sich noch nicht an dem Schlüsselbund befindet, rufen pacman und pacman-key diesen von einem Keyserver ab. Der zu verwendende Keyserver wird in
/etc/pacman.d/gnupg/gpg.conf
definiert. Durch Verwenden der --keyserver
Option in der Kommandozeile kann diese Definition (vorübergehend) ausser Kraft gesetzt werden. (Andere Keyserver findet man in diesem Wikipediaartikel aufgelistet.)
Für gewöhnlich sind PGP-Schlüssel zu gross (2048 bits oder mehr) als das Menschen mit ihnen arbeiten könnten. Deshalb werden sie zerlegt, um einen 40 Hexadezimalzeichen langen Fingerprint zu erstellen. Die letzten acht Stellen, die sog. Key-ID, werden als "Name" für den Key verwandt. Der längere Fingerprint wird benutzt, um händisch zwei Schlüssel auf Gleichheit zu überprüfen.
Master-Keys
Zum Signieren der Schlüssel der Entwickler und Trusted User gibt es fünf Arch Linux Master Keys. Diese Schlüssel sollte man im eigenen Schlüsselbund haben. Die Key-IDs der Schlüssel findet man auf der Master Signing Keys Seite. Installation:
# pacman-key -r <keyid> <keyid> <keyid> <keyid> <keyid>
Man wird die Schlüssel auf dem eigenen Rechner signieren und ihren Trust Level mindestens auf gering, also "marginal", setzen müssen.
# pacman-key --edit-key <keyid> <keyid> <keyid> <keyid> <keyid>
Bevor man jedoch einen Schlüssel signiert, oder ihm vertraut, sollte man seinen Fingerprint abgleichen. Am besten tut man dies indem man Allan McRae ein Bier spendiert und ihn persönlich nach seinem Public Key Fingerprint fragt. Es ist einigermassen sicher, den Fingerprint mit anderen Listen, wie der auf der Master Signing Keys Seite und Allan McRae's Blog abzugleichen.
gpg> lsign ... Primary key fingerprint: ... ... Really sign? (y/N)
Offizielle Entwickler-Keys
Die offiziellen Entwickler- und Trusted User Keys werden mit den Master-Keys signiert, also braucht man sie nicht selbst mit pacman-key zu signieren. Jedes Mal wenn Pacman auf einen Schlüssel trifft, den er nicht kennt, fragt er nach, ob man den Schlüssel vom Keyserver herunterladen möchte. Man braucht einen Entwickler-Key nur einmalig herunterzuladen. Er kann dann dazu verwendet werden, jedes andere Paket dieses Entwicklers auf Echtheit zu überprüfen. Stimmen die Fingerprints überein, kann man sie signieren. Man muss jedem Master-Key mindestens den Trust Level "marginal" zuweisen.
Really sign? (y/N) y gpg> trust ... Your decision? 3 gpg> q Save changes? (y/N) y
Diese Prozedur wiederholt sich für jeden einzelnen Master-Key.
Inoffizielle Keys
Möchte man seinem Schlüsselbund inoffizielle Keys zufügen, muss man dies manuell tun. Als erstes braucht man die ID des Schlüsselbesitzers. Mit
# pacman-key -r <keyid>
lädt man diese ID von einem Keyserver herunter. Es ist unbedingt daran zu denken, den Fingerprint zu prüfen, so wie man es mit einem Master-Key oder jedem anderen zu signierenden Schlüssel auch täte! Nach der Überprüfung des Schlüssels muss man ihn lokal signieren:
# pacman-key --lsign-key <keyid>
Der Schlüssel ist jetzt als vertrauenswürdig eingestuft.
Möchte man diese lokale Signierung wieder entfernen muss man wie folgt vorgehen:
# pacman-key --edit-key <keyid> # (danach ist man in der gpg shell) # uid 1 # delsig <keyid> # quit # (danach ist man wieder in der "normalen" shell) # pacman-key -d <keyid>
Nur das Löschen alleine mit "pacman-key -d" reicht NICHT!
Schlüssel automatisiert hinzufügen
Master-Keys
Dieser Abschnitt stellt Skripts zur Verfügung, mit deren Hilfe Schlüssel automatisch heruntergeladen werden können. Um zu vermeiden, dass man einem bösartigen Key vertraut, sollte man diese Skripts mit Vorsicht und gesundem Menschenverstand benutzen.
Achtung: Dieses Skript wird automatisch jedem Key vertrauen, den man herunterlädt. Deswegen sollte man die Fingerprints prüfen, BEVOR man pacman verwendet.
Mit Rootrechten auszuführen:
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
Entwickler- und Trusted User-Keys
Achtung: Mit diesem Skript sollten Keys nur heruntergeladen werden, wenn man TrustedOnly verwendet!
Das Skript verwendet curl, um die Entwicklerseite herunterzuladen. Es extrahiert die PGP-Key fingerprints und lädt mittels pacman --recv-keys
vom pgp.mit.edu keyserver die Schlüssel herunter um sie zu pacman key store hinzuzufügen.
Als Root ausführen, oder dem pacman-key Kommando ein sudo voranstellen:
curl https://www.archlinux.org/{developers,trustedusers}/ | awk -F\" '(/pgp.mit.edu/) {sub(/.*search=0x/,"");print $1}' | xargs pacman-key --recv-keys
Problembehebung
Schlüssel können nicht importiert werden
Manche Internetanbieter blockieren die Ports, die PGP verwendet um Keys zu importieren. Ein Weg dieses Problem zu umgehen, wäre einen MIT Keyserver zu benutzen, der alternative Ports anbietet. Dazu ändert man in /etc/pacman.d/gnupg/gpg.conf
die Keyserver Zeile wie folgt:
keyserver hkp://pgp.mit.edu:11371
Deaktivieren der Signaturprüfung
Achtung: Das Deaktivieren der Signaturprüfung erlaubt es Pacman, nicht vertrauenswürdige Pakete automatisch zu installieren!
Sollte man sich nicht mit Paketsignierung befassen wollen, kann man die PGP-Signatur-Prüfung komplett deaktivieren. Dazu entfernt man in /etc/pacman.conf
unter [options] das Kommentarzeichen vor:
[options] SigLevel = Never
Dadurch deaktiviert man die Signaturprüfung, so wie es in Pacman vor Version 4 der Fall war. Entscheidet man sich, dies zu tun, braucht man keinen Schlüsselbund mit pacman-key zu erstellen. Es ist immer möglich, die Option der Signaturprüfung zu einem späteren Zeitpunkt wieder zu aktivieren.
Siehe auch
Dieser Artikel (oder Teile davon) steht unter GNU FDL (GNU Freie Dokumentationslizenz) und ist eine Übersetzung aus dem ArchLinux.org Wiki. Am Original-Artikel kann jeder Korrekturen und Ergänzungen vornehmen. Im ArchLinux.org Wiki ist eine Liste der Autoren verfügbar. |