CMP (Certificate Management Protocol) Familie: unbekannt Einsatzgebiet: Zertifikatsverwaltung Neueste Version: cmp2021(3) OID der neuesten Version: 1.3.6.1.5.5.7.0.16 TCP/UDP-Port: 80 (http), 443 (https), 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 TokenBus TokenRing FDDI … Vorgeschlagener Standard:RFC 9810 (CMP, 2025) Obsoleter Standard:RFC 4210 (CMP, 2005) RFC 2510 (CMP, 1999)

Das Certificate Management Protocol (CMP, englisch für „Zertifikats-Verwaltungsprotokoll“) ist ein Protokoll von der IETF zur Verwaltung digitaler Zertifikate nach dem Standard X.509 in einer Public-Key-Infrastruktur (PKI). Das Protokoll regelt hierbei die Interaktion zwischen PKI-Klienten (Nutzern bzw. von ihnen verwendeten Anwendungen) oder PKI-Komponenten, die X.509-Zertifikate beantragen oder verwalten möchten, und PKI-Komponenten wie einer Registrierungsstelle (RA) oder Zertifizierungsstelle (CA).

Nachrichtentypen 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 CMP-Nachrichten sind DER-kodierte Datenstrukturen, die in ASN.1 definiert sind. Der Grundaufbau besteht aus einem Header, dessen Inhalt den meisten Nachrichtentypen gemein ist, und aus einem Body (Nachrichtenrumpf), der Informationen enthält, die für den jeweiligen Typ spezifisch sind. Außerdem können optional noch Daten zum Schutz der Integrität und Authentizitä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 (CRMF, deutsch Zertifikats-Anforderungs-Nachrichtenformat). Die Formate der restlichen Nachrichten sind im RFC 9810 beschrieben, welches CMP definiert.

Transport Für den Transport von CMP-Nachrichten gibt es viele Möglichkeiten, insbesondere: In HTTP-Nachrichten gekapselt, optional zusätzlich über TLS abgesichert (HTTPS), siehe RFC 9811. In CoAP-Nachrichten gekapselt, ggf. zusätzlich über DTLS abgesichert, siehe RFC 9482. Über TCP oder jedes andere zuverlässige, verbindungsorientierte Transportprotokoll. In Dateien, z. B. über FTP oder SCP. Per E-Mail, wobei der MIME-Kodierungsstandard benutzt wird.

Der in HTTP gekapselte Transport ist am üblichsten. osdir.com (englisch).

Der Content-Type für CMP ist application/pkixcmp. In veralteten Versionen wurde application/x-pkixcmp verwendet.

Implementierungen OpenSSL ab Version 3.0 implementiert eine Vielzahl von CMP-Features in C und bietet ein Kommandozeilen-Tool für einen CMP-Client.CMP client support in OpenSSL 3.0. openssl.org (englisch). Der sogenannte generic CMP clientgithub.com/siemens/gencmpclient bietet darauf aufbauend eine relativ einfach nutzbare Programmierschnittstelle (), die dem leichtgewichtigen CMP-Profil folgt, welches in RFC 9483 definiert ist. BouncyCastle unterstützt CMP-Nachrichten für Java und C#. Die Bibliothek cryptlib implementiert CMPv2 in C. Diverse CA-Produkte unterstützen die wichtigsten Teile von CMPv2, etwa die in Java geschriebene EJBCA der Firma Keyfactor, der Certifier der finnischen Firma Insta, die Entrust Certificate Authority, der Nexus Certificate Manager, der DigiCert Device Trust Manager und die IBM z/OS PKI Services.

Geschichte

CMP Version 1 wurde in RFC 2510 (CMP, 1999) spezifiziert. CMPv2 wurde in RFC 4210 (CMP, 2005) spezifiziert. CMPv3 wurde zunächst in RFC 9480 (CMP, 2023) als Erweiterung von RFC 4210 spezifiziert, dann aber im Juli 2025 als eigenständiges Dokument herausgebracht RFC 9810 Dort wurden auch diverse meist kleinere Erweiterungen eingefügt, insbesondere die Unterstützung von KEM-Schlüsselmaterial.

Die Spezifikation des HTTP-Transfers für CMP in RFC 6712 (CMP, 2012) wurde im Juli 2025 aktualisiert zu RFC 9811.

Im November 2023 wurde ein leichtgewichtiges CMP-Profil für industrielle Anwendungen als RFC 9483 veröffentlicht, ebenso eine Spezifikation zur Nutzung von Kryptoalgorithmen in CMP als RFC 9481 und zum Transport von CMP-Nachrichten über CoAP als RFC 9482.

Normen und Standards

Einzelnachweise

Kategorie:Internet-Anwendungsprotokoll Kategorie:Digitale Zertifikate