CN117521054A - 电子装置和安全访问软件的方法 - Google Patents

电子装置和安全访问软件的方法 Download PDF

Info

Publication number
CN117521054A
CN117521054A CN202210911423.3A CN202210911423A CN117521054A CN 117521054 A CN117521054 A CN 117521054A CN 202210911423 A CN202210911423 A CN 202210911423A CN 117521054 A CN117521054 A CN 117521054A
Authority
CN
China
Prior art keywords
physical address
software
world
processor
address
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
Application number
CN202210911423.3A
Other languages
English (en)
Inventor
谌峰
薛杉
李硕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202210911423.3A priority Critical patent/CN117521054A/zh
Priority to PCT/CN2023/101009 priority patent/WO2024027356A1/zh
Publication of CN117521054A publication Critical patent/CN117521054A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本申请提供了一种电子装置和安全访问软件的方法,本申请提供的电子装置包括:处理器和控制器;处理器,用于运行当前软件,并向控制器发送当前软件所要访问的逻辑地址以及软件对逻辑地址的目标访问权限;控制器,用于将逻辑地址转换成处理器中的物理地址,当物理地址在与当前软件的当前世界对应的预设物理地址空间内、且目标访问权限与当前世界对预设物理地址空间的预设访问权限相同时,允许处理器访问逻辑地址;其中,电子装置的软件运行环境具有多个世界,多个世界中的每个世界分别对应于至少两个物理地址空间、以及至少两个物理地址空间分别对应不同的访问权限,当前世界为多个世界之一;本申请提供的电子装置,可以提高所运行的软件的安全性。

Description

电子装置和安全访问软件的方法
技术领域
本申请实施例涉及计算机安全领域,尤其涉及一种电子装置和安全访问软件的方法。
背景技术
随着互联网技术和计算机技术的高速发展,诸如终端和服务器等电子装置的功能越来越多,为了支撑这些电子装置的运行,这些电子装置中的重要数据也越来越多。该重要数据例如包括但不限于内核页表、Linux进程的cred结构体、selinux的数据库、生物识别数据(指纹数据、面部图像数据)、密钥数据或者证书数据等。因此,对电子装置运行环境安全性的要求越来越高。
为了保障电子装置运行环境的安全性,现有技术中采用将电子装置的软件运行环境设置成多个世界(例如普通世界和安全世界等),并且限定出各世界可以访问的物理地址空间。这里的访问是指读取物理地址空间中存储的指令或数据,或者向物理地址空间中读取数据。这就有可能导致黑客通过攻击运行于各世界的软件,通过运行于各世界的软件改写相应世界的物理地址空间所存储的指令或数据,导致重要数据泄露或被改写,由此,如何提高软件运行的安全性仍然成为需要解决的问题。
发明内容
本申请提供的电子装置和安全访问软件的方法,可以提高所运行的软件的安全性。为达到上述目的,本申请采用如下技术方案。
第一方面,本申请实施例提供一种电子装置,该电子装置包括:处理器和控制器;所述处理器,用于运行当前软件,并向所述控制器发送所述当前软件所要访问的逻辑地址以及所述当前软件对所述逻辑地址的目标访问权限;所述控制器,用于:接收来自所述处理器的所述逻辑地址和所述目标访问权限;将所述逻辑地址转换成存储器中的物理地址;当所述物理地址在与所述当前软件的当前世界对应的预设物理地址空间内、且所述目标访问权限与所述当前世界对所述预设物理地址空间的预设访问权限相同时,允许所述处理器访问所述逻辑地址;其中,所述电子装置的软件运行环境具有多个世界,所述多个世界中的每个世界分别对应至少两个物理地址空间、以及所述至少两个物理地址空间分别对应不同的访问权限,所述当前世界为所述多个世界之一;所述访问权限包括以下之一:读取或改写物理地址空间中存储的软件、仅限于读取物理地址空间中存储的软件、仅限于执行物理地址空间中存储的软件。
本申请实施例中,所述目标访问权限与所述当前世界对所述预设物理地址空间的预设访问权限相同,还可以是指所述目标访问权限位于所述预设访问权限范围内。例如,当所述预设访问权限包括当前世界既可以读取所述预设物理地址空间中的软件、也可以改写所述预设物理地址空间中的软件,而目标访问权限仅为读取或者仅为改写或者既可以读取也可以改写所述逻辑地址中的软件,则都可以理解为所述目标访问权限与所述当前世界对所述预设物理地址空间的预设访问权限相同。
传统技术中,仅限定了运行于各世界的软件所能读取和改写的物理地址空间。这就导致黑客通过攻击运行于某一世界的软件,来读取或改写与该世界对应的物理地址空间内存储的指令或数据,导致物理地址空间内存储的重要指令或数据被泄露或改写,从而导致电子装置的安全问题。本申请实施例通过限定出运行于各世界的软件所能读取和改写的物理地址空间、运行于各世界的软件仅能读取(无法改写)的物理地址空间、以及运行于各世界的软件仅能执行(无法读取和改写)的物理地址空间,电子装置中的重要指令或数据可以存储于存储器中、运行于各世界的软件仅能读取的物理地址空间内,或者电子装置中的重要指令可以存储于存储器中、运行于各世界的软件仅能执行的物理地址空间内;另外,控制器基于处理器当前所位于的世界,将处理器当前运行的软件所位于的世界以及对逻辑地址的访问方式,确定物理地址是否在与当前软件的当前世界对应的预设物理地址空间内、并且确定当前世界对物理地址空间的目标访问权限是否为预设访问权限,在二者条件均满足时才可以将物理地址提供给处理器,从而可以避免黑客通过攻击运行于各世界的软件,来改写相应世界的物理地址空间所存储的指令或数据,从而避免重要指令程序或数据被泄露或被改写,从而提高电子装置运行的安全性。
在一种可能的实现方式中,控制器提供给处理器的物理地址可以为有效地址,从而处理器可以基于该有效地址,从存储器对应的物理地址中访问指令或数据;在其他可能的实现方式中,控制器提供给处理器的物理地址可以为空地址,此时处理器可以执行其他流程步骤,不需要再从存储器中获得指令或数据。
在一种可能的实现方式中,所述控制器还用于:当满足所述物理地址在与所述当前软件的当前世界对应的预设物理地址空间之外、和所述目标访问权限与所述预设访问权限不同二者中的至少一项时,向所述处理器发送指示错误的信号。
在一种可能的实现方式中,所述处理器还用于:基于所述指示错误的信号,执行安全保护操作,所述安全保护操作包括以下至少一项:复位所述处理器、拒绝所述处理器当前运行的软件对逻辑地址的访问、指示所述处理器停止运行、禁止所述处理器的至少部分功能和阻止所述处理器访问所述存储器。
在一种可能的实现方式中,所述电子装置还包括所述存储器,所述存储器还用于:存储所述多个世界中每个世界的所述至少两个物理地址空间与对所述至少两个物理地址空间的不同访问权限之间的映射关系;所述控制器,还用于根据所述映射关系,确定与所述当前世界对应的所述预设物理地址空间以及所述预设访问权限。
在一种可能的实现方式中,所述控制器将逻辑地址转换成物理地址,具体用于:基于所述逻辑地址,分别查询至少一次预先设定的第一页表和至少一次预先设定的第二页表;依据所述第一页表,将逻辑地址转换成至少一级中间地址;依据所述第一页表和所述第二页表,当所述至少一级中间地址中的每一级中间地址均被允许访问时,将所述至少一级中间地址中最后一级中间地址转换成所述物理地址;其中,所述第一页表中记录有所述至少一级中间地址、以及所述多个世界中的每个世界对所述至少一级中间地址的访问权限;所述第二页表中记录有所述多个世界中的每个世界对所述至少一级中间地址的访问权限。
传统技术中,控制器将逻辑地址转换成物理地址,通常需要二级的地址翻译和检测,也即是说,控制器在获得逻辑地址后,首先通过查询设置于异常级别EL1中的第一级页表,对逻辑地址进行翻译和检测,将逻辑地址转换成中间逻辑地址;然后,控制器通过查询设置于异常级别EL2中的第二级页表,对中间逻辑地址进行翻译和检测,将中间逻辑地址转换成物理地址。
本申请实施例中,控制器通过查询第一页表,对逻辑地址进行翻译和检测,将逻辑地址转换成中间地址,该中间级地址为物理地址;通过查询第二页表,对中间级地址进行权限检查,也即与现有技术所示的逻辑地址转换物理地址的方式相比,省略掉将逻辑地址转换成中间逻辑地址的转换步骤,从而可以简化由逻辑地址转换为物理地址的转换步骤的情况下,还将原来用于存储中间逻辑地址的空间省略掉,节约存储空间。
在一种可能的实现方式中,所述控制器还用于:当存在至少一级中间地址不被允许访问时,向所述处理器传输指示错误的信号。
在一种可能的实现方式中,所述电子装置包括多个异常级别,每一个异常级别均对应所述存储器中的一段物理地址空间,且运行于低异常级别的软件禁止访问与高异常级别对应的物理地址空间,其中,所述映射关系存储于与所述多个异常级别中最高异常级别对应的物理地址空间内。
在一种可能的实现方式中,所述第一页表存储于所述多个异常级别中第一异常级别对应的物理地址空间内,所述第一异常级别为低于所述最高异常级别的异常级别;所述第二页表存储于所述最高异常级别对应的物理地址空间内。
本申请实施例中,将传统技术中设置于异常级别EL2以用于将中间逻辑地址转换成中间级地址、并且对中间级地址进行检测的第二级页表,替换为设置于异常级别EL3以用于对中间级地址检测的第二页表,由于异常级别EL3的安全性远高于异常级别EL2的安全性,从而可以有效的对电子装置进行安全保护。
在一种可能的实现方式中,所述电子装置还包括直接存储器存取控制器;所述允许所述处理器访问所述逻辑地址,具体用于:将所述物理地址提供给所述直接存储器存取控制器;所述直接存储器存取控制器用于:将所述物理地址中的指令或数据提供给所述处理器。
第二方面,本申请实施例提供一种安全访问软件的方法,该方法包括:基于当前软件所要访问的逻辑地址,将所述逻辑地址转换成存储器中的物理地址;当所述物理地址在与所述当前软件的当前世界对应的预设物理地址空间内、且所述当前软件对所述逻辑地址的目标访问权限与所述当前世界对所述预设物理地址空间的预设访问权限相同时,允许所述当前软件访问所述逻辑地址;其中,所述电子装置的软件运行环境具有多个世界,所述多个世界中的每个世界分别对应至少两个物理地址空间、以及对所述至少两个物理地址空间分别对应不同的访问权限,所述当前世界为所述多个世界之一;所述访问权限包括以下之一:读取或改写物理地址空间中存储的软件、仅限于读取物理地址空间中存储的软件、仅限于执行物理地址空间中存储的软件。
在一种可能的实现方式中,所述方法还包括:当满足所述物理地址在与所述当前软件的当前世界对应的预设物理地址空间之外、和所述目标访问权限与所述预设访问权限不同二者中的至少一项时,执行安全保护操作。
在一种可能的实现方式中,所述方法还包括:根据预存的映射关系,确定与所述当前世界对应的所述预设物理地址空间以及所述预设访问权限;其中,所述映射关系用于指示所述多个世界中每个世界的所述至少两个物理地址空间与对所述至少两个物理地址空间的不同访问权限;所述映射关系存储于所述存储器中。
在一种可能的实现方式中,所述将所述逻辑地址转换成存储器中的物理地址,具体包括:基于所述逻辑地址,分别查询至少一次第一页表和至少一次第二页表;依据所述第一页表,将所述逻辑地址转换成至少一级中间地址;当所述至少一级中间地址中的每一级中间地址均被允许访问时,将所述至少一级中间地址中最后一级中间地址转换成所述物理地址;其中,所述第一页表中记录有所述至少一级中间地址、以及所述多个世界中的每个世界对所述至少一级中间地址的访问权限;所述第二页表中记录有所述至少一级中间地址的访问权限。
在一种可能的实现方式中,所述方法还包括:当存在一级中间地址不被允许访问时,执行安全保护操作。
在一种可能的实现方式中,所述安全保护操作包括以下至少一项:复位处理器、拒绝所述处理器当前运行的软件对逻辑地址的访问、指示所述处理器停止运行、禁止所述处理器的至少部分功能和阻止所述处理器访问所述存储器。
第三方面,本申请实施例提供一种装置,该装置包括:转换模块,用于基于当前软件所要访问的逻辑地址,将所述逻辑地址转换成存储器中的物理地址;允许访问模块,用于当所述物理地址在与所述当前软件的当前世界对应的预设物理地址空间内、且所述当前软件对所述逻辑地址的目标访问权限与所述当前世界对所述预设物理地址空间的预设访问权限相同时,允许所述当前软件访问所述逻辑地址;其中,所述电子装置的软件运行环境具有多个世界,所述多个世界中的每个世界分别对应至少两个物理地址空间、以及对所述至少两个物理地址空间分别对应不同的访问权限,所述当前世界为所述多个世界之一;所述访问权限包括以下之一:读取或改写物理地址空间中存储的软件、仅限于读取物理地址空间中存储的软件、仅限于执行物理地址空间中存储的软件。
在一种可能的实现方式中,所述装置还包括:第一安全保护模块,用于当满足所述物理地址在与所述当前软件的当前世界对应的预设物理地址空间之外、和所述目标访问权限与所述预设访问权限不同二者中的至少一项时,执行安全保护操作。
在一种可能的实现方式中,所述装置还包括:确定模块,用于根据预存的映射关系,确定与所述当前世界对应的所述预设物理地址空间以及所述预设访问权限;其中,所述映射关系用于指示所述多个世界中每个世界的所述至少两个物理地址空间与对所述至少两个物理地址空间的不同访问权限;所述映射关系存储于所述存储器中。
在一种可能的实现方式中,所述转换模块具体用于:基于所述逻辑地址,分别查询至少一次预先设定的第一页表和至少一次预先设定的第二页表;依据所述第一页表,将逻辑地址转换成至少一级中间地址;依据所述第一页表和所述第二页表,当所述至少一级中间地址中的每一级中间地址均被允许访问时,将所述至少一级中间地址中最后一级中间地址转换成所述物理地址;其中,所述第一页表中记录有所述至少一级中间地址、以及所述多个世界中的每个世界对所述至少一级中间地址的访问权限;所述第二页表中记录有所述多个世界中的每个世界对所述至少一级中间地址的访问权限。
在一种可能的实现方式中,所述装置还包括:第二安全保护模块,用于当存在至少一级中间地址不被允许访问时,执行安全保护操作。
在一种可能的实现方式中,所述安全保护操作包括以下至少一项:复位处理器、拒绝所述处理器当前运行的软件对逻辑地址的访问、指示所述处理器停止运行、禁止所述处理器的至少部分功能和阻止所述处理器访问所述存储器。
第四方面,本申请实施例提供一种系统级芯片,所述装置包括控制器和接口电路,所述接口电路用于耦合存储器,所述存储器中存储有指令程序;所述控制器被配置用于调用所述存储器存储的全部或部分计算机程序,执行上述第二方面所述的方法。
第五方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储中存储有计算机程序,该计算机程序被控制器执行时用于实现如第二方面所述的方法。
第六方面,本申请实施例提供一种计算机程序产品,当所述计算机程序产品被控制器执行时用于实现上述第二方面所述的方法。
应当理解的是,本申请的第二至六方面与本申请的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的电子装置的一个硬件结构示意图;
图2是本申请实施例提供的电子装置的一个软件架构示意图;
图3是本申请实施例提供的存储器中的物理地址范围与各世界的访问权限之间的映射关系示意图;
图4是本申请实施例提供的各世界的访问权限、相应的比特位以及存储器中的物理地址范围之间的映射关系示意图;
图5是本申请实施例提供的应用于控制器的检测方法的一个流程图;
图6A~图6C是本申请实施例提供的基于图5所示的检测方法的应用场景示意图;
图7是本申请实施例提供的控制器将逻辑地址转换成物理地址的转换流程示意图;
图8是本申请实施例提供的应用于控制器的检测方法的又一个流程图;
图9是本申请实施例提供的用于安全访问软件的方法的一个流程图;
图10是本申请实施例提供的装置的一个结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文所提及的"第一"、"第二"以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,"一个"或者"一"等类似词语也不表示数量限制,而是表示存在至少一个。
在本申请实施例中,“示例性的”或者“例如”等词用于表示例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
请参考图1,其示出了本申请实施例提供的电子装置100的一个硬件架构示意图。该电子装置100可以位于一个终端内。该终端可以是一个用户设备(user equipment,UE),如手机、平板电脑或可穿戴设备(如智能手表)等各种类型的便携式终端设备。图1仅是电子装置100的一个示例,可替换地,电子装置100还可以是任一类型设备,例如芯片或芯片组或搭载有芯片或芯片组的电路板等,本实施例对此不限定。该芯片或芯片组或搭载有芯片或芯片组的电路板可在适合的软件驱动下工作。电子装置100包括处理器101和控制器102。可选地,所述处理器101和控制器102可以集成在一个或多个芯片内,该一个或多个芯片可以被视为是一个芯片组,当一个或多个处理器被集成在同一个芯片内时该芯片也叫片上系统(system on a chip,SOC),具体如图1所示。处理器101可以包括逻辑计算单元和寄存器(包括但不限于数据寄存器和指令寄存器等)等用于加载程序、执行指令内容的部件,所述控制器102也可存在于处理器101外部,本实施例对此不限定。处理器101例如包括但不限于中央处理器(central processing unit,CPU)或者专用处理器,例如,专用处理器包括人工智能处理器、神经网络处理器、数字信号处理器或图像处理处理器。控制器102可以包括但不限于内存管理单元(Memory Management Unit,MMU)。只要控制器102可以达到进行逻辑地址至物理地址的转换并实现后续判断流程即可,其实现形式本实施例不限定。电子装置100还可以包括一个或多个其他部件,例如存储器103。存储器103可以示例性地包括易失性存储器,例如动态随机存取存储器(DRAM)等用于存储指令和数据的部件。其中,存储器103可以选择性的集成于上述SOC中或者设置于上述SOC之外。图1中示意性的示出了存储器103设置于SOC之外的情形。存储器103中可以存储各种操作系统程序(例如通用操作系统程序和可信操作系统程序)、应用程序、运行所需要的指令代码和数据等。处理器101和控制器器102通过加载程序和指令、获取数据,执行电子装置100的各种功能应用以及数据处理。可选的,存储器103还可以包括缓存(cache),缓存可以集成于片上系统中。
本申请实施例中,电子装置100的软件运行架构可以为ARM公司提出的Arm机密计算体系结构(Confidential Compute Architectur,CCA)。在ArmCCA架构下,电子装置100的软件运行环境可以包括普通世界(normal world)、安全世界(secure world)、境界世界(realm world)和根世界(root world),如图2所示。normal world、secure world、realmworld和root world分别对应存储器103中不同的物理地址空间。其中,运行于normalworld中的软件仅可以访问normal world对应的物理地址空间;运行于secure world中的软件仅可以访问存储器103中与secure world对应的物理地址空间;运行于realm world中的软件仅可以访问存储器103中与realm world对应的物理地址空间;运行于root world中的软件仅可以访问存储器103中与root world对应的物理地址空间。normal world的安全性最低,root world的安全性最高。运行于normal world中的软件例如可以包括普通应用(AP,application)软件、通用操作系统软件和管理程序(hypervisor)软件;运行于secureworld中的软件例如可以包括但不限于可信应用(trust application)软件、可信操作系统软件和安全分区管理(secure partition management,SPM)软件;运行于realm world中的软件例如可以包括领域管理监视器(realm management monitor,RMM)软件、应用软件,运行于root world中的软件例如可以包括监控器(monitor)软件。本申请实施例中所述的软件可以包括指令和数据。此外,normal world、secure world和realm world之间的切换由监控器监测并执行。
进一步的,软件运行架构在ArmCCA架构的基础上,软件运行环境又可以划分为多个异常级别(EL,Exception Level)。图2中示意性的示出了EL0~EL3四个异常级别。上述普通应用(通常为第三方应用,例如视频类应用、购物类应用)和可信应用可以运行于异常级别EL0,通用操作系统(例如windows系统、Android系统、Redhat Linux系统或者鸿蒙操作系统等)和可信操作系统可以运行于异常级别EL1,hypervisor、安全分区管理以及领域管理监视器可以运行于异常级别EL2,监控器可以运行于异常级别EL3。其中,异常级别EL0的级别最低,异常级别EL3的级别最高。
需要说明的是,本申请实施例中,realm world包括独立于其他各世界的硬件,realm world的硬件与所有其他非root world的硬件完全隔离开。realm world中可以运行专属于realm world的固件和虚拟机。另外,本申请实施例中,realm word可以被hypervisor软件初始化,realm word中运行的虚拟机可以在normal world由hypervisor软件生成并控制,但硬件执行则在realm world中。也即是说,realm word被初始化后,realmword中运行的软件以及保存的重要代码或数据、以及realm word的状态无法被电子装置100上运行的其他软件监视或修改,也即无法被normal world中的任何软件监视或修改。通常,诸如内核页表、Linux进程的cred结构体、selinux的数据库等重要数据存储于存储器103中与realm word对应的物理地址空间内,以保证该重要数据不被normal world运行的软件监视或修改。由此,可以提高电子装置100运行的安全性。
基于图1所示的电子装置100的硬件架构,图2所示的电子装置100的软件架构,为了进一步提高电子装置100的安全性,本申请实施例提供的电子装置100中设置有物理地址空间与上述各世界的访问权限之间的映射关系。下面通过具体示例,对物理地址空间与上述各世界的访问权限之间的映射关系进行详细说明。如图3所示,图3示意性的示出了存储器103中物理地址空间所对应的上述各世界的访问权限,即显示了所述映射关系。如图3所示,物理地址空间0x2000~0x2999对应于仅限于安全世界读/写(secure world read/write only),也即该物理地址空间内存储的软件,仅限于除了运行于secure world中的软件进行读取和改写,其余世界无法访问;物理地址空间0x3000~0x3999对应于仅限于普通世界读/写(normal world read/write only),也即该物理地址空间内存储的软件,仅限于运行于normal world中的软件进行读取和改写,其余世界无法访问;物理地址空间0x4000~0x4999对应于仅限于根世界读/写(root world read/write only),也即该物理地址空间内存储的软件,仅限于运行于root world中的软件读取和改写,其余世界无法访问;物理地址空间0x5000~0x5999对应于仅限于境界世界读/写(realm world read/write only),也即该物理地址空间内存储的软件,仅限于运行于realm world中的软件读取和改写,其余世界无法访问。
以上所示的映射关系,限定了运行于各世界的软件既能读取、又能改写的物理地址空间。上述映射关系中,还可以限定出存储器103中仅限于各世界运行的软件进行读取、无法进行改写的物理地址空间。如图3所示,物理地址空间0x7000~0x7999对应于仅限于安全世界读取(secure world read only),也即该物理地址空间内存储的软件,仅限于运行于secure world中的软件进行读取,运行于secure world中的软件无法对其进行该写,其余世界无法访问该空间;物理地址空间0x8000~0x8999对应于仅限于普通世界读取(normal world read only),也即该物理地址空间内存储的软件,仅限于运行于normalworld中的软件进行读取,运行于normal world中的软件无法对其进行该写,其余世界无法访问该空间;物理地址空间0x9000~0x9999对应于仅限于根世界读取(root world readonly),也即该物理地址空间内存储的软件,仅限于运行于root world中的软件读取,运行于root world中的软件无法对其进行该写,其余世界无法访问该空间;物理地址空间0x10000~0x10999对应于仅限于境界世界读取(realm world read only),也即该物理地址空间内存储的软件,仅限于运行于realm world中的软件读取,运行于realm world中的软件无法对其进行该写,其余世界无法访问该空间。
进一步的,上述映射关系中,还限定了存储器103中,仅限于运行于各世界的软件执行软件程序,无法进行读取和改写物理地址空间中存储的软件程序。如图3所示,物理地址空间0x11000~0x11999对应于安全世界只可执行(secure world execution onlymemory),也即该物理地址空间内存储的软件程序,仅限于运行于secure world中的软件执行,无法进行读取和该写;物理地址空间0x12000~0x12999对应于普通世界只可执行(normal world execution only memory),也即该物理地址空间内存储的软件程序,仅限于运行于normal world中的软件执行;物理地址空间0x13000~0x13999对应于根世界只可执行(root world execution only memory),也即该物理地址空间内存储的软件程序,仅限于运行于root world中的软件执行;物理地址空间0x14000~0x14999对应于境界世界只可执行(realm world execution only memory),也即该物理地址空间内存储的软件程序,仅限于运行于realm world中的软件执行。
本申请实施例中,物理地址空间与上述各世界的访问权限之间的映射关系可以存储于存储器103中。具体实现中,存储器103中可以存储有页表,该页表专用于记录物理地址空间与各世界的访问权限之间的映射关系,该映射关系以映射表的方式记录在所述页表中。在该种可能的实现方式中,为了避免黑客改写页表中所记录的映射关系,上述映射关系可以存储于图2所示的root word(也即异常级别EL3)所对应的物理地址空间中。用于存储上述映射关系的物理地址空间例如可以为如上所述的物理地址空间0x9000~0x9999,也可以为该物理地址空间之外的其他物理地址空间。优选的,用于存储上述映射关系的物理地址空间,可以为仅限于运行于root word中的软件读取、但不能改写的物理地址空间。这样一来,可以避免黑客通过攻击运行于root word中的软件来改写上述映射关系,从而提高电子装置100运行的安全性。
需要说明的是,如图3所示的映射关系仅为示意性的,实际应用中,上述各世界对物理地址空间的访问权限,可以基于存储器容量的大小而对物理地址空间进行划分、以及建立所划分的物理地址空间与各世界的访问权限之间的映射关系。此外,在图3所示的映射关系中,示意性的示出了各世界的访问权限所对应的物理地址空间均为一块区域空间,在其他可能的实现方式中,如图3所示的多种访问权限中的每一个种访问权限,均可以对应多块物理地址空间,其所对应的多块物理地址空间可以为连续的或者不连续的地址空间。举例来说,假设存储器103中除了图3所示的物理地址空间之外,还设置有物理地址空间0x15000~0x15999,该物理地址空间仅限于root world读取。也即是说,该示例中,仅限于root world读取的物理地址空间包括物理地址空间0x9000~0x9999和物理地址空间0x15000~0x15999该两块不连续的物理地址空间。
传统技术中,基于如图2所示的软件架构,该软件架构中,仅限定了运行于各世界的软件所能读取和改写的物理地址空间。这就导致黑客通过攻击运行于某一世界的软件,来读取或改写与该世界对应的物理地址空间内存储的指令或数据,导致物理地址空间内存储的重要指令或数据被泄露或改写,从而导致电子装置100的安全问题。本申请实施例通过在限定出运行于各世界的软件所能读取和改写的物理地址空间的基础上,进一步限定出运行于各世界的软件仅能读取(无法改写)的物理地址空间、以及运行于各世界的软件仅能执行(无法读取和改写)的物理地址空间,从而,电子装置100中的重要指令或数据可以存储于存储器103中、运行于各世界的软件仅能读取的物理地址空间内,或者电子装置100中的重要指令可以存储于存储器103中、运行于各世界的软件仅能执行的物理地址空间内,从而可以降低重要指令或数据被盗取或篡改的风险,提高电子装置100运行的安全性。
进一步的,本申请实施例可以采用多位比特(bit)位来指示上述各种访问权限。也即是说,物理地址空间与上述各世界的访问权限之间的映射关系,即为物理地址空间与用于指示各访问权限的比特位之间的映射关系。例如,以上示出了十二种访问权限,该十二种访问权限可以由4个比特位表示。访问权限与比特位之间的对应关系如图4所示。此外,图4中还示出了比特位与物理地址空间之间的映射关系。其中,仅限于运行于secure world中的软件读取和改写的访问权限,可以由比特位“1000”表示;仅限于运行于normal world中的软件读取和改写的权限,可以由比特位“1001”表示;仅限于运行于root world中的软件读取和改写的权限,可以由比特位“1010”表示;仅限于运行于realm world中的软件读取和改写的权限,可以由比特位“1011”表示;仅限于运行于secure world中的软件读取的权限,可以由比特位“0010”表示;仅限于运行于normal world中的软件读取的权限,可以由比特位“0100”表示;仅限于运行于root world中的软件读取的权限,可以由比特位“0101”表示;仅限于运行于realm world中的软件读取的权限,可以由比特位“1010”表示;仅限于运行于secure world中的软件执行的权限,可以由比特位“1100”表示;仅限于运行于normalworld中的软件执行的权限,可以由比特位“1101”表示;仅限于运行于root world中的软件执行的权限,可以由比特位“1110”表示;仅限于运行于realm world中的软件执行的权限,可以由比特位“0110”表示。
以上介绍了存储器103中专供一个世界访问的物理地址空间,存储器103中还可以设置有供所有世界读取和该写的物理地址空间。另外,存储器103中还可以设置有禁止任何世界访问的物理地址空间,该供所有世界读取和该写的物理地址空间、以及禁止任何世界访问的物理地址空间均不同于以上描述的任一物理地址空间。例如,在图3中,物理地址空间0x6000~0x6999对应于任何世界均可读/写(any read/write access),也即该物理地址空间内存储的软件,运行于上述任何世界中的软件均可以读取和改写;物理地址空间0x16000~0x16999,禁止任何世界访问。其中,供所有世界读取和该写的权限,可以由比特位“1111”表示;禁止任何世界访问的权限,可以由比特位“0000”表示。
本申请实施例中,存储器103中除了包括供各世界访问的物理地址空间之外,还可以包括用于存储区域描述信息(block descriptor)以及页表描述信息(tabledescriptor)等信息的物理地址空间,该物理地址空间未在附图中示出。其中,blockdescriptor可以由比特位“0001”表示;table descriptor可以由比特位“0011”表示。
本申请实施例中,限制运行于各世界的软件对物理地址空间的访问,是控制器102基于处理器101当前运行的软件所要访问的物理地址、当前运行的软件所位于的当前世界、当前运行的软件对物理地址的目标访问权限、以及物理地址空间与各世界的访问权限之间的映射关系,通过执行检测流程来实现的。通常,处理器101的工作流程通常包括从存储器103取指令(instruction fetch)、对指令译码(decode)和执行指令内容等多个阶段。其中,处理器101在取指令阶段需要从存储器103获取指令,处理器101在执行指令内容阶段需要从存储器103读取数据、以及将操作完成的数据写回存储器103。从而,控制器102限制运行于当前世界的软件对物理地址空间的访问,可以应用于处理器101取指令阶段和执行指令内容的阶段。具体工作中,处理器101当前所运行的软件在访问存储器103中的指令或数据之前,处理器101需要将当前运行的软件所要访问的存储器103中的逻辑地址VA1、以及对逻辑地址VA1的目标访问权限提供给控制器102。该目标访问权限可以包括读取指令或数据、写入数据或者执行指令程序中的一项。处理器101将逻辑地址VA1提供给控制器102时,还可以一并将目标访问权限发送给控制器102。可替换地,处理器101还可以将目标访问权限在独立于逻辑地址VA1的另一个指示信息中提供给控制器102,本实施例对此不限定。下面通过图5所示的检测流程500,进行更为详细的描述。请参考图5,图5为应用于控制器102的检测流程500,该检测流程500包括如下过程。
步骤501,控制器102接收来自于处理器101的逻辑地址VA1以及对逻辑地址VA1的目标访问权限。这里的目标访问权限包括以下之一:读取所述逻辑地址中的指令或数据、向所述逻辑地址中写入数据、执行所述逻辑地址中存储的软件程序。
步骤502,控制器102将逻辑地址VA1转换成物理地址PA1。
步骤503,控制器102检测物理地址PA1是否在与当前软件的当前世界对应的预设物理地址空间内。当控制器102检测出物理地址PA1位于与当前软件的当前世界对应的预设物理地址空间内时,执行步骤504;当控制器102检测出物理地址PA1位于与当前软件的当前世界对应的预设物理地址空间之外时,执行步骤506。
步骤504,控制器102检测目标访问权限与当前世界对预设物理地址空间的预设访问权限是否相同。当控制器102检测出目标访问权限与当前世界对预设物理地址空间的预设访问权限相同时,执行步骤505;当控制器102检测出目标访问权限与当前世界对预设物理地址空间的预设访问权限不同时,执行步骤506。这里的访问权限包括以下之一:读取或改写物理地址空间中存储的软件、仅限于读取物理地址空间中存储的软件、仅限于执行物理地址空间中存储的软件。
本申请实施例中,所述目标访问权限与所述当前世界对所述预设物理地址空间的预设访问权限相同,还可以是指所述目标访问权限位于所述预设访问权限范围内。例如,当所述预设访问权限包括当前世界既可以读取所述预设物理地址空间中的软件、也可以改写所述预设物理地址空间中的软件,而目标访问权限为读取或者改写所述逻辑地址中的软件,则也可以理解为所述目标访问权限与所述当前世界对所述预设物理地址空间的预设访问权限相同。
步骤505,允许处理器102访问逻辑地址VA1。
本申请实施例中,允许处理器102访问逻辑地址VA1可以包括多种可能的实现方式。第一种可能的实现方式中,控制器102可以将对逻辑地址VA1转换得到的物理地址PA1,直接提供至处理器101,从而处理器101从存储器103中访问该物理地址PA1,以从该物理地址PA1读取指令、读取数据、向该物理地址PA1写入数据、或者执行物理地址PA1存储的程序。第二种可能的实现方式中,电子装置100还可以包括直接存储器存取(direct memoryaccess,DMA)控制器,控制器102可以将上述物理地址PA1提供至DMA控制器,从而DMA控制器将存储器103中物理地址PA1存储的指令或者数据搬移至处理器101或其他处理器101希望存储的存储区域中,或者将处理器101或所述存储区域中待存储的数据搬移至物理地址PA1中。第三种可能的实现方式中,控制器102可以将物理地址PA1提供至处理器101,处理器101将物理地址PA1转发给DMA控制器,从而DMA控制器将存储器103中物理地址PA1存储的指令或者数据搬移至处理器101或其他处理器101希望存储的存储区域中,或者将处理器101或所述存储区域中待存储的数据搬移至物理地址PA1中。
步骤506,向处理器101发送指示错误的信号。在该种实现方式下,处理器501接收到指示错误的信号之后,可以执行安全保护操作,该安全保护操作可以包括但不限于:以下至少一项:复位处理器101、拒绝处理器101当前运行的软件对逻辑地址的访问、停止运行处理器101、禁止处理器101中的至少部分功能和阻止处理器101访问存储器103。从而,可以提高软件运行的安全性。
从图5所示的检测流程500中可以看出,本申请实施例通过限定出运行于各世界的软件所能读取和改写的物理地址空间、运行于各世界的软件仅能读取(无法改写)的物理地址空间、以及运行于各世界的软件仅能执行(无法读取和改写)的物理地址空间,电子装置100中的重要指令或数据可以存储于存储器103中、运行于各世界的软件仅能读取的物理地址空间内,或者电子装置100中的重要指令可以存储于存储器103中、运行于各世界的软件仅能执行的物理地址空间内;另外,控制器102基于处理器101当前所位于的世界,在确定出理地址PA1在与当前软件的当前世界对应的预设物理地址空间内、且目标访问权限与当前世界对预设物理地址空间的预设访问权限相同时,才可以将物理地址PA1提供给处理器101,从而可以避免黑客通过攻击运行于各世界的软件,来改写相应世界的物理地址空间所存储的指令或数据,从而避免重要指令程序或数据被泄露或被改写,从而提高电子装置100运行的安全性。
需要说明的是,本申请实施例中,控制器102和处理器101之间可以通过电子线路连接,电子装置100上电后、以及处理器101当前所位于的世界改变后,处理器101可以通过上述电子线路向控制器102提供指示当前所位于的世界的指示信号。例如,该指示信号可以为2个比特位,“00”指示normal world、“01”指示secure world、“10”指示root world、“11”指示realm world。举例来说,假设处理器101所运行的软件由位于secure world跳转至位于root world,处理器101所运行的软件的环境发生改变,此时处理器101可以将指示信号“10”提供给控制器102。由此,控制器102可以基于处理器101提供的指示信号确定出处理器101中运行的软件当前所位于的世界。
基于图5所示的控制器102的检测流程,下面结合图3所示的物理地址空间与各世界访问权限之间的映射关系,通过图6A~图6C所示的具体应用场景,对控制器102的工作过程进行更为详细的描述。请继续参看图6A~图6C,图6A~图6C是控制器102的检测流程的一个应用场景示意图。
应用场景一:控制器102可以预先通过电子线路获得指示处理器101当前运行的软件位于realm world的指示信号。控制器102从处理器101接收到逻辑地址VA2和指示向逻辑地址VA2中写入数据的访问权限后,首先将逻辑地址VA2转换成物理地址PA2。接着,确定物理地址PA2是否在与当前软件的当前世界对应的物理地址空间内。从图3中可以看出,realmworld对应的物理地址空间包括物理地址空间0x5000~0x5999、物理地址空间0x11000~0x11999以及物理地址空间0x15000~0x15999。假设物理地址PA2为0x11500,也即物理地址PA2位于如图3所示的物理地址空间0x11000~0x11999范围内。也即物理地址PA2位于与当前软件的当前世界对应的物理地址空间内。从图3所示的物理地址空间与各世界访问权限之间的映射关系中可以看出,物理地址空间0x11000~0x11999对应于realm world readonly,也即物理地址PA2中的软件,仅限于运行于realm world中的软件读取,运行于realmworld中的软件不可以对该物理地址该写,运行于其他世界的软件无法访问物理地址PA2。也即是说,处理器101中当前运行的软件需要对物理地址PA2中的数据进行该写,而物理地址PA2仅限于realm world中的软件读取,不允许改写,也即处理器101发送的对逻辑地址VA2的访问权限、与查询到的realm word对物理地址空间0x11000~0x11999的访问权限不同。最后,控制器102将指示错误的信号传输给处理器101,以供处理器101对电子装置100执行安全防护处理。
应用场景二:控制器102可以预先通过电子线路获得指示处理器101当前运行的软件位于normal world的指示信号。从图3中可以看出,normal world对应的物理地址空间包括物理地址空间0x3000~0x3999、物理地址空间0x8000~0x8999以及物理地址空间0x13000~0x13999。假设物理地址PA3为0x11501,也即物理地址PA3位于如图3所示的物理地址空间0x11000~0x11999范围内。从图3所示的物理地址空间与各世界访问权限之间的映射关系中可以看出,物理地址空间0x11000~0x11999对应于realm world read only。也即物理地址PA3中的软件,仅限于运行于realm world中的软件读取,运行于其他世界的软件无法访问物理地址PA3。从而,物理地址PA3在与当前软件的当前世界对应的预设物理地址空间之外。最后,控制器102将指示错误的信号传输给处理器101,以供处理器101对电子装置100执行安全防护处理。
应用场景三:控制器102可以预先通过电子线路获得指示处理器101当前运行的软件位于realm world的指示信号。控制器102从处理器101接收到逻辑地址VA4和指示从逻辑地址VA4中读取数据的访问权限后,首先将逻辑地址VA4转换成物理地址PA4。realm world对应的物理地址空间包括物理地址空间0x5000~0x5999、物理地址空间0x11000~0x11999以及物理地址空间0x15000~0x15999。假设物理地址PA4为0x11502,也即物理地址PA4位于如图3所示的物理地址空间0x11000~0x11999范围内。也即物理地址PA2位于与当前软件的当前世界对应的物理地址空间内。从图3所示的物理地址空间与各世界访问权限之间的映射关系中可以看出,物理地址空间0x11000~0x11999对应于realm world read only。也即物理地址PA4中的软件,仅限于运行于realm world中的软件读取,运行于realm world中的软件不可以对该物理地址该写,运行于其他世界的软件无法访问物理地址PA4。处理器101中当前运行的软件需要从逻辑地址VA4中读取数据,物理地址PA4同样也仅限于realmworld中的软件读取,也即处理器101发送的对逻辑地址VA4的访问权限、与查询到的realmword对物理地址空间0x11000~0x11999的访问权限相同。最后,控制器102将物理地址PA4提供给处理器101,以供处理器101当前运行的软件从物理地址PA4中读取数据。
基于图5所示的控制器102的检测流程,控制器102可以通过多级翻译和检测,将处理器101提供的逻辑地址转换成物理地址。在一种可能的实现方式中,控制器102可以通过两级转换,将处理器101提供的逻辑地址转换成物理地址。具体的,控制器102可以分别查询至少一次第一页表,将逻辑地址转换成至少一级中间地址,以及检测至少一级中间地址中的每一级中间地址是否被允许访问;此外,控制器102可以查询至少一次第二页表,检测至少一级中间地址是否被允许访问。当检测出至少一级中间地址中的每一级中间地址均被允许访问时,将至少一级中间地址中最后一级中间地址转换成物理地址;其中,第一页表中记录有至少一级中间地址、以及多个世界中的每个世界对所述至少一级中间地址的访问权限;第二页表中记录有多个世界中的每个世界对至少一级中间地址的访问权限。也即是说,控制器102可以通过查询第一页表,对逻辑地址进行翻译和检测,将逻辑地址转换成上述中间地址,需要说明的是,上述中间地址均为物理地址,以及对所转换至少一级中间地址进行权限检查;通过查询第二页表,对至少一级中间地址进行权限检查。需要说明的是,控制器102中所设置的各级转换,可以是预先通过固件设置于控制器102中的,在控制器102上电后或者运行过程中均不可以改变。上述第一页表可以存储于图2所示的异常级别EL1中,该第一页表也可以称为(stage1 table);上述第二页表存储于图2所示的异常级别EL3对应的物理地址空间中,该第二页表也可以称为(stage3 table)。
需要说明的是,在其他一些可能的实现方式中,可以通过三级转换将逻辑地址转换成物理地址,例如,控制器102可以通过查询第一页表,对逻辑地址进行翻译和检测,将逻辑地址转换成第一中间地址,以及对该第一中间地址进行权限检测,该第一中间地址通常为逻辑地址;然后,控制器102可以通过查询第二页表,将第一中间地址转换成第二中间地址,及对该第二中间地址进行权限检测,该第二中间地址通常为物理地址;最后,控制器102可以通过查询第三页表,对所转换的第二中间地址进行多级权限检查。
本申请实施例以控制器102可以通过两级翻译和检测、将处理器101提供的逻辑地址转换成物理地址为例,通过图7所示的示例,对控制器102将逻辑地址转换成物理地址的转换方式进行更为详细的描述。如图7所示,处理器101将逻辑地址VA1提供给控制器102,假设处理器101当前运行的软件位于如图2所示的等级EL0。控制器102经过多次查询第一页表进行翻译和检测、经过多次查询第二页表进行检测以输出物理地址PA1。图7中,横向为通过查询第一页表进行翻译和检测,纵向为通过查询第二页表进行检测。具体的,控制器102基于逻辑地址VA1执行第一阶段的第一级页表查询。
第一阶段的第一页表查询:基于逻辑地址VA,经过查询第一级页表,查找出LV0页表中所存储的LV1的物理地址PAlv1,同时对该物理地址进行检测,确定处理器101请求的物理地址访问是否被允许,当该访问不被允许时,控制器102可以向处理器101传输指示错误的消息;当该访问被允许时,控制器102执行如下第一阶段的第二级页表查询。
第一阶段的第二页表查询:控制器102基于LV1的物理地址PAlv1,查询LV0页表项,查找出记录在LV0中的检测内容,以检测物理地址PAlv1的访问是否被允许,当访问不被允许时,控制器102可以向处理器101传输指示错误的信号;当访问允许时,控制器102继续查询记录在LV1中的检测内容,检测物理地址PAlv1的访问是否被允许,当该访问不被允许时,控制器102可以向处理器101传输指示错误的信号;当该访问允许时,控制器102执行如下第二阶段的第一级页表查询。
第二阶段的第一页表查询:控制器102通过物理地址PAlv1查找出LV1页表中所记录的LV2的物理地址PAlv2,同时对该物理地址进行检测,确定处理器101请求的物理地址访问是否被允许,当该访问不被允许时,控制器102可以向处理器101传输指示错误的信号;当该访问被允许时,控制器102执行如下第二阶段的第二级页表查询。
第二阶段的第二页表查询:控制器102基于LV1的物理地址PAlv2,查询LV0中的检测内容,以检测物理地址PAlv2的访问是否被允许,当访问不被允许时,控制器102可以向处理器101传输指示错误的消息;当访问允许时,控制器102继续查询记录在LV1中的检测内容,检测物理地址PAlv2的访问是否被允许,当该访问不被允许时,控制器102可以向处理器101传输指示错误的消息;当该访问允许时,控制器102通过物理地址PAlv2查找出LV2页表中所存储的LV3的物理地址PAlv3,同时对该物理地址进行检测。
需要说明的是,基于如上所述类似的第一页表查询和第二页表查询的检测方式,控制器102通过多次的第一页表查询和第二页表查询,执行完成横向的第一页表的翻译和检测,以及纵向的第二页表的检测。当执行完第一页表的翻译和检测以及纵向的第二页表的检测,且每一阶段的检测均指示访问允许时,控制器102生成与逻辑地址VA1对应的物理地址PA1,也即完成由逻辑地址到物理地址的转换。
以上通过图7介绍了控制器102通过第一页表和第二页表的两级翻译和检测,以将逻辑地址VA1转换为物理地址PA1的过程。由此,在图5为所示的检测流程500的基础上,应用于控制器102的检测流程对上述步骤501进行进一步细化,得到图8所示的检测流程800。图8所示的检测流程800包括如下步骤:
步骤801,基于从处理器101获得逻辑地址VA1以及对逻辑地址VA1的访问方式,通过查询至少一次存储于异常级别EL1中的第一页表,将逻辑地址VA1转换成至少一级中间地址。
步骤802,基于第一页表,检测至少一级中间地址是否被允许访问;当检测出至少一级中间地址允许访问时,执行步骤803,当检测出存在一级中间地址不允许被访问时,执行步骤809。
步骤803,查询存储于异常级别EL3中的第二页表,检测至少一级中间地址是否被允许访问;当检测出至少一级中间地址被允许访问时,执行步骤804,当检测出至少一级中间地址不允许被访问时,执行步骤809。
步骤804,将至少一级中间地址中的最后一级中间地址转化成物理地址PA1,检测物理地址PA1是否被允许访问,当检测出物理地址PA1被允许访问时,执行步骤805;当检测出物理地址PA1不被允许访问时,执行步骤809。
步骤805,查询第二页表,检测物理地址PA1是否被允许访问;当检测出物理地址PA1允许访问时,执行步骤806;当检测出物理地址PA1不允许被访问时,执行步骤809。
步骤806,检测物理地址PA1是否在与当前软件的当前世界对应的预设物理地址空间内。当控制器102检测出物理地址PA1位于与当前软件的当前世界对应的预设物理地址空间内时,执行步骤807;当控制器102检测出物理地址PA1位于与当前软件的当前世界对应的预设物理地址空间之外时,执行步骤809。
步骤807,检测目标访问权限与当前世界对预设物理地址空间的预设访问权限相同时,执行步骤808;当控制器102检测出目标访问权限与当前世界对预设物理地址空间的预设访问权限不同时,执行步骤809。
步骤808,允许处理器102访问逻辑地址VA1。
步骤809,向处理器101发送指示错误的信号。
需要说明的是,上述步骤806~步骤809,与图5所示的检测流程500中的步骤502~步骤506相同,不再赘述。另外,上述步骤801~步骤805的具体检测方法,参考图7的相关描述,不再赘述。
传统技术中,控制器102将逻辑地址转换成物理地址,通常需要二级的地址翻译和检测,也即是说,控制器102在获得逻辑地址后,首先通过查询设置于异常级别EL1中的第一级页表,对逻辑地址进行翻译和检测,将逻辑地址转换成中间逻辑地址;然后,控制器102通过查询设置于异常级别EL2中的第二级页表,对中间逻辑地址进行翻译和检测,将中间逻辑地址转换成物理地址。以上通过图7和图8所示的示例可以看出,本申请实施例中,控制器102通过查询第一页表,对逻辑地址进行翻译和检测,将逻辑地址转换成中间地址,该中间级地址为物理地址;通过查询第二页表,对所转换的中间级地址进行权限检查,也即与现有技术所示的逻辑地址转换物理地址的方式相比,省略掉将逻辑地址转换成中间逻辑地址的转换步骤,并且将传统技术中设置于异常级别EL2以用于对物理地址检测的第二级页表,替换为设置于异常级别EL3以用于对中间级物理地址检测的第二级页表,从而可以在简化由逻辑地址转换为物理地址的转换步骤的情况下,还可以有效的对电子装置100进行有效的保护。
在本实施例中,电子装置100还可以包括通信单元(图中未示出)。该通信单元包括但不限于短距离通信单元、或蜂窝通信单元。其中,短距离通信单元通过运行短距离无线通信协议与位于移动终端外的用于接入互联网的其他设备之间进行信息交互。该短距离无线通信协议可以包括但不限于:射频识别技术支持的各种协议、蓝牙通信技术协议、或红外通信协议等。蜂窝通信单元通过运行蜂窝无线通信协议接入无线接入网,以实现移动通信单元与互联网中对各种应用进行支持的服务器进行信息交互。该通信单元可以与本申请实施例中所述的处理器101和控制器102等集成于同一SOC中,或者可以分离设置。此外,电子装置100还可选择性地包括总线或接口电路,该接口电路例如可以为输入/输出端口I/O等。其中,总线和接口电路等均可以与上述处理器101和控制器102等集成于同一SOC中。接口电路用于将控制器102与存储器103耦合。应理解,在实际应用中,电子装置100可以包括比图1所示的更多或更少的部件,本申请实施例不作限定。
基于同一发明构思,本申请实施例还提供了一种安全访问软件的方法,该安全访问软件的方法应用于如图1所示的电子装置100。请继续参看图9,其示出了本申请实施例提供的安全访问软件的方法的一个流程900。该安全访问软件的方法的流程900可以被控制器102执行,包括如下所述的步骤:步骤901,基于当前软件所要访问的逻辑地址,将所述逻辑地址转换成存储器中的物理地址;步骤902,当所述物理地址在与所述当前软件的当前世界对应的预设物理地址空间内、且所述当前软件对所述逻辑地址的目标访问权限与所述当前世界对所述预设物理地址空间的预设访问权限相同时,允许所述当前软件访问所述逻辑地址;其中,所述电子装置的软件运行环境具有多个世界,所述多个世界中的每个世界分别对应至少两个物理地址空间、以及对所述至少两个物理地址空间分别对应不同的访问权限,所述当前世界为所述多个世界之一;所述访问权限包括以下之一:读取或改写物理地址空间中存储的软件、仅限于读取物理地址空间中存储的软件、仅限于执行物理地址空间中存储的软件。
在一种可能的实现方式中,所述方法900还包括:当满足所述物理地址在与所述当前软件的当前世界对应的预设物理地址空间之外、和所述目标访问权限与所述预设访问权限不同二者中的至少一项时,执行安全保护操作。
在一种可能的实现方式中,所述方法900还包括:根据预存的映射关系,确定与所述当前世界对应的所述预设物理地址空间以及所述预设访问权限;其中,所述映射关系用于指示所述多个世界中每个世界的所述至少两个物理地址空间与对所述至少两个物理地址空间的不同访问权限;所述映射关系存储于所述存储器中。
在一种可能的实现方式中,所述将所述逻辑地址转换成存储器中的物理地址,包括:基于所述逻辑地址,分别查询至少一次第一页表和至少一次第二页表;依据所述第一页表,将所述逻辑地址转换成至少一级中间地址;当所述至少一级中间地址中的每一级中间地址均被允许访问时,将所述至少一级中间地址中最后一级中间地址转换成所述物理地址;其中,所述第一页表中记录有所述至少一级中间地址、以及所述多个世界中的每个世界对所述至少一级中间地址的访问权限;所述第二页表中记录有所述至少一级中间地址的访问权限。
在一种可能的实现方式中,所述方法900还包括:当存在一级中间地址不被允许访问时,执行安全保护操作。
在一种可能的实现方式中,所述安全保护操作包括以下至少一项:复位处理器、拒绝所述处理器当前运行的软件对逻辑地址的访问、指示所述处理器停止运行、禁止所述处理器的至少部分功能和阻止所述处理器访问所述存储器。
可以理解的是,控制器102为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本实施例可以根据上述方法示例对控制器102进行功能模块的划分,例如,可以对应各个功能划分各个不同功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图10示出了上述实施例中涉及的装置1000的一种可能的示意图,可以对之前提到的装置进行进一步扩展,例如,图10对应装置1000可以是软件装置,运行于控制器102之上,或者装置1000可以是一个软件和硬件结合的装置,被嵌入至控制器102中。如图10所示,该装置1000可以包括:转换模块1001,用于基于当前软件所要访问的逻辑地址,将所述逻辑地址转换成存储器中的物理地址;允许访问模块1002,用于当所述物理地址在与所述当前软件的当前世界对应的预设物理地址空间内、且所述当前软件对所述逻辑地址的目标访问权限与所述当前世界对所述预设物理地址空间的预设访问权限相同时,允许所述当前软件访问所述逻辑地址;其中,所述电子装置的软件运行环境具有多个世界,所述多个世界中的每个世界分别对应至少两个物理地址空间、以及对所述至少两个物理地址空间分别对应不同的访问权限,所述当前世界为所述多个世界之一;所述访问权限包括以下之一:读取或改写物理地址空间中存储的软件、仅限于读取物理地址空间中存储的软件、仅限于执行物理地址空间中存储的软件。
在一种可能的实现方式中,所述装置1000还包括:第一安全保护模块(图中未示出),用于当满足所述物理地址在与所述当前软件的当前世界对应的预设物理地址空间之外、和所述目标访问权限与所述预设访问权限不同二者中的至少一项时,执行安全保护操作。
在一种可能的实现方式中,所述装置还包括:确定模块(图中未示出),用于根据预存的映射关系,确定与所述当前世界对应的所述预设物理地址空间以及所述预设访问权限;其中,所述映射关系用于指示所述多个世界中每个世界的所述至少两个物理地址空间与对所述至少两个物理地址空间的不同访问权限;所述映射关系存储于所述存储器中。
在一种可能的实现方式中,所述转换模块1001具体用于:基于所述逻辑地址,分别查询至少一次预先设定的第一页表和至少一次预先设定的第二页表;依据所述第一页表,将逻辑地址转换成至少一级中间地址;依据所述第一页表和所述第二页表,当所述至少一级中间地址中的每一级中间地址均被允许访问时,将所述至少一级中间地址中最后一级中间地址转换成所述物理地址;其中,所述第一页表中记录有所述至少一级中间地址、以及所述多个世界中的每个世界对所述至少一级中间地址的访问权限;所述第二页表中记录有所述多个世界中的每个世界对所述至少一级中间地址的访问权限。
在一种可能的实现方式中,所述装置1000还包括:第二安全保护模块(图中未示出),用于当存在至少一级中间地址不被允许访问时,执行安全保护操作。
在一种可能的实现方式中,所述安全保护操作包括以下至少一项:复位处理器、拒绝所述处理器当前运行的软件对逻辑地址的访问、指示所述处理器停止运行、禁止所述处理器的至少部分功能和阻止所述处理器访问所述存储器。
本实施例提供的装置1000,用于执行控制器102所执行的安全访问软件的方法,可以达到与上述实现方法或装置相同的效果。具体地,以上图10对应的各个模块均可以包括软件、硬件或二者结合实现。例如,每个模块可以以软件形式实现,用于驱动控制器102工作。或者,每个模块可包括对应的处理器和相应的驱动软件两部分,即以软件或硬件结合实现。
示例性地,以上控制器102还可以包括至少一个处理器和存储器。其中,至少一个处理器可以调用所述存储器内存储的全部或部分计算机程序,对控制器102的动作进行控制管理,例如,可以用于支持控制器102执行上述各个模块执行的步骤。存储器可以用于支持控制器102执行存储程序代码和数据等,存储器包括但不限于上述存储器103的至少一部分存储空间、缓存(Cache)或寄存器。至少一个处理器可以实现或执行结合本申请公开内容所描述的各种示例性的多个逻辑模块,其可以是实现计算功能的一个或多个微处理器组合。此外,至少一个处理器还可以包括其他可编程逻辑器件、晶体管逻辑器件、或者分立硬件组件等。
本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行上述相关方法步骤实现上述实施例中的用于安全访问软件的方法。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的用于安全访问软件的方法。
其中,本实施例提供的计算机可读存储介质或者计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
另外,在本申请各个实施例中的各功能单元可以集成在一个产品中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个产品中。对应于图9,上述模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的可读存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random accessmemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (18)

1.一种电子装置,其特征在于,包括处理器和控制器;
所述处理器,用于运行当前软件,并向所述控制器发送所述当前软件所要访问的逻辑地址以及所述当前软件对所述逻辑地址的目标访问权限;
所述控制器,用于:
接收来自所述处理器的所述逻辑地址和所述目标访问权限;
将所述逻辑地址转换成存储器中的物理地址;
当所述物理地址在与所述当前软件的当前世界对应的预设物理地址空间内、且所述目标访问权限与所述当前世界对所述预设物理地址空间的预设访问权限相同时,允许所述处理器访问所述逻辑地址;
其中,所述电子装置的软件运行环境具有多个世界,所述多个世界中的每个世界分别对应至少两个物理地址空间、以及所述至少两个物理地址空间分别对应不同的访问权限,所述当前世界为所述多个世界之一;
所述访问权限包括以下之一:读取或改写物理地址空间中存储的软件、仅限于读取物理地址空间中存储的软件、仅限于执行物理地址空间中存储的软件。
2.根据权利要求1所述的电子装置,其特征在于,所述控制器还用于:
当满足所述物理地址在所述预设物理地址空间之外、和所述目标访问权限与所述预设访问权限不同二者中的至少一项时,向所述处理器发送指示错误的信号。
3.根据权利要求2所述的电子装置,其特征在于,所述处理器还用于:
基于所述指示错误的信号,执行安全保护操作,所述安全保护操作包括以下至少一项:复位所述处理器、拒绝所述处理器当前运行的软件对逻辑地址的访问、指示所述处理器停止运行、禁止所述处理器的至少部分功能和阻止所述处理器访问所述存储器。
4.根据权利要求1-3任一项所述的电子装置,其特征在于,所述电子装置还包括所述存储器;
所述存储器还用于:存储所述多个世界中每个世界的所述至少两个物理地址空间与对所述至少两个物理地址空间的不同访问权限之间的映射关系;
所述控制器,还用于根据所述映射关系,确定与所述当前世界对应的所述预设物理地址空间以及所述预设访问权限。
5.根据权利要求4所述的电子装置,其特征在于,所述控制器将所述逻辑地址转换成存储器中的物理地址,具体用于:
基于所述逻辑地址,分别查询至少一次预先设定的第一页表和至少一次预先设定的第二页表;
依据所述第一页表,将逻辑地址转换成至少一级中间地址;
依据所述第一页表和所述第二页表,当所述至少一级中间地址中的每一级中间地址均被允许访问时,将所述至少一级中间地址中最后一级中间地址转换成所述物理地址;
其中,所述第一页表中记录有所述至少一级中间地址、以及所述多个世界中的每个世界对所述至少一级中间地址的访问权限;所述第二页表中记录有所述多个世界中的每个世界对所述至少一级中间地址的访问权限。
6.根据权利要求5所述的电子装置,其特征在于,所述控制器还用于:
当存在至少一级中间地址不被允许访问时,向所述处理器传输指示错误的信号。
7.根据权利要求5或6所述的电子装置,其特征在于,
所述电子装置包括多个异常级别,每一个异常级别均对应所述存储器中的一段物理地址空间,且运行于低异常级别的软件禁止访问与高异常级别对应的物理地址空间,其中,所述映射关系存储于与所述多个异常级别中最高异常级别对应的物理地址空间内。
8.根据权利要求7所述的电子装置,其特征在于,所述第一页表存储于所述多个异常级别中第一异常级别对应的物理地址空间内,所述第一异常级别为低于所述最高异常级别的异常级别;
所述第二页表存储于所述最高异常级别对应的物理地址空间内。
9.根据权利要求1所述的电子装置,其特征在于,所述电子装置还包括直接存储器存取控制器;所述允许所述处理器访问所述逻辑地址,具体用于:将所述物理地址提供给所述直接存储器存取控制器;
所述直接存储器存取控制器用于:将所述物理地址中的指令或数据提供给所述处理器。
10.一种安全访问软件的方法,其特征在于,包括:
基于当前软件所要访问的逻辑地址,将所述逻辑地址转换成存储器中的物理地址;
当所述物理地址在与所述当前软件的当前世界对应的预设物理地址空间内、且所述当前软件对所述逻辑地址的目标访问权限与所述当前世界对所述预设物理地址空间的预设访问权限相同时,允许所述当前软件访问所述逻辑地址;
其中,所述电子装置的软件运行环境具有多个世界,所述多个世界中的每个世界分别对应至少两个物理地址空间、以及对所述至少两个物理地址空间分别对应不同的访问权限,所述当前世界为所述多个世界之一;
所述访问权限包括以下之一:读取或改写物理地址空间中存储的软件、仅限于读取物理地址空间中存储的软件、仅限于执行物理地址空间中存储的软件。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
当满足所述物理地址在所述预设物理地址空间之外、和所述目标访问权限与所述预设访问权限不同二者中的至少一项时,执行安全保护操作。
12.根据权利要求10或11所述的方法,其特征在于,所述方法还包括:
根据预存的映射关系,确定与所述当前世界对应的所述预设物理地址空间以及所述预设访问权限;
其中,所述映射关系用于指示所述多个世界中每个世界的所述至少两个物理地址空间与对所述至少两个物理地址空间的不同访问权限;
所述映射关系存储于所述存储器中。
13.根据权利要求10-12任一项所述的方法,其特征在于,所述将所述逻辑地址转换成存储器中的物理地址,具体包括:
基于所述逻辑地址,分别查询至少一次预先设定的第一页表和至少一次预先设定的第二页表;
依据所述第一页表,将逻辑地址转换成至少一级中间地址;
依据所述第一页表和所述第二页表,当所述至少一级中间地址中的每一级中间地址均被允许访问时,将所述至少一级中间地址中最后一级中间地址转换成所述物理地址;
其中,所述第一页表中记录有所述至少一级中间地址、以及所述多个世界中的每个世界对所述至少一级中间地址的访问权限;所述第二页表中记录有所述多个世界中的每个世界对所述至少一级中间地址的访问权限。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
当存在至少一级中间地址不被允许访问时,执行安全保护操作。
15.根据权利要求10-14任一项所述的方法,其特征在于,所述安全保护操作包括以下至少一项:复位处理器、拒绝所述处理器当前运行的软件对逻辑地址的访问、指示所述处理器停止运行、禁止所述处理器的至少部分功能和阻止所述处理器访问所述存储器。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,该计算机程序被控制器执行时用于实现如权利要求10-15任一项所述的方法。
17.一种计算机程序产品,其特征在于,当所述计算机程序产品被控制器执行时用于实现如权利要求10-15任一项所述的方法。
18.一种系统级芯片,其特征在于,包括:
控制器和接口电路;
所述接口电路用于耦合存储器,所述存储器中存储有指令程序;
所述控制器被配置用于执行所述存储器中的程序指令,以实现如权利要求10-15中的任一所述方法。
CN202210911423.3A 2022-07-30 2022-07-30 电子装置和安全访问软件的方法 Pending CN117521054A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210911423.3A CN117521054A (zh) 2022-07-30 2022-07-30 电子装置和安全访问软件的方法
PCT/CN2023/101009 WO2024027356A1 (zh) 2022-07-30 2023-06-19 电子装置和安全访问软件的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210911423.3A CN117521054A (zh) 2022-07-30 2022-07-30 电子装置和安全访问软件的方法

Publications (1)

Publication Number Publication Date
CN117521054A true CN117521054A (zh) 2024-02-06

Family

ID=89750044

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210911423.3A Pending CN117521054A (zh) 2022-07-30 2022-07-30 电子装置和安全访问软件的方法

Country Status (2)

Country Link
CN (1) CN117521054A (zh)
WO (1) WO2024027356A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10114958B2 (en) * 2015-06-16 2018-10-30 Microsoft Technology Licensing, Llc Protected regions
EP3726390B1 (en) * 2018-02-02 2024-04-24 Huawei Technologies Co., Ltd. Method and device for protecting kernel integrity
CN109446835A (zh) * 2018-09-30 2019-03-08 龙芯中科技术有限公司 数据访问控制方法、装置及设备
KR20210112923A (ko) * 2020-03-06 2021-09-15 삼성전자주식회사 시스템 온 칩 및 이의 동작 방법
CN113486410B (zh) * 2021-06-30 2023-11-21 海光信息技术股份有限公司 一种保护数据安全的方法、cpu核、cpu芯片和电子设备

Also Published As

Publication number Publication date
WO2024027356A1 (zh) 2024-02-08

Similar Documents

Publication Publication Date Title
TWI570589B (zh) 用以提供受信任計算之裝置
US8122514B2 (en) Software enhanced trusted platform module
US11921646B2 (en) Secure address translation services using a permission table
US11443034B2 (en) Trust zone-based operating system and method
KR102383900B1 (ko) 타겟 메모리 어드레스에 대응한 메모리 속성 유닛의 영역을 식별하는 영역식별 연산
US10706143B2 (en) Techniques for secure-chip memory for trusted execution environments
CN109359487B (zh) 一种基于硬件隔离的可扩展安全影子存储及标签管理方法
RU2439665C2 (ru) Компиляция исполняемого кода в менее доверяемом адресном пространстве
US12007906B2 (en) Method and apparatus for first operating system to access resource of second operating system
US20080222663A1 (en) Policy-Based Direct Memory Access Control
US20060047959A1 (en) System and method for secure computing
JP2013536505A (ja) ブート前動作およびセキュアモード動作用のセキュアな読み出し可能メモリ領域のサポート
US20220180009A1 (en) Peripheral component interconnect express protection controller
CN110928737B (zh) 监控样本进程的内存访问行为的方法和装置
JP6301378B2 (ja) ハードウェアテーブルウォーク(hwtw)を実行する際にいくつかの条件下でレジスタの内容に対する許可のないアクセスを防止するための方法および装置
US7774517B2 (en) Information processing apparatus having an access protection function and method of controlling access to the information processing apparatus
US11886350B2 (en) System memory context determination for integrity monitoring and related techniques
US7076669B2 (en) Method and apparatus for communicating securely with a token
US7389427B1 (en) Mechanism to secure computer output from software attack using isolated execution
CN117521054A (zh) 电子装置和安全访问软件的方法
US12019733B2 (en) Compartment isolation for load store forwarding
CN114490449B (zh) 一种内存访问方法、装置及处理器
EP4379560A1 (en) Electronic apparatus, and method for securely accessing software
WO2023045744A1 (zh) 加固方法、注册方法、运行方法、电子设备和存储介质
US20240119139A1 (en) Securing critical data in a storage device of a computer system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication