Informations sur les clés

Dans l'en-tête de sécurité d'un message SOAP, un élément <ds:KeyInfo> est utilisé pour décrire l'emplacement d'une clé ou d'un certificat pour le traitement d'une ou de plusieurs parties du message. Un élément <ds:KeyInfo> pour la signature numérique décrit un certificat public et un élément <ds:KeyInfo> pour le chiffrement décrit une clé privée.

Les types d'informations de clé dans les liaisons WS-Security indiquent les différents mécanismes de référencement des jetons de sécurité à l'aide de l'élément <wsse:SecurityTokenReference> situé dans l'élément <ds:KeyInfo>. Les types d'informations de clé sont disponibles dans les liaisons WS-Security :
  • Référence du jeton de sécurité
  • Identificateur de clé
  • Nom et numéro de l'émetteur X509
  • Jeton imbriqué
  • Thumbprint (JAX-WS uniquement)
  • Nom de clé (JAX-RPC uniquement)

La valeur par défaut pour les informations de clé qui sont associées à une signature numérique sont Référence de jeton de sécurité. La valeur par défaut pour les informations de clé qui sont associées au chiffrement sont Identificateur de clé.

Référence de jeton de sécurité et Jeton imbriqué sont les seules sélections qui placent un certificat X.509 directement dans le message. Toutes les autres sélections placent un identificateur dans le message qui est unique pour la clé ou le certificat que le destinataire du message utilise pour sélectionner une clé ou un certificat à partir de son environnement afin d'évaluer le message.

Voici des exemples d'éléments <ds:KeyInfo> que l'environnement d'exécution WS-Security émet pour chaque type d'information de clé :
Référence du jeton de sécurité
Un jeton de sécurité situé à un autre emplacement dans le message est référencé directement à l'aide d'URI. Le fragment XML suivant est un exemple d'élément <KeyInfo> qui est généré dans un message SOAP pour le type d'information de clé Référence de jeton de sécurité pour un jeton 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>
Avertissement : Comme indiqué dans Web services Interoperability Organization (WS-I) Basic Security Profile Version 1 draft et dans l'exemple précédent, l'élément wsse:Reference contenu dans SECURE_ENVELOPE doit avoir un attribut ValueType.
Identificateur de clé
Le jeton de sécurité est référencé à l'aide d'une valeur opaque qui identifie le jeton de manière unique. L'algorithme utilisé pour générer la valeur <KeyIdentifier> varie en fonction du type de jeton. Par exemple, vous pouvez utiliser l'identificateur pour les clés publiques définies dans Internet Engineering Task Force (IETF) Request for Comment (RFC) 3280. L'élément <KeyInfo> suivant est généré dans le message SOAP pour ce type d'informations de clés.
<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>
Nom et numéro de l'émetteur X509
Le jeton de sécurité est référencé par un nom et un numéro de série d'émetteur de certificat X.509. L'élément <KeyInfo> suivant est généré dans le message SOAP pour ce type d'informations de clés.
<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>
Jeton imbriqué
Le jeton de sécurité est imbriqué directement dans l'élément <SecurityTokenReference>. L'élément <KeyInfo> suivant est généré dans le message SOAP pour ce type d'informations de clés.
<ds:KeyInfo>
   <wsse:SecurityTokenReference>
      <wsse:Embedded wsu:Id=”tok1” />
         …
      </wsse:Embedded>
   </wsse:SecurityTokenReference>
</ds:KeyInfo>
Empreinte
Lorsque Empreinte est sélectionné, un élément KeyIdentifier avec un type de valeur #ThumbPrintSHA1 est utilisé. Ce type d'information de clé doit être utilisé avec des jetons X.509. La clé ou le certificat X.509 est référencé par l'empreinte Base64-encoded du certificat.

Le fragment XML suivant est un exemple d'élément <KeyInfo> qui est généré dans le message SOAP pour ce type d'information de clé :

<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>
Nom de clé
Le jeton de sécurité est référencé à l'aide d'un nom qui correspond à une vérification d'identité au sein du jeton. Il est déconseillé d'utiliser ce type de clé car plusieurs jetons de sécurité correspondant au nom spécifié peuvent être générés. L'élément <KeyInfo> suivant est généré dans le message SOAP pour ce type d'informations de clés.
<ds:KeyInfo>
   <ds:KeyName>CN=Group1</ds:KeyName>
</ds:KeyInfo>

En règle générale, il convient de spécifier un nom de clé lorsque vous utilisez un algorithme de signature numérique HMAC (Key-Hashing Message Authentication Code), tel que ce schéma pour des signatures XML.

Chaque type d'information de clé est décrit dans Web Services Security: SOAP Message Security 1.0 (WS-Security 2004) OASIS standard , dans la section Web Services Security.


Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwbs_key_info
Nom du fichier : rwbs_key_info.html