tutamen a next generation secret storage system
play

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


  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

  2. SFg5asknmc6e

  3. SFg5asknmc6e

  4. SFg5asknmc6e DTrump GreatPassword

  5. Secrets SFg5asknmc6e DTrump GreatPassword

  6. Modern Use Cases

  7. Multi-Device Access

  8. Multi-User Sharing

  9. Cloud Infrastructure

  10. Secret-Storage Problem

  11. Secret-Storage Problem How do we store and protect secrets while also supporting a range of modern use cases?

  12. Secret-Storage as a Service

  13. Storage

  14. Storage Access Control

  15. Storage Access Control Auditing

  16. - Requires single (semi-)trusted third party - Not designed for automated use cases

  17. - Requires single (semi-)trusted third party - Not designed for automated use cases

  18. - Requires single (semi-)trusted third party - Not designed for automated use cases - Lacks support for out-of-band approval - Designed for single administrative domain

  19. Tutamen: Next-Gen Secret-Storage

  20. Goals

  21. Flexible Authentication Plugins for Multi-factor, Out-of-Band, Etc Auth

  22. Flexible Authentication Plugins for Multi-factor, Out-of-Band, Etc Auth Minimally Trusted Infrastructure Sharding Across Multiple Servers

  23. Flexible Authentication Plugins for Multi-factor, Out-of-Band, Etc Auth Minimally Trusted Infrastructure Sharding Across Multiple Servers Beyond a Single Administrative Domain Distributed Federation Between Servers

  24. Architecture

  25. Storage Server

  26. Storage Server Access Control Server

  27. Storage Server Access Control Server Application

  28. Storage Server Access Control Server Client Application

  29. Storage Server Access Control Server Token Request Token Response Mutual TLS Client Application

  30. Storage Server Access Control Server Token Request S t o Token Response r Fetch Secret e TLS w/ Token S Mutual TLS e c r e t Client Application

  31. Storage Server Access Control Server Public Token Signing Token Request Key S t o Token Response r Fetch Secret e TLS w/ Token S Mutual TLS e c r e t Client Application

  32. Storage Server

  33. Collection Storage Server

  34. Collection Storage Server Secret

  35. Collection AC Srv URL Storage Server Secret AC Srv URL AC Srv URL

  36. Collection AC Srv URL # AC Srv Required Storage Server Secret AC Srv URL AC Srv URL

  37. Access Control Server

  38. Access Control Server Account

  39. Access Control Server Account Client

  40. Access Control Server Account Authenticator Client

  41. Access Control Server Account Authenticator Client Verifier

  42. Access Control Server Account Authenticator Client Verifier Account ID Account ID Account ID

  43. Access Control Server Account Authenticator Client Verifier Account ID Authenticator ID Account ID Authenticator ID Account ID Authenticator ID

  44. Access Control Server Account Authenticator Permissions Object Type Client Object ID Permission Name Verifier Account ID Authenticator ID Account ID Authenticator ID Account ID Authenticator ID

  45. Access Control Server Account Authenticator Permissions Object Type Client Object ID Permission Name Verifier Verifier ID Account ID Authenticator ID Verifier ID Account ID Authenticator ID Verifier ID Account ID Authenticator ID

  46. Why Place Trust In Single Servers?

  47. Multi-Server Operation

  48. AC Server A AC Server B

  49. Storage Server A AC Server A Storage Server B AC Server B Storage Server C

  50. Storage Server A AC Server A Storage Server B AC Server B Storage Server C Application

  51. Storage Server A AC Server A Storage Server B s n e k o T AC Server B Storage Server C Application

  52. Storage Server A Public Signing Keys AC Server A Storage Server B Tokens Shard AC Server B Storage Server C Application

  53. Storage Server A Public Signing Keys AC Server A Storage Server B AC Server B T o k Storage Server C e S n h s a r d Application

  54. Storage Server A AC Server A Public Signing Keys Storage Server B AC Server B Storage Server C Tokens Shard Application

  55. Storage Server A AC Server A Storage Server B AC Server B Storage Server C Secret Application

  56. Secret Retrieval

  57. Secret Retrieval w/ Out of Band Human-in-the-Loop

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

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

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

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

  62. Account Human ACS A ACS B SS A SS B SS C 1. Request Collection read-sec e Tokens m i T

  63. Account Human ACS A ACS B SS A SS B SS C <“col”, ”read-sec”, uuid> 1. Request Collection read-sec e Tokens m i T

  64. Account Human ACS A ACS B SS A SS B SS C <“col”, ”read-sec”, uuid> 1. Request 1b. Collection Confirm read-sec via SMS e Tokens m i T

  65. Account Human ACS A ACS B SS A SS B SS C <“col”, ”read-sec”, uuid> <SMS challenge> 1. Request 1b. Collection Confirm read-sec via SMS e Tokens m i T

  66. Account Human ACS A ACS B SS A SS B SS C <“col”, ”read-sec”, uuid> <SMS challenge> 1. Request 1b. Collection Confirm <SMS reply> read-sec via SMS e Tokens m i T

  67. Account Human ACS A ACS B SS A SS B SS C <“col”, ”read-sec”, uuid> <SMS challenge> 1. Request 1b. Collection Confirm <SMS reply> read-sec via SMS e Tokens m i T <tokens>

  68. Account Human ACS A ACS B SS A SS B SS C <“col”, ”read-sec”, uuid> <SMS challenge> 1. Request 1b. Collection Confirm <SMS reply> read-sec via SMS e Tokens m i T <tokens> 2. Read Secret from Collection

  69. Account Human ACS A ACS B SS A SS B SS C <“col”, ”read-sec”, uuid> <SMS challenge> 1. Request 1b. Collection Confirm <SMS reply> read-sec via SMS e Tokens m i T <tokens> <tokens, uuid> 2. Read Secret from Collection

  70. Account Human ACS A ACS B SS A SS B SS C <“col”, ”read-sec”, uuid> <SMS challenge> 1. Request 1b. Collection Confirm <SMS reply> read-sec via SMS e Tokens m i T <tokens> <tokens, uuid> 2. Read Secret <secret shards> from Collection

  71. Applications

  72. Fusebox: Tutamen-backed Dropbox Client Implementation by Taylor Andrews

  73. Tutamen-backed dm-crypt/LUKS FDE Implementation by Matt Monaco

  74. 1.2.3.4/24

  75. SMS Challenge

  76. SMS Challenge 1.2.3.4/24

  77. SMS Challenge 1.2.3.4/24

  78. ✓ SMS Challenge ✓ ✓ 1.2.3.4/24

  79. ✓ SMS Challenge ✓ ✓ 1.2.3.4/24

Recommend


More recommend