OpenID, usages et risques

Je me penche aujourd’hui sur le protocole ouvert de SSO qu’est OpenID ; présentation de la chose, explications pour la création de compte et problèmes de sécurité posés par le protocole.

Logo OpenID

Qu’est-ce qu’OpenID ?

Le but est de pouvoir se connecter à plusieurs sites indépendants les uns des autres sans avoir à créer un nouveau compte pour chacun, mais en utilisant au contraire un seul et même compte centralisé sur un serveur OpenID. Concrètement, il faut créer un compte sur un serveur d’authentification OpenID en fournissant plusieurs informations et on obtient une adresse du style http://utilisateur.serveur-openid.tld. On peut ensuite se rendre sur un site qui prend en charge OpenID et s’identifier grâce à cette adresse.
L’identification est plutôt simple (mais, comme on le verra ensuite, il faut y prêter attention car elle peut facilement être détournée par un pirate) ;

  1. L’utilisateur rentre son URI dans le champ prévu,
  2. Il est redirigé vers une page de son serveur OpenID pour qu’il s’identifie, s’il ne l’est pas déjà,
  3. Le serveur lui demande quel profil il veut appliquer pour le site qui l’envoi si c’est la première fois que l’utilisateur s’y connecte,
  4. L’utilisateur est redirigé vers le site de départ, qui récupère alors les infos.

Obtenir un(e) URI OpenID

Certains sites internet font aussi office de serveur OpenID, comme Wordpress.com, Orange, Blogger ou encore AOL, vous avez donc peut-être déjà sans le savoir un(e) URI (liste complète). Il est aussi possible de créer un compte chez des fournisseurs d’adresses OpenID qui ne font que ça. Le site officiel d’OpenID en recense 5 à l’heure actuelle, j’utilise personnellement myOpenID. Ce dernier a le mérite d’être simple et de proposer quelques parades aux risques de phising évoqués après. L’inscription ne requiert qu’un nom d’utilisateur et un mot de passe, bien qu’il soit possible de donner plus d’infos. Il est aussi possible de créer assez facilement des profils, de sorte que lorsque vous vous connecterez grâce à votre adresse OpenID à un site, vous pourrez choisir tel ou tel profil en fonction des informations que vous voulez fournir au site. Après l’inscription, on obtient son URI, dans mon cas : http://Nicoz.myopenid.com/.
À noter que l’adresse qui vous sert de login redirige aussi vers une page d’identité, en clair, quand vous la tapez dans un navigateur, vous arrivez sur une page personnalisable avec des informations sur le possesseur de l’OpenID.

Quels sites supportent OpenID ?

MyOpenID (le serveur OpenID présenté au-dessus, si vous avez suivi ;) ), de même que le site officiel d’OpenID, propose un annuaire de sites qui prennent en charge OpenID (l’annuaire d’OpenID.net et l’annuaire de MyOpenID). Il ne faut pas se voiler la face, OpenID n’en est qu’à ses débuts et la majorité des sites qui le supportent sont anglophone. On retrouve cependant de plus en plus de sites francophones, parmi ceux-ci le site de memup, une marque française qui vend des disques durs externes et divers périphériques de stockage, ou encore WikiTravel, un guide de voyage libre (via cette page).
En fait, dès que vous verrez le petit logo OpenID, vous pourrez vous connecter ; il n’est pas impossible que ce blog propose bientôt ce mode de connexion.

Et la sécurité dans tout ça ?

Ah la sécurité… En fait, c’est là que le bât blesse. Le risque le plus important est le phising. Reprenons la procédure du début, c’est ce qui se passe quand tout le monde est gentil. Imaginons maintenant que le site qui vous propose une identification par OpenID soit le site d’un pirate, ça donnerait quelque chose comme ça :

  1. L’utilisateur rentre son URI dans le champ prévu,
  2. Il est redirigé vers une page qui imite celle de son serveur OpenID pour que le pirate récupère ses identifiants,
  3. Le serveur lui demande quel profil il veut appliquer pour le site qui l’envoi si c’est la première fois que l’utilisateur s’y connecte,
  4. L’utilisateur est redirigé vers le site de départ, qui récupère alors les infos.

Résultat des courses, le pirate est en possession des identifiants. Un phising en bonne et due forme. Heureusement pour nous, MyOpenID propose l’identification par certificat. En plus de ça, il est possible d’afficher une « image personnelle », qui permettrait éventuellement de se rendre compte d’un phising. Le risque est donc bien canalisé (l’utilisation de certificat est une parade sûre), mais il demeure tout de même présent.
On peut aussi se méfier des attaques XSS. Il est vrai qu’elles sont, de nos jours, bien connues, et donc que les webmasters ont peu de mal à les traquer, mais je considère que la meilleure solution reste d’installer l’extension NoScript.
En clair, ce n’est pas un protocole parfait au niveau de la sécurité, mais si on fait un peu attention, on peut considérer OpenID comme quelque chose de sûr.

8 commentaires sur « OpenID, usages et risques »

  1. Gravatar burningHat a écrit :

    Concernant le fournisseur MyOpenid, je dirais même plus ! En plus du certificat et de l’image perso, il propose aussi une authentification forte à deux partie puisqu’on peut faire en sorte de se faire envoyer un « token » par SMS et les windowsiens pour encore en plus utiliser une « InfoCard » pour se connecter. De quoi limiter très raisonnablement les risques de phishing même si le DNS était détourné (pire des cas).

    Maintenant, tous les fournisseurs d’OpenID ne poussent pas la sécurité aussi loin, il faut bien le reconnaitre. Mais je ne trouve pas, si on prend soin d’être la moindre attentif et de respecter un minimum de logique sécuritaire qu’OpenID soit un SSO plus faible qu’un autre, du moins pas dans ce qui existe actuellement sur le net. Et si vraiment on ne fait pas confiance à son fournisseur, rien n’empêche de monter son serveur et de devenir son propre fournisseur et ça, c’est quand même drôlement bien et assez unique !

  2. Gravatar Nicoz a écrit :

    Tout à fait d’accord avec toi, mais je me devais quand même de signaler les risques (inhérents à tous les SSO de mon point de vue). Je pense vraiment qu’OpenID a du potentiel, reste à voir comment il va se développer dans les années qui viennent.

  3. Gravatar OlivierM a écrit :

    Pour moi, le _grand_ risque d’OpenID n’est pas dans le phishing, lequel est inhérent à tout système d’authentification web, et qui se contrecarre relativement bien si on accepte d’embêter un peu l’utilisateur (par exemple en interdisant la connexion au fournisseur OpenID depuis la redirection : il _faut_ obligatoirement s’être connecté avant – depuis un bookmark ou l’url exacte).

    En revanche, le spam risque d’être un problème plus aigu. Comment faire la distinction entre le fournisseur OpenID « maison » qui n’a aucune volonté de nuisance (mais qui tient à garder le contrôle sur son authentification) et le fournisseur russe qui n’a d’autre raison d’être que de fournir des OpenID automatiquement acceptés pour les robots de spam russes?

    Le risque étant qu’on s’oriente – comme dans le monde de la messagerie – vers une mise à l’écart des petits fournisseurs pour n’autoriser que le traffic relayé par les gros à circuler. Ce qui ruinerait l’intérêt premier du système.

  4. Gravatar Zanko a écrit :

    @burning Hat : il n’y a pas que les windowsiens qui peuvent utiliser les i-card (même si InfoCard est une marque déposée de MS), il y a des implémentations libres (projets higgins et bandit).

  5. Gravatar burningHat a écrit :

    @Nicoz Yep tu as tout à fait raison et tu as bien présenté tout ça je trouve.

    @OlivierM Mouaip, je sais pas… Pas plus qu’avec un webservice lambda. Je veux dire que monter un serveur SSO juste pour récupérer des adresses email me parait pas être d’une efficacité redoutable. Y a plus simple et plus rapide pour ça. Mais pourquoi pas, c’est un détournement possible et intéressant du rôle de fournisseur d’identifiant

    @Zanko Yop, mais pour les avoir largement testé sur tout un panel de systèmes, c’est loin d’être super stable/efficace ces implémentations libres. Rien que la compilation de Bandit en dehors d’OpenSuse risque d’en décourager plus d’un. CardSpace est clairement fait pour le user lambda alors que les implémentations libres, encore largement expérimentales, en sont à des années à lumière (du poste de travail du user lambda).

    Donc même si ça existe, je préfère faire « comme si ce n’était pas le cas en public » pour le moment.

  6. Gravatar david a écrit :

    Pour ma part, le plus grand des risques n’est pas pour nous mais pour nos enfants… J’illustre mon propos : je suis sur facebook, avec suffisamment d’infos pour un linkedin ou un viadeo, et j’ai acheté sur amazon 2 bouquins à connotation homosexuelle…

    Vous pensez qu’un recruteur dans 10 ans n’en n’aura pas connaissance et n’en tiendra pas compte ?

    J’en doute… Ceux qui s’affichent largement sur le net devraient prendre conscience que la marche arrière n’existe pas !

    Reste à voir si un début d’étique chez les PDG arrivera avant de décider d’isoler 60% de la population sur divers critères à la con…

  7. Gravatar Nicoz a écrit :

    @david Tu as tout à fait raison, notamment lorsque tu dis que « la marche arrière n’existe pas ». Cependant, je ne vois pas en quoi OpenID amplifierait ce problème, bien au contraire. Grâce à OpenID, tu centralise les informations que tu rends accessibles aux sites sur lesquels tu t’identifies, ce qui te permet un meilleur contrôle des données, notamment grâce aux profils.
    En plus, MyOpenID (pour ne citer que ce provider) ne demande au minimum qu’un pseudo et un mot de passe à l’inscription, pas de quoi mettre à mal la sacro-sainte vie privée ;) .

  8. Gravatar utodeb a écrit :

    Bonjour,
    Merci pour les infos.
    En plus je crois que l’on peut avoir son propre « fournisseur » d’OpenID sur son serveur.

    ++

Laisser un commentaire

Ou