Azure 的 Key Vault 是否支持对称密钥加密?

ryd*_*d3r 3 aes encryption-symmetric node.js azure-keyvault

我将不胜感激关于以下方面的澄清和建议:

我的项目要求我在 Nodejs 环境中使用对称数据加密(使用 AES)来保护数据库 (mongodb) 上的数据。理想情况下,我想这样做:

将对称密钥作为密钥存储在 Azure 密钥保管库中,然后对保管库进行“加密”调用,以使用密钥对数据执行 AES 加密。加密数据作为对我的应用程序的响应发送,然后以加密形式存储在数据库中。

在阅读了 MS Azure 的文档和相关博客文章后,我感到很困惑,其中一些消息来源声称支持对称密钥加密,但没有关于此的官方文档。

任何人都可以建议这是否是 Azure Key Vault 支持的所有密钥类型和算法的详尽列表? https://msdn.microsoft.com/en-us/library/azure/dn903623.aspx#BKMK_KeyTypes

这似乎也是一个选项(http://www.nuget.org/packages/Microsoft.Azure.KeyVault.extensions),但仅适用于 .NET 上的环境。喜欢 Nodejs 吗?

如果目前确实不支持对称密钥/加密,那么任何人都可以为我的上述方法提供替代方法吗?

谢谢,非常感谢。

j-u*_*i-n 6

我同意文档/博客在这个主题上似乎有点混乱。据我了解,密钥保管库目前尚不支持对称加密。我相信你能得到的最接近的是将对称密钥存储为秘密并在保险库之外使用它们。

这篇文章谈到了这样做。请参阅标题为“使用 Key Vault 机密”的部分

我了解您使用 node.js 并且该示例在 powershell 中只是试图说明带有秘密的对称加密示例。显然,加密操作发生在保险库之外。因此,静态密钥更安全,但在任何操作发生时都会暴露在内存中。

希望有帮助。

以下是在 PowerShell 中创建可用作 SymmetricKey 的密钥的示例。

SymmetricKey sec = (SymmetricKey) cloudResolver.ResolveKeyAsync(
"https://contosokeyvault.vault.azure.net/secrets/TestSecret2/",
CancellationToken.None).GetAwaiter().GetResult();
Run Code Online (Sandbox Code Playgroud)