Paketquellen und Repositories sind im Prinzip Fileserver mit einer vorab festgelegten, spezifischen Struktur, deren Inhalt öffentlich zugänglich ist [Debian-Wiki-Debian-Repository-Format]. Vereinfacht betrachtet muss bei dessen Abruf sichergestellt werden, dass die von dort bezogenen Daten echt sind und auch mit den Originaldaten übereinstimmen, aus denen die Distribution besteht. Daher sind in der Paketverwaltung mehrstufige Mechanismen integriert, welche die Echtheit und Vollständigkeit der empfangenen Paketlisten und Pakete überprüfen (Authentizität).
Hintergrund dafür ist einerseits, dass eine Paketquelle Paketarchive unterschiedlichster Herkunft umfasst. Die Daten könnten aus einer wenig vertrauenswürdigen Quelle stammen und auch Schadcode enthalten. Ebenso nimmt die Zuverlässigkeit von Speichermedien (Datenträger) mit der Zeit ab und sorgt für fehlerhafte Bitfolgen. Desweiteren erfolgt der Transport über Leitungsnetze unterschiedlichster Art, wobei hier gekippte Bits und somit Übertragungsfehler und verfälschte Daten auf dem Transportweg nicht vollständig auszuschließen sind.
Daher sind sowohl alle Veröffentlichungen (siehe Abschnitt 2.10, „Veröffentlichungen“), als auch die Paketquellen (siehe Abschnitt 3.1, „Paketquellen“) mit den Paketlisten und die darüber bereitgestellten, einzelnen Pakete jeweils separat digital signiert. Eine digitale Signatur („Schlüssel“, GPG-Key) besteht aus zwei Teilen — einem öffentlichen und einem privaten, geheimen Schlüssel. Die Paketlisten werden zunächst vom Verwalter des Repositories mit seinem privaten Schlüssel signiert und der dazugehörige, öffentliche Schlüssel bekanntgegeben bzw. als Paket hinterlegt. Mit Hilfe dieses Signatur-Paares überprüfen Sie einerseits die Echtheit der Paketquelle und andererseits über die Hashsummen jeden einzelnen Pakets in den Paketlisten auch jedes einzelne Paket daraus (siehe auch „Bezogenes Paket verifizieren“ in Abschnitt 8.32.1, „Prüfung eines Paketes auf Unversehrtheit“).
APT und aptitude
haben diesen Vorgang in ihre internen Abläufe
integriert und nehmen Ihnen diesen Verifizierungsschritt vollständig ab.
Falls die Signatur korrekt ist, dann wird der Paketmirror bzw. das
bezogene Paket als glaubwürdig eingeschätzt. Falls nicht, erhalten Sie
eine deutliche Warnung.
Die Verwaltung der Schlüssel erfolgt mit dem Programm apt-key
. Dazu
gehört ein Schlüsselring mit allen GPG-Schlüsseln der Paketquellen, aus
denen Pakete bezogen wurden. Bei Debian sind diese Schlüssel Bestandteil des
Pakets debian-archive-keyring
[Debian-Paket-debian-archive-keyring], bei Ubuntu heißt das Paket
hingegen ubuntu-keyring [Ubuntu-Paket-ubuntu-keyring].
Der primäre Schlüsselring für lokale, als vertrauenswürdig eingestufte
Schlüssel ist die Datei /etc/apt/trusted.gpg
. Für zusätzliche
Schlüsselbunde und Dateifragmente weiterer vertrauenswürdiger Schlüssel
ist das Verzeichnis /etc/apt/trusted.gpg.d/
vorgesehen. Insbesondere
o.g. Schlüsselbund-Pakete speichern ihre Schlüsselbund-Dateien in diesem
Verzeichnis.
Die einzelnen Dateien in /etc/apt/trusted.gpg.d/
gelten als
Konfigurationsdateien, können also vom lokalen Administrator verändert
oder gelöscht werden. Deswegen sind diese Schlüssel zusätzlich auch noch
in der Datei /usr/share/keyrings/debian-archive-keyring.gpg
gespeichert.
Die Schlüssel haben eine begrenzte Gültigkeit oder können auch
zurückgezogen werden. Daher sind in der Schlüsselbund-Datei
/usr/share/keyrings/debian-archive-removed-keys.gpg
auch noch
die abgelaufenen oder zurückgezogenen Schlüssel vergangener
Debian-Veröffentlichungen verfügbar.
Ähnliche Schlüsselringe gibt es auch für andere Veröffentlichungen, bspw.
debian-edu-archive-keyring
für Skolelinux/DebianEdu [Skolelinux] und
debian-ports-archive-keyring
für das Debian-Ports-Projekt (siehe
Abschnitt 1.2.1, „Debian-Ports-Projekt“).
Mit apt-key
greifen Sie auf ihren gespeicherten Schlüsselring zu.
Damit lassen Sie sich bspw. die gemerkten Schlüssel anzeigen, fügen neue
Schlüssel zum Schlüsselring hinzu oder entfernen diese daraus wieder.
Diese Vorgänge kommen meist dann zum tragen, wenn Sie Ihr Debian-System
von Ballast befreien und nicht mehr benötigte Schlüssel austragen oder
weitere Paketquellen einbinden möchten, deren Schlüssel (noch) nicht
offiziell hinterlegt ist.
Die vier Unterkommandos list
, finger
, export
und exportall
haben
rein informativen Charakter. Mit den ersten beiden zeigen sie zu den
gespeicherten, vertrauenswürdigen Schlüsseln deren Erstell- und
Verfallsdatum sowie den Eigentümer bzw. Aussteller des Schlüssels an. Im
vorliegenden Fall ist dieser keine Person, sondern eine
Debian-Veröffentlichung bzw. deren Verantwortlicher. Als E-Mail-Adresse
ist hier diejenige der FTP-Master hinterlegt (siehe Abbildung 3.11, „Auflistung der gespeicherten, vertrauenswürdigen Schlüssel“).
Mit dem Aufruf apt-key finger
zeigen Sie zusätzlich deren Fingerabdruck
an[10]. Nachfolgend sehen Sie beispielhaft die
Signaturen zum Opera Software Archive, dem Mendeley Desktop Team und dem
Debian Archive für die beiden Veröffentlichungen Wheezy und Jessie.
Liste der Signaturen (Ausschnitt).
# apt-key finger /etc/apt/trusted.gpg - ------------------- pub 1024D/30C18A2B 2012-10-29 [verfallen: 2014-10-29] Schl.-Fingerabdruck = ABCD 165A F57C AC92 18D2 872B E585 066A 30C1 8A2B uid Opera Software Archive Automatic Signing Key 2013 <packager@opera.com> pub 2048R/6F036044 2011-02-21 Schl.-Fingerabdruck = 26BB 0219 1EF4 588D 3A7B C30F D800 C7D6 6F03 6044 uid Mendeley Desktop Team <desktop@mendeley.com> sub 2048R/F9CE0BFD 2011-02-21 /etc/apt/trusted.gpg.d/debian-archive-jessie-stable.gpg - ------------------------------------------------------- pub 4096R/518E17E1 2013-08-17 [verfällt: 2021-08-15] Schl.-Fingerabdruck = 75DD C3C4 A499 F1A1 8CB5 F3C8 CBF8 D6FD 518E 17E1 uid Jessie Stable Release Key <debian-release@lists.debian.org> /etc/apt/trusted.gpg.d/debian-archive-wheezy-automatic.gpg - ---------------------------------------------------------- pub 4096R/46925553 2012-04-27 [verfällt: 2020-04-25] Schl.-Fingerabdruck = A1BD 8E9D 78F7 FE5C 3E65 D8AF 8B48 AD62 4692 5553 uid Debian Archive Automatic Signing Key (7.0/wheezy) <ftpmaster@debian.org> /etc/apt/trusted.gpg.d/debian-archive-wheezy-stable.gpg - ------------------------------------------------------- pub 4096R/65FFB764 2012-05-08 [verfällt: 2019-05-07] Schl.-Fingerabdruck = ED6D 6527 1AAC F0FF 15D1 2303 6FB2 A1C2 65FF B764 uid Wheezy Stable Release Key <debian-release@lists.debian.org> #
Mit dem Aufruf apt-key export
Schlüssel geben Sie hingegen nur einen
bestimmten Schlüssel auf der Standardausgabe als als PGP-Block aus. Der
Schalter apt-key exportall
führt das gleiche für alle Schlüssel durch.
Mit apt-key add
Schlüsseldatei und apt-key del
Schlüssel-ID
verändern Sie den Inhalt des Schlüsselbundes. Mit ersterem fügen Sie
einen neuen Schlüssel aus einer Datei hinzu, mit letzterem löschen Sie
den Schlüssel mit der angegebenen Schlüssel-ID aus dem Schlüsselring.
Die Option update
synchronisiert hingegen den lokalen Schlüsselbund
mit dem Archivschlüsselbund. Dabei werden die Schlüssel aus dem lokalen
Schlüsselbund entfernt, die nicht mehr gültig sind. In Ubuntu ist auch
die Option net-update
anwendbar, die eine Synchronisation mit einem
Schlüsselbund über das Netzwerk ermöglicht.
Ab Debian 9 Stretch ist diese Option als veraltet markiert.
Nutzen Sie beispielsweise den Webbrowser Opera, finden Sie dazu keine
Pakete in den offiziellen Debian-Paketquellen. Opera ist nicht als freie
Software eingeordnet, aber als deb
-Paket von der Herstellerwebseite
beziehbar. Daher fügen Sie in Schritt eins die Paketquelle zur Datei
/etc/apt/sources.list
hinzu (siehe auch
Abschnitt 3.4, „Die Datei /etc/apt/sources.list
verstehen“):
deb http://deb.opera.com/opera stable non-free
Als Schritt zwei benötigen Sie noch den dazugehörigen Schlüssel der
Paketquelle. Der Hersteller empfiehlt auf seiner Seite den Bezug
mittels wget
wie folgt:
Bezug des Schlüssels zur Paketquelle, hier für Opera mittels wget
.
# wget http://deb.opera.com/archive.key --2014-06-17 23:54:43-- http://deb.opera.com/archive.key Auflösen des Hostnamen »deb.opera.com (deb.opera.com)«... 185.26.183.130 Verbindungsaufbau zu deb.opera.com (deb.opera.com)|185.26.183.130|:80... verbunden. HTTP-Anforderung gesendet, warte auf Antwort... 200 OK Länge: 2437 (2,4K) [application/pgp-keys] In »»archive.key«« speichern. 100%[=======================================================================>] 2.437 --.-K/s in 0s 2014-06-17 23:54:43 (63,0 MB/s) - »»archive.key«« gespeichert [2437/2437] #
Bitte beachten Sie, dass dieser Schlüssel jedoch nicht über gesicherte Kanäle (z.B. per HTTPS) heruntergeladen wurde und Sie damit nicht hundertprozentig sicher sein können, dass dieser Schlüssel wirklich von Opera ist. Leider scheint der Schlüssel auch nicht mit allzu vielen Signaturen ausgestattet zu sein, sodass eine Verifizierung über die Signaturen ebenfalls nicht möglich ist.
Der bezogene Schlüssel befindet sich nun im aktuellen Verzeichnis in der
lokalen Datei archive.key
. Diesen Schlüssel fügen Sie nun über den
Aufruf apt-key add archive.key
Ihrem lokalen Schlüsselbund hinzu:
Hinzufügen des bezogenen Schlüssels mittels apt-key
.
# apt-key add archive.key OK #
Hat alles geklappt, meldet sich apt-key
mit einem schlichten OK
zurück. Von nun an werden alle Pakete von dieser Paketquelle als
vertrauenswürdig eingestuft. Auch Aktualisierungen über APT und
aptitude
sind problemlos möglich.
Es bleibt jedoch ein unangenehmer Beigeschmack erhalten. Aufgrund der ungesicherten Übertragung des bezogenen Schlüssels können Sie nicht sicher sein, ob der bezogene Schlüssel wirklich von Opera ist und Sie ihm vertrauen können, oder ob nicht zufällig eine Man-in-the-Middle-Attacke im Gange ist.
Seit APT 2.1.8 ist apt-key
offiziell abgekündigt. Ersatz ist das
Ablegen von Keyring-Dateien im Verzeichnis /etc/apt/trusted.gpg.d/
,
z.B. als Bestandteil eines Paketes. Solche Pakete heißen
typischerweise <herausgeber>-archive-keyring
,
z.B. debian-archive-keyring
, ubuntu-archive-keyring
oder
pkg-mozilla-archive-keyring
.
Die Abkündigung von apt-key
ist auch einer der Gründe, warum sich
niemand mehr darum gekümmert hat, gui-apt-key
[Debian-Paket-gui-apt-key], das verwaiste GUI-Frontend zu apt-key
,
weiterzuentwickeln. Entsprechend ist auch die darauf aufbauende,
curses-basierende TUI-Programm curses-apt-key
[curses-apt-key]
nicht mehr weiterentwickelt wird.
[10] Da die Datei /etc/apt/trusted.gpg
teilweise für normale
User nicht lesbar ist, kann es sein, dass Sie dieses Kommando mit
Root-Rechten ausführen müssen.