
Paketquelle auf Echtheit überprüfen
Basiswissen
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
[veroeffentlichungen]), als auch die Paketquellen (siehe
[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 [bezogenes-paket-verifizieren]).
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.
Schlüsselverwaltung mit apt-key
(Überblick)
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 ([debian-architekturen-ports-projekt].
Unterkommandos von apt-key
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
Auflistung der gespeicherten, vertrauenswürdigen Schlüssel).
Mit dem Aufruf apt-key finger
zeigen Sie zusätzlich deren
Fingerabdruck an (siehe Darstellung der Fingerabdrücke der vertrauenswürdigen Schlüssel). Mit apt-key export
Schlüssel
geben Sie 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.
Note
|
Ab Debian 9 'Stretch' ist diese Option als veraltet markiert. |
Beispiel: Ergänzung eines Schlüssels
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
[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:
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] #
Important
|
Unverschlüsselte Übertragung von Schlüsseln
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:
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.
Alternative Benutzerschnittstellen zur APT-Schlüsselverwaltung
Neben dem Kommandozeilenprogramm apt-key
existieren auch noch zwei
interaktive Bedienoberflächen dazu: das auf GTK aufbauende gui-apt-key
aus dem gleichnamigen Paket [Debian-Paket-gui-apt-key] und das auf
Ncurses aufbauende curses-apt-key
[curses-apt-key]. Beide besprechen
wir hier nur kurz.
gui-apt-key
starten Sie zunächst als Benutzer root
oder mittels
sudo
. Im Dialogfenster (Hauptfenster von gui-apt-key) sehen Sie die Inhaber und
das Ablaufdatum aller von APT als vertrauenswürdig eingestuften
GPG-Schlüssel. Über das Menü haben Sie die Möglichkeit, weitere
Schlüssel aus Dateien zu importieren, die Schlüssel gegen den
Debian-Archiv-Schlüsselring zu aktualisieren (analog zu apt-key
update
), einen Schlüssel aus der Liste zu löschen oder Details wie
einen Fingerabdruck zu einem Schlüssel anzeigen zu lassen.

curses-apt-key
nutzt dieselben Backend-Bibliotheken wie
gui-apt-key
. Daher bietet es die gleichen Funktionalitäten, braucht
jedoch dazu keine graphische Umgebung und eignet sich daher
insbesondere für die Nutzung auf Servern (siehe
curses-apt-key in einem xterm).

Derzeit ist curses-apt-key
noch nicht Bestandteil von Debian und nur
auf GitHub verfügbar [curses-apt-key]. Eine Aufnahme in Debian ist
jedoch geplant [curses-apt-key-itp].