Как зашифровать PartitionKey и RowKey в таблице Azure при хранении данных? - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть таблица Azure с несколькими столбцами, и я могу успешно зашифровать данные в этих столбцах.Единственная проблема, с которой я столкнулся - это то, что я не могу зашифровать PartitionKey и RowKey

Я использовал этот документ https://docs.microsoft.com/en-us/azure/storage/common/storage-client-side-encryption для настройки шифрования.Он работает нормально, за исключением PartitionKey и RowKey.

[EncryptProperty]
public new string PartitionKey { get; set; }
[EncryptProperty]
public new string RowKey { get; set; }

Пробовал выше, но он не шифрует ключи Partition и Row.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 17 февраля 2019

Шифрование ключа раздела или столбца ключа строки не поддерживается.Если бы они были зашифрованы, то было бы невозможно выполнить запрос без сканирования всей таблицы (из-за уникального IV в каждой строке).Кроме того, пакетные запросы зависят от предсказуемых ключей секционирования, а диапазонные запросы зависят от предсказуемого порядка этих ключей.

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

РЕДАКТИРОВАТЬ: я должен сказать, что этот вопрос и ответ относятся только к клиентскому шифрованию,Шифрование на стороне сервера без проблем применяется ко всем данным в состоянии покоя.

...