Как обезличить персональные данные перед отправкой в ИИ
Практика3 минРедакция Innovialabs
Коротко
Перед отправкой в ИИ найдите персональные данные (имена, телефоны, паспорта, адреса), замените их масками или псевдонимами, храните таблицу соответствий у себя и учитывайте требования о локализации данных в Узбекистане.
Короткий ответ
Обезличивание — это замена или удаление сведений, по которым можно узнать человека, до того как текст уйдёт во внешний ИИ-сервис. Рабочая схема: найти персональные данные → заменить их метками или псевдонимами → отправить запрос → при необходимости вернуть настоящие значения в ответ уже на своей стороне.
Какие данные считать персональными
К PII (personally identifiable information) обычно относят:
- ФИО, дату рождения, фото;
- номер телефона, email, адрес;
- паспортные данные, ПИНФЛ, ИНН;
- номера карт и счетов;
- медицинские сведения, данные о доходах;
- косвенные признаки: должность в маленькой компании, редкий диагноз, точное место работы.
Косвенные признаки опасны тем, что по отдельности ничего не раскрывают, а вместе указывают на конкретного человека.
Шаг 1. Обнаружение
Используйте несколько слоёв:
- Регулярные выражения — для форматных данных: телефоны, email, номера документов и карт.
- NER-модели (распознавание именованных сущностей) — для имён, адресов, организаций. Учтите, что качество на русском и узбекском языках нужно проверять отдельно.
- Словари — список ваших клиентов, сотрудников, контрагентов.
- Структурированные поля — если данные приходят из CRM, проще не отправлять лишние поля вообще.
import re
PHONE = re.compile(r"\+?998[\s-]?\d{2}[\s-]?\d{3}[\s-]?\d{2}[\s-]?\d{2}")
EMAIL = re.compile(r"[\w.+-]+@[\w-]+\.[\w.]+")
def mask(text: str) -> str:
text = PHONE.sub("[PHONE]", text)
return EMAIL.sub("[EMAIL]", text)
Шаг 2. Выбор техники
| Техника | Что делает | Когда подходит |
|---|---|---|
| Удаление | убирает значение полностью | данные не нужны для задачи |
| Маскирование | [PHONE], [NAME] | ИИ важен только тип данных |
| Псевдонимизация | «Клиент_1», «Клиент_2» | важно различать людей в тексте |
| Обобщение | «35 лет» → «30–40 лет» | нужна аналитика без точных значений |
| Синтетические данные | правдоподобные вымышленные значения | тесты и обучение |
При псевдонимизации таблица соответствий хранится только на вашем сервере. ИИ видит «Клиент_1», а ваша система после ответа подставляет настоящее имя.
Риски повторной идентификации
Даже без имён человека можно узнать:
- по сочетанию признаков: район, возраст, профессия, дата события;
- по свободному тексту, где клиент сам упоминает детали о себе;
- по уникальным событиям — редкой сделке, известному инциденту;
- если псевдонимы одинаковы во всех запросах и их можно сопоставить.
Снижайте риск: отправляйте минимум полей, обобщайте точные значения, меняйте псевдонимы между сессиями, если связь между запросами не нужна.
Требования в Узбекистане
В Узбекистане действует Закон «О персональных данных». Он, среди прочего, требует, чтобы персональные данные граждан Узбекистана, обрабатываемые с помощью информационных технологий, хранились в базах, физически размещённых на территории страны. Практические выводы:
- исходные персональные данные храните на серверах в Узбекистане;
- во внешние ИИ-сервисы отправляйте уже обезличенный текст;
- получайте согласие субъекта на обработку и фиксируйте цели;
- проверьте договор и политику хранения данных у провайдера ИИ.
Конкретную схему стоит согласовать с юристом: требования и их толкование меняются.
Частые ошибки
- Полагаться только на регулярные выражения — имена и адреса они пропускают.
- Отправлять в ИИ таблицу соответствий вместе с запросом.
- Писать исходные данные в логи до маскирования.
- Не проверять обезличивание на реальных образцах.