Question

Ok donc en gros est ici le scénario d'attaque du fournisseur Bodysnatcher OpenId.

  1. Google de Bob identifiant revendiqué est le suivant, TTPs: //www.google.com/accounts/o8/id id = AAtawkQvytyBNNuHpRhn36f8MLvFiJvZg8teNE

  2. Jane a trouvé une certaine façon identifiant revendiqué "courant" de Bob.

  3. Elle se déclenche et crée ici propre fournisseur OpenID, www.jane.com/accounts/o8/id, de sorte que lorsqu'on lui a demandé qu'il retourne l'identifiant revendiqué par Bob.

  4. Elle va à certains sites mal codé, www.bcs.com, qui utilise id ouvert et bob a un compte à.

  5. Elle dit www.bcs.com d'utiliser le fournisseur OpenID www.jane.com/accounts/o8/id.

  6. Maintenant, c'est la partie que je ne sais pas et je voudrais savoir s'il est possible / réaliste ... www.jane.com/id certains comment se fait www.bcs.com à croire que la selon identifiant "chaîne" (à savoir la valeur que le site sera en fin de compte voir) est TTP: //www.google.com/accounts/o8/id id = AAtawkQvytyBNNuHpRhn36f8MLvFiJvZg8teNE

  7. .

Est-il possible, d'une façon, même si l'hôte est www.jane.com?

Nous travaillons à mettre en œuvre et OpenId nous ne voulons pas être que « le site mal codé ». Nous utilisons une thirdparty bibliothèque .NET qui nous donne l'identifiant que nous sommes Réclamé ne sais pas où, ni comment il le construit. S'il est possible que cela pourrait être truqué nous envisageons de faire quelques vérifications que les matchs de l'URL du serveur OpenID ce qui est dans l'identificateur Réclamé.

Cela porte également la préoccupation de savoir si nous devrions prendre l'étape supplémentaire de hachage / brouillage nos identifiants revendiqués. Nous pensons, parce que Google change son identifiant basé sur le site qui demande la OpenId. Je veux dire sinon pourquoi serait-il aller à la peine de le faire, sinon pour essayer de protéger ses membres?

Était-ce utile?

La solution

Vous êtes essentiellement demande s'il est possible d'écrire une implémentation de OpenID qui viole suffisamment de spécification pour introduire des failles de sécurité. Oui, ça l'est. Vous pouvez omettre l'ensemble du processus de validation et de croire tout ce que vous avez dit de votre utilisateur.

Mais avec un consommateur qui suit de près les spécifications OpenID, une telle attaque n'est pas possible.

Puisque vous avez dit que vous utilisez une bibliothèque .NET, vous utilisez probablement DotNetOpenAuth. Il est la même bibliothèque que les utilisations stackoverflow, et vous ne probablement pas à vous soucier des vulnérabilités lors de son utilisation. Si vous utilisez une autre bibliothèque, il est probablement le meilleur choix pour passer à DotNetOpenAuth.

En ce qui concerne la raison de Google aux identificateurs de base royaume-retour: il est fait pour protéger la vie privée des utilisateurs de, non pas d'augmenter la sécurité. En fait, afin que vous ne pouvez pas lier le compte de votre utilisateur à son compte Google.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top