当移动应用程序发送HTTPS请求时,它会根据某种证书存储来验证服务器证书。我的问题是,这个证书商店是由手机的操作系统提供的,还是会被应用程序打包?
我知道我可以做证书钉扎,但首先我想知道什么是默认的。
如果安卓和iOS之间有什么区别的话,我想知道。
发布于 2020-01-06 08:59:05
简单地说,这取决于应用程序的实现。证书钉扎不是默认的,而是一个自定义实现。默认情况下,它依赖于系统信任存储( iOS )和Android。
通常,安全最佳实践是使用SSL固定。可以通过两种方式实现钉扎--包括客户端包的整个证书存储区或将证书签名包含到客户端包。您将能够通过反转客户端包来验证这一点。
与大多数桌面应用程序的工作方式类似,移动应用程序在默认情况下也依赖操作系统提供的信任存储。在Android7.0之前的Android操作系统上,用户可以通过SD卡向系统信任商店安装自定义证书。这导致了微不足道的MITM攻击,该功能已经从以后的版本中删除。应用程序不再信任android设备上安装的用户证书。
https://security.stackexchange.com/questions/223718
复制相似问题