Обзор безопасности
Anon некастодиален: ключи расходования контролируете вы. Публичные сведения о транзакциях и метаданные запросов к сервисам могут быть видны другим сторонам. Mobile Sync передаёт материал восстановления напрямую между вашими экранами в зашифрованном QR-коде, не загружая его в Anon.
Некастодиальная модель
«Некастодиальность» означает, что приватные ключи, управляющие средствами, есть только у вас. Anon:
- Не хранит приватные ключи и мнемоническую фразу на серверах
- Не требует аккаунта на платформе Anon
- Не может заморозить, отменить ваши транзакции или получить к ним доступ
- Не может восстановить аккаунт при потере мнемонической фразы
Обратная сторона: резервная копия фразы восстановления — ваша ответственность.
Где хранятся данные
| Данные | Место | Доступ |
|---|---|---|
| Зашифрованная фраза | IndexedDB браузера | Расшифровка только ключом доступа или паролем |
| Ключ шифрования IDB | chrome.storage.local |
Зашифрован ключом, выведенным через PRF |
| Публичный адрес | chrome.storage.local |
Открыто, по замыслу публичен |
| Конфигурация RPC | chrome.storage.local |
Открыто |
| Ключи сеанса: просмотр, расходование | Только память | Удаляются при блокировке и выходе |
| Ключ PRF | Только память | Существует лишь во время аутентификации |
| История транзакций | IndexedDB Railgun SDK | Зашифрована локально |
Ключевой материал, фраза и содержимое нот не отправляются серверам Anon. Сетевые вызовы и раскрываемые данные:
| Вызов | Назначение | Что видно |
|---|---|---|
Digest CDN (digest.anon.inc) |
Загрузка истории экранированного пула | IP; запросы одинаковы для всех и не содержат производных от ключей |
Head API индексатора (api.anon.inc) |
Обновление между публикациями CDN | IP и позиция в цепочке: отставание, а не активы |
| Агрегатор PPOI через прокси Anon | Проверки доказательств невиновности | IP и запрошенные ослеплённые коммитменты; специфично для кошелька, см. ниже |
| RPC-эндпоинты | Публичные балансы, газ, отправка | IP и запрашиваемые публичные адреса; эндпоинты настраиваются |
| Waku P2P | Связь с бродкастером | Отправка в блокчейн делегирована, но сетевые метаданные могут оставаться видимыми |
| Paymaster API (необязательно) | Спонсирование газа | IP и факт запроса спонсируемой транзакции |
Реестр .anon.buzz (необязательно) |
Разрешение имён | IP и искомое имя |
Первая строка несёт основную часть данных и намеренно не использует запросы по кошельку: все скачивают одинаковые публичные файлы и расшифровывают локально. Сервер не узнаёт, какие ноты ваши. Подробнее: Синхронизация кошелька.
PPOI — отдельная поверхность приватности: агрегатор получает запросы о коммитментах из ключа просмотра. Текущий прокси Anon может кешировать эти ответы и сохранять параметры в метаданных кеша. Хеширование ключа кеша не анонимизирует параметры и не предотвращает связь с сетевыми метаданными. Проверьте хранение и контроль доступа оператора; не считайте этот путь некешируемым.
Модель угроз
От чего защищает Anon
- Наблюдатели блокчейна: zk-SNARK скрывают суммы, отправителей и получателей приватных транзакций
- Связывание по IP: способ отправки меняет видимость метаданных соединения; Waku не гарантирует анонимность IP
- Определение владельцев нот индексатором: история скачивается общими публичными файлами, а не запросами по кошельку, и расшифровывается на устройстве. Серверу нечего читать в фильтре. См. Синхронизация кошелька
- Перебор парольной фразы: Argon2id с высокой стоимостью памяти замедляет офлайн-атаки по словарю
- Кража хранилища: данные зашифрованы; защита зависит от секрета аутентификации и реализации
- Перехват одного QR Mobile Sync: также нужны 120-битный код сопряжения с телефона и одноразовый пароль, введённый на обоих устройствах
От чего Anon не защищает
- Заражённое устройство: вредоносная программа может перехватить ключи в памяти или пароль
- Уязвимости расширения: ошибка в коде может раскрыть ключевой материал
- Полный перехват сопряжения: обладатель зашифрованного QR, кода телефона и одноразового пароля может восстановить переданный аккаунт. Офлайн-копия QR не может истечь или ограничить попытки подбора.
- Синхронизация буфера с кодом: нажатие кода на телефоне может скопировать его на компьютер через Universal Clipboard или другой сервис. При перехвате буфера и QR остаётся лишь одноразовый пароль; очистка буфера через 30 секунд выполняется по возможности.
- Захват экрана телефона: Anon просит ОС блокировать поддерживаемые снимки и записи и предупреждает о замеченной попытке. Защита платформы снижает риск, но не гарантирует его отсутствия; удалите изображения восстановления из «Фото» и «Недавно удалённых».
- Анализ сетевого трафика: делегирование отправки не устраняет метаданные и анализ трафика
- Форма трафика синхронизации: объём и время загрузок показывают примерно, когда IP синхронизировался, но не его ноты. VPN или Tor меняет наблюдателей, но не стирает время и объём
- Запросы доказательства невиновности: проверки специфичны для кошелька и через прокси Anon достигают стороннего агрегатора
- Потеря фразы: без фразы из 12 слов восстановление невозможно
Открытый исходный код
Anon планирует открывать код и инструменты на github.com/anondotinc постепенно. Компоненты публикуются, когда готовы к сопровождению в открытом доступе.
Некоторые уже доступны, включая полную реализацию ретранслятора пеймастера на Go, Docker и Cloudflare Worker.
Независимо от кода Anon, контракты и криптографические схемы Railgun открыты и прошли аудит нескольких независимых фирм; отчёты находятся в организации Railgun на GitHub. Данные дайджестов публичны и адресуются по содержимому: любой может сверить их с логами блокчейна без доступа к инфраструктуре Anon. См. Синхронизация дайджестов.