MyException - 我的异常网
当前位置:我的异常网» 计算机图书 » 论文有关笔记3

论文有关笔记3

www.MyException.Cn  网友分享于:2015-01-25  浏览:0次
论文相关笔记3

三、Android安全保护机制及解密方法研究(2013《技术研究》)

1.Android设备安全机制

从用户界面看,Android的安全保护机制主要体现为对于用户界面的访问控制的保护,比如在设备空闲时,用户可以锁定设备,并设置解锁口令,从而防止未授权的其他用户打开设备。

在Android设备上,常用的屏幕锁定方式包含以下几种:

此外,新版的Android操作系统还加入了与苹果iOS类似的文件系统加密机制。

2.Android图案锁定原理及解密

(1)加密

在Android设备上,用户可以通过设置锁定图案作为密码对设备用户界面进行锁定。

Android设备的锁定界面有9点组成,锁定图案需满足三个条件:至少3点、最多9点、无重复。这种解锁方式在Android存储时使用的是明文转换后采用散列方式存储。

Android设备图案锁定的加密存储过程:图案输入——>转换明文——>SHA-1散列——>存储

(a)用户输入图案。

(b)图案转换为明文,从左上角起编号为00,至右下角止编号为08,例如Z字形转换后为00-01-02-04-06-07-08。

(c)将十六进制字符串00010204060708使用SHA-1进行散列计算,得到散列值。

(d)将散列值存储在Android设备~/data/system/gesture.key文件中。

至此,可以看出Android设备锁定图案的实质是6位数字到18位数字,且各单数位数字为零,双数位数字不重复地排列,并将这个排列进行单次SHA-1计算。

通过数学计算,由于单数位确定,双数位不重复,则,根据Android图案锁定规则可以设置的锁定图案总数为986328个,其密码容量甚至小于6位纯数字密码,所以其密码复杂度不高,破解相对容易。

(2)解密

针对图形锁定,可以采用预计算密码表方式进行暴力破解,在得到图案存储文件gesture.key的基础上(需要具有root权限),使用月50MB的密码表在1秒内即可完成所有图形锁定的破解。

3.Android字符密码加密原理及破解

(1)加密

除了采用图形设定设备之外,Android还允许用户使用4-16位的数字PIN码或者文本字符作为锁定密码。每一位密码范围为94字符,包括52个大小写英文字母+10个数字+30个除空格外的标点符号,在这种要求下输入的字符,加入Salt后进行SHA-1和MD5散列,之后,将散列结果存储于~/data/system/password.key文件中。

Android设备字符密码加密过程:字符输入——>加入Salt——>SHA-1+MD5散列——>合并散列存储

在Android的源代码中可了解其字符密码加密过程的实现方式(com/android/internal/widget/LockPatternUtils.java)。

若用户设置了4位密码,密码容量为78074896(94^4);当设置了16位密码时,密码容量就很大了。

由此可以看出,Android设备上字符型密码锁定设备的密码强度相当高。

(2)解密

由于在SHA-1前先被加入了Salt值,所以暴力破解或预计算密码表的方式需提供Salt值。在Android操作系统中,字符型密码使用到的Salt值存储于手机设备的settings.db数据库中,该文件位于~/data/data/com.android.providers.settings/,该数据库中的secure表,存储了字符密码加密使用的Salt。同时,解密还需password.key文件中所包含的散列值,该文件存储于~/data/system/password.key。在该key文件中,包含了72字节的16进制字符串。

在得到password值与Salt之后,同样可以采用暴力破解方式对Android设备的字符型密码进行攻击(需要用到一些暴力破解工具)。

4.Android面部识别的破解

面部识别并不完全可靠和准确,并且缺乏真人判断机制,恶意用户可以用照片绕过验证。

5.Android存储加密

除了屏幕锁定,新版Android操作系统还支持Android设备内置存储空间进行加密,这种加密方式基于dmcrypt,运行于block device层,这样的加密默认只能对ext4分区进行,所以在Android3.0及以上的版本中财提供这种功能,存储加密要求首先设置至少6位且包含至少1位数字的字符型密码。

在Android存储加密中,主密钥采用AES 128位加密,主密钥在加入Salt值之后被存储于分区尾部或独立的文件中。

存储解密时,首先需要将Android设备进行完整的物理转储(可采用JTAG等方式),之后从分区尾部查找Salt值及加密后的主密钥,使用带Salt的PBKDF暴力破解的方式对密码进行测试,使用得出的密钥与SHA-256计算后的VI对主密钥进行解密,之后可使用真正主密钥对完整镜像进行解密。

6.总结

分析的是Android2.3.5,就了解下理论知识。

文章评论

Java程序员必看电影
Java程序员必看电影
程序员的鄙视链
程序员的鄙视链
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
老程序员的下场
老程序员的下场
一个程序员的时间管理
一个程序员的时间管理
程序员和编码员之间的区别
程序员和编码员之间的区别
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
我是如何打败拖延症的
我是如何打败拖延症的
 程序员的样子
程序员的样子
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
漫画:程序员的工作
漫画:程序员的工作
我的丈夫是个程序员
我的丈夫是个程序员
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
程序员应该关注的一些事儿
程序员应该关注的一些事儿
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
那些争议最大的编程观点
那些争议最大的编程观点
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
总结2014中国互联网十大段子
总结2014中国互联网十大段子
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
程序员必看的十大电影
程序员必看的十大电影
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
鲜为人知的编程真相
鲜为人知的编程真相
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
旅行,写作,编程
旅行,写作,编程
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
10个调试和排错的小建议
10个调试和排错的小建议
代码女神横空出世
代码女神横空出世
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有