安卓备份文件口令认证机构分析及其安全性
2015-04-17陈秀容厦门大学信息科学与技术学院福建厦门361005
陈秀容(厦门大学信息科学与技术学院,福建 厦门 361005)
安卓备份文件口令认证机构分析及其安全性
陈秀容
(厦门大学信息科学与技术学院,福建厦门361005)
摘要:为了研究安卓备份的消息认证结构,从加密算法组合方式以及加密算法类型分类的视角,使用了无条件安全性和计算安全性进行了分析,计算安全模型,将安卓备份秘钥结构拆分为伪随机函数(PBKDF-HMAC)和伪随机置换(AES分组密码)函数两个部分。然后证明这两部分满足一定的特性,基于信息论,对安卓备份秘钥架构安全性进行了简洁的说明。
关键词:口令认证机制;密钥导出算法;计算安全
Android是Google公司于2007年专门为手机发布的一款开源操作系统。自Android操作系统发布以来,引发了手机革命。越来越多的人依赖手机更多于电脑。智能手机一方面给人们生活带来了方便,同时也给人们增加了负担,大量私人保密信息的存储,不法分子可以通过各种攻击手段,如盗取、窃听等方式来获取存储在移动设备端的数据。这些数据的泄露,可能对个人、企业和国家带来不可估量的损失。因此,及时备份数据以及对数据进行加密显得尤为重要。本文是对安卓备份加密消息认证机构的探讨以及对备份数据的安全性说明。
1 数据保护方式
对数据保护的另一种方式为数据加密,通过对原来的明文数据加密处理,使其转换为不可读的数据,通常称为“密文”,只有当用户输入相同的密钥,经过解密处理后才能显示可读内容[i]。数据保护可分为系统自带加密方式,比如主流的微软windows系列,苹果macos系列,以及开源linux系列等等。
以及采用文件口令认证机制的软件方式来加密数据[ii]。软件加密主要有文件、文件夹加密和磁盘加密。Android备份文件[iii]、7-zip[iv]、PDF[v]、OpenOffice[vi]等应用软件则通过将加解密过程嵌入到文件及文件夹中。TrueCrypt[vii],McAfee[viii]和PGPWDE[ix]等磁盘加密软件通过对虚拟磁盘驱动程序进行加解密,从而实现对数据的保护。在Android备份文件、OpenOffice、PGPSDA[x]、Truecrypt及WinRAR[xi]中采用AES[xii]、Whirlpool[xiii]、CAST5[xiv]等分组加密算法.分组密码具有良好的扩展性,介入的敏感性,使其更适合用作加密标准。
2 基本知识
2.1哈希函数架构-秘钥导出函数
密钥导出算法(KeyDerivationFunction,KDF)特别是基于口令的密钥导出算法,将用户简单,不均匀的原始密钥材料(如口令)进行一定处理、变换和扩展成长度更长,均匀分布的密钥,扩展后的密钥近似一个随机二进制字符串,攻击者从这个密钥将无法获得初始密钥的任何信息。由于用户的口令通常从较小的字符空间选取,因此很容易受到穷尽口令攻击和字典攻击。为了增加攻击者的时间消耗,提高结构的安全性,密钥导出算法中引入迭代次数(c)以及一定长度的盐(salt)[16][xv],迭代次数的使用增加了攻击者计算代价,使穷尽口令搜索变得缓慢;而盐与口令相结合产生密钥,使得字典攻击的搜索空间变大,增加了抵御字典攻击的风险。
在Android备份文件中,选用的是以HMAC-SHA1为底层伪随机函数的PBKDF2作为密钥导出算法[3],导出的密钥作为分组加密算法AES使用。
在文档及磁盘认证机制中都加入了一定长度的盐及迭代次数参与密钥的生成,不同软件对迭代次数以及盐的长度的选择上也有所区别,Android备份文件为32字节的盐以及10000次的迭代,而TrueCrypt则为64字节的盐和2000次或者1000次的迭代,这些差异会对整体的结构产生一定的影响。密钥长度方面,Android备份文件、7-zip为256-bit;OpenOffice、PGPWDE为128-bit;Truecrypt则可根据用户的需要设置为256-bit甚至更长。
2.2消息认证机制
在文件安全机制中,通过消息认证(MAC)机制来防止文件传输及存储过程未经授权的访问、篡改和伪造,从而保证文件的完整性。消息认证码的生成主要由三部分组成[错误!未定义书签。]:密钥导出算法(k)、MAC生成算法(T)以及验证算法(V)。密钥导出算法(k)对用户的口令进行处理,使导出的密钥熵值足够大,从而解决用户口令长度及强度不够等问题。文件口令认证机制是文件消息认证机制中常用的方式[错误!未定义书签。]。在这种认证机制中,用户输入的口令经过密钥导出算法生成导出密钥,再将其和消息内容经过对称加密算法生成消息认证码,并将消息认证码保存作为验证凭据[xvi]。
3 安卓备份消息认证架构及安全性
安卓备份消息认证机制:安卓备份消息认证架构如图所示,其大致分为三个阶段,PBKDF2架构,AES_CBC解密模式,以及HMACSHA512的底层哈希函数。将HMAC作用于秘钥导出函数架构的底层哈希函数,得出的512bit的hash值作为AES解密函数的输入。通过哈希函数与分组函数并用,提高架构的安全性。由输出的AES分组密文与安卓中提取出的密文想比对,如果正确,备份数据为可读。
在现代密码学中,主要有两种方式证明密码方案的安全性:无条件安全(unconditionalsecurity)和计算安全(computationalsecurity)[xvii]。无条件安全在敌手拥有无限的计算资源的假设前提下也无法对密码方案造成威胁,虽然无条件安全性具有完美性,但却有难于实现的缺点。计算安全指敌手利用已有最好的方法破译该系统所需要的努力超越了敌手的破译能力。虽然其对敌手的计算能力有所限制,但在理论分析中的计算能力已超过现实,因此在实际应用中一般通过计算安全来证明密码方案的安全性[xviii]。本文主要围绕口令认证机制的密钥导出算法AB-MAC架构进行研究。
参考文献:
[1]周君.基于口令的密钥导出算法安全性分析[D].厦门:厦门大学,2013.
[2]PGP.PGPSDA[EB/OL].http://www.pgpi.org/products/pgpsda/.
[3]WinRAR[EB/OL].http://www.winrar.com.cn/index.html.
作者简介:陈秀容(1989—),女,福建厦门人,硕士研究生,研究方向:电路与系统。