Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Sikke Arman Geändert vor über 10 Jahren
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 ( 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 ( 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 ( 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 ( 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> 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> 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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.