Verschlüsselte SOAP-Header

Das Element für verschlüsselte Header ist eine Standardmethode für die Verschlüsselung von SOAP-Headern. Als eine der Erweiterungen der OASIS-Spezifikation für die SOAP-Nachrichtensicherheit gibt das Element für verschlüsselte Header an, dass der Responder die Anforderung verarbeitet hat. Durch das Verschlüsseln von SOAP-Headern und -Abschnitten kann eine höhere Sicherheit auf Nachrichtenebene erreicht werden.

Das Element EncryptedHeader bzw. <wsse11:EncryptedHeader> ist Teil des aktualisierten Standards Web Services Security Version 1.1 und unterstützt die Interoperabilität mit anderen Anbietern, die die Standards der Version 1.1 unterstützen, wie z. B. Microsoft .NET und DataPower.

Verwenden Sie das Element EncryptedHeader für die Verschlüsselung von SOAP-Headerblöcken. Das Element EncryptedHeader ermöglicht Web Services Security, mit den SOAP-Verarbeitungsrichtlinien "mustUnderstand" konform zu sein und die Offenlegung von Informationen zu verhindern, die in Attributen eines SOAP-Headerblocks enthalten sind.

Das Element <wsse11:EncryptedHeader> muss ein Element <xenc:EncryptedData> enthalten. Es ist nur ein einziges Element <xenc:EncryptedData> pro Element für verschlüsselte Header zulässig.

Element für verschlüsselte Daten

Normalerweise entserialisiert das Programmiermodell, wie z. B. JAX-WS, die SOAP-Nachricht in ein Java™-Bindungsobjekt, bevor es dem Anwendungscode den Aufruf zuteilt. Wenn die SOAP-Nachricht jedoch verschlüsselt ist, schlägt die Entserialisierung fehl, weil der ursprüngliche Inhalt vor der Verschlüsselung durch das XML-Element EncryptedData aus dem Standard XML Encryption ersetzt wird.

in bestimmten Fällen kann es empfehlenswert sein, dass das im Header <wsse:Security> enthaltene Element für die Empfängerverarbeitungsrolle verschlüsselt wird.

Folgen Sie bei der Verwendung des Elements EncryptedData den folgenden Richtlinien:
  • Das Element EncryptedHeader muss ein Element EncryptedData enthalten.
  • Das Element <xenc:EncryptedData> kann verwendet werden, um ein Sicherheitstoken zu enthalten und dieses in den Header <wsse:Security> einzufügen.
  • Das Element <xenc:EncryptedData> darf keine XML-ID für die Referenzierung des enthaltenen Sicherheitstokens enthalten.
  • Alle Token des Typs <xenc:EncryptedData> müssen einen eingebetteten Chiffrierschlüssel haben oder von einem separaten Chiffrierschlüssel referenziert werden.
  • Wenn eine Kompatibilität mit Basic Security Profile 1.1 gewünscht wird, muss das Element <xenc:EncryptedData> ein "Id"-Attribut enthalten.

Richtlinienzusicherung für verschlüsselte Abschnitte

Die Richtlinienzusicherung EncryptedParts gibt in der Sicherheitsrichtlinie an, welcher Header verschlüsselt werden soll. In der folgenden Tabelle werden die Elemente und Attribute beschrieben, die für EncryptedParts verwendet werden können.

Tabelle 1. Attribute und Elemente des Elements EncryptedParts. Durch die Verwendung verschlüsselter Abschnitte kann eine höhere Sicherheit auf Nachrichtenebene erreicht werden.
Element oder Attribut Beschreibung
/sp:EncryptedParts/sp:Header Optional. Das Vorhandensein dieses optionalen Elements gibt an, dass ein bestimmter SOAP-Header (oder eine Gruppe solcher Header) geschützt werden muss. Es können mehrere Element vom Typ "sp:Header" in einem einzigen Element "EncryptedParts" enthalten sein.

Jeder Header (oder Gruppe von Headern) muss verschlüsselt werden, und bei dieser Verschlüsselung werden die Elemente mithilfe von verschlüsselten Headern der Web Services Security Version 1.1 verschlüsselt. Wenn verschlüsselte Header der WS-Security Version 1.1 von einem Service nicht unterstützt werden, können die Header nicht über die Sicherheit auf Nachrichtenebene verschlüsselt werden.

Wenn mehrere SOAP-Header mit demselben lokalen Namen, aber unterschiedlichen Namespacenamen verschlüsselt werden sollen, sind mehrere Elemente vom Typ "sp:Header" erforderlich: entweder im Rahmen einer einzigen Zusicherung vom Typ "sp:EncryptedParts" oder im Rahmen gesonderter Zusicherungen des Typs "sp:EncryptedParts".

/sp:EncryptedParts/sp:Header/@Name Optional. Dieses Attribut gibt den lokalen Namen des SOAP-Headers an, dessen Vertraulichkeit geschützt werden soll. Wenn dieses Attribut nicht angegeben wird, müssen alle SOAP-Header geschützt werden, deren Namespaces mit dem Attribut "Namespace" übereinstimmen.
/sp:EncryptedParts/sp:Header/@Namespace Erforderlich. Dieses Attribut gibt den Namespace der SOAP-Header an, deren Vertraulichkeit geschützt werden soll.

Das folgende Nachrichtenbeispiel veranschaulicht, wie das Element "EncryptedHeader" in einer Nachricht aussieht, wenn die Richtlinienzusicherung "EncryptedParts" für den verschlüsselten Header in der Richtlinie angegeben wurde:

<S:Envelope xmlns:S="…" xmlns:wsse="…" xmlns:wsse11="…" xmlns:wsu="…"
	  xmlns:xenc="…" xmlns:ds="…">
	  <S:Header>
	    <wsse:Security>
      <!-- Tokens etc. -->
	      	      <xenc:EncryptedKey>
	        <xenc:EncryptionMethod Algorithm="…"/>
	          <ds:KeyInfo>
	            … …
	          </ds:KeyInfo>
	         	         <xenc:CipherData>
	           	          <xenc:CipherValue>…</xenc:CipherValue>
	         	        </xenc:CipherData>
	         <xenc:ReferenceList>
	           	           <xenc:DataReference URI="#hdrID"/>
	         </xenc:ReferenceList>
	       	       </xenc:EncryptedKey>
	    </wsse:Security>
	    	    <wsse11:EncryptedHeader wsu:Id="hdrID">
	      	      <xenc:EncryptedData Id="encDataID">
	        	         <xenc:CipherData>
	          	          <xenc:CipherValue>…</xenc:CipherValue>
	        	        </xenc:CipherData>
	        …
	      	      </xenc:EncryptedData>
	    	    </wsse11:EncryptedHeader>	
	  </S:Header>
	  <S:Body>
	    …
	  </S:Body>
</S:Envelope>

Wenn Sie Header im Format der Spezifikation Web Services Security Version 1.0 verschlüsseln möchten, geben Sie die Eigenschaft "com.ibm.wsspi.wssecurity.encryptedHeader.generate.WSS1.0" mit dem Wert true im Element <encryptionInfo> der Bindung an. Wenn diese Eigenschaft angegeben ist, wird der Zielheader für die Verschlüsselung durch ein Element <EncryptedData> anstelle eines Elements <EncryptedHeader> ersetzt, das ein Element <EncryptedData> enthält.

Damit das Verhalten für Web Services Security Version 1.1 dem der WebSphere Application Server Versionen vor Version 7.0 entspricht, geben Sie für die Eigenschaft "com.ibm.wsspi.wssecurity.encryptedHeader.generate.WSS1.1.pre.V7" den Wert true im Element <encryptionInfo> in der Bindung an. Wenn diese Eigenschaft angegeben wird, enthält das Element <EncryptedHeader> einen Parameter des Typs "wsu:Id", während der "Id"-Parameter im Element <EncryptedData> nicht angegeben ist. Diese Eigenschaft sollte nur dann verwendet werden, wenn keine Konformität mit "Basic Security Profile 1.1" erforderlich ist.

Vollständige Informationen zum Element "EncryptedHeader" und zum Element "EncryptedData" finden Sie in der Spezifikation Web Services Security Version 1.1.


Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_wssencryptedheader
Dateiname:cwbs_wssencryptedheader.html