文章
· 十月 23, 2024 阅读大约需 1 分钟

第五十四章 安全元素的详细信息 - DerivedKeyToken 详情

第五十四章 安全元素的详细信息 - 详情

<DerivedKeyToken> 的目的是携带发送者和接收者可以独立使用的信息来生成相同的对称密钥。这些方可以使用该对称密钥对 SOAP 消息的相关部分进行加密、解密、签名和签名验证。

以下显示了部分示例:

<DerivedKeyToken xmlns="[parts omitted]ws-secureconversation/200512" 
                 xmlns:wsc="[parts omitted]ws-secureconversation/200512" 
                 wsu:Id="Enc-943C6673-E3F3-48E4-AA24-A7F82CCF6511">
   <SecurityTokenReference xmlns="[parts omitted]oasis-200401-wss-wssecurity-secext-1.0.xsd">
      <Reference URI="#Id-658202BF-239A-4A8C-A100-BB25579F366B"></Reference>
   </SecurityTokenReference>
   <Nonce>GbjRvVNrPtHs0zo/w9Ne0w==</Nonce>
</DerivedKeyToken>

详情

该元素的各部分如下:

  • Id 是元素的唯一标识符。IRIS 会自动生成此标识符。
  • <EncryptionMethod>表示用于加密该数据的算法。

IRIS 中,可以指定此算法。请参阅指定块加密算法。

  • <SecurityTokenReference> 表示在计算派生密钥时用作基础的对称密钥。这可以包含一个 <Reference> 元素,其 URI 属性指向同一消息中的 <EncryptedKey> 或另一个 <DerivedKeyToken>

或者 <SecurityTokenReference>可以包含一个 <KeyIdentifier>,该 <KeyIdentifier> 引用所使用的 <EncryptedKey>SHA1 哈希值。例如:

<SecurityTokenReference xmlns="[parts omitted]oasis-200401-wss-wssecurity-secext-1.0.xsd" 
                               s01:TokenType="[parts omitted]#EncryptedKey" 
                               xmlns:s01="h[parts omitted]oasis-wss-wssecurity-secext-1.1.xsd">
   <KeyIdentifier EncodingType="[parts omitted]#Base64Binary" 
                              [parts omitted]#EncryptedKeySHA1">
                     U8CEWXdUPsIk/r8JT+2KdwU/gSw=
   </KeyIdentifier>
</SecurityTokenReference>
  • <Nonce> 是此派生密钥的密钥派生函数中的种子所使用的 base-64 编码值。

    <DerivedKeyToken> 元素的计算使用 RFC 2246 中为 TLS 定义的机制的子集。

<DerivedKeyToken> 元素和关联的 <EncryptedData><Signature> 元素之间的连接处理如下:

  • 每个 <DerivedKeyToken> 都包含一个具有唯一标识符的 Id 属性。
  • 在每个已由给定 <DerivedKeyToken> 指示的对称密钥加密的 <EncryptedData>元素中,都有一个<SecurityTokenReference> 元素,其 URI 属性指向该 <DerivedKeyToken>
  • 在每个<Signature>元素中(其值由给定 <DerivedKeyToken> 指示的对称密钥计算),都有一个 <SecurityTokenReference> 元素,其 URI 属性指向该 <DerivedKeyToken>
  • 每个 <EncryptedData><Signature> 元素还包括具有唯一标识符的 Id 属性。
  • WS-Security 标头包含一个引用 <EncryptedData><Signature> 元素的 <ReferenceList>元素。

消息中的位置

<DerivedKeyToken> 应该包含在 <DerivedKeyToken> 中,位于引用它的任何 <EncryptedData><Signature> 元素之前。

讨论 (0)1
登录或注册以继续