Tutamen: A Next-Generation Secret-Storage System Andy Sayler, - - PowerPoint PPT Presentation

tutamen a next generation secret storage system
SMART_READER_LITE
LIVE PREVIEW

Tutamen: A Next-Generation Secret-Storage System Andy Sayler, - - PowerPoint PPT Presentation

Tutamen: A Next-Generation Secret-Storage System Andy Sayler, Taylor Andrews, Matt Monaco, and Dirk Grunwald Presented by Andy Sayler SoCC 2016 10/06/16 SFg5asknmc6e SFg5asknmc6e SFg5asknmc6e DTrump GreatPassword Secrets SFg5asknmc6e


slide-1
SLIDE 1

Tutamen: A Next-Generation Secret-Storage System

Andy Sayler, Taylor Andrews, Matt Monaco, and Dirk Grunwald

Presented by Andy Sayler

SoCC 2016 10/06/16

slide-2
SLIDE 2
slide-3
SLIDE 3
slide-4
SLIDE 4
slide-5
SLIDE 5
slide-6
SLIDE 6

SFg5asknmc6e

slide-7
SLIDE 7

SFg5asknmc6e

slide-8
SLIDE 8

SFg5asknmc6e

DTrump GreatPassword

slide-9
SLIDE 9

SFg5asknmc6e

DTrump GreatPassword

Secrets

slide-10
SLIDE 10

Modern Use Cases

slide-11
SLIDE 11

Multi-Device Access

slide-12
SLIDE 12

Multi-User Sharing

slide-13
SLIDE 13

Cloud Infrastructure

slide-14
SLIDE 14

Secret-Storage Problem

slide-15
SLIDE 15

How do we store and protect secrets while also supporting a range of modern use cases?

Secret-Storage Problem

slide-16
SLIDE 16

Secret-Storage as a Service

slide-17
SLIDE 17
slide-18
SLIDE 18

Storage

slide-19
SLIDE 19

Storage Access Control

slide-20
SLIDE 20

Storage Access Control Auditing

slide-21
SLIDE 21
slide-22
SLIDE 22
slide-23
SLIDE 23
  • Requires single (semi-)trusted third party
  • Not designed for automated use cases
slide-24
SLIDE 24
  • Requires single (semi-)trusted third party
  • Not designed for automated use cases
slide-25
SLIDE 25
  • Lacks support for out-of-band approval
  • Designed for single administrative domain
  • Requires single (semi-)trusted third party
  • Not designed for automated use cases
slide-26
SLIDE 26

Tutamen:

Next-Gen Secret-Storage

slide-27
SLIDE 27

Goals

slide-28
SLIDE 28

Flexible Authentication

Plugins for Multi-factor, Out-of-Band, Etc Auth

slide-29
SLIDE 29

Flexible Authentication Minimally Trusted Infrastructure

Plugins for Multi-factor, Out-of-Band, Etc Auth Sharding Across Multiple Servers

slide-30
SLIDE 30

Flexible Authentication Minimally Trusted Infrastructure Beyond a Single Administrative Domain

Plugins for Multi-factor, Out-of-Band, Etc Auth Sharding Across Multiple Servers Distributed Federation Between Servers

slide-31
SLIDE 31

Architecture

slide-32
SLIDE 32
slide-33
SLIDE 33

Storage Server

slide-34
SLIDE 34

Storage Server Access Control Server

slide-35
SLIDE 35

Application Storage Server Access Control Server

slide-36
SLIDE 36

Application Storage Server Access Control Server

Client

slide-37
SLIDE 37

Mutual TLS Application Storage Server Access Control Server

Token Request Token Response Client

slide-38
SLIDE 38

Mutual TLS TLS w/ Token Application Storage Server Access Control Server

Token Request Token Response S t

  • r

e S e c r e t Fetch Secret Client

slide-39
SLIDE 39

Mutual TLS TLS w/ Token Application Storage Server Access Control Server

Client Public Token Signing Key Token Request Token Response S t

  • r

e S e c r e t Fetch Secret

slide-40
SLIDE 40
slide-41
SLIDE 41

Storage Server

slide-42
SLIDE 42

Storage Server Collection

slide-43
SLIDE 43

Storage Server Collection

Secret

slide-44
SLIDE 44

Storage Server Collection

AC Srv URL AC Srv URL AC Srv URL Secret

slide-45
SLIDE 45

Storage Server Collection

AC Srv URL AC Srv URL AC Srv URL Secret # AC Srv Required

slide-46
SLIDE 46
slide-47
SLIDE 47

Access Control Server

slide-48
SLIDE 48

Access Control Server Account

slide-49
SLIDE 49

Access Control Server Account

Client

slide-50
SLIDE 50

Access Control Server Authenticator Account

Client

slide-51
SLIDE 51

Access Control Server Authenticator Verifier Account

Client

slide-52
SLIDE 52

Access Control Server Authenticator Verifier

Account ID Account ID Account ID

Account

Client

slide-53
SLIDE 53

Access Control Server Authenticator Verifier

Account ID Account ID Account ID Authenticator ID Authenticator ID Authenticator ID

Account

Client

slide-54
SLIDE 54

Access Control Server Authenticator Verifier

Account ID Account ID Account ID Authenticator ID Authenticator ID Authenticator ID

Permissions

Object Type Object ID

Account

Client Permission Name

slide-55
SLIDE 55

Access Control Server Authenticator Verifier

Account ID Account ID Account ID Authenticator ID Authenticator ID Authenticator ID

Permissions

Object Type Object ID Permission Name Verifier ID Verifier ID Verifier ID

Account

Client

slide-56
SLIDE 56

Why Place Trust In Single Servers?

slide-57
SLIDE 57

Multi-Server Operation

slide-58
SLIDE 58
slide-59
SLIDE 59

AC Server A AC Server B

slide-60
SLIDE 60

Storage Server A AC Server A Storage Server B Storage Server C AC Server B

slide-61
SLIDE 61

Application Storage Server A AC Server A Storage Server B Storage Server C AC Server B

slide-62
SLIDE 62

Application Storage Server A AC Server A Storage Server B Storage Server C AC Server B

T

  • k

e n s

slide-63
SLIDE 63

Application Storage Server A AC Server A Storage Server B Storage Server C AC Server B

Public Signing Keys Tokens Shard

slide-64
SLIDE 64

Application Storage Server A AC Server A Storage Server B Storage Server C AC Server B

T

  • k

e n s S h a r d Public Signing Keys

slide-65
SLIDE 65

Application Storage Server A AC Server A Storage Server B Storage Server C AC Server B

Tokens Shard Public Signing Keys

slide-66
SLIDE 66

Application Storage Server A AC Server A Storage Server B Storage Server C AC Server B

Secret

slide-67
SLIDE 67

Secret Retrieval

slide-68
SLIDE 68

Secret Retrieval

w/ Out of Band Human-in-the-Loop

slide-69
SLIDE 69
slide-70
SLIDE 70

Permissions for Collection cf3529eb13be: { read: [ Verifier a74b2e2d493d ] }

slide-71
SLIDE 71

Permissions for Collection cf3529eb13be: { read: [ Verifier a74b2e2d493d ] } Verifier a74b2e2d493d { Accounts: [ Account cceb832edcdb ] } Authenticators: [ Authenticator 34e85e1bb264 ] }

slide-72
SLIDE 72

Permissions for Collection cf3529eb13be: { read: [ Verifier a74b2e2d493d ] } Verifier a74b2e2d493d { Accounts: [ Account cceb832edcdb ] } Authenticators: [ Authenticator 34e85e1bb264 ] } Authenticator 34e85e1bb264 { Plugin: SMS Challenge/Response }

slide-73
SLIDE 73

Account ACS A ACS B T i m e SS A SS B SS C Human

slide-74
SLIDE 74

Account ACS A ACS B

  • 1. Request

Collection read-sec Tokens

T i m e SS A SS B SS C Human

slide-75
SLIDE 75

Account ACS A ACS B

  • 1. Request

Collection read-sec Tokens

T i m e SS A SS B SS C

<“col”, ”read-sec”, uuid>

Human

slide-76
SLIDE 76

Account ACS A ACS B

  • 1. Request

Collection read-sec Tokens

T i m e SS A SS B SS C

<“col”, ”read-sec”, uuid>

Human

1b. Confirm via SMS

slide-77
SLIDE 77

Account ACS A ACS B

  • 1. Request

Collection read-sec Tokens <SMS challenge>

T i m e SS A SS B SS C

<“col”, ”read-sec”, uuid>

Human

1b. Confirm via SMS

slide-78
SLIDE 78

Account ACS A ACS B

  • 1. Request

Collection read-sec Tokens <SMS challenge>

T i m e SS A SS B SS C

<“col”, ”read-sec”, uuid>

Human

1b. Confirm via SMS <SMS reply>

slide-79
SLIDE 79

Account ACS A ACS B

  • 1. Request

Collection read-sec Tokens

T i m e SS A SS B SS C

<“col”, ”read-sec”, uuid> <tokens> <SMS challenge>

Human

1b. Confirm via SMS <SMS reply>

slide-80
SLIDE 80

Account ACS A ACS B

  • 1. Request

Collection read-sec Tokens

T i m e SS A SS B SS C

  • 2. Read Secret

from Collection <“col”, ”read-sec”, uuid> <tokens> <SMS challenge>

Human

1b. Confirm via SMS <SMS reply>

slide-81
SLIDE 81

Account ACS A ACS B

  • 1. Request

Collection read-sec Tokens

T i m e SS A SS B SS C

<tokens, uuid>

  • 2. Read Secret

from Collection <“col”, ”read-sec”, uuid> <tokens> <SMS challenge>

Human

1b. Confirm via SMS <SMS reply>

slide-82
SLIDE 82

Account ACS A ACS B

  • 1. Request

Collection read-sec Tokens

T i m e SS A SS B SS C

<secret shards> <tokens, uuid>

  • 2. Read Secret

from Collection <“col”, ”read-sec”, uuid> <tokens> <SMS challenge>

Human

1b. Confirm via SMS <SMS reply>

slide-83
SLIDE 83

Applications

slide-84
SLIDE 84

Fusebox: Tutamen-backed Dropbox Client

Implementation by Taylor Andrews

slide-85
SLIDE 85
slide-86
SLIDE 86
slide-87
SLIDE 87
slide-88
SLIDE 88
slide-89
SLIDE 89
slide-90
SLIDE 90
slide-91
SLIDE 91
slide-92
SLIDE 92

Tutamen-backed dm-crypt/LUKS FDE

Implementation by Matt Monaco

slide-93
SLIDE 93
slide-94
SLIDE 94
slide-95
SLIDE 95

1.2.3.4/24

slide-96
SLIDE 96

SMS Challenge

slide-97
SLIDE 97

1.2.3.4/24 SMS Challenge

slide-98
SLIDE 98

1.2.3.4/24 SMS Challenge

slide-99
SLIDE 99

1.2.3.4/24

✓ ✓

SMS Challenge

slide-100
SLIDE 100

1.2.3.4/24

✓ ✓

SMS Challenge

slide-101
SLIDE 101

1.2.3.4/24

✓ ✓

SMS Challenge

slide-102
SLIDE 102

Evaluation

slide-103
SLIDE 103

Useful Across a Range of Applications

slide-104
SLIDE 104

Access Control Server - Get Token

slide-105
SLIDE 105

Storage Server - Fetch Secret

slide-106
SLIDE 106

Conclusion

slide-107
SLIDE 107

Next-Generation Secret Storage as a Service

slide-108
SLIDE 108

Tutamen

Next-Generation Secret Storage as a Service

slide-109
SLIDE 109

Flexible Authentication Minimally Trusted Infrastructure Beyond a Single Administrative Domain

Plugins for Multi-factor, Out-of-Band, Etc Auth Sharding Across Multiple Servers Distributed Federation Between Servers

slide-110
SLIDE 110

Thank You

slide-111
SLIDE 111

Questions?

slide-112
SLIDE 112

Extra Slides

slide-113
SLIDE 113

How can we secure and control our data?

(even in the presence third parties) (while also supporting modern use cases)

slide-114
SLIDE 114

Client-Side Encryption?

slide-115
SLIDE 115

“My Data”

slide-116
SLIDE 116

Cryptography!

slide-117
SLIDE 117

“My Data”

slide-118
SLIDE 118

TXkgU2VjcmV0 “My Data” Encrypt

slide-119
SLIDE 119

TXkgU2VjcmV0 “My Data” Encrypt

slide-120
SLIDE 120

TXkgU2VjcmV0 “My Data” Encrypt Decrypt

slide-121
SLIDE 121

Cryptography!

slide-122
SLIDE 122

Cryptography!

+ - * / ^

slide-123
SLIDE 123

TXkgU2VjcmV0 “My Data” Encrypt Decrypt

slide-124
SLIDE 124

TXkgU2VjcmV0 “My Data” Encrypt Decrypt

slide-125
SLIDE 125

TXkgU2VjcmV0 “My Data” Encrypt Decrypt

? ?

slide-126
SLIDE 126

TXkgU2VjcmV0 “My Data” Encrypt Decrypt

slide-127
SLIDE 127

Tutamen-backed QEMU VM Encryption

slide-128
SLIDE 128

1.2.3.4/24

✓ ✓

SMS Challenge

slide-129
SLIDE 129

Tutamen Management Utility

slide-130
SLIDE 130
slide-131
SLIDE 131
slide-132
SLIDE 132
slide-133
SLIDE 133
slide-134
SLIDE 134

Traditional Trust Model

Feature Provider

User Data Unrestricted Access Full Trust Features

slide-135
SLIDE 135

Traditional Trust Model

Feature Provider

User Data Unrestricted Access Full Trust Features

Storage (S) Access (R) Manipulation (W) Meta-Analysis (M)

slide-136
SLIDE 136

SSaaS Trust Model

Feature Provider

Encrypted User Data Controlled Access by Proxy Minimal Trust Features

Secret Storage Provider

Secrets Controlled Access

slide-137
SLIDE 137

SSaaS Trust Model

Feature Provider

Encrypted User Data Controlled Access by Proxy Minimal Trust Features

Storage (S) Access (R) Manipulation (W) Meta-Analysis (M)

slide-138
SLIDE 138

SSaaS Trust Model

Minimal Trust

Secret Storage Provider

Secrets

Storage (S) Access (R) Manipulation (W) Meta-Analysis (M)

slide-139
SLIDE 139

SSaaS Trust Model

Feature Provider

Encrypted User Data Controlled Access by Proxy Minimal Trust Features

Secret Storage Provider

Secrets Controlled Access

Storage (S) Access (R) Manipulation (W) Meta-Analysis (M)

slide-140
SLIDE 140

SSaaS Trust Model

Feature Provider

Encrypted User Data Controlled Access by Proxy Minimal Trust Features

Secret Storage Providers

Secret Shard Controlled Access

Storage (S) Access (R) Manipulation (W) Meta-Analysis (M)

Controlled Access Secret Shard

slide-141
SLIDE 141

SSaaS Security & Trust

slide-142
SLIDE 142

Single SSP

slide-143
SLIDE 143

Client Application Private Key

slide-144
SLIDE 144

SSP

Key Store Client Application Private Key

slide-145
SLIDE 145

SSP

Key Store Client Application Private Key

slide-146
SLIDE 146

Should we trust a single provider?

slide-147
SLIDE 147

Maybe

slide-148
SLIDE 148

Incentives aligned with upholding trust Reputation at stake Still a “minimally trusted” entity

slide-149
SLIDE 149

Incentives aligned with upholding trust Reputation at stake Still a “minimally trusted” entity

slide-150
SLIDE 150

Incentives aligned with upholding trust Reputation at stake Still a “minimally trusted” entity

slide-151
SLIDE 151

Must we trust a single provider?

slide-152
SLIDE 152

No

slide-153
SLIDE 153

Multiple SSPs

slide-154
SLIDE 154

Client Application Private Secret

slide-155
SLIDE 155

Client Application

slide-156
SLIDE 156

Secret Store

SSP A

Client Application

slide-157
SLIDE 157

SSP B

Secret Store

SSP A

Secret Store Client Application

slide-158
SLIDE 158

SSP C SSP B

Secret Store

SSP A

Secret Store Secret Store Client Application

slide-159
SLIDE 159

SSP D SSP C SSP B

Secret Store

SSP A

Secret Store Secret Store Secret Store Client Application

slide-160
SLIDE 160

SSP D SSP C SSP B

Secret Store

SSP A

Secret Store Secret Store Secret Store Client Application Attacker

slide-161
SLIDE 161

SSP D SSP C SSP B

Secret Store

SSP A

Secret Store Secret Store Secret Store Client Application Attacker

?

slide-162
SLIDE 162

Storage Applications

slide-163
SLIDE 163

Cloud Storage Provider

SSP API Storage API Storage Server Encryption + Verification Engine File Browser VFS File Locker

Enc File Enc File Enc File

User Laptop

Secret Server

Key Key

Secret Storage Provider

Key

slide-164
SLIDE 164

Secret Server

Key

Cloud Storage Provider

SSP API Storage API Storage Server Encryption + Verification Engine File Browser VFS File Locker

Enc File Enc File Enc File

User Laptop

Key

Secret Storage Provider

SSP API Storage API Encryption + Verification Engine File Browser VFS File Locker

Desktop

Key

slide-165
SLIDE 165

Communication Applications

slide-166
SLIDE 166

Sender’s SSP Sender

Msg Key ...

Recipient A

Cleartext Msg

SSP API SMTP Mail Client SSP API SMTP Mail Client

Cleartext Msg Encrypted Msg Rules Encryption Key Key

slide-167
SLIDE 167

Sender’s SSP Sender

Msg Key ...

Recipient A

Cleartext Msg

SSP API SMTP Mail Client SSP API SMTP Mail Client

Cleartext Msg

Recipient B

Cleartext Msg

SSP API SMTP Mail Client

Encrypted Msg Rules Encryption Key Key

slide-168
SLIDE 168

Personal Data Repository

slide-169
SLIDE 169

SSP API E-Commerce App

Web Storefront SSP A User

SSN Shard A CC # Shard A

Order 1234

Payment Info Shipping Info

SSP B

SSN Shard B CC # Shard B Access Control Rules User Data User Data

slide-170
SLIDE 170

SSP API E-Commerce App

Web Storefront SSP A User

SSN Shard A CC # Shard A

Order 1234

Payment Info Shipping Info

SSP B

SSN Shard B CC # Shard B Access Control Rules User Data User Data

Banking App

Bank

Account

Deposit Info Tax Info

SSP API

slide-171
SLIDE 171

Authentication Applications

slide-172
SLIDE 172

Secret Server

Remote System

SSP API SSH Server Key Engine SSH Client Socket SSH Agent

User A Public Key

User A Laptop Secret Storage Provider

User A Private Key User B Public Key ... ...

slide-173
SLIDE 173

Secret Server

Remote System

SSP API SSH Server Key Engine SSH Client Socket SSH Agent

User A Public Key

User A Laptop Secret Storage Provider

User A Private Key User B Public Key ... ...

SSP API Key Engine SSH Client Socket SSH Agent

Desktop

slide-174
SLIDE 174

Crypto Processing Applications

slide-175
SLIDE 175

Secret Server

User

PKCS11 Web Browser httpd HTTPS Server

Web Server

Private Key

SSP

SSP API Crypto Engine PKCS11 Server

Crypto Processor

Public Key

SSL PKCS11

...

slide-176
SLIDE 176

Management Server

slide-177
SLIDE 177

SSP Management Interface

SSP API

User Secret Server

SSP

Web Browser

HTTPS OU Query Enc Key Enc Key ACS ACS

Management Server

slide-178
SLIDE 178

SSH Server Key Management

slide-179
SLIDE 179

SSH

VM Instance A

SSH User

SSH Login

Destroy

VM Instance A

SSP API

VM Instance B

SSH Users Re-create User

Server Verification SSH Login Server Verification

SSP

Key Access

Server SSP API

Key Access

SSP API

slide-180
SLIDE 180

EncFS: Custos-Backed Encrypted File System

slide-181
SLIDE 181

Base Filesystem (ext4) EncFS (fuse)

File (Encrypted) [On Disk] libcustos encrypt decrypt File (Decrypted) [In Memory]

User Custos Server

User’s Computer SSP

write read write read ACS ACS Key Key

slide-182
SLIDE 182

Base Filesystem (Dropbox) EncFS (fuse)

File (Encrypted) [On Disk] libcustos encrypt decrypt File (Decrypted) [In Memory]

User Custos Server

User’s Computer SSP

write read write read Key Key ACS ACS

slide-183
SLIDE 183

Mutual TLS TLS w/ Token Application Storage Server Access Control Server

Client Cert CSR Key Public Signing Key Token Request Token Response S t

  • r

e S e c r e t Fetch Secret

slide-184
SLIDE 184

Storage Server Collection

Col AC Srv Set AC Srv URL AC Srv URL AC Srv URL Secret Secret Data Metadata SS AC Srv Set AC Srv URL AC Srv URL AC Srv URL AC Srv URL Col # AC Srv Required SS # AC Srv Required

slide-185
SLIDE 185

Access Control Server Authenticator

Auth Plugin Plugin Data

Verifier

Account Set Account ID Account ID Account ID Authenticator Set Authenticator ID Authenticator ID Authenticator ID

Permissions

Object Type Object ID Permission Name Verifier Set Verifier ID Verifier ID Verifier ID

Account

Client Cert CSR

slide-186
SLIDE 186

Application ACS A

  • 2. Create

Verifier

ACS B

  • 1. Request

AC Server verifier-create Tokens <tokens> <”ac-server”, ”verifier-create”> <tokens, verif. uuid, [acnts], [auths]> <verif. uuid>

T i m e

<tokens> <”ac-server”, ”perm-create”>

  • 3. Request

AC Server perm-create Tokens

  • 4. Create

Permissions <tokens, verifs, “col.”, col.uuid> <status> <tokens> <“ac-server”, ”col-create”>

  • 5. Request

AC Server col-create Tokens

SS A SS B SS C

slide-187
SLIDE 187

Application ACS A ACS B T i m e SS A SS B SS C

<col. uuid> <tokens, col. uuid>

  • 6. Create

Collection <tokens> <“col”, ”store-sec”, col. uuid>

  • 7. Request

Collection store-sec Tokens <sec. uuid> <tokens, col. uuid, sec. uuid, secret shards>

  • 8. Store Secret

in Collection

slide-188
SLIDE 188

Relative Performance

slide-189
SLIDE 189

Relative Time

slide-190
SLIDE 190

Future Work

slide-191
SLIDE 191

Auditing -> Automation

slide-192
SLIDE 192

Auditing -> Automation Performance

slide-193
SLIDE 193

Auditing -> Automation Performance Additional Client Integrations