gpt4 book ai didi

wcf - 使用SSL时私钥存储在哪里?

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

在我将在我的本地网络上托管的服务之间使用 ssl 证书之前,我想了解更多有关它的信息。通过在互联网上阅读,这就是我对 SSL 工作原理的理解。

  1. 客户端连接到 WCF 服务
  2. WCF 服务用它的公钥和它的证书回复
  3. 然后客户端验证证书并使用公钥加密他的凭据
  4. wcf 服务然后使用它的私钥解密该消息并验证信息
  5. 等...

知道这里有一些我不明白的地方:

  • 在第 4 步中,WCF 服务在哪里找到它的私钥?
  • 为什么需要 SSL 证书?通过在互联网上阅读,需要验证该服务是否符合我的要求。这对我来说没有意义,因为首先我知道我的服务在本地网络上的 IP 地址(我知道那个服务是谁)。假装这不是我在互联网上的情况,有人试图破解我。在那种情况下,我相信如果我连接到他们的服务而不是我真正的服务,我将无能为力,因为如果你记得在第 2 步 WCF 服务用公钥和证书(纯文本)回复,这意味着有人可以获取该证书并使用它吗?
  • 如果我使用 SSL 证书并且有人可以访问托管该服务的计算机,他可能会以某种方式获取私钥从而使我的连接不安全?

最佳答案

首先,第三步中缺少一些步骤。第三步实际发生的是:

  • 客户端验证证书
  • 客户端和服务器来回发送一些消息,据此他们协商可以使用哪种 key 加密
  • 客户端为该加密算法创建一个 key ,使用服务器的公钥加密 key ,并将加密后的 key 发送给服务器。
  • 服务器现在可以使用他们的私钥解密 key 。
  • 客户端和服务器现在就 key 算法达成一致并共享 key 。所有通信现在都使用共享 key 加密和解密。
  • 客户端使用 key 加密他们的凭据......

这样做的原因是双重的。首先,公钥加密的数学运算比 secret key 加密的数学运算昂贵得多。这个想法是只做一次昂贵的数学运算,以实现共享 secret 的交换。第二,客户端知道服务器的公钥,但客户端可能连公钥都没有,服务器怎么给它发 secret 信息呢?这就是他们必须就共享 key 达成一致的原因。

无论如何继续你的问题:

Where does the service keep its private key?

在 Windows 上,它位于操作系统提供的证书存储中。在其他操作系统上,我不知道。

Why is the certificate needed?

假设您想用信用卡购买我的割草机,但又担心我可能真的是个骗子。你想知道我的真实姓名,这样如果我开始在你的卡上支付我去维加斯的旅行费用,你就可以起诉我。

所以当我们进行交易时,我给你看一张纸,上面写着“Eric Lippert claims that the owner of this piece of this page is Eric Lippert, signed, Eric Lippert”。你相信我吗?如果您已经信任 Eric Lippert,那么您就不需要这张纸,如果您不信任 Eric Lippert,那么这张纸就无法建立信任。这是一个“自签名证书”。

现在,如果我给你看一张纸,上面写着“VeriSign 公司声称这张纸的所有者是 Eric Lippert,签署了 VeriSign”,那么问题是:你相信 VeriSign 已经验证了我的身份吗?如果您这样做,那么这就是与您交谈的人是他们声称的人的证据。

这就是证书的目的。它确定特定公钥确实与特定组织相关联,因为它是由相互信任的第三方签署的,该第三方称为认证机构

当您使用信用卡在线购物时,您可能相信该网站只会对信用卡进行授权收费。该证书验证您要用于加密的公钥确实是该网站的公钥,而不是一些邪恶黑客的公钥。

But the certificate with the public key is public, so couldn't someone grab the certificate and pretend to be the server?

是的,但这对他们没有帮助,除非他们窃取私钥,这是私有(private)的。拥有他人证书的人无法解密使用公钥加密的消息,因此他们将无法与客户端进行 key 交换!即使他们设法欺骗了客户,他们得到的也只是用客户选择的 key 编码的位流,如果没有证书的私有(private)部分,攻击者就无法获得 key 。

That means: if I allow access to my private key, someone can impersonate me, right?

是的。整个系统的安全取决于私钥的私密性。 这就是它被称为私钥的原因。如果攻击者获得了您的私钥的访问权限,那么他们就可以随意冒充您,所以请保密,确保安全。如果您的 key 遭到泄露,可以通过一种机制撤销证书,但通常已经造成损害。

关于wcf - 使用SSL时私钥存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16883438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com