CN116601629A - 一种终端芯片及其度量方法 - Google Patents
一种终端芯片及其度量方法 Download PDFInfo
- Publication number
- CN116601629A CN116601629A CN202180084411.1A CN202180084411A CN116601629A CN 116601629 A CN116601629 A CN 116601629A CN 202180084411 A CN202180084411 A CN 202180084411A CN 116601629 A CN116601629 A CN 116601629A
- Authority
- CN
- China
- Prior art keywords
- subsystem
- security
- computing
- computing subsystem
- data
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 195
- 230000008569 process Effects 0.000 claims abstract description 145
- 238000005259 measurement Methods 0.000 claims abstract description 71
- 238000012795 verification Methods 0.000 claims abstract description 48
- 239000000872 buffer Substances 0.000 claims description 27
- 238000004422 calculation algorithm Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 9
- 230000003993 interaction Effects 0.000 claims description 7
- 238000000691 measurement method Methods 0.000 abstract description 7
- 238000013175 transesophageal echocardiography Methods 0.000 description 62
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000002452 interceptive effect Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000008439 repair process Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 241000282472 Canis lupus familiaris Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 229920000433 Lyocell Polymers 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Testing Or Calibration Of Command Recording Devices (AREA)
Abstract
本申请实施例公开了一种终端芯片及其度量方法,涉及芯片领域,通过对计算子系统的启动过程进行度量,能够确保计算子系统启动过程的安全性。具体方案为:终端芯片包括计算子系统和安全子系统,安全子系统用于对计算子系统进行度量,安全子系统的启动时间早于计算子系统的启动时间,安全子系统包括:完整性验证单元;完整性验证单元,用于对计算子系统启动过程的数据进行完整性度量。
Description
本申请实施例涉及芯片领域,尤其涉及一种终端芯片及其度量方法。
目前在计算设备中,为了确保计算子系统的安全运行,通常使用trustzone技术将计算子系统分离为可信执行环境(trust execution environment,TEE)和丰富执行环境(rich execution environment,REE)。通常,REE可以运行安卓,Linux,windows等操作系统,用以支持用户运行丰富的应用程序,而TEE可以运行供应商的一个小的操作系统,用以支持运行一些对安全性要求较高的关键业务,以保证关键业务的安全性。
但是随着关键业务越来越多,trustzone隔离的TEE的代码量越来越大,导致TEE的可信计算基越来越大,面临的攻击面也越来越大,因此如何确保计算子系统的安全成为了亟待解决的问题。
发明内容
本申请实施例提供一种终端芯片及其度量方法,通过对计算子系统进行度量,能够确保计算子系统的安全运行。
为达到上述目的,本申请实施例采用如下技术方案:
本申请实施例的第一方面,提供一种终端芯片,该终端芯片包括计算子系统和安全子系统,该安全子系统用于对计算子系统进行度量,该安全子系统的启动时间早于计算子系统的启动时间,该安全子系统包括:完整性验证单元;该完整性验证单元,用于对计算子系统启动过程的数据进行完整性度量。基于本方案,由于安全子系统的上电启动时间早于计算子系统的上电启动时间,因此安全子系统上电启动完成后,可以对计算子系统的启动过程进行完整性度量,以确定计算子系统启动过程中是否被恶意攻击,能够提高计算子系统启动过程的安全性。
可选的,本申请中的完整性验证单元的功能可以采用硬件电路实现,也可以采用软件程序实现,本申请对此并不限定。
结合第一方面,在一种可能的实现方式中,上述安全子系统还包括:第一交互接口,上述安全子系统通过该第一交互接口访问上述计算子系统的所有资源。基于本方案,安全子系统可以通过第一交互接口读取计算子系统的所有资源,从而安全子系统启动完成后,在计算子系统的启动过程中,安全子系统可以读取计算子系统启动过程的数据,并对该数据进行完整性度量,以确定计算子系统启动过程中是否被恶意攻击,能够提高计算子系统启动过程的安全性。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述完整性验证单元,还用于对上述计算子系统运行过程的数据进行完整性度量。基于本方案,安全子系统不仅可以对计算子系统启动过程的数据进行度量,也可以对计算子系统运行过程的数据进行度量,从而能够实现对计算子系统的全生命周期进行度量,以确保 计算子系统的安全运行。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述完整性验证单元,具体用于在上述计算子系统从丰富执行环境REE切换至可信执行环境TEE时,对上述计算子系统运行的数据进行完整性度量。基于本方案,安全子系统可以在计算子系统从REE切换至TEE时进行度量,能够确保计算子系统运行过程的安全。可以理解的,本申请提供的安全子系统不仅可以对REE进行度量,也可以对TEE进行度量,从而确保整个计算子系统的安全运行。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述安全子系统还包括:定时器,该定时器用于计时;上述完整性验证单元,具体还用于基于该定时器,定时对上述计算子系统运行的数据进行完整性度量。基于本方案,安全子系统可以定时对计算子系统的运行过程进行度量,从而进一步确保计算子系统运行过程的安全。
可选的,计算子系统运行的数据可以仅包括TEE运行的数据,也可以仅包括REE运行的数据,还可以同时包括TEE及REE运行的数据。例如,安全子系统定时对计算子系统进行完整性度量时,如果当前计算子系统的处理器仅运行TOS,那么安全子系统对TEE运行的数据进行完整性度量。再例如,安全子系统定时对计算子系统进行完整性度量时,如果当前计算子系统的处理器仅运行ROS,那么安全子系统对REE运行的数据进行完整性度量。再例如,安全子系统定时对计算子系统进行完整性度量时,如果当前计算子系统的处理器同时运行ROS和TOS,那么安全子系统对REE和TEE运行的数据进行完整性度量。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述安全子系统还包括:共享缓冲区,该共享缓冲区用于上述计算子系统与上述安全子系统进行通信。基于本方案,计算子系统可以通过共享缓冲区与安全子系统进行通信。例如,计算子系统可以通过第二交互接口从安全子系统的共享缓冲区中读取数据,也可以通过第二交互接口向安全子系统中的共享缓冲区中写入数据。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述安全子系统还包括:过滤器,该过滤器,用于拦截上述计算子系统的第一访问操作,该第一访问操作用于请求访问上述安全子系统中除共享缓区以外的其他资源。基于本方案,计算子系统仅可以访问安全子系统中的共享缓冲区,不能访问安全子系统中除共享缓冲区以外的其他资源,从而确保计算子系统不能对安全子系统中的信息进行读取或更改,以保证安全子系统的可信度。可以理解的,本申请的方案中,共享缓冲区是安全子系统中唯一可以被计算子系统访问的资源,计算子系统在访问安全子系统中除共享缓冲区以外的其他资源时,过滤器可以将这些访问操作拦截。比如,计算子系统不能改写安全子系统的随机存取存储器RAM中存储的数据。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述过滤器,还用于拦截上述安全子系统的第二访问操作,该第二访问操作用于请求向上述计算子系统写入数据。基于本方案,安全子系统可以读取计算子系统中的所有资源,但不能向计算子系统写入数据,从而避免将安全子系统中的数据暴露给计算子系统,能够进一步提高安全子系统的可信度。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述安全子系统还包括:只读存储器ROM和处理器,该ROM,用于存储上述安全子系统上电时的计算机程序;处理器,用于运行ROM中存储的计算机程序。基于本方案,通过安全子系统的处理器执行ROM中存储的计算机程序代码,从而可以启动安全子系统,能够确保安全子系统第一个上电启动。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述安全子系统还包括密码引擎,该密码引擎,用于提供密码算法;上述完整性验证单元,具体用于调用该密码引擎提供的密码算法,对上述计算子系统启动过程和运行过程的数据进行完整性度量。基于本方案,完整性验证单元通过调用密码算法可以对计算子系统的启动过程和运行过程的数据进行完整性度量,以确定计算子系统启动或运行过程中是否被恶意攻击,能够提高计算子系统的安全性。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述安全子系统还包括:随机存取存储器RAM,该RAM用于存储上述计算子系统启动过程和运行过程的数据对应的基准值。基于本方案,可以通过RAM中存储的基准值确定计算子系统是否被攻击。可选的,RAM还可以用于临时存储安全子系统运行时需要的其他信息。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述完整性验证单元,具体用于调用上述密码引擎提供的密码算法,计算计算子系统启动过程和运行过程的数据的特征值,并将该特征值与RAM中存储的基准值进行比对,以指示计算子系统是否被攻击。基于本方案,完整性验证单元可以通过将特征值与RAM中存储的基准值进行比对,能够确定计算子系统是否被恶意攻击。
可选的,当完整性验证单元调用密码引擎提供的哈希算法计算数据的特征值时,该特征值为哈希值。当完整性验证单元调用密码引擎提供的消息认证码MAC算法计算数据的特征值时,该特征值为MAC值。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述处理器,还用于在上述特征值与基准值相同的情况下,向上述计算子系统发送第一指示信号,该第一指示信号用于指示计算子系统未被攻击。基于本方案,在安全子系统确定特征值与基准值相同时,可以向计算子系统发送指示计算子系统未被攻击的第一指示信号。可选的,在安全子系统确定计算子系统未被攻击时,安全子系统也可以不向计算子系统发送指示计算子系统未被攻击的第一指示信号。也就是说,在计算子系统未被攻击时,计算子系统在启动或运行过程中可以不管安全子系统的完整性度量结果,一步一步的执行启动或运行流程,直到计算子系统被攻击时,安全子系统将其复位。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述处理器,还用于:在上述特征值与基准值不同的情况下,向服务器发送指示信息,该指示信息用于指示计算子系统被攻击;向计算子系统发送第二指示信号,该第二指示信号用于复位计算子系统。基于本方案,在安全子系统确定特征值与基准值不同时,安全子系统可以直接将计算子系统复位,从而保证计算子系统的敏感信息(比如,密钥)不被泄露。安全子系统也可以向服务器发送指示信息,通知服务器计算子系统被攻击,以使得供应商可以及时对计算子系统中的漏洞进行修复。可选的,当安全子系统确定计 算子系统被攻击时,安全子系统也可以进行其他异常处理,本申请实施例仅以计算子系统被攻击时,安全子系统将计算子系统复位为例进行说明。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述安全子系统还包括:电源时钟管理单元;该电源时钟管理单元,用于对上述安全子系统进行上电或下电控制。基于本方案,由于安全子系统中独立的设置了管理安全子系统上电或下电的电源时钟管理单元,该安全子系统的上电或下电可以不受外部电源管理单元控制,因此外部电源管理单元不能对安全子系统进行下电控制,避免了安全子系统下电后无法对计算子系统进行度量,导致计算子系统的安全性降低的问题。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述处理器还用于向外部电源管理单元发送第三指示信号,该第三指示信号用于指示外部电源管理单元对安全子系统进行上电或下电控制。基于本方案,通过安全子系统向外部电源管理单元发送第三指示信号,使得外部电源管理单元只有接收到来自安全子系统的第三指示信号后,才可以对安全子系统进行下电控制,以确保计算子系统全生命周期的安全,避免了外部电源管理单元对安全子系统下电后,无法对计算子系统进行度量,导致计算子系统的安全性降低的问题。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述安全子系统还包括:看门狗;该看门狗用于在上述安全子系统挂死的情况下,复位该安全子系统和计算子系统。基于本方案,如果安全子系统挂死,就不会有人喂狗,看门狗超时后,会进行全系统复位,从而避免计算子系统在未保护状态下运行时被攻击。可选的,上述复位安全子系统和计算子系统包括重新启动安全子系统和计算子系统。
本申请实施例的第二方面,提供一种终端芯片的度量方法,该终端芯片包括计算子系统和安全子系统,该方法包括:上电启动安全子系统;该安全子系统用于对计算子系统进行度量;在安全子系统启动完成后,上电启动计算子系统;安全子系统对计算子系统启动过程的数据进行完整性度量。
结合第二方面,在一种可能的实现方式中,上述方法还包括:上述安全子系统对上述计算子系统运行过程的数据进行完整性度量。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述安全子系统对上述计算子系统运行过程的数据进行完整性度量,包括:在上述计算子系统从丰富执行环境REE切换至可信执行环境TEE时,上述安全子系统对上述计算子系统运行的数据进行完整性度量。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述安全子系统对上述计算子系统运行过程的数据进行完整性度量,包括:安全子系统定时对计算子系统运行过程的数据进行完整性度量。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述安全子系统对上述计算子系统启动过程或运行过程的数据进行完整性度量,包括:上述安全子系统计算上述计算子系统启动过程或运行过程的数据的特征值,并将该特征值与基准值进行比对,以指示上述计算子系统是否被攻击。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,在上述特征值与上述基准值相同的情况下,上述方法还包括:上述安全子系统向上述计算子系统 发送第一指示信号,该第一指示信号用于指示上述计算子系统未被攻击。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,在上述特征值与上述基准值不同的情况下,上述方法还包括:上述安全子系统向服务器发送指示信息,该指示信息用于指示上述计算子系统被攻击;上述安全子系统向上述计算子系统发送第二指示信号,该第二指示信号用于复位上述计算子系统。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述方法还包括:上述安全子系统向外部电源管理单元发送第三指示信号,该第三指示信号用于指示外部电源管理单元对上述安全子系统进行上电或下电控制。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述方法还包括:上述安全子系统拦截上述计算子系统的第一访问操作,该第一访问操作用于访问上述安全子系统中除共享缓冲区以外的其他资源。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述方法还包括:上述安全子系统拦截该安全子系统的第二访问操作,该第二访问操作用于请求向上述计算子系统写入数据。
上述第二方面的各种实现方式的效果描述可以参考上述第一方面的效果描述,在此不再赘述。
本申请实施例的第三方面,提供一种终端设备,该终端设备包括上述第一方面中任一实现方式所述的终端芯片以及片外内存,所述终端芯片用于从所述片外内存读取或写入数据。
图1为本申请实施例提供的一种计算系统的安全架构示意图;
图2为本申请实施例提供的另一种计算系统的安全架构示意图;
图3为本申请实施例提供的一种终端设备的架构示意图;
图4为本申请实施例提供的另一种终端设备的架构示意图;
图5为本申请实施例提供的一种终端设备的软件架构示意图;
图6为本申请实施例提供的一种终端芯片的度量方法的流程示意图;
图7为本申请实施例提供的另一种终端芯片的度量方法的流程示意图;
图8为本申请实施例提供的一种终端芯片的度量方法的应用示意图;
图9为本申请实施例提供的另一种终端芯片的度量方法的流程示意图。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。在本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c,或,a和b和c,其中a、b和c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用 基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。比如,本申请实施例中的第一指示信号中的“第一”和第二指示信号中的“第二”仅用于区分不同的指示信号。本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
目前,在计算设备中,特别是基于高级RISC机器(advanced RISC machines,ARM)架构设计的计算设备中,通常使用trustzone技术将系统级芯片(system on chip,SoC)的硬件资源和软件资源划分为两个世界,分别为安全世界(secure world)和正常世界(normal world)(也可以称为非安全世界)。对安全性要求较高的关键业务,可以在安全世界运行。对安全性要求不高的业务,可以在正常世界运行。安全世界之所以比正常世界安全,是因为安全世界运行的业务量较少,其可信计算基要远远小于正常世界的可信计算基,因此安全世界的可信度远远高于正常世界的可信度。可选的,安全世界也可以称为可信执行环境(trust execution environment,TEE),非安全世界或正常世界也可以称为丰富执行环境(rich execution environment,REE)。
例如,如图1所示的一种计算系统的安全架构示意图,该计算系统包括REE和TEE,REE中运行的业务对安全性没有很高的要求,TEE中运行的业务对安全性要求较高。如图1所示,REE可以运行丰富操作系统(rich operating system,ROS),用以支持用户运行丰富的应用程序(application,App)。比如,REE可以运行安卓,Linux,windows等操作系统,用以支持用户运行微信、腾讯视频等安全性要求不高的应用程序。TEE通常运行供应商自己实现的一个小的操作系统,用以支持用户运行可信应用程序(trust application,TA),这个操作系统可以称为可信操作系统(trust operating system,TOS)。比如,TEE可以运行供应商的操作系统,用以支持用户运行有签名的APP、支付APP、人脸识别、指纹识别、密码处理、数据加解密、安全认证、密钥管理等对安全性要求较高的程序。
可选的,上述TOS和ROS可以通过分时复用的方式,运行在同一个处理器上。当处理器运行TOS时,称为安全世界处理器,当处理器运行ROS时,称为正常世界处理器。TOS和ROS也可以同时运行在一个处理器的不同操作系统内核kernel上。
可选的,TOS和ROS可以同时共享其他物理资源,例如,如图1所示,TOS和ROS可以同时共享中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、神经网络处理器(neural network processing unit,NPU)、只读存储器(read only memory,ROM)、外设、一次性可编程存储器(例如,efuse)等物理资源。
虽然采用trustzone技术提高了计算系统的安全性,但是随着关键业务越来越多,trustzone隔离的安全世界的代码量越来越大,导致安全世界的可信计算基也越来越大,安全世界面临的攻击面也越来越大,因此需要新的技术来保证计算系统的安全。
一种方式是通过安全启动技术提高计算设备的安全性。安全启动技术是采用密码学手段,通过对镜像逐级校验,以确保计算设备可信。计算设备启动时运行的代码通常写在ROM中,而ROM器件的特性能够确保这段代码不会被篡改。只有当下一级要运行的镜像通过校验后,才会被计算系统执行,因此能够保证运行的镜像没有被非法篡改。
但是,安全启动技术只能保证计算设备运行的镜像没有被篡改,当系统的实现存在漏洞时,攻击者可以利用这些漏洞获得更高的权限,运行恶意代码,甚至获得对系统的访问权限。例如,攻击者可以在计算系统安全启动过程中进行攻击,利用启动流程中的代码漏洞,从而绕过启动过程中的安全校验。再例如,在计算系统安全启动过程中,恶意软件利用权限配置漏洞,能够访问整个内存空间。因此,在系统的实现存在漏洞时,安全启动技术并不能保证计算设备的安全性。
另一种方式是通过度量技术提高计算设备的安全性。例如,如图2所示的一种计算系统的安全架构示意图,通过在TEE设置完整性验证应用,并通过该完整性验证应用对REE的运行进行完整性度量。例如,如图2所示,可以通过完整性验证应用对REE中与内核相关的操作进行拦截,比如,对修改TEE操作系统的操作、将信息写入特权代码page等操作进行拦截。
但是,该方案在TEE设置的完整性验证应用仅可以对REE的运行进行度量,保证REE的运行安全,并不能发现TEE出现的漏洞。也就是说,该方案是将TEE作为完全可信任的系统,然而根据前述论述可知,TEE并不总是安全的。例如,黑帽安全技术大会Blackhat中提到的利用Android系统安全漏洞,可以攻破用户指纹识别功能,并顺利窃取到用户的指纹信息。因此,仅对REE进行度量,不对TEE进行度量,将导致TEE的安全性较低。而且,该方案不能对计算系统的启动过程进行度量,可能造成计算系统启动过程中存在漏洞被攻击者利用。
为了解决现有技术不能对计算系统启动过程进行度量,导致计算系统安全性较低的问题,本申请实施例提供一种终端芯片,该终端芯片中的安全子系统可以对计算子系统的启动过程进行完整性度量,能够确保计算子系统启动过程的安全性。
图3为本申请实施例提供的一种终端设备的架构示意图,该终端设备包括终端芯片和片外内存。终端芯片内设有安全子系统和计算子系统,安全子系统用于对计算子系统进行度量,安全子系统的启动时间早于计算子系统的启动时间。如图3所示,该安全子系统包括:完整性验证单元。该完整性验证单元,用于对计算子系统启动过程的数据进行完整性度量。
可选的,本申请实施例中完整性验证单元的功能可以采用硬件电路实现,也可以采用软件程序实现,本申请实施例对此并不限定。
示例性的,安全子系统启动完成后再启动计算子系统,由于安全子系统的启动时间早于计算子系统的启动时间,从而安全子系统可以对计算子系统启动过程的数据进行度量,以确定计算子系统启动过程中是否被恶意攻击,能够提高计算子系统启动过程的安全性。
示例性的,上述计算子系统可以包括REE和TEE,上述完整性验证单元对计算子系统启动过程的数据进行完整性度量,既可以包括对REE的启动过程的数据进行完整 性度量,也可以包括对TEE启动过程的数据进行完整性度量。
例如,计算子系统包括REE和TEE,安全子系统上电启动后,可以依次对TEE的上电启动过程和REE的上电启动过程的数据进行完整性度量,从而可以确保计算子系统启动过程的安全性。
可选的,如图3所示,安全子系统还可以包括ROM和处理器。ROM,用于存储安全子系统上电时的计算机程序。处理器,用于运行ROM中存储的计算机程序。处理器还用于运行安全子系统的操作系统。可选的,该处理器可以是一个中央处理器CPU,也可以是特定集成电路(application specific integrated circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)。本申请实施例对于处理器的具体形式并不限定。
本申请实施例中安全子系统上电时,可以由安全子系统的处理器执行ROM中存储的计算机程序代码。而且由于本申请实施例中的安全子系统的上电启动时间早于计算子系统的上电启动时间,因此安全子系统上电启动完成后,可以对计算子系统的上电启动过程进行完整性度量,以确保计算子系统启动过程的安全性。
示例性的,上述安全子系统可以运行在一个封闭的执行环境,该安全子系统可以运行自定义的固件和操作系统。例如,如图4所示,计算子系统包括应用处理器(application central processing unit,ACPU)、随机存取存储器(Random Access Memory,RAM)、ROM、内存控制器、GPU、外设等硬件资源。安全子系统包括CPU、RAM、ROM等硬件资源,即安全子系统的硬件资源与计算子系统的硬件资源是相互独立的。
再例如,图5为一种终端设备的软件架构示意图,如图5所示,计算子系统可以包括REE和TEE,安全子系统可以运行自定义的操作系统,该自定义的操作系统可以与REE运行的ROS和TEE运行的TOS均不同,该安全子系统中的完整性验证单元可以对TEE的操作系统内核和REE的操作系统内核进行度量,以确保计算子系统的安全运行。
可选的,上述安全子系统的处理器结构和计算子系统的处理器结构可以相同,也可以不同。例如,安全子系统的处理器架构可以为ARM架构,计算子系统的处理器结构可以为X86架构。再例如,安全子系统的处理器架构和计算子系统的处理器架构也可以均为ARM架构。
可以理解的,由于安全子系统的硬件资源与计算子系统的硬件资源之间相互独立,而且安全子系统可以运行自定义的操作系统,因此在计算子系统启动之前,安全子系统中的处理器可以运行自定义的操作系统启动安全子系统,在安全子系统启动完成后,安全子系统中的完整性验证单元可以对计算子系统启动过程中运行的数据进行完整性度量,以确保计算子系统启动过程的安全性。
可选的,安全子系统还可以包括第一交互接口,安全子系统可以通过该第一交互接口访问计算子系统的所有资源。示例性的,安全子系统可以通过第一交互接口和计算子系统的总线1,读取计算子系统中的所有资源(比如,计算子系统的RAM和寄存器中的资源)。可选的,安全子系统还可以通过第一交互接口读取片外内存中的资源。
例如,安全子系统可以读取计算子系统的RAM或片外内存(例如,双倍速率(double data rate,DDR)同步动态随机存储器)中的待执行的镜像、内存映射页表信息等与安全有关的数据。再例如,安全子系统可以读取计算子系统的寄存器中的重置向量基地址、trustzone保护控制器(trustzone protection controller,TZPC)、trustzone内存适配器(trustzone memory adapter,TZMA)、trustzone地址空间控制器(trustzone address space controller,TZASC)、异常向量表等与安全有关的数据。
可选的,如图3或图4所示,安全子系统还可以包括密码引擎(crypto engine),密码引擎用于提供密码算法。完整性验证单元,具体用于调用密码引擎提供的密码算法,对计算子系统启动过程的数据进行完整性度量。
示例性的,密码引擎用于提供哈希算法、消息认证码(message authentication code,MAC)算法等加密算法。例如,完整性验证单元可以通过调用密码引擎提供的哈希算法,计算计算子系统启动过程的数据的哈希值。再例如,完整性验证单元可以通过调用密码引擎提供的MAC算法,计算计算子系统启动过程的数据的MAC值。
可选的,如图3或图4所示,上述安全子系统还可以包括:随机存取存储器RAM,RAM用于存储计算子系统启动过程和运行过程的数据对应的基准值。可选的,RAM还可以用于临时存储安全子系统运行时需要的其他信息。
可选的,上述完整性验证单元,具体用于调用密码引擎计算计算子系统启动过程的数据的特征值,并将该特征值与RAM中存储的基准值进行比对,以指示计算子系统是否被攻击。可以理解的,如果特征值与RAM中存储的基准值一致,则说明计算子系统未被攻击。如果特征值与RAM中存储的基准值不一致,则说明计算子系统被攻击。当安全子系统确定计算子系统被攻击时,安全子系统可以将计算子系统复位,或者也可以进行其他异常处理,本申请实施例对计算子系统被攻击时异常处理的具体方式并不进行限定,下述实施例仅以计算子系统被攻击时,安全子系统将计算子系统复位为例进行说明。
可选的,当完整性验证单元调用密码引擎提供的哈希算法计算启动过程的数据的特征值时,该特征值为哈希值。当完整性验证单元调用密码引擎提供的MAC算法计算启动过程的数据的特征值时,该特征值为MAC值。本申请实施例对于密码引擎提供的密码算法的具体类型并不限定,下述实施例仅以密码引擎提供的密码算法为哈希算法为例进行说明。
可选的,上述处理器还用于在完整性验证单元确定特征值与基准值相同的情况下,向计算子系统发送第一指示信号,该第一指示信号用于指示计算子系统未被攻击。示例性的,该第一指示信号可以为硬件信号。
可选的,在完整性验证单元确定特征值与基准值不同的情况下,上述处理器,还用于向服务器发送指示信息,该指示信息用于指示计算子系统被攻击。并向计算子系统发送第二指示信号,该第二指示信号用于复位计算子系统。示例性的,该第二指示信号可以为硬件信号。
可选的,上述计算子系统启动过程的数据可以包括计算子系统启动过程中影响计算子系统安全运行的数据。例如,上述计算子系统启动过程的数据可以包括但不限于:执行的内核代码、内存映射页表,以及REE和TEE的安全配置信息等。
例如,终端上电后,安全子系统第一个上电启动,安全子系统系统可以通过校验启动来确保自身启动的安全性。安全子系统启动完成后,计算子系统开始进行安全启动,在计算子系统启动过程中,安全子系统的完整性验证单元可以读取计算子系统安全启动过程运行的数据,并调用密码引擎计算该数据的哈希值,并将该哈希值与基准值进行比对。如果比对通过(哈希值与基准值相同),安全子系统向计算子系统发送指示计算子系统未被攻击的第一指示信号,计算子系统接收该第一指示信号后,继续执行下一步的启动流程。如果比对不通过(哈希值与基准值不相同),安全子系统确定计算子系统已经被攻击,安全子系统可以直接将计算子系统复位,从而保证计算子系统的敏感信息(比如,密钥)不被泄露。安全子系统也可以向服务器发送指示信息,通知服务器计算子系统被攻击,以使得供应商可以及时对计算子系统中的漏洞进行修复。
可选的,如果比对通过(特征值与基准值相同),安全子系统也可以不向计算子系统发送指示计算子系统未被攻击的第一指示信号。也就是说,在计算子系统未被攻击时,计算子系统在启动过程中可以不管安全子系统的完整性度量结果,一步一步的执行启动流程,直到计算子系统被攻击时,安全子系统将其复位。
可以理解的,本申请实施例提供的终端芯片中,由于安全子系统的启动时间早于计算子系统的启动时间,而且安全子系统可以访问计算子系统的所有资源,因此安全子系统可以对计算子系统的启动过程进行完整性度量,以确定计算子系统启动过程中是否被恶意攻击,可以确保计算子系统启动过程的安全性。
可选的,安全子系统中的完整性验证单元,还用于对计算子系统运行过程的数据进行完整性度量。示例性的,计算子系统运行时,计算子系统的处理器可以仅运行ROS,也可以仅运行TOS,还可以同时运行ROS和TOS。
示例性的,完整性验证单元对计算子系统运行过程的数据进行完整性度量,既可以包括对REE的运行过程的数据进行完整性度量,也可以包括对TEE运行过程的数据进行完整性度量。
可选的,上述计算子系统运行过程的数据可以包括计算子系统运行过程中影响计算子系统安全运行的数据。例如,计算子系统运行过程的数据可以包括但不限于:执行的内核代码、应用程序的代码、内存映射页表,以及REE和TEE的安全配置信息等。
一种实现方式中,完整性验证单元用于在计算子系统从丰富执行环境REE切换至可信执行环境TEE时,对计算子系统运行的数据进行完整性度量。
例如,在运行阶段,当计算子系统从REE切换到TEE时,安全子系统可以读取计算子系统运行的数据,并调用密码引擎计算该数据的哈希值,并将该哈希值与安全子系统预先存储的基准值进行比对。如果比对通过,安全子系统可以向计算子系统发送指示计算子系统未被攻击的第一指示信号。计算子系统接收第一指示信号后,可以切换到TEE,并执行安全业务。如果比对不通过,安全子系统确定计算子系统被攻击,安全子系统将计算子系统复位,从而保证TEE的安全性。可选的,如果比对通过,安全子系统也可以不向计算子系统发送指示计算子系统未被攻击的第一指示信号。也就是说,在计算子系统未被攻击时,计算子系统可以不管安全子系统的完整性度量结果, 从REE切换至TEE,并执行TEE的业务,直到计算子系统被攻击时,安全子系统将其复位。
另一种实现方式中,如图3或图4所示,安全子系统还可以包括:定时器。完整性验证单元还可以基于定时器,定时对计算子系统运行的数据进行完整性度量。
可选的,计算子系统运行的数据可以仅包括TEE运行的数据,也可以仅包括REE运行的数据,还可以同时包括TEE及REE运行的数据。例如,安全子系统定时对计算子系统进行完整性度量时,如果当前计算子系统的处理器仅运行TOS,那么安全子系统对TEE运行的数据进行完整性度量。再例如,安全子系统定时对计算子系统进行完整性度量时,如果当前计算子系统的处理器仅运行ROS,那么安全子系统对REE运行的数据进行完整性度量。再例如,安全子系统定时对计算子系统进行完整性度量时,如果当前计算子系统的处理器同时运行ROS和TOS,那么安全子系统对REE和TEE运行的数据进行完整性度量。
示例性的,在运行阶段,安全子系统可以定时对计算子系统运行过程的数据进行完整性度量,以当前计算子系统的处理器同时运行ROS和TOS为例,安全子系统可以定时读取REE和TEE运行的数据,对REE和TEE进行完整性度量。可以理解的,安全子系统对REE和TEE进行完整性度量的方法可以参考前述内容,在此不再赘述。
可以理解的,本申请实施例提供的终端芯片中,安全子系统不仅可以对计算子系统的启动过程进行完整性度量,也可以对计算子系统运行过程的数据进行完整性度量,因此,能够实现对计算子系统的全生命周期进行度量,以确保计算子系统的安全运行。
可选的,如图3或图4所示,安全子系统还可以包括共享缓冲区,该共享缓冲区用于计算子系统与安全子系统进行通信。例如,共享缓冲区包括Inbox和Outbox,Inbox和Outbox一般是SoC的片内缓冲区(buffer)。
可选的,如图3或图4所示,安全子系统还可以包括进程间通信(inter-process communication,IPC)模块。IPC模块用于向计算子系统中的ACPU或者安全子系统中的处理器发送中断请求,共享缓冲区用于为计算子系统中的应用处理器ACPU或者安全子系统中的处理器缓存通信数据。可选的,安全子系统还可以包括第二交互接口,计算子系统可以通过第二交互接口从安全子系统的共享缓冲区中读取数据,也可以通过第二交互接口向安全子系统中的共享缓冲区中写入数据。
示例性的,当计算子系统与安全子系统进行通信时,计算子系统通过第二交互接口,将数据写到安全子系统的共享缓冲区中,当完成写动作后,计算子系统的ACPU通过IPC模块向安全子系统的处理器发送中断请求。安全子系统的处理器接收中断请求后,从共享缓冲区中读取数据,完成通信。当安全子系统与计算子系统进行通信时,安全子系统将数据写入共享缓冲区中,当完成写动作后,安全子系统的处理器通过IPC模块向计算子系统的ACPU发送中断请求。计算子系统的ACPU接收中断请求后,通过第二交互接口从共享缓冲区中读取数据,完成通信。
可选的,如图3或图4所示,安全子系统还可以包括过滤器(filter),该过滤器用于拦截计算子系统的第一访问操作,该第一访问操作用于请求访问安全子系统中除共享缓冲区以外的其他资源。也就是说,共享缓冲区是安全子系统中唯一可以被计算子系统访问的资源,计算子系统在访问安全子系统中除共享缓冲区以外的其他资源时, 过滤器可以将这些访问操作拦截,以确保计算子系统不能对安全子系统中的信息进行读取或更改,从而确保安全子系统的可信度。比如,计算子系统不能改写安全子系统的随机存取存储器RAM中存储的数据。可以理解的,在本申请实施例中安全子系统是一个功能简单的系统,具有很小的可信计算基,安全子系统的可信度较高。
可选的,安全子系统中的过滤器还用于拦截安全子系统的第二访问操作,该第二访问操作用于请求向计算子系统写入数据。也就是说,本申请实施例中的安全子系统可以读取计算子系统中的所有资源,但不能向计算子系统写入数据,从而避免将安全子系统中的数据暴露给计算子系统,能够进一步提高安全子系统的可信度。
可选的,安全子系统一旦上电启动后,外部电源管理单元不能对该安全子系统进行下电、复位、改变时钟状态等操作,否则可能导致安全子系统下电,无法对计算子系统进行度量,导致计算子系统的安全性降低。为了解决该问题,第一种实现方式是安全子系统使用独立的时钟和电源直接供电,不受外部电源管理单元控制。第二种实现方式是只有安全子系统给外部电源管理单元发出硬件信号,指示外部电源管理单元对安全子系统进行上电或下电控制后,外部电源管理单元才能对安全子系统进行上电或下电控制。
可选的,对应上述第一种实现方式,如图4所示,安全子系统还可以包括电源时钟管理单元,该电源时钟管理单元用于对安全子系统进行上电或下电控制。在该实现方式中,由于安全子系统中独立的设置了管理安全子系统上电或下电的电源时钟管理单元,该安全子系统的上电或下电可以不受外部电源管理单元控制,因此外部电源管理单元不能对安全子系统进行下电控制。而且采用该实现方式在安全子系统定时对计算子系统的运行过程进行完整性度量时,可以定时的通过该电源时钟管理单元对安全子系统进行上电或下电控制,降低安全子系统的能耗,节省电量。
可选的,对应上述第二种实现方式,上述处理器,还用于向外部电源管理单元发送第三指示信号,该第三指示信号用于指示外部电源管理单元对安全子系统进行上电或下电控制。在该实现方式中,外部电源管理单元只有接收到来自安全子系统的第三指示信号后,才可以对安全子系统进行下电控制,以确保计算子系统全生命周期的安全。
可选的,为了避免安全子系统挂死后,会停止对计算子系统进行度量,导致计算子系统的安全性较差的问题,本申请实施例的安全子系统还可以包括看门狗Watchdog,该看门狗用于在安全子系统挂死的情况下,复位安全子系统和计算子系统。可以理解的,如果安全子系统挂死,就不会有人喂狗,看门狗超时后,会进行全系统复位,从而避免计算子系统在未保护状态下运行时被攻击。可选的,上述复位安全子系统和计算子系统包括重新启动安全子系统和计算子系统。
可选的,如图4所示,安全子系统还可以包括一次性可编程存储器(one time programable,OTP),该一次性可编程存储器用于存储安全子系统的配置信息和一些关键密钥。示例性的,该一次性可编程存储器可以为efuse。
可以理解的,本申请实施例提供的安全子系统的上电启动时间早于计算子系统的上电启动时间,从而使得安全子系统可以对计算子系统的启动过程和运行过程进行完整性度量,即安全子系统能够对计算子系统的全生命周期进行度量,以确保计算子系 统全生命周期的安全。而且该安全子系统在对计算子系统进行度量时,不仅可以对REE进行度量,也可以对TEE进行度量,从而确保整个计算子系统的安全运行。
如图6所示,本申请实施例还提供一种终端芯片的度量方法,该终端芯片可以为上述图3或图4所示的终端芯片,该度量方法包括以下步骤:
S601、上电启动安全子系统。
该安全子系统的启动时间早于计算子系统的启动时间。例如,启动完安全子系统后再启动计算子系统。
可选的,安全子系统启动时,可以采用安全启动技术对镜像一级一级的校验,以确保安全子系统启动过程的安全性。
可选的,上述步骤S601可以由图4所示的安全子系统中的处理器通过执行ROM中存储的代码,启动安全子系统。
S602、在安全子系统启动完成后,上电启动计算子系统。
可选的,上述安全子系统启动完成后,再启动计算子系统,从而使得安全子系统可以对计算子系统的启动过程进行完整性度量。
可选的,计算子系统启动时,可以采用安全启动技术对镜像一级一级的校验,以确保计算子系统启动过程的安全性。而安全子系统对计算子系统的启动过程进行完整性度量,可以进一步确定计算子系统的启动过程是否被恶意攻击或篡改。
可选的,上述计算子系统可以包括REE和TEE。上述步骤S602中启动计算子系统可以包括:启动TEE和REE。例如,在启动计算子系统时,可以先启动TEE,再启动REE。
S603、安全子系统对计算子系统启动过程的数据进行完整性度量。
可以理解的,上述步骤S603可以由图4所示的安全子系统中的完整性验证单元调用密码引擎对计算子系统启动过程的数据进行完整性度量。关于计算子系统启动过程的数据内容,以及安全子系统对计算子系统启动过程的数据进行完整性度量的具体实现方式,可以参考前述实施例,在此不再赘述。
可选的,上述步骤S603中安全子系统对计算子系统启动过程的数据进行完整性度量,包括:安全子系统计算上述计算子系统启动过程的数据的特征值,并将该特征值与基准值进行比对。
示例性的,在安全子系统启动完成后,计算子系统开始进行安全启动,在计算子系统启动过程中,安全子系统可以先对TEE的启动过程进行完整性度量,再对REE的启动过程进行完整性度量。
可以理解的,本申请实施例提供的终端芯片的度量方法,通过安全子系统启动完成后再启动计算子系统,从而使得安全子系统可以对计算子系统的启动过程进行完整性度量,以确保计算子系统启动过程的安全性。而且该安全子系统在对计算子系统的启动过程进行度量时,不仅可以对REE的启动过程进行完整性度量,也可以对TEE的启动过程进行完整性度量,从而确保整个计算子系统启动过程的安全性。
可选的,若计算子系统启动过程的数据的特征值与基准值相同,安全子系统确定完整性度量成功。若计算子系统启动过程的数据的特征值与基准值不同,安全子系统确定完整性度量失败。
可选的,如图7所示,在步骤S603中安全子系统确定完整性度量成功的情况下,上述方法还可以包括步骤S604;在步骤S603中安全子系统确定完整性度量失败的情况下,上述方法还可以包括步骤S605-S606。
S604、在完整性度量成功的情况下,安全子系统向计算子系统发送第一指示信号。
该第一指示信号用于指示计算子系统未被攻击。
可选的,上述完整性度量成功是指计算子系统启动过程的数据的特征值与基准值比对通过,即数据的特征值与基准值相同。
可选的,在完整性度量成功的情况下,安全子系统向计算子系统发送第一指示信号,指示计算子系统未被攻击。
可选的,在安全子系统确定完整性度量成功的情况下,安全子系统也可以不向计算子系统发送指示计算子系统未被攻击的第一指示信号。例如,在计算子系统未被攻击时,计算子系统在启动过程中可以不管安全子系统的完整性度量结果,一步一步的执行启动流程,直到计算子系统被攻击时,安全子系统将其复位。
S605、在完整性度量失败的情况下,安全子系统向服务器发送指示信息。
该指示信息用于指示计算子系统被攻击。
可选的,上述完整性度量失败是指计算子系统启动过程的数据的特征值与基准值比对不通过,即数据的特征值与基准值不同。
可以理解的,在安全子系统确定完整性度量失败的情况下,通过安全子系统向服务器发送指示信息,通知服务器计算子系统被攻击,从而使得供应商可以及时对计算子系统中的漏洞进行修复,确保计算子系统的安全运行。
S606、安全子系统向计算子系统发送第二指示信号。
该第二指示信号用于复位计算子系统。
可以理解的,在完整性度量失败的情况下,安全子系统确定计算子系统被攻击,安全子系统可以直接将计算子系统复位,从而保证计算子系统的敏感信息(比如,密钥)不被泄露。
例如,以安全子系统对TEE的启动过程进行完整性度量为例,如图8所示,系统上电(例如,终端设备开机)后,安全子系统第一个上电启动,在安全子系统完成安全启动后,计算子系统上电启动,计算子系统加载ROM代码,安全子系统的完整性验证单元读取ROM代码、安全应用程序的代码、内存映射页表,以及TEE的安全配置信息等数据,并对该数据进行完整性度量。如果ROM代码对应的数据完整性度量失败,重启计算子系统。如果ROM代码对应的数据完整性度量成功,计算子系统可以继续运行ROM代码,并加载bootloader(操作系统的启动加载程序),并进一步对加载bootloader对应的数据进行完整性度量。如果加载bootloader对应的数据完整性度量失败,重启计算子系统。如果加载bootloader对应的数据完整性度量成功,那么计算子系统继续运行bootloader代码,如此依次执行启动流程,直至TEE安全启动完成。
本申请实施例提供的度量方法,通过安全子系统启动完成后再启动计算子系统,从而使得安全子系统可以对计算子系统的启动过程进行完整性度量,以确保计算子系统启动过程的安全性。而且该安全子系统在对计算子系统的启动过程进行度量时,不仅可以对REE的启动过程进行完整性度量,也可以对TEE的启动过程进行完整性度 量,从而确保整个计算子系统启动过程的安全性。该方法还可以在安全子系统确定计算子系统被攻击的情况下,通过向服务器发送指示信息,通知服务器计算子系统被攻击,从而使得供应商可以及时对计算子系统中的漏洞进行修复,确保计算子系统的安全运行。并在计算子系统被攻击的情况下,将计算子系统复位,从而保证计算子系统的敏感信息不被泄露。
如图9所示,本申请实施例还提供一种终端芯片的度量方法,该度量方法在上述步骤S604之后,还可以包括以下步骤:
S901、安全子系统对计算子系统运行过程的数据进行完整性度量。
可以理解的,上述步骤S901可以由图4所示的安全子系统中的完整性验证单元调用密码引擎对计算子系统运行过程的数据进行完整性度量。关于计算子系统运行过程的数据的内容,以及安全子系统对计算子系统运行过程的数据进行完整性度量的具体实现方式,可以参考前述实施例,在此不再赘述。
可选的,上述步骤S901中安全子系统对计算子系统运行过程的数据进行完整性度量,包括:安全子系统计算上述计算子系统运行过程的数据的特征值,并将该特征值与基准值进行比对。
可选的,上述步骤S901中安全子系统对计算子系统运行过程的数据进行完整性度量时,安全子系统可以定时对计算子系统运行过程的数据进行完整性度量。该计算子系统可以仅包括REE,或,仅包括TEE,或,既包括TEE又包括REE。
可以理解的,本申请实施例提供的终端芯片的度量方法,通过安全子系统启动完成后再启动计算子系统,从而使得安全子系统可以对计算子系统的启动过程和运行过程进行完整性度量,即安全子系统能够对计算子系统的全生命周期进行度量,以确保计算子系统全生命周期的安全。而且该安全子系统在对计算子系统进行度量时,不仅可以对REE进行完整性度量,也可以对TEE进行完整性度量,从而确保整个计算子系统的安全。
可选的,如图9所示,在步骤S901中安全子系统确定完整性度量成功的情况下,上述方法还可以包括步骤S902;在步骤S901中安全子系统确定完整性度量失败的情况下,上述方法还可以包括步骤S903-S904。
S902、在完整性度量成功的情况下,安全子系统向计算子系统发送第一指示信号。
该第一指示信号用于指示计算子系统未被攻击。
可选的,上述完整性度量成功是指计算子系统运行过程的数据的特征值与基准值比对通过,即数据的特征值与基准值相同。
可选的,在完整性度量成功的情况下,安全子系统向计算子系统发送第一指示信号,指示计算子系统未被攻击。
可选的,在安全子系统确定完整性度量成功的情况下,安全子系统也可以不向计算子系统发送指示计算子系统未被攻击的第一指示信号。例如,在计算子系统未被攻击时,计算子系统在启动过程中可以不管安全子系统的完整性度量结果,一步一步的执行运行流程,直到计算子系统被攻击时,安全子系统将其复位。
S903、在完整性度量失败的情况下,安全子系统向服务器发送指示信息。
该指示信息用于指示计算子系统被攻击。
可选的,上述完整性度量失败是指计算子系统运行过程的数据的特征值与基准值比对不通过,即数据的特征值与基准值不同。
可以理解的,在安全子系统确定完整性度量失败的情况下,通过安全子系统向服务器发送指示信息,通知服务器计算子系统运行过程被攻击,从而使得供应商可以及时对计算子系统中的漏洞进行修复,确保计算子系统的安全运行。
S904、安全子系统向计算子系统发送第二指示信号。
该第二指示信号用于复位计算子系统。
可以理解的,在完整性度量失败的情况下,安全子系统确定计算子系统被攻击,安全子系统可以直接将计算子系统复位,从而保证计算子系统的敏感信息(比如,密钥)不被泄露。
本申请实施例提供的终端芯片的度量方法,通过安全子系统启动完成后再启动计算子系统,从而使得安全子系统可以对计算子系统的启动过程和运行过程进行完整性度量,即安全子系统能够对计算子系统的全生命周期进行度量,以确保计算子系统全生命周期的安全。而且该安全子系统在对计算子系统进行度量时,不仅可以对REE进行完整性度量,也可以对TEE进行完整性度量,从而确保整个计算子系统的安全。该方法还可以在安全子系统确定计算子系统被攻击的情况下,通过向服务器发送指示信息,通知服务器计算子系统被攻击,从而使得供应商可以及时对计算子系统中的漏洞进行修复,确保计算子系统的安全运行。并在计算子系统被攻击的情况下,将计算子系统复位,从而保证计算子系统的敏感信息不被泄露。
本申请实施例还提供一种终端设备,该终端设备包括如图3或图4所示的终端芯片以及片外内存,所述终端芯片用于从所述片外内存读取或写入数据。
结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于终端接口设备中。当然,处理器和存储介质也可以作为分立组件存在于终端接口设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定 本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (28)
- 一种终端芯片,其特征在于,所述终端芯片包括计算子系统和安全子系统,所述安全子系统用于对所述计算子系统进行度量,所述安全子系统的启动时间早于所述计算子系统的启动时间,所述安全子系统包括:完整性验证单元;所述完整性验证单元,用于对所述计算子系统启动过程的数据进行完整性度量。
- 根据权利要求1所述的终端芯片,其特征在于,所述安全子系统还包括:第一交互接口,所述安全子系统通过所述第一交互接口访问所述计算子系统的所有资源。
- 根据权利要求1或2所述的终端芯片,其特征在于,所述完整性验证单元,还用于对所述计算子系统运行过程的数据进行完整性度量。
- 根据权利要求3所述的终端芯片,其特征在于,所述完整性验证单元,具体用于在所述计算子系统从丰富执行环境REE切换至可信执行环境TEE时,对所述计算子系统运行的数据进行完整性度量。
- 根据权利要求3或4所述的终端芯片,其特征在于,所述安全子系统还包括:定时器,所述定时器用于计时;所述完整性验证单元,具体还用于基于所述定时器,定时对所述计算子系统运行的数据进行完整性度量。
- 根据权利要求1-5中任一项所述的终端芯片,其特征在于,所述安全子系统还包括:共享缓冲区,所述共享缓冲区用于所述计算子系统与所述安全子系统进行通信。
- 根据权利要求6所述的终端芯片,其特征在于,所述安全子系统还包括:过滤器,所述过滤器,用于拦截所述计算子系统的第一访问操作,所述第一访问操作用于请求访问所述安全子系统中除所述共享缓区以外的其他资源。
- 根据权利要求7所述的终端芯片,其特征在于,所述过滤器,还用于拦截所述安全子系统的第二访问操作,所述第二访问操作用于请求向所述计算子系统写入数据。
- 根据权利要求1-8中任一项所述的终端芯片,其特征在于,所述安全子系统还包括:只读存储器ROM和处理器,所述ROM,用于存储所述安全子系统上电时的计算机程序;所述处理器,用于运行所述ROM中存储的所述计算机程序。
- 根据权利要求1-9中任一项所述的终端芯片,其特征在于,所述安全子系统还包括密码引擎,所述密码引擎,用于提供密码算法;所述完整性验证单元,具体用于调用所述密码引擎提供的密码算法,对所述计算子系统启动过程和运行过程的数据进行完整性度量。
- 根据权利要求10所述的终端芯片,其特征在于,所述安全子系统还包括:随机存取存储器RAM,所述RAM用于存储所述计算子系统启动过程和运行过程的数据对应的基准值。
- 根据权利要求11所述的终端芯片,其特征在于,所述完整性验证单元,具体用于调用所述密码引擎提供的密码算法,计算所述计算子系统启动过程和运行过程的数据的特征值,并将所述特征值与所述RAM中存储的基准值进行比对,以指示所述 计算子系统是否被攻击。
- 根据权利要求12所述的终端芯片,其特征在于,处理器,还用于在所述特征值与所述基准值相同的情况下,向所述计算子系统发送第一指示信号,所述第一指示信号用于指示所述计算子系统未被攻击。
- 根据权利要求12所述的终端芯片,其特征在于,处理器,还用于:在所述特征值与所述基准值不同的情况下,向服务器发送指示信息,所述指示信息用于指示所述计算子系统被攻击;向所述计算子系统发送第二指示信号,所述第二指示信号用于复位所述计算子系统。
- 根据权利要求1-14中任一项所述的终端芯片,其特征在于,所述安全子系统还包括:电源时钟管理单元;所述电源时钟管理单元,用于对所述安全子系统进行上电或下电控制。
- 根据权利要求1-14中任一项所述的终端芯片,其特征在于,处理器还用于向外部电源管理单元发送第三指示信号,所述第三指示信号用于指示所述外部电源管理单元对所述安全子系统进行上电或下电控制。
- 根据权利要求1-16中任一项所述的终端芯片,其特征在于,所述安全子系统还包括:看门狗;所述看门狗用于在所述安全子系统挂死的情况下,复位所述安全子系统和所述计算子系统。
- 一种终端芯片的度量方法,其特征在于,所述终端芯片包括计算子系统和安全子系统,所述方法包括:上电启动所述安全子系统;所述安全子系统用于对所述计算子系统进行度量;在所述安全子系统启动完成后,上电启动所述计算子系统;所述安全子系统对所述计算子系统启动过程的数据进行完整性度量。
- 根据权利要求18所述的方法,其特征在于,所述方法还包括:所述安全子系统对所述计算子系统运行过程的数据进行完整性度量。
- 根据权利要求19所述的方法,其特征在于,所述安全子系统对所述计算子系统运行过程的数据进行完整性度量,包括:在所述计算子系统从丰富执行环境REE切换至可信执行环境TEE时,所述安全子系统对所述计算子系统运行的数据进行完整性度量。
- 根据权利要求19所述的方法,其特征在于,所述安全子系统对所述计算子系统运行过程的数据进行完整性度量,包括:所述安全子系统定时对所述计算子系统运行过程的数据进行完整性度量。
- 根据权利要求18-21中任一项所述的方法,其特征在于,所述安全子系统对所述计算子系统启动过程或运行过程的数据进行完整性度量,包括:所述安全子系统计算所述计算子系统启动过程或运行过程的数据的特征值,并将所述特征值与基准值进行比对,以指示所述计算子系统是否被攻击。
- 根据权利要求22所述的方法,其特征在于,在所述特征值与所述基准值相同的情况下,所述方法还包括:所述安全子系统向所述计算子系统发送第一指示信号,所述第一指示信号用于指 示所述计算子系统未被攻击。
- 根据权利要求22所述的方法,其特征在于,在所述特征值与所述基准值不同的情况下,所述方法还包括:所述安全子系统向服务器发送指示信息,所述指示信息用于指示所述计算子系统被攻击;所述安全子系统向所述计算子系统发送第二指示信号,所述第二指示信号用于复位所述计算子系统。
- 根据权利要求18-24中任一项所述的方法,其特征在于,所述方法还包括:所述安全子系统向外部电源管理单元发送第三指示信号,所述第三指示信号用于指示所述外部电源管理单元对所述安全子系统进行上电或下电控制。
- 根据权利要求18-25中任一项所述的方法,其特征在于,所述方法还包括:所述安全子系统拦截所述计算子系统的第一访问操作,所述第一访问操作用于访问所述安全子系统中除共享缓冲区以外的其他资源。
- 根据权利要求18-26中任一项所述的方法,其特征在于,所述方法还包括:所述安全子系统拦截所述安全子系统的第二访问操作,所述第二访问操作用于请求向所述计算子系统写入数据。
- 一种终端设备,其特征在于,所述终端设备包括如权利要求1-17中任一项所述的终端芯片以及片外内存,所述终端芯片用于从所述片外内存读取或写入数据。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/073663 WO2022155973A1 (zh) | 2021-01-25 | 2021-01-25 | 一种终端芯片及其度量方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116601629A true CN116601629A (zh) | 2023-08-15 |
Family
ID=82548386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180084411.1A Pending CN116601629A (zh) | 2021-01-25 | 2021-01-25 | 一种终端芯片及其度量方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230367913A1 (zh) |
EP (1) | EP4273722A4 (zh) |
CN (1) | CN116601629A (zh) |
WO (1) | WO2022155973A1 (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9047471B2 (en) * | 2012-09-25 | 2015-06-02 | Apple Inc. | Security enclave processor boot control |
CN104918116B (zh) * | 2015-05-28 | 2018-10-23 | 北京视博数字电视科技有限公司 | 用于智能终端的资源播放方法及系统 |
EP3461016A4 (en) * | 2016-08-09 | 2019-06-12 | Huawei Technologies Co., Ltd. | SYSTEM ON CHIP AND PROCESSING DEVICE |
US10402567B2 (en) * | 2017-06-25 | 2019-09-03 | Microsoft Technology Licensing, Llc | Secure boot for multi-core processor |
EP3570197A1 (en) * | 2018-05-16 | 2019-11-20 | Gemalto Sa | Electronic system and method for preventing malicious actions on a processing system of the electronic system |
KR102058493B1 (ko) * | 2018-05-25 | 2019-12-23 | 주식회사 수산아이앤티 | 게스트 운영체제의 무결성과 파일 입출력 제어를 통해서 보안 서비스를 제공하는 보안 장치 및 방법 |
CN112016090B (zh) * | 2019-05-30 | 2024-01-23 | 阿里巴巴集团控股有限公司 | 安全计算卡,基于安全计算卡的度量方法及系统 |
CN111177703B (zh) * | 2019-12-31 | 2023-03-31 | 青岛海尔科技有限公司 | 操作系统数据完整性的确定方法及装置 |
-
2021
- 2021-01-25 CN CN202180084411.1A patent/CN116601629A/zh active Pending
- 2021-01-25 WO PCT/CN2021/073663 patent/WO2022155973A1/zh active Application Filing
- 2021-01-25 EP EP21920365.0A patent/EP4273722A4/en active Pending
-
2023
- 2023-07-21 US US18/356,463 patent/US20230367913A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230367913A1 (en) | 2023-11-16 |
EP4273722A1 (en) | 2023-11-08 |
WO2022155973A1 (zh) | 2022-07-28 |
EP4273722A4 (en) | 2024-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106605233B (zh) | 使用处理器提供可信执行环境 | |
US20190172047A1 (en) | System on chip and processing device | |
CN110414235B (zh) | 一种基于ARM TrustZone的主动免疫的双体系结构系统 | |
US8959311B2 (en) | Methods and systems involving secure RAM | |
US7392415B2 (en) | Sleep protection | |
US8539245B2 (en) | Apparatus and method for accessing a secure partition in non-volatile storage by a host system enabled after the system exits a first instance of a secure mode | |
JP6053786B2 (ja) | Arm(登録商標)トラストゾーン実施のためのファームウェア基盤トラステッドプラットフォームモジュール(tpm) | |
TWI451338B (zh) | 用以執行保全嵌入式容器之處理器擴充技術 | |
CN107092495B (zh) | 平台固件铠装技术 | |
US20160350534A1 (en) | System, apparatus and method for controlling multiple trusted execution environments in a system | |
US11379586B2 (en) | Measurement methods, devices and systems based on trusted high-speed encryption card | |
CN102063591B (zh) | 基于可信平台的平台配置寄存器参考值的更新方法 | |
US8843742B2 (en) | Hypervisor security using SMM | |
WO2022155973A1 (zh) | 一种终端芯片及其度量方法 | |
US20220138324A1 (en) | Regulating messages warning about impacts of firmware changes | |
CN112181860A (zh) | 具有快闪存储器仿真功能的控制器及其控制方法 | |
US20220414216A1 (en) | Electronic apparatus and security protection method | |
WO2008025036A2 (en) | Data processing systems utilizing secure memory | |
Frenn et al. | Towards Leveraging Late-Launch to Create Trustworthy Thin-Terminal Clients |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |