密钥交换和密文交换_具有Web服务安全性的密钥交换模式

密钥交换和密文交换

当我们通过Web服务获得消息级别的安全性时,我们如何通过密钥来实现完整性和机密性。 密钥用于对从rqeuestor传递到接收者的消息进行签名和加密,或者从客户端到服务,反之亦然。
在此博客文章中,我们将讨论不同的密钥交换模式及其相关用例。
1.直接密钥转移
如果一方拥有令牌和密钥并希望与另一方共享,则可以直接转让密钥。 WS-Secure对话就是一个很好的例子。 在WS-Secure对话下,当安全上下文令牌由通信方之一创建并随消息一起传播时,它占用此模式来进行密钥交换。 这是通过发起方将RSTR(在主体或标头中)发送给另一方来完成的。 RSTR包含令牌和所有权证明令牌,该令牌包含为接收者加密的密钥。
启动器创建安全上下文令牌,并使用WS-Trust规范中描述的机制在消息上将其发送给其他方。 当信任发件人始终创建新的安全上下文令牌时,此模型起作用。 对于这种情况,发起方创建一个安全上下文令牌,并向另一方发出签名的未经请求的<wst:RequestSecurityTokenResponse>。 该消息包含一个<wst:RequestedSecurityToken>,它包含(或指向)新的安全上下文令牌,以及一个<wst:RequestedProofToken>,它指向安全上下文令牌的“秘密”。
2.代理密钥分配
第三方也可以作为经纪人来转让钥匙。 例如,请求者可以从第三方STS获得令牌和所有权证明令牌。 令牌包含为目标服务加密的密钥(使用服务的公共密钥或STS和目标服务已知的密钥)。 所有权证明令牌包含为请求者加密的相同密钥(类似地,它可以使用公共或对称密钥)。
当安全上下文令牌由安全令牌服务创建时,WS-Secure Conversation也提供了这种模式的示例–上下文发起者要求安全令牌服务创建新的安全上下文令牌。 通过此处和WS-Trust中定义的机制,新创建的安全上下文令牌被分发给了各方。 在这种情况下,发起方将<wst:RequestSecurityToken>请求发送到令牌服务,并返回包含<wst:RequestSecurityTokenResponseCollection>的<wst:RequestSecurityTokenResponseCollection>。 响应包含一个<wst:RequestedSecurityToken>,它包含(或指向)新的安全上下文令牌,以及一个<wst:RequestedProofToken>,它指向返回的上下文的“秘密”。 然后,在将消息保护到适用服务时,请求者将使用安全上下文令牌。
3.委托密钥转移
密钥转移也可以采用委托的形式。 即,一方在不实际转让密钥的情况下转让了使用密钥的权利。 在这种情况下,将创建一个委派令牌,例如XrML ,它标识一组权限和一个委派目标,并由委派方保护。 即,一个密钥指示另一个密钥可以使用其权限的子集(或全部)。 委托可以提供此令牌并向服务证明自己(使用其自己的密钥-委托目标)。 假设已经建立了信任关系,并且委托人有权委托,则该服务可以根据委托规则和信任策略授权发送的请求。
例如,从甲方向乙方发行了定制令牌。该令牌表示乙(特别是乙的密钥)有权提交采购订单。 该令牌使用目标服务T和甲方A已知的秘密密钥(用于最终授权B向T发出的请求的密钥)和为T加密的新会话密钥进行签名。包含令牌,该令牌包含为B加密的会话密钥。因此,B有效地使用了A的密钥,但实际上并不知道该密钥。
4.身份验证的请求/答复密钥传输
在某些情况下,RST / RSTR机制不用于传输密钥,因为它是简单请求/回复的一部分。 但是,可能希望确保相互认证作为密钥传输的一部分。 可以使用WS-Security的机制来实现此方案。
具体来说,发送者希望以下内容:
–将密钥转移给可以用来确保答复的接收者
–确保只有收件人才能看到密钥
–提供发件人颁发密钥的证明
可以通过加密然后签名来支持此方案。 这将大致导致以下步骤:
1.使用生成的密钥加密消息
2.加密收件人的密钥
3.签署加密的表单,任何其他相关密钥以及加密的密钥
但是,如果希望在加密之前进行签名,则使用以下常规过程:
1.使用随机密钥(或理想情况下是从随机密钥派生的密钥)对适当的消息部分进行签名
2.使用随机密钥(或理想情况下是从随机密钥派生的另一个密钥)对适当的消息部分进行加密
3.加密收件人的随机密钥
4.仅签名加密密钥
该博客文章的大部分内容摘自WS-Trust 1.4规范。
参考: Facile Login博客上的JCG合作伙伴 Prabath Siriwardena提供的具有Web服务安全性的密钥交换模式

翻译自: https://www.javacodegeeks.com/2012/06/key-exchange-patterns-with-web-services.html

密钥交换和密文交换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值