Шифрование базы данных


Шифрование базы данных — использование технологии шифрования для преобразования информации, хранящейся в базе данных (БД), в шифротекст, что делает её прочтение невозможным для лиц, не обладающих ключами шифрования[1].

Также называемое «прозрачным» (англ. Transparent Database Encryption, TDE). Данная технология, применяется, например, в продуктах Microsoft и Oracle для шифрования и дешифрования ввода-вывода файлов БД. Данные шифруются перед записью на диск и дешифруются во время чтения в память, что решает проблему защиты «неактивных» данных, но не обеспечивает сохранность информации при передаче по каналам связи или во время использования. Преимуществом TDE является то, что шифрование и дешифрование выполняются прозрачно для приложений, то есть их модификация не требуется[3][4][5].

TDE применяется для файлов БД и журнала транзакций на уровне страниц. Страницы шифруются с помощью специального симметричного ключа шифрования базы данных (англ. Database Encryption Key), защищённого сертификатом, который хранится в БД master и шифруется её главным ключом, или асимметричным ключом, защищённым модулем расширенного управления ключами (англ. Extensible Key Manager, EKM). Применение TDE не увеличивает размер зашифрованной БД, а влияние на производительность незначительно[3].

TDE применяется для файлов БД на уровне столбцов. Для таблицы, содержащей выбранные к шифрованию столбцы, создаётся симметричный ключ шифрования, защищённый главным ключом, который хранится в безопасном месте за пределами БД, называемом бумажником (англ. Wallet). Зашифрованные ключи таблиц содержатся в словаре данных (англ. Data Dictionary)[4].

Важно отметить, что традиционные методы шифрования баз данных обычно шифруют и дешифруют содержимое БД, администрирование которой обеспечивается системой управления базами данных, работающей поверх операционной системы[6]. Это уменьшает защищённость информации, так как зашифрованная БД может быть запущена на открытой или потенциально уязвимой операционной системе. Например, Microsoft использует технологию шифрования файловой системы (англ. Encrypting File System, EFS), которая обеспечивает шифрование на уровне файлов. Каждый объект шифруется с помощью уникального ключа шифрования файлов (англ. File Encryption Key), защищённого сертификатом пользователя. Этот сертификат может быть составным, что даёт возможность получить доступ к файлу больше чем одному пользователю. Из-за расширения сферы шифрования, использование EFS может снизить производительность и усложнить администрирование, так как системному администратору требуется доступ к операционной системе для использования EFS[7][8].