【问题标题】:TLS mutual authenticationTLS相互认证
【发布时间】:2012-07-16 08:13:31
【问题描述】:

以下信息显示了我的 ssl 连接到我的一台 ldap 服务器的 Wire Shark 日志。在此客户端证书长度为零。请让我知道这是什么意思。是因为缺少客户端身份验证吗?对于相互身份验证,是否必须包含客户端证书?

329 SSLv2   Client Hello
332 TLSv1   Server Hello, Certificate, Certificate Request, Server Hello Done
334 TLSv1   Certificate, Client Key Exchange
336 TLSv1   Change Cipher Spec, Encrypted Handshake Message
337 TLSv1   Change Cipher Spec, Encrypted Handshake Message

在第 332 帧中显示完整的证书信息,第 334 帧显示证书长度:0。 在第 334 帧中,客户端密钥交换包含足够的信息来传递 premaster-secret。

【问题讨论】:

    标签: ssl ssl-certificate


    【解决方案1】:

    Certificate Request 消息表示服务器请求了客户端证书(是否强制)。

    客户端发送的空Certificate消息表示客户端没有找到合适的客户端证书来使用(或选择不使用)。

    服务器是否要继续此连接取决于其配置。客户端证书身份验证可以是可选的。

    [TLS 规范][1] 中描述了此行为:

    仅当服务器发送此消息 请求证书。如果没有合适的证书, 客户端必须发送包含 no 的证书消息 证书。也就是说,certificate_list 结构有一个 长度为零。如果客户端不发送任何证书,则 服务器可以自行决定是否继续握手而不 客户端身份验证,或以致命的握手失败响应 警告。

    (这来自 TLS 1.2 规范,在 TLS 1.1 及更低版本中,它只是 [...] 应该发送证书消息 [...]。) [1]:https://www.rfc-editor.org/rfc/rfc5246#section-7.4.6

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-02
      • 2012-11-19
      • 2012-09-12
      • 2014-03-03
      • 1970-01-01
      • 1970-01-01
      • 2013-11-18
      • 1970-01-01
      相关资源
      最近更新 更多