CN113569245A - 处理装置、嵌入式系统、片上系统以及安全控制方法 - Google Patents
处理装置、嵌入式系统、片上系统以及安全控制方法 Download PDFInfo
- Publication number
- CN113569245A CN113569245A CN202010348113.6A CN202010348113A CN113569245A CN 113569245 A CN113569245 A CN 113569245A CN 202010348113 A CN202010348113 A CN 202010348113A CN 113569245 A CN113569245 A CN 113569245A
- Authority
- CN
- China
- Prior art keywords
- target
- source
- security
- security zone
- zone
- 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
Images
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/606—Protecting data by securing the transmission between two devices or processes
-
- 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
-
- 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/604—Tools and structures for managing or administering access control systems
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/73—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Automation & Control Theory (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
公开了一种处理装置、嵌入式系统、片上系统以及安全控制方法。处理装置包括:处理器,适于运行程序;存储器,与处理器耦接,适于提供相互隔离的多个安全区,多个安全区之一为源安全区,多个安全区中的另一个为目标安全区,源安全区和目标安全区分别用于提供相应程序的运行所需的存储空间,其中,处理装置还包括存储访问控制器,适于将源安全区内存储的指定数据传输至目标安全区。本公开实施例提供的处理装置、嵌入式系统、片上系统以及安全控制方法可以利用存储访问控制器实现源安全区至目标安全区的数据传输过程而不需要经由处理器完成数据中转,在保证安全性的前提下提高了安全区之间的数据传输效率。
Description
技术领域
本公开涉及处理器领域,更具体而言,涉及一种处理装置、嵌入式系统、片上系统以及安全控制方法。
背景技术
随着智能终端技术的不断发展,各种应用程序(Application,简称App)为用户带来了便利,随之而来的是用户对这些应用程序的安全性的关注。对于涉及到一些敏感信息(例如身份信息、财产信息等不希望被他人获取的信息)的应用程序,用户期望这些敏感信息能够得到有效的安全保护。
电子设备中可以建立相互隔离的多个可信执行环境(Trusted ExecutionEnvironment,TEE),用于为需要受保护的应用程序提供具有安全保护功能的执行环境,使得不同的应用程序可以运行在不同的可信执行环境中。
在一些场景下,某一TEE中运行的应用程序需要向另一TEE传输信息,传输效率将会限制电子设备的性能。例如,第一TEE中运行的第一应用程序用于实时采集传感器数据,第二TEE中运行的第二应用程序用于对传感器数据进行处理(例如编码、加密),因此当第一应用程序获得传感器数据后,需要不断地将存储在第一TEE内的传感器数据提供给第二TEE,从而第一TEE向第二TEE传输数据的效率将会限制电子设备的响应速度、数据处理能力等关键性能。
因此,希望可以在保证数据安全的前提下提高不同TEE之间的数据传输效率。
发明内容
有鉴于此,本公开实施例提供一种处理装置、嵌入式系统、片上系统以及安全控制方法,以解决以上问题。
为了达到这个目的,第一方面,本公开提供一种处理装置,包括:处理器,适于运行程序;存储器,与所述处理器耦接,适于提供相互隔离的多个安全区,所述多个安全区之一为源安全区,所述多个安全区中的另一个为目标安全区,所述源安全区和所述目标安全区分别用于提供相应程序的运行所需的存储空间,其中,所述处理装置还包括存储访问控制器,适于将所述源安全区内存储的指定数据传输至所述目标安全区。
在一些实施例中,所述多个安全区还包括不同于所述源安全区和所述目标安全区的运行时安全区,所述运行时安全区适于提供控制程序的运行所需的存储空间,由所述控制程序唯一配置所述存储器访问器以使所述存储器访问器将所述源安全区内存储的指定数据传输至所述目标安全区。
在一些实施例中,所述源安全区适于生成传输请求,将所述传输请求发送到所述运行时安全区,以便所述控制程序基于所述传输请求配置所述存储访问控制器将所述源安全区内存储的指定数据传输至所述目标安全区。
在一些实施例中,所述传输请求包含源地址信息;且在所述控制程序配置所述存储访问控制器将所述源安全区内存储的指定数据传输至所述目标安全区之前,所述控制程序检查所述源地址信息是否指向发出所述传输请求的所述源安全区之内,如是,则允许所述存储访问控制器将所述源安全区内存储的指定数据传输至所述目标安全区。
在一些实施例中,在所述控制程序配置所述存储访问控制器将所述源安全区内存储的指定数据传输至所述目标安全区之前,所述控制程序检查发出该传输请求的所述源安全区是否被禁用传输功能,如未被禁用,则允许所述存储访问控制器将所述源安全区内存储的指定数据传输至所述目标安全区。
在一些实施例中,所述传输请求包含待传输的数据量信息,其中,在所述存储访问控制器将所述源安全区内存储的指定数据传输至所述目标安全区之前,所述控制程序向所述目标安全区发送分配请求,所述分配请求包含所述数据量信息,以便所述目标安全区判断目标安全区中可分配的存储空间尺寸是否大于/等于分配请求指示的数据量信息,如果是,则发送传输确认应答到所述存储访问控制器,以便所述存储访问控制器将所述源安全区内存储的指定数据传输至所述目标安全区。
在一些实施例中,所述传输确认应答包括分配地址信息,所述分配地址信息指向所述目标安全区内允许接收所述指定数据的目标存储区,所述控制程序将所述分配地址信息提供至所述存储器访问器,以便于所述存储访问控制器将所述源安全区内存储的指定数据传输至所述目标安全区中的所述目标存储区。
在一些实施例中,所述存储访问控制器包括:源地址寄存器,适于存储所述源地址信息;目标地址寄存器,适于存储目标地址信息,所述目标地址信息指向所述目标安全区或所述目标安全区内用于接收所述指定数据的指定存储区;以及控制模块,适于将所述存储访问控制器提供的多个通道之一选定为用于将所述源安全区内存储的指定数据传输至所述目标安全区的安全通道。
在一些实施例中,所述存储访问控制器还包括:状态寄存器,适于提供每个所述通道的状态值,所述状态值用于指示相应的所述通道是否为可用状态,以便于所述控制模块基于所述状态值选择处于可用状态的所述通道作为所述安全通道。
第二方面,本公开提供一种嵌入式系统,包括本公开任一实施例的处理装置。本公开提供的嵌入式系统在安全区之间的数据传输过程中无需经由处理器中转待传输的指定数据,可以在保障数据安全的前提下实现高效、低功耗的数据传输,因此在低功耗、高安全性、高效性的嵌入式领域(例如物联网领域)具有广阔的应用前景。
第三方面,本公开提供一种片上系统,包括本公开任一实施例的处理装置。其中,处理装置内的存储器、处理器和存储访问控制器可以经由片上系统内的片上系统总线耦接并通信。
第四方面,本公开提供一种安全控制方法,包括:在存储器中配置相互隔离的多个安全区,所述多个安全区之一为源安全区,所述多个安全区中的另一个为目标安全区,所述源安全区和所述目标安全区分别用于提供相应程序的运行所需的存储空间;配置安全通道;经由所述安全通道将所述源安全区内存储的指定数据传输至所述目标安全区。
在一些实施例中,所述多个安全区还包括不同于所述源安全区和所述目标安全区的运行时安全区,所述安全控制方法还包括:在运行时安全区内运行控制程序,所述控制程序唯一配置所述安全通道,以便于所述安全通道将所述源安全区内存储的指定数据传输至所述目标安全区。
在一些实施例中,所述控制程序接收所述源安全区发出的传输请求,并基于所述传输请求配置所述安全通道,以便于所述安全通道将所述源安全区内存储的指定数据传输至所述目标安全区。
在一些实施例中,所述传输请求包含源地址信息;且在所述控制程序配置所述安全通道之前,所述控制程序检查所述源地址信息是否在发出所述传输请求的所述源安全区之内,如是,则允许将所述源安全区内存储的指定数据传输至所述目标安全区。
在一些实施例中,在所述控制程序配置所述安全通道之前,所述控制程序检查发出该传输请求的所述源安全区是否被禁用传输功能,如未被禁用,则允许将所述源安全区内存储的指定数据传输至所述目标安全区。
在一些实施例中,所述传输请求包含待传输的数据量信息,其中,在将所述源安全区内存储的指定数据传输至所述目标安全区之前,所述控制程序向所述目标安全区发送分配请求,所述分配请求包含所述数据量信息,以便所述目标安全区判断目标安全区中可分配的存储空间尺寸是否大于/等于分配请求指示的所述数据量信息,如果是,则发送传输确认应答,以便所述安全通道将所述源安全区内存储的指定数据传输至所述目标安全区。
在一些实施例中,所述传输确认应答包括分配地址信息,所述分配地址信息指向所述目标安全区内允许接收所述指定数据的目标存储区,所述控制程序基于所述分配地址信息配置所述安全通道,以便于所述安全通道将所述源安全区内存储的指定数据传输至所述目标安全区中的所述目标存储区。
在一些实施例中,配置所述安全通道的步骤包括:基于所述源地址信息和目标地址信息将多个通道之一选定为所述安全通道,以便于所述安全通道将所述源安全区内存储的指定数据传输至所述目标地址信息指向的所述目标安全区或所述目标安全区内用于接收所述指定数据的指定存储区。
相比于传统方案,本公开实施例提供的处理装置、嵌入式系统、片上系统以及安全控制方法可以基于多个安全区建立TEE,不同程序可以分别在不同的安全区内独立运行,且存储访问控制器可以被配置以便于将多个安全区中的源安全区内存储的指定数据传输至目标安全区,从而无需经由处理器中转待传输的指定数据。由于本公开提供的传输机制不需要处理器进行数据中转,因此相比于现有技术,本公开实施例能够提升安全区之间的通信效率,从而能够加快运行在安全区中的程序的响应速度、降低功耗,为处理装置、嵌入式系统和片上系统等电子设备的性能提升、用户体验的提升提供了有力支持。
在一些实施例中,多个安全区中的运行时安全区提供用于运行DMA控制程序的可信执行环境,从而进一步保证了源安全区和目标安全区之间的数据传输过程能够在保证数据安全的前提下高效率进行。
在一些实施例中,运行时安全区内运行的控制程序可以基于各种预设的控制规则控制源安全区和目标安全区之间的数据传输,从而实现对数据传输的灵活控制和优化。例如,运行时安全区内运行的控制程序的控制规则可以判断数据的传输方向是否合法,从而防止某安全区内的敏感信息错误地泄漏至其它安全区。
在一些实施例中,运行时安全区内运行的控制程序可以基于传输请求向需要写入的目标安全区发起分配请求,以确认该目标安全区是否有足够的存储空间接收需要传输的指定数据,从而能够防止该目标安全区中的有效数据被覆盖。
附图说明
通过参考以下附图对本公开实施例的描述,本公开的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1示出本公开实施例的电子设备的示意图框图;
图2示出本公开实施例的电子设备的一种示例性的应用场景示意图;
图3示出本公开实施例的处理装置1100的示意性框图;
图4是本公开一个实施例所应用的嵌入式系统4000的一种系统架构图;
图5是本公开一个实施例的嵌入式处理器401的结构图;
图6示出本公开实施例的处理装置的软件架构示意图;
图7示出本公开实施例的处理装置的又一示意性框图;
图8示出本公开实施例的存储访问控制器的示意性框图;
图9示出本公开实施例的安全控制方法的流程示意图;
图10示出本公开实施例的又一示例性的应用场景示意图。
具体实施方式
以下基于实施例对本公开进行描述,但是本公开并不仅仅限于这些实施例。在下文对本公开的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本公开。为了避免混淆本公开的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
在本文中使用以下术语。
微控制器:Microcontroller Unit,简称为MCU,通常是指基于处理器、存储器以及其他硬件模块实现的系统级芯片或片上系统(System on Chip,简称为SoC),微控制器可以运行操作系统(Operating System,简称为OS)和应用程序。在物联网领域、人工智能领域以及其它的一些领域中,微控制器因其高度集成化和可定制化等显著优势而被广泛应用。
存储器:可以集成在处理装置内,是用于存储信息的物理结构。存储器内存储的信息包括由数据信号表示的指令信息和/或数据信息,例如用于存放处理器提供的数据、应用程序的代码等,也可用于实现处理器与处理装置外的存储装置之间的信息交换。
应用程序:主要用于根据用户操作执行设定的任务,可以被理解为由一个或多个计算机程序组成的软件。应用程序包括代码和数据,其中应用程序的代码对应于能够被处理器执行的一系列指令。应用程序例如可以包括用于实现财产交易的支付类应用程序、用于根据用户的个人信息提供相应服务的服务类应用程序、游戏类应用程序、媒体类应用程序以及用于驱动硬件资源的驱动程序等,其中支付类应用和服务类应用等涉及到用户隐私信息的应用程序所包括数据和代码需要被保护以防止恶意软件盗用用户的隐私信息/敏感信息。
读写权限:读权限和写权限的统称;若某指定程序对某目标存储区具有读权限,则代表可以读取该目标存储区中的信息(代码和/或数据),使得该目标存储区的信息可以被加载至用于运行该指定程序的存储区中;若某指定程序对某目标存储区具有写权限,则代表该指定程序可以对该目标存储区内的信息进行修改。
执行权限:若某指定程序对某目标存储区具有执行权限,则代表该指定程序被允许执行或调用存储于该目标存储区内的代码,但执行权限并不意味着允许该指定程序查看或读取这些存储在目标存储区内的代码。
DMA(Direct Memory Access),即直接存储器访问或称为直接存储器存取,是一种快速传送数据的技术,适用于实现不同存储区(例如存储器内的不同存储区和/或存储器与其他存储装置内的不同存储区)之间的数据传输。DMA技术的优势在于,数据的传输路径可以不经过处理器,即需要传输的数据不需要被输入至处理器再由处理器传输至目标存储区,而是直接被写入目标存储区。基于DMA技术的数据传输过程可以称为DMA传输,DMA传输过程主要由DMA控制器实现。
本申请实施例可以应用于互联网和物联网(Internet of Things,简称IoT)等领域中,例如5G移动互联网系统、安全识别系统等,能够在处理装置内建立用于保护敏感信息的可信执行环境,并利用DMA技术实现不同的可信执行环境之间的数据传输。但应当领会,本公开实施例的应用场景不限于此,还可以应用在任何需要在处理装置内保护敏感信息的场景中。
系统概述
图1示出本公开实施例的电子设备的示意图框图。图2示出本公开实施例的电子设备的一种示例性的应用场景示意图。正如上文所述,图2示出的应用场景仅作为一种说明性的示例,而不用于限定本公开实施例的电子设备的实际应用场景。
图1中示出的电子设备1000旨在示出一个或多个电子装置的至少部分组件,在本公开的其他实施例中,可以省略图1示出的部分组件或以不同的架构实现各组件之间的连接,也可以包括图1中未示出的一些硬件和/或软件模块,图1中示出的两个或两个以上的组件也可以在软件体系和/或硬件体系上被合成为一个组件。
在一些实施例中,电子设备1000可以是移动设备、手持式设备或嵌入式设备,例如为采用5G技术的智能汽车、智能家电、生物信息识别系统、银行管理系统、物联网设备的处理平台中。
如图1和2所示,电子设备1000可以包括一个或多个处理装置1100。在一些实施例中,电子设备1000中的处理装置1100在架构和功能上可以灵活设计,例如,在需要实现低功耗和专用功能的场景中,本公开实施例的电子设备1000可以相比于个人计算机、服务器终端等大型计算机设备更为精简、具有较低的功耗,因此适用于各种物联网设备、嵌入式设备、智能终端设备等。
电子设备1000中的一个或多个处理装置1100可以分别是独立封装的芯片(例如为一种微控制器),也可以由集成于片上系统中的硬件结构和/或软件实现,还可以由设置在印刷电路板(Printed Circuit Board,PCB)上的多个硬件结构和/或软件实现。处理装置1100可以包含中央处理器、图形处理器和物理处理器等。
在一些实施例中,电子设备1000还可以包括一个或多个协处理器,用于执行不涉及敏感信息的指令和数据。
如图1所示,电子设备1000还包括系统总线1200,处理装置1100可以与一个或多个系统总线1200耦合。系统总线1200可以用于在处理装置1100与电子设备1000中的其他部件之间传输信号,例如传输地址、数据或控制信号等。系统总线1200可以包括但不限于:基于外设部件互连标准(Peripheral Component Interconnect,PCI)的总线、存储器总线或其他类型的总线。
通常,如图1所示,电子设备1000还可包括经由系统总线1200与处理装置1100通信的一个或多个存储装置1300。存储装置1300用于为电子设备提供额外的存储空间,例如用于存储敏感信息之外的数据和/或指令。
电子设备1000也可以经由系统总线1200耦合到输入/输出装置1400。在一些实施例中,输入/输出装置1400可以提供用户接口以响应于用户操作,输入/输出装置1400基于用户操作提供或采集到的信息可以在处理装置1100的控制下被存储在存储装置1300和/或处理装置1100中。通常,输入/输出装置1400提供的敏感信息(例如指纹信息、财产数据等)可以在处理装置1100建立的TEE中被处理。
输入/输出装置1400可以包括显示设备,以显示用户需要了解的信息,显示设备例如为阴极射线管(Cathode Ray Tube,简称CRT)显示器、液晶显示器(Liquid CrystalDisplay,简称LCD)或有机发光二极管(Organic Light-Emitting Diode,简称OLED)阵列显示器等。在一些实施例中,输入/输出装置1400可以包括键盘、鼠标、触控面板等输入设备,用于将用户操作对应的信息经系统总线1200传送给处理装置1100和/或相应的协处理器,使得处理装置1100和/或协处理器能够对用户操作做出响应。在一些实施例中,输入/输出装置1400可以包括采集设备,采集设备可以耦合到系统总线1200以传送有关图像/声音等可被采集的信息相关的指令和数据,采集设备例如为麦克风和/或用于采集图像的摄像机或照相机等设备。
电子设备1000可以包括集成在处理装置1100内或经系统总线1200与处理装置1100耦接的一个或多个接口1500,例如网络接口等。电子设备1000经由网络接口和相应的通信模块可以访问网络,网络例如为局域网(LAN)、广域网(WAN)、城域网(MAN)、个人区域网络(PAN)、蓝牙、云网络、移动网络(例如长期演进Long Term Evolution,LTE)网络、3G网络、4G网络或5G网络等)、内联网、因特网等。网络接口可以包括具有至少一个天线的无线网络接口和/或经由网络电缆通信的有线网络接口,网络电缆可以是以太网电缆、同轴电缆、光纤电缆、串行电缆或并行电缆。
网络接口例如可以根据IEEE 802.11b和/或802.11g标准提供对LAN的访问,也可以根据蓝牙标准提供对个人局域网络的访问,也可以支持其他无线网络接口和/或协议,包括现有的通信标准和未来的通信标准。网络接口还可以利用时分多址(TDMI)协议、全球移动通信系统(GSM)协议、码分多址(CDMA)协议和/或其他类型的无线通信协议等。
需要说明的是,上文以及图1仅仅用于对电子设备1000进行示例性的描述,而不用于限制电子设备1000的具体实现方式。电子设备1000还可以包括其它组成部分,例如数字信号处理器(Digital Signal Processor,DSP)等;上文描述的电子设备1000中的各个部分也可以在实际应用中适当被省略。
作为示例,图1示出的电子设备1000例如为图2示出的冰箱1000’。在图2提供的示例中,输入/输出装置1400例如包括显示触摸屏、图像采集装置等,其中处理装置1100可以基于图像采集程序获得图像采集装置采集到的用户的面部图像数据,并基于图像采集装置获得的图像数据运行面部识别程序,再基于面部识别结果运行推送程序,以向显示触摸屏推送与当前用户的历史记录相关的信息(例如包括经常购买的食材以及相关购买链接等)。用户可以通过操作显示触摸屏获取网络3000提供的信息,也可以通过操作移动终端设备2000(例如为智能手机)直接对冰箱1000’中的处理装置1100进行配置或经过网络3000对冰箱1000’中的处理装置1100进行配置,还可以查看处理装置1100返回至移动终端设备2000的信息。
在图2的示例中,处理装置1100还可以运行刷脸支付程序,以根据图像采集程序获得的面部图像数据和面部识别程序判断出的面部识别结果完成线上支付流程。
在某些应用场景下,涉及敏感信息的应用程序需要向其他应用程序传输数据,以使后续应用程序能够根据接收到的数据继续实现相应的功能。例如在图2的示例中,图像采集程序需要向面部识别程序提供包含敏感信息的面部图像数据,面部识别程序需要向刷脸支付程序和/或推送程序提供涉及敏感信息的面部识别结果。在涉及到敏感信息的场景下,不同应用程序之间的数据传输过程需要具有较高的安全性和高效性,从而在保护敏感信息不被窃取的同时也满足性能需求。
处理装置
本公开实施例的处理装置1100用于建立并控制多个能够提供安全保护功能的TEE。对于每个TEE而言,未被其允许的指令无法访问该TEE,且运行在该TEE中的程序可以不被常规操作系统和/或其他TEE干扰,从而运行在不同TEE中的指令和/或数据可以在相应的TEE中被独立保护以具有较高的安全性、私密性和完整性。
图3示出本公开实施例的处理装置1100的示意性框图。需要说明的是,在本实施例描述的示例中,处理装置1100的至少部分集成在片上系统(或单芯片)中,且由硬件架构和软件架构的协同工作而实现。然而本公开实施例的处理装置1100还可以包括与片上系统耦接的其他部分,即处理装置1100不限于由单芯片或片上系统实现,也可以由多个被线缆和/或PCB上的线路耦接的器件实现。
如图3所示,处理装置1100可以包括用于处理数据和指令的处理器100,处理器100可以包括一个或多个处理器核10。每个处理器核10内可以集成有特定的指令集。在一些实施例中,指令集例如可以支持复杂指令集计算(Complex Instruction Set Computing,CISC)、精简指令集计算(Reduced Instruction Set Computing,RISC)或基于超长指令字(Very Long Instruction Word,VLIW)的计算。不同的处理器核10可以各自处理不同的指令集。在一些实施例中,某一个或多个处理器核10还可以是其他处理模块,例如为数字信号处理器等。
在一些实施例中,处理器100可以包括一个或多个高速缓存13,且根据不同架构,高速缓存13可以包括位于各个处理器核10之内和/或之外的单个或多级的高速缓存,也可以包括被处理器100中的各个部件(例如为不同的处理器核10)共享的高速缓存。另一方面,高速缓存13可以包括面向指令的指令高速缓存和面向数据的数据高速缓存。
每个处理器核10可以基于指令流水线执行指令。指令流水线是一种用于提高效率的指令处理方式,主要通过将一条指令的处理过程划分为取指令(Fetch)、译码(Decode)、执行(Execute)、访存(Memory Access)、引退(Retire)等多级指令操作,每一级指令操作由专门的单元实现。如图3所示,为了处理指令,每个处理器核10可以包括由软硬件协同实现的指令流水线结构11,指令流水线结构11可以包括:用于获得指令的取指单元、用于将指令解码为可执行格式的译码单元、用于执行指令的执行单元、用于根据指令访问相应存储区的访存单元(也可以认为是一种执行单元)以及用于在指令执行完成后去除相关调度进程的引退单元等。在一些实施例中,指令流水线结构实现2级或以上的指令操作,例如可以仅通过取指单元和执行单元实现指令的处理,也可以通过取指单元、译码单元和执行单元等部分实现指令的处理。
在一些实施例中,每个处理器核10还可以包括寄存器堆12和核内互连结构14。寄存器堆12可以包括一个或多个物理寄存器,每个物理寄存器中存储的信息可以指示:一种或多种数据类型(例如,标量整数、标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点等等)、状态(例如为访问权限信息)、地址(例如用于取指令的指针或地址)等信息。在每个处理器核10内部,核内互连结构14可以实现该处理器核10内各部件之间的互连(例如,寄存器堆112可以经核内互连结构14向取指单元提供用于取指令的指针),还可以将处理器核10内各部件与该处理器核10外的总线结构300耦接。
需要说明的是,本公开仅对处理器100之一进行示例性的描述,且不用于限制处理器100的具体实现方式,上文描述的处理器100中的各个部分也可以在实际应用中适当被省略。在一些实施例中,处理装置1100内还可以集成有其他未示出的处理器。
作为处理装置1100的一种示例,图3中示出的处理器核10可用于运行应用程序,该处理器核10例如基于RISC-V指令集架构实现,也可能支持一些面向指定功能的扩展指令集。然而本公开实施例不限于此,处理装置1100中集成的每个处理器核10可以是基于其它能够通过存储保护机制建立并控制多个TEE的指令集架构实现的,且处理装置1100可以包括一个或多个处理器核10,不同的处理器核10可以基于不同的指令集架构实现。
进一步的,如图3所示,处理装置1100还包括存储器200,用于存储数据信息和代码信息。存储器200可以包括随机访问存储器和只读存储器(Read Only Memory,简称ROM)等存储结构,其中,存储器200中的随机访问存储器可用于运行程序,例如包括非易失性随机访问存储器(Non-Voliate Random Access Memory,简称为NVRAM),也可以包括易失性的动态随机存取存储器(Dynamic Random Access Memory,DRAM)和/或静态随机存取存储器(Static Random Access Memory,SRAM)等存储结构;存储器中的ROM例如由快闪存储器(FLASH Memory)等结构实现,主要用于存储代码信息、指令信息。作为示例,处理器100可以访问ROM以获得代码信息和指令信息,并通过访问随机访问存储器实现数据的存储和/或读写,从而处理器100能够基于存储器200提供的存储空间实现程序的运行。
在一些可选的实施例中,存储器200还可以包括MMIO(Memory-mapped I/O,存储映射输入/输出接口),用于与处理装置1100外部的存储装置耦接,以使存储装置能够与存储器200共同提供可被处理器100访问的存储空间。
为方便说明,本公开将能够被处理器100访问的存储空间统称为处理装置1100的存储单元。正如上文所述,处理装置1100的存储单元在物理结构上可以是由集成在处理装置内的存储器200和/或经由MMIO与处理装置1100耦接的存储装置实现的。在一些实施例中,处理装置1100的存储单元对应的各个存储地址可以属于同一个寻址空间,以供处理器100访问。
在本公开实施例中,存储单元可以包括相互隔离的多个安全区20(可以被称为Enclave,Secure Enclave,也可称为分区、可信区、飞地、围圈或安全环境),每个安全区相当于一个独立的可信执行环境TEE。需要说明的是,虽然图1和3中示出的各个安全区绘制在存储器200内部,然而正如上文所述,在一些可选的实施例中,某个或某些安全区20的至少部分还有可能是由耦接于MMIO的存储装置1300实现的。
每个安全区20所基于的物理结构可以由存储单元中的任一种或多种存储结构实现。例如,用于运行某一程序的安全区20可以包括:存储单元中由ROM提供的、用于存储该程序的代码的第一存储区、存储单元中由NVRAM提供的、用于存储该程序所需数据的第二存储区和/或由MMIO映射的第三存储区等。
如图3所示,处理装置1100还包括总线结构300,使得存储器200可以经由总线结构300与处理器100实现通信。总线结构300例如为SoC总线,可以基于AXI(AdvancedeXtensible Interface)等总线协议实现。
如图3所示,处理装置1100还包括存储访问控制器500,用于直接访问存储单元以获得其中存储的信息(数据和/或代码),并管理电子设备内部的数据传输。存储访问控制器500与总线结构300耦接,从而处理器100和存储器200均能通过总线结构300与存储访问控制器500耦接。处理器100可以对存储访问控制器500进行初始化,使得存储访问控制器500能够响应于传输请求以获得总线结构300的控制权,随后存储访问控制器500可以通过发起读写命令等方式建立该传输请求指示的信息传输路径,使得各个处理器核10、存储单元中的各个存储区等处理装置1100内的各部分之间在权限允许的前提下可以实现信息传输,并在完成信息传输后将总线结构的控制权归还给处理器100,并等待下一次初始化。在一些具体的实施例中,存储访问控制器500可以是DMA控制器、包含DMA控制器的控制器或其它能够在脱离处理器控制的情况下提供信息传输路径的控制器。
处理装置1100还可以包括:用于将总线结构300与电子设备的系统总线1200桥接的桥接器、电源管理模块(Power Management Unit,简称PMU)600、用于提供额外存储空间的非易失性存储器、随机访问存储器以及用于与磁盘、传感器等外围装置连接的接口模块等,还可以包括各种模拟部件(例如模数转换器、数控放大器、锁相环、发射/接收模块、射频模块等)、各种数字部件(例如为图像处理器、音频处理器和加速器等)等上文描述或未描述的硬件部件。
如前文所述,由于指令和信息的处理过程由处理器100实现,因此用户可以通过使用应用程序控制操作系统,使得处理器100能够在操作系统的控制下从存储单元中获取相应的指令和信息,并完成指令和信息的处理,处理结果同样可以被存入存储单元中。
图4示出本公开的一个实施例的嵌入式系统5000的一种系统架构图。嵌入式系统5000可以实现由本公开各实施例的处理装置。
尽管各种具体的嵌入式系统的功能、外观界面、操作等各不相同,甚至千差万别,但是基本的硬件结构却是大同小异的,而且和通用计算机的硬件系统有着高度的相似性,但是嵌入式系统应用上的特点致使嵌入式系统在硬件的组成和实现形式上与通用计算机系统又有较大区别。
首先,为满足嵌入式系统4000在速度、体积和功耗上的要求,操作系统、应用软件、特殊数据等需要长期保存的数据,通常不使用磁盘这类具有大容量且速度较慢的存储介质,而大多使用随机访问存储器402或闪存(Flash Memory)403,如图4所示。基于本公开任一实施例的描述,闪存403例如作为处理装置中的高速缓存,随机访问存储器402例如为包括本公开实施例中多个安全区的存储单元。
另外,在嵌入式系统4000中,需要A/D(模拟/数字转换)接口405和串行接口406,用于测控的需要,这在通用计算机中用得很少。A/D接口405主要完成测试中所需要的模拟信号到数字信号的转换、和数字信号到模拟信号的转换。嵌入式系统4000应用于工业生产时经常需要测试。由于单片机产生的是数字信号,在测试时需要转换成模拟信号用于测试,因此,与通用计算机不同,需要A/D接口405完成相关转换。另外,工业中经常需要多个嵌入式系统串接在一起,完成相关功能,因此需要用于将多个嵌入式系统串联的串行接口406,而在通用计算机中则大多不需要。
另外,嵌入式系统4000作为一个基本的处理单元,常常在工业设计中需要将多个嵌入式系统4000联成网络,因此需要将嵌入式系统4000联入网络的网络接口407。这在通用计算机中大多也不需要。此外,根据实际应用和规模的不同,有些嵌入式系统4000要采用总线404(例如由上述各实施例中的总线结构和/或系统总线实现)。随着嵌入式系统4000应用领域的迅速扩张,嵌入式系统4000越来越趋于个性化,根据自身特点采用总线的种类也越来越多。另外,为了对嵌入式处理器401内部电路进行测试,处理器芯片普遍采用了边界扫描测试技术。为了适应该测试,采用了调试接口408。
嵌入式系统4000的处理核心是嵌入式处理器401(用于实现本公开各实施例中处理装置内的处理器)。图5是本公开一个实施例的嵌入式处理器401的结构图。嵌入式处理器401包括算术逻辑单元(ALU)411、寄存器421和控制单元431。算术逻辑单元411完成实际的运算处理。寄存器421用于存储运算处理过程中的指令和运算处理中的中间结果等。控制单元431完成对外部的RAM 402(作为上述实施例公开的用于提供多个安全区的存储器)、闪存403(作为上述实施例公开的高速缓存)的访问的控制。
在执行待执行指令时,ALU 411将待执行指令从随机访问存储器402或闪存403中搬运到寄存器421中,并接收下一个取指地址或根据取指算法计算获得下一个取指地址,取指算法例如包括:根据指令长度递增地址或递减地址。
取出指令后,ALU 411进入指令译码阶段,其按照预定的指令格式,对取回的指令进行译码,以获得取回的指令所需的操作数获取信息,从而为指令的执行做准备。操作数获取信息例如指向随机访问存储器402或闪存403中的地址等。译码后,ALU按照操作数获取信息,获取随机访问存储器402或闪存403中存储的操作数执行处理。
ALU 411在执行某类指令(例如访存指令)时,需要访问随机访问存储器402或闪存403,以获取其中存储的信息或提供需要写入随机访问存储器402或闪存403中的数据。
访存指令被ALU 411获取之后,ALU 411可以对访存指令进行译码处理,使得访存指令的源操作数可被获取。ALU 411可以对访存指令的源操作数进行相应的运算(例如由算术逻辑单元对存储于寄存器中的源操作数进行运算)以获得访存指令对应的地址信息,并根据该地址信息发起相应的请求,例如地址转译请求、写访问请求等。
访存指令的源操作数通常包括地址操作数。ALU 411对该地址操作数进行运算以获得访存指令对应的虚拟地址。ALU 411根据该虚拟地址向控制单元431发起地址转译请求,该地址转译请求包括与访存指令的地址操作数对应的虚拟地址。控制单元431响应地址转译请求,并根据与该虚拟地址匹配的表项将地址转译请求中的虚拟地址转换为物理地址,使得ALU 411可以根据转译后的物理地址访问随机访问存储器402或闪存403。
根据功能的不同,访存指令可包括加载指令和存储指令。加载指令的执行过程通常不需要对随机访问存储器402或闪存403中的信息进行修改,ALU 411只需要根据加载指令的地址操作数读取存储于随机访问存储器402或闪存403或外部的存储设备中的数据。
不同于加载指令,存储指令的源操作数不仅包括地址操作数,还包括数据信息,存储指令的执行过程通常需要对随机访问存储器402或闪存403进行修改。存储指令的数据信息可以指向写入数据,该写入数据的来源可以是运算指令、加载指令等指令的执行结果,也可以是寄存器421中的数据,还可以是立即数。
基于本公开的一个实施例,嵌入式系统4000还包括本公开任一实施例的存储访问控制器409。存储访问控制器409用于直接访问存储单元以获得其中存储的信息,并管理嵌入式系统内部的数据传输。存储访问控制器409例如与嵌入式系统的总线404耦接,从而嵌入式处理器401和随机访问存储器402均能通过总线404与存储访问控制器409耦接。嵌入式处理器401可以对存储访问控制器409进行初始化配置,被配置的存储访问控制器409可以在不同安全区之间建立安全通道,使得不同安全区之间的数据传输过程无需经由嵌入式处理器401进行中转,降低了安全区之间数据传输过程的功耗、保证了安全区之间传输的数据不被窃取、提升了安全区之间的数据传输效率。
需要说明的是,图4和图5仅仅是本公开实施例的嵌入式系统的一种可能的示例,在一些其它的示例中,本公开的嵌入式系统还可以包括一些未示出的部分(例如传感器等),已示出的部分也可能被省略(例如在无需联网的应用中,网络接口可以省略)。
图6示出本公开实施例的处理装置的软件架构示意图。
基于上述的硬件架构,操作系统可以在本公开实施例提供的处理装置1100上执行。操作系统可用于:控制、管理和安排对电子设备中的硬件资源(包括存储器、处理器、存储装置和/或其他外部设备等)的访问;面向各种应用程序提供相应的接口(例如为系统调用接口,System Call Interface),使得用户和/或应用程序可以经由相应的接口对操作系统发起访问,以请求操作系统提供相应的服务支持(例如实现对硬件架构的控制),使得处理装置1100能够基于各种应用程序执行不同的任务。
在本公开实施例中,处理器100所基于的指令集(例如RISC-V指令集)架构可以定义多种权限模式(也可称为特权模式,Privileged Mode),至少包括:用户模式(User Mode,可简称为U-mode)和机器模式(Machine Mode,可简称为M-mode,也可以叫内核模式)。
在一些可选的实施例中,处理装置1100还可以包括监管模式(Supervisor Mode,可简称为S-mode)和管理模式(Hypervisor Mode,可简称为H-mode)等模式,以根据不同场景实现不同的功能。
在一些实施例中,处理装置1100例如包括模式状态寄存器(例如位于寄存器堆12中,也可以由位于处理装置内的其他寄存器实现),用于提供不同权限模式对应的操作码,处理装置1100可以通过查看这些操作码判断当前指令是否可以在当前的权限模式下被执行,从而实现不同权限模式下的任务处理、任务保护、硬件的抽象和虚拟化等功能。
为了防止不可信的应用程序获得敏感信息等现象的发生,各种应用程序仅能够在受保护的用户模式下运行,从而不会影响操作系统的运行,也不具有影响机器模式的各种配置的权限;操作系统可以管理和控制应用程序和其它各种电子设备内的软硬件资源,操作系统至少在应用模式下运行,在一些可选的实施例中操作系统也可以在机器模式下运行。
机器模式可以理解为是一种可信模式。在机器模式下,处理装置1100可以在存储单元的指定存储区(不同于存储操作系统的存储区)内运行受信任的安全监控系统(SecureMonitor,简称为SM),安全监控系统的代码通常被默认为可信代码(可存储在存储器内的只读存储器中),可以受信任地访问操作系统等电子设备内的各个部分,从而能够对存储单元、输入/输出接口以及一些电子设备的启动、配置过程所必需的底层功能进行控制。由于应用程序通常包括不可信代码,因此应用程序不能在机器模式下运行,且操作系统和应用程序均无权访问安全监控系统。
在本公开实施例中,安全监控系统可以实现物理内存保护(Physical MemoryProtection,简称为PMP)机制,用于在机器模式下指定用户模式可以访问的存储地址空间,并授予或拒绝读权限、写权限和执行权限等权限。
基于PMP机制,在机器模式下,安全监控系统可以为多个相互隔离的安全区20(如图1、3和6所示)配置相应的存储地址空间。应用程序的全部或部分可以被加载至相应的一个安全区20内,以与其他应用程序和/或信息隔离。当处理器100需要运行某一应用程序时,可以通过一种或多种授权方式(例如验证、签名等)获得相应的安全区20内存储的代码和/或数据,并将生成的信息返回至该安全区20内,实现应用程序的独立运行。
例如,在图2示出的示例中:图像采集程序可以在第一安全区中独立运行,图像采集装置向第一安全区返回采集到的面部图像数据;面部识别程序可以在第二安全区中独立运行,第一安全区需要向第二安全区传输面部图像数据,使得面部识别程序能够基于面部图像数据计算获得面部识别结果;刷脸支付程序可以在第三安全区中独立运行,第二安全区需要向第三安全区传输面部识别结果,使得刷脸支付程序能够基于面部识别结果完成支付操作。由此可见,在一些应用场景下,运行于不同安全区内的应用程序之间可能需要传输数据,本公开实施例可以基于存储器访问控制器500实现不同安全区之间的高效而安全的数据传输过程。
在一些实施例中,安全监控系统还用于实现各个安全区20内运行的程序之间的进程切换,也可以用于实现各个安全区20内运行的程序与其他程序(例如操作系统)之间的进程切换。例如,当某一安全区内的代码被相应的处理器核运行完毕后,该安全区可以将控制权交给安全监控系统,安全监控系统再将控制权交给另一个安全区内运行的代码,以开始运行另一应用程序。
下面将对本公开实施例的不同安全区进行描述。
安全区
如图3和图6所示,在本公开实施例的处理装置中,处理器100在存储单元的地址空间中划分出不同功能的安全区,包括但不限于:面向应用程序的多个应用类安全区(Application Enclave,简称AE,也可命名为其他名称)AE以及用于实现安全控制的非应用类安全区。
下面分别对本公开实施例定义的不同的安全区进行说明。
应用类安全区AE:用于封装相应的应用程序(通常被指定为涉及敏感信息的应用程序和/或不可信的应用程序),从而在用户模式下将该应用程序与其他程序/信息隔离。应用类安全区AE例如存储该应用程序的可执行代码以及可由该应用程序获取或生成的数据。不同的应用程序(可能是主应用程序和/或补充应用程序的全部或部分)在不同的应用类安全区AE内运行。
非应用类安全区:本公开实施例的存储地址空间中可以设置一个用于对不同安全区之间的数据传输进行安全控制的非应用类安全区,为方便描述,本公开将这一非应用类安全区称为运行时安全区(Runtime Enclave,简称为RE),然而这一名称“运行时安全区”不应限定该非应用类安全区的功能和作用,即该非应用类安全区还可以被称为其他名称。在一些实施例中,非应用类安全区还可以包括用于运行其他安全控制程序的安全区和/或具有其他功能的安全区,例如,非应用类安全区还可以包括密码类安全区,密码类安全区用于提供密码相关程序的运行所需的存储空间。
在运行时安全区RE中运行的控制程序可以用于安全地控制不同安全区之间的数据传输过程。在一些实施例中,运行时安全区RE还可用于存储能够被不同应用程序调用的共享信息(例如共享程序和/或通用驱动程序),以节省存储空间。共享信息例如包括共享库(shared library)和/或共享驱动程序。在一些实施例中,共享库例如包括公共的运行时库(Runtime Library),用于支持操作系统的开发和运行(例如为各种应用程序提供可以调用的库函数、初始化代码、错误处理代码和/或退出代码),从而不同的应用程序可以调用运行时安全区RE内存储的共享库来运行不同的应用程序,而无需在存储单元中重复存储相同的信息,节省了存储空间。在一些实施例中,共享驱动程序例如包括运行时驱动程序(CommonRuntime Driver),用于对不同应用程序的初始化、错误处理、退出等程序进行驱动和配置。
为了保证处理装置1100的安全性能,可以对不同安全区设置(授予/拒绝)相应的权限。作为示例,各安全区的权限信息可以存储在相应的权限寄存器(例如由处理器100内指定的寄存器堆12实现,也可以由位于处理装置1100内的其他寄存器实现)或存储单元中指定的区域中。
在本公开实施例中,应用类安全区AE中运行的应用程序不具有面向非应用类安全区的读写权限,从而防止非应用类安全区内的信息被应用程序篡改或影响,保证非应用类安全区内存储的信息被高度保密、且保持完整。同时,应用类安全区AE中运行的应用程序可以具有面向非应用类安全区的执行权限,即应用类安全区AE中运行的应用程序只能通过调用非应用类安全区内的信息(数据和/或程序)的方式实现相应的功能。
另外,在一些实施例中,每个应用类安全区AE不具有读取其他应用类安全区的权限,从而保证存储在各个应用类安全区AE内的信息不能被其他应用类安全区主动读取,以保障信息安全。
在一些场景下(如上文描述的示例),由于运行在不同的应用类安全区中的应用程序之间可能需要传输必要的数据,因此应用类安全区AE中运行的应用程序可以主动请求向另一个应用类安全区的可存储空间内写入必要的数据。
在一些实施例中,非应用类安全区可以具有面向应用类安全区AE的访问权限,即:运行在非应用类安全区内的程序(例如某个安全驱动程序)可以对应用类安全区AE进行读操作、写操作和执行操作。
得益于上述的PMP机制,在可选的实施例中,各个安全区的存储地址范围可以作为项列表被存储在存储单元的设定区域和/或指定的寄存器(例如由处理器100内指定的寄存器堆实现,也可以由位于处理装置1100内的其他寄存器实现)中,项列表仅能被安全监控系统访问,处理器100可以通过配置项列表中的每个表项(entry)实现安全区的地址分配。
每个表项可以具有设定的数据结构。在一些可选的实施例中,每个表项除了包括用于指示相应安全区的存储地址范围的地址标签(可以存储在地址寄存器中),还可以包括用于指示该安全区的类别信息(用于指示该安全区为应用类安全区、非应用类安全区或运行时安全区、密码类安全区)的类别标签和/或用于指示上述的权限信息的权限标签等。在一些实施例中,每个表项还可以用于指示该安全区的编号等辅助信息。
每个表项可以被存放在存储单元中指定的一个保护区域中,并可以被复制到处理装置1100内的指定寄存器(例如由处理器100中指定的寄存器堆实现,也可以由位于处理装置内的其他寄存器实现)中。
基于PMP机制,处理装置1100可以在物理层面保护各个安全区。例如,若某一访问请求(例如由某外部设备发起)不具有访问某安全区的权限,则处理装置将该访问请求示为引用了不存在的存储地址,使得该访问请求不能被执行。又例如,当处理装置1100在基于某一访问地址取指令或执行加载/存储操作之前,可以先将该访问地址与项列表中的各个表项指示的存储地址范围进行比较,并根据比较结果决定该访问地址是否被允许,若是,则处理装置1100可以继续基于该访问地址执行相应的操作,若否,则会引发访问异常。
安全区之间的数据传输过程
在下文的描述中,主要以多个安全区中的两个应用类安全区(后文示例性地称为第一应用类安全区AE1和第二应用类安全区AE2,第一应用类安全区AE1作为源安全区用于运行第一应用程序App1,第二应用类安全区AE2作为目标安全区用于运行第二应用程序App2)之间的数据传输过程为例进行说明,且在该示例中,至少一个非应用类安全区包括用于控制源安全区和目标安全区之间的数据传输过程的一个运行时安全区RE(用于运行控制程序)。然而正如上文解释的那样,本公开实施例不限于此,存储地址空间可以配置有多个非应用类安全区,以实现多个运行时安全区和/或其它功能的非应用类安全区,运行时安全区RE内也可以不仅仅适于运行和存储该控制程序,也可以运行和/或存储其他的一些信息。在一些实施例中,用于提供指定数据的源安全区可以是应用类安全区或密码类安全区或其它非应用类安全区,用于接收指定数据的目标安全区可以是应用类安全区或密码类安全区或其它非应用类安全区。
图7示出本公开实施例的处理装置的又一示意性框图。图8示出本公开实施例的存储访问控制器的示意性框图。为了能更清晰地示出本公开实施例的处理装置是如何实现数据传输的,处理装置1100的一个或一些软件/硬件部件没有在图7中绘出,存储访问控制器500的一个或一些软件/硬件部件没有在图8中绘出。图7示出的实施例可以基于图8示出的存储访问控制器或其变形实现。
如图7和图8所示,运行于第一应用类安全区AE1内的第一应用程序App1在需要向第二应用类安全区AE2传输数据时提供传输请求。该传输请求包括需要传输的指定数据的源地址信息(例如为需要传输的数据的起始物理地址)、需要传输的指定数据的目标地址信息(用于指向第二应用类安全区,目标地址信息例如为需要接收数据的第二应用类安全区AE2的标签、编号或起始物理地址)以及需要传输的数据量信息(例如需要传输的数据的字节数)。
在运行时安全区RE内运行的控制程序可以基于传输请求向运行在第二应用类安全区AE2内的第二应用程序App2发起分配请求(至少包括需要传输的数据量信息)。
在一些实施例中,控制程序接收到的传输请求的发起方很可能不一致,因此,控制程序可以基于预设的控制规则对传输请求进行合法性的验证,以避免不同的应用类安全区之间发生主动读取操作,从而保证各个应用类安全区内的信息不被泄漏。若控制程序判断该传输请求合法,则控制程序根据该传输请求进一步生成分配请求;若控制程序判断该传输请求不合法,则控制程序拒绝该传输请求,以终止该传输请求指示的数据传输。
控制程序的控制规则可以包括:判断传输请求指示的源地址信息对应的存储地址是否位于源安全区(例如为第一应用类安全区AE1)之内。若是,则说明运行于源安全区内的程序(例如为第一应用程序App1)为该传输请求的发起方,即该传输请求并非用于读取/执行其他安全区中的信息,此时传输请求合法;若否,则说明该传输请求的发起方不是源安全区内运行的程序,即该传输请求用于从源安全区之外访问源安全区内存储的数据,这可能导致源安全区内存储的敏感信息被恶意获取,因此本公开实施例的控制程序此时判定该传输请求不合法。
在一些可选的实施例中,在运行时安全区RE内运行的控制程序可以预设有一个或多个控制规则,而不仅限于上述的控制规则。例如,控制程序的控制规则之一可以包括:对于指定的某一个或一些安全区中运行的程序发起的传输请求,控制程序可以直接拒绝而无需判断传输方向。又例如,控制程序的控制规则之一可以包括:控制程序禁止指定的一个或一些安全区中运行的应用程序发起传输请求,例如,控制程序可以禁止用于运行支付类应用程序的应用类安全区发起传输请求,以确保支付信息被安全保护。
当控制程序向运行在目标安全区(例如为第二应用类安全区AE2)发起分配请求后,控制程序发起的分配请求被发送至传输请求指向的目标安全区(例如为第二应用类安全区AE2)。随后,运行在目标安全区内的程序(例如为第二应用程序App2)将基于分配请求判断目标安全区内的可分配地址空间尺寸是否能够容纳分配请求指示的数据量信息。若是,则第二应用程序App2向控制程序返回分配成功通知(传输确认应答),分配成功通知至少包括用于指示目标安全区可用于存储被传输的数据的分配地址信息(例如为目标安全区内空闲存储区的起始物理地址等地址信息,该空闲存储区作为用于存储本次传输的指定数据的目标存储区);若否,则目标安全区内运行的程序向控制程序返回分配失败通知,使得控制程序响应于该分配失败通知以终止本次传输。
当控制程序接收到分配成功通知后,将会基于分配成功通知向存储访问控制器提供初始化信息,以完成存储访问控制器的初始化设置。初始化信息至少包括传输请求指示的源地址信息和数据量信息、分配成功通知指示的分配地址信息等。
被初始化的存储访问控制器500可以基于初始化信息建立用于单向传输的安全通道,用于将源安全区内存储的指定数据(与传输请求指示的源地址信息和待传输的数据量信息对应)传输(可以理解为复制、拷贝)至目标安全区内的目标存储区(与分配成功通知指示的分配地址信息对应)。
另外,由于处理器100和存储访问控制器500不能同时控制总线结构300,因此,处理器100将初始化信息提供至存储访问控制器500意味着总线结构300的控制权需要由处理器100转移至存储访问控制器500。
在一些实施例中,接收到初始化信息之后的存储访问控制器500可以向处理器100发起接管请求,从而在处理器100向存储访问控制器500返回接管许可信号之后,存储访问控制器500可以获得总线结构300的控制权;而在另一些实施例中,处理器100也可以在提供初始化信息时(或提供初始化信息之后的一段时间内或之前的一段时间内)释放对总线结构300的控制权(此时,总线结构300面向处理器100例如呈现高阻态),使得存储访问控制器500可以经总线结构300建立数据传输通道。存储访问控制器500可以判断本次传输是否完成,并在判定本次传输已完成的情况下将总线结构300的控制权再次交还给处理器100。
为了实现上述功能,如图8所示,存储访问控制器500可以包括:寄存器组510、控制模块520以及至少一个通道530。
在一些实施例中,寄存器组510可以包括源地址寄存器511和目标地址寄存器512。存储访问控制器500完成初始化设置后:源地址寄存器511用于存储初始化信息提供的源地址信息,以指示源安全区内需要传输的指定数据所在的位置;目标地址寄存器512用于存储分配成功通知指示的分配地址信息(即目标安全区需要被写入的地址信息),以指示本次传输需要传输的指定数据在目标安全区内的存储位置(即目标存储区)。
控制模块520用于在至少一个通道530中选定一个可用的通道作为安全通道,安全通道经指定接口和总线结构300与用于实现存储单元的硬件结构耦接,从而存储在源安全区内的需要传输的指定数据可以经由安全通道传输至目标安全区内的目标存储区中,以达成传输请求的目的。
在一些实施例中,寄存器组510还包括状态寄存器513,用于提供与各个通道530对应的状态值,以指示各个通道530是否为可用状态。基于状态寄存器513提供的状态值,控制模块520可以选择处于可用状态的通道530之一作为安全通道,并将该安全通道的状态值更新为占用状态,以防止传输冲突。
在一些实施例中,存储访问控制器500还可以包括传输计数器540,寄存器组510还包括数据量寄存器514。当存储访问控制器500完成初始化设置后,数据量寄存器514存储初始化信息提供的数据量信息,以指示本次数据传输需要传输的数据长度,该数据长度例如为需要传输的字节数。传输计数器540用于对本次数据传输过程中已传输的数据进行计数获得累计传输长度,从而当累计传输长度等于数据量寄存器514指示的数据长度时,传输计数器540和/或控制模块520可以得知本次需要传输的数据已经传输完毕。
完成数据传输后,控制模块520可以经总线结构300向处理器发送传输结束通知,以恢复处理器对总线结构300的控制权。
在一些实施例中,存储访问控制器500还可以包括若干个计数器、寄存器和/或计算模块等未示出的部分。例如,被传输的数据的各个字节需要分别写入目标安全区中的连续地址,因此存储访问控制器500还可以包括计算模块,用于计算下一个字节需要写入的地址,并基于计算得到的地址对目标地址寄存器512中存储的分配地址信息进行更新,以使目标地址寄存器512中存储的地址信息指向目标存储区内的下一个可写入的字节单元。又例如,存储访问控制器500还可以包括与总线结构300相匹配的接口单元,使得控制模块520、通道530等结构可以与总线结构300正确地交互。
根据上文描述的各个实施例,本公开提供的处理装置和电子设备可以对不同的程序分配相互隔离的安全区,使得不同程序可以分别在不同的安全区内独立运行,且存储访问控制器可以建立源安全区和目标安全区之间的单向数据传输通道,从而源安全区和目标安全区之间的数据传输过程不需要处理器的参与,实现了高效安全的数据传输过程。在一些实施例中,在运行时安全区内运行的控制程序可以在存储访问控制器中指定的通道之一作为安全通道,被指定的安全通道可以用于在源安全区和目标安全区之间实现单向的数据传输,进一步保证了不同安全区之间的数据传输过程的安全性。
图9示出本公开实施例的安全控制方法的流程示意图。图9示出的安全控制方法可以基于图1至8示出的方案或变形方案实现,示例性地包括如下步骤。
步骤S101:运行于源安全区内的相应程序(例如为运行在第一应用类安全区中的第一应用程序App1)在需要向目标安全区(例如为第二应用类安全区AE2)传输指定数据时发起传输请求。该传输请求包括需要传输的数据的源地址信息(例如为需要传输的指定数据的起始物理地址)、需要传输的数据的目标地址信息(用于指向目标安全区,目标地址信息例如为需要接收指定数据的目标安全区的标签、编号或起始物理地址)以及待传输的数据量信息(例如需要传输的数据的字节数)。
步骤S102:控制程序接收传输请求,并根据控制规则判断该传输请求指示的传输方向是否合法。若是,则执行步骤S103;若否,则执行步骤S104。
在本实施中,由于控制程序接收到的传输请求的发起方很可能不一致,因此,控制程序可以基于预设的控制规则对请求进行合法性的验证,以避免不同的安全区之间发生主动读取操作,从而保证各个安全区内的信息不被泄漏。
控制程序对传输请求的控制规则可以包括:判断传输请求指示的源地址信息对应的存储地址是否位于源安全区之内。若是,则说明该源安全区为该传输请求的发起方,即该传输请求并非用于读取/调用/执行其他安全区提供的信息,此时传输请求合法;若否,则说明该传输请求的发起方不是源安全区,即该传输请求用于从源安全区之外访问源安全区内存储的数据,这可能导致源安全区内存储的敏感信息被恶意获取,因此本公开实施例的控制程序此时判定该传输请求不合法。
在一些可选的实施例中,在控制程序可以预设有一个或多个控制规则,而不仅限于上述的控制规则。例如,控制程序的控制规则之一可以包括:对于指定的某一个或一些安全区(例如为某一应用类安全区)中运行的程序发起的传输请求,控制程序可以直接拒绝而无需判断传输方向。又例如,控制程序的控制规则之一可以包括:控制程序禁止指定的一个或一些安全区中运行的程序发起传输请求。
步骤S104:若控制程序在步骤S102中判断该传输请求不合法,则控制程序拒绝该传输请求,以终止该源安全区发起的数据传输过程。
步骤S103:控制程序根据该传输请求进一步生成分配请求(至少包括需要传输的数据量信息),并将该分配请求发送至传输请求指向的目标安全区。
在另一些实施例中,步骤S102可以被跳过而直接执行步骤S103。
运行在目标安全区内的程序(例如为运行在第二应用类安全区AE2内的第二应用程序App2)基于分配请求判断目标安全区中可分配的存储空间尺寸是否大于/等于分配请求指示的数据量。若否,则执行步骤S120,第二应用程序App2向运行时安全区RE返回分配失败通知,使得控制程序响应于该分配失败通知以在步骤S121中控制存储访问控制器500终止本次数据传输;若是,则执行步骤S110,目标安全区向运行时安全区RE返回分配成功通知。
分配成功通知至少包括用于指示目标安全区内可用于存储被传输的指定数据的分配地址信息(例如为第二应用类安全区AE2内空闲的目标存储区的起始物理地址等地址信息)。
步骤S111:当控制程序接收到分配成功通知后,将会基于分配成功通知向存储访问控制器提供初始化信息。初始化信息至少包括传输请求指示的源地址信息和数据量信息、分配成功通知指示的分配地址信息等。
步骤S112:存储访问控制器500根据接收到的初始化信息完成初始化设置,被初始化的存储访问控制器500可以基于初始化信息建立安全通道,该安全通道用于将源安全区内存储的指定数据(与传输请求指示的源地址信息和数据量信息对应)传输(可以理解为复制、拷贝)至目标安全区内的目标存储区(与分配成功通知指示的分配地址信息对应)。
在步骤S112中,完成初始化设置的存储访问控制器可以向处理器发起接管请求,从而在处理器向存储访问控制器返回接管许可信号之后,存储访问控制器500可以获得总线结构的控制权(此时总线结构面向处理器例如呈现高阻态),获得总线控制权的存储访问控制器可以提供选定的通道作为安全通道。
步骤S113:源安全区将需要传输的指定数据传输至步骤S108建立的安全通道。
步骤S114:存储访问控制器基于步骤S112建立的安全通道将源安全区在步骤S113中提供的指定数据传输至目标安全区内的目标存储区。
在步骤S114中,存储访问控制器可以判断本次数据传输是否已传输完成。例如,在一些实施例中,存储访问控制器可以检测本次数据传输中已传输完成的数据量,并将检测到的数据量与初始化信息指示的数据量信息进行比较,若检测到的数据量与初始化信息中的数据量信息指示的总数据量一致,则说明本次需要传输的数据已经传输完毕,若检测到的数据量未达到数据量信息指示的总数据量,则说明仍有数据还未传输(即本次数据传输未完成)。
在步骤S114中,若存储访问控制器判定本次传输已完成,则结束本次传输并恢复处理器对总线结构的控制权;若存储访问控制器判定本次传输未完成,则继续传输指定数据。
在一些传统方案中,不同的可信执行环境之间的数据传输过程是基于处理器执行的程序实现的,需要将内存中的需要传输的数据先存入处理器,再由处理器将需要传输的数据提供给目标内存空间,数据传输速度较低,限制了基于可信执行环境实现的电子设备的效率。又例如,在一些传统技术中,不同可信执行环境之间的数据传输过程需要通过调用功能函数实现,因此这种技术仍然需要在处理器的参与下才能完成两个可信执行环境之间的数据传输。与这些传统方案相比,本公开实施例在处理装置可以通过存储访问控制器建立两个安全区之间的数据传输通道而不影响安全性能,在不同安全区之间的数据传输过程中不需要处理器的参与,而是通过安全通道直接实现存储单元中两个安全区之间的数据传输,从而提高了安全区之间的数据传输速度,提高了电子设备的运行速度、响应速度等性能。
在一些传统方案中,电子设备被划分为两个部分:安全部分和正常部分,其中所有被信任的应用程序在安全部分中运行,每个运行在整块的安全部分中的应用程序都有着被攻击的可能性,因此安全部分内运行的应用程序越多、被攻击的风险就越大,且运行在安全部分内的不同应用程序也会相互干扰。与此相比,而本公开实施例中需要受保护/被信任的各个程序分别在相互隔离的不同安全区内运行,因此能够保证各个应用程序中的数据被安全且独立地保护在不同的安全区内,防止敏感信息的泄露,增强了安全性。
在一些传统方案中,用于运行应用程序的可信执行环境中默认加载了所需的数据和代码(例如包括静态链接库和动态链接库),因此不需要在不同的可信执行环境之间进行数据传输,也没有提供与“实现不同可信执行环境之间的数据传输过程”这一目的相关的技术启示。
综上所述,相比于传统方案,本公开实施例提供的处理装置、嵌入式系统、片上系统以及安全控制方法可以基于多个安全区建立TEE,不同程序可以分别在不同的安全区内独立运行,且存储访问控制器可以被配置以便于在多个安全区中的源安全区和目标安全区之间建立用于单向传输数据的安全通道。由于本公开的数据传输过程不需要处理器的参与,因此,相比于现有技术,本公开实施例能够在保证信息安全的前提下提升安全区之间的通信效率、降低功耗,从而能够加快运行在安全区中的程序的响应速度,为处理装置、电子设备、嵌入式系统、片上系统的性能提升、用户体验的提升提供了有力支持。
在一些实施例中,多个安全区中的运行时安全区提供用于运行控制程序的可信执行环境,从而进一步保证了源安全区和目标安全区之间的数据传输过程能够在保证数据安全的前提下高效率进行。
在一些实施例中,运行时安全区内运行的控制程序可以基于各种预设的控制规则控制源安全区和目标安全区之间的数据传输,从而实现对数据传输过程的灵活控制和优化。例如,控制程序的控制规则可以判断数据传输的方向是否合法,从而防止某安全区内的敏感信息错误地泄漏至其它安全区。
在一些实施例中,运行时安全区内运行的控制程序可以基于传输请求向需要写入的目标安全区发起分配请求,以确认该目标安全区是否有足够的存储空间接收需要传输的指定数据,从而能够防止该目标安全区中的有效数据被覆盖。
需要领会,以上所述仅为本公开的优选实施例,并不用于限制本公开,对于本领域技术人员而言,本说明书的实施例存在许多变型。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
需要说明的是,图2仅示出了本公开实施例的一种可能的应用场景。本公开实施例还可以应用于其他应用场景中,尤其是应用于与用户敏感信息强关联的场景中。
例如,图10示出了本公开实施例的又一种可能的应用场景。本公开各实施例的装置可以采用电子的用户身份识别模块(Subscriber Identification Module,简称为SIM)实现用户身份认证,从而允许用户在无需实体SIM卡的情况下通过公众网络将用户身份识别模块所需的文件下载至终端设备,并利用网络端的管理平台(图10中标号为6000)对该终端设备中的用户身份识别模块管理,从而用户可以在无需实体SIM卡的情况下直接访问通信运营商提供的网络服务。用户身份识别模块例如为嵌入式SIM(Embedded SubscriberIdentification Module,可简称为eSIM)或TEE SIM。
如图10所示,在终端设备5000(例如基于本公开各实施例的电子设备和/或嵌入式系统实现)内,用户身份识别模块502可以与上述各实施例的处理装置(图10中标号为501)进行通信,以便于处理装置基于用户身份识别模块502提供的信息运行认证程序(基于用户信息认证接收数据的合法性)、加解密程序(对已被验证为合法的数据进行加解密处理)等等;在一些未示出的示例中,用户身份识别模块还可以作为软件模块、硬件模块或软硬件结合的模块集成于处理装置内部。由于用于支持用户身份识别模块的认证程序、加解密程序等程序涉及到用户身份等敏感信息,因此需要分别运行于处理装置内相互隔离的不同安全区中;在一些情况下,这些运行在不同安全区中的程序也需要依赖于其它安全区提供的数据。基于本公开的各个实施例,支持用户身份识别模块的处理装置可以在不同的安全区之间建立安全通道,使得用于运行某一程序(例如认证程序)的源安全区可以直接经由相应的安全通道将指定数据(例如认证程序生成的认证结果)传输至需要接收该指定数据的目标安全区(例如用于运行加解密程序),而无需将指定数据先存储至处理器、再由处理器传输至目标安全区,既保证了安全区之间的数据传输的安全性(保证被传输的敏感信息不被窃取),又提高了安全区之间的数据传输效率、提升了产品性能和用户体验。
又例如,上述各实施例的装置可以应用于智能汽车、智能售卖机、智能机器人等设备中,这些设备可以在处理装置提供的某一安全区内运行第一程序(例如涉及用户身份信息的程序),并通过配置好的安全通道直接将第一程序提供的指定数据传输至处理装置的另一安全区,以便于运行在该另一安全区内的程序(例如支付程序、推荐算法程序等)能够基于安全通道提供的指定数据进行处理。
可以看出,由于本公开实施例提供的装置具有精简的结构且在安全区之间的数据传输过程中无需经由处理器进行中转,因此具有较高的数据传输效率、数据处理效率以及较低的功耗,在各种低功耗和嵌入式的应用场景中存在广阔的应用前景。
应该理解,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于装置和系统实施例中描述的方法,所以描述的比较简单,相关之处参见其他实施例的部分说明即可。
应该理解,上述对本说明书特定实施例进行了描述。其它实施例在权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
应该理解,本文用单数形式描述或者在附图中仅显示一个的元件并不代表将该元件的数量限于一个。此外,本文中被描述或示出为分开的模块或元件可被组合为单个模块或元件,且本文中被描述或示出为单个的模块或元件可被拆分为多个模块或元件。
还应理解,本文采用的术语和表述方式只是用于描述,本说明书的一个或多个实施例并不应局限于这些术语和表述。使用这些术语和表述并不意味着排除任何示意和描述(或其中部分)的等效特征,应认识到可能存在的各种修改也应包含在权利要求范围内。其他修改、变化和替换也可能存在。相应的,权利要求应视为覆盖所有这些等效物。
Claims (19)
1.一种处理装置,其特征在于,包括:
处理器,适于运行程序;
存储器,与所述处理器耦接,适于提供相互隔离的多个安全区,所述多个安全区之一为源安全区,所述多个安全区中的另一个为目标安全区,所述源安全区和所述目标安全区分别用于提供相应程序的运行所需的存储空间,
其中,所述处理装置还包括存储访问控制器,适于将所述源安全区内存储的指定数据传输至所述目标安全区。
2.根据权利要求1所述的处理装置,其特征在于,所述多个安全区还包括不同于所述源安全区和所述目标安全区的运行时安全区,
所述运行时安全区适于提供控制程序的运行所需的存储空间,由所述控制程序唯一配置所述存储器访问器以使所述存储器访问器将所述源安全区内存储的指定数据传输至所述目标安全区。
3.根据权利要求2所述的处理装置,其特征在于,所述源安全区适于生成传输请求,将所述传输请求发送到所述运行时安全区,以便所述控制程序基于所述传输请求配置所述存储访问控制器将所述源安全区内存储的指定数据传输至所述目标安全区。
4.根据权利要求3所述的处理装置,其特征在于,所述传输请求包含源地址信息;且
在所述控制程序配置所述存储访问控制器将所述源安全区内存储的指定数据传输至所述目标安全区之前,所述控制程序检查所述源地址信息是否指向发出所述传输请求的所述源安全区之内,如是,则允许所述存储访问控制器将所述源安全区内存储的指定数据传输至所述目标安全区。
5.根据权利要求3所述的处理装置,其特征在于,
在所述控制程序配置所述存储访问控制器将所述源安全区内存储的指定数据传输至所述目标安全区之前,所述控制程序检查发出该传输请求的所述源安全区是否被禁用传输功能,如未被禁用,则允许所述存储访问控制器将所述源安全区内存储的指定数据传输至所述目标安全区。
6.根据权利要求3所述的处理装置,其特征在于,所述传输请求包含待传输的数据量信息,其中,在所述存储访问控制器将所述源安全区内存储的指定数据传输至所述目标安全区之前,所述控制程序向所述目标安全区发送分配请求,所述分配请求包含所述数据量信息,以便所述目标安全区判断目标安全区中可分配的存储空间尺寸是否大于/等于分配请求指示的数据量信息,如果是,则发送传输确认应答到所述存储访问控制器,以便所述存储访问控制器将所述源安全区内存储的指定数据传输至所述目标安全区。
7.根据权利要求6所述的处理装置,其特征在于,所述传输确认应答包括分配地址信息,所述分配地址信息指向所述目标安全区内允许接收所述指定数据的目标存储区,
所述控制程序将所述分配地址信息提供至所述存储器访问器,以便于所述存储访问控制器将所述源安全区内存储的指定数据传输至所述目标安全区中的所述目标存储区。
8.根据权利要求4所述的处理装置,其特征在于,所述存储访问控制器包括:
源地址寄存器,适于存储所述源地址信息;
目标地址寄存器,适于存储目标地址信息,所述目标地址信息指向所述目标安全区或所述目标安全区内用于接收所述指定数据的指定存储区;以及
控制模块,适于将所述存储访问控制器提供的多个通道之一选定为用于将所述源安全区内存储的指定数据传输至所述目标安全区的安全通道。
9.根据权利要求8所述的处理装置,其特征在于,所述存储访问控制器还包括:
状态寄存器,适于提供每个所述通道的状态值,所述状态值用于指示相应的所述通道是否为可用状态,以便于所述控制模块基于所述状态值选择处于可用状态的所述通道作为所述安全通道。
10.一种嵌入式系统,包括如权利要求1至9任一项所述的处理装置。
11.一种片上系统,包括如权利要求1至9任一项所述的处理装置。
12.一种安全控制方法,其特征在于,包括:
在存储器中配置相互隔离的多个安全区,所述多个安全区之一为源安全区,所述多个安全区中的另一个为目标安全区,所述源安全区和所述目标安全区分别用于提供相应程序的运行所需的存储空间;
配置安全通道;
经由所述安全通道将所述源安全区内存储的指定数据传输至所述目标安全区。
13.根据权利要求12所述的安全控制方法,其特征在于,所述多个安全区还包括不同于所述源安全区和所述目标安全区的运行时安全区,所述安全控制方法还包括:
在运行时安全区内运行控制程序,所述控制程序唯一配置所述安全通道,以便于所述安全通道将所述源安全区内存储的指定数据传输至所述目标安全区。
14.根据权利要求13所述的安全控制方法,其特征在于,所述控制程序接收所述源安全区发出的传输请求,并基于所述传输请求配置所述安全通道,以便于所述安全通道将所述源安全区内存储的指定数据传输至所述目标安全区。
15.根据权利要求14所述的安全控制方法,其特征在于,所述传输请求包含源地址信息;且
在所述控制程序配置所述安全通道之前,所述控制程序检查所述源地址信息是否在发出所述传输请求的所述源安全区之内,如是,则允许将所述源安全区内存储的指定数据传输至所述目标安全区。
16.根据权利要求14所述的安全控制方法,其特征在于,在所述控制程序配置所述安全通道之前,所述控制程序检查发出该传输请求的所述源安全区是否被禁用传输功能,如未被禁用,则允许将所述源安全区内存储的指定数据传输至所述目标安全区。
17.根据权利要求14所述的安全控制方法,其特征在于,所述传输请求包含待传输的数据量信息,其中,在将所述源安全区内存储的指定数据传输至所述目标安全区之前,所述控制程序向所述目标安全区发送分配请求,所述分配请求包含所述数据量信息,以便所述目标安全区判断目标安全区中可分配的存储空间尺寸是否大于/等于分配请求指示的所述数据量信息,如果是,则发送传输确认应答,以便所述安全通道将所述源安全区内存储的指定数据传输至所述目标安全区。
18.根据权利要求17所述的安全控制方法,其特征在于,所述传输确认应答包括分配地址信息,所述分配地址信息指向所述目标安全区内允许接收所述指定数据的目标存储区,
所述控制程序基于所述分配地址信息配置所述安全通道,以便于所述安全通道将所述源安全区内存储的指定数据传输至所述目标安全区中的所述目标存储区。
19.根据权利要求15所述的安全控制方法,其特征在于,配置所述安全通道的步骤包括:
基于所述源地址信息和目标地址信息将多个通道之一选定为所述安全通道,以便于所述安全通道将所述源安全区内存储的指定数据传输至所述目标地址信息指向的所述目标安全区或所述目标安全区内用于接收所述指定数据的指定存储区。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010348113.6A CN113569245A (zh) | 2020-04-28 | 2020-04-28 | 处理装置、嵌入式系统、片上系统以及安全控制方法 |
US17/240,796 US11899781B2 (en) | 2020-04-28 | 2021-04-26 | Processing apparatus, embedded system, system-on-chip, and a security control method for inter-enclave data transmission |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010348113.6A CN113569245A (zh) | 2020-04-28 | 2020-04-28 | 处理装置、嵌入式系统、片上系统以及安全控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113569245A true CN113569245A (zh) | 2021-10-29 |
Family
ID=78157829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010348113.6A Pending CN113569245A (zh) | 2020-04-28 | 2020-04-28 | 处理装置、嵌入式系统、片上系统以及安全控制方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11899781B2 (zh) |
CN (1) | CN113569245A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114691552A (zh) * | 2022-04-13 | 2022-07-01 | 山东浪潮科学研究院有限公司 | 一种应用于risc_v架构的低资源内存保护装置 |
CN116450564A (zh) * | 2023-06-15 | 2023-07-18 | 支付宝(杭州)信息技术有限公司 | 一种多处理卡间的数据传输方法和系统 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112749397A (zh) * | 2019-10-29 | 2021-05-04 | 阿里巴巴集团控股有限公司 | 一种系统和方法 |
CN114090209B (zh) * | 2021-11-23 | 2024-04-12 | 四川启睿克科技有限公司 | 基于risc-v架构的密码获取方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10326798B2 (en) * | 1998-07-16 | 2019-06-18 | Grid7, LLC | System and method for secure data transmission and storage |
FR2863076B1 (fr) * | 2003-11-28 | 2006-02-03 | Bull Sa | Systeme cryptographique haut debit a architecture modulaire. |
US8151323B2 (en) * | 2006-04-12 | 2012-04-03 | Citrix Systems, Inc. | Systems and methods for providing levels of access and action control via an SSL VPN appliance |
US8239919B2 (en) * | 2006-07-06 | 2012-08-07 | Mindspeed Technologies, Inc. | Flexible hardware password protection and access control |
US9940456B2 (en) * | 2014-12-16 | 2018-04-10 | Intel Corporation | Using trusted execution environments for security of code and data |
US10177914B1 (en) * | 2015-06-04 | 2019-01-08 | Fuse Integration, Inc. | Device for integrating multiple secure networks |
US9716710B2 (en) * | 2015-06-26 | 2017-07-25 | Intel Corporation | Technologies for virtualized access to security services provided by a converged manageability and security engine |
US10693899B2 (en) * | 2015-10-01 | 2020-06-23 | Twistlock, Ltd. | Traffic enforcement in containerized environments |
US11188270B2 (en) * | 2016-05-25 | 2021-11-30 | International Business Machines Corporation | Targeted secure data overwrite |
US20180025553A1 (en) * | 2016-07-22 | 2018-01-25 | Ford Global Technologies, Llc | Stealth mode for vehicles |
US10528721B2 (en) * | 2016-10-20 | 2020-01-07 | Intel Corporation | Trusted packet processing for multi-domain separatization and security |
US10419394B2 (en) * | 2016-10-24 | 2019-09-17 | Nubeva, Inc. | Providing scalable cloud-based security services |
US11443033B2 (en) * | 2017-01-24 | 2022-09-13 | Microsoft Technology Licensing, Llc | Abstract enclave identity |
US11170096B2 (en) * | 2017-10-23 | 2021-11-09 | L3 Technologies, Inc. | Configurable internet isolation and security for mobile devices |
CN112347184A (zh) * | 2019-08-07 | 2021-02-09 | 华为技术有限公司 | 分叉处理方法以及区块链节点 |
US11340797B2 (en) * | 2019-10-04 | 2022-05-24 | Zettaset, Inc. | Dedicated encrypted container storage |
KR102260193B1 (ko) * | 2019-12-30 | 2021-06-03 | 주식회사 버넥트 | 3차원 공간에 대한 보안기능을 제공하는 증강현실 원격 통신방법 및 시스템 |
CN111522438A (zh) * | 2020-03-25 | 2020-08-11 | 华为技术有限公司 | 内容传输方法、设备及介质 |
-
2020
- 2020-04-28 CN CN202010348113.6A patent/CN113569245A/zh active Pending
-
2021
- 2021-04-26 US US17/240,796 patent/US11899781B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114691552A (zh) * | 2022-04-13 | 2022-07-01 | 山东浪潮科学研究院有限公司 | 一种应用于risc_v架构的低资源内存保护装置 |
CN116450564A (zh) * | 2023-06-15 | 2023-07-18 | 支付宝(杭州)信息技术有限公司 | 一种多处理卡间的数据传输方法和系统 |
CN116450564B (zh) * | 2023-06-15 | 2023-11-28 | 支付宝(杭州)信息技术有限公司 | 一种多处理卡间的数据传输方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
US20210334361A1 (en) | 2021-10-28 |
US11899781B2 (en) | 2024-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3761208B1 (en) | Trust zone-based operating system and method | |
CN113569245A (zh) | 处理装置、嵌入式系统、片上系统以及安全控制方法 | |
US11977663B2 (en) | Processing unit, electronic device, and security control method | |
CN109918919B (zh) | 认证变量的管理 | |
EP3614284A1 (en) | Secure public cloud using extended paging and memory integrity | |
KR102269010B1 (ko) | 보호 영역에서의 메모리 초기화 | |
CN108205502B (zh) | 轻量可信任务 | |
US11171983B2 (en) | Techniques to provide function-level isolation with capability-based security | |
US9507941B2 (en) | Method of verifying integrity of electronic device, storage medium, and electronic device | |
US7926086B1 (en) | Access control mechanism for shareable interface communication access control | |
US8959311B2 (en) | Methods and systems involving secure RAM | |
CN112639778A (zh) | 指针认证及指针认证方案之间的动态切换 | |
US10083129B2 (en) | Code loading hardening by hypervisor page table switching | |
CN104318182A (zh) | 一种基于处理器安全扩展的智能终端隔离系统及方法 | |
CN112528288A (zh) | 可信应用的运行方法、信息处理和内存分配方法及装置 | |
CN113094700A (zh) | 执行安全操作的系统以及系统执行安全操作的方法 | |
CN113434453A (zh) | 片上系统及其操作方法 | |
CN112749397A (zh) | 一种系统和方法 | |
CN110998575B (zh) | 在支持受保护执行环境的处理器上执行可信应用的方法和设备 | |
WO2023123850A1 (zh) | 一种固件可信根的实现方法、装置、设备和可读存储介质 | |
CN114844726A (zh) | 防火墙实现方法、芯片、电子设备及计算机可读存储介质 | |
Li et al. | Secure trusted operating system based on microkernel architecture | |
WO2023045744A1 (zh) | 加固方法、注册方法、运行方法、电子设备和存储介质 | |
CN116049809B (zh) | 一种驱动调用方法和设备 | |
CN114154163B (zh) | 漏洞检测方法和装置 |
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 |