194
Protecting “Cloud” Secrets With Grendel http://github.com/wesabe/grendel

Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

  • Upload
    buitruc

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Protecting “Cloud” Secrets With Grendel

http://github.com/wesabe/grendel

Page 2: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Sam QuigleySquare

@emerose

Coda HaleYammer, Inc.@coda

Page 3: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

You store private information.

Page 5: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

credit card numbers

Page 6: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

bank account info

Page 7: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

social security numbershttp://www.wired.com/threatlevel/2010/05/lifelock-identity-theft

Page 8: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

health care informationhttps://health.google.com

Page 9: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

confidential business documents

http://techcrunch.com/2009/07/14/in-our-inbox-hundreds-of-confidential-twitter-documents/

Page 10: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

but also…

Page 14: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

purchase histories

Page 15: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

usage patternshttp://aolpsycho.com/user/14162375-yahoo

Page 16: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

All of this is private.

Page 17: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Anything your users don’t want shared

Page 18: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

We all store private information.

Page 19: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

How well do we protect it?

Page 20: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords
Page 21: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Firewall!

Page 22: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

VPN!

Firewall!

Page 23: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

VPN!

Passwords!

Firewall!

Page 24: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Useless.

Page 25: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Really Useless.http://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project

Page 26: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Encryption!

Page 27: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Hard.

Page 29: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

We still need to protect it.

Page 30: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

We have ideas.

Page 31: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Grendel!

Page 32: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Grendel!A Secure Document Storage System

Page 33: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords
Page 34: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Simplest Thing That Can Work

Page 35: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Simplest Thing That Can Work

Minimum Viable Product

Page 36: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Simplest Thing That Can Work

Minimum Viable Product

Open Source

Page 37: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Simplest Thing That Can Work

Minimum Viable Product

Open Source

Big Plans for the Future

Page 38: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Simplest Thing That Can Work

Minimum Viable Product

Open Source

Big Plans for the Future

Gets the Fundamentals Right

Page 39: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords
Page 40: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Data Storage

Page 41: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Data StorageAuthentication

Page 42: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Data StorageAuthenticationAccess Control

Page 43: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords
Page 44: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

OpenPGP

Page 45: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

OpenPGPREST

Page 46: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

OpenPGPREST

Java + RDBMS

Page 47: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

OpenPGP

Page 48: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Message FormatWhat PGP and GPG Use

Page 49: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

RFC 4880

Page 50: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Open Standard

Page 51: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Well Reviewed

Page 52: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Used Everywhere

Page 53: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Flexible

Page 54: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Confidentiality

Page 55: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Integrity

Page 56: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Keys!

Page 57: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Asymmetric

Page 58: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

One Set Per User

Page 59: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Stored Encrypted with User’s Passphrase

Page 60: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Documents!

Page 61: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Arbitrary Contents

Page 62: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Recipients!

Page 63: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

OpenPGPREST

Java + RDBMS

Page 64: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

REST

Page 65: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

HTTP

Page 66: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

HTTPSpoken Natively

Page 67: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Why REST?

Page 68: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Simple

Page 69: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Ubiquitous

Page 70: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Well-Understood

Page 71: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Easy to Debug

Page 72: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Lots of Free Features

Page 73: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

OpenPGPREST

Java + RDBMS

✓✓

Page 74: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Java + RDBMS

Page 75: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords
Page 76: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Java 6

Page 77: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Java 6Bouncy Castle

Page 78: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Java 6Bouncy Castle

Jetty

Page 79: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Java 6Bouncy Castle

JettyJersey

Page 80: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Java 6Bouncy Castle

JettyJerseyGuice

Page 81: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Java 6Bouncy Castle

JettyJerseyGuice

Hibernate

Page 82: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Why Java?

Page 83: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords
Page 84: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Fast

Page 85: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

FastStable

Page 86: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

FastStable

Well-Understood

Page 87: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Why RDBMS?

Page 88: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

You Already Have One

Page 89: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

OpenPGPREST

Java + RDBMS

✓✓✓

Page 90: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Easy To Use

Page 91: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

One Config File

Page 92: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialecthibernate.connection.username=grendelhibernate.connection.password=sn00persn33krithibernate.connection.url=jdbc:mysql://db1.example.com/grendel_prodhibernate.c3p0.min_size=10hibernate.c3p0.max_size=50

Page 93: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Generating Schemas

Page 94: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

$ java -jar grendel.jar schema \ -c database.properties

Page 95: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

create table documents ( name varchar(255) not null, body longblob not null, content_type varchar(40) not null, created_at datetime not null, modified_at datetime not null, version bigint not null, owner_id varchar(255) not null, primary key (name, owner_id)) ENGINE=InnoDB;

create table links ( user_id varchar(255) not null, document_name varchar(255) not null, document_owner_id varchar(255) not null, primary key (user_id, document_name, document_owner_id)) ENGINE=InnoDB;

create table users ( id varchar(255) not null, created_at datetime not null, keyset longblob not null, modified_at datetime not null, version bigint not null, primary key (id)) ENGINE=InnoDB;

Page 96: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Running the Server

Page 97: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

$ java -jar grendel.jar server \ -c database.properties \ -p 8080

Page 98: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Grendel’s API/users/users/{id}/users/{id}/documents/users/{id}/documents/{name}/users/{id}/documents/{name}/links/users/{id}/documents/{name}/links/{otherid}/users/{id}/linked-documents/users/{id}/linked-documents/{otherid}/{name}

Page 99: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Creating a User

Page 100: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Creating a User

HTTP/1.1 201 CreatedLocation: http://example.com/users/codahale

POST /users/ HTTP/1.1Content-Type: application/json

{ "id": "codahale", "password": "woowoo"}

Page 101: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Creating a User

HTTP/1.1 201 CreatedLocation: http://example.com/users/codahale

POST /users/ HTTP/1.1Content-Type: application/json

{ "id": "codahale", "password": "woowoo"}

Page 102: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Creating a User

HTTP/1.1 201 CreatedLocation: http://example.com/users/codahale

POST /users/ HTTP/1.1Content-Type: application/json

{ "id": "codahale", "password": "woowoo"}

Page 103: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Creating a User

HTTP/1.1 201 CreatedLocation: http://example.com/users/codahale

POST /users/ HTTP/1.1Content-Type: application/json

{ "id": "codahale", "password": "woowoo"}

Page 104: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Creating a User

HTTP/1.1 201 CreatedLocation: http://example.com/users/codahale

POST /users/ HTTP/1.1Content-Type: application/json

{ "id": "codahale", "password": "woowoo"}

Page 105: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Creating a User

HTTP/1.1 201 CreatedLocation: http://example.com/users/codahale

POST /users/ HTTP/1.1Content-Type: application/json

{ "id": "codahale", "password": "woowoo"}

Page 106: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Creating a User

HTTP/1.1 201 CreatedLocation: http://example.com/users/codahale

POST /users/ HTTP/1.1Content-Type: application/json

{ "id": "codahale", "password": "woowoo"}

Page 107: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Creating a User

HTTP/1.1 201 CreatedLocation: http://example.com/users/codahale

POST /users/ HTTP/1.1Content-Type: application/json

{ "id": "codahale", "password": "woowoo"}

Page 108: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Creating a User

HTTP/1.1 201 CreatedLocation: http://example.com/users/codahale

POST /users/ HTTP/1.1Content-Type: application/json

{ "id": "codahale", "password": "woowoo"}

Page 109: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Creating a User

HTTP/1.1 201 CreatedLocation: http://example.com/users/codahale

Generates a New Key Pair

POST /users/ HTTP/1.1Content-Type: application/json

{ "id": "codahale", "password": "woowoo"}

Page 110: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Creating a User

HTTP/1.1 201 CreatedLocation: http://example.com/users/codahale

Generates a New Key PairEncrypts The Private Key

POST /users/ HTTP/1.1Content-Type: application/json

{ "id": "codahale", "password": "woowoo"}

Page 111: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Creating a User

HTTP/1.1 201 CreatedLocation: http://example.com/users/codahale

Generates a New Key PairEncrypts The Private Key

Stores It with the User Record

POST /users/ HTTP/1.1Content-Type: application/json

{ "id": "codahale", "password": "woowoo"}

Page 112: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Storing a Document

Page 113: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Storing a Document

HTTP/1.1 204 No Content

PUT /users/codahale/documents/foo.txt HTTP/1.1Content-Type: text/plainAuthorization: Basic Y29kYWhhbGU6d29vd29v

yay for me

Page 114: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Storing a Document

HTTP/1.1 204 No Content

PUT /users/codahale/documents/foo.txt HTTP/1.1Content-Type: text/plainAuthorization: Basic Y29kYWhhbGU6d29vd29v

yay for me

Page 115: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Storing a Document

HTTP/1.1 204 No Content

PUT /users/codahale/documents/foo.txt HTTP/1.1Content-Type: text/plainAuthorization: Basic Y29kYWhhbGU6d29vd29v

yay for me

Page 116: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Storing a Document

HTTP/1.1 204 No Content

PUT /users/codahale/documents/foo.txt HTTP/1.1Content-Type: text/plainAuthorization: Basic Y29kYWhhbGU6d29vd29v

yay for me

Page 117: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Storing a Document

HTTP/1.1 204 No Content

PUT /users/codahale/documents/foo.txt HTTP/1.1Content-Type: text/plainAuthorization: Basic Y29kYWhhbGU6d29vd29v

yay for me

Page 118: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Storing a Document

HTTP/1.1 204 No Content

PUT /users/codahale/documents/foo.txt HTTP/1.1Content-Type: text/plainAuthorization: Basic Y29kYWhhbGU6d29vd29v

yay for me

Page 119: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Storing a Document

HTTP/1.1 204 No Content

PUT /users/codahale/documents/foo.txt HTTP/1.1Content-Type: text/plainAuthorization: Basic Y29kYWhhbGU6d29vd29v

yay for me

Page 120: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Storing a Document

HTTP/1.1 204 No Content

PUT /users/codahale/documents/foo.txt HTTP/1.1Content-Type: text/plainAuthorization: Basic Y29kYWhhbGU6d29vd29v

yay for me

Page 121: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Storing a Document

HTTP/1.1 204 No Content

Decrypts the User’s Key Set

PUT /users/codahale/documents/foo.txt HTTP/1.1Content-Type: text/plainAuthorization: Basic Y29kYWhhbGU6d29vd29v

yay for me

Page 122: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Storing a Document

HTTP/1.1 204 No Content

Decrypts the User’s Key SetSigns the Document With It

PUT /users/codahale/documents/foo.txt HTTP/1.1Content-Type: text/plainAuthorization: Basic Y29kYWhhbGU6d29vd29v

yay for me

Page 123: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Storing a Document

HTTP/1.1 204 No Content

Decrypts the User’s Key SetSigns the Document With It

Encrypts the Document With It

PUT /users/codahale/documents/foo.txt HTTP/1.1Content-Type: text/plainAuthorization: Basic Y29kYWhhbGU6d29vd29v

yay for me

Page 124: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Storing a Document

HTTP/1.1 204 No Content

Decrypts the User’s Key SetSigns the Document With It

Encrypts the Document With ItStores The Encrypted Document

PUT /users/codahale/documents/foo.txt HTTP/1.1Content-Type: text/plainAuthorization: Basic Y29kYWhhbGU6d29vd29v

yay for me

Page 125: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Listing Documents

Page 126: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Listing DocumentsGET /users/codahale/documents/ HTTP/1.1Authorization: Basic Y29kYWhhbGU6d29vd29vAccept: application/json

HTTP/1.1 200 OKContent-Type: application/json

{ "documents":[{ "name":"foo.txt", "uri":"/users/codahale/documents/foo.txt" }]}

Page 127: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Listing DocumentsGET /users/codahale/documents/ HTTP/1.1Authorization: Basic Y29kYWhhbGU6d29vd29vAccept: application/json

HTTP/1.1 200 OKContent-Type: application/json

{ "documents":[{ "name":"foo.txt", "uri":"/users/codahale/documents/foo.txt" }]}

Page 128: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Listing DocumentsGET /users/codahale/documents/ HTTP/1.1Authorization: Basic Y29kYWhhbGU6d29vd29vAccept: application/json

HTTP/1.1 200 OKContent-Type: application/json

{ "documents":[{ "name":"foo.txt", "uri":"/users/codahale/documents/foo.txt" }]}

Page 129: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Listing DocumentsGET /users/codahale/documents/ HTTP/1.1Authorization: Basic Y29kYWhhbGU6d29vd29vAccept: application/json

HTTP/1.1 200 OKContent-Type: application/json

{ "documents":[{ "name":"foo.txt", "uri":"/users/codahale/documents/foo.txt" }]}

Page 130: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Listing DocumentsGET /users/codahale/documents/ HTTP/1.1Authorization: Basic Y29kYWhhbGU6d29vd29vAccept: application/json

HTTP/1.1 200 OKContent-Type: application/json

{ "documents":[{ "name":"foo.txt", "uri":"/users/codahale/documents/foo.txt" }]}

Page 131: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Listing DocumentsGET /users/codahale/documents/ HTTP/1.1Authorization: Basic Y29kYWhhbGU6d29vd29vAccept: application/json

HTTP/1.1 200 OKContent-Type: application/json

{ "documents":[{ "name":"foo.txt", "uri":"/users/codahale/documents/foo.txt" }]}

Page 132: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Listing DocumentsGET /users/codahale/documents/ HTTP/1.1Authorization: Basic Y29kYWhhbGU6d29vd29vAccept: application/json

HTTP/1.1 200 OKContent-Type: application/json

{ "documents":[{ "name":"foo.txt", "uri":"/users/codahale/documents/foo.txt" }]}

Page 133: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Listing DocumentsGET /users/codahale/documents/ HTTP/1.1Authorization: Basic Y29kYWhhbGU6d29vd29vAccept: application/json

Decrypts the User’s Key Set

HTTP/1.1 200 OKContent-Type: application/json

{ "documents":[{ "name":"foo.txt", "uri":"/users/codahale/documents/foo.txt" }]}

Page 134: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Listing DocumentsGET /users/codahale/documents/ HTTP/1.1Authorization: Basic Y29kYWhhbGU6d29vd29vAccept: application/json

Decrypts the User’s Key SetLoads the List of Documents

HTTP/1.1 200 OKContent-Type: application/json

{ "documents":[{ "name":"foo.txt", "uri":"/users/codahale/documents/foo.txt" }]}

Page 135: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Viewing a Document

Page 136: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Viewing a Document

HTTP/1.1 200 OKCache-Control: private, no-cache, no-storeContent-Type: text/plain

yay for me

GET /users/codahale/documents/foo.txt HTTP/1.1Authorization: Basic Y29kYWhhbGU6d29vd29v

Page 137: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Viewing a Document

HTTP/1.1 200 OKCache-Control: private, no-cache, no-storeContent-Type: text/plain

yay for me

GET /users/codahale/documents/foo.txt HTTP/1.1Authorization: Basic Y29kYWhhbGU6d29vd29v

Page 138: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Viewing a Document

HTTP/1.1 200 OKCache-Control: private, no-cache, no-storeContent-Type: text/plain

yay for me

GET /users/codahale/documents/foo.txt HTTP/1.1Authorization: Basic Y29kYWhhbGU6d29vd29v

Page 139: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Viewing a Document

HTTP/1.1 200 OKCache-Control: private, no-cache, no-storeContent-Type: text/plain

yay for me

GET /users/codahale/documents/foo.txt HTTP/1.1Authorization: Basic Y29kYWhhbGU6d29vd29v

Page 140: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Viewing a Document

HTTP/1.1 200 OKCache-Control: private, no-cache, no-storeContent-Type: text/plain

yay for me

GET /users/codahale/documents/foo.txt HTTP/1.1Authorization: Basic Y29kYWhhbGU6d29vd29v

Page 141: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Viewing a Document

HTTP/1.1 200 OKCache-Control: private, no-cache, no-storeContent-Type: text/plain

yay for me

GET /users/codahale/documents/foo.txt HTTP/1.1Authorization: Basic Y29kYWhhbGU6d29vd29v

Page 142: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Viewing a Document

Decrypts the User’s Key Set

HTTP/1.1 200 OKCache-Control: private, no-cache, no-storeContent-Type: text/plain

yay for me

GET /users/codahale/documents/foo.txt HTTP/1.1Authorization: Basic Y29kYWhhbGU6d29vd29v

Page 143: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Viewing a Document

Decrypts the User’s Key SetDecrypts the Document

HTTP/1.1 200 OKCache-Control: private, no-cache, no-storeContent-Type: text/plain

yay for me

GET /users/codahale/documents/foo.txt HTTP/1.1Authorization: Basic Y29kYWhhbGU6d29vd29v

Page 144: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Viewing a Document

Decrypts the User’s Key SetDecrypts the Document

Verifies the Signature

HTTP/1.1 200 OKCache-Control: private, no-cache, no-storeContent-Type: text/plain

yay for me

GET /users/codahale/documents/foo.txt HTTP/1.1Authorization: Basic Y29kYWhhbGU6d29vd29v

Page 145: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Linking a Documentto Another User

Page 146: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Linking a Document

HTTP/1.1 204 No Content

PUT /users/codahale/documents/foo.txt/links/samquigleyAuthorization: Basic Y29kYWhhbGU6d29vd29v

Page 147: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Linking a Document

HTTP/1.1 204 No Content

PUT /users/codahale/documents/foo.txt/links/samquigleyAuthorization: Basic Y29kYWhhbGU6d29vd29v

Page 148: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Linking a Document

HTTP/1.1 204 No Content

PUT /users/codahale/documents/foo.txt/links/samquigleyAuthorization: Basic Y29kYWhhbGU6d29vd29v

Page 149: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Linking a Document

HTTP/1.1 204 No Content

PUT /users/codahale/documents/foo.txt/links/samquigleyAuthorization: Basic Y29kYWhhbGU6d29vd29v

Page 150: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Linking a Document

HTTP/1.1 204 No Content

PUT /users/codahale/documents/foo.txt/links/samquigleyAuthorization: Basic Y29kYWhhbGU6d29vd29v

Page 151: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Linking a Document

HTTP/1.1 204 No Content

Decrypts the Document

PUT /users/codahale/documents/foo.txt/links/samquigleyAuthorization: Basic Y29kYWhhbGU6d29vd29v

Page 152: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Linking a Document

HTTP/1.1 204 No Content

Decrypts the DocumentRe-encrypts the Document for Both Users

PUT /users/codahale/documents/foo.txt/links/samquigleyAuthorization: Basic Y29kYWhhbGU6d29vd29v

Page 153: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Linking a Document

HTTP/1.1 204 No Content

Decrypts the DocumentRe-encrypts the Document for Both Users

Gives Read-Only Access To The Second User

PUT /users/codahale/documents/foo.txt/links/samquigleyAuthorization: Basic Y29kYWhhbGU6d29vd29v

Page 154: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords
Page 155: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

GPG as a Service

Page 156: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

GPG as a Service(GaaS)

Page 157: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

What’s the big deal?

Page 158: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords
Page 159: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Self-Defending Data

Page 160: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Self-Defending Datasudo for the Web

Page 161: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Self-Defending Datasudo for the Web

Privacy Wall

Page 162: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Self-Defending Data

Page 163: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Data EnforcesAccess Rules

Page 164: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Enforce Business Logic with Math

Page 165: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

But Wait!There’s More!

Page 166: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Authentication Done Right

Page 167: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords
Page 168: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Adaptive Hashing

Page 169: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Adaptive HashingCentralized, as a Service

Page 170: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Adaptive HashingCentralized, as a Service

Resistant to Modern Attacks

Page 171: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

sudo for the Web

Page 172: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords
Page 173: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Long-Lived Session Cookies

Page 174: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Long-Lived Session CookiesRe-Auth for Privileged Access

Page 175: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Long-Lived Session CookiesRe-Auth for Privileged AccessMitigates XSS/CSRF (sorta)

Page 176: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Privacy Wall

Page 177: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords
Page 178: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

You’re Locked Out

Page 179: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

You’re Locked OutThis is Good

Page 180: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

You’re Locked OutThis is Good

Protects Everyone from Insiders

Page 181: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

You’re Locked OutThis is Good

Protects Everyone from InsidersProtects Everyone from Outsiders

Page 182: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Summary

Page 183: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords
Page 184: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Grendel: OpenPGP + REST + Java

Page 185: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Grendel: OpenPGP + REST + JavaSelf-Defending Data

Page 186: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Grendel: OpenPGP + REST + JavaSelf-Defending Data

Authentication + sudo

Page 187: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Grendel: OpenPGP + REST + JavaSelf-Defending Data

Authentication + sudoPrivacy Wall

Page 188: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Progress

✓ –✓✓–

Page 189: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Future Directions

Page 190: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords
Page 191: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Sessions

Page 192: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

SessionsOAuth (2.0)

Page 193: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

SessionsOAuth (2.0)

Spreading the Ideas

Page 194: Protecting “Cloud” Secrets With Grendel - O'Reilly Mediaassets.en.oreilly.com/1/event/44/Protecting _Cloud_ Secrets With... · passwords

Questions?http://github.com/wesabe/grendel