Маскирование — это замена чувствительных данных на безопасные заглушки перед передачей. Есть три стратегии: block, redact, flag. Плюс обратимый vault, который позволяет вернуть значение обратно по ключу. Ниже объясню на пальцах, как это работает и почему обычный регексп тут не вывозит.
Представьте, что отправляете документ курьером, но перед этим заклеиваете в нём всё лишнее стикерами. Номер паспорта — стикер. Телефон — стикер. Курьер видит только то, что нужно для дела, остальное скрыто.
Маскирование делает то же самое с текстом перед отправкой в нейросеть. Вы пишете в ChatGPT запрос с данными клиента, а маскировщик заменяет эти данные на заглушки ещё до того, как текст уйдёт наружу. Нейросеть получает текст без паспортов и телефонов, вы получаете ответ, который можно использовать.
Главное отличие от ручного «вырезать лишнее»: маскировщик находит данные сам. Вам не надо помнить, что СНИЛС — это 11 цифр, а номер карты проверяется по алгоритму Луна. Программа это уже знает.
Где это нужно? Везде, где текст уходит наружу: в нейросеть, во внешний сервис, в переписку с контрагентом. В Mask Gate есть веб-интерфейс, API и надстройка для Excel и Word. Файлы — txt, csv, docx, xlsx, pdf, плюс распознавание сканов и изображений через OCR.
У Mask Gate три стратегии. Каждая подходит под свой тип данных.
| Стратегия | Что делает | Для чего |
|---|---|---|
| block | Запрещает передачу текста | Секреты, ключи, медданные |
| redact | Удаляет значение, оставляет [REMOVED:категория] | Паспорт, ИНН, СНИЛС, карты, контакты |
| flag | Помечает, не трогая текст | ФИО, организации, суммы, IP |
block — самая жёсткая. Если в тексте API-ключ, приватный ключ или медицинские данные, текст просто не уйдёт. Передача блокируется, сотрудник видит, что именно мешает.
redact — рабочая лошадка. Паспорт превращается в [REMOVED:паспорт], телефон в [REMOVED:телефон]. Смысл текста сохраняется, данных в нём больше нет. Обратно их не достать, удаление необратимое.
flag — самый мягкий вариант. Ничего не удаляется, просто ставится пометка. Так поступают с ФИО, названиями организаций, суммами, IP-адресами. Их часто можно передавать, но полезно видеть, что они вообще есть.
Логика простая: чем чувствительнее данные, тем жёстче стратегия. Медданные только block. Паспорт и карта — redact. ФИО и суммы — flag.
Вот как категории раскладываются по стратегиям в Mask Gate.
| Группа | Категории | Стратегия |
|---|---|---|
| Секреты и ключи | API-ключ, приватный ключ, SSH-ключ | block |
| Медицина | медицинские данные | block |
| Карты и платёжное | номер карты, CVV, срок действия, счёт | redact |
| Документы РФ | паспорт, ИНН, СНИЛС | redact |
| Контакты | телефон, email, адрес | redact |
| Личное | дата рождения | redact |
| Прочее | госномер авто, учётные данные, код | redact |
| Метки | ОГРН, ОГРНИП, БИК, КПП, IP-адрес, суммы | flag |
| Сущности (NER) | ФИО, организация, локация | flag |
Плюс свои фразы-маркеры, например название секретного проекта, свои regex-правила и список исключений.
Иногда данные нельзя просто удалить. Нейросети нужно обработать текст с реальными значениями, чтобы ответить по существу, а потом вернуть эти значения обратно в результат.
Для этого есть обратимая маскировка. Значение уезжает в зашифрованное хранилище — vault, а в тексте остаётся токен вида [VAULT:…]. Нейросеть видит токен вместо телефона, обрабатывает текст, а на выходе вы подставляете реальное значение обратно по ключу.
Vault шифруется алгоритмом AES-256-GCM. В аудит-лог и на диск попадают только токены, а не сами значения. Даже если кто-то получит доступ к хранилищу, без ключа он увидит набор зашифрованных байтов, а не паспорта клиентов.
Обратимость работает и в надстройке для Excel и Word: замаскировали документ, отправили на обработку, вернули значения обратно в файл.
Наивное решение — набросать регулярные выражения под паспорт и ИНН. Работает, пока данные написаны «честно», цифра к цифре. Как только человек хочет обойти проверку, регексп сдаётся.
Вот что приходится ловить на практике.
Гомоглифы. Латинская «а» вместо русской «а». Визуально одно и то же, для регекспа разные символы.
Zero-width символы. Невидимые вставки внутри номера. Текст выглядит как обычный паспорт, а по байтам между цифрами мусор.
Разбивка разделителями. Номер карты, набранный через пробелы, дефисы или точки.
Закодированные куски. Base64, percent-encoding, hex, HTML-entity. Данные закодировали, чтобы спрятать, а на той стороне они раскодируются обратно.
Mask Gate решает это на этапе нормализации, самом первом в пайплайне. Сначала текст чистят от обфускации: заменяют гомоглифы, выкидывают невидимые символы, собирают разбитые номера, декодируют закодированные куски и пересканируют их заново.
Дальше идут распознаватели: regex для структурированных форматов, сканер секретов, ключевые слова, пользовательские маркеры. Потом валидаторы, которые проверяют контрольные суммы: ИНН, СНИЛС, номер карты по Луну. Как я говорю: регулярка может соврать, контрольная сумма почти нет.
Затем NER — модель natasha ищет имена, организации, адреса. Она запечена в wheel-файл, при старте ничего не скачивается. Потом повторный скан: значения, написанные словами, и разбитые на несколько сообщений. В конце порог и выбор стратегии.
Весь проход быстрый: одиночное значение обрабатывается примерно за 0,1 мс, типовое сообщение на тысячу знаков за 5 мс. На моих eval-замерах recall 95%, precision 92%. Из ста настоящих паспортов и ИНН ловятся 95, из ста срабатываний 92 по делу, 8 ложная тревога.
Проверьте, как это работает на вашем тексте, бесплатно на maskgate.ru. Вставьте сообщение с паспортом или ИНН и посмотрите, какие категории сработают.
Честно про ограничения: маскирование не спасёт от мотивированного инсайдера, стеганографии и семантического перефраза, когда паспорт пересказывают своими словами. 100% защиты не бывает. Поэтому маскирование — это один слой защиты, а не замена регламентам и здравому смыслу.
Обезличивание и маскирование часто путают. Разница в обратимости и цели.
Обезличивание делают навсегда. После него без дополнительной информации нельзя понять, чьи это данные [проверить: точное определение обезличивания из ст. 3 152-ФЗ]. Оно нужно для хранения и аналитики: данные перестают быть персональными, и с ними можно работать свободнее.
Методы там свои: удаление, замена, обобщение, перемешивание [проверить: актуальный перечень методов обезличивания и требования к ним]. Назад они не откатываются. Обезличенный набор уже не соберёшь обратно в исходные персональные данные.
Маскирование временное. Данные либо удаляются на время передачи, либо прячутся в vault с возможностью восстановить. Цель не хранить данные, а безопасно передать их наружу, например в нейросеть.
Если грубо: обезличивание про «забыть навсегда», маскирование про «спрятать на время передачи». Для нейросетей подходит именно маскирование, потому что ответ часто нужен с реальными значениями на выходе.
Маскирование и шифрование — это одно и то же? Нет. Шифрование превращает данные в нечитаемый вид, но сами данные остаются в тексте. Маскирование заменяет данные на заглушки или убирает их совсем.
Можно ли восстановить данные после redact? Нет. Redact удаляет необратимо. Если нужно вернуть значение обратно, используйте обратимую маскировку через vault.
Ловит ли маскирование данные в файлах? Да. Mask Gate понимает txt, csv, docx, xlsx, pdf, плюс распознаёт сканы и изображения через OCR.
Что будет, если маскировщик ошибётся? В Mask Gate действует принцип fail-closed: любой сбой внутри анализа — это блок передачи, а не молчаливый пропуск. Лучше лишний раз остановить, чем пропустить паспорт.
Проверьте, что утекает из вашего текста, бесплатно на maskgate.ru. Вставьте рабочий отчёт или письмо и посмотрите, какие категории сработали. Без регистрации.
Не является юридической консультацией. Проверяйте актуальную редакцию 152-ФЗ.