Ihre Meinung macht den Unterschied
Jetzt Feedback zum gematik Fachportal geben!
Unterstützen Sie uns dabei, das gematik Fachportal weiter zu verbessern.
Was funktioniert gut? Wo sehen Sie Optimierungsbedarf? Nehmen Sie sich einen Moment Zeit und bringen Sie Ihre Perspektive ein.
C_12625_Anlage_V1.0.0
Prereleases:
C_12625_Anlage
Inhaltsverzeichnis
1 Änderungsbeschreibung
Während des Freigabeprozesses für die PoPP Service Spezifikation Stufe 1 wurde im Rahmen der Umsetzung weiterer Änderungsbedarf an der PoPP-Service Spezifikation identifiziert.
Es handelt sich in der Hauptsache um technische Detaillierungen und/ oder Korrekturen.
2 Änderung in gemSpec_PoPP_Service
2.1 gem_16 - Error Codes (P_POPP-25)
Status: in gemSpec_PoPP_Service eingearbeitet
Änderung 1: Das Kapitel "6.1.1.8 eGK-Handling Fehlercodes" wird inklusive seiner Kapitelüberschrift aus gemSpec_PoPP_Service entfernt wodurch unter anderem A_27049 wegfällt.
Änderung 2: Der komplette Inhalt von 6.3 wird durch folgenden Passus ersetzt, wodurch unter anderem A_26500 wegfällt.
Error Code (HTTP Status Code. ergänzt um operationsspezifische Ergebnisse) werden in den jeweiligen Schnittstellen Dateien (yaml-Files) erfasst und dokumentiert.
A_27317-01 - PoPP-Service - interne Fehlercodes
Der PoPP-Service MUSS Fehlercodes gemäß der Schnittstellenbeschreibungen [I_PoPP_Token_Generation.yaml] und
- im Rahmen der Betriebsdatenerfassung und -übermittlung die Codes aus der Spalte "BDE-Codes" verwenden.
- in Nachrichten des Typs „ErrorMessage“ gemäß [I_PoPP_TokenGeneration.yaml] als Attribut „errorCode“ die Zeichenketten aus der Spalte „errorCode“ verwenden und als „errorDetail“ eine leere Zeichenkette.
Tabelle 1: Tab_PoPP_Service_interne_Fehlercodes
| BDE-Code | Errorcode Referenz | Beschreibung | errorCode | http Statuscode | AFO Referenz |
|---|---|---|---|---|---|
| 79030 | MISSING_OR_INVALID_HEADER | The required header <header> is missing or invalid. | n.a. | ||
| 79031 | UNSUPPORTED_MEDIATYPE | The clientsystem asked for an unsupported media type <media type>. | n.a. | 415 | |
| 79032 | UNSUPPORTED_ENCODING | The clientsystem asked for an unsupported encoding scheme <encoding scheme>. | n.a. | ||
| 79040 | INVALID_HTTP_OPERATION | ERROR | n.a. | ||
| 79041 | INVALID_ENDPOINT | ERROR | n.a. | ||
| 79100 | SERVICE_INTERNAL_SERVER_ERROR | Unexpected internal server error. | n.a. | ||
| 79112 | OCSP_NOTREACHABLE | Certificate validation services can not be reached | n.a. | n.a. | |
| 79113 | OCSP_TIMEOUT | Certificate validation services timed out | n.a. | n.a. | |
| 79114 | INVALID_ACCESSTOKEN | Signature verification of the presented access token failed (FdV) | n.a. | ||
| 79115 | EXPIRED_ACCESSTOKEN | Access token has expired (FdV) | n.a. | ||
| 79116 | InvalidEndEntityCvc | invalid End-Entity-CVC | ErrorEgkHandling | n.a. | A_27010
A_27021 |
| 79117 | InvalidX509 | eGK C.CH.AUT was invalid | ErrorEgkBlocked | n.a. | A_27013
A_27021 |
| 79118 | InvalidCertificatePairContactless | T=CL: eGK C.CH.AUT did not match the CVC | ErrorEgkHandling | n.a. | A_27021 |
| 79205 | MISSING_HEADER_CLIENTDATA | Header ZTA-Client-Data fehlt. | n.a. | ||
| 79206 | MISSING_HEADER_USERINFO | Header ZTA-User-Info fehlt. | n.a. | ||
| 79400 | ERROR_HEADER_CLIENTDATA | Client-Data Daten können nicht verarbeitet werden. | n.a. | ||
| 79401 | ERROR_HEADER_USERINFO | User-Info Daten können nicht verarbeitet werden. | n.a. | ||
| 79403 | ZETA_DPOP_VALIDATION_ERROR | Signature verification of the DPoP-JWT failed | n.a. | ||
| 79404 | ZETA_INVALID_ACCESSTOKEN | Signature verification of the presented access token failed | n.a. | ||
| 79405 | ZETA_EXPIRED_ACCESSTOKEN | Access token has expired | n.a. | ||
| 79500 | InvalidAuthentication | Authentication of G2.1 contactless failed
Authentication of Gx.y failed |
ErrorEgkHandling | n.a. | A_27021
A_27023 |
| 79501 | InvalidCertificatePairT1
InvalidCertificatePairTcl |
eGK is blocked in Hash-DB | ErrorEgkBlocked | n.a. | A_27013
A_27021 |
| 79502 | InvalidPiObjectSystem | eGK product blocked | ErrorEgkBlocked | n.a. | A_27009 |
| 79503 | InvalidPtvObjectSystem | eGK product type version blocked | ErrorEgkBlocked | n.a. | A_27009 |
| 79504 | UnexpectedStatusWordSceAuthG2 | Unexpected status word in scenario SceAuthG2 | ErrorEgkHandling | n.a. | A_27021 |
| 79505 | UnexpectedStatusWordSceAuthGxy | Unexpected status word in scenario SceAuthGx.y | ErrorEgkHandling | n.a. | A_27023 |
| 79506 | UnexpectedStatusWordSceOpenEgk | Unexpected status word in scenario SceOpenEgk | ErrorEgkHandling | n.a. | A_27009 |
| 79507 | UnexpectedStatusWordSceReadCvc | Unexpected status word in scenario SceReadCvc | ErrorEgkHandling | n.a. | A_27010 |
| 79508 | UnexpectedStatusWordSceReadX509 | Unexpected status word in scenario SceReadX.509 | ErrorEgkHandling | n.a. | A_27013 |
| 79509 | UnexpectedStatusWordSceTC1 | Unexpected status word in scenario SceTC1 | ErrorEgkHandling | n.a. | A_27011 |
| 79510 | UnknownCertificates | Data for eGK G2.1 not in Hash-DB | WarningUnknownCertificates | n.a. | A_27021 |
| 79511 | INVALID_MESSAGE | Message received via WebSocket is not in conformance to [I_PoPP_Token_Generation.yaml] | InvalidMessage | n.a. | |
| 79512 | (reserved for future use) | (reserved for future use) | |||
| 79513 | UNSUPPORTED_WORKFLOW | PoPP-Service received an unexpected message | UnsupportedWorkflow | n.a. | |
| 79514 | InvalidCaCvc | invalid Sub-CA-CVC | ErrorEgkHandling | n.a. | A_27010
A_27021 |
| 79515 | BlockEntries | entries in the eGK-Hash-Datenbank have been blocked | n.a. | n.a. | A_28902 |
2.2 gem_25 & P_POPP-30 : Unterscheidung Kartengeneration
Status: in gemSpec_PoPP_Service eingearbeitet
Hintergrundinformation: Die Menge eGKincludedPtvObjSys enthält keine Informationen darüber, ob eine derart erlaubte eGK vom Typ G2.x oder Gx.y ist. Diese Unterscheidung ist gemäß Abbildung 7 wichtig.
2.2.1 gem_25.a
Ein Absatz in 6.1.1.3 wird wie folgt geändert:
Definition: eGKincludedPtv4ObjSys ist eine Menge mit Produkttypversionen von eGK G2.x Objektsystemen, die der PoPP-Service zu unterstützen hat.
Definition: eGKincludedPtv5ObjSys ist eine Menge mit Produkttypversionen von eGK Gx.y Objektsystemen, die der PoPP-Service zu unterstützen hat.
Produkttypversionen werden in diese Menge die Mengen eGKincludedPtv4ObjSys oder eGKincludedPtv5ObjSys aufgenommen oder aus ihr ihnen entfernt, wenn sich die Anforderungslage (also die Vorgaben der gematik) ändern. Basierend auf den Erfahrungen der Vergangenheit ist davon auszugehen, dass sich diese Menge nur wenige Male pro Jahr ändert, während sich die Anzahl zugelassener Kartenprodukte häufiger ändert. Deshalb wird die Menge zulässiger Kartenprodukte über die Produkttypversion definiert.
2.2.2 gem_25.b
Der Hinweis unterhalb von A_27019 wird durch folgenden ersetzt:
Hinweis: Die Produkttypversion eines Kartenproduktes findet sich in der Datei EF.Version2. Basierend auf der Anforderungslage der gematik besteht die Menge eGKincludedPtv4ObjSys im Januar 2026 aus folgenden Elementen:
{'040400', '040401', '040500', '040501', '040502', '040600', '040700'}. Die Menge eGKincludedPtv5ObjSys ist mit Stand Januar 2026 leer. Mit Einführung einer zukünftigen eGK Version Gx.y wird die Menge (laut aktuellem Plan) um den Wert '050000' ergänzt.
2.2.3 gem_25.c & P_POPP-30
In A_27009 Punkt 2.a wird folgende Änderung vorgenommen:
ersetze "eGKincludedPtvObjSys" durch "eGKincludedPtv4ObjSys oder eGKincludedPtv5ObjSys"
A_27018 und A_27019 werden wie folgt geändert:
A_27018 -PoPP-Service, Zulässige eGK Objektsystemversionen
Der PoPP-Service MUSS Änderungen an der Menge eGKincludedPtvObjSysdie Mengen eGKincludedPtv4ObjSys und eGKincludedPtv5ObjSys konfigurierbar gestalten und Änderungen , die ihm
ausschließlich durch die gematik angezeigt werden, innerhalb von sieben Tagen im
Betrieb berücksichtigen. Hinweis: Änderungen an den hier behandelten Mengen erfolgen per SerivceRequest im Service-Katalog durch die gematik.[<=]
A_27019 -PoPP-Service, Unzulässige eGK Objektsystemversionen
Der PoPP-Service MUSS Änderungen an der Menge die Menge eGKexcludedPiObjSys konfigurierbar gestalten und Änderungen, die ihm ausschließlich durch die gematik angezeigt werden, innerhalb von 24 Stunden im Betrieb
berücksichtigen. Hinweis: Änderungen an der hier behandelten Menge erfolgen per SerivceRequest im Service-Katalog durch die gematik.[<=]
2.3 gem_26 & P_POPP-151: A_27045
Status: in gemSpec_PoPP_Service eingearbeitet
Derzeit erfordert A_27045 eine "synchrone" Verarbeitung: Die Daten eContent werden vom TSP an den PoPP-Service übermittelt, in die eGK-Hash-Datenbank importiert und dann wird in derselben TLS-Session eContentResponse übermittelt.
Nach den Erfahrungen mit PoC und Beispielimplementierung dauert der Import einer großen Anzahl von eGKs eine gewisse Zeit, während der die eGK-Hash-Datenbank mit verringerter Geschwindigkeit arbeitet. Performanter ist es die Daten zunächst "asynchron" in eine offline Variante der eGK-Hash-Datenbank zu übernehmen. Dazu werden folgende Änderungen vorgenommen:
2.3.1 Ergänzung I_PoPP_EHC_CertHash_Import.json
Im Kapitel zu referenzierten Dokumenten der gematik wird folgende Zeile neu aufgenommen:
| [I_PoPP_EHC_CertHash_Import] | OpenAPI Schnittstellenspezifikation für den Import von Daten in die eGK-Hash-Datenbank
https://github.com/gematik/api-popp/blob/3.1.0/src/openapi/I_PoPP_EHC_CertHash_Import.json |
2.3.2 Änderungen an A_27044
A_27044 wird geändert (siehe auch 2.16, P_POPP-148, IP vs. URL):
A_27044-01 - PoPP-Service, Schnittstelle I_PoPP_EHC_CertHash_Import
Der PoPP-Service MUSS über eine Schnittstelle [I_PoPP_EHC_CertHash_Import] mit folgenden Eigenschaften verfügen:
- Die Schnittstelle [I_PoPP_EHC_CertHash_Import] ist aus dem Internet erreichbar.
- Die URL, über welche die Schnittstelle [I_PoPP_EHC_CertHash_Import] erreichbar ist, wird bekanntgegeben.
- Änderungen an der URL für die Schnittstelle [I_PoPP_EHC_CertHash_Import] werden mindestens dreißig Tage vor der Änderung allen Inhabern von Zertifikaten aus der TSL mit der Rolle "Lieferant" = oid_tsp-egk bekanntgegeben.
- Die Schnittstelle [I_PoPP_EHC_CertHash_Import] ist erst nach einem TLS-Handshake nutzbar. Der TLS-Handshake lässt ausschließlich Ciphersuiten gemäß [gemSpec_Krypt] zu. Der TLS-Handshake scheitert, wenn die Identität des Client nicht positiv entsprechend A_28547* geprüft werden konnte.
- Im Anschluss an die Übertragung und als Antwort auf die signierte Nachricht eContent wird dem Importeuer in derselben TLS-Session folgende Information zurückgemeldet:
- entweder eine Fehlermeldung,
- der eine Jobnummer, welche zum Abruf von eContentResponse aus A_28896 verwendbar ist.
- Ein über die Schnittstelle importierter Eintrag ist spätestens nach 36 Stunden in der Menge egkEntries der eGK-Hash-Datenbank enthalten, sofern er erfolgreich geprüft wurde.
2.3.3 Änderungen an A_27045
A_27045 wird ersetzt durch folgenden Passus:
A_27045-01 - PoPP-Service, Eintrag Lieferant
Ein Lieferant MUSS die Schnittstelle [I_PoPP_EHC_CertHash_Import] wie folgt bedienen:
- Für neu produzierte eGK wird deren Eintrag spätestens 36 Stunden vor Auslieferung der eGK an den PoPP-Service übertragen.
- Die zu signierende Nachricht eContent besitzt folgende ASN.1 Struktur:
eContent ::= SEQUENCE {
version INTEGER
egkInfos SEQUENCE OF egkInfo (SIZE(1..20000000))
}
egkInfo ::= SET {
status INTEGER, -- 0=import, 1=remove
hashAut BIT STRING,
hashCvc OCTET STRING,
notAfter UTCTime -- attribute "notAfter" from X.509
} - Die zu signierende Nachricht eContent wird DER codiert.
- Als Versionsnummer wird der Wert 0 verwendet.
- Die zu signierende Nachricht eContent wird mit einem gemäß [gemSpec_Krypt] zulässigen Verfahren wie in [RFC 5652#5] beschrieben signiert, wobei das Zertifikat des signierenden in die signierte Nachricht einzustellen ist.
- Über die Schnittstelle [I_PoPP_EHC_CertHash_Import] wird (nach dem TLS-Handshake auf Applikationsebene) genau eine signierte Nachricht mit Einträgen für die eGK-Hash-Datenbank übertragen (siehe A_27046-* SignedData).
- Im Anschluss an die Übertragung und als Antwort auf die signierte Nachricht eContent nimmt der Lieferant die in A_27044-* Punkt 5 dargestellte Information entgegen.
Die Verarbeitung gemäß A_27623 wird eine gewisse Zeit in Anspruch nehmen. Es gilt:
A_28893 - PoPP-Service, Performanz während Import
Der PoPP-Service MUSS alle Anforderungen erfüllen, welche die Performanz betreffen, während er Daten gemäß A_27623-* verarbeitet und dabei Daten in die eGK-Hash-Datenbank übernimmt. [<=]
A_28894 - PoPP-Service, Zusatzeinträge während Import
Falls während der Verarbeitung gemäß A_27623-* der eGK-Hash-Datenbank weitere Einträge gemäß A_27622 Punkt 5.c.i hinzugefügt werden, so MUSS der PoPP-Service gewährleisten, dass diese nach Abschluss der Verarbeitung weiterhin in der eGK-Hash-Datenbank enthalten sind. [<=]
A_28895 - PoPP-Service, Blocken während Import
Falls während der Verarbeitung gemäß A_27623-* der eGK-Hash-Datenbank Einträge gemäß A_27622 Punkt 5 blockiert werden, so MUSS der PoPP-Service gewährleisten, dass diese nach Abschluss der Verarbeitung weiterhin in der eGK-Hash-Datenbank blockiert sind, selbst wenn in den verarbeiteten Daten ein „import“ oder ein „remove“ vorgesehen war. [<=]
A_28896 - PoPP-Service, Rückantwort
Der PoPP-Serrvice MUSS während des Imports eine Rückantwort eContentResponse erzeugen, diese für mindestens 30 Tage speichern und nach Vorlage der zugehörigen Jobnummer an den Lieferanten übermitteln. Für die Rückantwort eContentResponse wird folgende Struktur verwendet:
eContentResponse ::= SEQUENCE {
version INTEGER, -- 0 for the time being
status INTEGER, -- 0=NoError, 1=invalidMessage, 2=processedWithError
response SEQUENCE -- conditional, present for status=0, otherwise absent
counterImported INTEGER, -- number of imported entries
counterRemoved INTEGER, -- number of removed entries
listIncorrect SEQUENCE OF egkInfo,
listExpired SEQUENCE OF egkInfo,
listIgnored SEQUENCE OF egkInfo,
listBlocked SEQUENCE OF egkInfo,
listServerError SEQUENCE OF egkInfo -- not imported due to server error
} [<=]
. . .
Hinweis 3: Gemäß A_28898 gliedert sich der Import in mehrere Schritte. Die importierte Nachricht wird zunächst auf einige Aspekte hin überprüft, was möglicherweise zu Fehlermeldungen führt und später möglicherweise auf weitere Aspekte, was möglicherweise zu weiteren Fehlermeldungen führt. Je nachdem welche und wie viele Aspekte wo überprüft werden, ist es möglich, dass eine konkrete Implementierung in eContentResponse nie den Status „invalidMessage“ liefert.
. . .
Hinweis 5: Es ist denkbar, dass für die Umsetzung der Importfunktion eine Implementierung gewählt wird, wo (kurz) vor dem Beginn der Verarbeitung gemäß A_27623* eine Kopie der eGK-Hash-Datenbank erstellt wird. Dann gibt es die „DB-Original“ von der die Kopie gezogen wurde und die „DB-Kopie“. Die Importfunktion arbeite dann mit „DB-Kopie“ und erstelle dabei die Antwort eContentResponse. Weiterhin ist es denkbar, dass während der Verarbeitung in „DB-Original“ Einträge blockiert werden, die in eContent für den Import vorgesehen sind. Es ist zulässig, dass in so einem Fall die Rückantwort eContentResponse einen in „DB-Original“ (frisch) gesperrten Eintrag NICHT in der Liste listBlocked enthält, weil er in „DB-Kopie“ ja nicht blockiert ist. Kostenträger werden dann nicht über eContentResponse, sondern über den in A_28902 dargestellten Mechanismus über blockierte eGK informiert. Im hier geschilderten Fall (Eintrag in „DB-Original“ (frisch) blockiert in „DB-Kopie“ nicht blockiert) fordert A_28895, dass bei der „Konsolidierung / Synchronisierung“ von „DB-Original“ und „DB-Kopie“ der in „DB-Original“ blockierte Eintrag weiterhin blockiert bleibt.
A_28897 - PoPP-Service, Anzahl Lieferanten
Der PoPP-Service MUSS mindestens zehn verschiedene Lieferanten unterstützen. [<=]
A_28898 - PoPP-Service, Ablauf eines Imports
Der PoPP-Service MUSS bezüglich der Schnittstelle I_PoPP_EHC_CertHash_Import folgendes Verhalten aufweisen:
- Wenn für einen Lieferanten kein Import-Job im System vorhanden ist, dann akzeptiert der PoPP-Service neue „POST…“-Nachrichten (A_27045* Punkt 6) von diesem Lieferanten.
- Nach Empfang einer „POST…“-Nachricht und Rückgabe einer Job-ID existiert ein Import-Job für den Lieferanten im System. Solange dieser Import-Job nicht gelöscht ist akzeptiert der PoPP-Service von diesem Lieferanten keine weiteren „POST…“-Nachrichten.
- Zur Job-ID eines bestehenden Import-Jobs akzeptiert der PoPP-Service stets:
- "GET. . .status“-Nachrichten – diese werden mit dem Status des Jobs beantwortet.
- Für abgeschlossene Job-IDs (Job-Status "FINISHED" oder "FAILED") akzeptiert der PoPP-Service:
- "GET. . .result“-Nachrichten – diese werden mit der zugehörigen eContentResponse des Jobs aus A_28896 beantwortet, sofern vorhanden.
- "DELETE. . .{jobId}“-Nachrichten – diese führen zur Löschung des Jobs und dazu gespeicherter Daten. Eine Abfrage der Job-ID ist nach einem DELETE nicht mehr möglich. Nach einem DELETE sind für einen Lieferanten neue Imports möglich.
Hinweis 6: Nachdem ein Lieferant eine „POST…“ Nachricht an den PoPP-Service geschickt hat, ist es dem Lieferanten möglich keine, eine oder mehrere „GET…status“ Nachrichten zu schicken. Erst wenn der PoPP-Service so eine Nachricht mit „FINISHED“ beantwortet ist es sinnvoll eine „GET…result“ Nachricht zu schicken.
Hinweis 7: Nach dem Empfang eines „FINISHED“-Status ist es einem Lieferanten möglich innerhalb der Speicherzeit keine, eine oder mehrere „GET…result“ Nachrichten an den PoPP-Service zu schicken. Erst nach dem Empfang und einer erfolgreichen Verarbeitung der eContentResponse ist es für einen Lieferanten sinnvoll eine „DELETE…{jobId}“ Nachricht zu schicken.
Hinweis 8: Wenn ein Lieferant bereits Daten importierte, dann ist ein weiterer Import nur möglich, wenn die zugehörige eContentResponse im PoPP-Service vorliegt und gelöscht wurde. Eine eContentResponse wird entweder nach der Mindestspeicherzeit gemäß A_28896 vom PoPP-Service automatisch gelöscht, oder durch eine „DELETE…{jobId}“ Nachricht.
2.3.4 Änderungen an A_27623
A_27623 Punkte 6.c und 6.d werden geändert. A_27623 Punkt 6.e wird entfernt.
A_27623-01 - PoPP-Service, eGK-Hash-Datenbank, import-Funktion
Die eGK-Hash-Datenbank MUSS eine Methode mit der Signatur "void import(byte[] SignedData)" und folgendem Verhalten besitzen:
- Schritt 1: Die Methode prüft, das Signaturzertifikat in SignedData entsprechend A_28548*. Endet die Prüfung nicht mit positivem Ergebnis, dann bricht die Methode ab, sonst fährt sie mit dem nächsten Schritt fort.
- Schritt 2: Die Methode prüft die Signatur im Parameter SignedData gemäß [RFC 5652#5]. Falls die Signatur ungültig ist, dann bricht die Methode ab, sonst fährt sie mit dem nächsten Schritt fort.
- Schritt 3: Die Methode entnimmt dem Parameter SignedData die darin enthaltene Nachricht eContent.
- Schritt 4: Die in der Nachricht eContent enthaltenen Informationen beeinflussen die eGK-Hash-Datenbank wie folgt:
- Falls eContent nicht die in A_27045* dargestellte Struktur besitzt, dann bricht die Methode ab.
- Die Elemente der Liste egkInfos werden nacheinander bearbeitet. Falls ein Element egkInfo nicht die in A_27045* dargestellte Struktur besitzt, dann wird es der Liste listIncorrect hinzugefügt und der Zähler counterMalformedEgkInfo wird inkrementiert. Andernfalls werden die darin enthaltenen Informationen notAfter, hashCvc, hashAut und status in der eGK-Hash-Datenbank auf die in Schritt 5 beschriebene Art und Weise verarbeitet.
- Schritt 5:
- Felder 3, 15, 16: Falls hashCvc in egkEntries "unbekannt" ist und hashAut ist in egkEntries
- ebenfalls "unbekannt" (Feld 3) und der Status ist
- status = 0 = "import" und das Ablaufdatum des Elementes egkInfo ist kleiner als der aktuelle Zeitpunkt, dann wird dieses Element der Liste listExpired hinzugefügt, andernfalls wird das Element der Liste listIgnored hinzugefügt, falls in der eGK-Hash-Datenbank kein Platz für weitere Einträge ist, andernfalls wird ein neuer Eintrag erzeugt und der Zähler counterImported wird inkrementiert:
{hashCvc, hashAut, imported} - status = 1 = "remove", dann wird die eGK-Hash-Datenbank durch dieses Element egkInfo nicht verändert aber der Zähler counterRemoved wird inkrementiert.
- "bekannt" (Felder 15, 16), dann wird egkEntries wie folgt geändert und das aktuelle Element egkInfo wird listBlocked hinzugefügt:
- vorher:
- "kein Eintrag für hashCvc"
- {cvcY, hashAut, *=egal}
- nachher:
- {hashCvc, hashAut, blocked}
- {cvcY, hashAut, blocked}
- Felder 7, 8: Falls hashCvc in egkEntries "bekannt" ist und hashAut ist "unbekannt", dann werden in egkEntries folgende Änderungen vorgenommen und das aktuelle Element egkInfo wird listBlocked hinzugefügt:
- vorher:
- "kein Eintrag zu hashAut"
- {hashCvc, autY, *=egal}
- nachher:
- {hashCvc, hashAut, blocked}
- {hashCvc, autY, blocked}
- Feld 9: Falls hashCvc in egkEntries "bekannt" und "blocked" ist und es liegt ein "match" vor, dann wird dieses Element egkInfo nicht weiterbearbeitet und das aktuelle Element egkInfo wird listBlocked hinzugefügt.
- Feld 10: Falls hashCvc in egkEntries "bekannt" ist und es liegt ein "match" vor und der Status ist
- status = 0 = import", dann wird counterImported inkrementiert und der Zustand des CV-Zertifikates ist:
- "imported", dann wird egkEntries nicht verändert.
- "adHoc", dann wird nur dessen Zustand wie folgt geändert:
- vorher: {hashCvc, hashAut, adHoc}
- nachher: {hashCvc, hashAut, imported}
- status = 1 = "remove", dann werden Einträge mit hashCvc oder hashAut aus egkEntries entfernt und counterRemoved inkrementiert.
- Felder 11, 12: Falls sowohl hashCvc als auch hashAut in egkEntries "bekannt" sind und es liegt kein "match" vor, dann werden in egkEntries folgende Änderungen vorgenommen und das aktuelle Element egkInfo wird listBlocked hinzugefügt:
- vorher:
- {hashCvc, autY, *=egal}
- {cvcZ, hashAut, *=egal}
- nachher:
- {hashCvc, autY, blocked}
- {cvcZ, hashAut, blocked}
- Logging innerhalb der „import(. . .)“-Methode: Die „import(. . .)“- Methode loggt folgende Ereignisse:
- Es wird ein Log-Eintrag inklusive des Client-Zertifikats erzeugt, falls der TLS-Handshake fehlschlägt. Das ist dann der einzige Log-Eintrag für diesen Aufruf der "import(. . .)"-Methode.
- Es wird ein Log-Eintrag inklusive des Signaturzertifikates erzeugt, wenn die Signaturprüfung fehlschlägt. Das ist dann der einzige Log-Eintrag für diesen Aufruf der "import(. . .)"-Methode.
- Falls während der Abarbeitung eines Elementes egkInfo Einträge blockiert werden, dann wird für dieses Element egkInfo ein Log-Eintrag erzeugt, der die Werte hashCvc und hashAut enthält.
- Es wird ein Log-Eintrag inklusive der folgenden Informationen erzeugt:
- Lieferant
- Wert des Zählers counterImported
- Wert des Zählers counterRemoved
- Anzahl Elemente in listIncorrect
- Anzahl Elemente in listExpired
- Anzahl Elemente in listIgnored
- Anzahl Elemente in listBlocked
- Anzahl Elemente in listServerError
2.4 gem_27 & P_POPP-150: A_27045 Punkt 6
A_27045 Punkt 6 beschreibt etwa listIncorrect, listExpired, listIgnored, listBlocked als SEQUENCE. Korrekt wäre SEQUENCE OF.
Dieses Problem wird zusammen mit gem_26 gelöst, siehe dort.
2.5 gem_28 & P_POPP-142: A_26631
Status: in gemSpec_PoPP_Service eingearbeitet
A_26631 legt fest, dass in APDU-Pakete eine OCSP-Response einzubetten ist, die nicht älter als zehn Minuten ist. Ein timeout für die OCSP Abfrage wird dort nicht festgelegt. Ein timeout kann vom der PoPP-Service Implementierung beliebig gewählt werden, ohne dass sich dieser Wert durch White-Box-Testing feststellen ließe. Aus Sicht der Implementierung erscheint es sinnvoll für ALLE Zertifikatsprüfungen denselben timeout-Wert (also zehn Sekunden) zu verwenden. Zur Unterstützung dieser Sichtweise wird am Ende von A_26631 folgender Passus ergänzt:
und einen kontinuierlichen Betrieb gewährleisten unter der Randbedingung, dass es möglich ist, dass zwischen einer OCSP-Anfrage und ihrer OCSP-Antwort bis zu zehn Sekunden liegen
2.6 gem_29: A_28547
Status: in gemSpec_PoPP_Service eingearbeitet
Es fehlt eine Festlegung zum timeout der OCSP-Abfrage. Deshalb wird am Ende von A_28547 folgender Passus ergänzt:
, wobei als timeout für die OCSP-Abfrage zum C.FD.TLS-C.Zertifikat ein Wert von zehn Sekunden verwendet werden MUSS
2.7 gem_30: Kap. 5.6
Status: in gemSpec_PoPP_Service eingearbeitet
Im Kapitel 5.6 Federation Entity Statement gibt es aktuell noch die Unterscheidung zwischen PoPP-Authorization Server und PoPP-Resource Server. Es sollte einheitlich von PoPP-Service gesprochen werden.
Begründung:
Mit der geänderten Architektur unter Nutzung der ZETA-Komponenten gibt es keinen PoPP-Authorization Server mehr. Eine getrennte Betrachtung Authorization Server / Resource Server ist deshalb nicht notwendig
Änderungsvorschlag:
" .... Metadaten Informationen zur Konfiguration als:
1. OAuth Protected Resource (oauth_resource),Teilnehmer der TI-Föderation (federation_entity).
Die Metadaten enthalten u. a.
die Endpunkte, unter denen der PoPP-Service Authorization Server erreichbar ist und Informationen zu Signatur- und Verschlüsselungsschlüssel. Die Tabelle "Entity Statement des PoPP-Service" im Anhang stellt das Entity Statement des PoPP-Service Authorization Server exemplarisch dar. Die folgenden Anforderungen werden an die Inhalte des Entity Statement gestellt:
2.8 gem_31: A_27295
Status: in gemSpec_PoPP_Service eingearbeitet
Die Anforderung lautet aktuell: "PoPP-Service - Bereitstellung .well-known für PoPP-Service Resource Server"
Da es keine Trennung Authorization Server / Resource Server mehr gibt sollte der Afo Text entsprechend angepasst werden.
Vorschlag:
"... PoPP-Service - Bereitstellung oauth_resource im .well-known für den PoPP-Service"
Begründung:
Mit der geänderten Architektur unter Nutzung der ZETA-Komponenten gibt es keinen PoPP-Authorization Server mehr. Eine getrennte Betrachtung Authorization Server / Resource Server ist deshalb nicht notwendig
2.9 gem_32: FQDN für PoPP Service
Status: ist in gemSpec_PoPP_Service eingearbeitet
Die FQDN für den PoPP-Service werden festgelegt. Die Information ist für den PoPP-Service Hersteller und die nutzenden Systeme (Clients) wichtig.
In Kapitel 8 "Betrieb" wird folgendes, neues Kapitel aufgenommen und A_27390 dorthin verschoben:
2.9.1 Kapitel 8.3: Dienstlokalisierung PoPP Service
Die Lokalisierung des PoPP-Service für Clients, die den PoPP verwenden, erfolgt mittels eines generischen DNS-Musters: <Hostname>.<Umgebung>.<Domäne-Anbieter>.
Für den Betrieb des PoPP-Service ist eine DNS-Registrierung unter der Domäne poppservice.de erforderlich. Zu den zugreifenden Clients gehören die PoPP-Clients in den Primärsystemen sowie später die PoPP-Module, die über Apps auf Versicherten-Smartphones auf den PoPP Service zugreifen.
A_28810 - PoPP-Service - DNS Registrierung
Der Anbieter des PoPP-Service MUSS die Hosts und IP-Adressen für den PoPP-Service, der im Internet betrieben wird, gemäß dem generischen DNS-Muster <Hostname>.<Umgebung>.<Domäne-Anbieter> und den Vorgaben von [Tab_PoPP_Service_FQDNs] registrieren.
Dies umfasst alle bereitzustellenden Endpunkte der Außenschnittstellen des PoPP Service entsprechend der Produkt-Zerlegung des PoPP-Service, wie in Kapitel 3.1 beschrieben.
Tabelle 2: [Tab_PoPP_Service_FQDNs] - FQDNs des PoPP-Service in den verschiedenen Umgebungen
| Umgebung | Resource Record Type | FQDN |
|---|---|---|
| Produktiv | A, AAAA | popp.prod.poppservice.de |
| Referenz | A, AAAA | popp.ref.poppservice.de |
| Test | A, AAAA | popp.test.poppservice.de |
| Entwicklung | A, AAAA | popp.dev.poppservice.d |
A_28811 - PoPP-Service - Auflösung der FQDNs
Der Anbieter des PoPP-Service MUSS sicherstellen, dass es Nameserver im Internet möglich ist die in A_28810 genannten FQDNs für alle aufrufenden Clients korrekt aufzulösen. [<=]
2.10 gem_34: Vertrauenswürdige Zeit
Status: in gemSpec_PoPP_Service eingearbeitet
1. Anpassung in Kapitel 5.5 wie folgt:
5.5 Vertrauenswürdige Uhrzeit im PoPP-Service
...
A_26508-01 - PoPP-Service - Vertrauenswürdige Uhrzeit
Der Anbieter des PoPP-Service MUSS seine lokale Systemzeit mindestens einmal täglich mit einem qualifizierten Zeitstempel eines eIDAS-Vertrauensdiensteanbieters synchronisieren und dafür Sorge tragen, dass die lokale, mittels ntp synchronisierte Systemzeit nie mehr als 10 Sekunden vom Wert des aktuell eingeholten qualifizierten Zeitstempels abweicht. Ist die Abweichung größer, MUSS ein Security Incident entsprechend [TI-SEC-Standard] eröffnet werden. [<=]
...
2. Die Anforderung wird dem Sicherheitsgutachten (Anbieter) zugeordnet, da es nun vermehrt Prozesse des Anbieters betrifft.
3. Der TI Security Standard [TI-SEC-Standard] muss in die Referenzen/Dokumentenliste aufgenommen werden.
2.11 OID für TSP
Status: in gemSpec_PoPP_Service eingearbeitet
Im Release Candidate von gemSpec_PoPP-Service wird die OID für TSP wie folgt benannt: oid_tsp_egk
In gemSpec_OID wird diese OID wie folgt benannt: oid_tsp-egk (Unterstrich und Bindestrich)
In gemSpec_PoPP-Service wird an allen Stellen "oid_tsp_egk" ersetzt durch "oid_tsp-egk". Das betrifft A_27044, A_28547 und A_28548.
2.12 P_POPP-133: A_26495 Hinweis entfällt
Status: in gemSpec_PoPP_Service eingearbeitet
A_26495 - PoPP-Service - PoPP-Token-Signatur-Identität
Der Anbieter des PoPP-Service MUSS für das Signaturschlüsselpaar für PoPP-Token ein Zertifikat mit dem Profil C.ZD.SIG und der Rolle OID 1.2.276.0.76.4.320 (oid_popp-token) aus der auf der NIST-P-256-Kurve basierenden TI-Komponenten-CA, welche aus der gematik-X.509-Root-CA abgeleitet ist, beziehen und dem Hersteller des PoPP-Service zur Verfügung stellen. [<=]
Hinweis: Für den Token-Signatur-Schlüssel wird zusätzlich zur Veröffentlichung via Entity Statement/JWKS (siehe A_26434* und A_26533*) ein Zertifikat mit entsprechender Rolle aus der Komponenten-PKI der TI ausgestellt und in die PoPP-Token eingebettet. Somit können FD entscheiden, ob sie die Token über den vom Federation Master oder den von der TI-PKI aufgespannten Vertrauensraum prüfen. Der Hersteller benötigt das Zertifikat um das Einbetten dieses Zertifikats in die PoPP-Token umsetzen zu können.
2.13 ANFTI2-154: A_26543 entfällt
Status: in gemSpec_PoPP_Service eingearbeitet
Mit A_28526 aus gemSpec_ZETA wird die Bereitstellung von ZETA Guard-Container Images über ein eine lokale Artifact Registry vorgeschrieben.
Damit entfällt die Anforderung A_26543, in der ein Zero Trust git-Repository der gematik angeführt wird, das nicht mehr vorgesehen ist. -> A_26543 wird gestrichen.
Das Sicherstellen der Kommunikation vom PoPP Service zu PIP/PAP wird über A_27795 aus gemSpec_ZETA gefordert.
Im Kapitel 5.4.1 "Bereitstellung, Konfiguration und Verwendung vom ZETA Guard" wird die Anforderung A_26543 entfernt. Die Anforderung entfällt.
A_26543 - PoPP-Service - Kommunikation zu den Zero Trust Komponenten der gematik
Der Anbieter des PoPP-Service MUSS sicherstellen, dass die Kommunikation zwischen seinem ZETA Guard und den dem PIP/PAP Server der gematik sowie dem Zero Trust git-Repository der gematik möglich ist.
[<=]
Darüber hinaus wird folgender Teil des unter A_26543 stehenden Hinweises gestrichen:
Die URL inklusive Endpunkt für den PoPP-Service für das Zero Trust git-repository der gematik wird organisatorisch übermittelt
2.14 P_POPP-164: A_26540 entfällt
Status: in gemSpec_PoPP_Service eingearbeitet
A_26540 besagt: Der Anbieter des PoPP-Service MUSS bei der Erstellung der Policy für den PoPP-Service mit der gematik zusammenarbeiten. Diese Policy wird über den PAP deployed und durch die Policy-Engine verarbeitet.
Diese Anforderung wird nicht benötigt, es ist keine direkte Zusammenarbeit bei der Erstellung der Policies notwendig.
Afo wird gestrichen A_26540
Im Kapitel 5.4.1 "Bereitstellung, Konfiguration und Verwendung vom ZETA Guard" wird die Anforderung A_26540 entfernt. Die Anforderung entfällt.
A_26540 - PoPP-Service - ZETA Guard - PoPP-Policy erstellen
Der Anbieter des PoPP-Service MUSS bei der Erstellung der Policy für den PoPP-Service mit der gematik zusammenarbeiten. Diese Policy wird über den PAP deployed und durch die Policy-Engine verarbeitet.
Hinweis: Die PoPP-Service Policy wird in GIT erstellt (CI/CD-Prozess). [<=]
2.15 Rückfrage E-Rezept: ES/OCSP Grace Period
Status: in gemSpec_PoPP_Service eingearbeitet
Es ist in 5.1.2 PoPP-Token Prüfung nicht vorgegeben, wie bei Nicht-Verfügbatkeit von OCSP oder EntityStatement/jwks Download vorgegangen werden soll. Dies wird präzisiert.
Bzgl. OCSP wird ergänzt:
A_27016-01 - PoPP-Verifier - Prüfung Signaturzertifikat via TI-PKI - Vorgaben
Der PoPP-Verifier, der das Signaturzertifikat des PoPP-Token via TI-PKI prüft, MUSS dabei verifizieren, dass das für die Signatur des PoPP-Token verwendete Signaturzertifikat:
- im jwks des PoPP-Service mit der entsprechenden, im Header des PoPP-Token angegeben kid enthalten ist,
- aus der TI-PKI stammt,
- das Zertifikatsprofil oid_zd_sig (OID 1.2.276.0.76.4.287, "C.ZD.SIG") aufweist,
- die technische Rolle oid_popp-token (OID 1.2.276.0.76.4.320) aufweist und
- per OCSP von der TI-Komponenten-PKI als "good" beauskunftet wird, wobei
- stündlich eine neue OCSP-Antwort geholt wird,
- eine OCSP-Antwort nach 24h als veraltet betrachtet und nicht mehr verwendet wird und
- bei Nichterreichbarkeit des OCSP-Responders eine Warnung an den Betreiber ausgelöst werden muss, damit dieser einen Incident über das TI-ITSM eröffnen kann.
Hinweis: Bei Nichterreichbarkeit des OCSP-Responders in A_27016* soll zunächst keine Takterhöhung der Abfragen stattfinden um Überlasten zu vermeiden. Um das Ablaufen der Nutzbarkeit der vorhanden OCSP-Response nach 24h zu vermeiden, kann eine Takterhöhung nach mehrfacher Nichterreichbarkeit erfolgen (bspw. nach 12h auf alle 30min und nach 18h auf 10min und nach 20h auf 5min).
Bzgl. Entity Statment / JWKS wird ergänzt:
A_26449-01 - PoPP-Verifier - Verwendung von PoPP-Service JWK-Sets
Der Anbieter eines PoPP-Verifier MUSS stündlich das JWK-Set des PoPP-Service [RFC7517] über die im Entity Statement metadata.oauth_resource.signed_jwks_uri angegebene URL abrufen und die Zertifikate zur Verifikation der PoPP-Token verwenden. Spätestens nach 24 Stunden MUSS die Information aus dem Entity Statement des PoPP-Service und dem JWK-Set als veraltet betrachtet werden, darf also nicht mehr verwendet werden. Erhält der Anbieter im Rahmen des stündlichen Abrufs von Entity Statement oder JWKS keine Antwort, MUSS er einen Incident über das TI-ITSM eröffnen.
[<=]
Hinweis: Bei Nichterreichbarkeit der Downloadpunkte in A_26449* soll zunächst in kürzeren Abständen (bspw. minütlich) ein erneuter Abrufversuch stattfinden und erst nach mehrfachen (bspw. 3) erfolglosen Versuchen ein Incident über das TI-ITSM eröffnet werden.
Hinweis: Wird der Sperrstatus des PoPP-Token-Signaturzertifikats im Rahmen einer Prüfung nach TI-PKI per OCSP ermittelt (siehe A_27016*) und als "good" ausgewertet, ist bei Nichterreichbarkeit der jeweiligen Downloadpunkte eine Überschreitung des in A_26449* für Entity Statements und JWKS angegebenen Gültigkeitzeitraums (also deren Weiterverwendung nach Ablauf des Zeitraums) um wenige Tage akzeptabel.
2.16 P_POPP-148: A_27044, IP vs. URL Schnittstelle
Status: in gemSpec_PoPP_Service eingearbeitet
In A_27044 wird in den Punkten 2 und 3 folgende Änderung vorgenommen:
ersetze IP-Adresse
durch URL
Hinweis: Diese Änderungen sind in 2.3.2 in Verbindung mit P_POPP-151 dargestellt.
2.17 Kurzzeitprotokoll, Meldewege, P_POPP-139, 234
Status: in gemSpec_PoPP_Service eingearbeitet TODO entspricht das dem endgültig abgestimmten Stand?
Blockierte Einträge werden nun nicht nur im laufenden Betrieb, sondern auch beim Import erfasst und im Kurzzeitprotokoll abgelegt. Einträge des Kurzzeitprotokolls werden nun an die gematik gemeldet und der Meldeweg an Kostenträger wird präzisiert.
2.17.1 Änderungen an A_27622
In A_27622 wird Punkt 5.e inklusive der Unterpunkte durch folgenden Passus ersetzt:
Logging innerhalb der „check(. . .)"-Funktion: Es wird ein Log-Eintrag mit hashCvc und hashAut erzeugt, falls während der Abarbeitung der „check(. . .)-Funktion der Wert “blocked” zurückgegeben wird.
2.17.2 Zusatz unterhalb von A_27623
Nach A_27623 wird folgender Passus neu aufgenommen:
A_28923 - PoPP-Service, Reihenfolge beim Import
Der PoPP-Service KANN bei der Bearbeitung der Element egkInfo aus eContent gemäß A_27623* eine beliebige Reihenfolge verwenden. [<=]
Hinweis 1: Aus A_28923 folgt für den Fall, dass eContent zwei Pärchen {hashCvc, hashAut} enthält (etwa einmal für "remove" und einmal für "import"), es nicht sicher ist, in welcher Reihenfolge diese Pärchen bearbeitet werden.
Definitionen:
- Sei {hashCvcX, hashAutX} ein in der eGK-Hash-Datenbank nicht blockiertes Pärchen von Hashwerten.
- Sei {hashCvcY, hashAutY} ein in der eGK-Hash-Datenbank nicht blockiertes Pärchen von Hashwerten.
- Sei “iccsnZ” die ICCSN aus einem CV-Zertifikat CVC-Z.
- Sei “hashCvcZ” der SHA-256 Hashwert über das CV-Zertifikat CVC-Z.
- Sei “ikZ” die IK-Nummer aus einem X.509-Zertifikat AUT-Z.
- Sei “kvnrZ” die KVNR aus dem X.509-Zertifikat AUT-Z.
- Sei “hashAutZ” der SHA-256 Hashwert über das X.509-Zertifikat AUT-Z.
A_28899 - PoPP-Service, Kurzzeitprotokoll - Einträge
Der PoPP-Service MUSS über ein Kurzzeitprotokoll verfügen, dessen Einträge folgende Information speichern:
- dbCvc: SHA-256 Hashwert aus der eGK-Hash-Datenbank
- dbAut: SHA-256 Hashwert aus der eGK-Hash-Datenbank
- ICCSN, Integer mit 20 dezimalen Stellen, = 0, falls unbekannt
- oCvc = SHA-256 Hashwert über den Inhalt eines CV-Zertifikates
- IK-Nummer, Integer mit neun Stellen, = 0, falls unbekannt
- KVNR, String, falls unbekannt = leerer String
- oAut = SHA-256 Hashwert über den Inhalt eines X.509-Zertifikats
A_28900 - PoPP-Service, Kurzzeitprotokoll - check
Der PoPP-Service MUSS dem Kurzzeitprotokoll einen Eintrag hinzufügen, wenn Einträge in der eGK-Hash-Datenbank beim Abarbeiten der “check(. . .)” Funktion blockiert werden:
- Siehe A_27622, Feld 7, hier gilt: hashCvcX = hashCvcZ
{dbCvc, dbAut, ICCSN, oCvc, IK-Nummer, KVNR, oAut} =
{hashCvcX, hashAutX, iccsnZ, hashCvcX, ikZ, kvnrZ, hashAutZ} - Siehe A_27622, Feld 11, hier gilt: hashCvcX = hashCvcZ und hashAutY = hashAutZ
{dbCvc, dbAut, ICCSN, oCvc, IK-Nummer, KVNR, oAut} =
{hashCvcY, hashAutX, iccsnZ, hashCvcX, ikZ, kvnrZ, hashAutY} - Siehe A_27622, Feld 15, hier gilt: hashAutX = hashAutZ
{dbCvc, dbAut, ICCSN, oCvc, IK-Nummer, KVNR, oAut} =
{hashCvcX, hashAutX, iccsnZ, hashCvcZ, ikZ, kvnrZ, hashAutX}
A_28901 - PoPP-Service, Kurzzeitprotokoll - import
Der PoPP-Service MUSS dem Kurzzeitprotokoll einen Eintrag hinzufügen, wenn Einträge in der eGK-Hash-Datenbank beim Abarbeiten der “import(. . .)” Funktion blockiert werden:
- Siehe A_27623, Felder 7, 8, hier gilt: hashCvcX = hashCvcZ
{dbCvc, dbAut, ICCSN, oCvc, IK-Nummer, KVNR, oAut} =
{hashCvcX, hashAutX, 0, hashCvcX, 0, “”, hashAutZ} - A_27623, Felder 11, 12, hier gilt: hashCvcX = hashCvcZ und hashAutY = hashAutZ
{dbCvc, dbAut, ICCSN, oCvc, IK-Nummer, KVNR, oAut} =
{hashCvcY, hashAutX, 0, hashCvcX, 0, “”, hashAutY} - Siehe A_27623, Felder 15, 16, hier gilt: hashAutX = hashAutZ
{dbCvc, dbAut, ICCSN, oCvc, IK-Nummer, KVNR, oAut} =
{hashCvcX, hashAutX, 0, hashCvcZ, 0, “”, hashAutX}
A_28902 - PoPP-Service, Kurzzeitprotokoll - Meldung
Der PoPP-Service MUSS Einträge des Kurzzeitprotokolls mindestens einmal täglich melden und gemeldete Einträge löschen:
- Meldung an die gematik:
- Einträge des Kurzzeitprotokolls werden über Telemetriedaten als JSON-Objekt an die gematik gemeldet, siehe A_28860.
- Im Vergleich zum Eintrag des Kurzzeitprotokolls fehlen bei Meldungen an die gematik
- die letzten zehn Stellen der ICCSN und
- die KVNR.
- Meldungen an andere Stellen, Informationen aus Einträgen des Kurzzeitprotokolls werden wie folgt an andere Stellen gemeldet:
- per S/MIME Email verschlüsselt und signiert mit einem Anhang, der ein JSON-Objekt als Textdatei enthält
- {dbCvc, dbAut, ICCSN, oCvc} an den in der ICCSN genannten Kartenherausgeber
- {dbCvc, dbAut, IK-Nummer, KVNR, oAut} an den in der IK-Nummer genannten Kostenträger
A_28903 - PoPP-Service, Kurzzeitprotokoll - Meldeadressen
Der PoPP-Service MUSS über folgende Tabellen verfügen, deren Inhalt die gematik per Service Request mitteilt:
- Zuordnung Kartenherausgeber gemäß Issuer Identifier in einer ICCSN zu Email-Adresse und Verschlüsselungszertifikat des Empfängers,
- Zuordnung Kostenträger gemäß IK-Nummer zu Email-Adresse und Verschlüsselungszertifikat des Empfängers.
A_28904 - PoPP-Service, Kurzzeitprotokoll - Statusmeldungen
Der PoPP-Service MUSS einmal wöchentlich eine Meldung an Adressaten gemäß A_28903 mit folgendem Inhalt versenden:
Aktuell liegen aus der eGK-Hash-Datenbank des PoPP-Service keine Meldungen über Einträge vor, die seit der letzten Meldung blockiert wurden. [<=]
Abbildung 1 : JSON-Beispiel für einen Eintrag in einer gematik-Meldung, siehe A_28902, Punkt 1
Abbildung 2 : JSON-Beispiel für einen Eintrag in einer Kartenherausgeber-Meldung, siehe A_28902, Punkt 2.a
Abbildung 3 : JSON-Beispiel für einen Eintrag in einer Kostenträger-Meldung, siehe A_28902, Punkt 2.b
Hinweis 1: Kartenherausgeber oder Kostenträger, die keinen Eintrag in die Tabellen gemäß A_28903 vornehmen lassen werden nicht direkt über blockierte Einträge informiert. Es besteht die Möglichkeit, dass die gematik über blockierte Einträge informiert, wenn diese über die Telemetriedaten an die gematik gemeldet werden. Gemäß A_28902 Punkt 1.b ist es unmöglich, dass eine Meldung über die gematik personenbezogene Daten (die komplette ICCSN oder die KVNR) enthält.
2.18 Wording: ZETA Produkthandbuch statt Betriebshandbuch
Status: in gemSpec_PoPP_Service eingearbeitet
In gemSpec_PoPP_Service#Kap 5.4 und in A_26539 wird vom Betriebshandbuch des ZETA Guard Herstellers besprochen. Im ZETA Projekt wird jetzt die Bezeichnung Produkthandbuch verwendet. Die PoPP-Service Spezifikation soll entsprechend angepasst werden.
2.19 Sammler für Typos
- Im Hinweis unter A_26543 heißt es: Die Verfügbarkeit von ZETA Guard soll durch die Bereitstellung einer lokalen Container Registry erhöht werden, siehe auch A_28256*
Die zitierte Afo ist die A_28526*
2.20 Paralleler Token-Abruf, P_POPP-130
Status: in gemSpec_PoPP_Service eingearbeitet
Es wird ein neues Kapitel 6.4 mit folgendem Inhalt erstellt:
6.4 Kommunikationskanal Client - PoPP-Serivce
Für den Kommunikationskanal zwischen der Client und dem PoPP-Service gilt folgendes:
- Ein Client baut zunächst eine TCP/IP Verbindung zum PoPP-Service auf.
- Dann initiiert der Client einen TLS-Handshake mit dem PoPP-Service.
- Anschließend verwendet der Client HTTP/1.1 für die Kommunikation zwischen ZETA Client und ZETA Guard.
- Als nächstes initiiert der Client einen WebSocket Handshake gemäß [RFC 6455].
- Anschließend ist der Client in der Lage gemäß der API-Spezifikation mit dem PoPP-Service Nachrichten auszutauschen.
A_28908 - PoPP-Service, Kommunikationskanal - HTTP
Der PoPP-Service MUSS das Protokoll HTTP/1.1 gemäß [RFC 9110] und [RFC 9112] unterstützen. [<=]
A_28909 - PoPP-Service, Kommunikationskanal - Abbau der Verbindung
Der PoPP-Service MUSS am Ende eines Anwendungsfalls die WebSocket Verbindung inklusive des TLS-Kanals und der TCP/IP Verbindung beenden.
- Der Anwendungsfall "Check-in in einer LEI mit eGK und Ausgabe eines PoPP-Tokens" endet, wenn der PoPP-Service eine TokenMessage (Erfolgsfall) oder eine ErrorMessage (Fehlerfall) versendet.
Hinweis 1: Als Konsequenz der Anforderungen aus diesem Unterkapitel ergibt sich, dass von einem Client pro Aufbau einer WebSocket-Verbindung maximal ein PoPP-Token abrufbar ist.
3 Änderungen in gemKPT_Test
3.1 P_POPP-218: A_26688 - Labeln von Komponenten
Die Afo A_26688 aus gemKPT_Test ist ursprünglich mit dem Hintergrund dezentraler Komponenten aufgenommen worden. Dieser Kontext liegt jedoch nicht vor, sodass die Anforderung nicht einschlägig ist.
Die Afo A_26688 wird daher aus dem Produkttypsteckbrief entfernt.
Änderung in gemKPT_Test ggf später.
Status: wip und nicht in gemSpec_PoPP-Service eingearbeitet.
4 Änderungen in Steckbriefen
4.1 Änderungen in gemProdT_PoPP_Service_PTV
Anmerkung: Die Anforderungen der folgenden Tabelle stellen einen Auszug dar und verteilen sich innerhalb der Tabelle des Originaldokuments [gemProdT_PoPP_Service_PTV]. Alle Anforderungen der Tabelle des Originaldokuments, die in der folgenden Tabelle nicht ausgewiesen sind, bleiben unverändert bestehenden.
Tabelle 3: Anforderungen zur funktionalen Eignung "Produkttest/Produktübergreifender Test"
| Afo-ID
|
Afo-Bezeichnung
|
Quelle (Referenz)
|
|---|---|---|
| A_23225
|
lokales Caching von Sperrinformationen und Toleranzzeiten
Zuordnung wird von funktionale Eignung / Test ==> nach funkt. Eignung/ Herstellererklärung geändert |
gemSpec_PKI
(P_POPP-182) |
| A_27791 | Zuordnung von A_27791 aus gemKPT_Test wird wird entfernt. | gemKPT_Test
(P_POPP-184 & P_POPP-203) |
| A_26688 | Zuordnung von A_26688 aus gemKPT_Test wird wird entfernt. | gemKPT_Test
(P_POPP-218) |
| A_26910 | Zuordnung von A_26910 aus gemKPT_Test wird wird entfernt. | gemKPT_Test
(P_POPP-224) |
| TIP1-A_7335 | Zuordnung hinzugefügt, Prüfverfahren "funkt. Eignung Herstellererklärung" | gemKPT_Test |
4.2 Änderungen in gemAnbT_PoPP_Service_ATV
Anmerkung: Die Anforderungen der folgenden Tabelle stellen einen Auszug dar und verteilen sich innerhalb der Tabelle des Originaldokuments [gemAnbT_PoPP_Service_ATV]. Alle Anforderungen der Tabelle des Originaldokuments, die in der folgenden Tabelle nicht ausgewiesen sind, bleiben unverändert bestehenden.
Tabelle 4: Anforderungen zur funktionalen Eignung "Produkttest/Produktübergreifender Test"
| Afo-ID
|
Afo-Bezeichnung
|
Quelle (Referenz)
|
|---|---|---|
| A_27829
|
Zuordnung von A_27829 aus gemKPT_Test wird wird entfernt.
|
gemKPT_Test
|
| A_27815 | Zuordnung von A_27815 aus gemKPT_Test wird wird entfernt. | gemKPT_Test
|
| A_25392-01 | Zuordnung hinzugefügt, Prüfverfahren "organ./betriebl. Eignung: Anbietererklärung" | gemKPT_Test |
| TIP1-A_7335 | Zuordnung hinzugefügt, Prüfverfahren "organ./betriebl. Eignung: Anbietererklärung" | gemKPT_Test |