Teljes lemezes titkosítás cryptsetup/LUKS segítségével

Compatible Nitrokeys

3A/C/Mini

Passkey

HSM 2

Pro 2

FIDO2

Storage 2

Start

U2F

active

inactive

inactive

active

inactive

active

active

inactive

Megjegyzés

Ez az útmutató jelenleg elavult.

This guide shows how to configure LUKS-encrypted volumes, to authenticate at boot with Nitrokey Pro or Nitrokey Storage.

Némi háttérinformációként a cryptsetup-initramfs mostantól támogatja az OpenPGP intelligens kártyák, például a Nitrokey Pro és a Nitrokey Storage használatát a LUKS-kódolt kötetek feloldásához. A telepítés befejezése után már csak be kell helyeznie a Nitrokey-t a rendszerindításkor, és be kell írnia a felhasználói PIN-kódot, ahelyett, hogy a szokásos lemez titkosítási jelszavát gépelné be.

Ezeket az utasításokat Ubuntu 20.04 és Debian 10 rendszereken teszteltük.

Figyelem

Az alábbi útmutató potenciálisan kizárhatja Önt a számítógépéből. Tisztában kell lennie ezekkel a kockázatokkal, és javasoljuk, hogy az alábbi szkriptet egy másodlagos számítógépen vagy egy teljes biztonsági mentés után használja, mivel elveszítheti adatait.

Követelmények

  • Ubuntu vagy Debian számítógép legalább egy LUKS-titkosított kötettel.

Lásd az alábbi részt annak meghatározásához, hogy melyik módszer kompatibilis ezzel az útmutatóval.

  • A Nitrokey Pro 2 or Nitrokey Storage 2 initialized with keys.

Ismert problémák

Eddig a szkript csak kézzel particionált kötetekkel működik, amelyek egy titkosítatlan /boot partícióból és egy titkosított gyökér / partícióból állnak.

Kérjük, ne válassza az útmutatóhoz az Ön által használt operációs rendszer által biztosított automatikus teljes lemeztitkosítást. Az Ubuntu és a Debian telepítőfelületének használatával a partícionálás automatikus elvégzésekor visszatérő hibákkal fog szembesülni.

Utasítások

  1. Függőségek telepítése

    $ sudo apt install scdaemon opensc gnupg2
    
  2. Smartcard-luks könyvtár létrehozása

    $ mkdir smartcard-luks && cd smartcard-luks
    
  3. A smartcard-luks-script letöltése

    $ wget https://raw.githubusercontent.com/daringer/smartcard-key-luks/main/smartcard-key-luks
    $ sudo chmod +x smartcard-key-luks
    
  4. A nyilvános kulcs exportálása

    To export your public key from GnuPG’s keyring:

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

    Ha már feltöltötte a nyilvános kulcsot egy kulcsszerverre (vagy máshol tárolja), akkor azt a számára legmegfelelőbb módon kell lekérnie, és az 5. lépéssel kell folytatnia.

  5. Határozza meg és ellenőrizze a gyökérpartíció helyes LUKS-eszköznevét:

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

    Tipp

    Ez általában valami olyasmi, mint nvme0n1p3_crypt (NitroPC esetén) vagy sda3_crypt (NitroPads esetén). A /dev/disks/by-uuid/ szimbolikus hivatkozással ellenőrizheted, hogy az /etc/crypttab-ban megadott UUID a kijelölt partíció-e, és érdemes is ellenőrizned.

  6. Futtassa a szkriptet a luks eszköz nevével (pl. nvme0n1p3_crypt) és a pubkey.asc paraméterekkel.

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

Miután futtatja a szkriptet az OpenPGP nyilvános kulcsával, automatikusan létrehoz egy új LUKS-titkot, titkosítja azt a nyilvános kulccsal, és beállítja a crypttab, a LUKS, az initramfs és a GRUB rendszereket.

Először a User PIN kérdezi meg a ``

img1

Miután feloldotta a Nitrokey-t, a rendszer meg fogja kérdezni a OLD passphrase. Ez az a jelszó, amelyet a telepítéskor a kötet titkosításához adott meg.

img2

Megjegyzés

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.

Miután megadta a jelszót, a szkript körülbelül egy perc alatt befejezi a beállítást. Ne szakítsa meg a szkriptet, különben az újraindítás után kizárhatja magát a számítógépből.

img3

Kész!

Mostanra újra kell indítanod, és a Nitrokey-vel fel kell tudnod oldani a titkosított meghajtódat.

Használat

Az újraindítás után a rendszer kérni fogja a felhasználói PIN-kódot.

img5

Adja meg a felhasználói PIN-kódot a meghajtó feloldásához

img6

További tippek

Jelszó módosítása

Ha ez a beállítás megtörtént, nem szabad többé a (gnome) disks segédprogramot használni a (tartalék) jelszó módosítására. A megfelelő módja ennek, ha közvetlenül hívod a cryptsetup-ot, így:

$ sudo cryptsetup luksChangeKey /dev/nvme0n1p3

A nvme0n1p3 az a partíció, amelyhez a kulcsokat beállítottad.

Több kulcs használata

Könnyen lehet több (hardveres) biztonsági kulcsot használni, így mindegyikük önállóan képes feloldani a LUKS-meghajtót. Csak exportáljon több nyilvános kulcsot, és adjon át több kulcsot a beállítási szkriptnek, így:

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

Kártyabirtokos nevének beállítása

A LUKS gyökérpartíció dekódolásához szükséges PIN-kód bevitele során a felhasználónak egy kártyatulajdonos jelenik meg, ennek beállításához használja a $ gpg --edit-card és a prompton belül írja be a admin<x> és name az OpenPGP kártya (Nitrokey Storage 2 vagy Nitrokey Pro 2) kártyatulajdonosának beállításához.

Kulcsok cseréje/törlése

A kulcsok közvetlen hozzáadása/eltávolítása nem lehetséges. Ezért törölnie/eltávolítania kell a régi beállításokat, és újra kell indítania a beállításokat a kijelölt kulcs(ok)kal:

Távolítsa el a kulcsfájlt (elérési útvonal, ha a fenti szkriptet használta) a luks-device (nvme0n1p3):

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

Magának a kulcsfájlnak az eltávolítása:

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

Futtassa újra a fenti beállításokat.

LUKS2 feloldása X509 tanúsítvánnyal

A SystemD támogatja a LUKS2 partíció feloldását X509 tanúsítvány használatával, talál egy remek blogbejegyzést arról, hogyan lehet ezt megvalósítani a `Vlagyimir Timofenko személyes blogján.