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:
»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.
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:
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 | Mallory | Man 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
P | Peggy | Prover |
---|---|---|
V | Victor | Verifier, Kontrolleur |
Vorteil dieser (semi-) formalisierten Rollenbesetzung: Man übersieht nicht so leicht Vertrauensannahmen und Angriffsmöglichkeiten auf das Protokoll.
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):
trusts | Teilmenge von S×S | »A vertraut B.« |
---|---|---|
sees | Teilmenge von S×D | »A sieht m.« |
creates | Teilmenge von S×D | »A erzeugt m.« |
Bei Bedarf weiter unterschieden, z. B.: | ||
derives | Teilmenge von S×D | »A erschließt m.« |
transmits | Teilmenge 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.
(Zur besseren Verständlichkeit nur semiformal aufgeschrieben.)
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.
»Gewöhnliche« formale Spezifikationsmethoden (aus dem Software-Engineering)