LUKS Decryptie met Yubikey

Hiervoor hebben we de toepassing Yubikey-Luks nodig: $ sudo apt install yubikey-luks

De YubiKey die we gaan gebruiken voor deze decryptie wordt met een "static password" beschreven in configuratie slot nr 2 dus
  1. Zorg ervoor dat configuratie slot 2 vrij is (anders verlies je een bestaande configuratie)
  2. Zorg ervoor dat de YubiKey niet beveiligd is met een access code (deze moet je indien nodig uitschakelen met het pakket : yubikey-personalization-gui) anders kan het nieuwe wachtwoord niet geschreven worden.

Om de YubiKey klaar te maken voor gebruik plaats je deze in een USB poort en voer je het volgende commando uit: $ ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -oserial-api-visible

de computer zal nu het volgende weergeven :

Figuur 1. $ ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -oserial-api-visible
$ ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -oserial-api-visible
Firmware version 2.4.2 Touch level 2306 Program sequence 2
Configuration data to be written to key configuration 2:
fixed: m:
uid: n/a
key: h:1cbfae2340056f2b36a57f96cc9e5eb855ad8ca1
acc_code: h:000000000000
OATH IMF: h:0
ticket_flags: CHAL_RESP
config_flags: CHAL_HMAC|HMAC_LT64
extended_flags: SERIAL_API_VISIBLE
Commit? (y/n) [n]:
        

De key is bij mijn weten willekeurig gekozen, dus als je dit bij meer dan 1 YubiKey doet moet je deze ook allemaal toevoegen om ze te kunnen gebruiken.

Als antwoord op Commit geef je Y in.

De YubiKey is nu klaar voor gebruik.

Om de YubiKey toe te voegen gebruiken we het yubikey-luks-enroll script in /usr/bin/yubikey-luks-enroll

Let op dat het mogelijk is dat je dit bestand een beetje moet aanpassen om het te laten werken. Kopieer daarom dit bestand naar jouw $HOME directory en bewerk het indien nodig.

het script gaat ervan uit dat :
  1. De LUKS partitie /dev/sda3 is (dit is standaard bij Debian, maar het wijkt soms af)
  2. Het Slot dat we gebruiken, Slot 7 is
  3. We een bestaand slot niet overschrijven.

De eerste regels van het script zien er als volgt uit:

Figuur 2. $ head -n 6 ~/yubikey-luks-enroll
#!/bin/sh
SLOT=7
DISK="/dev/sda3"
CLEAR_SLOT=0
TMP_FILE=/tmp/new_key
set -e        

Als we maar 1 YubiKey gebruiken, het de eerste keer is en de LUKS partitie /dev/sda3 is kunnen we het script gewoon uitvoeren. $ sudo yubikey-luks-enroll

In mijn geval is slot 7 al in gebruik voor mijn Primaire YubiKey en ga ik slot 5 gebruiken (slot 7 is het hoogste dus 8 werkt niet, en lager dan 5 ben ik niet geweest, maar het is dus mogelijk om tenminste 3 verschillende YubiKeys te gebruiken). Verder is slot 5 reeds bezet, dus ga ik deze moeten wissen voor ik het kan beschrijven. Mijn script is dus aangepast naar :

Figuur 3. $ head -n 6 ~/yubikey-luks-enroll
#!/bin/sh
SLOT=5
DISK="/dev/sdb3"
CLEAR_SLOT=1
TMP_FILE=/tmp/new_key
set -e      

Nu voer ik het script uit (deze keer vanaf mijn $HOME directory omdat ik het script heb aangepast).

$ sudo ~/yubikey-luks-enroll

Figuur 4. $ sudo ~/yubikey-luks-enroll
This script will utilize slot 5 on drive /dev/sdb3. If this is not what you
intended, exit now!
Killing LUKS slot 5
Voer enig overblijvend wachtwoord in:
        

Nu moeten we het eerder ingestelde sterke LUKS wachtwoord ingeven :

Figuur 5. $ sudo ~/yubikey-luks-enroll (vervolg)
Voer enig overblijvend wachtwoord in: 2*c#mYX%q84EHPKk
Adding yubikey to initrd
Please insert a yubikey and enter a new password. This is the password that
will only work while your yubikey is installed in your computer.

Na het plaatsen van de YubiKey (als deze al niet geplaatst was) komt de vraag om een wachtwoord in te stellen, dit wachtwoord werkt ENKEL in samenwerking met de geplaatste YubiKey.