Sicherheit in Rechnernetzen: - Professur Datenschutz und ...
Sicherheit in Rechnernetzen: - Professur Datenschutz und ...
Sicherheit in Rechnernetzen: - Professur Datenschutz und ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
A. Pfitzmann: Datensicherheit <strong>und</strong> Kryptographie; Lösungen, TU Dresden, WS2000/2001, 15.10.2000, 15:52 Uhr 424<br />
423<br />
A. Pfitzmann: Datensicherheit <strong>und</strong> Kryptographie; Lösungen, TU Dresden, WS2000/2001, 15.10.2000, 15:52 Uhr<br />
Werden die Werte im Schieberegister nicht vor jeder Nachricht neu <strong>in</strong>itialisiert, so kann der<br />
Angreifer zu e<strong>in</strong>em von ihm gewählten Klartext den Schlüsseltext mittels e<strong>in</strong>es aktiven<br />
Angriffs erfragen (geht sowohl bei der Betriebsart ECB, CBC, als auch CFB) <strong>und</strong> danach<br />
diesen Klartext im Schieberegister h<strong>in</strong>terlassen <strong>und</strong> geduldig auf die nächste Ausgabee<strong>in</strong>heit<br />
warten, den ihm bekannten Wert subtrahieren, sich freuen ...<br />
selbst synchronisiert, wird der letzte Block trotzdem richtig entschlüsselt, also als lauter<br />
Nullen, <strong>und</strong> der Angriff wird nicht automatisch erkannt.<br />
CFB zur Authentikation: Es gilt das bzgl. „CBC zur Authentikation“ Gesagte.<br />
OFB: Der Angreifer muß den Wert im Schieberegister vorhersehen oder herbeiführen. Letzteres<br />
kann er nicht durch die Wahl e<strong>in</strong>es geeigneten Klartextstromes, da dieser nicht <strong>in</strong> die<br />
Rückführung e<strong>in</strong>geht. Es hängt also alle<strong>in</strong> von der Initialisierung des Schieberegisters ab, ob<br />
e<strong>in</strong> aktiver Angriff erfolgreich ist.<br />
c) Wenn hier e<strong>in</strong> Schlüsseltextblock geändert wird, so wird die Entschlüsselung dieses Blocks<br />
vollkommmen anders. Somit steht beim nächsten Block im Klartextblockspeicher e<strong>in</strong> ganz<br />
falscher Block. Dieser Fehler wird i.allg. nicht wegsynchronisiert, da bei jedem Block nach<br />
der Entschlüsselung e<strong>in</strong>e Funktion des alten falschen Klartexts dazuaddiert wird, so daß sich<br />
wieder e<strong>in</strong> falscher Klartext ergibt <strong>und</strong> somit auch der Klartextblockspeicher wieder falsch<br />
geladen wird.<br />
{Die Begründung, PCBC sei e<strong>in</strong>e synchrone Chiffre, <strong>und</strong> dies sei h<strong>in</strong>reichend, daß der<br />
Angriff nicht funktioniert, ist falsch. Hierfür ist „synchron“ <strong>in</strong> §3.8.1 zu schwach def<strong>in</strong>iert, da<br />
hierfür selbst die Abhängigkeit von der Position <strong>in</strong>nerhalb der Nachricht reicht. E<strong>in</strong> Beispiel<br />
möge dies erläutern: OFB ist e<strong>in</strong>e synchrone Stromchiffre, aber solange man ke<strong>in</strong>e Schlüsseltextbits<br />
des Authentikators ändert oder Schlüsseltextbits wegläßt, kann man im Schlüsseltext<br />
beliebig ändern.}<br />
PCBC: Um die bei CBC beschriebenen Vorteile, d.h. gleiche Erfolgswahrsche<strong>in</strong>lichkeit wie<br />
bei ECB, zu erreichen, kann e<strong>in</strong> Angreifer auch bei PCBC versuchen, die Werte <strong>in</strong> den beiden<br />
Speichern aktiv zu setzen, um e<strong>in</strong>en ihm genehmen Wert von h e<strong>in</strong>zustellen. Außer bei Initialisierungen<br />
hat er aber hierbei gegenüber CBC zusätzliche Schwierigkeiten, was der folgende<br />
Versuch, bei PCBC die Werte <strong>in</strong> den Speichern auf gewünschte Werte zu setzen, verdeutlicht:<br />
Sende Klartextblock K1. Danach ist der Wert im Speicher für den Klartextblock bekannt (K1)<br />
<strong>und</strong> durch Beobachtung des ausgegebenen Schlüsseltextblocks S1 auch der Wert im Speicher<br />
für den Schlüsseltextblock. Hieraus kann h(K1,S1) berechnet werden. Trotzdem ist es nun<br />
schwierig, beide Werte <strong>in</strong> den Speichern auf gewünschte Werte zu setzen. Zwar kann man den<br />
Klartextblock K2 so wählen, daß K2+h(K1,S1) e<strong>in</strong>en gewünschten Wert annimmt <strong>und</strong> dadurch<br />
der diesem Wert zugeordnete Schlüsseltextblock S2 entsteht. Aber hierzu muß man den<br />
Klartextblock K2 variieren <strong>und</strong> hierdurch ändert sich der Wert im Speicher für den Klartextblock.<br />
Entsprechendes gilt, wenn man den Wert des Klartextblocks K2 wählt. Dann bewirkt<br />
die Addition von h(K1,S1) e<strong>in</strong>en unerwünschten Wert S2.<br />
Für geeignete Funktionen h ist das E<strong>in</strong>stellen e<strong>in</strong>es Wertes aus e<strong>in</strong>er kle<strong>in</strong>en Menge von Werten<br />
also schwierig. Deshalb kann selbst e<strong>in</strong>e dem Angreifer bekannte ungleichmäßige Verteilung<br />
von Klartexten vermutlich nicht zur Erzielung von Vorteilen bei aktiven Angriffen genutzt<br />
werden, wenn die Initialisierung der Speicher geeignet erfolgt, vgl. das unter „CBC zur<br />
Authentikation“ Gesagte.<br />
d) ECB: Der Angreifer kann nicht viel erreichen, da die Blockchiffre als sicher angenommen <strong>und</strong><br />
<strong>in</strong> ECB e<strong>in</strong>s-zu-e<strong>in</strong>s als Blockchiffre verwendet wird. Somit verbleiben nur die bei der Def<strong>in</strong>ition<br />
der Blockchiffre erwähnten Nachteile <strong>und</strong> die ihnen entsprechenden Angriffe: Bei determ<strong>in</strong>istischen<br />
Blockchiffren kann der Angreifer se<strong>in</strong>e Möglichkeit zum aktiven Angriff nutzen <strong>und</strong><br />
wahrsche<strong>in</strong>liche Klartexte verschlüsseln lassen. Die zugehörigen Schlüsseltexte kann er dann<br />
mit beobachteten Schlüsseltexten vergleichen. Mit Glück kann er so manche der beobachteten<br />
Schlüsseltexte „entschlüsseln“, selbst bei Pech kann er so manche Klartexte ausschließen.<br />
CBC zur Konzelation: Der Angreifer kann durch aktive Angriffe die Werte <strong>in</strong> den Speichergliedern<br />
setzen. Werden diese Werte dann e<strong>in</strong>fach weiterverwendet, d.h. beg<strong>in</strong>nt nicht jede<br />
Nachricht mit e<strong>in</strong>em vom Sender gewählten Wert der Speicherglieder, so kann nach e<strong>in</strong>em<br />
aktiven Angriff auf den ersten Block e<strong>in</strong> Angriff wie für ECB <strong>und</strong> mit gleicher Erfolgswahrsche<strong>in</strong>lichkeit<br />
durchgeführt werden. Wird der Wert der Speicherglieder nach den aktiven Angriffen<br />
jeweils wieder neu gesetzt, so kann der Angreifer zwar im Schlüsseltext nach Blöcken<br />
suchen, deren Klartext er kennt (beispielsweise von e<strong>in</strong>em aktiven Angriff <strong>in</strong> der Betriebsart<br />
ECB oder CBC). Zu diesen Blöcken kann er dann den ihnen <strong>in</strong> der Betriebsart CBC entsprechenden<br />
Klartext errechnen: Er braucht nur den vorherigen Schlüsseltext zu subtrahieren. Aber<br />
dieses Suchen ist mühseliger, da der Angreifer die verschlüsselten Werte nicht so gut<br />
vorhersehen (<strong>und</strong> damit während se<strong>in</strong>es aktiven Angriffs verschlüsseln lassen) kann. Se<strong>in</strong>e<br />
Erfolgswahrsche<strong>in</strong>lichkeit ist also bei geeignetem Neusetzen der Werte der Speicherglieder<br />
ger<strong>in</strong>ger als bei dem entsprechenden Angriff auf ECB.<br />
OCFB: Im Gegensatz zu PCBC kann bei OCFB der Wert im Schieberegister vom Angreifer<br />
auch ohne Initialisierung e<strong>in</strong>gestellt werden, sofern<br />
• h ke<strong>in</strong>e E<strong>in</strong>wegfunktion ist <strong>und</strong><br />
• er das Ergebnis der Verschlüsselung Erg erfährt, bevor er sich auf die zugehörige E<strong>in</strong>heit<br />
des Klartextstromes festlegen muß:<br />
Mit Erg kennt der Angreifer den Wert des e<strong>in</strong>en E<strong>in</strong>gabeparameters von h <strong>und</strong> kann, sofern h<br />
ke<strong>in</strong>e E<strong>in</strong>wegfunktion ist, zu vielen gewünschten Ergebnissen von h e<strong>in</strong>en passenden Wert<br />
des zweiten E<strong>in</strong>gabeparameters ermitteln. Von diesem Wert subtrahiert der Angreifer „Wähle<br />
aus“(Erg) <strong>und</strong> erhält so die E<strong>in</strong>heit des Klartextstromes, die er e<strong>in</strong>geben muß, um das von ihm<br />
gewünschte Ergebnis von h zu erhalten. Wiederholt der Angreifer dies ⎡b/r⎤ mal, so steht im<br />
Schieberegister e<strong>in</strong> von ihm gewünschter Wert. Damit gilt das unter „CFB zur Konzelation“<br />
Gesagte entsprechend.<br />
e) Die Codierung erfolgt folgendermaßen: Hänge an den Klartext e<strong>in</strong> Bit e<strong>in</strong>es festen Wertes,<br />
z.B. 1. Entsteht hierdurch nicht e<strong>in</strong> Vielfaches der Blocklänge, so fülle danach mit Bits des<br />
anderen Wertes, z.B. 0, bis zum nächsten Vielfachen der Blocklänge auf.<br />
1. gilt, da bis zum nächsten Vielfachen der Blocklänge aufgefüllt wird.<br />
CBC zur Authentikation: Werden e<strong>in</strong>zelne Blöcke authentiziert, so gilt alles für Konzelation<br />
mit CBC Gesagte entsprechend. Bei der Authentikation mehrerer Blöcke zusammen muß der<br />
Angreifer selbst im günstigen Fall, daß die Werte der Speicherglieder nicht immer wieder neu<br />
<strong>in</strong>itialisiert werden, die genauen Werte der Blöcke <strong>und</strong> ihre Folge richtig raten, e<strong>in</strong>e bei s<strong>in</strong>nvoller<br />
Blocklänge fast aussichtslose Aufgabe. Vorausgesetzt wird hierbei, daß die zu authentisierenden<br />
Werte vom Angreifer nicht schon während se<strong>in</strong>es aktiven Angriffes „abgefragt“<br />
werden können, da hiergegen ke<strong>in</strong> kryptographisches Verfahren <strong>Sicherheit</strong> bieten kann. Dieses<br />
„Nicht-rechtzeitig-vorher-Wissen“ sicherzustellen, ist Aufgabe des umgebenden Protokolls.<br />
Im e<strong>in</strong>fachsten Fall könnte jeweils der Partner e<strong>in</strong>en Teil der zu authentisierenden Nachricht<br />
erzeugen.<br />
CFB zur Konzelation: Der Angreifer ist immer dann bezüglich der folgenden Ausgabee<strong>in</strong>heit<br />
erfolgreich, wenn er die Verschlüsselung des im Schieberegister bef<strong>in</strong>dlichen Wertes kennt.