Yubikey – II – Le plugin WordPress

Problématique

Ce chapitre fait suite à l’article qui présente la Yubikey.

J’ai choisi de commencer par cet exemple d’intégration de la Yubikey dans WordPress, car il est un des plus facile à mettre en œuvre. L’objectif va être de renforcer la sécurité d’accès à un site WordPress en utilisant une authentification à deux facteurs. C’est ce que l’on appelle de l’authentification forte.

WordPress est un outil de publication sur le Web très utilisé et régulièrement la cible de nombreuses attaques. Il existe de nombreuses techniques permettant d’essayer de trouver le mot de passe de l’administrateur ou d’un compte : keylogers, snif réseau, ingénierie sociale, ……. Le but est de trouver une parade à l’aide d’un outil qui génère des mots de passe uniques.

On s’authentifie avec son login et son mot de passe, mais aussi avec sa Yubikey qui va générer une chaîne de connexion unique. Pour résumer très rapidement le principe de l’authentification à deux facteurs qui n’est pas l’objet de cet article, pour pouvoir accéder à WordPress il faudra :

  • Un mot de passe -> ce que l’on sait
  • Une Yubikey -> ce que l’on a.

Sans ces deux éléments, impossible de s’authentifier.

D’origine, la Yubikey est configurée pour être utilisée en mode OTP sur le site de Yubico, son fabricant, afin de valider la chaîne de connexion qu’elle a produite (Cette partie qui peut être obscure sera abordée plus loin). De ce fait, l’utilisateur n’a aucun paramétrage à faire de sa Yubikey, elle est directement utilisable. Cela va limiter la partie configuration et permettre de commencer à illustrer le fonctionnement de ce token de sécurité.

Qu’est-ce que le mode OTP ? En fait la Yubikey va générer à chaque fois que l’on pose le doigt sur la pastille dorée, un mot de passe unique, qui ne sera valable que pour la session en cours. Pour valider le mot de passe, on fait appel à un serveur de validation qui dans le cas présent est hébergé chez Yubico.

Ajout de l’extension ‘Yubikey’ à WordPress

Il faut ajouter à WordPress  l’extension adéquate pour utiliser sa Yubikey.

On commence par se connecter administrateur de son site, puis on clique sur l’élément ‘Extensions’ du bandeau de gauche.yubikey-plugwp-1On demande ensuite à ajouter une extension en cliquant sur le bouton ‘Ajouter’ :

yubikey-plugwp-2Dans la zone de recherche il suffit d’entrer le mot ‘Yubikey’ :yubikey-plugwp-3puis de valider pour faire apparaître la liste des extensions en correspondance. Celle qui nous intéresse se nomme « yubikey-plugin »yubikey-plugwp-4On clique sur le bouton ‘Installer maintenant’. L’extension s’installe et l’écran suivant devrait confirmer le bon déroulement de l’opération :

yubikey-plugwp-5On clique sur ‘Activer l’extension’ pour la rendre opérationnelle. WordPress confirme le résultat :

yubikey-plugwp-6

Récupération des informations de sa clef sur les serveurs de Yubico

L’étape d’après consiste à récupérer de chez Yubico une clef partagée (phrase secrète) qui permettra de calculer une signature chiffrée. Cette signature permettra de s’assurer qu’il n’a y a pas eu interception des données envoyées par la Yubikey. (Attaque du type man in the middle).

Notre serveur WordPress et les serveurs de Yubico partageront la même phrase secrète.

Notre Yubikey a déjà été enregistrée dans les serveurs de Yubico  lors de sa fabrication. Reste à générer la phrase secrète et notre identifiant unique (Client ID). Cette information est nommée API Key chez Yubico. Pour cela on se connecte au site de Yuco à l’adresse : https://upgrade.yubico.com/getapikey/

L’écran suivant nous demande deux informations :

yubikey-plugwp-7L’adresse email où envoyer l’a phrase secrète et le client ID (API Key), et un OTP généré par la clef. Dans le premier champs on entre un email valide, puis on positionne le curseur dans le second champs, on insère sa Yubikey dans un port USB si ca n’est pas déjà fait, et pour terminer on pose le doigt sur la pastille dorée lorsque la led verte est allumée.

Ca devrait donner cela :yubikey-plugwp-8Normalement, il n’a pas été nécessaire de cliquer sur le bouton ‘Get API Key’ car la Yubikey envoie un retour chariot par défaut à la fin de la génération de son OTP.

J’ai laissé ici les informations de ma clef en clair, car je la reprogramme et n’utilise par les serveurs de Yubico, donc pas d’importance.
Nous voila maintenant avec une clef identifiable par les serveurs de Yubico, grâce à :

  • Mon client ID : 25704
  • Ma clef secrète : FjoQlaq12qnhoeyLO7ULW7VbjgE=

Note : La clef secrète se termine toujours pas le signe ‘=’ ce qui permet de s’assurer visuellement qu’elle est bien complète.

Paramétrage de l’extension dans WordPress

Revenons à WordPress, sur le bandeau de gauche, dans la rubrique ‘Réglages’ on dispose désormais de l’entrée ‘Yubikey’, que l’on va choisir :

yubikey-plugwp-9Les informations à entrer vont être les deux éléments récupérés au chapitre du dessus, à savoir son client ID et la phrase secrète partagée avec les serveurs de Yubico.

yubikey-plugwp-10On sauvegarde le paramétrage en cliquant sur le bouton ‘Save Changes’. Si l’opération s’est correctement déroulée une confirmation apparaît en haut de l’écran :
yubikey-plugwp-11On va ensuite dans son profil utilisateur (Pour le moment on travaille sur le profil admin). Dans le bandeau de gauche, cliquer sur ‘Utilisateurs’, puis ‘Votre profil’ :

yubikey-plugwp-12Une nouvelle zone, relative à la Yubikey est disponible dans notre profil administrateur :

 

yubikey-plugwp-13Par défaut, l’authentification par Yubikey est désactivée pour tous les utilisateurs de WordPress. Nous allons l’activer pour le compte courant, qui est le compte administrateur. Pour se connecter en tant qu’administrateur, il faut une Yubikey.
Pour cela on coche ‘Use Yubico server’

Ensuite, le plugin donne la possibilité d’enregistrer jusqu’à trois Yubikey pour s’authentifier. Par exemple si plusieurs personnes physiques ont accès au compte administrateur, alors chacune pourra enregistrer sa clef.
On positionne le curseur dans le champs ‘Key ID 1’, puis on presse sur la pastille dorée de la Yubikey :

yubikey-plugwp-14Comme la Yubikey a générée le retour chariot, l’information a été enregistrée dans le profil, qui s’est de nouveau affiché et seuls les 12 premiers caractères de l’OTP généré par la clef sont conservés. (Pour tous les détails sur le fonctionnement de l’OTP et pourquoi on garde les 12 premiers caractères, il faut se référer à un autre article que je doit écrire).

Test

Pour tester le fonctionnement, je préconise fortement de ne pas fermer sa session administrateur de WordPress, mais de se connecter avec un ordinateur ou un navigateur différent de façon à toujours avoir une session active en cas de pépin……

L’écran de connexion se présente désormais ainsi :

yubikey-plugwp-15Un nouveau champs est apparu : ‘Yubikey OTP’.

Pour les utilisateurs autres qu’admin, ils se connectent comme d’habitude, en laissant le champ ‘Yubikey OTP’ vide. Pour l’utilisateur admin par contre, s’il laisse ce champs vide, il aura le message d’erreur suivant : yubikey-plugwp-16Pour se connecter il devra :

  • Entrer son login
  • Entrer son mot de passe
  • Faire l’addition
  • Mettre le curseur dans le champs de la Yubikey et poser le doigt sur la pastille dorée

Sans tout cela, impossible de s’identifier.

Le compte administrateur de WordPress est maintenant beaucoup plus sécurisé, car il faut avoir une Yubikey pour s’authentifier, et même si l’OTP généré par la Yubikey était intercepté par un individu mal intentionné, il n’est valable qu’une fois, et s’il était rejoué l’authentification échouera. Vous n’avez qu’à essayer.

ATTENTION !

Comme la Yubikey ajoute automatiquement un retour chariot à la fin de son OTP, les informations d’identification sont envoyées à WordPress dès que l’OTP est généré, donc AVANT que l’on est résolu l’addition. Il faut donc résoudre l’addition AVANT de générer l’OTP par la Yubikey.

Il est possible de modifier ce comportement par défaut de la Yubikey à l’aide de l’outil de paramétrage. On verra cela dans un autre article.

Pour le prochain article je vais présenter comment utiliser sa Yubikey pour s’identifier sous Windows.

 

Posts relatifs

Laisser un commentaire


NOTE - Vous pouvez utiliser les éléments et attributs HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">