Encryption? What Encryption?
Police in Britain have announced that two people have successfully been prosecuted under a UK law that forces defendants to give up their encryption keys and penalizes those who don't comply. Another UK woman's case had attracted attention two years ago, when the government demanded she give up her encryption keys after the police found encryption software on her computer, but the police say she was not one of the two defendant's charged. Is there a software solution to this problem — a way that people can encrypt files on their computers, without arousing the suspicion of law enforcement if the computers are seized?
File encryption, if properly implemented, is generally considered mathematically unbreakable. But to prevent suspicion falling on people just for encrypting files in the first place, requires a human solution as well as an engineering one. One way or another, some file encryption software would have to be in widespread use that has these two properties: (1) it's deployed on a large number of people's machines — not just a large absolute number, but a significant proportion of the total population, so that suspicion does not fall on people just for possessing the software — and (2) it should not be possible to tell the difference between machines where the users use the software regularly, and machines where the software has never been run. Then, and only then, would it be possible to use the encryption software on your machine, without anyone who seizes the machine having reason to think that you had ever encrypted anything at all.
(Of course, in a relatively free society, if law enforcement has probable cause to seize your machine in the first place, then they would presumably already have some evidence against you. But this would at least prevent police officers and judges from becoming more suspicious as a result of encryption software being present on your machine.)
Note that this is similar to the kind of problem that is normally solved with steganography, but by my reasoning, I don't think that using stego would actually gain anything in this situation. Whether you're talking about encryption software or stego software, if it's a program that not a lot of people have installed, then just by virtue of having it on your machine, you'll attract suspicion if your machine is seized. On the other hand, suppose you've cleared that hurdle and the software is installed on a lot of people's computers, so that just having installed it is not by itself grounds for suspicion. If it's stego, then you can embed the hidden data inside other images or videos, so that an intruder can't tell whether you've been using the software to hide anything (assuming the stego software is good enough that the intruder can't tell the images have been tampered with). But you could achieve the same thing with straight encryption software: just have every installation of the program create a "storage volume" file, where encrypted files will be stored. As long as a storage volume file with files embedded in it, is indistinguishable from a storage volume file that has never been touched, the presence of the storage volume file won't give you away.
I'm not actually aware of any encryption program that has that property: that for a given machine with the software installed, it's impossible to tell whether the software has ever been used to encrypt data. This is probably because this would normally not be a useful feature of an encryption program. The whole point of making it impossible to tell whether someone has used the program or not, is that people who have used the program would not attract undue attention to themselves as a result. But if the encryption program is only used by one thousandth of one percent of total Internet users anyway, then just the fact that a user has the program installed, would be enough to draw suspicion to the user if their computer is seized, so there's no benefit to concealing the fact that the program has been used. On the other hand, if the encryption program is installed on a significant proportion of users' machines anyway, then simply having the program installed is no longer grounds for suspicion. And that's when it would become a valuable feature for it to be difficult to tell whether the owner of the machine actually uses the encryption program or not.
This may be hard to implement correctly, and there are some tradeoffs that will have to be decided. For example, if the program creates a default "storage volume" file when it's installed, how big should that initial volume be? The problem with creating a small storage file initially and then letting it grow as encrypted files are added, is that this now makes it easy to tell who is using the program and who isn't — anyone whose storage file has grown beyond the default size, is using it to encrypt files (and is therefore a terrorist movie-downloading child pornographer, etc.). In order to avoid suspicion falling on people who use the program, the storage file would have to be the same size on everyone's computer. If you make it 1 GB, that wastes a lot of space on people's machines who aren't using it. On the other hand, if it's only 1 GB, it also means that users will only be able to store up to 1 GB of encrypted data — any more than that, and they'll have to expand the size of the storage file, thus calling attention to themselves if the machine is ever seized. And then, what about the fact that a large file which is created all at once, is normally not fragmented very much, but if the storage file is frequently modified, it is likely to become more and more fragmented — thus giving people a way to tell if the encryption program is being used frequently. (So you'd either have to deliberately create a very fragmented storage file by default on the first install, or create an unfragmented file on first install but then make sure to read and write from the file in a way that doesn't fragment it further.) I don't want to get too bogged down in implementation details. The point is just that you'd have to block all the possible ways that an intruder would be able to tell whether the software is used frequently — forget one thing, and you've given an intruder a way to identify people who are actually using the software to encrypt files.
A program called TrueCrypt achieves something close to this — TrueCrypt allows you to encrypt a storage volume with two different passwords, so that one password provides access to "innocent-looking" data, while the other password provides access to the data that you really want to keep secure. If someone is compelled to give up their password, they could provide only the password that unlocks the "innocent-looking" data — and there's no way, from examining the encrypted file, to tell that there is a second password guarding even-more secret data. (Of course, the "innocent-looking" data can't be truly innocent-looking, because it has to look like the kind of thing that someone would believe you might want to encrypt — so it should look suspicious enough that you would genuinely want to hide it, but not bad enough to get you in real trouble if you're forced to reveal it!) The Achilles heel of this scheme is that just having TrueCrypt on your computer in the first place, would at least signal to an intruder that you're encrypting files. And even if they can't prove that you might have another "super-secret password" guarding more private data on your encrypted volume, they would certainly suspect it, if they already had grounds to be investigating you and if they knew anything about how TrueCrypt works. To provide true plausible deniability of any encryption at all, you need a program that already exists on lots of people's machines, so that an intruder doesn't suspect anything when they find it on your computer.
(The same objection also applies to many other non-solutions to the problem, like using a Linux distro that encrypts your entire file system. Even assuming this would be within the technical means of the average person who wanted to do encryption, it's still going to look suspicious as long as the vast majority of people are not doing it.)
Which leads to the other half of the problem, which is getting the software widely deployed enough that it would not look suspicious for someone to have the program installed in the first place. Best of all for the purpose of avoiding suspicion, of course, would be for the program to come installed by default with a popular operating system. Windows XP and Vista have the built-in ability to encrypt folders, but anyone who seizes the machine can still see that you encrypted a folder, so this don't have the undetectability factor. Built-in deniable encryption of the kind that I'm describing, doesn't instinctively feel like the sort of thing that Microsoft would start bundling with its operating system. (Among other things, they might say that while companies often have business reasons for encrypting files, it's harder to think of a business case where employees would need to encrypt files and hide the fact that they were encrypting anything.)
Perhaps instead it could be bundled with a popular free software program beholden to no for-profit corporate masters. (My first thought was Firefox, but I was quickly told that Firefox was created specifically to strip out many of the features that had caused bloat in the original Mozilla project, and that any bundling of unnecessary tools would go against the whole ethos of the project.) Maybe a good place to include something like this would be the Google Pack — it's installed by lots of people, and currently doesn't have a file-encryption tool in the bundle. Beholden to for-profit corporate masters, yes, but ones that frequently declare "Don't Be Evil" and often seem to do cool stuff just to see what would happen.
Another possibility would be for a next-generation P2P program to bundle this capability with their software. This provides a nice dovetailing of interests — P2P users might want a way to hide the files that they've downloaded, while at the same time, intruders who seize the computer and found the P2P application installed, wouldn't necessarily suspect the owner of anything more than a little copyrighted file trading. "Well, he's got this NiftyP2P program installed, which comes with 'plausibly deniable' encryption, but most people use just NiftyP2P to download mp3 files and movies anyway. And I can't tell if he was actually using the encrypted file storage volume, because that's how 'plausibly deniable' encryption works. Is this the same guy who uploaded those subversive anti-government documents? I dunno."
Anyway, if you actually want to give people a way to run encryption software on their PCs, while ensuring that anyone who seizes their machine cannot tell that any encryption has been going on, these are the hurdles that you'd have to clear. I'm not sure whether this is better viewed as a blueprint for how to achieve this goal, or an argument for why it will probably never happen. There are lots of almost-solutions, like TrueCrypt with its ability to encrypt different sets of data into the same storage volume. But you still can't actually hide the fact that you're doing encryption in the first place.
(If you're willing to store your encryption software away from your computer, you could keep a steganography program on a CD or USB drive hidden in your house, and then whenever you need access to the encrypted data, plug in the program and use it to extract data that has been hidden in a large number of image or video files. That would achieve the goals I've outlined in the article: the ability to encrypt files, while still ensuring that anyone who seizes your computer won't be able to tell that you've encrypted anything. The problem is that it would require enough self-discipline to always return the CD or USB stick to its hiding place when you were done with it — and still, you'd have to hope that whatever authorities seize your computer, don't also search your house and find the CD or USB stick where you keep your stego software.)
Finally, risking the wrath of my civil-libertarian allies, I'll admit it may not actually be a positive thing for every citizen to be able to hide the fact from their local law enforcement that they're encrypting files on their computer. Many times if the police in a mostly-free country like the US or the UK seize a person's computer, they're trying to prevent real harm, and not every person with an encrypted file volume is a good guy. For some of the people who have left enough of an evidence trail that their computers get seized, it would be perfectly rational to view them with suspicion because of an encrypted volume found on their computer. But if you assume it's a worthwhile goal for people to be able to encrypt files without attracting suspicion, my argument is that the prerequisites in this article are necessary for that to work. At the moment it seems a long way off. But if someone created an encryption program with "deniability" — so that it was impossible to tell whether the program had ever been used after it was installed — and someone at Google thought "Hey, that's cool" and added it to the Google Pack, everything would change very suddenly.
http://xkcd.com/538/
It's funny cause it's true.
Sent from your iPad.
A smart crook with stolen state secrets or child porn on their encrypted drives would just tell 'em to fuck off.
5 years in the pen for obstruction of justice ain't shit compared death for treason or being ganged-raped on a daily basis before having to live the rest of your life as a sex-offender.
People will respect you on the inside and the outside because inmates and corporations both don't like snitches.
captcha: harming
-- Ethanol-fueled
I've often wondered why when you are setting up your user account on a box, and it gets to the part with setting up email, it didn't give you a chance to generate or import public/private keys right there and them upload the public to a server. Particularly on linux boxes, this seems like a completely feasible option.
One might also envision having a secret key storage mechanism, either by local external media or via remote storage where it could go look.
-- Who is the bigger fool? The fool or the fool who follows him? --
One option to hide well the existence of encription software and data could be to put them among game files.
It's common for games to have large data files, for example precompiled texture caches. You could change the program extension from .exe to .whatever and put it between those files. For extra stealth use a rare used packer (to avoiding signature matching) and also erase the first 2 bytes of the executable 'MZ', and use a good editor to put it back in place before executing it. The data it's encrypted and I don't think the NSA have parser for any arbitrary file in existence (game files in this case) so they won't suspect a think. Make sure that the date of change of those files don't draw attention to them.
I do consulting myself. For individuals and small companies, I urge them in no uncertain terms to either use TrueCrypt [1] (and perhaps give a small donation to the TC Foundation), or if their machine has a TPM, BitLocker. For a small company, the burned system CDs with a known passphrase stored in a tape safe are good enough for a lost password recovery mechanism.
An encrypted laptop with a real passphrase (20 characters if there is no TPM, and over 8-10 chars if there is a hardware mechanism that locks permanently or refuses access for longer and longer periods of time the more wrong guesses given) means that a theft results in an insurance claim and a police report. The same laptop with no encryption can mean having to put a news article in a number of newspapers detailing a breach, and having to provide every single customer with credit record protection for several years. So compared to the cure cost, prevention is very cheap. (TC is licensed at no charge, most laptops for corporate use have TPM security chips so BitLocker is a no brainer, and PGP isn't that expensive per seat.)
Larger companies are a different breed and require different solutions. They need scalable recovery methods. BitLocker can scale by having the recovery data stored in Active Directory. However, for machines without TPMs, I recommend a commercial solution like SafeBoot, PGP WDE, or something with centralized policy control. Reason for this is auditing and recovery which is mandated by a lot of corporate regs (HIPAA, Sarbanes Oxley, etc.)
Other operating systems also have solutions. OS X doesn't have a complete whole disk solution unless you buy PGP or PointSec, but FileVault can do decently for home directory protection. Most Linux distros have some sort of FDE encryption available at install time.
Yes, encryption is out there, and is easily used. The easiest to use by far is BitLocker on TPM based hardware. You turn on the TPM in the BIOS, let Windows take ownership of it, save the recovery info to a USB flash drive (or a TC volume in a safe place), and pretty much forget that it is there. There just isn't a reason for people not to use encryption.
Of course, people ask what does one have to hide that encryption is needed. The answer: A lot. A thief can gather a lot of intel about a company from the data on a laptop, especially if the laptop has the ability to connect to the corporate VPN and log into a trusted E-mail account without a password. Good encryption keeps a thief well away from any data that might compromise a company (or an individual for that matter).
[1]: I've used TrueCrypt, PGP, BestCrypt, WinMagic, and SafeBoot. All are very good. TrueCrypt is licensed at no charge, thus for SMBs, its almost a must have.
Why the hell are you summarizing the essay (or whatever it is) for him? What makes you think he'll read your post if he didn't bother with TFA? Because your post is shorter? It's still longer than a tweet, so by definition Too Long To Read.
I suggest that in the future you not muddy up someone's confusion with a concise statement of fact.
If that's true, then let's run an experiment. I'll completely copy a comment that got +5 insightful on the other thread.
It's an appalling piece of legislation for a number of reasons:
1. It makes forgetting your decryption key/passphrase/whatever illegal. Yes, seriously. The burden of proof is on the accused to show that they can no longer decrypt the data - how the hell do you prove you don't have something?
2. The people who it was originally intended to inconvenience - the real terrorists, if you like - aren't going to be even remotely concerned by it. They know full well that there is a risk they'll be caught and spend time in jail. If it's a choice between "reveal the decryption key, thus providing the police with the only evidence they're likely to find which implicates you and a number of others for so many criminal activities you'll be in prison for 20 years and when you get out you'll get a bullet in the head for the people who you dropped in it" or "keep your mouth shut, go to prison for two years", I wonder which one they'll chose?
Actually , Truecrypt can be used as a stand alone executable , which could be put on an external medium , like a usb stick .
That way , you don't have to install it on your system , and there is no way to prove it , unless they find the stick.
Slipping shoelaces ?
I provided a solution that doesn't have that problem in the first place.
No, you didn't because you are misunderstanding the problem. The problem isn't going to jail or being pressured to give up your encryption password. The problem is being harassed and having your privacy invaded simply because you have a program installed on your computer. If I'm going through customs and get harassed and annoyed because I have TrueCrypt installed, that is still a major problem even if I can provide access to an innocent volumn.
Ideally, the solution would offer both forms of deniability. A) Not having an unusual encryption utility installed and B) Being capable of offering an innocent volumn if pressed for a password anyway. You need A to avoid casual detection and the harassment that stems from it. You need B because a forensic analysis of the disk can still determine that there are encrypted volumns present.
Plausible deniability was always weak, and assumed you were dealing with law enforcement in a free country. If the new standard is guilty until proven innocent, we are all fucked. If you are under suspicion they will jail you until you produce the evidence to put you in jail. Evidence that you have visited Slashdot is enough to show that you have knowledge of cryptography and stenography, and therefore could be hiding something. The only way to prove your innocence is to die under horrendous torture without confessing...and even then it probably just proves you were well trained in Afghanistan to resist torture.
Oddly enough, when the police come to sieze your computer, they sometimes search your house and person for other computer-related stuff, including memory sticks. Weird, huh?
I guess it's possible to hide a memory stick really well, but that sounds impractical for a computer you'd use every day, and if the police show up while the computer is being used (which they'd make an effort to do if this sort of thing became a problem) you'd still be screwed. Plus, they'd just start jailing anyone with random-seeming data on their hard drive until an encryptio key was provided (and anyone who atually had random data, like a securely erased drive, could just rot in prison).
Really, it's just a small step from here to "you go to jail until you confess to whatever crimes we accuse you of". This is not a problem with a technological solution!
Socialism: a lie told by totalitarians and believed by fools.