nixpkgs/nixos/modules/system/boot
Moritz Maxeiner 407a770161 Rewrite as a pre-boot authentication module (mostly) comforming to the design specification of
'YubiKey Integration for Full Disk Encryption Pre-Boot Authentication (Copyright) Yubico, 2011 Version: 1.1'.

Used binaries:
  * uuidgen - for generation of random sequence numbers
  * ykchalresp - for challenging a Yubikey
  * ykinfo - to check if a Yubikey is plugged in at boot (fallback to passphrase authentication otherwise)
  * openssl - for calculation of SHA-1, HMAC-SHA-1, as well as AES-256-CTR (de/en)cryption

Main differences to the specification mentioned above:
  * No user management (yet), only one password+yubikey per LUKS device
  * SHA-512 instead of CRC-16 for checksum

Main differences to the previous implementation:
  * Instead of changing the key slot of the LUKS device each boot,
    the actual key for the LUKS device will be encrypted itself
  * Since the response for the new challenge is now calculated
    locally with openssl, the MITM-USB-attack with which previously
    an attacker could obtain the new response (that was used as the new
    encryption key for the LUKS device) by listening to the
    Yubikey has ideally become useless (as long as uuidgen can
    successfuly generate new random sequence numbers).

Remarks:
  * This is not downwards compatible to the previous implementation
2014-01-28 04:02:51 +01:00
..
loader gummiboot module: Don't use obsolete environment.nix option 2014-01-05 15:53:39 -05:00
kernel.nix nixos initrd: load atkbd, not xtkbd 2013-12-23 09:01:45 +01:00
kexec.nix Move all of NixOS to nixos/ in preparation of the repository merge 2013-10-10 13:28:20 +02:00
luksroot.nix Rewrite as a pre-boot authentication module (mostly) comforming to the design specification of 2014-01-28 04:02:51 +01:00
modprobe.nix Add support for lightweight NixOS containers 2013-11-27 17:14:10 +01:00
readonly-mountpoint.c Move all of NixOS to nixos/ in preparation of the repository merge 2013-10-10 13:28:20 +02:00
shutdown.nix Disable various services when running inside a container 2013-11-26 18:19:45 +01:00
stage-1-init.sh Shut up "failed to resume" warning if there is no resume device 2013-10-30 18:47:43 +01:00
stage-1.nix Add support for lightweight NixOS containers 2013-11-27 17:14:10 +01:00
stage-2-init.sh Move all of NixOS to nixos/ in preparation of the repository merge 2013-10-10 13:28:20 +02:00
stage-2.nix Add lots of missing option types 2013-10-30 18:47:43 +01:00
systemd-unit-options.nix Allow services to specify a pre-stop script 2013-11-26 18:24:55 +01:00
systemd.nix systemd: Enable specifying extra config files for a unit 2014-01-18 11:10:39 -05:00