Firefox et double authentification : le support des clés de sécurité (U2F) enfin natif

Firefox et double authentification : le support des clés de sécurité (U2F) enfin natif

Coucou Edge !

Avatar de l'auteur
David Legrand

Publié dans

Logiciel

19/09/2017 4 minutes
42

Firefox et double authentification : le support des clés de sécurité (U2F) enfin natif

Cela fait des années que certains l'attendent, ce sera bientôt une réalité : Firefox va intégrer le standard U2F de la FIDO Alliance. De quoi permettre l'utilisation de clé de sécurité au sein du navigateur, et inciter un nombre croissant de services à l'utiliser.

Alors que les fuites de données se font de plus en plus courantes, se pose la question de la protection de l'accès à nos comptes en ligne. Si aucune solution parfaite n'a été trouvée, il existe une manière simple de renforcer votre niveau de sécurité sans (trop) ajouter de complexité : la double authentification.

Adoptée de manière quasi systématique par les services en ligne désormais, celle-ci consiste à compléter votre identifiant et votre mot de passe par une troisième variable qui a deux caractéristiques : elle est aléatoire et vous êtes le seul à pouvoir vous la procurer. Elle prend la forme d'un code qui vous est transmis de manière plus ou moins sûre : par SMS, à travers une application spécifique ou encore une clé de sécurité.

U2F : un standard méconnu mais en pleine expansion

Ces dernières répondent à un standard défini par la FIDO (Fast IDentity Online) Alliance : U2F. Finalisé fin 2014, il est adopté par un nombre croissant de services, de Facebook à GitHub en passant par Google, Dropbox ou encore Dashlane. Il permet de disposer d'une galaxie de solutions qui répondent aux mêmes exigences de sécurité, à des tarifs accessibles.

Ainsi, on le retrouve aussi bien dans des clés à moins de 10 euros comme dans des modèles plus complets avec zone tactile comme les Yubikey, vendues entre 20 et 60 euros selon les modèles (voir leurs caractéristiques).

Chrome joue le jeu, Edge, Firefox et Safari à la traîne

Mais il reste un problème de taille : l'adoption par les navigateurs. En effet, l'U2F est pour le moment supporté seulement par Chrome et ses dérivés. Si Microsoft l'a évoqué il y a un moment, ce n'était pas vraiment pour son intégration dans Edge, qui ne semble toujours pas de la partie, même avec la Fall Creators Update. Pour Safari il faut compter sur une extension développée par un tiers.

Le cas de Firefox était le plus étonnant, car les standards et les questions de sécurité sont en général des sujets dont la fondation Mozilla est friande. Mais là... rien, excepté une extension développée par un tiers. Un problème alors qu'ID.me, qui peut être utilisé pour se connecter à des services gouvernementaux outre-Atlantique, vient d'annoncer au Federal Identity Forum (FedID) l'intégration de l'U2F.

L'U2F natif déjà fonctionnel dans la version Nightly

Il y a trois ans pourtant, une implémentation avait été demandée. S'en est suivie une longue discussion qui a tourné en rond... jusqu'au début de l'année. On apprenait ainsi que le support de l'U2F était prévu pour le troisième trimestre, avec une intégration finalisée attendue pour Firefox 58 qui doit arriver dans quatre mois.

Mais cela pourrait arriver plus vite que prévu. Car ce week-end, de premiers utilisateurs commençaient à évoquer un dispositif fonctionnel au sein de la version Nightly de Firefox (branche 57) comme l'a repéré @Sphinx_Twitt. Nous avons pour notre part pu confirmer que tout fonctionnait bien avec une clé U2F de base et un modèle Yubikey 4, aussi bien sous Linux (Debian Stretch) que Windows 10 (Creators Update). 

Pour en profiter, trois paramètres sont à activer dans la section about:config (à taper dans la barre d'adresse) :

security.webauth.u2f > true
security.webauth.webauthn > true
security.webauth.webauthn_enable_usbtoken > true

Une fois ceci fait, il vous suffit de vous rendre sur la page de test de l'U2F proposée par Yubico afin de simuler la création d'un compte avec protection par double authentification. Votre clé devrait être reconnue, même sans extension.

Reste maintenant à modifier l'implémentation à travers les services. Car si GitHub reconnait par exemple parfaitement notre clé, ce n'est pas le cas de Dropbox ou Facebook qui ont décidé de tout simplement... limiter leur implémentation à Chrome. Tout autre navigateur sera ainsi bloqué :

Dropbox U2F Firefox

Il faut donc désormais attendre que cette fonctionnalité rejoigne le canal bêta puis stable, et que les éditeurs mettent leur site à jour afin de pouvoir en profiter, mais tout est désormais en bonne voie. Espérons donc que Microsoft verra à son tour enfin la lumière concernant l'U2F.

Notez que pour contourner la limitation du support de l'U2F à Chrome, il vous suffit d'utiliser une extension permettant de changer l'User-Agent comme User-Agent Switcher.

42

Écrit par David Legrand

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

U2F : un standard méconnu mais en pleine expansion

Chrome joue le jeu, Edge, Firefox et Safari à la traîne

L'U2F natif déjà fonctionnel dans la version Nightly

Commentaires (42)




Car si GitHub reconnait par exemple parfaitement notre clé, ce n’est pas le cas de Dropbox ou Facebook qui ont décidé de tout simplement… limiter leur implémentation à Chrome.

<img data-src=" />



Je me laisserai bien tenter, mais il n’y a pas de service que j’utilise compatible. A moins que ce soit facilement déployable sur des services perso (mail, blog, NextCloud) ?


c’est pas dommage!

par contre le support dans Chrome Mobile est assez aléatoire (en NFC). ça a jamais fonctionné sur mon android.




Notez que pour contourner la limitation du support de l’U2F à Chrome, il vous suffit d’utiliser une extension permettant de changer l’User-Agent comme User-Agent Switcher.





En fait, le standard du web c’est google/chrome…

… et tous les autres navigateurs doivent être compatibles google/chrome.



#SabButTrue


c’est pas super dur à implémenter, j’avais codé un petit truc en php avec les exemple proposé par Yubico sur leur site de dev pour la page d’administration de mon site.

y’a surement des plugins pour les CMS courants.


Et quels sont les exemples d’utilisation concret de ce truc?

Quid de la navigation en mode caché?

Quid de l’utilisation des données ???

&nbsp;








Minikea a écrit :



c’est pas super dur à implémenter, j’avais codé un petit truc en php avec les exemple proposé par Yubico sur leur site de dev pour la page d’administration de mon site.

y’a surement des plugins pour les CMS courants.





J’ai pas un CMS courant (Bludit <img data-src=" />) et je suis totalement INcompétent en JS et PHP… <img data-src=" />



Je crois que tu as loupé un truc dans le concept même de la clé de sécurité <img data-src=" />


moi non plus (pluxml) mais en prenant un des exemples de yubico, je l’ai ajouté au formulaire de connexion déjà existant et c’était pas spécialement dur à mettre en place (après, ça fait quelques années, donc je me rappelle plus comment j’avais fait précisément)








Minikea a écrit :



moi non plus (pluxml) mais en prenant un des exemples de yubico, je l’ai ajouté au formulaire de connexion déjà existant et c’était pas spécialement dur à mettre en place (après, ça fait quelques années, donc je me rappelle plus comment j’avais fait précisément)





Il y a une API JS ici, ça a pas l’air trop compliqué, mais c’est pas pour moi… Je mettrai beaucoup trop de temps à coder un truc bancal. Et en sécu, on rigole pas avec ça. Je vais donc m’abstenir.<img data-src=" />



Tiens, une raison de plus de ne pas utiliser Facebook


Je pense que tu n’as pas fait les bons liens.



L’U2F est un protocole de double authentification qui se base sur un périphérique (genre une clé usb). Concrètement ça peut ressembler au SMS que ta banque t’envoie pour confirmer un achat.

La nuance, c’est qu’ici c’est pour sécuriser ton identification sur des sites (ceux qui le permettent) : tu auras donc ton identifiant, ton mot de passe et ta clé U2F. Il sera alors beaucoup plus compliqué de pirater ton compte, en tout cas pas avec identifiant+mot de passe.



La navigation en mode privée (ou cachée comme tu dis) n’a rien à voir. Il s’agit juste de ne pas stocker d’historique + cookies sur ton PC. C’est une protection de ta vie privée en local sur ton PC.

&nbsp;

Si j’ai bien expliqué tu verras que tu étais hors sujet ;)








127.0.0.1 a écrit :



#SabButTrue&nbsp;





#SadButTrue

<img data-src=" />



j’ai rippé, chef ! <img data-src=" />


Si j’ai bien compris le truc est standardisé et il n’y a pas de licence proprio dessus, j’ai bon ??


Ah bonne nouvelle mais ça fait encore très longtemps à attendre pour une intégration à l’ESR et surtout que ça soit mis à jour au boulot <img data-src=" />


C’est exactement ça. Et surtout vu que tu trouves des clés à absolument tous les prix, c’était quand même une belle hérésie de pas implémenter ça rapidement sur des navigateurs comme Firefox…


C’est un miracle !!!

ça me faisait mal d’utiliser ma yubikey sur un google chrome


&nbsp;Ok en gros la plupart des gens qui utilisent ce truc sont quoi ?





  • Des sédentaires qui vont de toutes façons laisser la clé branchée sur le PC en permanence. Bref accèdes au PC d’une manière ou d’une autre (de préférence distante en mode prise de contrôle) et ça revient au même. non ?

  • Des itinérants circulant avec seulement la clé dans les poches qui pourront éventuellement se faire voler la clé ou la perdre. C’est pas forcément mieux suivant les cas de figure. Que ce passe-t-il quand la clé est définitivement perdue (ou cassé)? La déclaration de la nouvelle clé est un problème en soit. Quid des cas ou les SI interdisent des connexions de périphériques (ici USB)? Ça pourrai bien compliquer la vie de ces itinérants.







    &nbsp;En fait de créer un certificat (avec une solution logicielle dédiée) du PC utilisateur est certes moins itinérant mais revient quasiment au même. On sait que les utilisateurs seront à un moment ou à un autre “flemmard” et oublieront de débrancher. Je reconnais volontiers que cela complique les choses pour les pirates mais le problème est encore un peu le même. L’utilisateur.








TexMex a écrit :



&nbsp;Ok en gros la plupart des gens qui utilisent ce truc sont quoi ?

Des sédentaires qui vont de toutes façons laisser la clé branchée sur le PC en permanence. Bref accèdes au PC d’une manière ou d’une autre (de préférence distante en mode prise de contrôle) et ça revient au même. non ?Des itinérants circulant avec seulement la clé dans les poches qui pourront éventuellement se faire voler la clé ou la perdre. C’est pas forcément mieux suivant les cas de figure. Que ce passe-t-il quand la clé est définitivement perdue (ou cassé)? La déclaration de la nouvelle clé est un problème en soit. Quid des cas ou les SI interdisent des connexions de périphériques (ici USB)? Ça pourrai bien compliquer la vie de ces itinérants.



&nbsp;En fait de créer un certificat (avec une solution logicielle dédiée) du PC utilisateur est certes moins itinérant mais revient quasiment au même. On sait que les utilisateurs seront à un moment ou à un autre “flemmard” et oublieront de débrancher. Je reconnais volontiers que cela complique les choses pour les pirates mais le problème est encore un peu le même. L’utilisateur.





Mais tu oublies la variable que supprimes le truc: le côté géographique.

Aussi, pour te pirater ton compte, il faut d’abord avoir accès à ton pc…. D’un coup, c’est pas la même.



Quelqu’un a une référence de clé U2F qui soit utilisable sur mobile (Android, probablement avec du BLE) ? Pas trop cher ? Merci.


Tu entends quoi par utilisable sur mobile ? Certaines Yubikey disposent du NFC, mais c’est uniquement pour des applications spécifiques (notamment openkeychain de mémoire)


Je l’ai implémenté sur mon NextCloud maison.&nbsp; C’est juste une extension à installer et configurer la clé via l’admin de Nextcloud.


Enfin une bonne nouvelle pour firefox. Parce que pour l’instant, il y avait bien une extension, mais celle-ci avait tendance à se faire dégommer un peu trop facilement par les antivirus.



Et en plus, avec la refonte des extensions, elle n’aurait plus fonctionné. Comme bon nombre d’extensions qui protège notre vie privée qui seront désactivé avec la version 57 qui doit bientôt arriver (à moins que ce ne soit la 58, je suis plus trop sur là).


J’ai jeté un coup d’œil sur la page de l’U2F de Google :

https://support.google.com/accounts/answer/6103523?co=GENIE.Platform%3DAndroid&a…



Ils préconisent du BLE pour pouvoir utiliser l’U2F sur téléphone.



J’utilise beaucoup les services Google (patapé) et beaucoup sur Android, il faut donc que je puisse relier les deux.


comme dit plus haut, la Yubikey Neo (en NFC) ne semble pas fonctionner directement sur chrome mobile sur Android 7.


Il est souvent conseillé d’avoir deux clés, dont une de backup.

Et généralement les sites ont une procédure pour désactiver l’U2F en cas de clé perdue/cassée.



Tout le monde ne voudra (ou ne pourra) pas suivre mon exemple mais j’ai deux YubiKey 4 (une USB-C, une USB), elles se partagent les clés TOTP (codes qui varient en fonction de l’heure, que j’utilise en méthode de double authentification alternative à l’U2F) et à chaque fois j’enregistre les deux clés dans les sites qui gèrent l’U2F.

J’utilise celle en USB-C sur mon mobile pour le TOTP via le Yubico Authenticator, mais à ma connaissance l’U2F n’est pas implémenté sur mobile.



En ce qui concerne Firefox, pour être en CC du “bug” depuis longtemps (puisque j’ai voté pour) je suis content de voir que ça bouge enfin.

Dommage que ça ne bouge qu’après que la MoFo ait fait perdre toute envie d’utiliser Firefox à beaucoup de power users, moi inclus.


Bah typiquement, utilise la clé en mode TOTP avec un adaptateur USB-&gt;MicroUSB ou USB-C direct (en fonction du connecteur de la clé et de celui du téléphone).

L’application Yubico Authenticator va sortir les codes TOTP (être sûr d’avoir un téléphone à l’heure exacte !), et propose à droite de chaque code un bouton pour copier le code… il suffit alors de coller le code dans le délai imparti dans le browser ou l’application qui le demande.



À noter que le paramètre “Stockage OTG” (Paramètres/Système/Avancé) doit être actif sur Android pour pouvoir utiliser un périphérique USB dessus, que ce soit une Yubikey ou une souris.


Au sujet de Facebook : l’un de membres de l’équipe qui implémente la double authentification chez Facebook, suit le bug U2F de Mozilla, et vient d’annoncer qu’ils vont faire des tests, et si c’est concluant, enlever la restriction pour Firefox.



Bref,&nbsp; la reconnaissance pour Firefox peut aller très vite sur les gros site.








TheJester a écrit :



Je l’ai implémenté sur mon NextCloud maison.  C’est juste une extension à installer et configurer la clé via l’admin de Nextcloud.





<img data-src=" /> Merci de l’info. Par curiosité, t’as quel genre de clé ?



&nbsp;Comment se déroule la procédure de “désactivation” d’une clé sur un site ? Ont-il tous le même processus?



&nbsp;


c’est généralement la même que pour supprimer toute connexion à double facteur (que ce soit sms, U2F ou mail) et n’est pas forcément la même suivant les sites.

pour info, sur mobile, tout ce qui est compatible avec Google Authenticator peut être potentiellement compatible avec Yubico Authenticator et donc une yubikey.


J’ai dû le faire à l’époque où mon unique Yubikey est morte… j’aurais dû en acheter une autre en backup, mais maintenant j’ai retenu la leçon.



En gros, ça dépend des sites.

Kickstarter demande des&nbsp;informations complémentaires (IP utilisées pour se connecter avec succès, exemples de projets soutenus, …).

Gandi appelle carrément au téléphone pour vérifier des informations du compte (lister des noms de domaine possédés, date et lieu de naissance, adresse renseignée, …).

D’autres envoient un SMS avec un code de vérification.



Mais ça pose surtout problème pour les sites sur lesquels on n’avait pas de session ouverte, car souvent dès qu’une session est ouverte il est assez facile de désactiver la double authentification dans les paramètres, souvent en retapant le mot de passe pour s’assurer que c’est bien l’utilisateur qui fait la demande (voire là aussi une vérification par code SMS).








Minikea a écrit :



c’est généralement la même que pour supprimer toute connexion à double facteur (que ce soit sms, U2F ou mail) et n’est pas forcément la même suivant les sites.

pour info, sur mobile, tout ce qui est compatible avec Google Authenticator peut être potentiellement compatible avec Yubico Authenticator et donc une yubikey.





Oui, il est d’ailleurs recommandé de prendre une photo du QR Code ou de copier les codes de la clé quelque part, pour pouvoir être en mesure de recréer la clé TOTP sur un autre appareil au cas où… par contre du coup il faut que ces photos ou ce fichier texte soient sauvegardés de façon très sécurisée ou cachée : dans ce genre de cas le combo papier+stylo (+bonne cachette comme un vieux bouquin ou une pochette de CD que personne n’ira ouvrir) a une certaine efficacité.



Dans mon cas avec mes deux clés, je gardais le QR Code d’un site affiché et je le scannais avec l’Authenticator pour l’ajouter dans une clé… puis je mettais l’autre clé et je répétais la procédure pour que les deux aient la même.

Et ensuite je sauvegarde la version texte de la clé “quelque part”.









Ruzgfpegk a écrit :



J’ai dû le faire à l’époque où mon unique Yubikey est morte… j’aurais dû en acheter une autre en backup, mais maintenant j’ai retenu la leçon.



En gros, ça dépend des sites.

Kickstarter demande des&nbsp;informations complémentaires (IP utilisées pour se connecter avec succès, exemples de projets soutenus, …).

Gandi appelle carrément au téléphone pour vérifier des informations du compte (lister des noms de domaine possédés, date et lieu de naissance, adresse renseignée, …).

D’autres envoient un SMS avec un code de vérification.



Mais ça pose surtout problème pour les sites sur lesquels on n’avait pas de session ouverte, car souvent dès qu’une session est ouverte il est assez facile de désactiver la double authentification dans les paramètres, souvent en retapant le mot de passe pour s’assurer que c’est bien l’utilisateur qui fait la demande (voire là aussi une vérification par code SMS).





En bref ce n’est pas un protocole unifié.&nbsp;



Le pirate moyen cherchera donc les cibles à processus léger ou faillible pour désactiver la clé (donc le besoin matériel) et repartir avec les seuls L/MDP pour faire des usurpations.



&nbsp;J’extrapole peut être n’importe quoi mais imaginons qu’un gus télécharge les données profil du navigateur et les cookies d’une autre personne. Pourrait-t-il simuler un utilisateur et désactiver les clés sur un site ? Ce serait tout à fait ennuyeux.



&nbsp;Enfin je veux dire que je vois le besoin de protection et que des couches supplémentaires ne sont pas de trop dans le monde numérique d’aujourd’hui (quoique NFC me fait pleurer). Toutefois cela reste juste des obstacles de plus suivant les processus utilisés ou leurs failles.&nbsp; Il suffit d’une seule faille parfois et tout l’édifice s’écroule.



&nbsp;Bref le biométrique a encore de beaux jour devant lui (troll). Enfin je veux que ces dispositifs sont pour identifier; et non pas à protéger la connexion. Et aujourd’hui je dois avouer le l’identification est un sacré problème tant technique, qu’éthique, juridique etc…



&nbsp;



&nbsp;



Une YubiKey NEO.


Il faut bien placer quelque part la ligne entre “l’utilisateur ne pourra pas retrouver son compte mais un pirate ne le pourra pas non plus” et “l’utilisateur pourra retrouver facilement son compte, et un pirate déterminé aussi”, et chaque site la place comme il l’entend.



Mais malgré tout, selon moi ça reste plus sécurisé que la “simple authentification” (y compris à mot de passe unique pour chaque site par gestionnaire de mot de passe) ou la double authentification par code SMS.

Je me souviens d’avoir lu un cas où un pirate avait appelé l’opérateur de sa cible en se faisant passer pour sa cible, pour recevoir une autre SIM et l’utiliser pour débloquer un service utilisant les codes SMS.



Tant que j’y pense, la base du 2FA est que le mot de passe et la vérification sont deux choses séparées, ainsi par exemple stocker ses clés de génération TOTP et ses mots de passe dans le même trousseau KeePass/LastPass/… (voire dans deux trousseaux avec la même clé maître) serait un contresens assez dangereux.








TheJester a écrit :



Une YubiKey NEO.





<img data-src=" /> merci



Ha ba enfin !



Mais bon le U2F c’est est trop contraignant.



Entre les browser pas compatibles, les OS pas comptabibles, narche pas avec un mobile (ba oui pas de port USB sur un smartphone).



Le second facteur le moins contraignant pour mou est le PUSH.








127.0.0.1 a écrit :



En fait, le standard du web c’est google/chrome…

… et tous les autres navigateurs doivent être compatibles google/chrome.



L’erreur qui a été commise du temps de IE6 recommence avec Chrome… La vie n’est qu’un éternel recommencement <img data-src=" />



L’interface Android NFC pour l’U2F semble être une implémentation propre à Yubico, du moins c’est l’impression que j’en ai. J’aurais préféré quelquechose de plus natif à Android, mais ça ne semble pas exister ou être pratique.


En même temps on sait déjà bien faire de la 2FA depuis un mobile hein <img data-src=" />








TexMex a écrit :



&nbsp;Ok en gros la plupart des gens qui utilisent ce truc sont quoi ?

Des sédentaires qui vont de toutes façons laisser la clé branchée sur le PC en permanence. Bref accèdes au PC d’une manière ou d’une autre (de préférence distante en mode prise de contrôle) et ça revient au même. non ?Des itinérants circulant avec seulement la clé dans les poches qui pourront éventuellement se faire voler la clé ou la perdre. C’est pas forcément mieux suivant les cas de figure.



&nbsp;1) il faut toucher la clef pour que l’authentification s’effectue (du moins avec une yubikey), donc en cas de piratage à distance, même si la clef est sur le pc, le pirate n’a pas les moyens de toucher à la clef…





  1. il faut se faire voler la clef mais aussi identifiants + mdp. dans ce cas en effet t’es vulnérable mais ça veux dire 2 vol, c’est pas courant





    edit : #42, c’est bon on peut fermer les commentaires <img data-src=" />