Informações Chave

No cabeçalho de Segurança de uma mensagem SOAP, um elemento <ds:KeyInfo> é usado para descrever onde um chave ou certificado é localizado para processar uma ou mais partes da mensagem. Um elemento <ds:KeyInfo> para assinatura digital descreve um certificado público e um elemento <ds:KeyInfo> para criptografia descreve uma chave privada.

Os tipos de informações chave nas ligações WS-Security especificam diferentes mecanismos para referência aos tokens de segurança usando o elemento <wsse:SecurityTokenReference> dentro do elemento <ds:KeyInfo>. Os tipos de informações chave a seguir estão disponíveis nas ligações WS-Security:
  • Referência do Token de Segurança
  • Identificador de chave
  • Nome e Número de Série do Emissor de X509
  • Token Incorporado
  • Thumbprint (somente JAX-WS)
  • Nome da chave (somente JAX-RPC)

O valor padrão para informações chave que está associado a uma assinatura digital é Referência do token de segurança. O valor padrão para informações chave associadas à criptografia é Identificador chave.

Referência do token de segurança e token Integrado são as únicas seleções que colocam um certificado X.509 diretamente na mensagem. Todas as outras seleções colocam um identificador na mensagem que é exclusivo para a chave ou o certificado que o destinatário da mensagem usa para selecionar uma chave ou certificado a partir de seu ambiente para avaliar a mensagem.

Os seguintes são exemplos de elementos <ds:KeyInfo> que o tempo de execução de WS-Security emite para cada tipo de informação chave:
Referência do Token de Segurança
Um token de segurança em qualquer lugar na mensagem é diretamente referenciado usando URIs (Universal Resource Identifiers). O seguinte fragmento XML é um exemplo de um elemento <KeyInfo> que é gerado em uma mensagem SOAP para o tipo de informação chave de referência de token de segurança para um token X.509v3:
<wsse:BinarySecurityToken EncodingType="...#Base64Binary" ValueType="...#X509v3" 
  wsu:Id="SomeCert">
    .... 
< /wsse:BinarySecurityToken>
...
<ds:KeyInfo>
  <wsse:SecurityTokenReference>
  <wsse:Reference URI='#SomeCert' 
    ValueType="...#X509v3" />
  </wsse:SecurityTokenReference>
</ds:KeyInfo>
Atenção: Conforme indicado no rascunho do Web services Interoperability Organization (WS-I) Basic Security Profile Versão 1 e mostrado no exemplo anterior, o elemento wsse:Reference em um SECURE_ENVELOPE deve ter um atributo ValueType.
Identificador de chave
O token de segurança é referenciado usando um valor opaco que identifica exclusivamente o token. O algoritmo que é utilizado para gerar o valor do elemento <KeyIdentifier> depende do tipo de token. Por exemplo, você pode utilizar o identificador para as chaves públicas que estão definidas no RFC (Request for Comment) 3280 do IETF (Internet Engineering Task Force). O elemento <Info_de_Chave> a seguir é gerado na mensagem SOAP para este tipo de informações chave:
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
   <wsse:SecurityTokenReference>
      <wsse:KeyIdentifier ValueType="http://docs.oasis-open.org/wss/2004/01
      /oasis-200401-wss-x509-token-profile-1.0#X509v3SubjectKeyIdentifier">
      /62wXO...
      </wsse:KeyIdentifier>
   </wsse:SecurityTokenReference>
</ds:KeyInfo>
Nome e Número de Série do Emissor de X509
O token de segurança é referenciado por um nome de emissor e um número de série do emissor de um certificado X.509. O elemento <Info_de_Chave> a seguir é gerado na mensagem SOAP para este tipo de informações chave:
<ds:KeyInfo>
   <wsse:SecurityTokenReference>
     <ds:X509Data>
        <ds:X509IssuerSerial>
           <ds:X509IssuerName>CN=Jones, O=IBM, C=US</ds:X509IssuerName>
           <ds:X509SerialNumber>1040152879</ds:X509SerialNumber>
        </ds:X509IssuerSerial>
     </ds:X509Data>
   </wsse:SecurityTokenReference>
</ds:KeyInfo>
Token Incorporado
O token de segurança é incorporado diretamente no elemento <Referência_do_Token_de_Segurança>. O elemento <Info_de_Chave> a seguir é gerado na mensagem SOAP para este tipo de informações chave:
<ds:KeyInfo>
   <wsse:SecurityTokenReference>
      <wsse:Embedded wsu:Id=”tok1” />
         …
      </wsse:Embedded>
   </wsse:SecurityTokenReference>
</ds:KeyInfo>
Impressão digital do polegar
Quando Thumbprint for selecionado, um elemento KeyIdentifier com um Tipo de valor #ThumbPrintSHA1 será usado. Esse tipo de informação chave deve ser usado com tokens X.509. A chave ou certificado X.509 é referenciado pelo thumbprint codificado por Base64 do certificado.

O seguinte fragmento XML é um elemento <KeyInfo> de exemplo que é gerado na mensagem SOAP para esse tipo de informações chave:

<ds:KeyInfo>
   <wsse:SecurityTokenReference>
      <wsse:KeyIdentifier EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/oasis-wss480soap-message-security-1.1#ThumbPrintSHA1" >B5o2elsan6IhbxxYgZ62pPFnUIc=</wsse:KeyIdentifier>
   </wsse:SecurityTokenReference>
</ds:KeyInfo>
Nome da Chave
O token de segurança é referenciado usando um nome correspondente a uma asserção de identidade dentro do token. Sugere-se que você não use esse tipo de chave, pois pode resultar em vários tokens de segurança correspondentes ao nome especificado. O elemento <Info_de_Chave> a seguir é gerado na mensagem SOAP para este tipo de informações chave:
<ds:KeyInfo>
   <ds:KeyName>CN=Group1</ds:KeyName>
</ds:KeyInfo>

Em geral, use um nome de chave quando usar um algoritmo de assinatura digital Key-Hashing Message Authentication Code (HMAC), como este Esquema para assinaturas XML.

Cada tipo de informações chave é descrito no Web Services Security: SOAP Message Security 1.0 (WS-Security 2004) OASIS padrão na seção Web Services Security.


Ícone que indica o tipo de tópico Tópico de Referência



Í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=rwbs_key_info
Nome do arquivo: rwbs_key_info.html