Closed westnordost closed 3 years ago
Already conducted research by Michael
PKCS#7, siehe Anlage 7, Seite 4
Öffentliche Schlüsselverzeichnisse für das Leistungserbringerverfahren, die öffentlichen Schlüssel der öffentlichen Schlüssel im Leistungserbringerverfahren sollen sich in der Datei annahme-sha256.key befinden (Quelle: ITSG)
There is an API of the ITSG. The API includes requesting a certificate for your organization. The documentation sounds like that the API can also be used to get the keys. Though, I am not sure about that, as the "getting the keys" seems to be part of getting a certificate for your organization. Will need to research further (i.e. call them and ask - so far noone answered the phone).
In any case:
I also called Knappschaft DAV and asked them how I should get their public key for encryption. They didn't know off the top of their head and promised to call me back tomorrow. Let' see.
...but it's clear that the ITSG is the one place to go. Also called TK DAV, they confirm that.
Contacted them through a form on their website
Sehr geehrte Damen und Herren
Mein Name ist Tobias Zwick und ich arbeite an einer vom BMBF geförderten Open-Source Komponente (PAID / Coop-Care), mit der Pflegedienste Abrechnungen an die GKV schicken können sollen. Diese müssen natürlich entsprechend dem Verfahren mit dem öffentlichen Schlüssel der durch ihre IK identifzierte Datenannahmestelle verschlüsselt werden. Die ITSG ist das Root CA für alle in diesem Verfahren verwendeten Zertifikate.
Meine Frage ist folgende: Wo können die gültigen öffentlichen Schlüssel die zu den einzelnen IKs zugeordnet sind abgefragt werden? Gibt es einen öffentlich zugänglichen Schlüsselserver (Key server), und wenn nicht, welche Möglichkeit(en) gibt es ansonsten?
Die "Online-Zertifikatsübersicht" [1] gibt nur den Namen der Firma, Ansprechpartner und Gültigkeitszeitraum aus, jedoch nicht den Schlüssel oder zumindest den Hash des Schlüssels.
Das "Öffentliche Schlüsselverzeichnisse für das Leistungserbringerverfahren" [2], die Datei gesamt-pkcs.key enthält zwar laut der Beschreibung alle Schlüssel, jedoch fehlt offenbar die Zuordnung Institutionskennzeichen => Schlüssel.
Viele Grüße Tobias Zwick
[1] z.B. https://www.itsg-trust.de/all/antrag_ikbn.php?ik_bn=109905003
[2] https://www.itsg.de/produkte/trust-center/oeffentliche-zertifikate-und-verzeichnisse/, Abschnitt Leistungserbringer
Otherwise, their hotline is 06104 947 36 – 403: Mo-Do 08:30-12:30, 13:30-17:00, Fr 08:30-14:00
Answer:
das ITSG Trust Center unterstützt keine Einzelanfragen zu den öffentlichen Schlüssel (z.B. OCSP). In den öffentlichen Schlüsselverzeichnisse für Endkunden finden Sie die Gesamtlisten mit allen Teilnehmerschlüssel und Annahmelisten mit den Schlüssel der Annahmestellen zum Download. Diese Dateien enthalten die einzelnen Schlüssel DER-kodiert als base64-Block mit der Binär-Information. Die einzelnen Schlüssel als binäre Datei enthalten Elemente der Teilnehmer mit IK, Firmenname und Ansprechparter. Das bedeutet, dass die Schlüssellisten keine separate Information mit Zuordnung zu den Teilnehmer enthält, denn die Information ist in den Schlüssel enthalten.
Beachten Sie bitte die Spezifikation „Security Schnittstelle“ vom GKV-Spitzenverband. Sie können das Dokument Security Schnittstelle unter der URL https://www.gkv-datenaustausch.de/technische_standards_1/technische_standards.jsp herunterladen. Diese Spezifikation enthält wichtige Informationen zum Sicherheitsverfahren auch zur PKI mit dem Schlüsselmanagement. Im Anhang finden Sie Screenshots mit Muster, auch zum Aufbau einer Schlüsselliste.
Ich möchte Sie auch die umfangreichen Anforderungen zur Beantragung eines Zertifikats hinweisen. Unter der URL https://www.itsg.de/produkte/trust-center/zertifikat-beantragen/ finden Sie weitere Informationen. Bitte beachten Sie, dass die ITSG GmbH keinen Support für OpenSSL oder eigene Softwareentwicklung leistet.
I looked at the following libraries. These are my notes. First off:
X.509 certificates like many other PKI related data structures are specified in the ASN.1 format. To read the attributes from a certificate, theoretically I think it would be enough to just parse the ASN.1 into text-form. However, a dedicated X.509 parser which will also parse the actual data contained (f.e. dates, ...) is certainly be more convenient. If there is anything useful out there that does exactly that, I think we don't need to reinvent the wheel here.
I excluded libraries from the first that...
Repo, NPM Parses (the info in) a x509 certificate from ASN.1 format to JSON and nothing else
Repo, NPM Allegedly a fully-fledge implementation of the standard (ASN.1, X.509), didn't look deep into this though because...
Repo, NPM ASN.1 Schema for X.509, i.e. should do the parsing and maybe the other way round
Got the info from the ITSG that the certificates of Datenannahmestellen here https://trustcenter-data.itsg.de/dale/annahme-rsa4096.key are also whitelists. I.e. no revoked or expired certificates are included.
Therefore, I do not see the need to fetch and process the certificate revocation lists published here https://trustcenter-data.itsg.de/dale/sperrliste-le-rsa4096.crl if the whitelist is downloaded as frequently as the revocation list would.
Prerequisite of #20