Skip to content
Wireshark Wiki 中文翻译整理专题首页原始页面

CMP

CMP 是一种用于管理基于 X.509v3 证书的 Public Key Infrastructures(PKI)的协议。该协议定义了用于证书创建和管理的消息。CMP 被 Nexus Certificate Manager、Entrust Security Manager、Unicert、Insta Certifier 和 Cryptlib 等商业 PKI 产品使用。OpenSSL 客户端实现仍在开发中。

协议依赖

  • 在 RFC 2510 版本以及 RFC 4210 的一些实现中,CMP 在 TCP 之上使用自己的 "TCP-Messaging" 协议。CMP 流量的知名 TCP 端口是 829。

  • 如今,HTTP 通常被用作 RFC 4210 实现的传输协议。HTTP header 中设置的 Content-Type 是 "application/pkixcmp"

  • 某些实现可能会组合使用上述传输协议,即 TCP-Messaging-over-HTTP。在这种情况下,HTTP header 中设置的 Content-Type 应为非官方的 "application/pkixcmp-poll"。

  • 虽然目前没有已知实现支持,但 CMPtrans(见下文)中也提到了通过 email(SMTP、POP 等)或文件传输(FTP)传输 CMP。

示例流量

所示 trace 可在此处获得:cmp_IR_sequence_OpenSSL-Cryptlib.pcap

首选项设置

重新组装跨多个 TCP segment 的 CMP-over-TCP 消息:

启用此首选项时,如果使用 TCP-Messaging 协议作为传输,CMP dissector 将重新组装通过多个 TCP segment 传输的 CMP 消息。

备用 TCP 端口:

当用于传输 CMP 的 TCP-Messaging 端口不同于知名 TCP 端口(829)时,可以使用此首选项设置该 TCP 端口;默认使用知名端口。当该首选项设置为 0 时,将使用此默认值。

备用 HTTP 端口:

在 HTTP 传输场景中,可以使用此首选项设置备用 TCP 端口。当使用的 TCP 端口未配置为 HTTP,或传输的 HTTP header 的 Content-Type 错误地未设置为 "application/pkixcmp" 时,应设置此选项。当值设置为 0 时,此首选项被禁用。

备用 TCP-style-HTTP 端口:

在 HTTP 之上的 TCP-messaging 传输场景中,可以使用此首选项设置备用 TCP 端口。当使用的 TCP 端口未配置为 HTTP,或传输的 HTTP header 的 Content-Type 错误地未设置为(非官方的)"application/pkixcmp-poll" 时,应设置此选项。当值设置为 0 时,此首选项被禁用。

示例捕获文件

  • SampleCaptures/cmp_IR_sequence_OpenSSL-Cryptlib.pcap CMP version 2,封装在端口 8080 上的 HTTP 中。完整的 "Initialization Request"。

  • SampleCaptures/cmp_IR_sequence_ OpenSSL-EJBCA.pcap CMP version 2,封装在端口 880 上的 HTTP 中。完整的 IR,使用 CRMF regToken 认证。

  • SampleCaptures/cmp-trace.pcap.gz CMP certificate requests

  • SampleCaptures/cmp-in-http-with-errors-in-cmp-protocol.pcap.gz CMP version 2,封装在端口 4711 上的 HTTP 中。完整的 "Initialization Request" 和被拒绝的 "Key Update Request"。CMP packages 中存在一些错误。

  • SampleCaptures/cmp_in_http_with_pkixcmp-poll_content_type.pcap.gz CMP version 2,封装在 HTTP 中。CMP 消息使用已弃用但仍被使用的 content-type "pkixcmp-poll",因此它们使用 TCP 传输风格。在四个 CMP 消息中的两个中,content type 未被显式设置,因此无法被正确解析。

显示过滤器

完整的 CMP 显示过滤器字段列表可在显示过滤器参考中找到

仅显示基于 CMP 的流量:

 cmp

捕获过滤器

抓包时无法直接过滤 CMP。不过,如果您知道所使用的 TCP 端口(见上文),可以按该端口进行过滤。

仅捕获默认端口(829)上的 TCP-Messaging CMP 流量:

 tcp port 829

外部链接

  • RFC 4210Internet X.509 Public Key Infrastructure Certificate Management Protocols。此版本取代 RFC 2510。根据新的 RFC,CMP 传输协议问题在单独的 CMPtrans 文档中处理。

  • RFC 4211Certificate Request Message Format 或多或少与 CMP 绑定。此版本取代 RFC 2511,并由 RFC 4210 使用

  • Last IETF CMPtrans draft 该 CMPtrans 草案已经过期,因此没有可用的强制性传输协议规范。其中存在明显错误,可能造成混淆。实现或多或少遵循它。

Imported from https://wiki.wireshark.org/CMP on 2020-08-11 23:12:18 UTC

原始页面图片

Wireshark_1.2.9-OpenSSL_Cryptlib-CMP-Initial_Registration.png
Wireshark_1.2.9-OpenSSL_Cryptlib-CMP-Initial_Registration.png
Wireshark_1.2.9_Windows-CMP_Preferences.png
Wireshark_1.2.9_Windows-CMP_Preferences.png

相关 Wireshark Wiki 页面

网络分析技术档案