Compare commits
2 Commits
ee412c3245
...
80a0fc7cf3
Author | SHA1 | Date |
---|---|---|
Alexandre LUCAZEAU | 80a0fc7cf3 | |
Alexandre LUCAZEAU | 5344018380 |
|
@ -0,0 +1,77 @@
|
||||||
|
---
|
||||||
|
Date: 2023-12-10
|
||||||
|
Author: Alexandre LUCAZEAU
|
||||||
|
Title: Nixos déchiffrement et authentification 2FA Fido
|
||||||
|
Slug:
|
||||||
|
categories: Nixos
|
||||||
|
Tags:
|
||||||
|
- nixos
|
||||||
|
- fido
|
||||||
|
- yubikey
|
||||||
|
- nitrokey
|
||||||
|
- pam
|
||||||
|
- 2FA
|
||||||
|
- luks
|
||||||
|
- systemd-cryptenroll
|
||||||
|
---
|
||||||
|
# Renforcer la sécuritée de son poste avec l'utilisation de clés USB FIDO et utilisation du double facteur
|
||||||
|
Depuis quelques temps j'utilise une clé USB Yubikey en guise de challenge-response pour de l'authentification et du déchifrement de mon poste de travail.
|
||||||
|
|
||||||
|
La clé Yubikey est parfaite pour ça. Elle est mince et solide, reconnu partout. C'est top et c'est un magnifique SPOF. Vous la perdez et vous avec plus rien.
|
||||||
|
|
||||||
|
C'est également une clée relativement honéreuse (compter 60€ fdpin), et c'est pas ouvert.
|
||||||
|
|
||||||
|
Dans l'univers des fabricants de ce type de dispositifs, vous avez également *Solo* et *nitrokey*.
|
||||||
|
|
||||||
|
*Nitrokey* fabrique différent périphériques, comme la Nitrokey Pro, la FIDO2 etc...
|
||||||
|
L'avantage de ce fabricant, c'est que le matériel est conçu et fabriqué en europe (allemagne pour être précis) et en Openhardware, avec des mises à jour des firmware.
|
||||||
|
|
||||||
|
N'utilisant pas (encore ?) les fonctionnalités gpg et authentification ssh de la yubikey, je cherchais un moyen pas trop honnéreux pour venir seconder ma Yubi.
|
||||||
|
|
||||||
|
J'avais acheté il y a quelques temps une *Nitrokey Pro 2* et une *FIDO2*, mais je m'en étais encore jamais vraiment occupé. Entre temps, ils ont sorti la *Nitrokey Pro 3* qui inclus le protocole FIDO2.
|
||||||
|
|
||||||
|
Un jour je passerai certainement dessus, mais en attendant, on va faire avec ce que l'on possède déjà.
|
||||||
|
|
||||||
|
Enfin, j'ai récemment changé de PC. J'en ais donc profité pour revoir tout ça.
|
||||||
|
|
||||||
|
## Chiffrement de partitions
|
||||||
|
Historiquement mon poste était chiffré en utilisant une méthode similaire à ça : https://github.com/sgillespie/nixos-yubikey-luks
|
||||||
|
|
||||||
|
C'est bien mais en faite c'est assez limitant. Pour ajouter une clée de backup, c'est certainement jouable, mais j'ai eu trop peur de casser quelques choses.
|
||||||
|
J'ai donc opté pour une autre méthode disponible depuis Nixos 23.05, à savoir *systemd-cryptenroll*
|
||||||
|
|
||||||
|
Avec *systemd-cryptenroll* vous pouvez ajouter autant de clés que vous voulez, plusieurs mots de passes, générer un mot de passe de secour en cas de perte (recovery, généré par le système).
|
||||||
|
Mais vous pouvez également supprimer tout ou partie de ces moyens.
|
||||||
|
|
||||||
|
Cela signifie, que vous pouvez avoir une *Master key* dans l'entreprise, capable de déchiffrer tous les postes, et changer de clés quand vous voulez.
|
||||||
|
|
||||||
|
Typiquement, ajouter une clée Yubikey ou Nitrokey, ça se fait simplement (et même après l'installation) :
|
||||||
|
|
||||||
|
systemd-cryptenroll /dev/nvme0n1p2 --fido2-device=auto --fido2-with-client-pin=true
|
||||||
|
|
||||||
|
Ici on ajoute la clée avec son code PIN (à activer au préalable). Notre déchiffrement 2FA est bon. Rien de plus simple, n'est pas ?
|
||||||
|
|
||||||
|
Et pour l'authentification sur *gdm* (ou autre gestionnaire) et *sudo* ?
|
||||||
|
|
||||||
|
Pour avoir une Yubi ET une Nitro, sous Nixos, il faut utiliser le même fichier u2f_keys dans les 2 cas.
|
||||||
|
|
||||||
|
En effet, la doc pour la Yubikey indique :
|
||||||
|
|
||||||
|
pamu2fcfg -u alexandre > ~/.config/Yubico/u2f_keys
|
||||||
|
|
||||||
|
Et pour la Nitrokey :
|
||||||
|
|
||||||
|
pamu2fcfg -u alexandre > ~/.config/Nitrokey/u2f_keys
|
||||||
|
|
||||||
|
Or si vous utilisez la seconde, ça marchera pas. Il faut tout mettre dans `.config/Yubico/u2f_keys`
|
||||||
|
|
||||||
|
Pour le reste de la configuration, je vous laisse aller voire les fichiers de mon template sur le git (mais c'est du standard) : https://git.atlanticaweb.fr/alexandre/nixos-config/src/branch/main/hosts/template
|
||||||
|
|
||||||
|
* Tester c'est tricher
|
||||||
|
... mais ça peut sauver d'une erreur :)
|
||||||
|
|
||||||
|
Pour vérifier que votre configuration est bonne :
|
||||||
|
|
||||||
|
nix-shell -p pamtester
|
||||||
|
pamtester login alexandre authenticate
|
||||||
|
pamtester sudo alexandre authenticate
|
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 102 KiB |
Loading…
Reference in New Issue