Skip to content

Dokumentation zur Prüfung von Zertifikatsketten

Warum?

An verschiedenen Stellen müssen API-Clients Zertifikatsketten der verwendeten Zertifikate prüfen. Dafür fehlen in der Dokumentation aktuell noch Beschreibungen und an einigen Stellen konkrete Vorgaben.

Referenzen & Notizen

Notwendige Schritte, die dokumentiert werden müssen

Hinweis: Wird von Bibliothek übernommen.

  1. Abruf des zur Destination gehörenden JSON Web Keys
  2. Überprüfung, dass der JSON Web Key für die Verschlüsselung geeignet ist ("keyops": ["wrap_key"])
  3. Überprüfung, dass der JWK eine Schlüssellänge von mind. 4096 Bit aufweist.
  4. Überprüfung, dass der öffentliche Schlüssel mit dem im JSON Web Key hinterlegten Zertifikat übereinstimmt (Attribute n und e)
  5. Überprüfung, dass das Zertifikat aktuell gültig ist (Gültigkeitszeitpung)
  6. Überprüfung, dass das Zertifikat der Verwaltungs-PKI entstammt, d.h Überprüfung der Zertifikats-Kette bis zum Wurzelzertifikat (BSI)
  7. Überprüfung, dass das Zertifikat aktuell gültig ist (mittels Validierungsdienst, gegen eine Certificate Revocation List (CRL) und/oder einen OCSP-Endpunkt mit signierten Antworten)

Akzeptanzkriterien

  1. Alle Vorgaben aus bestehender Dokumentation, insbesondere die oben genannten Schritte werden beachtet.
  2. Es gibt Codebeispiele für alle der oben genannten Teilschritte.
  3. Es existiert ein Beispiel einer nicht erfolgreichen Zertifikatsvalidierung (ungültiges Zertifikat).
  4. An allen Stellen der API-Dokumentation (bspw. Signaturprüfung), wo eine Zertifikatsprüfung notwendig ist, wird auf die Notwendigkeit bzw. Empfehlung einer Zertifikatskettenprüfung durch die API-Client hingewiesen und auf den Detailartikel verwiesen.

Umsetzungsschritte

  1. Identifizierung von geeigneten Bibliotheken zur Umsetzung
  2. Prüfung in Code umsetzen (Python, Java vgl. #119 (closed))
  3. Dokumentation anhand des Codes inkl. Erklärung (ggf. als Code-Kommentare)
Edited by Marco Holz