У меня есть конфиденциальная информация, которую я хочу зашифровать и сохранить в хранилище таблиц Azure. Честно говоря, с наивного подхода, использование одного и того же ключа AES для всех значений, вероятно, было бы достаточным, так как я бы нигде не приблизился к подходу, имеющему достаточно данных, зашифрованных для того, чтобы кто-то мог сделать какой-либо значимый криптоанализ. Но я знаю, что наилучшей практикой является ограничение использования одного и того же симметричного ключа.Шифрование на стороне клиента на базе Azure БЕЗ использования KeyVault
Недавно Microsoft выпустила шифрование на стороне клиента для хранения таблиц Azure через Azure KeyVault. Он позволяет генерировать ключ RSA и хранить его в KeyVault, и клиентская библиотека генерирует новый симметричный ключ для каждой строки в хранилище таблиц и шифрует симметричный ключ с помощью ключа RSA. Это прекрасно, потому что нет способа сделать дифференциальный криптоанализ на зашифрованном тексте, поскольку все они использовали разные ключи. Это особенно приятно, потому что их библиотека делает всю сантехнику, все, что вам нужно сделать, это захватить ключ RSA от KeyVault, украсить ваши назначенные свойства EncryptPropertyAttribute
и обрабатывать все остальное.
В этом заключается втир ... Я лично считаю, что KeyVault является тупым для использования и управления. Вы должны использовать powershell для настройки аутентификации oauth между вашим приложением и keyvault, и это выглядит как огромное количество накладных расходов для хранения одного ключа RSA. Если у нас есть сотни ключей для хранения, я могу себе представить, что это было бы намного полезнее.
Можно ли использовать весь код шифрования на стороне клиента Microsoft, не сохраняя RsaKey в KeyVault?
Это отличный способ решить эту проблему. В общем, это причина, по которой Storage использует интерфейс IKey - вы можете реализовать алгоритм пользовательских ключей или сделать что-то вроде этого и подключиться к службе пользовательских ключей. Похоже, у вас есть решение, которое вам нравится, но если вы хотите отправить вопрос [здесь] (https://github.com/Azure/azure-sdk-for-net) или отправить мне электронное письмо прямо на emgerner в microsoft dot com , мы будем рады принять обратную связь по любым вопросам удобства использования KeyVault и/или помочь вам заставить его работать в соответствии с вашими потребностями! –