【Android安全】安卓app 防篡改方案总结

安卓app Anti-Tampering方案总结

参考:
【JISA20】A Large-Scale Study on the Adoption of Anti-Debugging and Anti-Tampering Protections in Android Apps

JISA是CCF-C类期刊

(1)Signature Checking

关于app证书及其校验,参见https://blog.csdn.net/qq_39441603/article/details/123767506

(2)Code Integrity Checking

计算文件(例如,资源文件或程序文件)hash值,并和预设的合法值进行比较
例如,app可以使用Zipentry库来计算文件CRC校验码。

(3)Installer Verification

安装渠道检查
app可以调用PackageManager.getInstallerPackageName API 来获取 安装了当前app 的app的包名

(4)SafetyNet Attestation

Google的经典远程证明框架:

  • 由GMS中的SafetyNet相关服务,不断采集设备信息,发送给Google Server
  • Google Server基于这些信息完成设备完整性判断
  • app集成SafetyNet SDK,当需要检查设备完整性时,发送nonce给Google Server,获取JWS签名过的判断结果
  • !!!注意,被签名的判断结果中,包含GMS获取到的app包证书摘要。所以SafetyNet除了用于设备完整性检测,也用于app客户端完整性检测

文中的一些数据性结论

  • Our analysis shows that 59% of these apps implement neither Anti-Debugging nor Anti-Tampering protections
    41%的app使用了Anti-Debugging或Anti-Tampering protections

  • half of the remaining apps deploy only one protection
    41%中约一半的app只使用了Anti-Debugging或Anti-Tampering中的一项

  • We also observe that app developers prefer Java to Native protections by a ratio of 99 to 1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值