Hochschule Bonn-Rhein-Sieg Service-Orientierte Architekturen Kapitel 7: Web Services IV Exkurs über Sicherheitsanforderungen Vorlesung im Masterstudiengang Informatik Sommersemester 2010 Prof. Dr. Sascha Alda (sascha.alda@h-brs.de)
Anforderungen bezüglich Sicherheit Sicherheitsanforderungen definieren Eigenschaften des Systems, um den nicht befugten Zugriff auf Software-Systeme durch Dritte zu unterbinden und somit Risiken wie Datenklau, Spionage zu minimieren. Klassische Schutzziele: Vertraulichkeit: Sicherer Austausch von Nachrichten, so dass Außenstehende diese nicht einsehen können ( Verschlüsselung) Authentizität: Sichere Feststellung, von wem eine Nachricht verschickt wurde, d.h. die sichere Zuordnung zu deren Sender ( digitale Signaturen) Datenintegrität: sichere Feststellung, dass Nachricht während der Übertragung nicht manipuliert wurde Authorisierung: Sicherstellung, dass Benutzer Berechtigungen für den Aufruf von Web Services oder einer Operation besitzt Folie 2
Anforderungen bezüglich Sicherheit Realisierung der Sicherung einer Kommunikation Transportebene (z.b. SSL mit HTTP) Nachrichtenebene Mit dem Protokoll Secure Socket Layer (SSL) können verschlüsselte Daten auf der Transportschicht übertragen werden Transparent für darüberliegende Anwendungen Basiert auf einem symmetrischen Verschlüsselungsverfahren Unterstützt die Vertraulichkeit zwischen zwei Kommunikationspartnern SSL ist geeignet für Szenarien mit zwei Kommunikationspartnern Schlecht für Szenarien im Kontext SOA mit mehreren Intermediaries (Zwischenknoten) Nachricht ist in Klartext auch Intermediaries einsehbar Folie 3
Übersicht über Frameworks für Sicherheit in SOA Folie 4
WS-Security WS-Security definiert einen Standard für die Sicherheit auf Nachrichtenebene auf Basis des SOAP-Protokolls Nachrichteninhalte werden vor dem Versand verschlüsselt und / oder signiert ( Vortrag Digitale Signatur) Verwendung von weiteren Standards aus der W3C-Welt Verschlüsselung von Nachrichten: XML Encryption Digitale Signatur: XML Signatur Beschreibung, wie verschlüsselte Daten und digitale Signaturen inkl. aller notwendigen MetaDaten in XML dargestellt werden können MetaDaten: Angabe über verwendete Algorithmen, Schlüssel Folie 5
WS-Security Verwendung von Security Tokens um den Identitätsbeweis eines Benutzers durchzuführen (Identitätszeugnis) Benutzername / Password (plain text!) Digitale Zertifikate basierend auf dem Public-Key Verfahren und zentrale Registrierungsstellen (z.b. X.509, Kerberos) WS-Security erlaubt Verwendung beliebiger Token (Flexibilität, Erweiterbarkeit) Folie 6
Einfache Realisierung von Security Token Folie 7
Nachrichtenaustausch basierend auf Zertifkaten <?xml version="1.0"?> <S11:Envelope...> <S11:Header> <wsse:security> <wsu:timestamp wsu:id="t0" /> <wsse:binarysecuritytoken ValueType="...#X509v3" wsu:id="myx509token"...> </wsse:binarysecuritytoken> <xenc:encryptedkey> <ds:keyinfo> <wsse:securitytokenreference> <wsse:keyidentifier /> </wsse:securitytokenreference> </ds:keyinfo> <xenc:cipherdata /> <xenc:referencelist> <xenc:datareference URI="#enc1"/> </xenc:referencelist> </xenc:encryptedkey> <ds:signature>... <ds:signedinfo> <ds:reference URI="#T0" /> <ds:reference URI="#body" /> </ds:signedinfo> <ds:signaturevalue /> <ds:keyinfo> <wsse:securitytokenreference> <wsse:reference URI="#MyX509Token"/> </wsse:securitytokenreference> </ds:keyinfo> </ds:signature> </wsse:security> </S11:Header> <S11:Body wsu:id="body"> <xenc:encrypteddata wsu:id="enc1"> <xenc:cipherdata> </xenc:cipherdata> </xenc:encrypteddata> </S11:Body> </S11:Envelope> Folie 8
SAML (Security Assertion Markup Language) XML-basiertes Framework zum Austausch von von Authentifizierungs- und Autorisierungsinformationen Standard von der OASIS seit 2001 Service Provider (entities) tauschen ihr Wissen über sicherheitsrelevante Informationen (subjects) in Form von Assertions aus (i.d.r. Service Consumer oder Benutzer) Anwendungen: Single Sign On (SSO) Verteilte Transaktionen Folie 9
SAML (Security Assertion Markup Language) SAML Assertions sind vertrauenswürdige Aussagen von Endanwendern oder Web Services über eine bestimmte digitale Identität. Typen: Authentication Assertions: Angabe, ob ein Benutzer durch ein bestimmtes Verfahren (z.b. Password, digitale Signatur) zu einer bestimmten Zeit authentifiziert wurde Attribute Assertions: Statische oder dynamische Angaben zu selektierten Attributen (statisch: Angabe einer Rolle, dynamisch: Kontostand eines Benutzers) Authorisation Decision Assertions: Angabe, ob ein Benutzer eine Berechtigung für Zugriff auf bestimmte Ressourcen hat. SAML Assertions können vor der Übertragung digital signiert werden SAML Assertions werden auf Basis eines Protokolls ausgetauscht SAML Bindings können zu bekannten Protokollen erstellt werden Folie 10
SAML Szenario Folie 11
WS-Security und SAML in AXIS2 In AXIS2 sind die wichtigen Sicherheitsframework SAML und WS-Security durch das Modul Rampart implementiert SAML Assertions werden in Form von Tokens mitgeliefert (Abarbeitung in Handlern) Basis: OpenSource-Projekt WSS4J Folie 12
Fragenkatalog für mündliche Prüfung Was ist eine Software-Architektur? Was ist eine Service-Orientierte Architektur? Was ist der Unterschied zwischen einem Geschäftsprozess und einem Workflow? Was ist eine fachliche Komponente? Was ein fachlicher Service? Kann es in einem Workflow auch Benutzerinteraktionen geben? Wie kann man einen Workflow implementieren? Wie ist ein BPEL-Workflow aufgebaut? Wie kann man einen BPEL-Workflow aufrufen? Wie sieht eine SOA-Referenz-Architektur aus? Wo kann man hier Workflows wiederfinden? Wie werden in BPEL Transaktionen behandelt? Was ist AXIS2? Welche Formen der Service-Interaktion kennt AXIS2? Welche asynchronen? Was ist ein Web Service? Was ist SOAP, was ist WSDL? Folie 13
Fragenkatalog für mündliche Prüfung Was ist eine REST-Architektur? Was versteht man unter einer losen Kopplung innerhalb einer Architektur? Wie kann man eine Software-Architektur skalierbar machen? Was ist ein Enterprise Service Bus? Welche Aufgaben hat er? Nennen sie Standards aus dem Bereich Sicherheit im Kontext einer Service- Orientierten Architektur. Wie modelliert man eine service-orientierte Architektur? Wie ist SOAP aufgebaut? Wie ist WSDL aufgebaut? Diskutieren sie den Begriff Anpassbarkeit: wie kann man eine Architektur anpassbar modellieren? Wem gehört eine SOA? Ist SOA ein Allheilmittel für die Entwicklung von Software-Architekturen? Wann rentiert sich der Einsatz einer SOA? Wie entwickeln sie eine SOA? Bottom-Up vs. Top-Down erläutern! Folie 14