Mozilla avance sur la gestion de l’identité dans le navigateur, et c’est une bonne chose. Malheureusement je crains qu’ils ne se fourvoient, et ça c’est beaucoup moins bien.
Avant d’en lire ma critique je vous propose de lire l’aperçu initial de Clochix. Bien rédigé, il vous permettra de vous faire une première idée avant que je vous embrouille la tête.
Complexité
Si je résume, pour le serveur email le système se repose sur la création de clefs de chiffrement spécifiques à chaque utilisateur, leur entrepôt et leur gestion, sur un nouveau protocole (qui ne m’a pas semblé décrit dans les spécifications) pour échanger une signature avec le navigateur, et sur le système de découverte WebFinger pour publier la clef publique vis à vis du site qui souhaite authentifier.
Il faudra aussi que le prestataire email mette en place un mécanisme pour révoquer les signatures / autorisations données aux navigateurs afin qu’on ne donne pas un chèque en blanc illimité et qu’on puisse casser une autorisation qui a été divulguée publiquement.
Pour le site qui souhaite authentifier il faut implémenter une API javascript simple avec le navigateur, la découverte et la délégation WebFinger, et la partie algorithmique pour vérifier la signature fournie par le navigateur.
Parce qu’au départ aucun prestataire ne supporte le système, il faut aussi implémenter le système de découverte vers le tiers de confiance Mozilla, via une API que je n’ai pas vu décrite.
Pour gérer les navigateurs qui n’ont pas encore le mécanisme, il faut aussi implémenter une alternative similaire à OpenID qui se base sur des redirections http, des jetons et une authentification standard (le tout n’étant pas décrit dans ce que j’ai pu lire lors de mes recherches).
Que celui qui ose me dire que tout ça est simple se dénonce. Pourtant c’est l’argument présenté initialement. À côté, OpenID qui est jugé complexe par certain, fait presque rêver.
Not invented here
La solution met en avant un argument de simplicité par rapport à OpenID mais j’y vois bien plus un syndrome « not invented here » et une réinvention de la roue.
Au final l’alternative pour ceux qui n’ont pas Firefox ressemble bien à OpenID. On ne fait qu’y ajouter WebFinger. C’est une bonne idée mais il n’y avait pas besoin de recréer la roue pour ça : La liaison entre WebFinger et OpenID existe déjà.
Le tiers de confiance ? quitte à utiliser des tiers de confiance sur des certificats cryptographiques, on a déjà des certificats X.509 qui certifient l’identité par l’adresse email et qui se basent sur des tiers de confiance. Ces tiers de confiance on en a la liste dans tous les navigateurs et même si ça reste centralisé, ça l’est moins que de réinventer une liste de tiers de confiance « Mozilla ».
Le push d’une authentification avec éventuellement une interface navigateur pour ne pas avoir plein d’aller-retours et un mauvais workflow utilisateur ? j’ai déjà WebID, qui a le bon gout de pouvoir simplement s’interfacer avec WebFinger et ne pas nécessiter un support aussi important du gestionnaire d’identité.
Je ne dis pas que toute cette pile de technos est simple. Elle ne l’est pas, et elle est en bonne partie toujours en conception. Mais en même temps la proposition de Mozilla aussi est complexe et toujours en gestation.
Plutôt que de réinventer la roue, faire une extension qui embarque OpenID dans le navigateur on l’espère depuis longtemps et ça résoudrait une grosse partie du problème.
Mieux, juste améliorer les interfaces qui permettent de gérer les certificats clients dans le navigateur permettrait d’implémenter WebID maintenant, tout de suite. Ça demanderait beaucoup moins de travail à tout le monde, que ce soit côté navigateur, côté gestionnaire d’identité ou côté consommateur d’identité. C’est là que j’attendais Mozilla.
Pour ne rien gâcher il y a une standardisation W3C sur le sujet et la brique qui manque c’est vraiment l’interface navigateur. Se baser sur les travaux de standardisation en cours, ou y pointer dès maintenant ce qui pose problème plutôt que de faire son truc dans son coin, c’est aussi ça parler d’ouverture.
Tiers de confiance
Mais ce qui m’agace le plus c’est ce dont je parlais il y a peu : le web ouvert recule.
Le mécanisme choisit sera difficile à faire implémenter dans beaucoup d’organisations. Dans le meilleur des cas la progression sera lente. Mozilla a donc eu la bonne idée d’implémenter un mécanisme temporaire qui permette de passer par un tiers : le tiers de confiance.
Sauf que comme on le pointe avec pertinence, le système ne fonctionne que si on n’accepte pas n’importe qui comme tiers de confiance, que si la liste est réduite. À court terme le tiers de confiance est quasi obligatoire, donc tout le monde peut et doit se reposer dessus.
Vu le confort d’avoir un tiers de confiance vis à vis la complexité d’aller chercher la clef publique via WebFinger, autant dire que la plupart risquent de se contenter du tiers de confiance. On vient de réinventer le centralisé avec un saupoudrage de décentralisé dont il est évident qu’il ne sera que mineur pendant des années, si ce n’est plus.
La notion de tiers de confiance est un drapeau rouge qui doit immédiatement indiquer qu’on part dans la mauvaise direction. Il aurait fallu une solution décentralisée dès le départ, ou un réseau de confiance, ou un système de délégation, ou d’autres systèmes, mais ne pas encourager le démarrage en centralisé. Il est illusoire de croire qu’on en sortira.
OK, je vais aller plus loin, j’essaierai de passer du temps pour montrer quelles interfaces il manque et où Mozilla peut agir pour s’interface avec ce qui existe, mais il y a déjà un très bon aperçu au W3C. Bref, je vais tenter de décrire la voie qui selon moi serait à suivre histoire d’être aussi constructif.
Laisser un commentaire