After reading about the “suicide” of yet another whistleblower, it got me thinking.
When working at large enough company, it’s entirely possible that at some point you will get across some information the company does not want to be made public, but your ethics mandate you blow the whistle. So, I was wondering if I were in that position how I would approach creating a dead man’s switch in order to protect myself.
From wikipedia:
A dead man’s switch is a switch that is designed to be activated or deactivated if the human operator becomes incapacitated, such as through death, loss of consciousness, or being bodily removed from control. Originally applied to switches on a vehicle or machine, it has since come to be used to describe other intangible uses, as in computer software.
In this context, a dead man’s switch would trigger the release of information. Some additional requirements could include:
- No single point of failure. (aka a usb can be stolen, your family can be killed, etc)
- Make the existence of the switch public. (aka make sure people know of your mutually assured destruction)
- Secrets should be safe until you die, disappear, or otherwise choose to make them public.
Anyway, how would you go about it?
Encrypt secret. Post it publicly. Configure a web server to email the private key to any number of addresses if you don’t log in every week.
going to have to be careful with the timing, though. A week can easily be reached if you are ever in an (actual) accident.
Also, note that having a publicly known dead mans switch can be exploited and cause the opposite of what you want: Imagine a competitor (be it idustrial or nation state) wants the secret to leak. Why not speed it up?
The thought of e.g. some foreign adversary having you KILLED just so your secret leaks… that’s wild.
Host the server on Tor. Have a second secret server on Tor that passively monitors the health of the first and distributes the key if it is taken down. Have a one-time pad of passwords memorised, not written down or taken from a book.
That’s an optimization for just having the automated email send the secret directly.
depending on the size of the secret, it helps to have people download it ahead of time.
Also, it acts as a time stamp proving that you knew the secret at a certain time if that’s useful.
Right, that’s what i mean by optimization. It’s accomplishing the same goal, but amortizes the transfer over more time, saving bandwidth.
The timestamp feature could also be accomplished by publicly posting a small hash of the data ahead of time, but similarly bandwidth can be optimized by distributing the encrypted blob ahead of time.