14.07.2013 Aufrufe

Loesungen - Netzsicherheit I Uebung 8.pdf - its

Loesungen - Netzsicherheit I Uebung 8.pdf - its

Loesungen - Netzsicherheit I Uebung 8.pdf - its

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Netzsicherheit</strong> I, WS 2008/2009<br />

Übung 8<br />

Prof. Dr. Jörg Schwenk<br />

02.12.2008


Aufgabe 1<br />

1 Kerberos vs. Public Key Crypto<br />

Asymmetrische Kryptographie statt Kerberos.<br />

a) Beschreiben Sie wie die Funktionalität von Kerberos mit<br />

asymmetrischer Kryptographie implementiert werden kann. Überlegen<br />

Sie welche Voraussetzungen dafür gegeben sein müssen.<br />

C( A ) =<br />

In der Fragenstellung geht es um ein Protokoll, welches die Funktionen von Kerberos<br />

enthält, wobei die Verschlüsselung in Public Key Verfahren durchgeführt wird.<br />

Kerberos ist ein Server, welcher zum Schlüsselaustausch unter den Clienten dient.<br />

Man kann auch Schlüsselaustausch mit Hilfe von Public Key Verfahren realisieren. Es gibt<br />

dafür das Diffie – Hellman Protokoll, welches zum Schlüsselaustausch dient und das<br />

Public Key Verfahren anwendet.<br />

Alle Clienten haben ihre geheimen Schlüssel und die öffentlichen Schlüssel. Sie können<br />

untereinander die öffentlichen Parameter austauschen, wobei die Integrität dadurch<br />

nicht erhalten bleibt. Das Public Key Verfahren hält der „Man – in – the – Middle“<br />

Attacke nicht stand, deshalb kann der Angreifer die öffentlichen Parameter abfangen<br />

und seinen öffentlichen Schlüssel und die Parteien schicken. Dadurch ist das Schutzziel<br />

Integrität verwundet.<br />

Diese Sicherhe<strong>its</strong>lücke kann man mit einer Zertifizierungsstelle „CA“ (Certificate<br />

Authority) ausweichen und den Schutz wiederherstellen, damit die Integrität<br />

gewährleistet ist.<br />

Die Kommunikation bzw. der Schlüsselaustausch läuft wie folgt:<br />

⎡ ⎤<br />

⎢( K pub , ID ) , ( , )<br />

A A sig CA K<br />

pub ID<br />

A A ⎥<br />

⎢ K ⎣ prCA<br />

⎥<br />

⎦<br />

Alice<br />

a = KprA<br />

( )<br />

ver ⎡<br />

K CB ⎤<br />

pubCA ⎣ ⎦<br />

K pubB = B<br />

a<br />

B = K AB<br />

Z ertifika t<br />

stark vereinfacht<br />

RQST, ID , K<br />

A pubA<br />

C( A )<br />

K pubCA<br />

CA<br />

K , K<br />

( prCA pubCA )<br />

( )<br />

C A<br />

( )<br />

C B<br />

RQST, ID , K<br />

C( B )<br />

K pubCA<br />

B pubB<br />

b= KprB<br />

Bob<br />

( )<br />

ver ⎡<br />

K CA ⎤<br />

pubCA ⎣ ⎦<br />

K pubA = A<br />

b<br />

A = K AB<br />

I<br />

N<br />

I<br />

T


1) Während der Zertifikatausstellung muss ein authentischer Kanal zwischen Nutzer<br />

und CA existieren.<br />

2) Der authentische Kanal ist nur während der Ausstellung erforderlich.<br />

b) Welche Vorteile hat der Einsatz von asymmetrischer Kryptographie in<br />

diesem Fall?<br />

Der Server KDC, welcher die Schlüssel von allen Teilnehmern verwaltet, fällt in dem Fall<br />

weg, da die miteinander Kommunizierende Teilnehmer nicht den gemeinsamen<br />

Schlüssel von dem Server bekommen, sondern selber untereinander vereinbaren. Man<br />

hat hier eine Zertifizierungsstelle, welche für alle Teilnehmer Vertrauenswürdig ist, die<br />

die Gültigkeit der öffentlichen Parameter bestätigt um die Integrität zu gewährleisten.<br />

KDC ist hier problematisch gewesen, da dieser Server eine schwäche hatte:<br />

‐ KDC bildet SINGLE – POINT – OF – FAILURE.<br />

Das bedeutet, wenn man den Server angreift, dann hat man einen Zugriff auf alle<br />

geheimen Schlüssel aller Teilnehmer. Durch das asymmetrische Verfahren, wird diese<br />

schwache Eigenschaft des Schlüsselaustauschs gehoben, da die geheimen Schlüssel nur<br />

bei den Besitzern vorhanden sind und sonst nirgendswo.<br />

c) Hat Ihr Vorschlag Nachteile gegenüber Kerberos?<br />

Alles was Vorteilhaft ist, hat auch leider nachteile. Bei dem asymmetrischen Verfahren<br />

ist der Performanceverlust der Nachteil. Da bei dem asymmetrischen Verfahren viele<br />

Angriffsmöglichkeiten gibt, sind die Parameter sehr groß, damit das Sicherhe<strong>its</strong>niveau<br />

dem symmetrischen Vefahren gegenüber gleich ist.<br />

Vergleich der Schlüssellänge:<br />

Symmetrische<br />

Verfahren<br />

80 Bit<br />

112 Bit<br />

128 Bit<br />

256 Bit<br />

Asymmetrische<br />

Verfahren<br />

1024 Bit<br />

2048 Bit<br />

3074 Bit<br />

15360 Bit<br />

Wie man den unterschied erkennen kann, sind die Sicherhe<strong>its</strong>level der symmetrischen<br />

Verfahren mit sehr großen Parameter unter verwendung von asymmetrischen Verfahren<br />

erreichbar. Um das Sicherhe<strong>its</strong>niveau eines 80 – Bit starken symmetrischen Algorithmus<br />

mit einem asymmetrischen Verfahren zu erreichen braucht man schon 1024 Bit<br />

Parameter. Da die Berechnung eines asymmetrischen Verfahrens mit einer<br />

Exponentation erfolgt, ist der Performanceverlust höher, dagegen ist die Berechnung bei<br />

symmetrischen Verfahren schneller (Operationen wie z.B. XOR, Substitution, etc.)


2 EasyKerberos<br />

Aufgabe 2<br />

Betrachten Sie folgende Variante des Kerberos­Protokolls zwischen Parteien A<br />

und B und dem key distribution center S, bei dem Parteien A und B einen<br />

gemeinsamen Schlüssel K etablieren. Dabei bezeichnet {M}K die symmetrische<br />

Verschlüsselung von M mit Schlüssel K, und KPS bezeichnet den symmetrischen<br />

Schlüssel der von Partei P∈{A, B} mit S geteilt wird.<br />

1. A → S: ( A,B )<br />

⎛ <br />

2. S → A: ⎜{ K } ⎝ KAS ⎞<br />

, { K } ,A,B ⎟<br />

KBS⎠<br />

3.<br />

⎛<br />

A → B: K<br />

⎞<br />

,A<br />

{ }<br />

⎜ ⎟<br />

⎝ ⎠<br />

KBS<br />

a) Zeigen Sie wie sich eine Partei C gegenüber B leicht als Partei A ausgeben<br />

kann, und beschreiben Sie wie man diesen Angriff verhindern kann!<br />

Es gibt verschiedene Varianten, wie man einen Angriff starten kann. Dazu ist aber „ Man –<br />

in – the – Middle“ Attacke notwendig.<br />

Das Kerberos – Protokoll ist folgendermaßen aufgebaut:<br />

Partei A Key distribution Center S Partei B<br />

request (A, B)<br />

{ K } , { K } ,A,B<br />

KAS KBS<br />

Wenn eine Partei mit einer bösen Absicht in die Kommunikation eingreifen will und die<br />

Kommunikation mithören will muss er wie folgt vorgehen:<br />

‐ Die „request (A, B)“ abfangen und nicht weiterleiten<br />

‐ Dann „request (C, A)“ und „request (C, B)” an S schicken.<br />

‐ S schickt „ K 1 , K 1 ,A,C ” und „ K 2 , K 2 ,B,C” an C.<br />

{ } { }<br />

{ 1} { 2}<br />

{ } 2<br />

KAS KCS<br />

‐ C schickt „ K , K ,A,B” an A.<br />

KAS KBS<br />

{ } { }<br />

KBS KCS<br />

‐ A schickt „ K ,A” nach erhalten des Paketes von C.<br />

K BS<br />

{ K} , A<br />

K BS<br />

‐ Der Angreifer C kann die Kommunikation so gestallten, wie der möchte. Ab jetzt ist der<br />

Angreifer immer aktiv. Der Angreifer muss immer die erhaltene Pakete ent‐ und<br />

verschlüsseln, dann an die Ziel – Partei weiterleiten. Sonst wird die Kommunikation<br />

nicht korrekt ablaufen. Dabei hat der Angreifer Zugriff auf alle Pakete und kann die<br />

Pakete verwerfen oder weiterleiten.


Der Angriff sieht folgendermaßen aus:<br />

Partei A Partei C Key distribution Center Partei B<br />

request (A, B)<br />

{ K <br />

1} , { K 2}<br />

,A,B<br />

KAS KBS<br />

enc : { Nachrichten}<br />

K1<br />

enc :<br />

dec :<br />

{ Nachrichten}<br />

K 2<br />

{ Nachrichten}<br />

K1<br />

Dafür muss C mit dem „Key – Distribution – Center“ S einen gemeinsamen Schlüssel<br />

besitzen. Sonst kann er dieses Protokoll nicht starten. Er muss in der Lage sein, beliebige<br />

kommunikation abhören bzw. angreifen kann.<br />

Es gibt auch eine leichtere Variante, womit der Angreifer mit der Partei B kommuniziert,<br />

wobei der Agreifer sich als A ausgibt. Hierfür muss er die ID von der Partei A kennen:<br />

Partei C<br />

request (C, B)<br />

enc : { Nachrichten } K<br />

{ K2 } , A<br />

{ K } , { K } ,B,C<br />

KBS KCS<br />

{ K} , A<br />

K BS<br />

request (C, A)<br />

request (C, B)<br />

{ K <br />

1} , { K 1}<br />

,A,C<br />

KAS KCS<br />

{ K <br />

2} , { K 2}<br />

,B,C<br />

dec :<br />

enc :<br />

KBS KCS<br />

K BS<br />

{ Nachrichten}<br />

K1<br />

{ Nachrichten}<br />

K 2<br />

enc : { Nachrichten } K 2<br />

Key distribution Center Partei B<br />

enc : { Nachrichten } K


In beiden Varianten gilt die gleiche Maßnahme:<br />

‐ A S: (A, B)<br />

‐ S A: K , K, A , A, B<br />

‐ A B: <br />

( { } { } )<br />

K<br />

AS<br />

KBS { K, A} , A oder nur { K, A }<br />

( )<br />

K BS<br />

( )<br />

‐ Da der Angreifer nicht die geheimen Schlüssel K AS und KBS kennt, kann er hier<br />

nichts manipulieren!<br />

Partei A Partei C Key distribution Partei B<br />

request (C, A)<br />

{ K <br />

1, C} , { K2, C} , A, B<br />

KAS K<br />

BS<br />

ABBRUCH!!!<br />

Partei C<br />

request (C, B)<br />

request (C, A)<br />

request (C, B)<br />

K BS<br />

{ K <br />

1, C} , { K 1}<br />

,A,C<br />

K K<br />

AS CS<br />

{ K <br />

2, C} , { K 2}<br />

,B,C<br />

K K<br />

BS CS<br />

Key distribution Center Partei B<br />

{ K , C } , { K } ,B,C<br />

KBS KCS<br />

{ KC , } , A<br />

K BS<br />

ABBRUCH!!!


) Beschreiben Sie, wie ein Angreifer D erreichen kann dass Partei A und B in<br />

neuen Sitzungen einen Schlüssel aus einer vorigen Sitzung verwenden. Wie<br />

kann man diesen Angriff verhindern?<br />

Wenn ein Angreifer einen Sitzungsschlüssel mitgeschnitten hat und den Schlüssel auch<br />

kennt, so möchte er wieder in die Kommunikation eingreifen und abhören. Dazu muss er<br />

die beiden Parteien dazu bringen, dass Sie mit dem schon vorher benutzten<br />

Sitzungsschlüssel kommunizieren. Er muss die Pakete von S an A abfangen und mit den<br />

alten aber gültigen Paketen ersetzen. Dafür muss er die Pakete vorher mitgeschnitten<br />

haben. Diesen Angriff nennt man REPLAY – Attacke.<br />

Partei D<br />

C<br />

A B<br />

Partei A Key distribution Center S Partei B<br />

request (A, B)<br />

{ K } , { K } ,A,B<br />

KAS KBS<br />

{ K} , A<br />

K BS<br />

Partei A Key distribution Center S Partei B<br />

request (A, B)<br />

{ K <br />

alt} , { K alt}<br />

,A,B<br />

KAS KBS<br />

{ K <br />

neu} , { K neu}<br />

,A,B<br />

KAS KBS<br />

{ Kalt} , A<br />

K BS


Um diesen Angriff zu verhindern, kann man noch eine Zufallszahl generieren, und diese<br />

Zufallszahl mit verschlüsseln. Wenn die Partei A diese Zufallszahl vorher hatte, dann<br />

erkennt er eine Replay – Attacke und bricht die Kommunikation ab.Wenn aber die<br />

Zufallszahl neu ist und der USER A diese Zufallszahl noch nicht hatte, dann merkt er dass<br />

die Session – Key neu generiert wurde und noch „Frisch“ ist. Hier wird dann auf<br />

„Freshness“ überprüft.<br />

Partei A Key distribution Center S Partei B<br />

Partei D<br />

request (A, B)<br />

{ K } , { K } ,A,B<br />

,δ<br />

KAS KBS<br />

{ K} , A<br />

K BS<br />

Partei A Key distribution Center S Partei B<br />

request (A, B)<br />

{ K <br />

alt, δ alt}<br />

, { K alt}<br />

,A,B<br />

KAS KBS<br />

ABBRUCH!!!<br />

{ K <br />

neu , δ neu}<br />

, { K neu}<br />

,A,B<br />

KAS KBS

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!