Android证书固定与公钥固定

时间:2019-05-15 20:02:30

标签: android android-studio ssl openssl ssl-certificate

我试图了解如何完成证书固定和公共密钥。 阅读了不同的博客后,我对该概念感到更加困惑,由于这个原因,我添加了这个问题。我想知道   1.如何通过示例实现证书固定

2。如何使用示例实现公钥固定

1 个答案:

答案 0 :(得分:0)

证书或公用密钥固定只是例外的连接证书信息的“白名单”,因此您可以确认连接的对象是预期连接的对象。基本上,它可以在中间情况下检测到人。

选中out作为一般概述。

证书固定和公共密钥固定之间的唯一区别是您要检查白名单中的数据。由于证书包含公钥,因此您可以认为证书是所检查数据的超集。您所检查的内容将确定您希望检测次要证书“更改”的严格程度。

还有许多方法可以实现上述链接中概述的固定。它只是取决于您决定要检查的内容以及如何将其存储在白名单中。由于您是在谈论Android,因此上面的链接提到了Android推荐的方式,因此您可能希望研究一下。

您可能要看的另一种实现是Mozilla pining implementation,它将公钥与以十六进制形式存储的公钥sha256哈希的白名单固定在一起。

更新: 如@Robert所述,除了标准证书链检查之外,还应进行证书固定。它不能代替标准证书链检查,尤其是在根/中间证书级别固定时。

固定根或中间固定会降低其安全性,但对证书更改具有更大的弹性。此类设置的使用方式取决于您使用证书固定的原因以及是否可以轻松更新客户端白名单。这些是您根据自己的具体情况做出的安全权衡。