vvb2060channel | Unsorted

Telegram-канал vvb2060channel - 南宫雪珊

2738

消息备份频道

Subscribe to a channel

南宫雪珊

看来大家都意识到了一切皆文件行不通,序列化再反序列化是自讨苦吃。

什么时候加一个maps的syscall(

Читать полностью…

南宫雪珊

https://github.com/torvalds/linux/commit/46eae99ef73302f9fb3dddcd67c374b3dffe8fd6

Читать полностью…

南宫雪珊

https://letsencrypt.org/2023/07/10/cross-sign-expiration

小知识,Android Chrome 115 起启用自带根证书库,120 起强制启用,是Chrome支持平台中最晚启用的。
可访问 https://valid-isrgrootx2.letsencrypt.org/ 测试,它不受 Android 13 信任,但受 Chrome 根证书存储库信任。
因此 2024 年 6 月后,不论是Firefox还是Chrome都不会有网页访问问题。

Читать полностью…

南宫雪珊

libprocessgroup: Use cgroup.kill
https://android-review.googlesource.com/c/platform/system/core/+/2875240

cgroup 原子 kill,感觉可以向后移植到非 Android14。
内核补丁 https://lore.kernel.org/all/20210503143922.3093755-1-brauner@kernel.org/

Читать полностью…

南宫雪珊

keystore负责用户空间内密钥管理,keymaster负责安全环境内密钥管理,这是Android11及之前的情况。Android12起,keystore替换为rust编写的keystore2,keymaster替换为keymint。
安全环境有两个:TEE和StrongBox,分别在binder标识符里叫做default和strongbox。
用户空间内程序随Android版本升级而升级,安全环境内程序几乎不会升级,由硬件供应商实现,AOSP制定其API规范

在带证明的密钥生成时,需要提供证明密钥和其证书链。即用证明密钥对生成的密钥签发一张证明证书,一般的非对称密钥是自签名证书。keymaster只支持设备persist分区内的工厂证明密钥。它在工厂生产时注入,至少每10万台设备使用一个相同密钥,因为这是不可欺骗的标识符。证明密钥的根证书由Google生成并公示,由Google审查设备后对其TEE和StrongBox提供证明签名。如果设备出现漏洞导致私钥泄露,Google将吊销证书。由于工厂证明密钥不可更新,因此该型号设备永远无法再使用密钥证明。
为了解决此问题,Android12重写时引入了远程证明密钥,简称RKP,Remote Key Provisioning远程密钥供应。keystore2支持自定义证明密钥,接受3种情况:RKP,User和None。
RKP是默认情况。工厂生产时在设备TEE和StrongBox中生成密钥对并提取公钥,新方案可与旧方案共存。此公钥是不可欺骗的设备唯一标识符。设备开机后由rkpd app请求TEE和StrongBox生成CSR,CSR包括对设备状态的证明,由安全环境私钥签名。rkpd app将CSR发送到服务器,服务器验证后返回多个用公钥加密的证明密钥和其证书链。与至少10万台设备相同相比,新方案每台设备,每个应用,每两个月都不同。如果设备出现漏洞,服务器可暂停签发证书直到设备升级,私钥泄露也仅影响单独设备。
如果RKP获取证明密钥失败,例如rkpd app的密钥池用完,也没有及时完成网络请求,keystore2可能回退到None。如果keymint无法读取工厂证明密钥,可能本来就没有,也可能文件丢失,那么证明失败。(如果TEE本来就没有,应该设置remote_provisioning.tee.rkp_only=1以防止keystore2回退,strongbox同理)
最后一种User,指用户应用提供的证明密钥。应用可以生成或者导入一个密钥及其证书链,在生成新密钥对时指示安全环境使用它作为证明密钥。该密钥的用途必须限制为仅证明签名,以防止签署任意证书。当证明密钥本身就是带证明的密钥时,认证证书可以追溯到可信信任根。

Читать полностью…

南宫雪珊

现在看来,这东西是RKP。而DEVICE_UNIQUE_ATTESTATION指用StrongBox私钥签名证书,可作为不可欺骗的设备唯一标识符,仅对OEM有意义,因为如果没有提前知道StrongBox公钥,无法判定证书是否真实。

Читать полностью…

南宫雪珊

DeviceConfig xml 文件架构定义
https://cs.android.com/android/platform/superproject/+/main:frameworks/base/core/xsd/permission.xsd

看来有人偷懒了,缺失 component-override 等 tag
https://cs.android.com/android/platform/superproject/+/main:frameworks/base/services/core/java/com/android/server/SystemConfig.java

Читать полностью…

南宫雪珊

奇怪的小知识:
IP地址 1.0.0.1 在浏览器HSTS预加载列表中,但1.1.1.1因它是IP地址而被移出了预加载列表。
https://hstspreload.org/?domain=1.1.1.1

Читать полностью…

南宫雪珊

https://community.cloudflare.com/t/early-hints-and-encrypted-client-hello-ech-are-currently-disabled-globally/567730
官方停用公告已发,预计年底重新启用ECH

Читать полностью…

南宫雪珊

cloudflare 已经关闭 ECH,仅 https://crypto.cloudflare.com/cdn-cgi/trace 可用。
由于HTTPS记录依然包含 alpn,H3直连继续有效。

Читать полностью…

南宫雪珊

https://source.android.com/docs/setup/about/android-14-release

Читать полностью…

南宫雪珊

测试网站

仅DNS污染 https://bangumi.moe/cdn-cgi/trace

通过SNI检测的TCP重置 https://exhentai.org/cdn-cgi/trace

Читать полностью…

南宫雪珊

QUIC的特色是可以快速发展,因此它完全在用户空间实现(只需要服务端软件和客户端软件支持即可工作),并且尽可能加密数据以拒绝中间设备干预(中间设备会丢弃无法识别的数据,导致协议陷入兼容性问题而僵化)。它基于UDP,脱离TCP自行实现状态管理,这可以避免无加密的TCP连接被中间设备修改或重置。Chromium更是拒绝使用用户证书的QUIC连接(尽管它非常接近客户端,也属于中间设备,引入第三方软件操控数据)。
但出于审计的实际需求,推荐做法是完全阻止QUIC流量,因此基于QUIC的HTTP/3没有设计为完全取代HTTP/2,它将长期与H2并行。
基于以上现状,Chromium没有选择并发连接H2和H3,而是检测H2连接的响应头存在H3升级指示后再尝试H3连接,并且会快速失败。
所以,即使H3在技术上绕过了目前的阻断方法,使用H3的网站还是无法直连。

Читать полностью…

南宫雪珊

https://cangsdarm.github.io/illustrate/quic
图解 QUIC 连接
对每一个字节的解释和再现

Читать полностью…

南宫雪珊

这就是 Google 当年强推的 databinding 的下场,现在强推目标转向了 compose,它又能撑几年呢?

Читать полностью…

南宫雪珊

https://github.com/torvalds/linux/commit/b4c2bea8ceaa50cd42a8f73667389d801a3ecf2d

Читать полностью…

南宫雪珊

https://github.com/vvb2060/zygisk_cacerts

替换设备根证书库的模块,附带了完整Android 14根证书库。

Читать полностью…

南宫雪珊

https://dl.google.com/android/studio/metadata/distributions.json

Читать полностью…

南宫雪珊

如何讲一个 Xposed 笑话?

Xposed/82 (Zygisk; KernelSU like Magisk) EdXposed/0.5.1.4 LSPosed/1.9.2 (LSPlant, like SandHook and YAHFA)

Читать полностью…

南宫雪珊

Android12的预计 完 全 失 败
整个密钥系统被重写

Читать полностью…

南宫雪珊

https://support.google.com/googleplay/android-developer/answer/10183279
最初由Google相机使用的反hook技术内测了,终于Google也开始做加固。Google不认为dex需要保密,主要是反破解和反调试。
(Google相机没开反破解,只开了字符串抽取防止 libpairipcore.so 被剥离

Читать полностью…

南宫雪珊

Android14半修复了此问题

限制现已经移入ExternalStorageProvider后端,与平台版本绑定,但其正则表达式"(?i)^/storage/[^/]+/(?:[0-9]+/)?Android/(?:data|obb|sandbox)$"没有匹配子文件夹情况,因此可以继续用Android13的方法绕过。
相关提交 https://android.googlesource.com/platform/frameworks/base/+/8b55dd05ce694a97123fafa3f01c4f4dfe4854d9

但DocumentsUI前端已经彻底修复,其正则表达式"^/Android/(?:data|obb|sandbox).*"匹配了子目录情况。已经被推送apex更新的设备可以尝试卸载更新,该前端修复对全部Android11+设备有效。
相关提交 https://android.googlesource.com/platform/packages/apps/DocumentsUI/+/070e14547db2e03590e295ac25b76cfb9f45fc78 注意阅读代码里面的注释

这个问题将于Android15彻底完成修复,不可绕过。

Читать полностью…

南宫雪珊

https://dumps.tadiphone.dev/dumps/xiaomi/shennong/-/blob/missi_phone_cn_only64-user-14-UKQ1.230804.001-V816.0.9.0.UNBCNXM-release-keys/system_ext/etc/init/mi-32bit-trans.rc

小米14在纯64位CPU上对32位程序使用了转译。Tango is a binary translation system for GNU/Linux and Android which allows unmodified 32-bit ARM programs to run on 64-bit only ARM processors.

https://www.kernel.org/doc/html/latest/admin-guide/binfmt-misc.html
https://www.amanieusystems.com/technology

Читать полностью…

南宫雪珊

远程密钥认证初看只是密钥认证的证书链多了几级,直到看见文档……

入门介绍 https://cs.android.com/android/platform/superproject/+/main:hardware/interfaces/security/rkp/README.md

细节介绍 https://cs.android.com/android/platform/superproject/+/main:hardware/interfaces/security/rkp/aidl/android/hardware/security/keymint/IRemotelyProvisionedComponent.aidl

数据格式介绍 https://pigweed.googlesource.com/open-dice/+/HEAD/docs/android.md

目前处于第一阶段,Degenerate DICE,简单来说即传统模型。从数据格式要求来看,出厂Android14的设备将处于第二阶段,预计 Pixel 8 已经开始使用。

Читать полностью…

南宫雪珊

Freeze package cgroup before killing

Apps are able to prevent their death by forking multiple processes under different services and monitoring for the death of any of these. When a child death is detected, the remaining process restarts the terminating/terminated service before it's able to be killed itself. This is now prevented by freezing the entire cgroup of the package to be killed before killing the individual processes. After the kills are completed synchronously, the cgroup can be unfrozen to allow for restarts. Before freezing the cgroup, the binder interfaces of the processes about to be frozen are also frozen to prevent indefinite blocking by synchronous Binder callers.

https://github.com/aosp-mirror/platform_frameworks_base/commit/79825c6f2f8b46808e4b431fe52b3be78f1e8ac8

Читать полностью…

南宫雪珊

一直在担心墙的反应,cloudflare甚至有中国业务。结果只是1.1.1.1的H2被拦了,就这?

Читать полностью…

南宫雪珊

ECH使用的密钥存储在DNS的HTTPS记录(65)中,该记录用于存储一切与HTTPS连接相关的数据,除ECH密钥外还包括应该连接的IP,端口和支持的HTTP版本。
浏览器如果成功获取到HTTPS记录,可以直接发起H3连接,跳过从H2升级的步骤。当然,如果H3连接失败,会快速回退。

Chromium浏览器开启要求:
1. 在浏览器设置中配置DoH,需要足够快速的服务器否则可能会回退到无HTTPS记录
2. 开启测试标志 about://flags/#use-dns-https-svcb-alpn

因为ECH,cloudflare帮忙填写了HTTPS记录,现在即使未开启ECH的浏览器(edge)应该也能直连访问被TCP重置的网站。

Читать полностью…

南宫雪珊

cloudflare开始公测ECH
https://blog.cloudflare.com/announcing-encrypted-client-hello

Chromium浏览器开启要求:
1. 在浏览器设置中配置DoH,需要足够快速的服务器否则可能会回退到无ECH
2. 开启测试标志 about://flags/#encrypted-client-hello

现在应该能直连访问被SNI检测屏蔽的网站

Читать полностью…

南宫雪珊

https://android-review.googlesource.com/c/platform/ndk/+/2657070
可以正常使用

Читать полностью…

南宫雪珊

https://developer.android.com/build/migrate-to-ksp
Note: While not a traditionally-included library dependency, Data Binding also uses an annotation processor to provide its functionality, and KSP support for Data Binding is not planned. You can mitigate the impact of kapt on your build by isolating the usages of Data Binding to separate modules.

隔离UI和数据层到其它模块?Google你是否清醒

Читать полностью…
Subscribe to a channel