Navigation und Service

Certification Path Validation Test Tool

Ein Testwerkzeug für die Überprüfung der X.509- Zertifikatspfadvalidierung

Das Certification Path Validation Test Tool (CPT) ist ein Satz quelloffener Werkzeuge, welche das Testen der X.509-Zertifikatspfadvalidierung nach RFC 5280 in Applikationen und Bibliotheken ermöglichen. Es bietet

  • die Möglichkeit der Erzeugung von X.509-Zertifikaten, Sperrlisten und OCSP-Antworten aus einer XML Testspezifikation mittels einer generischen Engine,
  • eine vordefinierte Testsuite, welche die wichtigen Aspekte des RFC 5280 abdeckt,
  • einfache Erweiterbarkeit und Anpassbarkeit der mitgelieferten Testfälle für spezifische Anforderungen oder Anwendungskontexte,
  • zusätzliche Tools für die Durchführung der Testfälle gegen TLS- und IPsec-Implementierungen.

Hintergrund

In der digitalen Kommunikation werden Zertifikate für die Authentisierung der Kommunikationspartner und zur Verifikation von öffentlichen Schlüsseln genutzt. Diese Zertifikate binden einen öffentlichen Schlüssel an die Identität seines Besitzers im Rahmen einer Public-Key Infrastruktur (PKI). Der am weitesten verbreitete Standard für Zertifikate ist X.509v3. Die Datenformate für Zertifikate, Sperrlisten und OCSP-Antworten sowie deren Verarbeitung werden in den RFCs 5280 und 6960 spezifiziert. Dort werden Schritte für die Gültigkeitsprüfung eines Zertifikats, die sogenannte Zertifikatspfadvalidierung, im Detail beschrieben. Nichtsdestotrotz wurde in den letzten Jahren eine Vielzahl von Fehlern in der Zertifikatspfadvalidierung in kryptographischen Bibliotheken und Applikationen berichtet. Diese Fehler resultierten aus falschen Interpretationen des Standards oder Programmierfehlern.

Das CPT mit seiner integrierten Testsuite adressiert dieses Problem, da es eine flexible Testdatenerzeugung und die Überprüfung der strukturellen Korrektheit einer Implementierung der X.509-Zertifikatspfadvalidierung ermöglicht.

Das CPT wurde im Auftrag des Bundesamtes für Sicherheit in der Informationstechnik (BSI) durch die MTG AG als Hauptauftragnehmer und die cryptosource GmbH als Unterauftragnehmer erstellt und wird von den beiden Herstellern gewartet.

Lizenz

Das Certification Path Validation Test Tool (CPT) ist unter der European Union Public Licence verfügbar. Es sind jedoch die Lizenzen der einzelnen Komponenten zu beachten. Dies gilt insbesondere für die Komponenten, die unter MIT Lizenz, CDDL oder Apache 2.0 Lizenz veröffentlicht wurden. Eine genaue Auflistung findet sich im Lizenztext.

Downloads

CPT Basis Tool

Das CPT Basis Tool realisiert die Testdatenerzeugung und implementiert einen CRL und einen OCSP Server für die Testdurchführung. Daneben steht eine textuelle Testspezifikation zur Verfügung, welche die mit dem CPT Basis Tool ausgelieferte Testsuite beschreibt. Das XML-Format für die Testfallspezifikationen ist konform zu TR-03124.

Änderungen zu Version 1.0:

  • OCSP-Unterstützung wurde implementiert.
  • In der Testspezifikation sind entsprechend 20 neue Testfälle zu OCSP hinzugefügt worden.
  • Das Feld "overwrite" in der XML-Beschreibung der Testzertifikate wurde entfernt.
  • In den PKI-Objekten können nun Variablen definiert werden, die innerhalb dieser PKI-Objekte referenziert werden können.

Tool Erweiterungen

Die Erweiterungen beinhalten einen auf der Kryptobibliothek Botan basierenden TLS-Testclient und -Testserver, welcher die mit dem CPT Basis Tool erzeugten Testzertifikate in einem TLS-Handshake der Gegenseite präsentiert und das Testergebnis aufzeichnet. Ferner ist eine Webanwendung zur Durchführung der Tests an einem Browser als TLS-Client enthalten. Zum Testen der Zertifikatspfadvalidierung in IPsec-Anwendungen existiert ein auf der strongSwan IPsec-Implementierung basierendes Test Tool. Zu dessen Verwendung muss die passende strongSwan Version bezogen werden und entsprechend der Anleitung mit dem mitgelieferten Patch modifiziert werden.

Änderungen zu Version 1.0

  • OCSP Stapling-Unterstützung wurde implementiert.
  • Mechanismus zur zuverlässigeren Erkennung von einem vollständig durchgeführten TLS-Handshake wurde implementiert.
  • Mechanismus zur Nutzung von mehreren Ports für verbesserte Stabilität wurde implementiert.

Tools zum Testen kryptographischer Bibliotheken

Zum Testen der Zertifikatspfadvalidierung in kryptographischen Bibliotheken existieren zwei weitere Tools. Das erste führt die Tests gegen die C/C++ Bibliotheken Botan, mbedTLS und OpenSSL aus. Das zweite erlaubt das Testen von beliebigen Java Cryptography Providern über die JCA API. Die Testgegenstände müssen im Falle beider Tools separat heruntergeladen und installiert werden.

GitHub

Das CPT sowie alle Erweiterungen sind auch auf GitHub verfügbar unter

Dokumentation

Testspezifikation und Nutzerhandbücher

Bericht zu Testergebnissen

Im Rahmen der Entwicklung des Certification Path Validation Test Tool wurden Tests an ausgewählten Krypto-Bibliotheken und Anwendungen, die eine Zertifikatspfadvalidierung implementiert haben, durchgeführt. Eine Zusammenfassung der Testergebnisse findet sich in
Report on Findings for the Certification Path Validation Test Tool

Archiv

CPT Basis Tool

Tool Erweiterungen

Testspezifikation und Nutzerhandbücher

Kontakt

Für allgemeine Fragen zum CPT

cpt@bsi.bund.de

Für technische Fragen zum CPT

Dr. Vangelis Karatsiolis
Dr. Falko Strenzke
MTG AG
www.mtg.de
cpt@mtg.de