3

我有一些秘密想保留在 Azure Key Vault 中。我知道我可以使用客户端 ID 和证书来使用 Key Vault 进行身份验证,而不是使用客户端和密钥,然后执行以下步骤:

  1. 获取或创建证书
  2. 将证书与 Azure AD 应用程序关联
  3. 将代码添加到您的应用程序以使用证书

大多数示例使用 makecert 或 New-SelfSignedCertificate 来创建证书。在这种情况下,对于生产应用程序,自签名证书是否有问题?这仅适用于通过 Azure Key Vault 进行身份验证的应用程序,客户端不会在其浏览器中看到。

如果在这种情况下仍然不赞成自签名证书,那么从受信任的机构购买证书与购买 SSL/TLS 证书的过程相同吗?它甚至是同一类型的证书吗?

4

1 回答 1

6

使用自签名证书本质上没有任何问题(有一些警告)。从纯加密的角度来看,购买证书和自签名证书没有区别。唯一的区别是购买的证书已由一个或多个证书颁发机构 (CA) 签名,这些证书颁发机构将其公钥分发给大多数浏览器/操作系统/等。这意味着用户可以对购买的证书是合法的有更高的信心,同时他们必须采取信心的飞跃来接受自签名证书。

但是,在您的情况下,您似乎能够控制客户端应用程序,实际用户永远不会看到此证书。因此,您可以放心地使用自签名证书,只要您采取预防措施防止中间人攻击(即有人生成自己的自签名证书并冒充您)。最有效的方法之一是通过证书固定。本质上,您将证书的公钥与您的客户端应用程序一起发送,并且您的客户端应用程序将只接受提供该公钥的证书。这使得恶意行为者(没有窃取您的证书)执行中间人攻击变得更加困难。

TL;DR:只要您采取措施防止中间人攻击,并确保您的证书安全,使用自签名和自生成的证书来保护非面向用户的安全就没有错连接。

于 2016-06-13T16:12:27.127 回答