云安全:Windows Azure 中的加密服务和数据安全
2010-03-26 00:00:00 来源:WEB开发网首先,将密钥保存在 CSP 密钥容器中。这是用于存储公钥的最佳选项,不具有对该服务器的物理访问权限,很难对该密钥进行检索。对于 Windows Azure(其中,应用程序和数据的位置很抽象),这将使查找和检索以这种方式存储的公钥极其困难。创建密钥存储容器非常简单;下面是使用创建密钥的 RSA 提供程序的一个示例。如果密钥容器已存在,会自动将其密钥加载到该提供程序:
CspParameters CspParam = new CspParameters();
CspParam.KeyContainerName = "SampleContainerName";
RSACryptoServiceProvider RSAProvider = new
RSACryptoServiceProvider(CspParam);
此外,还提供了您可以根据需要考虑的其他选项。例如,您可以使用特定标记为创建该容器的用户保证密钥的安全。可使用 CspParameters 标记成员完成此操作:
CspParam.Flags = CspProviderFlags.UseUserProtectedKey;
现在,使用 Windows Azure 存储密钥创建一个 blob API 请求。该请求本身要求使用签名字符串和正确的请求标题。正确的标题格式为:
Authorization="[SharedKey|SharedKeyLite] <AccountName>:<Signature>"
在本示例中,我希望最大程度地提高保留的机密数据的安全性,因此我将使用 SharedKey 授权方法。此标题的签名部分是一个基于哈希的身份验证代码,由 SHA256 算法和您的存储密钥针对签名中的数据生成。然后,此哈希被编码为 base64 字符串。示例签名可能如下所示:
"PUT\n\ntext/plain; charset=UTF-8\n\nx-ms-Date:Fri, 12 Sep 2009 22:33:41 GMT\nx-ms-meta-m1:v1\nx-ms-meta-m2:v2\n/exampleaccount/storageclientcontainer/keys.txt"
更多精彩
赞助商链接