Entre les lectures marrantes qui ne manquent pas en ce moment (celle ci ou bien l'épisode 1 et l'épisode 2), voici un sujet un peu plus sérieux, plein de méfiance envers OpenID. On entend d'ailleurs presque trop parler en ce moment, c'est décidément le truc chouette du moment. Et ça débarque partout, de la grande forge privatrice aux blogs en tout genres. Si vous aussi, vous en avez marre d'entendre parler de cette technologie tous les jours, à tel point que vous répondez machinalement d'un vengeur « OpenID sucks », voici un billet qui vous permettra d'argumenter et donc d'embêter tous les fan-boys au monde (en cherchant bien, vous risquez même de trouver des messages disant « Oui aux cookies ! », injustement dénoncés). Je lie des billets en français ou bien en anglais, vous n'avez qu'à apprendre l'autre langue.
Et il y a plusieurs raisons qui font que tout le monde doit se méfier d'OpenID que je vais détailler dans ce billet : risque de spams et autres cochonneries, le choix de l'utilisateur s'impose au développeur, l'espionnage semble facilité, les identifiants sont inadaptés et enfin, la procédure n'est pas aussi simple que ce qu'on veut nous dire.
D'après plusieurs billets (comme celui ci), la page d'OpenID affichait avant ce texte :
What about trust?
This is not a trust system. Trust requires identity first.What about spam?
Again, this is not a trust system.
Rassurant, non ? Notons tout de même qu'ils ont refait la page, ils ont dû se rendre compte que ce n'était pas très vendeur.
D'ailleurs, ce billet explique bien en quoi OpenID est très vulnérable au phishing et donc au spam :
Donc, une fois qu'on a récupéré les identifiants de l'utilisateur par cette méthode, on peut envoyer plein de spam sous votre nom. Ou bien même prendre votre identité afin d'accéder à tout ce qui peut être important et qui nécessite l'identification via OpenID. Comme le dit le bloggeur, c'est facilité par le fait que seulement 4 pages sont les plus utilisées pour s'identifier, c'est bien entendu plus facile d'imiter 4 pages que d'en imiter une infinité. D'un autre côté, le pishing, c'est plus une défaillance de l'attention de l'utilisateur qu'une réelle faille de sécurité, mais là, cette technique est clairement facilité. Il suffirait de vous piquer vos identifiants OpenID pour aller se connecter à votre place partout où vous allez sur Internet !
- un formulaire sur le site vilain-pirate.com qui demande l'URL d'identification
- l'utilisateur est alors redirigé vers la page d'identification qu'il croit être celle de son serveur OpenID
- ses identifiants sont demandés sur son faux serveur OpenID
Et on retombe d'ailleurs sur le concept même d'OpenID. À quoi ça sert ? Ne pas avoir à s'identifier sur chaque site, en proposant une seule identification pour tous les sites. Sauf que cet argument, en 2008, il n'est pas très séduisant : tous les bons navigateurs se rappellent de nos identifiants (pseudonyme / mot de passe) et les bons sites écrivent un cookie afin qu'on puisse être identifié dès la connexion. De fait, la plupart des gens ont déjà un OpenID personnel, il s'appelle Iceweasel, Firefox ou sûrement même Internet Explorer.
Et pour combattre tout ça, on nous propose des solutions vraiment très drôles. Ça va du captcha image (« Go fuck yourself with your accessibility and other shits like that », comme disait l'autre) à la question personnalisée du genre « Quel âge à votre grand-mère ? ». C'est vraiment super. Et puis, on trouve des rustines assez drôles à lire, de l'image personnelle à SSL (pourquoi ne pas y avoir pensé plus tôt ? ah oui, ce n'était pas un système de confiance, à la base !). Encore plus rigolo, il faudrait faire un marque-page pour chaque identifiation à OpenID. Il y en a même qui sont allés faire un plugin pour Firefox en argumentant que c'était plus sûr, parce que oui, il n'y a que lui comme navigateur et les autres utilisateurs peuvent se faire avoir, ils ne comptent pas.
Toujours sur ce même blog, voici une description des étapes à suivre si je veux ajouter un commentaire à un blog en étant identifié (parce que c'est vrai que c'est chiant pour le développeur du logiciel de blog d'écrire un cookie où y mettre les infos à sauvegarder dans ce formulaire) :
- un formulaire sur le site biologeek.com qui demande l'URL d'identification
- l'utilisateur est alors redirigé vers la page d'identification de son serveur OpenID
- ses identifiants sont demandés sur son serveur OpenID
- son profil pour le site biologeek.com est demandé sur son serveur OpenID
- l'utilisateur est redirigé vers biologeek.com et ce site peut récupérer les informations qui ont été approuvées par l'utilisateur
- l'utilisateur a maintenant accès à des fonctionnalités avancées sur biologeek.com
Sympathique, dites-donc. Moi, j'voudrais juste écrire « Tout à fait » en répondant à un autre commentaire, par exemple, eh bien, je dois donner mon identifiant, je pars sans rien demander sur un autre site, je m'y connecte, je valide que je suis d'accord pour donner telles informations au blog en question, je retourne dessus et là - ô, miracle - je peux enfin poster ma maigre contribution. Heureusement que les sessions existent et que les étapes 3 et 4 peuvent être des points de départ (selon que je sois déjà connecté à OpenID ou bien que je sois déjà allé sur le blog en question). Mais quand on poste un commentaire sur un blog, généralement, c'est pendant une ballade, on n'est pas non plus obliger de squatter un blog de manière régulière pour y participer, alors au final, on est bon pour les 6 étapes. Youpie. Et ajoutez à tout ça une septième étape baptisée « anti-spam » dont certains parlent, on obtient une recette explosive. Pour écrire 3 mots.
Maintenant qu'on a vu que c'était facilement spammable et que c'était plutôt chiant pour s'identifier. Voici deux points rapides à énumérer mais pourtant très important. Le premier est que l'espionnage de vos visites et votre profilage par votre serveur OpenID me semble très facile à mettre en œuvre. Vous allez sur une page qui vous demande de vous identifier via OpenID et rien n'empêche le serveur en question d'enregistrer cette identification. En plus, comme vous allez utiliser OpenID pour vous connecter sur le plus de sites possible, le serveur pourra dresser un profil sympathique pour tout ce qui est espionnage publicitaire et enquête sur vos habitudes, si si, c'est intéressant de connaitre vos habitudes, si si, vous avez des choses à cacher.
Et puis, qui est le couillon qui a eu l'idée d'utiliser une URL comme moyen d'identification ? C'est pas du tout fait pour ça. Comme le dit Wikipédia :
Les URL ont été inventées pour pouvoir indiquer avec une notation (d'où l'adjectif « uniforme ») aux navigateurs web comment accéder à toutes les ressources d'Internet.
C'est quelque chose qui permet de trouver une ressource grâce à un nom. Pas de s'identifier. Pour ça, il y a le couple pseudonyme/mot de passe ou je-ne-sais-quoi-d'autre. Ça c'est fait, pour. Ça ne sert à rien de détourner les techniques initialement non-prévues-pour quand des techniques adéquates existent.
Certains disent qu'il en est de même pour l'identification sur certains sites via un identifiant Jabber et la XEP 70. Mais non. Avec cette méthode, je ne risque pas de phishing, il me suffit d'inscrire mon identifiant Jabber et quelques bêtises dans un autre champ pour vérifier que c'est bien moi, et mon client Jabber me demande si j'accepte. Et bien sûr, après, le bon développeur écrit un cookie et je suis connecté sans rien faire les prochaines fois que je viens. Certes, Jabber n'est pas fait pour à la base, mais XMPP est extensible, prévu pour être amélioré et pour gagner en fonctionnalités. Pas les URLs.
Et puis, j'en vois qui s'impatientent et qui se disent « Mais pourquoi est-il allé dire que le choix de l'utilisateur s'impose au développeur au début de son billet ?! :-O », en effet, c'est provocateur. Mais c'est vrai. Monsieur Dupont va choisir un serveur OpenID dans lequel il a confiance, au hasard, celui ci ou celui là. Moi, je n'aimerai pas que ma clef d'accès à une grande partie des sites et blogs que je visite soit remise à quelqu'un de ce genre. Mais les gens préfèrent avoir confiance dans ce genre de grosse structure que dans des petites organisations, surtout que l'argument « Tu n'as pas confiance dans les serveurs OpenID existant ? Eh bien, crée-toi le tien, c'est possible ! » ne vaut strictement rien, les gens normaux ne vont pas aller installer un serveur OpenID pour s'identifier, si ils doivent utiliser cette méthode, ils utiliseront le serveur qui les rassure le plus. Comme me le disait Omega, dans une de nos conversations :
Et c'est justement là que ça coince. Ces utilisateurs là font confiance à ces entreprises où au fournisseur d'OpenID qu'ils ont choisit, c'est une chose. Mais c'est mon droit aussi, en tant que développeur (on m'a proposé d'intégrer OpenID dans CodingTeam), de ne pas accorder ma confiance à ces fournisseurs. Non seulement, rien n'est fait pour me donner confiance et, comme tout le monde, j'ai le droit d'avoir des préjugés plus-ou-moins justifiés concernant certaines organisations. Et vous pouvez me dire « Mais qu'est ce que t'en as à faire ? C'est le problème de l'utilisateur, pas le tien. », mais non. Puisque en intégrant OpenID, je donne les clefs d'accès aux zones « restrictives » de mon site à tous ces serveurs inconnus, sur lesquels je n'ai aucun contrôle, vulnérables au phishing/spamming, tenus par des organisations parfois peu recommandables. Brrr, ça fait vraiment froid dans le dos. Parce qu'en fait, OpenID repose sur un seul principe : la confiance aveugle de l'utilisateur envers son fournisseur. Mais moi, je dis que la plupart de ces grands fournisseurs ne me semblent pas dignes de confiance et je suis assez réticent à préparer le terrain pour que ces grands là gagnent encore plus d'espace délégué.<omega> c'est plus facile de faire confiance à yahoo ou google ou orange qu'a CT ou programmez.com
<xbright> Personnellement, je fais plus confiance à CT qu'à yahoo, google, orange ou programmez.com O:-)
<louiz'> idem.
<omega> xbright: parce que CT est à toi
<bright> yep
<omega> pour 95% des gens ils font confiance aux gros trucs
De plus, au même titre que le risque de pistage des visites d'un internaute via un serveur OpenID, je n'ai pas envie de devenir complice en fournissant - bien malgré moi - à ce serveur une requête d'identification qui sera une preuve que l'internaute à visiter mon site et qui donc, pourrait permettre de constituer un historique des sites visités. Si des gens s'embêtent à écrire des documents dans lesquels ils affirment que les données personnelles déposées ici ne seront pas vendues ou cédées à des tiers, c'est bien pour éviter ce genre de problème.
Enfin, je ne suis pas le seul à me dire qu'OpenID, bof-bof. Voici un billet intéressant qui lui voit 5 points négatifs : aucun moyen de récupérer son identifiant si le serveur claque du jour au lendemain, le fait que ça ne marche pas sur les mobiles, que ce système part du principe qu'Internet est rempli de types biens, qu'il aime Tolkien et que ce n'est pas user-friendly (et sa remarque n'est pas bête : à force de redirections pour l'authentification, si on se trompe dans ses identifiants, aura-t-on le courage de retourner sur le site initial ?). Et sa conclusion est entièrement vraie : on nous répète que de toute façon c'est plus sûr d'avoir un OpenID plutôt que d'avoir des identifiants différents (ou pas) sur plusieurs sites. C'est complètement faux. Si vous trouvez les identifiants pour l'administration de ce blog, vous n'arriverez à rien en essayant ceux çi pour vous connecter en SSH au serveur de CodingTeam. Par contre, si vous prenez possession de l'OpenID de quelqu'un, vous avez tout de suite accès à pléthore de sites webs et de blogs, d'un seul coup. Alors, que ces fan-boys nous trouvent de meilleurs argument que la sécurité. Le fameux « Oui mais tu vas utiliser le même mot de passe partout pour que ça aille plus vite. », ça c'est hypocrisie, déjà parce qu'ils ne font qu'une hypothèse et aussi parce que je peux « sécuriser » mes identifiants si je le veux. Avec OpenID, je ne peux pas. OpenID n'est ni agréable, ni sécurisé.
Et dire qu'on ne serait pas en train de lire ce billet si certaines personnes n'avaient pas voulu faire un excès de zèle dont le seul but est de se faire mousser en remplaçant la technique de sauvegarde des identifiants intégrée à chaque navigateur web récent. Donc voilà, là, on peut le dire avec un petit peu (mais pas trop) d'argumentation : OpenID sucks.


