3、Android安全保护机制及解密方法研究(2013《技术研究》)java
1.Android设备安全机制android
从用户界面看,Android的安全保护机制主要体现为对于用户界面的访问控制的保护,好比在设备空闲时,用户能够锁定设备,并设置解锁口令,从而防止未受权的其余用户打开设备。数据库
在Android设备上,经常使用的屏幕锁定方式包含如下几种:安全
此外,新版的Android操做系统还加入了与苹果iOS相似的文件系统加密机制。ide
2.Android图案锁定原理及解密工具
(1)加密测试
在Android设备上,用户能够经过设置锁定图案做为密码对设备用户界面进行锁定。加密
Android设备的锁定界面有9点组成,锁定图案需知足三个条件:至少3点、最多9点、无重复。这种解锁方式在Android存储时使用的是明文转换后采用散列方式存储。操作系统
Android设备图案锁定的加密存储过程:图案输入——>转换明文——>SHA-1散列——>存储。blog
(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,就了解下理论知识。