Key Attestation 密钥认证流程和绕过思路
2024-1-3 18:1:29
Author: 看雪学苑(查看原文)
阅读量:2
收藏
官方文档介绍:https://source.android.com/docs/security/features/keystore/attestation个人理解,硬件提供加密功能,同时该硬件模块也会反映设备的软硬件的安全环境。https://github.com/vvb2060/KeyAttestation功能入口https://github.com/vvb2060/KeyAttestation/blob/master/app/src/main/java/io/github/vvb2060/keyattestation/home/HomeViewModel.kt获取证书链
解析证书链
对证书链进行校验
解析extension,获取设备的状态
格式规范文档:https://source.android.com/docs/security/features/keystore/attestation#attestation-extensionAttest version: Keymaster version 4.1
Attest security: StrongBox
Verified boot Key: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= (base64)
Device locked: false
Verified boot state: Unverified//Hash for boot
//Hashtree metadata for system
//Hashtree metadata for vendor
Verified boot hash: nDqAWissOCsw+aWEm7cEcAkCvQngEE+ypQ75UWakxt4= (base64)
绕过手段
思路比较简单,替换到整条证书链为一个正常设备的证书链即可:1.可以通过hook java层代码
2.写一个magisk插件https://github.com/doom-man/bypasskeyattestation
hook java层已经比较熟练了,由于后续期望强化对异常设备的检测,大多对抗检测的工具又是走magisk插件实现的,打算用magisk插件实现一遍。参考https://github.com/chiteroman/PlayIntegrityFix大佬写的插件进行学习,对大佬拙劣的模仿。准备证书
将证书文件移动/data/local/tmp 下,并提供读权限:注入目标进程
替换证书链
结语
我认为设备异常判定,即使各大厂商去自研解决方案,也应该去学习了解系统层面提供的安全检测手段 和 官方在用的判定方案。看雪ID:pareto
https://bbs.kanxue.com/user-home-790193.htm
*本文为看雪论坛优秀文章,由 pareto 原创,转载请注明来自看雪社区
文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NTc2MDYxMw==&mid=2458533934&idx=1&sn=ee4206c8250db3b3e224cf6dc01cbf8f&chksm=b01affaf2d6cec5f2d8d6bbff29f865403810b5e11a24a8d4d69c63832bb85736b0259dbaea9&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh