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

Главный ключ шифрования базы данных

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

Назначение и принцип работы

Основная цель главного ключа шифрования — централизованное управление доступом к зашифрованным данным. Вместо того чтобы шифровать каждый файл или запись отдельным ключом, который нужно где-то хранить и защищать, СУБД использует иерархию:

  1. Главный ключ (Master Key, MK) — верхний уровень. Он никогда не покидает защищённое хранилище (например, HSM) и используется только для расшифровки ключей следующего уровня.
  2. Ключи защиты данных (Data Encryption Keys, DEK) — симметричные ключи, которые непосредственно шифруют данные (таблицы, файлы, бэкапы). Они хранятся в зашифрованном виде в самой базе данных или рядом с ней.
  3. Процесс расшифровки: При обращении к данным СУБД запрашивает расшифровку DEK с помощью главного ключа. После этого DEK используется для расшифровки собственно данных. После завершения операции DEK может быть уничтожен в оперативной памяти.

Такая архитектура позволяет:

  • Менять главный ключ без перешифровки всей базы данных (достаточно перешифровать DEK новым главным ключом).
  • Ограничить риски компрометации: даже если злоумышленник получит доступ к базе данных, он не сможет расшифровать данные без главного ключа.
  • Реализовать ротацию ключей и аудит доступа к ключам.

Типы и реализации

Встроенные в СУБД (TDE — Transparent Data Encryption)

Большинство современных реляционных СУБД (Microsoft SQL Server, Oracle Database, IBM Db2, PostgreSQL с расширениями) поддерживают прозрачное шифрование данных (TDE). В этой модели главный ключ часто называется сертификатом или главным ключом базы данных (Database Master Key, DMK).

  • Microsoft SQL Server: Использует иерархию: сервисный главный ключ (Service Master Key, SMK) -> главный ключ базы данных (DMK) -> сертификат -> ключ шифрования базы данных (DEK). SMK защищается API-интерфейсом шифрования данных Windows (DPAPI).
  • Oracle Database: Использует главный ключ TDE (TDE Master Encryption Key), который хранится в файле кошелька (wallet) или HSM. Он защищает ключи табличных пространств (Tablespace Encryption Keys).
  • MySQL / MariaDB: Поддержка TDE появилась в версии 5.7 (MySQL) и 10.1 (MariaDB). Главный ключ хранится в файле ключей (keyring) или HSM.

Аппаратные модули безопасности (HSM)

HSM — это специализированные устройства, предназначенные для генерации, хранения и управления криптографическими ключами в защищённой среде. Главный ключ может генерироваться внутри HSM и никогда не покидать его в открытом виде. HSM обеспечивает:

  • Физическую защиту от взлома.
  • Высокую производительность криптографических операций.
  • Соответствие строгим стандартам (FIPS 140-2/3, PCI DSS).

Облачные сервисы управления ключами (KMS)

В облачных средах (AWS KMS, Azure Key Vault, Google Cloud KMS) главный ключ управляется провайдером. Пользователь может создать ключ управления (Customer Master Key, CMK), который используется для шифрования ключей данных (Data Key). Преимущества:

  • Автоматическая ротация.
  • Интеграция с другими сервисами (например, шифрование EBS, S3, RDS).
  • Аудит доступа через логи CloudTrail.

Управление главным ключом

Генерация

Главный ключ должен генерироваться с использованием криптостойкого генератора псевдослучайных чисел (CSPRNG). Длина ключа обычно составляет 128, 192 или 256 бит для алгоритма AES (наиболее распространённый). Для алгоритмов на эллиптических кривых (ECC) длина может быть меньше.

Ротация

Регулярная смена главного ключа (ротация) снижает риск компрометации. Процесс включает:

  1. Генерацию нового главного ключа.
  2. Расшифровку всех DEK старым ключом.
  3. Перешифровку DEK новым ключом.
  4. Удаление или архивирование старого ключа (с возможностью восстановления для чтения старых резервных копий).

Хранение и резервирование

  • Отдельное хранилище: Никогда не хранить главный ключ вместе с зашифрованной базой данных.
  • Резервные копии: Копии главного ключа должны храниться в нескольких физически изолированных местах (например, в сейфе, на HSM в другом ЦОДе). Доступ к копиям должен быть строго регламентирован.
  • Разделение секрета (Secret Sharing): Технология, при которой ключ разделяется на несколько частей (shares), каждая из которых хранится отдельно. Для восстановления ключа требуется собрать определённое количество частей (порог).

Риски и угрозы

  • Потеря главного ключа: Приводит к полной нечитаемости зашифрованных данных. Восстановление без резервной копии невозможно.
  • Компрометация главного ключа: Позволяет злоумышленнику расшифровать все данные, защищённые этим ключом. Приводит к необходимости перешифровки всей базы данных новым ключом.
  • Атаки на HSM: Хотя HSM считаются надёжными, существуют методы атак (например, анализ побочных каналов, физический взлом).
  • Человеческий фактор: Неправильная настройка доступа, утечка ключа через лог-файлы или резервные копии, ошибки при ротации.

Правовые аспекты в Российской Федерации

В Российской Федерации использование криптографических средств регулируется Федеральным законом № 149-ФЗ «Об информации, информационных технологиях и о защите информации» и приказами ФСБ России. При использовании главного ключа шифрования необходимо учитывать:

  • Сертификация: Для обработки персональных данных и государственной тайны требуется использование сертифицированных ФСБ России криптографических средств (например, ГОСТ 28147-89 или ГОСТ Р 34.12-2015). Главный ключ, используемый в таких системах, должен генерироваться и храниться в сертифицированном HSM или программном модуле.
  • Стандарты шифрования: С 2019 года в России действуют национальные стандарты шифрования (ГОСТ Р 34.12-2015 «Кузнечик» и «Магма»). Для систем, обрабатывающих персональные данные, рекомендуется использовать эти алгоритмы.
  • Требования к операторам персональных данных: Операторы обязаны обеспечивать конфиденциальность ключей шифрования и проводить их ротацию в соответствии с установленными сроками (обычно не реже одного раза в год для ключей шифрования данных).

Примеры использования

  • Шифрование баз данных банков: Для защиты счетов, транзакций и персональных данных клиентов. Главный ключ часто хранится в HSM, сертифицированном по стандартам PCI DSS.
  • Шифрование медицинских записей: Для соблюдения требований законодательства о защите врачебной тайны.
  • Шифрование резервных копий: Главный ключ используется для защиты ключей, шифрующих резервные копии баз данных.
  • Облачные хранилища: Сервисы типа Amazon RDS, Azure SQL Database, Yandex Managed Database for PostgreSQL используют главные ключи для шифрования управляемых баз данных.

Источники

  • Microsoft Docs. «Transparent Data Encryption (TDE)». SQL Server документация.
  • Oracle Help Center. «Transparent Data Encryption». Oracle Database Security Guide.
  • NIST Special Publication 800-57. «Recommendation for Key Management».
  • Федеральный закон от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации».
  • Приказ ФСБ России от 10.04.2020 № 108 «Об утверждении Требований к средствам шифрования...».
  • ГОСТ Р 34.12-2015 «Информационная технология. Криптографическая защита информации. Блочные шифры».

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

На главную BFOmetr →