gpt4 book ai didi

WCF 相互 SSL 安全什么时候使用什么证书?

转载 作者:太空宇宙 更新时间:2023-11-03 12:58:17 28 4
gpt4 key购买 nike

我正在使用具有相互 SSL 安全性的 WCF 服务,我想检查一下我对何时使用什么证书的理解。

这是正确的吗?

  1. 客户端将客户端公共(public)证书交给服务器

  2. 服务器将服务器公共(public)证书交给客户端

  3. 客户端发送使用服务器公共(public)证书加密的请求

  4. 服务器使用服务器私有(private)证书解密请求

  5. 服务器发送使用客户端公共(public)证书加密的响应

  6. 客户端使用客户端私有(private)证书解密响应

还是以其他方式起作用?

WCF Mutual SSL Certs

最佳答案

RFC 2246,第 7.4 节详细介绍了握手。对于您的问题,其他版本的 SSL/TLS 的工作方式非常相似。

SSL/TLS 涉及两种类型的加密。非对称 key 加密和对称 key 加密。证书用于非对称 key 加密,仅用于握手过程。

证书使用的加密在时间上非常简短,用于握手。服务器公钥/私钥对(非对称 key )用于保护 session key (对称 key )。客户端公钥/私钥对用于向服务器证明客户端就是它所说的那个人。它知道这一点,因为客户端能够使用客户端私钥(只有它自己知道)加密数据(双方都知道的数据),而服务器可以使用客户端公钥对其进行解密。

对于排序,我在下面的摘要列表中将您问题的部分加粗了。这是来自 MSDN 的一个很好的总结:

TLS 握手协议(protocol)包括以下步骤:

  1. 客户端向服务器发送“客户端问候”消息,以及客户端的随机值和支持的密码套件。
  2. 服务器通过向客户端发送“服务器问候”消息以及服务器的随机值进行响应。
  3. 服务器将其证书发送给客户端进行身份验证,并可能向客户端请求证书。服务器发送“Server hello done”消息。
  4. 如果服务器已向客户端请求证书,客户端会发送它
  5. 客户端创建一个随机的 Pre-Master Secret 并使用来自服务器证书的公钥对其进行加密,将加密的 Pre-Master Secret 发送到服务器。
  6. 服务器收到预主 key 。服务端和客户端分别根据Pre-Master Secret生成Master Secret和 session key 。
  7. 客户端向服务器发送“更改密码规范”通知以指示客户端将开始使用新的 session key 来散列和加密消息。客户端还发送“客户端完成”消息。
  8. 服务器收到“更改密码规范”并使用 session key 将其记录层安全状态切换为对称加密。服务器向客户端发送“服务器完成”消息。
  9. 客户端和服务器现在可以通过它们建立的安全通道交换应用程序数据。从客户端发送到服务器以及从服务器发送到客户端的所有消息都使用 session key 加密。

WCF 请求/响应都将在客户端/服务器切换到使用 session key (对称 key )进行加密之后进行。此时它不会使用证书私钥/公钥。

关于WCF 相互 SSL 安全什么时候使用什么证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13878362/

28 4 0
京ICP证000000号
广告合作:1813099741@qq.com 6ren.com
Xem sitemap của VNExpress