Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design −...

33
20 Sichere Architekturen 1 Methodische Grundlagen Methodische Grundlagen des Software-Engineering des Software-Engineering SS 2011 SS 2011 Willkommen zur Vorlesung Methodische Grundlagen des Software- Engineering im Sommersemester 2011 Prof. Dr. Jan Jürjens TU Dortmund, Fakultät Informatik, Lehrstuhl XIV

Transcript of Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design −...

Page 1: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

1

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011

Willkommen zur VorlesungMethodische Grundlagen des Software-

Engineeringim Sommersemester 2011

Prof. Dr. Jan JürjensTU Dortmund, Fakultät Informatik, Lehrstuhl XIV

Page 2: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

2

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011

20. Sichere Architekturen

Page 3: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

19 Modell-basierte Sicherheit mit UML

3

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011

EinordnungEinführung UML / UMLsec

Page 4: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

19 Modell-basierte Sicherheit mit UML

4

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011

EinordnungEinführung UML / UMLsec

● Business Prozesse

● Qualitätsmanagement

● Testen

● Sicherheit

● Sicheres Software Design

− Einführung UML / UMLsec− Kryptographische Protokolle− Biometrische Authentifizierung− Elektronische Geldbörse− Weitere Anwendungsbeispiele

Page 5: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

5

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011Java Sicherheits-Architektur

Ursprünglich (JDK 1.0): Sandkasten-Modell.

Zu simplistisch und restriktiv.

JDK 1.2/1.3: feinere Sicherheitskontrolle (signing,

sealing, guarding objects, . . . )

Aber: komplex, also Verwendung fehleranfällig.

Page 6: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

6

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011Java Sicherheits-Politiken

Berechtigungseinträge bestehen aus:

• Schutzdomänen (URL's und Signaturschlüssel)

• Ziel-Resourcen (z.B. Dateien auf lokaler Machine)

• zugehörige Berechtigungen (z.B. read, write, execute)

Page 7: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

7

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011Signed und Sealed Objects

Brauchen Integritätsschutz für Objekte, die zur Authentisierung verwendet oder zwischen JVMs ausgetauscht werden.

SignedObject enthält Objekt und seine Signatur.

Für Vertraulichkeitsschutz: SealedObject ist ein

verschlüsseltes Objekt.

Page 8: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

8

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011Guarded Objects

java.security.GuardedObject schützt Zugang zu anderen Objekten.

● Zugang über getObject Methode.● checkGuard Methode in java.security. Guard

kontrolliert Zugang.● Gibt Referenz oder

SecurityException.

Page 9: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

9

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011Problem: Komplexität

• Rechtevergabe abhängig von Ausführungskontext. • Zugangskontrollentscheidungen bezüglich

verschiedener Threads.• Können verschiedene Schutzdomäne betreffen.• Methode doPrivileged() unabhängig von

Ausführungskontext.Gibt Werkzeuge zur Überprüfung.

Page 10: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

10

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011Entwurfsprozess

• Zugangskontroll-Anforderungen für sensitive Objekte formulieren.

• Guard objects mit Zugangskontrollen definieren.• Überprüfen, dass Schutz der guard objects

hinreichend ist.• Überprüfen, dass Zugangskontrolle konsistent

mit Funktionalität ist.• Überprüfen, dass mobile Objekte hinreichend

geschützt sind.

Page 11: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

11

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011Frage

Guarded objects korrekt eingesetzt ?

Page 12: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

12

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011<<guarded access>>

Stellt sicher, dass in Java <<guarded>> Klassen nur durch {guard} Klassen aufgerufen werden können.

Constraints:

• Referenzen der <<guarded>> Objekte bleiben geheim.

• Jede <<guarded>> Klasse ist durch eine zugehörige {guard} Klasse abgesichert.

Page 13: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

13

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011Example <<guarded access>>

<<guarded access>> überprüft, dass Guard korrekt definiert.

Page 14: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

14

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011Beispiel: Finanz-Anfrage

Die Internetbank bankeasy.com und ein Finanzberater finance.com bieten Dienstleistungen an. Die Applets benötigen dabei bestimmte Privilegien.

• Applets von der Bank, die signiert sind, sollen Daten zwischen 13 und 14 Uhr lesen und schreiben dürfen.

• Applets von dem Finanzdienstleister, die signiert sind, sollen den Micropayment-Schlüssel 5 mal die Woche nutzendürfen.

Page 15: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

15

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011Finanz-Anfrage: Klassendiagramm

Für Integrität und Vertraulichkeit werden Daten als Signed- und Sealed-Objekte über Internet gesendet.

GuardedObjects kontrollieren Zugriff.

Page 16: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

16

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011

Finanz-Anfrage:

Guard Objects (Schritt 2)

timeslot true zwischen

13 und 14 Uhr.

weeklimit true bisZugang fünf malgewährt wird;incThisWeek erhöhtZähler.

Page 17: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

17

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011Finanz-Anfrage: Validierung

Guard Objekt gibt genügend Schutz (Schritt 3):

Analyse-Ergebnis: UML Spezifikation für Guard Objekte erteilt nur Genehmigungen, die durch Zugangsanforderungen impliziert sind.– z.B.: Unter der Annahme, dass das aktuell ausgeführte Applet von

Finance stammt und signiert ist, wird der Zugriff gewährt, wenn ein Micropayment Key genutzt wird, der bisher weniger als 5 mal zum Einsatz kam.

Zugangskontrolle konsistent mit Funktionalität (Schritt 4):

Analyseergebnis: Jedes Objekt, das laut Spezifikation Zugriff auf ein guarded Objekt erhalten soll, erhält diesen auch.

Mobile Objekte ausreichend geschützt (Schritt 5), da Objekte, die über das Internet gesendet werden signiert und versiegelt sind.

Page 18: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

18

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011CORBA Zugangskontrolle

Objekt-Zugangskontrolle kontrolliert Zugang von Client zu Objekt über gegebene Methode.

Realisiert durch ORB und Security Service.

Access Decision Functions entscheiden, ob Zugang erlaubt. Abhängig von:

– Aufgerufener Operation,

– Privilegien des Principals, in dessen Vertretung der Client agiert,

– Kontrollattribute des Zielobjektes.

Page 19: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

19

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011

Example: CORBA Access Control with UMLsec

Page 20: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

20

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011

Example: CORBA Access Control with UMLsec

Page 21: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

21

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011

Example: CORBA Access Control with UMLsec

Page 22: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

22

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011

Example: CORBA Access Control with UMLsec

Page 23: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

23

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011Frage

Kein partielle Preisgabe von Geheimnissen?

Page 24: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

24

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011<<no down–flow>>

Stelle sicheren Informationsfluss sicher.

Bedingung:

Jeder Datenwert, der als {secrecy} spezifiziert ist, darf nur die Datenwerte beeinflussen, die auch als {secrecy} spezifiert sind.

(Kann die Bedingung mit Bezug auf formale Ausführungsemantik formalisieren).

Page 25: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

25

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011Beispiel <<no down-flow>>

Information über „money“ darf nicht offen gelegt werden

Page 26: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

26

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011Beispiel <<no down-flow>>

money < 1000

money >= 1000

Page 27: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

27

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011Beispiel <<no down-flow>>

Externer Zugang

Page 28: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

28

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011Beispiel <<no down-flow>>

money < 1000

money >= 1000Externer Zugang

Information über „money“ darf nicht offen gelegt werden

+

Page 29: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

29

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011Beispiel <<no down-flow>>

<<no down–flow>> verletzt: Partielle Information über das Geheimnis von wm() werden vom nicht geheimen rx() zurückgegeben.

Page 30: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

30

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011Sicherer Einsatz von Kryptographie

Variante von TLS (INFOCOM`99).

Kryptoprotokoll sicher gegen Standard- Angreifer?

Page 31: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

31

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011<<data security>>

Stellt Sicherheitsanforderungen an Daten, die als <<critical>> markiert sind, sicher. Dabei wird das Bedrohungsszenario aus dem zugehörigen Verteilungsdiagramm (Deployment-Diagramm) zugrundegelegt.

Constraints: Daten, die als {secrecy}, {integrity},

{authenticity}, {fresh} markiert sind, erfüllen die auf

Basis der Ausführungssemantik der UML Diagramme

formalisierten Sicherheitsanforderungen.

Page 32: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

32

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011Beispiel <<data security>>

Variante von TLS (INFOCOM`99).

Verletzt {secrecy} von s gegen Standard Angreifer.

Page 33: Willkommen zur Vorlesung Methodische Grundlagen des ...€¦ · Sicheres Software Design − Einführung UML / UMLsec − Kryptographische Protokolle − Biometrische Authentifizierung

20 Sichere Architekturen

33

Methodische Grundlagen Methodische Grundlagen des Software-Engineeringdes Software-Engineering

SS 2011SS 2011UMLsec Intro: Übersicht

Sicherheitsanforderungen: <<secrecy>>,…

Angriffszenarien: Benutze Threatsadv

(ster).

Sicherheitskonzepte: Beispiel <<smart card>>.

Sicherheitsmechanismen: Beispiel <guarded access>>.

Sicherheitsalgorithmen: Verschlüsselung eingebaut.

Physikalische Sicherheit: Gegeben in Verteilungsdiagramm.

Sicherheitsmanagement: Benutze Aktivitätsdiagramme.

Technologie-spezifisch: Java-, CORBA-Sicherheit.