首页 > 解决方案 > 有没有办法使用对称密钥通过 Azure Key Vault 加密消息?

问题描述

我正在使用 Java 库访问 Azure Key Vault,并查看 com.azure.security.keyvault.keys.cryptography.CryptographyClient 它需要一个似乎能够使用对称密钥的 EncryptionAlgorithm。但是,您不能在 Azure Key Vault 中存储对称密钥,这让我想知道:例如,您如何使用 EncryptionAlgorithm.A256CBC_HS512?

我唯一能想到的就是直接使用 jsonWebKey作为 keyIdentifier(而不是使用标识符),然后加密消息。因此,我需要将 jsonWebKey(AES 密钥)作为机密存储在保险库中,检索机密,然后使用它进行加密。但这并不安全,因为 AES 密钥随后将通过 Internet 发送(即使它通过 https)。

那么,使用 Azure Key Vault 使用对称密钥加密消息的推荐(安全)过程是什么。

标签: javaazureazure-keyvault

解决方案


KV 只做非对称加密,只有 Keys(非对称)暴露加密操作,如加密/解密签名/验证等。

您始终可以使用 KV 包装对称密钥并使用 KV 解包密钥。但是对称加密操作将在您的 Java 代码中。

我写了一篇关于一些时髦的 KV 加密的文章,这提供了一些 C# 代码的链接。 https://michaelhowardsecure.blog/2020/06/05/the-curious-case-of-the-un-enforced-azure-key-vault-rbac-policy/

我希望这有帮助。


推荐阅读