Nachrichtenintegrität, -vertraulichkeit und -authentifizierung mit WS-Security

Die OASIS-Spezifikation "Web Services Security (WS-Security)" ist ein flexibler Standard, der zur Sicherung der Web-Services auf Nachrichtenebene in einer Vielzahl unterschiedlicher Sicherheitsmodelle verwendet wird. Sie können SOAP-Nachrichten über digitale XML-Signatur, Vertraulichkeit durch XML-Verschlüsselung und Weitergabe von Berechtigungsnachweisen durch Sicherheitstoken schützen.

Die Spezifikation "WS-Security" definiert die Kernfunktionen für den Schutz der Integrität und Vertraulichkeit einer Nachricht und stellt Mechanismen bereit, um der Nachricht sicherheitsrelevante Claim-Informationen zuzuordnen. Die Sicherheit auf Nachrichtenebene bzw. die Sicherung von Web-Services auf Nachrichtenebene adressiert dieselben Sicherheitsanforderungen wie bei der traditionellen Websicherheit. Zu diesen Sicherheitsanforderungen gehören Identität, Authentifizierung, Berechtigung, Integrität, Vertraulichkeit, fälschungssicherer Herkunftsnachweis, Basisnachrichtenaustausch usw. Viele Mechanismen für die Handhabung der Sicherheit, darunter digitale Zertifikate, Verschlüsselung und digitale Signaturen, werden sowohl in der traditionellen Websicherheit als auch in der Sicherheit auf Nachrichtenebene verwendet. Während die HTTPS- und SSL-Technologie auf Transportebene für den Schutz der Web-Services verwendet werden kann, ist für einige Sicherheitsszenarien ein Schutz auf Nachrichtenebene besser geeignet.

Traditionelle Websicherheitsmechanismen, wie z. B. HTTPS, sind für die Sicherheitsanforderungen aller Web-Service-Szenarien möglicherweise nicht ausreichend. Wenn eine Anwendung beispielsweise ein Dokument mit JAX-RPC über HTTPS sendet, wird die Nachricht nur für die HTTPS-Verbindung gesichert, d. h. während des Transports des Dokuments zwischen Service-Requester (Client) und Service. Die Anwendung kann jedoch erfordern, dass die Dokumentdaten über die HTTPS-Verbindung hinaus oder sogar über die Transportschicht hinaus gesichert werden. Durch die Sicherung von Web-Services auf Nachrichtenebene kann die Sicherheit auf Nachrichtenebene diese erweiterten Anforderungen erfüllen.

Die Sicherheit auf Nachrichtenebene gilt für XML-Dokumente, die als SOAP-Nachrichten gesendet werden. Bei der Sicherheit auf Nachrichtenebene wird die Sicherheit selbst Teil der Nachricht, indem alle erforderlichen Sicherheitsinformationen in den SOAP-Header einer Nachricht eingebettet werden. Außerdem kann die Sicherheit auf Nachrichtenebene Sicherheitsmechanismen, wie z. B. Verschlüsselung und digitale Signatur, auf die Daten in der Nachricht selbst anwenden.

Bei der Sicherheit auf Nachrichtenebene enthält die SOAP-Nachricht selbst entweder die zum Sichern der Nachricht erforderlichen Informationen oder Informationen dazu, woher diese Informationen abgerufen werden können, um die Sicherheitsanforderungen zu erfüllen. Außerdem enthält die SOAP-Nachricht Informationen, die für die Protokolle und Prozeduren für die Verarbeitung der angegebenen Sicherheit auf Nachrichtenebene relevant sind. Die Sicherheit auf Nachrichtenebene ist jedoch nicht an einen bestimmten Transportmechanismus gebunden. Da die Sicherheitsinformationen Teil der Nachricht sind, sind sie nicht von einem Transportprotokoll wie HTTPS abhängig.

Der Client fügt dem SOAP-Nachrichtenheader Sicherheitsinformationen hinzu, die für diese bestimmte Nachricht gelten. Beim Empfang der Nachricht prüft der Web-Service-Endpunkt anhand der Sicherheitsinformationen im Header die gesicherte Nachricht und validiert sie anhand der Richtlinie. Der Serviceendpunkt kann beispielsweise die Nachrichtensignatur prüfen und sicherstellen, dass die Nachricht nicht manipuliert wurde. Den SOAP-Nachrichtenheadern können Signatur- und Verschlüsselungsdaten sowie andere Informationen wie Sicherheitstoken für die Identität (z. B. ein X.509-Zertifikat) hinzugefügt werden, die an den Inhalt der SOAP-Nachricht gebunden werden.

In WebSphere Application Server Version 6 und höher kann WS-Security als Sicherheit auf Transportebene und als Sicherheit auf Nachrichtenebene angewendet werden. Unter Verwendung dieser Sicherheitsmechanismen können Sie Client- und Serverdesigns mit hoher Sicherheit entwickeln. Sicherheit auf Tansportebene bedeutet die Sicherung der Verbindung zwischen einer Clientanwendung und einem Web-Service mit SSL (Secure Sockets Layer).

Sie können den Charakteristiken jeder Web-Service-Anwendung entsprechend verschiedene WS-Security-Szenarien anwenden. Für den Schutz Ihrer Informationen können Sie bei der Verwendung von Web Services Security zwischen verschiedenen Optionen wählen. Authentifizierungsverfahren, Integrität und Vertraulichkeit können auf Nachrichtenebene und auf Transportebene angewendet werden. Wenn die Sicherheit auf Nachrichtenebene angewendet wird, können Sie die SOAP-Nachricht mit einem Sicherheitstoken, mit einer digitalen Signatur und durch Verschlüsselung schützen.

Ohne WS-Security wird die SOAP-Nachricht in Klartext gesendet, und persönliche Daten, wie z. B. Benutzer-ID oder Kontonummer, werden ungeschützt übertragen. Ohne Anwendung von WS-Security gibt es unter der SOAP-Rahmenanweisung (Envelope) in der SOAP-Nachricht nur einen SOAP-Hauptteil (Body). Wenn Sie Features aus der Spezifikation WS-Security anwenden, wird der SOAP-Sicherheitsheader unter der SOAP-Rahmenanweisung (Envelope) in der SOAP-Nachricht eingefügt, wenn der SOAP-Hauptteil (Body) signiert und verschlüsselt wird.

Um die Integrität oder Vertraulichkeit der Nachricht zu erhalten, verwendet man normalerweise digitale Signaturen und Verschlüsselung.
  • Unter Vertraulichkeit versteht man die Vertraulichkeitsvorgaben, die auf generierte Nachrichten angewendet werden. Dazu gehört auch, dass angegeben werden muss, welche Nachrichtenabschnitte in der generierten Nachricht zu verschlüsseln und welchen Nachrichtenabschnitten verschlüsselte Nonces und Zeitmarkenelemente zuzuordnen sind.
  • Integrität wird durch Anwendung einer digitalen Signatur auf eine SOAP-Nachricht bereitgestellt. Vertraulichkeit wird durch die Verschlüsselung von SOAP-Nachrichtenverschlüsselung angewendet. Es werden verschiedene Signaturen und Verschlüsselungen unterstützt. Darüber hinaus können Signatur und Verschlüsselung auf dieselben Teile, z. B. den SOAP-Body, angewendet werden.

Sie können ein Authentifizierungsverfahren hinzufügen, indem Sie verschiedene Typen von Sicherheitstoken, wie z. B. das Benutzernamenstoken (Element <UsernameToken>), einfügen. Wenn das Benutzernamenstoken vom Web-Service-Server empfangen wird, werden Benutzername und Kennwort extrahiert und geprüft. Nur wenn die Kombination aus Benutzername und Kennwort gültig ist, wird die Nachricht akzeptiert und auf dem Server verarbeitet. Die Verwendung des Benutzernamenstokens ist nur eine der Methoden für die Implementierung der Authentifizierung. Dieses Verfahren wird auch als Basisauthentifizierung bezeichnet.

Zusätzlich zu digitalen Signaturen, Verschlüsselung und Basisauthentifizierung gibt es andere Formen der Authentifizierung. Dazu gehören die Zusicherung der Identität, LTPA-Token, Kerberos-Token und angepasste Token. Diese anderen Formen der Authentifizierung sind ebenfalls Erweiterungen von WebSphere Application Server. Sie können diese Authentifizierungsverfahren mit den Assembliertools konfigurieren, um die Authentifizierung zu implementieren.

Mit den Aktualisierungen, die an Web Services Security in der Spezifikation der Version 1.1 vorgenommen wurden, ist es möglich, über diesen Basismechanismen eine weitere Funktionsschicht hinzuzufügen. Einige Mechanismen der Version 1.1 sind Erweiterungen von WebSphere Application Server, wie z. B. die Signaturbestätigung und der verschlüsselte Header. Zu den Sicherheitstokenprofilen, die von WebSphere Application Server unterstützt werden, gehören das Benutzernamenstokenprofil, das X.509-Tokenprofil und das Kerberos-Profil. Beim Empfang der Nachricht wendet der Web-Service-Endpunkt in diesem Fall unter Verwendung der Sicherheitsinformationen im Header die entsprechenden Sicherheitsmechanismen auf die Nachricht an. Der Serviceendpunkt kann den SOAP-Nachrichtenheadern beispielsweise Signatur- und Verschlüsselungsinformationen sowie andere Informationen, wie z. B. Sicherheitstoken, hinzufügen, die an den Inhalt der SOAP-Nachricht gebunden werden. Sie können diese neuen Mechanismen über einen Richtliniensatz implementieren.

WS-SecureConversation wurde in WebSphere Application Server Version 6.1 mit dem Feature Pack for Web Services eingeführt. Secure Conversation verwendet einen Sitzungsschlüssel, um SOAP-Nachrichten besser zu schützen, insbesondere dann, wenn mehrere SOAP-Nachrichten in einer Sitzung übertragen werden.

Zu den weiteren funktionalen Erweiterungen gehören unter anderem:
  • Das Kerberos-Token, das sowohl für die Authentifizierung wie auch für den nachfolgenden Nachrichtenschutz verwendet wird.
  • Dynamische Richtlinie, dem Client das Abrufen der Providerrichtlinie über eine WSDL-Anforderung oder die Verwendung von WS-MEX (Web Services MetadataExhange) zur Vereinfachung der Web-Service-Clientimplementierung ermöglicht.

Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_wssmessage
Dateiname:cwbs_wssmessage.html