Аутентификация
Anon поддерживает ключи доступа (рекомендуются) и пароли. Оба метода работают с иерархией ключей кошелька, но по-разному выводят и защищают корневой секрет.
Ключи доступа (WebAuthn PRF)
Ключи доступа используют WebAuthn с расширением PRF (псевдослучайной функцией). При аутентификации:
- Браузер вызывает аутентификатор устройства: Touch ID, Face ID, Windows Hello или аппаратный ключ FIDO2
- Аутентификатор выполняет HMAC-PRF с ключом, связанным с учётными данными Anon
- Результат PRF — детерминированный секрет из 32 байт — используется для вывода ключей кошелька
Преимущества ключей доступа
- Защита аутентификатором: хранение, привязка к устройству и синхронизация зависят от аутентификатора. Нужна поддержка PRF; ключ доступа не гарантирует защиту на заражённом устройстве.
- Устойчивость к фишингу: данные WebAuthn привязаны к источнику (
chrome-extension://...). Фишинговый сайт не может запросить ваш ключ доступа. - Без ввода пароля: пароль кошелька не раскрывается кейлоггеру, но секреты сеанса всё равно нуждаются в защите.
- Удобная биометрия: достаточно касания или взгляда.
Поддерживаемые аутентификаторы
Доступность зависит от браузера, ОС, аутентификатора и поддержки PRF. Проверяйте совместимость при настройке; примеры ниже не гарантируют работу каждой версии.
- Touch ID (Mac)
- Face ID (iPhone/iPad как внешний аутентификатор по Bluetooth)
- Windows Hello
- YubiKey и другие аппаратные ключи FIDO2
Аутентификация паролем
При выборе пароля Anon выводит корневой ключ с помощью Argon2id:
- Argon2id — требовательный к памяти алгоритм хеширования паролей, повышающий стоимость офлайн-подбора
- Anon задаёт высокую стоимость по памяти — 64 МБ — для усложнения перебора
- Случайная соль хранится в
chrome.storage.local; выведенный ключ не передаётся серверу
Пароль удобен, но несколько уступает ключам доступа по безопасности:
- При выводе ключа пароль кратковременно находится в памяти
- Слабый пароль уязвим к офлайн-подбору при краже хранилища
Используйте длинную уникальную парольную фразу.
Управление сеансом
После аутентификации Anon создаёт сеанс:
- Ключ просмотра загружается в память для фоновой синхронизации
- Ключ расходования загружается по необходимости при создании транзакции
- Сеанс истекает по настроенному тайм-ауту
После истечения Anon блокируется, а ключи сеанса удаляются из памяти.
Автоблокировка
Anon может блокироваться по системным событиям:
- Бездействие: после N минут без активности
- Блокировка ОС: при блокировке экрана или сне; нужен соответствующий API расширений, включено по умолчанию
- Закрытие браузера: всегда вызывает блокировку
Настройте это в Settings → Security.