我正在使用具有相互 SSL 安全性的 WCF 服务,我想检查我对何时使用什么证书的理解。
这个对吗?
客户端将客户端公共证书交给服务器
服务器将服务器公共证书交给客户端
客户端发送使用服务器公共证书加密的请求
服务器使用服务器私有证书解密请求
服务器发送使用客户端公共证书加密的响应
客户端使用客户端私有证书解密响应
或者它是否以其他方式工作?
我正在使用具有相互 SSL 安全性的 WCF 服务,我想检查我对何时使用什么证书的理解。
这个对吗?
客户端将客户端公共证书交给服务器
服务器将服务器公共证书交给客户端
客户端发送使用服务器公共证书加密的请求
服务器使用服务器私有证书解密请求
服务器发送使用客户端公共证书加密的响应
客户端使用客户端私有证书解密响应
或者它是否以其他方式工作?
RFC 2246,第 7.4 节详细介绍了握手。就您的问题而言,其他版本的 SSL/TLS 的工作方式非常相似。
SSL/TLS 涉及两种类型的加密。非对称密钥加密和对称密钥加密。证书用于非对称密钥加密,仅在握手过程中使用。
证书使用的加密时间很短,在握手中使用。服务器公钥/私钥对(非对称密钥)用于保护会话密钥(对称密钥)。客户端公钥/私钥对用于向服务器证明客户端就是它所说的那个人。它知道这一点,因为客户端能够使用客户端私钥(只有它知道)加密数据(双方都知道的数据),并且服务器可以使用客户端公钥对其进行解密。
对于排序,我在下面的摘要列表中将您问题的部分加粗。这是来自MSDN的一个很好的总结:
TLS 握手协议涉及以下步骤:
WCF 请求/响应都将在客户端/服务器切换到使用会话密钥(对称密钥)进行加密之后。此时它不会使用证书私钥/公钥。