Описание тега always-encrypted
Always Encrypted - это функция Microsoft SQL Server 2016 и базы данных SQL Azure, предназначенная для защиты конфиденциальных данных. Это позволяет клиентским приложениям шифровать конфиденциальные данные, не раскрывая ключи шифрования ядру базы данных, поэтому к данным нельзя получить доступ ни в полете, ни в состоянии покоя.
См. MSDN для получения более подробной информации.
Ключи шифрования
В основном это сосредоточено на 2 ключах
- Главный ключ столбца (CMK)
- Ключ шифрования столбца (CEK)
CMK
Создает column master key
объект метаданных в базе данных. Запись метаданных главного ключа столбца, представляющая ключ, хранящийся во внешнем хранилище ключей, который используется для защиты (шифрования) ключей шифрования столбца при использовании функции Always Encrypted (Database Engine). Главные ключи нескольких столбцов позволяют ротацию ключей; периодически меняя ключ для повышения безопасности. Вы можете создать главный ключ столбца в хранилище ключей и соответствующий ему объект метаданных в базе данных с помощью обозревателя объектов в SQL Server Management Studio или PowerShell.
CEK
Создает ключ шифрования столбца с начальным набором значений, зашифрованный указанным column master keys
. Это операция с метаданными. CEK может иметь до двух значений, что позволяет ротацию главного ключа столбца. Создание CEK требуется перед тем, как любой столбец в базе данных можно будет зашифровать с помощью функции Always Encrypted (Database Engine). CEK также можно создать с помощью SQL Server Management Studio.
Перед созданием CEK вы должны определить CMK by using Management Studio or the CREATE COLUMN MASTER KEY statement
.
Типы шифрования
- Детерминированное шифрование
- Рандомизированное шифрование
Детерминированное шифрование
Детерминированное шифрование всегда генерирует одно и то же зашифрованное значение для любого заданного значения открытого текста. Использование детерминированного шифрования позволяет указатьlookups, equality joins, grouping and indexing
по зашифрованным столбцам. Тем не менее, но также может позволить неавторизованным пользователям угадывать информацию о зашифрованных значениях, исследуя шаблоны в зашифрованном столбце, особенно если существует небольшой набор возможных зашифрованных значений, таких как Истина / Ложь или регион Север / Юг / Восток / Запад. Детерминированное шифрование должно использовать сопоставление столбцов с порядком сортировки binary2 для символьного столбца
Рандомизированное шифрование
Рандомизированное шифрование использует метод шифрования данных в less predictable manner
. Рандомизированное шифрование более безопасно, но предотвращаетsearching, grouping, indexing, and joining
по зашифрованным столбцам.