From Byzantine-Tolerant to Intrusion-Safe Services Christian - - PowerPoint PPT Presentation
From Byzantine-Tolerant to Intrusion-Safe Services Christian - - PowerPoint PPT Presentation
From Byzantine-Tolerant to Intrusion-Safe Services Christian Cachin IBM Zurich Research Laboratory & LPD, EPFL With Idit Keidar and Alexander Shraer 22 September 2009 Overview BFT services Are f < n/3 faults realistic?
Overview
- BFT services
– Are f < n/3 faults realistic?
- Intrusion-tolerant services
– Provide graceful degradation
- Strong guarantee for f < n/3
- Weak guarantee for n/3 ≤ f ≤ n
...
Byzantine Fault Tolerance
- n servers S1 ... Sn
- f < n/3 server faults
- Replicated state
- Atomic broadcast
- Service tolerates f
faulty servers
S1 S2 Si Sn
...
An appropriate deployment?
Independence
"Many academics will confess to have made the assumption that failures of components are not correlated. This absolutely unrealistic assumption will come back to haunt you in real life (...)." Werner Vogels, CTO Amazon.com, "Life is not a State-Machine", 2006.
A better deployment
Independence against attacks
- Randomize the address space
- Use multiple administrators & trust domains
- Distribute geographically
- Run different operating systems
- Vary physical machines
- Refresh state periodically
Generalized adversaries
- Design protocols for non-threshold adversaries
(with linear secret sharing) [C01]
- Ex. n=16 servers, vary by location and by OS
– Tolerates corruption of one location and one OS Linux Sola- ris IBM AIX MS Win Paris Linux Sola- ris IBM AIX MS Win Zurich Linux Sola- ris IBM AIX MS Win Madrid Linux Sola- ris IBM AIX MS Win London
Tolerates up to 7 faults (instead of only 5 = f < n/3)
Beyond n/3 faulty replicas?
- Asynchronous Byz. consensus: f < n/3 faults
- If assumption violated, then state-of-the-art
BFT systems guarantee no consistency!
- Truly dependable systems offer
graceful degradation to weaker notions.
Intrusion-safe services
- System with n replicas
– BFT replication – Untrusted service emulation (no client-client comm.) – Fail-aware untrusted service (with client interaction)
Application Fail-awareness Untrusted service protocol BFT replication Any service Eventual consistency Weak fork-linearizability Linearizability if f < n/3
Benefits of intrusion-safety (1)
Consistency (lin=linearizability, wfl=weak fork-lin.) Liveness (y=yes, n=no) Untrusted service
f n/3 2n/3 n
lin y n wfl Fail-aware service BFT
f n/3 2n/3 n
lin y n
Benefits of intrusion-safety (2)
Consistency (lin=linearizability, f*=fork* linearizability, wfl=weak fork-lin.) Liveness (y=yes, n=no) BFT2F [LM07]
f n/3 2n/3 n
lin y f* n Untrusted service
f n/3 2n/3 n
lin y n wfl Fail-aware service
Model of untrusted service
Client Client Client
- Clients: C1 ... Cm
– Correct, but may crash – Invoke operations on
server
– Talk to each other
- ccasionally
– Small trusted memory
- Server S
– Normally correct – Sometimes faulty
(untrusted, Byzantine)
Using an [untrusted] service
- Clients interact with service through opera-
tions (request/reply)
- Clients may sign with digital signatures
→ Server cannot forge values → But answer with outdated value ("replay attack") → But send different values to different clients
- First addressed by SUNDR storage system
[MS02, LKMS04]
- Ex. storage service
C1 C3 C1 C1 C2 C3
write(1,x) write(1,u) read(1) → u write(2,v) read(1) → x write(2,w) read(2) → v write(1,t)
[Weak] Fork-linearizability
- Fork-linearizability restricts an untrusted server
and guarantees "forking" linearizable client views
- Protocols to impose fork-linearizability
– Untrusted storage [MS02] – Efficient untrusted storage [CSS07]
- Fork-linearizability contradicts wait-free client
- perations [CSS07]
→ Notion of weak fork-linearizability (w.f.l.) [CKS09] → W.f.l. untrusted storage protocol [CKS09] → W.f.l. untrusted service [unpublished]
Fork-linearizability
w(1,x) w(2,v) w(1,u) r(1) x → w(2,w) r(2) v → r(1) u → w(1,t)
C1 C1 C2 C3
write(1,x) write(1,u) read(1) → u write(2,v) read(1) → x write(2,w) read(2) → v write(1,t)
View of C1 View of C3 View of C2
Conclusion
- Diversity is important for BFT
- Beyond BFT, we need graceful degradation
– BFT2F for f < 2n/3 – Novel modular intrusion-safe service protocol
achieves for f ≤ n
References
- C. Cachin, a. shelat, A. Shraer. Efficient fork-linearizable
access to untrusted shared memory. PODC 2007.
- C. Cachin, M. Geisler. Integrity Protection for Revision
- Control. ACNS 2009.
- C. Cachin, I. Keidar, A. Shraer. Fail-aware untrusted storage.
DSN 2009.
- C. Cachin, I. Keidar, A. Shraer. Fork sequential consistency
is blocking. Information Processing Letters, vol. 109, 2009.
- C. Cachin, I. Keidar, A. Shraer. Fail-aware untrusted
- services. In progress.