Существуют ли какие-либо риски для безопасности, связанные с использованием мной OpenID в качестве метода аутентификации на моем сайте?
Вопрос
Является OpenID безопасный метод аутентификации пользователей на веб-сайте?
И если нет, то каковы риски безопасности, связанные с OpenID?
Решение
На самом деле мне всегда не нравился OpenID по разным причинам.
Я должен доверять поставщику OpenID, которому я предоставил свои данные.Я действительно доверяю определенным сторонам в определенной степени, но только потому, что я могу доверять Stack Overflow, я не доверяю автоматически ни одному из хорошо известных поставщиков OpenID.
Если мой пароль OpenID скомпрометирован, все мои сайты, где я использую OpenID, будут скомпрометированы.Обычно я бы выбрал другой пароль для каждого сайта, который я использую, но я не могу с OpenID.
Мне вообще не нравится концепция Персоны.Несмотря на то, что меня спрашивают перед отправкой каких-либо данных, просто кажется неправильным, что у одного поставщика есть эта информация, а другие службы могут запросить ее.Ладно, я не обязан использовать это, если мне не нравится, но концепция кажется мне ущербной.
Как уже упоминалось, данные передаются между сайтом и поставщиком OpenID и обратно.Всякий раз, когда происходит обмен данными, они могут быть скомпрометированы.Ни одна система не является безопасной на 100%;даже SSL (HTTPS) нет.Есть разница, передаются ли данные только от меня в сторону и обратно ко мне, или они также передаются с этой стороны на другую и обратно.
Если провайдер OpenID взломан и хакер получает регистрационные данные всех пользователей (в конце концов, они прекрасно централизованы в одном месте!), только подумайте о последствиях!
Просто назову некоторые из них.Я также не вижу большого преимущества OpenID.Для пользователя, о котором они говорят
- Более быстрая и простая регистрация и вход в систему
- Уменьшено разочарование из-за забытого имени пользователя / пароля
- Поддерживать актуальность персональных данных на предпочитаемых сайтах
- Минимизировать риски для безопасности паролей
Хорошо, давайте проанализируем это.
(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 может предоставить гораздо более безопасный опыт, чем традиционный легко вымышленный пароль, см. в это короткое видео Кима Кэмерона из его Веб-сайт Identity .
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