This is an alternative to manually typing your password to decrypt your home server disks.

The idea is that you have a Tang server somewhere on your local network. When your server boots up, it needs to communicate with the Tang server to unlock the disk. Tang doesn’t store the key and is stateless, but the client requires Tang’s cooperation to compute the key.

For me, I’m thinking about someone breaking into my house and stealing my computer. Currently, I have LUKS read a keyfile from a USB drive… but I almost always leave it plugged in… so a thief would probably accidentally steal that too.

With this setup, I’m thinking maybe I could setup a Pi on the opposite side of my house, ideally hidden. And then if my home server gets stolen, LUKS wouldn’t be able to reach my Tang server, and therefore not unlock anything.

  • FedX@quokk.au
    link
    fedilink
    English
    arrow-up
    2
    ·
    8 hours ago

    Listened to a rather interesting episode of Darknet Diaries the other day about a European cyber crime group. To this day, the FBI has been unable to decrypt the devices. The feds didn’t give too many details about the specifics, but what they did share was quite interesting:

    • Five layers of encryption, each with unique passwords.
    • LUKS root partition presumably tied to TPM2.
    • Veracrypt or truecrypt volumes in userland.
    • A custom-made encryption toolkit.

    From what I gathered, I think the optimal balance of usability and security (especially for a headless machine) would be the following:

    • LUKS root volume tied to TPM to protect against cloning of disk. Also, nothing too valuable ever lives on root.
    • More important data stored behind a FUSE encryption layer like gocryptfs, these can be easily opened remotely. You can also tie the password to data hidden inside the LUKS volume for effective two-password protection if the volume is not already behind a LUKS layer.
    • If your really concerned, add in additional layers as needed. You can tie LUKS to TPM and FIDO, not sure if you can set up a two password mode, but that would be quite nice. You can also (probably) tie FUSE based systems to biometrics like Howdey or fingerprint sensors if you have them. This could also be setup in a kind of two-password mode for a single volume. Realistically, two layers of encryption is overkill, but it’s more about ensuring multiple layers of redundancy rather than making it harder to crack.
    • I can’t recommend systemd because of its numerous security vulnerabilities, but homed does have a neat feature where it will unmount encrypted home volumes when your computer goes to sleep. Not sure how effective or useful it is, but it is a nice feature. Been wanting to see if I can setup something similar on Chimera/Artix with dinit user services.
    • Defiantly set up duress key-codes/panic buttons. Likewise, been wanting to write a clone of swaylock with duress code support, but as far as I know, nothing of the sort exists right now.

    It is also very much worth noting, even though the FBI never got into the hackers’ computers, they had more than enough evidence to convict the lot. Being the defender of a computer system is always a losing battle.