Yuri Akkermann: «L'un des principes fondamentaux de l'Alliance FIDO est d'assurer la confidentialité»

Entretien avec FIDO Alliance, ingénieur principal de certification sur l'authentification sans mot de passe


Nos utilisateurs nous ont demandé de mettre en œuvre l'authentification à deux facteurs via l'application Google. Et récemment, nous leur avons donné cette opportunité. Vers la même époque, le consortium FIDO Alliance a publié des normes pour l'authentification sans mot de passe sur les sites, dans les applications mobiles et les services Web - WebAuthn et CTAP.

Nous nous sommes intéressés à ce sujet et avons préparé du matériel sur Habré , dans lequel nous avons parlé des méthodes qui sous-tendent les nouveaux protocoles.

Ensuite, pour clarifier certains points concernant les subtilités de la norme, nous avons discuté avec Yuri Akkermann ( herrjemand ), ingénieur principal de certification chez FIDO Alliance. Il a répondu à plusieurs de nos questions sur l'authentification passée, présente et future de FIDO. Nous présentons à votre attention le texte de l'entretien.


/ Flickr / zhrefch / PD

Veuillez nous parler de votre parcours et de votre expérience dans le domaine informatique dans son ensemble. Comment avez-vous commencé votre travail dans l'industrie?


Je fais de la programmation depuis mes quinze ans. Après l'école, je suis allé à l'université, où j'ai étudié l'informatique et les mathématiques. Au cours de la deuxième année, je me suis intéressé à la cryptographie, aux problèmes de sécurité de l'information et je suis «tombé» sur FIDO. J'ai vraiment aimé leurs protocoles, et à la fin j'ai écrit une bibliothèque U2F pour Python Flask et fait une présentation.

Mon travail a été apprécié par FIDO. De plus, ils recherchaient simplement un ingénieur en certification. Finalement, je suis devenu responsable de la certification technique.

Depuis combien de temps traitez-vous de sujets liés à l'authentification avec FIDO? Quelles tâches avez-vous résolues lors de l'élaboration d'une nouvelle norme?


Je travaille avec les protocoles FIDO depuis trois ans - deux d'entre eux au sein de l'Alliance FIDO. Mon rôle principal est la certification technique et les outils automatisés pour tester les implémentations selon les spécifications. Mes responsabilités incluent le développement et le support des outils eux-mêmes, ainsi que la rédaction de plans de test - des listes de tests pour vérifier les serveurs, les clients et les authentificateurs. Je pense que la rédaction d'un plan de test est le processus le plus long, car il nécessite une compréhension de toutes les subtilités des protocoles et des normes utilisées.

Je conseille également des groupes de travail sur les améliorations possibles des spécifications, fais des présentations et rédige des articles de temps en temps.

Comment est née l'idée de créer un nouveau standard d'authentification? Pourquoi avez-vous décidé que le monde et la communauté avaient besoin d'une nouvelle solution dans ce domaine? Quels sont les inconvénients des formats existants que WebAuthn est censé fermer?


FIDO Alliance a été fondée en 2013 par Agnitio, Infineon Technologies, Lenovo, Nok Nok Labs, PayPal et Validity, qui ont développé UAF. Un peu plus tard, ils ont été rejoints par Google, Yubico et NXP - ceux-ci ont travaillé sur le prédécesseur de U2F et ont pensé qu'il serait rentable d'unir leurs forces, car leurs idées coïncidaient avec celles de l'Alliance. Ils ont cherché à protéger les internautes contre le phishing, à résoudre les problèmes d'utilisation des mots de passe et à développer l'accessibilité et la sécurité des technologies biométriques.

Des études préliminaires ont-elles été menées qui ont soit renforcé l'intention de créer une norme, soit incité à sa création? Si oui, quel type de données avez-vous analysé?


Les membres de l'Alliance tels que Google, Microsoft, Samsung, Yubico et d'autres travaillent activement à créer et à promouvoir des normes. Ils explorent les marchés, essayant de comprendre comment FIDO peut "s'intégrer" dans divers écosystèmes. Google, par exemple, a mené une étude sur la migration du deuxième facteur des mots de passe à usage unique vers U2F.

Comment est né le protocole CTAP? Comment est-il associé à WebAuthn?


FIDO se compose de trois parties: serveur, client (navigateur) et authentificateur. Le serveur envoie un appel au client, le client passe l'appel à l'authentificateur, qui le signe et le renvoie au client, et celui-ci est déjà envoyé au serveur.

Pour que le serveur utilise l'authentification FIDO, les clients disposent d'une API WebAuthn JS. Le client communique avec les authentificateurs en utilisant le protocole de bas niveau CTAP2 (Client-to-Authenticator Protocol 2). CTAP2 décrit les structures de requête CBOR et les transports, tels que USB, NFC et BLE pour communiquer avec un authentificateur. La combinaison de ces deux normes est appelée FIDO2.

L'un des objectifs de la création du format est de se protéger contre le phishing. Quels sont certains des avantages par rapport à d'autres solutions?


Si nous parlons de solutions existantes, la seule chose avec laquelle FIDO peut être comparé est les certificats clients ou TLS CCA (Client Certificate Authentication). FIDO et CCA sont des protocoles de réponse aux appels sécurisés contre le phishing sur les clés publiques. Mais ils ont des différences importantes.

Les CCA ne sont pas protégés contre une attaque par rejeu. Ils réutilisent un seul certificat sur plusieurs sites, ce qui peut conduire à une désanonymisation de l'utilisateur. Chez FIDO, nous générons une nouvelle paire de clés unique pour chaque enregistrement afin de maintenir la confidentialité.

CCA a également un problème avec le stockage des clés, car dans la plupart des cas, la clé privée est soit cryptée en PKCS12, soit se trouve simplement en clair. Ainsi, même une application non privilégiée peut la voler sans problème. Dans FIDO, toutes les clés sont sécurisées, par exemple, dans un stockage SecureEnclave unidirectionnel. La récupération des clés de ce type de stockage est très difficile.

CCA a des difficultés avec une mise en œuvre correcte côté serveur, car la prise en charge complète de CCA laisse beaucoup à désirer. Et en raison de la complexité de travailler avec TLS, les développeurs font beaucoup d'erreurs. FIDO n'a besoin que de la prise en charge de la cryptographie de base elle-même. CCA peut être implémenté via HTTP, ce qui ne peut pas être fait dans WebAuthn. L'ACC a également des problèmes de portabilité et de facilité d'utilisation.

Je ne pense pas que l'Alliance ait inventé quelque chose de nouveau. Nous avons simplement développé un bon protocole qui inclut les mécanismes de sécurité existants.


/ Flickr / markus spiske / PD

L'utilisation de la norme ne révélera-t-elle pas des vecteurs d'attaque supplémentaires liés au fait qu'il sera nécessaire de stocker une grande quantité d'informations biométriques?


L'un de nos principes fondamentaux est la confidentialité. Les informations biométriques sont stockées sur des puces sécurisées et ne les quittent jamais. Nos entreprises travaillent avec des lecteurs certifiés FIDO ou FIPS.

Nous n'utilisons pas non plus d'informations biométriques pour autre chose que pour confirmer la présence de l'utilisateur. Et nous avons un programme de certification biométrique pour tester les authentificateurs.

Vous avez dit une fois que l'authentification par code SMS est une mauvaise option 2FA. Comment pouvez-vous commenter cela?


Les codes SMS ou SMS OTP sont une authentification à deux facteurs avec des mots de passe uniques fournis par SMS. Par conséquent, il s'avère que cette solution est vulnérable au phishing. Si votre utilisateur est pris dans l'hameçonnage et donne son nom d'utilisateur et son mot de passe, qu'est-ce qui l'empêchera de transmettre un code SMS aux cybercriminels?

Nous ne devons pas oublier les problèmes liés à l'utilisation des SMS comme moyen de transport. Il y a trois ans, 400 000 comptes ont été piratés dans une banque allemande en raison d'une vulnérabilité du protocole SS7, qui est utilisé pour acheminer des informations de télécommunications entre différents opérateurs de télécommunications. Les attaquants qui ont obtenu un accès non autorisé au réseau SS7, dans lequel il n'y a pas d'authentification, ont pu enregistrer eux-mêmes le numéro des victimes et obtenir leurs codes.

De plus, aujourd'hui, n'importe qui peut acheter une station de base GSM pour 500 à 600 $ et intercepter des SMS en l'utilisant à l'aide d'une attaque MITM. Et enfin, il y a des dangers associés à l'ingénierie sociale. Je pense que beaucoup connaissent l’histoire lorsque des assaillants ont volé une somme importante dans des comptes bancaires en délivrant un duplicata de la carte SIM de la victime. Cela se produit en Russie et dans d'autres pays avec une régularité enviable.

Que faire si vous devez accéder au service sur plusieurs appareils ou si plusieurs personnes utilisent le même service à la fois? La norme prend-elle en charge ce mode de fonctionnement?


Contrairement à un mot de passe, il peut y avoir de nombreux authentificateurs. L'utilisateur peut enregistrer son téléphone, son ordinateur portable, son jeton et utiliser n'importe lequel d'entre eux pour l'authentification. En outre, un jeton peut être «lié» à plusieurs comptes sans perte de confidentialité.

Et si le jeton était perdu? Sera-t-il possible de rendre l'accès aux services?


L'authentification FIDO doit être considérée comme une clé principale. Si vous avez perdu vos clés, vous pouvez toujours récupérer les pièces de rechange auprès de votre femme, vos enfants, votre mère, votre grand-mère ou, dans le pire des cas, les récupérer sous le paillasson. Par conséquent, nous vous recommandons de toujours avoir un identifiant de rechange et de le stocker, par exemple, dans un coffre-fort.

Si nous parlons de rétablir l'accès aux services, alors c'est vraiment un problème difficile. La récupération ne fait pas partie de la norme, car différentes ressources restaurent l'accès aux comptes de différentes manières. Les approches classiques sont des codes à usage unique qui ne sont pas protégés contre le phishing. Facebook vous permet de retrouver l'accès via des amis.

La solution la plus prometteuse à ce jour est la récupération déléguée - un protocole de récupération basé sur le stockage de secrets chiffrés dans d'autres services. Incidemment, il a été écrit par l'un des créateurs de U2F Bratt Hill (Bratt Hill). La récupération est un problème assez difficile et intéressant, dont la solution reste à trouver.

La clé privée de l'authentificateur doit être protégée contre la copie. Sous quelle forme et où sont stockés les identifiants? Comment sont-ils échangés?


À chaque enregistrement, l'authentificateur génère une nouvelle paire de clés unique et lui attribue un identifiant aléatoire appelé ID ou credID. Les clés privées sont stockées dans un stockage sécurisé, tel que SecureEnclave, TPM ou TEE.

La clé privée ne quitte jamais l'authentificateur, car cela n'est pas obligatoire. Si l'utilisateur souhaite ajouter un autre authentificateur, il l'enregistre simplement, générant une nouvelle paire de clés et un nouvel identifiant, et transfère la clé publique avec l'identifiant sur le site. Pendant l'authentification, le site traduit l'identifiant à l'authentificateur, et l'authentificateur trouve la paire de clés avec lui et signe l'appel.

Comment la nouvelle norme sera-t-elle liée aux exigences des lois sur la protection des données (par exemple le RGPD)?


Nos principes sont très conformes au RGPD. Même en mode à deux facteurs, nous sécurisons l'authentification par phishing. Si nous parlons d'authentification sans mot de passe, aucun mot de passe n'est transmis ici. De plus, contrairement aux certificats clients, notre protocole ne peut pas être utilisé comme super cookies. Par conséquent, de nombreuses entreprises travaillent déjà sur la mise en œuvre de nos protocoles.

Et qui met déjà en œuvre la norme?


Google, Facebook, Dropbox, Salesforce, Bank of America, NTT Docomo ... Nous avons des centaines d'entreprises et un demi-milliard d'utilisateurs quotidiens. Nous grandissons chaque jour. Mais tout de même, le passage à l'authentification complète sans mot de passe prendra un certain temps.

À quelle vitesse la norme permet-elle la transition d'une autre méthode d'authentification?


Le passage des solutions d'authentification à deux facteurs existantes (par exemple, d'OTP) à FIDO est assez simple. Il vous suffit de connecter la bibliothèque et d'implémenter quelques modifications côté client. Dans FIDO2, l'option d'authentification sans mot de passe n'est qu'un indicateur supplémentaire lors de l'inscription. Le transfert de l'ensemble de l'écosystème vers une authentification complète sans mot de passe prendra un certain temps. Nous prévoyons que dans 10 ans, cette transition achèvera 80% de tous les services.

Quels sont les plans de FIDO pour développer la norme? Quelles améliorations devraient être apportées dans un avenir proche? Et à long terme?


Jusqu'à présent, nous nous sommes concentrés sur la promotion des normes. Il y a des millions de sites dans le monde - cela signifie que nous avons un million de choses à faire. À long terme, nous prévoyons de travailler à la mise en œuvre de normes pour l'Internet des objets afin d'augmenter la sécurité des gadgets IoT. Les plans comprennent également des travaux sur les systèmes d'authentification de l'État, les eID, les passeports et les systèmes d'identification décentralisés.

Comment prévoyez-vous de continuer à travailler sur WebAuthn? Comment la communauté informatique peut-elle vous aider?


Comme auparavant, je continue mon travail d'ambassadeur dans la communauté des développeurs: je publie des articles, travaille sur l'open source, fais des présentations et anime des formations. Quant à l'aide communautaire, je peux seulement dire: "Nous avons besoin de plus d'or open source."



Le PS Yuri Akkermann a également préparé un article sur Habré, dans lequel il décrit les principaux mécanismes de sécurité de FIDO2 et passe en revue l'API JS pour travailler avec.

Source: https://habr.com/ru/post/fr416481/


All Articles