Skip to content

Debian Archiv Signaturprüfung

Debian hat schon seit Ewigkeiten von der Prüfung von Paketsignaturen auf die Validierung von ganzen Archiven umgestellt. Das ist zum einen performanter weil nur die Signatur beim Update der Repodaten geprüft werden muss, und zum anderen prüft das die Zusammenstellung aller Versionen von Paketen im Gegensatz zur Gültigkeit einzelner Pakete, was ja für „Downgrade Angriffe“ verwundbar ist.

Es funktioniert so, dass APT eine InRelease Datei aus dem Repository holt, und diese Datei ist mit dem Archivschlüssel PGP signiert. Nach der Prüfung der Signatur gegen bekannte Debian Schlüssel wird dann anhand der darin enthaltenen Prüfsumme das Paketfile heruntergeladen (und die Püfsumme stellt sicher, dass es das erwartete File ist). Dieses wiederum enthält eine Liste aller Pakete mit deren Prüfsummen. Wird über diesen Weg ein Paket geladen, dann ist es implizit von der Archivsignatur abgedeckt,

In einem Docker Image von Debian werden die bekannten Debian Archivschlüssel ausgeliefert und als trusted konfiguriert. Ich wollte jetzt die Schlüssel der älteren Distributionen entfernen und habe das Verzeichnis /etc/apt/trusted-pgp.d/ geleert. Dieses enthält laut der man page die Schlüssel mit denen geprüft wird.

Ein schneller Test mit „apt update“ hat mich dann aber ernüchtert: die Release files des Repositories für bookworm, bookworm-updates und bookworm-security wurden anstandslos refreshed. Mit etwas rumsuchen hab ich dann im Image ein zweites Verzeichnis von keyrings gefunden, und tatsächlich wenn man diese entfernt schlägt der update fehl.

Es war dann aber eine kleine Abenteurreise in die Untiefen von APT config (und apt-key und apt-secure(8) die alle teilweise veraltet sind) bis ich dann feststellte es liegt an der ausgelieferten /etc/apt/sources.d/debian.sources, da dort nicht nur die Paketquellen für die 3 Komponenten konfiguriert sind, sondern auch der keyring der zur Signaturprüfung verwendet werden soll. Und der zeigt auf /usr/share/keyrings/debian-archive-keyrings.gpg, was wiederum eine Sammlung aller (auch alten) Archiv keys ist.

Man kann jetzt entweder die „Signed-By“ Zeilen entfernen und das trusted-pgp.d aufräumen, oder man spezifiziert nicht den sammel-keyring, sondern einen der nur für die aktuelle Distribution gilt (wird aber nicht ausgeliefert). Noch kleinlicher ist es dann den genauen keying pro Komponente. Die beiden Suites bookworm-updates und bookworm-security können aber nicht mit einem gemeinsamen key geprüft werden, müssen also in 2 Sektionen im File aufgeteilt werden. Das sieht dann so aus:

Types: deb
URIs: http://deb.debian.org/debian
Suites: stable
Components: main
Signed-By: /usr/share/keyrings/debian-archive-bookworm-stable.gpg

Types: deb
URIs: http://deb.debian.org/debian
Suites: stable-updates
Components: main
Signed-By: /usr/share/keyrings/debian-archive-bookworm-automatic.gpg

Types: deb
URIs: http://deb.debian.org/debian-security
Suites: stable-security
Components: main
Signed-By: /usr/share/keyrings/debian-archive-bookworm-security-automatic.gpg 

Ich hab das mal hier im Project das die £cripte betreut gemeldet.

Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Noch keine Kommentare

Kommentar schreiben

BBCode-Formatierung erlaubt
Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Um einen Kommentar hinterlassen zu können, erhalten Sie nach dem Kommentieren eine E-Mail mit Aktivierungslink an ihre angegebene Adresse.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA