4. 抓包的原理
平常使用的抓包工具,无论是fidder和charles都能解析客户端和服务器的HTTPS数据,是如何做到的呢?其实抓包工具就充当了一个中间人代理的角色,参照2.https的工具原理,抓包的工作原理如下:
- 截获客户端向发起的HTTPS请求,佯装客户端,向真实的服务器发起请求
- 截获真实服务器的返回,佯装真实服务器,向客户端发送数据
- 获取了用来加密服务器公钥的非对称秘钥和用来加密数据的对称秘钥
5. Android 中使用 HTTPS以及如何防止抓包
Android中如何访问HTTPS呢,其实Retrofit、OkHttp均支持HTTPS的访问 项目中引入网络库,以**implementation ‘com.squareup.okhttp3:okhttp:4.2.0’**为例,
final OkHttpClient okHttpClient = new OkHttpClient.Builder().build();
final Request request = new Request.Builder()
.url(“https://www.baidu.com/robots.txt”)
.build();
final Response execute = okHttpClient.newCall(request).execute();
final String bodyStr = execute.body().string();
Log.d(TAG, bodyStr);
那如果关闭客户端的CA证书,GlobalSign Root CA-R1,相当于不信任百度服务器的数字