我一直在学习SSL/TLS协议(从https://www.rfc-editor.org/rfc/rfc5246),并有一些关于该协议的概念性问题。
对于示例:运行openssl x509 -in <server_cert>.pem -text -noout将向您提供有关服务器证书的信息。在一个示例证书上,我看到公钥算法是rsaEncryption (2048位),签名算法是sha256WithRSAEncryption。这不是已经预先确定了在握手中使用的密码套件的一部分吗?
(类似的问题,但没有回答我想要的:为HTTPS挑选密码套件)
发布于 2015-05-29 18:41:41
对于服务器证书:密码套件指示密钥交换的类型,这取决于服务器证书密钥类型。你基本上有以下几点:
Key Usage扩展,上面写着“只签名”)。对于客户端证书:客户端在服务器请求时显示证书。客户端证书类型与密码套件没有任何关系(除了非常罕见的静态DH证书的情况外,我从未见过在实践中使用这种证书)。客户端证书必须适合签名。作为请求客户端证书的握手消息的一部分,服务器发送一些有关支持的算法的信息(请参阅标准)。实际上,TLS 1.2通过提供支持的算法和哈希函数组合的灵活列表,进一步扩展了该机制。
https://security.stackexchange.com/questions/90422
复制相似问题