Signieren und Verschlüsseln von Update-Paketen
  • 29 Aug 2024
  • pdf

Signieren und Verschlüsseln von Update-Paketen

  • pdf

Artikel-Zusammenfassung

Mit Hilfe von Update-Paketen können verschiedene Dateien wie Firmware-Dateien, Profile, Konfigurationen oder Container auf die Router von INSYS icom geladen werden. Zur Sicherstellung der Integrität dieser Pakete ist es möglich, den Router so zu konfigurieren, dass er nur noch Update-Pakete akzeptiert, die mit Ihrer eigenen PKI (Public-Key-Infrastruktur) signiert oder verschlüsselt und signiert wurden.

Situation

Für eine sicherheitskritische Anwendung ist es notwendig, dass Update-Pakete für den Router verschlüsselt und signiert werden. Damit soll verhindert werden, dass kompromittierte Update-Pakete auf den Router geladen werden können.

Lösung

Im Folgenden wird beschrieben, wie Sie die zur Verschlüsselung und Signierung erforderlichen Zertifikate erstellen, wie Sie den Router für die Validierung und Entschlüsselung der Update-Pakete konfigurieren und wie Sie die Update-Pakete entsprechend verschlüsseln und signieren.

Wie Sie eigene Update-Pakete erstellen, erfahren Sie in diesem Configuration Guide.

Es ist erforderlich, dass Sie das Tool XCA heruntergeladen und auf Ihrem Computer installiert haben. Mit der Installation von XCA wird auch das OpenSSL-Paket auf Ihrem Computer installiert.

Achtung, Linux-Benutzer!

Verschiedene Linux-Distributionen haben XCA in ihrer Paketverwaltung enthalten. Unter Ubuntu kann XCA beispielsweise wie folgt einfach installiert werden:
sudo apt-get install xca

Es ist auch erforderlich, dass Uhrzeit und Datum im PC korrekt sind.

Bitte beachten Sie!

Zertifikate haben ein Gültigkeitsdatum. Eine falsche Systemzeit (Uhrzeit und Datum) sind häufige Fehlerquellen. Achten Sie deshalb auf die korrekte Systemzeit im PC bei der Erstellung der Zertifikatsstruktur.

Erstellen der Zertifikate

Vor dem Erzeugen der Zertifikatsstruktur muss zuerst eine Datenbank erzeugt werden.

  1. Öffnen Sie zum Erzeugen einer Datenbank XCA und wählen Sie DateiNeue Datenbank.

  2. Geben Sie einen Dateinamen ein und geben Sie ein geeignetes Verzeichnis für die XCA-Datenbank an.

  3. Geben Sie zweimal ein Passwort ein und klicken Sie auf OK, um die Datenbank zu erzeugen.

    Schützen Sie Ihre PKI-Datenbank!

    Es wird dringend empfohlen, ein Passwort anzugeben. Dieses Passwort gut merken. Es wird jedes Mal benötigt, wenn die Datenbank dieses CA-Projekts geöffnet wird.

Erstellen eines CA-Zertifikats und Schlüssels

  1. Wechseln Sie zum Erzeugen eines CA-Zertifikats und Schlüssels auf die Registerkarte Zertifikate und klicken Sie auf Neues Zertifikat.

  2. Wählen Sie die CA-Vorlage [default] CA unter Vorlage für das neue Zertifikat aus.

  3. Klicken Sie auf Erweiterungen übernehmen, um die Erweiterungen aus der Vorlage für das CA-Zertifikat zu übernehmen.

  4. Wechseln Sie auf die Registerkarte Erweiterungen, legen Sie wenn erforderlich den Gültigkeitszeitraum des Zertifikats durch Angabe einer Zeitspanne fest und klicken sie auf OK.

  5. Wechseln Sie auf die Registerkarte Inhaber, geben Sie einen geeigneten commonName an und weisen Sie diesen auch als Interner Name zu.

  6. Füllen Sie die verbleibenden Felder im Abschnitt Distinguished name entsprechend aus.

  7. Klicken Sie auf Erstelle einen neuen Schlüssel.

  8. Verwenden Sie vorzugsweise den commonName auch als Name und klicken Sie auf Erstellen.

  9. Bestätigen Sie die Erstellung des Schlüssels mit OK.

  10. Klicken Sie auf OK und bestätigen Sie erneut mit OK, um die Erstellung des CA-Zertifikats abzuschließen.

Erstellen des Zertifikats und Schlüssels zum Signieren/Validieren

  1. Wechseln Sie zum Erzeugen des Zertifikats und Schlüssels auf die Registerkarte Zertifikate und klicken Sie auf Neues Zertifikat.

  2. Markieren Sie im Abschnitt Unterschreiben die Option Verwende dieses Zertifikat zum Unterschreiben und wählen Sie das oben erzeugte CA-Zertifikat aus.

  3. Wählen Sie die Vorlage [default] HTTPS_client unter Vorlage für das neue Zertifikat aus.

  4. Klicken Sie auf Erweiterungen übernehmen, um die Erweiterungen aus der Vorlage für das Zertifikat zu übernehmen.

  5. Wechseln Sie auf die Registerkarte Erweiterungen, legen Sie wenn erforderlich den Gültigkeitszeitraum des Zertifikats durch Angabe einer Zeitspanne fest und klicken Sie auf OK.

  6. Wechseln Sie auf die Registerkarte Schlüsselverwendung, markieren Sie den Eintrag Digital Signature und entfernen Sie die Markierungen aller anderen Einträge.

  7. Wechseln Sie auf die Registerkarte Inhaber, geben Sie den commonName mit trust an und weisen Sie diesen auch als Interner Name zu.

  8. Klicken Sie auf Erstelle einen neuen Schlüssel.

  9. Verwenden Sie den commonName trust auch als Name und klicken Sie auf Erstellen.

  10. Bestätigen Sie die Erstellung des Schlüssels mit OK.

  11. Klicken Sie auf OK und bestätigen Sie erneut mit OK, um die Erstellung des Zertifikats abzuschließen.

Erstellen des Zertifikats und Schlüssels zum Verschlüsseln/Entschlüsseln

  1. Wechseln Sie zum Erzeugen des Zertifikats und Schlüssels auf die Registerkarte Zertifikate und klicken Sie auf Neues Zertifikat.

  2. Markieren Sie im Abschnitt Unterschreiben die Option Verwende dieses Zertifikat zum Unterschreiben und wählen Sie das oben erzeugte CA-Zertifikat aus.

  3. Wählen Sie die Vorlage [default] HTTPS_client unter Vorlage für das neue Zertifikat aus.

  4. Klicken Sie auf Erweiterungen übernehmen, um die Erweiterungen aus der Vorlage für das Zertifikat zu übernehmen.

  5. Wechseln Sie auf die Registerkarte Erweiterungen, legen Sie wenn erforderlich den Gültigkeitszeitraum des Zertifikats durch Angabe einer Zeitspanne fest und klicken Sie auf OK.

  6. Wechseln Sie auf die Registerkarte Schlüsselverwendung, markieren Sie den Eintrag Data Encipherment und entfernen Sie die Markierungen aller anderen Einträge.

  7. Wechseln Sie auf die Registerkarte Inhaber, geben Sie den commonName mit crypt an weisen Sie diesen auch als Interner Name zu.

  8. Klicken Sie auf Erstelle einen neuen Schlüssel.

  9. Verwenden Sie den commonName crypt auch als Name und klicken Sie auf Erstellen.

  10. Bestätigen Sie die Erstellung des Schlüssels mit OK.

  11. Klicken Sie auf OK  bestätigen Sie und erneut mit OK, um die Erstellung des Zertifikats abzuschließen.

Exportieren der Zertifikate und Schlüssel

Die mit XCA erzeugten Zertifikate und Schlüssel werden in der entsprechenden XCA-Datenbank aufbewahrt. Um die Zertifikate und Schlüssel auf den Router hochladen und die Update-Pakete signieren/verschlüsseln zu können, müssen diese exportiert werden. XCA bietet für den Export verschiedene Dateiformate an. Hier wird der Export in das Dateiformat PEM beschrieben, das für alle INSYS-Router geeignet ist.

Achten Sie auf Sicherheit!

Exportieren Sie niemals den privaten Schlüssel der CA, da dieser essentiell für die Sicherheit der Zertifikate ist.

  1. Wechseln Sie zum Export des CA-Zertifikats auf die Registerkarte Zertifikate, markieren Sie das CA-Zertifikat in der Übersicht und klicken Sie auf Export.

  2. Legen Sie im Fenster Zertifikatsexport einen Pfad und Dateinamen fest, wählen Sie PEM als Exportformat aus und klicken Sie auf OK.

  3. Wechseln Sie zum Export des Signier-Zertifikats auf die Registerkarte Zertifikate wechseln, markieren Sie das Zertifikat trust in der Übersicht und klicken Sie auf Export.

  4. Legen sie im Fenster Zertifikatsexport einen Pfad und Dateinamen, wählen Sie PEM als Exportformat aus und klicken Sie auf OK.

  5. Wechseln Sie zum Export des Verschlüsselungs-Zertifikats auf die Registerkarte Zertifikate wechseln, markieren Sie das Zertifikat crypt in der Übersicht und klicken Sie auf Export.

  6. Legen Sie im Fenster Zertifikatsexport einen Pfad und Dateinamen, wählen Sie PEM als Exportformat aus und klicken Sie auf OK.

  7. Wechseln Sie zum Export des Signier-Schlüssels auf die Registerkarte Private Schlüssel wechseln, markieren Sie den Schlüssel trust in der Übersicht und klicken Sie auf Export.

  8. Legen Sie im Fenster Privaten Schlüssel exportieren einen Pfad und Dateinamen fest, wählen Sie PEM als Exportformat aus und klicken Sie auf OK.

  9. Wechseln Sie zum Export des Verschlüsselungs-Schlüssels auf die Registerkarte Private Schlüssel wechseln, markieren Sie den Schlüssel crypt und klicken Sie auf Export.

  10. Legen Sie im Fenster Privaten Schlüssel exportieren einen Pfad und Dateinamen fest, wählen Sie PEM als Exportformat aus und klicken Sie auf OK.

Verschlüsseln und Signieren der Update-Pakete

Sämtliche Update-Pakete können signiert oder verschlüsselt und signiert werden. Im Folgenden wird beschrieben, wie ein Update-Paket verschlüsselt und signiert wird. Die Eingabe der OpenSSL-Befehle erfolgt in einer Shell über die Kommandozeile.

Für folgende Vorgehensweise wird vorausgesetzt, dass sich das zu verschlüsselnde und signierende Update-Paket zusammen mit den oben erzeugten Zertifikaten und Schlüsseln in einem Verzeichnis liegt.
Folgende Befehle basieren auf diesen Namenskonventionen:

  • upacket.tar: Dateiname des zu signierenden/verschlüsselnden Update-Pakets

  • upacket.tar.enc: Dateiname des verschlüsselten Update-Pakets

  • upacket.tar.enc.sign: Dateiname des verschlüsselten und signierten Update-Pakets

  • crypt.crt: Zertifikat für die Verschlüsselung des Pakets

  • crypt.pem: Privater Schlüssel für die Verschlüsselung des Pakets

  • trust.crt: Zertifikat für die Signierung des Pakets

  • trust.pem: Privater Schlüssel für die Signierung des Pakets

Folgende Vorgehensweise erstellt das verschlüsselte und signierte Update-Paket upacket.tar.enc.sign:

  1. Öffnen Sie eine Shell auf Ihrem Rechner (Windows Powershell oder Linux-Terminal).

  2. Navigieren Sie in der Shell zum Verzeichnis mit dem Update-Paket und den Zertifikaten und Schlüsseln.

  3. Verschlüsseln Sie das Update-Paket mit dem Befehl:
    openssl cms -encrypt -aes-256-cbc -in upacket.tar -binary -outform DER -out upacket.tar.enc crypt.crt

  4. Signieren Sie das verschlüsselte Update-Paket mit dem Befehl:
    openssl cms -sign -nocerts -md sha256 -in upacket.tar.enc  -nodetach -binary -signer trust.crt -inkey trust.pem -out  upacket.tar.enc.sign -outform DER

Konfigurieren des Routers

  1. Öffnen Sie die Bedienoberfläche des Routers: https://insys.icom

  2. Klicken Sie im Menü AdministrationZertifikate auf und laden Sie das oben erzeugte CA-Zertifikat auf den Router.

  3. Klicken Sie auf SPEICHERN.

  4. Klicken Sie im Menü AdministrationZertifikate auf und laden Sie das oben erzeugte Signier-Zertifikat trust.crt auf den Router.

  5. Klicken Sie auf SPEICHERN.

  6. Klicken Sie im Menü AdministrationZertifikate auf und laden Sie das oben erzeugte Verschlüsselungs-Zertifikat crypt.crt auf den Router.

  7. Klicken Sie auf SPEICHERN.

  8. Klicken Sie im Menü AdministrationZertifikate auf und laden Sie den oben erzeugten Verschlüsselungs-Schlüssel crypt.pem auf den Router.

  9. Klicken Sie auf SPEICHERN.

  10. Aktivieren Sie im Menü AdministrationAutomatisches Update im Abschnitt Nur signierte Update-Pakete erlauben den Schalter Funktionalität freischalten und lesen Sie den Hinweis dazu.

  11. Klicken Sie auf SIGNATUREPRÜFUNG AKTIVIEREN .

  12. Klicken Sie auf PROFIL AKTIVIEREN .

Hochladen des Update-Pakets auf den Router

Bitte beachten Sie!

Je nach Art des Update-Pakets (z. B. Firmware, Konfiguration oder Container) muss das Paket auf unterschiedlichen Seiten hochgeladen werden. Folgendes Beispiel zeigt das Hochladen eines Firmware-Pakets auf der Firmware-Seite.

  1. Klicken Sie im Menü AdministrationFirmware auf und laden Sie das verschlüsselte und signierte Update-Paket (hier packet.tar.enc.sign) auf den Router.

  2. Klicken Sie auf SPEICHERN.

Das verschlüsselte und signierte Update-Paket wird validiert und dann entschlüsselt und hochgeladen.

Erfolgskontrolle

Nach erfolgreichem Hochladen erscheinen auf der jeweiligen Seite die hochgeladenen Inhalte des Update-Pakets. Im Fehlerfall wird eine Fehlermeldung ausgegeben.

Fehlersuche

  • Prüfen Sie das Systemdatum des Rechners, um sicherzustellen, dass die  Zertifikate mit dem aktuellen Datum erstellt werden; ansonsten kann es  sein, dass sie ungültig sind.


War dieser Artikel hilfreich?