2011-01-26 2 views
0

Хорошо, так что в основном вот сценарий атаки провайдера OpenID провайдера Bodysnatcher.Bodysnatcher "OpenId Provider" атак вопрос

  1. Боба Google утверждал, идентификатор состоит в следующем, TTPS: //www.google.com/accounts/o8/id ID = AAtawkQvytyBNNuHpRhn36f8MLvFiJvZg8teNE

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

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

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

  5. Она сообщает www.bcs.com использовать поставщик OpenId www.jane.com/accounts/o8/id.

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

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

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

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

ответ

0

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

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

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

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

+0

Хорошо, что хорошо знать, поскольку мы используем «DotNetOpenAuth». – Thirlan

+0

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

+0

Neeevermind! Я видел ваш ответ на чужой вопрос, который был именно этим. – Thirlan