pseudex
ДЛЯ СЛУЖБЫ БЕЗОПАСНОСТИ

Что уходит наружу, а что не уходит никогда

Этот документ написан для того, кто должен подписать внедрение. Он отвечает на вопрос «где именно оказываются персональные данные», а не рассказывает о продукте. Всё, что здесь заявлено, проверяется вами на своём стенде — в конце список команд.

ГРАНИЦА
01

Контейнер работает внутри вашего периметра

Образ запускается на вашей инфраструктуре. Персональные данные обрабатываются в его памяти, хранятся в его томе и не покидают вашу сеть. Мы не имеем к тому доступа: у нас нет ни учётных данных к вашей машине, ни канала, по которому содержимое тома можно было бы запросить.

02

Наружу уходит одно тело запроса — продление аренды

Контейнер раз в сутки обращается к серверу лицензий. В запросе: идентификатор организации, идентификатор установки, число обработанных запросов, число защищённых значений и счётчики по типам сущностей. Ни текстов, ни токенов, ни значений, ни превью — структура запроса такова, что персональные данные в ней негде разместить.

{"org_id": "org_4f3a8c", "instance_id": "8f3c…",
 "requests": 184203,
 "values": 5140,
 "entities": {"PHONE": 12043, "NAME": 8871, "LOC": 3310}}
03

Ключ вашего провайдера модели остаётся у вас

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

04

Отказ закрытый, а не открытый

Любая ошибка маскирования приводит к ответу 5xx, а не к пропуску текста без обработки. Если движок не может замаскировать — запрос не уходит к модели. Это относится и к состоянию «нет действующей лицензии»: контейнер останавливает обслуживание, а не начинает работать без защиты.

ХРАНЕНИЕ

Где лежат данные и сколько живут

Волт соответствий — SQLite в томе контейнера. Хранит пару «настоящее значение → подставленный токен». Это единственное место, где настоящее значение существует в постоянном виде, и оно на вашей стороне.

Журнал — тип сущности, токен и маскированное превью (Ив•••••••••ич). Полного значения в журнале нет намеренно: иначе он стал бы второй копией тех данных, ради ограничения которых существует волт.

Раскрытие значения доступно оператору по токену через локальный интерфейс. Каждое раскрытие записывается: кто, какой токен, когда. Записываются и промахи — иначе перебор наугад не оставлял бы следа. Запись делает движок, а не интерфейс: журнал, который ведёт о себе сам обращающийся, журналом не является.

Тексты сообщений
нет
да
Токены
нет
да
Настоящие значения
нет
да
Превью оригиналов
нет
да
Ключ провайдера модели
нет
да
Агрегатные счётчики
да
да
Ключи, тарифы, счета
да
нет
ГДЕ ЖИВЁТ
У НАС
У ВАС
ЧТО ЭТО ЗНАЧИТ ПО 152-ФЗ

Оператором персональных данных ваших клиентов остаётесь вы. Мы не получаем их ни в каком виде и потому не выступаем обработчиком по этим данным. Отдельно мы обрабатываем данные вашей учётной записи — email и реквизиты для счетов, — и по ним оператором являемся мы. Это две разные роли, и смешивать их не следует.

Проверьте сами

НЕ ВЕРЬТЕ НА СЛОВО

Ни одно утверждение выше не требует доверия к нам. Всё проверяется на вашем стенде за несколько минут.

01

Что реально уходит

снимите исходящий трафик
sudo tcpdump -i any -A host license.pseudex.ru
# в теле — только счётчики, ни одного значения
02

Что видела модель

самопроверка на своём тексте
открыть локальный интерфейс → ПЕСОЧНИЦА
# ваш текст, маскированный вид и восстановление —
# всё внутри вашего контура
03

Пишет ли контейнер на диск

кроме своего тома
docker diff pseudex
# пусто: PYTHONDONTWRITEBYTECODE=1,
# состояние только в смонтированном томе
ЧЕСТНО О ГРАНИЦАХ
01

Детектор не идеален, и мы этого не скрываем

Ни одна система распознавания персональных данных не даёт стопроцентной полноты. Мы публикуем полный список того, что находим и чего не находим, вместо того чтобы обещать отсутствие ошибок. Если ваш сценарий содержит редкие форматы, проверьте их в песочнице до внедрения — она для этого и сделана.

02

Подключение — сотрудничество, а не принуждение

Приложение направляется к контейнеру настройкой. Инженер с доступом к этой настройке может направить трафик мимо. Если вам нужна гарантия, а не договорённость, закройте исходящий доступ к API провайдеров на файрволе и оставьте маршрут только через контейнер — это делается на вашей стороне, и мы рекомендуем так и поступить.

03

Что внутри образа, кроме нашего кода

Морфологический словарь русского языка из корпуса OpenCorpora — данные под Creative Commons Attribution-Share Alike 3.0, код обвязки под MIT. Словарь включён без изменений, поэтому по терминологии лицензии это Collection, а не переработка: раздел 4(a) прямо снимает требование лицензировать остальное под той же лицензией. Полный список компонентов и обязательная атрибуция — в файле THIRD-PARTY-NOTICES.md внутри образа.

04

Волт не шифруется на диске

Пары «настоящее значение → токен» лежат в томе контейнера открытым текстом. Том находится в вашем периметре, и его защита — шифрование диска, права доступа, резервное копирование — делается вашими средствами, как для любой другой базы с персональными данными. Мы не выдаём это за фичу и не прячем: если для вашей отрасли важно шифрование самого волта, скажите — задача описана и стоит в очереди, обсудим сроки.

05

Мы не можем восстановить ваши данные

Волт существует только у вас. Если том потерян, соответствия «токен → значение» восстановить невозможно — ни вам, ни нам. Это следствие того, что у нас их нет. Включите том в вашу схему резервного копирования.

Остались вопросы к архитектуре?

ОТВЕЧАЕМ САМИ, БЕЗ ОТДЕЛА ПРОДАЖ
ПОПРОБОВАТЬ НА СВОЁМ СТЕНДЕ