攻击时的Azure Key Vault安全性

时间:2015-10-22 09:17:26

标签: security azure encryption

我希望在发生攻击时提高网络应用的安全性。 我的系统中存在以下组件:

  • Azure Web App
  • Azure Blob存储
  • Azure SQL Azure
  • Azure KeyVault

现在有一种情况是应用加密并存储上传的文档。 这的工作原理如下:

1)用户将文档上传到网络应用程序 2)生成随机加密密钥 3)随机加密密钥存储在azure密钥库中 4)sql azure存储blob url和密钥url

现在我的问题是: 如果黑客攻击Web应用程序实例,如何使用密钥保险库更安全?我的意思是在app.config中有客户端ID和客户端密钥来访问keyvault,我们需要它来读取和写入密钥。因此,如果我使用密钥保险库不会增加黑客攻击网络应用程序的安全性,对吧?

3 个答案:

答案 0 :(得分:5)

密钥保管库是一个围绕HSM的API。 Key Vault或HSM Secure的作用是导入/创建密钥后无法从中提取密钥。此外,加密(在您的情况下加密/解密)操作发生在Vault内部,因此密钥永远不会暴露,即使在内存中也是如此。

如果有人能够破解您的Web应用程序并获取密钥保管库的凭据,则可以使用保管库来解密数据。因此,在这种情况下,您可以重新生成密钥保管库的凭据,并仍然继续使用保管库中的相同密钥 - 因为它们从未公开过。这意味着攻击者尚未解密的任何加密数据仍然是安全的,因为密钥从未暴露过。

通常,HSM并非设计为仅在几个非常重要的密钥中存储大量密钥。您可能需要考虑使用密钥包装解决方案,其中您在Vault中有一个密钥。

您可能希望在配置中加密客户端ID和客户端密钥,并在运行时解密它们 - 这会增加另一层安全性。现在,攻击者在Cloud Service / VM上运行时需要从应用程序内存中读取密钥(这不是一项简单的任务)。或者攻击者需要获取配置文件和用于加密配置值的证书的私钥(比读取内存更容易,但仍需要大量访问系统)。

答案 1 :(得分:1)

  

因此,如果我使用密钥保险库,则不会增加安全性   黑客入侵网络应用程序,对吧?

这一切都取决于他们能够破解网站的级别。在你描述的情况下,如果他们获得了你的源代码,那么 - 是的,它的游戏结束了。但它并非必须如此。它真正归结为您的配置。

但是,大多数情况下,开发人员忘记了安全性是一种分层方法。当您谈论数据和相关主题的加密时,它们通常是最后一道防线。因此,如果恶意行为者已获得对加密敏感数据的访问权限,则他们已经破坏了其他易受攻击的区

答案 2 :(得分:0)

问题不是密钥保管库,而是您使用客户端密钥的解决方案。客户端密钥是一个常量字符串,不被认为是安全的。您可以将证书和指纹用作“客户端密钥”。您的应用程序需要读取存储在Web应用程序中的.pfx文件,然后解密以获取指纹。成功检索指纹后,您可以检索Key Vault secret。此外,在Key Vault中,您可以使用自己的证书,而不仅仅是Secret中的屏蔽字符串。这就是所谓的“嵌套加密”。

enter image description here

黑客如果能够访问你的app.config,他什么都得不到.pfx文件的路径,他不知道在哪里存储,甚至是它的样子。生成相同的pfx文件变得不可能。如果他能够打破完全加密的世界。