首页 > 解决方案 > 即使颁发它的 CA 不是,网络安全配置文件中的固定公钥是否受信任?

问题描述

假设我有一个应用程序将一些敏感信息传输到我的服务器。我想降低对我的用户进行中间人攻击的风险,因此我将我的服务器使用的密钥固定在网络安全配置文件中。

但是,假设我的应用程序的用户不信任颁发我们证书的 CA,并将其从受信任的 CA 列表中删除,或者操作系统更新可能会删除 CA,因为它被发现表现不佳。

理想情况下,在这种情况下,我希望我的应用程序拒绝连接到服务器。我只希望它在服务器提供的证书使用 pinset 中的密钥签名并且来自操作系统/用户信任的 CA 的情况下建立连接。在网络安全配置文件中固定密钥是否可以实现这一点?或者,无论如何,固定的密钥都值得信任吗?

标签: androidsslcertificate-authoritycertificate-pinningpublic-key-pinning

解决方案


HPKP 指示浏览器在您指定的时间段内存储服务器证书的签名。使用 HPKP 不会取代标准证书验证。

在您的场景中,浏览器中的固定 PK 对于您的服务器提供的服务器证书有效,但由于 CA 不受信任,实际证书验证将失败。


推荐阅读