Pakete überprüfen
Der Inhalt der Spiegel wird direkt oder indirekt mit PGP-Schlüsseln signiert. Beginnend an der "Wurzel" einer Debian-Distribution:
Release
, signiert mit einer getrennten Signatur in Release.gpg
, enthält die Hashes (MD5, SHA1, SHA256) aller Paketindizes und Installer-Hashes ( InRelease
kombiniert jetzt beide);
- der Paket - Indizes ( zB ,
binary-amd64
) enthält die Hashwerte (MD5 und SHA256) der Pakete.
Die Hashes und Signaturen werden von Tools überprüft, z. B. apt-get
von PGP-Schlüsseln, die auf dem System gespeichert sind (verwaltet von apt-key
). Solange das empfangende System einwandfrei ist, kann standardmäßig kein Paket aus den Debian-Archiven installiert werden, wenn es nicht (indirekt) vom Archiv-PGP-Schlüssel signiert wurde. Eindringlinge auf den Spiegeln könnten keine Binärdateien ersetzen, wenn sie nicht auch die Kontrolle über den entsprechenden PGP-Schlüssel hätten.
Spiegel steuern
Dies bedeutet, dass eine Kompromittierung des Archivs nicht ausreicht, um Endbenutzersysteme tatsächlich zu kompromittieren. Sie müssten auch einen PGP-Schlüssel kompromittieren, dem diese Systeme bereits vertrauen. (Eine Folge davon ist, dass das Hinzufügen eines Schlüssels zu einem Debian-System nicht leicht genommen werden sollte.) Damit wird Ihre erste Frage in gewissem Maße beantwortet, da die Sicherheit des Archivs nicht so wichtig ist. Trotzdem werden die kritischen Systeme (in denen das Signieren stattfindet) streng überwacht und überwacht, und nur sehr wenige Personen haben Zugriff darauf.
Maintainer Erwartungen
Etwas mehr Aufwand besteht darin, sicherzustellen, dass die Pakete "tatsächlich diejenigen sind, von denen die Betreuer glauben, dass sie sie sind". Dies ist der Weg, den ein Paket einschlägt:
- Das Paket wird von einem Betreuer vorbereitet und mit einem Schlüssel im Debian-Schlüsselring signiert ( dh einem Schlüssel eines hochladenden Debian-Entwicklers oder eines Debian-Betreuers, der auf den Debian-Schlüsselring-Server hochgeladen und vom Schlüsselring-Wartungsteam zusammengeführt wurde.)
- Das signierte Paket wird in das Archiv hochgeladen, wo es überprüft wird (unter anderem müssen sich die verwendeten Schlüssel im aktuellen Schlüsselring befinden und dürfen nicht abgelaufen sein, die Signaturen müssen gültig sein, und wenn das Paket von einem DM signiert wurde, muss dies der Fall sein DM muss über die entsprechenden Berechtigungen für das Paket verfügen.
- Alle hochgeladenen Binärdateien werden unverändert in das endgültige Archiv verschoben (ich vereinfache dies hier ein wenig, aber das ist der Effekt).
- Alle fehlenden Binärdateien werden von einem BuildD erstellt und vom PGP-Schlüssel des Buildd signiert und in das endgültige Archiv verschoben (das weiß, welche Buildd-Schlüssel gültig sind, und Dateien anhand dieser überprüft).
- Alle diese Aktualisierungen werden schließlich mit den entsprechenden Indexaktualisierungen (die wie oben beschrieben signiert sind) an das Spiegelnetzwerk gesendet.
Wenn der Betreuer Binärdateien zusammen mit der Paketquelle hochlädt, werden diese Dateien (vorerst) bereitgestellt. Da das Hochladen von Binärdateien jetzt optional ist, werden sie immer häufiger übersprungen, und schließlich werden hochgeladene Binärdateien gelöscht. (Dies war in Ubuntu schon immer der Fall.) Ob die anderen Binärdateien den Erwartungen des Betreuers entsprechen, hängt vom erstellten Netzwerk ab. Daher sind Buildds auch kritische Systeme, die unter strenger Aufsicht und mit wenig menschlichem Zugang stehen. Da alle Artefakte signiert sind, ist es immer möglich, die Integrität der Dateien zu überprüfen: zuerst anhand des Schlüssels des Betreuers, dann anhand der Schlüssel der Buildds und schließlich anhand des Schlüssels des Archivs.
Wie Plugwash hervorhebt , sind die ursprünglichen Signaturen auf den Spiegeln nicht verfügbar, und jede DD kann eine fehlende Binärdatei hochladen. Originalsignaturen können aus den Debian-Devel-Changes- Archiven abgerufen werden .
Zusammenfassend lässt sich sagen , dass das aktuelle System zwar nicht perfekt ist, jedoch eine Rückverfolgbarkeit für alle Dateien bietet, die Sie von den Spiegeln herunterladen können. Es gibt eine Reihe von Bemühungen, um die Situation zu verbessern: reproduzierbare Builds (die eine unabhängige Überprüfung der Korrespondenz von Binärdateien mit der veröffentlichten Quelle ermöglichen), Löschen von vom Betreuer bereitgestellten Binärdateien ...
apt-get
überprüfen Pakete mithilfe dieser lokalen vorab eingebetteten Schlüssel, weil sie ihnen vertrauen?debian-archive-keyring
Paket geliefert.apt-get
ÜberprüftRelease
Dateien mit diesen Schlüsseln und Pakete mit den in den DateienRelease
und enthaltenen HashesPackages
.