HTTP/HTTPS 请求与防抓包

TCP/IP分层

TCP/IP的分层共分为四层:应用层、传输层、网络层、数据链路层;

  • 应用层:向用户提供应用层服务时的通讯活动(ftp、dns、http)
  • 传输层:网络连接中两台计算机的数据传输(tcp、udp)
  • 网络层:处理网络上流动的数据包,通过怎样的传输路径把数据包传送给对方(ip)
  • 网络链路层:与硬件相关的网卡、设备驱动等等

HTTP/HTTPS

HTTP
HyperText Transfer Protocol (超文本传输协议) 被用于在Web浏览器和网站服务器之间传递信息,在TCP/IP中处于应用层

  • 通过使用明文,内容可能被窃听
  • 不验证通信方的身份,因此又可能遭遇伪装
  • 无法证明报文的完整性,所以又可能遭到篡改

HTTPS

HTTPS中的S 表示SSL或者TLS,就是在原HTTP的基础上加上一层用于数据加密、解密、身份认证的安全层

  • HTTP + 加密 + 认证 + 完整性保护 = HTTPS
    HTTPS单向认证:
    在这里插入图片描述
    HTTPS双向认证:

在这里插入图片描述

抓包原理

在这里插入图片描述

防抓包:代理检测

检测事发后使用网络代理
将网络库(如okhttp库)设置为无代理模式,不走系统代理
httpURLConnection:

URL url = new URL(urlStr);
urlConnection = (HttpURLConnection)url.openConnection(Proxy.NO_PROXY);

OKHttp

OkHttpClient client = new OkHttpClient().newBuilder().proxy(Proxy.NO_PROXY).build();
怎么抓设置上面后的代码的包?

使用HOOK技术
在这里插入图片描述

防抓包:证书固定

SSL-Pinning

  • 证书锁定(Certificate Pinning)
    在客户端代码内置仅接收指定域名的证书,而不接收操作系统或浏览器内置的CA根证书对应的任何证书。
  • 公钥锁定(Public Key Pinning)
    提取证书中的公钥并内置到客户端中,通过与服务器对比弓腰值来验证连接的准确性。
如何破解证书固定(SSL-Pinning)

Xposed框架 + justTrustme模块

  • Xposed框架:Android 上应用广泛的HOOK框架,基于Xposed框架制作的外挂模块可以hook任意应用层的java函数,修改函数实现。
  • justTrustMe插件:justTrustMe是一个用来禁用、绕过SSL证书检查的基于Xposed模块。将Android系统中所有用于校验SSL证书的API都进行来HOOK,从而绕过证书检查

防抓包:解决HOOK

  • 检查HOOK:检查Xposed、Frida、Substrate等Hook框架
  • 使用Socket连接:使用Socket走TCP/UDP,防止应用层被抓包
  • 传输数据加密:协议字段加密传输,并隐藏密钥,应用层加固
  • native层传输:将网络传输逻辑写到jni实现,提高反编译门槛
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值