Article sur le 2FA
This commit is contained in:
parent
5344018380
commit
80a0fc7cf3
|
@ -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
|
Loading…
Reference in New Issue