Needham Schroeder Protokoll

ÜBERSICHT

1. Motivation
2. Begriffe
3. Das Authentifizierungsprotokoll von Needham Schroeder
4. Quellen

1. Motivation

Die Authentifizierungsprotokolle von Needham und Schroeder sind Grundlage vieler Sicherheitstechniken, wie beispielsweise Kerberos oder SSL (Secure Socket Layer). Kerberos wird heute z.B. als Authentifizierungsprotokoll zwischen Clients und Servern in Intranets eingesetzt. SSL ist ein Sicherheits-Protokoll auf Applikationsebene, das Einsatzgebiet sind elektronische Transaktionen.


2. Begriffe

Es gibt einen Bedarf an sicherer Verwaltung von Schlüsseln (und Passwörtern) in einem Netzwerk. Bei Needham und Schroeder basiert die Schlüsselverteilung auf einen Authentifizierungs-Server. Der Authentifizierungs-Server verwaltet eine Tabelle mit Namen und geheimen Schlüssel für jeden im System bekannten Teilnehmer.

Ein wichtiger Aspekt des Needham und Schroeder Protokolls ist es, dass Passwörter nicht jedes Mal an einem Authentifizierungsdienst übertragen werden sollten, wenn sie authentifiziert werden. Stattdessen hat man das Konzept von Challenges eingeführt. Der Authentifizierungs-Server stellt den Client ein Ticket aus, das mit der Schlüssel Ks des Servers verschlüsselt ist. Dies stellt für den Client eine Challenge dar, da der Client mit dem Ticket nichts anfangen kann, wenn er es nicht entschlüsseln kann.

Ein Ticket ist ein verschlüsseltes Element und enthält die ID des Clients, für den es ausgestellt wird. Außerdem enthält es einen gemeinsamen Schlüssel, der für die aktuelle Kommunikationssitzung erzeugt wurde.


3. Das Authentifizierungsprotokoll von Needham Schroeder

3.1 Symmetrische Verschlüsselung

Alle Clients besitzen einen geheimen privaten Schlüssel. Jeder Client kennt nur den eigenen geheimen Schlüssel. Der Server S kennt die geheimen Schlüssel sämtlicher Clients.

Nachricht Inhalt Beschreibung
1 A -> S A, B, NA A fordert von S einen Schlüssel (Sitzungsschlüssel) für die Kommunikation mit B
2 S -> A { NA, B, KAB, { KAB, A } KB } KA S sendet Nachricht mit Schlüssel KA verschlüsselte Nachricht
3 A -> B { KAB, A } KB A sendet Ticket an B
4 B -> A { NB } KAB B entschlüsselt Ticket und verwendet Schlüssel KAB um NB zu verschlüsseln
5 A -> B { NB-1} KAB A zeigt B, dass er der Sender von 3. war, indem er eine abgestimmte Transformation von NB zurückgibt

Kommentare

Nachricht 1:
Die Nachricht an den Server wird nicht verschlüsselt. NA dient dazu, dass Nachricht 2 später zu der Nachricht 1 zuzuordnen ist.

Nachricht 2:
Die gesamte Nachricht wird mit dem geheimen Schlüssel von A verschlüsselt. Nur A ist in der Lage diese Nachricht zu lesen. NA und B sind in Nachricht 1 enthalten gewesen. Sie stellen sicher, dass Nachricht 1 und 2 keine Wiederholungen sind. B verhindert, dass ein Man-in-the-Middle Angriff unmöglich wird. Ein Eindringling könnte Nachricht 1 abfangen und sich anstelle von B eintragen. { KAB, A } KB ist das Ticket. Das Ticket kann von A nicht weiter verwenden werden, es ist mit dem geheimen Schlüssel von B verschlüsselt.

Nachricht 3:
Mit dieser Nachricht sind nur beide Kommunikationspartner im Besitz des Sitzungsschlüssels. Diese Nachricht kann nur von B entschlüsselt werden. Die Authentifizierung von A gegenüber B ist mit dieser Nachricht gegeben, den das Ticket enthält neben dem Sitzungsschlüssel auch noch A. Nur der Server ist in der Lage in das Ticket A einzutragen und es mit dem geheimen Schlüssel von B zu verschlüsseln. Somit ist auch B gegenüber A authentifiziert. Denn A kann sicher sein, dass nur B das Ticket entschlüsseln kann. Hier sieht man, dass dem Ticket eine zentrale Bedeutung zukommt.

Nachricht 4:
Um sicherzugehen, dass A wirklich einen Verbindungswunsch hatte, muss B die Nachricht 4 versenden. Diese ist natürlich mit dem Sitzungsschlüssel verschlüsselt. Nur A ist neben B in Besitz des Sitzungsschlüssels. Man könnte ja Nachricht 3 aufzeichnen und an B senden.

Nachricht 5:
Warum verändert A die Zufallszahl NB? B kann sonst nicht sicher sein, dass A die Nachricht 4 erhalten hat und diese von A stand. Ohne eine Modifikation von NB ist Nachricht 5 nur eine Kopie von Nachricht 4.

3.2 Asymmetrische Verschlüsselung

Alle Clients besitzen geheimen privaten Schlüssel und den öffentlichen Schlüssel des Servers S.

Nachricht Inhalt Beschreibung
1 A -> S A, B A fordert von Server S den öffentlichen Schlüssel KBpub des gewünschten Kommunikationspartners B
2 S -> A { KBpub, B } KSpriv S sendet öffentlichen Schlüssel von B KBpub an A. Diese Nachricht ist mit dem privaten Schlüssel KSpriv des Servers S verschlüsselt
3 A -> B { NA, A } KBpub A sendet Verbindungswunsch an B, verschlüsselt mit dem öffentlichen Schlüssel von B KBpub
4 B -> S B, A B fordert von Server S den öffentlichen Schlüssel KApub Kommunikationspartners A
5 S -> B { KApub, B } KSpriv S sendet öffentlichen Schlüssel von A KBpub an B. Diese Nachricht ist ebenfalls mit dem privaten Schlüssel KSpriv des Servers S verschlüsselt.
6 B -> A { NA, NB } KApub B sendet Nachricht mit Zufallszahl aus Nachricht 3 mit einer neuen selbst generierten Zufallszahl an A. Diese Nachricht wird mit dem öffentlichen Schlüssel KApub von A verschlüsselt
7 A -> B { NB } KApub A sendet B eine Antwort auf Nachricht 6. Diese enthält nur die Zufallszahl von B

Kommentare

Nachricht 1:
Diese Nachricht wird nicht verschlüsselt.

Nachricht 2:
Da die Nachricht mit dem geheimen Schlüssel des Authentifizierungs-Servers S verschlüsselt wird, kann A sicher sein, dass sie wirklich von S stammt.
Die Wiederholung von B hat hier ebenfalls den Sinn, das Man-in-the-Middle Angriffe nicht fruchten.

Nachricht 3:
NA dient hier ebenfalls dafür, veraltete Anfragen zu erkennen.

Nachricht 4:
Diese Nachricht wird nicht verschlüsselt.

Nachricht 5:
Diese Nachricht ist wie Nachricht 2 mit dem geheimen Schlüssel des Authentifizierungs-Servers S verschlüsselt, d.h. B kann sicher sein, dass sie wirklich von S stammt.
Die Wiederholung von A hat hier auch den Zweck, das Man-in-the-Middle Angriffe abgewehrt werden.

Nachricht 6:
Nach Nachricht 5 können A und B Nachrichten austauschen. Aber um sich gegen aufgezeichnete Nachrichten zu schützen, muss die Nachricht 6 gesendet werden. Sie enthält neben der Zufallszahl NA aus Nachricht 3 noch die von B generierte Zufallszahl NB.

Nachricht 7:
Warum nimmt A die Zufallszahl NA aus der Nachricht 6 und sendet sie als Nachricht 7 an B? B erkennt sonst nicht, dass A die Nachricht 6 erhalten hat.

4. Quellen

[1] Skript Grundlagen Verteilte Systeme; Prof. Dr. Kurt Rothermel - Abteilung Verteilte Systeme an der Universität Stuttgart

[2] Verteilte Systeme: Konzepte und Design; Autor: George Coulouris / Jean Dollimore / Tim Kindberg; ISBN: 3-8273-7022-1