I apologise if this is already common knowledge, but I just found out you can have multiple layers of LUKS encryption on a drive!
[Image description:
Screenshot of terminal output:
~ ❯ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 1 62.5M 0 disk
└─topLuks 254:2 0 60.5M 0 crypt
└─bottomLuks 254:3 0 44.5M 0 crypt
/end image description]
I had no idea!
If anyone else is curious, it's pretty much what you would expect:
cryptsetup -y -v luksFormat /dev/sda
cryptsetup open /dev/sda topLuks
cryptsetup -y -v luksFormat /dev/mapper/topLuks
cryptsetup open /dev/mapper/topLuks bottomLuks
lsblk
Then you can make a filesystem and mount it:
mkfs.ext4 /dev/mapper/bottomLuks
mount /dev/mapper/bottomLuks ~/mnt/embeddedLuksTest
I've tested putting files on it and then unmounting & re-encrypting it, and the files are indeed still there upon decrypting and re-mounting.
Again, sorry if this is not news to anyone else, but I didn't realise this was possible before, and thought it was very cool when I found it out. Sharing in case other people didn't know and also find it cool :)
Yeah, LUKS and most block level overlays just don't care. That's what good abstraction layers do for you!
You can LUKS on a disk image mounted over SSHFS that itself resides on a Ceph cluster and mounted over iSCSI for all it cares. Is it a block device? Yes? Good to go.
I remember years ago investigating alternatives to VMware vSAN and doing hyperconverged storage clusters in Red Hat with glusterFS in top of a couple of other layers. Feels rickety as heck putting it all together but it works well. Hard sell for “normal” people who expect to hit a Next button and get some pretty graphical chart though.
Tbf this would enforce the order in which the two people decrypt it, which may not be good if you expect these two people to "arrive" asyncrhonously and you don't want them to have to wait for the other before entering their password/key. But maybe that's too specific of a use case.
What about this:
Top layer encrypted by Alice
Middle layer encrypted by Bob
Bottom layer encrypted by Alice
If Alice arrives first, she decrypts the top layer and has to wait for Bob to arrive. She cannot go because she has to decrypt the last layer.
If Bob arrives first, he has to wait for Alice to arrive. He cannot go because he hasn't decrypted anything yet.
Great! Although I think that security actually goes down that way. Something something about statistics. A crypto expert could probably explain that properly and we could pretend to understand it.
I have an SSD and an HDD—I was considering on my next distro hop to put the root partition on the SSD and home partition on the HDD, decrypt the SSD and top level of the HDD upon boot, then decrypt the bottom level of the HDD upon user login. I'm sure many will think that's overkill or silly, but hey, if you have full disk encryption you'll have to enter two passwords to get into your computer anyway, just means your personal files get protected with two passwords. I would agree it's mostly gimmicky but I still want to try it out lol