标签: root

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

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

工信部*近查 app 的“隐私整改”(权限之类的),我们是免费阅读 app,然后领导的意思是查我们的 app 的时候发现 root 下数据传输是明文数据,对用户不好。应用已经存七八年了,改接口的话时间上来不及,领导要早点上线
目前就是用的 https,但是由于项目时间久,架构老,不统一,也是才接手的项目,改动所有接口有点危险,还要全量测,跟后端配合,已经被暂时否定这个方案了
找到一个快捷方法:禁止代理
connection = (HttpURLConnection) url.openConnection(Proxy.NO_PROXY);
如果只是防止抓包应该有效果,明天有空再看下信任证书,证书固定啥的方法

65 条回复    2021-09-17 18:58:58 +08:00

SenLief
    1

SenLief   1 天前

解锁了 root 的手机不能运行。
MoeMoesakura
    2

MoeMoesakura   1 天前

@SenLief 不现实:MagiskHide
rbq123456
    3

rbq123456   1 天前

可以在 app 内加入一个 https 证书,不信任系统证书。
ch2
    4

ch2   1 天前

安卓处处都有内鬼,IOS 越狱了也一样,frida 了解一下
除非你自己搞 tcp 协议+非常恶心人的加密方法
1018ji
    5

1018ji   1 天前

双向认证先整下

后端限制下 IP,弹验证中心

SenLief
    6

SenLief   1 天前

@MoeMoesakura 那就没啥办法了,抓包模拟的也算是正常的操作,这怎么识别。除非不认可系统的证书。
PMR
    7

PMR   1 天前 via Android

写死证书 hash 不对应不连接

不方便证书迭代

AoEiuV020
    8

AoEiuV020   1 天前

不可能的,无论如何实在不行人家也可以在路由器抓包,
locoz
    9

locoz   1 天前

你要说防非 root 环境下的抓包还可以,root 环境下的抓包你就别做梦了,随便就干翻…即使是腾讯维纳斯那种外面套层私有协议的做法,也只能是缓解一下,真要搞的话花点时间一样能搞。
zoharSoul
    10

zoharSoul   1 天前

不可能, 人家大不了在路由器抓
XiLingHost
    11

XiLingHost   1 天前

每次会话从服务端生成一个代理解密的一次性二进制文件,写死证书哈希
zhangdeplives
    12

zhangdeplives   1 天前

除非你只信任特定的证书,连系统证书都不信任,否则无解吧
efaun
    13

efaun   1 天前

自建协议
ctro15547
    14

ctro15547   1 天前

没加密想抓总有办法的 建议加班加密
est
    15

est   1 天前

> app 接口请求并没有做加密措施

就这一条就已经死刑了。别想办法了。建议放弃。不用 root 都能直接抓

ikas
    16

ikas   1 天前

这种需求就不现实
starsky007
    17

starsky007   1 天前 via Android

没人关注楼主用途吗?什么“隐私整改”?
deavorwei
    18

deavorwei   1 天前   ❤️ 2

电脑开热点给手机不就能抓了 ~
jim9606
    19

jim9606   1 天前

哪家隐私整改会要求这个,上 https 不就完了?
yolee599
    20

yolee599   1 天前 via Android

手机抓不了还能直接在路由器抓
2i2Re2PLMaDnghL
    21

2i2Re2PLMaDnghL   1 天前

ssl pinning
到底是谁让你隐私整改,你就算自己设计协议,都 root 了直接 hook 函数不好吗?
sadfQED2
    22

sadfQED2   1 天前 via Android

应该不是隐私整改吧,我们*近也在隐私整改,但是整改的是所有日志,数据库内容,传输层只要上了 https 就没问题
cweijan
    23

cweijan   1 天前

想要完全屏蔽是不可能的, 只能增加抓包难度, *好的方式就是强制验证 HTTPS 证书.
shiguiyou
    24

shiguiyou   1 天前

@starsky007 append 了,领导说抓包发现是明文,我也不知道是领导的意思还是工信部的意思,不管谁的意思,都要改…
shiguiyou
    25

shiguiyou   1 天前

@sadfQED2 分配到我的任务就是数据传输加密,其他小伙伴是其他的隐私问题修改
lait
    26

lait   1 天前 via Android

你把请求参数简单加密一下,不就非明文了嘛。隐私整改检测的时候它也不会去破解你的加密算法。
ysc3839
    27

ysc3839   1 天前 via Android

所以真实情况是程序和服务器通信没有加密吗?那改用 https 不就好了?
ysc3839
    28

ysc3839   1 天前 via Android

@MoeMoesakura #2 MagiskHide 已有办法检测,还有 hardware attestation 。
shiguiyou
    29

shiguiyou   1 天前

@jim9606 就是 https,但是抓包工具可以在 root 的情况下抓到明文数据,接口没加密导致
shiguiyou
    30

shiguiyou   1 天前

@lait 改接口来不及,因为 app 存在时间长,换了十几波人了,架构老,还不统一,还需要重新全量测试
WebKit
    31

WebKit   1 天前 via Android

不 root 都能抓包啊
WebKit
    32

WebKit   1 天前 via Android

@PMR hack 下改一下就可以了
x86
    33

x86   1 天前

嗯?
https://imgur.com/5wxbDy6
wooyuntest
    34

wooyuntest   1 天前

即使你改了接口,那以前的老版本全部连不上服务端了? 这个代价能接受吗?
shiguiyou
    35

shiguiyou   1 天前

@wooyuntest 对,不能改…
wooyuntest
    36

wooyuntest   1 天前

@wooyuntest 如果能接受这个代价的话,可以新发一个版本。app 中将所有 http 请求的 header 、body 和后端约定好格式以及加密方式,将加密后的密文通过 https 发送到后端,后端再接口上部署一个 apigateway 负责解密发送过来的密文以及转发给真正的后端接口。
这个方案能在不改动服务端的情况下,完成这个需求,但还有许多细节需要考虑,比如加密密钥的生成,每个请求一次一密,每次请求加密密钥的传输等等问题。
jim9606
    37

jim9606   1 天前   ❤️ 3

只要你是用正常的方式使用 HTTPS,使用系统证书库且 TargetAPI>=24,所谓的 root 下明文只是被 root 篡改系统证书存储区后 MITM 了,传到网上流量依然是加密的,服务器可以禁止明文 HTTP 访问。

骗领导的方法是将报文用 base64 编码后用一个硬编码密钥 xor 一下,服务器还是得加个 api proxy 。

别的方法我就不推荐了,通过 root 安装证书搞 MITM 这种事都不应该是常规 APP 该去预防的事。其他诸如 HPKP 还有硬编码信任根都有不小的运维风险。

HarryQu
    38

HarryQu   1 天前

工信部要求你们整改时,会给你们个文档,说明整改内容。

首先我们明确下需求:我们不是为了防止 Root 抓包,而是为了绕过工信部的审核。

那么问题在哪里呢?是在用户登录页面。工信部说的应该是是用户登录时,用户账号、密码是明文传输。

事实上你需要做的只是和服务器升级下接口即可,例如只需要将登录时账号、密码经过编码后,传递给服务器,服务器解码后,登录即可。

工信部也是委托第三方做的检测。第三方检测很恶心,它还会检测用户登录页面,然后弹出一个透明 Activity,骗用户输入账号、密码,还会要求你做防劫持。

HarryQu
    39

HarryQu   1 天前

我们 App 当时是被粤通网检测到违规。
coolcoffee
    40

coolcoffee   1 天前

我觉得后端加一个网关或者中间件,然后前后端都用 RSA 单向公私钥加解密。没有什么是*对安全的,但这个已经拦住*大部分只会使用 Charles 、Fiddler 的工具小子了。

然后实施起来的话,接口做好新老版本共存机制。先尝试走加密协议,要是出错了就降级到明文协议。 这样至少过整改够了,万一整出问题还能有个补救。

illl
    41

illl   1 天前 via iPhone

post 的内容用 aes 加个密,后端再解密。不过需要考虑后端的开销
eason1874
    42

eason1874   1 天前

非侵入式的改造:套一个 API 网关去实现加密和鉴权

APP <SSL 双向认证、应用级加密> API 网关 <解密、内部通信> 原本真实 API 地址

MoeMoesakura
    43

MoeMoesakura   1 天前

@ysc3839 那确实,但是要是还有绕过 magiskhide 的法子呢(?)
硬件确实好,但是成本略高(?)
MoeMoesakura
    44

MoeMoesakura   1 天前

@MoeMoesakura 呸,比 magiskhide 再高明一点的绕过
ysc3839
    45

ysc3839   1 天前 via Android

@MoeMoesakura 建议先了解清楚什么是 hardware attestation
https://www.xda-developers.com/safetynet-hardware-attestation-hide-root-magisk/amp/
tanranran
    46

tanranran   1 天前

只要数据不加密,安卓不管任何版本都有办法抓包。判断 root 什么之类的,都可以绕过的

*好的办法就是数据流二次加密

weixiangzhe
    47

weixiangzhe   1 天前 via iPhone

银行和支付宝我都试过,银行类 root 后抓的了,支付宝官方页面貌似有校验 https 证书搞不定,可以可以试试
meshell
    48

meshell   1 天前

我上次直接 root 用 frida 都不用抓包
sadfQED2
    49

sadfQED2   1 天前 via Android

@shiguiyou 我们目前的整改方案
1.数据库储存内容加密
2.传输层 ssl pin
qwe520liao
    50

qwe520liao   23 小时 53 分钟前

这个应付一下领导就行了,技术上实现*对的安全是不可能的,只要你的 APP 在我的设备上能跑,加不加密都没啥区别,只是时间问题。终端的安全问题不需要考虑在内,https 也只是为了防止中间人。
MoeMoesakura
    51

MoeMoesakura   23 小时 46 分钟前

@ysc3839 thx,我 naive 了
kiotech
    52

kiotech   23 小时 35 分钟前

不防抓包,只保证请求内容不被串改便可
Visitor233
    53

Visitor233   23 小时 25 分钟前

其他程序不知道,但我在非 root 下抓过微信小程序的包。开发时忘了写日志,接口出现异常直接抓包复原现场。
acbot
    54

acbot   23 小时 21 分钟前

你只能是自己实现一套传输协议不使用 http 或者是内容加密后基于 http 传输,因为常规的 ssl 只能保证终端设备和服务器之前的传输安全,到你本机已经解密了并且设备本身又是 root 过的所以要抓 http 包很容易。
fregie
    55

fregie   23 小时 14 分钟前

@rbq123456
可以在 app 内加入一个 https 证书,不信任系统证书。
*简单可靠的方案。
2bNot2b
    56

2bNot2b   23 小时 8 分钟前

@x86 #33 大佬!
geshenjibigmail
    57

geshenjibigmail   22 小时 57 分钟前

需要安卓保活吗?*强黑科技
azhangbing
    58

azhangbing   21 小时 9 分钟前

我们是双向证书 签名得逻辑写 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
    59

azhangbing   21 小时 3 分钟前

如果是安全性再高就检测 frida,,这就是后话了 看你们 APP 的安全级别有多高了 银行应该都会检查的
lychs1998
    60

lychs1998   20 小时 50 分钟前

这个不可能做到无法检测的,不过简单点的做法就是 https 请求里的 body 内容二次非对称加密,从客户端到服务器间的通信全是传递的密文。

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

siyehua
    61

siyehua   19 小时 22 分钟前

你权限类相关,跟你的请求一点关系都没有。工信部是查你调用某个权限相关的声明或者 api 调用,然后被抓住了。并不是分析你请求的数据有没有相关隐私
skye
    62

skye   18 小时 56 分钟前

服务端不配合的话。。。你咋改都没用啊,服务端只能识别明文。
palxie
    63

palxie   16 小时 56 分钟前

感觉你们搞错了方向. 所谓的隐私数据, 应该是用户的联系人短信, 手机 iemi, mac 等这些数据, 好好看下这些有没有读取, 还有一个整改是获取用户的必要信息, 这个看你的 app 就清楚了
GOURIDE
    64

GOURIDE   15 小时 36 分钟前

不 root 都能抓包呢?更别说 root 后了
shiguiyou
    65

shiguiyou   14 小时 54 分钟前

@palxie 都有,只不过我分配到我的任务就是传输数据安全,其他人做的是你说的那些

安卓现在有什么简单不用 Root 的方法可以挂载 NFS 吗?

5 条回复    2021-07-12 
noahhhh
    1

noahhhh   27 天前 via Android

下个 termux,然后在里面装个 Ubuntu 再挂 NFS?
yanqiyu
    2

yanqiyu   27 天前 via Android

@noahhhh 我猜也不行?因为 Android 的内核不太可能有编译进去 NFS,于是 userspace 整不了活。可能 fuse 能研究下能不能用,但是我怀疑 Android 的安全标准是否允许程序访问 fuse

估计要找一下有没有单纯提供 nfs 访问的 app ?

vk42
    3

vk42   27 天前

不用 root 基本不用想了,NFS 现在非全 Linux 原先环境基本已经被抛弃了,SMB 支持都要广泛的多……
vk42
    4

vk42   27 天前

@vk42 原先环境->原生环境……
billccn
    5

billccn   26 天前

只有试试那种 User-mode Linux(把一个内核作为一个普通进程跑)的项目放在 termux 能不能用,不过估计那些是需要 tun/tap 连到物理网卡上,Android 需要编写一个 * wrapper 才行。网上搜到( unix.stackexchange.com/a/46270)不支持内核外 NFS 的主要原因是这个协议需要直接访问文件句柄等操作,在用户空间巨难实现,所以没人想写是正常的。

安卓有专业靠谱的数据恢复软件吗?

看了一下手机端的 app 基本都是鸡肋,稍微可信一点的一般都是 windows 上的软件,通过 usb 调试连接手机进行操作(借助 adb 和 root )。

看到一款 gihosoft android data recovery 好像有点可信,扫描文件也能扫描到很多。但是似乎只能恢复照片、视频、音乐、通讯录、短信、whatsapp 、txt 和 doc 之类的文档。难道没有基于整个存储介质的文件系统的任意文件的恢复吗?类似于电脑上的 diskgenius

7 条回复    2021-01-12 09:31:00 +08:00
zictos
    1

zictos   89 天前   ❤️ 2

已解决,root 后用 dd 命令把 /data 分区的所有内容保存为 img 镜像文件(如没有 dd 命令可通过安装 busybox 或者 termux 后获得)。
获得 img 文件后就可以用电脑上的专业数据恢复软件(比如 R-STUDIO 或 diskgenius )读取并恢复。

https://android.stackexchange.com/questions/208106/how-to-recover-a-deleted-file-from-data-partition

settoo
    2

settoo   89 天前 via Android

可惜 root 对华为手机来说就是没门
zictos
    3

zictos   89 天前

@settoo #2 淘宝上都可以解锁啊,具体可以搜“华为 root”
settoo
    4

settoo   89 天前 via Android

@zictos 记得去年我咨询过好多店,麒麟 970 以后都不能解锁,不知道今年第三方技术是不是进步
zictos
    5

zictos   89 天前

@settoo #4 我也不知道是否真的可以,具体你可以再咨询下
yysiman
    6

yysiman   88 天前

你都 root 为啥还整那么复杂,直接用 twrp 或者钛备份啊
zictos
    7

zictos   88 天前

@yysiman #6 是恢复已格式化的分区或者误删的文件

有用安卓 termux 的吗?

1 、root 搞不定,明明手机 root 了,但安装 pkg install tsu 后提示没 root 。直接输入 su 命令可以获取 root 权限,但 termux 自带的命令基本都用不了了。

2 、外置 sd 卡权限无法获取,据说本来就没办法获取。内置 sd 卡似乎也有很多权限问题,不知道 root 后会不会好点,有时候莫名其妙提示权限问题,chmod 也失败。其他程序就基本没见过权限问题,另一个 app“终端模拟器”就能直接获取 root 权限,另外也没见过其他权限问题。

3 、tasker 调用方面也没试,看了下有个 termux-tasker 的 app 好像是收费的,付费后也不知道能不能成功使用。

4 、很多问题在英文网站也有一些遇到同样的情况的,但大都不了了之。主要是想用 termux 里面的 python,感觉 python 很多包都可以直接 pip 安装,挺不错的,之前用 qpython 就很多包都用不了。

26 条回复    2021-03-10 15:11:51 +08:00
marczhao
    1

marczhao   97 天前 via iPhone

1. tsu 没问题(s9,Android 10,magisk)
2-4.没试过
Ayahuasec
    2

Ayahuasec   97 天前   ❤️ 1

tsu 不兼容但是可以直接用 su 的话,你重新设置一下环境变量好像所有命令就都能用了。
如果没有开低端口的需求的话,可以不用 root,可以 termux 里按一个 proot 的 debian 或者 centos,然后在 proot 里面折腾,可以避免很多因为环境依赖所引起的问题,毕竟这样像 WSL 一样相当于一个完整的 Linux 子系统。
Internal Storage 的话给了应用权限以后,还要在 termux 里面运行 termux-setup-storage 获取权限和设置路径,之后在~/storage/shared/目录里面访问。External Storage 好像是 root 了以后在 /storage 还是 /sdcard 里面,不过外置 sd 卡我也没试过,你可以找找看。
zictos
    3

zictos   97 天前

@marczhao #1 那可能系统问题,看来我得刷机升级系统后再试试
systemcall
    4

systemcall   97 天前   ❤️ 1

装个 tmoe,里面装个 ubuntu,连 root 都不用,电视上面都跑得了
没什么别的需求的话,不要用内置 SD 卡。内置 SD 卡现在是虚拟出来的,本来就不太能支持权限的设置。而且性能低
TypeError
    5

TypeError   97 天前 via Android

调用 tasker 没任何问题,我弄了个脚本组合 YouTube-dl 和 you-get,分享链接就能下载各个网站视频
zictos
    6

zictos   97 天前

@Ayahuasec #2
@systemcall #4
不 root 的话就算装 linux 应该也操作不了系统文件,那些能操作安卓系统的命令也用不了,只能在装的 linux 的内部用。一般有哪些作用呢?感觉这样的话就像远程 linux 服务器一样。如果是在后台跑原生 linux 程序应该比较耗电吧?

一般安卓内部 sd 卡是指的 /storage/emulated/0/, 很多程序都会把一些占空间比较大的数据保存到这里,默认就有访问权限。但 termux 好像只有专门的目录才有完全的权限,不知道为什么跟其他程序不一样。外置 sd 卡有的在 /storage/extSdcard/ 下面,这个就是额外插入的外置存储卡

zictos
    7

zictos   97 天前

@TypeError #5 是用“termux-tasker”让 tasker 调用的吗?应该没其他方案了吧!
ysc3839
    8

ysc3839   97 天前 via Android

@zictos 我建议不要用“内置 SD 卡”这个称呼,我的惯用称呼是“共享存储空间”。从 Android 6 开始,需要授权存储空间权限才能访问的。

你说的“只有专门的目录才有完全的权限”,应该指的是应用程序的私有存储空间,这个才是无需授权即可访问的,同时也是每个应用独立隔离的。

zictos
    9

zictos   97 天前

▃▃▃▃
通过添加环境变量的办法非常好用,非常感谢 @Ayahuasec 。
只要添加环境变量之后就可以完全无视 termux 了,termux 自带的一些 linux 命令(没有的命令也可以安装)以及 python 都可以直接去“终端模拟器”或者 tasker 中运行了,并且 termux 不需要后台运行。
▃▃▃▃
只是安卓目前只能临时添加环境命令,每次启动终端都需要设置一下环境变量,暂时没找到永久的办法。
目前这样操作,在根目录 /新建一个 path 的文件,输入下面的两行内容:
export PATH=/data/data/com.termux/files/usr/bin:/data/data/com.termux/files/usr/bin/applets:$PATH
export LD_LIBRARY_PATH=/data/data/com.termux/files/usr/lib
▃▃▃▃
以后只需要在 root 权限下在终端中输入. /path 就可以直接添加环境变量了,注意有个点以及一个空格,代表执行根目录下的 path 文件。“终端模拟器”也可以设置启动时自动执行. /path,这样只要一启动就默认添加上环境变量了,直接输入 python 之类的命令就可以运行 python 了。
.
.
.
.
.
▃▃▃▃
①tasker 调用:添加任务,选择代码–运行外壳(勾选使用 root ),输入类似下面的代码就可以执行 python 文件:
. /path #添加环境变量
python test.py #运行名为 test.py 的 python 脚本

▃▃▃▃
②tasker 中不使用 py 文件的情况下直接运行多行 python 代码:添加任务,选择代码–运行外壳(勾选使用 root,可选择将输出保存到变量),在三引号内输入类似下面的代码就可以直接执行多行 python 代码:
. /path
python -c ”’
a=1
b=2
c=a+b
print(c)
”’
▃▃▃▃
③像上面那样直接写对于偶尔调用下比较方便,if 或复杂的循环逻辑都可以写到里面,只是比较容易出错。我刚 windows 输入后粘贴过去就报错,可能是换行符的问题,手动输入就没问题。

zictos
    10

zictos   97 天前

@ysc3839 #8 只是“共享存储空间”一般更难让人理解吧,除非安卓开发者才能一下子就知道什么意思。嗯,的确是需要授权,只是一般都会同意授权的,所以我才说默认能访问。的确我看了下 termux 好像默认是没有申请共享存储空间权限的,有一条命令可以设置,但设置后权限好像有时有用,有事没用,也不知道到底怎么回事。现在好了,可以完全无视 termux 了,具体见 9 楼,我提的几个问题也都完全解决了
3dwelcome
    11

3dwelcome   97 天前 via Android

sdcard 没权限的,这是安卓限制,不是 termux 的缺陷。
用 termux-setup-storage 可以正常访问读写 sd 。
root 的话,我一般用 proot,因为手机不想越狱。但好像 root 的手机用也没问题,正常访问 /data 系统目录。
zictos
    12

zictos   97 天前

@3dwelcome #11 你说的 sdcard 是指自己插的外置内存卡吗?这个默认没权限,但可以手动授权的,大部分 app 在没权限的时候都会提示需要手动授权,也就是会弹出系统界面,然后选择内存卡的根目录就是授权了。但是 termux 却根本不会弹出任何要求授权的提示
codehz
    13

codehz   96 天前

@zictos #12 termux-setup-storage 会弹框啊(不过要先装 api 那个(
zictos
    14

zictos   96 天前

@codehz #13 termux-setup-storage 是获取自带存储的权限,但自己插的内存卡是不会弹窗让授予权限的
icelo
    15

icelo   96 天前

死在了 root
3dwelcome
    16

3dwelcome   96 天前 via Android

我和 14 楼一样,termux 能正常读写 sdcard,也就是自己插的 tf 卡。
可能楼主不行吧,不能说所有人都不行。
3dwelcome
    17

3dwelcome   96 天前 via Android

和 13 楼一样,有提示。
zictos
    18

zictos   96 天前

@3dwelcome #17 一般弹窗仅仅允许的话应该是允许内置 sd 卡权限,但自己插的卡是 app 弹出提示后需要到系统的资源管理器页面选中插的 tf 卡才可以的,反正我的手机所有 app 都是这样的,哪怕有 root 权限也默认不能访问自己插的卡。
不过反正现在我无所谓了,直接无视 termux 了,具体见 9 楼
3dwelcome
    19

3dwelcome   96 天前

@zictos 我觉得还是你搞错了,你 google 一下 termux-setup-storage,官方是这个页面 https://wiki.termux.com/wiki/Termux-setup-storage,很明确的写着~/storage/external = external storage, 肯定不是内置 sd 卡权限。

内置的叫 internal storage, 外置的叫 external storage,termux 支持的是后者。

zictos
    20

zictos   96 天前

@3dwelcome #19 那个网页的确是说会在外部存储卡创建一个文件夹,并且~/storage/external 是通过 Symlink 符号链接指向那个外部存储卡中创建的文件夹。但我的手机上实际并没创建,使用 cd ~/storage/external 提示不存在目录。

而且不明白为什么要搞什么复杂呢?直接用完整路径访问外部存储卡岂不是更方便?言下之意是不是说就算真的在那个外部存储卡创建了一个文件夹,那也只有那个创建的文件夹才能访问,外部存储卡的其他文件夹无法访问吧?

3dwelcome
    21

3dwelcome   96 天前

我这里是可以顺利访问读取 TF 卡上的所有外部文件,好像正常 APP 只要获得授权后,都能访问吧,没你想的那么复杂。
3dwelcome
    22

3dwelcome   96 天前

我的权限问题,是 TF 卡上不能把 elf 设置成可执行权限。这点好像其他 APP 也不可以,只能单纯当个外置存储盘来读写。
zictos
    23

zictos   96 天前

@3dwelcome #21 正常 app 获得授权是都可以访问的,只是 termux 跟正常 app 的授权方式不一样。我不知道你的手机是怎么给正常 app 授权的,是弹出一个系统的资源管理器,然后在资源管理器中选中 tf 卡吗?我的手机都是这样的。但 termux 并没弹出系统的资源管理器,如果不用弹就能授权,那其他 app 又何必弹出呢。

并且我前几天看到一个网页好像是说 termux 无法获取 tf 卡的权限,大致意思就是说是什么单纯命令行程序无法获取 tf 卡的权限,只有正常的界面的程序才可以获取,但“终端模拟器”也属于命令行程序,它照样可以获取 tf 卡的权限。

3dwelcome
    24

3dwelcome   96 天前

那可能是 termux 没完美兼容你的手机。
我是 termux 的老用户了,android7.0 安装过,android5.0(root)安装过,android10.0 安装过,华为平板的 android9.0 也安装过,基本上没出过什么大问题,就按照官方的教程来,termux-API 都能调用。
很早以前,termux 老版本会有一些奇怪的问题,需要手动安装一些 deb 软件。升级到新版后,这个问题就消失了。
fox0001
    25

fox0001   37 天前 via Android

一直都在 Lineage OS 上跑 termux,木有楼主的问题。另外,从 F-Droid 下载,termux 全家桶都是免费的
imgbed
    26

imgbed   31 天前

安卓有这个: https://m3w.cn/wyspxz

微信的指纹支付能否开通是厂商还是微信说了算?

*近逛锤子论坛发现居然有教学 【通过 Tasker (非 root )方式解决微信指纹支付支付】,好奇搜了下,不能微信指纹支付的安卓手机还挺多,包括华为、小米。

之前 iPhone 越狱发现需要flyJB这类插件屏蔽越狱检测才能开启指纹支付、扫脸这些,这能理解。 但是支持指纹识别的 Android 手机,没有 Root,微信居然也不让用指纹,在这上面微信居然还有话语权?它是靠什么判断的?

 

64 条回复    2021-04-06 09:19:28 +08:00
codehz
    1

codehz   95 天前 via Android   ❤️ 1

需要厂商放根证书,然后在每个 app 上都开一个 Soter Service
kindjeff
    2

kindjeff   95 天前   ❤️ 24

众所周知腾讯游戏在 Android 上跑的帧率的高低也不由厂商的硬件性能决定而是由腾讯决定
wgbx
    3

wgbx   95 天前

看谁影响用户的力大,代码获取设备型号也挺简单的吧?
imdong
    4

imdong   95 天前

一边厂商设备要跑高帧率要通过交税来提高,一方面应用商店游戏提成 50%。

赤果果的互相伤害,可是鹬蚌相争,伤及渔夫。

zxcslove
    5

zxcslove   95 天前

腾讯不讲究,要拿指纹数据吧。如果是手机支持,那么每个录入的指纹都可以,微信的那就必须是微信录入的那一个才能用。
zxcslove
    6

zxcslove   95 天前

很多银行 app 都是所有录入指纹都能用的,为啥腾讯高人一等,不要脸。
vk42
    7

vk42   95 天前

关键在接口,原生 Android 里面 Google 搞了一套 biometric API,但是国内厂商自己又单独搞了一套。手里的 Pixel 用国外 app 指纹没有任何问题,国内 app 一个都不行……
tanranran
    8

tanranran   95 天前   ❤️ 2

腾讯的指纹标准

https://github.com/Tencent/soter

TENCENT SOTER 是腾讯于 2015 年开始制定的生物认证平台与标准,通过与厂商合作,目前已经在一百余款、数亿部 Android 设备上得到支持,并且这个数字还在快速增长。

目前,TENCENT SOTER 已经在微信指纹支付、微信公众号 /小程序指纹授权接口等场景使用,并得到了验证。

接入 TENCENT SOTER,你可以在不获取用户指纹图案的前提下,在 Android 设备上实现可信的指纹认证,获得与微信指纹支付一致的安全快捷认证体验。

tanranran
    9

tanranran   95 天前

@tanranran #8 需要厂商配合微信,而不是微信配合厂商
wangbenjun5
    10

wangbenjun5   95 天前

我感觉这块搞点有点复杂,指纹模块应该是一种硬件,大概类似于摄像头模块,只要符合摄像头相关接口的标准就可以调用

比如说手机用前置摄像头解锁或者面容支付,那我作为 App 开发者,只需要调用摄像头获取相机拍照的结果就行了,为什么还要关心用的是哪家摄像头呢?

强行把硬件和软件标准耦合在一起只会更麻烦,毕竟安卓是一个开放平台,又不是 ios 苹果一个人说了算,总之,腾讯垃圾

a5b6c7d8
    11

a5b6c7d8   95 天前 via Android

非得用腾讯产品?
miyuki
    12

miyuki   95 天前 via iPhone

一加也是,从 7 系列开始,只要解锁 bl 就没法用微信的指纹了,支付宝不影响
Maskeney
    13

Maskeney   95 天前

那当然是沆瀣一气,用户悲惨
john6lq
    14

john6lq   95 天前

@miyuki 这个无可厚非,关键啥都没干它也不支持,这就逼着厂商去跟他们对接。
mmdsun
    15

mmdsun   95 天前 via Android

@miyuki xposed 框架有个插件可以强制开指纹。
john6lq
    16

john6lq   95 天前

@a5b6c7d8 就事论事而已。真要说,用微信支付基本是被逼的,还是支付宝用的多。
john6lq
    17

john6lq   95 天前

@tanranran 果然。看了一下,腾讯说它是基于 Android 提供的接口进行的加密封装,并且”只是针对这些接口和厂商进行合作,进行了很强的安全加固”,我看就是加了个服务器校验以及可以拿到用户是用哪个手指进行的操作。这不就是流氓嘛,还是为了拿数据。而且居然国内几乎所有厂商都接入了。
love
    18

love   95 天前 via Android

还有这回事啊,可是我的小米是可以微信指纹的
treblex
    19

treblex   95 天前

没办法,毕竟钱要被盗刷了 手机厂商也不可能给赔,只能做做风险控制
czk1997
    20

czk1997   95 天前 via Android   ❤️ 3

微信说了算的。Android 都有现成的 API,但是腾讯和阿里又自己搞了一套。美行手机拿到国行就用不了(比如三星),硬件基本是一致的。银行 app 都可以用指纹,就这俩用不了。纯属有病。
eGlhb2Jhb2Jhbw
    21

eGlhb2Jhb2Jhbw   95 天前

还是安卓碎片化太严重了,谁能确保某些垃圾系统的安全性。忘了是哪个厂家了,刚做屏下指纹的时候,随便根火腿肠都能刷开。
norz
    22

norz   95 天前

指纹行业相关
lry
    23

lry   95 天前

之前菊花和企鹅指纹闹掰,传闻是企鹅想要菊花把指纹数据上传到企鹅服务器
*近菊花和企鹅游戏闹掰,也有传闻是企鹅是想要拿菊花用户的人脸识别数据
580a388da131
    24

580a388da131   95 天前

安卓上微信说了算 安卓那环境确实不安全 不信任腾讯纯粹是他们自己作孽太多
fanfpy
    25

fanfpy   95 天前

米九 se 解锁 bl 支付宝可以指纹支付,微信不可以
norz
    26

norz   95 天前   ❤️ 11

@norz 科普一下吧
先说结论,主要还是厂商做的选择
安全支付首先得知道两个大环境,REE 和 TEE,REE 是指 Real Execution Environment 真实执行环境,TEE 是指 Trust Execution Environment 可信执行环境。如果一个手机要支持指纹支付,就必须要有 TEE,TEE 可以简单的理解为绑定在某个独立 CPU 上,并且单独划分了独立的内存区域,不与 REE 有任何硬件共享的小型操作系统,Android 是不会提供的这方面支持的,而且也不是免费的。买高通套件,高通自带 QSEE (高通自己开发的 TEE ),如果是 MTK,那你就得自己去找 TEE 提供商买服务,主流是 Trustonic 、豆荚、瓶钵、trusty,这些都是厂商花钱才行,具体多少钱,反正也是按设备数收取的。
有了 TEE 环境,才轮到上面说的 SOTER,SOTER 本身标准出台也比支付宝的 IFAA 晚,所以有一些早期机型,由于 TEE 提供商未能集成 SOTER,导致不能支持微信支付。
去搜索了一下,可以看看这个 https://cloud.tencent.com/developer/article/1043485
据我所知,只是需要去支付宝和微信申请一下,拿到开发文档和测试 APK,都是免费的。只是对于厂商来说,都是麻烦事儿,多了测试流程,还要改产线。
kokutou
    27

kokutou   95 天前 via Android   ❤️ 1

米 10 解锁 bl 刷了 eu 版 rom
微信指纹没问题。我之前的米 8,米 9 刷了 eu 都没问题。
米 9 后来的魔趣 rom 也解决了微信指纹。lineageos 之类的 rom 微信指纹就不要想了。

美团,支付宝都能用 lineageos 这种原生 rom 的指纹接口,就 tm 微信不行。

但是微信上骗子*多,微信上钱被骗了 100%追不回来。
微信号说封就封。
腾讯人工服务永远找不到。

这就是 tm 的腾讯。

norz
    28

norz   95 天前   ❤️ 3

@norz
另外对于出海外的机器,TEE 还得支持 FIDO,这个是 VISA/MASTER 支付的要求,也是 Google 的测试项。
对于指纹或者人脸识别厂商来说,FIDO/IFAA/SOTER 其实都是在 TEE 中增加了自己的 TA ( Trust Application ),然后指纹厂商提供自己的 TA,当得到结果后,通过 TEE 内部的 TA 间交互接口将识别结果传递过去而已。所以楼上说微信、支付宝能拿个人数据的,也不可信。
px1396
    29

px1396   95 天前

@vk42 招行的 App 可以
norz
    30

norz   95 天前

@norz
至于楼上提到各种 rom 对于指纹支持的问题,要么是 rom 提供的 trustzone.img 或者 tee.img 不支持 soter,要么就是 rom 提供的 keymaster/keystore 是修改过的,因此无需 TEE 环境提供校验。前者可能性更大,但是从技术手段上来说,root 了一切都可行,第二种虽然风险高,但是一劳永逸…
Infinite2K
    31

Infinite2K   95 天前

@miyuki 这么狠,我的 7pro 当初首发没解锁 bl,之后一直想解锁但是数据太多不敢动,你这么一说我更不好解锁了
ntgeralt
    32

ntgeralt   95 天前

很明显,是微信评测你手机指纹综合素质后决定是否下放
fline
    33

fline   95 天前

党领导一切
passerbytiny
    34

passerbytiny   94 天前 via Android

*终决定权当然是微信,就比如你买东西能不能刷卡也是商家说了算(只不过有了 POS 机就必须能刷卡,因为给不给 POS 机是人行 /银监会说了算)。

当然看楼上的情况,微信就干了“装了 POS 机却只让刷部分卡”的事。

zsyld
    35

zsyld   94 天前

任何将生物信息传到服务器的厂商都是垃圾
HankAviator
    36

HankAviator   94 天前

@vk42 种种原因手机机型改成了 Pixel,用改机型的模块给微信返回个热门国产手机,指纹就可以用了,例如米 6
wy315700
    37

wy315700   94 天前 via iPhone

@norz 整个楼只有你是在分析技术 然而好像并没有人看
john6lq
    38

john6lq   94 天前 via iPhone

@wy315700 我觉得说服不了我,厂商还是要与微信对接,照这样下去,字节搞一个,美团搞一个,各个银行搞一个,做手机的不得疯了?这不扯犊子呢?人家国外咋没这么多幺蛾子?
john6lq
    39

john6lq   94 天前 via iPhone

@codehz 之前不了解,回头一看,发现一楼其实是“扫地僧”,只不过没有评价而已。瑞思拜。
hhyygg
    40

hhyygg   94 天前 via Android

学习了,真有意思
HankAviator
    41

HankAviator   94 天前   ❤️ 1

@norz “Android 是不会提供的这方面支持的,而且也不是免费的。”
Trusty 怎么就收费了呢?安卓官方:“资金成本加上不可靠的第三方系统会导致 Android 生态系统不稳定。我们将 Trusty 作为一种可靠且免费的开源替代方案提供给合作伙伴,用于替代其可信执行环境。Trusty 可提供通过封闭源代码系统无法实现的透明性。”
https://source.android.com/security/trusty
alfchin
    42

alfchin   94 天前 via iPhone

@HankAviator 我个人认为,不可 OTA 的东西开源才是*大的不安全因素。大幅度降低了针对性攻击的难度。
admingyu
    43

admingyu   94 天前   ❤️ 1

楼上一些回复看着真是…

如果像是摄像头一样,可以获取用户的脸部,自己对比校验是很方便听上去很好,

那是不是说 APP 就可以以指纹验证的理由,获取用户指纹原始数据?,那这个数据泄露了(或者说故意)拿去干一些违法的事情,这个后果谁来承担呢?人脸识别盗刷的事情还少吗

如果有厂商能制定一套值得信任的接口,APP 只能调用这个接口,只能拿到指纹校验的结果,对于用户来说,安全性能不比你自己拿用户的指纹原始数据做事情更高?

开发者不要总想着怎么方便怎么来,要有责任感

jjpprrrr
    44

jjpprrrr   94 天前

@kokutou #27 别的设备不知道,米 8 的 lineageos 微信、支付宝指纹应该是都没问题的。我是 PE 的 sdm845 设备维护者,跟 lineage 的 sdm845 维护者 Bruno 也经常同步代码……
HankAviator
    45

HankAviator   94 天前

@alfchin 密码算法的原理也都是公开的。金库就在那里,重赏之下必有勇夫。
不开源的东西发现和处理漏洞只会比开源的早,危害也会比开源的大。前者只是“看不到就不存在”和“不解决问题,解决会发现问题的方法”的消*做法罢了。
12101111
    46

12101111   94 天前

@norz TEE 是 security monitor 虚拟化执行的操作系统吧, 我看有一些早期的 CPU 的 TEE 和 bootloader 有 bug,可以直接提权到 el2/el3 上
kokutou
    47

kokutou   94 天前

@jjpprrrr #44
米 8 用 lineageos 很久之前了…中间还经过了米 9…现在是米 10米 10 咋回事啊, 感觉都没人做包…
alfchin
    48

alfchin   94 天前 via iPhone

@HankAviator 系统层的漏洞才是问题的源头,而不是密码算法。而且*近十年的实践中,开源软件的漏洞不比闭源软件少。
对于部署就无法更改的系统,*安全的做法是尽可能不暴露任何非必要细节,而不是满大街公开,然后被一击必杀。
norz
    49

norz   94 天前

@HankAviator 嗯,你说的没错,Android 确实提供了 Trusty 的方案,但是并不提供支持。目前国内方案只有展讯在使用 Trusty 就很能说明问题。
norz
    50

norz   94 天前

@12101111 破解、后门之类的我了解得不多,不过就数据流来说,除非生物识别设备的提供商、方案或者 TEE 有意设计后门接口,不然不可能直接拿到指纹或者人脸数据。
bclerdx
    51

bclerdx   94 天前 via Android

@czk1997 对啊,银行都用 google API 。难道银行的数据不是为了安全。就腾讯和阿里特别。
HankAviator
    52

HankAviator   94 天前

@norz 国内我接触的客户都有意无意在脱离国际知名的优秀产品,说到底也不是纯技术问题。
nomemo
    53

nomemo   94 天前

作为 iOS 用户弱弱问一句你们在讨论的啥??
ttys001
    54

ttys001   94 天前

这……都 2021 年了,有些安卓还不能指纹 /扫脸支付,每次还都要输密码?
php8
    55

php8   94 天前 via Android

华为微信是支持指纹支付的
yuhaijiang2019
    56

yuhaijiang2019   94 天前

这几年一直 lg 和 pixel 的洋垃圾,从来没体验过指纹支付
hs0000t
    57

hs0000t   94 天前

自从用过某个返回键和指纹放在一个实体按钮的手机,就再也没开过指纹支付
tianyamomo
    58

tianyamomo   93 天前

@zxcslove 貌似所有的应用都是拿不到指纹数据的,他拿到的只是一个验证结果
systemcall
    59

systemcall   93 天前

它是靠手机厂家愿不愿意听话判断的,够听话就给加
bullfrog
    60

bullfrog   93 天前

ios 用户表示已经手输密码 1 年了
no1xsyzy
    61

no1xsyzy   93 天前

@vk42 试试招行,我索尼港版系统可以
vk42
    62

vk42   93 天前

@HankAviator 你用的 Pixel 几代?据我所知至少 Pixel 3 之前用微信 /支付宝指纹方案都是要上 Xposed 或 Riru,山寨一个通过指纹自动输入密码的方式。毕竟海外版本手机基本都只有 FIDO,改个机型也改不出来 SOTER 啊……
realpg
    63

realpg   93 天前

小米不能微信指纹支付?我打出了一个大大的问号
sky96111
    64

sky96111   3 天前 via Android

@norz 纠正一下,Google 的 Trusty 不是开源免费的吗?
https://source.android.google.cn/security/trusty?hl=zh-cn
友情链接: SITEMAP | 旋风加速器官网 | 旋风软件中心 | textarea | 黑洞加速器 | jiaohess | 老王加速器 | 烧饼哥加速器 | 小蓝鸟 | tiktok加速器 | 旋风加速度器 | 旋风加速 | quickq加速器 | 飞驰加速器 | 飞鸟加速器 | 狗急加速器 | hammer加速器 | trafficace | 原子加速器 | 葫芦加速器 | 麦旋风 | 油管加速器 | anycastly | INS加速器 | INS加速器免费版 | 免费vqn加速外网 | 旋风加速器 | 快橙加速器 | 啊哈加速器 | 迷雾通 | 优途加速器 | 海外播 | 坚果加速器 | 海外vqn加速 | 蘑菇加速器 | 毛豆加速器 | 接码平台 | 接码S | 西柚加速器 | 快柠檬加速器 | 黑洞加速 | falemon | 快橙加速器 | anycast加速器 | ibaidu | moneytreeblog | 坚果加速器 | 派币加速器 | 飞鸟加速器 | 毛豆APP | PIKPAK | 安卓vqn免费 | 一元机场加速器 | 一元机场 | 老王加速器 | 黑洞加速器 | 白石山 | 小牛加速器 | 黑洞加速 | 迷雾通官网 | 迷雾通 | 迷雾通加速器 | 十大免费加速神器 | 猎豹加速器 | 蚂蚁加速器 | 坚果加速器 | 黑洞加速 | 银河加速器 | 猎豹加速器 | 海鸥加速器 | 芒果加速器 | 小牛加速器 | 极光加速器 | 黑洞加速 | movabletype中文网 | 猎豹加速器官网 | 烧饼哥加速器官网 | 旋风加速器度器 | 哔咔漫画 | PicACG | 雷霆加速