I tend to keep most of my files on encrypted partitions. Fortunately, this is easy to do now that the crypto loop devices are integrated into the Knoppix kernels (and even the mainline 2.4.22 kernel) and tools (e.g.,
losetup). To do a backup, I mount a local partition, and then use unison (a very fast update program) to send the changes to a partition on a remote host. A day’s work takes less than a minute, sometimes seconds, to update over a decent connection.
sb.py is the script I wrote to mount the partitions locally and remotely (via pyexpect over SSH). Presently, the remote functionality is commented out since I don’t have a couple of gigabytes of storage on a remote host anymore.
Given the way it is currently written, the remote crypto partition is actually mounted on the remote host, and
unison then works its magic over SSH. That means root on the remote host could look at the unencrypted files if he wished to abuse the permissions specified for the mounted (unencrypted) partition. In the past, I was root on the remote machine so I had little to worry about.
However, I could re-implement this script such that the remote raw crypto loop-back file is actually available locally (via NFS or SAMBA) and I mount it locally. In this case, the remote host should never have access to the unencrypted files even when I do. Unfortunately, I’m unsure of the performance of doing a local mount of a remote crypto file system, and
unison would probably be slower. A strength of
unison is that when it’s running over SSH looking for file changes, each host is running its own version of
unison that is quickly examining a local file system and then the two versions compare notes. In the new scheme, one version of unison would be comparing two directories, one of which would mounted over a network and have slower access times associated with it.