Šifrování celého disku pomocí cryptsetup/LUKS¶
Compatible Nitrokeys |
|||||||
|---|---|---|---|---|---|---|---|
✓ active |
⨯ inactive |
⨯ inactive |
✓ active |
⨯ inactive |
✓ active |
✓ active |
⨯ inactive |
Poznámka
Tato příručka je v současné době zastaralá.
This guide shows how to configure LUKS-encrypted volumes, to authenticate at boot with Nitrokey Pro or Nitrokey Storage.
Abychom vám poskytli základní informace, nástroj cryptsetup-initramfs nyní podporuje použití čipových karet OpenPGP, jako jsou Nitrokey Pro a Nitrokey Storage, k odemykání svazků šifrovaných pomocí LUKS. Po dokončení nastavení stačí při spuštění systému vložit kartu Nitrokey a zadat uživatelský kód PIN namísto zadávání běžné přístupové fráze pro šifrování disku.
Tyto pokyny byly testovány v systémech Ubuntu 20.04 a Debian 10.
Varování
Následující průvodce vás může potenciálně zablokovat od počítače. Měli byste si být vědomi těchto rizik a doporučujeme použít níže uvedený skript na sekundárním počítači nebo po úplné záloze, protože byste mohli přijít o svá data.
Požadavky¶
Počítač s Ubuntu nebo Debianem s alespoň jedním svazkem šifrovaným pomocí LUKS.
V níže uvedeném oddíle zjistíte, která metoda je kompatibilní s touto příručkou.
A Nitrokey Pro 2 or Nitrokey Storage 2 initialized with keys.
Známé problémy¶
Skript zatím pracuje pouze s ručně rozdělenými svazky, které se skládají z nešifrovaného /boot oddílu a šifrovaného kořenového / oddílu.
V této příručce nezvolte automatické šifrování celého disku, které poskytuje operační systém, který používáte. Při automatickém rozdělení disku pomocí instalačního rozhraní v Ubuntu a Debianu se budete setkávat s opakujícími se chybami.
Pokyny¶
Instalace závislostí
$ sudo apt install scdaemon opensc gnupg2
Vytvoření adresáře smartcard-luks
$ mkdir smartcard-luks && cd smartcard-luks
Stáhněte si skript smartcard-luks
$ wget https://raw.githubusercontent.com/daringer/smartcard-key-luks/main/smartcard-key-luks $ sudo chmod +x smartcard-key-luks
Export veřejného klíče
To export your public key from GnuPG’s keyring:
$ gpg2 --armor --export KeyID > pubkey.asc
Pokud jste již veřejný klíč nahráli na server klíčů (nebo jej máte uložený někde jinde), měli byste jej načíst způsobem, který vám nejvíce vyhovuje, a přejít ke kroku 5.
Určete a ověřte správný název zařízení LUKS pro kořenový oddíl:
$ cat /etc/crypttab # if there is only one entry, you want the 1st column of this entry
Rada
Obvykle by to mělo být něco jako nvme0n1p3_crypt (pro NitroPC) nebo sda3_crypt (pro NitroPady). Můžete a měli byste zkontrolovat, zda UUID uvedené uvnitř /etc/crypttab je určený oddíl, a to kontrolou symbolického odkazu uvnitř /dev/disks/by-uuid/.
Spusťte skript s názvem zařízení luks (např. nvme0n1p3_crypt) a pubkey.asc jako argumenty.
$ sudo ./smartcard-key-luks nvme0n1p3_crypt pubkey.asc
Jakmile skript spustíte s veřejným klíčem OpenPGP jako argumentem, automaticky nastaví nový tajný klíč LUKS, zašifruje jej proti tomuto veřejnému klíči a nastaví crypttab, LUKS, initramfs a GRUB.
Nejprve budete vyzváni k zadání User PIN.
Po odemknutí klíče Nitrokey budete vyzváni k zadání OLD passphrase. Jedná se o přístupovou frázi, kterou jste zadali při šifrování svazku při instalaci.
Poznámka
This is a fall-back alternative in case you lose your Nitrokey, or if it’s unavailable. So far, it was not tested, and users must be aware of the risk of getting locked out of their computer, if the fall-back method does not work.
Po zadání přístupové fráze skript dokončí nastavení přibližně za jednu minutu. Nepřerušujte skript, jinak by mohlo dojít k zablokování počítače po restartu.
Hotovo!
Nyní musíte restartovat počítač a měli byste být schopni odemknout zašifrovaný disk pomocí klíče Nitrokey.
Použití¶
Po restartu byste měli být vyzváni k zadání uživatelského kódu PIN.
Zadejte svůj uživatelský kód PIN a odemkněte jednotku
Další tipy¶
Změna přístupové fráze¶
Po dokončení tohoto nastavení byste již neměli používat nástroj (gnome) disks ke změně (záložní) přístupové fráze. Správný způsob je zavolat cryptsetup přímo takto:
$ sudo cryptsetup luksChangeKey /dev/nvme0n1p3
nvme0n1p3 je oddíl, pro který jste nastavili klíče.
Použití více kláves¶
Je snadné použít více (hardwarových) bezpečnostních klíčů, aby každý z nich mohl odemknout jednotku LUKS nezávisle na sobě. Stačí exportovat více veřejných klíčů a také předat více klíčů do instalačního skriptu takto:
$ sudo ./smartcard-key-luks nvme0n1p3_crypt pubkey-1.asc pubkey-2.asc
Nastavit jméno držitele karty¶
Při zadávání kódu PIN při zavádění systému pro dešifrování kořenového oddílu LUKS se uživateli zobrazí držitel karty, pro jeho nastavení použijte $ gpg --edit-card a uvnitř výzvy zadejte admin a name pro nastavení držitele karty OpenPGP (Nitrokey Storage 2 nebo Nitrokey Pro 2).
Výměna/odstranění klíčů¶
Klíče není možné přidávat/odebírat přímo. Proto je třeba odstranit/odstranit staré nastavení a znovu spustit nastavení s určeným klíčem (klíči):
Odstraňte soubor s klíčem (cestu, pokud jste použili výše uvedený skript) z luks-device (nvme0n1p3):
$ sudo cryptsetup luksRemoveKey /dev/nvme0n1p3 /etc/cryptsetup-initramfs/cryptkey.gpg
Odstranění samotného souboru s klíčem:
$ sudo rm /etc/cryptsetup-initramfs/cryptkey.gpg
Znovu proveďte výše uvedené nastavení.
Odemknutí LUKS2 pomocí certifikátu X509¶
SystemD podporuje odemknutí oddílu LUKS2 pomocí certifikátu X509, skvělý blogový zápis o tom, jak to realizovat, najdete na Osobní blog Vladimira Timofeenka.