При входе на веб-сайты или в мобильные приложения, если введено неправильное имя пользователя / адрес электронной почты или пароль, вы почти всегда получаете уведомление только о том, что «неверное имя пользователя или пароль». Почему это обычно делается вместо того, чтобы конкретно указывать пользователю, является ли это неправильное имя пользователя / адрес электронной почты или пароль?
Я предполагаю, что это в некоторой степени обусловлено безопасностью, но если это так, то насколько велика разница в защите от угроз, неоднозначно сообщая пользователю, что некоторая часть предоставленных учетных данных была неверной?
У меня было много примеров - особенно со старыми или реже посещаемыми веб-сайтами - где я понятия не имею, является ли неправильная часть моей электронной почтой, моим паролем или обоими.
источник
Ответы:
Это было решено на сайте биржи IT Security Stack .
Злоумышленнику намного сложнее угадать правильные комбинации имени пользователя и пароля, чем просто пароли. После подтверждения существования аккаунта на него можно нацелить (возможно, с помощью какого-либо внешнего исследования таких сайтов, как Facebook).
Веб-сайтам также намного удобнее возвращать общий сбой аутентификации, если они запрашивают базу данных для обеих частей учетных данных пользователя (хэш имени пользователя и пароля) одновременно, или если слой аутентификации непрозрачен и просто возвращает ли пользователь законный
В общем, не стоит раскрывать больше информации, чем необходимо. Некоторые злоумышленники могут захотеть получить список («перечислить») пользователей, возможно, для фишинга.
Кроме того, что если пользователь неправильно набирает имя пользователя для создания имени другого пользователя, но получает свой собственный пароль (не пароль другого пользователя) правильно? Тогда в сообщении будет указано «неправильный пароль», даже если ошибка действительно была в имени пользователя.
источник
select * from users where username='USERNAME HERE' and passhash='COMPUTED HASH HERE'
, он либо получит ноль, либо один результат, и он не узнает, что было не так, если он не получил ничего. (Пример из одного из ответов на этот вопрос Sec.SE.)Ваше предположение верно. Указание неверного имени пользователя является формой утечки информации . Используя только форму входа в систему, злоумышленник может определить, есть ли у определенного адреса электронной почты / имени пользователя учетная запись на сайте.
источник
Он основан исключительно на безопасности и конфиденциальности ... Аспект конфиденциальности заключается в том, что большинство людей используют общие имена пользователей на нескольких сайтах, и подтверждение того, что имя пользователя существует, выдает, что человек имеет учетную запись в этой системе, что может быть или не быть значительным в зависимости от сайт или пользователь, но все же выдает некоторую личную информацию. Аспект безопасности довольно прост: если вы попытаетесь аутентифицировать случайные имена пользователей и пароли, сообщив им, что имя пользователя правильное, вырежете возможные комбинации для взлома, значительно сократив время и увеличив шансы на взлом. Есть и другие последствия, но они являются наиболее значительными.
источник