如果我获得了ECDSA签名的证书,那么以前的浏览器能够使用RSA吗?

我正在研究使用ECDHE-ECDSA,有很多关于为什么( https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/ )和( http:// blog例如,.cloudflare.com / ecdsa-the-digital-signature-algorithm-of-a-better-internet )。

显然,浏览器的支持并不好,但Chrome 30,Windows 8上的Internet Explorer 11,OS X 10.9上的Safari 7以及Firefox 26都支持TLS 1.2。

我已经看过几个CA,只有几个ECDSA(Verisign / Symantec)的签名证书。 我的问题是:如果我获得了ECDSA的证书并在我的密码链中正确回退,那么较旧的浏览器是否可以使用RSA?

我有这样的感觉,答案是否定的,因为如果你签署了RSA证书,你不能使用ECDSA,但是我想确定之前我排除了ECDHE-ECDSA。

保罗

在Information Security SE上看看这个Q / A:

TLS服务器是否可能向同一站点的客户端发送多个证书?

严格来说,服务器可以将任意数量的证书发送到客户端,作为其Certificate消息的一部分。 但是,正如标准所说 :

发送者的证书必须在列表中首先出现。 以下每个证书都必须直接certificate前面的证书。

因此,真正的兼容服务器不能向客户端发送证书select,也不能期望客户端使用除第一个发送的证书之外的任何其他证书。

对于签名algorithm的支持 ,在7.4.1.4.1节中有一个标准的TLS扩展 ,客户可以在握手早期(在ClientHello ,这是程序的第一个消息)告诉服务器,它支持哪些散列函数和签名algorithm。 这允许拥有RSA签名证书和ECDSA签名证书的服务器发送一个或另一个,具体取决于客户端支持的内容。 这是TLS中的典型情况:客户build议,服务器select。

(实际上,对这种扩展的支持还不是很普遍,但实际上,每个人都使用RSA并支持RSA。)