我在iOS和中找不到关于证书钉扎的好信息。
他们建议您不要违反ACM证书。
https://docs.aws.amazon.com/acm/latest/userguide/acm-bestpractices.html#best-practices-pinning
我们建议您的应用程序不要持有ACM证书
他们不建议这样做的原因是:
为了更新证书,
会生成一个新的公钥对.
相反,他们建议:
如果使用公共证书,请将应用程序锁定到所有可用的亚马逊根证书。
我理解为什么不将钉到ACM证书上,因为您将不得不发布带有新证书的更新,从而冒着客户端分块的风险。您也不能将公钥钉在一起,因为它会更改。
我不明白的是,仅仅依靠根证书是可以的吗?它还能阻止中间人的袭击吗?这怎么更安全?
有人能解释得更好点吗?
发布于 2020-02-18 02:55:51
将根证书钉在根证书上的安全性不会更高。我认为Amazon文档试图推荐的是一种在证书过期和更新时不会中断网络连接的方法。
以下是这个网站的引文,解释不同类型的证书钉扎:https://carvesystems.com/news/cert_pin/
叶证书:叶证书是证书链中的顶级证书。固定一个叶证书可以使我们几乎完全确定证书是否匹配。然而,如果您经常循环您的叶证书,更新需要相当频繁地推出,以确保您的客户的应用程序继续工作。
中间证书:中间证书生活在叶和根之间。在这种情况下,将您的信任寄托在中间证书颁发机构上。因此,您可以更频繁地更新服务器的叶证书,因为证书的验证发生在中间证书上。
根证书:最后,根证书来自受信任的证书颁发机构。仅将根证书钉住将信任根证书颁发机构,以及根证书颁发机构信任的所有中介。
希望这能有所帮助
https://stackoverflow.com/questions/60271528
复制相似问题