CN106127059B - 一种arm平台上可信密码模块的实现和服务方法 - Google Patents
一种arm平台上可信密码模块的实现和服务方法 Download PDFInfo
- Publication number
- CN106127059B CN106127059B CN201610497918.0A CN201610497918A CN106127059B CN 106127059 B CN106127059 B CN 106127059B CN 201610497918 A CN201610497918 A CN 201610497918A CN 106127059 B CN106127059 B CN 106127059B
- Authority
- CN
- China
- Prior art keywords
- tcme
- cpu core
- request
- credible
- service request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种ARM平台上可信密码模块的实现和服务方法:首先,位于普通世界的可信高效代理接收并对来自应用程序的可信服务请求进行预处理,交由通信代理转发请求,保存并切换主CPU核的工作状态;然后可信密码模块模拟器TCME接收并解析转发的请求,根据平台实际CPU核数初始化从CPU核,以轮转方式将所有请求分配给主从CPU核上运行的TCME处理,TCME根据单条服务请求提供标准的可信服务;最后,安全密码库向TCME提供密码算法支持,并由存储在Secure Boot ROM内的根密钥加密保护;本发明的优点是:由多核同时处理可信服务请求,提高了***可信服务效率;通过利用安全存储的根密钥加密保护安全密码库,保证了密码算法和密钥的安全。
Description
技术领域
本发明涉及移动信息安全领域,主要涉及一种ARM平台上可信密码模块并且高效服务的方法。
背景技术
目前,具有强大的处理能力、更多的存储空间和独立操作***的移动智能终端已成为移动终端的发展趋势。与个人电脑的发展一样,移动智能终端的普及给人们带来极大便利的同时,也给人们带来了极大的安全隐患。由于具有较小的尺寸,以及所处环境的复杂性和不确定性,其面临的安全问题比PC***的更加复杂,并且所造成的损失更大。因此,使用可信计算技术为用户构建一个安全可信的计算平台变得非常重要。
当今,主流的移动平台处理器有ARM、Intel和MIPS。其中,ARM处理器通过采用精简指令集(RISC)和低功耗工艺,非常适合存储空间有限和功率受限的嵌入式设备,因此ARM处理器已广泛应用于工业控制、消费类电子产品、通信***、网络***、无线***等各类产品市场。ARM公司推出TrustZone技术来保证ARM平台的***和数据安全,ARM TrustZone技术本质上是一种虚拟化技术,依赖于ARM处理器提供的功能,通过将处理器状态分为安全和非安全两种工作模式,并且配合其他总线以及外设上的安全属性来实现遍布整个硬件***的安全。
每个物理ARM处理器核提供两类虚拟核,一类是非安全核(Non-Secure),另一类是安全核(Secure)。非安全核运行在普通世界下,安全核运行在安全空间下。两种模式和两类虚拟核都是集成在一个物理核中的,根据不同的需要是同一个物理核在两种模式和两类虚拟核中简单切换。普通世界的软件可以使用SMC(Secure Monitor Call)指令或者通过硬件异常机制的一个子集来进入到Monitor模式,从而将ARM处理器切换至安全空间的模式并运行受保护的安全软件。Monitor模式主要任务是保存CPU运行时的上下文信息,以便从安全空间返回普通世界时CPU和OS能够正常工作。
另一方面,2003年,由Intel、Compaq、HP、IBM和微软等公司参与的可信计算组织(Trusted Computing Group,TCG)成立,提出通过在计算平台上增加可信平台模块(Trusted Platform Module,TPM)和移动可信模块(Mobile Trusted Module,MTM)用于保护传统和移动计算环境。
北京交通大学可信计算小组提出基于EFI(Extensible Firmware Interface)和USB接口的Portable TPM方案,降低了传统LPC接口TPM与计算平台的耦合度,使得TPM具备了热插拔和即插即服务的特性。
中国科学院软件研究所提出的一种基于移动设备的可信模块实现方法。通过软件模拟可信模块的功能,主要组件包括可信服务进程、可信模块库和密码库。主要可信功能在TrustZone技术支持的安全世界中实现,位于普通世界的应用程序调用可信服务时需要切换ARM处理器和移动计算平台的工作状态,单次可信服务开销较大。
随着移动设备朝着多核处理器快速发展,移动计算方式已经向着多核并行计算的方向转变。与服务器或桌面版***不同,移动计算平台对于用户的当前进程资源分配都有相当大的倾斜。所以往往是用户当前的使用进程可以完全占用CPU的资源,如果用户当前进程只能利用多核计算平台的其中一个CPU核,那么程序的效率将无从谈起。
综上所述,现有的移动计算平台通过增加硬件或软件模拟的方式构建可信模块,没有充分考虑移动计算环境下受限的计算资源以及硬件平台扩展性的问题,不能满足移动设备对易扩展和高效可信服务的需求。
发明内容
为了克服现有技术的不足,本发明基于ARM处理器提供的TrustZone技术,提供一种在安全世界内通过软件模拟的方式实现可信密码模块并高效服务的方法,一方面利用多核并行计算的方法提高软件模拟的可信模块在移动设备上服务的效率,另一方面通过利用存储在Secure Boot ROM内的根密钥加密保护可信模块的安全密码库,保证密码算法和密钥的安全。
本发明为解决上述技术问题所采用的技术方案是:
首先,由可信高效代理(Trusted Efficient Agent,TEA)接收来自应用程序的可信服务请求,对适合进行并行服务的模块状态读取操作、哈希、签名和验签、对称和非对称加解密密码操作进行封装并分配统一的会话号和特殊命令号,对其它不适合进行并行服务的操作(包括:模块状态写入操作、密钥生成和管理操作)则直接分配会话号和命令号。TEA调用通信代理(Communication Monitor,CM),转发这些可信服务请求包,保存并切换主处理CPU核和平台工作状态。
然后,CM将可信服务请求转发给主处理CPU核上运行的可信密码模块模拟器(Trusted Cryptography Module Emulator,TCME),TCME对可信服务请求包进行解封,并根据ARM平台实际的CPU核数初始化从CPU核,以轮转分配的方式,将所有可信服务请求交由主从CPU核上运行的TCME进行处理,并通过命令参数和返回值返回操结果。
最后,TCME在接收到由CM转发或者自身分配的可信服务请求之后,由位于安全世界的安全OS读取位于Secure Boot ROM内的根密钥RK,并对安全密码库SCL进行解密,由SCL向TCME提供符合国家商用密码算法标准的密码算法和密钥生成支持。基于SCL的支持,TCME提供标准的模块管理、身份标识与验证、数据保护和度量报告的操作。
本发明提供的方法与现有其它技术相比具有以下的主要优点:相比于硬件实现的可信模块,通过软件模拟实现的可信模块不依赖具体硬件平台,具有更强的可扩展性;通过利用多核并行计算的方法,利用ARM处理器主从CPU核并行处理可信服务请求减少了ARM处理器和整个平台状态切换的次数,提高了整体的可信服务的效率;通过利用存储在SecureBoot ROM内的根密钥加密保护可信模块的安全密码库,保证了密码算法和密钥的安全。
附图说明
图1:移动设备上可信密码模块的实现方法、组成及关系图
图2:可信高效代理的数据预处理方法
图3:主从CPU核启动和并行运行的方法
图4:主从CPU内安全密码库保护和TCME提供可信服务的方法
具体实施方式
本发明基于ARM处理器的TrustZone技术,提供一种在“安全世界”内通过软件模拟的方式实现可信密码模块并高效服务的方法,如图1所示:由可信高效代理TEA接收来自应用程序的可信服务请求,对这些请求进行预处理形成能够多核并行或单核处理的可信服务请求包,TEA调用通信代理CM并将可信服务请求包传递给CM;CM保存并切换主处理CPU核和整个平台工作状态,将可信服务请求转发给可信密码模块模拟器TCME,TCME根据请求类型进行模块管理、身份标识与验证、数据保护和度量报告的多核并行或单核处理;最后,由安全密码库SCL向TCME提供采用符合国家商用密码算法标准的密码算法,并且由储存于Secure Boot ROM内的根密钥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读取位于Secure Boot ROM内的根密钥RK,并对安全密码库SCL进行解密,由SCL向TCME提供符合国家商用密码算法标准的密码算法和密钥生成支持。基于SCL的支持,TCME提供标准的模块管理、身份标识与验证、数据保护和度量报告的操作。
在该步骤中,具体实施可以分为如下细节:
(3.1)TCME在接收到CM转发或者自身分配的单条可信服务请求时,位于安全世界的安全OS读取位于Secure Boot ROM内的根密钥RK,并对安全密码库SCL进行解密,获取支持SCL的密码算法和生成密钥的明文;
(3.2)可信密码模块模拟器TCME根据单条可信服务请求,提供标准的模块管理、身份标识与验证、数据保护和度量报告的操作
(3.3)在有密码相关需求时,由安全密码库SCL向TCME提供采用符合国家商用密码算法标准的密码算法,即SM2、SM3和SM4算法,提供SM2和SM4算法的密钥生成和存储服务,以及由TCME标准操作产生的密钥。
说明书中未阐述的部分均为现有技术或公知常识。本实施例仅用于说明该发明,而不用于限制本发明的范围,本领域技术人员对于本发明所做的等价置换等修改均认为是落入该发明权利要求书所保护范围内。
Claims (5)
1.一种ARM平台上可信密码模块的实现和服务方法,其特征在于:具体流程如:
步骤1,由位于“普通世界”的可信高效代理TEA接收并对来自应用程序的可信服务请求进行预处理,交由通信代理CM转发请求,保存主CPU核工作状态;
所述步骤1具体流程如下:
步骤101,可信高效代理TEA接受来自应用程序的可信服务请求,可信服务请求包含:命令ID,命令参数Operation和返回值Ret三个部分;
步骤102,可信高效代理TEA根据命令ID,对可信服务请求进行分类,对于适合并行处理的服务请求,进行统一的封装,为封装的请求分配统一的会话号Session_0和特殊命令号ID_0,并通过共享内存传递除Session_0和ID_0之外的参数;
步骤103,对于适合单条处理的服务请求,则根据功能分类为可信服务请求分配会话号;步骤104,可信高效代理TEA将经过预处理的可信服务请求将给通信代理CM;
步骤2,主CPU核上运行的可信密码模块模拟器TCME接收并解析转发的请求,根据平台实际CPU核数初始化从CPU核,以轮转方式将所有请求分配给主从CPU核上运行的TCME处理;
步骤3,CPU核上运行的TCME在接收到由CM转发或者自身分配的单条可信服务请求之后,由位于“安全世界”的安全OS读取位于Secure Boot ROM内的根密钥RK,并对安全密码库SCL进行解密,由SCL向TCME提供符合国家商用密码标准的密码算法和密钥生成支持;基于SCL的支持,TCME提供标准的模块管理、身份标识与验证、数据保护和度量报告的可信服务。
2.根据权利要求1所述的一种ARM平台上可信密码模块的实现和服务方法,其特征在于:所述步骤2具体流程如下:
步骤201,通信代理CM保存并切换主CPU核和整个平台工作状态,将经过预处理的可信服务请求转发给主CPU核,若接收的是适合并行处理的可信服务请求封装数据包,则由主CPU核通过运行可信密码模块模拟器TCME对可信服务请求进行解封处理;
步骤202,可信密码模块模拟器TCME对会话号为Session_0,命令号为ID_0的被封装可信服务请求进行解封,还原各条请求的命令Id,命令参数Operation和返回值Ret,并为每条请求加上统一的会话号Session_0;对其他未被封装的普通可信服务请求无需解封,直接由主CPU核运行TCME根据请求进行可信服务;
步骤203,若所选ARM平台为单核或双核平台则进行步骤204;否则根据ARM平台实际的CPU核数num,由处于“安全世界”的主CPU核初始化数量为num/2-1的从CPU核,将这些从CPU核设置为“安全世界”模式,并运行可信密码模块模拟器TCME,进行步骤205;
步骤204,若所选ARM平台为单核或双核平台,则由处于“安全世界”的主CPU核运行可信密码模块模拟器TCME,并完成所有可信服务请求的处理,通过命令参数Operation和返回值Ret返回操作结果;步骤205,若所选ARM平台不是单核或双核平台,则处于“安全世界”的主CPU核以轮转分配的方式,将所有可信服务请求交由主CPU核运行的TCME或者通过CM转发交由从CPU核运行的TCME进行处理,并通过命令参数Operation和返回值Ret返回操作结果。
3.根据权利要求2所述的一种ARM平台上可信密码模块的实现和服务方法,其特征在于:所述步骤3的具体流程如下:
步骤301,TCME在接收到CM转发或者自身分配的单条可信服务请求时,位于“安全世界”的安全OS读取位于Secure Boot ROM内的根密钥RK,并对安全密码库SCL进行解密,获取支持安全密码库SCL的密码算法和生成密钥的明文;
步骤302,可信密码模块模拟器TCME根据单条可信服务请求,提供标准的模块管理、身份标识与验证、数据保护和度量报告的操作;
步骤303,在有密码相关需求时,由安全密码库SCL向TCME提供采用符合国家商用密码算法标准的密码算法,即SM2、SM3和SM4算法,提供SM2和SM4算法的密钥生成和存储服务,以及由TCME标准操作产生的密钥。
4.根据权利要求1所述的一种ARM平台上可信密码模块的实现和服务方法,其特征在于:步骤102中所述的适合并行处理的服务请求包括模块状态读取操作、哈希操作、签名和验签操作、对称加解密操作。
5.根据权利要求1所述的一种ARM平台上可信密码模块的实现和服务方法,其特征在于:步骤103中所述的适合单条处理的服务请求包括模块状态写入操作、密钥生成和管理操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610497918.0A CN106127059B (zh) | 2016-06-30 | 2016-06-30 | 一种arm平台上可信密码模块的实现和服务方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610497918.0A CN106127059B (zh) | 2016-06-30 | 2016-06-30 | 一种arm平台上可信密码模块的实现和服务方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106127059A CN106127059A (zh) | 2016-11-16 |
CN106127059B true CN106127059B (zh) | 2019-03-29 |
Family
ID=57285449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610497918.0A Active CN106127059B (zh) | 2016-06-30 | 2016-06-30 | 一种arm平台上可信密码模块的实现和服务方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106127059B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577953B (zh) * | 2017-10-19 | 2020-02-21 | 郑州云海信息技术有限公司 | 一种基于cuse模拟可信密码模块的***及方法 |
CN110868416A (zh) * | 2019-11-15 | 2020-03-06 | 北京握奇智能科技有限公司 | 基于可信执行环境的密码功能服务实现方法和设备 |
CN111177773B (zh) * | 2019-12-10 | 2022-09-13 | 中国电子科技网络信息安全有限公司 | 一种基于网卡rom的全盘加解密方法及*** |
EP4155951A4 (en) * | 2020-05-19 | 2023-07-12 | Mitsubishi Electric Corporation | APPARATUS, NETWORK APPARATUS, AND INSTRUCTION EXECUTION METHOD |
CN114047948B (zh) * | 2021-11-08 | 2022-09-16 | 可信计算科技(无锡)有限公司 | 可重构的可信密码模块模拟器、实现方法及模拟重构方法 |
CN115618328B (zh) * | 2022-12-16 | 2023-06-13 | 飞腾信息技术有限公司 | 安全架构***、安全管理方法、计算设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102844762A (zh) * | 2010-01-22 | 2012-12-26 | 意法爱立信有限公司 | 在多核***的不同模式之间的切换期间的安全环境管理 |
CN103150514A (zh) * | 2013-03-07 | 2013-06-12 | 中国科学院软件研究所 | 一种基于移动设备的可信模块及其可信服务方法 |
CN104657115A (zh) * | 2015-03-12 | 2015-05-27 | 浪潮集团有限公司 | 一种集群文件***客户端多核并发负载实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008017001A2 (en) * | 2006-08-02 | 2008-02-07 | Moka5, Inc. | Sharing live appliances |
-
2016
- 2016-06-30 CN CN201610497918.0A patent/CN106127059B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102844762A (zh) * | 2010-01-22 | 2012-12-26 | 意法爱立信有限公司 | 在多核***的不同模式之间的切换期间的安全环境管理 |
CN103150514A (zh) * | 2013-03-07 | 2013-06-12 | 中国科学院软件研究所 | 一种基于移动设备的可信模块及其可信服务方法 |
CN104657115A (zh) * | 2015-03-12 | 2015-05-27 | 浪潮集团有限公司 | 一种集群文件***客户端多核并发负载实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106127059A (zh) | 2016-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106127059B (zh) | 一种arm平台上可信密码模块的实现和服务方法 | |
US11943340B2 (en) | Process-to-process secure data movement in network functions virtualization infrastructures | |
CN102609298B (zh) | 基于硬件队列扩展的网卡虚拟化***及其方法 | |
US20060230439A1 (en) | Trusted platform module apparatus, systems, and methods | |
US11836262B2 (en) | Protection of communications between trusted execution environment and hardware accelerator utilizing enhanced end-to-end encryption and inter-context security | |
WO2016209526A1 (en) | Technologies for virtualized access to security services provided by a converged manageability and security engine | |
CN114266035B (zh) | 一种高性能密码卡及配置方法 | |
CN109614204A (zh) | 内存隔离保护方法、隔离检查硬件、soc芯片和存储介质 | |
CN112035900B (zh) | 一种高性能密码卡以及其通信方法 | |
Feng et al. | TEEM: A user-oriented trusted mobile device for multi-platform security applications | |
CN104834874A (zh) | 建立安全执行环境之间的物理局部性 | |
CN116418522A (zh) | 一种基于虚拟化技术的云服务器密码机*** | |
CN106874065A (zh) | 一种支持硬件虚拟化的*** | |
Wang et al. | SEGIVE: A practical framework of secure GPU execution in virtualization environment | |
CN114844693B (zh) | 轻量级的通信数据加密方法、装置、设备及存储介质 | |
CN100517290C (zh) | 实现通用串行总线键的复合设备的方法 | |
CN208819194U (zh) | 一种密码装置及配用电密码*** | |
CN209570939U (zh) | 一种量子加密USBkey | |
CN116841691B (zh) | 加密硬件的配置方法、数据机密计算方法及相关设备 | |
CN215378951U (zh) | 一种便携式vpn设备及远程访问*** | |
WO2023041025A1 (zh) | 基于云技术的计算节点及基于云技术的实例管理方法 | |
US20240143363A1 (en) | Virtual machine tunneling mechanism | |
Gao et al. | The research and design of embed RSA encryption algorithm network encryption card driver | |
US20220116403A1 (en) | Telemetry restriction mechanism | |
WO2023041037A1 (zh) | 基于云技术的计算节点及基于云技术的实例管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |