处理单元、电子设备以及安全控制方法与流程

文档序号:25949721发布日期:2021-07-20 17:05阅读:51来源:国知局
处理单元、电子设备以及安全控制方法与流程

本发明涉及处理器领域,更具体而言,涉及一种处理单元、电子设备、计算机可读存储介质以及安全控制方法。



背景技术:

随着智能终端技术的不断发展,各种应用程序(application,简称为app)为用户带来了便利,随之而来的是用户对这些应用程序的安全性的关注。尤其是在物联网领域、人工智能领域以及其它的一些领域中,对于涉及到一些敏感信息(例如身份信息、财产信息等不希望被他人获取的信息)的应用程序,用户期望这些敏感信息能够得到有效的安全保护。

因此,希望可以基于处理器和存储器等硬件结构中建立可信执行环境(trustedexecutionenvironment,tee),用于为需要受保护的应用程序提供具有安全保护功能的执行环境。

传统的技术方案主要基于复杂的处理器架构和独立的安全芯片(与处理器芯片分立)建立整个电子设备的tee,因此在安全芯片与电子设备中其他硬件结构传输信息的过程中,无法保证良好的安全性能,且传输效率较低。



技术实现要素:

有鉴于此,本发明实施例提供一种处理单元、电子设备、计算机可读存储介质以及安全控制方法,以解决以上问题。

为了达到这个目的,第一方面,提供了一种处理单元,包括:处理器,适于运行程序;存储器,与所述处理器耦接,适于提供相互隔离的多个安全区,所述多个安全区包括多个应用安全区,每个所述应用安全区分别被用于运行相应的应用程序,所述多个安全区还包括如下至少之一:运行时安全区,适于提供可调用程序的运行所需的存储空间;密码安全区,适于提供密码相关程序的运行所需的存储空间,其中,所述运行时安全区和所述密码安全区至少具有对所述多个应用安全区的读写权限,每个所述应用安全区不具有对所述运行时安全区和所述密码安全区的读写权限。

在一些实施例中,所述可调用程序是面向不同应用程序的共享程序和/或通用驱动程序。

在一些实施例中,所述处理器包括第一处理器核,适于在所述密码安全区内运行面向密码服务的所述密码相关程序。

在一些实施例中,处理单元还包括密钥管理组件,适于提供所述密码服务以生成加密/解密结果,所述第一处理器核与所述密钥管理组件耦接,并通过在所述密码安全区内运行所述密码相关程序将所述加密/解密结果写入相应的所述应用安全区中。

在一些实施例中,所述处理器还包括第二处理器核,适于在所述多个应用安全区内分别运行相应的应用程序。

在一些实施例中,所述第二处理器核是基于risc-v指令集架构实现的。

在一些实施例中,处理单元还包括:总线结构,与所述第一处理器核、所述第二处理器核以及所述存储器分别耦接。

在一些实施例中,处理单元还包括:地址寄存器,用于存储每个所述安全区对应的地址信息;以及权限寄存器,用于存储每个所述安全区的权限信息,所述处理器适于根据所述权限信息指示的访问权限控制每个所述安全区的访问操作,所述访问权限至少包括读写权限和执行权限。

在一些实施例中,所述应用安全区的权限信息被配置以不具有对自身之外的所述应用安全区的访问权限。

在一些实施例中,所述应用安全区的权限信息被配置以具有对所述密码安全区和所述运行时安全区的执行权限,和/或,所述密码安全区和所述运行时安全区的权限信息被配置以具有对所述应用安全区的读写权限和执行权限。

在一些实施例中,所述运行时安全区的权限信息被配置以不具有对所述密码安全区的读写权限,所述密码安全区的权限信息被配置以不具有对所述运行时安全区的读写权限。

在一些实施例中,所述运行时安全区的权限信息被配置以不具有对所述密码安全区的执行权限。

在一些实施例中,所述多个应用安全区中的第一应用安全区向指定的第二应用安全区分享权限信息,使得所述第二应用安全区具有对所述第一应用安全区的临时访问权限。

在一些实施例中,所述处理器适于:运行操作系统;在用户模式下运行所述应用程序、所述可调用程序以及所述密码相关程序中的一个或多个;以及在机器模式下运行安全监控系统,以配置所述地址寄存器和所述权限寄存器,并切换不同所述安全区内的程序对所述处理器的控制权。

在一些实施例中,每个所述安全区的权限信息均被配置以不具有对所述安全监控系统的访问权限,所述应用安全区的权限信息被配置以不具有对所述操作系统的访问权限,所述密码安全区和所述运行时安全区的权限信息被配置以具有对所述操作系统的读写权限和执行权限。

在一些实施例中,处理单元还包括启动顺序寄存器,适于存储启动顺序信息,基于所述启动顺序信息,所述处理器适于在启动过程中首先运行所述安全监控系统,并随后在所述密码安全区内运行所述密码相关程序。

在一些实施例中,至少一个所述安全区被相应的使能标签配置,所述使能标签指示该安全区处于启用状态、禁用状态或部分禁用状态。

在一些实施例中,所述存储器包括只读存储模块、动态和/或静态随机访问存储模块、非易失性随机访问存储模块以及存储映射输入/输出接口模块中的一种或多种存储模块。

在一些实施例中,处理单元还包括:直接存储访问控制器,响应于所述处理器的请求以访问所述存储器;和/或电源管理模块,适于提供所述处理单元工作所需的供电电压。

在一些实施例中,所述处理单元被集成于片上系统内。

在一些实施例中,所述处理单元为微控制器。

第二方面,本发明提供一种电子设备,包括根据本发明任一实施例提供的处理单元。

第三方面,本发明提供一种安全控制方法,包括:在存储器中配置相互隔离的多个安全区,所述多个安全区包括多个应用安全区,以及运行时安全区和/或密码安全区;在每个所述应用安全区内分别运行相应的应用程序;以及在所述运行时安全区内运行可调用程序,和/或,在所述密码安全区内运行密码相关程序,其中,所述运行时安全区和所述密码安全区至少具有对所述多个应用安全区的读写权限,每个所述应用安全区不具有对所述运行时安全区和所述密码安全区的读写权限。

在一些实施例中,所述可调用程序是面向不同应用程序的共享程序和/或通用驱动程序。

在一些实施例中,安全控制方法还包括:将加密/解密结果写入相应的所述应用安全区,所述加密/解密结果由运行于所述密码安全区内的所述密码相关程序获得。

在一些实施例中,在用户模式下,所述密码相关程序由第一处理器核运行,各个所述应用程序由第二处理器核运行。

在一些实施例中,所述第二处理器核是基于risc-v指令集架构实现的。

在一些实施例中,在存储器中配置相互隔离的所述多个安全区的步骤包括:在机器模式下运行安全监视系统,所述安全监视系统适于配置每个所述安全区对应的地址信息和权限信息,以便于所述安全控制方法在用户模式下根据所述权限信息指示的访问权限控制每个所述安全区的访问操作,所述访问权限至少包括读写权限和执行权限。

在一些实施例中,所述安全监视系统还适于:在所述多个安全区之一内的程序的运行过程中或运行完成后,切换至另一所述安全区以使所述另一安全区内的程序被相应的处理器核运行。

在一些实施例中,所述多个安全区的权限信息指示下列至少一种配置:所述应用安全区不具有对自身之外的所述应用安全区的访问权限;所述应用安全区具有对所述密码安全区和所述运行时安全区的执行权限;所述密码安全区和所述运行时安全区具有对所述应用安全区的读写权限和执行权限;所述运行时安全区不具有对所述密码安全区的读写权限;所述密码安全区不具有对所述运行时安全区的读写权限;所述运行时安全区不具有对所述密码安全区的执行权限;以及每个所述安全区均不具有对所述安全监控系统的访问权限。

在一些实施例中,安全控制方法还包括:运行操作系统,所述应用安全区的权限信息被配置以不具有对所述操作系统的访问权限,所述密码安全区和所述运行时安全区的权限信息被配置以具有对所述操作系统的读写权限和执行权限。

在一些实施例中,所述安全控制方法在启动阶段首先运行所述安全监控系统,并随后在所述密码安全区内运行所述密码相关程序。

第四方面,本发明还提供了一种计算机可读存储介质,其上存储有指令,所述指令被执行时实现本发明公开的安全控制方法中的步骤。

相比于传统方案,本发明实施例提供的处理单元、电子设备和安全控制方法可以在处理单元内基于多个应用安全区、以及密码安全区和/或运行时安全区建立tee,从而为各种应用程序分配独立的应用安全区,使得处理单元可以独立地在应用安全区中运行相应的应用程序,因此能够保证各个应用程序独立地被安全保护,增强了安全性,防止应用程序涉及的敏感信息被窃取。

在一些实施例中,存储器中包括区别于应用安全区的密码安全区,处理单元可以在密码安全区内运行密码相关程序,以进一步保护密码信息不被非法获取,提升了处理单元的安全性。

在一些实施例中,存储器中包括区别于应用安全区的运行时安全区,处理器可以在运行时安全区内运行共享程序等共享资源,从而可以减少存储资源重复被占用的情况发生,节省了存储空间。

在一些可选的实施例中,本发明可以仅设置两种模式(用户模式和机器模式)就能够设置具有多种类别的所述多个安全区,从而简化了设计、节约了成本,能更好地适用于轻量级的处理单元和电子设备,而无需复杂的软硬件架构体系。

在一些实施例中,本发明的处理单元在片上系统内设置多个安全区和相应的处理器核,用于实现安全保护功能所需的可信执行环境,从而应用程序可以在芯片内与可信执行环境实现通信,降低了设计难度、复杂度和成本,也提升了安全性。

附图说明

通过参考以下附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:

图1示出本发明实施例的电子设备的示意图框图;

图2示出本发明实施例的电子设备的一种示例性的应用场景示意图;

图3示出本发明实施例的处理单元的结构示意图;

图4示出本发明实施例的密钥管理系统的示意性框图;

图5示出在本发明实施例的处理单元内处理器控制权的转移路径示意图;

图6示出本发明实施例的处理单元的软件架构示意图;

图7示出本发明实施例的各种安全区的权限信息示意图;

图8本发明实施例的安全启动方法的流程示意图。

具体实施方式

以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。

在本文中使用以下术语。

微控制器:microcontrollerunit,简称为mcu,通常是指基于处理器、存储器以及其他硬件模块实现的系统级芯片或片上系统(systemonchip,简称为soc),微控制器可以运行操作系统(operatingsystem,简称为os)和应用程序。在物联网领域、人工智能领域以及其它的一些领域中,微控制器因其高度集成化和可定制化等显著优势而被广泛应用。

存储器:可以集成在处理单元内,是用于存储信息的物理结构。存储器内存储的信息包括由数据信号表示的指令信息和/或数据信息,例如用于存放处理器提供的数据、应用程序的代码等,也可用于实现处理器与处理单元外的存储装置之间的信息交换。

读写权限:读权限和写权限的统称;若某指定程序对某目标存储区具有读权限,则代表可以读取该目标存储区中的信息(代码和/或数据),使得该目标存储区的信息可以被加载至用于运行该指定程序的存储区中;若某指定程序对某目标存储区具有写权限,则代表该指定程序可以对该目标存储区内的信息进行修改。

执行权限:若某指定程序对某目标存储区具有执行权限,则代表该指定程序被允许执行或调用存储于该目标存储区内的代码,但执行权限并不意味着允许该指定程序查看或读取这些存储在目标存储区内的代码。

本申请实施例可以应用于互联网和物联网(internetofthings,简称iot)等领域中,例如5g移动互联网系统、安全识别系统等,能够在处理单元内建立用于保护敏感信息的可信执行环境。下面以一种智能冰箱的应用场景作为示例对本发明实施例进行说明,但应当领会,本发明实施例的应用场景不限于此,还可以应用在任何需要在处理单元内保护敏感信息的场景中。

系统概述

图1示出本发明实施例的电子设备的示意图框图。图2示出本发明实施例的电子设备的一种示例性的应用场景示意图。正如上文所述,图2示出的应用场景仅作为一种说明性的示例,而不用于限定本发明实施例的电子设备的实际应用场景。

图1中示出的电子设备1000旨在示出一个或多个电子装置的至少部分组件,在本发明的其他实施例中,可以省略图1示出的部分组件或以不同的架构实现各组件之间的连接,也可以包括图1中未示出的一些硬件和/或软件模块,图1中示出的两个或两个以上的组件也可以在软件体系和/或硬件体系上被合成为一个组件。

在一些实施例中,电子设备1000可以是移动设备、手持式设备或嵌入式设备,例如为采用5g技术的智能汽车、智能家电、生物信息识别系统、银行管理系统、物联网设备的处理平台中。电子设备1000还可以应用于可穿戴设备(诸如智能手表、智能眼镜等设备),也可以是电视、机顶盒等设备。

如图1和2所示,电子设备1000可以包括一个或多个处理单元1100。在一些实施例中,电子设备1000中的处理单元1100在架构和功能上可以灵活设计,例如,在需要实现低功耗和专用功能的场景中,本发明实施例的电子设备1000可以相比于个人计算机、服务器终端等大型计算机设备更为精简、具有较低的功耗,因此适用于各种物联网设备、嵌入式设备、智能终端设备等。

电子设备1000中的一个或多个处理单元1100可以基于印刷电路板实现,也可以是独立封装的芯片(例如为一种微控制器),还可以由集成于片上系统中的硬件结构和/或软件实现。

在一些实施例中,电子设备1000还可以包括一个或多个协处理器,用于执行不涉及敏感信息的指令和数据。

如图1所示,电子设备1000还包括系统总线1200,处理单元1100可以与一个或多个系统总线1200耦合。系统总线1200可以用于在处理单元1100与电子设备1000中的其他部件之间传输信号,例如传输地址、数据或控制信号等。系统总线1200可以包括但不限于:基于外设部件互连标准(peripheralcomponentinterconnect,pci)的总线、存储器总线或其他类型的总线。

通常,如图1所示,电子设备1000还可包括经由系统总线1200与处理单元1100通信的一个或多个存储装置1300。存储装置1300用于为电子设备提供额外的存储空间,例如用于存储敏感信息之外的数据和/或指令。

电子设备1000也可以经由系统总线1200耦合到输入/输出装置1400。在一些实施例中,输入/输出装置1400可以提供用户接口以响应于用户操作,输入/输出装置1400基于用户操作提供或采集到的信息可以在处理单元1100的控制下被存储在存储装置1300和/或处理单元1100中。通常,输入/输出装置1400提供的敏感信息(例如指纹信息、财产数据等)可以在处理单元1100建立的tee中被处理。

输入/输出装置1400可以包括显示设备,以显示用户需要了解的信息,显示设备例如为阴极射线管(cathoderaytube,简称crt)显示器、液晶显示器(liquidcrystaldisplay,简称lcd)或有机发光二极管(organiclight-emittingdiode,简称oled)阵列显示器等。在一些实施例中,输入/输出装置1400可以包括触控面板等输入设备,用于将用户操作对应的信息经系统总线1200传送给处理单元1100和/或相应的协处理器,使得处理单元1100和/或协处理器能够对用户操作做出响应。在一些实施例中,输入/输出装置1400可以包括采集设备,采集设备可以耦合到系统总线1200以传送有关图像/声音等可被采集的信息相关的指令和数据,采集设备例如为麦克风和/或用于采集图像的摄像机或照相机等设备。

电子设备1000可以包括集成在处理单元1100内或经系统总线1200与处理单元1100耦接的一个或多个接口1500,例如网络接口等。电子设备1000经由网络接口和相应的通信模块可以访问网络,网络例如为局域网(lan)、广域网(wan)、城域网(man)、个人区域网络(pan)、蓝牙、云网络、移动网络(例如长期演进longtermevolution,lte)网络、3g网络、4g网络或5g网络等)、内联网、因特网等。网络接口可以包括具有至少一个天线的无线网络接口和/或经由网络电缆通信的有线网络接口,网络电缆可以是以太网电缆、同轴电缆、光纤电缆、串行电缆或并行电缆。

网络接口例如可以根据ieee802.11b和/或802.11g标准提供对lan的访问,也可以根据蓝牙标准提供对个人局域网络的访问,也可以支持其他无线网络接口和/或协议,包括现有的通信标准和未来的通信标准。网络接口还可以利用时分多址(tdmi)协议、全球移动通信系统(gsm)协议、码分多址(cdma)协议和/或其他类型的无线通信协议等。

需要说明的是,上文以及图1仅仅用于对电子设备1000进行示例性的描述,而不用于限制电子设备1000的具体实现方式。电子设备1000还可以包括其它组成部分,例如数据处理单元等;上文描述的电子设备1000中的各个部分也可以在实际应用中适当被省略。

作为示例,图1示出的电子设备1000例如为图2示出的冰箱1000’。在图2提供的示例中,输入/输出装置1400例如包括显示触摸屏、图像采集装置等,其中图像采集装置可以获得用户的面部图像,处理单元1100可以基于图像采集装置获得的图像数据运行面部识别程序,并基于面部识别结果运行推送程序,以向显示触摸屏推送与当前用户的历史记录相关的信息(例如包括经常购买的食材以及相关购买链接等)。用户可以通过操作显示触摸屏获取网络3000提供的信息,也可以通过操作移动终端设备2000(例如为智能手机)直接对冰箱1000’中的处理单元1100进行配置或经过网络3000对冰箱1000’中的处理单元1100进行配置,还可以查看处理单元1100返回至移动终端设备2000的信息。

在图2的示例中,处理单元1100还可以运行刷脸支付程序,以根据用户提供的面部图像数据完成线上支付流程。

在图2的示例中,在通过移动终端设备2000控制冰箱1000’内置的处理单元1100的情况下,移动终端设备2000需要与处理单元1100配对并交换信息,该配对过程和信息交换过程有可能需要处理单元1100完成信息的加密解密,面部图像数据、购物习惯数据、财产账户数据等敏感信息也需要在处理单元1100内被安全保护,本发明实施例的处理单元1100可以通过设置多种安全区防止敏感信息和密码信息被不期望的程序窃取,从而提高了电子设备1000的安全性。

处理单元

本发明实施例的处理单元1100用于建立并控制一个或多个能够提供安全保护功能的tee。对于每个tee而言,未被其允许的指令无法访问该tee,且运行在该tee中的程序可以不被常规操作系统和/或其他tee干扰,从而运行在不同tee中的指令和/或数据可以在相应的tee中被独立保护以具有较高的安全性、私密性和完整性。

本发明实施例的处理单元1100例如是基于集成在片上系统或单芯片中的硬件架构和软件架构的协同工作而实现的微控制器。图3是本发明实施例的处理单元1100的示意性框图。

如图1和图3所示,处理单元1100可以包括用于处理数据和指令的处理器100,处理器100可以包括一个或多个处理器核10(图3示例性地示出了处理器核10a和处理器核10s)。每个处理器核10内可以集成有特定的指令集。在一些实施例中,指令集例如可以支持复杂指令集计算(complexinstructionsetcomputing,cisc)、精简指令集计算(reducedinstructionsetcomputing,risc)或基于超长指令字(verylonginstructionword,vliw)的计算。不同的处理器核10可以各自处理不同的指令集。在一些实施例中,某一个或多个处理器核10还可以是其他处理模块,例如为数字信号处理器(digitalsignalprocessor,dsp)等。

在一些实施例中,如图3所示,处理器100可以包括一个或多个高速缓存13,且根据不同架构,高速缓存13可以包括位于各个处理器核10之内和/或之外的单个或多级的高速缓存,也可以包括被处理器100中的各个部件(例如为不同的处理器核10)共享的高速缓存。另一方面,高速缓存13可以包括面向指令的指令高速缓存和面向数据的数据高速缓存。

每个处理器核10可以基于指令流水线执行指令。指令流水线是一种用于提高效率的指令处理方式,主要通过将一条指令的处理过程划分为取指令(fetch)、译码(decode)、执行(execute)、访存(memoryaccess)、引退(retire)等多级指令操作,每一级指令操作由专门的单元实现。如图3所示,为了处理指令,每个处理器核10可以包括由软硬件协同实现的指令流水线结构11,指令流水线结构11可以包括:用于获得指令的取指单元、用于将指令解码为可执行格式的译码单元、用于执行指令的执行单元、用于根据指令访问相应存储区的访存单元(也可以认为是一种执行单元)以及用于在指令执行完成后去除相关调度进程的引退单元等。在一些实施例中,指令流水线结构实现2级或以上的指令操作,例如可以仅通过取指单元和执行单元实现指令的处理,也可以通过取指单元、译码单元和执行单元等部分实现指令的处理。

在一些实施例中,每个处理器核10还可以包括寄存器堆12和核内互连结构14。寄存器堆12可以包括一个或多个物理寄存器,每个物理寄存器中存储的信息可以指示:一种或多种数据类型(例如,标量整数、标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点等等)、状态(例如为访问权限信息)、地址(例如用于取指令的指针或地址)等信息。在每个处理器核10内部,核内互连结构14可以实现该处理器核10内各部件之间的互连(例如,寄存器堆12可以经核内互连结构14向取指单元提供用于取指令的指针),还可以将处理器核10内各部件与该处理器核10外的总线结构300耦接。

需要说明的是,本公开仅用于对处理器100之一进行示例性的描述,且不用于限制处理器100的具体实现方式。处理器100还可以包括其它组成部分,例如数据处理器(digitalsignalprocessor,dsp)等;上文描述的处理器100中的各个部分也可以在实际应用中适当被省略。在一些实施例中,处理单元1100内还可以集成有其他未示出的处理器。

进一步的,如图3所示,处理单元1100还包括存储器200,用于存储数据信息和代码信息。存储器200可以包括随机访问存储器和只读存储器(readonlymemory,简称rom)等存储结构,其中,存储器200中的随机访问存储器可用于运行程序,例如包括非易失性随机访问存储器(non-voliaterandomaccessmemory,简称为nvram),也可以包括易失性的动态随机存取存储器(dynamicrandomaccessmemory,dram)和/或静态随机存取存储器(staticrandomaccessmemory,sram)等存储结构;存储器中的rom例如由快闪存储器(flashmemory)等结构实现,主要用于存储代码信息、指令信息。作为示例,处理器100可以访问rom以获得代码信息和指令信息,并通过访问随机访问存储器实现数据的存储和/或读写,从而处理器100能够基于存储器200提供的存储空间实现程序的运行。

在一些可选的实施例中,存储器200还可以包括mmio(memory-mappedi/o,存储映射输入/输出接口),用于与处理单元1100外部的存储装置耦接,以使存储装置能够与存储器200共同提供可被处理器100访问的存储空间。

为方便说明,本公开将能够被处理器100访问的存储空间统称为处理单元1100的存储单元。正如上文所述,处理单元1100的存储单元在物理结构上可以是由集成在处理单元内的存储器200和/或经由mmio与处理单元1100耦接的存储装置实现的。在一些实施例中,处理单元1100的存储单元对应的各个存储地址可以属于同一个寻址空间,以供处理器100访问。

在本发明实施例中,存储单元可以包括相互隔离的多个安全区20(可以被称为enclave,secureenclave,也可称为分区、可信区、飞地、围圈或安全环境),每个安全区相当于一个独立的可信执行环境tee。需要说明的是,虽然图1和3中示出的各个安全区绘制在存储器200内部,然而正如上文所述,在一些可选的实施例中,某个或某些安全区20的至少部分还有可能是由耦接于mmio的存储装置1300实现的。

每个安全区20所基于的物理结构可以由存储单元中的任一种或多种存储结构实现。例如,用于运行某一程序的安全区20可以包括:存储单元中由rom提供的、用于存储该程序的代码的第一存储区、存储单元中由nvram提供的、用于存储该程序所需数据的第二存储区和/或由mmio映射的第三存储区等。

如图3所示,处理单元1100还包括总线结构300,使得存储器200可以经由总线结构300与处理器100实现通信。总线结构300例如为soc总线,可以基于axi(advancedextensibleinterface)等总线协议实现。

作为处理单元1100的一种示例,图3中示出的处理器核10a可以基于risc-v指令集架构实现,主要用于执行应用程序的代码;图3示出的处理器核10s可以基于各种指令集实现,而不限于risc-v指令集,主要用于管理安全信息,例如执行密码服务相关的代码。然而本发明实施例不限于此,处理单元1100中集成的用于执行应用程序的每个处理器核10a可以是基于其它能够通过存储保护机制建立并控制多个tee的指令集架构实现的,且处理单元1100可以包括一个或多个处理器核10a,也可以包括一个或多个处理器核10s,处理器核10a和处理器核10s也可能在同一个处理器核内实现。

为方便说明和区分,后文将处理器核10a称为应用处理器核10a、处理器核10s称为安全处理器核10s。应用处理器核10a和安全处理器核10s可以支持相同的指令集(例如为risc-v指令集),也可以支持不相同的指令集(例如应用处理器核10a支持risc-v指令集,安全处理器核10s支持其他指令集)。

应用处理器核10a、安全处理器核10s可以分别与总线结构300耦接,但应用处理器核10a可能不被允许经由总线结构300获取安全处理器核10s提供的信息。为了实现应用处理器核10a与安全处理器核10s之间的双向通信,在一些实施例中,应用处理器核10a可以经由“邮箱(mailbox)”机制与安全处理器核10s实现通信,该“邮箱”机制可以利用处理单元1100的存储单元中设置一个共享区(例如包括用于接收信息的收件箱和由于发送信息的发件箱),该共享区可以被应用处理器核10a与安全处理器核10s访问,从而实现应用处理器核10a与安全处理器核10s之间的消息请求和响应过程。

例如,处理单元1100中的存储单元可以包括第一共享区mem1和第二共享区mem2,其中:第一共享区mem1可以被应用处理器核10a写入数据,且可以被安全处理器核10s读取;第二共享区mem2可以被安全处理器核10s写入数据,且可以被应用处理器核10a读取。对于应用处理器核10a来说,第一共享区mem1相当于发件箱,第二共享区mem2相当于收件箱,应用处理器核10a可以将需要向安全处理器核10s传输的信息写入第一共享区mem1中,且可以从第二共享区mem2读取信息;对于安全处理器核10s来说,第二共享区mem1相当于发件箱,第一共享区mem1相当于收件箱,安全处理器核10s可以将需要向应用处理器核10a传输的信息写入第二共享区mem2中,且可以从第一共享区mem1读取信息。因此,基于第一共享区mem1和第二共享区mem2,应用处理器核10a与安全处理器核10s可以实现双向通信。

在处理单元1100内,还可以基于安全处理器核10s建立密钥管理系统(keymanagementsystem,简称为kms),是用于生成、分发和管理电子设备中的各种设备和应用程序的密码信息的一种集成系统,是密码服务实现的专用环境,可以从硬件层面确保密码服务能够平稳、安全地运行。密钥管理系统的功能例如包括利用密钥、证书、配置文件等对敏感信息进行加密,以保护敏感信息的安全。

图4示出本发明实施例的密钥管理系统的示意性框图。

除了安全处理器核10s之外,如图3和图4所示,密钥管理系统还可以包括集成在处理单元1100内的若干个用于提供或处理密码信息的密钥管理组件700,密钥管理组件包括但不限于:kme(keymanagementengine,密钥管理引擎)单元、pke(publickeyencryption,公共密钥加密)单元、sme(symmetricencryption,对称密钥加密)单元、hash(散列函数)算法单元、trng(truerandomnumbergenerator,随机数发生器)、非易失性存储器nvm等单元中的一个或多个。其中,密钥管理系统中的非易失性存储器nvm可以由efuse(一种一次性可编程存储器)及其控制器实现,也可以由一次性可编程只读存储器(onetimeprogrammableread-onlymemory,简称otprom)或者非易失性随机访问存储器等存储结构实现。

为了保证密钥管理系统的安全性,密钥管理系统内的各个密钥管理组件700不能被应用处理器核10a访问,而仅能被安全处理器10s访问,安全处理器核10s例如可以控制trng产生真随机数,并根据该真随机数和各种密码算法产生/存储各种密码信息(私钥、公钥、证书、签名文件等),也可以提供加密解密运算等各种密码服务以生成加密/解密结果。

在一些实施例中,如图4所示,为了增强密钥管理系统的安全性,可以在安全管理系统内设置与总线结构300隔离的kms总线400,以在密钥管理系统内部实现证书信息、验证信息、签名信息、随机数信息等密钥相关信息的传输。各个密钥管理组件700可以分别与kms总线400耦接以与安全处理器核10s进行通信。

参见图3示出的实施例,处理单元1100还包括直接存储访问(directmemoryaccess,简称为dma)控制器500,用于直接访问存储单元以获得其中存储的信息(数据和/或代码),并管理电子设备内部的数据传输。处理器100可以对dma控制器500进行初始化,使得dma控制器500能够响应于dma传输请求以获得总线结构300的控制权,随后dma控制器500可以通过发起读写命令等方式建立dma传输请求所需的信息传输路径,使得各个处理器核10、存储单元等处理单元1100内的各部分之间在权限允许的前提下可以实现信息传输,并在完成信息传输后将总线结构的控制权归还给处理器100,并等待下一次初始化。

处理单元1100还可以包括:用于将总线结构300与电子设备的系统总线1200桥接的桥接器、电源管理模块(powermanagementunit,简称pmu)600以及用于与磁盘、传感器等外围装置连接的接口模块等,还可以包括各种模拟部件(例如模数转换器、数控放大器、锁相环、发射/接收模块、射频模块等)、各种数字部件(例如为图像处理器、音频处理器和加速器等)等上文描述或未描述的硬件部件。

图5示出本发明实施例的处理单元的软件架构的示意性框图。

基于上述硬件架构,操作系统可以在本发明实施例提供的处理单元1100上执行。操作系统可用于:控制、管理和安排对电子设备中的硬件资源(包括存储器、处理器、存储装置和/或其他外部设备等)的访问;面向各种应用程序提供相应的接口(例如为系统调用接口,systemcallinterface),使得用户和/或应用程序可以经由相应的接口对操作系统发起访问,以请求操作系统提供相应的服务支持(例如实现对硬件架构的控制),使得处理单元1100能够基于各种应用程序执行不同的任务。

应用程序主要用于根据用户操作执行设定的任务,可以被理解为由一个或多个计算机程序组成的软件,即:应用程序可以包括能够被处理单元1100执行的一系列指令(对应于应用程序的代码)以及相关数据的集合。应用程序例如可以包括用于实现财产交易的支付类应用程序、用于根据用户的个人信息提供相应服务的服务类应用程序、游戏类应用程序、媒体类应用程序以及用于驱动硬件资源的底层驱动程序等,其中支付类应用和服务类应用等涉及到用户隐私信息的应用程序所包括数据和代码需要被保护以防止恶意软件盗用用户的隐私信息/敏感信息。

一些应用程序可以包括主应用程序(hostapplication)和补充应用程序(也可以叫小应用程序,applet)。主应用程序的可执行代码和相关数据例如存储在处理单元1100内和/或可被处理单元1100读取的存储空间内。补充应用程序例如为插件程序或附件软件,用于扩展和/或补充相应的主应用程序的功能和/或信息;补充应用程序提供的代码模块(例如由源代码、目标代码等实现的模块)需要与主应用程序联合执行。在本公开的描述中,将主应用程序和补充应用程序统一表述为应用程序,然而应当理解,主应用程序和补充应用程序可以分别被指定在处理单元1100的存储单元中相互隔离的存储区中运行,也可以被指定在处理单元1100的存储单元中的同一个存储区或互不隔离的两个存储区中运行。

如前文所述,由于指令和信息的处理过程由处理器100实现,因此用户可以通过使用应用程序控制操作系统,使得处理器100能够在操作系统的控制下从存储单元中获取相应的指令和信息,并完成指令和信息的处理,处理结果同样可以被存入存储单元中。

在本发明实施例中,处理器100所基于的指令集(例如risc-v指令集)架构可以定义多种权限模式(也可称为特权模式,privilegedmode),至少包括:用户模式(usermode,可简称为u-mode)和机器模式(machinemode,可简称为m-mode,也可以叫内核模式)。

在一些可选的实施例中,处理单元1100还可以包括监管模式(supervisormode,可简称为s-mode)和管理模式(hypervisormode,可简称为h-mode)等模式,以根据不同场景实现不同的功能。

在一些实施例中,处理单元1100例如包括模式状态寄存器(例如位于寄存器堆12中,也可以由位于处理单元内的其他寄存器实现),用于提供不同权限模式对应的操作码,处理单元1100可以通过查看这些操作码判断当前指令是否可以在当前的权限模式下被执行,从而实现不同权限模式下的任务处理、任务保护、硬件的抽象和虚拟化等功能。

为了防止不可信的应用程序获得敏感信息等现象的发生,各种应用程序仅能够在受保护的用户模式下运行,从而不会影响操作系统的运行,也不具有影响机器模式的各种配置的权限;操作系统可以管理和控制应用程序和其它各种电子设备内的软硬件资源,操作系统至少在应用模式下运行,在一些可选的实施例中操作系统也可以在机器模式下运行。

机器模式可以理解为是一种可信模式。在机器模式下,处理单元1100可以在存储单元的指定存储区(不同于存储操作系统的存储区)内运行受信任的安全监控系统(securemonitor,简称为sm),安全监控系统的代码通常被默认为可信代码(可存储在存储器内的只读存储器中),可以受信任地访问操作系统等电子设备内的各个部分,从而能够对存储单元、输入/输出接口以及一些电子设备的启动、配置过程所必需的底层功能进行控制。由于应用程序通常包括不可信代码,因此应用程序不能在机器模式下运行,且操作系统和应用程序均无权访问安全监控系统。

在本发明实施例中,安全监控系统可以实现物理存储保护(physicalmemoryprotection,简称为pmp)机制,用于在机器模式下指定用户模式可以访问的存储地址空间,并授予或拒绝读权限、写权限和执行权限等权限。

基于pmp机制,在机器模式下,安全监控系统可以为多个相互隔离的安全区20(如图1和3所示)配置相应的存储地址空间。应用程序的全部或部分可以被加载至相应的一个安全区20内,以与其他应用程序和/或信息隔离。当处理器100需要运行某一应用程序时,可以通过一种或多种授权方式(例如验证、签名等)获得相应的安全区20内存储的代码和/或数据,并将生成的信息返回至该安全区20内,实现应用程序的独立运行。

在一些实施例中,安全监控系统还用于实现各个安全区20内运行的程序之间的进程切换,也可以用于实现各个安全区20内运行的程序与其他程序(例如操作系统)之间的进程切换。如图5所示,在安全监控系统的控制下,处理器的控制权在不同安全区之间可能发生转移,图5中的虚线示意性地示出了处理器的控制权转移路径。例如,当某一安全区内的代码被应用处理器核运行完毕后,该安全区可以将控制权交给安全监控系统,安全监控系统再将控制权交给另一个安全区内运行的代码,以开始运行另一应用程序。

由此可见,在用户模式下,即使应用程序的可信程度不可控,本发明实施例的处理单元1100可以通过设置安全区实现各种应用程序的独立运行,从而限制每个应用程序只能访问存储单元中指定的存储空间,被限定在指定的存储空间内的应用程序提供的敏感信息也可以被保护。因此,本发明实施例的处理单元1100可以在软硬件上支持存储单元中不同存储区的隔离,使得多个应用程序可以在各自独立的存储区中并发执行,且各个应用程序被独立保护、互不干扰,提高了用户模式的安全性。

安全区

图6示出本发明实施例的处理单元的部分软件架构的示意图。

如图3、5和图6所示,本发明实施例的安全监控系统在存储单元的存储地址空间中划分出不同功能的安全区20,包括但不限于:面向应用程序的多个应用安全区(appenclave,ae)以及面向安全信息的非应用安全区。基于存储的安全信息的不同内容,非应用安全区可以进一步包括相互独立的密码安全区(cryptoenclave,ce)也可译为加密安全区或命名为其他名称)ce和/或运行时安全区(runtimeenclave,re)。需要说明的是,本发明实施例不限制各个安全区的命名,即,应用安全区、密码安全区、运行时安全区也可以被命名为其他名称。

在一些实施例中,应用处理器核10a可以访问应用安全区ae,以在各个应用安全区ae内安全运行相应的应用程序;安全处理器核10s可以访问非应用安全区,以在非应用安全区内运行安全相关(例如密码服务)的指定程序。

作为示例,在本实施例的描述中,安全监控系统划分出的多个安全区包括多个应用安全区ae、密码安全区ce以及运行时安全区re。然而需要说明的是,本发明实施例不限于此示例:在本发明的一些实施例中,存储单元可以包括一个或多个密码安全区ce;在一些实施例中,存储单元可以包括一个或多个运行时安全区re;在一些实施例中,存储单元可以仅包括一个或多个密码安全区ce而不包括运行时安全区re,也可以仅包括一个或多个运行时安全区re而不包括密码安全区ce;在一些实施例中,每个非应用安全区可以不被进一步划分为密码安全区和/或运行时安全区,而用于统一存储多种类型的安全信息。

下面分别对本发明实施例定义的不同的安全区进行说明。

应用安全区ae:用于封装相应的应用程序(通常被指定为涉及敏感信息的应用程序和/或不可信的应用程序),从而在用户模式下将该应用程序与其他程序/信息隔离。应用安全区ae例如存储该应用程序的可执行代码以及可由该应用程序获取或生成的数据。安全监控系统可以为不同的应用程序(可能是主应用程序和/或补充应用程序的全部或部分)划分出不同且相互隔离的应用安全区ae。

密码安全区ce:可用于与上述的密钥管理系统kms实现交互,负责向密钥管理系统馈送信息和/或从密钥管理系统中收集密码信息(例如读取证书的私钥等),从而使密码信息受到保护。

在一些实施例中,存储于密码安全区ce内的指定程序可以是面向密码服务的密码相关程序,例如密码服务接口(cryptographicserviceinterface,简称为csi)程序的代码和/或用于驱动密钥管理系统的密钥管理系统驱动程序(kmsdriver)的代码,当存储在应用安全区ae中的应用程序app1需要调用kms中的函数(例如sme单元提供的对称密钥加密算法)时,安全监视系统sm将处理器100的控制权由应用处理器核10a转移至安全处理器核10s,使得安全处理器核10s访问存储单元中的密码安全区ce以执行所需的函数,此时,安全处理器核10s可以访问用于运行应用程序app1的应用安全区ae以获取必要的信息,并对这些信息执行加密解密等算法;算法完成后,安全处理器核10s将处理结果存储至应用程序app1对应的应用安全区ae内,随后安全监视系统sm将处理器100的控制权切换回应用处理器核10a,使得应用处理器核10a能够基于处理结果继续在应用安全区ae中运行该应用程序app1。从而操作系统可以通过调用存储在密码安全区ce中的程序对密钥管理系统进行驱动和/或调用,以获得密钥管理系统提供的密码信息。

运行时安全区re:可用于存储能够被不同应用程序调用的共享信息(例如共享程序和/或通用驱动程序),以节省存储空间。如图6所示,共享信息例如包括共享库(sharedlibrary)和/或共享驱动程序等可调用程序。在一些实施例中,共享库例如包括公共的运行时库(runtimelibrary),用于支持操作系统的开发和运行(例如为各种应用程序提供可以调用的库函数、初始化代码、错误处理代码和/或退出代码),从而操作系统可以通过调用运行时安全区re内存储的共享库来运行不同的应用程序,而无需在存储单元中重复存储相同的信息,从而节省了存储空间。在一些实施例中,共享驱动程序例如包括运行时驱动程序(commonruntimedriver),该运行时驱动程序可以被操作系统调用,以对不同应用程序的初始化、错误处理、退出等程序进行驱动和配置。

在一些可选的实施例中,处理器100中的各个处理器核10可以支持面向各个安全区的扩展指令集,该扩展指令集例如包括面向各个安全区的操作指令和/或面向各个安全区的进程切换指令等用于执行各个安全区的创建、配置等过程的指令。

为了保证处理单元1100的安全性能,安全监控系统可以对不同安全区设置(授予/拒绝)相应的权限。例如,在一些实施例中,存储在应用安全区ae中的应用程序可以请求调用密码安全区ce和运行时安全区re中的信息,但无法对密码安全区ce和运行时安全区re发起读写请求,从而保证非应用安全区内存储的信息被高度保密、且保持完整。

图7示出本发明实施例的处理单元中各部分的权限设置示意图。

下面将基于图7示例性地描述安全监控系统对安全区的权限设置方案,然而本发明实施例不限于此,安全监控系统还可以采用其他方案实现不同安全区之间的相互隔离,并保证存储在各个安全区内的信息受到保护。

作为示例,可被安全监控系统配置的权限信息可以指示访问权限(至少包括读写权限和执行权限)。各安全区的权限信息可以存储在相应的权限寄存器(例如由处理器核10的寄存器堆12实现,也可以由位于处理单元内的其他寄存器实现)或存储单元中指定的区域中。

应用安全区ae的权限信息被配置以不具有对自身之外的应用安全区ae的访问权限,即:操作系统不能基于任一应用安全区ae内存储的应用程序对其他应用安全区ae进行读操作(读取信息)、写操作(写入/修改信息)和执行操作(执行/调用可执行代码),从而不同的应用安全区ae之间可以相互隔离且互不影响。作为示例,图7示出的应用安全区ae1内存储的应用程序不具有对应用安全区ae2的访问权限,且应用安全区ae2内存储的应用程序也不具有对应用安全区ae1的访问权限。

在一些实施例中,应用安全区ae的权限信息可以被配置以具有对非应用安全区(可以是密码安全区ce,也可以是运行时安全区re)的执行权限,但不具有对非应用安全区的读写权限,从而保证了非应用安全区内存储的信息具有保密性和完整性。

在一些实施例中,非应用安全区(可以是密码安全区ce,也可以是运行时安全区re)的权限信息可以被配置以具有对应用安全区ae的读写权限和执行权限。

例如,当应用安全区ae内运行的应用程序需要加密/解密服务时,不能直接对非应用安全区内的信息进行读操作、写操作,而是通过可信的安全监控系统将控制权转交给安全处理器核,使得安全处理器核可基于该应用程序的请求在相应的非应用安全区(例如上述密码安全区ce)内执行加密/解密服务程序,且加密/解密服务程序可以访问应用安全区ae以读取所需的数据和/或执行所需的代码,也可以将加密/解密结果写入相应的应用安全区ae;当加密/解密结果存储在应用安全区ae内之后,安全监控系统可以将控制权交还给应用处理器核,从而在应用安全区ae中,应用程序可以基于加密/解密结果继续运行。

在一些实施例中,非应用安全区的权限信息可以被配置以具有对自身之外的非应用安全区的执行权限,且不具有对自身之外的非应用安全区的读写权限。例如,运行在密码安全区ce内存储的可执行代码(例如对应kms驱动程序)可以对运行时安全区re内存储的可执行代码(例如对应共享库中的某一函数)进行调用、执行,但不能进行读操作和写操作,从而保证了运行时安全区re内存储的信息的保密性和完整性。

在另一些安全性更高的实施例中,用于提供密码相关服务的密码安全区ce不能被其他任一安全区(例如上文所述的运行时安全区)访问(读写、执行、调用),从而保证了密码相关信息的安全性。在这些安全性更高的实施例中,运行时安全区re不能执行密码安全区ce提供的程序。

在一些实施例中,应用安全区ae的权限信息可以被配置以不具有对操作系统的访问权限,即:操作系统对应的存储区中存储的信息不能被应用安全区ae内存储的应用程序读取、写入、修改和执行,从而防止不可信的应用程序通过控制/修改操作系统而获取敏感信息,相当于实现了应用安全区ae与操作系统的单向隔离。

在一些实施例中,非应用安全区(可以是密码安全区ce,也可以是运行时安全区re)的权限信息可以被配置以具有对操作系统的读写权限和执行权限。由于非应用安全区内存储的内容不可被应用程序改写,因此非应用安全区内存储的内容具有较高的可信度,操作系统中的信息通常可以在安全条件下被非应用安全区内存储的可执行代码读取、写入、修改和执行。

在一些实施例中,每个安全区的权限信息可以均被配置以不具有对安全监控系统的访问权限,从而保证安全监控系统的高可信度以及高安全性。

得益于上述的pmp机制,在可选的实施例中,各个安全区的存储地址范围可以作为项列表被存储在存储单元的设定区域和/或指定的寄存器(例如由处理器核10的寄存器堆实现,也可以由位于处理单元内的其他寄存器实现)中,项列表仅能被安全监控系统访问,安全监控系统可以通过配置项列表中的每个表项(entry)实现对安全区的地址分配。

每个表项可以具有设定的数据结构。在一些可选的实施例中,每个表项除了包括用于指示相应安全区的存储地址范围的地址标签(可以存储在地址寄存器中),还可以包括用于指示该安全区的类别信息(用于指示该安全区为应用安全区、非应用安全区、密码安全区或运行时安全区)的类别标签和/或用于指示上述的权限信息的权限标签等。在一些实施例中,每个表项还可以用于指示该安全区的编号等辅助信息。

每个表项可以被存放在存储单元中指定的一个保护区域中,并可以被操作系统复制到处理器100内的寄存器(例如由处理器核10的寄存器堆实现,也可以由位于处理单元内的其他寄存器实现)中。

基于pmp机制,操作系统可以在物理层面保护各个安全区。例如,若某一访问请求(例如由dma控制器等发起)不具有访问某安全区的权限,则操作系统将该访问请求示为引用了不存在的存储地址,使得该访问请求不能被执行。又例如,当用户模式下的处理单元1100尝试基于某一访问地址取指令或执行加载/存储操作时,操作系统可以将该访问地址与项列表中的各个表项指示的存储地址范围进行比较,并根据比较结果决定该访问地址是否被允许,若是,则处理单元1100可以继续基于该访问地址执行相应的操作,若否,则会引发访问异常。

在一些实施例中,各个安全区可以分别被启用或禁用。各个安全区在被启用时,具体描述可以参见本发明的其他实施例,在此不再赘述;当某个安全区被禁用时,该安全区内运行的程序将无法被处理器执行,也无法被其他程序调用和读写。

在进一步的实施例中,各个安全区还可以被部分禁用,以禁止该安全区内的部分信息被访问、调用或执行。例如,当用于运行面部识别程序的应用安全区被部分禁用时,该面部识别程序仍然可以根据接收到的面部图像数据生成面部识别结果,但该面部识别结果无法被用于执行后续操作(例如运行时安全区和/或密码安全区中运行的程序无法获取该面部识别结果)。

作为示例,基于上文的实施例,各个安全区对应的表项可以包括使能标签,该使能标签可以被安全监控系统配置以设定该安全区是否被启用、全部禁用或部分禁用,使能标签指示该安全区处于启用状态、禁用状态或部分禁用状态。

在一些实施例中,某个(或某些)应用安全区内运行的应用程序可以将其权限信息共享给指定程序,使得该指定程序可以具有对该应用安全区的临时访问权限。

例如,当运行于某一应用安全区内的风险检测程序检测到当前运行环境的风险系数较高时,该风险检测程序可以禁用或部分禁用涉及到敏感信息的安全区(例如用于运行支付类应用程序),以降低敏感信息被泄露的可能性;当风险检测程序检测到当前运行环境的风险系数处于允许范围内时,可以重新启用各个安全区,以使处理单元正常运行;当风险检测程序检测到当前运行环境的风险系数低于某设定值时,可以认定处理单元的运行环境非常安全,一些保密性和敏感度相对较低的应用程序app_h可以将其权限信息共享给指定的应用程序app_s(运行在应用安全区ae_s),使得被指定的应用程序app_s可以临时访问应用程序app_h所在的应用安全区ae_h,从而在特定时间段内允许应用安全区app_s访问自身之外的应用安全区app_h。此示例仅用于举例说明上述实施例的一种可能的实现,而不用于限定本发明实施例。

安全启动方法

在处理单元1100启动后(例如在开机、上电或重启等情景下)安全启动(secureboot)程序通常是需要被处理器100执行的第一段程序。为了保证启动后处理单元1100能正确且安全地执行各种程序和指令,可以采用安全启动程序控制处理单元1100中各个软硬件部分的启动顺序,并可以对各个软硬件部分进行校验,从而无法通过校验的非法或恶意的程序被拒绝或不能启动,保证电子设备的安全。

图8示出本发明实施例的安全启动方法的流程示意图。该安全启动方法例如是基于本发明实施例启示下的任一种处理单元和/或电子设备实现的。

步骤s101:安全启动程序可以优先启用安全监控系统。安全启动程序遵循的启动顺序信息可能以列表的形式存储在存储单元的一个被保护的区域中,该启动顺序信息可以被安全启动程序或安全监控系统复制到处理器100内相应的启动顺序寄存器中,以方便调用。

步骤s102:安全监控系统开始运行后,可以基于pmp机制在存储地址范围内建立密码安全区,将安全信息写入密码安全区内,并配置密码安全区对应的存储地址范围、权限信息和/或类别信息,从而完成密码安全区的设置;运行时安全区也可以在步骤s102中被配置。

在一些实施例中,安全监控系统例如可以存储在非易失性存储装置(例如为外存)中的驱动程序、库函数等安全信息写入相应的密码安全区ce和运行时安全区re,在一些实施例中,密码安全区ce可以与运行时安全区re同步建立;在另一些实施例中,密码安全区ce可以在运行时安全区re之前建立,或在运行时安全区re被创建之后建立。

在一些实施例中,完成步骤s102之后,密钥管理系统可以被存储在非应用安全区内的密钥管理系统的驱动程序驱动,从而能够开始密码管理服务。

步骤s103:安全监控系统开始运行后,可以基于pmp机制在存储地址范围内建立多个应用安全区ae,将指定的应用程序写入相应的应用安全区ae内,并配置应用安全区对应的存储地址范围、权限信息和/或类别信息,从而完成应用安全区ae的设置。

在一些实施例中,安全监控系统例如可以存储在非易失性存储装置(例如为外存)中的应用程序对应的全部/部分的可执行代码和数据写入相应的应用安全区ae中,以将各种应用程序加载至存储单元中相应的安全区内。在一些实施例中,步骤s103可能与步骤s102同时执行,也可以在步骤s102之后执行,还可以在步骤s102之前执行,本申请对此不作限制。

在一些实施例中,多个应用安全区ae内加载的应用程序可能需要在安全启动过程中被默认启动,这些需要开机启动的应用程序和其他软硬件部件可以形成启动链(bootchain),启动链中的各个启动项的启动过程可以受控于本发明实施例提供的安全启动程序。

步骤s104:安全启动程序按照启动顺序信息指示的启动顺序定位当前需要启动的应用程序,并在运行每个应用程序之前分别进行校验,以保证该应用程序能够安全运行。

在一些实施例中,启动链中的每个启动项均需要被安全启动程序验证(measure)和/或签名(signed)。例如,安全启动程序可以基于哈希(hash)算法对待校验的启动项进行计算以获得校验值,并将该校验值与期望的哈希值进行比对,若二者不一致,则该启动项或整个电子设备启动失败,若二者一致,则可以表征该启动项能够安全运行。

由于安全启动程序需要具有较高的安全性,因此,在一些实施例中,安全启动程序可以被存放在处理单元内集成的只读存储装置或存储器200中的只读存储器内,以防止安全启动程序被修改、保证电子设备和处理单元能够被安全启动。

在一些传统方案(例如softwareguardextensions技术,简称为sgx技术,是一种intel推出的程序安全执行框架)中,由于独立封装的安全芯片具有良好的硬件防护性能和安全功能,因此物联网设备的至少部分通常与一个独立封装的安全芯片绑定(安全芯片例如嵌入在计算机设备/服务器内),以实现安全保护方案。安全芯片一般需要通过串行总线与应用程序在在印刷电路板(printedcircuitboard,pcb)上实现通信,虽然能够让应用程序与安全芯片内的代码和数据隔离,但印刷电路板层面的设计难度和复杂度较高、成本较大。与此相比,本发明实施例在处理单元内设置多个安全区(例如为图3示出的多个应用安全区ae、密码安全区ce和/或运行时安全区re),用于实现安全保护功能所需的可信执行环境,从而应用程序可以在处理单元内与可信执行环境实现通信,降低了设计难度、复杂度和成本,也提升了安全性。

在一些传统方案(例如arm公司的trustzone技术)中,电子设备被划分为两个部分:安全部分(secureworld)和正常部分(normalworld),其中所有被信任的应用程序在安全部分中运行,每个运行在整块的安全部分中的应用程序都有着被攻击的可能性,因此安全部分内运行的应用程序越多、被攻击的风险就越大,且运行在安全部分内的不同应用程序也会相互干扰。与此相比,而本发明实施例中需要受保护/被信任的各个应用程序分别在相互隔离的不同安全区内运行,且增设了面向安全信息的非应用安全区,因此能够保证各个应用程序独立地被安全保护、密钥等安全信息被加强保护,增强了安全性。例如,在本发明实施例的处理单元中,应用程序app1和应用程序app2可以分别在相互隔离的应用安全区ae1和应用安全区ae2中运行,因此应用程序app1和应用程序app2不会互相干扰,且应用安全区ae1的被攻击风险主要来源于应用程序app1、应用安全区ae2的被攻击风险主要俩源于应用程序app2,相比于采用整体的安全部分的trustzone技术而言,能够有效地降低各个安全区被攻击的风险系数。

一些传统方案(例如berkeley提出的keystone技术)设置了3种模式(用户模式、机器模式和管理模式),以基于独立封装的安全芯片对敏感信息进行安全保护,然而这些传统方案面向的是服务器等高性能的电子设备,设计复杂、成本较高,不适合应用于轻量级的电子设备中。与此相比,本发明实施例能更好地适用于轻量级的电子设备,最少可以仅设置两种模式(用户模式和机器模式),即可在处理单元所在的芯片或片上系统内设置应用安全区和非应用的安全区,从而简化了设计、节约了成本。并且,在一些优选方案中,本发明实施例能够利用非应用安全区实现更多的优化(例如设置共享库节约存储空间和/或进一步提高密钥管理系统的安全性),从而能进一步降低成本和/或提升安全性能。例如,本发明实施例中的运行时安全区re内可以包括共享程序等共享信息,不同的应用程序均可以调用运行时安全区内re的共享信息,从而不需要在处理单元中重复地存储相同的共享信息,节省了存储空间、降低了成本。又例如,在一些具有高度安全性的实施例中,密码安全区ce用于提供运行密码相关程序所需的存储空间,且密码安全区ce内存储的信息不可被其他任何安全区(例如应用安全区和运行时安全区)读写甚至执行,从而保证了密码相关程序能够在高度安全的可信执行环境中运行而不会被安全性较低的程序窃取,相比于现有技术而言进一步提升了安全性能。

综上所述,相比于传统方案,本发明实施例提供的处理单元和电子设备可以在处理单元内基于多个应用安全区、以及密码安全区和/或运行时安全区建立tee,从而为各种应用程序分配独立的应用安全区,使得处理单元可以独立地在应用安全区中运行相应的应用程序,因此能够保证各个应用程序独立地被安全保护,增强了安全性,防止应用程序涉及的敏感信息被窃取。

在一些实施例中,存储器中包括区别于应用安全区的密码安全区,处理单元可以在密码安全区内运行密码相关程序,以进一步保护密码信息不被非法获取,提升了处理单元的安全性。

在一些实施例中,存储器中包括区别于应用安全区的运行时安全区,处理器可以在运行时安全区内运行共享程序等共享资源,从而可以减少存储资源重复被占用的情况发生,节省了存储空间。

在一些可选的实施例中,本发明可以仅设置两种模式(用户模式和机器模式)就能够设置具有多种类别的所述多个安全区,从而简化了设计、节约了成本,能更好地适用于轻量级的处理单元和电子设备,而无需复杂的软硬件架构体系。

在一些实施例中,本发明的处理单元在片上系统内设置多个安全区和相应的处理器核,用于实现安全保护功能所需的可信执行环境,从而应用程序可以在芯片内与可信执行环境实现通信,降低了设计难度、复杂度和成本,也提升了安全性。

本申请还公开了一种用于实现上述各实施例的安全控制方法,具体步骤参见上述各实施例中的描述,在此不再赘述。

本申请还公开了一种包括存储于其上的计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在被处理器执行时使得所述处理器执行本文所述的各实施例的方法。

此外,本申请还公开了一种电子设备,该电子设备包括用于实现本文所述的各实施例的方法的装置。

需要领会,以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本说明书的实施例存在许多变型。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

应该理解,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于装置和系统实施例中描述的方法,所以描述的比较简单,相关之处参见其他实施例的部分说明即可。

应该理解,上述对本说明书特定实施例进行了描述。其它实施例在权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

应该理解,本文用单数形式描述或者在附图中仅显示一个的元件并不代表将该元件的数量限于一个。此外,本文中被描述或示出为分开的模块或元件可被组合为单个模块或元件,且本文中被描述或示出为单个的模块或元件可被拆分为多个模块或元件。

还应理解,本文采用的术语和表述方式只是用于描述,本说明书的一个或多个实施例并不应局限于这些术语和表述。使用这些术语和表述并不意味着排除任何示意和描述(或其中部分)的等效特征,应认识到可能存在的各种修改也应包含在权利要求范围内。其他修改、变化和替换也可能存在。相应的,权利要求应视为覆盖所有这些等效物。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1