Доверие · Безопасность
Где живут ваши данные
Без маркетинговых формулировок: что мы реально делаем для защиты данных, какие провайдеры участвуют и какие гарантии у нас есть.
Хранилище данных
- Postgres (Supabase EU) — основная база. Документы, профили, контрагенты, история версий. Регион EU, шифрование на диске.
- Vercel Blob (EU) — артефакты выпусков (PDF, DOCX). С SHA-256 для проверки неизменности.
- Upstash Redis (EU) — rate-limiting и временные кэши. Без персональных данных.
Шифрование
- В пути: TLS 1.2+ (HTTPS) для всех соединений между клиентом, нашим приложением, Supabase, Vercel и Anthropic API.
- В покое: Postgres шифрует диск (Supabase managed). Vercel Blob — server-side encryption.
- Секреты: переменные окружения только на серверной стороне, никогда не попадают в клиентский bundle. Pre-commit semgrep сканирует на утечки.
Контроль доступа
- Авторизация: Supabase Auth (email + magic link). Токены обновляются автоматически, истекают по графику.
- Разделение пространств: каждый документ принадлежит конкретному пользователю и пространству. RLS-политики Supabase + проверки в каждом API.
- Роли: 4 роли (владелец / администратор / редактор / наблюдатель), серверные проверки прав в каждом действии. Подмена роли клиентом невозможна.
Сессии и токены
- Срок жизни access-токена: 1 час (настройка Supabase Auth по умолчанию). Refresh-токен живёт 30 дней.
- Refresh без перелогина: токен обновляется автоматически в фоне, пока вы активны.
- Истечение бездействия: при отсутствии активности 30 дней refresh истекает — нужен повторный логин.
- Принудительный logout: кнопка «Выход» в Настройках завершает текущую сессию. Глобального logout «со всех устройств» сейчас нет — добавим позже.
- Токены хранятся в HTTP-only cookies — JavaScript на клиенте не имеет к ним доступа (защита от XSS-кражи токенов).
Загрузка файлов
- Поддерживаемые форматы: PDF, DOCX, обычный текст. Сканы изображений (JPG/PNG) для проверки документа не поддерживаются — нужен извлекаемый текст.
- Лимит размера: 10 МБ на файл. Больше — Dokli отклонит загрузку. Большинство договоров умещаются в 1-3 МБ.
- Валидация: проверка MIME-типа на сервере, проверка структуры (corrupted PDF/DOCX отклоняются), ограничение количества загрузок (rate-limit).
- Антивирус: встроенного AV-сканирования нет. Файлы хранятся в изолированном хранилище (Vercel Blob), не исполняются на сервере.
- Хранение загруженных файлов: только для пользователя, который загрузил. Доступ через signed URLs с истечением. После анализа исходный файл можно удалить из настроек документа.
Удаление данных
- Удаление одного документа: кнопка «Удалить» на странице документа. Действие необратимо — версии и история тоже стираются.
- Удаление контрагента: через карточку контрагента в Настройках. Документы, привязанные к контрагенту, не удаляются автоматически.
- Удаление аккаунта: Настройки → Удалить аккаунт. Срок удаления — до 30 дней (ст. 21 152-ФЗ), на практике обычно 24-72 часа. Некоторые служебные данные хранятся дольше по закону: платёжные документы — 4 года (НК РФ).
- Что остаётся после удаления: анонимизированная статистика использования (без ИНН, ФИО, текстов документов), записи в журналах безопасности (для расследования инцидентов — до 6 месяцев), платёжные документы по законодательству.
- Запрос на доступ к своим данным: hello@dokli.ru — ответ в срок до 10 рабочих дней (ст. 14 152-ФЗ).
Логирование и аудит
- Журнал ключевых событий: создание документа, выпуск, восстановление, приём риска, изменение прав. Не перетирается.
- Sentry: технические ошибки. Не пишем туда тексты документов и персональные данные — только стек-трейсы и анонимизированный контекст.
- PostHog (EU): продуктовая аналитика. Никаких текстов договоров — только события «создал документ», «выпустил PDF» и подобные служебные счётчики.
Сторонние сервисы
- Anthropic Claude — обработка ваших брифов и документов для генерации. Anthropic не использует данные API для обучения моделей (политика default-off).
- YooKassa — платежи. Реквизиты карты не попадают в Dokli.
- ФНС-реестры — публичные API для проверки самозанятых и ИНН. Только отправляем ИНН для проверки, ничего не сохраняем у них.
Бэкапы и восстановление
- Postgres: ежедневные автоматические бэкапы (Supabase managed), хранятся 7 дней. Point-in-time recovery в продовых тарифах Supabase.
- Vercel Blob: S3-совместимое хранилище с встроенной репликацией.
- RTO/RPO: цель восстановления — до 4 часов. На практике обычно меньше.
Соответствие требованиям
- 152-ФЗ «О персональных данных»: уведомление в Роскомнадзор по ст. 22 подаётся перед публичным запуском prod-сервиса. Согласия пользователей хранятся, поддерживается удаление аккаунта с полным стиранием данных.
- Уровень защищённости ИСПДн (УЗ-3): согласно Приказу ФСТЭК России № 21 от 18.02.2013 — организационные и технические меры защиты от типовых угроз (несанкционированный доступ, неправомерное изменение / уничтожение).
- ГК РФ + ФЗ-422: формы документов соответствуют российскому законодательству. Шаблоны актуализируются по нормативным изменениям.
- Удаление по запросу: в Настройках есть кнопка удаления аккаунта — необратимо стирает все ваши данные за исключением минимума, который мы обязаны хранить по закону (платёжные документы — срок хранения 4 года).
Что пока не реализовано
- Двухфакторная аутентификация (2FA) — в плане после стабилизации ядра, Module 80 v2.
- Глобальный logout «со всех устройств» — сейчас завершается только текущая сессия. Добавим позже.
- Антивирусное сканирование загруженных файлов — пока нет. Файлы хранятся изолированно и не исполняются на сервере. Если планируем расширять приём файлов (например, бухгалтерские документы) — добавим AV.
- Несколько администраторов одного пространства — сейчас модель «один владелец без передачи». Это сознательное ограничение, не недоработка.
- Независимый SOC 2 / ISO 27001 аудит — это для enterprise масштаба. На нашем размере экономически не оправдано пока.
- Локализация ПДн в РФ — основная база в Supabase EU. Для клиентов с жёстким требованием 152-ФЗ ст. 18 ч. 5 о локализации первичной записи (например, госкомпании) — Dokli пока не подходит.
Данные под защитой — создайте первый документ
EU-серверы, шифрование в пути и в покое, 152-ФЗ. 3 документа бесплатно.
Нашли уязвимость или сомнительное место? Напишите на security@dokli.ru — отвечаем в течение 24 часов рабочих дней.