ubuntuusers.de

Schlüsselverwaltung

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Pakete in Paketquellen werden mit einem Schlüssel kryptografisch signiert, um die Integrität der Pakete überprüfen zu können. Bisher wurden diese mit apt/apt-key verwaltet, was jedoch veraltet ist und seit Ubuntu 22.04 nicht mehr vollumfänglich unterstützt wird. Die Schlüssel wurden in der Datei /etc/apt/trusted.gpg bzw. in einzelnen Dateien unter /etc/apt/trusted.gpg.d/ abgelegt. Der Nachteil ist, dass jeder Schlüssel für jede Paketquelle gültig ist. Damit kann mit dem Schlüssel einer Fremdquelle auch ein Paket aus den offiziellen Paketquellen signiert und von apt erfolgreich verifiziert werden, obwohl es nicht vom ursprünglichen Autor signiert wurde. Problematisch wird dies ebenfalls, wenn ein Schlüssel kompromittiert wurde, da hierbei eine MITM-Attacke nicht erkannt werden kann, sofern ein Fremdschlüssel im System ist, für den der Angreifer den zugehörigen Privatschlüssel hat. Die neue Methode bietet jedoch keine Sicherheit gegen Fremdquellen, deren Autoren absichtlich Schaden am System anrichten wollen und daher schädliche Pakete in einer Fremdquelle bereitstellen, die das Opfer im System eingetragen hat.

Schön länger besteht die Möglichkeit, einer Paketquelle fest einen Schlüssel zuzuordnen, welche hier erläutert wird und die empfohlene Methode ist. Ab Ubuntu 22.04 funktioniert die veraltete Methode mit apt-key nicht mehr.

Schlüssel hinzufügen

Um einen Schlüssel dem System hinzuzufügen, ist daher folgende Vorgehensweise notwendig.

Binäre Schlüssel können direkt heruntergeladen werden. Beispiel:

sudo wget -nc -O /etc/apt/keyrings/example-archive-keyring.gpg https://example.org/public.key 

ASCII-verpackte Schlüssel (base64-kodiert) müssen erst mit root-Rechten an gpg weitergegeben werden, um sie zu dekodieren (dearmor genannt). Er wird dann zu einer OpenPGP-Binärdatei, welche nicht mehr als Text lesbar ist, und wird in /etc/apt/keyring/schluessel.gpg abgespeichert. Hierbei sollte ein sinnvoller Name gewählt werden, um den Schlüssel sinnvoll zuordnen zu können. Evtl. muss das unter Root nötige gpg-Verwaltungsverzeichnis noch manuell angelegt werden: sudo -H mkdir -p /root/.gnupg

curl https://example.org/public-key.asc | sudo -H gpg --dearmor -o /etc/apt/keyrings/example-archive-keyring.gpg 

Danach ist der Schlüssel im System vorhanden, wird aber noch nicht aktiv genutzt.

sources.list anpassen

Es muss die URL der Paketquelle (in /etc/apt/sources.list bzw. /etc/apt/sources.list.d/datei.list) eingetragen bzw. angepasst werden, sodass der passenden Schlüssel verwendet wird.

deb [signed-by=/etc/apt/keyrings/schluessel.gpg] http://example.org/linux/deb/ stable main

Der Teil signed-by in den eckigen Klammern ist dabei relevant und muss den Pfad zum Schlüssel beinhalten. Es können, müssen aber nicht, mehrere Optionen dort gelistet sein. Auch hier muss der Name angepasst werden.

Schlüssel löschen

Um einen Schlüssel zu löschen, genügt es, die entsprechende Datei unter /etc/apt/keyrings zu löschen.

Diese Revision wurde am 22. September 2022 12:39 von UlfZibis erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Installation, System, Paketverwaltung, Ubuntu