王即墨,计超豪,裴洪卿
(1.温州市公安局刑事科学技术研究所,浙江 温州 325000;2.北京瑞源文德科技有限公司上海分公司,上海200335)
Android智能手机锁屏密 码及破解方法研究
王即墨1,计超豪1,裴洪卿2
(1.温州市公安局刑事科学技术研究所,浙江 温州 325000;2.北京瑞源文德科技有限公司上海分公司,上海200335)
随着移动通信技术的迅速发展和广泛应用,手机内部包含的信息已经成为犯罪侦查重要的线索和证据来源。由于人们对数据安全和隐私保护意识的提高,以及涉案嫌疑人的反侦查意识的增强,涉案的智能手机通常带有锁屏密码,在这种情况下,如何对其中的数据进行提取、处理和分析成为一个重要的研究方向。本文主要针对Android手机的锁屏问题进行研究,详细介绍了Android智能手机三种锁屏密码,即手势密码、PIN码密码以及复杂密码的文件结构和存储原理,分析了如何借助Android 的ADB(Android debug bridge)调试模式方法来对Android智能手机进行手动的密码绕过或清除,针对Android手机在调试模式打开和未打开的情况下提出了不同的解决方法用于对手机进行密码破解和清除,这些方法在笔者实践中证明具有较高的实用性。
电子证据;安卓智能手机;ADB(Android debug bridge);密码破解
DOΙ: 10.16467/j.1008-3650.2015.02.014
随着移动通信技术的迅速发展和广泛应用,手机内部包含的信息已经成为犯罪侦查重要的线索和证据来源。目前Android系统已经成为移动设备的主流操作系统,与此同时Android智能手机上的应用软件数量也日益增多,除了正常的通讯功能外,如微信、QQ、打车软件、各种支付应用等等,成为与人们息息相关的生活工具。相对于iOS系统,Android由于其开源性使得Android系统智能手机从价位上给人们更多、更广泛的选择。在现实办案中Android智能手机检材在电子证据检验案件中的比例也在逐年激增,随着检材的不同状况,检验难度也不断增加。这种情况下,如何对其中的数据进行提取、处理和分析成为一个重要的研究方向,并且对侦查破案工作具有十分重要的意义。
在目前的电子证据检验工作中,对于带有锁屏密码的Android智能手机,通常都需要犯罪嫌疑人配合提供锁屏密码,将手机解锁后进行数据提取和检验分析[1]。但部分疑难案件,基于犯罪嫌疑人和检材的原因,有时候无法获取到密码,且使用常规检验工具并不能完全破解复杂锁屏密码。截止Android最新版本,锁屏密码主要的三种加密方式,其中手势密码较容易破解,而复杂锁屏密码由于加密机制和破解平台硬件的运算速率原因较难破解。本文从Android智能手机系统加密方式和原理进行研究,提出能够广泛适用于密码清除或绕过的方法。
Android手机提供了几种加密方式用于锁定屏幕,分别是手势密码,PIN码密码以及复杂密码,其中最为常见的称之为手势密码。此外还有些高端型号的Android手机还提供了面部识别密码和任意图形密码,但由于这些密码在解密失败时都可以通过PIN码来解锁,并且由于日常使用中成功解锁率很低,在实际案件中并不常见,所以本文不做深入研究。
1.1 Android系统手机的手势密码
手势密码即3×3的点阵组成的图形密码(图1)。手势密码要求至少由连续的4个点组成,最多9个点。实际上这9个点是从0到8组成的9个数字,如图1中的密码即为13487。Android手势密码是将这些组成密码的数字先转换为十六进制,然后对其做SHA-1的哈希计算,最终将SHA-1的哈希值储存在手机中,存储路径通常是:datasystemgesture.key。通过计算,4~9位的手势密码一共有985 824种组合[2]。目前对应这些密码的彩虹表已经集成在大多数的手机取证工具中。
图1 Android手势密码图示Fig.1 Android pattern lock
1.2 Android系统手机的PIN码密码和复杂密码
PIN码密码和复杂密码非常相似,PIN码密码全部由数字组成,位数为4~16位,每一位都为任意数字;而复杂密码的组成规则要复杂的多,其组成规则为4~16位字符空间,每个字符空间有94个符号可选,包括大小写字母、数字、标点符号,但不能包括空格,如图2所示。由这些符号组成的密码连同一个随机整数一起组成密文,经过SHA-1加密后储存在password.key文件中,这个文件同样储存在datasystem路径下,文件大小为20个字节。因此PIN码密码是包含于复杂密码的,经计算,复杂密码共有3.7×1031种组合,按照不同密码长度来计算密码组合(见表1)。
图2 AndroidPin密码复杂密码图示Fig.2 Android complex passcode
表1 复杂密码长度的不同组合数量Table1 Combinatorial amount for complex passcode with different number of digits
2.1 手势密码破解方法研究
由于保存Android系统手机手势密码的文件存储在data/system路径下,而访问该路径需要获取系统root权限,然而在实际案件检验中,由于检材手机处于锁屏状态,所以无法直接查看到手机系统的root情况,但是通过将检材手机连接到电脑上的不同反应可以判断手机是否启用了USB debug(USB调试模式),针对USB调试模式开启和关闭的两种不同的状态,采用相应的方法来破解手势密码。
2.1.1.1.1 启用USBUSB调试的状态 当Android手机开启USB调试模式时,连接检材手机到检验电脑时,检验电脑系统会识别出连接到新硬件,并自动安装驱动。检验人员也可以通过手机第三方辅助工具协助判断,如91手机助手、QQ手机管家等。
检材手机在启用USB调试模式时,检验人员可以利用符合司法取证规范的检验工具来进行密码的获取,这些取证工具都是通过USB调试模式,在不打开锁屏的状态下,以ADB(Android开发调试模式)方式推送取证工具的apk客户端到手机上,并自动安装运行,即打开了检材手机与取证工具传输数据的通道。取证工具在获取手机相关数据的同时,即可以获取密码文件并进行破解[3]。
2.1.2 未启用USB调试的状态 由于检材手机未启用USB调试模式,在手机开机状态连接到检验电脑是无法进行数据通信的。在这种情况下,较为简单的方法是利用第三方recovery分区模式(Android手机的恢复模式)启动手机,然后将整个手机自身存储或data分区备份到空白的SD存储卡中,再通过计算机提取存储卡中data镜像中的gestury.key密码文件进行破解。使用这种方法需要注意以下几点:
(1)有些检材不一定会带有第三方recovery分区,这需要检验人员通过手工的方式导入对应检材手机型号的第三方recovery分区,同时还需要注意这种方法是对手机恢复分区的修改,虽然不会破坏检材中存储的数据,但仍然存在一定的风险。
(2)第三方recovery导入的方法可以利用手机官方发布的工具来实现,如三星公司Odin工具,但在电子证据检验中需注意,导入第三方recovery时不能修改原始分区和时间。
(3)第三方recovery分区要求带有backup功能,最常见如ClockWorkMod(又称CWM),如图3。不同品牌型号手机在进入第三方recovery分区的方法可能会有不同,激活按键通常以音量加键+Home键再开机。
(4)按电子证据检验的规范要求[4],保存导出数据的存储卡必须是空白的。
(5)导出时利用第三方recovery的backup功能即可导出手机机身镜像,但对于不同的Android版本,导出的数据有些可以直接查看,有些需要解压缩和镜像的转换。
图3 三星Android手机CWM recovery模式Fig.3 Samsung Android CWM recovery Mode
此时找到手势密码文件gesture.key文件,导入到智能手机取证工具,例如eDEC 狼蛛手机检验工具中即可以破解出手势密码。经研究发现,这种方法对于目前Android手机有一定通用性,对于主流的三星品牌支持效果很好,但由于Android系统的开放性,有个别品牌型号的手机尚没有适用的第三方recovery,所以在这种情况下需采用其他方法进行手机机身镜像的获取,如Jtag方法或者芯片移植法提取来实现数据的提取。
2.2 PIN密码和复杂密码破解方法研究
由于PIN密码和复杂密码的占有空间比手势密码大很多,通过类似手势密码破解的手段获取的password.key文件,需要花费大量的时间破解,成功率很低。通过实验发现即便是合理的缩小密码空间,并且采用高性能的CPU来进行密码破解,所花费的时间也是惊人的。
通过统计,大部分手机使用者都习惯以Android默认小写字母输入键盘作为密码字符,以此为例,假设带有高性能处理器的手机检验工作站每秒破解2 500万次,对于复杂密码的暴力破解时间如表2所示。
通过表2可以看出,9位以下的密码破解还是可以接受的,但9位以上破解时间则难以满足案件检验的要求。如果再考虑到大写字母和数字的话,即便是5 000万次/秒的破解速度,8d也只能破解到7位密码。因此得出结论,通过暴力破解的方式进行复杂密码破解并不适用于电子证据检验工作。
使用adb命令进行复杂密码的移除方法,以三星盖世3(GT-i9300)为例,分别有开启USB调试模式和未开启USB调试模式两种情况。
(1)手机启用USB调试模式,但由于使用取证工具在进行数据获取时需要在手机上进行相关授权操作,依然无法提取数据。此时可以使用一键root工具,如eRoot进行root权限获取,然后使用adbshell命令。具体步骤如下:
第一步:连接检材手机到检验电脑上,在CMD命令行中输入adb shell命令,使手机进入到adb调试状态(adb调试程序在eDEC狼蛛AI智能手机取证工具安装目录 ools路径中),然后输入su获取root权限,如图4所示前两行命令。
第二步:使用cd命令,可进入到/data/system路径下,如图4所示第四行。命令格式为(注意cd后的空格):cd /data/system
第三步:使用cat命令备份已有密码文件为备份文件,即:cat password.key > password.key.bak
表2 26位小写字母组成的复杂密码破解时间Table2 Crack time of complex passcode consisting of random lowercase letters
第四步:使用touch命令新建一个空白password.key密码文件,即:touch password.key
第五步:重启手机,输入任意密码可进入Android系统,使检材手机具备常规检验条件。
图4 在命令行下使用adb shell命令获取root权限Fig.4 Rooting with command line of ADB shell
(2)手机未开启USB调试模式,则可以通过使用三星官方的Odin工具导入到带有root权限的第三方recovery分区,并在这种模式下,连接手机与检验电脑,使用CMD命令行进入adb shell。重置密码的方法和使用的命令与第一种情况相同。
通过上述步骤,可使检材手机恢复至正常状态在进行数据提取。
通过大量实际案件的检验与论证,对于部分国际主流品牌检材手机在未开启USB调试模式且带有锁屏密码的情况,通过上述方法可以实现数据的获取。但个别国产品牌型号手机,由于缺少符合要求的第三方recovery分区并且提取数据时需要在屏幕上有点选操作要求的,则不适用于上述方法。这些特殊检验条件的检材手机可在实际检验工作中借助特殊工具,如Jtag进行机身镜像的获取或者芯片移植法提取来实现数据的提取。
[1] 王桂强.手机物证检验及其在刑事侦查中的应用[J].刑事技术,2006(1): 25-31.
[2] http://www.oxygen-forensic.com/download/pressrelease/ PR_FS2011_ENG_2011-10-31.pdf.
[3] 丁锰,康艳荣,黄冬.一种获取Android应用程序密码的方法[J].中国人民公安大学学报:自然科学版, 2014(4): 21-23.
[4] 丁红军,范玮.手机物证检验原则[J].刑事技术,2012(3): 48-50.
引用本文格式:王即墨,计超豪,裴洪卿.Android智能手机锁屏密码及破解方法研究[J].刑事技术,2015,40(2):142-145.
Bypass for Screen Lock of Android Smart Phone
WANG Ji-mo1, JΙ Chao-hao1, PEΙ Hong-qing2
(1.Ιnstitute of Forensic Science, Wenzhou Public Security Bureau, Zhejiang Wenzhou 325000, China; 2.Shanghai Branch of Beijing Ryan Security Technologies Ltd, Shanghai 200335, China)
Ιt is quite common to come across a locked mobile phone in case investigations.How to bypass the screen’s lock presents a challenge towards digital forensic investigators.This article focused on bypassing the locked screen of Android smart phones.Three different types of Android passcodes, gesture, PΙN code and complex, were introduced along with their storage principle and fi le structures.To make the brute forcer successfully get the pattern code depended on acquiring the passcode key fi le.Bypassing the screen lock could be achieved by using ADB (Android debug bridge).Two different approaches to solve the problems on getting passcode were suggested with the conditions of mobile phone’s USB debugging mode at on or off.When USB debugging mode was on, investigators could try to gain root access into the phone and apply adaptable method to decrypt or remove the screen lock.But if the USB debugging mode was off, the custom recovery method could be used to fl ash on the phone to gain the access into fi le system.The bypassing of a Samsung GT-i9300 phone’s passcode was taken as an example to demonstrate the actual application of the methods described in the paper.
digital forensics; Android smart phone; ADB(Android debug bridge); passcode bypass
DF793.2
A
1008-3650(2015)02-0142-04
王即墨 (1969—),男,浙江温州人,工程师,学士,研究方向为电子物证。 E-mail:wzwjm@sohu.com
2014-06-30