Repository with sources and generator of https://larlet.fr/david/ https://larlet.fr/david/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

title: OpenID et phishing sont dans un bateau… slug: openid-et-phishing-sont-dans-un-bateau date: 2007-01-09 16:36:07 type: post vignette: images/logos/open_id_phishing.png contextual_title1: myOpenID propose des solutions intéressantes contre le phishing contextual_url1: 20070418-myopenid-propose-des-solutions-interessantes-contre-le-phishing contextual_title2: ★ Comment utiliser OpenID, la solution d'identification tant attendue contextual_url2: 20070104-comment-utiliser-openid-la-solution-d-identification-tant-attendue contextual_title3: ★ Discussions sur les applications web libres contextual_url3: 20091202-discussions-sur-les-applications-web-libres

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 que je n'avais pas identifié plus tôt, faute d'exemples concrêts. Allons-y pour une mise en situation...

Le problème

Tout commence par un site qui vous demande de vous identifier. Ce site est un vilain pirate qui n'a pas forcément de bonnes intentions concernant votre identité. Appelons ce site vilain-pirate.com. Le mécanisme normal pour s'identifer est le suivant :

  1. un formulaire sur le site biologeek.com qui demande l'URL d'identification
  2. l'utilisateur est alors redirigé vers la page d'identification de son serveur OpenID
  3. ses identifiants sont demandés sur son serveur OpenID
  4. son profil pour le site biologeek.com est demandé sur son serveur OpenID
  5. l'utilisateur est redirigé vers biologeek.com et ce site peut récupérer les informations qui ont été approuvées par l'utilisateur
  6. l'utilisateur a maintenant accès à des fonctionnalités avancées sur biologeek.com

Vous remarquerez que le mécanisme n'est pas vraiment simple, heureusement que ce cheminement n'est suivi que si vous n'êtes pas encore identifé sur votre serveur OpenID pour l'étape 3 et que vous ne vous êtes jamais identifé sur le site pour l'étape 4. Pour un site sur lequel vous participez souvent c'est quasi-immédiat. Heureusement.

Examinons maintenant le cas où vous vous identifiez sur vilain-pirate.com :

  1. un formulaire sur le site vilain-pirate.com qui demande l'URL d'identification
  2. l'utilisateur est alors redirigé vers la page d'identification qu'il croit être celle de son serveur OpenID
  3. ses identifiants sont demandés sur son faux serveur OpenID

Je vous laisse deviner la suite... au « mieux » vague de spam avec votre identifiant, au pire prise de votre identité pour des services critiques.

Comment est-ce possible ? Les principaux serveurs d'identification sont au nombre de 4 aujourd'hui. Ce qui signifie qu'il y a très peu de pages à créer si l'on veut faire du phishing (je vous rappelle que cette technique consiste à vous faire croire que vous êtes sur un site alors que ce n'est pas la bonne URL dans votre navigateur, typiquement bio1ogeek.com par exemple) puisqu'il suffit d'une seule page (celle de l'identification) par serveur.

Bon il y aussi les vols de session mais je n'en parlerais pas ici. Le chapitre du Django Book sur la sécurité est sorti aujourd'hui et je pense que tous les développeurs web un peu consciencieux devraient aller le lire, c'est une bonne base.

Les solutions

  • Ne s'identifier que sur des sites de confiance : bon, c'est assez réducteur.
  • Prendre ses précautions lors de l'identification : vous l'avez compris, la faille est dans la redirection. Si vous êtes déjà identifié sur votre serveur, vos identifiants ne doivent pas vous être redemandés et vous passez directement à l'étape du choix du profil. Dans le cas où l'on vous redemande ces identifiants, commencez à vous inquiéter. Une bonne chose est donc de s'identifier via un favoris ou en tapant directement l'adresse dans votre navigateur. Pas vraiment simple, notament pour les nomades...
  • Options au niveau du serveur : une des solutions est que le serveur d'identification vous pose une question personnalisée. Vous saurez alors bien sûr que la page d'identification est la votre. Cela va de la photo de famille (plus visuel) au prénom de votre chat, toujours est-il que c'est une solution acceptable si le choix est assez vaste.
  • Des plugins au niveau navigateur : c'est peut-être le plus simple (encore faut-il avoir confiance dans le concepteur du plugin !), un plugin pour firefox permettant de vous identifier sur votre serveur OpenID, vous lui donnez une bonne fois pour toute et il vérifie via une connexion au démarrage que vous êtes bien identifié. Si ce n'est pas le cas, vous êtes redirigé vers la page d'identification (sécurisée via SSL) proposée en préférence.

Conclusion

L'identification est un problème critique qui met du temps à se mettre en place. OpenID en est à sa première version mais des spécifications plus élaborées pointent le bout de leur nez, ça évolue et c'est déjà bien. Quand on voit les perspectives que ça ouvre, ça met l'eau à la bouche (et sans hameçon s'il vous plaît).

[edit du 10] : il existe un plugin pour firefox.

[edit du 20] : Simon Willison propose une solution qui est loin d'être utilisable par le commun des non-geeks à mon avis...

[edit du 6 février] : L'alternative du favori mise en pratique.

[edit du 18 avril] : myOpenID propose des solutions intéressantes contre le phishing.