【发布时间】:2014-09-05 06:55:43
【问题描述】:
我有一些关于证书的基本问题。先说一下我对SSL认证的理解。
SSL/TLS 基本上有两个主要的东西,
- 身份验证 - 确保我们在两端与正确的一方进行通信。
- 加密 - 对两端之间传输的实际数据进行加密。
证书具有公钥和一些附加信息。客户端(比如“C”)和服务器(比如“S”)之间的 SSL 通信是这样工作的,
- C 向 S 发起请求。
- S 将其公钥发送给 C。
- C验证S的身份。(服务器身份验证或服务器认证)
- C 将其公钥发送给 S。
- S验证C的身份。(客户端身份验证或客户端认证)
- C 生成对称或会话密钥(例如“K”)并使用 S 公钥对其进行加密并将其发送到服务器。
- 现在 C 和 S 都有共享的对称密钥,用于加密数据。
在这里,我认为用于客户端身份验证的步骤 4 和 5 是可选的。如果我错了,请纠正我。
步骤 1 到 5 涉及非对称加密模式,即仅用于“身份验证”,之后涉及对称加密模式,用于它们之间的实际数据传输。
我的问题如下,
我从link(与 IIS 服务器相关)中了解到有两种类型的证书。一个是客户端证书,另一个是服务器证书。我认为发起请求的客户端是客户端证书,另一个是服务器证书。客户端和服务器证书 w.r.to OpenSSL 有什么区别?这些证书中的 CN 名称与 OpenSSL 有什么不同吗?
我被要求使用客户端证书进行身份验证。这是否意味着我们正在绕过服务器身份验证并仅使用客户端证书进行身份验证?我不这么认为。据我了解,除了服务器身份验证之外,还应该进行客户端身份验证。如果我在这里错了,请纠正我。
【问题讨论】:
-
您的步骤 6 和 7 不正确。会话密钥通过密钥协商协议进行协商。它不是由客户选择的;未加密;未传输;并且没有被解密。
标签: ssl encryption openssl