【发布时间】:2015-11-12 22:14:53
【问题描述】:
我有一些敏感信息要加密并存储在 Azure 表存储中。老实说,从一种幼稚的方法来看,对所有值使用相同的 AES 密钥可能就足够了,因为我几乎不可能有足够的数据加密,以便有人进行任何有意义的密码分析。但是,我知道最好的做法是限制使用相同的对称密钥。
最近,微软通过 Azure KeyVault 发布了 Azure 表存储的客户端加密。它允许您生成 RSA 密钥并将其存储在 KeyVault 中,客户端库将为表存储中的每一行生成一个新的对称密钥,并使用您的 RSA 密钥加密对称密钥。这是完美的,因为没有办法对密文进行差分密码分析,因为它们都使用不同的密钥。这特别好,因为他们的库完成了所有的工作,您所要做的就是从 KeyVault 获取您的 RSA 密钥,用 EncryptPropertyAttribute 装饰您的指定属性,然后它会处理所有其他事情。
问题就在于此……我个人认为 KeyVault 的使用和管理有点迟钝。您必须使用 powershell 在您的应用程序和 keyvault 之间设置 oauth 身份验证,并且存储单个 RSA 密钥似乎需要大量开销。如果我们有数百个密钥要存储,我可以想象它会更有用。
有没有什么方法可以在不将 RsaKey 存储在 KeyVault 中的情况下使用 Microsoft 的所有客户端加密代码?
【问题讨论】:
标签: c# azure encryption cryptography azure-table-storage