Signierte Updates, Module und Layouts

Die folgenden Erläuterungen sind analog auch auf Module und Layouts anwendbar.

Die Update-Funktion in Ilch2 wird es einfacher machen Ilch auf den aktuellen Stand zu halten.
Hierfür erkennt die Update-Funktion ob ein Update verfügbar ist, lädt dieses vom Ilch-Server herunter,
welches dann mit wenigen Mausklicks installiert wird.

Dabei möchte man sichergehen, dass das Update auch wirklich von den Ilch-Entwicklern kommt und nicht
zwischenzeitlich manipuliert wurde. Die Kryptographie bietet hier Lösungen.

Zu Beginn wird ein Schlüsselpaar generiert. Dieses Schlüsselpaar besteht aus dem öffentlichen und dem privaten
Schlüssel. Hier handelt es sich also um ein asymmetrisches Kryptosystem [1].
Der öffentliche Schlüssel wird in Form eines selbst signierten Zertifikats [2] mit weiteren Informationen wie z.B.
der Gültigkeitsdauer herausgegeben. Dieses Zertifikat liegt Ilch bei und ist z.B. 2 Jahre gültig.
Der private Schlüssel dagegen wird streng vertraulich behandelt. Ihn haben nur die Entwickler von Ilch, die später
auch selber Updates herausgeben dürfen. Der private Schlüssel wird zusätzlich mit einer Passphrase geschützt.

Signieren des Updates
Nachdem die Entwickler ein Update fertiggestellt haben, signieren sie es.
  1. Einen Hash/Fingerabdruck des Updates erstellen, welcher die Update-Datei eindeutig identifiziert.
  2. Der Hash/Fingerabdruck wird mit dem privaten Schlüssel der Entwickler verschlüsselt.

Die Entwickler haben nun das Update und einen verschlüsselten Fingerabdruck (ab jetzt Signatur genannt). Diese
beiden Dateien werden auf den Update-Server abgelegt und die Update-Funktion von Ilch wird diese herunterladen.

Verifizieren des Updates
Die Update-Funktion von Ilch hat erkannt, dass es ein neues Update gibt und hat dieses zusammen mit der Signatur
heruntergeladen. Bevor das Update nun installiert wird, wird überprüft ob das Update in Ordnung ist.
  1. Einen Hash/Fingerabdruck des Updates erstellen, welcher die Update-Datei eindeutig identifiziert.
  2. Die Signatur mit Hilfe des Zertifikats bzw. des öffentlichen Schlüssels entschlüsseln. Man hat nun
    wieder den unverschlüsselten Hash/Fingerabdruck.
  3. Die Fingerabdrücke werden verglichen. Es ist alles in Ordnung, wenn die beiden Fingerabdrücke gleich sind.

Übersicht

Aktualisieren des Zertifikats
Das Aktualisieren des Zertifikats ist dann nötig, wenn das Zertifikat bald abläuft, ein Entwickler mit privaten
Schlüssel das Team verlässt, die Gefahr besteht, dass der private Schlüssel in falsche Hände gelangt ist oder
bekannt wird, dass z.B. die Schlüssellänge nicht mehr ausreichend ist.
Es wird ein neues Zertifikat erstellt und anschließend ein Update herausgegeben, welches das neue Zertifikat enthält
und noch mit dem alten privaten Schlüssel signiert ist. Dieses Update wird noch mit dem alten Zertifikat verifiziert.
Das alte Zertifikat wird vom neuen Zertifikat ersetzt. Nachfolgende Updates werden dann mit dem privaten Schlüssel
des neuen Schlüsselpaares signiert und mit dem neuen Zertifikat verifiziert.

Handhabung von bereits abgelaufenen Zertifikaten
Dieser Fall sollte vermieden werden. Der Webmaster sollte dann von der offiziellen Ilch-Seite das aktuelle Zertifikat
herunterladen und sicherstellen, dass das heruntergeladene Zertifikat dem richtigen Zertifikat entspricht. Dies kann
er sich von anderen Webmastern oder Ilch-Entwicklern bestätigen lassen. Er muss dann das alte Zertifikat mit dem neuen
ersetzen.

[1] https://de.wikipedia.org/wiki/Asymmetrisches_Kryptosystem
[2] https://de.wikipedia.org/wiki/Digitales_Zertifikat

signieren.gif (22,688 KB) H., Matthias, 10.04.2017 09:08

Uebersicht.gif (51,073 KB) H., Matthias, 10.04.2017 09:08

verifizieren.gif (39,659 KB) H., Matthias, 10.04.2017 09:08