Имена пользователей при попытке входа в систему? - PullRequest
1 голос
/ 27 октября 2019

Я пытаюсь расширить свое приложение для поддержки входа через WebAuthn. До сих пор я успешно настроил тестовое приложение (используя эту https://github.com/lbuchs/WebAuthn реализацию PHP) на своем локальном сервере.

Я думаю, что я в основном понял процесс сейчас, но у меня есть вопрос безопасности:Когда вы используете WebAuthn в качестве единственного фактора аутентификации (который, как предполагается, возможен), пользователь вводит только свое желаемое имя пользователя и передает свои учетные данные по отпечатку пальца или по своему YubiKey или как-то еще. На этой диаграмме (https://developers.yubico.com/WebAuthn/Libraries/Using_a_library.html), сказано, что сервер возвращает список credentialIds, связанных с именем пользователя. Затем аутентификатор отвечает на запрос, для которого у него есть закрытый ключ.

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

1 Ответ

2 голосов
/ 27 октября 2019

Это станет возможным благодаря "Resident Credentials", как только браузеры и FIDO2 -хардвер широко его поддержат, как описано в этом сообщении в блоге .

Между тем, вы можете сохранить идентификатор пользователя в долгоживущем cookie или в браузере (localStorage API). Желательно хранить непрозрачный идентификатор из-за риска утечки. К сожалению, данные могут быть удалены из браузера (действие пользователя, обновление браузера ...) и менее постоянны, чем учетные данные резидента.

...