xml / soap web services security
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 PresentationTRANSCRIPT
XML / SOAP Web Services Security
Vortrag für dasSeminar IT-Sicherheit WS 02/03
vonDietmar 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? XML Web Services bezüglich einzelner Schutzziele Welchen Attacken sind Web Services ausgesetzt? Fazit
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.
Einsatzmöglichkeiten
EAI HeterogeneSysteme
B2BMobileEndgeräte
Web Servicesals mögliche Lösung
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
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>
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.
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
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
SOAP Envelope
SOAP Envelope
SOAP Header
SOAP Body
Header
Header
Nachricht mit Daten
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>
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>
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
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
Begriffe
Web Service A
Web Service B
1. Discovery(optional)
2. Definition(optional)
3. Communication
UDDI
WSDL
SOAP
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
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?
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.
Schutzziele
Datenschutz / Verschlüsselung Authentifizierung Autorisierung Unleugbarkeit / Datenintegrität
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)
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>
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
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.
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.
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>
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
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
Attacken
WebService
WebService
WebService
Hacker
Firewall
HTTPPort 80/443
interneBedrohung
AttackenDenial of Service
Abhängig von der Art des Web Services Daten sammeln XML-Nachrichten auswerten Mustererkennung
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
AttackenDictionary Attack
Verwendung von starken Passwörtern häufiges Wechseln
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!
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.
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