Encore un très bon article ! Voilà qui me simplifie la vie en présentant clairement openID, un projet que je ne suivais que distraitement.
L'initiative OpenID est notable car il semble que c'est le seul SSO qui a l'air d'être adopté par la communauté Web. (Liberty Alliance SSO, autre SSO libre n'a pas pris, ni les autres SSO.)
C'est également un protocole se basant sur l'architecture REST , donc très simple à mettre en place dans des applications web !
OpenID est déjà supporté par 2 plugins wordpress: verselogic.net/projects/w... et the-notebook.org/12/01/20...
Malheureusement il existe actuellement un problème intrinsèque de sécurité avec OpenID. En effet le site sur lequel vous vous logguerez avec OpenID aura toute latitude pour faire ce qu'il veut sur le serveur OpenID et tous les autres sites surlequel vous êtes connecté en OpenID.
Exemple concret:
1) je me logge sur monblog.fr en OpenID
2) je visite un blog mechant-pira.te dans lequel je poste un commentaire en utilisant mon identité OpenID
3) le blog en question utilise mon identification pour modifier mon mot de passe sur monblog.fr et y faire plein de betises !
Pour plus d'infos cherchez: openid phishing sur votre moteur de recherche préféré
Salut David,
J'avais déjà lu les originaux, mais je pense qu'une version française est réellement un plus :-)
Au passage, un lien est passé il y a quelque temps sur PlanetRDF donnant un moyen d'utiliser OpenID avec son FOAF : geospatialsemanticweb.com...
Je ne suis pas tout à fait satisfait du résultat, mais c'est déjà ca.
Il existe des plugins pour Wordpress qui rendent possible l'intégration de OpenID. J'en ai installé un, et ça marche vraiment bien. Aucune modification à faire à l'interface graphique, tout se joue dans la page d'identification.
Excellent article ! Ca résume parfaitement tout ce qui se raconte en ce moment sur OpenID. A garder dans les bookmarks ! ;)
Bader > J'ai tendance à être paranoïaque et je ne comprends pas ta démonstration du problème de sécurité d'OpenID... J'aimerais bien que tu développes... Cela dit, je te remercie pour les liens vers les plugins WordPress ! :)
Il faut que j'étudie ça...
Très intéressant ! Je vais chercher du côté du module de développement python un de ces quatres pour voir :D
Et du coup que je refais 'encore' mon site avec django (c'est la 4ème fois, plus ça va, mieux ça va, m'enfin :D) je vais tester ça :D
Merci David, j'avais lu le post de Tarek, mais je n'avais donné suite, cependant là je vais regarder ça de plus prêt.
Merci pour ce billet sur OpenId ^^ J'étais en train de réfléchir à "l'identification en ligne" et plus spécifiquement à FOAF...
jusqu'à songer à un profil FOAF que l'on gérerait de chez nous, et qui pourrait être fourni à n'importe quel site lors de la création d'un compte, et servant également à s'identifier.. de même lorsque l'on poste un message sur un blog, ou ailleurs. On pourrait alors, en plus, avoir un moyen de retrouver ses propres participations sur le web, là où à chaque fois le profil FOAF a été utilisé...
Enfin, je dis sans doute n'importe quoi. Je vais jeter un oeil du côté d'OpenId !
@Yann
Je réexplique peut-être plus clairement le problème de sécurité.
Lorsque tu te logges sur un blog A tu utilises ton compte sur un autre site B. Ce qui fait que tu es loggé sur B. Donc si B est ton blog, le blog A vient d'être mis au courant que tu es loggé (ton navigateur) sur B. De ce fait, il connait le logiciel utilisé car il le connait vu qu'il a réalisé l'authentification et donc a obtenu l'identification de B. A peut donc utiliser ton navigateur loggé (grace au cookie) pour faire ce qu'il veut sur B.
Autre cas, là il s'agit de spoof. Tu arrives sur A qui te présente une authentification OpenID. Tu n'es pas encore loggé, tu entres tes informations personnelles en pensant que A t'as bien orienté sur B. Or A a très bien pu te présenter une page de log qui n'est pas celle de B et ainsi A récupère ton login et mot de passe.
La documentation bien plus précise est disponible sur le web, il suffit de chercher: "openid security issue" ou "openid spoof"
J'étais un peu sceptique sur le système mais avec les propos de Bader sur la partie phishing et sécurité, j'avoue être encore plus sceptique.
Je reconnais néanmoins à la solution le mérite d'exister et peut-être suffit-il qu'elle gagne un peu plus en maturité.
Pour les afficionados de Django/Lighttpd/OpenID, il y a cette entrée qui devrait vous intéresser : www.b-list.org/weblog/200...
@Simon : merci.
@Bader : je vais me renseigner là-dessus, ça me parait trop énorme pour être possible.
@NiCoS : c'était déjà rajouté en edit ;-).
Oups, j'avais pas vu :-)
OpenId et phishing sont dans un bateau...
Suite aux commentaires de Bader relatifs aux problèmes de phishing, je me suis renseigné et je pense qu'il est nécessaire de mettre en garde les lecteurs un peu trop emballés par le premier billet. Il existe clairement un risque...
Désolé Bader, j'ai du mal à voir.
Je pars de la seule hypothèse que tu as une confiance dans ton provider openid et que cette confiance est légitime.
Tu as deux problèmes : le pishing et les CSRF.
Pishing ?
Un site te redirige vers un tiers qui fait semblant d'être ton provider, en espérant que tu t'y identifies. On se retrouve dans un cas de pishing on ne peut plus classique, comme certains tenteront de le faire avec ta banque. Openid n'y change rien, ni en mieux ni en moins bien. A toi de toujours vérifier l'url et le ssl avant de t'identifier quelque part. Ca vaut pour openid, pour ta banque et finalement où que ce soit sur Internet, openid ou non.
CSRF ?
La là menace est plus réelle car le problème ne vient pas de l'utilisateur, il vient des sites que potentiellement tu utilises. CSRF c'est un site vilain.com qui te renvoie via un formulaire ou un lien vers un site à toi (monsiteamoi.com), en tentant de te faire faire une action dangereuse.
Ce n'est pas spécifique à OpenId. Prend vilain.com, construits y une requête qui va effacer les 100 premiers mails du compte gmail et fais la lancer par ton visiteur. Le seul truc important pour que ça fonctionne c'est que tu sois identifié sur gmail. Que ce soit avec OpenId ou un login propre n'y change rien. En ciblant gmail j'ai de bonne chances de réussites (beaucoup de gens sous gmail, et une bonne chance qu'ils soient déjà identifiés)
Heureusement mon exemple avec gmail ne fonctionne pas. Justement parce que la problématique n'est pas nouvelle. Gmail vérifie l'entête "referer" du navigateur pour retirer les tentatives les plus flagrantes, puis il impose la présence d'un jeton spécifique dans l'url : aléatoire et différent à chaque connexion. Celui qui construit le lien ou la requête de suppression ne connait pas ce jeton (et n'a aucun moyen de le connaitre, openid ou non), la requête sera ignorée car considérée comme "fausse"
Pour que CSRF fonctionne il faut donc une faille de sécurité ou au moins une imprudence de la part du site ciblé. Si c'est un gros site il y a de bonnes chances pour que ce genre d'erreur soit déjà comblé, parce que les attaques par CSRF n'ont pas attendu openid. Si c'est une petite application perso qui est ciblée (genre mon forum perso ou mon moteur de blog perso) il y a plus de chance que j'y sois sensible, mais ça veut dire aussi que la personne qui a fait l'attaque l'a faite expressément pour moi. Et dans ce cas il n'a pas besoin d'openid pour faire tout ça, il a juste à trouver un moment où je suis probablement identifié sur l'application cible.
Non, franchement, ces problématiques sont à prendre en compte, elles sont à connaitre vis à vis du fonctionnement d'openid, mais openid lui même ne créé aucun risque supplémentaire.
Je dirai même que pour peu qu'on s'identifie au préalable sur le provider openid (au lieu d'attendre de s'y faire rediriger pour s'identifier), il devient assez complexe de faire du pishing.
Et si vous craignez CSRF, demandez à votre provider une validation manuelle de chaque demande d'identification (pas en resaisissant les mots de passe mais juste en cliquant sur "oui je veux m'identifier sur xxx"), ça limitera les effets du "tu es identifié chez moi donc tu l'es automatiquement ailleurs aussi". Tous les providers que j'ai vu proposent la chose.
où te rediriger vers un site où tu as un compte, et qu'il te fasse faire quelque chose de gênant.
Pour que ça fonctionne il faut qu'il y ait une faille de
J'ai pas tout suivi dans la faille de sécurité qu'expose Bader, mais cependant j'ai une question semblable: qu'est-ce-qui empêche quelqu'un d'utiliser mon url d'OpenId ? pour peut qu'un site soit en "allow forever" cette personne peut usurper mon identité sans problème non ?
Amaury (#15) : "Qu'est-ce-qui empêche quelqu'un d'utiliser mon url d'OpenId ?"
Je pense que rien ne l'empêche. Comme rien n'empêche le gérant d'un blog de présenter un fil de discussions avec des commentaires dont il affirme qu'il ont été écrits par "Jacques Chirac" ou "Un expert" ou "bortzmeyer.myopenid.com/" (attention, les URL sont massacrés par le moteur de blog, c'était mon URL OpenID [David : ok, corrigé.]).
(Alors que le méchant a tout fabriqué lui-même.)
En d'autres termes, si on ne fait pas confiance au blog en question, on ne fait pas confiance aux URL OpenID qu'il affiche.
ok, je comprends mieux
OpenID Delegation
Après une plongée profonde dans l'univers de openID, voici un premier plugin qui implémente ces spécifications. Ce plugin vous permet de définir les tags nécessaires à l'utilisation de l'URL de votre blog comme identifiant OpenID. Une meilleur
D'ailleurs, ce serait bien de permettre l'authentification OpenID sur ce blog :-)
C'est prévu pour la prochaine version ;-).
Si j'ai bien compris ce qu'est un OpenID il suffit juste de son adresse URL + login pour se connecter aux sites qui proposent. Il n'y a donc pas de changement de ce côté là en terme de sécurité par rapport aux sites auquel on se connecte tout les jours... sauf que là toutes les infos sont centralisés au meme endroit, donc risqué en cas d'intrusion. Une solution serait de renforcer cela par un système comme le propose les banques, je travaille en Lituanie et oui ici le système bancaire est bien plus sécurisé qu'en France - c'est à dire avoir un certificat en plus enregistré sur son PC ou un login aléatoire mais qui se tape sur un clavier à l'écran... sinon trop risqué à mon gout... Je vois qu'il y a un site OpenID français : OpenID France ==> www.openidfrance.fr/ je voulais tester mais on peu pas encore : dommage ! :( faut encore attendre... David
Le problème du phishing est dans la redirection effectuée vers le serveur OpenId. Il n'existe pas à ce jour de solution pour contrer ça, si ce n'est l'absence de redirection, ce qui nécessite que l'utilisateur tape l'adresse de lui-même pour s'enregistrer, ce qui n'est pas envisageable car trop contraignant...
To be (a web identity) or not to be... That is the question
J'ai découvert assez récemment seulement le concept d'identité sur le web, par un billet sur Biologeek parlant d'OpenID...
Bonjour,
Pour ceux qui chercherais un serveur openid français, je vous propose www.getmyopenid.com/ basée sur le framework Joomla.
C'est un service gratuit, profitez-en !
www.getmyopenid.com/yjoye...
Bader t'es sur de toi ?
j'aimerai bien que Stéphane Bortzmeyer confirme tes dires
Alors sécurisé ou pas ?
Joomla a intégré openid depuis un bon moment, tout comme la possibilité de se connecter a travers un compte gmail ou un annuaire ldap ;-)
Merci pour les bonnes idées, je vais donner LiveJournal, Vox ou VeriSign Lab un essai à l'aide de vos conseils.
merci pour cet article
il date un peu aussi qu'en est il aujourdh'ui de ce type de solution : sécurité, liberté d'utilisation …
quelles sont les meilleures solutions ?
merci par avance
Cordialement,
Sébastien
merci pour cet article
par contre j'ai essayé de m'inscrire sur myopenID pour mon site de produits bio mais une fois mon inscription validée quand j'essaye de me loguer il me renvoie à la page d'acceuil sans aucun message
j'ai bien lu ce que disent tous les intervenants , mais au niveau de sécurité c'est le cas de tous les systèmes ou tu te loggues en permanence ?(google /gamil, facebook etc)
Intéressant tout ça - merci pour ce résumé :-)