Il existe pourtant un standard pour une authentification sécurisée, c'est WebAuthn. Voir wikipedia (https://fr.wikipedia.org/wiki/WebAuthn) pour plus d'info, mais en gros cela permet au navigateur d'utiliser un "authentificateur" ("Ce que je possède" ou/et "Ce que je suis").
Cet authentificateur peut être une classique clé sécurisée (comme une Yubikey), mais pas seulement. Tout matériel (pc/laptop/téléphone) qui intègre une puce "sécurisée" peut servir d'authentificateur. Ce type d'authentificateur est appelé "Platform", par opposition aux clés de sécurité appelées "Cross platform". Ce détail est important car on peut choisir d'imposer un type d'authentificateur avec WebAuthn.
Ainsi, sur desktop, Windows hello (https://www.microsoft.com/en-us/windows/windows-hello) peut servir d'authentificateur. Sur un téléphone, ce sera le code de déverrouillage de l'écran. Cela peut être un code PIN, l'empreinte digitale, la reconnaissance faciale, ou autre, c'est l'utilisateur qui choisit en fonction des capacités de son matériel. Si besoin, le téléphone peut servir d'authentificateur pour desktop (en le connectant en bluetooth/NFC par exemple).
Le besoin d'une clé sécurisée n'est alors plus nécessaire et la technologie va pouvoir être utilisée davantage par le grand public... Ou pas, car tout le monde qui possède une clé de sécurité doit savoir qu'il faut en posséder deux, une seconde pour backup, au cas où la première est perdue.
Bref, ayant implémenté Webauthn pour un site récemment, la partie javascript est vraiment simple à mettre en place. En effet, il y a simplement une méthode à appeler pour demander une authentification. Il n'y a pas à se soucier de la manière utilisée par l'utilisateur pour s'authentifier. Tout est géré par le navigateur et l'authentificateur.
La vérification coté serveur a été un peu plus longue pour être sûr de ne pas faire d'erreur, mais au final c'est 2 ou 3 méthodes d'openssl à appeler. Bref, en une semaine c'était réglé.
Webauthn est relativement "récent", cela ne fonctionne pas encore sur iPhone mais c'est prévu. Pour tester: https://webauthn.io/ Dans "Authenticator Type" vous pouvez forcer un type d'authentificateur dont je parlais tout à l'heure (Cross platform pour les clés de sécurité, ou Platform).
# WebAuthn
Posté par Thrillseeker . En réponse au journal Lettre ouverte à La Banque Postale. Évalué à 10.
Il existe pourtant un standard pour une authentification sécurisée, c'est WebAuthn. Voir wikipedia (https://fr.wikipedia.org/wiki/WebAuthn) pour plus d'info, mais en gros cela permet au navigateur d'utiliser un "authentificateur" ("Ce que je possède" ou/et "Ce que je suis").
Cet authentificateur peut être une classique clé sécurisée (comme une Yubikey), mais pas seulement. Tout matériel (pc/laptop/téléphone) qui intègre une puce "sécurisée" peut servir d'authentificateur. Ce type d'authentificateur est appelé "Platform", par opposition aux clés de sécurité appelées "Cross platform". Ce détail est important car on peut choisir d'imposer un type d'authentificateur avec WebAuthn.
Ainsi, sur desktop, Windows hello (https://www.microsoft.com/en-us/windows/windows-hello) peut servir d'authentificateur. Sur un téléphone, ce sera le code de déverrouillage de l'écran. Cela peut être un code PIN, l'empreinte digitale, la reconnaissance faciale, ou autre, c'est l'utilisateur qui choisit en fonction des capacités de son matériel. Si besoin, le téléphone peut servir d'authentificateur pour desktop (en le connectant en bluetooth/NFC par exemple).
Le besoin d'une clé sécurisée n'est alors plus nécessaire et la technologie va pouvoir être utilisée davantage par le grand public... Ou pas, car tout le monde qui possède une clé de sécurité doit savoir qu'il faut en posséder deux, une seconde pour backup, au cas où la première est perdue.
Bref, ayant implémenté Webauthn pour un site récemment, la partie javascript est vraiment simple à mettre en place. En effet, il y a simplement une méthode à appeler pour demander une authentification. Il n'y a pas à se soucier de la manière utilisée par l'utilisateur pour s'authentifier. Tout est géré par le navigateur et l'authentificateur.
La vérification coté serveur a été un peu plus longue pour être sûr de ne pas faire d'erreur, mais au final c'est 2 ou 3 méthodes d'openssl à appeler. Bref, en une semaine c'était réglé.
Webauthn est relativement "récent", cela ne fonctionne pas encore sur iPhone mais c'est prévu. Pour tester: https://webauthn.io/ Dans "Authenticator Type" vous pouvez forcer un type d'authentificateur dont je parlais tout à l'heure (Cross platform pour les clés de sécurité, ou Platform).