Windows 对于我的Azure应用程序二进制文件被盗,我该有多偏执?

Windows 对于我的Azure应用程序二进制文件被盗,我该有多偏执?,windows,security,azure,cloud,copy-protection,Windows,Security,Azure,Cloud,Copy Protection,我需要将一个大型应用程序迁移到WindowsAzure。应用程序依赖于第三方库,该库需要存储在角色实例文件系统上的特殊二进制文件中的激活密钥 显然,该密钥必须包含在角色包中,或者存储在角色可以获取它的地方。激活密钥不会绑定到机器上(因为我不知道角色在云中的具体运行位置),所以任何人都可以使用它来制作该库的副本 由于Azure角色运行在不受我们控制的地方,我对密钥被盗并被广泛使用感到有些偏执 我如何评估窃取包含在Azure角色中的二进制文件的可能性?如何降低此类风险?就安全性而言,除非您的团队在这

我需要将一个大型应用程序迁移到WindowsAzure。应用程序依赖于第三方库,该库需要存储在角色实例文件系统上的特殊二进制文件中的激活密钥

显然,该密钥必须包含在角色包中,或者存储在角色可以获取它的地方。激活密钥不会绑定到机器上(因为我不知道角色在云中的具体运行位置),所以任何人都可以使用它来制作该库的副本

由于Azure角色运行在不受我们控制的地方,我对密钥被盗并被广泛使用感到有些偏执


我如何评估窃取包含在Azure角色中的二进制文件的可能性?如何降低此类风险?

就安全性而言,除非您的团队在这方面非常有能力,否则默认的始终升级的Azure OS可能比任何自行配置的主机更安全。至少,这是我们(也称为我的公司,Lokad)在完全迁移到Windows Azure两年后评估情况的方式,与我们以前的自托管情况相比


然后,如果您有凭证,例如许可证密钥,那么放置它们的最合理位置是角色配置文件——而不是角色二进制文件。您可以根据需要在VM中自然地重新生成特殊文件,但通过这种方式,在归档二进制版本时,您不会在内部将您的凭据散布到任何地方。

在询问类似问题时,您需要区分攻击者:

  • A2)流氓网络黑客
  • A3)您组织中的开发人员
  • A4)组织中负责部署的人员
A2无法访问您的角色二进制文件,但是A3和A4可以非常访问它们

如另一个答案中所述,您可以将机密存储在角色配置文件中。 但是,A4(任何有权访问门户的人)仍然可以访问这些机密

要防御A4,您需要使用角色二进制文件或角色配置中不存在的密钥加密角色配置文件中的机密。然后在角色二进制文件中,使用解密密钥解密加密的角色设置

用于加密机密的密钥是证书,Azure SDK将为您安装该证书。你可以找到一篇关于为azure设置证书的帖子

总之,对于需要防御组织中进行部署/有权访问配置文件的人员的机密,请执行以下操作:

让受信任方执行以下操作:

  • 生成证书/私钥
  • 使用证书加密机密,并将加密设置存储在配置文件中
  • 将证书/私钥上载到您的服务
然后将您的服务修改为:

  • 让服务模型安装证书/私钥
  • 在应用程序中,加载用于解密机密的私钥
  • 让您的应用程序从角色配置加载加密设置,并使用私钥对其进行解密

你读过微软关于这方面的白皮书吗:@Simon Mourier:我会读的,谢谢。你担心谁会偷走你的角色?例如,Microsoft、攻击者、您的ops团队等等?@Igor Dvorkin:当然不是Microsoft,他们可以完全访问所有文件。我担心第三方。