Безопасна ли базовая аутентификация доступа? - PullRequest
44 голосов
/ 24 июля 2010

Используя Apache, довольно просто настроить страницу, которая использует базовую аутентификацию доступа, чтобы запрашивать у пользователя имя / пароль, и каким-то образом использовать эти учетные данные для предоставления доступа этому пользователю.

Isэто безопасно, при условии, что соединение между клиентом и сервером является безопасным?

Ответы [ 6 ]

55 голосов
/ 24 июля 2010

Основная проблема заключается в том, что учетные данные отправляются в виде открытого текста и уязвимы для перехвата пакетов. Если это соединение защищено с использованием TLS / SSL, то оно так же безопасно, как и другие методы, использующие шифрование.

15 голосов
/ 05 сентября 2017

Это старая ветка, и я не верю, что самый высокий проголосовавший / выбранный ответ является правильным.

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

Я хотел бы отметить еще одну проблему: если вы правильно делаете проверку пароля, тогда базовая аутентификация делает ваш сервер более уязвимым для отказа в обслуживании.Зачем?В старые времена считалось, что для проверки пароля достаточно соленого хэша. Это уже не так .В настоящее время мы говорим, что вам нужно иметь медленные функции, чтобы предотвратить взлом паролей в случае, если база данных становится доступной (что происходит слишком часто).Если вы используете базовую аутентификацию, то вы заставляете свой сервер выполнять эти медленные вычисления при каждом вызове API, что увеличивает нагрузку на ваш сервер.Вы делаете его более уязвимым для DoS, просто используя этот устаревший механизм аутентификации.

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

4 голосов
/ 04 сентября 2014

Причина, по которой большинство сайтов предпочитают OAuth по сравнению с Basic Auth, заключается в том, что Basic Auth требует, чтобы пользователи вводили свой пароль в стороннем приложении.Это стороннее приложение должно хранить пароль в открытом тексте.Единственный способ отозвать доступ - это сменить пароль.Это, однако, аннулирует доступ для всех сторонних приложений.Таким образом, вы можете увидеть, в чем проблема.

С другой стороны, OAuth требует веб-фрейма.Пользователь вводит свою регистрационную информацию на странице входа в систему данного конкретного сайта.Затем сайт генерирует токен доступа, который приложение может использовать для аутентификации в будущем.Плюсы:

  • токен доступа может быть отозван
  • стороннее приложение не может видеть пароль пользователя
  • токену доступа могут быть предоставлены определенные разрешения (тогда какбазовая аутентификация одинаково относится к каждому потребителю.)
  • если стороннее приложение оказывается небезопасным, поставщик услуг может принять решение об отзыве всех токенов доступа, созданных для этого конкретного приложения.
1 голос
/ 26 февраля 2016

Базовая аутентификация через http в среде, которую можно прослушать, не похожа на аутентификацию, потому что пароль можно легко отменить и затем использовать повторно. В ответ на язвительный комментарий выше о том, что кредитные карты через ssl «немного» более безопасны, проблема заключается в том, что базовая аутентификация используется снова и снова по одному и тому же каналу. Если вы взломали пароль один раз, вы поставите под угрозу безопасность каждой транзакции по этому каналу, а не только один атрибут данных.

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

0 голосов
/ 24 июля 2010

Как видно из самого названия, «Базовая аутентификация» - это просто базовый механизм безопасности.Не надейтесь на это, чтобы обеспечить вам безопасность без беспокойств.

Использование SSL поверх него делает его немного более безопасным, но есть и лучшие механизмы.

0 голосов
/ 24 июля 2010

Если вы генерируете пароли с htpasswd, рассмотрите возможность переключения на htdigest.

Дайджест-аутентификация безопасна даже для незашифрованных соединений, и ее так же легко установить. Конечно, базовая аутентификация в порядке, когда вы переходите через ssl, но зачем рисковать, если вы можете так же легко использовать дайджест-аутентификацию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...