Drucksache: Windows Developer 3.18 - Sicherheitskonzepte in der WCF
Im Windows Developer 3.18 ist ein Artikel über die Sicherheitskonzepte in der WCF erschienen.
Die Windows Communication Foundation (WCF, früher "Indigo") ist Microsofts Kommunikationsplattform für verteilte Anwendungen. Sie stellt die Kommunikationstechnologien DCOM, Enterprise Services, MSMQ, Web-Services und WSE standardisiert unter einer einheitlichen Programmierschnittstelle zur Verfügung. Seit dem .NET-Framework 3.0 ist WCF fester Bestandteil des Frameworks.
Die vorhandenen Bindings decken die meisten Anwendungsfälle ab. Gibt es kein passendes Binding, kann problemlos eines erzeugt werden. Egal ob symmetrische oder asymmetrische Verschlüsselung, ob ohne Authentifizierung oder mit, ob über Benutzername&Passwort, X.509-Zertifikat, Kerberos, ..., jede Kombination ist möglich, und das sollte dann ja wohl fast jeden Anwendungsfall abdecken.
Fast, da es einige wenige Einschränkungen gibt. Die betreffen zum Teil aber veraltete System- und Framework-Versionen, so dass sie für aktuelle Entwicklungen nicht mehr relevant sind. Oder unterstützen Sie z.B. noch die Windows XP Home Edition?
Etwas Vorsicht ist wie immer im Bereich Kryptographie geboten. Sie erinnern sich vielleicht: Manche Algorithmen und/oder Schlüssellängen sind nicht mehr sicher und sollten vermieden werden. Darauf müssen Sie selbst achten, denn aus Kompatibilitätsgründen stehen immer auch unsichere Algorithmen und Schlüssellängen zur Verfügung.
Nicht nur in der WCF, sondern allgemein. Im Notfall ist eine unsichere Verbindung oft immer noch besser als gar keine Verbindung, daher hat die Unterstützung solcher tatsächlich oder potentiell unsicherer Möglichkeiten durchaus ihre Berechtigung. Nur müssen Sie darauf achten, dass diese Notlösung nicht zum Normalfall wird. Oder ein Angreifer ihren Einsatz provozieren und danach die Verschlüsselung brechen kann. Also einfach dran denken: Nur, weil ein Algorithmus oder eine Schlüssellänge von der WCF unterstützt wird, heißt das noch lange nicht, dass sie sicher ist.
Und hier noch die Links und Literaturverweise aus dem Artikel:
- [1] Microsoft: "WCF Security Overview"
- [2] Microsoft: "BasicHttpBinding Class"
- [3] Microsoft: "WCF Configuration Schema - <basicHttpBinding>"
- [4] Microsoft: "WSHttpBinding Class"
- [5] Microsoft: "WCF Configuration Schema - <wsHttpBinding>"
- [6] Microsoft: "WSDualHttpBinding Class"
- [7] Microsoft: "WCF Configuration Schema - <wsDualHttpBinding>"
- [8] Microsoft: "NetTcpBinding Class"
- [9] Microsoft: "WCF Configuration Schema - <netTcpBinding>"
- [10] Microsoft: "NetNamedPipeBinding Class"
- [11] Microsoft: "WCF Configuration Schema - <netNamedPipeBinding>"
- [12] Microsoft: "MsmqIntegrationBinding Class"
- [13] Microsoft: "WCF Configuration Schema - <msmqIntegrationBinding>"
- [14] Microsoft: "NetMsmqBinding Class"
- [15] Microsoft: "WCF Configuration Schema - <netMsmqBinding>"
- [16] Microsoft: "WSFederationHttpBinding Class"
- [17] Microsoft: "WCF Configuration Schema - <wsFederationHttpBinding>"
- [18] Microsoft: "Security Capabilities with Custom Bindings"
- [19] Microsoft: "SecurityBindingElement Class"
- [20] Microsoft: "AsymmetricSecurityBindingElement Class"
- [21] Microsoft: "SymmetricSecurityBindingElement Class"
- [22] Microsoft: "TransportSecurityBindingElement Class"
- [23] Microsoft: "SecurityBindingElement Authentication Modes"
- [24] Microsoft: "WCF Feature Details - Unsupported Scenarios"
- [25] Carsten Eilers: "Sicherheit von Kryptoverfahren"; Windows Developer 1.18
Trackbacks