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

Gateway — маскирование PII перед LLM

ZuBrIQ Gateway — прокси перед моделями платформы: УНП, карты, счета, БИК, ИНН и ФИО клиентов заменяются синтетикой до отправки к LLM и восстанавливаются в ответах — включая потоковые. Распознаёт реквизиты СНГ, поэтому подходит банкам и сервисам, которые отправляют данные клиентов моделям; работает с любым OpenAI-совместимым провайдером.

  1. Оставьте заявку на странице продукта: zubriq.by/gateway, кнопка «Подключить Gateway».
  2. При подключении шлюза задаются настройки: режим Fail-Closed и второй слой маскирования (Presidio) — опция, по умолчанию выключена.
  3. Запросы отправляются на OpenAI-совместимый адрес https://api.zubriq.by/v1 тем же ключом, что и для API платформы. Приложение, умеющее OpenAI API, работает без переделок — маскирование происходит на шлюзе, по пути к модели.
  1. Приложение — сервис, чат или агент — отправляет запрос как обычно, OpenAI-совместимым вызовом.
  2. Шлюз находит реквизиты и ФИО и заменяет их синтетикой: модель видит только синтетику. Детекция идёт по форматам реквизитов, без GPU и внешних моделей — миллисекунды на запрос.
  3. Ответ модели проходит обратную замену: клиент видит свои данные — и в обычных ответах, и в стримах, где восстановление идёт на лету, по мере прихода ответа.
  4. Переиспользуемые пары: одно и то же значение всегда заменяется одной и той же синтетикой — связность сохраняется и внутри диалога, и между диалогами.
  5. Fail-Closed: при сбое модуля маскирования запрос отклоняется и не уходит к модели — PII не утечёт. Режим задаётся при подключении шлюза.
  6. Каждое обнаружение PII фиксируется в аудит-логе с привязкой к пользователю, модели и запросу — события готовы для SIEM.
Реквизит Как распознаётся
УНП 9 цифр с проверкой контрольного числа
ИНН 10/12 цифр с проверкой контрольной суммы
Карты проверка номера, МИР / Visa / Mastercard
Счета и БИК проверка ключа счёта и справочника банков
СНИЛС 11 цифр с проверкой контрольной суммы
ФИО распознавание обращений и контекста
Телефоны проверка по актуальным кодам операторов Беларуси, России и Казахстана

Проверка контрольных чисел работает в обе стороны: валидный номер не пропустим мимо, невалидный не примем за PII.

Запрос выглядит как обычный вызов OpenAI-совместимого API:

Окно терминала
curl -s https://api.zubriq.by/v1/chat/completions \
-H 'Authorization: Bearer sk-zq-...' \
-H 'Content-Type: application/json' \
-d '{"model": "gpt-4o-mini", "user": "user-42",
"messages": [{"role": "user",
"content": "Мой УНП 192628898, пришлите счёт."}]}'
# К модели уйдёт: "Мой УНП 732432413, …"
# В ответе вернётся: "Мой УНП 192628898, …"

Ключ — тот же sk-zq-…, что и для API платформы: один ключ на контур и шлюз. Поле user связывает запрос с пользователем — обнаружения PII в аудит-логе привязаны к пользователю, модели и запросу.

Универсальные маскировщики (Microsoft Presidio, встроенные PII-фильтры опенсорс-шлюзов) вырезают «похожее на персональные данные» по NLP-моделям. Для банковских реквизитов СНГ и диалогов с возвратом данных клиенту этого мало:

Критерий Presidio ZuBrIQ Gateway
Реквизиты СНГ Общие шаблоны без проверки; УНП, БИК, ключ счёта — нет Проверка контрольных чисел по официальным форматам
Возврат данных Замена навсегда, восстановить нельзя Восстановление в ответах и стримах
Связность диалога Одна фамилия подменяется каждый раз по-новому Одно значение — одна синтетика
Телефоны Общий международный шаблон, много ложных срабатываний Коды операторов Беларуси, России и Казахстана
Скорость NLP-модели, тяжёлый старт Форматы реквизитов, без GPU — миллисекунды
Контроль Нет истории подмен SIEM-события, журнал замен, Fail-Closed

Presidio при этом остаётся полезным для не-реквизитных сущностей: адреса, e-mail, даты, номера документов без контрольных сумм. Он подключается вторым слоем поверх Gateway — отдельный сервис рядом со шлюзом, включается настройкой при подключении (по умолчанию выключен) и на ответы и восстановление данных не влияет.

  • Gateway закрывает реквизиты СНГ, ФИО и телефоны; не-реквизитные сущности (адреса, e-mail, даты) маскирует второй слой Presidio — скажите о нём при подключении.
  • Fail-Closed и второй слой задаются при подключении шлюза, отдельно для каждого подключения.