Открыть сервис

Transparent Data Encryption (TDE)

Transparent Data Encryption (TDE) — это технология шифрования баз данных, при которой данные автоматически шифруются при записи на диск и дешифруются при чтении в оперативной памяти, без необходимости изменения приложений, схем базы данных или кода. TDE обеспечивает защиту данных на уровне файлов операционной системы, предотвращая несанкционированный доступ к информации в случае кражи носителей, файлов резервных копий или дампов базы данных.

История и развитие

Технология TDE была впервые представлена корпорацией Microsoft в 2008 году в составе SQL Server 2008. Основной целью разработки было обеспечение соответствия требованиям различных регуляторов (например, PCI DSS, HIPAA, GDPR) по защите персональных данных и конфиденциальной информации без необходимости внесения изменений в существующие приложения. В 2011 году аналогичная функциональность появилась в Oracle Database 11g, а затем и в других СУБД: IBM Db2 (2012), PostgreSQL (с расширением pgcrypto, 2013, и нативным TDE в версии 15, 2022), MySQL (с расширением Transparent Data Encryption в версии 5.7, 2015, и нативным TDE в версии 8.0, 2018), а также в СУБД российского производства, таких как СУБД «Ред База Данных» (на основе PostgreSQL) и «Линтер».

Принцип работы

TDE работает на уровне страниц данных (или блоков) базы данных. Когда приложение выполняет запрос на чтение, СУБД считывает зашифрованные страницы с диска, дешифрует их в оперативной памяти и предоставляет приложению в открытом виде. При записи происходит обратный процесс: страницы шифруются перед записью на диск. Шифрование и дешифрование происходят прозрачно для приложения — оно не знает о наличии шифрования и не требует изменений.

Ключевая архитектура

TDE использует иерархическую систему ключей:

  1. Ключ шифрования базы данных (Database Encryption Key, DEK)симметричный ключ, который непосредственно шифрует данные в базе. DEK хранится в зашифрованном виде в заголовке файла базы данных.
  2. Сертификат или асимметричный ключ — используется для шифрования DEK. Этот сертификат или ключ хранится в главной базе данных (master) и защищается паролем или аппаратным модулем безопасности (HSM).
  3. Корневой ключ (в случае HSM) — хранится в аппаратном модуле безопасности и защищает сертификат уровня экземпляра.

Процесс шифрования

  1. При создании базы данных с TDE генерируется DEK.
  2. DEK шифруется с помощью сертификата, хранящегося в главной базе данных.
  3. Зашифрованный DEK сохраняется в заголовке файла базы данных.
  4. При запуске экземпляра СУБД сертификат дешифруется (с помощью пароля или HSM), затем с его помощью дешифруется DEK.
  5. DEK помещается в оперативную память и используется для шифрования/дешифрования страниц данных.

Классификация и виды

TDE можно классифицировать по способу реализации и области применения:

По способу реализации

  • Нативное TDE (встроенное в СУБД) — реализовано на уровне ядра СУБД. Примеры: Microsoft SQL Server TDE, Oracle TDE, PostgreSQL TDE (начиная с версии 15), MySQL TDE (начиная с версии 8.0).
  • Расширения и сторонние модули — реализованы в виде расширений для СУБД, не имеющих встроенной поддержки TDE. Примеры: pgcrypto для PostgreSQL (требует ручного управления ключами), расширение pg_tde для PostgreSQL (от CyberTec, входит в состав СУБД «Ред База Данных»).
  • Шифрование на уровне файловой системы (FDE) — шифрование на уровне операционной системы (например, BitLocker, LUKS). Не является TDE, так как не различает данные и метаданные, и не защищает от атак на уровне СУБД (например, чтение данных через уязвимости в СУБД).

По области применения

  • Шифрование всей базы данных — шифруются все таблицы, индексы, представления и системные таблицы. Наиболее распространенный вариант.
  • Шифрование отдельных таблиц или табличных пространств — доступно в некоторых СУБД (например, Oracle, PostgreSQL). Позволяет шифровать только критичные данные, экономя ресурсы.
  • Шифрование резервных копий — некоторые СУБД (например, SQL Server) позволяют шифровать резервные копии отдельно от основной базы данных.

Характеристики и особенности

Преимущества

  • Прозрачность для приложений — не требуется изменять код, схемы или запросы.
  • Защита на уровне файлов — данные защищены от кражи носителей, файлов баз данных, резервных копий и дампов.
  • Соответствие требованиям регуляторов — помогает выполнить требования по шифрованию данных в покое (data at rest).
  • Простота управления — управление ключами централизовано, не требует администрирования на уровне приложений.

Недостатки и ограничения

  • Снижение производительности — шифрование и дешифрование требуют вычислительных ресурсов процессора. Обычно снижение производительности составляет 3–15%, но может быть выше на слабых системах или при интенсивной записи.
  • Не защищает от всех угроз — TDE не защищает от атак на уровне СУБД (например, SQL-инъекции), от атак на уровне операционной системы (если злоумышленник имеет доступ к памяти), от атак на уровне приложений (если пользователь имеет права на чтение данных).
  • Сложность управления ключами — потеря ключей или сертификатов делает данные недоступными. Требуется надежное резервное копирование и хранение ключей.
  • Не защищает данные в оперативной памяти — данные в памяти остаются в открытом виде. Для защиты данных в памяти требуется дополнительное шифрование (например, Intel SGX, AMD SEV).
  • Ограничения на сжатие — зашифрованные данные плохо сжимаются, поэтому сжатие резервных копий может быть неэффективным.

Применение

TDE широко применяется в различных отраслях и сценариях:

  • Финансовый сектор — защита данных о банковских счетах, транзакциях, персональных данных клиентов. Соответствие требованиям PCI DSS, ЦБ РФ.
  • Здравоохранение — защита медицинских записей, персональных данных пациентов. Соответствие требованиям HIPAA (США), 152-ФЗ (РФ).
  • Государственные и муниципальные системызащита персональных данных граждан, государственной тайны (с использованием сертифицированных СКЗИ).
  • Электронная коммерция — защита данных о заказах, платежных данных, персональных данных покупателей.
  • Облачные среды — защита данных в облачных базах данных (например, Amazon RDS, Azure SQL Database, Яндекс.Облако) от доступа провайдера.

Примеры реализации

Microsoft SQL Server

TDE в SQL Server шифрует всю базу данных на уровне страниц. Включается через T-SQL:

``sql CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE MyServerCert; ALTER DATABASE MyDatabase SET ENCRYPTION ON; ``

Oracle Database

Oracle TDE поддерживает шифрование на уровне табличных пространств (TDE Tablespace Encryption) и на уровне столбцов (TDE Column Encryption). Включается через параметры ENCRYPT при создании или изменении табличного пространства.

PostgreSQL

Начиная с версии 15, PostgreSQL поддерживает нативное TDE через расширение pg_tde. В более ранних версиях используется расширение pgcrypto для ручного шифрования отдельных столбцов.

СУБД «Ред База Данных» (Россия)

СУБД «Ред База Данных» (на основе PostgreSQL) включает встроенную поддержку TDE с использованием сертифицированных СКЗИ (например, КриптоПро CSP). Шифрование прозрачно для приложений и соответствует требованиям ФСБ России.

Критика и альтернативы

TDE критикуется за то, что не защищает данные в оперативной памяти и от атак на уровне СУБД. Альтернативами TDE являются:

  • Шифрование на уровне приложений — шифрование данных до передачи в СУБД. Обеспечивает защиту на всех этапах, но требует изменений в коде.
  • Шифрование на уровне файловой системы (FDE) — шифрование всего диска. Проще в управлении, но не защищает от атак на уровне СУБД.
  • Аппаратное шифрование (HSM, TPM) — использование специализированных устройств для хранения ключей и выполнения операций шифрования. Повышает безопасность, но увеличивает стоимость.

Источники

  1. Microsoft Docs. Transparent Data Encryption (TDE). SQL Server.
  2. Oracle Help Center. Transparent Data Encryption (TDE). Oracle Database.
  3. PostgreSQL Documentation. Transparent Data Encryption (TDE). PostgreSQL 15.
  4. MySQL Documentation. Transparent Data Encryption (TDE). MySQL 8.0.
  5. Документация СУБД «Ред База Данных». Transparent Data Encryption.
  6. PCI Security Standards Council. PCI DSS Requirements.
  7. Федеральный закон «О персональных данных» № 152-ФЗ.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →