CONIKS (KEY TRANSPARENCY) Slides adapted from Marcela Melara Any - - PowerPoint PPT Presentation

coniks key transparency
SMART_READER_LITE
LIVE PREVIEW

CONIKS (KEY TRANSPARENCY) Slides adapted from Marcela Melara Any - - PowerPoint PPT Presentation

CONIKS (KEY TRANSPARENCY) Slides adapted from Marcela Melara Any scriber for today? Sign up for presentations or scribers The problem of the PKI (Public key infrastructure) A long standing problem has been to distribute public keys


slide-1
SLIDE 1

CONIKS (KEY TRANSPARENCY)

Slides adapted from Marcela Melara

slide-2
SLIDE 2

Any scriber for today?

  • Sign up for presentations or scribers
slide-3
SLIDE 3

The problem of the PKI (Public key infrastructure)

  • A long standing problem has been to distribute public

keys securely in the presence of attackers

  • Use cases:
  • Secure messaging: Alice needs to send an encrypted message to

Bob and needs Bob’s public key to encrypt the message

  • Web surfing and https: when Alice’s browser contacts amazon.com
  • ver https, we need Amazon’s PK
  • Man in the middle attacker can intercept PK and return

incorrect PK

slide-4
SLIDE 4

“Secure” Communication Today

Email Provider foo.com User Alice User Bob

HTTP + SSL/TLS HTTP + SSL/TLS

Certificate Authority

SSL/TLS Certificate: (foo.com, PKf)

slide-5
SLIDE 5

Attack: Hackers

Email Provider foo.com User Alice User Bob

HTTP + SSL/TLS HTTP + SSL/TLS

Certificate Authority

SSL/TLS Certificate: (foo.com, PKf)

slide-6
SLIDE 6

Attack: Disgruntled Employees

Email Provider foo.com User Alice User Bob

HTTP + SSL/TLS HTTP + SSL/TLS

Certificate Authority

SSL/TLS Certificate: (foo.com, PKf)

slide-7
SLIDE 7

Attack: Provider Coercion

Email Provider foo.com User Alice User Bob

HTTP + SSL/TLS HTTP + SSL/TLS

Certificate Authority

SSL/TLS Certificate: (foo.com, PKf)

slide-8
SLIDE 8

CAs are Vulnerable

Email Provider foo.com User Alice User Bob

HTTP + SSL/TLS HTTP + SSL/TLS

Certificate Authority

SSL/TLS Certificate: (foo.com, PKf)

slide-9
SLIDE 9

CAs are Vulnerable

Email Provider foo.com User Alice User Bob

HTTP + SSL/TLS HTTP + SSL/TLS

Certificate Authority

SSL/TLS Certificate: (foo.com, PKf)

Hacker foo.com

“hey, I’m foo.com”

slide-10
SLIDE 10

CAs are Vulnerable

Email Provider foo.com User Alice User Bob

HTTP + SSL/TLS HTTP + SSL/TLS

Certificate Authority

SSL/TLS Certificate: (foo.com, PKf)

Hacker foo.com

Certificate: (foo.com, PKevil)

slide-11
SLIDE 11

Attack: Fraudulent Certificates

Email Provider foo.com User Alice User Bob

HTTP + SSL/TLS HTTP + SSL/TLS

Certificate Authority

SSL/TLS Certificate: (foo.com, PKf)

slide-12
SLIDE 12

Attack: Fraudulent Certificates

Email Provider foo.com User Alice User Bob

HTTP + SSL/TLS HTTP + SSL/TLS

Certificate Authority

SSL/TLS Certificate: (foo.com, PKf)

Hacker foo.com

Certificate: (foo.com, PKevil)

slide-13
SLIDE 13

Need End-to-End Encryption…

Email Provider foo.com User Alice User Bob

E2E Encryption E2E Encryption

… But Key Management is Hard

slide-14
SLIDE 14

Decentralized Key Management

User Alice User Bob

PKAlice: DEF456 PKBob: 123ABC

Manual key exchange

slide-15
SLIDE 15

Decentralized Key Management

User Alice User Bob

Alice trusts PKBob Bob trusts PKAlice

Mutual Endorsement

slide-16
SLIDE 16

Decentralized KM: Pitfalls

User Alice User Bob

PKAlice: DEF456 PKBob: 123ABC

Lost keys

slide-17
SLIDE 17

Decentralized KM: Pitfalls

User Alice User Bob

PKAlice: DEF456 PKBob: 123BAC

Mistakes transferring keys

Should be AB

slide-18
SLIDE 18

PGP Key Servers

Email Provider foo.com User Alice User Bob

E2E Encryption E2E Encryption

PGP Key Server X

PKBob PKAlice

slide-19
SLIDE 19

PGP Key Servers

slide-20
SLIDE 20

Key Signing Parties

slide-21
SLIDE 21

Trusting the Web of Trust

XKCD, Responsible Behavior

slide-22
SLIDE 22

Crux of WoT Issues

[1] A. Whitten and J. D. Tygar. Why Johnny can’t encrypt: a usability evaluation of PGP 5.0. USENIX Security, Aug. 1999 [2] S. Gaw, E. W. Felten, and P. Fernandez-Kelly. Secrecy, flagging, and paranoia: Adoption criteria in encrypted email. CHI, Apr 2006.

  • Decentralized model: people reason about encryption.
  • Studies:
  • Unintuitive and error-prone.
  • Users don’t understand encryption.
  • Leak private information.
slide-23
SLIDE 23

Register (alice → PKA)

Better: Centralized Key Management

Email + Key Provider foo.com User Alice User Bob

1 1 Register (bob → PKB)

slide-24
SLIDE 24

Register (alice → PKA)

Better: Centralized Key Management

Email + Key Provider foo.com User Alice User Bob

1 Look up Alice’s public key: PKA 2 Send message encrypted to PKA, signed by SKB 3 3

slide-25
SLIDE 25

Register (alice → PKA)

Insider Attacks, still.

Email + Key Provider foo.com User Alice User Bob

1 Look up Alice’s public key: PK’

A

2 This isn’t Alice’s real key!

slide-26
SLIDE 26

Insider Attacks, still.

Email + Key Provider foo.com User Alice User Bob

Read message encrypted to PK’

A

4 Send message encrypted to PK’

A ,

signed by SKB 3

slide-27
SLIDE 27

Old Approach: Correct Identities

Alice alice@foo.com

Certificate Name: alice@foo.com PKA: 456DEF Owner: Alice Signed by: CA

Bob’s real-world friend Alice?

slide-28
SLIDE 28

New Approach: Consistent Identities

  • Users expect consistency of online identities.
  • Separate real-world identity from online identity.
  • Certificates make no statement about correctness.
slide-29
SLIDE 29

Consistency

Non-Equivocation No unexpected key changes Key seen by Alice = Key seen by Bob Alice’s key today = Alice’s key yesterday

slide-30
SLIDE 30

Solution: a promising new generation

  • CONIKS
  • An alternative Public Key Infrastructure (PKI)
  • Embedded in Google’s project called Key Transparency or Trillian
  • The key data structure is the Log-backed Verified Map
  • Certificate Transparency
  • Similar technology to Key Transparency but aimed at certificates
  • Currently mandated by Chrome, other browser support coming up
slide-31
SLIDE 31

CONIKS [Melara et al. 2014]

  • End-User Key Management Service.
  • Consistent name-to-key bindings.
  • Verifiable key directories → Untrusted identity providers.
  • Clients verify consistency in-band.

→automated key management

slide-32
SLIDE 32

CONIKS Overview

Untrusted Identity Provider foo.com Client A Client B

User Alice User Bob Register (alice → PKA) 1 1 Register (bob → PKBs)

slide-33
SLIDE 33

CONIKS Overview

Untrusted Identity Provider foo.com Client A Client B

User Alice User Bob Look up the public key for alice: PKA 2 3 Send message encrypted to PKA , signed by SKB 4 Look up public key for bob: PKB, verify signature, decrypt using SKA

slide-34
SLIDE 34

Strawman Design

Untrusted Identity Provider foo.com Client A Client B Client C Client D

N = 4

Validity Checks

O(N) storage per client

Non-equivocation Checks

O(N2) downloads per client

slide-35
SLIDE 35

CONIKS Design

  • Divide time into epochs.
  • Providers generate snapshots of directory.

→ Clients do not check individual bindings.

  • Providers distribute snapshots to other providers.

→ Build publicly verifiable history

  • Non-repudiation: Snapshots are digitally signed.
slide-36
SLIDE 36

Efficient Snapshots

foo.com

ialice: PKAlice H(subL) H(subR) H(subL) H(subR) root H(subL) H(subR) icharlie: PKCharlie iemily: PKEmily igeorge: PKGeorge

slide-37
SLIDE 37

Efficient Snapshots

foo.com

ialice: PKAlice H(subL) H(subR) H(subL) H(subR) root H(subL) H(subR) icharlie: PKCharlie iemily: PKEmily igeorge: PKGeorge 1 1 1

slide-38
SLIDE 38

Checking Consistency

  • Use snapshots to check for consistency.
  • Clients need to ensure bindings are included in snapshots.
  • Lookups: prove inclusion of bindings in directory.
  • Clients check validity, non-equivocation.
  • Providers cross-verify each other for non-equivocation.
slide-39
SLIDE 39

Proving Inclusion: Authentication Paths

foo.com

ialice: PKAlice H(subL) H(subR) H(subL) H(subR) root H(subL) H(subR) icharlie: PKCharlie 1 1

slide-40
SLIDE 40

Proving Inclusion: Authentication Paths

foo.com

ialice: PKAlice H(subL) H(subR) H(subL) H(subR) root

slide-41
SLIDE 41

Checking Non-Equivocation: Snapshot History

H(seed) root0 Snapshot0

  • 1

H(rootprev-1) rootprev Snapshotprev tprev tprev-1 H(rootprev) roott Snapshott t tprev

… Trillian calls this: Log-backed Verified Map

slide-42
SLIDE 42

H(seed) root0 Snapshot0

  • 1

H(rootprev-1) rootprev Snapshotprev tprev tprev-1 H(rootprev) roott Snapshott t tprev

H(root’prev-1) root’prev Snapshot’prev tprev tprev-1 H(root’prev) root’t Snapshot’t t tprev

Checking Non-Equivocation: Snapshot History

The server can try a fork attack, but after fork the provider must maintain these forked hash chains for the rest of time, and not allow clients seeing one branch of the hash chain to communicate with anyone seeing the other branch.

slide-43
SLIDE 43

CONIKS Protocols

  • Registration: New bindings/updated keys.
  • Lookups: Clients check bindings are included in directory.
  • Monitoring: Clients check for validity of bindings.
  • Auditing: Clients & providers check for non-equivocation.
slide-44
SLIDE 44

CONIKS Protocols

  • Registration: New bindings/updated keys.
  • Lookups: Clients check bindings are included in directory.
  • Monitoring: Clients check for validity of bindings.
  • Auditing: Clients & providers check for non-equivocation.
slide-45
SLIDE 45

Register (alice → PKA)

Registration Protocol

Untrusted Identity Provider foo.com Client A Client B

User Alice User Bob 2 Temporary binding = [(alice → PKA) + next epoch], Sig(TB) 3 Generate key pair (PKA, SKA) 1

slide-46
SLIDE 46

CONIKS Protocols

  • Registration: new bindings/updated keys.
  • Lookups: Clients check bindings are included in directory.
  • Monitoring: Clients check for validity of bindings.
  • Auditing: Clients & providers check for non-equivocation.
slide-47
SLIDE 47

Lookups without Inclusion Proofs

Untrusted Identity Provider foo.com Client A Client B

User Alice User Bob

Provider regularly generates and publishes snapshots

Register (alice → PKA)

PKA PKB

Publish new snapshot including PKA

slide-48
SLIDE 48

Lookups without Inclusion Proofs

Untrusted Identity Provider foo.com Client A Client B

User Alice User Bob Look up the public key for alice: PK’

A

This isn’t alice’s real key!

Return Fake Key

slide-49
SLIDE 49

Lookups without Inclusion Proofs

Untrusted Identity Provider foo.com Client A Client B

User Alice User Bob Verify & accept snapshot

No proof fake key is inconsistent with snapshot

PKA PKB

slide-50
SLIDE 50

Lookups without Inclusion Proofs

Untrusted Identity Provider foo.com Client A Client B

User Alice User Bob Read message encrypted to PK’

A

Send message encrypted to PK’

A ,

signed by SKB

Provider can read Bob’s message

slide-51
SLIDE 51

Lookup Protocol

  • Ensures bindings are consistent with snapshots.
  • Prevents malicious providers from publishing fake keys

and not leaving any evidence of the misbehavior.

slide-52
SLIDE 52

Lookup (alice → PKA)

Lookup Protocol

Untrusted Identity Provider foo.com Client A Client B

User Alice User Bob 1 Send proof of inclusion: Authentication path for (alice → PKA) 2 Verify auth. path 3

slide-53
SLIDE 53

CONIKS Protocols

  • Registration: new bindings/updated keys.
  • Lookups: Clients check bindings are included in directory.
  • Monitoring: Clients check for validity of bindings.
  • Auditing: Clients & providers check for non-equivocation.
slide-54
SLIDE 54

Communication without Monitoring

Untrusted Identity Provider foo.com Client A Client B

User Alice User Bob Register (alice → PKA) Look up the public key for alice: PKA

Epoch 1: Key has not Changed

slide-55
SLIDE 55

Untrusted Identity Provider foo.com Client A Client B

User Alice User Bob Send message encrypted to PKA, signed by SKB

Communication without Monitoring

Epoch 1: Provider cannot read Bob’s message

slide-56
SLIDE 56

Communication without Monitoring

Untrusted Identity Provider foo.com Client A Client B

User Alice User Bob Look up the public key for alice: PK’

A

This isn’t Alice’s real key!

Epoch 2: Key has been Changed

slide-57
SLIDE 57

Untrusted Identity Provider foo.com Client A Client B

User Alice User Bob Read message encrypted to PK’

A

Send message encrypted to PK’

A ,

signed by SKB

Communication without Monitoring

Epoch 2: Provider can read Bob’s message

slide-58
SLIDE 58

Monitoring Protocol

  • Ensures public keys do not change unexpectedly.
  • Prevents malicious providers from getting away with

replacing existing keys.

slide-59
SLIDE 59

Lookup (alice → PKA)

Monitoring Protocol

Untrusted Identity Provider foo.com Client A Client B

User Alice User Bob 1 Send (alice → PKA) + authentication path 2 Verify validity of binding & auth. path 3

slide-60
SLIDE 60

CONIKS Protocols

  • Registration: new bindings/updated keys.
  • Lookups: Clients check bindings are included in directory.
  • Monitoring: Clients check for validity of bindings.
  • Auditing: Clients & providers check for non-equivocation.
slide-61
SLIDE 61

Register (bob → PKB)

Communication without Auditing

Untrusted Identity Provider foo.com Client A Client B

User Alice User Bob Register (alice → PKA)

Clients register legitimate Keys

slide-62
SLIDE 62

Communication without Auditing

Untrusted Identity Provider foo.com Client A Client B

User Alice User Bob client B sees PK’

A as

alice’s public key

Provider creates two versions of its Directory

client A sees PK’B as bob’s public key

slide-63
SLIDE 63

Communication without Auditing

Untrusted Identity Provider foo.com Client A Client B

User Alice User Bob

Provider presents two different but valid snapshots

Verify & accept snapshot SA Verify & accept snapshot SB

PKA PK’B

SA

PK’A PKB

SB

slide-64
SLIDE 64

Auditing Protocol

  • Ensures clients have consistent views of directories.
  • Clients query random other providers for snapshots
  • bserved from given provider.
  • Prevents malicious providers from getting away with

publishing inconsistent versions of key directory.

slide-65
SLIDE 65

Verify foo.com’s snapshot history

Auditing Protocol

Untrusted Identity Provider foo.com Client A

User Alice Distribute signed snapshot Verify foo.com’s snapshot history

Untrusted Identity Provider bar.com Client B

1

Untrusted Identity Provider rando.com

1

slide-66
SLIDE 66

Send most recent snapshot Request most recent snapshot

Auditing Protocol

Untrusted Identity Provider foo.com Client A

User Alice

Untrusted Identity Provider bar.com Client B

2

Untrusted Identity Provider rando.com

Verify foo.com’s snapshot history 4 Verify foo.com’s snapshot history Verify foo.com’s snapshot history 1 1 3

slide-67
SLIDE 67

Checking Snapshot History

Valid Match Check signature

  • n snapshot

Compare H(rootprev) of cached and new snapshot rootprev Check passed

slide-68
SLIDE 68

Checking Snapshot History

Fail Not matching Valid Check signature

  • n snapshot

Compare H(rootprev) of cached and new snapshot rootprev

slide-69
SLIDE 69

Request snapshot

  • bserved for foo.com

Request snapshot

  • bserved for foo.com

Auditing Protocol

Untrusted Identity Provider foo.com Client A

User Alice

Untrusted Identity Provider bar.com Client B

5

Untrusted Identity Provider rando.com

Compare observed snapshots for foo.com 6 5

slide-70
SLIDE 70

Privacy problems with this protocol?

  • Auditors see contents of directory
  • Authentication paths reveal other entries in the directory
slide-71
SLIDE 71

Prototype Implementation

  • CONIKS Chat: Secure chat service.
  • Stand-alone provider alongside XMPP server.
  • Supports registration, lookups and basic auditing.
slide-72
SLIDE 72

Server performance

slide-73
SLIDE 73

Client Overheads

  • N ≈ 4 bill. users, n ≈ 2 mill. updates/epoch,

d = 24 epochs/day.

Download Requirements Storage Requirements Lookup (per binding) < 1.4KB 0B Monitoring (epoch) < 800B ~ 300B Monitoring (day) < 20KB ~ 300B Auditing (epoch, per snapshot) ~ 100B ~ 100B Auditing (day, per snapshot) ~ 2.5KB ~ 100B

slide-74
SLIDE 74

Client Overheads

  • N ≈ 4 bill. users, n ≈ 2 mill. updates/epoch,

d = 24 epochs/day.

Download Requirements Storage Requirements Lookup (per binding) < 1.4KB 0B Monitoring (epoch) < 800B ~ 300B Monitoring (day) < 20KB ~ 300B Auditing (epoch, per snapshot) ~ 100B ~ 100B Auditing (day, per snapshot) ~ 2.5KB ~ 100B

slide-75
SLIDE 75

Client Overheads

  • N ≈ 4 bill. users, n ≈ 2 mill. updates/epoch,

d = 24 epochs/day.

Download Requirements Storage Requirements Lookup (per binding) < 1.4KB ~ 300B Monitoring (epoch) < 800B ~ 300B Monitoring (day) < 20KB ~ 300B Auditing (epoch, per snapshot) ~ 100B ~ 100B Auditing (day, per snapshot) ~ 2.5KB ~ 100B

slide-76
SLIDE 76

Client Overheads

  • N ≈ 4 bill. users, n ≈ 2 mill. updates/epoch,

d = 24 epochs/day.

Download Requirements Storage Requirements Lookup (per binding) < 1.4KB ~ 300B Monitoring (epoch) < 800B ~ 300B Monitoring (day) < 20KB ~ 300B Auditing (epoch, per snapshot) ~ 100B ~ 100B Auditing (day, per snapshot) ~ 2.5KB ~ 100B

slide-77
SLIDE 77

CONIKS summary

  • CONIKS is an efficiently verifiable, privacy-preserving key

management service for end-user public keys.

  • End-to-end security can be practical for end-users.
  • Some industry adoption: e.g. Google’s Key Transparency