Loesungen - Netzsicherheit I Uebung 8.pdf - its
Loesungen - Netzsicherheit I Uebung 8.pdf - its
Loesungen - Netzsicherheit I Uebung 8.pdf - its
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 KerberosProtokolls 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