Безопасность, спроектированная как фундамент

Мы провели независимый аудит логики ещё до запуска. Каждое решение в списке — это закрытая в коде угроза, а не теоретический пункт в чек-листе.

AES-256-GCM для найденных данных

Никаких оригиналов ПДн в открытом виде. Только солёный hash для поиска повторов и зашифрованный blob с версионированием ключа.

HMAC-цепочка аудита

Каждая запись подписана от предыдущей. Разрыв цепочки виден сразу — отчёт целостности встроен в UI.

RLS на уровне БД

Изоляция данных тенантов реализована политиками Postgres, а не на уровне приложения. Невозможно «забыть» where org_id.

Префиксные ключи + bcrypt

Ключи `ain_live_{role}_{32hex}`. В БД лежит bcrypt-хеш и 8-символьный префикс для индекса. Поиск без раскрытия секрета.

Защита OCR от DoS

Лимиты до OCR: 5 MB, 4096×4096, 3 изображения / запрос. SHA-256 дедупликация. Per-org rate-limit.

Проверка потока без слепых зон

Sliding window 50 символов + stateful Aho-Corasick. Сущности на границе чанков не теряются.