Certificate Management Protocol

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
CMP (Certificate Management Protocol)
Familie: unbekannt
Einsatzgebiet: Zertifikatsverwaltung
Neueste Version: cmp2000(2)
OID der neuesten Version: 1.3.6.1.5.5.7.0.16
TCP/UDP-Port: 829 (pkix-3-ca-ra)
CMP im TCP/IP-Protokollstapel:
Anwendung CMP CMP
HTTP HTTPS SMTP
Transport TCP
Internet IP (IPv4, IPv6)
Netz-Zugang Ethernet Token
Bus
Token
Ring
FDDI
Vorgeschlagener Standard:

RFC 4210 (CMP, 2005)

Obsoleter Standard:

RFC 2510 (CMP, 1999)

Das Certificate Management Protocol (englisch für „Zertifikat-Verwaltungsprotokoll“, kurz CMP), ist ein Protokoll, das von der IETF entwickelt wird, um digitale Zertifikate in einer Public-Key-Infrastruktur (PKI) nach dem Standard X.509 zu verwalten. Das Protokoll regelt hierbei die Interaktion zwischen den Komponenten einer PKI wie der Zertifizierungsstelle (CA) oder der Registrierungsstelle (RA) und einer Anwendung oder einem Benutzer.

Nachrichtentypen[Bearbeiten]

Eine CMP Nachricht kann einem der folgenden Typen entsprechen:

  • Initialisierungs Anforderung
  • Initialisierungs Antwort
  • Zertifizierungs Anforderung
  • Zertifizierungs Antwort
  • PKCS #10 Zertifizierungs Anforderung
  • Beweis des Schlüsselbesitzes Aufgabe
  • Beweis des Schlüsselbesitzes Antwort
  • Schlüssel Aktualisierungs Anfrage
  • Schlüssel Aktualisierungs Antwort
  • Schlüssel Wiederherstellungs Anfrage
  • Schlüssel Wiederherstellungs Antwort
  • Zurückziehungs Anforderung
  • Zurückziehungs Antwort
  • Kreuz-Zertifizierungs Anforderung
  • Kreuz-Zertifizierungs Antwort
  • CA Schlüssel Aktualisierungs Bekanntgabe
  • Zertifikats Bekanntgabe
  • Zurückziehungs Bekanntgabe
  • CRL Bekanntgabe
  • Bestätigung
  • Verschachtelte Nachricht
  • Allgemeine Nachricht
  • Allgemeine Antwort
  • Fehler Nachricht
  • Zertifikats Bestätigung
  • Befragungs Anfrage
  • Befragungs Antwort

Nachrichtenformat[Bearbeiten]

CMP-Nachrichten sind DER kodierte ASN.1 Datenstrukturen. Der Grundaufbau besteht aus einem Header, dessen Inhalt den meisten Nachrichtentypen gemein ist und aus einem Body, der Informationen enthält, die für den jeweiligen Typ spezifisch sind. Außerdem können optional noch Daten zum Schutz der Integrität sowie zusätzliche, für den Empfänger eventuell nützliche Zertifikate in einer Nachricht enthalten sein.

Der Body der Anforderungstypen für Initialisierung, Zertifizierung, Schlüssel Aktualisierung, Schlüssel Wiederherstellung und Kreuz-Zertifizierung entspricht dem in RFC 4211 definierten Certificate Request Message Format (deutsch Zertifikats Anforderungs Nachrichtenformat, kurz CRMF). Die Formate der restlichen Nachrichten sind im RFC 4210 beschrieben, welches CMP definiert.

Transport[Bearbeiten]

Für den Transport von CMP-Nachrichten sind mehrere Möglichkeiten vorgesehen:[1]

  • Über TCP oder jedes andere zuverlässige, verbindungsorientierte Transportprotokoll.
  • In einer HTTP-Nachricht gekapselt.
  • In einer Datei, z. B. über FTP oder SCP.
  • Per E-Mail, wobei der MIME-Kodierungsstandard benutzt wird. Der dabei gesetzte Content-Type ist application/pkixcmp. In älteren Versionen des Standards wurde application/x-pkixcmp verwendet.

Laut Peter Gutmann, dem Autor der cryptlib, ist der in HTTP gekapselte Transport am üblichsten.[2]

Implementierungen[Bearbeiten]

  • Die Bibliothek cryptlib implementiert CMP Komponenten.
  • EJBCA, eine in Java geschriebene CA, implementiert ein Subset[3] der Funktionen von CMP.
  • OpenSSL kann auf der Clientseite CMP Nachrichten erzeugen und parsen. Hierfür wird ein zusätzlicher Patch benötigt.[4]
  • Der Certifier der finnischen Firma Insta unterstützt CMP.
  • BouncyCastle unterstützt CMP für Java und C#. Allerdings sind die Implementierungen in den Versionen 1.3x (Java) und 1.7x (C#) (und davor) fehlerhaft.

Spezifikationen[Bearbeiten]

  • RFC 2510 Internet X.509 Public Key Infrastructure Certificate Management Protocols
  • RFC 4210 Internet X.509 Public Key Infrastructure Certificate Management Protocol (CMP)

Einzelnachweise[Bearbeiten]

  1. tools.ietf.org
  2. osdir.com
  3. ejbca.sourceforge.net
  4. CMP for OpenSSL (englisch)