Koko levyn salaus cryptsetup/LUKS:llä#

Tässä oppaassa näytetään, miten määritetään LUKS-salatut volyymit, jotta ne voidaan todentaa käynnistyksen yhteydessä Nitrokey Pro- tai Nitrokey Storage-ohjelmalla.

Taustaksi mainittakoon, että cryptsetup-initramfs tukee nyt OpenPGP-älykorttien, kuten Nitrokey Pro ja Nitrokey Storage, käyttöä LUKS-salattujen volyymien avaamiseen. Kun olet saanut asennuksen valmiiksi, sinun tarvitsee vain asettaa Nitrokey-korttisi käynnistyksen yhteydessä ja syöttää User PIN-koodisi sen sijaan, että kirjoittaisit tavallisen levynsalauslausekkeen.

Nämä ohjeet on testattu Ubuntu 20.04:llä ja Debian 10:llä.

Varoitus

Seuraava opas voi mahdollisesti lukita sinut ulos tietokoneesta. Sinun on syytä olla tietoinen näistä riskeistä, ja suosittelemme, että käytät alla olevaa komentosarjaa toissijaisella tietokoneella tai täyden varmuuskopioinnin jälkeen, sillä saatat menettää tietosi.

Vaatimukset#

  • Ubuntu- tai Debian-tietokone, jossa on vähintään yksi LUKS-salattu levy.

Katso alla olevasta osiosta, mikä menetelmä on yhteensopiva tämän oppaan kanssa.

Tunnetut ongelmat#

Toistaiseksi komentosarja toimii vain manuaalisesti osioitujen volyymien kanssa, jotka koostuvat salaamattomasta /boot-osiosta ja salatusta juuriosasta /.

Älä valitse tätä opasta varten käyttämäsi käyttöjärjestelmän tarjoamaa automaattista koko levyn salausta. Saat toistuvia virheitä, kun osiointi tehdään automaattisesti Ubuntun ja Debianin asennuskäyttöliittymän avulla.

Ohjeet#

  1. Asenna riippuvuudet

    $ sudo apt install scdaemon opensc gnupg2
    
  2. Luo smartcard-luks-hakemisto

    $ mkdir smartcard-luks && cd smartcard-luks
    
  3. Lataa älykortti-luks-skripti

    $ wget https://raw.githubusercontent.com/daringer/smartcard-key-luks/main/smartcard-key-luks
    $ sudo chmod +x smartcard-key-luks
    
  4. Julkisen avaimen vienti

    Voit viedä julkisen avaimesi GnuPG:n avaimenperästä:

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

    Jos olet jo ladannut julkisen avaimen avainpalvelimeen (tai se on tallennettu jonnekin muualle), hae se haluamallasi tavalla ja jatka vaiheeseen 5.

  5. Määritä ja tarkista juuriosion oikea LUKS-laitenimi:

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

    Vihje

    Tavallisesti tämän pitäisi olla jotain kuten nvme0n1p3_crypt (NitroPC:llä) tai sda3_crypt (NitroPadilla). Voit ja sinun kannattaa tarkistaa, että /etc/crypttab:n sisällä mainittu UUID on määritetty osio, tarkistamalla symbolisen linkin /dev/disks/by-uuid/:n sisällä.

  6. Suorita komentosarja siten, että argumentteina ovat luks-laitteen nimi (esim. nvme0n1p3_crypt) ja pubkey.asc.

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

Kun suoritat komentosarjan ja annat argumenttina OpenPGP:n julkisen avaimen, se määrittää automaattisesti uuden LUKS-salaisuuden, salaa sen julkista avainta vastaan ja määrittää crypttab:n, LUKS:n, initramfs:n ja GRUB:n.

Ensin sinua pyydetään antamaan User PIN

kuva1

Kun avaat Nitrokey-avaimen, sinua pyydetään antamaan OLD passphrase. Kyseessä on salasana, jonka annoit asennuksen yhteydessä salataksesi tietovälineesi.

kuva2

Muista

Tämä on varavaihtoehto siltä varalta, että kadotat Nitrokey-avaimesi tai se ei ole käytettävissä. Toistaiseksi sitä ei ole testattu, ja käyttäjien on oltava tietoisia siitä, että tietokoneen käyttö voi estyä, jos varamenetelmä ei toimi.

Kun olet syöttänyt salasanan, komentosarja suorittaa asennuksen noin minuutissa. Älä keskeytä komentosarjaa, tai saatat jäädä ulos tietokoneesta uudelleenkäynnistyksen jälkeen.

img3

Valmis!

Sinun on nyt käynnistettävä tietokone uudelleen, ja sinun pitäisi pystyä avaamaan salatun aseman lukitus Nitrokey-avaimella.

Käyttö#

Uudelleenkäynnistyksen jälkeen sinua pyydetään antamaan käyttäjän PIN-koodi.

img5

Anna käyttäjän PIN-koodi aseman lukituksen avaamiseksi

img6

Muita vihjeitä#

Vaihda salasana#

Kun tämä asennus on tehty, sinun ei pitäisi enää käyttää (gnomen) disks-apuohjelmaa (varalauseen) muuttamiseen. Oikea tapa tehdä tämä on kutsua cryptsetup suoraan näin:

$ sudo cryptsetup luksChangeKey /dev/nvme0n1p3

nvme0n1p3 on se osio, jonka avaimet olet määrittänyt.

Käytä useita näppäimiä#

On helppo käyttää useita (laitteisto-)turvaavaimia niin, että jokainen niistä pystyy avaamaan LUKS-aseman lukituksen itsenäisesti. Vie vain useita julkisia avaimia ja lähetä useita avaimia asennusskriptiin näin:

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

Aseta kortinhaltijan nimi#

Käynnistyksen yhteydessä PIN-koodin syöttämisen yhteydessä käyttäjälle esitetään LUKS-juuriosion salauksen purkamista varten kortinhaltija, Aseta tämä käyttämällä $ gpg --edit-card ja kehotteen sisällä kirjoita admin<x>. id="189"></x>` ja ``name asettaaksesi kortinhaltijan OpenPGP-kortille (Nitrokey Storage 2 tai Nitrokey Pro 2).

Avainten vaihtaminen/poistaminen#

Näppäimiä ei voi lisätä/poistaa suoraan. Siksi sinun on poistettava/poistettava vanha asennus ja suoritettava asennus uudelleen määritetyllä avaimella (määritetyillä avaimilla):

Poista avaintiedosto (polku, jos käytit yllä olevaa skriptiä) luks-laitteesta (nvme0n1p3):

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

Poista itse avaintiedosto:

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

Suorita yllä olevat asetukset uudelleen.

LUKS2:n lukituksen avaaminen X509-sertifikaatilla#

SystemD tukee LUKS2-osion lukituksen avaamista X509-varmenteella, löydä hyvä blogimerkintä siitä, miten tämä toteutetaan osoitteessa `Personal blog of Vladimir Timofeenko`__