Безопасность Anonymaze
Обновлено: 28 апреля 2026
Как мы храним ваши данные в тайне — убирая максимум поверхности доверия. Десктоп-приложение обрабатывает всё локально на вашем компьютере. Онлайн-демо шифрует данные при передаче, обрабатывает их в памяти и ничего не записывает на диск. На этой странице описаны модель угроз, история проверок и порядок сообщения об уязвимостях.
Модель угроз
Anonymaze построен вокруг одного допущения: каждый байт вашего документа чувствителен. Мы относимся к тексту пользователя как к «горячей картошке» и сводим к минимуму время, поверхность и число компонентов, которые вообще к нему прикасаются.
Мы защищаем от трёх классов сбоев: пассивные наблюдатели в сети (закрыты TLS 1.3 и офлайн-режимом десктопа), случайное хранение данных у нас (закрыто архитектурой без хранения и обработкой только в памяти) и компрометация зависимостей (закрыта фиксацией версий внешних библиотек, которые мы не модифицируем, и аудитом зависимостей).
Мы НЕ заявляем защиту от: скомпрометированного устройства (если ваш компьютер взломан, ни одно приложение не спасёт); атак по сторонним каналам на тот внешний сервис (ChatGPT, Claude и т.п.), куда вы вставляете уже обезличенный текст (это зона ответственности их поставщика); или случаев, когда пользователь загружает не тот файл. Задача Anonymaze — сделать правильный выбор простым.
Поток данных
Десктоп (офлайн)
Пользователь выбирает файл → приложение читает его с диска → запускает локальный движок отдельным процессом через Process + Pipe → процесс возвращает JSON → приложение показывает результат.
Во время обработки сетевые запросы не выполняются. Единственный исходящий трафик десктоп-приложения — это (а) проверка обновлений (передаёт версию приложения и версию ОС, без данных документа) и (б) необязательная проверка лицензии для платных тарифов (передаёт ключ лицензии и хеш идентификатора устройства, без данных документа).
Мы проверяем это двумя способами: (1) читаем исходный код приложения и движка — ни один из них не подключает сетевой клиент за пределами путей обновления и лицензии; (2) запускаем приложение под сетевым монитором с нетривиальным документом и наблюдаем ноль соединений во время обезличивания.
Онлайн-демо
Браузер → POST /api/v1/anonymize/text (TLS 1.3) → обработчик FastAPI в памяти → свежий экземпляр обработчика на каждый запрос (без общего состояния) → JSON-ответ → отрисовка в браузере.
На сервере тело запроса обрабатывается только в памяти — без записи на диск, без вставки в базу, без логирования содержимого. Ответ возвращается, рабочий процесс высвобождается, жизненный цикл запроса завершается. Мы логируем только метод, путь, код статуса и время в миллисекундах.
Ограничение — 5 запросов в минуту с одного IP. IP-адреса в логах хешируются (SHA-256, первые 16 hex-символов) — необратимо. Логи сервера хранятся 30 дней.
Шифрование
| При передаче (онлайн-демо) | TLS 1.3 |
|---|---|
| При хранении (сервер) | Отправленный текст постоянно не хранится — шифровать нечего |
| Логи сервера | Обезличенный IP (SHA-256, первые 16 hex), хранение 30 дней |
| Аутентификация | bcrypt для паролей, JWT (HS256, срок 24 ч) для сессий |
| Платежи | Внешний платёжный провайдер (PCI DSS уровня 1) — мы никогда не видим номера карт |
| Вебхуки | Подпись вебхука проверяется на стороне сервера |
| Десктоп (офлайн) | Только на стороне клиента. Данные не покидают устройство. |
Статус App Sandbox
Приложение macOS сейчас распространяется как подписанный Developer ID и нотаризованный Apple DMG. Полная изоляция App Sandbox (механизм прав, обязательный для приложений из Mac App Store) — в планах после MVP: она требует переработки запуска встроенного процесса движка и чтения выбранных пользователем файлов, что на этом этапе продукта не добавляет ценности безопасности.
Поэтому текущее состояние такое: код проверен вручную (каждый файл, который читает приложение, выбран пользователем через системный диалог; каждый запускаемый процесс — это встроенный движок; перебора файлов вне выбора пользователя нет), а изоляция средствами ОС запланирована на версию 1.x.
Что именно значит «100% офлайн»
Когда мы говорим, что десктоп-приложение работает офлайн, мы имеем в виду: на пути обработки документа нет ни одного исходящего HTTP-запроса. Мы проверяем это построчным разбором исходного кода десктоп-оболочки и движка. Ни один из них не подключает сетевой клиент между «пользователь выбрал файл» и «пользователь увидел обезличенный результат».
Существуют два вспомогательных сетевых пути, и они документированы: проверка обновлений (её можно отключить в настройках) и проверка ключа лицензии (срабатывает только при активации платной лицензии и никогда не содержит данных документа). Оба отключены по умолчанию в сборке закрытого бета-теста.
История проверок
| Дата | Область | Результат |
|---|---|---|
| 2026-04-12 | Базовый аудит безопасности бэкенда (логирование запросов, временные файлы, изоляция памяти, заголовки, ограничение частоты, аутентификация, платежи, хранение, CORS, зависимости) | Пройден — внутренний аудит безопасности. HSTS будет включён на уровне прокси в продакшене. |
| 2026-04-28 | Внутренняя проверка перед публикацией раздела документации | Чисто — нерешённых критичных и высоких замечаний нет. |
Ответственное раскрытие уязвимостей
Если вы считаете, что нашли уязвимость в Anonymaze, пожалуйста, не публикуйте её в открытом issue на GitHub. Сначала напишите нам — мы вместе подтвердим, оценим и исправим проблему и согласуем сроки раскрытия.
Мы придерживаемся окна раскрытия в 90 дней: отвечаем в течение 5 рабочих дней и, если вы не против, публично упоминаем вас в таблице истории проверок после выпуска исправления.
E-mail: security@anonymaze.ru
PGP-ключ будет опубликован позже. До тех пор используйте письмо по защищённому TLS-каналу на security@anonymaze.ru.