Transparent Data Encryption
Transparent Data Encryption (TDE) — это технология шифрования данных, реализуемая на уровне подсистемы ввода-вывода (storage engine) системы управления базами данных (СУБД). Основное назначение TDE заключается в автоматическом прозрачном шифровании и дешифровании хранимых данных (как файлов базы данных, так и резервных копий) без внесения изменений в приложения, структуру таблиц, запросы или схемы данных. Ключевая особенность — шифрование происходит на уровне записи данных на диск (шифрование «на лету»), и данные остаются расшифрованными в оперативной памяти при работе СУБД, что отличает TDE от решений по защите на уровне приложений или столбцов.
Принцип работы
Технология TDE основана на двухуровневой ключевой архитектуре, которая обеспечивает защиту данных и контроль доступа к ключам. Механизм включает два основных элемента: главный ключ шифрования и ключ шифрования базы данных.
Двухуровневая ключевая архитектура
- Главный ключ шифрования базы данных (DMK — Database Master Key): симметричный ключ, защищающий все нижестоящие ключи в иерархии. DMK, в свою очередь, шифруется с помощью главного ключа сервера (SMK — Service Master Key), который создается и хранится в защищённой системой области (пример: Windows Data Protection API, или DPAPI).
- Ключ шифрования базы данных (DEK — Database Encryption Key): симметричный ключ, непосредственно обеспечивающий шифрование и дешифрование данных в файлах базы данных. DEK хранится в зашифрованном виде (с использованием DMK) и всегда защищен — он никогда не хранится в открытом виде на диске.
Процесс шифрования и дешифрования
При включении TDE для конкретной базы данных, СУБД запускает фоновую операцию чтения-записи для шифрования всех существующих страниц данных (экстентов) и файлов журнала транзакций. Новые данные, записываемые на диск (в момент контрольной точки или при нехватке буферной памяти), шифруются автоматически.
- Запись данных: при записи данных на диск, содержимое страницы данных сначала помещается в буферный пул (кэш). Перед физической записью на диск (операция
write), СУБД вызывает DEK для шифрования содержимого страницы. - Чтение данных: при чтении страницы с диска (операция
read), СУБД загружает зашифрованную страницу в буферный пул. В момент помещения в кэш происходит расшифровка страницы. Таким образом, в оперативной памяти базы данных хранятся в открытом (незашифрованном) виде.
Этот процесс полностью прозрачен для пользователя и приложения — все операции выполняются до того, как данные уйдут на диск или попадут в процесс приложения.
Классификация и разновидности
Несмотря на единый принцип, TDE может различаться в зависимости от производителя СУБД и реализуемых механизмов управления ключами:
- TDE на уровне СУБД (Монолитный подход): реализован в Microsoft SQL Server, Oracle Database, IBM Db2, PostgreSQL (расширение
pg_tdeот сообщества или сторонних вендоров). Шифрование управляется полностью внутри СУБД, ключи защищены иерархией на уровне сервера. Обеспечивает защиту на уровне файлов и резервных копий. - TDE на уровне файловой системы (Гибридный подход): использует особенности файловой системы (например, BitLocker или eCryptfs). В этом случае ключ DEK может храниться во внешнем аппаратном модуле безопасности (HSM) или в облачном Key Vault. Часто применяется в сочетании с шифрованием подсистемы хранения (Storage).
- Шифрование на уровне столбцов (Column-level Encryption): не является TDE в классическом понимании, но часто упоминается в контексте. В отличие от TDE, требует модификации приложений и схемы БД, шифрует только определённые столбцы таблиц, а не всё содержимое файлов базы данных.
Характеристики и возможности
Основные технические характеристики TDE:
- Прозрачность: не требует изменения кода приложений, схем, запросов или конфигураций.
- Автоматическое шифрование/дешифрование: операции выполняются СУБД автоматически при записи/чтении дисковых страниц.
- Защита на уровне файлов: TDE не защищает данные в оперативной памяти, от несанкционированного доступа через SQL-запросы (если злоумышленник получил доступ к СУБД как суперпользователь, TDE его не блокирует).
- Производительность: вносит задержки при интенсивных операциях ввода-вывода (IO-bound). На современных процессорах с поддержкой аппаратного ускорения шифрования (AES-NI, Intel AES New Instructions) влияние на производительность минимально (обычно снижение до 3-5% при вычислительных нагрузках, больше при операциях с большими последовательными записями).
- Поддержка аппаратных модулей: интеграция с HSM (Hardware Security Module) для безопасного хранения ключей и ускорения криптоопераций.
Применение и значение
TDE нашёл широкое применение в корпоративных системах, где требуется соблюдение нормативных требований по защите данных (комплаенс) и политикам информационной безопасности.
- Соответствие стандартам: обеспечивает выполнение требований законов и стандартов, таких как Федеральный закон №152-ФЗ «О персональных данных» (РФ), PCI DSS (индустрия платежных карт), HIPAA (здравоохранение США), GDPR (ЕС). В рамках этих нормативов TDE часто признаётся стандартным средством защиты хранимых данных (data-at-rest).
- Защита резервных копий: резервные копии баз данных, созданные с включённым TDE, также зашифрованы. Злоумышленник, похитивший файл резервной копии (
.bak), не сможет восстановить данные без ключа DEK. Это часто является основной причиной использования TDE при передаче резервных копий в облачные хранилища. - Защита от утечки файлов: физический доступ к файлам базы данных (MDF, NDF, LDF в SQL Server; .dbf, .ctl, .log в Oracle) не позволяет прочитать содержимое без наличия сертификата и закрытого ключа.
- Аудит и разграничение доступа: возможность вести журнал попыток доступа к ключам (через Extended Events или Auditing в SQL Server), что полезно для расследования инцидентов.
Примеры применения
- Microsoft SQL Server (начиная с версии 2008): TDE реализован через настройку базы данных —
ALTER DATABASE ... SET ENCRYPTION ON. Поддерживаются алгоритмы AES-128, AES-192, AES-256 и Triple DES. - Oracle Database (начиная с версии 10g Release 2): реализован как часть опции Advanced Security. Требует лицензирования. Поддерживает интеграцию с Oracle Key Vault.
- PostgreSQL (сторонние расширения, например
pg_tdeот Percona): не имеет встроенной поддержки TDE в официальном дистрибутиве (по состоянию на 2025 год возможности появились через коммерческие версии и расширения). - MariaDB (Enterprise-версия): поддерживает TDE через плагин
file_key_managementили использование встроенной поддержки в AWS RDS.
Ограничения и критика
Несмотря на все преимущества, TDE не является универсальным средством защиты данных.
- Отсутствие защиты от доступа через СУБД: если злоумышленник получил полный доступ к экземпляру СУБД (например, через учётную запись
sysadminв SQL Server илиSYS/SYSTEMв Oracle), TDE не помешает ему прочитать любые данные. Ключи для расшифровки уже загружены в память сервера. - Уязвимость в оперативной памяти: данные в процессе обработки (в кэше, буферах, временных таблицах, переменных) не шифруются. TDE не защищает от атак, позволяющих читать память процесса СУБД (например, атаки на температурные следы или уязвимости в гипервизоре).
- Сложность управления ключами: потеря ключа DEK или сертификата приводит к полной и необратимой недоступности данных. Особенно остро эта проблема стоит при миграции баз между серверами, когда необходимо корректно перенести иерархию ключей.
- Влияние на резервное копирование и отказоустойчивость: при включении TDE размер сжатых резервных копий может увеличиться (зашифрованные данные слабее сжимаются). Для Always On Availability Groups (SQL Server) или Oracle Data Guard требуется корректная передача ключей на реплики.
Источники
- Microsoft Learn. «Transparent Data Encryption (TDE)» (документация к SQL Server и Azure SQL).
- Oracle Documentation. «Oracle Database Advanced Security Guide».
- IBM Knowledge Center. «Transparent data encryption in IBM Db2 for Linux, UNIX, and Windows».
- Федеральный закон №152-ФЗ «О персональных данных» (РФ).
- Стандарт PCI DSS v4.0. «Requirement 3: Protect Stored Account Data».
- Percona Blog. «Transparent Data Encryption in PostgreSQL with pg_tde».
- Стандарт ГОСТ Р 51583-2014 (защита информации в базах данных).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →