一种安全芯片及其设计方法、初始化方法

文档序号:86416 发布日期:2021-10-08 浏览:35次 >En<

阅读说明:本技术 一种安全芯片及其设计方法、初始化方法 (Security chip and design method and initialization method thereof ) 是由 渠慎征 于 2021-07-19 设计创作,主要内容包括:本发明公开了一种安全芯片及其设计方法、初始化方法,涉及芯片安全技术领域,该安全芯片包括应用处理器子系统、安全处理器子系统以及ARM信任区模块;应用处理器子系统包括应用处理器;应用处理器运行的操作系统为非安全OS;安全处理器子系统包括安全处理器和信任区绑定模块;安全处理器运行的操作系统为安全OS,且非安全OS和安全OS为相同内核类型的操作系统;应用处理器用于运行客户应用程序;安全处理器用于运行客户可信应用程序;信任区绑定模块用于将客户应用程序和客户可信应用程序进行绑定,以使客户应用程序专享客户应用程序绑定的所述客户可信应用程序的安全服务。本发明能够获取面向用户的多层次安全芯片。(The invention discloses a security chip and a design method and an initialization method thereof, relating to the technical field of chip security, wherein the security chip comprises an application processor subsystem, a security processor subsystem and an ARM trust zone module; the application processor subsystem comprises an application processor; the operating system operated by the application processor is a non-secure OS; the safety processor subsystem comprises a safety processor and a trust area binding module; the operating system operated by the secure processor is a secure OS, and the non-secure OS and the secure OS are operating systems with the same kernel type; the application processor is used for running a client application program; the safety processor is used for running a client trusted application program; the trust zone binding module is used for binding the client application program and the client trusted application program so that the client application program exclusively shares the security service of the client trusted application program bound by the client application program. The invention can obtain the multi-level security chip facing the user.)

一种安全芯片及其设计方法、初始化方法

技术领域

本发明涉及芯片安全

技术领域

,特别是涉及一种安全芯片及其设计方法、初始化方法。

背景技术

随着芯片和信息技术的发展,智能移动终端、智能移动模块已进入个人应用和行业应用的各个方面,然而芯片面临的安全问题也越来越严重。

现有的各类芯片中,使用最多的安全方案是基于ARM的TrustZone技术构建的方案;该安全方案是一种软硬件协同的方案,在硬件方面,使用硬件安全总线(称为NS位)来判断当前处理器是位于Secure world(安全世界)还是Non-Secure world(非安全世界),在软件方面,则是在Secure world中运行安全OS来保证安全访问操作。当前常见的安全OS为OP-TEE、QSEE、Trusty、Sierra TEE等,这些安全OS与面向用户的应用处理器上运行的Rich OS不同,将会带来以下问题:

第一,一种处理器同时支持安全世界和非安全世界,会导致该处理器处理过程复杂,例如ARM Cortex-A系列。

第二,面向用户的应用处理器上运行的Rich OS与安全处理器上运行的安全OS是不同的,使得用户层面的安全需求难以在安全OS上实现。

发明内容

在现有软硬件协同方案的基础上,本发明提供了一种安全芯片及其设计方法、初始化方法,以获取面向用户的多层次安全芯片。

为实现上述目的,本发明提供了如下方案:

一种安全芯片,包括应用处理器子系统、安全处理器子系统以及ARM信任区模块;所述应用处理器子系统、所述安全处理器子系统以及所述ARM信任区模块均通过总线相互通信;

所述应用处理器子系统包括应用处理器;所述应用处理器运行的操作系统为非安全OS;所述安全处理器子系统包括安全处理器和信任区绑定模块;所述安全处理器运行的操作系统为安全OS,且所述非安全OS和所述安全OS为相同内核类型的操作系统;

所述应用处理器用于运行客户应用程序,并支持在非安全存储区安装新的客户应用程序;

所述安全处理器用于运行客户可信应用程序,并支持在安全存储区安装新的客户可信应用程序;

所述信任区绑定模块用于将所述客户应用程序和所述客户可信应用程序进行绑定,以使所述客户应用程序专享所述客户应用程序绑定的所述客户可信应用程序提供的安全服务。

可选的,所述ARM信任区模块,包括信任区地址空间控制器、信任区内存适配器和信任区保护控制器;

所述信任区地址空间控制器,用于将动态存储地址空间划分为安全区域和非安全区域;

所述信任区内存适配器,用于将片内RAM或ROM空间划分为安全区域和非安全区域;

所述信任区保护控制器,用于配置外设设备;所述外设设备包括安全设备和非安全设备。

一种安全芯片的设计方法,包括:

配置安全处理器和应用处理器;所述安全处理器运行的安全OS和所述应用处理器运行的非安全OS内核类型相同;所述安全OS支持安全GP标准;

在所述应用处理器上开发客户应用程序,所述客户应用程序安装在非安全存储区的文件系统内;

对有安全操作需求的客户应用程序,在所述安全处理器上开发客户可信应用程序,所述客户可信应用程序安装在安全存储区的文件系统内;

通过信任区绑定模块对所述客户应用程序和所述客户可信应用程序进行绑定,以使所述客户应用程序专享所述客户应用程序绑定的所述客户可信应用程序的安全服务。

一种安全芯片的初始化方法,包括:

将安全芯片上电后,加载校验安全OS代码,并在所述安全OS代码校验通过后启动安全OS;

加载校验非安全OS代码,并在所述非安全OS代码校验通过后启动非安全OS;

在所述安全OS启动完成后,读取安全存储区的文件系统,注册启动客户可信应用程序;

在所述非安全OS启动完成后,读取非安全存储区的文件系统,注册启动客户应用程序;

将所述客户应用程序与所述客户可信应用程序进行绑定以使所述客户应用程序专享所述客户应用程序绑定的所述客户可信应用程序的安全服务。

可选的,所述将安全芯片上电后,加载校验安全OS代码,并在所述安全OS代码校验通过后启动安全OS,具体包括:

将安全芯片上电后,加载校验第一阶段引导加载程序代码,并在所述第一阶段引导加载程序代码校验通过后执行所述第一阶段引导加载程序代码;

利用所述第一阶段引导加载程序代码加载校验第二阶段引导加载程序代码,并在所述第二阶段引导加载程序代码校验通过后执行所述第二阶段引导加载程序代码;

利用所述第二阶段引导加载程序代码加载校验安全OS代码,并在所述安全OS代码校验通过后启动安全OS。

可选的,安全OS设置SRAM、DDR的安全区和非安全区,设置安全IP;所述加载校验非安全OS代码,并在所述非安全OS代码校验通过后启动非安全OS,具体包括:

利用所述安全OS代码加载校验非安全OS代码,并在所述非安全OS代码校验通过后启动非安全OS。

可选的,所述将所述客户应用程序与所述客户可信应用程序进行绑定以使所述客户应用程序专享所述客户应用程序绑定的所述客户可信应用程序的安全服务,具体包括:

向安全处理器发送所述客户应用程序的绑定请求;所述绑定请求包括客户应用程序的ID和客户可信应用程序的ID;

基于所述客户可信应用程序的ID,将所述绑定请求发送至所述客户可信应用程序的ID对应的客户可信应用程序,并获取所述客户应用程序的ID;

基于所述客户应用程序的ID,将所述客户可信应用程序的ID对应的客户可信应用程序与所述客户应用程序的ID对应的客户应用程序进行绑定,并生成绑定条目;

将所述绑定条目存储在信任区绑定模块中的绑定项缓冲区内。

可选的,所述向安全处理器发送所述客户应用程序的绑定请求,具体包括:

利用公钥加密所述客户应用程序的ID,以生成客户应用程序标识;

在信任区绑定模块写入所述客户应用程序标识和待绑定的客户可信应用程序的ID,以在所述信任区绑定模块上生成绑定请求;

利用所述信任区绑定模块向安全处理器发送所述客户应用程序的绑定请求。

可选的,所述基于所述客户应用程序的ID,将所述客户可信应用程序的ID对应的客户可信应用程序与所述客户应用程序的ID对应的客户应用程序进行绑定,并生成绑定条目,具体包括:

利用私钥验证所述客户应用程序的ID,并当所述客户应用程序的ID验证通过后,将所述客户可信应用程序的ID对应的客户可信应用程序与所述客户应用程序的ID对应的客户应用程序进行绑定,并生成绑定条目。

可选的,还包括:在所述安全OS上设置安全区、非安全区以及安全IP。

根据本发明提供的具体实施例,本发明公开了以下技术效果:

1、应用处理器与安全处理器完全分开,分别运行于各自的世界,简化了对处理器的设计要求,以使现有的所有处理器都可以实现这一安全架构。

2、应用处理器与安全处理器运行相同内核类型的OS,使得用户可以方便的针对具体应用实现自己专有的安全设计。

3、应用处理器与安全处理器运行相同内核类型的OS,使得安全处理器可以访问相同的文件系统,提高了安全处理器对安全文件加密和解密的访问效率。

4、此安全架构下,一种客户应用程序通过绑定的专有客户可信应用程序产生的文件,不能被其它应用程序打开和读取,避免了不同应用程序之间的信息交叉获取,提高了信息的安全性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明安全芯片的结构示意图;

图2为本发明安全芯片的初始化方法的流程示意图;

图3为本发明安全芯片的架构框图;

图4为本发明TZBind模块示意图;

图5为本发明CA与TA绑定示意图;

图6为本发明安全芯片设计方法的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

实施例一

请参见图1,本实施例提供的一种安全芯片,包括应用处理器子系统、安全处理器子系统以及ARM信任区模块;所述应用处理器子系统、所述安全处理器子系统以及所述ARM信任区模块均通过总线相互通信。

所述应用处理器子系统包括应用处理器;所述应用处理器运行的操作系统为非安全OS;所述安全处理器子系统包括安全处理器和信任区绑定模块;所述安全处理器运行的操作系统为安全OS,且所述非安全OS和所述安全OS为相同内核类型的操作系统。

所述应用处理器用于运行客户应用程序,并支持在非安全存储区安装新的客户应用程序。

所述安全处理器用于运行客户可信应用程序,并支持在安全存储区安装新的客户可信应用程序。

所述信任区绑定模块用于将所述客户应用程序和所述客户可信应用程序进行绑定,以使所述客户应用程序专享所述客户应用程序绑定的所述客户可信应用程序提供的安全服务。

所述ARM信任区模块,包括信任区地址空间控制器、信任区内存适配器和信任区保护控制器;所述信任区地址空间控制器,用于将动态存储地址空间划分为安全区域和非安全区域;所述信任区内存适配器,用于将片内RAM或ROM空间划分为安全区域和非安全区域;所述信任区保护控制器,用于配置外设设备;所述外设设备包括安全设备和非安全设备。

实施例二

请参见图2,本实施例提供一种安全芯片的初始化方法,包括:

步骤201:将安全芯片上电后,加载校验安全OS代码,并在所述安全OS代码校验通过后启动安全OS。

步骤202:加载校验非安全OS代码,并在所述非安全OS代码校验通过后启动非安全OS。

步骤203:在所述安全OS启动完成后,读取安全存储区的文件系统,注册启动客户可信应用程序。

步骤204:在所述非安全OS启动完成后,读取非安全存储区的文件系统,注册启动客户应用程序。

步骤205:将所述客户应用程序与所述客户可信应用程序进行绑定以使所述客户应用程序专享所述客户应用程序绑定的所述客户可信应用程序的安全服务。

所述安全OS设置SRAM、DDR的安全区和非安全区,设置安全IP。

其中,步骤201具体包括:

将安全芯片上电后,加载校验第一阶段引导加载程序代码,并在所述第一阶段引导加载程序代码校验通过后执行所述第一阶段引导加载程序代码。

利用所述第一阶段引导加载程序代码加载校验第二阶段引导加载程序代码,并在所述第二阶段引导加载程序代码校验通过后执行所述第二阶段引导加载程序代码。

利用所述第二阶段引导加载程序代码加载校验安全OS代码,并在所述安全OS代码校验通过后启动安全OS。

步骤202具体包括:

利用所述安全OS代码加载校验非安全OS代码,并在所述非安全OS代码校验通过后启动非安全OS。

步骤205,具体包括:

向安全处理器发送所述客户应用程序的绑定请求;所述绑定请求包括客户应用程序的ID和客户可信应用程序的ID。

基于所述客户可信应用程序的ID,将所述绑定请求发送至所述客户可信应用程序的ID对应的客户可信应用程序,并获取所述客户应用程序的ID。

基于所述客户应用程序的ID,将所述客户可信应用程序的ID对应的客户可信应用程序与所述客户应用程序的ID对应的客户应用程序进行绑定,并生成绑定条目。

将所述绑定条目存储在信任区绑定模块中的绑定项缓冲区内。

进一步地,所述向安全处理器发送所述客户应用程序的绑定请求,具体包括:

利用公钥加密所述客户应用程序的ID,以生成客户应用程序标识。

在信任区绑定模块写入所述客户应用程序标识和待绑定的客户可信应用程序的ID,以在所述信任区绑定模块上生成绑定请求。

利用所述信任区绑定模块向安全处理器发送所述客户应用程序的绑定请求。

进一步地,所述基于所述客户应用程序的ID,将所述客户可信应用程序的ID对应的客户可信应用程序与所述客户应用程序的ID对应的客户应用程序进行绑定,并生成绑定条目,具体包括:

利用私钥验证所述客户应用程序的ID,并当所述客户应用程序的ID验证通过后,将所述客户可信应用程序的ID对应的客户可信应用程序与所述客户应用程序的ID对应的客户应用程序进行绑定,并生成绑定条目。

作为一种优选的具体实施方式,本实施例还包括:在所述安全OS上设置安全区、非安全区以及安全IP。

实施例三

术语解释:

OS:Operation System,操作系统。

Rich OS:富操作系统,指能运行多种用户应用程序的操作系统,通常为非安全操作系统。

应用处理器:指运行用户应用程序的处理器,通常位于非安全世界。

安全处理器:指运行安全OS的处理器,位于安全世界。

CA:Custom Application,客户应用程序,运行于非安全世界。

TA:Trusted Application,客户可信应用程序,运行于安全世界,为CA提供安全服务。

ID:IDentity,身份识别号。

BootROM:Boot Read Only Memory,启动只读存储器。

EMMC:Embedded MultiMedia Card,嵌入式多媒体卡。

TZASC:TrustZone Address Space Controller,信任区地址空间控制器。

TZMA:TrustZone Memory Adaptor,信任区内存适配器。

TZPC:TrustZone Protection Controller,信任区保护控制器。

TZBind:Trustzone Bind,信任区绑定;此信任区绑定模块为绑定CA与TA的模块;绑定后,非安全世界的CA与安全世界的TA建立关联关系以进行安全调用。

本实施例提供的安全芯片的架构,如图3所示,包括应用处理器子系统、安全处理器子系统、以及继承自ARM Trust zone模块的TZASC模块、TZMA模块、TZPC模块。此外,在安全处理器子系统中还包含本发明专有的TZBind模块。

其中,应用处理器子系统、安全处理器子系统、以及ARM Trust zone模块均通过总线相互通信。

应用处理器子系统包含:应用处理器、基于EMMC和SD的块存储设备、中断控制器、以及其它非安全IP模块。应用处理器子系统中的各个模块均基于AXI总线、APB总线等互连总线连接。

应用处理器在非安全世界运行非安全OS,如Linux、FreeRTOS等。用户的CA运行于非安全OS上。

安全处理器子系统包含:安全处理器、加解密IPs模块、安全中断控制器、以及其它安全IP等模块。安全处理器子系统中的各个模块通过能应用安全总线NS位的AXI总线、APB总线等互连总线连接。

安全处理器在安全世界运行与应用处理器具有相同内核的OS,即安全OS,如Linux、FreeRTOS等。安全处理器运行现有GP(GlobalPlatform)安全标准接口,以提供通用安全服务;安全处理器还运行用户专有TA,为用户的CA提供专有安全服务。

ARM Trustzone模块包含:TZASC模块、TZMA模块、TZPC模块。

TZASC模块,用于将动态存储地址空间划分为安全或非安全的多个区域。

TZMA模块,用于对安全芯片上的SRAM或ROM进行安全区域和非安全区域的划分。

TZPC模块,用于设置外设是安全设备还是非安全设备。

请参见图4,TZBind模块用于绑定CA与TA,并当绑定CA与TA后,非安全世界的CA与安全世界的TA建立关联关系,以进行安全调用。

CA是通过唯一的CAID和唯一的TAID,与TA建立专有关联关系。绑定后,该CA可专有调用所绑定的TA,其它CA无法调用该TA。

为了确保CA与TA的单独固定绑定关系,TZBind模块在硬件上确保:

该绑定为一对一对应关系;

在绑定过程中,TZBind模块对绑定关系进行校验,校验成功后记录CA与TA的标识;

记录的绑定条目必须在系统管理员授权下才能删除,即以加密方式保存在文件系统中的绑定信息只有在系统管理员授权下才能删除;

此外,当在安全芯片重启后,安全处理器的软件需要重新读取保存在文件系统中的绑定信息,并加载到TZBind模块。

该安全芯片的启动过程为:

安全芯片上电后,安全处理器执行BootROM代码,加载校验第一阶段bootloader(引导加载程序)代码,并在校验通过后执行第一阶段bootloader代码。

第一阶段bootloader代码加载校验第二阶段bootloader代码,并在校验通过后执行第二阶段bootloader代码。

第二阶段bootloader代码加载校验安全OS代码,并在校验通过后启动安全OS。

安全OS设置SRAM的安全区和非安全区,DDR的安全区和非安全区,以及设置安全IP。

安全OS代码加载校验非安全OS代码,并在校验通过后启动非安全OS。

其中,安全处理器主导整个安全芯片的启动过程。

请参见图5,该安全芯片的CA与TA绑定过程:

安全处理器上的安全OS启动完成后,注册启动TA。

应用处理器上的非安全OS启动完成后,注册启动CA。

CA使用公钥加密由非安全Chip ID、CAID的ID组合,以生成CA标识;

CA通过TZBind模块的总线接口,向TZBind模块写入CA标识及希望绑定的TAID。

TZBind模块向安全处理器发送绑定中断请求。

TAID对应的TA处理绑定中断请求,读取CA标识,TA使用私钥验证是否与接收到的Public Key匹配,校验通过后,通过TZBind模块向CA发送绑定成功的消息。

TZBind模块中的绑定项缓冲区记录绑定条目。

TA将包含安全Chip ID、TAID的TA标识以及对应的CA标识,以加密方式保存到文件系统,同时在TZBind模块内部的RAM中保存绑定信息。

对CA与TA绑定成功后,由于TZBind中记录有已绑定成功的绑定条目,其它CA将不能与该TA绑定,从而专享该TA提供的安全服务。

在CA与TA绑定后,CA通过TZBind模块向TA发送消息中断,向TA发送安全服务请求;TA通过TZBind模块向CA发送消息中断,返回安全服务的结果。安全服务的执行过程完全在TA中进行,从而为CA提供专有的安全服务,例如按用户指定的方式对文件加密和保存,所保存的文件也不能被其它CA和TA所读取,从而提高信息安全性。

实施例四

本发明在现有软硬件协同方案的基础上,提供了一种安全芯片的设计方法,可以解决背景技术提到的问题,以实现面向用户的多层次安全芯片。

请参见图6,本实施例提供的一种安全芯片的设计方法,包括:

步骤601:配置安全处理器和应用处理器;所述安全处理器运行的安全OS和所述应用处理器运行的非安全OS内核类型相同。所述安全OS同时支持现有安全GP(GlobalPlatform)标准,提供通用安全服务。

步骤602:在所述应用处理器上开发客户应用程序,所述客户应用程序安装在非安全存储区的文件系统内;对有安全操作需求的客户应用程序,在所述安全处理器上开发客户可信应用程序,所述客户可信应用程序安装在安全存储区的文件系统内。

步骤603:通过信任区绑定模块对所述客户应用程序和所述客户可信应用程序进行绑定,以使所述客户应用程序专享所述客户应用程序绑定的所述客户可信应用程序的安全服务。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种硬盘密钥管理系统及方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类