Существуют ли какие-либо риски для безопасности, связанные с использованием мной OpenID в качестве метода аутентификации на моем сайте?

StackOverflow https://stackoverflow.com/questions/182258

  •  05-07-2019
  •  | 
  •  

Вопрос

Является OpenID безопасный метод аутентификации пользователей на веб-сайте?

И если нет, то каковы риски безопасности, связанные с OpenID?

Это было полезно?

Решение

На самом деле мне всегда не нравился OpenID по разным причинам.

  • Я должен доверять поставщику OpenID, которому я предоставил свои данные.Я действительно доверяю определенным сторонам в определенной степени, но только потому, что я могу доверять Stack Overflow, я не доверяю автоматически ни одному из хорошо известных поставщиков OpenID.

    1. Если мой пароль OpenID скомпрометирован, все мои сайты, где я использую OpenID, будут скомпрометированы.Обычно я бы выбрал другой пароль для каждого сайта, который я использую, но я не могу с OpenID.

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

    3. Как уже упоминалось, данные передаются между сайтом и поставщиком OpenID и обратно.Всякий раз, когда происходит обмен данными, они могут быть скомпрометированы.Ни одна система не является безопасной на 100%;даже SSL (HTTPS) нет.Есть разница, передаются ли данные только от меня в сторону и обратно ко мне, или они также передаются с этой стороны на другую и обратно.

    4. Если провайдер OpenID взломан и хакер получает регистрационные данные всех пользователей (в конце концов, они прекрасно централизованы в одном месте!), только подумайте о последствиях!

Просто назову некоторые из них.Я также не вижу большого преимущества OpenID.Для пользователя, о котором они говорят

  1. Более быстрая и простая регистрация и вход в систему
    • Уменьшено разочарование из-за забытого имени пользователя / пароля
    • Поддерживать актуальность персональных данных на предпочитаемых сайтах
    • Минимизировать риски для безопасности паролей

Хорошо, давайте проанализируем это.

(1) Как часто вы регистрируетесь на странице в день?200 раз?Если я регистрируюсь на 2 страницы в неделю, это уже чертовски много.Обычно максимум на 2-3 месяца (на самом деле Stack Overflow или мой OpenID-провайдер, использующий Stack Overflow, был последней страницей, которую я зарегистрировал, и это было не совсем вчера).Значит, когда вы регистрируетесь на 2 сайтах в месяц, у вас нет 5 минут, необходимых для заполнения формы?Ну же, не будь смешным.

(2) Как?Потому что он везде использует один и тот же пароль?"У этого нет будущего, это ошибка", - сказали бы большинство экспертов по безопасности.Или потому, что это позволяет мне восстановить свой пароль по почте?Ну, на самом деле, почти любая сторона, которую я использую, позволяет мне это делать.Несмотря на это, мой Firefox довольно хорошо запоминает мои пароли, сохраняет их в зашифрованном виде на диске (используя мастер-пароль), и эта зашифрованная база данных регулярно обновляется, чтобы никогда не потеряться.

(3) Что ж, вероятно, в этом есть что-то позитивное...однако мое имя пока что никогда не менялось, мой адрес электронной почты тоже не изменится, поскольку это один из доменов, которые я использую, и он перенаправляется на реальный адрес (поэтому реальный адрес может измениться, я просто обновляю пересылку, и все работает как раньше).Мой домашний адрес?Ну, некоторые люди много переезжают.До сих пор я переезжал только один раз за всю свою жизнь.Однако большинству сторон не обязательно знать мой адрес.Сайты, на которых я не вижу причин для того, чтобы люди знали эту информацию, но которые требуют, чтобы я заполнял ее для регистрации, просто получают поддельную.Во всем Интернете очень мало сайтов, которые знают мой настоящий адрес (на самом деле только те, которые, возможно, когда-нибудь пришлют мне срочную почту или где я могу заказать товары).

(4) На самом деле я вижу все наоборот.Это максимизирует риск для безопасности.Как бы это минимизировало риск?

Другие советы

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

Для знающего пользователя я бы сказал, что OpenID - это Еще более безопасная форма аутентификации, чем многие веб-сайты.Теперь позвольте мне подтвердить это утверждение.Во-первых, что я имею в виду под знающий пользователь?Я бы определил этого человека как человека, который знает о слабых сторонах OpenID и принимает меры по их смягчению:

  • Поддерживает нескольких пользователей, если они не хотят, чтобы веб-сайты могли эффективно отслеживать их.
  • Регистрирует двух или более поставщиков OpenID на веб-сайтах, доступ к которым в режиме 24/7 является проблемой.
  • Всегда входит в систему напрямую к своему провайдеру OpenID.Они никогда не заходят на страницу, на которую их перенаправил сторонний веб-сайт.

Множество веб-сайтов не знаете, как безопасно хранить пароли пользователей.Действительно приятная вещь с OpenID заключается в том, что Я получите возможность выбрать моего поставщика OpenID и, следовательно, уровень аутентификации, необходимый для входа на проверяющую сторону.Например, я могу делегировать аутентификацию Verisign или Доверенный человек - оба из которых предоставляют гораздо более надежные методы аутентификации, чем большинство веб-сайтов в Сети.Я бы предпочел доверить свой пароль организации, специализирующейся на безопасности, а не какому-нибудь случайному веб-сайту в Сети.Поэтому я бы сказал, что для знающего пользователя OpenID может быть более безопасным, чем каждый веб-сайт, реализующий свою собственную систему аутентификации.

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

OpenID по своей сути небезопасен. Он работает на вашем сайте, перенаправляя пользователя на его сайт открытого ID-провайдера, а затем принимает ID обратно с этого сайта. Это обеспечивает ненадежность в обоих направлениях. Вы должны доверять возвращаемому идентификатору (поскольку у вас нет способа аутентификации пользователя самостоятельно), и вы легко можете управлять прокси-сервером для открытого поставщика идентификаторов пользователя, который позволяет вам украсть его имя пользователя и пароль.

OpenID отлично подходит для чего-то вроде переполнения стека, когда не имеет значения, если кто-то выдает себя за вас. Использование OpenID для сайтов с более серьезным & # 8211; на личном уровне & # 8211; содержание крайне рискованно. Например, если вы используете OpenID для своей электронной почты, то любой, кто украл ваш Id, может получить доступ к вашей электронной почте. Затем они могут, в свою очередь, отправлять запросы на напоминание пароля на другие сайты, которые вы используете, чтобы получить пароли для этих сайтов. В худшем случае вы можете использовать OpenID для банковского счета или иметь банк, который отправляет напоминания о пароле на ваш адрес электронной почты ...

Есть множество других проблем безопасности с OpenID. Вы можете найти дополнительную информацию в " Конфиденциальность в Интернете " .

OpenID можно сделать более безопасным, если вы решите игнорировать всех поставщиков OpenID, которые не поддерживают HTTPS

Я думаю, что основным недостатком большинства провайдеров OpenId является то, что они предлагают восстановление пароля по электронной почте. Это снижает безопасность OpenId до уровня безопасности моего провайдера электронной почты. Если кто-то получит доступ к моей учетной записи электронной почты, он сможет эффективно украсть мою личность (с OpenId или без него).

Использование OpenId для аутентификации значительно упрощает кражу идентификационных данных. Просто получите доступ к моей учетной записи электронной почты и сбросьте мой пароль OpenId. Больше ничего не нужно делать (вместо 100 запросов на сброс пароля, по одному для каждой из моих учетных записей в Интернете).

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

Этого может быть достаточно, чтобы получить доступ к электронной почте для восстановления пароля, которую мой поставщик OpenId отправляет, чтобы украсть мою личность.

Поставщики OpenId предлагают отключить восстановление пароля электронной почты и предоставляют более безопасный способ восстановления утерянного пароля. Нечто, основанное на почтовом адресе, паспорте или банковском счете (вещи, которым я доверяю больше, чем учетная запись электронной почты).

Если учетную запись OpenId можно получить, просто получив доступ к одному письму, это всего лишь дополнительная точка отказа.

Смотри также: http://danielmiessler.com/blog/from-password-reset-mechanisms-to-openid-a-brief-discussion-of-online-password-security где " Самая слабая ссылка: электронная почта Механизмы сброса пароля " адрес тоже.

Пока эта ветка старая, я хотел добавить свои 2 цента. Я думаю, что у OpenId есть один недостаток, который, кажется, никого не волнует. Когда я проверяю подлинность с помощью Yahoo, на самом деле я захожу в Yahoo. Он не должен регистрировать вас в Yahoo, он должен просто подтвердить, что у вас есть правильные учетные данные с Yahoo. Когда вы выходите из моего приложения, вы все равно заходите в Yahoo. Если вы уйдете с компьютера с общим доступом, а другой человек пойдет в Yahoo, вы войдете в систему ... потому что, когда вы проходите аутентификацию в Yahoo, они также регистрируют вас в своем сервисе. Они должны просто аутентифицировать вас, а не входить в систему. Я рассказал об этом нескольким людям и даже продемонстрировал это на stackoverflow.com (у которого ужасный механизм выхода из системы, когда я нажимаю кнопку выхода, я ожидаю выхода из системы, не нажимайте еще одна кнопка выхода из системы). Попробуйте выйти из Yahoo или Gmail. Закройте все свои вкладки и войдите в stackoverflow с помощью Yahoo / Gmail. Затем выйдите из системы из-за переполнения стека ... (убедитесь, что вы дважды нажали кнопку "Выход"). Теперь перейдите к Yahoo или Gmail, вы вошли в систему. Теперь я получаю простой ответ " Не использовать общий компьютер, вы должны войти из Yahoo / Gmail и т.д. " ... Не каждый разработчик со степенью в области MIS или информатики, моя свекровь подумала бы, когда она выйдет из Stackoverflow, что она все равно не войдет в Yahoo .. Возможно Я пропускаю какой-то parm или что-то, что на самом деле будет вызывать то, что я хочу, но это, безусловно, не указано в документации, рассказывающей о том, насколько хорош OpenId !!!

Ой.MyOpenID сообщает о неподтвержденных адресах электронной почты, только что провел тест на это.Похоже, что информации об электронной почте следует доверять только некоторым провайдерам, занесенным в белый список вручную, таким как google / yahoo и нескольким другим.Я приведу ссылку на код здесь, если кому-то будет интересно.

Мне нравится VIP-доступ Verisign, который могут использовать сайты, и есть симпатичное небольшое приложение для iPhone, которое позволит вам получить сгенерированный токен, очень похоже на secureID

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top