Date of Award

Spring 1-1-2013

Document Type


Degree Name

Master of Science (MS)

First Advisor

Dirk Grunwald

Second Advisor

John Black

Third Advisor

Eric Keller


The magnitude of the digital data we create, store, and interact with on a daily basis is rapidly increasing. Simultaneously, we are demanding increasingly diverse use cases for our data: from syncing it across a variety of services and devices to sharing it with a number of organizations and friends. Securing our data and controlling who can access it is thus increasingly important, but also increasingly difficult. The existing tools we have for protecting our data, strong cryptography systems, are extremely inflexible. This inflexibility is due to cryptographic key storage being too tightly coupled with existing data encryption applications. This tight coupling makes these systems unusable for many of our desired use cases, leading to the underutilization of strong cryptography and the associated lack of protection and control of our data. I believe that this issue can be solved by providing a "Key Storage as a Service" system that separates secure key storage and access control from the underlying encryption mechanisms. Toward this end, we present Custos: a flexible Cloud-based secret storage and access control service optimized for storing encryption keys and other secure secrets. Custos promotes the separation of functionally from trust, allowing us to rely on one service provider for their function while relying on another service provider for their trust. This separation opens up many doors related to the ways we create, store, and process digital data. In this work, I present the Custos design principles, architecture, and protocol specification. I also present several applications that leverage Custos to build more secure, flexible, and usable encryption and secret storage systems.