一种基于ARM TrustZone的手机私密信息保险箱的制作方法
【专利说明】—种基于ARM TrustZone的手机私密信息保险箱
[0001]
技术领域
[0002]本发明属于手机安全技术领域,涉及一种手机私密信息保护和应用程序安全运行的保险箱,特别是涉及一种基于ARM TrustZone的手机私密信息保险箱。
[0003]
【背景技术】
[0004]目前在移动设备领域有两种安全隔离技术,一种是虚拟化技术,另一种是GlobalPlatform提出的可信执行环境。
[0005]虚拟化技术为不同的客户操作系统提供系统所需要的全部资源,每个操作系统可单独运行在不同的安全级别模式。虚拟化技术的实现基于虚拟机(Virtual Machine),同时对内存空间、资源和时间进行分割。OpenKernel Labs公司发布了基于微内核操作系统0KL4 Microvisor的虚拟化解决方案SecureIT Mobile,通过虚拟化技术,在同一移动设备上同时支持两个域,这些域之间相互隔离;Green Hills Software为EAL 7开发的操作系统INTEGRITY,采用了虚拟化技术将不可信应用和可信应用隔离开,并将可信应用置于高可信的操作系统核心之上。但是虚拟化技术并未对设备和内存提供硬件保护,仍存在较大的安全隐患。
[0006]可信执行环境构架上与虚拟化技术类似,都是在同一个硬件平台上运行两个执行环境,所不同的是,它提供了对设备和内存的硬件保护。通常的可信执行环境的实现是基于ARM TrustZone技术。ARM TrustZone技术通过在嵌入式内核中开辟出一块可信代码区来实现完整的系统安全性。可信代码区所占空间相对较小,运行在支持ARM TrustZone技术的处理器新增的安全区域内,从而为系统内部的代码实现系统级的安全性奠定了基础,可信代码支持从嵌入式引导启动到支持各个级别的代码可信执行。这些可信代码就可以用来处理系统中安全相关的任务。华为海思麒麟620芯片已经使用了基于ARM TrustZone的安全芯片。ARM TrustZone的正常模式和安全模式两种模式集中在一个内核里,可以实现简单切换,实现硬件层强化的安全保护,用户的敏感数据存于具有安全模式的芯片中,达到安全防护的目的。但是这款芯片更多优点是集中在性能的提升方面,对于用户的安全应用没有更多指导。
[0007]
【发明内容】
[0008]为了解决用户文件和应用程序安全隔离问题,本发明提供了一个基于ARMTrustZone的手机私密信息保险箱。
[0009]本发明所采用的技术方案是:一个基于ARM TrustZone的手机私密信息保险箱,其特征在于:包括普通域操作系统(Rish OS)和安全域操作系统(Security OS);所述的普通域操作系统切换到安全域操作系统时,需使用到ARM TrustZone提供的监控模式(Minitor Mode),用户通过普通域操作系统发送快速中断(FIQ)进入监控模式,在监控模式下修改ARM处理器的安全配置寄存器(SCR)的NS位,将其置为0,使得CPU状态切换到安全域操作系统;在安全域用户能选择进行安全运行程序或进行手机私密文件存储,并在读取内存的时候利用ARM TrustZone CPU提供的加密功能对安全域的私密文件进行加解密。
[0010]运用本发明提供的一个基于ARM TrustZone的手机私密信息保险箱进行手机私密信息保险的方法,其特征在于:在普通域用户通过简单的操作即能实现手机私密文件加密保存到安全域中,在安全域中用户能安全运行应用程序。
[0011]作为优选,所述的手机私密文件加密保存到安全域中,其具体实现包括以下步骤:
步骤1:用户登陆手机客户端,点击传送文件按钮,标记文件后触发文件传送模式;步骤2:普通域使用内核中的TrustZone驱动(TrustZone Driver)发送快速中断(FIQ)、系统进入监控模式(Monitor Mode),同时冻结普通域CPU的状态;
步骤3:监控模式(Monitor Mode)修改ARM处理器的安全配置寄存器(SCR)中的NS
位;
步骤4:从安全域利用文件传送机制根据标记找到要传送的文件,去除标记,传送到安全域的缓存中;此时普通域的CPU处于冻结状态,无法对传送过程进行渗入。由于安全域具有最高权限,所以可以读取到普通域内存中的所有数据;
步骤5:利用ARM TrustZone的密钥,对传送来的文件数据采用加密算法进行加密存储。
[0012]作为优选,步骤5中所述的加密算法采用ARM TrustZone提供的AES算法。
[0013]作为优选,所述的安全运行应用程序,其具体实现包括以下步骤:
步骤1:用户点击保险箱中的程序,触发切换操作;
步骤2:普通域使用内核中的TrustZone驱动(TrustZone Driver)发送快速中断(FIQ)、系统进入监控模式(Monitor Mode),同时冻结普通域的CPU的寄存器的状态;
步骤3:监控模式(Monitor Mode)修改ARM处理器的安全配置寄存器(SCR)中的NS位,将该位置0,进入安全域;
步骤4:安全域运行完整的Android操作系统,用户直接运行安装程序操作,运行应用程序;由于ARM TrustZone实现了硬件隔离并提供了对外设,如屏幕键盘的保护,所以应用程序在安全域是可以安全运行的。
[0014]步骤5:使用I/O监听函数对安全域内存中的文件读取进行监听,写入文件采用加密算法进行加密,读取文件则进行解密;这样保证了运行程序过程中数据的安全性和完整性。
[0015]作为优选,安全运行应用程序中所述的加密算法采用ARM TrustZone提供的AES算法,解密采用ARM TrustZone提供的AES解密算法。
[0016]作为优选,安全运行应用程序中所述的切换操作,其具体实现过程包括以下子步骤:
步骤1.1:TrustZone驱动发出中断请求;
步骤1.2:中断请求被发送到ARM TrustZone的中断控制器TZIC中; 步骤1.3:由中断控制器TZIC判断请求中断的类型,发送相应的中断给ARM处理器;步骤1.4:根据中断类型发送到不同的ARM寄存器,将IRQ中断信号发送给当前运行状态寄存器(Current Program Status Register,CPSR),若是 FIQ,则进入监控模式;
步骤1.5:通过监控模式,访问安全配置寄存器(Seucre Configurat1n Register,SCR),将NS位置O,实现系统切换。
[0017]本发明的有益效果:
(1)利用ARMTrustZone技术实现了一个手机私密信息保险箱,用户可以把涉及隐私和安全性要求高的程序和文件存入保险箱,从而保护其安全性;
(2)基于ARMTrustZone技术实现了安全操作系统和非安全操作系统的手机双系统切换。在普通域和安全域运行不同的操作系统,用户通过简单的操作,即可实现两种系统的快速切换从而实现硬件隔离;
(3)利用ARMTrustZone提供的密钥,对安全域的机密文件数据进行加密,提高安全性保护了用户数据的安全;
(4)安全域和非安全域之间的切换做到了快速和透明,提高了易用性,同时用户可以手工将安全级别高的程序安装在保险箱中,也可以将私密文件直接放到保险箱中,操作方便快捷。
[0018]
【附图说明】
[0019]图1:是本发明实施例的系统原理示意图。
[0020]图2:是本发明实施例的私密信息保护流程图。
[0021]图3:是本发明实施例的为应用程序安全运行流程图。
[0022]图4:是本发明实施例的普通域到安全域切换流程图。
[0023]
【具体实施方式】
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
[0024]请见图1,本发明提供的一个基于ARM TrustZone的手机私密信息保险箱,包括普通域操作系统(Rish OS)和安全域操作系统(Security OS);所述的普通域操作系统切换到安全域操作系统时,需使用到ARM TrustZone提供的监控模式(Minitor Mode),用户通过普通域操作系统发送快速中断(FIQ)进入监控模式,在监控模式下修改ARM处理器的安全配置寄存器(SCR)的NS位,将其置为0,使得CPU状态切换到安全域操作系统;在安全域用户能选择进行安全运行程序或进行手机私密文件存储,并在读取内存的时候利用ARMTrustZone CPU提供的加密功能对安全域的私密文件进行加解密。
[0025]以下对本实施例的监控模式(Monitor Mode)原理进行详细说明:
在带ARM TrustZone安全扩展的ARM处理器的CP15协处理器中有一个安全配置寄存器(SCR),该寄存器中有一个NS位,这个NS位指明当前系统的状态。如果NS为0,则当前系统处于安全态;如果NS为1,则当前系统处于非安全态。但当系统处于监控模式时,不管NS位是否为O,都可以访问安全环境的资源。这个NS位不仅影响CPU内核和内存子系统,还可以影响片内外设的工作。NS位是ARM TrustZone对系统所做的关键扩展。系统的安全状态与系统的用户模式和特权模式无关,也就是说用户态程序也可以运行在安全态,而运行特权态程序时系统也可能处于非安全态。NS位只能被运行在安