# Protocol de gestió de certificats

CMP en el model TCP/IP: :
| CMP (Protocol de gestió de certificats) ||
| família: | desconegut |
| camp d'aplicació : | gestió de certificats |
| versió més recent: | cmp2000(2) |
| OID de la versió més recent: | 1.3.6.1.5.5.7.0.16 |
| Port TCP/UDP: | 80 (http), 443 (https), 829 (pkix-3-ca-ra) |
| CMP en el model TCP/IP: aplicació CMP CMP HTTP HTTPS CoAP SMTP ... transport TCP Internet IP (IPv4, IPv6) enllaç Ethernet Token Autobús Token Anella FDDI ... ||
| estàndard proposat: | (CMP, 2005) |
| estàndard obsolet: | (CMP, 1999) |
El Certificate Management Protocol (CMP) és un protocol d'Internet estandarditzat per l'IETF que s'utilitza per obtenir certificats digitals X.509 en una infraestructura de clau pública (PKI).
CMP és un protocol molt ric en funcions i flexible, que admet qualsevol tipus de criptografia. Els missatges CMP són autònoms, cosa que, a diferència d'EST, fa que el protocol sigui independent del mecanisme de transport i proporciona seguretat d'extrem a extrem. Els missatges CMP es codifiquen en ASN.1, mitjançant el mètode DER.
CMP es descriu a RFC 4510. Els missatges de sol·licitud d'inscripció utilitzen el format de missatge de sol·licitud de certificat (CRMF), descrit a. L'únic altre protocol que fins ara utilitza CRMF és la gestió de certificats sobre CMS (CMC), descrit a RFC 5273.

## Història

Es descriu una versió obsoleta de CMP a RFC 2510, la versió CRMF corresponent a RFC 2511. S'està preparant una actualització CMP, així com un perfil CMP lleuger centrat en l'ús industrial.

## Entitats PKI

En una infraestructura de clau pública (PKI), les anomenades entitats finals (EE) actuen com a client CMP, sol·licitant un o més certificats per si mateixos a una autoritat de certificació (CA), que emet els certificats legals i actua com a servidor CMP. Cap o qualsevol nombre d'autoritats de registre (RA) es pot utilitzar per mediar entre els EE i les CA, tenint tant una interfície de servidor CMP descendent com una interfície de client CMP amunt. Mitjançant una "sol·licitud de certificació creuada", una CA pot obtenir un certificat signat per una altra CA.

## Característiques

* Missatges autònoms amb protecció independent del mecanisme de transferència; a diferència dels protocols relacionats EST i SCEP, això admet la seguretat d'extrem a extrem.
* Suport complet del cicle de vida del certificat: una entitat final pot utilitzar CMP per obtenir certificats d'una CA, sol·licitar-ne actualitzacions i també obtenir-los revocats.
* La generació de parells de claus la fa normalment el client, però també es pot sol·licitar des del servidor.
* Normalment, la prova de possessió es fa mitjançant una autosignatura del contingut del certificat sol·licitat, però CMP també admet altres mètodes.
* CMP admet l'aspecte molt important de la prova d'origen en dos formats: basat en un secret compartit (utilitzat inicialment) i basat en signatura (utilitzant certificats preexistents).
* En cas que una entitat final hagi perdut la seva clau privada i la CA l'emmagatzemi, es podria recuperar sol·licitant una "recuperació del parell de claus".
* Hi ha diversos tipus de sol·licituds possibles, per exemple per recuperar certificats de CA i obtenir paràmetres i preferències PKI del costat del servidor.

## Transport

Els missatges CMP solen transferir-se mitjançant HTTP, però es pot utilitzar qualsevol mitjà de transport fiable.
* Encapsulat en missatges HTTP, opcionalment utilitzant TLS (HTTPS) per a una protecció addicional.
* Encapsulat en missatges CoAP, utilitzant opcionalment DTLS per a una protecció addicional.
* TCP o qualsevol altre protocol de transport fiable i orientat a la connexió.
* Com a fitxer, per exemple, a través de FTP o SCP.
* Per correu electrònic, utilitzant l'estàndard de codificació MIME.
El tipus de contingut utilitzat és application/pkixcmp; versions anteriors de l'esborrany utilitzaven application/pkixcmp-poll, application/x-pkixcmp o application/x-pkixcmp-poll.

## Implementacions

* OpenSSL versió 3.0 inclou un ampli suport CMP en C.
* L'API Bouncy Castle ofereix un suport CMP de baix nivell en Java i C#.
* RSA BSAFE Cert-J proporciona suport CMP.
* cryptlib proporciona suport CMP.
* EJBCA, un programari de CA, implementa un subconjunt de les funcions CMP.
* Nexus Certificate Manager admet CMP.
* Entrust Authority Security Manager implementa el suport CMP.
* Insta Certifier CA implementa el suport CMPv2.

## Referències

* ↑ Brockhaus, Henik; Oheimb, David von; Gray, John «Certificate Management Protocol (CMP) Updates». RFC 9480 Certificate Management Protocol (CMP) Updates, 11-2023.
* ↑ «CMP» (en anglès). [Consulta: 27 desembre 2023].
* ↑ vinaypamnani-msft. «Cryptography and Certificate Management - Windows Security» (en anglès americà), 11-08-2023. [Consulta: 27 desembre 2023].
* ↑ «Summary of Protocols for PKI Interoperability» (en anglès). [Consulta: 27 desembre 2023].