linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Read-protected UEFI variables
@ 2018-02-14 12:52 Benjamin Drung
  2018-02-14 13:09 ` Ard Biesheuvel
  0 siblings, 1 reply; 8+ messages in thread
From: Benjamin Drung @ 2018-02-14 12:52 UTC (permalink / raw)
  To: Matthew Garrett, Jeremy Kerr, Matt Fleming, linux-efi, linux-kernel

Hi,

I am exploring the possibility to store SSH and other keys in UEFI
variables for systems that do not have persistent storage. These
systems boot via network and need individual SSH keys which ideally
should not be distributed via network.

The plan is to write a small daemon that starts at boot and gets the
SSH keys from EFI variables to individualize the system with SSH keys. 
I plan to release the code as free software. Simple proof-of-concept
code:

mount -t efivarfs none /sys/firmware/efi/efivars
for key in ssh_host_dsa_key ssh_host_ecdsa_key ssh_host_rsa_key; do
  dd ibs=1 skip=4 if=/sys/firmware/efi/efivars/${key}-89df11f4-38e6-473e-ab43-b4406b76fba9 of=/etc/ssh/$key
done

I am not the first person having the idea to use UEFI variables to
store keys:
https://www.usenix.org/conference/srecon17asia/program/presentation/korgachin

There is one problem: The keys should be readable only by root. When
mounting efivarfs, all variables have the permission 644 which makes
them readable by all users. I have different ideas how to solve it:

1) Hard-code a list of GUIDs that should be only readable by root in
the kernel module. These modules would also be not set to immutable.

2) Instead of hard-coding GUIDs, add a kernel module parameter to
specify the GUIDs. Maybe have a default list in the kernel module.

3) Add a mount option to specify the protected GUIDs.

Feedback is welcome.

-- 
Benjamin Drung
System Developer
Debian & Ubuntu Developer

ProfitBricks GmbH
Greifswalder Str. 207
D - 10405 Berlin

Email: benjamin.drung@profitbricks.com
URL: https://www.profitbricks.de

Sitz der Gesellschaft: Berlin
Registergericht: Amtsgericht Charlottenburg, HRB 125506 B
Geschäftsführer: Achim Weiss, Matthias Steinberg

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2018-02-19 20:25 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-14 12:52 Read-protected UEFI variables Benjamin Drung
2018-02-14 13:09 ` Ard Biesheuvel
2018-02-14 13:21   ` Benjamin Drung
2018-02-14 18:18     ` Môshe van der Sterre
2018-02-14 19:05       ` Benjamin Drung
2018-02-14 20:33     ` Austin S. Hemmelgarn
2018-02-15 19:04       ` Ard Biesheuvel
2018-02-19 20:24     ` Alan Cox

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).