Viso disko šifravimas naudojant „cryptsetup/LUKS¶
✓ |
⨯ |
⨯ |
⨯ |
✓ |
✓ |
✓ |
✓ |
Šiame vadove rodoma, kaip konfigūruoti LUKS užšifruotus tomus, kad įkrovos metu būtų galima autentifikuoti naudojant „Nitrokey Pro“ arba „Nitrokey“ saugyklą.
Norint suteikti šiek tiek informacijos, cryptsetup-initramfs dabar palaiko „OpenPGP“ išmaniųjų kortelių, tokių kaip „Nitrokey Pro“ ir „Nitrokey Storage“, naudojimą LUKS užšifruotiems tomams atrakinti. Baigus sąranką, įkrovos metu tereikės įdėti „Nitrokey“ raktą ir įvesti naudotojo PIN kodą, užuot įvedus įprastą disko šifravimo slaptažodį.
Šios instrukcijos buvo išbandytos „Ubuntu 20.04“ ir „Debian 10“.
Įspėjimas
Šis vadovas gali užblokuoti jūsų kompiuterį. Turėtumėte žinoti apie šią riziką ir rekomenduojame toliau pateiktą scenarijų naudoti antriniame kompiuteryje arba atlikus visą atsarginę kopiją, nes galite prarasti duomenis.
Reikalavimai¶
„Ubuntu“ arba „Debian“ kompiuteris su bent vienu LUKS užšifruotu tomu.
Norėdami nustatyti, kuris metodas suderinamas su šiuo vadovu, žr. tolesnį skyrių.
„Nitrokey Pro 2“ arba „Nitrokey Storage 2“ inicializuota su raktais.
Žinomos problemos¶
Skriptas kol kas veikia tik su rankiniu būdu suskirstytais tomais, kuriuos sudaro nešifruotas /boot
skirsnis ir šifruotas šakninis /
skirsnis.
Šiame vadove nesirinkite automatinio viso disko šifravimo, kurį numato jūsų naudojama operacinė sistema. Naudodami „Ubuntu“ ir „Debian“ diegimo sąsają, susidursite su pasikartojančiomis klaidomis, kai skaidymas bus atliekamas automatiškai, naudojant „Ubuntu“ ir „Debian“ diegimo sąsają.
Instrukcijos¶
Įdiegti priklausomybes
$ sudo apt install scdaemon opensc gnupg2
Sukurti smartcard-luks katalogą
$ mkdir smartcard-luks && cd smartcard-luks
Atsisiųsti smartcard-luks-script
$ wget https://raw.githubusercontent.com/daringer/smartcard-key-luks/main/smartcard-key-luks $ sudo chmod +x smartcard-key-luks
Eksportuoti viešąjį raktą
Kaip eksportuoti viešąjį raktą iš GnuPG raktų rinkinio:
$ gpg2 --armor --export KeyID > pubkey.asc
Jei viešąjį raktą jau esate įkėlę į raktų serverį (arba turite jį išsaugoję kur nors kitur), turėtumėte jį gauti jums patogiausiu būdu ir pereiti prie 5 veiksmo.
Nustatykite ir patikrinkite teisingą LUKS įrenginio pavadinimą šakniniam skirsniui:
$ cat /etc/crypttab # if there is only one entry, you want the 1st column of this entry
Patarimas
Paprastai tai turėtų būti kažkas panašaus į nvme0n1p3_crypt (NitroPC) arba sda3_crypt (NitroPad). Galite ir turėtumėte patikrinti, ar UUID, nurodytas /etc/crypttab, yra paskirtasis skirsnis, patikrinę simbolinę nuorodą /dev/disks/by-uuid/.
Vykdykite scenarijų, kaip argumentus nurodydami luks įrenginio pavadinimą (pvz., nvme0n1p3_crypt) ir pubkey.asc.
$ sudo ./smartcard-key-luks nvme0n1p3_crypt pubkey.asc
Paleidus scenarijų, kurio argumentas yra OpenPGP viešasis raktas, automatiškai sukuriama nauja LUKS paslaptis, užšifruojama pagal tą viešąjį raktą ir nustatomos kripttab, LUKS, initramfs ir GRUB.
Pirmiausia jūsų bus paprašyta User PIN
Kai atrakinsite „Nitrokey“ raktą, būsite paprašyti nurodyti savo OLD passphrase
. Tai slaptažodis, kurį įvedėte šifruodami savo tomą diegimo metu.
Pastaba
Tai atsarginė alternatyva, jei prarastumėte „Nitrokey“ raktą arba jei jis būtų neprieinamas. Kol kas ji nebuvo išbandyta, todėl naudotojai turi žinoti, kad gali būti užblokuotas jų kompiuteris, jei atsarginis metodas neveikia.
Įvedus slaptažodį, scenarijus maždaug per minutę baigia sąranką. Nenutraukite scenarijaus, nes po perkrovimo kompiuteris gali būti užblokuotas.
Atlikta!
Dabar turite iš naujo paleisti kompiuterį, o užšifruotam diskui atrakinti turėtumėte naudoti „Nitrokey“ raktą.
Naudojimas¶
Perkrovus kompiuterį turėtų būti paprašyta nurodyti naudotojo PIN kodą.
Įveskite naudotojo PIN kodą, kad atrakintumėte diską
Kiti patarimai¶
Keisti slaptažodį¶
Atlikus šią sąranką, nebeturėtumėte naudoti (gnomo) diskų įrankio, kad pakeistumėte (atsarginę) slaptažodžių frazę. Tinkamas būdas tai padaryti - tiesiogiai iškviesti cryptsetup taip:
$ sudo cryptsetup luksChangeKey /dev/nvme0n1p3
nvme0n1p3 - tai skirsnis, kuriam nustatėte raktus.
Kelių klavišų naudojimas¶
Lengva naudoti kelis (aparatinius) saugumo raktus, kad kiekvienas iš jų galėtų savarankiškai atrakinti LUKS diską. Tiesiog eksportuokite kelis viešuosius raktus ir taip pat perduokite kelis raktus sąrankos scenarijui, pvz:
$ sudo ./smartcard-key-luks nvme0n1p3_crypt pubkey-1.asc pubkey-2.asc
Nustatyti kortelės turėtojo vardą¶
Įkrovos metu įvedant PIN kodą, kad būtų iššifruotas LUKS šakninis skirsnis, naudotojui pateikiamas kortelės turėtojas, norėdami tai nustatyti, naudokite $ gpg --edit-card
ir raginimo viduje įveskite admin
ir </x id="198"></x>
, kad nustatytumėte „OpenPGP Card“ kortelės (Nitrokey Storage 2 arba Nitrokey Pro 2) turėtoją.
Keisti / šalinti raktus¶
Tiesiogiai pridėti ir (arba) pašalinti raktų neįmanoma. Todėl reikia ištrinti / pašalinti senąją sąranką ir iš naujo paleisti sąranką su nurodytu (-ais) raktu (-ais):
Pašalinkite rakto failą (kelią, jei naudojote pirmiau pateiktą scenarijų) iš luks-device (nvme0n1p3):
$ sudo cryptsetup luksRemoveKey /dev/nvme0n1p3 /etc/cryptsetup-initramfs/cryptkey.gpg
Pašalinti patį rakto failą:
$ sudo rm /etc/cryptsetup-initramfs/cryptkey.gpg
Pakartokite pirmiau pateiktą sąranką.
LUKS2 atrakinimas naudojant X509 sertifikatą¶
SystemD palaiko LUKS2 skaidinio atrakinimą naudojant X509 sertifikatą, puikų tinklaraščio įrašą apie tai, kaip tai įgyvendinti, rasite Vladimiro Timofeenko asmeniniame tinklaraštyje