大多数情况下,我的混淆似乎是从我在WCF环境中理解安全性的尝试中解脱出来的。在WCF中,看起来证书可用于身份验证和加密。基本上,我试图理解:
我不完全确定这是正确的论坛。我的问题源于试图理解WCF,但我想我想理解这背后的理论。如果这是一个好主意,请为我建议正确的论坛。如果有必要的话,我很乐意尝试迁移这个问题。
提前致谢!
答案 0 :(得分:8)
这是一个非常复杂的问题。我将尝试解释一些部分,但尽可能避免细节(即使之后它会很长)。
如何使用证书进行身份验证?
如果私钥的持有者签署了一些数据,其他参与者可以使用签名者的公钥来验证签名。此机制可用于身份验证。私钥和公钥存储在证书中,其中私钥在持有者机器上是安全的,而带有公钥的证书可以公开获得。
它与HTTPS有什么关系?
WCF提供传输和邮件安全性。它们之间的区别在于here。 HTTP的传输安全性是HTTPS,其中只有服务器需要颁发证书,客户端必须信任此证书。此证书既用于向客户端验证服务器,也用于建立安全通道(使用对称加密)。
HTTPS还提供称为Mutual HTTPS的变体,其中客户端必须也已颁发证书,客户端使用证书对服务器进行身份验证。
在这种情况下,邮件安全性如何工作以及两个证书的目的是什么?
在邮件安全的情况下,每条邮件都是单独签名,加密和验证的=所有这些安全信息都是邮件的一部分。在SOAP的情况下,这由许多规范描述,但通常您对安全绑定和X.509令牌配置文件感兴趣。
安全绑定是WS-SecurityPolicy断言的一部分,它描述了消息的安全性。我们有三个绑定:
X.509令牌配置文件指定如何在邮件中传输证书(公钥)以及如何使用它们。
现在,如果您具有对称安全绑定,则只需要服务器证书,因为
这是对称加密,比非对称加密快得多,但WS-Security 1.0中不应提供密钥派生。它在WS-Security 1.1中可用。 HTTPS内部工作方式类似,但整个连接生命周期的密钥相同。
如果您有非对称安全绑定,则需要两个证书:
这意味着遵循算法
签名和加密的顺序可以改变 - 还有另一个WS-SecurityPolicy断言说明应该先做什么。
这些是基础知识。它可能要复杂得多,因为邮件安全性实际上允许您拥有所需数量的证书 - 例如,您可以使用签名令牌与其他证书等签署主要签名。
答案 1 :(得分:1)
证书仅具有公钥/私钥对的公钥。它没有私钥 - 这与证书本身是分开的。当您连接到HTTPS服务器时,您可以信任该服务器是该证书的所有者,因为服务器必须持有私钥(并且希望没有其他人拥有它),否则SSL连接< em>不可能。如果服务器没有保存与其证书的公钥配对的私钥,则它无法向您显示有效的SSL连接。
然后,您可以根据已签署证书链的一个或多个证书颁发机构(CA)来确定您是否信任该特定证书。例如,可能只有一个CA已签署此证书。您在本地拥有受信任的CA根证书,因此您知道它实际上是您的可信CA签署了该服务器证书,因为签名是不可能的,除非该CA 保持私有密钥到CA证书。再次它只是持有私钥,在这种情况下,证明谁签署了证书。这是您可以信任证书的方式。
当您在SSL连接上显示可选的客户端证书时,服务器可以信任您,因为1)它可以看到签署客户端证书的CA(或CA),以及2)它可以告诉您拥有私钥在你拥有,因为否则SSL连接是不可能的。因此,它也适用于信任客户端的服务器。
如果您相信服务器和客户端将其私钥保密,并且您信任签署服务器和客户端证书(或证书链)的根证书的来源,则可以说每个人都是诚实的。 / p>