Dieser Abschnitt beschreibt den System-Kontext des AEP-Crypto-Systems. Er zeigt, wie Crypto Services zusammenarbeiten. Außerdem werden die Schnittstellen nach außen beschrieben.
Wir betrachten den Kontext auf verschiedenen Ebenen:
- Zertifikate
- Private Schlüssel
- CRLs
- Infrastruktur
Zertifikate
Zertifikate werden vom FSS in einer SQL Datenbank gespeichert. Der FSS bietet eine REST API an, um Zertifikate zu verwalten.
Über die FSS-UI kann ein Mensch auf die Zertifikate zugreifen.
Mandanten-Zertifikate werden vom CSR-Service von der Sub-CA heruntergeladen und über den FSS gespeichert.
Partner-Zertifikate können vom Certificate-Manager automatisch von einer Sub-CA heruntergeladen und über den FSS gespeichert werden. Der Download kann durch die AS4-Crypto-Operations getriggered werden, wenn die Signatur einer AS4-Nachricht verifiziert wird. Im Anschluss kann ein Certificate-Event an den AS4-Address-Service übermittelt werden, um die AS4-Adresse des Partners zu pflegen.
AS4-Outbound-Sender & AS4-Inbound-Endpoint laden Zertifikate für TLS aus dem FSS.
Private Schlüssel
Private Schlüssel werden über das HSM verschlüsselt abgespeichert.
Der Zugriff auf das HSM erfolgt immer über den FSS. Schlüsselbezogene Operationen können vom FSS ans HSM delegiert werden.
Der CSR-Service initiiert die Erstellung von Schlüsseln, wenn neue Mandanten-Zertifikate angelegt werden. Mit Hilfe der Schlüssel wird das CSR-Bundle signiert, welches anschließend an die Sub-CA übermittelt wird.
Sowohl CSR-Service, AS4-Inbound-Endpoint als auch AS4-Outbound-Sender benötigen Schlüssel für TLS.
Die AS4-Crypto-Operations delegieren schlüsselbezogene Operationen über den FSS ans HSM. Dies ist nötig, um AS4 Nachrichten zu signieren sowie deren Anhänge zu entschlüsseln.
CRLs
Der FSS speichert neben den Zertifikaten auch die zugehörigen CRL-URLs. Weiterhin speichert er den Sperrlistenstatus der Zertifikate: wurden sie gesperrt oder nicht, und wann wurde die Sperrliste zuletzt überprüft?
Der CRL-Downloader lädt die Sperrlisten der Zertifikate von den Sub-CAs herunter und speichert sie im FSS. Hierfür muss er zunächst die CRL-URLs aus dem FSS auslesen. Dieser Workflow muss von außen getriggered werden, z.B. durch ein Curl-Script, welches regelmäßig (z.B. täglich) ausgeführt wird.
Infrastruktur
Die Java-Anwendungen können skaliert werden, indem mehrere Instanzen parallel ausgeführt werden. Die REST-API muss dann über einen Loadbalancer bereitgestellt werden.
Die REST-APIs der Java Anwendungen können per oauth2 abgesichert werden. Hierfür wird ein Authorization Server benötigt. On Premise unterstützen wir hierfür Keycloak.
Anhang
Original der Grafiken: Confluence (intern).
View Me Edit Me