APT-SECURE(8)

NAME
apt-secure - Archivauthentifizierungsunterstützung für APT

BESCHREIBUNG

Beginnend mit Version 0.6 enthält APT Code, der die Signatur der Release-Datei für alle Depots prüft. Dies stellt sicher, dass Daten wie Pakete im Archiv nicht von Leuten geändert werden können, die keinen Zugriff auf den Signierschlüssel der Release-Datei haben. Beginnend mit Version 1.1 erfordert APT von Depots aktuelle Authentifizierungsinformationen für den ungestörten Gebrauch des Depots bereitzustellen. Seit Version 1.5 müssen Informationen, die in der Release-Datei über das Depot enthalten sind, bestätigt werden, bevor APT mit den Aktualisierungen aus diesem Depot fortfährt.

Hinweis: Alle APT-basierten Paketverwaltungsoberflächen wie apt-get(8), aptitude(8) und synaptic(8) unterstützen diese Authentifizierungsfunktionalität, daher verwendet diese Handbuchseite der Einfachheit halber exemplarisch für alle APT.

BENUTZERKONFIGURATION

Schlüssel sollten normalerweise innerhalb ihrer entsprechenden .sources aufgenommen werden, indem der ASCII-geschützte Schlüssel in der Option Signed-By eingebettet wird. Um dies zu erreichen, ersetzen Sie die leere Zeile durch einen Punkt und rücken Sie dann alle Zeilen mit zwei Leerzeichen ein. Siehe sources.list(5) für weitere Informationen.

Alternativ können Schlüssel in /etc/apt/keyrings für lokale Schlüssel oder /usr/share/keyrings für von Paketen verwaltete Schlüssel abgelegt werden, und dann durch die Option Signed-By: /etc/apt/keyrings/example-archive-keyring.asc in einer Datei .sources oder mittels deb [signed-by=/etc/apt/keyrings/example-archive-keyring.asc] ... im veralteten .list-Format referenziert werden. Dies ist für APT-Versionen vor 2.4 nützlich, die keine eingebetteten Schlüssel unterstützen. ASCII-geschützte Schlüssel müssen eine Erweiterung .asc und ungeschützte Schlüssel eine Erweiterung .gpg habe.

Um für APT geeignete Schlüssel mittels GnuPG zu erstellen, müssen Sie den Befehl gpg --export-options export-minimal [--armor] --export verwenden. Ältere Lösungen unter Nutzung von --keyring file --import funktionieren mit neuren GnuPG-Versionen nicht mehr, da diese ein neues internes Format (»GPG-Schlüsselbox-Datenbank«) verwenden.

Beachten Sie, dass eine Standardinstallation bereits alle Schlüssel zum sicheren Beschaffen von Paketen aus den Standarddepots enthält, daher ist das Verwalten von Schlüsseln nur nötig, wenn Drittanbieterdepots hinzugefügt werden. Das Paket extrepo kann zum leichten Verwalten mehrerer externer Depots verwandt werden.

NICHT SIGNIERTE DEPOTS

Falls ein Archiv eine nicht signierte oder überhaupt keine Release-Datei hat, werden alle aktuellen APT-Versionen das Herunterladen von Daten von dort standardmäßig in update-Aktionen verweigern. Sogar wenn Oberflächen wie apt-get(8) zum Herunterladen gezwungen werden, wird eine explizite Bestätigung benötigt, falls eine Installationsanfrage ein Paket aus einem derartigen nicht authentifizierten Archiv enthält.

Sie können erzwingen, dass alle APT-Clients nur Warnungen ausgeben, indem Sie die Konfigurationsoption Acquire::AllowInsecureRepositories auf true setzen. Über die sources.list(5)-Option allow-insecure=yes kann auch erlaubt werden, dass individuelle Depots unsicher sind. Beachten Sie, dass von unsicheren Depots eindringlich abgeraten wird und alle Optionen, die APT zwingen, sie weiterhin zu unterstützen, irgendwann entfernt werden. Benutzern steht auch die Option Trusted zur Verfügung, um sogar Warnungen auszuschalten, seien Sie sich aber sicher, dass Sie die in sources.list(5) erklärten Konsequenzen verstanden haben.

Ein Depot, das vorher authentifiziert war, diesen Status jedoch bei einer update-Aktion verlieren würde, gibt auf allen APT-Clients, ungeachtet der Option, die die Verwendung unsicherer Depots erlaubt oder verbietet, einen Fehler aus. Der Fehler kann durch zusätzliches Setzen von Acquire::AllowDowngradeToInsecureRepositories auf true oder für individuelle Depots mit der sources.list(5)-Option allow-downgrade-to-insecure=yes übergangen werden.

SIGNIERTE DEPOTS

Eine Kette des Vertrauens von einem APT-Archiv zum Endanwender wird durch verschiedene Schritte erreicht. apt-secure ist der letzte Schritt in dieser Kette. Einem Archiv zu vertrauen bedeutet nicht, dass Sie vertrauen, dass das Paket keinen schadhaften Code enthält, aber es bedeutet, dass Sie dem Archivbetreuer vertrauen. Der Archivbetreuer ist dafür verantwortlich, dass er die Korrektheit der Integrität des Archivs aufrechterhält.

apt-secure überprüft keine Signaturen auf einer Stufe der Pakete. Falls Sie ein Werkzeug benötigen, das dies tut, sollten Sie einen Blick auf debsig-verify und debsign werfen (bereitgestellt von den Paketen debsig-verify beziehungsweise devscripts).

Die Kette des Vertrauens in Debian beginnt (z.B.), wenn ein Betreuer ein neues Paket oder eine neue Version eines Pakets in das Debian-Archiv hochlädt. Damit es in Kraft tritt muss dieses Hochladen mit einem Schlüssel signiert werden, der sich in einem der Schlüsselbunde der Debian-Betreuer befindet (verfügbar im Paket »debian-keyring«). Betreuerschlüssel werden von anderen Betreuern gemäß vorbestimmter Regeln signiert, um die Identität des Schlüsselinhabers sicherzustellen. Ähnliche Abläufe existieren in allen Debian-basierten Distributionen.

Sobald das hochgeladene Paket überprüft und dem Archiv hinzugefügt wurde, wird die Betreuersignatur entfernt, Prüfsummen des Pakets werden berechnet und in die Datei Packages abgelegt. Die Prüfsummen aller Packages-Dateien werden berechnet und in der Release-Datei abgelegt. Dann wird die Release-Datei durch den Archivschlüssel für diese Ubuntu-Veröffentlichung signiert und zusammen mit den Paketen und Packages-Dateien auf Ubuntu-Spiegel verteilt. Die Schlüssel sind im Ubuntu-Archivschlüsselbund im Paket ubuntu-keyring verfügbar.

Endanwender können die Signatur der Release-Datei prüfen, die Prüfsumme eines Paketes daraus entpacken und mit der Prüfsumme des Pakets vergleichen, das sie manuell heruntergeladen haben – oder sich darauf verlassen, dass APT dies automatisch tut.

Beachten Sie, dass sich dies vom Prüfen gvonn Signaturen auf Paketbasis unterscheidet. Es wurde entworfen, um zwei mögliche Angriffe zu verhindern:

    • »Man-in-the-middle«-Netzwerkangriffe. Ohne Signaturprüfung kann ein schädlicher Mittelsmann sich selbst in das Herunterladen von Paketen einbringen und Schadsoftware bereitstellen. Dies kann entweder durch Steuerung eines Netzwerkelements (Router, Switch, usw.) oder durch Umleiten des Netzverkehrs zu einem bösartigen Server (durch ARP- oder DNS-Manipulationsangriffe) erfolgen.

    • Spiegelnetzwerk-Gefährdung. Ohne Signaturprüfung kann ein schädlicher Mittelsmann einen Spiegelserver kompromittieren und die Dateien darauf verändern, um schädliche Software an alle Benutzer zu verbreiten, die Pakete von diesem Rechner herunterladen.

Es schützt jedoch nicht gegen eine Kompromittierung des Hauptservers selbst (der die Pakete signiert) oder gegen eine Kompromittierung des Schlüssels, der zum Signieren der Release-Dateien benutzt wird. In jedem Fall kann dieser Mechanismus eine paketbasierte Signatur ergänzen.

INFORMATIONSÄNDERUNGEN

Eine Release-Datei enthält neben der Prüfsumme für die Dateien in dem Depot auch allgemeine Informationen über das Depot wie die Herkunft, den Codenamen oder die Versionsnummer der Veröffentlichung.

Diese Informationen werden an verschiedenen Stellen angezeigt, daher sollte ein Depot-Besitzer immer die Richtigkeit sicherstellen können. Desweiteren kann weitere Benutzerkonfiguration wie apt_preferences(5) kann von diesen Informationen abhängen und sie benutzen. Seit Version 1.5 muss der Benutzer daher Änderungen explizit bestätigen, um erkennen zu lassen, dass er ausreichend darauf vorbereitet ist, z.B. auf das neue Major Release der Distribution, das im Depot ausgeliefert wird (z.B. durch den Codenamen angegeben).

DEPOTKONFIGURATION

Wenn Sie Archivsignaturen in einem von Ihnen betreuten Archiv zur Verfügung stellen möchten, müssen Sie:

    • Eine Release-Datei der obersten Stufe erzeugen, wenn sie nicht bereits existiert. Sie können dies erledigen, indem Sie apt-ftparchive release (aus apt-utils) ausführen.

    • Sie signieren. Sie können dies tun, indem Sie gpg --clearsign -o InRelease Release und gpg -abs -o Release.gpg Release ausführen.

    • Den Schlüsselfingerabdruck veröffentlichen, damit Ihre Benutzer wissen, welchen Schlüssel sie importieren müssen, um die Dateien im Archiv zu authentifizieren. Am besten liefern Sie Ihren Schlüssel in einem eigenen Paket aus, wie dies Ubuntu mit ubuntu-keyring macht, um später automatisch Aktualisierungen und Schlüsselwechsel durchführen zu können.

    • Anweisungen geben, wie Ihr Archiv und Ihr Schlüssel hinzugefügt werden können. Falls Ihre Benutzer Ihren Schlüssel nicht auf sichere Weise beschaffen können, ist die oben beschriebene Kette des Vertrauens unterbrochen. Wie Sie Benutzern helfen können, Ihren Schlüssel hinzuzufügen, hängt von Ihrem Archiv und Ihrer Zielgruppe ab und reicht von der Bereitstellung des Schlüsselrings als Teil eines anderen Archivs, das bei Ihren Benutzern bereits konfiguriert ist (wie den Standarddepots ihrer Distribution), bis hin zum Nutzen des Vertrauensnetzes.

Immer wenn sich die Inhalte des Archivs ändern (neue Pakete hinzugefügt oder entfernt werden), muss der Archivbetreuer den zwei ersten der oben skizzierten Schritten folgen.

SIEHE AUCH

apt.conf(5), apt-get(8), sources.list(5), apt-ftparchive(1), debsign(1), debsig-verify(1), gpg(1)

Um weitere Hintergrundinformationen zu erhalten, können Sie das Kapitel Die Infrastruktur für Sicherheit in Debian[1] des Handbuchs »Anleitung zum Absichern von Debian« (auch im Paket harden-doc verfügbar) und das Strong Distribution HOWTO[2] von V. Alex Brennen lesen.

FEHLER

APT-Fehlerseite[3]. Wenn Sie einen Fehler in APT berichten möchten, lesen Sie bitte /usr/share/doc/debian/bug-reporting.txt oder den reportbug(1)-Befehl. Verfassen Sie Fehlerberichte bitte auf Englisch.

AUTOR

APT wurde vom APT-Team geschrieben <apt@packages.debian.org>.

AUTOREN DER HANDBUCHSEITE

Diese Handbuchseite basiert auf der Arbeit von Javier Fernández-Sanguino Peña, Isaac Jones, Colin Walters, Florian Weimer und Michael Vogt.

ÜBERSETZUNG

Die deutsche Übersetzung wurde 2009ff. von Chris Leick <c.leick@vollbio.de> sowie 2025 von Helge Kreutzmann <debian@helgefjell.de> in Zusammenarbeit mit dem deutschen l10n-Team von Debian <debian-l10n-german@lists.debian.org> angefertigt.

Beachten Sie, dass diese Übersetzung Teile enthalten kann, die nicht übersetzt wurden. Dies ist so, damit kein Inhalt verloren geht, wenn die Übersetzung hinter dem Originalinhalt hinterherhängt.

AUTOREN

Jason Gunthorpe

APT-Team

FUßNOTEN

1.  Die Infrastruktur für Sicherheit in Debian
    https://www.debian.org/doc/manuals/securing-debian-manual/ch07

2.  Strong Distribution HOWTO
    http://www.cryptnet.net/fdp/crypto/strong_distro.html

3.  APT-Fehlerseite
    https://bugs.debian.org/src:apt