Authentification Forte

De OpenWikiBSD
Aller à : navigation, rechercher

Parce que les mots de passe collés sous le clavier ont fait la joie des amuseurs de tout poil, on va passer au siècle suivant et profiter de quelques progrès technologiques. L'authentification deux facteurs pour pas cher.

  • Un certificat dans la clé USB ? Trop facile à copier
  • Le SMS reçu sur le smartphone ? Il faut un émetteur de SMS.

J'ai longtemps utilisé les mots de passe jetables, OTP : S/Key,_les_mots_de_passe_jetables

Yubico

Ils font des clés OTP matérielles au format USB + NFC. Pas chères, solides, avec beaucoup de softs et api fournis!

YubiX, le framework d'authentification

Existe en | VM

Sur une Debian Jessie/64 : On va activer les dépôts Ubuntu....Ben oui ;-(

apt-get install software-properties-common python-software-properties
add-apt-repository ppa:yubico/stable
add-apt-repository ppa:yubico/yubix
perl -pi -e 's/jessie/trusty/g' /etc/apt/sources.list.d/*
apt-get update
apt-get dist-upgrade
apt-get install yubix


Yubikey Standard

Au format USB, celle permet l'authentification à mot de passe unique,.. Au niveau matériel :

  • Format USB
  • Reconnue comme un clavier (attention aux formats exotiques, type BEPO)
  • Dispose d'un compteur interne anti-rejeu
  • Ne dispose pas de batterie pour maintenir une horloge.

La clé dispose de deux slots permettant de configurer de manières distinctes deux méthodes d'authentification:

  • Le slot 1 est accessible si on effleure la clé sur une durée comprise entre 0,3s et 1,5s;
  • Le slot 2 est accessible si on effleure la clé sur une durée comprise entre 2 s et 5s.

La configuration d'usine de la clé est :

  • Slot 1 : Mode OTP avec validation chez les serveurs Yubico (mode nommé Yubico OTP)
  • Slot 2 : Vide

Yubikey Neo

Ajoute au modèle précédent la partie NFC, donc authentification forte par smartphone.

YubiHSM

Un HSM à 500€ quant ses collègues sont à 20k€.... C'est par ici

Personnalisation de la Yubikey

apt-get install yubikey-personalization-gui
yubikey-personalization-gui

YUbiGUI.png

On voit (Features supported) que plusieurs modes d'authentification sont proposés par la clé :

  • OTP
  • OATH-HOTP
  • Mot de passe statique
  • Mode scan Code
  • Mode challenge-Réponse

Chacun de ces modes peut être mis en place sur un des deux slots disponibles (dont le premier est préconfiguré).

Configuration d'un slot en mode OTP

  • Choisissez Yubico OTP, puis Advanced
  • Choisissez le second slot
  • Vous pouvez changer l'identité publique de la Yubikey (Bouton Generate ), en restant sous la barre des 6 caractères (sinon, vous perdez la compatibilité avec les outils builtin de chez Yubico)
  • Vous pouvez changer l'identité privée de la Yubikey (Bouton Generate )
  • Vous pouvez changer la clé secrète de la Yubikey (Bouton Generate )

YUbiGenerate.png

Ensuite, ne vous reste plus qu'à écrire la config dans le Yubikey.(Bouton Write configuration)

Le logiciel vous propose d'enregistrer un fichier .csv de log, au format :

Yubico OTP,DATE  HEURE, SLOT,ID PUB,ID PRIV ,  CLE SECRETE ,000000000000,000000000000,0,0,0,0,0,0,0,0,0,0

Si d'aventure vous vouliez réécrire la configuration de la clé, c'est impossible par défaut :

Yubikey could not be configured. Perhaps protected with configuration protection access code ?

Pour cela, il faut, avant d'écrire la configuration, enlever la protection de la Yubikey (en supposant que vous n'ayez pas mis de code de verrouillage)

YUbiProtect.png

Ensuite, vous devez, sur votre serveur copier les données suivantes :

  • OpenBSD :
    • Copier la ID PUB dans /var/db/yubikey/user.uid
    • Copier la CLE SECRETE dans /var/db/yubikey/user.key
    • Modifiez /etc/login.conf, la ligne :
auth-defaults:auth=passwd,skey:

en

auth-defaults:auth=yubikey,passwd,skey:

Inutile de redémarrer quoique ce soit.

Pour vous connecter
ssh user@IP

Authenticated with partial success.
user@IP's password:

Vous appuyez PLUS DE 2 SECONDES sur la Yubikey (Et oui, vous utilisez le slot 2 !!!) Et là :

Last login: patati from patata
OpenBSD 5.6 (GENERIC) #274: Fri Aug  8 00:05:13 MDT 2014
Welcome to OpenBSD: The proactively secure Unix-like operating system.
etc....

Dans la place avec une authentification 2 facteurs (ou 3) :

  • Le trousseau de clé de votre ordi
  • La Yubikey préalablement enregistrée
  • Voire la phrase de passe du trousseau de clé précédent.
Dans les logs :
yubikey: user USER uid UID PUB: 1 matching keymaps (2 checked), 1 crc ok

Parmi les 2 utilisateurs autorisés à se connecter avec une yubikey, l'utilisateur USER a validé son identité.

yubikey: user USER: counter 5.2 > 0.0

Oh, le compteur anti-rejeu n'était pas initialisé, on crée un USER.crt dans le répertoire /var/db/yubikey et on vérifie qu'il n'y a pas de replay attack en cours.

yubikey: user USER: authorize

Vazy mon grand, on ouvre les portes.

Vocabulaire

  • OTP : One Time Password : Mot de passe à usage unique

Liens

  • [1] Usage avec OpenSSH/OpenBSD.