Bodysnatcher "OpenId Provider" вопрос об атаке - PullRequest
0 голосов
/ 26 января 2011

Хорошо, в общем, вот сценарий атаки провайдера Bodysnatcher OpenId.

  1. Заявленный Бобом идентификатор Google: ttps: //www.google.com/accounts/o8/id?id = AAtawkQvytyBNNuHpRhn36f8MLvFiJvZg8teNE

  2. Джейн как-то нашла "текущий" заявленный идентификатор Боба.

  3. Она уходит и создает здесь своего собственного поставщика OpenId, www.jane.com / account / o8 / id, чтобы при запросе он возвращал заявленный идентификатор Боба.

  4. Она переходит на какой-то плохо закодированный сайт, www.bcs.com, который используетopen id и bob имеют учетную запись на.

  5. Она говорит www.bcs.com использовать OpenId Provider www.jane.com/accounts/o8/id.

  6. Теперь это та часть, о которой я не знаю, и хотел бы знать, возможно ли это / реалистично ... www.jane.com/id как-то заставляет www.bcs.com поверить, чтозаявленный идентификатор "строка" (т. е. значение, которое сайт в конечном итоге увидит) - ttps: //www.google.com/accounts/o8 / id? Id = AAtawkQvytyBNNuHpRhn36f8MLvFiJvZg8teNE.

Возможно ли это, каким-то образом, хотя хост www.jane.com?

Мы работаем над реализацией OpenId и не хотим быть таким "плохо закодированным сайтом".Мы используем какую-то стороннюю библиотеку .NET, которая дает нам заявленный идентификатор, поэтому мы не уверены, где и как он его создает.Если возможно, что это может быть подделано, то мы рассматриваем некоторые проверки того, что URL OpenId провайдера совпадает с тем, что содержится в заявленном идентификаторе.

Это также поднимает вопрос о том, должны ли мы сделать дополнительный шаг.хеширования / шифрования наших заявленных идентификаторов.Мы так думаем, потому что Google меняет свой идентификатор в зависимости от сайта, запрашивающего OpenId.Я имею в виду, почему бы еще не пойти на это, если не попытаться защитить своих членов?

1 Ответ

0 голосов
/ 27 января 2011

По сути, вы спрашиваете, возможно ли написать реализацию потребителя OpenID, которая нарушает спецификацию настолько, чтобы вводить уязвимости безопасности.Да, это.Вы можете пропустить весь процесс проверки и поверить всему, что вам говорят от вашего пользователя.

Но с потребителем, который точно следует спецификации OpenID, такая атака невозможна.

Поскольку высказал, что вы используете библиотеку .NET, вы, вероятно, используете DotNetOpenAuth.Это та же библиотека, которую использует stackoverflow, и вам, вероятно, не нужно беспокоиться об уязвимостях при ее использовании.Если вы используете другую библиотеку, возможно, это лучший выбор для перехода на DotNetOpenAuth.

Что касается причины, по которой Google возвращает идентификаторы на основе областей: это сделано для защиты конфиденциальности пользователей, а не для увеличениябезопасность.По сути, это гарантирует, что вы не сможете связать учетную запись своего пользователя с его учетной записью Google.

...