Criptare completă a discului cu cryptsetup/LUKS#

(Nitrokey Pro 2 - Linux)

Acest ghid arată cum se configurează volumele criptate LUKS, pentru a se autentifica la pornire cu Nitrokey Pro sau Nitrokey Storage.

Pentru a vă oferi câteva informații, cryptsetup-initramfs are acum suport pentru utilizarea cardurilor inteligente OpenPGP, cum ar fi Nitrokey Pro și Nitrokey Storage, pentru a debloca volumele criptate LUKS. După ce ați terminat configurarea, va trebui doar să introduceți Nitrokey la pornire și să introduceți PIN-ul de utilizator, în loc să tastați fraza de acces obișnuită pentru criptarea discului.

Aceste instrucțiuni au fost testate pe Ubuntu 20.04 și Debian 10.

Atenționare

Următorul ghid vă poate bloca în mod potențial accesul la computer. Trebuie să fiți conștient de aceste riscuri și vă recomandăm să utilizați scriptul de mai jos pe un computer secundar sau după o copie de rezervă completă, deoarece vă puteți pierde datele.

Cerințe#

  • Un computer Ubuntu sau Debian cu cel puțin un volum criptat LUKS.

Consultați secțiunea de mai jos pentru a determina ce metodă este compatibilă cu acest ghid.

  • Un Nitrokey Pro 2 sau Nitrokey Storage 2 initializat cu chei.

Probleme cunoscute#

Până în prezent, scriptul funcționează numai cu volume partiționate manual, care sunt compuse dintr-o partiție necriptată /boot și o partiție rădăcină criptată /.

Vă rugăm să nu selectați criptarea automată a întregului disc oferită de sistemul de operare pe care îl utilizați pentru acest ghid. Vă veți confrunta cu erori recurente atunci când partiționarea se face automat, folosind interfața de instalare pe Ubuntu și Debian.

Instrucțiuni#

  1. Instalarea dependențelor

$ sudo apt install scdaemon opensc gnupg2
  1. Creați directorul smartcard-luks

$ mkdir smartcard-luks && cd smartcard-luks
  1. Descărcați smartcard-luks-script

$ wget https://raw.githubusercontent.com/daringer/smartcard-key-luks/main/smartcard-key-luks
$ sudo chmod +x smartcard-key-luks
  1. Exportați cheia publică

Pentru a exporta cheia publică din brelocul de chei al GnuPG:

$ gpg2 --armor --export KeyID > pubkey.asc

Dacă ați încărcat deja o cheie publică pe un server de chei (sau ați stocat-o în altă parte), trebuie să o recuperați în modul în care vă simțiți cel mai confortabil și să treceți la pasul 5.

  1. Determinați și verificați numele corect al dispozitivului LUKS pentru partiția-rădăcină:

$ cat /etc/crypttab
# if there is only one entry, you want the 1st column of this entry

Sugestie

De obicei, acesta ar trebui să fie ceva de genul nvme0n1p3_crypt (pentru NitroPC) sau sda3_crypt (pentru NitroPads). Puteți și ar trebui să verificați dacă UUID-ul menționat în /etc/crypttab este partiția desemnată, verificând legătura simbolică din /dev/disks/by-uuid/.

  1. Executați scriptul cu numele dispozitivului luks (de exemplu, nvme0n1p3_crypt) și pubkey.asc ca argumente.

$ sudo ./smartcard-key-luks nvme0n1p3_crypt pubkey.asc

După ce rulați scriptul cu cheia publică OpenPGP ca argument, acesta stabilește automat un nou secret LUKS, îl criptează cu ajutorul acelei chei publice și stabilește crypttab, LUKS, initramfs și GRUB.

În primul rând vi se va cere User PIN`

img1

Odată ce ați deblocat Nitrokey, vi se va solicita OLD passphrase. Este vorba de fraza de acces pe care ați introdus-o pentru a vă cripta volumul la instalare.

img2

Notă

Aceasta este o alternativă de rezervă în cazul în care vă pierdeți Nitrokey sau dacă acesta nu este disponibil. Deocamdată, nu a fost testată, iar utilizatorii trebuie să fie conștienți de riscul de a fi blocați în afara computerului, dacă metoda de rezervă nu funcționează.

După ce introduceți fraza de acces, scriptul finalizează configurarea în aproximativ un minut. Nu întrerupeți scriptul, altfel riscați să vă blocați calculatorul după repornire.

img3

Gata!

Până acum trebuie să reporniți și ar trebui să puteți utiliza Nitrokey pentru a debloca unitatea criptată.

Utilizare#

După repornire ar trebui să vi se ceară PIN-ul de utilizator.

img5

Introduceți PIN-ul de utilizator pentru a debloca unitatea

img6

Indicații suplimentare#

Schimbarea frazei de acces#

Odată ce ați făcut această configurare, nu ar trebui să mai folosiți utilitarul (gnome) disks pentru a schimba fraza de acces (de rezervă). Modul corect de a face acest lucru este să apelați direct cryptsetup, astfel:

$ sudo cryptsetup luksChangeKey /dev/nvme0n1p3

Cu nvme0n1p3 fiind partiția pentru care ați configurat cheile.

Utilizați mai multe taste#

Este ușor de utilizat mai multe chei de securitate (hardware), astfel încât fiecare dintre ele să poată debloca unitatea LUKS în mod independent. Trebuie doar să exportați mai multe chei publice și, de asemenea, să pasați mai multe chei către scriptul de configurare, astfel:

$ sudo ./smartcard-key-luks nvme0n1p3_crypt pubkey-1.asc pubkey-2.asc

Setați numele titularului de card#

În timpul introducerii PIN-ului la pornire pentru decriptarea partiției rădăcină LUKS, utilizatorului i se prezintă un titular de card, pentru a seta acest lucru vă rugăm să utilizați $ gpg --edit-card și în interiorul promptului introduceți admin` și name pentru a seta titularul cardului pentru cardul OpenPGP (Nitrokey Storage 2 sau Nitrokey Pro 2).

Înlocuirea/ștergerea cheilor#

Nu este posibil să adăugați/eliminați chei direct. Prin urmare, trebuie să ștergeți/eliminați vechea configurare și să reluați configurarea cu cheia (cheile) desemnată (desemnate):

Eliminați fișierul cheie (calea, dacă ați folosit scriptul de mai sus) din luks-device (nvme0n1p3):

$ sudo cryptsetup luksRemoveKey /dev/nvme0n1p3 /etc/cryptsetup-initramfs/cryptkey.gpg

Elimină fișierul cheie în sine:

$ sudo rm /etc/cryptsetup-initramfs/cryptkey.gpg

Reexecutați configurația de mai sus.

Deblocarea LUKS2 cu certificat X509#

SystemD suportă deblocarea unei partiții LUKS2 folosind un certificat X509, găsiți o intrare pe blog despre cum să realizați acest lucru la Blogul personal al lui Vladimir Timofeenko.