2b. Kryptographische Protokolle

Modellierung kryptographischer Protokolle


Definition

Kryptographische Protokolle sind Protokolle, bei denen kryptographische Transformationen der Nachrichten ausgeführt werden.

Sie kommen in Betracht, sobald in einem offenen System eine der Grundforderungen der Verlässlichkeit verlangt wird:

[Kryptographische Protokolle können bekanntlich nicht die Verfügbarkeit schützen.]


Wesentliche zusätzliche Design-Gesichtspunkte bei kryptographischen Protokollen

»Vertrauen« bedeutet:

Man sollte bei der Konstruktion eines kryptographischen Protokolls möglichst wenig Notwendigkeit für Vertrauen voraussetzen und dieses genau spezifizieren. [Vertrauen ist gut, Kontrolle ist besser. (Lenin) Verhindern ist noch besser. (K. P.)]

Schlüssel sind Informationen, mit deren Hilfe andere Informationen algorithmisch erschlossen werden können.

Bei kryptographischen Protokollen sind - mehr als sonst bei der Modellierung - alle Modellannahmen kritisch zu hinterfragen.


Typen von Angriffen

Passive Angriffe: Lauschangriff.

Aktive Angriffe: Fälschen von Nachrichten. Auch unterdrücken, erzeugen oder wiederholen (»replay«) von Nachrichten gehört hierzu.

Angriffe durch Teilnehmer (»Cheater«, Mogler) oder Außenstehende (ungebetene Teilnehmer, z. B. »Man in the middle«).

Angriffe durch Kooperation zwischen Teilnehmern untereinander oder zwischen Teilnehmern und Außenstehenden.

Allgemein: Angriffe durch Regelverstöße.

Mögliche Angriffsziele:


Darsteller in kryptographischen Protokollen

A Alice Teilnehmerin jedes Protokolls
B Bob Zweiter Teilnehmer, falls benötigt
C Carol Dritte Teilnehmerin, falls benötigt
D Dave Vierter Teilnehmer, falls benötigt
... (Weitere Teilnehmer bei Bedarf ad hoc)
E Eve Eavesdropper, passive Angreiferin
M MalloryMan in the Middle, aktiver Angreifer
N Nancy Notar, schwach vertrauenswürdig (bestätigt/beglaubigt, sonst ohne Macht, unter enger sozialer Kontrolle)
T Trent Treuhänder, stark vertrauenswürdiger Vermittler (Trusted Arbitrator)

Durch die Annahme des mächtigen Treuhänders T lassen sich viele Protokolle deutlich vereinfachen, insbesondere wenn nur symmetrische Verschlüsselung verwendet wird - auf Kosten verstärker Vertrauensannahmen. (Vgl. den Ticket-Server bei Kerberos, also die Needham-Schroeder-Authentisierung).

Bei Authentisierungs- oder Zero-Knowledge-Protokollen werden Alice und Bob manchmal ersetzt durch

PPeggy Prover
VVictorVerifier, Kontrolleur

Vorteil dieser (semi-) formalisierten Rollenbesetzung: Man übersieht nicht so leicht Vertrauensannahmen und Angriffsmöglichkeiten auf das Protokoll.


Modellierung eines kryptographischen Protokolls

S = Menge von Subjekten (Teilnehmern, z. B. Alice, Bob, ...)
D = Menge von (Daten-) Objekten (Nachrichten)

Zwischen verschiedenen Objekten können Beziehungen (Relationen) bestehen. (Z. B.: Objekt c entsteht durch AES-Verschlüsselung aus Objekt m mit Objekt k als Schlüssel - c = AESk(m).)

T = Menge von Zeitpunkten (i. a. 0, 1, 2, ..., n, also ein Intervall natürlicher Zahlen, eine diskrete Zeitachse oder eine durchnummerierte Folge von Protokollschritten.)

Relationen (können auch zeitabhängig sein):

trustsTeilmenge von S×S »A vertraut B.«
seesTeilmenge von S×D »A sieht m
createsTeilmenge von S×D »A erzeugt m
Bei Bedarf weiter unterschieden, z. B.:
derivesTeilmenge von S×D »A erschließt m
transmitsTeilmenge von S×D×S »A übermittelt m an B.«

Die Folge von Aktionen des Protokolls ist mit T indiziert und besteht aus Instanzen der Relationen creates (oder deren Verfeinerungen) oder transmits.


Modellannahmen (»Axiome«)

(Zur besseren Verständlichkeit nur semiformal aufgeschrieben.)

Weitere bei Bedarf, je nach Modell; evtl. ist es auch wichtig, Zeitpunkte zu berücksichtigen. [Bei militärischen Einsatzbefehlen oder Aktienbestellungen schadet es z. B. nicht, wenn der »Gegner« später die Nachricht sieht.]

E = Eve, die passive Angreiferin, ist gekennzeichnet durch

Es gibt kein kanonisches Modell für alle Zwecke. Und in jedem Einzelfall gibt es nicht das richtige Modell. Es kann wichtig sein, mehrere Modelle zu betrachten, um möglichst viele Seiteneffekte zu erkennen.


Zu beweisen ist:

  1. Wenn es um Vertraulichkeit geht, dass jedes Objekt nur von den dafür berechtigten Subjekten gesehen wird.
    [Bei einfachen Protokollen ist dabei oft die gesamte Zeitdauer zusammenfassbar, so dass insgesamt nur die Einhaltung der Zugriffsmatrix nachzuweisen ist, s. u.]
  2. Wenn es um Echtheit geht, dass jedes Subjekt auch wirklich jedes Objekt sieht, das es sehen soll, und zwar in unveränderter Form.
  3. Wenn es um Verbindlichkeit geht, dass ein Subjekt nachweisbar ein bestimmtes Objekt gesehen (oder erzeugt) hat.
  4. Wenn es um Einmaligkeit geht, dass ein Subjekt von einem Objekt, das es gesehen hat, keine Kopie erzeugen kann
    [oder keine unbemerkte Kopie erzeugen kann].
Dabei wird die Sicherheit der kryptographischen Grundfunktionen und der Implementation angenommen.

»Gewöhnliche« formale Spezifikationsmethoden (aus dem Software-Engineering)

Z. B. sind Angreifer und Mogler mit diesen Methoden nicht modellierbar.


Beispiel: Hybride Verschlüsselung


Autor: Klaus Pommerening, 31. März 1999; letzte Änderung: 25. Juli 2004.
E-Mail an
Pommerening »AT« imbei.uni-mainz.de.