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

Безопасность 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.