AS4 Cryptography CSR Dokumentation

Dieser Service ist ein innovativer Service, der sich auf die Erstellung und Verwaltung von Key-Pairs und Zertifikaten spezialisiert hat. Die Kommunikation mit dem Service erfolgt bequem über eine REST-Schnittstelle, welche die Anfragen der Nutzer erhält und bearbeitet.

AEP AS4 - Environment Setup

  • Komponenten und Installation:

Die für das AS4-Kryptographiesystem benötigten Komponenten sind wie folgt:

  • HSM-Simulator

  • FSS:
    1. Benutzeroberfläche (UI)
    2. Back-End-API
    3. Postgres-Datenbank
    4. Keycloak
  • CSR-Service

Zusätzliche Tools

Um in der HSM ein öffentliches/privates Schlüsselpaar generieren zu können, werden einige zusätzliche Tools benötigt.

  1. CryptoServer Administration Tool (CAT) Nach dem Herunterladen des Verzeichnisses kopieren Sie auch die folgende Datei in das Stammverzeichnis:

    https://arvato-systems-group.atlassian.net/wiki/spaces/MaKo/pages/183698204/AEP+AS4+-+Environment+Setup

    Dieses Tool wird benötigt, um Slots auf dem HSM-Simulator zu erstellen.

  2. KeyCat: Es kann über den folgenden Link heruntergeladen werden:

    https://bertelsmann.sharepoint.com/sites/bportal_team_nli_1702/SmartEnergy/GWA/HSM/Utimaco/SecurityServerEvaluation-V4.21.0.3/Software/Windows/x86-64/Crypto_APIs/CXI_Java/bin/KeyCat.jar?csf=1

    Verwenden Sie dieses Tool, um alle Schlüsselpaare auf dem HSM Simulator aufzulisten. Die oben genannten Tools können durch Ausführen ihrer jeweiligen JAR-Dateien gestartet werden, indem Sie Folgendes ausführen: java -jar {tool.jar}

HSM Slot Setup

  • Nach dem Starten des HSM-Containers wird der HSM auf localhost: 3001 ausgeführt.
  • Führen Sie nun das CryptoServer Administration Tool (CAT) aus. Das CAT-Tool versucht standardmäßig, eine Verbindung zur HSM-Instanz auf Port 3001 herzustellen.
  • Bevor ein Schlüsselpaar generiert werden kann, muss ein Slot eingerichtet werden.
  • Die Anleitung zur Erstellung der Slots finden Sie hier: https://arvato-systems-group.atlassian.net/wiki/spaces/MBSE/pages/103856876
  • Sobald der Slot erstellt wurde, notieren Sie sich die Benutzer-PIN, da diese später benötigt wird. Um dies zu überprüfen, melden Sie sich mit “Login User” an und geben Sie die Benutzer-PIN ein. Eine erfolgreiche Anmeldung sieht wie folgt aus:

    AS4 System

Erzeugen von Schlüsselpaar auf HSM.

Um AS4 Cryptography CSR optimal zu nutzen, stellen Sie bitte sicher, dass alle folgenden Voraussetzungen erfüllt sind:

  1. Laufende HSM-Simulator-Instanz
  2. Slot konfiguriert mit CAT-Tool
  3. Laufende FSS-Anwendung (mit von Hibernate erstellten Tabellen)
  4. KeyCat-Tool zur Ansicht des Schlüsselpaars.

FSS Tabelleneinträge

Beachten Sie, dass diese Einträge entweder manuell vorgenommen oder über bereitgestellte API-Endpunkte erledigt werden können. Die FSS-API kann unter http://localhost:2222/fss/api/v1 aufgerufen werden.

Folgende Einträge sind für die Schlüsselpaar-Generierung auf dem HSM erforderlich:

  • Client-Eintrag
  • HSM-Eintrag
  • Slot-Eintrag

Für Mail/AS2 und AS4 Verarbeitung sind unterschiedliche FSS Clients zu nutzen. Somit müssen für AS4 neue Clients angelegt werden. Es wird empfohlen, je Mandanten-ILN einen AS4 Client anzulegen. Weiterhin wird empfohlen, einen zusätzlichen AS4 Client für alle Partnerzertifikate anzulegen.

Beispiele:

  • In Client-Tabelle:

AS4 System

http://localhost:2222/fss/api/v1/clients

POST - Request body example:

{
    "name": "testClient",
    "description": "testClient"
}

Hinweis: Beim ersten API-Aufruf kann es zu einer Fehlermeldung kommen, da ein Datensatz mit id=1 in der Client Tabelle vorhanden ist. Führen Sie den Api-Aufruf erneut aus.

  • In HSM-Tabelle:

AS4 System

[http://localhost:2222/fss/api/v1/clients](http://localhost:2222/fss/api/v1/hsms)

POST - Request body example:

{
    "hsm": {
        "name": "local simulator",
        "deviceAddress": "3001@hsm"
    }
}

device address: {port}:{address}

  • In Slot-Tabelle:

AS4 System

http://localhost:2222/fss/api/v1/slots

POST - Request body example:

{
    "slot": {
        "name": "SLOT_0000",
        "username": "USR_0000",
        "password": "xxxxxxxxxxxx",
        "hsm": {
            "id": 1,
            "name": "local simulator",
            "deviceAddress": "3001@hsm"   
        },
        "client": {
            "id": "2",
            "name": "testClient"
        }
    }
}

Basierend auf den obigen Einträgen hat die FSS-Anwendung genügend Informationen, um die HSM-Instanz für den Client zu lokalisieren und herauszufinden, welcher Slot dem Client gehört. Der Client wird in der Anfrage für die Schlüsselpaar-Generierung übergeben. Nach einem erfolgreichen API-Aufruf sollte das Schlüsselpaar im entsprechenden Slot erstellt werden.

Schlüsselpaar-Generierung über den CSR-Dienst:

Starten Sie den CSR-Dienst, der auf Port 3333 läuft. Stellen Sie sicher, dass auch eine lokale Instanz von FSS (as4-crypto-branch) mit HSM, Client und Slot in der Backend-Konfiguration läuft (siehe Abschnitt “Tabelleneinträge”).

  • Die Anfrage (Request) erfolgt über die folgende URL:

    http://localhost:3333/api/v1/generate/keyPair

  • Beispiel von POST-Request-Body:

 {
     "storedOnHsm": true,
     "client": {
        "name": "testClient"
      },
    "alias": AS4-PILOT-ENC,
    "algorithm": "ECDSA",
    "ellipticCurve": "brainpoolp256r1",
    "validFrom": "2000-01-01",
    "validTo": "2030-01-01"
}

Schlüsselpaar mit dem KeyCat-Tool anzeigen:

Starten Sie die KeyCat.jar.

Wenn die HSM-Instanz läuft und der Slot korrekt konfiguriert ist, sollte Folgendes zu sehen sein:

AS4 System

Melden Sie sich beim SLOT_0000 mit dem Benutzer USR_0000 an. Wenn ein Schlüssel erfolgreich generiert wurde, sollte der Bildschirm wie folgt aussehen:

AS4 System

Generieren von CSR (Certificate Signing Request)

Ein Satz (Set) von öffentlichen/privaten Schlüsselpaaren muss im Voraus im HSM erstellt werden. Beachten Sie den öffentlichen Schlüssel im Base64-Format sowie die Details des privaten Schlüssels.

  • Die Anfrage (Request) erfolgt über die folgende URL: http://localhost:3333/api/v1/generate/csr

  • Beispiel von POST-Request-Body:

{
    "purpose": "ENC",
    "privateKey": {
        "alias": "AS4-PILOT-ENC",
        "clientName": "testClient",
        "algorithm": "ECDSA"
    },
    "publicKey": ""
}

Das Feld “purpose” kann die folgenden Werte annehmen:

  • ENC
  • TLS
  • SIGN

Die CSR wird im Ordner “csr” im .der-Format generiert. Bei der erstmaligen Ausführung werden auch “publisher certificates” (Root-CA und Sub-CA) im Verzeichnis certs>publisher generiert.

View Me   Edit Me