Formale Aspekte der Software-Sicherheit und Kryptographie

rhein.inf.uni.due.de

Formale Aspekte der Software-Sicherheit und Kryptographie

Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerifikation kryptographischer ProtokolleAngewandter π-KalkülDabei macht es einen Unterschied, welche Eigenschaft desProtokolls genau verifiziert werden soll. Wir werden hauptsächlichbetrachten:Geheimhaltung: bestimmte Nachrichteninhalte bleibengegenüber dem Angreifer geheim.(Beispielsweise verletzt das Beispielprotokoll weiter oben dieGeheimhaltung. Der Angreifer erfährt m.)Authentifizierung: der Angreifer ist nicht in der Lage, sich alsein anderer Teilnehmer auszugeben.Der angewandte π-Kalkül (applied π-calculus, von Abadi undFournet) ist ein sogenannter Prozesskalkül bzw. eineProzessalgebra.Vorgänger dieses Kalküls sind CCS (Calculus of CommunicatingSystems) und der π-Kalkül, beide eingeführt von Robin Milner. Einanderer verwandter Kalkül ist der Spi-Kalkül (Spi calculus).Prozesskalküle sind “Mini-Programmiersprachen”, in denenInteraktion von Prozessen sehr kompakt und auch sehr präzisebeschrieben werden kann.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 289Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 290Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülWir beginnen damit, die Syntax des angewandten π-Kalkülseinzuführen:Namen und VariableEs gibt eine Menge von Namen, deren Elemente als Kanalnamen,Schlüssel, Nonces, Nachrichteninhalte, etc. verwendet werden.Außerdem gibt es eine Menge von Variablen.Kanalnamen werden im folgenden mit a, b, c, . . . bezeichnet,Schlüssel mit K, Nonces mit n und Nachrichteninhalte mit m.Variablen werden im allgemeinen mit x, y, z, x 1 , x 2 , . . . bezeichnet.Funktionssymbole und TermeAußerdem gibt es eine Menge von Funktionssymbolen. Aus denNamen, Variablen und Funktionssymbolen werden Terme gebildet.Hinweis: dabei ist darauf zu achten, dass Funktionssymbole in derkorrekten Stelligkeit auf Elemente des korrekten Typs angewandtwerden. (Beispielsweise können bestimmte Funktionen nur aufNachrichten oder Schlüssel angewandt werden.)Beispiele für Terme:encrypt(m, K)decrypt(encrypt(m, x), y)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 291Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 292


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülGleichungenGegeben ist eine Menge Σ von Gleichungen auf Termen(manchmal auch Theorie genannt), die das Verhalten derFunktionssymbole bzw. der dazugehörigen Funktionen beschreiben.Für zwei Terme M, N gilt Σ ⊢ M = N (die Gleichheit M = N istaus den Gleichungen herleitbar), falls eine der folgendenBedingungen erfüllt ist (jeweils für geeignete Terme L, M ′ , N ′ ):M und N sind identisch (Reflexivität),die Gleichung M = N ist in Σ enthalten,es gilt M = L[x/M ′ ], N = L[x/N ′ ] und Σ ⊢ M ′ = N ′ ,es gilt M = M ′ [x/L], N = N ′ [x/L] und Σ ⊢ M ′ = N ′ ,Σ ⊢ N = M (Symmetrie) oderΣ ⊢ N = L und Σ ⊢ L = M (Transitivität).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 293Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülAngewandter π-KalkülBeispiele für Terme und Gleichungen:Symmetrische VerschlüsselungFunktionen sdecrypt und sencrypt, die als ersten Parametereine Nachricht und als zweiten Parameter einen Schlüsselerhalten.Definierende Gleichungen:Es gilt daher beispielsweise:Σ = {sdecrypt(sencrypt(x, y), y) = x}Σ ⊢ sdecrypt(sencrypt(m, K), K) = mΣ ⊬ sdecrypt(sencrypt(m, K), K ′ ) = m, falls K ≠ K ′ .Σ ⊢ sencrypt(sdecrypt(sencrypt(m, K), K), K) =sencrypt(m, K)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 294Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülAsymmetrische VerschlüsselungZusätzlich zu den Funktionen adecrypt und aencrypt gibt esnoch einstellige Funktionen sk, pk die aus einem Geheimniseinen privaten und öffentlichen Schlüssel ableiten.Definierende Gleichungen:Σ = {adecrypt(aencrypt(x, pk(y)), sk(y)) = x}SignaturenZusätzlich zu den Funktionen pk, sk verwenden wir zweistelligeFunktionen sigcheck, sigget und sign und eine Konstante ok.Definierende Gleichungen:Σ = {sigcheck(sign(x, sk(y)), pk(y)) = ok,sigget(sign(x, sk(y)), pk(y)) = x}Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 295Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 296


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülAngewandter π-KalkülLogischer Operator xorWir verwenden eine zweistellige Funktion xor, definiert auf denWahrheitswerten 0, 1.Definierende Gleichungen:Σ = {xor(x, y) = xor(y, x),xor(xor(x, y), z) = xor(x, xor(y, z)),xor(0, x) = x,xor(x, x) = 0}PaareWir benutzen eine zweistellige Funktion pair und einstelligeFunktionen fst, snd, die nur auf Paaren definiert sind.Definierende Gleichungen:Σ = {fst(pair(x, y)) = x, snd(pair(x, y)) = y}Im folgenden werden wir auch die Notation (x, y) statt pair(x, y)verwenden.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 297Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülSyntax des angewandten π-KalkülsEin Prozess ist entweder:der inaktive Prozess 0,eine parallele Komposition P | Q,eine Replikation !Peine Restriktion (νu)P,eine Bedingung if M = N then P else Q,ein Prozess mit Eingabe-Präfix c(x).P oderein Prozess mit Ausgabe-Präfix c〈M〉.P.Dabei sind P, Q Prozesse, u ein Name, c ein Kanalname, M, NTerme und x eine Variable.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 299Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 298Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülBemerkungen:Die syntaktischen Konstrukte sind eng verwandt mit denentsprechende Konstrukten in CCS. Insbesondere entspricht(νn)P dem Prozess P\{n} in CCS.Der Name u ist in (νu)P gebunden. Damit erzeugt man neueSchlüssel und Nonces, die der Umgebung nicht bekannt sindEbenso ist die Variable x in c(x).P gebunden. (DiesesKonstrukt ist als Restriktion oder auch Verschattungbekannt.) Gebundene Namen und Variablen können(gebunden) umbenannt werden.Die Replikation !P steht für beliebig viele Kopien von P, dieparallel ablaufen.Ausgabe- bzw. Eingabe-Präfix beschreiben das Senden bzw.Empfangen einer Nachricht auf dem Kanal c, wobei sich derProzess anschließend wie P verhält.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 300


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülBemerkungen:Die erste Regel beschreibt das Senden einer Nachricht M übereinen Kanal c.Falls die Gleichheit von M und N nachgewiesen werden kann,dann wird im Fall einer Bedingung der Then-Fall betreten.Wenn die Gleicheit nicht nachgewiesen werden kann, danndarf der Else-Fall nur dann betreten werden, wenn die TermeM, N variablenfrei sind. D.h., es gibt keine Möglichkeit mehr,die Terme durch Substitutionen und Anwendungen derGleichungen in die gleiche Form zu bringen. Terme, die durchdie Theorie nicht unifiziert werden können, gelten alsverschieden.Die letzten beiden Regeln beschreiben, dass dieReduktionsrelation unter Evaluationskontexten undstruktureller Kongruenz abgeschlossen ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 305Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülAngewandter π-KalkülTransitionssystemDas Transitionssystem eines Prozesses P besteht aus:Zustandsmenge: Äquivalenzklassen von Prozessen, die von Paus erreicht werden können. D.h., jede Äquivalenzklasse [Q] ≡mit P → ∗ Q ist ein Zustand.Transitionen: Es gibt einen Übergang von [Q 1 ] ≡ nach [Q 2 ] ≡genau dann, wenn Q 1 → Q 2 .Um die Anzahl der Zustände möglichst klein zu halte, sollte – wieoben beschrieben – die Menge der von P erreichbaren Prozessedurch die strukturelle Kongruenz faktorisiert werden.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 306Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülDie entsprechenden Prozesse sehen wie folgt aus:Wir betrachten ein erstes kleines Beispielprotokoll(Nonce-Challenge):1 A → B: {n} K2 B → A: {n − 1} KDabei ist n ein Nonce und K ist ein Sitzungsschlüssel von Bobbzw. Alice.Um dieses Protokoll im angewandten π-Kalkül zu modellieren,verwenden wir die Theorie symmetrische Verschlüsselungzusammen mit einer Dekrementierungsfunktion dec.Alice:Bob:A = (νn)(c〈sencrypt(n, K)〉.B = c(y).c(x).if sdecrypt(x, K) = dec(n)then A ′else 0)c〈sencrypt(dec(sdecrypt(y, K)), K)〉.B ′ Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 308Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 307


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülBemerkungen:Dabei ist n der zu verschickende Nonce, der zunächst in Agebunden ist und keinem anderen Teilnehmer bekannt ist.Mit c bezeichnen wir den (offenen) Kanal, über den derNachrichtenaustausch stattfindet.A ′ bzw. B ′ sind die Fortsetzungen von Alice und Bob.Dadurch wird das Verhalten der beiden Teilnehmer nachAustausch der beiden Nachrichten beschrieben. Wir nehmenan, dass x nicht frei in A ′ und y nicht frei in B ′ vorkommt.Das Verhalten von Alice und Bob gemeinsam wird durchS = (νK)(A | B) beschrieben. Durch die Restriktion kannman sicherstellen, dass das Geheimnis K nach außen hinverschattet ist.Falls der Nonce nicht korrekt zurückgeschickt wird, so brichtA das Protokoll ab und wird zum Null-Prozess.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 309Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülAngewandter π-KalkülReduktionsfolge bei korrektem Verhalten (ohne Eindringling):A | B ≡ (νn)(c〈sencrypt(n, K)〉.c(x).if sdecrypt(x, K) = dec(n)then A ′else 0 | B)Diese Äquivalenz gilt, da n nicht frei in B vorkommt. (Falls diesder Fall wäre, so müsste n zunächst umbenannt werden.) DiesenEffekt bezeichnet man auch als Erweiterung des Bindungsbereichs(scope extrusion).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 310Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülDaher gilt:A | B → (νn)(c(x).if sdecrypt(x, K) = dec(n)then A ′else 0 |c〈sencrypt(dec(sdecrypt(sencrypt(n, K), K)), K)〉.B ′ )Aufgrund der Gleichungen können wir folgenden Termvereinfachen:Σ ⊢ sencrypt(dec(sdecrypt(sencrypt(n, K), K)), K)= sencrypt(dec(n), K)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 311Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 312


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülAngewandter π-KalkülDer so entstandene Prozess ist wegenDaraus ergibt sich folgende Reduktion:A | B →→ (νn)(if sdecrypt(sencrypt(dec(n), K), K)= dec(n)then A ′else 0 | B ′ )äquivalent zuΣ ⊢ sdecrypt(sencrypt(dec(n), K), K) = dec(n)(νn)(if dec(n) = dec(n)then A ′else 0 | B ′ )Und damit ergibt sich:A | B →→→ (νn)(A ′ | B ′ )Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 313Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 314Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülBemerkung:Im angewandten π-Kalkül ist es auch möglich, einen vollkommenprivaten Kanal zu etablieren:(νb)(b〈m〉.P | b(x).Q)Aufgrund der Restriktion (νb) kann der Kanal b vom Angreifernicht abgehört werden, es sei denn, einer der beiden Teilnehmerverschickt b explizit über einen anderen Kanal. Diese Mobilität vonKanalnamen spielt im π-Kalkül eine große Rolle, ist für uns hieraber nicht so wichtig.Im allgemeinen werden wir Kanalnamen nicht restringieren, da wirnicht annehmen können, dass es wirklich sichere Kanäle gibt.Wir betrachten nun das vorherige Beispielprotokoll:1 B → A: P B2 A → B: {{K} SA } PB3 B → A: {m} KUm dieses Protokoll im angewandten π-Kalkül zu modellieren,verwenden wir die Theorien für symmetrische und asymmetrischeVerschlüsselung zusammen mit der Theorie für Signaturen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 315Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 316


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülAngewandter π-KalkülDie entsprechenden Prozesse sehen wie folgt aus:Alice:A = (νK)(νK A ) (c(p).c〈aencrypt(sign(K, sk(K A )), p)〉.c(x).A ′ [x ′ /sdecrypt(x, K)])| !a〈pk(K A )〉.0Bob:B = (νm)(νK B ) (c〈pk(K B )〉.c(y).a(u).(if sigcheck(y ′ , u) = okthen c〈sencrypt(m, sigget(y ′ , u))〉.B ′else 0)[y ′ /adecrypt(y, sk(K B ))])| !b〈pk(K B )〉.0Dabei gibt Alice ihren öffentlichen Schlüssel pk(K A ) über denoffenen Kanal a bekannt, behält aber K B als Geheimnis.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 317Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülAuch hier gibt Bob seinen öffentlichen Schlüssel bekannt.Außerdem empfängt er den öffentlichen Schlüssel von Alice, den erzum Überprüfen der Signatur benötigt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 318Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersWie sehen Angreifer im Kalkül aus?Weitere Bemerkungen:A ′ bzw. B ′ sind auch hier die Fortsetzungen von Alice undBob. A ′ enthält x ′ als freie Variable, wobei x ′ als Platzhalterfür die zu empfangene (entschlüsselte) Nachricht m steht. B ′enthält analog y ′ als freie Variable.Das Verhalten von Alice und Bob gemeinsam wird durchSys = A | B beschrieben.Ein Angreifer E (E steht für Eve) kann ein beliebiger Prozess desKalküls sein. Dieser wird mit dem eigentlichen System Sys (i.a.bestehend aus Alice und Bob) parallel komponiert: Sys | E.Damit können wir nun auch beschreiben, was es bedeutet, dasseine Nachricht m geheimgehalten wird:GeheimhaltungEin System Sys hält eine Nachricht m geheim, wenn es keinenAngreifer E gibt mit einer Reduktionsfolge Sys | E → ∗ P, so dassin P m als Nachrichteninhalt auf einem nicht-verschatteten Kanalverschickt wird.Wenn der Angreifer in den Besitz von m kommt, so kann er dieseNachricht immer auf einem offenen Kanal verschicken.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 319Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 320


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersModellierung des AngreifersDas letzte Beispielprotokoll hält die Nachricht m nicht geheim. Esgibt einen entsprechenden Angreifer:E = (νK E ) ( c(p B ).)c〈pk(K E )〉.c(z).(c〈aencrypt(v, pB )〉.c(u).a(p A ).s〈sdecrypt(u, sigget(v, p A ))〉.0))[v/adecrypt(z, sk(KE ))]Bemerkungen:Die Schritte von Eve der Reihe nach:1 E empfängt den öffentlichen Schlüssel von Bob.2 E schickt ihren eigenen öffentlichen Schlüssel an Alice.3 E empfängt den signierten und verschlüsseltenSitzungsschlüssel K von Alice.4 E verschlüsselt den signierten Sitzungsschlüssel unter demöffentlichen Schlüssel von Bob und schickt ihn an Bob.5 E empfängt die mit dem Sitzungsschlüssel verschlüsselteNachricht m von Bob.6 E entschlüsselt diese Nachricht (denn sie kennt K!) und gibtdie Nachricht auf dem offenen Kanal s bekannt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 321Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 322Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersEs gibt einen Ablauf von Sys | E, bei dem zuletzt m auf demKanal s verschickt wird. D.h., die Geheimhaltung von m ist nichtgewährleistet. Es gilt:für einen geeigneten Prozess P.Sys | E → ∗ (νm)(s〈m〉.0 | P)Es gibt natürlich auch Abläufe, bei denen das Geheimnis nichtpreisgegeben wird, aber mindestens ein Ablauf verletzt dieGeheimhaltung.Mit Hilfe einer geeigneten Theorie kann man auchEinwegfunktionen modellieren: wir verwenden ein einstelligesFunktionssymbol f (ohne Gleichungen!). Da es keinFunktionssymbol für die Umkehrfunktion gibt, kann auch niemandUrbilder ermitteln.Beispielprozess:Dabei ist g ein “Geheimnis”.A = c〈f(g)〉.0Kein Angreifer, der f(g) als Nachricht empfängt, kann den Wert germitteln.Hashfunktionen können ähnlich modelliert werden.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 323Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 324


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersModellierung des AngreifersWir modellieren nun das Needham-Schroeder-Protokoll (sieheEinführungsteil Protokoll ).Needham-Schroeder-Protokoll (fehlerhaft)1 A → S: A, B, n A2 S → A: {n A , K AB , {K AB , A} KBS } KAS3 A → B: {K AB , A} KBS4 B → A: {n B } KAB5 A → B: {n B − 1} KABAls Theorien verwenden wir die Theorie für die symmetrischeVerschlüsselung, sowie eine zweistellige Funktion check mitcheck(sencrypt(x, y), y) = ok,die feststellt, ob eine Nachricht, mit einem bestimmten Schlüsselverschlüsselt wurde. (Ansonsten kann Alice nicht überprüfen, obder Nonce n B mit dem korrekten Schlüssel verschlüsselt wurde.)Außerdem verwenden wir die Theorie für Paare und – umdreistellige Tupel zu erhalten – eine dreistellige Funktion triple(analog zu pair) mit den Projektionen fst, snd und thrd.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 325Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 326Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersAlice:A = (νn A ) (c S 〈triple(A, B, n A )〉.c S (x).(if first(u) = nAthen c AB 〈thrd(u)〉.c AB (y).if check(y, snd(u)) = okthen c AB 〈sencrypt(dec(sdecrypt(y, snd(u))),snd(u))〉.0else 0else 0 ) [u/sdecrypt(x, K AS )] )Bob:B = (νn B ) ()c AB (x).(cAB 〈sencrypt(n B , fst(u))〉.c AB (y).if sdecrypt(y, fst(u)) = dec(n B )then 0else fail〈〉.0 ) [u/sdecrypt(x, K BS )]Die Nachricht von Bob auf dem Kanal fail signalisiert, dass derProtokollablauf nicht erfolgreich war.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 327Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 328


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersModellierung des AngreifersServer:S = (νK) (c S (x).if fst(x) = Athen if snd(x) = Bthen c S 〈sencrypt(triple(thrd(x), K, sencrypt(pair(K, A),K BS )), K AS )〉.0)else . . .Es gibt noch weitere Fallunterscheidungen, wobei alle Paare vonmöglichen Teilnehmern (einschließlich Eve) abgefragt werdenmüssen.Diese Fallunterscheidungen könnte man dadurch vermeiden, indemman eine einstellige Funktion key einführt, die zu dem Bezeichnereines Teilnehmers den Schlüssel zurückgibt, den dieser Teilnehmermit dem Server teilt. Diese Funktion darf jedoch dem Angreifernicht zugänglich sein!Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 329Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 330Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersAuthentifizierung wird typischerweise folgendermaßen definiert:Das gesamte System besteht aus der parallelen Komposition vonA, B und S, zusammen mit der Restriktion der entsprechendenSchlüssel:Sys = (νK AS )(νK BS )(A | B | S)Statt S kann auch !S verwendet werden, dann wird der Serverrepliziert und steht immer wieder für Anfragen zur Verfügung.AuthentifizierungWenn Alice der Meinung ist, dass sie einen Protokollablauf mitBob durchführt, dann hat Bob zuvor beschlossen, dass er einenProtokollablauf mit Alice durchführt. (Oder umgekehrt.)Um diese Eigenschaft formulieren zu können, fügen wirentsprechende Nachrichten ein, die Alice bzw. Bob an ihre Umweltschicken, um ihre Überzeugungen bekanntzugeben. Wirmodifizieren also die Prozess-Beschreibungen leicht.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 331Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 332


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersAlice (modifiziert):A = (νn A ) ()c S 〈triple(A, B, n A )〉.c S (x).(if first(u) = nAthen c AB 〈thrd(u)〉.c AB (y).c AB 〈sencrypt(dec(sdecrypt(x, snd(u))), snd(u))〉.a〈(A, B)〉.0else 0 ) [u/sdecrypt(x, K AS ))]Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 333Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersBob (modifiziert):B = (νn B ) (c AB (x).(b〈(B, snd(u))〉〉.0 |c AB 〈sencrypt(n B , fst(u))〉.c AB (y).if sdecrypt(y, fst(u)) = dec(n A )then 0else fail.0 ) [u/sdecrypt(x, K BS )] )Bemerkung: Um weitere Reduktionen nicht zu blockieren, sendetBob asynchron auf dem Kanal b, d.h., die Nachricht wird parallelzum weiteren Ablauf verschickt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 334Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersIn diesem Fall müssen wir für die Authentifizierung fordern:Für jeden Angreifer E gilt: in jedem Ablauf von Sys | E, in demAlice bekanntgibt, dass sie mit Bob spricht, d.h., es wird eineNachricht a〈(A, B)〉 geschickt, erzeugt Bob zuvor eine Nachrichtb〈(B, A)〉. D.h., er bezeugt, einen Protokollablauf mit Alicebegonnen zu haben.Ähnlich müsste man beschreiben, dass Alice sich gegenüber Bobkorrekt authentifiziert hat.Hier gibt es einen Angreifer (unterlaufen kann:Angreifer Eve:E = c S (x).Angriff ) E, der das Protokollc S 〈triple(A, E, thrd(x))〉.c AB (y).(cAB 〈sencrypt(n B , snd(u))〉.c AB (z).0))[u/sdecrypt(y, KES )]Bemerkung: Eve hält n B nicht geheim.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 335Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 336


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersModellierung des AngreifersEs gibt Abläufe von Sys | E, in denen Alice die Nachricht a〈(A, B)〉schickt, ohne dass Bob zuvor seine Nachricht geschickt hat.In diesen Abläufen ist Bob überhaupt nicht beteiligt, eskommunizieren nur Alice, der Server und Eve.Wir haben nun eine Methode gesehen, mit der man Angriffe aufein Protokoll beschreiben kann: man spezifiziert den Angreifer Eals Prozess.Aber wie kann man zeigen, dass es keinen solchen Angreifer gibt?Man müsste ja unendlich viele Angreifer ausprobieren!Wir betrachten nun einen universalen Angreifer, der alleNachrichten abfangen kann, daraus weitere Nachrichten gewinnenkann, die er nicht-deterministisch abschickt.Es gibt einen herkömmlichen Angreifer, genau dann, wenn deruniversale Angreifer eine Angriffsmöglichkeit findet.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 337Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersWir führen nun einen neue Art von Prozess ein, indem wir dieSyntax des Kalküls erweitern:AngreiferSei nun auch E(M), wobei M eine Menge von Termen ist, einProzess.Dabei ist M das Wissen, das der Angreifer hat, d.h., dieKanalnamen, Nonces und Schlüssel, die er zu Beginn besitzt,zusammen mit den weiteren Nachrichten, die er empfangen hat.Ein variablenfreier Term M ist aus M herleitbar (in ZeichenM ⊢ M), wennes gibt Terme M i ∈ M, i ∈ {1, . . . , n},es gibt einen Term N, der keine Namen und die freienVariablen x 1 , . . . , x n enthält, undΣ ⊢ M = N[x 1 /M 1 , . . . , x n /M n ]Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 339Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 338Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersStrukturelle Kongruenz und Reduktionsregeln für den Angreifer(νn)P | E(M) ≡ (νn)(P | E(M))falls n in keinem der Terme von M vorkommtc〈M〉.P | E(M) → P | E(M ∪ {M}) falls M ⊢ cE(M) | c(x).Q → E(M) | Q[x/M]falls M ⊢ c und M ⊢ MDer Angreifer muss den entsprechenden Kanal c kennen, um aufihm Nachrichten empfangen oder versenden zu können.D.h. im letzten Fall dürfen nur diejenigen Nachrichten verschicktwerden, die aus dem bisherigen Wissen des Angreifers abgeleitetwerden können.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 340


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersModellierung des AngreifersDer Angreifer wird mit einem bestimmten Vorwissen ausgestattet.D.h., er kennt zu Beginn des Protokollablaufs bestimmte Kanäle,Schlüssel, Nonces, die Elemente der Menge M sind.Durch die Bindungsbereiche ist aber auf jeden Fall garantiert, dassder Angreifer keine “geheimen” Namen kennen, die anderswoverschattet sind.Beispiel: in dem System ((νu)P) | E({u}) ist der Name u, den derAngreifer kennt, nicht identisch mit dem Namen, der in Pgebunden ist.Beispiel: im Fall des Needham-Schroeder-Protokolls gibt es einenAblauf vonSys | E({c S , c AB , A, E, n B , K ES }),in dem Alice eine Nachricht auf Kanal a erzeugt, ohne dass Bobzuvor seine Nachricht auf Kanal b erzeugt hat.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 341Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenDurchsuchen des Zustandsraums – Model-CheckingBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 342Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenDurchsuchen des Zustandsraums – Model-CheckingIdee:Beschreibe das gegebene Protokoll mit Hilfe des ProzessesSys.Lege das Vorwissen M der Angreifers fest.Überprüfe durch Durchsuchen des Zustandsraums, dassSys | E(M) nicht in einen Zustand kommen kann oder einenAblauf erzeugen kann, in dem die Geheimhaltungs- oderAuthentifizierungseigenschaften verletzt sind.Problem:Es ist nicht klar, dass der Zustandsraum des Transitionssystemsvon Sys | E(M) endlich ist. Um dies zu erreichen, muss manbestimmte Einschränkungen machen.Einschränkungen:Die Protokollbeschreibung Sys erlaubt nur endliches Verhalten(nicht beliebig viele parallele Sitzungen, keine Replikation).Es gibt entweder nur endlich viele Äquivalenzklassen vonTermen oder die Größe der vom Angreifer verschickten Termewird beschränkt.Die Theorie muss entscheidbar sein, d.h., für zwei gegebeneTerme M, N muss entschieden werden können ob Σ ⊢ M = Ngilt oder nicht gilt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 343Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 344


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenDurchsuchen des Zustandsraums – Model-CheckingHorn-Formeln und ResolutionBemerkungen:Es ist möglich, das Wissen des Angreifers on-the-fly zugenerieren. D.h., immer wenn ein Angreifer einen frischenNonce oder Schlüssel braucht, so kann er diesen raten.Bei Authentifizierung ist es oft wünschenswert, nicht nur zuüberprüfen, dass ein bestimmtes Ereignis vor einem anderenEreignis stattgefunden hat, sondern dass – falls es mehrereProtokollabläufe gibt – die entsprechendenAuthentifizierungsereignisse in Eins-zu-Eins-Beziehung stehen.Wir betrachten nun einen weiteren Ansatz (entwickelt von BrunoBlanchet), derauch für unendliche Zustandsräume und beliebig viele paralleleSitzungen funktioniert (Replikation ist erlaubt!).überapproximiert: es gibt möglicherweise korrekte Protokolle,die nicht als solche erkannt werden.Dazu werden die Möglichkeiten des Angreifers und derProtokollablauf in Prädikatenlogik formalisiert (genauer: inHorn-Klauseln) und es wird versucht, mit Hilfe von Resolution zuzeigen, ob der Angreifer sein Ziel erreichen kann.Dieser Ansatz ist in dem Tool ProVerif(http://www.proverif.ens.fr/) implementiert.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 345Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionDas Problem zu entscheiden, ob es auf ein gegebenes Protokolleinen Angriff gibt ist unentscheidbar (so wie die meistenVerifikationsprobbleme). Deshalb wird die Menge der erreichbarenSystemzustände überapproximiert.Menge derFehlerzuständeBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 346Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionFalls der Schnitt der Überapproximation der erreichbarenZustände mit der Menge der Fehlerzustände leer ist, ist dasSystem korrekt.Wenn der Schnitt nicht-leer ist, dann kann allerdings keineAussage getroffen werden. In diesem Fall kann mannormalerweise nicht zeigen, dass in dem Schnitt keinerreichbarer Zustand liegt.Erreichbare ZuständeÜberapproximation dererreichbaren ZuständeMenge aller ZuständeBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 347Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 348


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionWiederholung: Prädikatenlogik und ResolutionWir wiederholen zunächst Prädikatenlogik und Resolution.Gegeben seien Mengen von Variablen, Funktionssymbolen undPrädikatsymbolen. Terme werden – wie im angewandten π-Kalkül– aus Variablen und Funktionssymbolen gebildet.Syntax der Prädikatenlogik1 Falls P ein Prädikatsymbol der Stelligkeit k ist, und fallst 1 , . . . , t k Terme sind, dann ist P(t 1 , . . . , t k ) eine Formel.2 Für jede Formel F ist auch ¬F eine Formel.3 Für alle Formeln F und G sind auch (F ∧ G) und (F ∨ G)Formeln.4 Falls x eine Variable ist und F eine Formel, so sind auch ∃xFund ∀xF Formeln. Das Symbol ∃ wird Existenzquantor und ∀Allquantor genannt.Eine Formel der Form P(t 1 , . . . , t k ) oder ¬P(t 1 , . . . , t k ) heißtLiteral.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 349Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 350Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionStrukturen, ModelleGegeben sei eine Formel F . Eine zu F passende Struktur A bestehtauf einer Menge U A (dem Universum) und einer Interpretation, diejeder in F vorkommenden freien Variable x ein Element x Ades Universums zuordnet.jedem in F vorkommenden k-stelligen Funktionssymbol f eineFunktion f A : U k A → U A zuordnet.jedem in F vorkommenden k-stelligen Prädikatsymbol P eineRelation P A ⊆ U k A zuordnet.Man kann F unter A (auf offensichtliche Weise) auswerten underhält einen Wahrheitswert A(F ) ∈ {0, 1}. Falls A(F ) = 1, dannheißt A Modell von F .Beispiel:F = ∀x∃yP(x, f (y))A mit U A = N 0 , P A = {(m, n) | m < n} und{f A n − 1 falls n > 0(n) =0 sonstist ein Modell für F .B mit U B = N 0 , P B = {(m, n) | m > n} und f B (n) = n istkein Modell für F .Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 351Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 352


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionKlauselform, HornformelEine Formel F ist in Klauselform, wenn sie folgende Form hat:Erfüllbarkeit, UnerfüllbarkeitEine Formel F ist erfüllbar, wenn sie ein Modell hat, ansonsten istsie unerfüllbar.Beispiele:Die Formel F = ∀x∃yP(x, f (y)) ist erfüllbar.Die Formel G = ∀xP(x) ∧ ∃y¬P(y) ist unerfüllbar.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 353Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionBemerkungen:Zu jeder prädikatenlogischen Formel F kann man einfach eineerfüllbarkeitsäquivalente Formel F ′ in Klauselformkonstruieren. (Die Umwandlung in eineerfüllbarkeitsäquivalente Hornformel ist nicht so einfachmöglich.)Es gibt drei verschiedene Typen von Hornklauseln:Ein positives Prädikat: P 0 ≡ 1 → P 0 (Tatsachenklausel)Nur negative Prädikate:¬P 1 ∨ · · · ∨ ¬P n ≡ P 1 ∧ · · · ∧ P n → 0 (Zielklausel)Negative und ein positives Prädikat:¬P 1 ∨ · · · ∨ ¬P n ∨ P 0 ≡ P 1 ∧ · · · ∧ P n → P 0(Prozedurklauseln)wobei jedes P i von der Form P(t 1 , . . . , t n ) ist.F = ∀x 1 . . . ∀x n F ∗ ,wobei F ∗ keine Quantoren enthält und sich in konjunktiverNormalform befindet.Sie ist eine Hornformel, wenn sich zusätzlich in jeder Klauselhöchstens ein positives Literal befindet.Beispiele:F = ∀x∀y ( (¬P(x) ∨ Q(x, y) ∨ R(x)) ∧ (¬P(y) ∨ R(f (y))) )ist in Klauselform, ist aber keine Hornformel.F = ∀x∀y ( (¬P(x) ∨ Q(x, y) ∨ ¬R(x)) ∧ (¬P(y) ∨ R(f (y))) )ist eine Hornformel.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 354Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionSubstitution, UnifikationSei sub = [x 1 /t 1 , . . . , x n /t n ] eine Substitution und seien P 1 , . . . , P nPrädikate der Form P(t ′ 1 , . . . , t′ n). Die Substitution sub heißtUnifikator der Prädikate, fallsP 1 sub = P 2 sub = · · · = P n sub.Sie heißt allgemeinster Unifikator, wenn es für jede anderenUnifikator sub ′ eine Substitution s gibt mit sub s = sub ′ .Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 355Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 356


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionBemerkungen:Substitutionen werden – anders als andere Funktionen – hinterihr Argument geschrieben.Daher wird die Verknüpfung von Substitutionenfolgendermaßen notiert: für zwei Substitutionen s 1 , s 2 ist s 1 s 2die Substitution, bei der zuerst s 1 und dann s 2 ausgeführtwird.ResolventGegeben seien zwei Klauseln K 1 und K 2 . Wir nehmen an, dass eskeine Variable gibt, die in beiden Klauseln vorkommt. (Ansonstenkann man vorher umbenennen.)Seien P 1 , . . . , P n Prädikate aus K 1 und ¬P 1 ′ , . . . , ¬P′ m negiertePrädikate aus K 2 , so dass P 1 , . . . , P n , P 1 ′ , . . . , P′ m unifizierbar ist.Sei sub der allgemeinste Unifikator.Wir erhalten K 1 ′ und K 2 ′ , indem wir die oben angegebenenPrädikate aus K 1 und K 2 entfernen. Dann istR = (K ′ 1 ∨ K ′ 2)subein Resolvent der Klauseln K 1 , K 2 .Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 357Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionBeispiel: zu resolvierende Literale sind unterstrichen.P(x) ∨ P(f (y)) ∨ Q(x, y)¬P(f (g(z)))sub = [x/f (g(z)), y/g(z)] Q(f (g(z)), g(z))Oft benutzt man auch die Mengenschreibweise:{P(x), P(f (y)), Q(x, y)}{¬P(f (g(z)))}sub = [x/f (g(z)), y/g(z)] {Q(f (g(z)), g(z))}Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 359Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 358Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionResolutionFür eine Menge M von Klauseln bezeichnen wir mit Res(M) dieMenge aller Resolventen, die man aus den Klauseln von Mgewinnen kann, vereinigt mit M. Durch iterierteResolventenbildung erhält man:Res 0 (M) = MRes n+1 (M) = Res(Res n (M)) für n ≥ 0Res ∗ (M) = ⋃ n≥0Res n (M).Sei F = ∀x 1 . . . ∀x n F ∗ eine Formel in Klauselform. Wir schreibenRes ∗ (F ∗ ) für Res ∗ ({K | K ist Klausel von F ∗ }).Res ∗ (F ∗ ) kann möglicherweise eine unendliche Menge sein.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 360


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionResolutionssatzGegeben sei eine Formel F = ∀x 1 . . . ∀x n F ∗ in Klauselform. DieFormel F ist unerfüllbar, genau dann, wenn die leere Klausel(dargestellt durch □) in Res ∗ (F ∗ ) enthalten ist.Beispiel: aus()∀x∀y (P(f (x)) ∨ Q(x)) ∧ ¬P(f (g(y))) ∧ ¬Q(g(a))kann man durch Resolution die leere Klausel herleiten.Folgende Form der Resolution funktioniert speziell fürHornklauseln:Definition (SLD-Resolution)Eine SLD-Resolutionsherleitungder leeren Klausel hat die rechtsabgebildete Form, wobei G eineZielklausel ist, G 1 , G 2 , . . . nur ausnegativen Literalen bestehen undK 1 , . . . , K n Tatsachen- oderProzedurklauseln sind.G K 1G 1 K 2G 2.K nDie Abkürzung SLD steht für “linear resolution with selectionfunction for definite clauses”□Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 361Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 362Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionWir betrachten noch eine andere Form der Resolution, dievollständig für Horn-Klauseln ist:Satz (Vollständigkeit der SLD-Resolution)Sei M eine unerfüllbare Klauselmenge, bestehend ausHornklauseln, mit nur einer Zielklausel G. Dann gibt es für F eineSLD-Resolutionsherleitung der leeren Klausel, die mit G beginnt.Unäre ResolutionEine Menge M von Hornklauseln mit einer Zielklausel G. DieMenge M ist unerfüllbar, genau dann, wenn es eineResolutionsableitung der leeren Klausel gibt, die folgendeBedingungen erfüllt:Bis auf die letzten Resolutionsschritte wird immer eineTatsachenklausel mit einer Prozedurklausel unifiziert. Dadurchentsteht entweder eine Tatsachen- oder eine Prozedurklausel.In den letzten Schritten werden dann Tatsachenklauseln mitder Zielklausel G resolviert, um □ zu erhalten.Weil eine der beiden Klauseln nur ein Element enthält, wird dieseResolution als unäre Resolution oder unit resolution bezeichnet.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 363Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 364


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionHorn-Formeln und ResolutionJetzt wieder zurück zur Verifikation von kryptographischenProtokollen . . .Idee: modelliere das Protokoll durch eine Menge von Hornklauselnund zeige, dass eine gegebene Zielklausel – die beispielsweiseausdrückt, dass der Angreifer in den Besitz des Geheimnisseskommen kann – nicht ableitbar ist.Um ausreichende Effizienz zu erreichen, betrachten wir eineEinschränkung des angewandten π-Kalküls: insbesondere werdenFunktionssymbole nach Konstruktoren und Destruktorenunterschieden.Konstruktoren und DestruktorenWir unterteilen die Menge der Funktionssymbole in Konstruktorenund Destruktoren.Außerdem wird das Format der Gleichungen in Σ folgendermaßeneingeschränkt: alle Gleichungen sind von der Formg(M 1 , . . . , M n ) = M,wobei M 1 , . . . , M n , M nur aus Variablen, Namen undKonstruktoren aufgebaut sind (wir bezeichnen solche Terme alsKonstruktorterme) und g ein Destruktor ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 365Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 366Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionDie meisten der von uns betrachteten Theorien erlauben dieseKlassifizierung.Beispiel:Symmetrische VerschlüsselungFunktionen sdecrypt und sencryptGleichungen:Σ = {sdecrypt(sencrypt(x, y), y) = x}Hier ist sdecrpyt ein Destruktor und sencrypt ein Konstruktor.Außerdem wird die Semantik des Kalküls modifiziert, insbesonderedie Reduktionsregel für das Versenden von Nachrichten und dieReduktionsregeln für If-Then-Else:c〈M〉.P | c(x).Q → P | Q[x/M]if M = N then P else Q → Pfalls Σ ⊢ M = Nif M = N then P else Q → Qfalls M, N variablenfreie Terme sind und Σ ⊬ M = Nwobei M und N in allen Fällen Konstruktorterme sindBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 367Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 368


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionHorn-Formeln und ResolutionBemerkungen: durch diese Modifikation entsteht ein Kalkül mitanderem Reduktionsverhalten. Insbesondere kann Senden undIf-Then-Else blockierend sein.Beispiele:Der Prozess P = c〈sdecrypt(m, K)〉.0 verschickt seineNachricht nie, da es sich bei sdecrypt(m) nicht um einenKonstruktorterm handelt.Der Prozess Q = c(x).c〈sdecrypt(x, K)〉.0 verschickt seineNachricht dann, wenn er auf c zuvor eine Nachricht empfängtund für x einsetzt, die dazu führt, dass sdecrypt(x, K) zueinem Konstruktorterm vereinfacht werden kann. Dies istbeispielsweise bei einer Nachricht der Form sencrypt(m, K)der Fall.Bemerkungen:Dieses blockierende Verhalten kann auch für die Modellierung Sinnmachen.Insbesondere kann damit ausgedrückt werden, dass ein Prozessnicht weiterarbeitet, wenn er eine empfangene Nachricht nichtentschlüsseln kann.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 369Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 370Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionIm angewandten π-Kalkül:Wir betrachten das kleine Beispielprotokoll in vereinfachter Form.(Wir lassen das Signieren des Sitzungsschlüssels K weg.)1 B → A: P B2 A → B: {K} PBAlice: A = (νK) ( c(p).Bob: B = (νm)(νK B ) (c〈pk(K B )〉.c〈aencrypt(K, p)〉.c(x).0 )c(y).c〈sencrypt(m, adecrypt(y, sk(K B )))〉.0 )3 B → A: {m} KBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 371Alle für den Angriff nicht notwendigen Teile der Prozesse(Bekanntgabe der öffentlichen Schlüssel, Fortsetzungen, etc.)wurden weggelassen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 372


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionAlle möglichen Protokollabläufe dieses Protokolls – in Anwesenheiteines Angreifers – werden nun mit Hilfe von Hornklauselnmodelliert.Als Theorien benötigen wir symmetrische und asymmetrischeVerschlüsselung.Horn-Formeln und ResolutionWir verwenden Formeln, bestehend aus:Funktionssymbolen, die den Konstruktoren aus der Theorieentsprechen.Konstantensymbolen, die den im Protokoll vorkommendenNamen entsprechen oder das Vorwissen des Angreifersrepräsentieren.Prädikatsymbolen:Att (einstellig)Intuition: Falls Att(M) für einen Konstruktorterm M gilt,so bedeutet dies, dass der Angreifer M kennt.Msg (zweistellig)Intuition: Falls Msg(c, M) für einen Kanal c und einenKonstruktorterm M gilt, so bedeutet dies, dass der Termauf dem Kanal verschickt wird.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 373Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 374Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionHornklauseln für die KonstruktorenAtt(x 1 ) ∧ · · · ∧ Att(x n ) → Att(f (x 1 , . . . , x n ))für jeden n-stelligen Konstruktor in der Theorie.Im betrachteten Beispiel:Att(x) ∧ Att(y) → Att(sencrypt(x, y)) (K1)Att(x) ∧ Att(y) → Att(aencrypt(x, y)) (K2)Att(x) → Att(pk(x)) (K3)Att(x) → Att(sk(x)) (K4)Hornklauseln für die DestruktorenAtt(M 1 ) ∧ · · · ∧ Att(M n ) → Att(M)für jede Gleichung der Form g(M 1 , . . . , M n ) = M.Im betrachteten Beispiel:Att(sencrypt(x, y)) ∧ Att(y) → Att(x) (D1)Att(aencrypt(x, pk(y))) ∧ Att(sk(y)) → Att(x)(D2)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 375Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 376


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionHornklauseln für das Verhalten des AngreifersMsg(x, y) ∧ Att(x) → Att(y)(E1)(Angreifer kann Nachrichten von Kanälen, die er kennt, abfangen.)Att(x) ∧ Att(y) → Msg(x, y)(E2)(Angreifer kann Nachrichten, die er kennt, auf Kanälenverschicken, die er kennt.)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 377Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionHorn-Formeln und ResolutionModellierung des Protokolls (Teil 1)Für einen Teilnehmer des Protokolls werden folgende Hornformelnerzeugt: falls der Teilnehmer nach dem Empfang der Nachrichtenx 1 , . . . , x n (jeweils auf den Kanälen c 1 , . . . , c n ) denKonstruktorterm M als Nachricht auf dem Kanal c verschickt, soerzeugen wir folgende Klausel:Msg(c 1 , x 1 ) ∧ · · · ∧ Msg(c n , x n ) → Msg(c, M)Es muss jede der vorher empfangenen Nachrichten berücksichtigtwerden, denn M könnte alle entsprechenden Variablen enthalten.Im betrachteten Beispiel: Verhalten von AliceMsg(c, p) → Msg(c, aencrypt(K, p))(A1)Dabei sind c, K Konstanten und p eine Variable.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 378Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionModellierung des Protokolls (Teil 2)Falls der Term M, der verschickt wird, kein Konstruktorterm ist, sowird folgendermaßen verfahren:Wir betrachten alle minimalen Substitutionen sub, so dassΣ ⊢ Msub = M ′ , wobei M ′ ein Konstruktorterm ist.(“Minimal” bedeutet, dass so wenig wie möglich ersetzt wird,analog zum allgemeinsten Unifikator.)Für jede solche Substitution sub wird folgende Klausel erzeugt:Msg(c 1 , x 1 sub) ∧ · · · ∧ Msg(c n , x n sub) → Msg(c, M ′ )Im betrachteten Beispiel: Verhalten von BobMsg(c, pk(K B ))(B1)Msg(c, aencrypt(z, pk(K B ))) → Msg(c, sencrypt(m, z))(B2)Dabei sind c, K B , m Konstanten und z eine Variable.Die für den zweiten Fall eingesetzte Substitution istsub = [y/aencrypt(z, pk(K B ))], die dazu führt, dassΣ ⊢ Msub = sencrypt(m, z), wobeiM = sencrypt(m, adecrypt(y, sk(K B ))).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 379Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 380


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionVorwissen des AngreifersDer Angreifer erhält Wissen über alle freie Kanäle, außerdem erhälter Konstanten, die er als Nonces bzw. Schlüssel einsetzen kann.Im betrachteten Beispiel:Att(c)Att(K E )(V1)(V2)ZielklauselWir betrachten zunächst den Fall der Geheimhaltung einerNachricht m. Dann ist die ZielklauselAtt(m)Dabei wird die Zielklausel negiert zur Klauselmenge hinzugefügt:{¬Att(m)} (Z)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 381Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 382Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionMit Hilfe der obigen Hornklauseln, kann man die leere Klauselableiten, wir benutzen dazu unäre Resolution.{Att(c)}(V1) {¬Att(x), ¬Att(y), Msg(x, y)}(E2) {¬Att(y), Msg(c, y)}(R1){Att(c)}(V1) {¬Msg(x, y), ¬Att(x), Att(y)}(E1) {¬Msg(c, y), Att(y)}(R2) {Msg(c, pk(K B ))}(B1){Att(pk(K B ))}(R3){¬Msg(c, y), Att(y)}(R2)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 383Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 384


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und Resolution{Att(K E )}(V2){¬Att(x), Att(pk(x))}(K1){¬Att(y), Msg(c, y)}(R1){Att(pk(K E ))}(R4){¬Msg(c, p), Msg(c, aencrypt(K, p))}(A1) {Msg(c, pk(K E ))}{Msg(c, aencrypt(K, pk(K E )))}(R5){Msg(c, aencrypt(K, pk(K E )))}(R5) {¬Msg(c, y), Att(y)}(R2){Att(aencrypt(K, pk(K E )))}(R6)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 385Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 386Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und Resolution{Att(K E )}(V2){¬Att(x), Att(sk(x))}(K2){Att(pk(K B ))}(R3) {¬Att(x), ¬Att(y), Att(aencrypt(x, y))}(K3){¬Att(aencrypt(x, pk(y))), ¬Att(sk(y)), Att(x)}(D1){Att(sk(K E ))}{Att(K)}(R7) {¬Att(x), Att(aencrypt(x, pk(K B ))))}{Att(aencrypt(K, pk(K E )))}(R6){¬Att(aencrypt(x, pk(K E ))), Att(x)}{Att(K)}(R7){¬Att(y), Msg(c, y)}(R1) {Att(aencrypt(K, pk(K B ))))}{Msg(c, aencrypt(K, pk(K B )))}(R8)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 387Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 388


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und Resolution{¬Msg(c, aencrypt(z, pk(K{Msg(c, aencrypt(K, pk(K B )))}(R8)B ))),Msg(c, sencrypt(m, z))}(B2){¬Msg(c, y), Att(y)}(R2){Msg(c, sencrypt(m, K))}{¬Att(sencrypt(x, y)), ¬Att(y), Att(x)}(D2) {Att(sencrypt(m, K))}{Att(K)}(R7){¬Att(K), Att(m)}D.h., die leere Klausel ist ableitbar und es gibt damit einen Angriffauf dieses Protokoll.Der Angriff läßt sich auch aus dem Resolutionsbeweis herleiten.Es ist jedoch noch nicht klar, wie man im Fall eines korrektenProtokolls beweisen soll, dass die leere Klausel nicht herleitbar ist.{¬Att(m)}(Z){Att(m)}□Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 389Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 390Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionAchtung:Der obige Resolutionsbeweis entspricht einem Angriff, derauch in dem Fall funktionieren würde, wenn derSitzungsschlüssel von Alice signiert wird. (Eve “denkt” sicheinen öffentlichen Schlüssel für Bob aus und schickt diesen anAlice.)In dem vereinfachten Protokoll gibt es noch einen direkterenAngriff für Eve: sie erzeugt einfach selbst denSitzungsschlüssel, verschlüsselt diesen mit dem öffentlichenSchlüssel von Bob und schickt diese Nachricht an Bob.Zunächst betrachten wir aber, wie weitere syntaktische Konstruktedes π-Kalküls in Hornklauseln übersetzt werden. Bisher hatten wirnur sequentielle Abfolgen von Präfixen betrachtet.Parallele KompositionEin Prozess P | Q wird dadurch übersetzt, dass sowohl dieKlauseln von P als auch die Klauseln von Q erzeugt werden.ReplikationIn einem Prozess der Form !P wird die Replikation zunächstignoriert. Die Tatsache, dass unter einer Replikation aber immerwieder neue Namen erzeugt werden können, wird im nächsten Fallbehandelt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 391Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 392


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionHorn-Formeln und ResolutionVerschattungIn einem Prozess der Form (νu)P wird für jede Folge vonNachrichten, die zuvor empfangen wurden, ein neuer Name uerzeugt. Das gilt insbesondere wenn sich der Prozess unter einerReplikation befindet. Um dies zu beschreiben, wird u ersetzt durchu(x 1 , . . . , x n ), wobei die Variablen aus den vorher vorkommendenEingabe-Präfixen entnommen werden.Beispiel: !c(x).(νn)(d〈n〉.P) ergibt unter anderem die HornklauselMsg(c, x) → Msg(d, n(x))Das ist ähnlich zu der sogenannten Skolemisierung, bei derExistenzquantoren in prädikatenlogischen Formeln eliminiertwerden.If-Then-ElseIn einem Prozess der Form if M = N then P else Q bestimmtman die minimalen Substitutionen sub, so dass Σ ⊢ Msub = Nsubund Msub ein Konstruktorterm ist. Auf die Klauseln, die aus Pentstehen, werden dann diese Substitutionen angewandt, um dieeigentlichen Hornklauseln zu erhalten. Die Klauseln, die aus Qentstehen, bleiben unverändert.Beispiel: c(x).(if n = sdecrypt(x, K) then d〈x〉.0 else 0)sub = [x/sencrypt(n, K)] ist die einzige minimale Substitution, diezur Gleichheit von n und sdecrypt(x, K) führt.Aus dem Then-Fall entsteht damit die KlauselMsg(c, sencrypt(n, K)) → Msg(d, sencrypt(n, K)).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 393Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 394Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionDas Verifikationsverfahren arbeitet zwar mit Überapproximation,ist aber in folgendem Sinne korrekt:Korrektheit des VerifikationsverfahrensWenn es einen Angriff auf das Protokoll gibt, dann ist die erzeugteKlauselmenge unerfüllbar, d.h., die leere Klausel ist ableitbar.bzw.Wenn die leere Klausel nicht ableitbar ist, dann gibt es keinenAngriff auf das Protokoll. D.h., das Protokoll ist korrekt.Literaturhinweise zur Verifikation von kryptographischenProtokollen mit Hornklauseln:Bruno Blanchet: Using Horn Clauses for Analyzing SecurityProtocols. Formal Models and Techniques for AnalyzingSecurity Protocols. IOS Press, 2010.(Überblick und Beschreibung der verwendetenResolutionstechniken)Martín Abadi and Bruno Blanchet: Analyzing SecurityProtocols with Secrecy Types and Logic Programs. Journal ofthe ACM, 52(1):102-146, 2005.(Enthält unter anderem das Verfahren zur Übersetzung vonProzessen in Horn-Klauseln)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 395Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 396


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionHorn-Formeln und ResolutionWir betrachten nun die Funktionsweise von ProVerif:Bruno Blanchet: Automatic Verification of Correspondencesfor Security Protocols. Journal of Computer Security,17(4):363-434, 2009.(Beschreibt die Verifikation von Authentifizierung)Artikel sind erhältlich unterhttp://www.di.ens.fr/~blanchet/publications/ProVerif hat zwei verschiedene Eingabeformate: Hornklauselnund Prozesse des angewandten π-Kalküls. Wir verwenden nurdas zweite Eingabeformat.ProVerif liefert eine der folgenden drei Ausgaben:Die zu verifizierende Eigenschaft ist erfüllt. (Zielklauselist durch Resolution nicht herleitbar.)Es gibt einen Angriff (mit Ausgabe des Angriffs).Die Eigenschaft kann nicht verifiziert werden. (Zielklauselist durch Resolution herleitbar, es kann jedoch keinAngriff gefunden werden.)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 397Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 398Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionWir betrachten nun das obige Beispielprotokoll Protokoll undmodellieren es in ProVerif:param traceDisplay = long.(* Kleines Beispiel-Protokoll - vereinfacht *)free c.(* Asymmetric Encryption *)fun aencrypt/2.fun pk/1.fun sk/1.reduc adecrypt(aencrypt(m,pk(k)),sk(k)) = m.(* Symmetric Encryption *)fun sencrypt/2.reduc sdecrypt(sencrypt(m,k),k) = m.query attacker:secretM[].let processA =new K;in(c, p);out(c, aencrypt(K,p));in(c, x).let processB =new secretM;new Kb;out(c,pk(Kb));in(c,y);out(c,sencrypt(secretM,adecrypt(y,sk(Kb)))).process(processA | processB)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 399Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 400


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionHorn-Formeln und ResolutionWir betrachten nun die Modellierung des fehlerhaftenNeedham-Schroeder-Protokolls in ProVerif.Aufruf von ProVerif:> proverif -in pi beispiel-prot-simple[...]A trace has been found.RESULT not attacker:secretM_8[] is false.Es wird auch der Angriff explizit ausgegeben.param traceDisplay = long.(* Needham-Schroeder - fehlerhaft *)free cs.free cab.free fail.(* Symmetric Encryption *)fun sencrypt/2.fun ok/0.reduc sdecrypt(sencrypt(m,k),k) = m.reduc check(sencrypt(m,k),k) = ok().(* Dekrementierung *)fun dec/1.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 401Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 402Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und Resolutionquery ev:a(x,y) ==> ev:b(y,x).let processA =new Na;out(cs, (A,B,Na));in(cs, x);let (N,Kab,M) = sdecrypt(x,Kas) inif N=Nathen out(cab,M);in(cab,y);if check(y,Kab)=ok()then out(cab,sencrypt(dec(sdecrypt(y,Kab)),Kab));event a (A,B).let processB =new Nb;in(cab,x);let (Kab,a) = sdecrypt(x,Kbs) inevent b (B,a);out(cab,sencrypt(Nb,Kab));in(cab,y);if sdecrypt(y,Kab) = dec(Nb)then 0else out(fail,()).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 403Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 404


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionHorn-Formeln und Resolutionlet processS =in(cs,(t1,t2,N));new K;if t1=A then (if t2=B thenout(cs,sencrypt((N,K,sencrypt((K,A),Kbs)),Kas))else if t2=E thenout(cs,sencrypt((N,K,sencrypt((K,A),Kes)),Kas)))else if t1=B then (if t2=A thenout(cs,sencrypt((N,K,sencrypt((K,B),Kas)),Kbs))else if t2=E thenout(cs,sencrypt((N,K,sencrypt((K,B),Kes)),Kbs)))else if t1=E then (if t2=A thenout(cs,sencrypt((N,K,sencrypt((K,E),Kas)),Kes))else if t2=B thenout(cs,sencrypt((N,K,sencrypt((K,E),Kbs)),Kes))).processnew Kas;new Kbs;(processA | processB | processS)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 405Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 406Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBei Aufruf von ProVerif wird wieder ausgegeben, dass dieEigenschaft nicht erfüllt ist:> proverif -in pi my-needham-schroeder[...]A trace has been found.RESULT ev:a(x_25,y_26) ==> ev:b(y_26,x_25) is false.Hier wird korrekte Authentifizierung durch Korrespondenz vonEreignissen überprüft:Wenn Ereignis (event) a(x,y) eintritt, dann muss zuvorEreignis b(y,x) eingetreten sein.Dazu reichert man die Syntax und Semantik des π-Kalküls umEreignisse an.Die Verifikation funktioniert in etwa folgendermaßen: es wirdüberprüft, dass in jedem Resolutionsbeweis, der eineTatsachenklausel mit dem Ereigniss a(x,y) ableitet, b(y,x)als Hypothese verwendet wird.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 407Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 408


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionHorn-Formeln und ResolutionDas Needham-Schroeder-Protokoll kann korrigiert werden, so dassdie Verifikation erfolgreich ist. Insbesondere muss dazu der Serverden Namen des Kommunikationspartners mit in die Nachrichtaufnehmen und Alice muss dies überprüfen.Wir ändern das Protokoll (insbesondere die Prozesse, die Alice undden Server beschreiben) entsprechend ab . . .let processA =new Na;out(cs, (A,B,Na));in(cs, x);let (N,b,Kab,M) = sdecrypt(x,Kas) inif N=Nathen if b=Bthen out(cab,M);in(cab,y);if check(y,Kab)=ok()then out(cab,sencrypt(dec(sdecrypt(y,Kab)),Kab));event a (A,B).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 409Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und Resolutionlet processS =in(cs,(t1,t2,N));new K;if t1=A then (if t2=B thenout(cs,sencrypt((N,B,K,sencrypt((K,A),Kbs)),Kas))else if t2=E thenout(cs,sencrypt((N,E,K,sencrypt((K,A),Kes)),Kas)))else if t1=B then (if t2=A thenout(cs,sencrypt((N,A,K,sencrypt((K,B),Kas)),Kbs))else if t2=E thenout(cs,sencrypt((N,E,K,sencrypt((K,B),Kes)),Kbs)))else if t1=E then (if t2=A thenout(cs,sencrypt((N,A,K,sencrypt((K,E),Kas)),Kes))else if t2=B thenout(cs,sencrypt((N,B,K,sencrypt((K,E),Kbs)),Kes))).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 411Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 410Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionDieses Verifikationsverfahren ist eine Approximationstechnik.Über-Approximation entsteht insbesondere durch folgende Effekte:Die Kodierung ignoriert wie oft eine Aktion ausgeführt wird.Auch wenn eine Nachricht nur einmal empfangen werdenkann, kann die dazugehörige Hornklausel beliebig oftverwendet werden. Das bedeutet im wesentlichen, dass jederProzess als replizierter Prozess betrachtet wird.Außerdem entsteht Überapproximation durch die Behandlungvon If-Then-Else-Anweisungen. (Vor allem durch fehlendeEinschränkungen für den Else-Fall.)Des weiteren können verschattete Namen, die eigentlichverschieden sind, durch die Approximation als gleichangesehen werden.Dies führt jedoch nur zu zusätzlichem Verhalten, tatsächlicheSystemabläufe werden nie unterschlagen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 412


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionIn folgendem Beispiel kann Prozess processB nur einen Nonceentschlüsseln und zurückschicken, processA schickt daher niemalsdas Geheimnis. Das kann durch die Überapproximation jedochnicht erkannt werden.param traceDisplay = long.(* Beispiel fuer Ueberapproximation *)free c.(* Symmetric Encryption *)fun sencrypt/2.reduc sdecrypt(sencrypt(m,k),k) = m.query attacker:secretM[].Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 413Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionHorn-Formeln und Resolutionlet processA =new N1;new N2;out(c,sencrypt(N1,K));out(c,sencrypt(N2,K));in(c,x1);in(c,x2);if x1=N1then if x2=N2 then out(c,secretM)else 0 else 0.let processB =in(c,x);out(c,sdecrypt(x,K)).processnew K;new secretM;(processA | processB)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 414Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionProVerif erzeugt folgende Ausgabe:> proverif -in pi approx[...]Could not find a trace corresponding to this derivation.RESULT not attacker:secretM_7[] cannot be proved.Ein echter Angriff wird jedoch gefunden, wenn processB repliziertwird. Denn dann kann er beliebig viele Nonces entschlüsseln.Wir betrachten nun die von ProVerif verwendetenResolutionstechniken genauer.Ein Hauptproblem beim Einsatz von Resolution ist dieTerminierung. Für eine gegebene Menge M von Klauseln ist esnormalerweise nicht klar, dass Res ∗ (M) endlich ist und derResolutionsprozess damit terminiert.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 415Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 416


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBeispiel:Wir betrachten einen Konstruktor f und einen Destruktor g (beideeinstellig) mit der Gleichungg(f(x)) = xDies ergibt folgende Hornklauseln:Att(f(x)) → Att(x)Att(x) → Att(f(x))Wir nehmen an, dass der Angreifer folgendes Vorwissen hat:für eine Konstante a.Att(a)Att(f(a))Ziel ist es, zu zeigen, dass der Angreifer nicht in den Besitz von bgelangen kann, wobei b eine weitere Konstante ist. D.h., dieZielklausel ist ¬Att(b).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 417Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionProbleme mit unärer Resolution:Auch unäre Resolution funktioniert hier nicht. Wir erhaltenfolgenden unendlichen Resolutionsbeweis:{Att(a)} {¬Att(x), Att(f(x))}{Att(f(a))} {¬Att(x), Att(f(x))}{Att(f(f(a)))}.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 419Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionProbleme mit SLD-Resolution:Bei SLD-Resolution kann folgende unendliche Folge vonResolventen entstehen:{¬Att(b)} {¬Att(f(x)), Att(x)}{¬Att(f(b))} {¬Att(f(x)), Att(x)}{¬Att(f(f(b)))}.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 418Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionDaher wird folgendes Vorgehen benutzt:Wir beginnen mit der Klauselmenge ohne die Zielklausel.Es gibt eine Selektionsfunktion sel, die aus jeder Klausel einoder kein negatives Literal auswählt. Klauseln K 1 , K 2 werdennur dann resolviert, wenn kein Literal in K 1 ausgewählt ist unddas zu resolvierende Literal von K 2 ausgewählt ist.Nachdem alle oben möglichen Resolventen wie obenbeschrieben gebildet wurden, werden alle Klauseln entfernt,bei denen ein Literal selektiert ist.Dann wird, mit den übrigen Klauseln, von der Zielklausel auseine Rückwärtsresolution (ähnlich zur SLD-Resolution)durchgeführt.(Das ist eine etwas vereinfachte Darstellung! Details befinden sichin den Artikeln von Blanchet.)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 420


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionAußerdem wird darauf geachtet, dass “überflüssige” Klauseln, diebereits durch andere Klauseln subsumiert werden, sofort entferntwerden.SubsumptionGegeben seien zwei Klauseln K 1 , K 2 folgender Form:K 1 = P 1 ∧ · · · ∧ P m → P 0K 2 = P ′ 1 ∧ · · · ∧ P ′ n → P ′ 0Man sagt, dass die Klausel K 1 die Klausel K 2 subsumiert (inZeichen: K 1 ⊒ K 2 ), falls es eine Substitution sub gibt mit:P 0 sub = P ′ 0 und{P 1 , . . . , P m }sub ⊆ {P ′ 1 , . . . , P′ n}Horn-Formeln und ResolutionBemerkungen:In obiger Definition gilt möglicherweise m = 0 oder n = 0,d.h., es gibt keine negativen Literale.Aus K 1 ⊒ K 2 folgt K 1 |= K 2 (logische Implikation). Dieumgekehrte Richtung gilt jedoch nicht notwendigerweise.Falls die Resolution von K 2 und einer weiteren Klausel Keinen Resolventen R 2 ergibt, so ergibt entweder die Resolutionvon K 1 und K einen Resolventen R 1 mit R 1 ⊒ R 2 oder es giltbereits K 1 ⊒ R 2 .D.h., es reicht, mit der Klausel K 1 weiterzuresolvieren, da alleResolutionsschritte von K 2 durch K 1 “imitierbar” sind undman sogar allgemeinere Klauseln erhält.Klauseln, die durch andere Klauseln subsumiert werden,werden aus der Menge der Resolventen entfernt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 421Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 422Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBeispiel:Gegeben seien folgende Klauseln K 1 , K 2 :K 1 = P(x) → R(x)K 2 = P(f(x)) ∧ Q(x) → R(f(x))Die Klausel K 1 subsumiert K 2 (K 1 ⊒ K 2 ). Die dazugehörigeSubstitution ist sub = [x/f(x)]SelektionsfunktionWir nehmen an, dass eine Selektionsfunktion existiert, die einerKlausel K = P 1 ∧ · · · ∧ P m → P 0 entweder ein negatives Literalzuordnet, das in der Klausel vorkommt (sel(K) = {P i }) oder dieleere Menge zurückgibt (sel(K) = ∅).Im ersten Fall sagt man, dass P i selektiert ist, im zweiten Fall istkein Literal selektiert.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 423Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 424


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionDie folgenden Korrektheitsbeweise funktionieren mit jederbeliebigen Selektionsfunktion. Für die Terminierung ist es jedochwichtig, eine “gute” Selektionsfunktion zu wählen.In unserem Fall ist eine gute Selektionsfunktion eine Funktion, dieniemals ein Prädikat der Form Att(x) selektiert. Für solche Literaleergeben sich nämlich sehr viele Resolutionsmöglichkeiten. Falls esunter den negativen Literalen ein Prädikat gibt, das von Att(x)verschieden ist, dann wird aber auf jeden Fall eines davonselektiert.Horn-Formeln und ResolutionSaturierung/SättigungGegeben sei eine Menge M von Klauseln. Wir bestimmen eineMenge M ′ dadurch, dass wir (iteriert) alle möglichen Resolventenaus den Klauseln in M bilden (analog zu Res ∗ ). Dabei wird jedochfolgende Bedingung eingehalten:Angenommen, es werden zwei Klauseln K 1 , K 2 miteinanderresolviert, wobei das positive Literal aus K 1 und das negativeLiteral aus K 2 genommen wird: dann darf in K 1 kein Literalselektiert sein und das zu resolvierende Literal in K 2 mussselektiert sein.Klauseln, die durch bereits existierende Klauseln subsumiertwerden, werden sofort entfernt.Wir bestimmen nun Saturate ∗ (M) dadurch, indem wir alleKlauseln K mit sel(K) ≠ ∅ aus M ′ entfernen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 425Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 426Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBeispiel: wir bilden Saturate ∗ (M) für folgende Klauselmenge M(noch ohne Zielklausel){{¬Att(f(x)), Att(x)}, {¬Att(x), Att(f(x))}, {Att(a)}, {Att(f(a))}}Nur in der ersten Klausel ist ein Literal selektiert. Diese Klauselkann mit der zweiten und vierten Klausel resolviert werden undman erhält:{¬Att(x), Att(x)}{Att(a)}Beispiel (Fortsetzung):Die Saturierung terminiert also und wir erhalten als Ergebnis:Saturate ∗ (M) = {{¬Att(x), Att(f(x))}, {Att(a)}, {Att(f(a))},{¬Att(x), Att(x)}}In beiden Klauseln ist kein Literal selektiert. Außerdem ist die ersteder beiden neuen Klauseln eine Tautologie (und könnte entferntwerden), die zweite gab es bereits.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 427Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 428


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBemerkung:Die übrigbleibenden Klauseln sind alle von der FormAtt(x 1 ) ∧ · · · ∧ Att(x n ) → P 0 ,wobei auch n = 0 möglich ist. Dann handelt es sich um eineTatsachenklausel.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 429Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionHorn-Formeln und ResolutionKorrektheit der SaturierungGegeben sei eine Zielklausel G.Wenn aus M ∪ {G} durch Resolution die leere Klausel hergeleitetwerden kann, so kann man auch aus Saturate ∗ (M) ∪ {G} die leereKlausel herleiten (und umgekehrt).Beweis: Da Saturate ∗ (M) nur Klauseln enthält, die aus Mhergeleitet werden können, kann man eine Herleitung der leerenKlausel aus Saturate ∗ (M) ∪ {G} immer in eine Herleitung derleeren Klausel aus M ∪ {G} umwandeln.Die andere Richtung ist etwas komplizierter, da bestimmteKlauseln (nämlich diejenigen, in denen ein Literal selektiert ist)entfernt wurden. Angenommen, es gibt eine Herleitung der leerenKlausel aus M ∪ {G}. Wir nehmen an, dass es sich dabei um unäreResolution handelt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 430Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionDiese Herleitung beginnt – neben der Verwendung der Zielklausel –mit Klauseln aus M. Diese Klauseln, die nicht aus anderenKlauseln resolviert werden, bezeichnen wir als Hypothesen.Zunächst argumentieren wir, dass diese Resolutionsableitung soumgeformt werden kann, dass bei Resolution von zwei KlauselnK 1 , K 2 , wobei K 1 eine Tatsachenklausel ist und sel(K 2 ) ≠ ∅ gilt,das selektierte Literal resolviert wird. Ist dies nicht der Fall, so wirddas selektierte Literal später mit einer Tatsachenklausel resolviert,in diesem Fall kann jedoch die Reihenfolge der Resolutionen sogeändert werden, dass das selektierte Literal sofort resolviert wird.Wir transformieren nun diesen Resolutionsbeweis in einenResolutionsbeweis für Saturate ∗ (M) ∪ {G}. Die dabeientstehenden Resolutionsbeweise haben Klauseln aus M ′ alsHypothesen, der im letzten Schritt entstehende Resolutionsbeweisbesitzt dann nur noch Klauseln aus Saturate ∗ (M) als Hypothesen.Falls der Beweis als Hypothese eine Klausel K aus M ′ verwendet,die nicht in Saturate ∗ (M) liegt, so gilt sel(K) ≠ ∅. Diese Klauselwird mit einer oder mehreren Tatsachenklausel K 1 , . . . , K nresolviert, wobei immer mit dem in K selektierten Literal resolviertwird (nach der oben beschriebenen Umformung). Dadurchentstehen Resolventen R 1 , . . . , R n , die alle Elemente von M ′ sind.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 431Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 432


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionHorn-Formeln und ResolutionAlso entfernen wir K aus dem Resolutionsbeweis. Das bedeutet,dass wir nun zusätzlich R 1 , . . . , R n als Hypothesen verwenden, dieaber alle in M ′ liegen.In jedem Schritt wird mindestens eine Klausel entfernt, die Größedes Resolutionsbeweises bleibt ansonsten unverändert. D.h., nacheiner festen Anzahl von Schritten erhalten wir einenResolutionsbeweis, der nur noch Klauseln K mit sel(K) = ∅ alsHypothesen verwendet.Anschließend wird – ausgehend von der Zielklausel G – eineRückwärtsresolution (ähnlich zu einer SLD-Resolution)durchgeführt. Dabei werden noch folgende Optimierungenverwendet:Suchpfade, die zu subsumierten Klauseln führen, werden nichtmehr weiterverfolgt.Die Anzahl der erzeugten Klauseln wird durch Einsatz derSelektionsfunktion minimiert. (Wird nicht im Detailbesprochen.)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 433Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 434Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBeispiel: es gilt G = {¬Att(b)} undSaturate ∗ (M) = {{¬Att(x), Att(f(x))}, {Att(a)}, {Att(f(a))},{¬Att(x), Att(x)}}Wir können nur G mit der vierten Klausel aus Saturate ∗ (M)resolvieren, wodurch wir wieder G erhalten (Subsumierung).D.h., nach wenigen Schritten wird abgebrochen und festgestellt,dass die leere Klausel nicht herleitbar ist.Auch bei diesem Vorgehen ist nicht klar, dass das Verfahren immerterminiert. In der Praxis terminiert das Verfahren jedoch sehrhäufig.Man kann auch zeigen, dass für eine bestimmte Klasse vonkryptographischen Protokollen (sogenannte tagged protocols) dasResolutionsverfahren immer terminiert.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 435Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 436


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenVerhaltensäquivalenzenWir betrachten nun eine dritte Technik zur Verifikation vonkryptographischen Protokollen: Verhaltensäquivalenzen.Dazu nehmen wir an, dass ein externer Beobachter mit demSystem interagiert. Man möchte feststellen, ob der Beobachter dasSystem Sys von einem anderen System Sys ′ unterscheiden kannoder nicht. (Ähnlich zu Zero-Knowledge.)Wir betrachten wieder die ursprüngliche Variante des angewandtenπ-Kalküls (keine Unterscheidung von Konstruktoren undDestruktoren, kein blockierendes Senden und If-Then-Else).Weitere Einzelheiten sind beschrieben in:Martín Abadi, Cédric Fournet: Mobile Values, New Names,and Secure Communication. Proc. of POPL ’01, pp. 104–115,ACM, 2001.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 437Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenZunächst definieren wir die Beobachtungen, die gemacht werdenkönnen.BeobachtungenSei P ein Prozess des angewandten π-Kalküls. Wir schreiben P ⇓ a(a kann in P beobachtet werden), falls es einen EvaluationskontextC[ ] gibt mit P → ∗ C[a〈M〉.Q], wobei a in C nicht gebunden ist.Intuitiv kann man Ausgabeaktionen auf Kanälen (in diesem Fallauf Kanal a) beobachten. Eine solche Beobachtung heißt auchbarb (= Stachel).Beispiel:Für den Prozessgilt P ⇓ c und P ⇓ a.P = c〈N〉.0 | c(x).a〈x〉.0Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 439Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 438Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenWir definieren nun Relation auf Prozessen, wobei diese Relationendie Eigenschaft haben müssen, dass zwei Prozesse, die in Relationstehen, sich gegenseitig simulieren können.BisimulationEine symmetrische Relation R auf Prozessen heißt Bisimulation,wenn sie folgende Eigenschaften hat: Falls P R Q, dann gilt:Aus P ⇓ a folgt Q ⇓ a (für jede Beobachtung a)Falls P → ∗ P ′ für einen Prozess P ′ , dann gibt es einenProzess Q ′ mit Q → ∗ Q ′ und P ′ R Q ′ .Für jeden Evaluationskontext C[ ] gilt C[P] R C[Q].Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 440


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenVerhaltensäquivalenzenBemerkungen:BeobachtungskongruenzFalls es für zwei Prozesse P, Q eine Bisimulation R gibt mitP R Q, dann schreiben wir P ≈ Q und sagen, dass P, Qbeobachtungskongruent sind.Man unterscheidet auch zwischen starken und schwachenBisimulationen. Bei schwachen Bisimulationen kann einSchritt durch mehrere andere Schritte simuliert werden. Daherhandelt es sich hier um eine schwache Bisimulation.Der Evaluationskontext C[ ] steht intutiv für den Angreifer.Falls er die beiden Prozesse unterscheiden kann, dann kann erdies durch eine Beobachtung auf einem Kanal abekanntgeben.Die obige Definition für Bisimulation ist algorithmischunbrauchbar, da über alle Kontexte quantifiziert wird. Es gibtjedoch alternative, besser handhabbare Definitionen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 441Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 442Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenBeispiele: folgende Paare von Prozessen sindbeobachtungskongruentP = 0, Q = (νa)(a〈M〉.0)P = 0, Q = (if a = b then c〈M〉.0 else 0)P = (νa)(c〈a〉.0), Q = (νb)(c〈f(b)〉.0), wobei f eine Funktionist, für die keine Gleichungen existieren (Einwegfunktion).D.h., es kann nicht festgestellt werden, ob ein (frischer) Wertals Bild einer Einwegfunktion entstanden ist.Geheimhaltung mit VerhaltensäquivalenzenSei P ein Prozess mit einer freien Variablen x, die für eineNachricht steht. Ein Prozess P gewährleistet die Geheimhaltungder entsprechenden Nachricht, wennP[x/m] ≈ P[x/n]für zwei beliebige Namen m, n gilt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 443Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 444


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenVerhaltensäquivalenzen: Beispiel MACsBeispiel:Der Prozess P = (νK)(c〈sencrypt(x, K)〉.0) hält alle Nachrichtengeheim, die für x eingesetzt werden, denn es gilt:(νK)(c〈sencrypt(n, K)〉.0) ≈ (νK)(c〈sencrypt(m, K)〉.0)für beliebige Namen m, n.Intuition: der Angreifer kennt höchstens einen Schlüssel, derverschieden von K ist. Auch wenn der Angreifer m bzw. n besitzensollte, so kann er nicht überprüfen, ob diese Nachrichtenverschlüsselt den verschickten Nachrichten entsprechen. Alles, waser erzeugt, ist verschieden von sencrypt(m, K) und sencrypt(n, K).Wir betrachten nun als Anwendungsbeispiel sogenannte MACs(Message Authentication Codes), die auf symmetrischerVerschlüsselung basieren. Sie haben eine ähnliche Funktion wieSignaturen, die auf asymmetrischer Verschlüsselung basieren.Üblicherweise wird dabei eine Nachricht, zusammen mit einer ArtVerschlüsselung der Nachricht unter einem symmetrischenSchlüssel K verschickt. Dann können die Besitzer von Küberprüfen, dass tatsächlich einer von ihnen die Nachricht erzeugthat.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 445Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzen: Beispiel MACsBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 446Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenZur Formalisierung im angewandten π-Kalkül verwenden wir einezweistellige Funktion mac. Der Term mac(K, m) (für eineNachricht m und einen symmetrischen Schlüssel K) wird alsBeweis aufgefasst, dass die Nachricht von einem Teilnehmergeschickt wurde, der den symmetrischen Schlüssel K kennt.Bei Empfang einer Nachricht m mit MAC M berechnet derEmpfänger mac(K, m) und überprüft, ob dieser Wert gleich M ist.Szenario: eine von Alice weitergeleitete Nachricht wird von Bobempfangen und nur dann weitergeschickt, wenn sie die korrekteMAC hat:A = !a(x).b〈pair(x, mac(K, x))〉.0B = b(y). (if mac(K, fst(y)) = snd(y) then c〈fst(y)〉.0 else 0)Sys = (νK)(A | B)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 447Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 448


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenWir diskutieren nun Aspekte, die sich bei der Erzeugung von MACsmit Hilfe der Merkle-Damgård-Konstruktion ergeben. Diesefunktioniert wie folgt:Es wird eine Einweg-Kompressionsfunktion h verwendet, diezwei Blöcke auf einen Block abbildet.Ein initialer Wert (= Schlüssel K) wird nun mit dem erstenBlock der Nachricht bezüglich h verknüpft. Der entstehendeWert wird mit dem zweiten Block der Nachricht verknüpft,usw.Nachricht mOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenDiese Konstruktion von MACs hat in der vorgestellten Formfolgenden Nachteil:Falls eine MAC für eine Nachricht m bekannt ist, so kann man –da die Kompressionsfunktion h bekannt ist – einfach eine MAC füreine Nachricht m konkateniert mit m ′ gewinnen.Block 1Block 2Block nK h h hMACBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 449Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 450Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenDazu stellen wir folgende Gesetze auf:Wir modellieren diese Art der MAC-Berechnung im angewandtenπ-Kalkül. Dazu verwenden wireine zweistellige MAC-Funktion f (entspricht mac),die zweistellige Kompressionsfunktion h,eine Konstante null für die leere Folge von Blöcken undeine zweistellige Funktion concat (zur Konkatenation vonBlöcken (eine Folge m 1 , m 2 , m 3 wird alsconcat(concat(concat(null, m 1 ), m 2 ), m 3 ) dargestellt).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 451mac(x, y) = f(x, y)f(x, null) = xf(x, concat(y, z)) = h(f(x, y), z)Natürlich sollte immer mindestens ein Block verschlüsselt werden,ansonsten wird der Schlüssel offengelegt.Beispiel:mac(K, concat(concat(null, m 1 ), m 2 ))= f(K, concat(concat(null, m 1 ), m 2 ))= h(f(K, concat(null, m 1 )), m 2 )= h(h(f(K, null), m 1 ), m 2 )= h(h(K, m 1 ), m 2 )Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 452


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenVerhaltensäquivalenzenDer Angreifer im angewandten π-Kalkül sieht wie folgt aus:Der Angriff sieht formal wie folgt aus:Gegeben ist eine MAC M = f(K, m)Dann berechnet man daraush(M, m ′ ) = h(f(K, m), m ′ ) = f(K, concat(m, m ′ ))D.h., falls es eine MAC zu einer existierenden Nachricht m gibt, sokann der Angreifer MACs zu beliebigen Verlängerungen von merzeugen, ohne K zu kennen.E = a〈m〉.b(y).b〈pair(concat(m, m ′ ), h(snd(y), m ′ ))〉.0Eve läßt von Alice eine MAC für die Nachricht m erstellen, schicktdann aber die Konkatenation von m, m ′ mit einer gültigen MAC,die aber nicht von Alice erstellt wurde.Eine Möglichkeit, solche Angriffe zu verhindern, ist es, folgendeFunktion für die Berechnung der MAC zu verwenden:mac(x, y) = f(x, f(x, y))Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 453Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 454Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenDamit haben wir drei Möglichkeiten, MACs zu spezifizieren:Mit einer zweistelligen Funktion mac, ohne jede Gleichungen.Mit der Gleichung mac(x, y) = f(x, y).Mit der Gleichung mac(x, y) = f(x, f(x, y))Dabei wird f – wie oben – durch iterierte Anwendung derKompressionsfunktion h berechnet.Alle drei Möglichkeiten, können in ProVerif modelliert werden. Dadie Gleichungen jedoch nicht alle die fürDestruktoren/Konstruktoren notwendige Form haben, muss mansich auf die eingeschränkte Gleichungsbehandlung in ProVerifverlassen. Kleine Änderungen an den Gleichungen führen oft zuNicht-Terminierung.Im ersten und letzten Fall kann der Prozess Sys verifiziert werden.Dies geschieht durch Verwendung von Korrespondenzen: Bob löstein Ereignis der Form macb(x) aus, falls er eine Nachricht xweiterschickt. Vorher muss ein Ereignis maca(x) stattgefundenhaben, direkt bevor Alice die Nachricht mit einer MAC versieht.Im zweiten Fall kann der Prozess nicht verifiziert werden. Es wirdjedoch kein durchführbarer Angriff gefunden.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 455Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 456


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenWir möchten nun jedoch zeigen, dass die dritte Variante für dieErzeugung von MACs immer äquivalent zur ersten Variante ist.D.h., wenn es keinen Angriff in der ersten Variante gibt, dann gibtes auch keinen in der dritten Variante. Dies geschieht mit Hilfe derBeobachtungskongruenz.Korrektheit der Erzeugung von MACsSei P ein Prozess, in dem die Schlüssel K 1 , . . . , K n frei vorkommenund nur für die Erzeugung von MACs verwendet werden. Sei P ′ derProzess der aus P entsteht, indem jedes Vorkommen vonmac(K i , M) durch f(K i , f(K i , M)) ersetzt wird.Außerdem gibt es für mac keine Gleichungen und f ist wie obenmit Hilfe der Kompressionsfunktion h definiert. Dann gilt:Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenBemerkung:Mit Hilfe der Beobachtungskongruenz kann zwar Geheimhaltung(siehe oben) und auch Authentifizierung spezifiziert werden, dafürgibt es jedoch meist effizientere Methoden (z.B. Model-Checkingoder Resolution).(νK 1 ) . . . (νK n )P ≈ (νK 1 ) . . . (νK n )P ′(Ohne Beweis)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 457Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenVerhaltensäquivalenzen sind jedoch dann nützlich, wennman zeigen will, dass eine Transformation des Protokollsnichts am Verhalten des Protokolls ändert (siehe Berechnungvon MACs).man genau überprüfen will, welches Verhalten der Angreifersehen bzw. nicht sehen kann.(Beispielsweise möchte man für Wahlprotokolle, dass eineWahl, in der Alice X gewählt hat, für den Angreiferununterscheidbar ist von einer Wahl, in der Alice Y gewählthat. Das beschreibt sogenannte receipt-freeness, welchebedeutet, dass der Angreifer Alice nicht zu einer bestimmtenWahl zwingen kann.)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 459Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 458Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenWir diskutieren noch kurz, wie man Verhaltensäquivalenzenkonkret nachweisen kann.Anstatt auf einem unbeschrifteten Transitionssystem arbeitet manauf einem beschrifteten Transitionssystem (LTS = labelledtransition systems). Dabei beschreiben die Beschriftungen dieInteraktionen des Prozesses mit seiner Umgebung.Beispiele:a(x).b〈x〉.0 a(m)−→ b〈m〉.0(Umgebung schickt Nachricht m auf Kanal a.)a〈m〉.P a〈m〉−→ P(Prozess schickt Nachricht m an Umgebung.)(νm)(a〈m〉.P) (νm)a〈m〉−→ P(Prozess schickt zuvor verschattete Nachricht m anUmgebung.)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 460


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOrganisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenWeitere VerifikationstechnikenAnschließend definiert man Bisimulation auf den beschriftetenTransitionen: eine Transition muss durch eine andere Transitionmit derselben Beschriftung beantwortet werden. DieQuantifizierung über alle Kontext wird weggelassen.Man kann nun zeigen, dass die so definierte Verhaltensäquivalenzmit der Beobachtungskongruenz übereinstimmt.Durch Einsatz zusätzlicher Techniken (z.B. Up-To-Techniken) kannman dann in vielen Fällen erreichen, dass die benötigtenBisimulationen endlich sind. Damit ist die Technik automatisierbar.BAN-Logik (Burrows-Abadi-Needham-Logik): Logik, in derman Schlüsse über kryptographische Protokolle ziehen kannund Aussagen folgender Form machen kann: “Teilnehmer Aglaubt X ”, “Teilnehmer B sagt Y ”, “Nonce N ist frisch”AVISPA: Automated Validation of Internet Security Protocolsand Applications (EU-finanziertes Projekt)CASPA: Causality-based Abstraction for Security ProtocolAnalysis (M. Maffei, Universität des Saarlandes)Scyther: A Tool for the Automatic Verification of SecurityProtocols (C. Cremers, ETH Zürich)und viele weitere Methoden und Werkzeuge . . .Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 461Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSchlussbemerkungenBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 462Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSchlussbemerkungenVerifikatikonstechniken sollten helfen, Protokolle besser zuverstehen und robustere Protokolle zu entwerfen (auch indemman typische Fehler aufdeckt).Siehe auch Abadi’s Design Principles in Security Protocols:Principles and Calculi – Tutorial Notes. Dort werden typischeFehler besprochen und erklärt, wie man sie vermeiden kann.Kann man aus der Korrektheit eines Protokolls nach demDolev-Yao-Eindringlingsmodell auch etwas über dieAngriffsmöglichkeiten von polynomzeitbeschränktenprobabilistischen Angreifern sagen? dazu gibt es inzwischen ebenfalls Arbeiten (beispielsweise:Abadi, Rogaway: Reconciling two views of cryptography (Thecomputational soundness of formal encryption). Journal ofCryptology, 15(2):103–127, 2005.Dieser Bereich ist weiterhin ein interessantesForschungsthema.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 463Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 464


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSchlussbemerkungenEs gibt auch Verfahren, die Protokolle, in denenVerschlüsselungsverfahren (RSA, etc.) explizit Teil desProtokolls sind, direkt verifizieren. (Korrektheit bezüglicheines polynomzeitbeschränkten probabilistischen Angreifers.) Einsatz von Theorembeweisern (beispielsweise: GillesBarthe, Benjamin Grégoire, Sylvain Heraud, Santiago ZanellaBéguelin: Computer-Aided Security Proofs for the WorkingCryptographer. CRYPTO 2011: 71-90)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 465

Weitere Magazine dieses Users
Ähnliche Magazine