Übersicht über die Windows Communication Foundation-Sicherheit

Windows Communication Foundation (WCF) ist eine auf SOAP-Nachrichten basierende verteilte Programmierplattform. Das Sichern von Nachrichten zwischen Clients und Diensten ist für den Datenschutz außerordentlich wichtig. WCF bietet eine vielseitige und interoperable Plattform für den Austausch sicherer Nachrichten auf Grundlage der vorhandenen Sicherheitsinfrastruktur und der anerkannten Sicherheitsstandards für SOAP-Nachrichten.

Die in WCF verwendeten Konzepte sind bekannt, sofern Sie sichere, verteilte Anwendungen mit vorhandenen Technologien wie HTTPS, integrierte Windows-Sicherheit oder mit Benutzernamen und Kennwörtern zum Authentifizieren von Benutzern erstellt haben. WCF wird nicht nur mit vorhandenen Sicherheitsinfrastrukturen integriert, sondern erweitert mithilfe von sicheren SOAP-Nachrichten auch verteilte Sicherheit über nur in Windows verfügbare Domänen hinaus. Betrachten Sie WCF als Implementierung vorhandener Sicherheitsmechanismen mit dem großen Vorteil der Verwendung von SOAP als zusätzliches Protokoll. Beispielsweise verfügen Anmeldeinformationen zur Identifizierung eines Clients oder Diensts, wie Benutzername, Kennwort oder X.509-Zertifikate, über interoperable XML-basierte SOAP-Profile. Mithilfe dieser Profile werden Nachrichten durch Nutzen offener Spezifikationen wie digitalen XML-Signaturen und XML-Verschlüsselung sicher ausgetauscht. Eine Liste der Spezifikationen finden Sie unter Durch vom System bereitgestellte Interoperabilitätsbindungen unterstützte Webdienstprotokolle.

Eine andere Parallele ist das Component Object Model (COM) auf der Windows-Plattform, mit dem sichere verteilte Anwendungen aktiviert werden. COM besitzt einen komplexen Sicherheitsmechanismus, in dem der Sicherheitskontext zwischen Komponenten übergehen kann; dieser Mechanismus gewährleistet Integrität, Vertraulichkeit und Authentifizierung. COM ermöglicht jedoch kein plattformübergreifendes, sicheres Messaging wie dies bei WCF der Fall ist. Mithilfe von WCF können Sie Dienste und Clients erstellen, die sich von Windows-Domänen über das Internet erstrecken. Die interoperablen Nachrichten von WCF sind sehr wichtig für die Erstellung dynamischer, unternehmensorientierter Dienste, mit denen eine hohe Informationssicherheit gewährleistet wird.

Vorzüge der Windows Communication Foundation-Sicherheit

WCF ist eine verteilte Programmierplattform auf Grundlage von SOAP-Nachrichten. Mithilfe von WCF können Sie Anwendungen erstellen, die sowohl als Dienste als auch als Dienstclients funktionieren und Nachrichten von einer unbegrenzten Zahl anderer Dienste und Clients erstellen und verarbeiten. In einer derartigen verteilten Anwendung können Nachrichten zwischen Knoten, durch Firewalls, im Internet und durch zahlreiche SOAP-Vermittler fließen. Dies führt zu einer Vielzahl von Nachrichtensicherheitsrisiken. In den folgenden Beispielen werden einige häufige Bedrohungen beim Austausch von Nachrichten zwischen Entitäten gezeigt, die durch WCF-Sicherheit gemindert werden können:

  • Beobachtung des Netzwerkverkehrs zum Erhalt vertraulicher Informationen. In einem Onlinebanking-Szenario fordert ein Client die Übertragung von Geldmitteln von einem Konto zu einem anderen an. Ein böswilliger Benutzer fängt die Nachricht ab und gelangt dadurch in den Besitz der Kontonummer und des Kennworts. Später überträgt er vom kompromittierten Konto Geldmittel.

  • Nicht autorisierte Entitäten, die ohne Wissen des Clients als Dienste fungieren. In diesem Szenario fungiert ein böswilliger Benutzer (die nicht autorisierte Person) als Onlinedienst und fängt Nachrichten vom Client ab, um an vertrauliche Informationen zu gelangen. Dann verwendet der böswillige Benutzer die gestohlenen Daten, um Geldmittel vom kompromittierten Konto zu übertragen. Dieser Angriff wird auch als Phishingangriff bezeichnet.

  • Vom Aufrufenden nicht beabsichtigte Ergebnisse aufgrund von Nachrichtenänderung. Beispielsweise ermöglicht die Änderung der Nummer eines Kontos, auf das ein Betrag eingezahlt wird, die Übertragung der Geldmittel auf ein nicht autorisiertes Konto.

  • Durch Hackermanipulation mehrfach ausgeführte Aktionen. Beispielsweise verschickt ein Hacker mehrmals die gleiche Bestellung. Beispielsweise erhält ein Onlinebuchladen Hunderte von Bestellungen und schickt die Bücher an einen Kunden, der diese Bücher nicht bestellt hat.

  • Unmöglichkeit einer Clientauthentifizierung durch einen Dienst. In diesem Fall kann der Dienst nicht gewährleisten, dass die Transaktion von der richtigen Person ausgeführt wurde.

Zusammenfassung: Übertragungssicherheit bietet folgende Gewährleistungen:

  • Dienstendpunkt-Authentifizierung (Empfänger)

  • Clientprinzipal-Authentifizierung (Initiator)

  • Nachrichtenintegrität

  • Nachrichtenvertraulichkeit

  • Wiederholungserkennung

Integration in vorhandene Sicherheitsinfrastrukturen

Oftmals verfügen Webdienstbereitstellungen bereits über Sicherheitslösungen, beispielsweise Secure Sockets Layer (SSL) oder das Kerberos-Protokoll. Einige nutzen eine bereits zur Verfügung stehende Sicherheitsinfrastruktur; so verwenden Windows-Domänen beispielsweise Active Directory. Häufig ist eine Integration in diese vorhandenen Technologien erforderlich, während neuere Technologien bewertet und übernommen werden müssen.

WCF-Sicherheit wird mit vorhandenen Transportsicherheitsmodelle integriert und kann vorhandene Infrastrukturen für neuere Übertragungssicherheitsmodelle auf Basis der SOAP-Nachrichtensicherheit nutzen.

Integration in vorhandene Authentifizierungsmodelle

Ein wichtiger Bestandteil jedes Kommunikationssicherheitsmodells ist die Fähigkeit zur Identifizierung und Authentifizierung von Entitäten in der Kommunikation. Diese Entitäten in der Kommunikation verwenden "digitale Identitäten" oder Anmeldeinformationen, um sich bei den kommunizierenden Peers zu authentifizieren. Im Zuge der Entwicklung verteilter Kommunikationsplattformen wurden verschiedene Modelle für Anmeldeinformations-Authentifizierung und verwandte Sicherheitsmodelle implementiert. Beispielsweise ist das Angeben eines Benutzernamens und Kennworts eine weit verbreitete Methode zur Identifizierung von Benutzern im Internet. In Intranets setzt sich die Verwendung eines Kerberos-Domänencontrollers zur Sicherung von Benutzer- und Dienstauthentifizierung durch. In bestimmten Szenarien, wie beim Kontakt zweier Geschäftspartner, können Zertifikate zur gegenseitigen Authentifizierung verwendet werden.

Im Bereich der Webdienste, in denen derselbe Dienst unter Umständen sowohl internen Unternehmenskunden als auch externen Partnern oder Internetkunden zur Verfügung steht, ist es wichtig, dass die Infrastruktur eine Integration in diese vorhandenen Sicherheitsauthentifizierungsmodelle ermöglicht. WCF-Sicherheit unterstützt zahlreiche verschiedene Anmeldeinformationstypen (Authentifizierungsmodelle). Dazu zählen unter anderem folgende:

  • Anonymer Aufrufer

  • Anmeldeinformationen für Benutzernamenclient

  • Anmeldeinformationen für Zertifikatclient

  • Windows (sowohl Kerberos-Protokoll als auch NT LanMan [NTLM]).

Standards und Interoperabilität

In einer Welt mit umfangreichen vorhandenen Bereitstellungen ist Homogenität selten. Zwischen verteilten Berechnungs-/Kommunikationsplattformen und den Technologien anderer Anbieter müssen Interaktionen möglich sein. Ebenso muss auch Sicherheit interoperabel sein.

Um interoperable Sicherheitssysteme verwenden zu können, haben Unternehmen aus der Webdienstbranche verschiedene Standards entwickelt. Insbesondere im Hinblick auf Sicherheitsfragen wurden einige wichtige Standards eingeführt: WS-Sicherheit: SOAP-Nachrichtensicherheit (akzeptiert vom OASIS-Standardausschuss, früher als WS-Sicherheit bezeichnet), WS-Trust, WS-SecureConversation und WS-SecurityPolicy.

WCF unterstützt eine Vielzahl von Interoperabilitätsszenarios. Die BasicHttpBinding-Klasse bezieht sich auf das Basic Security Profile (BSP), und die WSHttpBinding-Klasse bezieht sich auf die aktuellen Sicherheitsstandards (zum Beispiel WS-Security 1.1 und WS-SecureConversation). Durch Einhalten dieser Standards kann die WCF-Sicherheit mit Webdiensten, die auf anderen Betriebssystemen und Plattformen als Microsoft Windows gehostet werden, interagieren und darin integriert werden.

WCF-Sicherheit – Funktionsbereiche

WCF-Sicherheit wird in drei Funktionsbereiche unterteilt: Übertragungssicherheit, Zugriffssteuerung und Überwachung. In den folgenden Abschnitten finden Sie eine kurze Erläuterung dieser Bereiche und Links auf weitere Informationen.

Übertragungssicherheit

Übertragungssicherheit umfasst drei Hauptsicherheitsfunktionen: Integrität, Vertraulichkeit und Authentifizierung. Integrität ist die Möglichkeit zur Erkennung von Nachrichtenmanipulation. Vertraulichkeit ist die Möglichkeit, eine Nachricht nur für den*die gewünschte*n Empfänger*in lesbar zu machen; dies wird durch Kryptografie erreicht. Authentifizierung ist die Möglichkeit zur Prüfung der Richtigkeit einer angegebenen Identität. Durch die Kombination dieser drei Funktionen wird sichergestellt, dass Nachrichten sicher zwischen verschiedenen Punkten übertragen werden.

Transport- und Nachrichtensicherheitsmodi

Zur Implementierung von Übertragungssicherheit in WCF werden zwei Hauptmechanismen verwendet: ein Sicherheitsmodus für Transport und ein Sicherheitsmodus für Nachrichten.

  • Der Transportsicherheitsmodus verwendet ein Protokoll auf Transportebene, wie z. B. HTTPS, um die Übertragungssicherheit herzustellen. Der Transportmodus besitzt den Vorteil seiner großen Verbreitung, der Verfügbarkeit auf zahlreichen Plattformen und seiner geringeren rechnerischen Komplexität. Der Modus besitzt jedoch den Nachteil, dass Nachrichten nur von Punkt zu Punkt (Point-to-Point) gesichert werden.

  • Auf der anderen Seite verwendet der Nachrichtensicherheitsmodus zur Implementierung von Übertragungssicherheit WS-Sicherheit (und andere Spezifikationen). Da die Nachrichtensicherheit direkt für die SOAP-Nachrichten übernommen wird und zusammen mit den Anwendungsdaten in den SOAP-Umschlägen enthalten ist, besitzt sie den Vorteil der Unabhängigkeit von Transportprotokollen, der größeren Erweiterbarkeit und der Gewährleistung von End-to-End-Sicherheit (im Vergleich zu Point-to-Point); der Modus hat den Nachteil deutlich langsamer als der Transportsicherheitsmodus zu sein, da das XML-Format der SOAP-Nachrichten verarbeitet werden muss.

Weitere Informationen zu diesen Unterschieden finden Sie unter Sichern von Diensten und Clients.

Ein dritter Sicherheitsmodus verwendet beide zuvor beschriebenen Modi und vereint deren Vorteile. Dieser Modus wird als TransportWithMessageCredential bezeichnet. In diesem Modus wird die Nachrichtensicherheit zum Authentifizieren des Clients verwendet, wohingegen die Transportsicherheit zum Authentifizieren des Servers und zum Sicherstellen von Nachrichtenvertraulichkeit und -integrität dient. Daher ist der TransportWithMessageCredential-Sicherheitsmodus beinahe so schnell wie der Transportsicherheitsmodus und ermöglicht die Erweiterbarkeit der Clientauthentifizierung auf dieselbe Weise wie die Nachrichtensicherheit. Im Gegensatz zum Nachrichtensicherheitsmodus bietet dieser Modus keine vollständige End-to-End-Sicherheit.

Zugriffssteuerung

Die Zugriffssteuerung wird auch als Autorisierung bezeichnet. Mithilfe von Autorisierung können verschiedenen Benutzern unterschiedliche Rechte zum Anzeigen von Daten gewährt werden. Da die Dateien der Personalabteilung eines Unternehmens vertrauliche Mitarbeiterdaten enthalten, sind nur Abteilungsleiter zum Einsehen der Mitarbeiterdaten berechtigt. Zudem können Ableitungsleiter nur Daten für ihre direkten Berichte anzeigen. In diesem Fall basiert die Zugriffssteuerung sowohl auf der Rolle ("Abteilungsleiter") als auch auf der speziellen Identität des Abteilungsleiters (dadurch wird ein anderer Abteilungsleiter an der Einsicht in die Unterlagen eines Mitarbeiters gehindert).

In WCF erfolgt die Bereitstellung von Zugriffssteuerungsfunktionen durch Integration in das PrincipalPermissionAttribute der Common Language Runtime (CLR) und durch eine Gruppe APIs, die als Identitätsmodell bezeichnet wird. Einzelheiten zur Zugriffssteuerung und zu anspruchsbasierter Autorisierung finden Sie unter Erweitern von Sicherheit.

Überwachung

Überwachung ist die Protokollierung von Sicherheitsereignissen in das Windows-Ereignisprotokoll. Sie können sicherheitsbezogene Ereignisse protokollieren, z. B. Authentifizierungsfehler (oder erfolgreiche Authentifizierungen). Weitere Informationen finden Sie unter Überwachung. Details zur Programmierung finden Sie unter Überwachen von sicherheitsrelevanten Ereignissen.

Siehe auch