![](https://www.adventuresinencryption.com/wp-content/uploads/2023/02/disk-destroy.png)
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.
![](https://www.adventuresinencryption.com/wp-content/uploads/2023/02/security.png)
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.