【问题标题】:Azure Key Vault access permissions and key securityAzure Key Vault 访问权限和密钥安全性
【发布时间】:2015-11-26 05:23:51
【问题描述】:

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

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

但是,我对 RSA 密钥的安全性有些担心。如果客户端应用程序从 Key Vault 获取密钥以在 BlobEncryptionPolicy 中使用,那么该密钥可能会被泄露?应用程序真正需要的唯一东西是 RSA 对的公钥,私钥应保留在服务器上(解密仅由受信任的 Web 应用程序进行)。

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

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

【问题讨论】:

    标签: azure encryption azure-keyvault


    【解决方案1】:

    https://azure.microsoft.com/en-us/documentation/articles/storage-encrypt-decrypt-blobs-key-vault/ 上的 Azure 存储和 Key Vault 演练文档的一些补充阅读提供了答案:

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

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

    【讨论】:

      【解决方案2】:

      您只需要一个公钥来加密随机对称密钥并使用该对称密钥来加密您的数据。服务器进程(函数或类似)有权访问用于解密对称密钥的私钥,然后解密 blob。可以使用 RBAC 策略来限制对保存在 KV 中的私钥的访问,并将托管标识应用于需要读取私钥的进程。

      最后,公钥真的不应该是裸密钥,它应该在 X.509 证书中,这样您就可以验证服务器端点的真实性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-10
        • 2020-08-27
        • 2019-03-09
        • 2019-06-09
        • 2021-03-20
        • 2020-02-11
        • 2020-03-17
        • 1970-01-01
        相关资源
        最近更新 更多