java - 有没有办法使用对称密钥通过 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 使用对称密钥加密消息的推荐(安全)过程是什么。
解决方案
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/
我希望这有帮助。
推荐阅读
- python-3.x - 无法使用 send2trash 删除文件
- html - 汉堡导航菜单图像未使用 css background-image 属性显示
- javascript - 如何发出命令删除所有频道?
- powershell - 在 PowerShell 中使用 WinSCP .NET 程序集监控 FTP 服务器上上传的文件
- c# - System.Net.WebResponse 抛出“System.Net.WebException:操作已超时”但已连接到 Web 服务器
- dialogflow-es - 有没有办法在 Dialogflow Messenger 中显示视频
- javascript - 如何在 Angular 7 项目中传递一个响应另一个请求?
- node.js - 从 nodejs 服务器流式传输复杂数组作为对 http post 的响应
- angular - Angular 7 路由路径打开源图
- java - 来自 ManyToOne 惰性关系的实体未加载到不同的类中