问下安卓如何防止 root 下抓包, app 接口请求并没有做加密措施

2021-09-16 18:14:03 +08:00
 shiguiyou

要改接口的话,加密每一个接口改动比较多,隐私整改需要快速上线

17036 次点击
所在节点    Android
75 条回复
illl
2021-09-17 01:17:58 +08:00
post 的内容用 aes 加个密,后端再解密。不过需要考虑后端的开销
eason1874
2021-09-17 05:02:35 +08:00
非侵入式的改造:套一个 API 网关去实现加密和鉴权

APP <SSL 双向认证、应用级加密> API 网关 <解密、内部通信> 原本真实 API 地址
MoeMoesakura
2021-09-17 08:50:34 +08:00
@ysc3839 那确实,但是要是还有绕过 magiskhide 的法子呢(?)
硬件确实好,但是成本略高(?)
MoeMoesakura
2021-09-17 08:51:54 +08:00
@MoeMoesakura 呸,比 magiskhide 再高明一点的绕过
ysc3839
2021-09-17 08:53:32 +08:00
tanranran
2021-09-17 08:55:16 +08:00
只要数据不加密,安卓不管任何版本都有办法抓包。判断 root 什么之类的,都可以绕过的

最好的办法就是数据流二次加密
weixiangzhe
2021-09-17 08:56:05 +08:00
银行和支付宝我都试过,银行类 root 后抓的了,支付宝官方页面貌似有校验 https 证书搞不定,可以可以试试
meshell
2021-09-17 09:05:00 +08:00
我上次直接 root 用 frida 都不用抓包
sadfQED2
2021-09-17 09:08:56 +08:00
@shiguiyou 我们目前的整改方案
1.数据库储存内容加密
2.传输层 ssl pin
timethinker
2021-09-17 09:59:50 +08:00
这个应付一下领导就行了,技术上实现绝对的安全是不可能的,只要你的 APP 在我的设备上能跑,加不加密都没啥区别,只是时间问题。终端的安全问题不需要考虑在内,https 也只是为了防止中间人。
MoeMoesakura
2021-09-17 10:06:33 +08:00
@ysc3839 thx,我 naive 了
kiotech
2021-09-17 10:18:23 +08:00
不防抓包,只保证请求内容不被串改便可
Visitor233
2021-09-17 10:28:05 +08:00
其他程序不知道,但我在非 root 下抓过微信小程序的包。开发时忘了写日志,接口出现异常直接抓包复原现场。
acbot
2021-09-17 10:31:44 +08:00
你只能是自己实现一套传输协议不使用 http 或者是内容加密后基于 http 传输,因为常规的 ssl 只能保证终端设备和服务器之前的传输安全,到你本机已经解密了并且设备本身又是 root 过的所以要抓 http 包很容易。
fregie
2021-09-17 10:39:08 +08:00
@rbq123456
可以在 app 内加入一个 https 证书,不信任系统证书。
最简单可靠的方案。
2bNot2b
2021-09-17 10:45:26 +08:00
@x86 #33 大佬!
geshenjibigmail
2021-09-17 10:55:51 +08:00
需要安卓保活吗?最强黑科技
azhangbing
2021-09-17 12:43:55 +08:00
我们是双向证书 签名得逻辑写 SO 里 SO 用 LLVM 混淆 ,OKHTTP 可以配置 OkHttpClient client = new OkHttpClient().newBuilder().proxy(Proxy.NO_PROXY).build (); 系统的可以 URL url = new URL(urlStr);
urlConnection = (HttpURLConnection) url.openConnection(Proxy.NO_PROXY); 用这个属性 Charles finder 这种中间人代理抓不了包 wireshark 还是可以抓的
azhangbing
2021-09-17 12:49:44 +08:00
如果是安全性再高就检测 frida,,这就是后话了 看你们 APP 的安全级别有多高了 银行应该都会检查的
clf
2021-09-17 13:03:12 +08:00
这个不可能做到无法检测的,不过简单点的做法就是 https 请求里的 body 内容二次非对称加密,从客户端到服务器间的通信全是传递的密文。

不过解密的过程在客户端,理论上 root 了也是可以拿到的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/802359

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX