Ротация ключей шифрования для Always Encrypted
Недавно в одном из постом мы говорили о процессе ротации ключей шифрования. Это всего лишь одна из тех задач регулярного обслуживания, которые нужно делать время от времени, чтобы ваше шифрование было сильным в долгосрочной перспективе. Одним типом ротации, который мы не описали в прошлый раз, была ротация для Always Encrypted, новейшей формы шифрования SQL Server.
Если вы помните, у Always Encrypted есть два связанных ключа: мастер-ключ столбца и ключ шифрования столбца. Клавиша шифрования столбцов (CEK) является симметричным ключом, который хранится в SQL Server. Как и другие симметричные клавиши, CEK не изменяется во время ротации. С другой стороны, главный ключ столбца (CMK) - это сертификат, аналогичный сертификатам, которые мы использовали для прозрачного шифрования данных и шифрования внутри столбца, и поэтому его необходимо регулярно поворачивать. Самое большое различие заключается в том, что CMK хранится за пределами SQL Server в хранилище сертификатов Windows по умолчанию, поэтому администраторы баз данных могут нуждаться в помощи от своих администраторов Windows или администраторов безопасности.
Первым шагом вращения является создание нового ключа. SQL Server Management Studio обеспечивает удобный пользовательский интерфейс для этого в разделе [имя вашей базы данных]>Security > Always Encrypted Keys > Column Master Keys в в обозревателе объектов Object Explorer.
Дайте новому ключу имя, затем выберите местоположение для ключа. По умолчанию вы увидите два варианта: Windows Certificate Store – Current User and Windows Certificate Store – Local Machine. Для общей среды (например, производства) вы хотите поместить новый ключ в хранилище локального компьютера, чтобы все пользователи имели к нему доступ; для лабораторной среды вы можете использовать любой. После того, как вы выбрали местоположение, нажмите Generate Certificate, расположенный под списком ключей в правом нижнем углу. Когда новый ключ появится в списке, нажмите «ОК», чтобы сохранить изменения.
Теперь, чтобы повернуть ключ, откройте Object Explorer до [имя вашей базы данных] > Security > Always Encrypted Keys > Column Master Keys , затем щелкните правой кнопкой мыши по ключу, который вы хотите повернуть.
Выберите Rotate, затем выберите новый ключ из следующего мастера. Через секунду или два окно должно закрыться, показывая, что ротация завершена.
Наконец, не забудьте дублировать свой новый ключ на всех клиентских машинах, которые должны иметь возможность расшифровывать данные, защищенные Always Encrypted.
Обратите внимание, что все это также можно автоматизировать с помощью PowerShell. У Microsoft есть отличная статья по этому вопросу в Microsoft Docs, содержащая инструкции и примеры для сред, как с разделением обязанностей, так и без них.