{"id":5992,"date":"2012-01-19T17:00:41","date_gmt":"2012-01-19T16:00:41","guid":{"rendered":"https:\/\/www.gambaru.de\/blog\/?p=5992"},"modified":"2019-10-14T00:42:20","modified_gmt":"2019-10-13T22:42:20","slug":"arch-linux-paketsignaturen-mit-gnupg-und-pacman-4","status":"publish","type":"post","link":"https:\/\/gambaru.de\/blog\/2012\/01\/19\/arch-linux-paketsignaturen-mit-gnupg-und-pacman-4\/","title":{"rendered":"Arch Linux: Paketsignaturen mit GnuPG und Pacman 4"},"content":{"rendered":"<p>Vor drei Tagen wurde auf <a href=\"http:\/\/www.archlinux.org\/\">archlinux.org<\/a> die gute Nachricht verk\u00fcndet, dass Archs neuer Paketmanager Pacman 4 nun in den \"Core\"-Paketquellen verf\u00fcgbar ist. Ich hatte im letzten September noch laut \u00fcber die <a href=\"https:\/\/www.gambaru.de\/blog\/2011\/09\/14\/pacman-und-das-bedurfnis-nach-sicherheit\/\">Sicherheitsarchitektur der Paketverwaltung<\/a> nachgedacht und damals die Diskussion zu dem Thema n\u00e4her verfolgt, die schon vor Jahren angesto\u00dfen wurde aber erst durch einen <a href=\"http:\/\/lwn.net\/Articles\/434990\/\">kritischen lwn.net Artikel<\/a> an Fahrt gewann.<br \/>\nW\u00e4hrenddessen war man nicht unt\u00e4tig und 893 commits von 24 Helfern sp\u00e4ter, ist es nun gelungen eine Reihe von <a href=\"http:\/\/projects.archlinux.org\/pacman.git\/tree\/NEWS\">neuen Feature<\/a> zu implementieren, darunter eben auch das Signieren von Paketen mit <a href=\"http:\/\/www.gnupg.org\/\">GnuPG<\/a>.<br \/>\nZuerst fiel mir auf, dass ich <a href=\"http:\/\/aur.archlinux.org\/packages.php?ID=5863\">yaourt<\/a> und dessen Abh\u00e4ngigkeit <a href=\"http:\/\/aur.archlinux.org\/packages.php?ID=35915\">package-query<\/a> vor einem Systemupgrade entfernen musste, da package-query auf Pacman in einer Version &lt; 3.6 angewiesen war. Danach wurde zuerst Pacman aktualisiert, bevor ich mir das neue Sicherheitskonzept n\u00e4her anschauen konnte.<br \/>\nAls erstes sollte man den neuen GnuPG Schl\u00fcsselbund mit <code>pacman-key --init<\/code> anlegen. Zum Thema <a href=\"https:\/\/wiki.archlinux.org\/index.php\/Pacman_package_signing\">Package Signing<\/a> und <a href=\"https:\/\/wiki.archlinux.org\/index.php\/Pacman-key\">Pacman-Key<\/a> gibt es schon einen hilfreichen Eintrag im Wiki. Ausf\u00fchrlich wird der gesamte Prozess auch auf <a href=\"http:\/\/allanmcrae.com\/2011\/12\/pacman-package-signing-4-arch-linux\/\">Allan McRaes Homepage<\/a> erl\u00e4utert.<br \/>\nNachdem mit <code>pacman-key<\/code> sowohl Schl\u00fcsselbund und ein Grundger\u00fcst an Konfigurationsdateien angelegt worden ist, kann man in <em>\/etc\/pacman.conf<\/em> seine pers\u00f6nlichen Vorstellungen von Sicherheit einstellen. Zur Zeit ist das \u00dcberpr\u00fcfen der Paketsignaturen n\u00e4mlich noch mit der Variablen <strong>SigLevel = Never<\/strong> abgeschaltet.<br \/>\nMit <strong>SigLevel = Optional TrustedOnly<\/strong> werden Pakete auf ihre Signaturen hin \u00fcberp\u00fcft, jedoch muss man jedem unbekannten Schl\u00fcssel noch einzeln vertrauen. Eine typische Fehlermeldung sieht dann am Anfang so aus:<\/p>\n<blockquote><p>pacman -S transmission-gtk<br \/>\nresolving dependencies...<br \/>\nlooking for inter-conflicts...<br \/>\nTargets (1): transmission-gtk-2.42-2<br \/>\nTotal Download Size: 0.61 MiB<br \/>\nTotal Installed Size: 2.57 MiB<br \/>\nProceed with installation? [Y\/n]<br \/>\n:: Retrieving packages from extra...<br \/>\ntransmission-gtk-2.42-2-i686 625.7 KiB 410K\/s 00:02 [########################################] 100%<br \/>\n(1\/1) checking package integrity [########################################] 100%<br \/>\nerror: transmission-gtk: key \"E8F18BA1615137BC\" is unknown<br \/>\n:: Import PGP key 615137BC, \"Ionut Biru \", created 2011-04-19? [Y\/n] n<br \/>\nerror: failed to commit transaction (invalid or corrupted package (PGP signature))<br \/>\nErrors occurred, no packages were upgraded.<\/p><\/blockquote>\n<p>Deswegen sollte man zuerst die sogenannten <a href=\"http:\/\/www.archlinux.org\/master-keys\/\">MasterKeys<\/a> importieren. Diese f\u00fcnf Hauptschl\u00fcssel werden dazu benutzt um die Schl\u00fcssel anderer ArchLinux-Entwickler zu unterschreiben. Gem\u00e4\u00df dem Web of Trust ist das marginale Vertrauen in drei dieser Schl\u00fcssel ausreichend, um einen anderen mit ihnen unterschriebenen Schl\u00fcssel als g\u00fcltig anzusehen. Selbst im schlimmsten Fall, wenn zwei der MasterKeys widerrufen werden m\u00fcssten, w\u00e4re also das Sicherheitskonzept weiter in Takt.<br \/>\nProblematisch ist momentan die Verteilung dieser Schl\u00fcssel. Es gibt z.B. noch kein pacman-keyring Paket, mit welchem alle GnuPG-Schl\u00fcssel automatisch und benutzerfreundlich eingerichtet werden k\u00f6nnen. Au\u00dferdem haben noch nicht alle ArchLinux-Entwickler ihre GnuPG-Schl\u00fcssel unterschreiben lassen, weswegen es zu Warnmeldungen kommt. Dies ist auch der ausschlaggebende Grund, warum Arch Linux mit Pacman 4 standardm\u00e4\u00dfig noch auf die Validierung verzichtet.<br \/>\nEine einfache M\u00f6glichkeit die f\u00fcnf MasterKeys zu importieren, ist diese For-Schleife zu benutzen.<\/p>\n<pre>for key in FFF979E7 CDFD6BB0 4C7EA887 6AC6A4C2 824B18E8; do\npacman-key --recv-keys $key\npacman-key --lsign-key $key\nprintf 'trustn3nquitn' | gpg --homedir \/etc\/pacman.d\/gnupg\/\n--no-permission-warning --command-fd 0 --edit-key $key\ndone<\/pre>\n<p>Halten wir mal fest, dass Arch Linux einen gro\u00dfen Schritt in Sachen Paketsicherheit nach vorne gemacht hat. Es braucht aber noch den letzten Feinschliff in den kommenden Wochen, um das Vertrauen in das neue System auch tats\u00e4chlich herzustellen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vor drei Tagen wurde auf archlinux.org die gute Nachricht verk\u00fcndet, dass Archs neuer Paketmanager Pacman 4 nun in den &#8222;Core&#8220;-Paketquellen verf\u00fcgbar ist. Ich hatte im letzten September noch laut \u00fcber die Sicherheitsarchitektur der Paketverwaltung nachgedacht und damals die Diskussion zu dem Thema n\u00e4her verfolgt, die schon vor Jahren angesto\u00dfen wurde aber erst durch einen kritischen &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/gambaru.de\/blog\/2012\/01\/19\/arch-linux-paketsignaturen-mit-gnupg-und-pacman-4\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eArch Linux: Paketsignaturen mit GnuPG und Pacman 4\u201c<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[20,149,178],"_links":{"self":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/5992"}],"collection":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/comments?post=5992"}],"version-history":[{"count":1,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/5992\/revisions"}],"predecessor-version":[{"id":10879,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/5992\/revisions\/10879"}],"wp:attachment":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/media?parent=5992"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/categories?post=5992"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/tags?post=5992"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}