一种ARM平台上可信密码模块的实现和服务方法与流程

文档序号:11865214阅读:608来源:国知局
本发明涉及移动信息安全领域,主要涉及一种ARM平台上可信密码模块并且高效服务的方法。
背景技术
::目前,具有强大的处理能力、更多的存储空间和独立操作系统的移动智能终端已成为移动终端的发展趋势。与个人电脑的发展一样,移动智能终端的普及给人们带来极大便利的同时,也给人们带来了极大的安全隐患。由于具有较小的尺寸,以及所处环境的复杂性和不确定性,其面临的安全问题比PC系统的更加复杂,并且所造成的损失更大。因此,使用可信计算技术为用户构建一个安全可信的计算平台变得非常重要。当今,主流的移动平台处理器有ARM、Intel和MIPS。其中,ARM处理器通过采用精简指令集(RISC)和低功耗工艺,非常适合存储空间有限和功率受限的嵌入式设备,因此ARM处理器已广泛应用于工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场。ARM公司推出TrustZone技术来保证ARM平台的系统和数据安全,ARMTrustZone技术本质上是一种虚拟化技术,依赖于ARM处理器提供的功能,通过将处理器状态分为安全和非安全两种工作模式,并且配合其他总线以及外设上的安全属性来实现遍布整个硬件系统的安全。每个物理ARM处理器核提供两类虚拟核,一类是非安全核(Non-Secure),另一类是安全核(Secure)。非安全核运行在普通世界下,安全核运行在安全空间下。两种模式和两类虚拟核都是集成在一个物理核中的,根据不同的需要是同一个物理核在两种模式和两类虚拟核中简单切换。普通世界的软件可以使用SMC(SecureMonitorCall)指令或者通过硬件异常机制的一个子集来进入到Monitor模式,从而将ARM处理器切换至安全空间的模式并运行受保护的安全软件。Monitor模式主要任务是保存CPU运行时的上下文信息,以便从安全空间返回普通世界时CPU和OS能够正常工作。另一方面,2003年,由Intel、Compaq、HP、IBM和微软等公司参与的可信计算组织(TrustedComputingGroup,TCG)成立,提出通过在计算平台上增加可信平台模块(TrustedPlatformModule,TPM)和移动可信模块(MobileTrustedModule,MTM)用于保护传统和移动计算环境。北京交通大学可信计算小组提出基于EFI(ExtensibleFirmwareInterface)和USB接口的PortableTPM方案,降低了传统LPC接口TPM与计算平台的耦合度,使得TPM具备了热插拔和即插即服务的特性。中国科学院软件研究所提出的一种基于移动设备的可信模块实现方法。通过软件模拟可信模块的功能,主要组件包括可信服务进程、可信模块库和密码库。主要可信功能在TrustZone技术支持的安全世界中实现,位于普通世界的应用程序调用可信服务时需要切换ARM处理器和移动计算平台的工作状态,单次可信服务开销较大。随着移动设备朝着多核处理器快速发展,移动计算方式已经向着多核并行计算的方向转变。与服务器或桌面版系统不同,移动计算平台对于用户的当前进程资源分配都有相当大的倾斜。所以往往是用户当前的使用进程可以完全占用CPU的资源,如果用户当前进程只能利用多核计算平台的其中一个CPU核,那么程序的效率将无从谈起。综上所述,现有的移动计算平台通过增加硬件或软件模拟的方式构建可信模块,没有充分考虑移动计算环境下受限的计算资源以及硬件平台扩展性的问题,不能满足移动设备对易扩展和高效可信服务的需求。技术实现要素:为了克服现有技术的不足,本发明基于ARM处理器提供的TrustZone技术,提供一种在安全世界内通过软件模拟的方式实现可信密码模块并高效服务的方法,一方面利用多核并行计算的方法提高软件模拟的可信模块在移动设备上服务的效率,另一方面通过利用存储在SecureBootROM内的根密钥加密保护可信模块的安全密码库,保证密码算法和密钥的安全。本发明为解决上述技术问题所采用的技术方案是:首先,由可信高效代理(TrustedEfficientAgent,TEA)接收来自应用程序的可信服务请求,对适合进行并行服务的模块状态读取操作、哈希、签名和验签、对称和非对称加解密密码操作进行封装并分配统一的会话号和特殊命令号,对其它不适合进行并行服务的操作(包括:模块状态写入操作、密钥生成和管理操作)则直接分配会话号和命令号。TEA调用通信代理(CommunicationMonitor,CM),转发这些可信服务请求包,保存并切换主处理CPU核和平台工作状态。然后,CM将可信服务请求转发给主处理CPU核上运行的可信密码模块模拟器(TrustedCryptographyModuleEmulator,TCME),TCME对可信服务请求包进行解封,并根据ARM平台实际的CPU核数初始化从CPU核,以轮转分配的方式,将所有可信服务请求交由主从CPU核上运行的TCME进行处理,并通过命令参数和返回值返回操结果。最后,TCME在接收到由CM转发或者自身分配的可信服务请求之后,由位于安全世界的安全OS读取位于SecureBootROM内的根密钥RK,并对安全密码库SCL进行解密,由SCL向TCME提供符合国家商用密码算法标准的密码算法和密钥生成支持。基于SCL的支持,TCME提供标准的模块管理、身份标识与验证、数据保护和度量报告的操作。本发明提供的方法与现有其它技术相比具有以下的主要优点:相比于硬件实现的可信模块,通过软件模拟实现的可信模块不依赖具体硬件平台,具有更强的可扩展性;通过利用多核并行计算的方法,利用ARM处理器主从CPU核并行处理可信服务请求减少了ARM处理器和整个平台状态切换的次数,提高了整体的可信服务的效率;通过利用存储在SecureBootROM内的根密钥加密保护可信模块的安全密码库,保证了密码算法和密钥的安全。附图说明图1:移动设备上可信密码模块的实现方法、组成及关系图图2:可信高效代理的数据预处理方法图3:主从CPU核启动和并行运行的方法图4:主从CPU内安全密码库保护和TCME提供可信服务的方法具体实施方式本发明基于ARM处理器的TrustZone技术,提供一种在“安全世界”内通过软件模拟的方式实现可信密码模块并高效服务的方法,如图1所示:由可信高效代理TEA接收来自应用程序的可信服务请求,对这些请求进行预处理形成能够多核并行或单核处理的可信服务请求包,TEA调用通信代理CM并将可信服务请求包传递给CM;CM保存并切换主处理CPU核和整个平台工作状态,将可信服务请求转发给可信密码模块模拟器TCME,TCME根据请求类型进行模块管理、身份标识与验证、数据保护和度量报告的多核并行或单核处理;最后,由安全密码库SCL向TCME提供采用符合国家商用密码算法标准的密码算法,并且由储存于SecureBootROM内的根密钥RK加密保护SCL的代码和生成的密钥。结合图1、图2、图3和图4,本发明提出的移动设备上可信密码模块的高效服务的具体实现方法为:一种ARM平台上可信密码模块的实现和服务方法,具体流程如下:(1)可信高效代理TEA接收来自应用程序的可信服务请求,对这些请求进行预处理形成能够多核并行或单核处理的可信服务请求包,TEA调用通信代理CM并将可信服务请求包传递给CM。在该步骤中,具体实施可以分为如下细节:(1.1)可信高效代理TEA接受来自应用程序的可信服务请求,可信服务请求包含:命令ID,命令参数Operation和返回值Ret三个部分;(1.2)可信高效代理TEA根据命令ID,对可信服务请求进行分类,对于适合并行处理的服务请求(包括:模块状态读取操作、哈希操作、签名和验签操作、对称加解密操作),进行统一的封装,为封装的请求分配统一的会话号Session_0和特殊命令号ID_0,并通过共享内存传递除Session_0和ID_0之外的参数;(1.3)对于适合单条处理的服务请求(包括:模块状态写入操作、密钥生成和管理操作),则根据功能分类为可信服务请求分配会话号;(1.4)可信高效代理TEA将经过预处理的可信服务请求将给通信代理CM。(2)CM保存并切换主CPU核和整个平台工作状态,将可信服务请求转发给主CPU核。主CPU核通过运行可信密码模块模拟器TCME对可信服务请求包进行处理。若TCME接收的是适合并行处理的可信服务请求封装数据包,则根据ARM平台实际的CPU核数初始化从CPU核,以轮转分配的方式,将所有可信服务请求交由主从CPU核上运行的TCME进行处理,并通过命令参数和返回值返回操结果。在该步骤中,具体实施可以分为如下细节:(2.1)通信代理CM保存并切换主CPU核和整个平台工作状态,将经过预处理的可信服务请求转发给主CPU核,若接收的是适合并行处理的可信服务请求封装数据包,则由主CPU核通过运行可信密码模块模拟器TCME对可信服务请求封装数据包进行解封处理;(2.2)可信密码模块模拟器TCME对会话号为Session_0,命令号为ID_0的被封装可信服务请求进行解封,还原各条请求的命令Id,命令参数Operation和返回值Ret,并为每条请求加上统一的会话号Session_0;对其他未被封装的普通可信服务请求无需解封,直接由主CPU核运行TCME根据请求进行可信服务,具体流程参见步骤(3);(2.3)若所选ARM平台为单核或双核平台则进行步骤(2.4);否则根据ARM平台实际的CPU核数num,由处于安全世界的主CPU核初始化数量为num/2-1的从CPU核,将这些从CPU核设置为安全世界模式,并运行TCM模拟器TCME,进行步骤(2.5);(2.4)若所选ARM平台为单核或双核平台,则由处于安全世界的主CPU核运行可信密码模块模拟器TCME,并完成所有可信服务请求的处理,通过命令参数Operation和返回值Ret返回操作结果;(2.5)若所选ARM平台不是单核或双核平台,则处于安全世界的主CPU核以轮转分配的方式,将所有可信服务请求交由主CPU核运行的TCME或者通过CM转发交由从CPU核运行的TCME进行处理,并通过命令参数Operation和返回值Ret返回操作结果。(3)若TCME接收到由CM转发或自身分配的单条可信服务请求,则由位于安全世界的安全OS读取位于SecureBootROM内的根密钥RK,并对安全密码库SCL进行解密,由SCL向TCME提供符合国家商用密码算法标准的密码算法和密钥生成支持。基于SCL的支持,TCME提供标准的模块管理、身份标识与验证、数据保护和度量报告的操作。在该步骤中,具体实施可以分为如下细节:(3.1)TCME在接收到CM转发或者自身分配的单条可信服务请求时,位于安全世界的安全OS读取位于SecureBootROM内的根密钥RK,并对安全密码库SCL进行解密,获取支持SCL的密码算法和生成密钥的明文;(3.2)可信密码模块模拟器TCME根据单条可信服务请求,提供标准的模块管理、身份标识与验证、数据保护和度量报告的操作(3.3)在有密码相关需求时,由安全密码库SCL向TCME提供采用符合国家商用密码算法标准的密码算法,即SM2、SM3和SM4算法,提供SM2和SM4算法的密钥生成和存储服务,以及由TCME标准操作产生的密钥。说明书中未阐述的部分均为现有技术或公知常识。本实施例仅用于说明该发明,而不用于限制本发明的范围,本领域技术人员对于本发明所做的等价置换等修改均认为是落入该发明权利要求书所保护范围内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1