嘿我想使用Azure Key Vault来加密/解密我的数据库中的数据。我看到自己和其他人正在努力解决的一个主要问题是如何保护程序中的访问ID和密钥。我看到人们说如果你没有本机Microsoft应用程序(我没有,我的是在第三方Linux服务器上运行),你可以获得一个证书来访问密钥库。在我花200美元购买之前,我想知道拥有该证书意味着即使证书被盗,攻击者也无法使用它来访问密钥保险库吗?我的理解是证书只适用于我的域名吗?
我从https://kamranicus.com/posts/2016-02-20-azure-key-vault-config-encryption-azure在线发现的一篇文章中读到这篇文章:
我们实际上会提供一个安全的X.509证书,而不是使用Azure AD的默认身份验证,即“客户端ID”和“秘密令牌”,我们将上传到Azure。由于您无法从Azure下载证书或访问私钥,因此它将对您的应用程序进行身份验证,而不会在配置或门户界面中将密钥暴露给您的保管库。
所以我从这句话中得到的是:
由于
答案 0 :(得分:1)
基本上使用的证书比使用密钥访问任何Azure服务更安全。
这意味着在给定证书和签名身份验证质询(使用相关证书的私钥)的情况下执行身份验证
假设私钥专门存储在运行应用程序的计算机上,攻击者必须能够访问该计算机才能提取相关的私钥(或直接从受感染的计算机上使用它)。 / p>
此外,Azure引入了一种更新的方法,使用托管服务标识对Azure服务进行身份验证,由于身份验证受限于指定的计算机并且在Azure级别进行管理(不在代码中,因此被认为更安全)在机器上,但必须是Azure机器) 你可以阅读它here
至于主要目的(加密数据库),您可以通过以下几种方式实现:
1. Column level encryption
2. Encryption at rest (i.e TDE)
Azure密钥保管库支持这两种操作。 顺便说一句,如果证书的唯一目的是对Azure进行身份验证,则可以使用自签名证书而不是购买证书。