我希望就以下事项作出澄清并提供咨询意见:
我的项目要求我在Nodejs环境中使用对称数据加密(使用AES)来保护数据库(mongodb)上的数据。理想情况下,我想这样做如下:
将对称密钥作为密钥存储在Azure密钥库中,然后对金库进行“加密”调用,对数据执行AES加密。加密的数据被发送到我的应用程序的响应中,然后以加密的形式存储在数据库中。
在阅读了Azure女士的文档和相关博客文章后,我感到很困惑,其中一些消息来源声称支持对称密钥加密,但没有官方文档。
有人能告诉我,这是否是Azure的key Vault支持的所有关键类型和算法的详尽列表?KeyTypes
这似乎也是一种选择(http://www.nuget.org/packages/Microsoft.Azure.KeyVault.extensions),但只适用于.NET上的环境。对Nodejs有爱好吗?
如果目前确实不支持对称密钥/加密,是否有人能为我的上述方法提供一种替代方法?
谢谢,非常感谢。
发布于 2016-01-29 14:41:14
我同意文档/博客在这个主题上似乎有点混乱。据我了解,密钥库目前还不支持对称加密。我相信你能得到的最接近的就是把对称的密钥作为秘密储存起来,然后在金库外使用它们。
这个文章谈到这样做。请参阅标题为的部分使用密钥库机密
我理解您使用的是node.js,该示例是在powershell中,它只是试图演示带有秘密的对称加密的示例。很明显密码操作发生在金库外面。因此,在休息时,键更安全,但在任何时候操作发生时都会暴露在内存中。
希望这能有所帮助。
下面是PowerShell中的一个例子,说明如何在Key Vault中创建一个可以用作SymmetricKey的秘密。
SymmetricKey sec = (SymmetricKey) cloudResolver.ResolveKeyAsync(
"https://contosokeyvault.vault.azure.net/secrets/TestSecret2/",
CancellationToken.None).GetAwaiter().GetResult();
https://stackoverflow.com/questions/34981824
复制相似问题