WLS WS-SecurityPolicy 1.0断言,第三部分

本文介绍了WS-Security规范中的Confidentiality断言如何应用于SOAP消息的加密过程,详细解析了各元素的作用及其实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 Confidentiality断言的模式如下:
  <element name="Confidentiality">
    <complexType>
      <sequence>
        <element name="KeyWrappingAlgorithm" type="secpol:AlgorithmType" minOccurs="0" maxOccurs="1"/>
        <element name="Target" type="secpol:ConfidentialityTargetType" minOccurs="1" maxOccurs="unbounded"/>
        <element name="KeyInfo" type="secpol:KeyInfoType"/>
      </sequence>
    </complexType>
  </element>

  KeyWrappingAlgorithm指定包装对称密钥的算法。EncryptionAlgorithm指定用于对目标执行加密的算法。Target元素则提供了对消息中的特定块进行加密的细节。它对应于消息中的EncryptedData块。可以有一个或多个Target。KeyInfo指定用于加密的密钥。如果不定义SupportedTokens元素,Confidentiality断言就成为抽象。

  我们进一步来看看断言定义是如何转换为SOAP消息布局的。下面是一个包含wsse:Security头部的SOAP消息片段:

<soapenv:Header>
<wsse:Security>
<xenc:EncryptedKey>
      <xenc:EncryptionMethod Algorithm="…#rsa1_5"/>
      <ds:KeyInfo>
         <wsse:SecurityTokenReference>...</wsse:SecurityTokenReference>
      </ds:KeyInfo>
      <xenc:CipherData>
         <xenc:CipherValue>…</xenc:CipherValue>
      </xenc:CipherData>
      <xenc:ReferenceList>
        <xenc:DataReference URI="#id"/>
      </xenc:ReferenceList>
    </xenc:EncryptedKey>
  </wsse:Security>
</soapenv:Header>

  Security头部中的EncryptedKey元素包含了用于加密和解密的对称密钥。对称密钥本身由另一个密钥加密。KeyWrappingAlgorithm断言在EncryptedKey中定义了EncryptionMethod元素。在该示例中,对称密钥是通过RSA加密方法保护起来的。即,消息发送方使用接收方的公钥加密对称密钥,而接收方则使用自己的私钥解密对称密钥。对称密钥被解密之后,接收方使用该密钥来解密被加密的消息部分。被加密的消息部分定义在Target断言中,且最终将在EncryptedKey中的ReferenceList元素中进行转换。KeyInfo断言对应于EncryptedKey中的KeyInfo元素。接收方使用KeyInfo元素解密私钥,然后再用解密后的私钥来解密被加密的对称密钥(定义在EncryptedKey的CipherData元素中)。

原文出处:http://dev2dev.bea.com/blog/jlee/archive/2005/10/wls_wssecurityp_3.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值