Резюме
Разработка Virtual Data Room (VDR) для инвестиционного бутика. Безопасный обмен конфиденциальными документами при M&A сделках с защитой от утечек.
Ключевые бизнес-результаты:
- Безопасность: Envelope Encryption (AES-256-GCM) — компрометация хранилища не даёт доступа к данным
- Anti-Leak: динамические водяные знаки позволяют идентифицировать источник утечки
- Compliance: WORM-хранение логов обеспечивает юридическую значимость аудита
- Performance: рендеринг PDF за 150мс (Rust) вместо 3-5 сек (Python)
1. Проблематика: Векторы угроз в M&A
1.1 Бизнес-контекст
Заказчик — инвестиционный бутик, сопровождающий сделки M&A среднего сегмента. При due diligence стороны обмениваются документами особой важности: финансовая отчётность, контракты, интеллектуальная собственность.
1.2 Требования заказчика к инфраструктуре
Заказчик сформулировал требования, которые исключали использование готовых SaaS-решений:
Таблица 1. Требования заказчика
| Требование | Обоснование |
|---|---|
| Ключи шифрования в контуре заказчика | Политика ИБ: данные сделок не должны зависеть от внешнего вендора |
| Логи аудита в собственном хранилище | Юридическая значимость логов для возможных споров |
| Данные в юрисдикции РФ | Соответствие 152-ФЗ, внутренние политики |
| Идентификация источника утечки | Персонализированные водяные знаки для каждого просмотра |
1.3 Модель угроз
Таблица 2. Матрица угроз и контрмер
| Вектор атаки | Описание | Контрмера |
|---|---|---|
| Storage Breach | Физическая кража дисков из ЦОД | Envelope Encryption: данные бесполезны без ключей из Vault |
| Photo Leak | Фотографирование экрана | Dynamic Watermarks: ФИО + IP + Timestamp |
| Admin Abuse | Сисадмин удаляет логи доступа | WORM Storage: Object Lock на 5 лет |
| Evil Admin (Key Access) | Единоличный доступ к ключам | Quorum Authorization (схема Шамира 3-из-5) |
| Session Hijack | Перехват токена авторизации | Short-lived JWT + Device Fingerprint |
| MitM Attack | Перехват трафика | mTLS + Certificate Pinning |
2. Архитектурные решения
2.1 Эшелонированная защита
Рис. 1. Архитектура Secure VDR. Plaintext DEK существует только в памяти Crypto Service. Документ никогда не передаётся клиенту целиком — Rust-ядро нарезает страницы на зашифрованные графические тайлы (Zero-Footprint Viewer). Все действия пользователей записываются в WORM-хранилище.
2.2 Обоснование технологического стека
2.2.1 Envelope Encryption vs Single Key
Таблица 3. Сравнение подходов к шифрованию
| Аспект | Single Master Key | Envelope Encryption |
|---|---|---|
| Компрометация ключа | Все данные утекают | Только 1 файл |
| Ротация ключей | Требует перешифрования всего | Только Master Key |
| Производительность | Один bottleneck | Параллельное шифрование |
| Audit | Сложно отследить доступ к ключу | Детальный лог на каждый DEK |
Выбор модели шифрования
Envelope Encryption
Каждый файл шифруется уникальным DEK. Компрометация одного ключа = утечка одного файла.
Transparent Data Encryption (TDE)
Защищает только от кражи дисков, но не от компрометации app-сервера.
2.2.2 Rust vs Python для Watermarking
Таблица 4. Сравнение производительности рендеринга
| Операция | Python (PyMuPDF) | Rust (pdf-rs + image) | Улучшение |
|---|---|---|---|
| Parse PDF (10 pages) | 450ms | 45ms | 10× |
| Rasterize page | 800ms | 80ms | 10× |
| Apply watermark | 200ms | 15ms | 13× |
| Total per page | 1450ms | 140ms | 10× |
Выбор языка для Watermarking
Rust (pdf-rs + image)
10× быстрее Python для latency-критичного рендеринга. Каждая страница = ожидание пользователя.
Go
PDF библиотеки в Go менее зрелые и медленнее Rust.
2.2.3 HashiCorp Vault vs AWS KMS
Таблица 5. Сравнение KMS решений
| Критерий | AWS KMS | HashiCorp Vault |
|---|---|---|
| Self-Hosted | Только AWS | On-Premise |
| Transit Encryption | Да | Да |
| Dynamic Secrets | Нет | Да |
| PKI Infrastructure | Нет | Да |
| Audit Logging | CloudTrail | Custom |
| Cost | Usage-based billing | Self-hosted |
| Data Sovereignty | Данные за рубежом | Мастер-ключи в юрисдикции заказчика |
Выбор KMS
HashiCorp Vault
Мастер-ключи физически в юрисдикции заказчика. On-premise + PKI интеграция.
AWS KMS
Данные хранятся за рубежом, ограниченный контроль.
3. Механики безопасности
3.1 Envelope Encryption Implementation
Рис. 2. Envelope Encryption. Plaintext DEK никогда не покидает RAM и не записывается на диск.
Ключевые аспекты реализации:
- DEK генерируется внутри Vault (Transit Secret Engine) — Vault возвращает plaintext (для шифрования) и ciphertext (для хранения)
- Потоковое шифрование — файл не загружается целиком в RAM
- Plaintext DEK безопасно уничтожается после использования (Secure Wipe + mlock)
- Метаданные (wrapped DEK, nonce) хранятся отдельно от зашифрованного blob
3.2 Dynamic Watermarking (Rust)
Производительность: Рендеринг страницы PDF с водяным знаком за ~140ms (vs 3-5 сек на Python):
- Парсинг PDF: 45ms
- Растеризация в изображение (150 DPI): 80ms
- Наложение диагональной сетки водяных знаков (15% opacity): 15ms
Формат водяного знака: {ФИО} | {IP} | {Timestamp UTC} | {Document ID} — позволяет идентифицировать источник утечки при фотографировании экрана.
3.3 Quorum Authorization (Защита от «Злого Админа»)
Для доступа к мастер-ключам (Unseal Vault) требуется физическое присутствие нескольких офицеров безопасности. Используется схема разделения секрета Шамира:
Принцип: Используется схема разделения секрета Шамира (3-of-5). Мастер-ключ разделён на 5 частей, распределённых между ответственными лицами из разных подразделений.
Гарантия: Единоличный доступ к расшифровке данных исключён математически.
3.4 WORM Audit Logging
Механика: Audit events записываются в S3 с Object Lock в Compliance Mode (5 лет). Записи невозможно удалить даже с root-правами — юридическая значимость логов гарантирована.
4. Результаты и метрики
4.1 Реализация требований безопасности
Таблица 6. Защита от угроз
| Угроза | Контрмера |
|---|---|
| Кража БД | Envelope Encryption — данные бесполезны без ключей из Vault |
| Скриншот/Фото | Персонализированные водяные знаки (ФИО + IP + Timestamp) |
| Удаление логов | WORM-хранение (Object Lock 5 лет) |
| Evil Admin | Quorum 3-of-5 по схеме Шамира |
4.2 Производительность
Таблица 7. Latency по операциям
| Операция | Target | Actual |
|---|---|---|
| Document List | менее 200 мс | 85ms |
| PDF Preview (first page) | менее 500 мс | 180ms |
| PDF Navigate (next page) | менее 200 мс | 140ms |
| Search | менее 1 сек | 450ms |
| Upload (100MB) | менее 30 сек | 12s |
4.3 Бизнес-результаты
- M&A Сделки: Успешно сопровождено несколько сделок
- Security Audit: Независимый пенетрационный тест пройден без критических замечаний
- Compliance: Соответствие 152-ФЗ и внутренним политикам ИБ
- Zero Incidents: 0 утечек за 18 месяцев эксплуатации
5. Заключение и рекомендации
Архитектура на базе Envelope Encryption, Rust-based rendering и WORM audit logs — рабочий подход к задачам защищённого документооборота.
Ключевые выводы:
- Envelope Encryption — обязательный паттерн для защиты данных at rest
- HashiCorp Vault обеспечивает централизованное управление ключами и аудит
- Rust необходим для real-time watermarking с acceptable latency
- WORM Storage — надёжный способ обеспечить юридическую значимость логов
- Defense in Depth — комбинация мер снижает риск успешной атаки
Рекомендация: Данная архитектура применима к любым сценариям обмена конфиденциальными документами: юридические фирмы, аудиторы, госзакупки, IP licensing.