APP安全之APK完整性校验
来源:互联网 发布:淘宝客单页面模板 编辑:程序博客网 时间:2024/04/28 17:35
APK 完整性校验,虽然很难做到绝对的安全,但能提高应用的安全性和破解难度。
一、认识APK安全性
危害
可以通过修改客户端文件篡改客户端行为。攻击者可以让客户端显示自己制作的钓鱼网站,偷取用户信息
二、完整性校验原理
完整性校验的几种方式
- CRC校验
- MD5值校验
- SHA1值校验
常见android完整性检测
- 检测签名
- 校验classes.dex
- 校验整个apk
检测签名
Android对每一个Apk文件都会进行签名,在Apk文件安装时,系统会对其签名信息进行比对,判断程序的完整性,从而决定该Apk文件是否可以安装,在一定程度上达到安全的目的。
- MANIFEST.MF:这是摘要文件。程序遍历Apk包中的所有文件(entry),对非文件夹非签名文件的文件,逐个用SHA1生成摘要信息,再用Base64进行编码。如果你改变了apk包中的文件,那么在apk安装校验时,改变后的文件摘要信息与MANIFEST.MF的检验信息不同,于是程序就不能成功安装。
- CERT.SF:这是对摘要的签名文件。对前一步生成的MANIFEST.MF,使用SHA1-RSA算法,用开发者的私钥进行签名。在安装时只能使用公钥才能解密它。解密之后,将它与未加密的摘要信息(即,MANIFEST.MF文件)进行对比,如果相符,则表明内容没有被异常修改。
- CERT.RSA文件中保存了公钥、所采用的加密算法等信息。系统对签名文件进行解密,所需要的公钥就是从这个文件里取出来的。
这三个文件在apk META-INFO文件夹
结论:从上面的总结可以看出,META-INFO里面的说那个文件环环相扣,从而保证Android程序的安全性。(只是防止开发者的程序不被攻击者修改,如果开发者的公私钥对对攻击者得到或者开发者开发出攻击程序,Android系统都无法检测出来。)
虽然系统通过以上方式可以防止,但如果是root的手机就不安全了,建议通过服务器来校验,
校验classes.dex
用crc32对classes.dex文件的完整性进行校验
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
校验整个apk
用哈希值对整个apk完整性进行校验
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
我们将把crc值和sha1值放在服务器做处
理
阅读全文
0 0
- APP安全之APK完整性校验
- APP安全之APK完整性校验
- APP安全之APK完整性校验
- 安卓安全-apk完整性校验
- android_apk安全之完整性校验
- APK完整性校验代码
- APP 完整性校验
- android apk 自我保护技术-完整性校验
- android apk 自我保护技术-完整性校验
- HDFS之数据完整性校验
- android apk 防止反编译技术第五篇-完整性校验
- android apk 防止反编译技术第五篇-完整性校验
- android apk 防止反编译技术第五篇-完整性校验
- android apk 防止反编译技术第五篇-完整性校验
- Java安全之保证消息的完整性
- Java安全之保证消息的完整性
- 程序动态完整性校验之指令分支记录
- 《Android开发自我知识整理——校验APK文件完整性》
- iOS 获取当前屏幕显示的viewcontroller
- A05_IO文件流读写
- idea 远程调试 项目
- Druid学习笔记(3)Druid部署总结
- 云计算的三种服务模式:IaaS,PaaS和SaaS
- APP安全之APK完整性校验
- 点击页面关闭某个打开的列表
- centos7 搭建turn stun 服务器
- 快速排序(QuickSort)
- Android真机调试----不打印debug和verbose级别的日志之华为手机的坑
- Tornado Web Server
- 图像校正-透视变换
- js json对象动态添加
- Oracle中截取字符串,Oracle按照某个字符截取字符串的示例