authentication - 为什么ssl密码套件包含认证算法?

标签 authentication encryption ssl certificate x509

SSL 的握手应该在包含身份验证、 key 交换、加密和摘要算法的对等点之间协商密码套件。但是服务器发给客户端的X.509证书中已经包含了认证算法,为什么SSL还要重新协商认证算法呢?

最佳答案

“密码套件”是关于支持的:客户端和服务器尝试选择一组他们都知道如何处理的算法。例如,如果客户端宣布它可以使用 TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA,则服务器知道客户端将知道如何处理 DSS 签名(通过 Diffie-Hellman key 交换计算),因此服务器可以使用带有 DSS 公钥的证书。如果我们假设服务器有几个证书(具有不同的 key 类型),这是有道理的:服务器想要向客户端发送“正确的”证书。

(这在一定程度上是理论上的,因为在实践中每个人都支持并使用 RSA——或者有时使用 RSA 签名的临时 Diffie-Hellman。)

关于authentication - 为什么ssl密码套件包含认证算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6994356/

相关文章:

javascript - 无法弄清楚我的 JavaScript 代码出了什么问题

c# - iOS 中的 CommonCrypto 与 C# 中的 Rijndael 产生不同的结果

java - 在java中使用cipher,如何使加密文件的长度为16的倍数?

iOS:SSL 错误 - 页面未在 WKWebView 中加载但在 Safari 中加载

mongodb - 无法使用带有服务器 CA 验证的 TLS 连接到 AWS 数据库

Android SSL - CertPathValidatorException

api - Spotify API 非法的redirect_uri

android - 自动登录应用程序

php - 我如何使用 OpenID 并在我的 Laravel 应用程序中实现它?

ios - 加密或部分加密核心数据数据库?