Dis*_*ile 3 security cryptography x509certificate azure-keyvault
我有一些秘密要保存在 Azure Key Vault 中。我知道我可以使用客户端 ID 和证书来通过 Key Vault 进行身份验证,而不是按照以下步骤使用客户端和密钥:
大多数示例使用 makecert 或 New-SelfSignedCertificate 来创建证书。在这种情况下,对于生产应用程序,自签名证书是否有问题?这仅适用于使用 Azure Key Vault 进行身份验证的应用程序,客户端不会在其浏览器中看到它。
如果在这种情况下仍然不赞成自签名证书,那么从受信任的机构购买证书是否与购买 SSL/TLS 证书的过程相同?它甚至是相同类型的证书吗?
使用自签名证书没有(有一些警告)本质上是错误的。从纯加密的角度来看,购买的证书和自签名证书之间没有区别。唯一的区别是购买的证书已由一个或多个证书颁发机构 (CA) 签署,这些证书颁发机构 (CA) 向大多数浏览器/操作系统/等分发其公钥。这意味着用户可以对购买的证书是合法的有更高的信心,而他们必须大胆地接受自签名证书。
但是,在您的情况下,您似乎能够控制客户端应用程序,而实际用户不应看到此证书。因此,您可以放心地使用自签名证书,只要您采取预防措施防止中间人攻击(即有人生成自己的自签名证书并冒充您)。执行此操作的最有效方法之一是通过证书锁定。本质上,您将证书的公钥与客户端应用程序一起发送,而您的客户端应用程序将只接受提供该公钥的证书。这使得恶意行为者(没有窃取您的证书)执行中间人攻击变得更加困难。
TL;DR:只要您采取措施防止中间人攻击,并确保您的证书安全,使用自签名和自生成的证书来保护非面向用户的安全就没有错连接。