保护 TLS 客户端证书中的信息

信息安全 tls 证书
2021-08-13 04:57:00

如果我理解正确,当使用带有客户端身份验证的 TLS 时,客户端证书以纯文本形式传输到服务器。客户端证书可能包含个人信息(如CN=nameX509v3 Subject Alternative Name: email:name@server.com),可用于识别连接到使用 https 保护的站点的用户。

有没有办法在使用 TLS 客户端身份验证时安全地将客户端证书传输到服务器,而不暴露个人信息?

1个回答

有可能的:

  • 服务器和客户端协商 SSL ,无需客户端证书
  • 加密通信开始
  • 服务器发送 Hello Request 请求重新协商,这个是加密的
  • 客户愿意,另一次握手接踵而至
  • 服务器发送证书请求以触发客户端证书身份验证
  • (加密)握手正常继续,客户端证书受 TLS 保护。

我不知道你能多么容易地说服现有的服务器实现这样做,但协议允许这样做。我似乎记得在第一次(未加密的)握手完成后立即触发重新协商的其他现有原因和实现。


更新以反映 @dave_thompson_085 的更正,另请参阅他对 TLS 1.3 的评论。