如何修复 TrustManager 实施方式不安全的应用
答案:2 悬赏:70 手机版
解决时间 2021-02-02 21:41
- 提问者网友:爱唱彩虹
- 2021-02-02 11:42
如何修复 TrustManager 实施方式不安全的应用
最佳答案
- 五星知识达人网友:走死在岁月里
- 2021-02-02 12:57
*我的应用也被 GooglePlay 拒了
*很多三方 SDK 基本上都没有对SSL做处理,如截图所示,直接空实现。
*目前暂时定位到 新浪微博 weibosdkcore 、 async_http 这两个,其他涉及到网络传输的三方 SDK 都有嫌疑
*暂时还没找到更优的解决办法,只能升级或者替换 SDK,如果有这些 SDK的 源码,也可以自己重新编译解决
*很多三方 SDK 基本上都没有对SSL做处理,如截图所示,直接空实现。
*目前暂时定位到 新浪微博 weibosdkcore 、 async_http 这两个,其他涉及到网络传输的三方 SDK 都有嫌疑
*暂时还没找到更优的解决办法,只能升级或者替换 SDK,如果有这些 SDK的 源码,也可以自己重新编译解决
全部回答
- 1楼网友:詩光轨車
- 2021-02-02 14:26
SSL连接的context目前用那个KeyManager,TrustManager的实现(Sun公司提供的)都是默认地从命令行提供的参数或代码中明确初始化的trustmanager/keymanager中查找的,这里面可以肯定的是这个参数在连接建立之前已经固定了的静态形式,这要求我们把可以信任的服务器证书的颁发机构的根证书先导入到truststore中然后指派给java程序。因此当我们的服务器使用了一张不在truststore中的信任根证书机构名录中的证书是不会被信任的,因此我们必须提供一个有别于Sun的TrustManager接口的实现类,然后像IE浏览器那样在查找证书来确认是否信任时弹出一个对话框出来让用户检查,当用户点击“以后一直信任该证书的厂商”时我们把它缓存在持久性介质(比如文件或数据库)中,下次访问时先看是否有缓存的,没有再来弹对话框让用户确认,当服务器要求客户端出示客户端证书时(比如网银业务)我们同样需要提供自己的keymanager实现。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯