【问题标题】:Azure Key Vault safety when hacking黑客攻击时的 Azure Key Vault 安全
【发布时间】:2016-01-21 12:30:59
【问题描述】:

我想提高我的网络应用程序的安全性,以防受到攻击。 我的系统中存在以下组件:

  • Azure 网络应用程序
  • Azure Blob 存储
  • Azure SQL Azure
  • Azure 密钥库

现在有应用加密和存储上传文件的场景。 这如描述的那样工作:

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

现在我的问题是: 在入侵 Web 应用程序实例的情况下,如何更安全地使用密钥库?我的意思是 app.config 中有客户端 ID 和客户端密码来访问密钥库,我们需要它来读取和写入密钥。因此,无论我是否使用密钥保管库都不会增加黑客攻击 Web 应用程序的安全性,对吧?

【问题讨论】:

    标签: azure security encryption azure-keyvault


    【解决方案1】:

    因此,无论我是否使用密钥保管库,都不会增加安全性 破解网络应用程序,对吧?

    这完全取决于他们能够入侵网站的级别。在您描述的情况下,如果他们获得了您的源代码,那么 - 是的,游戏结束了。但不一定是这样。这真的取决于您的配置。

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

    【讨论】:

      【解决方案2】:

      Key Vault 是一个封装在 HSM 周围的 API。使 Key Vault 或 HSM 安全的原因在于,一旦导入/创建,就无法从中提取密钥。此外,加密(在您的情况下为加密/解密)操作发生在保险库内,因此密钥永远不会暴露,即使在内存中也是如此。

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

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

      您可能希望在配置中加密客户端 ID 和客户端密码,并在运行时对其进行解密 - 这增加了另一层安全性。现在攻击者要么需要在你的云服务/虚拟机上运行时从你的应用程序内存中读取密钥(这不是一件容易的事)。或者攻击者需要获取配置文件和用于加密您的配置值的证书的私钥(比读取内存更容易,但仍然需要大量访问您的系统)。

      【讨论】:

        【解决方案3】:

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

        黑客如果访问您的 app.config,除了 .pfx 文件的路径,他什么也得不到,他不知道在哪里存储,甚至不知道它的样子。生成相同的 pfx 文件变得不可能。如果可以,他会打破整个加密世界。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-04-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-11-26
          相关资源
          最近更新 更多