Camp++ 0x7e3

Encrypting data for the cloud like we mean it
2019-07-27, 17:00–17:30, Klapka

Existing encrypted overlay filesystem solutions have tackled the easy problem: They encrypt. However, that alone doesn't hide a lot of interesting metadata: Which sized file was edited when. Let's dig into a filesystem design that balances practicality with hiding metadata in an untrusted storage provider setting.

Block level encryption works well in most cases on modern laptops and storage systems. It's great for the level of protection that it offers, assuming the parameters are correctly applied. However, apart from ZFS's encrypted volumes, there hasn't been a lot of activity in creating filesystems that focus on minimising metadata exposure while keeping the flexibility of an overlay filesystem. Most interestingly, overlay filesystems expose metadata such as file size, and access and modification times, even though scanning and The Pirate Bay shows that file size alone can be a good predictor of the contents of the file. Operating on the assumption that most users will store little original content, it seems straightforward for an adversary to guess the contents of a file with relative certainty.

The talk introduces a novel approach to an overlay filesystem construction that fulfils the following properties:

  • Protect data integrity and confidentiality and authenticity
  • The exact size of data should not be known by the storage provider
  • Ensure encrypted data can be easily synchronised and wiped from storage
  • Natively allows versioning and garbage collection (not write-only)
  • Allow high-performance and portable implementations