Libzypp/Metadatensignatur

aus openSUSE, der freien Wissensdatenbank

Metadatensignaturmodell

Duncan Mac-Vicar Prett

Bild:Repodaten-Signaturmodell.png

Das Modell arbeitet wie folgt.

Ein Paket hat seine Prüfsumme. Die Metadaten die diese Datei aufweisen listen auch seine Prüfsumme auf. Alle anderen Metadaten die auf eine Metadatendatei verweisen führen ebenfalls die Prüfsumme der Datei. Es ist unmöglich, die Prüfsumme des Pakets in einer Metadatendatei zu ändern, ohne auch die Prüfsumme der Metadatendatei anzupassen welche die Prüfsumme des Pakets enthält.

So wird eine Kette aus Prüfsummen bis hinauf zum Hauptindex erstellt. Der Hauptindex enthält die Prüfsummen der nächsten Metadatendateien in der Kette.

Der Hauptindex ist mit einem privaten Schlüssel signiert. Die Signatur und der öffentliche Schlüssel werden im Paketdepot zur Verfügung gestellt.

Wenn Sie versuchen, den Hauptindex zu ändern verletzen Sie die Signatur.

Der öffentliche Schlüssel ist nicht unbedingt notwendig. Sie brauchen ihn jedoch, um zu prüfen, ob die Signatur des Hauptindex mit diesem Schlüssel erstellt wurde.

Das SUSE-Modell verwendet RPM-Schlüssellisten als Liste vertrauenswürdiger Schlüssel. Wenn der Paketverwalter gestartet wird, werden alle RPM-Schlüssel in einen auf die Programmlaufzeit begrenzten temporären Ring vertrauenswürdiger Schlüssel importiert. Alle Schlüssel die aus einem Paketdepot eingelesen werden, werden im ebenfalls auf die Programmlaufzeit begrenzten temporären Ring nicht vertrauenswürdiger Schlüssel platziert (falls sie sich nicht schon im Ring vertrauenswürdiger Schlüssel befinden).

Es folgt der folgende Arbeitsablauf:


Bild:Signatur-Arbeitsablauf.png