Unlocking LUKS with NitroKey/Yubikey: FIDO2, HMAC-SHA1, or OpenPGP?
from modem_down@thebrainbin.org to selfhosted@lemmy.world on 31 Jul 16:40
https://thebrainbin.org/m/selfhosted@lemmy.world/t/1840432

Crossposted from https://thebrainbin.org/m/linux@lemmy.ml/t/1840283

Which approach do you think is better, and why?

  1. FIDO2
  2. HMAC-SHA1
  3. OpenPGP (alternative guide)

Or do you think there is an even better way to use a hardware security token to unlock drives having LUKS full disk encryption?

##fde ##linux ##luks ##nitrokey ##security ##sysadmin ##yubikey #selfhosted

threaded - newest

talkingpumpkin@lemmy.world on 31 Jul 17:07 next collapse

Does this have anything to do with self hosting?

modem_down@thebrainbin.org on 31 Jul 17:28 collapse

Yes. Here are some common self-hosting scenarios:

  • Home server containing family files: scans, photos, device backups, ...
  • Office server containing business files: sensitive documents, device backups, ...
  • Web or email server containing websites, Fediverse instances, emails, etc

In all those cases, full disk encryption (FDE) is a sensible precaution to protect the data in case the server is physically stolen.

Linux is probably the most common OS kernel for self-hosting. On Linux, LUKS (Linux Unified Key Setup) is probably the best FDE system. It's mature and reliable. But anyone self-hosting a Linux server with LUKS FDE is faced with the question of where to store the keys.

Hardware security tokens (HSTs) are widely considered a safer place for keys than SSDs, HDDs, or USB storage. They follow the smartcard principle: a private key can be written to an HST but not read from it (security vulnerabilities excepted). Instead, they implement cryptographic algorithms to prove possession of the private key. So, anyone self-hosting a Linux server with LUKS FDE should strongly consider storing their private key(s) on an HST.

However, there is more than one way to do that. Hence the question in my OP.

talkingpumpkin@lemmy.world on 01 Aug 02:42 collapse

If it’s a server for self hosting you definitely don’t want anything that requires interaction at boot.

There’s a project that allows unlocking LUKS with a decryption key retrieved from another machine in your network. I don’t recall the name but someone hopefully will.

The idea is that put the key on, say, a raspberry pi zero w that you hide somewhere in your house so that if someone steals your server they don’t have the key.

esc@piefed.social on 01 Aug 03:44 next collapse

tang

modem_down@thebrainbin.org on 01 Aug 08:07 collapse

tang

Thanks. TIL about Clevis/Tang.

modem_down@thebrainbin.org on 01 Aug 08:12 next collapse

If it's a server for self hosting you definitely don't want anything that requires interaction at boot.

Depends on use-case. If you only plan to boot it when you're physically present, it's fine.

JustEnoughDucks@slrpnk.net on 01 Aug 10:38 next collapse

Some people are fine with down time/inconvenience in exchange for security.

I have my boot drive on a secured USB and LUKS keyfile with the rest of the partitions on an encrypted SSD and data on encrypted HDDs.

In a smash and grab (or fascist government gestapo smash and grab), the server is pretty impossible to steal information from (inject illegal content to in order to fabricate evidence) without the USB and they can’t simply inject boot malware either. A network device is almost always findable either by cables or WiFi broadcast analyzing.

superglue@lemmy.dbzer0.com on 01 Aug 12:16 next collapse

I haven’t actually tried it yet, but on that note, if you have an OpenWRT router you can configure dropbear to unlock it.

percent@infosec.pub on 02 Aug 04:25 collapse

My servers require manual unlock via SSH at boot. It has been great for years.

irmadlad@lemmy.world on 31 Jul 18:17 next collapse

I just manually type the password in. Not quit as elegant, but does the job.

It_is_gaslighting@discuss.tchncs.de on 31 Jul 18:37 next collapse

FIDO2 is great. Only thing I am scared of is losing it/them. So a backup access becomes the issue IMHO.

esc@piefed.social on 01 Aug 03:41 collapse

You can have multiple ways to unlock luks container, what’s the issue?

It_is_gaslighting@discuss.tchncs.de on 03 Aug 17:38 collapse

Every way is a security risk in itself. For example if my home burns down I lose x% of the ways. y% can potentially break. z% can potentially be lost to my stupidity. What if I get in a car accident and hit my head and get amnesia and forget a mandatory password: for these cases there are different retrieval strategies, but obviously are ‘stressful’ to set up to stay relatively secure. What can I say, these are the thoughts I have about this topic.

esc@piefed.social on 03 Aug 19:23 collapse

At first you were concerned about backup access, there are multiple facrors of backup access.

Regarding other issues, you either use disk encryption (and a lot of other things as well) and accept these concerns as part of the deal or you dont use it. That’s why actual security involves threat modeling and mitigation. Encryption by itself gives little more then headache.

irmadlad@lemmy.world on 31 Jul 21:20 next collapse

Is there a down vote bot loose on Lemmy? Weirdness.

glizzyguzzler@piefed.blahaj.zone on 01 Aug 00:50 next collapse

Interested in what you divine, I’m switching from a USB drive with the key in it to one of those fancy things.

mazzilius_marsti@lemmy.world on 01 Aug 03:56 next collapse

i use a yubikey and still have the ability to type my LUKs password in. Yubikey is just more convenience: plug in and it auto type the password field. On Fedora this means it populates the field with asterisks. Still, i think using password is the best method.

With that said, i believe a much better secure layer is something similar to what Novacustoms, Purism attempt to do: verify if somebody else not you try to access the laptop. So far i know of only Dasharo boot and the stuff from Purism that can do these…

So the layout is: Boot verification -> LUKs-> your data

Or if you have the juices and powers: Boot verification -> LUKS -> QuebeOS dom0 -> choose your Quebess.

modem_down@thebrainbin.org on 01 Aug 08:10 collapse

i believe a much better secure layer is something similar to what Novacustoms, Purism attempt to do: verify if somebody else not you try to access the laptop.

You're thinking of Heads, which I agree is ideal for supported motherboards.

libewa@feddit.org on 01 Aug 10:43 next collapse

I personally use a TPM with Measured Boot (so it doesn‘t give the key to external disks), and have a YubiKey and password as fallback options.

DieserTypMatthias@lemmy.ml on 02 Aug 06:35 collapse

Neither. I just use my Yubikey as a backup in case I don’t have access to Bitwarden.