Аналитик видит структуру, суммы, даты и связи как есть. ФИО, паспорт, ИНН, телефон, номер счёта — только под маской. Сырьё не покидает контур банка, и банк проверяет это сам.
Чтобы снять аналитику или разобрать структуру АБС, внешней команде нужен доступ к базе. Но в базе — персональные данные и банковская тайна: их нельзя ни выносить за периметр, ни показывать подрядчику.
Обычный ответ — «сделаем обезличенную копию» — упирается в терабайты и в месяцы ручной разметки тысяч таблиц. И почти всегда остаются дыры, через которые настоящее значение всё же вытаскивается.
Слева — как лежит в боевой базе. Справа — что отдаёт вьюха ANON той же строки. Прогон на открытом банковском датасете Berka.
| client_id | C00000001 |
| ФИО | Jana Novakova |
| SSN / ИНН | 705128 / 1234 |
| телефон | +420 603 118 227 |
| jana.n@email.cz | |
| адрес | Praha, Korunní 12 |
| дата рожд. | 1990-05-12 |
| client_id | C00000001 — ключ цел |
| ФИО | NM_9C26FB4B5CED |
| SSN / ИНН | NM_A1F0… |
| телефон | 999-999-9999 |
| NM_6DB0E97D9C | |
| адрес | ∅ пусто |
| дата рожд. | 1990 — только год |
Личность скрыта, а внутренний ключ client_id остаётся — связи между таблицами и отчёты по ним не рвутся.
Аналитик пишет привычный SQL. Он не знает ключа, не вызывает функцию токенизации, не читает базовые таблицы — их в его правах нет. Отдаётся только то, что во вьюхе.
SELECT client_id, full_name, phone, birth_date FROM anon.client WHERE rownum <= 3;
| client_id | full_name | phone | birth |
| C00000001 | NM_9C26FB… | 999-999-9999 | 1990 |
| C00000002 | NM_E14D48… | 999-999-9999 | 1965 |
| C00000003 | NM_218770… | 999-999-9999 | 1960 |
до копейки
Отчётность сходитсяСуммы, даты и балансовые счета во вьюхах настоящие — маскированы только личности. Штатный отчёт, снятый с ANON, совпадает с боевым. Сверка оборота на 1 056 320 проводках:
У нашей учётки нет ни одного права на рабочие схемы. Проверяется одним запросом по правам.
Единственный, кто видит сырьё, — владелец вьюх, а под ним нельзя залогиниться. Вьюхи при этом работают.
Штатный аудит СУБД пишет каждый наш запрос. Банк видит, что уходило, своим инструментом.
Если отчёт категоризирует проводку по словам в назначении, поле нельзя занулять. Структурные реквизиты — ИНН, телефон, счёт — вырезаются по форме, а классифицирующие слова остаются. Имя в прозе требует локальной модели в контуре.
| Оплата пенсия, Иванов, ИНН 30512345678901, тел +998901234567 |
| Оплата пенсия, Иванов, ИНН [скрыто], тел [скрыто] |
Батарея проверок от имени учётки аналитика. На стенде все пройдены:
VM в контуре, Linux, 16 ГБ памяти с запасом. Тяжёлая база — на стороне банка, наш сервер только гоняет сессию разбора.
Копия из дампа под вьюхи; на время сборки — права собрать ANON, после — только чтение ANON.
Включённый штатный аудит на нашу учётку и рубильник выхода наружу — у банка.