-
Lilith Wittmann authoredLilith Wittmann authored
Anforderungen an das kryptografische Material
FIT-Connect verwendet zur Übertragung von Antragsdaten und Metadaten mit direktem Bezug zu Anträgen eine Ende-zu-Ende-Verschlüsselung. Diese ist auf Basis des Standards JSON Web Encryption (JWE) unter Verwendung von Schlüsseln gemäß des Standards JSON Web Keys (JWK) umgesetzt.
Zudem bietet FIT-Connect digital signierte Eingangsbestätigungen für Anträge. Die ausgestellten Signaturen werden auf Basis von Security Event Tokens (SET) erzeugt und die dazugehörigen Schlüssel gemäß des Standards JSON Web Keys (JWK) implementiert.
Allgemeine Anforderungen an die JSON Web Keys und JSON Web Encryption
Die Liste der standardisierten Algorithmen für Signaturen und Verschlüsselung mit JWE/JWT wird für die Nutzung in FIT-Connect unter Berücksichtigung der Vorgaben des BSI gemäß der Richtlinie TR-02102-1 eingeschränkt. Diese Einschränkung der zu unterstützenden Algorithmen senkt die Komplexität in Implementierungen der angebundenen Systeme und erfolgte unter Berücksichtigung der praktischen Nutzbarkeit der Algorithmen durch eine breite Unterstützung in Implementierungen der Standards.
Regeln zur Erstellung des JSON Web Keys zur Verschlüsselung von Antragsdaten und der Signatur von Eingangsbestätigungen
Dem JSON Web Key zur Verschlüsselung von Antragsdaten muss ein für die Empfangsbehörde des Antrags signiertes X.509 Zertifikat zugrundeliegen. Dem für die Signaturprüfung von digitalen Eingangsbestätigungen verwendete JSON Web Key muss ein für die Behörde, die den Antrag im FIT-Connect-System zwischenspeichert oder empfängt, signiertes X.509 Zertifikat zugrundeliegen.
Für die den JSON Web Keys zugrundeliegenden X.509-Zertifikate gelten die folgenden kryptographischen Vorgaben:
Feld | Inhalt | Erläuterung |
---|---|---|
Hashfunktion | SHA-512 | Hashfunktion, die bei der Signatur des Zertifikats verwendet werden muss. (vgl. BSI TR-02102-1 Tabelle 4.1). |
asym. Schlüssellänge | 4096 Bit | Länge des zugrundeliegenden RSA-Schlüssels (vgl. BSI TR-02102-1 Tabelle 3.1) |
Signaturalgorithmus | RSASSA-PSS | Entspricht dem Standard beschrieben in RFC 4056 und vom BSI empfohlen in BSI TR-02102-1 Abschnitt 5.4.1. |
Signatur der X.509 Zertifikate durch die Verwaltung-PKI
Die X.509-Zertifikate müssen der Verwaltungs-PKI entstammen. CA-Zertifikate der Zertifizierungsstellen innerhalb der Verwaltungs-PKI werden gemäß den Vorgaben des BSI zur Verwaltungs-PKI durch die Wurzelzertifizierungsstelle des BSI ausgestellt.
Bei der Erstellung und Signatur der Zertifikate sind die Regelungen und Standards aus BSI TR-02103 zu beachten.
Für die Nutzung von Zertifikaten in FIT-Connect sind die folgenden Anforderungen von besonderer Bedeutung:
- Zertifikate müssen der Verwaltungs-PKI entstammen.
- Für Zertifikate müssen CRL Distribution Points (siehe 8.5 BSI TR-02103) oder ein OCSP-Endpunkt (siehe 8.5.5 BSI TR-02103) mit signierten Antworten nach RFC 6125 bereitstehen.
Vorgaben für JSON Web Keys zur Verschlüsselung
Eine Verschlüsselung erfolgt in FIT-Connect auf Basis des Standards JSON Web Encryption gemäß RFC 7516.
Zur Nutzung von Zertifikaten in FIT-Connect müssen diese in das JSON Web Key-Format konvertiert werden. Das eingesetzte Zertifikat, alle Zertifikate im Zertifizierungspfad und das Wurzelzertifikat müssen dabei im Attribut x5c
des JSON Web Key hinterlegt werden. Der JSON Web Key muss über die folgenden Attribute gemäß RFC 7517 verfügen.
Die Auswahl, welcher JSON Web Key aus der Liste der zur Verfügung gestellten Keys verwendet werden muss, wird anhand der kid
entschieden. Deshalb ist diese verpflichtend anzugeben und muss pro Destination-ID einmalig sein.
Feld | Inhalt | Erläuterung |
---|---|---|
kty | RSA | Keytype gemäß RFC 7517, Abschnitt 4 |
key_ops | [wrapKey] | Funktion des Keys (Verschlüsselung des symmetrischen Verschlüsselungskeys) gemäß RFC 7517, Abschnitt 4.3 |
alg | RSA-OAEP-256 | Vorgesehener Algorithmus zur Ver- und Entschlüsselung in Kombination mit diesem JWK. Vorgabe gemäß BSI TR-02102-1, Abschnitt 3.6 |
x5c | Die gemäß RFC kodierte Zertifikatskette | Zertifikatskette vom Teilnehmer:innen-Zertifikat bis zum Wurzelzertifikat einschließlich aller Zwischenzertifikate gemäß Abschnitt 4.7 RFC 7518. Hinweis: Gemäß RFC muss das erste Zertifikat der hinterlegten Zertifikatskette dem Teilnehmer:innen-Zertifikat entsprechen. |
x5t | Zertifikatsfingerprint | Der Fingerprint des Zertifikats gemäß RFC 7516, Abschnitt 4.1.6 |
kid | Eindeutige ID des Keys | Eindeutige ID zur Referenzierung des JSON Web Key gemäß RFC 7516, Abschnitt 4.1.6 dar. Es wird empfohlen, hierfür eine UUID gemäß RFC 4122 zu verwenden. |
n | Modulus des Public Key zum Zertifikat | Der Modulus des Public Key gemäß RFC 7518, Abschitt 6.3.1.1 ("Base64urlUInt" enkodiert) |
e | "AQAB" | Der Exponent des Public Key gemäß RFC 7518, Abschitt 6.3.1.2) |
Das bedeutet, der JSON Web Key zur Verschlüsselung muss diesem Format entsprechen:
{
"kty": "RSA",
"key_ops": ["wrapKey"],
"alg": "RSA-OAEP-256",
"n": "……(Public Key)……",
"e": "AQAB",
"kid": "……(Key ID)……",
"x5t": "……(Fingerprint)……",
"x5c": [
"……(base64 encoded cert)……",
"……(base64 encoded intermediate cert)……",
"……(base64 encoded root cert)……"
]
}
Algorithmen zur Verschlüsselung des Antragsinhalts mit JSON Web Encryption
Zur Verschlüsselung des eigentlichen Antragsinhalts wird ein symmetrisches Verschlüsselungsverfahren mit symmetrischem Schlüssel verwendet. Dieser symmetrische Schlüssel wird mit den asymmetrischen JSON Web Keys, die vom Fachverfahren generiert werden und die Verwendungsart "wrapKey" haben müssen, asymmetrisch verschlüsselt.
Verschlüsselungsverfahren
Der Content im verschlüsselten JSON Web Encryption Objekt muss mit den folgenden Methoden verschlüsselt werden:
- Symmetrisches Verschlüsselungsverfahren zur Verschlüsselung der Formularinhalts- sowie der Metadaten ("Payload"): AES-256 mit der Betriebsart Galois/Counter-Mode (GCM) gemäß TR-02102, Abschnitt 2.1
- Asymmetrisches Verschlüsselungsverfahren, um den symmetrischen Schlüssel zu verschlüsseln: RSA-OAEP-256 (RSA mit Optimal Asymmetric Encryption Padding (OAEP) unter Verwendung der Mask Generation Function MGF1 und der Hashfunktion SHA-256). Vorgabe gemäß BSI TR-02102-1, Abschnitt 3.6
JSON Web Encryption Header
Im Header des JSON Web Encryption Objektes werden die Verschlüsselungs-Metadaten zu den verschlüsselten Inhaltsdaten übergeben. Header-Attribute werden in RFC 7516 definiert. Zu Übermittlung der verschlüsselten Daten wird das in RFC 7516 Abschnitt 7.1 beschriebene Verfahren "JWE Compact Serialization" verwendet.
Die folgenden Felder müssen im JOSE-Header bei der Übertragung verschlüsselter Daten in FIT-Connect zwingend definiert sein.
Feld | Inhalt | Erläuterung |
---|---|---|
alg | RSA-OAEP-256 | Asymmetrisches Verschlüsselungsverfahren, um den „Content Encryption Key“ (CEK) zu verschlüsseln, mit dem der Payload über das in „enc“ angegebene Verfahren symmetrisch verschlüsselt wurde. Hierfür wird der im Header per "kid" referenzierte öffentliche Schlüssel genutzt. Bezeichner des Algorithmus gemäß RFC 7518, Abschnitt 4.1. Vorgabe gemäß BSI TR-02102-1, Abschnitt 3.6 |
enc | A256GCM | Symmetrisches Verschlüsselungsverfahren zur Verschlüsselung des Payloads. Bezeichner gemäß RFC 7518 5.1. Vorgabe gemäß TR-02102, Abschnitt 2.1 |
zip | DEF | Der Komprimieriungsalgorithmus für die Inhaltsdaten nach RFC 7516 Abschnit 4.1.3 |
kid | ID des Public Keys | Die ID des JSON Web Keys mit dem Attribute "wrapKey", der zur Verschlüsselung des symmetrischen Keys verwendet wurde. Gemäß RFC 7516, Abschnitt 4.1.6). Als Format der ID wird UUID nach RFC 4122 empfohlen. |
cty | MIME-Type der Inhaltsdaten | MIME-Type der Inhaltsdaten (Fachdaten, Medatadaten) nach RFC 7516, Abschnitt 4.1.12 |