假设我有一个应用程序可以将一些敏感信息传输到服务器。我想减少用户遭受中间人攻击的风险,因此我将服务器使用的密钥固定在Network Security Configuration file中。
但是,假设我的应用程序的用户不信任颁发我们证书的CA,并将其从受信任的CA列表中删除,或者操作系统更新会删除该CA,因为发现它的行为不佳。
理想情况下,在这种情况下,我希望我的应用拒绝连接到服务器。如果服务器提供的证书是用引脚集中的密钥签名的,并且来自操作系统/用户信任的CA,则我仅希望它建立连接。将密钥固定在网络安全配置文件中是否可以做到这一点?或者,固定密钥是否受到信任?
最佳答案
HPKP指示浏览器在指定的时间段内存储服务器证书的签名。使用HPKP不会替代标准证书验证。
在您的方案中,在浏览器中固定的PK将对您服务器所呈现的服务器证书有效,但是由于不信任CA,因此实际的证书验证将失败。
关于android - 即使发布该证书的CA不被信任,网络安全配置文件中的固定公钥是否受信任?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55855510/