弱密钥和密钥泄露的安全风险 — SuperKey 高于 Root
SuperKey 权限高于 Root
这是 APatch 安全模型里最需要理解的一点:
SuperKey 的权限高于 root 访问权限。
为什么?因为 SuperCall 系统调用(所有 root 权限的入口)的验证逻辑在内核里——拥有 SuperKey 的人可以:
- 给任何当前线程授予 root 权限(不需要 su 守护进程、不需要 IPC)
- 加载/卸载任何 KPM(可以注入任意内核代码)
- 查询内核补丁的状态
这些操作比传统 su 守护进程能做到的还要底层。传统 su 守护进程是"已经被 root 了的进程在帮你做事",SuperKey 是"直接让内核给你开门"。
弱密钥的风险
什么是弱密钥
12345678、password、00000000- 和你手机解锁密码一样
- 和你常用的其他密码一样
- 全是数字或全是字母(新版管理器强制要求数字+字母组合)
弱密钥的后果
如果别人(恶意 App、物理接触、网络攻击)能猜到你的 SuperKey,他们就能:
- 直接调用 SuperCall 给自己授予 root 权限
- 加载恶意 KPM 做各种内核级操作
- 完全接管你的设备
因为 SuperCall 在内核里,传统的 root 检测和防护机制(比如 su 授权弹窗)拦不住密钥正确的请求——内核只认 SuperKey 对不对,不管调用方是谁。
新版管理器强制强密钥
APatch 管理器从某个版本开始强制使用强密码:
- 长度:8-63 字符
- 必须包含:数字 + 字母
- 不允许:特殊字符(为了兼容 SuperCall 的参数传递)
设弱密码的尝试会被直接拒绝。
密钥泄露的风险
SuperKey 明文存储在修补后的 boot.img 里(因为内核运行时需要读取它来验证请求)。这意味着:
- 如果你的修补 boot.img 文件被别人拿到了(比如你分享给朋友、上传到网盘),SuperKey 就跟着泄露了
- 不要把修补好的 boot.img 发给任何人
- 不要在公共场合展示修补产物的路径
第三方向的 boot 镜像
绝对不要刷入他人修补的内核——不管是在论坛下载的、朋友分享的、还是"一键刷 root"服务。
原因:
- 别人修补的 boot.img 里嵌着别人的 SuperKey
- 别人知道这个 SuperKey,就能远程操作你的内核(通过你设备上运行的 App 配合调用 SuperCall)
- 修补 boot.img 里可能被植入恶意 KPM
APatch 开发者在官方文档里特别强调这一点——刷第三方修补的 boot 完全是在裸奔。
如果密钥泄露了
补救流程:
- 重新修补原厂 boot.img — 这次设置一个新的强密钥
- fastboot flash boot 刷入新的修补产物
- 旧密钥对应的旧 boot.img 可以作废了(删掉)
- 如果怀疑有恶意 KPM,刷回原厂 boot 再重新开始
总结
SuperKey 是你设备 root 安全的唯一钥匙。把它当成银行卡密码来保护:强密码、不分享、定期更换、泄露立刻重置。