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 | Quelltext 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 | Quelltext 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 | Quelltext 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 | Quelltext 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 | Quelltext 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 | Quelltext bearbeiten]

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