Azure Key Vault访问权限和密钥安全性

时间:2015-09-01 04:48:21

标签: azure encryption

我正在开发一个将文件上传到Azure存储的.NET应用程序。我正在利用https://azure.microsoft.com/en-us/documentation/articles/storage-encrypt-decrypt-blobs-key-vault/

教程中的客户端加密

应用程序正常运行,即我可以成功将加密的blob上传到选定的存储帐户和容器。

但是,我对RSA密钥的安全性有些担忧。如果客户端应用程序从密钥保管库获取密钥以在BlobEncryptionPolicy中使用,那么该密钥可能会受到损害?应用程序真正需要的唯一内容是RSA对的公钥,私钥应保留在服务器上(解密只发生在受信任的Web应用程序中)。

我的另一个问题是,从app.config获取AAD集成信息是微不足道的。如何解决这个问题?

(注意:上传应用程序将运行的工作站不一定受信任)

2 个答案:

答案 0 :(得分:0)

https://azure.microsoft.com/en-us/documentation/articles/storage-encrypt-decrypt-blobs-key-vault/处对Azure存储和密钥保管库演练文档的一些额外读取提供了答案:

“存储客户端本身永远无法访问KEK。”

KEK是“密钥加密密钥”,用于加密用于加密实际blob的实际一次性对称加密密钥。

答案 1 :(得分:0)

您需要的只是一个公共密钥,用于加密随机对称密钥,并使用该对称密钥来加密您的数据。服务器进程(功能或类似进程)可以访问用于解密对称密钥的私钥,然后再解密Blob。可以使用RBAC策略以及将受管身份应用于需要读取私钥的过程来限制访问以KV保留的私钥。

最后,公钥实际上不应是裸键,而应在X.509证书中,以便您可以验证服务器端点的真实性。