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