标题 | iPhone备份文件加密模式及安全性研究 |
范文 | 摘要:iPhone作为主流移动终端,在国内外的用户非常多。近几年,iOS系统已经迭代更新至iOSl3,用户使用iTunes对iPhone手机进行备份的文件结构也从iOSl0开始发生了较大的变化。用户通过irlunes对iPhone手机进行备份时可以选择对备份进行加密。理论上来说,没有备份密码的情况下,无论是用户还是取证鉴定机构都很难解密iPhone备份文件。该文对iPhone备份文件的加密模式进行了深入的研究,并探究其加密模式的安全性。 关键词:iPhone备份文件;加密模式 中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2019)36-0049-02 1背景 iPhone手机由于其流畅的界面UI,简约的工业化没计和前沿的智能化思想成为越来越多用户首选的智能手机。与此同时,iPhone的安全性也越来越高,自从iOSl0开始,市面上已经没有提供稳定越狱的工具,取证厂商只能通过iPhone备份数据才能够获取到iPhone手机的隐私数据。倘若用户在此之前对iPhone手机设置了备份密码,苹果厂商声称在没有备份密码的情况下,iPhone备份文件是无法被暴力破解的。本文通过对iPhone备份文件的加密模式进行研究,进而论证iPhone备份的安全性。 2新版iPhone备份与旧版iPhone备份的区别 用户通过iTunes备份获得的备份文件保存路径如下: Windmvs XP:oHOMEPATH%YApplication Data\Apple Com-puter\MobileSync\Backup\{U DID) Windows Vista/7/8:% HOMEPATH% \AppData\Roaming\Ap-ple Computer\MobileSync\Backup\( UDID) %APPDATA%\Apple Computer\MobileSync\Backup\{ UDID} Os X:~/Library/Application Support/MobileSync/Backup/{UDID} 2.liOS10以前 iOSIO之前的备份文件中包括如下文件: 2.2 iOS10及其以后 iOSIO以后的备份文件和目录结构都发生了变化。其中Mainfest.mdbd文件变为了Mainfest.db。后者为sqlite数据库,除记录了文件路径相关信息外,对于加密的备份它还记录了每个文件对应的加密密钥,在加密备份中Mainfest.db文件也会被加密。同时发生变化的还有备份文件的存储结构,由之前的同一级目录存储变为了分级存储,新版备份文件会根据每个文件名的前两个字符为文件夹名称创建父文件夹,文件名前两个字符相同的文件会被归类到同一个目录下。新版本备份文件目录结构如下图2所示: 3 iPhone备份文件加密模式 当使用iTunes创建一个加密的iPhone备份时,会在电脑上自动生成一个与之对应的Backup keybag,而这个keybag是使用PBKDF2算法将备份密码经过1000万次迭代运算生成的。之后,keybag经过AES Unwrap算法进行加密之后作为密钥,再使用AES-CBC-256算法对备份文件依次进行加密。 3.liOS10以前 iOSIO之前的系统在加密备份时,使用了PBKDF2With-HamcSHAl算法,经过若十次迭代后生成keybag。 3.2 iOSIO及其以后 iOSIO及其以后的系统在备份时,首先使用PBKDF2With-HameSHAl算法对备份密码进行若干次迭代运算后,再将迭代结果作为输入项,使用PBKDF2WithHamcSHA256算法再次进行若十次迭代运算生成最终的keybag。同时,系统还会对man-ifest.db文件通过AES Unwrap算法进行加密,并将加密该文件的key记录在Manifest.plist文件中。 4 iPhone备份文件安全性探究 由上文得知,iPhone备份首先会对备份密码进行PBKDF2哈希运算。接下来的加密过程都是基于PBKDF2算法的运算结果进行的。备份文件的加密通过AES对称加密算法,众所周知,AES为对称加密算法,在密钥已知的情况下,是可以解密出加密信息的。因此,iPhone加密备份破解的关键点就在于PB-KDF2算法的安全性。 4.1 PBKDF2 Password-Based Key Derivation Function 2简称PBKDF2,它基于一个伪随机函数,例如iPhone备份加密是基于HMAC算法,输入密码或口令以及一个salt值,并多次重复该过程以生成派生密钥,该密钥可在后续操作中用作密码密钥。增加的计算工作使密码破解变得更加困难,这就是所谓的密钥拉伸。 4.2 PBKDF2函数定义 DK= PBKDF2(PRF, Password, Salt,e, dkLen) PRF是两个参数的伪随机函数,输出长度为hLen Password是生成派生密钥的主密码 c是所需的迭代次数 dkLen是所需的派生密钥的长度 DK是生成的派生密钥 派生密钥由dkLen/hLen個bloek块连接而成: DK=T1+T2+…+Tdkledhlen 其中,每个block通过函数F生成: T.= F(Password, Salt,c,i) 函数F由链式PRFs进行c:次异或迭代的结果。PRF的第一次迭代使用Password作为PRF的KEY,并将Salt与编码为大端32位整数的i连接起来作为输入。PRF的后续迭代使用Password作为PRF密钥,前一次PRF计算的输出作为输入: F(Password, Salt,c,i)=Ui U2 U。 其中: Ul= PRF(Password, Salt+ INT_32_BE(i) U2= PRr(Password, u1) Ue= PRF(Password,Ue-1) 例如,iPhone IOS10以前的系统备份加密的密钥使用: DK=PBKDF2(HMAC - SHAI, backup_password, back-up_SALT, backup.IterationCount, 256) iPhone IOSIO及其以后的系統备份加密的密钥使用: DK_TEMP=PBKDF2(HMAC - SHA256, backup_passWord,backup_DPSL, backup_DPIClterCount, 256) DK=PBKDF2(HMAC - SHAI, DK_TEMP, backup_SALT,backup.IterationCount, 256) 在新版本的iOS系统中,尽管对备份密码进行了高强度的哈希运算,但是由于其没有关联特定设备,理论上来说,可以通过暴力碰撞获取到备份密码。当然,iTunes备份密码可以设置数字、字母和特殊符号的组合,因此,可以通过高强度的密码组合来抵抗密码碰撞,从而增加安全性。 参考文献: [1]周君.基于口令的密钥导出算法安全性分析[D].厦门:厦门大学,2013. [2] Visconti A,Bossi S,Ragab H,et al.On the weaknesses of PB-KDF2[C]// The 14th International Conference on Cryptologyand Network Security (CANS 2015). Springer InternationalPuhlishing.2015. [3]金星,孙波,曹雪芬.备份文件加密的iPhone手机取证研究[J]警察技术,2012(5):12-14. [4] iOS Security[EB/OL].https://www.apple.com/business/docs/site/iOS_Security_Guide.pdf. 【通联编辑:谢媛媛】 收稿日期:2019-10-29 基金项目:基于云的仿真和自动化测试技术研究(2019年基本科研业务费专项资金,所内编号C19352) 作者简介:石奥迪(1994-),上海人,研究实习员,本科,主要研究方向为电子取证鉴定。 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。