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