【问题标题】:Encrypt and decrypt blobs using Azure Key Vault使用 Azure Key Vault 加密和解密 blob
【发布时间】:2021-01-11 10:18:04
【问题描述】:

我们使用Encrypt and decrypt blobs using Azure Key Vault 来保护我们的文件免受开发人员或任何不必要的文件访问。

我已经创建了如下所示的 RSA 密钥

现在我没有什么疑问了

#1:如果我为此密钥设置到期日期,(假设从今天起 2 年)会影响我的加密吗? -

例如,2 年后,我将创建新的 RSA 密钥,而已经加密的旧文件将无法解密?如果答案是否定的 - 版本更改将如何确保解密继续工作?

#2:我必须使用哪个 RSA 密钥大小?根据行业标准,什么是最好的?

#3:在 blob 文件中,有 SDK 添加的元数据属性:“encryptiondata” - 那是什么,它还包括“EncryptedKey”,有什么用?,当我们设置时,似乎 SDK 正在处理这个过程"BlobEncryptionPolicy"

#4:当我们将 KEY 设置为 azure key vault 时 - 它是私钥还是公钥?我们能看到它的内容吗?

假设有人以纯文本形式从密钥库中知道 RSA 密钥。他/她将直接从 blob 下载加密文件并在单独的程序中使用该密钥并解锁/解密它?

谢谢,

【问题讨论】:

    标签: azure encryption azure-blob-storage azure-keyvault


    【解决方案1】:

    #1 在 Azure Keyvault 中,默认情况下加密密钥不会过期。但设置一个是一个好习惯。然后旋转键。

    轮换将涉及生成新密钥, 使用新密钥重新加密使用旧密钥加密的所有数据 删除旧的加密数据和旧的加密密钥。

    Azure 在数据加密方面支持三种模型。 1) 使用服务管理密钥的服务器端加密 2) 在 Azure Key Vault 中使用客户管理的密钥进行服务器端加密 3) 在客户控制的硬件上使用客户管理的密钥进行服务器端加密

    您可以在此处阅读更多相关信息。 https://docs.microsoft.com/en-us/azure/security/fundamentals/encryption-models 并选择您需要的选项。 如果您需要在 azure 存储中携带自己的密钥 - https://docs.microsoft.com/en-us/azure/storage/common/customer-managed-keys-overview

    旋转过程可以通过事件、事件网格、功能自动化。 例如,当秘密接近到期日期并且在事件网格中捕获并且通过触发是该事件的事件网格映射的天蓝色函数采取必要的操作时,将触发接近到期的秘密。 基于 Azure Runbook 的自动化选项也是可能的。

    #2 据我所知,更大的密钥更难或需要时间来破解,从我读到的 2048 或 4096 应该是好的。但是同样有一些关于不使用标准密钥大小等的思想流派。我想你可以咨询安全/密码专家以了解具体情况。

    #3 这些属性是指在 Azure 存储中完成的默认静态加密。请参阅可用于 Azure 存储的数据加密模型。

    #4 在 Azure 密钥库中,加密密钥表示为 JWK(JSON Web 密钥)

    例如包含一对公钥和私钥的 .pfx 证书文件。 对 GetKeyAsync 的 API 调用不返回私钥数据。这就是 DecryptAsync 包装方法使用 Key Vault API 进行解密的原因。

    【讨论】:

      猜你喜欢
      • 2021-12-13
      • 1970-01-01
      • 2018-12-08
      • 2021-11-30
      • 2022-01-27
      • 1970-01-01
      • 2016-07-02
      • 2021-11-28
      • 2017-09-12
      相关资源
      最近更新 更多