Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Sicherheit in verteilten Systemen mit Java und SAML

Ähnliche Präsentationen


Präsentation zum Thema: "Sicherheit in verteilten Systemen mit Java und SAML"—  Präsentation transkript:

1 Sicherheit in verteilten Systemen mit Java und SAML
Karlsruher Entwicklertag 2012 Jürgen Groothues Sicherheit in verteilten Systemen mit Java und SAML

2 Vorstellung Jürgen Groothues (juergen@groothues.icw.de)
Fa. InterComponentWare AG (Walldorf/Baden) Senior Software Developer Technical Lead Application Security Sicherheit in verteilten Systemen mit Java und SAML

3 Agenda Sicherheit in verteilten Systemen mit Java und SAML
Was ist das Problem? Wie hilft SAML bei der Lösung? Exkursion: Digitale Signatur Wie hilft Java bei der Lösung? Lösungs-Beispiele (Code und Demos) Sicherheit in verteilten Systemen mit Java und SAML

4 Anwendungsfälle Was ist das Problem? 09.05.2012
Sicherheit in verteilten Systemen mit Java und SAML / x

5 Anwendungsfälle Authentifizierung von Web Services Krankenhaus A
Krankenhaus B Internet Web Service Aufruf Identitäts- Information Arzt Sicherheit in verteilten Systemen mit Java und SAML

6 Anwendungsfälle Attribut-basierte Autorisierung Krankenhaus A
Krankenhaus B Internet Web Service Aufruf Autorisierungs- Information Arzt Sicherheit in verteilten Systemen mit Java und SAML 6

7 Anwendungsfälle Web Single Sign-On Airline.com Benutzer Information
Identitäts- Benutzer Authentifizierung Browser 1 2 CarRental.com Zugriff auf geschützte Resource Sicherheit in verteilten Systemen mit Java und SAML

8 Saml Architektur Wie hilft SAML bei der Lösung? 09.05.2012
Sicherheit in verteilten Systemen mit Java und SAML

9 SAML Architektur Was ist SAML?
Entwickelt vom Security Services Technical Committee der „Organisation for the Advancement of Structured Information Standards“ (Sponsoren z.Bsp.: IBM, Microsoft, Oracle, SAP, HP, US DoD, viele andere... ) Ein offener, XML-basierter Standard zur Beschreibung und zum Austausch von Identitäts- und Autorisierungs-Daten Identity Provider Service Provider Identitäts- Daten Autorisierungs- Daten SAML SAML Sicherheit in verteilten Systemen mit Java und SAML

10 SAML Architektur Assertion Assertion Issuer
„ Der Aussteller (Issuer) versichert, daß der Eigentümer (Subject) dieser Assertion sich mit einem Password erfolgreich authentifiziert hat (AuthnStatement). Diese Assertion ist gültig unter diesen Bedingungen (Conditions): ...“ Signature des Issuer Subject Conditions AuthnStatement Signature Sicherheit in verteilten Systemen mit Java und SAML

11 SAML Architecture Assertion 09.05.2012
Sicherheit in verteilten Systemen mit Java und SAML

12 SAML Architektur Assertion mit Attributen Assertion Issuer
„... Der Eigentümer(Subject) hat die folgenden Rollen:... und arbeitet in der folgenden Abteilung:... (Attributes).“ Signature des Issuer Subject Conditions AuthnStatement AttributeStatement Signature Sicherheit in verteilten Systemen mit Java und SAML

13 SAML Architecture Assertion with Attributes 09.05.2012
Sicherheit in verteilten Systemen mit Java und SAML

14 SAML Architektur Konzepte Beispiele: Profiles Web Browser SSO Profile
benutzt Web Browser SSO Profile HTTP Post Binding Authentication Request Protocol Authentication Statement Profiles Kombiniert Bindings, Protocols und Assertions um einen konkreten Anwendungsfall abzubilden Bindings Mapping von SAML Protocols auf Standardprotokolle Protocols Kommunikation von Assertions Assertions Authentifizierung, autorisierungsrelevante Attribute Sicherheit in verteilten Systemen mit Java und SAML

15 SAML Architektur Sicherheit von Assertions
Wie wird eine Assertion gegen Fälschung geschützt? Digitale Signatur des Assertion-Ausstellers (Signature) Wie wird eine Assertion gegen Mißbrauch geschützt? Verwendung eines Gültigkeits-Zeitraums (NotBefore/NotOnOrAfter) Einschränkung des Empfänger-Kreises (Audience) Verhinderung der Wiederverwendung (durch Service-Provider) Bindung der Assertion an die Nachricht (HolderOfKey) Wie wird die Vertraulichkeit der Assertion geschützt? Verwendung von verschlüsselter Assertion (EncryptedAssertion) Verwendung von SSL (TLS) als Transport-Level Sicherheit (durch Infrastruktur) Warum kann man einer Assertion überhaupt trauen? Weil man dem Aussteller der Assertion vertraut (PKI/Trust-Relationship, Signature) Sicherheit in verteilten Systemen mit Java und SAML

16 Digitale Signatur Exkursion 09.05.2012
Sicherheit in verteilten Systemen mit Java und SAML

17 Exkursion: Digitale Signatur
Grundlage: Asymmetrische Verschlüsselung Alice Bob Original Original Encrypted Bob‘s Private Key Bob‘s Public Key Encrypter Decrypter Das Original wird mit dem Public Key des Empfängers verschlüsselt und kann nur mit dem Private Key des Empfängers entschlüsselt werden Sicherheit in verteilten Systemen mit Java und SAML

18 Exkursion: Digitale Signatur
Signatur Erstellung Alice Digest Message Digester Signed Message Alices‘s Private Key Bob Encrypter Signature Der Sender hängt einen mit seinem Private Key verschlüsselten Digest an die Nachricht an. Sicherheit in verteilten Systemen mit Java und SAML

19 Exkursion: Digitale Signatur
Signatur Verifikation Bob Message Signature Message Integrity and Authenticity Verification successful failed Alices‘s Public Key Digester Decrypter yes no Computed Digest Equal? Decrypted Digest Der Empfänger verwendet den Public Key des Senders um den Digest zu entschlüsseln und vergleicht diesen Wert mit dem selbst berechneten Digest. Sicherheit in verteilten Systemen mit Java und SAML

20 Exkursion: Digitale Signatur
Anforderungen an XML Signatur Gesamtes XML Dokument oder einzelne XML Elemente sollen signiert werden können Aufgrund von Geschäftsregeln Aus Performance Gründen Signatur-Metadaten müssen kommuniziert werden Welche Schlüssel wurden für die Signatur verwendet Welche XML Elemente wurden signiert Signatur muß selbst als XML Element dargestellt werden können (http://www.w3.org/TR/xmldsig-core/) Problem: Syntaktisch äquivalente XML Dokumente können unterschiedliche Signaturen produzieren... Sicherheit in verteilten Systemen mit Java und SAML

21 Exkursion: Digitale Signatur
Problem XML Signatur Herausfoderung XML Signatur: Syntaktisch äquivalente XML Dokumente können unterschiedliche Signaturen produzieren: Signature Signature Sicherheit in verteilten Systemen mit Java und SAML

22 Exkursion: Digitale Signatur
XML Canonicalization XML Canonicalization (c14n): Wohlgeformte XML Dokumente werden in ein „Standard-Format“ transformiert (http://www.w3.org/TR/xml-c14n) Universum aller XML Dokumente Syntaktisch äquivalente XML Dokumente c14n c14n c14n c14n Canonical Form Sicherheit in verteilten Systemen mit Java und SAML

23 Exkursion: Digitale Signatur
XML Signatur und SAML Assertion Assertion Signature SignedInfo SignedInfo: Was wurde wie signiert CanonicalizationMethod SignatureMethod Reference  Assertion Reference: Welches Element bzw. Dokument wurde signiert Transforms DigestMethod DigestValue DigestValue: Digest des referenzierten Elements (base64) SignatureValue SignatureValue: Verschlüsselter Digest des SignedInfo Elements (base64) KeyInfo KeyInfo: Informationen über den verwendeten Signatur-Schlüssel Sicherheit in verteilten Systemen mit Java und SAML

24 Exkursion: Digitale Signatur
XML Signatur - Beispiel Sicherheit in verteilten Systemen mit Java und SAML

25 JaVA XML Digital SignaturE API
Wie hilft Java bei der Lösung? JaVA XML Digital SignaturE API Sicherheit in verteilten Systemen mit Java und SAML

26 Java XML Digital Signature API
Übersicht JSR 105 Seit Java SE 6 Erlaubt Erzeugung und Validierung von XML Signaturen Unterstützt die W3C XML Digital Signature Spezifikation (http://www.w3.org/TR/xmldsig-core/) Erlaubt die Signierung von XML- und Binär-Daten Basiert auf der Java Cryptography Service Provider Architecture (JCA) Relevante Java SE Packages: javax.xml.crypto javax.xml.crypto.dsig javax.xml.crypto.dsig.keyinfo javax.xml.crypto.dsig.spec javax.xml.crypto.dom javax.xml.crypto.dsig.dom Sicherheit in verteilten Systemen mit Java und SAML

27 Java XML Digital Signature API
Erzeugung einer XML Signatur (1/3) Signature SignedInfo CanonicalizationMetho SignatureMethod Reference  Assertion Transforms DigestMethod DigestValue SignatureValue KeyInfo Sicherheit in verteilten Systemen mit Java und SAML

28 Java XML Digital Signature API
Erzeugung einer XML Signatur (2/3) Signature SignedInfo CanonicalizationMetho SignatureMethod Reference  Assertion Transforms DigestMethod DigestValue SignatureValue KeyInfo Sicherheit in verteilten Systemen mit Java und SAML

29 Java XML Digital Signature API
Erzeugung einer XML Signatur (3/3) Signature SignedInfo CanonicalizationMetho SignatureMethod Reference  Assertion Transforms DigestMethod DigestValue SignatureValue KeyInfo Sicherheit in verteilten Systemen mit Java und SAML

30 Java Architecture for XML Binding (JAXB 2.x)
Wie hilft Java bei der Lösung? Java Architecture for XML Binding (JAXB 2.x) Sicherheit in verteilten Systemen mit Java und SAML

31 JAXB 2.x Übersicht JSR 222 Referenzimplementierung: JAXB Project (http://jaxb.java.net) Seit Java 5 Bestandteil Java SE Bindet (bidirektional) XML an Java Beans (POJOs) Generiert Java Beans aus einem bestehenden XML Schema Generiert XML Schemas aus einem bestehenden Java Beans Datenmodell Verwendet Java-Annotationen als Bindungs-Informationen Relevante Java SE Packages: javax.xml.bind javax.xml. bind.annotation javax.xml. bind.annotation.adapters javax.xml. bind.attachment javax.xml. bind.util Sicherheit in verteilten Systemen mit Java und SAML

32 JAXB 2.x Architektur Compile-Zeit Laufzeit XML-Schema Generator
Dokument Bindungs- Deklarationen Unmarshal Schema- Generator Marshal Binding-Framework (JAXB-API) Schema- Compiler Marshal Unmarshal JAXB- Annotationen Java Beans Java Beans Instanzen Sicherheit in verteilten Systemen mit Java und SAML

33 JAXB 2.x Schema-Compiler
Der Schema-Compiler generiert aus einem XML Schema Java Klassen mit JAXB- Annotationen: XML-Schemakomponente Java-Komponente Namespace Package oasis.names.tc.saml._2_0.assertion Datentyp Java-Klasse Element Instanz-Variable ... Sicherheit in verteilten Systemen mit Java und SAML

34 JAXB 2.x Schema-Compiler
Das Default-Verhalten des Schema-Compilers kann mit Bindungs-Deklarationen überschrieben werden: Package-Name überschreiben: Klassen-Name überschreiben: Sicherheit in verteilten Systemen mit Java und SAML

35 JAXB 2.x Schema-Compiler mit Maven 09.05.2012
Sicherheit in verteilten Systemen mit Java und SAML

36 MySAML Lösungs-Beispiel 09.05.2012
Sicherheit in verteilten Systemen mit Java und SAML

37 MySaml Architektur Sicherheit in verteilten Systemen mit Java und SAML

38 https://github.com/groothues/mysaml
MySaml API <Demo> https://github.com/groothues/mysaml Sicherheit in verteilten Systemen mit Java und SAML

39 WS-Security, SSO Beispiel-Anwendungen 09.05.2012
Sicherheit in verteilten Systemen mit Java und SAML

40 Beispiel-Anwendung Web Service Security 09.05.2012
Sicherheit in verteilten Systemen mit Java und SAML

41 Beispiel-Anwendung Web Service Security – SOAP Request soap:Envelope
soap:Header wsse:Security WS-Security Core Specification saml:Assertion WS-Security SAML Token Profile open.org/committees/tc_home.php?wg_abbrev=wss soap:Body my:currentTime Sicherheit in verteilten Systemen mit Java und SAML

42 Beispiel-Anwendung Web Service Security – Trust Relationship
Sicherheit in verteilten Systemen mit Java und SAML

43 https://github.com/groothues/mysaml
Beispiel-Anwendung Web Service Security <Demo> https://github.com/groothues/mysaml Sicherheit in verteilten Systemen mit Java und SAML

44 Beispiel-Anwendung Web Single Sign-On (SSO) 09.05.2012
Sicherheit in verteilten Systemen mit Java und SAML

45 Beispiel-Anwendung Web Single Sign-On – Trust Relationship 09.05.2012
Sicherheit in verteilten Systemen mit Java und SAML

46 Beispiel-Anwendung <Demo> Web Single Sign-On (SSO) 09.05.2012
Sicherheit in verteilten Systemen mit Java und SAML

47 Ressourcen Sicherheit in verteilten Systemen mit Java und SAML / x

48 Resourcen JAXB 2.0, Samuel Michaelis u. Wolfgang Schmiesing, Hanser Verlag SOA Security, Ramarao Kanneganti u. Prasad Chodavarapu, Manning Verlag SAML (Knowledgebase für SAML Specs, Profile, Tutorials und Implementierungen: OASIS SAML Übersichtsseite: IHE XUA (Cross Enterprise User Assertion, ab Seite 88): 0_Vol2b_FT_ pdf JAXB Java XML Digital Signatures Programming with the Java XML Digital Signature API Sicherheit in verteilten Systemen mit Java und SAML

49 Sicherheit in verteilten Systemen mit Java und SAML / x


Herunterladen ppt "Sicherheit in verteilten Systemen mit Java und SAML"

Ähnliche Präsentationen


Google-Anzeigen