Señal de clave derivada

Después de establecer el contexto de seguridad y de establecer (autenticar) el secreto, pueden utilizarse claves derivadas para firmar y cifrar el mensaje SOAP para proporcionar protección a nivel de mensaje. A continuación, puede utilizar claves derivadas para cada una de las claves que se utilizan en el contexto de seguridad.

Puede habilitar WS-SecureConversation (Web Services Secure Conversation) utilizando claves simétricas que se derivan de la señal de seguridad para firmar y cifrar los mensajes de aplicación.

Utilizando WS-SecureConversation, el iniciador puede establecer una señal de contexto de seguridad utilizando el protocolo WS-Trust (Web Services Trust) con el destinatario. Una señal de contexto de seguridad implica o contiene un secreto compartido. Utilizando un secreto común, pueden definirse varias derivaciones de clave. A continuación, utilizando la señal de contexto de seguridad, puede utilizarse la señal <wsc:DerivedKeyToken> para derivar claves de toda señal de seguridad que tenga un secreto compartido, una clave o material de clave. Este secreto puede utilizarse para firmar o cifrar mensajes, pero se recomienda utilizar las claves derivadas para firmar y cifrar mensajes que estén asociados sólo con el contexto de seguridad.

Sintaxis del elemento <wsc:DerivedKeyToken>

El elemento <wsc:DerivedKeyToken> se utiliza para indicar que la clave de una referencia específica se genera a partir de la función, para que las señales de seguridad, los secretos o el material de clave explícitos no se tengan que intercambiar con tanta frecuencia. La señal de clave derivada no da soporte a las referencias al mismo utilizando identificadores de claves o nombres de claves. Todas las referencias deben utilizar un ID a un atributo wsu:Id o utilizar una referencia de URI, <wsse:Reference>, al elemento <wsc:Identifier> en la señal de contexto de seguridad.

La sintaxis del elemento <wsc:DerivedKeyToken> es la siguiente:

<wsc:DerivedKeyToken wsu:Id="...">
    <wsse:SecurityTokenReference>...</wsse:SecurityTokenReference>
    <wsc:Label>...</wsc:Label>
    <wsc:Nonce>...</wsc:Nonce>
  </wsc:DerivedKeyToken>
Las claves derivadas se expresan como señales de seguridad y utilizan distintos algoritmos para derivar las claves. El siguiente URI se utiliza para representar el tipo de señal de clave derivada.
http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512/dk

Nonce se procesa como una secuencia de octeto binario (el valor anterior a la codificación en base64). La inicialización de nonce es necesaria y deben generarla una o varias de las partes de la comunicación. Utilice nonces independientes y claves generadas de forma independiente para firmar y cifrar la solicitud y la respuesta. Deben derivarse nuevas claves para cada mensaje, lo que significa que no debe reutilizarse un nonce anterior.

Generación de claves derivadas implícitas

Las claves derivadas implícitas definen un mecanismo de atajo para referenciar ciertos tipos de claves derivadas. De manera específica, puede añadirse un atributo @wsc:Nonce a la referencia de señal de seguridad (STR) definida en la especificación WS-Security. Cuando está presente, una clave derivada implícita indica que la clave no está en la señal referenciada, sino que es una clave derivada de la clave o secreto de la señal referenciada. Se recomienda que no utilice claves derivadas implícitas en el elemento <wsc:DerivedKeyToken>.

En el siguiente ejemplo se muestra un mensaje que se envía utilizando dos claves derivadas, una para firmar y otra para cifrar:

<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>

Icon that indicates the type of topic Concept topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_derivedkeytoken
File name: cwbs_derivedkeytoken.html