Share via


Nachrichtensicherheit in WCF

Windows Communication Foundation (WCF) bietet zwei wichtige Modi für die Sicherheit (Transport und Message) und einen dritten Modus (TransportWithMessageCredential), der beide kombiniert. In diesem Thema werden die Nachrichtensicherheit und die Gründe für ihre Verwendung erläutert.

Was ist Nachrichtensicherheit?

Die Nachrichtensicherheit verwendet die WS-Security-Spezifikation zum Sichern von Nachrichten. Die Spezifikation beschreibt Verbesserungen des SOAP-Messaging, mit denen die Vertraulichkeit, Integrität und Authentifizierung auf der SOAP-Nachrichtenebene (statt der Transportebene) sichergestellt wird.

Kurz gesagt, die Nachrichtensicherheit unterscheidet sich von der Transportsicherheit, insofern als Sicherheitsanmeldeinformationen und -ansprüche sowie gegebenenfalls der Nachrichtenschutz (Signatur oder Verschlüsselung) in jede Nachricht eingekapselt werden. Die Sicherheit durch eine Anpassung des Inhalts direkt in die Nachricht aufzunehmen, macht die Nachricht was die Sicherheitsaspekte anbelangt somit autonom. Dies ermöglicht einige Szenarien die bei Verwendung der Transportsicherheit nicht möglich sind.

Gründe für die Verwendung der Nachrichtensicherheit

Bei der Sicherheit auf Nachrichtenebene werden alle Sicherheitsinformationen in die Nachricht eingekapselt. Das Sichern der Nachricht auf Nachrichtenebene statt auf Transportebene bietet folgende Vorteile:

  • End-to-End-Sicherheit. Ein sicherer Transport, z. B. Secure Sockets Layer (SSL) funktioniert nur bei einer Point-to-Point-Kommunikation. Wenn die Nachricht an einen oder mehrere SOAP-Vermittler weitergeleitet wird, bis sie den endgültigen Empfänger erreicht, ist die Nachricht an sich nicht geschützt, nachdem sie vom Vermittler entgegengenommen wurde. Darüber hinaus sind die Clientauthentifzierungsinformationen nur für den ersten Vermittler verfügbar und müssen an den endgültigen Empfänger gegebenenfalls out-of-band übermittelt werden. Das ist selbst dann so, wenn die gesamte Route SSL-Sicherheit zwischen den einzelnen Hops verwendet. Da sich die Nachrichtensicherheit direkt auf die Nachricht bezieht und die darin enthaltenen XML-Daten gesichert werden, wird die Sicherheit mit der Nachricht übermittelt, ohne dass die Zahl der Vermittler eine Rolle spielt. Das ermöglicht ein echtes End-to-End-Sicherheitsszenario.
  • Höhere Flexibilität. Statt der gesamten Nachricht, können Teile der Nachricht signiert oder verschlüsselt werden. Das bedeutet, dass Vermittler die Teile der Nachricht anzeigen können, die für sie bestimmt sind. Wenn der Absender möchte, dass die Vermittler einen Teil der Informationen in der Nachricht zwar sehen aber nicht ändern können, signiert er die Nachricht einfach nur, lässt sie ansonsten aber unverschlüsselt. Da die Signatur zur Nachricht gehört, kann der endgültige Empfänger überprüfen, ob er die Informationen in der Nachricht unverändert erhalten hat. Zu den möglichen Szenarien gehört auch ein SOAP-Vermittlerdienst, der die Nachricht nach dem Aktionsheaderwert weiterleitet. In WCF wird der Aktionswert standardmäßig nicht verschlüsselt, bei der Verwendung der Nachrichtensicherheit wird er jedoch signiert. Somit ist diese Information für alle Vermittler verfügbar, kann jedoch von keinem geändert werden.
  • Unterstützung für mehrere Transporte. Sie können gesicherte Nachrichten über viele verschiedene Transporte senden, z. B. benannte Pipes und TCP, ohne sich um das Protokoll für die Sicherheit kümmern zu müssen. Bei der Sicherheit auf Transportebene beschränken sich alle Sicherheitsinformationen auf eine bestimmte Transportverbindung und sind für den Nachrichteninhalt direkt nicht verfügbar. Die Nachrichtensicherheit sichert die Nachricht, unabhängig davon, mit welchem Transport die Nachricht übertragen wird. Der Sicherheitskontext ist direkt in die Nachricht eingebettet.
  • Unterstützung für eine breite Palette an Anmeldeinformationen und Ansprüchen. Die Nachrichtensicherheit basiert auf der WS-Security-Spezifikation, die ein erweiterbares Framework bereitstellt, in dem jeder beliebige Anspruch in der SOAP-Nachricht übertragen werden kann. Im Unterschied zur Transportsicherheit wird die Reihe der Authentifizierungsmechanismen oder Ansprüche, die Sie verwenden können, nicht durch die Transportfunktionen eingeschränkt. Die WCF-Nachrichtensicherheit enthält mehrere Typen der Authentifizierung und Anspruchsübertragung und kann zur Unterstützung weiterer Typen nach Bedarf erweitert werden. Aus diesen Gründen ist z. B. ein Szenario mit verbundenen Anmeldeinformationen ohne die Nachrichtensicherheit nicht möglich. Weitere Informationen zu den von WCF unterstützten Verbundszenarios finden Sie unter Verbund und ausgestellte Token.

Transport- und Nachrichtensicherheit im Vergleich

Vor- und Nachteile der Sicherheit auf Transportebene

Die Transportsicherheit bietet folgende Vorteile:

  • Die Kommunikationspartner müssen nicht mit XML-Sicherheitskonzepten vertraut sein. Das kann die Interoperabilität verbessern, beispielsweise, wenn die Kommunikation mit HTTP gesichert wird.
  • Allgemein verbesserte Leistung.
  • Eine Hardwarebeschleunigung ist verfügbar.
  • Streaming ist möglich.

Die Transportsicherheit hat folgende Nachteile:

  • Nur Hop-to-Hop
  • Eingeschränkte und nicht erweiterte Gruppe von Anmeldeinformationen
  • Transportabhängig

Nachteile der Sicherheit auf Nachrichtenebene

Die Nachrichtensicherheit hat die folgenden Nachteile:

  • Leistung
  • Nachrichtenstreaming kann nicht verwendet werden.
  • Die Implementierung eines Sicherheitsmechanismus auf XML-Ebene und die Unterstützung der WS-Security-Spezifikation ist erforderlich. Das kann sich auf die Interoperabilität auswirken.

Siehe auch

Aufgaben

Gewusst wie: Verwenden von Transportsicherheit und Nachrichtenanmeldeinformationen

Weitere Ressourcen

Sichern von Diensten und Clients
Transportsicherheit
Microsoft Patterns and Practices, Kapitel 3: Implementieren von Sicherheit auf Transport- und Nachrichtenebene (möglicherweise in englischer Sprache)