是否可以从Azure Key Vault密钥中获取私钥?

时间:2018-08-21 00:58:17

标签: c# azure encryption azure-keyvault

我在Azure密钥保管箱中看到的所有数据加密/解密示例都使用keyVaultClient.DecryptAsync()方法在本地进行加密和在Azure自身内部进行解密。

我知道这是更安全的,因为私钥永远不会离开Azure并泄漏到您的应用程序代码中,但是,如果我也想在本地进行解密,我该如何取出私钥呢?

我正在使用keyVaultClient.GetKeyAsync(),但似乎只包含公共密钥。

Azure解密中的一个问题是,如果没有开发人员访问Azure,我将无法在开发环境中复制它。似乎没有Azure Key Vault的模拟器。

看来,实现我想要的唯一方法是使用Azure Key Vault Secret并在其中存储包含公钥/私钥的PFX证书?

2 个答案:

答案 0 :(得分:3)

抱歉,不。

Azure Key Vault does not support EXPORT operations:一旦在系统中设置了密钥,就无法提取或修改其密钥材料。

您可以执行BACKUP,但唯一的好处就是还原到Azure。您无法在其他任何地方使用它。

答案 1 :(得分:1)

就像TerryCarmen所说的那样,您无法在本地解密只有公用密钥可用于系统。对GetKeyAsync的API调用不会返回私钥数据。这就是为什么DecryptAsync包装器方法确实使用Key Vault API进行解密的原因。

换句话说,私有密钥永远不会离开保管库,这是使用Key Vault进行解密而不是将私有密钥引入流程的原因之一。

有关更多详细信息,您可以参考此article