SuicideCrypt is a project I wrote around 2016 to address an issue I saw around how current disk encryption schemes worked that rendered them vulnerable to forensics recovery techniques once deleted. Even with a single pass of 0’s across the disk, to a determined nation state attacker the data container and it’s headers are plausibly recoverable. And at that point it’s simply a case of “convincing” the owner of the disk to hand over the unlock keys and they have access to your data.
At the time, the best way around this was to purchase hardware AES disks where the key could be reliably destroyed upon a disk format.
Being the cheap person I am I decided to see if the same effect could be reasonably achieved with free open source software and cheap hardware. I like to think I came up with a fairly effective, free and best of all truly paranoid solution that was designed to be accessible to your average competent nerd.
I won’t go into deep detail of the project here as it is detailed on the project page on github. But the basic concept involves creating your encrypted disk in such a way that the headers, keyslots and decryption keys never touch static disk. They are created ephemerally in a memory disk and can be dropped at a moments notice or, if you’re vaguely sanely paranoid (wheres the fun in that?) you can write them to a removable or remote disk.
In addition to this I wrote a watchdog framework, extensible with various plugins, that looks out for standard forensics techniques. Up to and including freezing the memory to recover the keys from RAM. This framework allowed for a variety of triggers to be set that would automatically destroy the in memory keys in such a way that they are not realistically recoverable and avoid the “rubber hose/wrench” issue.
The project page can be found here: SucideCrypt on Github
Currently it’s written in Perl because that’s what I could write easily in at the time but I’m hoping to re-implement in C or Python in the near future. As well as set up a proper PPA for Ubuntu.
Feel free to use, play with or modify the framework as you see fit. I have, of recent, been thinking about ways of making it betterer and more paranoid, so look for updates and maybe a blog entry on it soon.