Автоматическая аутентификация в настольном браузере с WebAuthn
На Google I/O '18 была показана демонстрация, в которой пользователь аутентифицируется в PayPal, просто предоставив отпечаток пальца (см. YouTube 24:40). Это было сделано в браузере, работающем на смартфоне, который имеет датчик отпечатка пальца и требует, чтобы браузер внедрил стандарт WebAuthn. Отпечаток пальца разблокирует закрытый ключ, который используется для аутентификации запрос-ответ и который хранится в аутентификаторе.
Насколько я понял, взаимодействие с пользователем (т.е. запрос отпечатка пальца) можно отключить, установив userVerification
аргумент discouraged
(см. w3.org). Пользователь будет авторизован автоматически.
Может ли этот поток также быть реализован в настольном браузере без какого-либо дополнительного оборудования? В браузерах реализован аутентификатор по умолчанию, который можно использовать для этого?
Конкретно, я хотел бы сделать это:
- зарегистрируйте пару открытого и закрытого ключей в браузере настольного компьютера через WebAuthn, чтобы к закрытому ключу нельзя было получить доступ через JavaScript (например, для предотвращения атак XSS)
- каждый раз, когда данные отправляются на сервер, они подписывают эти данные через API WebAuthn с закрытым ключом, хранящимся в аутентификаторе "по умолчанию", не требуя вмешательства пользователя
1 ответ
Может ли этот поток также быть реализован в настольном браузере без какого-либо дополнительного оборудования? В браузерах реализован аутентификатор по умолчанию, который можно использовать для этого?
Chrome и, вероятно, большинство браузеров могут генерировать пару открытый-закрытый ключ и использовать ее для аутентификации. Однако безопасность этого ключа без защиты с помощью специального оборудования, как в случае с телефоном, в лучшем случае сомнительна.
Предпочтительным решением будет использование USB-токена, такого как YubiKey. Большинство из них требуют взаимодействия, а именно нажатия кнопки на токене, чтобы предотвратить использование вредоносной программой без ведома пользователя, но вы можете найти такую, которая этого не делает, или, альтернативно, вы сможете найти такую, которая позволит вам изменить свою прошивку и отключить это требование.