Web Services - Sicherheit
Sicherheit ist für Webdienste von entscheidender Bedeutung. Weder XML-RPC- noch SOAP-Spezifikationen stellen jedoch explizite Sicherheits- oder Authentifizierungsanforderungen.
Es gibt drei spezifische Sicherheitsprobleme bei Webdiensten:
- Confidentiality
- Authentication
- Netzwerksicherheit
Vertraulichkeit
Können wir sicherstellen, dass die Kommunikation vertraulich bleibt, wenn ein Client eine XML-Anfrage an einen Server sendet?
Antwort liegt hier -
- XML-RPC und SOAP werden hauptsächlich über HTTP ausgeführt.
- HTTP unterstützt Secure Sockets Layer (SSL).
- Die Kommunikation kann über SSL verschlüsselt werden.
- SSL ist eine bewährte Technologie und weit verbreitet.
Ein einzelner Webdienst kann aus einer Kette von Anwendungen bestehen. Beispielsweise kann ein großer Dienst die Dienste von drei anderen Anwendungen zusammenführen. In diesem Fall ist SSL nicht ausreichend. Die Nachrichten müssen an jedem Knoten entlang des Dienstpfads verschlüsselt werden, und jeder Knoten stellt ein potenziell schwaches Glied in der Kette dar. Derzeit gibt es keine vereinbarte Lösung für dieses Problem, aber eine vielversprechende Lösung ist der W3C XML Encryption Standard. Dieser Standard bietet ein Framework zum Ver- und Entschlüsseln ganzer XML-Dokumente oder nur Teile eines XML-Dokuments. Sie können es unter www.w3.org/Encryption überprüfen
Authentifizierung
Wie identifizieren wir den Benutzer, wenn ein Client eine Verbindung zu einem Webdienst herstellt? Ist der Benutzer berechtigt, den Dienst zu nutzen?
Die folgenden Optionen können in Betracht gezogen werden, es besteht jedoch kein klarer Konsens über ein starkes Authentifizierungsschema.
HTTP bietet eine integrierte Unterstützung für die Basic- und Digest-Authentifizierung. Daher können Dienste auf die gleiche Weise geschützt werden, wie HTML-Dokumente derzeit geschützt sind.
SOAP Digital Signature (SOAP-DSIG) nutzt die Kryptografie mit öffentlichen Schlüsseln, um SOAP-Nachrichten digital zu signieren. Es ermöglicht dem Client oder Server, die Identität der anderen Partei zu überprüfen. Überprüfen Sie es unter www.w3.org/TR/SOAP-dsig .
Die Organisation zur Weiterentwicklung strukturierter Informationsstandards (OASIS) arbeitet an der Security Assertion Markup Language (SAML).
Netzwerksicherheit
Derzeit gibt es keine einfache Antwort auf dieses Problem, und es wurde viel diskutiert. Wenn Sie wirklich SOAP- oder XML-RPC-Nachrichten herausfiltern möchten, besteht eine Möglichkeit darin, alle HTTP-POST-Anforderungen herauszufiltern, deren Inhaltstyp auf text / xml festgelegt ist.
Eine andere Alternative besteht darin, das SOAPAction-HTTP-Headerattribut zu filtern. Firewall-Anbieter entwickeln derzeit auch Tools, die explizit zum Filtern des Webdienstverkehrs entwickelt wurden.