Artifice: A Deniable Steganographic File System

Appeared in Proceedings of the 9th USENIX Workshop on Free and Open Communications on the Internet (FOCI '19).


The challenge of deniability for sensitive data can be a life or death issue depending on location. Plausible deniability directly impacts groups such as democracy advocates relaying information in repressive regimes, journalists covering human rights stories in a war zone, and NGO workers hiding food shipment schedules from violent militias. All of whom would benefit from a plausibly deniable storage system. Previous de- niable storage solutions only offer pieces of an implementable solution. Artifice is the first tunable, operationally secure, self repairing, and fully deniable steganographic file system.

Artifice operates through the use of a virtual block device driver stored separately from the hidden data. It uses external entropy sources and error correcting codes to deniably and reliably store data within the unallocated space of an existing file system. A set of data blocks to be hidden are combined with entropy blocks through error correcting codes to produce a set of obfuscated carrier blocks that are indistinguishable from other pseudorandom blocks on the disk. A subset of these blocks may then be used to reconstruct the data. Artifice presents a truly deniable storage solution through its use of external entropy and error correcting codes, while providing better reliability than other deniable storage systems.

Publication date:
August 2019

Austen Barker
Staunton Sample
Yash Gupta
Ana McTaggart
Ethan L. Miller
Darrell D. E. Long

Secure File and Storage Systems
Deniable File Systems

Available media

Full paper text: PDF

Bibtex entry

  author       = {Austen Barker and Staunton Sample and Yash Gupta and Ana McTaggart and Ethan L. Miller and Darrell D. E. Long},
  title        = {Artifice: A Deniable Steganographic File System},
  booktitle    = {Proceedings of the 9th USENIX Workshop on Free and Open Communications on the Internet  (FOCI '19)},
  month        = aug,
  year         = {2019},
Last modified 23 Sep 2020