Как лучше всего защитить ключи шифрования для SQL Always Encrypted - PullRequest
0 голосов
/ 19 февраля 2020

Вот мое требование:

  • База данных, в которой хотя бы 1 столбец хотя бы на 1 таблице является чувствительной, и должна быть зашифрована
  • Администраторы баз данных и люди, обращающиеся к базе данных с помощью SSMS, должны не сможет просматривать значения открытого текста столбцов
  • . Будет клиентское приложение asp. net, которое сможет извлекать и расшифровывать данные, а также вставлять и обновлять таблицы (и). )

Итак, если я включу всегда зашифрованные на необходимые столбцы, любой нормальный запрос будет получать зашифрованный текст для этих столбцов. Хорошо.

Клиентское приложение будет иметь Column Encryption Setting=Enabled в строке подключения, поэтому будет иметь возможность шифровать и дешифровать данные.

Но что мешает кому-то подключиться к SSMS и включить такое же шифрование столбцов установка? Затем они могут выбрать из таблицы и увидеть открытый текст.

Короче говоря, как применить разрешения, чтобы только люди в указанной группе AD c, за исключением администраторов баз данных, имели разрешения на доступ к ключам шифрования расшифровать данные?

Это так же просто, как убедиться, что IIS, в котором работает приложение. net, не на том же сервере, и создать сертификат главного ключа столбца только на этом компьютере IIS?

1 Ответ

0 голосов
/ 01 апреля 2020

Существует два ключа, которые создаются главным ключом столбца (CMK) и ключом шифрования столбца (CEK).

Главный ключ столбца хранится только на стороне приложения, а ключ шифрования столбца будет храниться на SQL на стороне сервера.

В результате, когда клиент имеет CMK, Вы можете активировать шифрование, изменив строку подключения, и драйвер будет искать этот CMK. Без этого данные не могут быть расшифрованы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...