我对如何在 Windows Azure 中存储密钥(用于数据加密)有点困惑。
根据以下两个链接(#1 http://msdn.microsoft.com/en-us/magazine/ee291586.aspx, #2 http://blogs.msdn.com/b/usisvde/archive/2012/03/15/windows-azure-security-best-practices-part-7-tips-tools-coding-best-practices.aspx),建议将密钥/密钥库存储在Windows Azure存储中:
在 Windows Azure 存储服务中存储您自己的密钥库是保留某些秘密信息的好方法,因为您可以依赖此数据在多租户环境中的安全性并由您自己的存储密钥保护。
但是“开发 Windows Azure 应用程序的安全最佳实践”(#3 http://download.microsoft.com/download/7/3/e/73e4ee93-559f-4d0f-a6fc-7fec5f1542d1/securitybestpracticeswindowsazureapps.docx)建议不要在 Windows Azure 中存储任何密钥相关材料:
另外,开发者不应上传
Windows Azure 存储的密钥或任何密钥材料,无论他们隐藏起来有多小心。如果
任何计算机或存储服务受到损害,都可能导致加密密钥泄露。
在 Windows Azure 中存储加密密钥的最佳方法是什么?
您将从我在第一个链接中的评论中看到我同意您的担忧。 :)
除了自己的证书存储之外,Azure 没有安全的方式来存储密钥。这是一篇关于使用此方法的文章:
字段注释:在 Windows Azure 应用程序中使用基于证书的加密 http://blogs.msdn.com/b/windowsazure/archive/2011/09/07/field-note-using-certificate-based-encryption-in-windows-azure-applications.aspx
您会注意到我也评论了该文章的缺点,链接到这个问题:
使用 C# 读取 azure ServiceConfiguration 文件的证书部分 https://stackoverflow.com/questions/11288233/read-azure-serviceconfiguration-files-certificate-section-using-c-sharp
可以在此项目中找到使用 Azure 内置证书存储来加密 AES 密钥(避免 RSA 对加密数据长度的限制,同时保持 AES 密钥安全)的示例:
Codeplex:通过属性进行 Azure 表加密 http://azuretableencrypt.codeplex.com
The SymmetricKeyHelper
EncryptDecrypt 项目中的类特别令人感兴趣。
感谢 @breischl 的提及以及他对该项目的贡献。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)