Я знайшов це в іншому SO нитка:
Кроки:
- Користувач підключається до веб-сайту, що підтримує OpenID.
- Користувач вводить інформацію про довірену інформацію.
- Розміщення пошти проводиться за допомогою BASE64 (веб-сайт постачальника)
- Складається відповідь (містить термін дії)
- Веб-сайт перенаправляє користувача до провайдера для входу.
- Користувач вводить пароль і подає.
- Перевірка робиться.
- Вхід!
Як забезпечено крок 6-8? Як я це бачу, клієнт аутентифікується з постачальником та повідомляє про результат нашому сервері.
Що заважає клієнту підробити результат аутентифікації?
Відповіді:
2 для відповіді № 1Перш за все, результат аутентифікації криптографічно підписується постачальником. Існують також інші заходи безпеки, що захищають від інших атак.
Цитуючи Специфікація OpenID 2.0, розділ 11.:
Коли Надійна сторона отримує позитивне твердження, вона ОБОВ'ЯЗКОВА перевірити наступне перед тим, як прийняти це твердження:
- Значення "openid.return_to" відповідає URL-адресі поточного запиту (Розділ 11.1)
- Виявлена інформація відповідає інформації у твердженні (Розділ 11.2)
- Затвердження ще не прийнято з цієї ОП з тим же значенням для "openid.response_nonce" (Розділ 11.3)
- Підпис на твердженні є дійсним, і всі поля, які потрібно підписати, підписуються (Розділ 11.4)
Клієнт, звичайно, може надіслати підроблений результат аутентифікації, але він не пройде перевірку.