Token de chave derivado

Depois de estabelecer o contexto de segurança e depois de o segredo ter sido estabelecido (autenticado), as chaves derivadas podem ser usadas para assinar e criptografar a mensagem SOAP para fornecer a proteção do nível de mensagem. Você pode utilizar as chaves derivadas para cada chave usada no contexto de segurança.

É possível ativar o Web Services Secure Conversation (WS-SecureConversation) usando chaves simétricas derivadas do token de segurança para assinar e criptografar as mensagens de aplicativo.

Usando o WS-SecureConversation, o iniciador pode estabelecer um token de contexto de segurança usando o protocolo Web Services Trust (WS-Trust) com o destinatário. Um token do contexto de segurança implica em ou contém um segredo compartilhado. Usando um segredo comum, diferentes derivações de chave podem ser definidas. Em seguida, usando o token do contexto de segurança, o token <wsc:DerivedKeyToken> pode ser utilizado para derivar chaves de qualquer token de segurança que tenha um segredo, chave ou material de chave compartilhado. Esse segredo pode ser usado para assinar ou criptografar mensagens, mas é recomendado que as chaves derivadas sejam usadas para assinar e criptografar mensagens associadas somente ao contexto de segurança.

Sintaxe para o Elemento <wsc:DerivedKeyToken>

O elemento <wsc:DerivedKeyToken> é utilizado para indicar que a chave para uma referência específica seja gerada da função para que os tokens de segurança explícita, segredos ou material de chave não precisem ser trocados com freqüência. O token da chave derivada não suporta referências a ele usando identificadores da chave ou os nomes da chave. Todas as referências devem utilizar um ID para um atributo wsu:Id ou utilizar uma referência de URI, <wsse:Reference>, para o elemento <wsc:Identifier> no token do contexto de segurança.

A sintaxe para o elemento <wsc:DerivedKeyToken> é a seguinte:

<wsc:DerivedKeyToken wsu:Id="...">
    <wsse:SecurityTokenReference>...</wsse:SecurityTokenReference>
    <wsc:Label>...</wsc:Label>
    <wsc:Nonce>...</wsc:Nonce>
  </wsc:DerivedKeyToken>
As chaves derivadas são expressadas como tokens de segurança e usam diferentes algoritmos para derivar as chaves. O URI a seguir é usado para representar o tipo de token de chave derivada:
http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512/dk

O nonce é processado como uma sequência de octeto binária (o valor antes da codificação de base64). O valor inicial do nonce é necessário e deve ser gerado por uma ou mais partes que se comunicam. Use os nonces separados e gere chaves de modo independente para assinar a criptografia para pedido e resposta. As novas chaves devem ser derivadas para cada mensagem, o que significa que um nonce anterior não deve ser reutilizado.

Geração de Chaves Derivadas Implícitas

Chaves derivadas implícitas definem um mecanismo de atalho para referenciar determinados tipos de chaves derivadas. Especificamente, um atributo @wsc:Nonce pode ser incluído na STR (referência de token de segurança) definida na especificação WS-Security. Quando presente, uma chave derivada implícita indica que a chave não está no token referenciado, mas, em vez disso, é uma chave derivada da chave ou segredo do token referenciado. É recomendável não usar Chaves derivadas implícitas no elemento <wsc:DerivedKeyToken>.

O exemplo a seguir ilustra uma mensagem que é enviada usando duas chaves derivadas, uma para assinatura e uma para criptografia:

<S11:Envelope xmlns:S11="..." xmlns:wsse="..." xmlns:wsu="..."
    xmlns:xenc="..." xmlns:wsc="..." xmlns:ds="...">
  <S11:Header>
    <wsse:Security>
      <wsc:SecurityContextToken wsu:Id="ctx2">
        <wsc:Identifier>uuid:...UUID2...</wsc:Identifier>
      </wsc:SecurityContextToken>
      <wsc:DerivedKeyToken wsu:Id="dk2">
        <wsse:SecurityTokenReference>
          <wsse:Reference URI="#ctx2"/>
        </wsse:SecurityTokenReference>
        <wsc:Nonce>KJHFRE...</wsc:Nonce>
      </wsc:DerivedKeyToken>
      <xenc:ReferenceList>
        ...
        <ds:KeyInfo>
          <wsse:SecurityTokenReference>
            <wsse:Reference URI="#dk2"/>
          </wsse:SecurityTokenReference>
        </ds:KeyInfo>
          ...
      </xenc:ReferenceList>
      <wsc:SecurityContextToken wsu:Id="ctx1">
        <wsc:Identifier>uuid:...UUID1...</wsc:Identifier>
      </wsc:SecurityContextToken>
      <wsc:DerivedKeyToken wsu:Id="dk1">
        <wsse:SecurityTokenReference>
          <wsse:Reference URI="#ctx1"/>
        </wsse:SecurityTokenReference>
        <wsc:Nonce>KJHFRE...</wsc:Nonce>
      </wsc:DerivedKeyToken>
      <xenc:ReferenceList>
        ...
        <ds:KeyInfo>
          <wsse:SecurityTokenReference>
            <wsse:Reference URI="#dk1"/>
          </wsse:SecurityTokenReference>
        </ds:KeyInfo>
        ...
      </xenc:ReferenceList>
    </wsse:Security>
  ...
  </S11:Header>
  <S11:Body>
    ...
  </S11:Body>
</S11:Envelope>

Ícone que indica o tipo de tópico Tópico de Conceito



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_derivedkeytoken
Nome do arquivo: cwbs_derivedkeytoken.html