关于 HTTPS 抓包, Android 14 据说改不了根证书了

2023-09-12 10:35:33 +08:00
 acess
https://httptoolkit.com/blog/android-14-breaks-system-certificate-installation/
摘要与转载: https://www.solidot.org/story?sid=75997



另外,Chrome 99 在先前就因为检查证书透明度导致无法 mitm 中间人抓包: https://httptoolkit.com/blog/chrome-android-certificate-transparency/
对于这个问题,我搜到过一篇博客文章: https://shansing.com/read/530/
里面提到 adguardcert 可以在 native 层 hook 来解决这个问题: https://github.com/AdguardTeam/adguardcert
12491 次点击
所在节点    Android
25 条回复
noahhhh
2023-09-12 10:40:41 +08:00
用太极或者虚拟机抓呗,Android mitm 本来就很不方便
yujincheng08
2023-09-12 10:44:33 +08:00
技术不行,危言耸听。

作者混淆了开发者和最终用户。开发者可以选择信任任意证书。而最终用户可以选择停止信任任意系统证书。
如果设备是受管设备,企业也可以添加证书来审计加密流量。

即使 root 也无法修改系统证书是假的。
把证书库移动到 apex 是好事,这可以让 OEM 不再更新的手机继续更新系统证书。比如之前 Let's Encrypt 的 R3 证书无法推送到不再更新的手机,现在可以了。
而 root 是可以修改/apex 目录的,和/system 没有技术上的区别。作为例子,lsposed 的 dex2oat 包装器就修改了 apex 的 art 组件。
acess
2023-09-12 11:05:16 +08:00
@yujincheng08
首先感觉他所说的“开发者”的意思是泛指,把逆向(不是自己开发的) app 的研究者这些也包含进去了。

然后我看作者原文里做过实验,说 AVD 里 Android 14 beta 的镜像 mount tmpfs 之后,系统设置里没有对应生效,而同等操作对 Android 13 镜像会生效。
acess
2023-09-12 11:07:18 +08:00
@yujincheng08
我第一反应是 mount namespaces ,毕竟他好像也没用 magisk ,所以不知道有没有进 master mount namespace
acess
2023-09-12 11:11:48 +08:00
但是……如果是 mount namespace 的问题,先不说引入这个是上古时代的事情了,为什么 Android 13 同等操作又是生效的呢。
ysc3839
2023-09-12 12:31:56 +08:00
这个说法好像一周甚至更早之前就看到了。原文我没有细看,不知道原作者观点是什么,但是原文里列了一堆尝试修改/apex 中证书的过程,我个人认为原作者不是无脑指责,更多是技术探讨,顺便吐槽一下。
而 solidot 那个“摘要”里面直接说“即使 root 设备也将无法修改系统证书”,感觉说这话的人是把传统 Unix 的逻辑套用到现代操作系统中。传统 Unix 一般不喜欢搞很复杂的文件格式,比如 CA 证书可能就只是 base64 编码的纯文本文件。于是当新版本系统中引入了一种非纯文本格式,那人就觉得这是在“限制”,是“日益封闭”。
bkmi
2023-09-12 12:40:25 +08:00
人云亦云,越传越离谱,Google 躺枪
kingfalse
2023-09-12 13:45:28 +08:00
pixel 7 pro 坐等 14 发布。说起来不知道这次是不是真的要等到跟 pixel 8 一起发布了。离谱
acess
2023-09-12 15:27:01 +08:00
@ysc3839 新版本系统中引入了一种非纯文本格式?有么?
acess
2023-09-12 15:45:15 +08:00
@ysc3839 要说 locked down to vendor-controlled 这个观点其实 Magisk 作者 John Wu 也在推上提到过的,呃搜了一下,有可能是这条:
Why do we need to start this holy war yet again 🤦‍♂️
https://twitter.com/topjohnwu/status/1267050787336622080
Most *users*, not Android *or* iOS specifically, does NOT care about customization. Period.
Why do we need to differentiate between iOS and Android users, at the end of the day they are both highly locked down mobile OSes.
(看上去他在回应一个观点)

至于我这楼引用的,httptoolkit 博客这篇,里面说,一个转变点在 Android 7 这里,因为从那个时候开始,app 默认(开发者可选 out out ,但很少有 app 这么做)就不信任用户证书了。

另外再说一句,要说 Android 7 ,其实我还想起来录屏同时内录音频这个破事,我记得也是 Android 7 开始变得特别难,即便 root 了都很难,直到 Android 10 才又提供官方的录屏 API ,就这也仍然是不给用户控制权,开发者如果不声明就是不给内录的(啊我不记得 target sdk 到了 Android 10 之后具体默认是给录还是不给了)
我还搜到 reddit 上就有用户圈子的吐槽贴:
https://www.reddit.com/r/AndroidQuestions/comments/81vhvm/android_7_has_made_recording_internal_audio_while/
acess
2023-09-12 15:47:48 +08:00
这两天我看见 YouTube premium 也是蛮抠门,不仅画中画小窗是付费功能,而且好像还限制内容,如果是音乐就不给后台播放。反正我是很难不往唱片公司的利益之类瞎想 2333
(不过我平时很少用 YouTube ,前两天也是蛮不讲理地上了 lsposed 模块把这个功能免费解锁了 2333 )
acess
2023-09-12 15:48:38 +08:00
啊啦,10 楼转贴 john wu 的推文好像把格式粘错了,抱歉。
ysc3839
2023-09-12 15:57:18 +08:00
@acess “新版本系统中引入了一种非纯文本格式”只是举个例子,我不知道 apex 的具体逻辑,但感觉上和“纯文本改成二进制格式”有点类似,原本直接改/system 文件系统里的证书文件就能生效,现在可能要重打包成 apex 包,然后想办法替换掉原来的 apex 包,可能还涉及签名验证等等。
acess
2023-09-12 15:59:19 +08:00
@ysc3839 果然你说的是 apex……

不过我感觉 apex 既然是 mount 上去的,那按理说 magisk 那种原理就可以改才对,你看楼上 yujincheng 大佬不就直接怼了
hellomynameis
2023-09-12 16:07:22 +08:00
非纯文本形式确实很麻烦、很不利终端用户,比如 Android 12 开始把存放每个 app 单独的 Android ID 的配置文件改成二进制格式了,编辑起来就比安卓 11 麻烦非常多
MegatronKing
2023-09-12 16:36:26 +08:00
根证书问题在 Android 7.0 开始就已经非常麻烦了,相当于是直接加了个紧箍咒。我曾经在开发 HttpCanary 的时候,一般是建议开发者降低 targetSdkVersion 到 23 然后抓包测试。Android 14 无非就是把紧箍咒又紧了紧,对真正开发者的影响也不大,当然有能力破咒的还是能破咒。不管怎么样,我依然觉得这个更新是好事,免得逆向爱好者学了点东西就到处去给别的应用找麻烦。
flyn
2023-09-12 16:46:31 +08:00
虽然不懂但是果子下的 rewrite 用得爽到不行了。真的可以提供好多功能。
好难受啊,为什么到这方面安卓比果子还封闭啊。
SUP7R9
2023-09-13 15:36:54 +08:00
@acess #11 不知 op 最后用的哪个 lsp 模块将油管的画中画小窗及后台播放这两个功能解锁??近几天我也遇到 op 你在 11 楼所描述油管的这两个问题,一直在找相应 xp 模块,但我在 lsp 模块仓库中搜到两个油管模块,其中“youtube adaway”这个模块都半年多没更新,其它的油管模块在去年就停止更新了。。。

特此留个爪,麻烦 op 之后回复时,将你最后找到用于解锁油管的画中画小窗及后台播放这两个功能的 lsp 模块原发布地址甩下呗,我也想试试效果
acess
2023-09-13 22:22:45 +08:00
@SUP7R9 就是 youtube adaway 吧……
SUP7R9
2023-09-13 23:02:20 +08:00
@acess #19 啊这(,看 op 你这条回复,貌似 op 你自个都不确定,麻烦 op 再将自己目前所装的 lsp 模块列表截个图发上来,介不就一了百了么??
(小声:为何请求 op 将目前所装的 lsp 模块列表截图发上来,是因为我还想瞅瞅 op 你还装了其它哪些 lsp 模块,身为一搞机“半”新手,想借 op 你目前在主力机装的所有 lsp 模块来参考哪些模块值得一装,球球 op 再回复分享你给主力机装的所有 lsp 模块列表截图惹)

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

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

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

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

© 2021 V2EX