1 / 34

XML / SOAP Web Services Security

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?

Download Presentation

XML / SOAP Web Services Security

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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

  3. Begriffe Was 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.

  4. Einsatzmöglichkeiten

  5. Begriffe Was 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

  6. 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>

  7. Begriffe XML 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.

  8. Begriffe XML 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

  9. Begriffe Was 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

  10. SOAP Envelope SOAP Header Header Header SOAP Body Nachricht mit Daten SOAP Envelope

  11. 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>

  12. Begriffe Remote Procedure Call (RPC) entfernter Methodenaufruf POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "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 OK Content-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>

  13. Begriffe Was 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

  14. Begriffe Was 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

  15. Begriffe • Discovery(optional) • Definition(optional) • Communication UDDI WSDL Web Service A SOAP Web Service B

  16. 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

  17. 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?

  18. 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.

  19. Schutzziele • Datenschutz / Verschlüsselung • Authentifizierung • Autorisierung • Unleugbarkeit / Datenintegrität

  20. Schutzziele Datenschutz / 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)

  21. 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>

  22. Schutzziele Authentifizierung • 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

  23. Schutzziele Autorisierung • 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.

  24. Schutzziele Unleugbarkeit / 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.

  25. 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>

  26. Sicherheitsrisiken Single 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

  27. 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

  28. Attacken Web Service HTTP Port 80/443 Web Service interne Bedrohung Web Service Firewall Hacker

  29. Attacken Denial of Service • Abhängig von der Art des Web Services • Daten sammeln • XML-Nachrichten auswerten • Mustererkennung

  30. Attacken Fehlerhafte 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

  31. Attacken Dictionary Attack • Verwendung von starken Passwörtern • häufiges Wechseln

  32. 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!

  33. 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.

  34. Quellen Bü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

More Related