Bug#397887: [Pkg-cryptsetup-devel] Bug#397887: resume support renders
system unbootable
David Härdeman
david at hardeman.nu
Sat Nov 11 12:39:43 CET 2006
On Fri, Nov 10, 2006 at 01:43:05PM +0100, martin f krafft wrote:
>also sprach David Härdeman <david at hardeman.nu> [2006.11.10.1331 +0100]:
>> The hook should warn about these situations though and then skip
>> adding the resume partition details to the initramfs image...I'll
>> fix that
>
>That's what I meant. Thanks for reading through my blather.
Ok, I've committed fixes for both your bugs to the SVN repo. Could you
please test the package? Either by downloading it from:
http://www.hardeman.nu/~david/cryptsetup_1.0.4-7_i386.deb
or, if you don't want to install deb's built by non-DD's, get the source
yourself from the svn repo (svn://svn.debian.org/pkg-cryptsetup/)
>> On a related note, if you do want to be able to resume from swap
>> without needing extra passphrases, the solution that I spoke with
>> Erich about (which I have working locally) is to first setup the
>> root partition (using e.g. LUKS) and then derive a key for the
>> swap partition using a hash of the root partition key. This would
>> give the swap partition a static key which does not need to be
>> stored in the image, thus allowing (u)swsusp.
>
>Okay, but why a hash? Why not just the same passphrase then?
Two reasons:
1) Most importantly, I'm a lazy bastard. The easiest way to get the root
key from an independent script is to call "dmsetup table" which
provides the key as a hex-ascii string which would need to be
converted back to binary representation.
2) Paranoia, I'm not sure it's a good idea to have several pieces of
"known" source data (i.e. superblocks) encrypted with the same key.
Not something I can back up with any authority or research of course
:)
The script is very simple, I've attached it as an example. If you want
to use it, just plop it somewhere (let's say under /root) and make it
executable.
The change /etc/crypttab so that it says something like:
cryptroot /dev/hda1 none luks
cryptswap /dev/hda2 cryptroot keyscript=/root/decrypt_derived,hash=sha256,size=256,cipher=aes-cbc-essiv:sha256
The keyscript will be copied into the initramfs image at creation time
and after that you'll have a static key for swap without having to enter
two passphrases.
I'm planning to commit it once I've written some more documentation for
it (so it might be post-Etch).
--
David Härdeman
-------------- next part --------------
#!/bin/sh
if [ -z "$1" ]; then
echo "$0: must be executed with a crypto device as argument" >&2
exit 1
fi
if ! device=$(dmsetup table 2> /dev/null | grep "$1"); then
echo "$0: failed to read device-mapper table" >&2
exit 1
fi
if [ -z "$device" ]; then
echo "$0: device $1 doesn't exist" >&2
exit 1
fi
if [ "$(echo "$device" | wc -l)" -ne 1 ]; then
echo "$0: more than one device match $1" >&2
exit 1
fi
type=$(echo -n "$device" | cut -d' ' -f4)
if [ "$type" != "crypt" ]; then
echo "$0: device $1 is not a crypto device" >&2
exit 1
fi
echo -n "$device" | cut -d' ' -f6
exit 0
More information about the Pkg-cryptsetup-devel
mailing list