Google 如何修复 TrustManager 实施方式不安全的应用
引用谷歌市场的帮助说明:https://support.google.com/faqs/answer/6346016
本文面向的是发布的应用中 X509TrustManager 接口实施方式不安全的开发者。具体而言,该问题是指在与远程主机建立 HTTPS 连接时实施方式会忽略所有 SSL 证书验证错误,从而使您的应用容易受到中间人攻击。攻击者可能会读取传输的数据(例如登录凭据),甚至更改通过 HTTPS 连接传输的数据。要查看受影响应用的完整列表,请访问开发者控制台。
为了正确处理 SSL 证书验证,请更改您的自定义 X509TrustManager 接口的 checkServerTrusted 方法中的代码,指定在服务器提供的证书不符合您的预期时生成 CertificateException 或 IllegalArgumentException 错误。如有技术问题,您可以在 Stack Overflow 上发帖咨询(使用“android-security”和“TrustManager”标签)。
请尽快解决此问题并增加升级版 APK 的版本号。从 2016 年 5 月 17 日起,Google Play 将禁止发布 X509TrustManager 接口实施方式不安全的任何新应用或应用更新。
要确认您所做的更改是否正确,请将更新后的应用版本提交至开发者控制台,并在 5 小时后回来查看。如果应用并未正确升级,系统将会显示警告。
尽管这些具体问题可能不会影响每个实施 TrustManager 接口的应用,但您最好不要忽略任何 SSL 证书验证错误。如果应用包含会让用户面临入侵风险的安全漏洞,那么我们可能会将其视为危险产品,因其违反了内容政策和开发者分发协议第 4.4 条的相关规定。
***********************************************************************************
全文搜索X509TrustManager,结果发现在 proguard 文件夹下的 dump.txt 文件中出现了
1、
_____________________________________________________________________
+ Program class: com/baidu/b/a/f
Superclass: java/lang/Object
Major version: 0x32
Minor version: 0x0
Access flags: 0x20
= class com.baidu.b.a.f extends java.lang.Object
Interfaces (count = 1):
+ Class [javax/net/ssl/X509TrustManager]
Constant Pool (count = 34):
+ Class [com/baidu/b/a/d]
+ Class [com/baidu/b/a/d$b]
+ Class [com/baidu/b/a/f]
+ Class [java/lang/Object]
+ Class [java/security/cert/CertificateException]
+ Class [javax/net/ssl/X509TrustManager]
解决方法:更新百度地图的 Sdk
参考:http://developer.baidu.com/announcement/394
2、
_____________________________________________________________________
+ Program class: com/loopj/android/http/MySSLSocketFactory$1
Superclass: java/lang/Object
Major version: 0x32
Minor version: 0x0
Access flags: 0x20
= class com.loopj.android.http.MySSLSocketFactory$1 extends java.lang.Object
Interfaces (count = 1):
+ Class [javax/net/ssl/X509TrustManager]
Constant Pool (count = 41):
+ Class [com/loopj/android/http/MySSLSocketFactory]
+ Class [com/loopj/android/http/MySSLSocketFactory$1]
+ Class [java/lang/Object]
+ Class [java/security/cert/CertificateException]
+ Class [javax/net/ssl/X509TrustManager]
解决方法:
AsyncHttpClient
3 新浪微博
public static class MySSLSocketFactory extends SSLSocketFactory {
SSLContext sslContext = SSLContext.getInstance("TLS");
public MySSLSocketFactory(KeyStore truststore)
throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException {
super(truststore);
TrustManager tm = new X509TrustManager() {
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
try {
chain[].checkValidity();
} catch (Exception e) {
throw new CertificateException("Certificate not valid or trusted.");
}
}
public X509Certificate[] getAcceptedIssuers() {
return null;
}
};
sslContext.init(null, new TrustManager[] { tm }, null);
}
@Override
public Socket createSocket(Socket socket, String host, int port, boolean autoClose)
throws IOException, UnknownHostException {
return sslContext.getSocketFactory().createSocket(socket, host, port, autoClose);
}
@Override
public Socket createSocket() throws IOException {
return sslContext.getSocketFactory().createSocket();
}
}
解决方法:
checkServerTrusted 添加检查证书有效性(加粗部分)
Google 如何修复 TrustManager 实施方式不安全的应用的更多相关文章
- Google 浏览器 离线包下载方式
最近因工作需要,需要安装google浏览器,并且安装在系统固定目录,用360软件管理下载后发现默认安装在C:\Users\administrator\AppData\Local\Google\Chro ...
- Google Chrome Frame 自定义渲染方式,调用ActiveX
通过meta段的设置可以控制浏览器的渲染行为,但在一些特殊情况下,meta段的设置无效,我们需要额外的操作以达到目的. 模式1:页面A(IE)iFrame引用页面B(Chrome Frame) 问题描 ...
- Google Protocol Buffer 的编码方式
Google Protocol Buffer 使用到了两种编码方式:Varints 和 zigzag. 一 Varints 编码 每个 byte 只用 7bit 表示数字,最高位 bit作为标志位,如 ...
- Google的两种广告推广方式
1搜索关键字广告推送:AdWords: 覆盖广泛:在全球最大的搜索和网络平台上进行推广. 定位精准:锁定目标客户群体,让潜在客户轻松找上门. 成本可控:仅当用户点击广告时,您才支付费用. 2.网站内容 ...
- 使用 Google Chrome 数据抓包方式免费下载收费音乐
对于每个有音乐细胞的 boys & girls 来说,听音乐的时候是不是会经常遇到如下图的问题. 自从音乐进入正版之后,很多歌曲只有付费用户才可以下载.虽然可以在线听,可是以我的倔脾气,就是喜 ...
- 《ArcGIS Runtime SDK for Android开发笔记》——(13)、图层扩展方式加载Google地图
1.前言 http://mt2.google.cn/vt/lyrs=m@225000000&hl=zh-CN&gl=cn&x=420&y=193&z=9& ...
- Centos 7 安装google 浏览器(yum 方式)
过程: 1 vim /etc/yum/repo.s/google_chrome.repo 2 添加如下内容: [google-chrome] name=google-chrome ...
- google批量搜索实现方式
本文主要记录一下最近所做的关于Google批量搜索的实现方式. 搜索目的: 获取关键词在某个域名下对应的Google搜索结果数 搜索方式: 关键词+inurl 例如:"爬虫" in ...
- 阿里最新热修复Sophix与QQ超级补丁和Tinker的实现与总结
2015年以来,Android开发领域里对热修复技术的讨论和分享越来越多,同时也出现了一些不同的解决方案,如QQ空间补丁方案.阿里AndFix以及微信Tinker(Bugly sdk也集成Tikner ...
随机推荐
- jquery 表单清空
$(':input','#myform') .not(':button, :submit, :reset, :hidden') .val('') .removeAttr('checked') .rem ...
- 剑指Offer 和为S的两个数字
题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述: 对应每个测试案例,输出两个数,小的先输出. 思路 ...
- PHP 中的行为 ,与什么是切面
行为(Behavior)扩展以及插件(Plug or Hook)详解: 行为(Behavior)是ThinkPHP扩展机制中比较关键的一项扩展,行为即可以独立调用,也可以绑定到某个 标签中进行监听,官 ...
- NET-SNMP开发——日志输出
NET-SNMP开发——日志输出 net-snmp的日志输出功能是很强大的,与日志输出相关函数声明在net-snmp-5.7.3\include\net-snmp\library\snmp_loggi ...
- redis安装与参数说明
redis安装与参数说明 博客分类: redis redis 1.下载tcl8.6.1-src.tar.gz 和 redis-2.8.6.tar.gz: 2.安装: 1).安装tcl Java代码 收 ...
- ulimit命令
原文链接 linux下默认是不产生core文件的,要用ulimit -c unlimited放开 概述 系统性能一直是一个受关注的话题,如何通过最简单的设置来实现最有效的性能调优,如何在有限资源的条件 ...
- sharepoint 2010 页面刷新时滚动条位置保持不变 Controlling scrollbar position on postback
sharepoint 2010 页面刷新时滚动条位置保持不变 Controlling scrollbar position on postback在sharepoint 2010中,如果当前页面的篇幅 ...
- 《C++ Primer》 ---- 关于变量 与 基本类型
类型是所有程序的基础; C++ 定义了几种基本类型: 字符型(char 和 wchar_t),整型(short int long bool),浮点型(float doubel) 并且提供自定义数 ...
- centos7安装docker并设置开机启动
版本要求:查看内核版本,需大于3.10 [root@localhost ~]# uname -r -.el7.x86_64 更新内核:如果是生产机器务必慎重更新内核,避免出现不必要的问题. sudo ...
- 终端ssh登录mac用shell打包ipa报错:replacing existing signature
终端ssh登录mac用shell打包ipa报错:replacing existing signature 报错原因:login.keychain被锁定,ssh登录的没有访问权限 解决方法:终端敲入 s ...