xml / soap web services security

34
XML / SOAP Web Services Security Vortrag für das Seminar IT-Sicherheit WS 02/03 von Dietmar Mühmert

Upload: galena-cabrera

Post on 01-Jan-2016

66 views

Category:

Documents


0 download

DESCRIPTION

XML / SOAP Web Services Security. Vortrag für das Seminar IT-Sicherheit WS 02/03 von Dietmar Mühmert. Inhalt. Begriffserläuterungen: Web Services, XML, SOAP, WSDL, UDDI Einsatzgebiete von Web Services Merkmale und Sicherheitsrisiken von XML Web Services Welche Probleme sind neu? - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: XML / SOAP Web Services Security

XML / SOAP Web Services Security

Vortrag für dasSeminar IT-Sicherheit WS 02/03

vonDietmar Mühmert

Page 2: XML / SOAP Web Services Security

Inhalt Begriffserläuterungen: Web Services, XML, SOAP,

WSDL, UDDI Einsatzgebiete von Web Services Merkmale und Sicherheitsrisiken von XML Web

Services Welche Probleme sind neu? XML Web Services bezüglich einzelner Schutzziele Welchen Attacken sind Web Services ausgesetzt? Fazit

Page 3: XML / SOAP Web Services Security

BegriffeWas sind Web Services?

Web Services sind Softwarekomponenten, die über Beschreibungsstandards und Standardprotokolle im Internet zugänglich sind.

XML Web Services nutzen XML als Beschreibungssprache und HTTP als Übertragungsprotokoll.

Page 4: XML / SOAP Web Services Security

Einsatzmöglichkeiten

EAI HeterogeneSysteme

B2BMobileEndgeräte

Web Servicesals mögliche Lösung

Page 5: XML / SOAP Web Services Security

BegriffeWas ist XML?

eXtensible Markup Language (XML) strukturiert Daten und versieht sie mit Bezeichnerelementen

Daten liegen in textueller Form vor ermöglicht den Austausch von Daten zwischen verschiedenen

Applikationen

Page 6: XML / SOAP Web Services Security

Beispiel: XML Listing

<?xml version="1.0" encoding="UTF-8"?>

<uni:Referat xmlns:uni="http://www.inf.fu-berlin.de"><uni:Titel>XML Web Services Security</uni:Titel><uni:Autor>Dietmar Mühmert</uni:Autor>

</uni:Referat>

Page 7: XML / SOAP Web Services Security

BegriffeXML Schemas

XML Dokumente können unterschiedlich aufgebaut sein, obwohl sie den gleichen Inhalt haben

Man braucht eine gemeinsame Vereinbarung für XML Dokumente Man kann mit Hilfe von XML Schemas eigene Datentypen definieren Klassen, die in der Programmiersprache, wie z.B. Java oder Perl,

erstellt wurden, lassen sich somit ineinander umwandeln.

Page 8: XML / SOAP Web Services Security

BegriffeXML Schemas

Mit Hilfe von XML Schemas kann man folgendes überprüfen: Die Struktur von Elementen und Attributen Die Reihenfolge der Elemente Die Datenwerte der Elemente und Attribute, abhängig von

Wertebereichen, Aufzählungen und Pattern Matching Die Eindeutigkeit der Werte

Page 9: XML / SOAP Web Services Security

BegriffeWas ist SOAP?

Simple Object Access Protocols (SOAP) ist ein XML Dialekt definiert ein Rahmenwerk für die Übertragung von XML-Nachrichten

über ein standardisiertes und anerkanntes Transportprotokoll

Page 10: XML / SOAP Web Services Security

SOAP Envelope

SOAP Envelope

SOAP Header

SOAP Body

Header

Header

Nachricht mit Daten

Page 11: XML / SOAP Web Services Security

Beispiel: SOAP Listing<SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/enevelope"><SOAP-ENV:Header>

<sec:credentials xmlns:sec="http://schemas.xmlsoap.org/ws/2002/01/sec" mustUnderstand="1"><sec:userName>muehmert</sec:userName><sec:userPassword>z65rfe3w</sec:userPassword></sec:credentials>

</SOAP-ENV:Header><SOAP-Env:Body>

<SOAP:GetUserID xmlns:SOAP="http://www.inf.fu-berlin.de/webservices"><userName>muehmert</userName></SOAP:GetUserID>

</SOAP-Env:Body></SOAP-ENV:Envelope>

Page 12: XML / SOAP Web Services Security

BegriffeRemote Procedure Call (RPC) entfernter MethodenaufrufPOST /StockQuote HTTP/1.1Host: www.stockquoteserver.comContent-Type: text/xml; charset="utf-8"Content-Length: nnnnSOAPAction: "Some-URI"

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m="Some-URI"> <symbol>DIS</symbol> </m:GetLastTradePrice> </SOAP-ENV:Body></SOAP-ENV:Envelope>

------------------------------

HTTP/1.1 200 OKContent-Type: text/xml; charset="utf-8"Content-Length: nnnn

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Body> <m:GetLastTradePriceResponse xmlns:m="Some-URI"> <Price>34.5</Price> </m:GetLastTradePriceResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope>

Page 13: XML / SOAP Web Services Security

BegriffeWas ist WSDL?

Web Services Description Language (WSDL), definiert die Web Services Interfaces, die Datentypen und das Zusammenspiel mit dem Übertragungprotokoll

XML-basierend über WSDL erfährt ein SOAP-Client, wie eine Anfrage auszusehen hat

Page 14: XML / SOAP Web Services Security

BegriffeWas ist UDDI?

Universal Description, Discovery and Integration (UDDI), ist ein Web Service Register mit Metadaten

Ein unabhängiges Konsortium aus Unternehmen wie Microsoft, IBM, Hewlett-Packard und SAP verwalten einen öffentlichen UDDI Server (vom Konzept her, so ähnlich wie DNS-Server)

dient zum Auffinden von Web Services enthält Informationen über die verschiedenen Web Services und unter

anderem deren WSDLs

Page 15: XML / SOAP Web Services Security

Begriffe

Web Service A

Web Service B

1. Discovery(optional)

2. Definition(optional)

3. Communication

UDDI

WSDL

SOAP

Page 16: XML / SOAP Web Services Security

Merkmale von Web Services

Web Services sind charakterisiert durch:

dezentrale Architektur und Administration heterogene Implementierungen und Systeme unternehmensübergreifende Kommunikation und Verbindungen öffentlicher Zugang über das Internet

Page 17: XML / SOAP Web Services Security

Merkmale von Web Services

neue Probleme und häufig gestellte Fragen:

Wie setzt man eine übergreifende Sicherheitspolitik durch? Wie kann man versichern, dass Sicherheitspolitiken eingehalten werden,

besonders bei Heimanwendern? Wie arbeitet man mit anderen “schwachen” Systemen zusammen? Was macht man mit älteren Anwendungen, die nie für's Internet gedacht

waren? Wie administriert und logt man systemübergreifend?

Page 18: XML / SOAP Web Services Security

WWW-Security / Web Services Security

Im Vergleich zu einem Web-Server hat eine Firewall für die Sicherheit von Web Services wenig nutzen.

Eine Verschlüsselung des Kommunikationskanal per Secure Sockets Layer (SSL) ist nicht vollkommen ausreichend.

Attacken, die gegen Web Server durchgeführt werden, kann man leicht abgewandelt auch gegen Web Services anwenden.

Page 19: XML / SOAP Web Services Security

Schutzziele

Datenschutz / Verschlüsselung Authentifizierung Autorisierung Unleugbarkeit / Datenintegrität

Page 20: XML / SOAP Web Services Security

SchutzzieleDatenschutz / Verschlüsselung

Übertragung im Klartext ermöglicht unbefugten Dritten das Lesen der Daten

Verschlüsselung mit Hilfe eines asymmetrischen Verfahrens (RSA) Kommunikationskanal per Secure Sockets Layer (SSL) schützen falls sensible Daten an einen dritten Service-Provider weitergeleitet

werden, kann man Teile einer XML-Nachricht verschlüsseln und so den Header mit Routing Informationen unverschlüsselt lassen.

XML Encryption (siehe Beispiel) Viren lassen sich in verschlüsselten Attachments nicht ausfindig machen

(Viren-Scan erst nach dem Entschlüsseln möglich)

Page 21: XML / SOAP Web Services Security

Beispiel: XML Encryption

<?xml version='1.0'?> <PaymentInfo xmlns='http://example.org/paymentv2'> <Name>John Smith</Name> <CreditCard Limit='5,000' Currency='USD'> <EncryptedData xmlns='http://www.w3.org/2001/04/xmlenc#' Type='http://www.w3.org/2001/04/xmlenc#Content'> <CipherData> <CipherValue>A23B45C56</CipherValue> </CipherData> </EncryptedData> </CreditCard> </PaymentInfo>

Page 22: XML / SOAP Web Services Security

SchutzzieleAuthentifizierung

Bisher hat sich nur der Anwender beim Web-Server angemeldet, um an Informationen zu gelangen.

Nun sollten sich sowohl der Service-Requester als auch der Service-Provider gegenseitig authentifizieren, da sensible Daten in beide Richtungen versendet werden.

Man kann z.B. Passwörter, Zertifikate, Kerberos, Lightweight Directory Access Protocol (LDAP) oder Active Directory verwenden.

Single sign-on

Page 23: XML / SOAP Web Services Security

SchutzzieleAutorisierung

Prüfen, ob Benutzer Zugang zu bestimmten Ressourcen hat und welche Operationen der Benutzer ausführen darf.

Es empfiehlt sich nach dem Prinzip “least privilege” vorzugehen. Mehrere Administratoren mit unterschiedlichen Rechten, um Risiken zu

verteilen. Nur Leserechte auf Logdateien für Admins.

Page 24: XML / SOAP Web Services Security

SchutzzieleUnleugbarkeit / Datenintegrität

Nachweisen des Ursprungs einer Nachricht mittels Signaturen lässt sich feststellen, ob die Nachricht unterwegs

verändert wurde (signieren mit dem private key, verifizieren mit dem public key)

Logdateien signieren, um zu verhindern, dass Hackerspuren verwischt werden können.

Page 25: XML / SOAP Web Services Security

Beispiel: Signatur Listing<Signature Id="MyFirstSignature" xmlns="http://www.w3.org/2000/09/xmldsig#">

<SignedInfo>

<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>

<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/>

<Reference URI="http://www.w3.org/TR/2000/REC-xhtml1-20000126/">

<Transforms>

<Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>

</Transforms>

<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>

<DigestValue>j6lwx3rvEPO0vKtMup4NbeVu8nk=</DigestValue>

</Reference>

</SignedInfo>

<SignatureValue>MC0CFFrVLtRlk=...</SignatureValue>

<KeyInfo>

<KeyValue>

<DSAKeyValue>

<P>...</P><Q>...</Q><G>...</G><Y>...</Y>

</DSAKeyValue>

</KeyValue>

</KeyInfo>

</Signature>

Page 26: XML / SOAP Web Services Security

SicherheitsrisikenSingle sign-on

Ziel: einmalige Authentifizierung für mehrere Web Services Ansatz: Security Assertion Markup Language (SAML), ist ein Standard

in XML, womit man für verschiedene Web Services Informationen zur Authentifizierung und Autorisierung festhalten kann.

somit kann jeder Web Service bei einer SAML-Autorität die SAML-Zuweisungen bezüglich eines Anwenders abfragen

Page 27: XML / SOAP Web Services Security

Attacken

die Daten werden durch die Firewall durchgelassen (Port 80 bzw. 443), da bekommt jeder Administrator Bauchschmerzen

man kann aber Firewalls oft so konfigurieren, dass sie SOAP Nachrichten generell blocken

man muss sich den Inhalt der Nachrichten genauer angucken und auswerten

Web Services bieten aufgrund ihrer unfangreichen Funktionalität eine große Angriffsfläche für Hacker

Page 28: XML / SOAP Web Services Security

Attacken

WebService

WebService

WebService

Hacker

Firewall

HTTPPort 80/443

interneBedrohung

Page 29: XML / SOAP Web Services Security

AttackenDenial of Service

Abhängig von der Art des Web Services Daten sammeln XML-Nachrichten auswerten Mustererkennung

Page 30: XML / SOAP Web Services Security

AttackenFehlerhafte Parameter

ältere Systeme rechnen eventuell nicht mit falsch formatierten Eingaben

Parameter angeben, die die Maximallänge überschreiten Wildcards oder Escape-Zeichen einbauen Werte und Attribute mittels XML Schemas prüfen

Page 31: XML / SOAP Web Services Security

AttackenDictionary Attack

Verwendung von starken Passwörtern häufiges Wechseln

Page 32: XML / SOAP Web Services Security

Sicherheitslöcher schliessen

System runterzufahren (nicht so einfach wie z.B. bei einem Web-Server)

Wichtig: Standards für die Logdateien und Sicherheitspolitiken entwickeln. Nur so ist eine Systemübergreifende Fehlersuche möglich.

Die Koordination unter den einzelnen Administratoren ist wichtig!

Page 33: XML / SOAP Web Services Security

Fazit

Web Services stehen noch am Anfang ihrer Entwicklung Sicherheitsrisiken hindern Web Services am großen Durchbruch Viele Unternehmen wagen nicht den ersten Schritt, sondern warten

auf andere Vorreiter.

Page 34: XML / SOAP Web Services Security

QuellenBücher / Artikel: XML Web Service-Anwendungen mit Microsoft .NET (Christian Weyer) Understanding Web Services (Eric Newcomer) eAI Journal, September 2002, Web Services Security (Andy Yang)

Internet: XML: http://www.w3.org WSS: http://www.oasis-open.org/committees/wss ...und viele mehr