Transparency Overlays and Applications Melissa Chase (Microsoft - - PowerPoint PPT Presentation
Transparency Overlays and Applications Melissa Chase (Microsoft - - PowerPoint PPT Presentation
Transparency Overlays and Applications Melissa Chase (Microsoft Research Redmond) Sarah Meiklejohn (University College London) 2 (icons by parkjisun from noun project) 2 (icons by parkjisun from noun project) 2 (icons by parkjisun from noun
2
(icons by parkjisun from noun project)
2
(icons by parkjisun from noun project)
2
(icons by parkjisun from noun project)
2
(icons by parkjisun from noun project)
2
(icons by parkjisun from noun project)
2
(icons by parkjisun from noun project)
2
(icons by parkjisun from noun project)
2
(icons by parkjisun from noun project)
2
(icons by parkjisun from noun project)
2
(icons by parkjisun from noun project)
2
(icons by parkjisun from noun project)
2
(icons by parkjisun from noun project)
? ? ? ?
2
(icons by parkjisun from noun project)
advertisers doctors spy agencies credit raters marketers insurance companies hackers
? ? ? ? ? ? ? ?
3
3
events in the system can be
- data access by user
- data access by third party
- data creation by user
3
events in the system can be
- data access by user
- data access by third party
- data creation by user
transparency: bad events are exposed
4
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
a transparency overlay
(architecture very much inspired by Certificate Transparency [LL’13])
4
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence design
a transparency overlay
(architecture very much inspired by Certificate Transparency [LL’13])
4
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence design security
a transparency overlay
(architecture very much inspired by Certificate Transparency [LL’13])
4
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence design security
a transparency overlay
(architecture very much inspired by Certificate Transparency [LL’13]) construction
4
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence design security which systems?
a transparency overlay
(architecture very much inspired by Certificate Transparency [LL’13]) construction
4
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence design security which systems?
a transparency overlay
design (architecture very much inspired by Certificate Transparency [LL’13]) construction
5
system
design
5
system log server
log
log server
log
log server
log
log server
log
design
5
system log server
log
design
5
system GenEventSet log server
log
design
5
system Log GenEventSet log server
log
design
6
auditors (efficiently) determine if events are in the log
system Log CheckEntry GenEventSet (meaning |snap| ≪ |log|) auditor snap log server
log
7
monitors (inefficiently) detect bad events in the log
system Log CheckEntry GenEventSet Inspect log server
log
auditor snap monitor
snap BE E
(meaning |E| ≈ |log|)
8
auditors and monitors ensure consistent view of log
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence (can output evidence of inconsistencies)
9
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence design security which systems? (add LS,Au,Mo) design construction
9
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence design security which systems? security (add LS,Au,Mo) construction
10
system Log CheckEntry GenEventSet Inspect Gossip evidence
consistency
log server
log
monitor
snap BE E
auditor snap CheckEvidence
10
CheckEntry Inspect Gossip evidence
consistency
monitor
snap BE E
auditor snap CheckEvidence
10
CheckEntry Inspect Gossip evidence
consistency
adversary wins if (1) evidence fails even though (2) monitor and auditor did have inconsistent view there exists event that auditor thinks is in the log but monitor doesn’t monitor
snap BE E
auditor snap CheckEvidence
11
system Log CheckEntry GenEventSet Inspect Gossip evidence
non-frameability (related to [DGHS’16])
log server
log
monitor
snap BE E
auditor snap CheckEvidence
11
Log CheckEntry Inspect evidence
non-frameability (related to [DGHS’16])
adversary wins if evidence passes log server
log
CheckEvidence
12
system Log CheckEntry GenEventSet Inspect Gossip evidence
accountability
log server
log
monitor
snap BE E
auditor snap CheckEvidence
12
system Log CheckEntry GenEventSet Inspect Gossip evidence
accountability
adversary wins if (1) it promised to include an event that (2) auditor and monitor believe to not be in the log, but (3) evidence fails monitor
snap BE E
auditor snap CheckEvidence
13
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence design security construction which systems? security (add LS,Au,Mo) (consistency) (non-frameability) (accountability)
13
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence design security construction which systems? (add LS,Au,Mo) (consistency) (non-frameability) construction (accountability)
14
dynamic list commitment (dlc)
(aka tamper-evident log [CW’09]) (aka authenticated data structure [AGT’01,PSTY’13]) (aka rolling hash chain or Merkle tree [M’89])
15
dynamic list commitment (dlc)
system
15
dynamic list commitment (dlc)
system
e1 e2
15
dynamic list commitment (dlc)
Com CheckCom Append basic
system
e1 e2
15
dynamic list commitment (dlc)
Com CheckCom Append basic
system (generate succinct commitment)
e1 e2
15
dynamic list commitment (dlc)
Com CheckCom Append basic
system (generate succinct commitment) (check commitment)
e1 e2
15
dynamic list commitment (dlc)
Com CheckCom Append basic
e1 e2 e3 e4
system (generate succinct commitment) (check commitment) (add new events)
16
dynamic list commitment (dlc)
Com CheckCom Append ProveAppend CheckAppend basic all events?
system
e1 e2
16
dynamic list commitment (dlc)
Com CheckCom Append ProveAppend CheckAppend basic all events?
e1 e2 e3 e4
system (can’t delete events)
17
dynamic list commitment (dlc)
Com CheckCom Append ProveAppend CheckAppend ProveIncl CheckIncl basic all events? specific event?
e1 e2 e3 e4
system (can’t omit events)
18
dynamic list commitment (dlc)
Com CheckCom Append ProveAppend CheckAppend ProveIncl CheckIncl basic all events? specific event?
system
e1 e2 e3 e4
18
dynamic list commitment (dlc)
Com CheckCom Append ProveAppend CheckAppend ProveIncl CheckIncl basic all events? specific event?
system
e1 e2 e3 e4
18
dynamic list commitment (dlc)
Com CheckCom Append ProveAppend CheckAppend ProveIncl CheckIncl basic all events? specific event?
system
e1 e2 e3 e4
this is ordered w.r.t. some notion of time
18
dynamic list commitment (dlc)
Com CheckCom Append ProveAppend CheckAppend ProveIncl CheckIncl basic all events? specific event? DemoInconsistent CheckInconsistent inconsistent?
“your commitment c does not represent the state of my list at time t” system
e1 e2 e3 e4
this is ordered w.r.t. some notion of time
18
dynamic list commitment (dlc)
Com CheckCom Append ProveAppend CheckAppend ProveIncl CheckIncl basic all events? specific event? DemoInconsistent CheckInconsistent inconsistent? DemoNotIncl CheckNotIncl non-inclusion?
“your commitment c does not represent the state of my list at time t” system
e1 e2 e3 e4
this is ordered w.r.t. some notion of time
19
system Log CheckEntry GenEventSet Inspect Gossip evidence
construction
log server
log
monitor
snap BE E
auditor snap CheckEvidence
19
system Log CheckEntry GenEventSet Inspect Gossip evidence
construction
log server
log
monitor
snap BE E
auditor snap CheckEvidence
19
system Log CheckEntry GenEventSet Inspect Gossip evidence
construction
log server
log
monitor
snap BE E
auditor snap CheckEvidence
dlc snap t sig
=
a (timed) signature, so no one can frame LS
19
system Log CheckEntry GenEventSet Inspect Gossip evidence
construction
log server
log
monitor
snap BE E
auditor snap CheckEvidence
dlc snap t sig
=
snap E log =
a (timed) signature, so no one can frame LS
20
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= Sys LS
20
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= Sys LS
event
20
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= Sys LS
event rcpt a (timed) signature, so LS is accountable
20
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= Sys LS
event rcpt check rcpt a (timed) signature, so LS is accountable
20
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= Sys LS
event rcpt update log
- add event to E
- update dlc
- update snap
check rcpt a (timed) signature, so LS is accountable
21
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= LS Sys Auditor
21
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= LS Sys Auditor
event
21
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= LS Sys Auditor
event update?
LS Auditor
21
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= LS Sys Auditor
event update?
LS Auditor
snapA
21
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= LS Sys Auditor
event update?
LS Auditor
snapA ProveAppend
21
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= LS Sys Auditor
event update?
LS Auditor
snapA ProveAppend snapLS,π
21
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= LS Sys Auditor
event update?
LS Auditor
snapA ProveAppend CheckAppend snapLS,π
21
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= LS Sys Auditor
event update?
LS Auditor
snapA ProveAppend CheckAppend snapLS,π event
21
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= LS Sys Auditor
event update?
LS Auditor
snapA ProveAppend CheckAppend snapLS,π event ProveIncl
21
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= LS Sys Auditor
event update?
LS Auditor
snapA ProveAppend CheckAppend snapLS,π event ProveIncl CheckIncl
21
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= LS Sys Auditor
event update?
LS Auditor
snapA ProveAppend CheckAppend snapLS,π event ProveIncl CheckIncl b
22
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= LS Monitor
22
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= LS Monitor
snapM
22
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= LS Monitor
snapM find EΔ (events since snapM)
22
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= LS Monitor
snapM find EΔ (events since snapM) snapLS,EΔ
22
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= LS Monitor
snapM find EΔ (events since snapM) snapLS,EΔ Append(EΔ,dlcM) = dlcLS? use checks to update BE
23
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= Monitor Auditor
23
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= Monitor Auditor
snapM,snapA
23
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= Monitor Auditor
snapM,snapA DemoInconsistent(E,dlcA,tA) π
23
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= Monitor Auditor
snapM,snapA DemoInconsistent(E,dlcA,tA) π b←CheckInconsistent(dlcA,tA,dlcM,π) if b return (snapA,snapM,π)
23
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
snap E log = dlc snap t sig
= Monitor Auditor
snapM,snapA DemoInconsistent(E,dlcA,tA) π b←CheckInconsistent(dlcA,tA,dlcM,π) if b return (snapA,snapM,π) checks that (1) snapshots are signed by LS and (2) π proves inconsistency
24
security
ability to carry out DemoInconsistent, ProveAppend, and ProveIncl ⇒ consistency unforgeability of DemoInconsistent, DemoNotIncl*, and signature scheme ⇒ non-frameability ability to carry out DemoNotIncl* ⇒ accountability
*uses pledged version in which Auditor keeps track of failed events and gossips about them with Monitor to produce new type of evidence
25
goal: bad events are exposed
25
goal: bad events are exposed system receives promises to include events in the log
25
+ auditors determine if these events are in the log
auditor system CheckEntry log server
goal: bad events are exposed system receives promises to include events in the log
25
+ auditors determine if these events are in the log + auditors and monitors ensure consistent view of log
monitor auditor Gossip auditor system CheckEntry log server
goal: bad events are exposed system receives promises to include events in the log
25
+ auditors determine if these events are in the log + auditors and monitors ensure consistent view of log ⇒ (by consistency+accountability) event is in monitor’s view of the log
monitor auditor Gossip auditor system CheckEntry log server
goal: bad events are exposed system receives promises to include events in the log
25
+ auditors determine if these events are in the log + auditors and monitors ensure consistent view of log ⇒ (by consistency+accountability) event is in monitor’s view of the log
monitor auditor Gossip
+ monitors detect bad events in the log ⇒
auditor system CheckEntry log server
goal: bad events are exposed system receives promises to include events in the log
log server monitor Inspect
26
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence design security which systems? (add LS,Au,Mo) (consistency) (non-frameability) (dlc+sig) construction construction (accountability)
26
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence design security which systems? (add LS,Au,Mo) (consistency) (non-frameability) (dlc+sig) which systems? construction (accountability)
27
Log CheckEntry Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
Certificate Transparency
CA client website
bad certificate issuance is exposed ⇒ clients are less likely to accept bad certificates
(icon by parkjisun from noun project)
28
Log CheckEntry Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
Bitcoin
sender receiver miner blockchain
double spending is exposed
28
Log CheckEntry Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
Bitcoin
sender receiver miner blockchain
double spending is exposed … provably!
28
Log CheckEntry Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
Bitcoin
sender receiver miner blockchain
double spending is exposed … provably! sender and receiver don’t need to store blockchain
28
Log CheckEntry Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence
Bitcoin
sender receiver miner blockchain
double spending is exposed … provably! sender and receiver don’t need to store blockchain gives rise to hybrid system with no mining
29
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence design security which systems? (add LS,Au,Mo) (consistency) (non-frameability)
- pen problems
(dlc+sig) construction (accountability) (CT+Bitcoin)
29
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence design security which systems? (add LS,Au,Mo) (consistency) (non-frameability) all parties needed?
- pen problems
(dlc+sig) construction (accountability) (CT+Bitcoin)
29
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence design security which systems? (add LS,Au,Mo) (consistency) (non-frameability) all parties needed? privacy?
- pen problems
(dlc+sig) construction (accountability) (CT+Bitcoin)
29
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence design security which systems? (add LS,Au,Mo) (consistency) (non-frameability) all parties needed? privacy? better?
- pen problems
(dlc+sig) construction (accountability) (CT+Bitcoin)
29
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence design security which systems? (add LS,Au,Mo) (consistency) (non-frameability) all parties needed? privacy?
- thers?
better?
- pen problems
(dlc+sig) construction (accountability) (CT+Bitcoin)
29
system Log CheckEntry GenEventSet Inspect Gossip evidence log server
log
monitor
snap BE E
auditor snap CheckEvidence design security which systems? (add LS,Au,Mo) (consistency) (non-frameability) all parties needed? privacy?
- thers?
better?
Thanks for listening! Full version: eprint.iacr.org/2016/915
- pen problems
(dlc+sig) construction (accountability) (CT+Bitcoin)
30
dynamic list commitment (dlc)
30
dynamic list commitment (dlc)
Com CheckCom Append basic
30
dynamic list commitment (dlc)
Com
e1 e2
CheckCom Append basic
30
dynamic list commitment (dlc)
Com
e1 e2
CheckCom Append
Com( ) = H(e2||H(e1))
e1 e2
basic
30
dynamic list commitment (dlc)
Com
e1 e2
CheckCom Append
Com( ) = H(e2||H(e1))
e1 e2
CheckCom(c, ) = (c = H(e2||H(e1)))
e1 e2
basic
30
dynamic list commitment (dlc)
Com
e1 e2
CheckCom Append
Append( ,c12) = H(e4||(H(e3)||c12))
e3 e4
Com( ) = H(e2||H(e1))
e1 e2
CheckCom(c, ) = (c = H(e2||H(e1)))
e1 e2
basic
30
dynamic list commitment (dlc)
Com
e1 e2
CheckCom Append
Append( ,c12) = H(e4||(H(e3)||c12))
e3 e4 e1 e2 e3 e4
Com( ) = H(e2||H(e1))
e1 e2
CheckCom(c, ) = (c = H(e2||H(e1)))
e1 e2
basic
30
dynamic list commitment (dlc)
Com
e1 e2
CheckCom Append
Append( ,c12) = H(e4||(H(e3)||c12))
e3 e4
ProveAppend CheckAppend
e1 e2 e3 e4
Com( ) = H(e2||H(e1))
e1 e2
CheckCom(c, ) = (c = H(e2||H(e1)))
e1 e2
basic all events?
30
dynamic list commitment (dlc)
Com
e1 e2
CheckCom Append
Append( ,c12) = H(e4||(H(e3)||c12))
e3 e4
ProveAppend CheckAppend
e1 e2 e3 e4
Com( ) = H(e2||H(e1))
e1 e2
CheckCom(c, ) = (c = H(e2||H(e1)))
e1 e2
ProveAppend(c12,c1234, ) = e3 e4
e1 e2 e3 e4
basic all events?
30
dynamic list commitment (dlc)
Com
e1 e2
CheckCom Append
Append( ,c12) = H(e4||(H(e3)||c12))
e3 e4
ProveAppend CheckAppend
e1 e2 e3 e4
CheckAppend(c12,c1234, ) = (c1234 = Append( ,c12))
e3 e4 e3 e4
Com( ) = H(e2||H(e1))
e1 e2
CheckCom(c, ) = (c = H(e2||H(e1)))
e1 e2
ProveAppend(c12,c1234, ) = e3 e4
e1 e2 e3 e4
basic all events?
30
dynamic list commitment (dlc)
Com
e1 e2
CheckCom Append
Append( ,c12) = H(e4||(H(e3)||c12))
e3 e4
ProveAppend CheckAppend ProveIncl CheckIncl
e1 e2 e3 e4
CheckAppend(c12,c1234, ) = (c1234 = Append( ,c12))
e3 e4 e3 e4
Com( ) = H(e2||H(e1))
e1 e2
CheckCom(c, ) = (c = H(e2||H(e1)))
e1 e2
ProveAppend(c12,c1234, ) = e3 e4
e1 e2 e3 e4
basic all events? specific event?
30
dynamic list commitment (dlc)
Com
e1 e2
CheckCom Append
Append( ,c12) = H(e4||(H(e3)||c12))
e3 e4
ProveAppend CheckAppend ProveIncl CheckIncl
e1 e2 e3 e4
CheckAppend(c12,c1234, ) = (c1234 = Append( ,c12))
e3 e4 e3 e4
Com( ) = H(e2||H(e1))
e1 e2
CheckCom(c, ) = (c = H(e2||H(e1)))
e1 e2
ProveAppend(c12,c1234, ) = e3 e4
e1 e2 e3 e4
ProveIncl(c1234,e3, ) = (c12, )
e1 e2 e3 e4 e4
basic all events? specific event?
30