WS-Security
# WS-Security

WS-Security ist ein Standard aus dem Kontext der WS-*-Spezifikationen. Im Wesentlichen beschreibt er ein Kommunikationsprotokoll, das es ermöglicht, Sicherheitsaspekte bei Webservices zu berücksichtigen. Am 19. April 2004 wurde der OASIS-Standard in seiner Version 1.0 veröffentlicht und am 17. Februar 2006 auf die Version 1.1 aktualisiert.
Ursprünglich durch IBM, Microsoft und Verisign entwickelt, wird der Standard nun durch ein Komitee im Rahmen von Oasis-Open weiterentwickelt.
Der Standard beinhaltet Spezifikationen, die vorschreiben, wie Nachrichtenintegrität und -verschlüsselung im Rahmen von Webservices sichergestellt werden können. Dabei schreibt WS-Security jedoch nicht alle Details vor, sondern setzt viel mehr auf bereits bestehende „Verfahren“ auf (XML-Signature und XML-Encryption).
WS-Security beinhaltet drei Hauptmechanismen:
* die Möglichkeit, Securitytokens als Teil der SOAP-Nachricht zu übertragen,
* Signierung von Nachrichten und
* Verschlüsselung von Nachrichten.
Dabei wird genau vorgeschrieben, wo und wie Signaturen, Verschlüsselungsinformationen sowie besagte Securitytokens in der SOAP-Nachricht eingefügt werden müssen.

## Profile für Security Tokens

Es werden folgende Profile zur Erstellung des SecurityTokens unterschieden:
* Benutzername
* X.509-Zertifikat
* Kerberos-Ticket
* SAML-Assertion
* REL-Dokument

## Zugehörige Spezifikationen

Die folgenden WS-*-Spezifikationen stehen in engem Zusammenhang mit WS-Security:
* WS-SecureConversation
* WS-SecurityPolicy
* WS-Trust
* WS-Security UsernameToken Profile

## Implementierungen

* XWSS
* WSS4J

## Alternativen

Anstelle von WS-Security (Message Layer) kann man unter anderem auch auf der Transportebene (Transport Layer) aufsetzen, indem beispielsweise Protokolle wie HTTPS verwendet werden. Dies hat folgende Nachteile:
* Bei der Kommunikation über mehrere Knoten hat man dann keine direkte „End-to-End-Security“ mehr.
* Alles-oder-nichts-Übertragung: Message Layer Security bietet eine feinere Granularität.