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:
- Benutzeroberfläche (UI)
- Back-End-API
- Postgres-Datenbank
- 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.
-
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.
-
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:
Erzeugen von Schlüsselpaar auf HSM.
Um AS4 Cryptography CSR optimal zu nutzen, stellen Sie bitte sicher, dass alle folgenden Voraussetzungen erfüllt sind:
- Laufende HSM-Simulator-Instanz
- Slot konfiguriert mit CAT-Tool
- Laufende FSS-Anwendung (mit von Hibernate erstellten Tabellen)
- 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:
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:
[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:
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:
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:
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