SQRL n'est certainement pas sans défauts, mais il est certainement supérieur à la plupart des solutions d'authentification primaires largement utilisées sur le Web aujourd'hui en termes de sécurité et (et c'est important) de convivialité. Permettez-moi de vous expliquer.
Idées fausses
Tout d'abord, permettez-moi de clarifier quelques-unes des idées fausses présentes dans certaines des autres réponses à cette question. Beaucoup de ces réponses sont obsolètes et ont été écrites avant les modifications apportées à la documentation SQRL qui abordent les problèmes qui y sont présentés, tandis que d'autres semblent mettre un accent excessif sur les failles de SQRL qui sont également présentes dans de nombreuses autres solutions d'authentification existantes largement utilisées, tandis que ignorant ses avantages. Alors clarifions quelques idées fausses ici, d'accord?
Mythe: SQRL nécessite de scanner les codes QR pour fonctionner
Ce n'est tout simplement pas vrai. Les codes QR sont une commodité qui facilite l'utilisation de SQRL sur les ordinateurs sur lesquels l'utilisateur n'a pas configuré le logiciel client SQRL. Le site Web de SQRL déclare ce qui suit:
Trois façons d'y aller. . . smartphone en option:
Bien que l'inspiration originale pour le développement de ce système ait été un smartphone scannant un code QR sur la page de connexion d'un site Web, un petit ajout à ce modèle permet deux modes de fonctionnement plus importants: L'image du code QR est également un lien cliquable vers la même URL qui est encodée dans le code QR. Cela donne trois façons de se connecter:
- Scanner le code avec un smartphone: En utilisant le modèle décrit ci-dessus, le smartphone d'un utilisateur scanne le code QR qui apparaît sur la page de connexion d'un site Web et l'utilisateur est connecté à ce site.
- APPUYER SUR LE CODE sur un smartphone: Pour se connecter à un site Web SUR le smartphone, lorsque le code visuel SQRL est également de type URL link (en utilisant sqrl: // comme schéma), l'application SQRL installée sur le smartphone recevra ce lien et connectera en toute sécurité l'utilisateur au site sur le téléphone.
- Cliquez sur le code sur un écran de bureau ou d'ordinateur portable: Pour utiliser le système SQRL sur n'importe quel ordinateur de bureau ou ordinateur portable, une application SQRL de bureau serait installée et s'enregistrerait pour recevoir des liens sqrl: // . (Ceci est similaire à la façon dont un programme de messagerie s'enregistre pour recevoir des liens mailto:). Cela permet aux utilisateurs sur leur bureau d'utiliser la même solution qu'ils utilisent sur leurs smartphones. Lorsqu'un site Web propose un code SQRL, l'utilisateur clique simplement sur le code avec le curseur de la souris et l'application SQRL installée localement s'affiche, demande son mot de passe SQRL, confirme le domaine, puis se connecte.
Mythe: la clé principale SQRL est stockée complètement non chiffrée et non protégée sur votre téléphone
Je ne sais pas pourquoi certaines personnes ont fait cette hypothèse, car cela me semble évident que ce ne serait pas le cas. La clé principale SQRL est protégée de la même manière que vous protégeriez une base de données de mots de passe: avec un mot de passe principal fort. Voler le téléphone d'un utilisateur ne vous donnerait pas automatiquement accès à son identité en ligne à moins que vous n'ayez également son mot de passe principal. Plus de détails sur la gestion des clés sont expliqués dans la page Gestion des clés côté client SQRL sur le site Web de SQRL.
Mythe: si votre clé principale est volée, vous ne pouvez pas changer votre identifiants de connexion
Ceci est également faux. SQRL fournit un moyen intégré pour permettre au véritable titulaire du compte de mettre à jour ses informations de connexion en cas de clé compromise. Cette fonctionnalité est connue sous le nom de verrouillage d'identité:
«Identity Lock» empêche le changement d'identité & autorise la récupération: Ceci est également suffisamment important pour mériter sa propre page de description détaillée: « Le protocole de verrouillage d'identité» (page 4 dans le bloc de liens au bas de cette page.) Une fois l'identité d'un utilisateur établie avec un serveur Web, le client SQRL est incapable de changer cette identité. Cela signifie que si le pire se produisait et qu'un mot de passe très faible et facile à deviner était utilisé, ou que le téléphone ou le bureau d'un utilisateur était piraté pour obtenir sa clé principale d'identité et son mot de passe, aucun tiers malveillant ne peut modifier l'identité en ligne de l'utilisateur pour les exclure de leurs propres comptes en ligne. De plus, en chargeant ensuite une "clé de déverrouillage d'identité" normalement hors ligne, le véritable propriétaire de son identité peut se retirer et remplacer son identité en ligne perdue ou volée pour essentiellement la reprendre à tout attaquant, ce qui rend leur identité précédente est inutile.
Plausible: SQRL est plus vulnérable au phishing que les solutions d'authentification existantes
D'accord, c'est donc partiellement vrai . Lorsque vous utilisez SQRL en scannant un code QR, il y a en effet très peu de protection contre le phishing. À moins que l'utilisateur veille à ce que le site Web affiché dans la barre d'URL de son navigateur soit le même que celui affiché par l'application SQRL Client, il peut autoriser une session de connexion pour l'attaquant. C'est toujours mieux que les mots de passe, où ils donneraient au phisher un accès permanent à leur compte (et à tous les autres comptes qu'ils ont ailleurs et qui partagent le même mot de passe) jusqu'à ce qu'ils changent de mot de passe, mais pas aussi bien que d'autres solutions qui s'intègrent à le navigateur de l'utilisateur comme les clés U2F, WebAuthn, les certificats clients et (sous certaines conditions) les gestionnaires de mots de passe.
Cependant, lorsque vous utilisez un client SQRL sur le même appareil avec lequel vous vous connectez, SQRL dispose de certaines protections contre le phishing. Ces protections sont expliquées sur le site Web de SQRL, dans la section Comment la SQRL peut contrecarrer les attaques de phishing. Il est également possible d'intégrer SQRL avec les navigateurs (éventuellement via des plugins) pour fournir une protection beaucoup plus forte contre les attaques de phishing; à égalité avec des solutions comme WebAuthn et les certificats clients.
Dans l'ensemble, je classerais SQRL à peu près au même niveau que les gestionnaires de mots de passe pour la protection contre le phishing. Il a le potentiel de fournir une forte protection contre le phishing lorsqu'il est installé sur le même appareil sur lequel l'utilisateur se connecte, mais offre une protection minimale lorsqu'il est installé sur un appareil différent.
Comparaison avec des alternatives
Comparons maintenant SQRL avec des solutions d'authentification existantes largement utilisées.
Mots de passe
SQRL est largement supérieur aux mots de passe à bien des égards. Non seulement il est plus pratique à utiliser une fois configuré, car les utilisateurs n'ont pas à se soucier de se souvenir ou de retaper plusieurs mots de passe différents pour chaque site, mais il protège également contre la réutilisation des mots de passe, les mots de passe faibles, l'enregistrement de frappe et, dans une certaine mesure, phishing.
Les inconvénients de SQRL par rapport aux mots de passe sont qu'il est plus difficile à mettre en œuvre pour les opérateurs de sites Web, pas aussi largement utilisé, nécessite plus de temps pour être configuré au départ, nécessite un certain effort pour transférer vers un nouvel appareil, et fournit un point de défaillance unique pour tous les comptes de l'utilisateur si la clé principale est volée (bien que ce dernier point soit également le cas pour les mots de passe si un utilisateur utilise le même mot de passe sur chaque site).
Gestionnaires de mots de passe
À bien des égards, SQRL est très similaire aux gestionnaires de mots de passe. Ils fournissent tous deux une ancre de confiance unique et centralisée qui sert de sorte de proxy d'authentification entre les utilisateurs et les services individuels. Cependant, SQRL est supérieur aux gestionnaires de mots de passe de plusieurs manières.
Je pense que le principal avantage de SQRL par rapport aux gestionnaires de mots de passe est qu'il est plus facile et plus sûr à utiliser sur des ordinateurs non fiables ou seulement partiellement fiables. Par exemple, supposons qu'un utilisateur souhaite se connecter à un site Web à l'aide d'un ordinateur d'une bibliothèque publique. Avec un gestionnaire de mots de passe, il devrait soit accéder au mot de passe de ce site sur son téléphone et le retaper manuellement dans l'ordinateur, soit télécharger son gestionnaire de mots de passe et sa base de données de mots de passe sur l'ordinateur de la bibliothèque, déverrouiller la base de données à l'aide de son mot de passe principal, puis se connecter in. Le premier scénario est peu pratique pour l'utilisateur et expose le mot de passe en clair de l'utilisateur pour ce site à l'ordinateur non approuvé (et à tout logiciel malveillant sur l'ordinateur non approuvé, y compris les enregistreurs de frappe). Le deuxième scénario est encore pire, car il est à la fois peu pratique et expose la base de données de mots de passe déchiffrée et le mot de passe principal de l'utilisateur à l'ordinateur non approuvé. Avec SQRL, l'utilisateur n'aurait qu'à scanner un code QR sur l'écran de l'ordinateur non approuvé, ce qui est beaucoup plus pratique pour l'utilisateur, et n'expose qu'une seule session de connexion (sans informations d'identification réutilisables comme un mot de passe) à l'ordinateur non approuvé.
Un autre avantage de SQRL par rapport aux gestionnaires de mots de passe est qu'il est plus facile de récupérer du pire des cas: la base de données de mots de passe de l'utilisateur / la clé principale volée. Avec un gestionnaire de mots de passe, vous devrez non seulement changer votre mot de passe sur chaque site, mais vous devrez également vous soucier du fait que l'attaquant modifie vos mots de passe (peut-être vous excluant de votre compte). L'attaquant a également l'avantage de posséder une liste de tous les sites sur lesquels vous avez un compte, ce qui facilite grandement l'exploitation du vol d'une base de données de mots de passe. Avec SQRL, se faire voler votre clé principale est toujours une situation terrible, mais l'attaquant n'a pas de liste de sites sur lesquels vous avez un compte (devant plutôt deviner), et ne peut pas changer votre mot de passe pour vous exclure de votre compte. Une fois que vous avez chargé votre clé de déverrouillage d'identité, il est également un peu plus pratique de modifier vos informations de connexion sur chaque site, car le client SQRL a la possibilité de le faire automatiquement pour chaque site que vous visitez lors de la connexion. (Pas besoin de passer par des formulaires de «changement de mot de passe».)
Enfin, je pense que SQRL a un petit mais important avantage sur les gestionnaires de mots de passe en ce qui concerne son objectif de remplacer entièrement les mots de passe, et c'est que les sites ont la possibilité d'imposer l'utilisation de SQRL sur les mots de passe traditionnels. Tant que les utilisateurs ont encore la possibilité d'une mauvaise sécurité, en réutilisant le même mot de passe sur chaque site, c'est quelque chose qui se produira toujours. Si SQRL commence à être largement adopté, les sites peuvent en fait commencer à supprimer progressivement l'utilisation des mots de passe. Cela ne peut pas être fait avec les gestionnaires de mots de passe, car ils dépendent de l'utilisation de mots de passe pour fonctionner.
En termes d'inconvénients, je ne peux pas penser à une situation où SQRL serait forcément pire que les gestionnaires de mots de passe en termes de sécurité. Le principal inconvénient de SQRL est qu'il nécessite le support des opérateurs de sites Web, alors que les gestionnaires de mots de passe ne nécessitent aucun support spécial de la part des services existants. Cela signifie que vous pouvez commencer à utiliser des gestionnaires de mots de passe dès maintenant, mais SQRL devra attendre que les sites l'implémentent avant de pouvoir l'utiliser. C'est un obstacle important à l'adoption.
Certificats clients
Le principal avantage de SQRL sur les certificats clients est la commodité. Les certificats clients sont actuellement compliqués à configurer, difficiles à transférer entre les ordinateurs et présentent des problèmes de confidentialité lorsque le même certificat est utilisé sur différents sites. Alors qu'en théorie, nous pourrions construire un système utilisant des certificats clients qui résoudraient ces problèmes, il y aurait aussi le problème d'une mauvaise intégration avec les interfaces utilisateur et les serveurs Web, qui sont des problèmes plus difficiles à résoudre. Je n'entrerai pas dans les détails ici, car il existe déjà un excellent article sur les problèmes d'utilisabilité des certificats clients sur browserauth.net.
En termes de sécurité, les certificats clients ont l'inconvénient d'exiger la participation d'un CA. Ceci est (potentiellement) coûteux et nécessite de faire confiance à l'autorité de certification tierce. De plus, si vous choisissez d'ignorer les autorités de certification et de signer vous-même vos certificats, vous devez régler le problème de la révocation des certificats. Les certificats clients présentent également les mêmes problèmes de sécurité et de commodité que les gestionnaires de mots de passe lorsque les utilisateurs souhaitent se connecter sur un ordinateur non approuvé; ils doivent transférer leur certificat sur l'ordinateur non approuvé, ce qui est à la fois peu pratique et expose potentiellement leur identité principale à des logiciels malveillants sur cet ordinateur.
En bref, jusqu'à ce que quelqu'un propose une meilleure solution conviviale utilisant des certificats clients qui résout (au moins la plupart de) ces problèmes, je ne pense pas que les certificats clients soient un concurrent sérieux de SQRL (ou, pour cela question, aux mots de passe).
Authentification à 2 facteurs
Je pensais juste que je mentionnerais ceci: SQRL et l'authentification à 2 facteurs ne sont pas mutuellement exclusives. SQRL remplace le premier facteur de 2FA: les mots de passe. D'autres mesures supplémentaires comme les codes OTP ou les clés FIDO U2F peuvent toujours être utilisées avec SQRL.
WebAuthn
Maintenant voici où les choses deviennent intéressantes. WebAuthn est une nouvelle norme W3C (enfin plus récente que SQRL) conçue pour fournir une API standard que les sites Web peuvent utiliser pour authentifier les utilisateurs avec des clés publiques sur le Web. Tout comme SQRL, il prend en charge l'utilisation du téléphone de l'utilisateur pour authentifier une session de connexion sur un appareil externe, en plus de quelques autres méthodes d'authentification (telles que les clés de sécurité de deuxième facteur).
C'est là que SQRL rencontre enfin son match, du moins du point de vue de la sécurité. Non seulement WebAuthn fournit les mêmes protections contre la réutilisation des mots de passe, les mots de passe faibles et le keylogging que SQRL, mais il offre également une protection encore plus forte contre le phishing en s'intégrant au navigateur de l'utilisateur même lors de l'autorisation d'une session de connexion pour un PC sur lequel l'utilisateur n'a pas précédemment configuré le logiciel client de l'authentificateur. Cela est possible car dans cette situation, WebAuthn communique directement avec le navigateur de l'utilisateur en utilisant des protocoles de communication bidirectionnels tels que Blutooth ou NFC, communiquant plutôt avec le site Web que l'utilisateur utilise via un code QR à sens unique.
Du point de vue de la convivialité, les choses sont un peu plus compliquées. Au moins en surface, WebAuthn gagne à nouveau. Comme il s'agit d'un standard W3C qui a déjà des implémentations dans plusieurs navigateurs, en théorie les utilisateurs peuvent immédiatement commencer à utiliser WebAuthn sans avoir besoin d'installer de logiciel tiers. Dans la pratique cependant, la plupart des implémentations existantes de WebAuthn se concentrent sur son utilisation en tant que forme d'authentification de second facteur, ou comme moyen de ré-authentifier un utilisateur qui s'était précédemment connecté sur le même appareil via une méthode de connexion différente (généralement un mot de passe). En tant que facteur d'authentification principal, WebAuthn manque encore plutôt d'implémentations viables.
D'autres considérations mineures incluent le fait que SQRL dispose d'une méthode intégrée pour la rotation des clés des comptes en cas de vol de clé principale , alors que WebAuthn s'appuie sur les sites Web pour implémenter son propre système de révocation des clés, et le fait que WebAuthn nécessite certains matériels optionnels (comme Bluetooth ou NFC) pour s'authentifier auprès d'une machine distante, alors que SQRL peut fonctionner sur n'importe quelle machine avec un écran fonctionnel .
Dans l'ensemble, je pense qu'il est très probable que WebAuthn finisse par rendre SQRL obsolète. SQRL a peut-être un peu de marge de manœuvre pour l'instant, mais WebAuthn bénéficie d'un soutien beaucoup plus fort de la part des fournisseurs de navigateurs, des opérateurs de sites et d'autres organisations tierces (comme le W3C). Une fois que WebAuthn aura obtenu quelques implémentations permettant son utilisation comme facteur d'authentification principal, je pense qu'il commencera à prendre le contrôle du Web très rapidement.
Avertissements
SQRL est toujours en développement actif, donc le matériel présenté dans cette réponse est sujet à changement. Au fur et à mesure que le développement se poursuit, je m'attends à ce que certaines des vulnérabilités et incertitudes de cette réponse soient résolues. La plupart des discussions se déroulent actuellement sur le groupe de discussion SQRL sur grc.com.