Перейти к содержимому
Anon Wallet

Управление ключами

Anon использует многоуровневую архитектуру, рассчитанную на то, чтобы конфиденциальный ключевой материал не сохранялся на диск открытым текстом, а каждая операция использовала минимально необходимые полномочия ключей.

Иерархия ключей

Device authenticator (passkey / password)
        │
        ▼
    Root secret            ← PRF / Argon2id; session memory
        │
    HKDF derivation
       / \
      /   \
Railgun    IDB CryptoKey
  key      (AES-GCM)

Ключ PRF (корневой)

При аутентификации ключом доступа аутентификатор предоставляет псевдослучайную функцию (PRF), выдающую детерминированный секрет, связанный с вашими учётными данными ключа доступа. Хранение и синхронизация зависят от аутентификатора. Выход PRF служит корнем иерархии ключей. Он не записывается на диск и существует только в памяти во время сеанса.

При аутентификации паролем Argon2id выводит аналогичный по назначению корневой секрет из пароля и сохранённой соли.

Вывод через HKDF

Из ключа PRF Anon выводит два ключа с помощью HKDF — функции вывода ключей на основе HMAC:

  • Ключ Railgun (anon:railgun:full:v1) — единый ключ для расшифровки баланса (просмотра) и создания доказательств zk-SNARK (расходования). Загружается при аутентификации и остаётся в памяти на время сеанса.
  • IDB CryptoKey (anon:secrets:indexeddb:v1) — ключ AES-256-GCM для шифрования и расшифровки конфиденциальных данных в IndexedDB, включая мнемоническую фразу и данные учётной записи. Загружается при аутентификации и остаётся в памяти на время сеанса.

KeyVault (кеш в памяти)

KeyVault — единственный экземпляр хранилища в памяти, содержащий активные ключи сеанса. Он:

  • Заполняется после успешной аутентификации
  • Не записывается на диск
  • Автоматически очищается при выходе или закрытии окна
  • Защищён от способов доступа фоновых страниц, которым не нужны ключи расходования

Где хранятся данные

Данные Хранилище Шифрование
Зашифрованная мнемоническая фраза IndexedDB AES-GCM с IDB CryptoKey
IDB CryptoKey Хранилище Chrome Шифрование ключом, выведенным из PRF
Публичный адрес Хранилище Chrome Открытый текст: адрес публичен по своей природе
Ключ Railgun Только память Не сохраняется
IDB CryptoKey (расшифрованный) Только память Не сохраняется
Ключ PRF Только память Не сохраняется

Восстановление

Если вы потеряете доступ к устройству, кошелёк можно восстановить с помощью мнемонической фразы из 12 слов. Она заново создаёт все ключи. Храните её офлайн в безопасном месте.

Дополнительные материалы