Android移动设备的高效存储加密外文翻译资料
2022-07-26 20:54:15
英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料
Android移动设备的高效存储加密
摘要
近年来,随着电子产品不断创新,手机设备的硬件规格变得越来越好,越来越重要的功能服务和用户数据在智能手机上得到实现。如何保护用户的隐私、保证用户档案安全成为当下迫切需要解决的话题。在本文中,我们提出了一个实现安全存储的嵌入式系统框架。该框架能够综合加密和散列算法,提供安全高效的数据存储服务。我们在基于Android的三星S4智能手机上实现该框架。同时,为了实现本框架,用于个人隐私和应用程序数据的保护,我们采用AES、BCrypt、PBKDF2、MD5算法,并通过一套有效的实验分析加以验证。
分类
安全与隐私-gt;手机平台安全
关键字
嵌入式设备;存储;安全;加密
1 引言
在Android嵌入式系统中,如何提供高效安全的数据保护一直是非常重要的话题。在谷歌应用市场中,有很多应用声称他们能够加密或隐藏文件。然而,这些应用都有个共同特点,夸大其词,通常只是实现很简单的加密,而对于用户密码加密和文件保护,这些应用基本上都是做得不够的。谷歌应用市场上也有不少无良软件开发商声称其应用有加密功能,但他们只是隐藏没有加密的文件而已。此外,一些应用通过密码提供加密保护,但他们只是将密码以明文形式存储于智能手机中,如果智能手机被盗,将会有相当大的安全隐患。
由于嵌入式移动设备上存储的数据的敏感特性,攻击者可以很容易地从存储设备中获得这些数据。[18]Zhou提供了一个例子来转储和分析敏感数据。[16]Wang还暴露商业移动设备的安全风险。数据和应用程序存储是最重要的风险之一。Mohamed[10]介绍了如何嗅探和操纵Android传感器数据。Lee也[9]论证了通过存储分析器来检查IO属性之间的相关性。因此,目前移动操作系统提供了某种形式的存储加密。例如,谷歌推出了全磁盘加密来加密包含用户数据的整个分区。一些操作系统(如黑莓)采用预文件加密,仅仅保护含用户隐私的敏感数据。对于个人计算环境中的数据加密存储与擦除,Diesburg等人[3]总结和比较现有的方法。因此,关于全文件系统加密有相当多的成功案例[14,17]。然而,对所有存储的数据进行加密对用户来说是不可行的,更别提还需要对正在运行的应用程序进行保护。另一方面,也有许多关于安全校验的优秀研究[1,4,6]。Lee[8]提供一种智能的完美的方法从NAND闪存中加密数据和安全删除数据。Reardon[12]进一步对数据的安全校验进行了调查研究。Jia[5]还提出了一种方法在闪存转换层中实现安全删除。然而,由于移动设备可能被窃取或丢失,用户也可能不会删除这些敏感数据,因此我们仍然需要灵活简便的方法来保护我们的数据和应用程序。
近年来,随着电子产品不断创新,设备的手机硬件规格会越来越好。越来越重要的用户数据服务将会在智能手机上执行。如何保护用户的隐私和安全档案成为一个新兴的课题。在本文中,我们致力于提供一个Android智能手机安全框架。该框架是灵活的,根据用户的实际需要提供不同的加密和散列算法,从而提高智能手机的个人隐私安全。
下文组织如下:第2节总结Android组件和加密方案。第3节提出了密码不可逆的加密子系统。第4节提供系统演示和实验。第5章进行结论与讨论未来发展。
2 前言
2.1 Android组件
在本文中,我们讨论应用程序和数据存储的保护。我们首先需要知道Android的重要组成部分。对于Android操作,Intent是要执行的操作的抽象描述,多处都有用到,如startActivity()启动Activity时,如发送Intent给任何指定的BroadcastReceiver组件,如通过startService()或bindService()与后台服务通信。如果开发人员想使用这些组件,开发人员必须在清单文件中声明它们。Android为我们的系统设计提供了三种重要类型的组件:
(1)Activity:Activity是一个可见的过程,在屏幕上给用户提供用户界面。Activity是由Intent发起的。
(2)Service:Service是用户不可见的后台过程。例如,服务可以后台执行播放音乐和下载文件操作。
(3)BroadcastReceiver:BroadcastReceiver是一个从系统接收广播Intent的组件。例如,如果应用想要知道操作系统启动事件,就可以通过使用BroadcastReceiver来接收广播Intent。
2.2 加密和散列算法
2.2.1 高级加密标准(AES)
高级加密标准(AES)[2]是一个特定的加密数据标准,由美国NIST组织于2001年成立。AES是基于替代-置换网络的设计原则,同时结合替代和置换算法,不管是软解还是硬解都很快。AES已被美国政府采纳,目前已在全球范围内广泛使用。
2.2.2 MD5算法
MD5算法[13]是一种被广泛使用的哈希函数,产生一个128位散列值。MD5摘要已被广泛应用于软件行业,用于传输文件时提供文件正确性完整性的保证。
2.2.3 PBKDF2
PBKDF2(基于密码的密钥派生函数2)[7]是RSA实验室公共密钥加密标准(PKCS)系列,尤其是PKCS#5。对于输入密码或追加盐值的密码的加密,PBKDF2采用伪随机函数,如散列加密、Cipher、HMAC,通过重复过程很多次来产生密钥,方可作为后续操作的密钥。这额外的计算工作使得密码的破解变得更加困难,这被称为键值拉伸。
2.2.4 BCrypt
BCrypt[11]是一个由Niels Provos、David Mazieres设计的,基于Blowfish加密的密码散列函数。BCrypt函数被作为BSD系统和包括一些Linux发行的如SUSE Linux在内的其他系统的默认密码哈希算法。
3 密码不可逆的加密子系统
本研究提出了一个基于Android4.4.2和Android5.0.1的三星Galaxy S4智能手机实现的安全的数据保护机制,对智能手机上系统应用程序和数据加密的有效性和安全性进行研究。我们提出的加密子系统概述如图1所示。加密子系统是基于Android操作系统的应用框架实现,由“活动锁子系统(AppLock)”,“隐私数据保护子系统”和“认证子系统”三大模块组成。
图1 Android设备下的加密子系统
该系统的结构有三个主要的子系统:认证子系统、活动锁子系统和隐私数据保护子系统。
认证子系统提供用户认证,当用户第一次使用系统时,系统会通过绑定手机Device ID来进行注册,防止手机丢失时被方法清除应用程序数据和隐私档案。如图2所示,该子系统通过用户密码提供数据保护。
图2 加密子系统内部结构图
活动锁子系统使用用户程序模块表来获得应用程序列表。该子系统实现的接口,允许用户通过分层的可扩展的列表视图选择一个锁定的应用程序。如图3所示,在选择所需的锁定的应用程序后,您可以按自己的方式自定义密码。请注意,每个应用程序可以有一个唯一的密码,密码将通过MD5散列算法加密保护。此外,为了保护应用程序隐私数据,该子系统还将通过检查用户应用程序状态的后台扫描服务来启动广播接收器。
图3 总体设计流程图
隐私数据保护子系统使用文件列表模块来获取系统应用程序和用户应用程序列表。实现的接口也将应用程序分为几个类别,如:文本,图片,音频和视频。为了提高便利性,我们实现了通过可扩展的列表视图提供层次列表。如果我们要加密文件,我们首先通过层次列表选择这个文件。之后,子系统会要求用户以明文形式输入密码。然后,子系统使用BCrypt产生第一组密文代码,Key1。然后子系统将其存储在本地以便将来比较。该隐私数据保护子系统也会使用PBKDF2产生第二组密文代码,key2。我们对选定的文件采用KEY2进行AES加密。
如图3所示,当用户第一次打开程序时,系统会通过这个Android API BroadcastReceiver在后台程序中顺序扫描用户的Android应用程序。该界面允许用户选择所需的应用程序,将其锁定于可扩展的列表视图的分层列表。该子系统同时支持一次性锁定多个应用程序。
如果用户希望加密文件,数据保护子系统将提供数据加密。如图4所示,在数据保护子系统中,用户选择了他们想要使用的已加密数据或应用程序之后,数据保护子系统将提示用户输入明文口令以进行身份验证。因为BCrypt是一个低哈希碰撞不可逆的算法,我们可以用它来提供良好的密码保护。为了对用户输入的密码提供保护,系统采用BCrypt加密明文密码,然后系统存储生成的密文KEY1。下一步,系统会产生密码Key2用于AES加密。该子系统通过PBKDF2算法产生key2,还为数据文件提供了口令认证。如果用户想查看加密的数据,子系统将要求用户输入密码进行身份验证。它将通过BCrypt算法获得临时密文key1#39;。然后它会比较key1与key1#39;。如果验证通过,子系统将调用解密过程。
图4 加密过程流程图
文件的解密过程如图5所示。一开始,系统会让用户选择解密文件。然后系统提示用户输入密码。之后,验证密码,它将用Bcrypt生成一个密文KEY1#39;和KEY1对比。如果用户没有通过密码验证,系统将跳转到密码输入页面。如果用户通过密码验证,系统将会通过PBKDF2算法得出KEY2。该系统将使用生成的Key2解密用户选择的文件。请注意,这种方法有许多优点。系统未存储原始密码,而是存储散列键值。由于BCrypt的具有强大的性能,攻击者不易解密文件。此外,子系统也没有存储AES加密密钥,我们通过PBKDF2算法得到它。
图5 解密过程流程图
4 系统演示和实验结果
在本节中,我们介绍了基于Android系统的实施机制,同时也将进行价值评估和实验数据挖掘。
4.1 系统演示
图6 系统演示图
如图6所示,这是在一个真机环境下活动锁子系统的实际截图。对于这活动锁子系统,我们通过图形界面操作进行演示。图6(a)显示子系统登录页面。活动锁的主要目的是保证用户隐私数据的安全。如图6(b)所示,后台服务将检测哪些对象(文件或应用程序)已被选中。之后,子系统会要求用户输入口令。在选择应用程序后,子系统将进入密码身份验证阶段。如图6所示,子系统将要求用户输入所需应用程序的密码。然后,子系统将用MD5算法计算密码,然后,它会检查用户输入的授权密码的正确性。如果用户想打开一个加密的应用程序,系统会进入密码输入页面,让用户输入访问密码。如果密码正确,用户可以开始使用该应用程序。如果用户未能通过密码验证,子系统将返回到密码检查页。
图6(e)-(i)显示了隐私数据保护子系统的截图。隐私数据保护子系统将文件和文件夹分为两类:加密和未加密。当用户选择显示加密文件列表时,子系统将以树状结构列出所有文件夹和文件,如图6所示(e)。我们的子系统支持文件多选。在文件选择之后,用户必须输入一个密码,如图6所示(G)-(h),然后子系统将依次对所选文件进行加密。图6(i)所示,当文件正在被加密时显示进度条,让用户知道当前执行进度。
图7 解密结果的一个例子
图7分别显示了加载文件成功和失败的结果。图7(a)为原始图像。加密文件后,操作系统(即Android或Windows)将提示文件损坏或未知文件名,如图7所示(b)。因此,即使有人对该文件感兴趣,也没有办法解密他们。只有当用户完成解密过程,他/她才可以得到原始图像,如图7所示(c)。
4.2 实验结果
图8 加密性能测试结果
我们进行了3种不同的密码长度的实验:分别是4位英文字符,8位英文字符,和12位字符的组合(英语和特殊符号一起)。我们还提供了智能手机上8种常见的文件大小的文件用于实验:10 KB,100 KB,500 KB,1 MB,2 MB,5 MB,和10MB。对于隐私数据保护子系统,我们将用几种常见类型的智能手机文件来测试。我们测试了八种常见文件类型:*.docx(微软Word文件),*.mp3(音频文件),*.jpg(图像文件),*.gif(图像文件),*.zip(压缩文件),*.txt(文本文件),*.mp4(音频视频文件),和*.pdf(便携式文档格式)。
实验平台是三星
全文共9789字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[144514],资料为PDF文档或Word文档,PDF文档可免费转换为Word