14/04/2011

Yubikey : la petite clé qui assure

Yubikey, c’est une petite clé USB un peu spéciale. Une petite pastille tactile sur le dessus permet de générer un mot de passe à usage unique, qu’un service distant saura utiliser pour vous identifier ou non. C’est pratique, c’est sûr (si c’est bien utilisé), et c’est assez geek pour qu’on en parle.


Le problème

Les mots de passe se multiplient comme des petits pains, surtout chez les geeks. Comme il est impensable de tous les noter dans un petit calepin ou d’utiliser le même partout (on est d’accord ?), il faut sans cesse en inventer de nouveaux et les retenir.

Par ailleurs, si on veut être un peu sérieux, il faut se méfier du terminal que l’on utilise, surtout s’il appartient à un tiers. Qui vous dit que le vilain admin du cyber-café n’a pas un vilain keylogger sur toutes ses machines ? Plus fourbe, qui vous dit qu’il n’y a pas un vilain keylogger malware installé sur le laptop de votre [maman|grand-père|hamster] que vous utilisez en ce moment, “pour dépanner” ? Sans parler d’attaques type MitM et autres joyeusetés …

Arrive la Yubikey. Sans être une solution miracle à tous les problèmes de mot de passe, c’est une façon élégante de se simplifier la vie.

La Yubikey, en bref

Yubikey 2.0, by Yubico

Plutôt que de vous pointer vers le manuel de la Yubikey, je vais en synthétiser quelques passage pour commencer.

La Yubikey fonctionne sur n’importe quel matériel équipé d’un port USB hôte et tournant sous à peu près n’importe quel système d’exploitation supportant un clavier USB (sous Linux, le support HID suffit) : en effet, elle fonctionne en émulant des frappes clavier, sans avoir recours à un driver particulier.

À chaque utilisation, la clé génère une chaîne de caractères unique (appelée OTP pour One Time Password), basée entre autres choses sur une identité propre à la clé, un compteur non-volatile, une horloge et un nombre aléatoire. Cette chaîne est ensuite chiffrée à l’aide d’une clé AES de 128 bits et envoyée à l’hôte. Exemples :

fifjgjgkhchbirdrfdnlnghhfgrtnnlgedjlftrbdeut
fifjgjgkhchbgefdkbbditfjrlniggevfhenublfnrev
fifjgjgkhchblechfkfhiiuunbtnvgihdfiktncvlhck

(on constate que les 12 premiers caractères sont toujours les mêmes : il s’agit là de l’identité de la Yubikey)

De l’autre côté, elle sera déchiffrée à l’aide de la même clé AES. De par l’usage d’un chiffrement symétrique, la sûreté de l’ensemble repose sur une bonne protection de la clé AES. Celle-ci est stockée dans une mémoire non volatile intégrée au microcontrolleur et n’est pas accessible, la configuration de la Yubikey se faisant en écriture seule. Pour récupérer la clé, il faudrait éventuellement sonder physiquement la puce ou analyser son comportement, ce qui implique de casser physiquement la Yubikey et de disposer de matériel de pointe. En d’autres termes, si ce n’est pas complètement adapté aux agents secrets, c’est probablement suffisamment sûr pour le geek moyen que je suis.

Le résultat est enfin vérifié par un serveur de validation : soit celui de Yubico, soit un serveur fait maison. La validation tient compte de plusieurs critères, au-delà de la simple identité. Notamment, la valeur du compteur est examinée : si elle est inférieure ou égale à la dernière valeur reçue, l’OTP est rejeté comme étant un “rejeu” d’un OTP plus ancien.

L’ensemble se résume au schéma suivant (cliquer pour agrandir) :

Fonctionnement de base de la Yubikey

Une application doit donc être configurée (ou modifiée) afin d’accepter un login Yubikey. Comme nous utilisons du logiciel libre, ça se fait en général assez facilement. Nous allons donc voir comment utiliser la Yubikey sous Linux de façon basique, puis nous verrons la configuration dune clé pour une utilisation “indépendante” avec serveur de validation maison.

  1. | #1

    Hey smokey, on peut se la procurer ou cette clée ?
    J’en veux une moi !

  2. LeCoyote
    | #2

    Sur le site de Yubico :-) Le mieux serait d’organiser une commande groupée, ça reviendrait un poil moins cher à tout le monde …

  3. | #3

    +1 pour la commande groupée !
    J’en suis !

  4. | #4

    Yop,

    Dis-moi, tu ne serais pas par hasard passé aux journées FedeRez toi? :)

    Sinon, pour ceux qui sont intéressés, j’ai donné quelques détails sur mon site à propos du verrouillage de poste avec Yubikey que j’avais présenté à cette occasion (url en trackback si je comprend comment ça marche!)

  5. okhin
    | #5

    Need!!! Il m’en faut une aussi

  6. Cosaque
    | #6

    Je suis intéresse par au moins 1 yubikey également !

  7. LeCoyote
    | #7

    Ah pas du tout non :) J’ai cette petite clé depuis un bon moment, je voulais juste faire un petit retour d’expérience.
    J’aime bien l’idée d’utiliser la clé pour déverrouiller le poste en tout cas :-)

  8. neuronne-1337
    | #8

    +3 pour moi.

  9. LeCoyote
    | #9

    Et je lance une commande :-)

  10. | #10

    Hey !!

    Moi aussi j’en veut une !!!
    J’espère que la commande n’est pas déjà partie !!

    pour un p’tit jour de retard :s

  11. LeCoyote
    | #11

    J’ai fait une commande de 20 clés, on verra ce qui reste 😉

  12. LeCoyote
    | #12

    Ayé ! Je suis en possession des 20 clés :) Rendez-vous sur http://piratepad.net/TGr2tWSBLQ pour l’état des “commandes” et pour discuter d’un mode de livraison qui va bien

  13. zda
    | #13

    Bref, toujours aussi marrant de voir des gens aussi sûr (ou presque).

    Non sincérement, ou ce trouve la preuve dans votre cerveau, qui prouve que AES est un cryptage sécurisé et qui prouve que le gouvernement utilise bien ce cryptage? Vous allez me parler d’expert, la encore des expert que vous ne connaissez que depuis le net. Et puis, des expert, j’en est connu y’a 150000ans qui disait que la terre était plate alors que même aujourd’hui tout le monde croit quel est rond, hors qu’est-ce vous en savez vous tout de suite? (une photo pour moi c’est pas une preuves, il y a la physique et bien d’autres.) vous vous laisser berné par tout ce qu’on vous dit sans preuve. Vue que 1milliard de personne vous disent la terre est ronde sa veut dire quel l’ai (-_-) ! J’dit pas le contraire ceci dit, j’approuve pas non plus n’aillant aucune preuve exacte. (a vrai dire je pense quel est ronde bien-sûr, ceci dit j’évite de dire sa car j’ai vue une photo d’une planète ronde et qu’on me dit que c’est ma planète vue de haut alors que rien me prouve que c’est bien ma planète. Pourquoi ferait-il sa? ho, plein de chose)

    Donc voilà, ne faites pas confiance à n’importe qui est faite selon vos compétence (le mieux aussi c’est de vouloir des compétence) sinon sa sert à rien sa c’est clair.

    Un coffre de bank si tu le surveille pas, il y a un nombre infinie de possibilité pour ouvrir ce coffre (c’est comme sa la matière (matière ou pas d’ailleurs))
    Tout comme il y a un nombre infinie de possibilité d’ouvrir le coffre si tu le surveille. Seulement tu est la, donc une intélligence réel pour intervenir, contré ou patché à tout moment un problème, ou pas.

    Je pense arrêter la :)

  14. | #14

    Comme supprimer et modérer le commentaire ci-avant de zda rendrait service à celui-ci nous choisissons avec l’équipe Geekfault de laisser celui-ci en ligne, pour la bonne poilade qu’il nous a procuré.
    Dans un esprit de partage (qui caractérise Geekfault), je pense qu’il faut vraiment laisser celui-ci en ligne.
    zda merci !

  15. Jerome
    | #15

    @zda
    Pour commencer, quand on veut se la raconter, on dit “chiffrement” et pas “cryptage” :)

    (Et on apprend les bases de l’orthographe avant celles de la cryptographie)

  16. mouai
    | #16

    @Jerome, si tu avais dis ça à Einstein il aurait certainement bien ris de toi.

  17. | #17

    Dites les cops, utiliser une clé USB pour en combinant ses caractéristiques générer une longue liste de caractères majuscules, minuscules, chiffres, signes, en tout cas suffisamment abscons pour être utilisée comme un mot de passe n’est pas en soit une mauvaise idée et peu se révéler très pratique.
    Elle possède les propriétés suivantes suffisamment longue 24 caractères, ne pas pouvoir s’en souvenir, ne pas la stocker, ne pas avoir à la taper, bien construite, pas de caractères à double, pas de caractères répétitifs, répondant aux tests durs (Passwordmeter.com), pour des simples utilsateurs comme nous c’est déjà pas mal. J’ai un petit soft Windows à disposition qui transforme n’importe quelle clé usb flash disk. example: Ju2.Gz3[At0-Ch1%

  18. Denis
    | #18

    Oh ben il est pas tout jeune ce post. Mais comme je l’ai trouvé sur le sujet des Yubikeys, sachez que suite à un projet terminé il m’en reste quelques unes (5 -6) à céder à des geeks qui se respectent à prix très raisonnable.
    On ne peut plus s’en passer une fois adoptée – et par ailleurs depuis ce sujet les applis ont bien grandi en nombre 😉

  19. WTF
    | #19

    @zda
    Sors de ce corps Jean-claude Van Damme ! Et, pitié, vraiment pitié, achètes toi un Bescherelle …

  20. | #20

    Apcrapietion for this information is over 9000-thank you!

  21. | #21

    At last, sooemne who comes to the heart of it all

  1. | #1
  2. | #2