【问题标题】:ECC - RSA certificates in MTLS handshake QECC - MTLS 握手中的 RSA 证书 Q
【发布时间】:2021-11-10 03:31:44
【问题描述】:

在我们的 MTLS 握手中,我们有一个使用 ECC 颁发的客户端证书和一个使用 RSA 颁发的服务器证书。我们在算法检查中看到握手错误,因为服务器没有 ecdsa 算法,客户端和服务器证书是否应为相同类型(RSA 或 ECC)才能使握手工作,或者有没有办法在服务器端添加 ecdsa 算法而不更改 RSA 服务器证书?

【问题讨论】:

  • 首先要明确的是,您的意思是证书包含 ECC 和RSA 密钥,还是由这些类型的CA 密钥签署?我会将“发布使用”解释为后者,但前者对 TLS 更重要——尽管用于签署每个链中所有证书的密钥类型可能很重要。服务器和客户端证书不必包含相同的类型密钥,只要(1)每个证书都是对端端点(即对等点)支持的类型,并且(2)仅适用于 1.2 之前的协议,服务器证书与 at至少一个由客户端提供且服务器可接受的密码套件。
  • 为了我们的帮助,您必须具体说明您在两端使用的是什么软件、它是如何配置的,以及您遇到的具体错误和位置。链中所有证书的密钥类型和可能的其他特征(例如大小)可能是相关的,签名类型可能不仅仅是密钥类型 - 特别是RSA 密钥可用于传统的 PKCSv1.5 签名用于 RSA-PSS 签名,在 1.3 中通常首选后者,而在较低协议中通常需要前者。

标签: certificate client-certificates handshake mtls


【解决方案1】:

在协商过程中,客户端发送一个 hello 消息。它包含客户端支持的密码套件。收到 hello 消息后,服务器回复 hello 消息,其中包含选择的密码套件。这是谈判阶段。在您的情况下,协商将失败并导致服务器不支持客户端使用的密码套件算法失败。

【讨论】:

  • 这是对的,但与此 Q 无关,因为密码套件完全独立于客户端证书,从不影响或受客户端证书影响。 (在 TLS 1.3 中,它也独立于 server 证书,但在早期协议中并非如此。)
猜你喜欢
  • 1970-01-01
  • 2014-03-03
  • 1970-01-01
  • 2021-10-06
  • 2011-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-13
相关资源
最近更新 更多