This wiki has been migrated to https://gitlab.com/wireshark/wireshark/-/wikis/home and is now deprecated. Please use that site instead.
Differences between revisions 1 and 14 (spanning 13 versions)
Revision 1 as of 2005-10-26 14:45:35
Size: 1832
Editor: 217
Comment:
Revision 14 as of 2010-07-05 10:36:16
Size: 4324
Editor: MartinPeylo
Comment: Explained the preference settings
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
CMP is a protocol for managing Public Key Infrastructures (PKI) based on X.509v3 certificates. Protocol messages are defined for certificate creation and management. It is used by commercial PKI products as ''Entrust Security Manager'', ''Unicert'', ''Insta Certifier'' and ''Cryptlib''. An OpenSSL client side implementation is work in progess.
Line 4: Line 5:
CMP is a protocol for managing Public Key Infrastrictures (PKI) based on X.509v3 certificates. Protocol messages are defined for certificate creation and management. It is used by commercial PKI products as ''Entrust Security Manager'' and ''Unicert''
Line 6: Line 6:

TODO: 
TODO:
Line 10: Line 9:

 * ["TCP"]: CMP can use ["TCP"] or ["HTTP"] as its transport protocol. The well known TCP port for CMP traffic is 829.
 * [[TCP]]: CMP can use [[TCP]] or [[HTTP]] as its transport protocol. The well known TCP port for CMP traffic is 829.
 * While there is no implementation known supporting it, transporting CMP over email ([[SMTP]], [[POP]] etc.) or file transfer ([FTP]) is also mentioned in CMPtrans (see below).
Line 14: Line 13:
TODO: Add example traffic here (as plain text or Wireshark screenshot).
Line 15: Line 15:
TODO: Add example traffic here (as plain text or Ethereal screenshot).

== Ethereal ==

TODO:
== Wireshark ==
TODO:
Line 22: Line 19:
{{attachment:Wireshark_1.2.9_Windows-CMP_Preferences.png}}
Line 23: Line 21:
TODO:. === Reassemble CMP-over-TCP message spanning multiple TCP segments: ===
When this preference is enabled, the CMP dissector will reassemble CMP messages, using TCP-Messaging protocol for transport, when it has been transmitted over more than one TCP segment.

=== Alternate TCP port: ===
This preference can be used to set the TCP port for TCP-Messaging when it is different than the well-known TCP port (829) for transporting CMP, which is used by default. This default is used when the preference is set to 0.

=== Alternate HTTP port: ===
This preference can be used to set an alternate TCP port in case of HTTP transport. This option should be set either when a TCP port is used which is not configured to be HTTP or when the Content-Type of the transmitted HTTP header is wrongfully not set to "application/pkixcmp". This preverence is disabled when the value is set to 0.

=== Alternate TCP-style-HTTP port: ===
This preference can be used to set an alternate TCP port in case of TCP-messaging over HTTP transport. This option should be set either when a TCP port is used which is not configured to be HTTP or when the Content-Type of the transmitted HTTP header is wrongfully not set to (the unofficial) "application/pkixcmp-poll". This preverence is disabled when the value is set to 0.
Line 26: Line 34:

XXX - Add a simple example capture file to the SampleCaptures page and link from here (see below). Keep this file short, it's also a good idea to gzip it to make it even smaller, as Ethereal can open gzipped files automatically.

 * attachment:SampleCaptures/PROTO.pcap
 * [[attachment:SampleCaptures/cmp-trace.pcap.gz]] CMP certificate requests
 * [[attachment:SampleCaptures/cmp-in-http-with-errors-in-cmp-protocol.pcap.gz]] CMP version 2 encapsulated in HTTP on port 4711. Full "Initialization Request" and rejected "Key Update Request". There are some errors in the CMP packages.
 * [[attachment:SampleCaptures/cmp_in_http_with_pkixcmp-poll_content_type.pcap.gz]] CMP version 2 encapsulated in HTTP. The CMP messages are of the deprecated but used content-type "pkixcmp-poll", so they are using the TCP transport style. In two of the four CMP messages, the content type is not explicitly set, thus they cannot be dissected correctly.
Line 32: Line 39:
A complete list of CMP display filter fields can be found in the [http://www.ethereal.com/docs/dfref/protofirstletter/proto.html display filter reference] A complete list of CMP display filter fields can be found in the [[http://www.wireshark.org/docs/dfref/c/cmp.html|display filter reference]]
Line 34: Line 41:
 Show only the CMP based traffic: {{{  . Show only the CMP based traffic:
{{{
Line 38: Line 46:
You cannot directly filter CMP while capturing. However, if you know the [[TCP]] port used (see above), you can filter on that one.
Line 39: Line 48:
You cannot directly filter CMP protocol while capturing. However, if you know the ["TCP"] port used (see above), you can filter on that one.

 Capture only the CMP traffic over the default port (829): {{{
 . Capture only the CMP traffic over the default port (829):
 {{{
Line 45: Line 53:

 * add link to PROTO specification and where to find additional info on the web about it, e.g.:
 * [http://www.ietf.org/rfc/rfc2510.txt RFC 2510] ''Internet X.509 Public Key Infrastructure Certificate Management Protocols'' - It has been replaced by [http://www.ietf.org/rfc/rfc4210.txt RFC 4210] which doesn't address transport issues.

== Discussion ==
 * [[http://www.ietf.org/rfc/rfc4210.txt|RFC 4210]] ''Internet X.509 Public Key Infrastructure Certificate Management Protocols''. This version obsoletes [[http://www.ietf.org/rfc/rfc2510.txt|RFC 2510]]. According to the new RFC, the CMP transport protocol issues are handled in the separate CMPtrans document.
 * [[http://tools.ietf.org/html/draft-ietf-pkix-cmp-transport-protocols-05|Last IETF CMPtrans draft]] This draft for ''CMPtrans'' is expired, hence there is '''no obligatory transport protocols spec available'''. There are obvious mistakes in it which may cause confusion. Implementations more or less adhere to it.
 * [[http://www.ietf.org/rfc/rfc4211.txt|RFC 4211]] ''Certificate Request Message Format'' is more or less bound to CMP. This Version obsoletes [[http://www.ietf.org/rfc/rfc2511.txt|RFC 2511]] and is used by RFC 4210

Certificate Management Protocol (CMP)

CMP is a protocol for managing Public Key Infrastructures (PKI) based on X.509v3 certificates. Protocol messages are defined for certificate creation and management. It is used by commercial PKI products as Entrust Security Manager, Unicert, Insta Certifier and Cryptlib. An OpenSSL client side implementation is work in progess.

History

TODO:

Protocol dependencies

  • TCP: CMP can use TCP or HTTP as its transport protocol. The well known TCP port for CMP traffic is 829.

  • While there is no implementation known supporting it, transporting CMP over email (SMTP, POP etc.) or file transfer ([FTP]) is also mentioned in CMPtrans (see below).

Example traffic

TODO: Add example traffic here (as plain text or Wireshark screenshot).

Wireshark

TODO:

Preference Settings

Wireshark_1.2.9_Windows-CMP_Preferences.png

Reassemble CMP-over-TCP message spanning multiple TCP segments:

When this preference is enabled, the CMP dissector will reassemble CMP messages, using TCP-Messaging protocol for transport, when it has been transmitted over more than one TCP segment.

Alternate TCP port:

This preference can be used to set the TCP port for TCP-Messaging when it is different than the well-known TCP port (829) for transporting CMP, which is used by default. This default is used when the preference is set to 0.

Alternate HTTP port:

This preference can be used to set an alternate TCP port in case of HTTP transport. This option should be set either when a TCP port is used which is not configured to be HTTP or when the Content-Type of the transmitted HTTP header is wrongfully not set to "application/pkixcmp". This preverence is disabled when the value is set to 0.

Alternate TCP-style-HTTP port:

This preference can be used to set an alternate TCP port in case of TCP-messaging over HTTP transport. This option should be set either when a TCP port is used which is not configured to be HTTP or when the Content-Type of the transmitted HTTP header is wrongfully not set to (the unofficial) "application/pkixcmp-poll". This preverence is disabled when the value is set to 0.

Example capture file

Display Filter

A complete list of CMP display filter fields can be found in the display filter reference

  • Show only the CMP based traffic:
     cmp 

Capture Filter

You cannot directly filter CMP while capturing. However, if you know the TCP port used (see above), you can filter on that one.

  • Capture only the CMP traffic over the default port (829):
     tcp port 829 

  • RFC 4210 Internet X.509 Public Key Infrastructure Certificate Management Protocols. This version obsoletes RFC 2510. According to the new RFC, the CMP transport protocol issues are handled in the separate CMPtrans document.

  • Last IETF CMPtrans draft This draft for CMPtrans is expired, hence there is no obligatory transport protocols spec available. There are obvious mistakes in it which may cause confusion. Implementations more or less adhere to it.

  • RFC 4211 Certificate Request Message Format is more or less bound to CMP. This Version obsoletes RFC 2511 and is used by RFC 4210

CMP (last edited 2013-02-16 10:47:51 by LTejas)