5.2.2.2 Sicherheit der Hashfunktion zur Verkettung

5.2.2.2.1 Bereits gebrochene Hashfunktion zur Verkettung
Betrachtet wird zunächst den Fall, daß die Hashfunktion H bereits gebrochen wurde, d.h. ein Angreifer in der Lage ist,

H(PEx) = H(PEk)

mit der Bedingung

PEx <> PEk

zu bilden. Er könnte nun alle Bestandteile eines Protokolleintrages PEk manipulieren. Da diese durch den Protokollführer signiert sein müssen, ist die Zusammenarbeit mit einem Protokollführer unbedingt nötig. Ein Submitter kann wiederum nur in Zusammenarbeit mit einem Protokollführer sein eigenes protokolliertes Dokument verändern und neu signieren. Da Teile des bereits erzeugten Protokolls von den Beteiligten unabhängig voneinander aufbewahrt werden, bleibt eine Manipulation eines Protokolleintrages nie unentdeckt. Außenstehende können eine schwache Hashfunktion ohne Unterstützung von Beteiligten nicht zur Manipulation des Protokolls ausnutzen.


Schlußfolgerungen
Alle beschriebenen Szenarien setzen die Manipulation der Protokolldatei voraus. Ein Außenstehender ist zu keiner dieser Manipulationen in der Lage. Allein die Protokollführer könnten eine schwache Hashfunktion zur Verkettung für eine Manipulation ausnutzen. Der geringe Spielraum zum Verändern eines Protokolleintrages macht es den Protokollführern ohne fremde Hilfe jedoch so gut wie unmöglich. Es muß immer mindestens ein Submitter an einer erfolgreichen Manipulation beteiligt werden. Werden zwei Protokolleinträge PEk mit unterschiedlichem Inhalt entdeckt, und ist nur ein Protokollführer an beiden Einträgen beteiligt, kann dieser der Manipulation überführt werden. Dies liegt in der Verbindlichkeit der Signatur begründet.
Jede Manipulation unter Ausnutzung einer schwachen Hashfunktion setzt voraus, daß der Inhalt eines Protokolleintrages beliebig variiert werden kann, denn nur so kann ein gleicher Hashwert aus anderen Eingabewerten gebildet werden. Von allen Werten eines Protokolleintrages eignen sich dafür nur Pk,SigSk(Pk). Der Aufwand für einen Angreifer eine Lösung für

H(Pk,SigSk(Pk)) = H(P'k,SigSx(P'k))

wird erheblich über dem Aufwand liegen, einen beliebigen Wert W mit der Bedingung

H(Pk,SigSk(Pk)) = H(W)

zu finden. Doch nur Letztgenanntes kann bei einer schwachen Hashfunktion ausgenutzt werden.
Für den Fall, daß doch ein Angreifer nachweislich in der Lage ist

H(Pk,SigSk(Pk)) = H(P'k,SigSx(P'k))

zu bilden, hat das gesamte Protokoll durch das Brechen der Hashfunktion zur Verkettung der Protokolleinträge seine Beweiskraft verloren, und diese kann nachträglich nicht wiederhergestellt werden.
Unter der Voraussetzung, daß ein einmal erzeugter Protokolleintrag niemals wieder vollständig entfernt werden kann, muß eine Manipulation stets bemerkt werden. Nachdem die Manipulation aufgefallen ist, existieren mindestens zwei Protokolleinträge mit der gleichen fortlaufenden Nummer k. Jeder dieser beiden könnte der korrekte sein. Falls ein Beteiligter seine Signatur auf beiden Protokolleinträgen hinterlassen hat, kann er des Betruges überführt werden. Dies führt nicht zwangsläufig zum Auffinden des korrekten Protokolleintrages.


weiter Inhaltsverzeichnis