7.3: 14.12. - Institut für Verteilte Systeme

Transcription

7.3: 14.12. - Institut für Verteilte Systeme
Vertiefung zu probabilistischen Algorithmen
Ben Or 1
●
●
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
■
■
Asynchrones Systemmodell
■
Randomisierte Lösung des Einigungsproblem
Ben Or 2
●
Partielle Korrektheit: Wenn der Algorithmus terminiert, ist das
Ergebnis korrekt
(alle Knoten einigen sich auf den selben Wert)
●
Terminierung: Keine deterministische Aussage möglich!
Aber:
Die Wahrscheinlichkeit, dass der Algorithmus in endlicher
Zeit terminiert, konvergiert gegen 1
Byzantinische Fehler
ABBA (Asynchronous Binary Byzantine Agreement)
●
Byzantinische Fehler
●
mit Hilfe von Kryptographie
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
1
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
■
Crash-stop, siehe Vorlesung
■
BO1: Gutmütige Ausfälle
■
BO2: Byzantinische Fehler
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
Algorithmus Ben-Or 2 (byzantinische Fehler)
N Knoten; max. M Ausfälle, N > 2M; Runde r, Wert xp bei Pp
N Knoten; max. M fehlerhaft, N>5M; Runden r, Pp hat Wert xp
Schritt 0: r := 1
Schritt 0: r := 1
Schritt 1: Sende (pre-vote, r, xp) an alle Knoten
Schritt 1: Sende (pre-vote, r, xP) an alle Knoten
Schritt 2: Warte auf N - M Nachrichten (pre-vote, r, x);
Anzahl Nachrichten mit gleichem Wert x=v:
Mehr als N/2: sende (vote, r, v) an alle
ansonsten:
sende (vote, r, ?) an alle
Schritt 2: Warte auf N - M Nachrichten (pre-vote, r, x);
Anzahl Nachrichten mit gleichem Wert x=v:
Mehr als (N+M)/2: sende (vote, r, v) an alle
ansonsten:
sende (vote, r, ?) an alle
Schritt 3: Warte auf N - M Nachrichten (vote, r, v)
(a) Falls eine Nachricht mit v ≠ ?: xp := v
(b) Falls mehr als M solche Nachrichten: fertig
(c) sonst: xp := zufällig gewählt aus {0, 1}
Schritt 3: Warte auf N - M Nachrichten (vote, r, v)
(a) Falls > M Nachrichten mit v ≠ ?: xP := v
(b) Falls > (N+M)/2 solche Nachrichten: fertig
(c) sonst: xP := zufällig gewählt aus {0, 1}
Schritt 4: r := r + 1; weiter mit Schritt 1
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
3
2
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
Algorithmus Ben-Or 1 (gutmütige Ausfälle)
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
■
Ben-Or: Rahmenbedingungen
Schritt 4: r := r + 1; weiter mit Schritt 1
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
4
Überlegungen zur Korrektheit BO-2
Überlegungen zur Korrektheit BO-2 (2)
Ähnlich zu BO-1, nur
●
●
Ein Knoten entscheided sich endgültig in Schritt 3a
statt „mindestens 1 Knoten“:
„mindestens 1 korrekter Knoten“, d.h. mindestens M+1
Knoten
Alle anderen (noch nicht entschiedenen) Knoten verwenden in
Schritt 3a den gleichen Wert
Schritt 3 b:
(N+M)/2 vote-Nachrichten für v ⇒
mindestens (N+M)/2 - M korrekte Knoten dabei ⇒
jeder Knoten erhält mindestens ((N+M)/2 - M) - M solche
vote-Nachrichten
Alle anderen (noch nicht entschiedenen) entscheiden sich
endgültig in der nächsten Runde
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
⇓
⇓
((N+t)/2 - M) - M > M ⇔ N > 5 M
5
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
■
Klassische Hash-Funktionen
Klassische kryptographische Verfahren
●
Kryptographische Hash-Funktionen
●
Public-Key-Signaturen
■
Verteilte Mechanismen
●
Schwellwert-Signaturen
●
Verteilt generierte Zufallszahlen
■
7
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
Reproduzierbare Abbildung von Nachrichten beliebiger
Länge auf ein Wort fester Länge
●
Nachricht m beliebig
●
Hash-Wert h = H(m) daraus berechenbar, z.B. 128 bit
Kryptographisch „sichere“ Hashfunktionen
●
■
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
6
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
Kryptographische Grundlagen
■
D.h. falls N > 5 M gilt, folgt folgendes:
statt „Mehrheit der Knoten“:
Mehrheit der korrekten Knoten, d.h. mehr als (N+M)/2 Knoten
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
●
■
Es ist mit vertretbaren Aufwand nicht möglich, zwei
Nachrichten m1, m2 zu finden mit H(m1)=H(m2)
Beispiele
●
MD5
●
SHA-1
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
8
Klassische Hash-Funktionen
■
Klassische Public-Key-Verfahren
Anwendung: Digitale Signaturen
●
●
s
Begriffe
Anstelle eine digitale Signatur über eine komplette Nachricht:
Signatur nur über den Hash-Wert
PK: öffentlicher Schlüssel (Public Key), zur Verifikation
SK: geheimer Schlüssel (Private Key/Secret Key), zur Signierung
σ: Signatur
Sicheren Hash-Funktionen:
Angreifer kann mit vertretbaren Aufwand keine zweite
Nachricht konstruieren, die den selben Hashwert hat
(und damit die gleiche gültige Signatur besitzen würde)
Operationen
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
9
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
Schlüsselerzeugung:
Signierung:
Verifikation:
■
RSA: Signatur-Erzeugung (für Nachricht m)
●
Wähle zwei geeignete Primzahlen p, q
●
H(m) ist kryptographische Hash-Funktion über Nachricht m
●
n = p * q; φ(n) = (p-1)(q-1)
●
s = H(m)e mod n
●
Wähle e mit 1 < e < φ(n) und ggT(e, φ(n)) = 1
●
Berechne d = e-1 mod φ(n) ( =>
■
e d = 1 mod φ(n) )
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
11
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
Öffentlicher Schlüssel: (e, n); Privater Schlüssel (d, n)
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
10
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
Klassische Public-Key-Verfahren
Beispiel RSA: Schlüsselerzeugung
●
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
-> (PK, SK)
-> σ
-> {true, false}
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
Klassische Public-Key-Verfahren
■
Parameter
Nachricht, SK
Nachricht, σ, PK
Signatur-Überprüfung
●
h = sd mod n
●
Teste ob h == H(m) ist
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
12
Klassische Public-Key-Verfahren
■
Verteilte Kryptographie
RSA: Begründung der Korrektheit
●
■
Zu zeigen ist, dass (xe)d = x (mod n)
Voraussetzung: n=pq; ggT(e,φ(n))=1; ed = 1 mod φ(n)
●
ggT(e,φ(n))=1 => es gibt ein u mit e d - u φ(n) = 1
■
Klassische kryptographische Verfahren
●
Kryptographische Hash-Funktionen
●
Public-Key-Signaturen
Verteilte Mechanismen
(Erweiterter Euklidischer Algorithmus)
●
(xe)d = xu φ(n) + 1 = xu φ(n) x = x (mod n)
- Für ggT(x,n)=1: Folge aus Satz von Euler (1760)
●
Schwellwert-Signaturen
●
Verteilt generierte Zufallszahlen
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
13
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
- Ansonsten: p | x oder q | x;
Betrachtung der Kongruenz mod p und mod q, dann CRT
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
Verteilte Schwellwert-Signaturen
Verteilte Schwellwert-Signaturen
■
N Knoten
(max. M fehlerhaft)
Sicherheitsanforderungen
●
Ein Angreifer kann nicht erreichen, dass K gültige
Teilsignaturen erzeugt werden, aus denen durch den
Kombinationsalgorithmus keine gültige Signatur entsteht
●
Ein Angreifer kann keine gültige Signatur erzeugen, falls
weniger als K-M ehrliche Knoten eine Teilsignatur erzeugt
haben
K Teilsignaturen
Kombinationsalgorithmus
gültige Signatur s
Randbedingung
N-M ≥ K > M
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
15
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
■
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
14
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
Anforderung an den Kombinationsalgorithmus
●
Ergebnis ist eine einfach zu überprüfende Gesamtsignatur
●
Hier betrachtetes Verfahren: gewöhnliche RSA-Signatur
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
16
Verteilte Schwellwert-Signaturen
Grundlage: Polynom-Interpolation
●
Ein Polynom f von Grad K- 1 ist durch K Stützstellen eindeutig
definiert
●
Interpolationsformel (Lagrange)
f( x) =
∑
s∈S
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
■
f(s) ⋅ λs(x)
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
17
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
m
= m
∑
= m
s∈S
f(s ) ⋅ λs(0)
=
∏
s∈S
(m
f( s)
)
■
λs(0)
=
∏m i
i
Signatur-Share des Teilnehmers i
18
Signatur-Shares müssen sich auf Gültigkeit überprüfen
lassen
Verteilung des Schlüssels muss gelöst werden
– Initiale Erzeugung des geheimen Schlüssel und der Key-Shares
erfordert im beschriebenen Verfahren einen Knoten, der in
jedem Fall vertrauenswürdig sein muss
19
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
– mi := msi
– Angreifer darf nicht in der Lage sein, durch Erzeugung eines
ungültigen Shares die Erzeugung einer gültigen digitalen
Signatur zu behindern
λs(0)
Gesamtsignatur ist aus den Signatur-Shares berechenbar,
die Schlüssel-Shares können geheim bleiben
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
Schlüssel-Share für Teilnehmer i
Zusätzliche Randbedingungen
●
●
RSA-Secret-Key
– si := f(i)
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
●
f(0 )
– d = f(0)
Verteilte Schwellwert-Signaturen
Polynom-Interpolation: Anwendung auf RSA (2)
d
Verteilung des Sekret Key auf die N Teilnehmer in Form von
Stützstellen eines Polynoms von Grad K
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
Verteilte Schwellwert-Signaturen
■
Polynom-Interpolation: Anwendung auf RSA
●
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
■
Verteilte Schwellwert-Signaturen
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
20
Verteilte Erzeugung von Zufallszahlen
■
ABBA
Basierend auf (N,K,M)-Schwellwert-Signatur
■
Forschungsarbeit bei IBM Research in Zürich
– ABBA: Asynchronous Binary Byzantine Agreement
N Knoten
(max. M fehlerhaft)
– Sintra: Secure INtrusion Tolerant Replication Architecture
K „Shares“
■
Kombinationsalgorithmus
Wert F(x) aus {0, 1}
●
– C. Cachin, K. Kursawe, V. Shoup: Random Oracles in
Constantinople: Practical Asynchronous Byzantine Agreement
using Cryptography. ACM Symposium on Principles of Distributed
Computing, July 2000
Randbedingung
N-M ≥ K > M
F(x) sei eine nicht vorhersehbare Funktion, die einen
beliebigen Eingabewert auf {0, 1} abbildet:
– C. Cachin, K. Kursawe, F. Petzold, V. Shoup: Secure and Efficient
Asynchronous Broadcast Protocols. Proc. Crypto 2001
– Jeder Knoten kann einen „Share“ von F(x) erzeugen
21
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
– C. Cachin, J. Poritz: Secure Intrusion-tolerant Replication on the
Internet. Proc. Intl. Conference on Dependable Systems and
Networks, 2002
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
– K Shares sind notwendig und hinreichend, um den Wert von F(x)
zu ermitteln
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
ABBA: Begriffsdefinitionen
N Knoten (max. M fehlerhaft) mit berechenbarem Verhalten
■
durch probabilistisch polynomiale Berechnungen beschreibbar
■
■
Verwendung von:
●
Verfahren für N Teilnehmer
●
Jeweils K Teilnehmer können gemeinsam Signatur erzeugen
Bis zu M Teilnehmer dürfen sich dabei fehlerhaft verhalten
(N, M+1, M) bzw (N, N-M, M) Schwellwert-Signatur S0 / S
●
●
(N, N-M, M) Schema für verteilte Zufallszahlen
Randbedingungen:
●
Initialisierung erfordert „Trusted Dealer“
Jede Entscheidung hat eindeutige Folgenummer (TID)
Alle Nachrichten sind signiert und „begründet“
Einschränkung der Möglichkeiten eines Angreifers
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
– K>M
(fehlerfreie Knoten müssen beteiligt sein)
– K <= N-M
(Signatur ohne Beteiligung fehlerhafter Knoten!)
Ausprägungen (N = 3 M + 1)
23
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
(N, K, M)-Schwellwert-Signatur:
●
Jeder Knoten Pi hat für eine TID einen Initialwert Vi aus {0,1}
■
22
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
ABBA: Systemmodell
■
Literatur
– (N, N-M, M)-Schema: An jeder Signatur sind N-M Knoten und
somit sicher die Mehrheit der fehlerfreien Knoten beteiligt
– (N, M+1, M)-Schema: An jeder Signatur ist mindestens ein
korrekter Knoten beteiligt
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
24
ABBA: Begriffsdefinitionen
■
ABBA: Garantierte Eigenschaften
(N, K, M)-Schema für verteilte Zufallszahlen
■
Übereinstimmung und Gültigkeit
■
Deadlock-Freiheit: Es wird kein Zustand erreicht, bei dem
●
Verfahren für N Teilnehmer
●
Je K Teilnehmer können gemeinsam Zufallszahl erzeugen
– der Algorithmus in allen korrekten Knoten aktiviert wurde
●
Bis zu M Teilnehmer dürfen sich dabei fehlerhaft verhalten
– der Algorithmus noch nicht terminiert ist
– alle Nachrichten, die von aktivierten korrekten Knoten ausgesendet
wurden, zugestellt und verarbeitet worden sind
Anwendung bei ABBA:
(Sonst würde das System auf den Empfang von Nachrichten warten,
aber kein korrekten Knoten würde Nachrichten aussenden)
(N, N-M, M)-Schema (Zufallszahl kann nur dann ermittelt
werden, wenn die Mehrheit der korrekten Knoten „mithilft“)
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
25
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
ABBA: Der Algorithmus im Detail (1)
■
Schritt 0: r := 1; Jeder sendet PreProcess an alle und
aus Antworten einen signierten Anfangswert
– Sobald 2 M + 1 Nachrichten eingetroffen sind, wird S0-Signatur für
Mehrheitswert (M +1 gleiche Nachrichten) erzeugt und als
Initialwert b für die folgenden Schritte verwendet
Schritt 2: Warte auf N-M PreVote-Nachrichten für Runde r
Anzahl Nachrichten mit gleichem Wert x=v:
alle gleich: sende (Vote, r, v, just.) an alle
ansonsten: sende (Vote, r, ?, just.) an alle
(alle korrekten Knoten mit gleichem Initialwert: Nur dieser Wert S0-signiert!)
■
Schritt 3: Warte auf N - M Nachrichten (Vote, r, v, just.)
(a) Falls >=eine Nachricht mit v ≠ ?: xP = v
(b) Falls alle für v: solche Nachrichten: fertig
(c) sonst: xP über CoinShare gewählt aus {0, 1}
Alle Runden r
– Jeder sendet (PreVote, r, b, justification) an alle mit gültiger
S-Teilsignatur;
justification: Begründung für die Gültigkeit des Werts b:
Schritt 4: r := r + 1; weiter mit Schritt 1
27
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
Nur vor erster Runde: Vorverarbeitungs-Schritt:
– Jeder sendet Initialwert als (PreProcess, b) mit S0 teilsigniert an alle
Schritt 1: Sende (PreVote, r, xP, just) an alle Knoten
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
26
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
ABBA: Überblick über den Algorithmus
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
Schnelle Konvergenz:
– Die Anzahl x der Nachrichten bis zur Einigung ist beschränkt durch
die Wahrscheinlichkeitsaussage P( x > 2 r + 1 ) < 2-r + ε mit ε
vernachlässigbar klein und r=Anzahl der asynchronen „Runden“
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
■
Runde r=1:
Runde r>1:
oder
(PreProcess, b) mit S0-Signatur
(PreVote, r-1, b) mit S-Signatur
(Vote, r-1, abstain) mit S-Signatur, und
Wert b ermittelt durch b := coin(TID, r-1)
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
28
ABBA: Der Algorithmus im Detail (2)
■
ABBA: Korrektheitsüberlegungen
Nach Empfang von N-M gültigen PreVote-Nachrichten:
■
– jeder Knoten erzeugt (Vote, r, b, justification) mit b
aus {0, 1, abstain} und justification als Begründung dafür
– Nachweis der Korrektheit aller Schritte durch Signaturen
– Dadurch Möglichkeiten eines Angreifers stark eingeschränkt
– PreVote sowohl für b=0 als auch b=1: b := abstain;
justification: je ein PreVote mit b=0,1
– Ansonsten: N-M PreVote für einen Wert b;
justification: daraus gewonnene gültige S-Signatur
■
■
– Wenn sich der erste ehrliche Knoten in Runde r entscheidet, dann
entscheiden sich alle ehrlichen Knoten in Runde r oder r+1
– Falls alle Werte gleich: Entscheidung für diesen Wert
N-M main-vote für einen Wert b in Runde r
⇒mindestens N-2M main-vote für b von ehrlichen Knoten in
Runde r
⇒maximal N - (N-2M) = 2M main-vote für abstain, 2M < N-M
⇒kein soft pre-vote in nächster Runde möglich
⇒alle pre-vote in Runde r für den selben Wert b
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
– Aufdeckung von Coin(TID,r) (coin-share an alle senden)
– Falls alle N-M „abstain“-Werte: gültige S-Signatur für abstain
– Ansonsten: mind. ein Wert, als justification: PreVote mit S-Sig.
29
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
– Ansonsten: weiter mit nächster Runde;
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
ABBA: Einbettung in Gesamtarchitektur
Deadlock-Freiheit und schnelle Konvergenz
●
■
Deadlock-Freiheit:
Atomarer Broadcast
– Bei jeder Warteoperation wird auf N-M Nachrichten gewartet.
Diese kommen sicher immer an, weil es in jeden Fall so viele
korrekte Knoten gibt, und jeder korrekte Knoten die erwartete
Nachricht aussendet
Broadcast-Primitive
– Es lässt sich zeigen, dass die Wahrscheinlichkeit, dass sich ein
korrekter Knoten nicht innerhalb 2 r + 1 Runden entscheidet,
nach oben durch 2-r + ε beschränkt ist, mit ε vernachlässigbar
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
ABBA
Threshold-Kryptographie
31
Zuverlässige Punkt-zu-Punkt-Verbindungen
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
Mehrwertige Einigung
Schnelle Konvergenz:
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
SINTRA: Secure Intrusion Tolerant Replication Architecture
Sicherer kausaler atomarer Broadcast
– Es wird vorausgesetzt, dass maximal M Knoten sich fehlerhaft
verhalten dürfen, und die Kommunikation zwischen fehlerfreien
Knoten zuverlässig ist
●
30
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
ABBA: Korrektheitsüberlegungen
■
Entscheidungsfindung
– Nur für einen Wert b aus {0,1} kann es eine erfolgreich S-signierte
pre-vote-Nachricht geben
Nach Empfang von N-M gültigen Vote-Nachrichten:
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
Möglichkeiten des Angreifers
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
32
SINTRA: Broadcast-Primitive
■
ABBA
Zuverlässiger Broadcast: Alle ehrliche Knoten erhalten die
selbe Nachricht, oder gar nichts
●
Der Sender sendet die Nachricht an alle
●
Jeder Knoten sendet ein „Echo“ der Nachricht an alle
●
Sobald
N+M+1
------------------------2
■
„Echo“-Nachrichten oder M + 1 „Fertig“-
Mehrwertige Einigung: Einigung soll nur auf Werte erfolgen,
die tatsächlich von mindestens einem Knoten vorgeschlagen
wurden
●
Jeder Knoten sendet seinen Initialwert als Vorschlag an alle
über den beschriebenen zuverlässigen Broadcast
●
Sobald ein Knoten von N - M Knoten Initialwerte empfangen
hat, führt er folgende Schritte wiederholt aus:
Nachrichten empfangen wurden, sendet ein Knoten „Fertig“Nachrichten an alle
Sobald 2 M + 1 „Fertig“-Nachrichten empfangen wurden,
akzeptiert ein Knoten die Nachricht und liefert diese an die
nächste Schicht aus
– Der Knoten startet ABBA schlägt den Wert 1 genau dann vor,
wenn von Pa ein gültiger Vorschlagswert empfangen wurde
Falls der Sender nicht ehrlich ist, terminiert dieser Algorithmus u.U.
nicht!
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
33
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
●
– In jeder Wiederholung wird nach einem festgelegten Verfahren
ein Kandidat Pa aus der Menge aller Knoten ausgewählt
– Falls die Einigungs auf 0 lautet, erfolgt der nächste
Schleifendurchlauf, ansonsten ist Pa der Einigungswert
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
ABBA
■
ABBA
Atomarer Broadcast
●
Garantie einer totalen Ordnung auf einer Folge von
Nachrichten
●
Umsetzung mit Hilfe der mehrwertigen Einigung
34
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
■
Sicherer kausaler atomarer Broadcast
●
Kausalität erfordert, dass ein Knoten den Inhalt einer
Nachricht erst dann erfährt, wenn feststeht, wann diese
Nachricht an die Empfänger ausgeliefert wird
– Ein bösartiger Knoten soll also nicht in der Lage sein, abhängig
von einer noch nicht ausgelieferten Nachricht eine andere
Nachricht zu erzeugen, die vorher ausgeliefert wird
●
Umsetzung mit Hilfe von Schwellwert-Kryptographie
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
35
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
– Sender verschlüsselt die Nachricht mit Hilfe eines globalen
öffentlichen Schlüssels
– Sobald die Nachricht ausgeliefert werden soll, kann sie von N-M
Knoten gemeinsam entschlüsselt werden
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
36
ABBA
■
Zusammenfassung
●
Praktikable Lösung des Einigungsproblem in einem
asynchronen, probabilistischen Modell
●
Tolerierung von bis zu M Fehlern bei insgesamt N > 3 M
Knoten
●
Schnelle Konvergenz auf den Einigungswert
●
Hierarchische Struktur aus einzelnen modularen Blöcken
– von einfacher, binärer Einigung
– über atomaren Broadcast
Uebung-BenOr-ABBA.fm: 13.12.05 13:39
– bis hin zu sicheren kausalen atomaren Broadcast
Algorithmen für Verteilte Systeme (AVS), WS 2005/06
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm
37