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

No Trackbacks

Comments

Display comments as Linear | Threaded

No comments

Add Comment

BBCode format allowed
Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
To leave a comment you must approve it via e-mail, which will be sent to your address after submission.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA