一种移动端应用防止抓包的方法技术

技术编号:39738359 阅读:4 留言:0更新日期:2023-12-17 23:40
本发明专利技术提供一种移动端应用防止抓包的方法,在移动端应用中集成开源网络库

【技术实现步骤摘要】
一种移动端应用防止抓包的方法


[0001]本专利技术涉及网络安全领域,更具体地,涉及一种移动端应用防止抓包的方法


技术介绍

[0002]目前对于移动端应用来说,网络请求是其很核心的数据内容,而现有方案通过一些代理软件
(

Charles、Fiddler、Wireshark)
可以抓取网络包
(
通过中间人的方式拿到通信报文
)
,则可以知道请求的内容和数据,从而泄漏了核心数据

[0003]现有移动端大多使用的网络库有
android
端使用
okhttp3、ios
端使用
AFNetworking
;也有双端使用跨平台网络库
cronet
网络库

大多数都是基于
okhttp3

AFNetworking
采用客户端校验服务器的证书或者使用证书锁定
(SSL/TLS Pinning)
,来防止抓包

而其中网络库
cronet
也是开启服务器证书校验功能来防止中间人来抓包

[0004]首先
okhttp3、AFNetworking、cronet
都是绝大多数
APP
厂商都采用的方案,因此网上有很多资料分析如何来破解其抓包方案,因此在网上可以轻易的找到对应的破解工具

同时对于现有的上述网络库对防止抓包仅仅只使用了证书校验功能,其保护程度一般,因此很容易突破

同时现有方案一旦不让抓包那么对于
APP
内部人员想要抓包定位线上问题也不方便


技术实现思路

[0005]本专利技术针对现有技术中存在的技术问题,提供一种移动端应用防止抓包的方法,包括:
[0006]在移动端应用中集成开源网络库
proxygen
,所述开源服务器网络库
proxygen
的源码结构包括底层的
openssl

、openssl
层之上的
folly
层和
folly
层之上的
proxygen
层,其中,
folly
层中封装了网络套接字接口;
[0007]改造开源网络库
proxygen

folly
层加入证书校验功能;
[0008]移动端通过
folly
层中的网络套接字接口连接服务器,向服务器发送网络请求,并接收服务器下发的证书相关信息,所述证书相关信息包括公钥信息和链接域名信息;
[0009]根据所述公钥信息和链接域名信息,在
proxygen
层的代码中的表格中查找对应的
hash
算法和
hash
结果;
[0010]通过
folly
层调用
openssl
层,基于
hash
算法对公钥信息进行
hash
运算,得到对应的
hash
结果;
[0011]将计算的
hash
结果与表格中的
hash
结果进行对比,将对比结果返回给
proxygen


[0012]本专利技术提供的一种移动端应用防止抓包的方法,基于开源服务器网络库
proxygen
来设计了一套防止代理抓包的方法,对
proxygen

folly
中对证书校验功能逻辑进行修改设计,从整个代理抓包源头到整个链路进行方案改进,增加更为复杂的设计,从而不会轻易被破解

附图说明
[0013]图1为本专利技术提供的一种移动端应用防止抓包的方法流程图

具体实施方式
[0014]为使本专利技术实施例的目的

技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚

完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例

基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围

另外,本专利技术提供的各个实施例或单个实施例中的技术特征可以相互任意结合,以形成可行的技术方案,这种结合不受步骤先后次序和
/
或结构组成模式的约束,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时,应当认为这种技术方案的结合不存在,也不在本专利技术要求的保护范围之内

[0015]图1为本专利技术提供的一种移动端应用防止抓包的方法流程图,如图1所示,方法包括:
[0016]步骤1,在移动端应用中集成开源网络库
proxygen
,所述开源服务器网络库
proxygen
的源码结构包括底层的
openssl

、openssl
层之上的
folly
层和
folly
层之上的
proxygen
层,其中,
folly
层中封装了网络套接字接口

[0017]可理解的是,本专利技术基于开源服务器网络库
proxygen
来设计了一套防止代理抓包的方法,本文从整个代理抓包源头到整个链路进行方案改进,增加更为复杂的设计,从而不会轻易被破解

本专利技术之所以选择开源服务器网络库
proxygen
,包括以下几点原因:
[0018]原因1则是
proxygen
是使用
c++
开发的一套用于服务器的网络库因此其无法直接用于移动端,因此目前没有那个
APP
厂商使用该库做为网络库

[0019]原因2则是该网络库进行适配则可以用于移动端

[0020]原因3则一个是其在现有
APP
应用中很少有使用该网络库所以对该网络库不熟

[0021]原因4则是因为没有
APP
使用该网络库,所以网络上没有相关如何破解的等资料;从而要想破解其抓包方案则比较困难

[0022]原因5则是该网络库对证书相关的功能封装在开源的
folly
库中,而该
folly
库则是使用
reactnative(
一种开源的跨平台框架,几乎绝大部分跨平台都使用了该框架做为跨平台框架
)
组件的基础库,从而我们的防止抓包核心是对本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种移动端应用防止抓包的方法,其特征在于,包括:在移动端应用中集成开源网络库
proxygen
,所述开源服务器网络库
proxygen
的源码结构包括底层的
openssl

、openssl
层之上的
folly
层和
folly
层之上的
proxygen
层,其中,
folly
层中封装了网络套接字接口;改造开源网络库
proxygen

folly
层加入证书校验功能;移动端通过
folly
层中的网络套接字接口连接服务器,向服务器发送网络请求,并接收服务器下发的证书相关信息,所述证书相关信息包括公钥信息和链接域名信息;根据所述公钥信息和链接域名信息,在
proxygen
层的代码中的表格中查找对应的
hash
算法和
hash
结果;通过
folly
层调用
openssl
层,基于
hash
算法对公钥信息进行
hash
运算,得到对应的
hash
结果;将计算的
hash
结果与表格中的
hash
结果进行对比,将对比结果返回给
proxygen

。2.
根据权利要求1所述的移动端应用防止抓包的方法,其特征在于,所述在移动端应用中集成开源服务器网络库
proxygen
,包括:通过修改开源服务器网络库
proxygen
中的
cmake
,使用交叉编译来编译出
iOS
平台的静态库以及
android
平台的动态库
so
文件,以分别适用于
iOS
平台和
android
平台;其中,开发
JNI
接口注册到
java
层,通过
java
层接口调用
proxygen
层提供的接口实现网络请求,在
android
平台输出
proxygen.so
文件,该文件包含所有网络库功能以及其依赖的基础库
openssl.so
文件;对
proxygen

C++
接口包装一层
Objective

C
语言的
iOS
接口,以适配
IOS
平台
。3.
根据权利要求1所述的移动端应用防止抓包的方法,其特征在于,所述改造开源网络库
proxygen

folly
层加入证书校验功能,包括:在开源网络库
proxygen
中存储服务器所有证书公钥的
hash
值,并在
proxygen
代码中对
hash
值进行加密存储到
proxygen
代码中,证书和域名具有对应关系;其中,将域名

证书公钥信息
、hash
算法以及
hash
结果存到到表格中,将表格以局部变量的形式存储到
proxygen
代码中
。4.
根据权利要求3所述的移动端应用防止抓包的方法,其特征在于,所述将表格以局部变量的形式存储到
proxygen
代码中,包括:在
proxygen
代码中且在局部变量表格的前后均插入相同的特征汇编代码,以定位到表格的起始地址和结尾地址;相应的,根据所述公钥信息和链接域名信息,在
proxygen
层的代码中的表格中查找对应的
hash
算法和
hash
结果,包括:在
proxygen
代码中通过特征汇编代码定位到表格;根据所述公钥信息和链接域名信息,在定位到的表格中查找对应的
hash
算法和
hash
结果
。5.
根据权利要求4所述的移动端应用...

【专利技术属性】
技术研发人员:吴益新刘勇王鹏丁唯奇
申请(专利权)人:行圆信息科技厦门有限公司
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1