Cryptage des disques durs#

(Nitrokey HSM 2 - Linux)

VeraCrypt (anciennement TrueCrypt)#

VeraCrypt est un logiciel de chiffrement de disque gratuit et Open Source pour Windows, macOS et GNU+Linux. Il est le successeur de TrueCrypt et est donc recommandé, bien que les instructions suivantes doivent s’appliquer également à TrueCrypt.

Suivez ces étapes pour utiliser le programme avec Nitrokey Storage 2 ou Nitrokey Pro 2 :

  1. Installez la dernière version de OpenSC, ou téléchargez la bibliothèque PKCS#11.

  2. Choisissez la bibliothèque dans VeraCrypt sous Settings>Preferences>Security Token (l’emplacement dépend du système, par exemple /usr/lib/opensc).

  3. Générez un fichier clé de 64 octets via Outils>Générateur de fichier clé.

  4. Vous devriez maintenant être en mesure d’importer le fichier clé généré via Tools>Manage Security Token Keyfiles. Vous devez choisir le premier Slot ([0] User PIN). Le fichier clé est ensuite stocké sur la Nitrokey en tant que « Private Data Object 1 » (PrivDO1).

  5. Après cela, vous devez effacer le fichier clé d’origine sur votre ordinateur en toute sécurité !

  6. Vous pouvez maintenant utiliser VeraCrypt avec la Nitrokey : Créez un conteneur, choisissez le fichier clé sur le dispositif comme alternative à un mot de passe.

Avertissement

Considération de sécurité

Veuillez noter que VeraCrypt n’utilise pas toute la sécurité qu’offre Nitrokey (et les cartes à puce en général). Au lieu de cela, il stocke un fichier clé sur la Nitrokey qui, en théorie, pourrait être volé par un virus informatique après que l’utilisateur ait saisi le code PIN.

Remarque : Aloaha Crypt est basé sur TrueCrypt/VeraCrypt mais sans la limitation de sécurité décrite.

Chiffrement des disques durs sur GNU+Linux avec LUKS/dm-crypt#

Voici d’excellentes instructions comment utiliser Nitrokey pour chiffrer votre disque dur sous GNU+Linux avec LUKS/dm-crypt. Autres instructions.

Purism a créé un simple script pour ajouter la Nitrokey/LibremKey comme moyen de déverrouiller les partitions LUKS (pas encore testé par Nitrokey).

Ce projet vise à faciliter l’utilisation de LUKS avec le Nitrokey Pro ou le Storage basé sur le Password Safe (pas encore testé par Nitrokey). Une description sur la façon de l’utiliser sur Gentoo peut être trouvée ici.

Pour Arch Linux, voir initramfs-scencrypt.

Chiffrement du stockage sur GNU+Linux avec EncFS#

EncFS est un utilitaire facile à utiliser pour les systèmes de fichiers chiffrés et il est basé sur FUSE. Vous pouvez suivre ces étapes pour l’utiliser avec des mots de passe très longs et Nitrokey Pro 2 :

Initialisation#

  1. Créez un fichier clé avec des données aléatoires :

$ dd bs=64 count=1 if=/dev/urandom of=keyfile
  1. Cryptez le fichier clé et utilisez l’ID utilisateur de votre Nitrokey.

$ gpg --encrypt keyfile
  1. Supprimez le fichier clé en clair :

$ rm keyfile # you may want to use 'wipe' or 'shred' to securely delete the keyfile
  1. Créer un point de montage :

$ mkdir ~/.cryptdir ~/cryptdir
  1. Créez le dossier de cryptage réel

$ gpg -d keyfile.gpg | encfs -S ~/.cryptdir ~/cryptdir
# There may appears an error message about missing permission of fusermount
# This message can be ignored
  1. Démontez le nouveau système de fichiers :

$ fusermount -u ~/cryptdir

Utilisation#

  1. Montez le système de fichiers crypté et entrez le code PIN de Nitrokey :

$ gpg -d keyfile.gpg | encfs -S ~/.cryptdir ~/cryptdir
  1. Après utilisation, démontez le système de fichiers :

$ fusermount -u ~/cryptdir

Chiffrement du stockage sur GNU+Linux avec ECryptFS#

eCryptfs est un système de fichiers à chiffrement transparent basé sur des fichiers pour GNU+Linux qui peut être utilisé avec Nitrokey via un pilote PKCS#11.

Voir ces instructions :

  1. Importez le certificat et la clé dans Nitrokey.

# Warning: This will delete existing keys on your Nitrokey!
$ pkcs15-init --delete-objects privkey,pubkey --id 3 --store-private-key user@example.com.p12 --format pkcs12 --auth-id 3 --verify-pin
  1. Créez le fichier ~/.ecryptfsrc.pkcs11 :

$ editor ~/.ecryptfsrc.pkcs11
  1. Entrez dans ce contenu :

$ pkcs11-log-level=5 pkcs11-provider1,name=name,library=/usr/lib/opensc-pkcs11.so,cert-private=true
$ openvpn --show-pkcs11-ids path to opensc-pkcs11 module
Certificate
    DN: /description=Iv4IQpLO02Mnix9i/CN=user@example.com/emailAddress=user@example.com
    Serial: 066E04
    Serialized id: ZeitControl/PKCS\x2315\x20emulated/000500000c7f/OpenPGP\x20card\x20\x28User\x20PIN\x29/03
  1. Copiez l’identifiant sérialisé pour une utilisation ultérieure :

$ ecryptfs-manager
# This will show list option. Choose option "Add public key to keyring"
# Choose pkcs11-helper
# Enter the serialized ID of step 3 to PKCS#11 ID.

Vous pouvez également essayer ESOSI ou suivre ces étapes en utilisant OpenSC et OpenVPN.

Source du guide : https://www.nitrokey.com/documentation/applications#a:hard-disk-encryption