我需要与ECDSA证书相关的信息。据我所知,ECDSA证书应包含ECDSA签名,但我看到Facebook和Google服务器证书具有带RSA签名的ECDSA证书。 是否有可能拥有带RSA签名的ECDSA证书?ECDSA证书是否有RSA签名?
回答
证书的签名是由发行人使用发行人的密钥创建的。因此,如果证书A在内部具有ECC密钥(即ECDSA证书)但发行方B具有RSA密钥,则A的签名将是RSA签名,因为这是发行机构签署的内容。
例如,在facebook.com的情况下,证书本身具有ECC密钥,但发行者证书DigiCert SHA2高保证服务器CA具有RSA密钥。因为Facebook证书的签名是由发行者用发行者密钥完成的,所以它也必须使用RSA。
非常感谢您的回应。 –
这里我的问题是,如果证书是通过RSA密钥签名的,那么它将基于RSA的服务器身份验证通过客户端而不是ECDSA ...然后密码应该像ECDHE_RSA而不是ECDHE_ECDSA .. –
以下是摘录自RFC-4492 ..其中当ECDHE_ECDSA被选择时期望在ECDSA中签名... –
Steffen的答案对于X.509标准是正确的,许多浏览器 都是基于标准SSL库支持的情况。然而,在这个粗糙的现实世界中,我发现一些设备拒绝具有RSA签名的ECDSA证书,并且通过TLS 1.2协商。
我想原因是,这种设备的作者遵循RFC-4492,(**是我的)
2.2. ECDHE_ECDSA
In ECDHE_ECDSA, the server's certificate **MUST** contain an ECDSA-
capable public key and **be signed with ECDSA.**
The server sends its ephemeral ECDH public key and a specification of
the corresponding curve in the ServerKeyExchange message. These
parameters MUST be signed with ECDSA using the private key
corresponding to the public key in the server's Certificate.
尽管RFC-5246,TLS1.2,放宽此限制。 (**是我的):
7.4.4. Certificate Request
...
If the client provided a "signature_algorithms" extension, then all
certificates provided by the server MUST be signed by a
hash/signature algorithm pair that appears in that extension. **Note
that this implies that a certificate containing a key for one
signature algorithm MAY be signed using a different signature
algorithm (for instance, an RSA key signed with a DSA key). This is
a departure from TLS 1.1, which required that the algorithms be the
same.** Note that this also implies that the DH_DSS, DH_RSA,
ECDH_ECDSA, and ECDH_RSA key exchange algorithms do not restrict the
algorithm used to sign the certificate. Fixed DH certificates MAY be
signed with any hash/signature algorithm pair appearing in the
extension. The names DH_DSS, DH_RSA, ECDH_ECDSA, and ECDH_RSA are
historical.
所以要警告这样的设备存在。
- 1. ECDSA签名验证
- 2. 从PyKCS11验证ECDSA签名
- 3. 是否可以验证自签名证书和可信证书?
- 4. 密钥不存在 - 使用自签名ECDSA证书
- 5. Java代码签名证书是否与SSL证书相同?
- 6. 自签名证书和根CA证书是否相同?
- 7. RSA签名验证与无证书的JavaScript
- 8. OpenSSL ECDSA签名和验证文件
- 9. ECDSA与OpenSSL签名,使用Crypto ++验证
- 10. 证书签名
- 11. 签名证书
- 12. RSA数字签名验证
- 13. 验证RSA签名iOS
- 14. 如何验证没有验证功能的Crypto ++的ECDSA签名?
- 15. Comodo的代码签名证书是否有效?
- 16. PowerShell是否有创建非自签名证书的工具?
- 17. 如何在Python中使用ecdsa签名和验证签名
- 18. 自签名证书是否可供签署SAML令牌?
- 19. 自签名证书
- 20. 签名证书2.1
- 21. 自签名证书
- 22. 自签名证书
- 23. 自签名证书
- 24. openssl X509_verify_cert()是否验证证书中的签名?
- 25. SSL证书签名验证
- 26. 自签名证书到Authenticode证书?
- 27. ECDSA签名大小太长?
- 28. JavaCard中的ECDSA签名
- 29. Spring saml库是否支持过期证书滚动的多个签名证书?
- 30. 自签名SSL证书错误:证书具有无效数字签名
ECDSA和RSA没有任何兼容性,所以我发现*“我看到Facebook和谷歌服务器证书具有带RSA签名的ECDSA证书”*。请显示您看到的内容。此外,这不是一个编程问题,可能更适合[security.se]。 –
我抓住了数据包,我看到facebook选择密码ECDHE_ECDSA,这意味着它想通过ECDSA证书进行身份验证,并将发送ECDSA证实,以下是数据包捕获的o/p ... –
签名算法:sha256WithRSAEncryption aa :91:ae:52:01:8c:60:f6:02:b6:94:eb:af:6e:eb:dd:3c:c8: e1:6f:17:ab:b8:28:80: ec:dc:54:82:56:24:c1:16:08:e1:c2: –