Die mTSL-Verbindung (mutual TLS) stellt die abgesicherte Kommunikation zwischen einem Praxis-Client (z. B. PVS oder KIM-Software) und dem Konnektor (z. B. KoCoBox) her. Sie basiert auf gegenseitiger Authentifizierung über Zertifikate.
Client (PVS z.B. evident/KIM) <---- mTLS ----> KoCoBox (IP 192.168.x.x)
TLS-Handshake
Der Client öffnet eine Verbindung zu einem Dienst des Konnektors (z. B. Port 636 (LDAPS), 443 (HTTPS) 443 oder Webadmin 9443).
Der Konnektor präsentiert als Serverzertifikat das Zertifikat der Konnektor-Karte (KT). Dieses Zertifikat befindet sich physisch auf der im Konnektor gesteckten KT-Karte und ist durch gematik signiert. → Es kann RSA und/oder ECC (Brainpool/NIST) sein, je nach Kartenversion.
Server-Authentifizierung
Der Client prüft das Zertifikat gegen die gematik-Trustchain (GEM.RCA6 → GEM.KOMP-CA7 für RSA oder GEM.RCA4 → GEM.KOMP-CA6 für ECC). Deswegen müssen die Gematik Zertifikate in dem Certificate Store importiert werden.
Client-Authentifizierung
Der Konnektor fordert anschließend ein Client-Zertifikat an. Dieses Client-Zertifikat wird im Konnektor-Interface (GUI) des Konnektors bei KocoBox normalerweise generiert. Es ist ein eigenes Zertifikat (lokal gespeichert als .p12, nicht auf einer Karte).
Schlüsselaustausch & Datenübertragung
Beide Seiten verwenden nun ihre privaten Schlüssel zur Aushandlung des Sitzungsschlüssels. Ab dann erfolgt die verschlüsselte Kommunikation (z. B. SOAP- oder REST-Aufrufe).
Zertifikate mit OpenSSL auslesen
Serverzertifikat vom Konnektor abrufen (unter Windows mit openSSL):
Server certificate subject=C=DE, ST=Berlin, L=Berlin, postalCode=10963, street=Dessauerstr. 28/29, O=KoCo Connector GmbH, CN=8027XXXXXXXXXXXXXXX-XXXXXXXX -> das findet man in KoCoBox auf die KT Zertifikate issuer=C=DE, O=gematik GmbH, OU=Komponenten-CA der Telematikinfrastruktur, CN=GEM.KOMP-CA6 --- No client certificate CA names sent Client Certificate Types: ECDSA sign, RSA sign, DSA sign Requested Signature Algorithms: ECDSA+SHA256:RSA+SHA256 Shared Requested Signature Algorithms: ECDSA+SHA256:RSA+SHA256 Peer signing digest: SHA256 Peer signature type: ecdsa_secp256r1_sha256 Peer Temp Key: ECDH, brainpoolP256r1, 256 bits --- SSL handshake has read 1175 bytes and written 791 bytes Verification error: unable to verify the first certificate -> normal, da wir kein Client
Wenn der Port RSA unterstützt, dann geht es ohne -groups brainpoolP256r1:P-256:P-384