Я пытаюсь добавить webauthn в свое веб-приложение и хочу безопасно хранить закрытый ключ с учетными данными. Методы, которые я нашел для хранения данных с учетными данными: расширение hmac-secret, расширение большого двоичного объекта, CredentialsContainer.store(). Какой из этих методов может безопасно хранить данные на/с аутентификатором? Есть ли лучшие способы сделать это?
CredentialsContainer.store
не относится к учетным данным с открытым ключом: они никогда не сохраняются, а только создаются. (Вы можете хранить другие типы учетных данных, например пароли, но в заголовке указано «WebAuthn», поэтому я буду придерживаться этой темы.)
Расширение hmac-secret
(представленное как расширение prf на уровне WebAuthn) позволяет получить произвольное количество секретов с использованием PRF, такого как HMAC. В настоящее время это отстает от chrome://flags/#enable-experimental-web-platform-features, но будет иметь наибольшую степень поддержки ключей безопасности и будет поддерживаться устройствами Android в ближайшие месяцы. Это должно быть ответом на ваш вопрос, но не
Расширение credBlob
позволяет хранить небольшой фиксированный объем данных с учетными данными. Однако изначально он не предназначался для секретов. Только более новый ключ безопасности будет поддерживать это.
Расширение largeBlob
предназначено для хранения КБ или двух данных с учетными данными, обычно сертификатом для этого ключа. Это будет иметь наименьшую поддержку ключа безопасности.
Однако, вероятно, ни одна из этих опций в настоящее время не работает в Safari.