吕元江,2019年1月加入去哪儿网,现负责app的分析和设备指纹反爬事项,对app脱壳,java/nativec层加解密算法分析还原有丰富经验。
1. 背景
在分析 app 协议时经常碰到由于证书校验而导致无法正常抓取 https 协议的情况,本文主要介绍证书校验检测的时机和原理,以及如何绕过检测和绕过的原理。安全防范方面,开发者又该如何应对以及如何检测,同破解方进行对抗。
1.1 在安卓上实现 https 方式的方法有哪些
A)Apache 的 HttpClient 类
B)HttpsURLConnection 类
C)后续将以第三方库 OkHttp 为例(或其他第三方库 Xutils,HttpClientAndroidLib)
1.2 各自的证书校验方式?
1.根据 app 内置证书 KeyStore 生成 TrustManager 验证
2.自定义 SSLSocketFactory(org.apache.http.conn.ssl.SSLSocketFactory)实现 TrustManager 验证策略(httpClient)
3.自定义SSLSocketFactory(javax.net.ssl.SSLSocketFactory)实现TrustManager 验证策略(HttpsURLConnection,OkHttp3)
4.自定义的 HostnameVerifier 和 X509TrustManager 实现验证
5.第三方库中的验证,如 OkHttp3 中的 CertificatePinner(证书锁定)
6.WebView 加载 Https 页面时证书校验出错,停止加载
下图为目前比较常见的实现 https 类的各自证书验证的方式:文章来源:https://www.toymoban.com/news/detail-453487.html
下图为 JSSE 的参考手册提供的与描述证书验证相关的一些类之间的关系示意图。(文章来源地址https://www.toymoban.com/news/detail-453487.html
到了这里,关于安卓 https 证书校验和绕过的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!