Nachrichtensicherheit in WCFMessage Security in WCF

Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) verfügt über zwei Hauptmodi zum Bereitstellen von Sicherheit (Transport und Message) und einen dritten Modus (TransportWithMessageCredential), der diese zwei Modi kombiniert. has two major modes for providing security (Transport and Message) and a third mode (TransportWithMessageCredential) that combines the two. In diesem Thema werden die Nachrichtensicherheit und die Gründe für deren Verwendung erläutert.This topic discusses message security and the reasons to use it.

Was ist Nachrichtensicherheit?What Is Message Security?

Durch Nachrichtensicherheit werden Nachrichten mithilfe der WS-Sicherheitsspezifikation gesichert.Message security uses the WS-Security specification to secure messages. Die WS-Sicherheitsspezifikation enthält Erweiterungen für SOAP-Messaging, durch die Vertraulichkeit, Integrität und Authentifizierung auf SOAP-Nachrichtenebene (statt der Transportebene) sichergestellt werden.The WS-Securityspecification describes enhancements to SOAP messaging to ensure confidentiality, integrity, and authentication at the SOAP message level (instead of the transport level).

Der Unterschied zwischen Nachrichtensicherheit und Transportsicherheit besteht kurz gesagt darin, dass bei der Nachrichtensicherheit die Sicherheitsanmeldeinformationen und Ansprüche zusammen mit dem Nachrichtenschutz in jeder Nachricht gekapselt werden (Signierung oder Verschlüsselung).In brief, message security differs from transport security by encapsulating the security credentials and claims with every message along with any message protection (signing or encryption). Die direkte Anwendung der Sicherheit auf die Nachricht durch das Ändern des Nachrichteninhalts ermöglicht gesicherte Nachrichten, die in Bezug auf Sicherheitsaspekte unabhängig sind.Applying the security directly to the message by modifying its content allows the secured message to be self-containing with respect to the security aspects. Hierdurch werden bestimmte Szenarien unterstützt, die bei Verwendung von Transportsicherheit nicht möglich sind.This enables some scenarios that are not possible when transport security is used.

Gründe für die Verwendung von NachrichtensicherheitReasons to Use Message Security

Bei Verwendung von Sicherheit auf Nachrichtenebene sind alle Sicherheitsinformationen in der Nachricht gekapselt.In message-level security, all of the security information is encapsulated in the message. Die Sicherung von Nachrichten mit Sicherheit auf Nachrichtenebene anstelle von Sicherheit auf Transportebene bietet folgende Vorteile:Securing the message with message-level security instead of transport-level security has the following advantages:

  • End-to-End-Sicherheit.End-to-end security. Transportsicherheit, z. B. Secure Sockets Layer (SSL), schützt Nachrichten nur bei Punkt-zu-Punkt-Kommunikation.Transport security, such as Secure Sockets Layer (SSL) only secures messages when the communication is point-to-point. Wenn die Nachricht vor dem Erreichen des eigentlichen Empfängers an einen oder mehrere SOAP-Vermittler (z. B. einen Router) weitergeleitet wird, ist die Nachricht selbst nicht mehr geschützt, sobald ein Vermittler diese liest.If the message is routed to one or more SOAP intermediaries (for example a router) before reaching the ultimate receiver, the message itself is not protected once an intermediary reads it from the wire. Darüber hinaus stehen die Clientauthentifizierungsinformationen nur dem ersten Vermittler zur Verfügung und müssen bei Bedarf "Out-of-Band" erneut an den endgültigen Empfänger übertragen werden.Additionally, the client authentication information is available only to the first intermediary and must be re-transmitted to the ultimate receiver in out-of-band fashion, if necessary. Dies gilt auch dann, wenn auf dem gesamten Übertragungsweg SSL-Sicherheit zwischen den einzelnen Übertragungen verwendet wird.This applies even if the entire route uses SSL security between individual hops. Da die Nachrichtensicherheit direkt auf die Nachricht angewendet wird und deren XML-Inhalt sichert, bleibt die Sicherheit der Nachricht unabhängig von der Anzahl der Vermittler gewahrt, an die die Nachricht vor Erreichen des endgültigen Empfängers übertragen wird.Because message security works directly with the message and secures the XML in it, the security stays with the message regardless of how many intermediaries are involved before it reaches the ultimate receiver. Dies ermöglicht ein echtes End-to-End-Sicherheitsszenario.This enables a true end-to-end security scenario.

  • Mehr Flexibilität.Increased flexibility. Es können statt der ganzen Nachricht auch nur Teile der Nachricht signiert oder verschlüsselt werden.Parts of the message, instead of the entire message, can be signed or encrypted. Auf diese Weise können die Vermittler die Nachrichtenteile anzeigen, die für sie bestimmt sind.This means that intermediaries can view the parts of the message that are intended for them. Wenn der Absender möchte, dass die Informationen in der Nachricht für die Vermittler teilweise sichtbar sind, deren Bearbeitung jedoch ausgeschlossen werden soll, kann er die Nachricht nur signieren und unverschlüsselt lassen.If the sender needs to make part of the information in the message visible to the intermediaries but wants to ensure that it is not tampered with, it can just sign it but leave it unencrypted. Da die Signatur Teil der Nachricht ist, kann der endgültige Empfänger überprüfen, ob die Informationen in der Nachricht unverändert geblieben sind.Since the signature is part of the message, the ultimate receiver can verify that the information in the message was received intact. Ein Szenario könnte sein, dass ein SOAP-Vermittlungsdienst Nachrichten entsprechend dem Aktionsheaderwert weiterleitet.One scenario might have a SOAP intermediary service that routes message according the Action header value. Standardmäßig verschlüsselt WCFWCF den Aktionswert nicht, sondern signiert diesen, wenn Nachrichtensicherheit verwendet wird.By default, WCFWCF does not encrypt the Action value but signs it if message security is used. Daher stehen die Informationen allen Vermittlern zur Verfügung, können von diesen jedoch nicht geändert werden.Therefore, this information is available to all intermediaries, but no one can change it.

  • Unterstützung mehrerer Transporte.Support for multiple transports. Sie können gesicherte Nachrichten über viele verschiedene Transporte senden, z. B. benannte Pipes und TCP, ohne sich hinsichtlich Sicherheit auf das Protokoll verlassen zu müssen.You can send secured messages over many different transports, such as named pipes and TCP, without having to rely on the protocol for security. Bei Sicherheit auf Transportebene sind alle Sicherheitsinformationen auf eine einzelne Transportverbindung beschränkt und nicht im Nachrichteninhalt selbst verfügbar.With transport-level security, all the security information is scoped to a single particular transport connection and is not available from the message content itself. Bei Nachrichtensicherheit wird die Nachricht unabhängig von dem für die Übertragung der Nachricht verwendeten Transport gesichert, und der Sicherheitskontext ist direkt in die Nachricht eingebettet.Message security makes the message secure regardless of what transport you use to transmit the message, and the security context is directly embedded inside the message.

  • Unterstützung eines umfangreichen Satzes von Anmeldeinformationen und Ansprüchen.Support for a wide set of credentials and claims. Die Nachrichtensicherheit basiert auf der WS-Sicherheitsspezifikation. Diese bietet ein erweiterungsfähiges Framework, mit dem jegliche Art von Anspruch innerhalb der SOAP-Nachricht übertragen werden kann.The message security is based on the WS-Security specification, which provides an extensible framework capable of transmitting any type of claim inside the SOAP message. Im Gegensatz zur Transportsicherheit ist der Satz von Authentifizierungsmechanismen oder Ansprüchen, die Sie verwenden können, nicht durch die Transportfunktionen beschränkt.Unlike transport security, the set of authentication mechanisms, or claims, that you can use is not limited by the transport capabilities. WCFWCF-Nachrichtensicherheit umfasst mehrere Typen der Authentifizierung und Anspruchsübertragung und kann bei Bedarf auf zusätzliche Typen erweitert werden. message security includes multiple types of authentication and claim transmission and can be extended to support additional types as necessary. Aus diesen Gründen ist beispielsweise ein Szenario mit verbundenen Anmeldeinformationen ohne Nachrichtensicherheit nicht möglich.For those reasons, for example, a federated credentials scenario is not possible without message security. Weitere Informationen finden Sie unterFor more information aboutVerbundszenarien WCF unterstützt, finden Sie unter Verbund und ausgestellte Token. federation scenarios WCF supports, see Federation and Issued Tokens.

Vergleich von Nachrichten- und TransportsicherheitHow Message and Transport Security Compare

Vor- und Nachteile der Sicherheit auf TransportebenePros and Cons of Transport-Level Security

Die Transportsicherheit bietet folgende Vorteile:Transport security has the following advantages:

  • Es ist nicht erforderlich, dass die Kommunikationspartner mit den Konzepten der Sicherheit auf XML-Ebene vertraut sind.Does not require that the communicating parties understand XML-level security concepts. Dies trägt zu einer besseren Interoperabilität bei, z. B. wenn zum Sichern der Kommunikation HTTPS verwendet wird.This can improve the interoperability, for example, when HTTPS is used to secure the communication.

  • Insgesamt höhere Leistung.Generally improved performance.

  • Hardwarebeschleunigung ist verfügbar.Hardware accelerators are available.

  • Streaming ist möglich.Streaming is possible.

Die Transportsicherheit hat folgende Nachteile:Transport security has the following disadvantages:

  • Nur Hop-to-Hop (übertragungsbasiert).Hop-to-hop only.

  • Beschränkter und nicht erweiterbarer Satz von Anmeldeinformationen.Limited and inextensible set of credentials.

  • Transportabhängig.Transport-dependent.

Nachteile von Sicherheit auf NachrichtenebeneDisadvantages of Message-Level Security

Die Nachrichtensicherheit hat folgende Nachteile:Message security has the following disadvantages:

  • LeistungPerformance

  • Nachrichtenstreaming kann nicht verwendet werden.Cannot use message streaming.

  • Erfordert die Implementierung von Sicherheitsmechanismen auf XML-Ebene und Unterstützung der WS-Sicherheitsspezifikation.Requires implementation of XML-level security mechanisms and support for WS-Security specification. Dies kann sich auf die Interoperabilität auswirken.This might affect the interoperability.

Siehe auchSee Also

Sichern von Diensten und ClientsSecuring Services and Clients
TransportsicherheitTransport Security
Vorgehensweise: Verwenden von Transportsicherheit und NachrichtenanmeldeinformationenHow to: Use Transport Security and Message Credentials
Microsoft Patterns and Practices, Kapitel 3: Implementieren von Transport- und Layer-SicherheitMicrosoft Patterns and Practices, Chapter 3: Implementing Transport and Message Layer Security