YubiKey : Layout

Published: 30-12-2014

Updated: 27-03-2016

By: Maxime de Roucy

tags: keyboard yubikey

Comme indiqué dans l’article « YubiKey : Introduction et configuration » utiliser une YubiKey peut s’avérer difficile si on travail avec des layout différent du « qwerty ».

Voici mes notes concernant les problèmes de layout et leur éventuel solutions. Les machines que j’utilisent sont configuré en « bépo », « azerty » et « qwertz ».

Je pense que les solution envisagé doivent fonctionner sur tous les système. Elles ne doivent pas dépendre d’une configuration de la machine sur laquelle on branche la YubiKey (on doit pouvoir utiliser la YubiKey n’importe sur n’importe quel système). C’est pourquoi j’ai écarté la solution consistant à utiliser un layout différent entre la YubiKey et le clavier standart (configurable via Xorg).

Yubico-OTP

ModHex

Les OTP généré par l’arlgorithme « Yubico OTP » sont des suite d’octets. Généralement pour représenter des octet on utilise l’hexadécimal, et donc l’alphabet « 0123456789abcdef ». Mais pour que la yubikey fonctionne sur la plupart des layout Yubico a inventé le modhex qui transforme l’alphabet hexadécimal « 0123456789abcdef » en « cbdefghijklnrtuv ». La touche correspondant au « c » est au même endroit sur la plupart des layouts, idem pour le « b », le « d »… et le « v ».

Par défaut, les YubiKey utilise cet alphabet.

CFGFLAG_SEND_REF

Attention, je n’utilise pas le mode « Yubico-OTP », je n’ai donc pas testé cette solution.

Ce paramètre de configuration (disponible uniquement via yubikey-personalization) fait en sorte que la yubikey affiche l’alphabet modhex avant chaque OTP. Coté serveur, il est ainsi possible de faire un mapping et de retranscrire l’OTP en modhex.

Serveur officiel

Aujourd’hui (30/12/2014) le serveur de validation officiel développé par yubico ne permet pas de tirer avantage de cette option. Patché le code ne devrais pas être très compliqué, mais comme je n’utilise pas cette algorithme… j’ai pas envie de le faire. Pour ceux qui se sentent courageux :

max@laptop % git clone https://github.com/Yubico/yubikey-val.git
max@laptop % grep -i dvorak -r yubikey-val

Yubi-TCL

Le serveur de validation Yubi-TCL semble pouvoir tirer avantage de cette fonctionnalité.

OATH-HOTP

Les OTP généré par l’algorithme « OATH-HOTP » sont consitutés de chiffres.

Par défaut la YubiKey utilise les scancodes USB des touches surplombant les lettres pour représenter des chiffres.

image manquante

Il est possible via l’option « Use numeric keypad for digits » de faire en sorte que la yubikey utilise les scancodes USB des touches du pavé numérique pour représenter des chiffres. Avantage : les pavé numérique sont (je pense) toujours identique quelque soit le layout. Désavantage : il faut que « Num Lock » soit à « on ».

C’est la méthode que j’utilise.

Static Password

Ici il n’y a pas de solution pour que votre mot de passe s’affiche correctement sur tous les layout.

En revanche voici l’astuce que j’utilise pour configurer le mot de passe désiré sur un layout différent du qwerty. Lorsqu’on utilise le mode « Static Password → Scan Code » dans yubikey-personalization-gui le logiciel :

Par exemple, j’utilise un clavier bépo et que mon mot de passe est « bépo ». Si j’inscrit « bépo » dans le champ « Password » la YubiKey me retournera « kjl »… pas vraiment ce que j’attendais.

L’astuce consiste switcher temporairement la configuration du système en « qwerty » le temps de taper le mot de passe dans le champ « Password ». Le mot de passe doit être entré avec le clavier bépo sans se soucier de ce qui s’affiche (comme mon mot de passe est « bépo » il s’affiche « qwer »). Lorsque je repasse en bépo et que j’appuie sur le bouton de la YubiKey j’optient le bon mot de passe.