[Seminarthemen WS08/09] [ < ] [ > ] [Übersicht]


2 Protokollgrundlagen

Das Needham-Schroeder-Protokoll ist ein kryptographisches Protokoll, welches die Nutzer authenti&64257;ziert und einen Schlüssel sicher überträgt. Es wurde 1978 Roger Needham und Michael Schroeder verö&64256;entlicht. (vgl. [NS78])


Symmetrisches Needham-Schroeder-Protokoll

In dem Protokoll gibt es drei Parteien:

Jeder Netzwerkteilnehmer hat einen geheimen Schüssel K. Dieser ist jeweils nur dem Teilnehmer und dem Authenti&64257;kation-Server AS bekannt.

Folgende 5 Pakte werden bei dem Needham-Schroeder-Protokoll gesendet. Nach diesem 5 Paketen weiß A das es eine Verbindung mit B aufgebaut hat und B weiß das die Anfrage von A kommt. Außerdem ist der Sitzungsschlüssel nur A, B und dem vertrauenswürdigen Server AS bekannt.

  1. A AS : A, B, NA
  2. AS A : {NA, B, Ks, {Ks, A}KB}KA
  3. A B : {Ks, A}KB
  4. B A : {NB}Ks
  5. A B : {f(NB)}Ks

Ks bezeichnet einen zufälligen Sitzungsschlüssel. f(NB) ist eine beliebige, vorher festgelegte Funktion ist die einen Wert in Abhängigkeit von NB berechnet. Needham und Schroeder schlagen f(x) = x1 vor. (vgl. [NS78, S. 995])

Die erste Nachricht signalisiert dem AS, dass A eine Verbindung mit B aufbauen will. In dem Paket ist eine zufällige Nouce enthalten. Der AS sucht sich denn die Schlüssel von A und B aus der Datenbank und generiert einen Sitzungsschlüssel. Der Schlüssel wird zusammen mit der Zeichenkette „A“ mit dem Schlüssel von B verschlüsselt. Zusätzlich wird der Schlüssel und die Nouce mit dem Schlüssel von A verschlüsselt.

A ist in der Lage den Schlüssel und den Nouce zu entschlüsseln. Der Teil der Nachricht, welche mit dem Schlüssel von B verschlüsselt ist kann A hingegen nicht lesen. Da nur A und AS den Schlüssel KA kennen muss die Nachricht von AS kommen. A sendet nun an B den mit KB verschlüsselten Teil weiter.

B kann den Teil entschlüsseln und erhält so Ks. Da KB nur B und AS bekannt sind muss die Nachricht von AS verschlüsselt worden sein. Da auch ein „A“ in dem Paket enthalten ist, kann B sich sicher sein das nur B und ASKs kennen.

Die Nachrichten 4 und 5 sind notwendig um sicherzustellen, dass Nachricht 3 nicht eine aufgezeichnete Nachricht ist, welche erneut von einem Angreifer gesendet wird (Replay). B verschlüsselt nun eine Nouce mit Ks. Und erhält eine Antwort die in Beziehung zu der Nouce steht, z. B. NB1. Da nur A den Schlüssel Ks kennen kann, muss die Antwort von A sein.


Replay-Angri&64256; nach Denning und Sacco

Dorothy E. Denning und Giovanni Maria Sacco haben 1981 ein Angri&64256; beschrieben bei dem ein Angreifer eine fremde Identität annehmen, wenn er den Sitzungsschlüssel kompromittieren kann. Der Sitzungsschlüssel kann durch Brute-Force, Protokollfehler oder Einbruch in ein System in die Hände eines Angreifers kommen. (vgl. [DS81, S. 534])

Wenn er im Besitz des Sitzungsschlüssel, sendet er die Aufgezeichnete Nachricht 3 an B und kann die Nachricht 5 berechnen.

  1. A AS : A, B, NA
  2. AS A : {NA, B, Ks, {Ks, A}KB}KA
  3. A B : {Ks, A}KB
  4. B A : {NB1}Ks
  5. A B : {f(NB1)}Ks
  6. XA B : {Ks, A}KB
  7. B XA : {NB2}Ks
  8. XA B : {f(NB2)}Ks

Der Angreifer X gibt sich gegenüber B als A aus und sendet die aufgezeichnete Nachricht 3 erneut. B kann nicht unterscheiden ob es sich um eine alte Nachricht handelt und antwortet an A mit einer neuen Nouce. Da die Antwort von B auf dem Transport verloren gegangen sein kann, darf B auch nicht die bisherigen Nachrichten von A oder die dazugehörigen Sitzungschlüssel speichern und vergleichen.

X fängt die Nachricht an A ab und kann sie entschlüsseln, da ihm Ks bekannt ist. Der Angreifer kann nun die Antwort an B berechnen und verschlüsseln. Es hilft auch nicht für jeden Netzwerkteilnehmer eine eigene Funktion f(x) zu de&64257;nieren, da das Funktionsaustauschproblem dasselbe wie das Schlüsselaustauschproblem ist. (vgl. [DS81, S. 534])

Nach diesen Pakten würde B glauben das er von A aufgerufen wird und nicht von X. X kann nun Operationen durchführen die eigentlich nur A darf.

Als Gegenmaßnahme empfehlen Denning und Sacco Zeitstempel in den Pakten zu nutzen. Dadurch lässt sich zusätzlich das Protokoll auf 3 Pakete verkürzen. B ist in der Lage zu erkennen, dass das Paket von A ein Replay ist und kann davon ausgehen eine neue Verbindung mit A zu haben.

  1. A AS : A, B, NA
  2. AS A : {NA, B, Ks, time, {Ks, A, time}KB}KA
  3. A B : {Ks, A, time}KB

Da der Zeitstempel in dem durch den privaten Schlüssel von B geschützen Bereich enthalten ist, kann B erkennen wenn das Paket zu alt ist. So lassen sich Replay-Angri&64256;e leicht erkennen. Wenn ein Paket empfangen wird dessen Zeitstempel älterer ist als eigentlich benötigt wird, soll es verworfen werden.


[Seminarthemen WS08/09] [ < ] [ > ] [Übersicht]