Windows Azure中的密钥管理

Rob*_*bar 15 cryptography azure

我对如何在Windows Azure中存储密钥(用于数据加密)感到困惑.

根据以下两个链接(#1,#2),建议将密钥/密钥库存储在Windows Azure存储中:

在Windows Azure存储服务中存储您自己的密钥库是保留一些秘密信息的好方法,因为您可以依赖这些数据在多租户环境中是安全的,并由您自己的存储密钥保护.

但是"开发Windows Azure应用程序的安全最佳实践"(#3)建议不要在Windows Azure中存储任何与密钥相关的材料:

此外,开发人员不应将密钥或任何密钥材料上传到Windows Azure存储,无论他们如何谨慎地隐藏它.如果任何计算机或存储服务遭到破坏,可能会导致加密密钥泄露.

在Windows Azure中存储加密密钥的最佳方法是什么?

Stu*_*egg 11

你会从我对第一个链接的评论中看到我同意你的疑虑.:)

除了自己的证书存储之外,Azure没有安全存储密钥的安全方法.这是一篇关于使用此方法的文章:

字段注意:在Windows Azure应用程序中使用基于证书的加密

您会注意到我也对该文章的缺点发表了评论,并链接到这个问题:

使用c#读取azure ServiceConfiguration文件的证书部分

在此项目中可以找到使用Azure的内置证书存储来加密AES密钥(避免RSA对加密数据长度的限制,同时保持AES密钥安全)的示例:

Codeplex:通过属性进行Azure表加密

SymmetricKeyHelper在EncryptDecrypt项目类是特别感兴趣的.

感谢@breischl提及它,以及他对该项目的贡献.

  • AzureTableEncrypt项目以这种方式使用证书存储.虽然它实际上使用证书来加密AES密钥,然后将其存储在Azure表存储中.所以它有点混合.http://azuretableencrypt.codeplex.com/documentation (3认同)

Rah*_*ath 7

最近发布的Azure Key保管库服务可能非常适合此问题.这已经引入,因此可以在中心位置管理密钥,并且可以容易地控制访问.它还支持HSM支持的服务,使其非常安全.

以下是Azure Key Vault入门的一个技巧