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 CoAP SMTP
Transport TCP
Internet IP (IPv4, IPv6)
Netz-Zugang Ethernet Token
Bus
Token
Ring
FDDI
Vorgeschlagener Standard:

RFC 4210 (CMP, 2005)[1]

Obsoleter Standard:

RFC 2510 (CMP, 1999)[2]

Das Certificate Management Protocol (CMP, englisch für „Zertifikat-Verwaltungsprotokoll“) ist ein Protokoll von der IETF 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
  • Aktualisierungs-Anfrage
  • Aktualisierungs-Antwort
  • Schlüssel-Wiederherstellungs-Anfrage
  • Schlüssel-Wiederherstellungs-Antwort
  • Widerruf-Anforderung
  • Widerruf-Antwort
  • Kreuz-Zertifizierungs-Anforderung
  • Kreuz-Zertifizierungs-Antwort
  • CA-Schlüssel-Aktualisierungs-Bekanntgabe
  • Zertifikats-Bekanntgabe
  • Widerruf-Bekanntgabe
  • CRL-Bekanntgabe
  • Bestätigung
  • Verschachtelte Nachricht
  • Allgemeine Nachricht
  • Allgemeine Antwort
  • Fehler-Nachricht
  • Zertifikats-Bestätigung
  • Abfrage-Anfrage
  • Abfrage-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[3] definierten Certificate Request Message Format (CRMF, deutsch Zertifikats-Anforderungs-Nachrichtenformat). Die Formate der restlichen Nachrichten sind im RFC 4210 beschrieben,[1] welches CMP definiert.

Transport Bearbeiten

Für den Transport von CMP-Nachrichten gibt es viele Möglichkeiten, insbesondere:[4]

  • Über TCP oder jedes andere zuverlässige, verbindungsorientierte Transportprotokoll.
  • In HTTP-Nachrichten gekapselt, optional zusätzlich über TLS abgesichert (HTTPS).
  • In CoAP-Nachrichten gekapselt, ggf. zusätzlich über DTLS abgesichert.[5]
  • In Dateien, 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.

Der in HTTP gekapselte Transport ist am üblichsten.[6]

Implementierungen Bearbeiten

  • Die Bibliothek cryptlib implementiert CMP Komponenten.
  • EJBCA, eine in Java geschriebene CA, implementiert ein Subset[7] der Funktionen von CMP.
  • OpenSSL 3.0 implementiert die wichtigsten CMP-Features und bietet ein Kommandozeilen-Tool für einen CMP-Client.[8]
  • Der Certifier der finnischen Firma Insta unterstützt CMP.
  • BouncyCastle unterstützt CMP-Nachrichten für Java und C#.

Geschichte Bearbeiten

  • CMP Version 1 wurde in RFC 2510 spezifiziert,[2] ersetzt durch RFC 4210,[1] das CMP Version 2 spezifiziert.
  • CMP Version 3 ist in Vorbereitung,[9] ebenso ein leichtgewichtiges CMP-Profil für industrielle Anwendungen.[10]

Normen und Standards Bearbeiten

  • RFC 4210 – Internet X.509 Public Key Infrastructure Certificate Management Protocol (CMP). 2005 (englisch).
  • RFC 4211 – Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF). (Basis für CMP und CMC, englisch).
  • RFC 6712 – Internet X.509 Public Key Infrastructure – HTTP Transfer for the Certificate Management Protocol (CMP). (Erweiterung von RFC 4210, englisch).

Einzelnachweise Bearbeiten

  1. a b c RFC 4210 – Internet X.509 Public Key Infrastructure Certificate Management Protocol (CMP). 2005 (englisch).
  2. a b RFC 2510 – Internet X.509 Public Key Infrastructure Certificate Management Protocols. 1999 (englisch).
  3. RFC 4211 – Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF). (Basis für CMP und CMC, englisch).
  4. RFC 6712 – Internet X.509 Public Key Infrastructure – HTTP Transfer for the Certificate Management Protocol (CMP). (Erweiterung von RFC 4210, englisch).
  5. datatracker.ietf.org
  6. osdir.com: Re: CMP – RFC??? (Memento vom 30. September 2007 im Internet Archive) (englisch)
  7. ejbca.sourceforge.net
  8. CMP client support in OpenSSL 3.0 (englisch)
  9. Certificate Management Protocol (CMP) Updates. ietf.org
  10. Lightweight Certificate Management Protocol (CMP) Profile. ietf.org