[NBLUG/talk] Crypt Filesystems

Lincoln Peters petersl at sonoma.edu
Tue Jul 25 22:41:44 PDT 2006


On Jul 25, 2006, at 3:08 PM, Jacob Appelbaum wrote:

> If you're really going to script the password, I've gotten around this
> by using expect in similar situations. However, it requires great care
> that the expect script it protected as are the keys used in the  
> process.

Here's what I do (at least, this is what I did until my ReiserFS  
filesystem failed):

Every partition on every drive is encrypted using dm-crypt (the  
successor to cryptoloop).  Swap filesystems use a random key (making  
recovery practically impossible), while other filesystems use a key  
that I store on a 3.5" floppy disk.  Without the keys, it should be  
impossible to determine ANYTHING about the drive or what's on it  
except for its partition table.  And if I have a security disaster  
(e.g. secret police breaking down my door to seize my computer), I  
can destroy the disk, making the contents of the hard disk  
irrecoverable.

A few ways I can think of to make this even more secure (but I  
haven't tried them yet):

* Use a 5.25" floppy for the key.  They fit in a paper shredder much  
more easily than a 3.5" floppy (making them easier to destroy in an  
emergency), but the disks (and the drives) are harder to find these  
days.  Of course, the rarity of 5.25" floppy drives could offer yet  
another (albeit small and most likely insignificant) layer of security.

* A CD might be another option, but I'd be inclined to make a  
"superkey" that fills up the entire CD, and then use a hashing  
function to shrink it down to a size allowed by AES.  I figure that  
if you had to break the CD to prevent unauthorized access, this would  
drastically reduce the chance that the key could be recovered by  
reassembling the shards (you never know what kind of tools the bad  
guys will have at their disposal!), since the data on the CD where  
the actual breaks are would theoretically be irrecoverable by ANY  
means.  However, you'd have to ensure that the hashing function you  
use doesn't follow any pattern where the total number of possible  
outputs is less than the total number of possible keys (I figure a  
simple XOR hash would fit this criteria, and it would run faster than  
just about anything else).

* Use a USB flash drive to store your keys.  This wouldn't  
necessarily add any security to your system, but you could keep the  
drive with you at all times, just in case the bad guys seize your  
computer while you're not around.  Just make sure that the flash  
drive can be destroyed at a moment's notice, if you think it may be  
necessary to do so.

* This won't foil a determined foe, but you could set up your desktop  
computer to boot off an NFS server, instead of using an internal hard  
disk.  Assuming you carefully hide the NFS server (you could probably  
hide a mini-ITX case easily enough), if the bad guys seize your  
computer, imagine the expressions on their faces when they discover  
that the computer has no hard drive!  (Note that you'll need a very  
fast network for this to work without a significant performance  
penalty--at least 1Gb/s, preferably even faster.)


You may also want to keep a spare disk with your keys, in case you do  
have to destroy the main disk but want to be able to access the data  
later.  If you do, make sure that the spare key is well-hidden, and  
don't tell anyone where it is.  Don't even offer hints!


--
Lincoln Peters
<petersl at sonoma.edu>

Whatever you may be sure of, be sure of this: that you are dreadfully  
like
other people.
                 -- James Russell Lowell, "My Study Windows"




More information about the talk mailing list