CN109814934A - 数据处理方法、装置、可读介质和系统 - Google Patents
数据处理方法、装置、可读介质和系统 Download PDFInfo
- Publication number
- CN109814934A CN109814934A CN201910100370.5A CN201910100370A CN109814934A CN 109814934 A CN109814934 A CN 109814934A CN 201910100370 A CN201910100370 A CN 201910100370A CN 109814934 A CN109814934 A CN 109814934A
- Authority
- CN
- China
- Prior art keywords
- public key
- data processing
- safe inventory
- boot process
- secure boot
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 48
- 238000000034 method Methods 0.000 claims abstract description 136
- 230000008569 process Effects 0.000 claims abstract description 119
- 230000004044 response Effects 0.000 claims abstract description 9
- 230000015654 memory Effects 0.000 claims description 98
- 238000012545 processing Methods 0.000 claims description 46
- 238000010586 diagram Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 229910021420 polycrystalline silicon Inorganic materials 0.000 description 1
- 229920005591 polysilicon Polymers 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 229910000679 solder Inorganic materials 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本申请提供了一种数据处理方法、装置、存储介质和系统,该方法包括:响应于安全引导过程的执行,将安全清单以及与安全清单相关的公钥从非信任存储区读取到信任存储区;从信任存储区中读取安全清单以及公钥,利用公钥对安全清单是否完整进行验证;如果经验证安全清单是完整的,则判断安全清单中是否包括更新指令,其中更新指令用于更新安全引导过程的引导代码;如果安全清单包括更新指令,则中断安全引导过程,并执行更新指令,以对安全引导过程的引导代码进行更新。本申请的更新指令可以通过网络方便地部署到设备上,而不需要在工厂对硬件器件进行烧录或修改,降低了硬件投入成本。
Description
技术领域
本申请的一个或多个实施例通常涉及半导体装置,特别是片上系统(SoC)装置,具体涉及一种数据处理方法、装置、可读介质和系统。
背景技术
当今,安全性是片上系统(SoC)设计的必要考量,提供基于硬件的平台安全性的基本方法包括安全启动服务。片上系统通常从内部BOOT ROM代码开始执行,后者又从外部存储器或存储单元加载并执行引导加载程序或系统。但是,无法保证BOOT ROM代码中没有错误。现有技术中,通过在OTP ROM中烧录补丁代码方式对BOOT ROM代码进行修补,但是这种修补方式存在多种限制。
发明内容
为了解决上述问题。本申请的一个或多个实施例提供一种数据处理方法、装置、存储介质和设备。
根据本申请的一些方面,公开一种数据处理方法,其特征在于,包括:
响应于安全引导过程的执行,将安全清单以及与安全清单相关的公钥从非信任存储区读取到信任存储区;
从所述信任存储区中读取所述安全清单以及所述公钥,利用所述公钥对所述安全清单是否完整(integrity)进行验证;
如果经验证所述安全清单是完整的,则判断所述安全清单中是否包括更新指令,其中所述更新指令用于更新所述安全引导过程的引导代码;
如果所述安全清单包括所述更新指令,则中断所述安全引导过程,并执行所述更新指令,以对所述安全引导过程的所述引导代码进行更新。
进一步地,还包括通过网络从服务器接收所述安全清单。
进一步地,所述利用所述公钥对所述安全清单是否完整进行验证还包括:
验证所述公钥与设定的公钥哈希是否匹配;
如果所述公钥与所述公钥哈希匹配,那么验证所述公钥是否与所述安全清单的签名匹配;和
如果所述公钥与所述安全清单的签名匹配,则判断所述安全清单是完整的。
进一步地,所述验证所述公钥是否与所述安全清单的签名是否匹配包括:
将所述公钥的摘要与所述安全清单的签名摘要进行匹配。
进一步地,如果经验证所述安全清单是不完整的,则返回错误信息并结束所述安全引导过程。
进一步地,如果经判断所述安全清单不包括所述更新指令,则继续执行所述安全引导过程。
进一步地,所述安全清单包括所述安全引导过程的元数据,所述元数据包括用于描述在所述安全引导过程中加载的软件包和签名的相关信息。
进一步地,所述公钥哈希存储在一次性可编程存储器中,其中所述一次性可编程存储器与所述非信任存储区或所述信任存储区不同。
进一步地,所述非信任存储区和所述信任存储区为非易失性存储介质。
进一步地,所述非信任存储区为非易失性存储介质,以及所述信任存储区为易失性存储介质。
进一步地,所述非信任存储区域和所述信任存储区在同一存储介质上。
进一步地,所述更新指令包括用于替换所述安全引导过程的部分过程的所述引导代码,或替换所述安全引导过程的全部过程的所述引导代码。
根据本申请的一些方面,公开一种数据处理装置,包括:
读取单元,用于响应于安全引导过程的执行,将安全清单以及与安全清单相关的公钥从非信任存储区读取到信任存储区;
验证单元,用于从所述信任存储区中读取所述安全清单以及所述公钥;并且,利用所述公钥对所述安全清单是否完整(integrity)进行验证;
更新单元,用于如果经验证所述安全清单是完整的,则判断所述安全清单中是否包括更新指令,其中所述更新指令用于更新所述安全引导过程的引导代码;如果经判断所述安全清单包括所述更新指令,则中断所述安全引导过程,并执行所述更新指令,以对所述安全引导过程的所述引导代码进行更新。
根据本申请的一些方面,公开一种机器可读介质,所述机器可读介质上存储有指令,该指令在机器上执行时使机器执行上述数据处理方法。
根据本申请的一些方面,公开一种系统,包括:
存储器,用于存储由系统的一个或多个处理器执行的指令,以及
处理器,是系统的处理器之一,用于执行上述数据处理方法。
本申请根据本申请的一些方面,其效果包括,但不局限于:
更新指令的推送可以使用FOTA(Firmware Over-The-Air)技术来完成。这样,更新指令可以通过网络方便地部署到设备上,而不需要在工厂对硬件器件进行烧录或修改,降低了硬件投入成本。此外,由于更新指令被推送到可存取的非信任存储区,而非只读存储器或OTP硬件中,因此,安全清单可以根据需要通过FOTA被不限次数的更新。
进一步地,更新指令能够对原有软件包验证的校验算法进行升级。
进一步地,更新指令能够对整个安全引导过程的引导代码进行更新/替换。
附图说明
图1示出了根据本申请实施例的数据处理装置和服务器的模块示意图。
图2示出了根据本申请实施例的服务器生成安全清单的流程示意图。
图3示出了根据本申请实施例的数据处理方法的流程示意图。
图4示出根据本申请另一个实施例的数据处理方法的流程示意图。
图5示出根据本申请另一个实施例的数据处理方法的流程示意图。
图6示出了根据本发明实施例的系统的模块示意图。
具体实施方式
为使本申请实施例的目的和技术方案更加清楚,下面将结合本申请实施例的附图,对本申请实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于所描述的本申请的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1是根据本申请实施方式的数据处理装置和服务器的装置模块示意图。该装置包括,但不局限于,膝上型设备、台式机、手持PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设备以及各种其他电子设备的其他装置。一般地,能够包含本文中所公开的处理器和/或其它执行逻辑的多个装置和电子设备一般都是合适的。
如图1所示,系统10可以包括一个或多个(图中仅示出一个)处理器110(处理器110可以包括但不限于中央处理器CPU、图像处理器GPU、数字信号处理器DSP、微处理器MCU或可编程逻辑器件FPGA等的处理装置)、BOOT ROM 120、OTP ROM 130、存储器140、以及网络接口150。系统10还包括数据处理装置121,其中,装置121包括读取单元1211、验证单元1212和更新单元1213。服务器20包括生成单元210和收发单元220。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,系统10和服务器20还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
服务器20通常由设备的原始设备制造商(OEM)进行设置。图2示出了服务器生成安全清单的流程示意图。如图2所示,在块201、生成安全清单以及与安全清单相关的公钥,并对安全清单进行加密签名,安全清单包括与数据处理装置的安全引导过程相关的软件包和签名的元数据。在块202、通过网络将安全清单发送给数据处理装置。
在本申请的一个或多个实施例中,生成单元210用于加密/签名软件包并生成对应安全清单(Manifest)。
安全清单包括安全引导过程的元数据。这些元数据描述了在引导过程中加载的软件包(Image)和加密签名的相关信息。安全清单还可以包括用于更新安全引导过程的更新指令。
安全引导过程是一种基于信任链的引导过程。引导从隐式信任组件开始,每个其他组件在执行之前都进行验证。安全引导过程的根基,称为信任根,在硬件方面,信任根通常为片上系统只读存储器(SoC ROM),例如,BOOT ROM、OTP ROM(一次性可编程只读存储器)等,SoC ROM是系统中唯一不能被简单的重编程攻击轻易地修改或替换的组件,因此,通常引导只读存储器是安全引导的第一引导节点。
在本申请的一个或多个实施例中,安全引导过程将加密检查和签名校验添加到安全引导的每个阶段过程中。例如,在引导过程中,通过采用诸如AES(Advanced EncryptionStandard)等的加密检查技术对软件包(Image)进行加密检查,确保所有被执行的软件包(Image)的机密性,防止对软件的窃取。此外,通过采用签名校验确保所有被执行的软件包(Image)的完整性,防止对运行的软件的任何未经授权或恶意的修改,以下将具体说明。
可以理解,BOOT ROM 120,即引导只读存储器,可存储用于执行系统10的安全引导过程的引导代码。OTP ROM 130可存储安全引导过程的密钥文件,例如,公钥哈希。
当设备在出厂前,生成单元210载入装置启动所需的软件包、供应商的ID和设备类别ID或者设备ID,利用制造商存储在安全硬件模块或空气隔离的计算设备中的私钥,根据选择的加密协议,生成被加密签名的安全清单,其中存储有安全清单的公钥和各个软件包的密钥。此外,与公钥对应的公钥哈希也被生成。之后,安全清单与软件包通常通过产线一起被写入系统10的非易失性存储器中。而公钥哈希则被烧录在系统10的OTP ROM中。替代或附加地,安全清单与软件包也可以选择通过网络,诸如FOTA(Firmware Over-The-Air)的方式被写入系统10的非易失性存储器中。
可以理解,要应用的加密协议可以是基于公钥签名的各种加密协议算法,诸如RSA-PSS(Rivest,Shamir and Adleman-Probabilistic Signature Scheme)。在这些协议中,受信任的供应商(服务器)使用其私钥来生成他们想要部署的代码的签名,并将其与软件二进制文件一起推送到设备。该设备包含供应商的公钥,可用于验证二进制文件是否未被修改,以及它是否由受信任的供应商提供的。
存储用于信任根的公钥可能会有问题,例如,将其嵌入片上系统只读存储器意味着所有设备都使用相同的公钥,如果私钥被盗或被成功进行逆向工程后,使得设备容易受到攻击。因此,可以使用片上系统的一次性可编程(OTP)硬件,例如多晶硅熔丝、OTP ROM等,在设备制造期间为每个系统中存储唯一的公钥值。这使得在单个类别的设备中存储了不同的公钥值,降低了攻击风险。
OTP存储器通常会消耗相当多的硅面积,因此可用的位(bits)通常是有限的,而RSA公钥的长度超过1024位,通常,对于可用的OTP存储来说,该公钥太大。然而,由于公钥不是保密的,所以可以存储在非片上系统的存储器中,并将公钥的加密哈希存储在OTP存储器。哈希的长度比公钥本身小得多(用于SHA256的哈希为256位),公钥哈希可用于在运行时验证公钥的值。
当供应商需要对设备的安全引导过程进行更新时,更新安全引导过程所需要的更新指令被载入生成单元210,生成单元210以上述相同的方式,生成包含有更新指令的安全清单。包含有更新指令的安全清单可通过收发单元220推送的系统10中,该安全清单被存储在可存取的非信任存储区。作为一个示例,安全清单的推送可以使用FOTA(Firmware Over-The-Air)技术来完成。这样,安全清单可以通过网络方便地部署到系统10上,而不需要在工厂对硬件器件进行烧录或修改,降低了硬件投入成本。此外,由于安全清单被推送到可存取的非信任存储区,而非只读存储器或OTP硬件中,因此,安全清单可以根据需要通过FOTA被不限次数的更新。
系统10通过网络接口150接收安全清单。网络接口150用于经由网络接收或者发送数据,网络可以包括各种连接类型,包括但不限于互联网、企业内部网、局域网、移动通信网及其组合,例如有线、无线通信链路或者光纤电缆等等。
系统10的存储器140可用于存储服务器20发送的安全清单。存储器140可包括高速随机存储器,诸如,SRAM、DRAM,还可包括非易失性存储器,例如一个或者多个非易失性随机存取存储器(NVRAM)、诸如SPI闪存、NAND闪存的各种闪存、或者其他非易失性固态存储器。在一些实例中,存储器140可进一步包括相对于处理器110远程设置的存储器,这些远程存储器可以通过网络接口150连接至装置10。
在本申请的一个或多个实施例中,存储器140可包括非信任存储区和信任存储区。其中,非信任存储区和信任存储区可以是相同存储器中的不同分区,例如一个存储器的一个或多个分区被设置为非信任存储区,其他的一个或多个分区被设置为信任存储区。作为另一个示例,非信任存储区和信任存储区可以分别设置在不同的存储器中,或者分别为不同的存储器,例如,信任存储区可以设置在位于片上系统的存储器,或者片上系统的存储器被认为是信任存储区,而非信任存储区则可以设置在片上系统外部的存储器,或者片上系统外部的存储器被认为是非信任存储区。总体而言,非信任存储区和信任存储区相互隔离,非信任存储区的内容是可修改或用户可访问的,非信任存储区中存储的软件都无法直接看到信任存储区中的地址,非信任存储区是非易失性的存储区域,而信任存储区可以是非易失性的存储区域,但也可以是易失性的存储区域。对于非信任和信任的理解,可以参考现有技术的信任区技术,以及对安全世界和普通世界的相关描述。
在系统10上电启动时,数据处理装置121的读取单元1211,用于响应于安全引导过程的启动执行,将安全清单以及与安全清单相关的公钥从非信任存储区读取到信任存储区;
验证单元1212,用于从信任存储区中读取安全清单以及公钥;并且,利用公钥对安全清单是否完整(integrity)进行验证;
更新单元1213,用于如果经验证安全清单是完整的,则判断安全清单中是否包括更新指令,其中更新指令用于更新安全引导过程的引导代码;如果经判断安全清单包括更新指令,则中断安全引导过程,并执行更新指令,以对安全引导过程的引导代码进行更新。
可以理解,这里所说的完整性(integrity),是信息安全领域中的基本要素之一。其中,完整性的原则是用户、进程或者硬件组件具有能力,能够验证所发送或传送的东西的准确性,并且进程或硬件组件不会被以任何方式改变。一般地,数据具有完整性是指,数据未受未授权的修改,包括数据的未授权创建、插入、重放和删除。
以下描述根据本申请的数据处理方法的一个或多个实施例。该方法可使用先前描述的数据处理装置来实现。
图3示出了根据本申请的数据处理方法的一个实施例。如图3所示的数据处理方法300中,在块301、响应于安全引导过程的执行,将安全清单从非信任存储区读取到信任存储区。在系统10上电后,数据处理装置121执行BOOT ROM 120的安全引导代码,系统开始安全引导过程。根据引导代码的指令,数据处理装置121将安全清单从非信任存储区读取到信任存储区。
在块302、从信任存储区中读取安全清单以及公钥,利用公钥对安全清单是否完整(integrity)进行验证。数据处理装置121读取安全清单的公钥,并计算公钥的摘要(Digest),然后数据处理装置121从OTP ROM 130中读取公钥哈希,并将公钥的摘要与公钥哈希的摘要进行比较,如果两个摘要是匹配的,则公钥是合法。之后,利用公钥对安全清单的加密签名进行校验,如果公钥和签名是匹配的,则安全清单的加密签名是合法的,安全清单的二进制文件是未被修改的。替代或附件地,数据处理装置121还可以先对安全清单的完整性进行验证,之后在将安全清单从非信任存储区读取到信任存储区。
将安全清单放入信任存储区再进行验证具有更高的安全性。例如,对于在非信任存储区进行验证的安全清单,攻击者可能会在验证完成后与开始将安全清单读取到信任存储区之间非常短暂的窗口期,修改安全清单。
在块303、如果经验证安全清单是完整的,则判断安全清单中是否包括更新指令,其中更新指令用于更新安全引导过程的引导代码。在安全清单中设置有更新指令的标志位,该标志位指示安全清单中是否包含有更新指令。如果更新指令的标志位的值不为空或0,则说明安全清单中包含更新指令。
由于安全清单被诸如非对称加密签名方案的加密方案所保护,如上,加密签名的私钥被存储在制造商的安全硬件模块中,公钥哈希被存储在OTP ROM 130中,因此,安全清单具有相当高的安全性,由此,作为包含在安全清单中的一部分的更新指令也是安全的。
如果经验证安全清单是不完整的,则返回错误信息,并结束安全引导过程。
最后,在块304、如果安全清单包括更新指令,则中断安全引导过程,并执行更新指令,以对安全引导过程的引导代码进行更新。若数据处理装置121确定安全清单中包含有更新指令,则数据处理装置121将当前正在执行的安全引导过程中断,并执行更新指令,在执行更新指令时,数据处理装置121会先读取更新指令的头文件块,头文件块中可存储有需要被更新的引导过程的引导代码的地址,数据处理装置121会根据头文件块中的地址,执行更新指令以进行新的引导过程,替换需要被更新的引导过程。
若安全清单中不包括更新指令,数据处理装置121则继续执行原有的安全引导过程。以下简单描述原有的安全引导过程。在完成安全清单的验证后,数据处理装置121对软件包进行验证,软件包验证是安全引导过程中不可或缺的过程。数据处理装置121读取安全清单中存储的密钥,并使用该密钥对软件包进行解密,之后数据处理装置121计算软件包的摘要,并将该摘要与安全清单中存储的对应摘要进行比较,如果两个摘要匹配,则软件包通过验证。如果不匹配,则返回错误信息并结束引导过程。软件包验证完成后,加载该软件包,完成当前引导节点的引导。
在通常的安全引导过程中,第二个引导节点开始进行引导之前,需要第一个引导节点,如BOOT ROM 120对第二引导节点进行验证,确保下一级别的引导节点是安全的,这样可以在下一级别的引导节点建立新的信任链接。
在本申请的实施例中,由于安全清单中存储的元数据包含有安全引导过程中需要加载的所有的软件包的验证数据,因此,替代地或附件地,数据处理装置121可以执行引导代码,在第一引导节点的引导过程中对所有软件包进行验证,这样在后续的引导序列中,可以不再需要软件包的验证。
图4示出根据本申请的数据处理方法的另一个实施例。在图4所示的数据处理方法400中,方法400与图3所示的方法300大体相似,因此,对于相似部分的描述在此不再赘述。以下将具体说明数字处理方法400的区别部分。
在块401、读取安全清单。在块402、验证安全清单的完整性。如果安全清单是完整的,在块403、判断安全清单中是否包括更新指令。若包括更新指令,在块404、中断安全引导过程,执行更新指令。更新指令包括新的软件包验证过程。
在块405、进行新的软件包验证过程。新的软件包验证过程可以是用于对原有软件包验证过程中出现的重大漏洞进行修补,也可以是用于对原有软件包验证的算法进行升级,对于这两种情况来说,重大漏洞修补和算法升级可能都无法依靠对几个指令的简单修补就能实现,有可能需要对原有软件包验证过程的指令进行重写,因此,如果新的软件包验证过程涉及的指令数量较多时,诸如OTP ROM 130的片上只读存储器基本很难满足存储更新指令的需求。
另外,假如更新指令存储在OTP ROM中,那么在现有的引导过程中,OTP ROM中指令会在软件包验证完成后才被处理器执行,因此,不可能对原有的软件包验证过程进行更新。
由于安全清单和软件包可通过FOTA推送到系统10中,因此,例如,对原有软件包验证的校验算法进行升级是可能的。当原有软件包的校验算法无法满足更高的安全需求时,可能需要用新的加密签名或其他密码学校验算法重新对软件包进行校验。作为一个示例,参见图1的相关描述,通过FOTA可以将包含有对应更新指令的新的安全清单推送到系统10中,由此,可以实现采用新的校验算法对软件包进行验证。
图5示出了根据本申请实施例的数据处理方法的另一个实施例。图5所示的方法500是上述方法300和方法400的另一个变型。因此,对于相似部分的描述在此不再赘述。以下将具体说明数据处理方法500的区别部分。
作为一种可能的情况,对于一些系统10来说,尤其是应用在物联网领域的一些系统10,可能存在系统10的生命周期特别长的情况,例如,大于5年或10年,而且这些系统10的硬件并不能容易地更换,因此,在数年之后,系统10的安全引导过程已不能满足基本的安全需求,这种情况下,需要对整个安全引导过程的引导代码进行更新/替换,但是由于BOOTROM 120是硬焊接在片上系统上,因此无法对安全引导过程进行更新。数据处理方法500是解决上述问题的一个示例性方法。
在块501、读取安全清单。在块502、验证安全清单的完整性。如果安全清单是完整的,在块503、判断安全清单中是否包括更新指令。若包括更新指令,在块504、中断安全引导过程,执行更新指令。更新指令包括新的安全引导过程。
如上,作为安全引导过程已不能满足安全需求的一个示例,例如,BOOT ROM 120中的引导代码可能不能对推送到系统10中的采用新的加密算法的软件包进行解密。对于这种情况,安全清单中不仅包括与软件包新的加密算法对应的密钥,而且也包括执行新的解密过程的更新指令。新的安全引导过程具体如下:
在块505、从安全清单读取软件包的新密钥。之后在块506、对软件包进行解密。在块507、判断解密是否成功,如果解密成功,则在块508,进行软件包验证过程;如果解密失败,则返回错误并结束引导过程。
块508的软件包验证过程可以按照原有安全引导过程进行,替代或附加地,块508的软件包验证过程也可以例如是上述块405中所描述。在这种情况下,通过安全清单中包含的更新指令全部替换了BOOT ROM 120的安全引导过程。
根据本申请的一个或多个实施例,更新指令的推送可以使用FOTA(FirmwareOver-The-Air)技术来完成。这样,更新指令可以通过网络方便地部署到设备上,而不需要在工厂对硬件器件进行烧录或修改,降低了硬件投入成本。此外,由于更新指令被推送到可存取的非信任存储区,而非只读存储器或OTP硬件中,因此,安全清单可以根据需要通过FOTA被不限次数的更新。进一步地,更新指令能够对原有软件包验证的校验算法进行升级。进一步地,更新指令能够对整个安全引导过程的引导代码进行更新/替换。
图6是根据本申请实施例的系统的框图。该系统包括,但不局限于,膝上型设备、台式机、手持PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设备以及各种其他电子设备的其他系统。一般地,能够包含本文中所公开的系统和电子设备一般都是合适的。
现在参见图6,所示为根据本申请的一个实施例的系统60的框图。系统60可以包括耦合到控制器中枢603的一个或多个处理器601。在一个实施例中,控制器中枢603包括,但不局限于,图形存储器控制器中枢(GMCH)(未示出)和输入/输出中枢(IOH)(未示出)(其可以在分开的芯片上),其中GMCH包括存储器和图形控制器并与IOH耦合。系统60还可包括耦合到控制器中枢603的固件模块602和存储器604。或者,存储器和GMCH中的一个或两者可以被集成在处理器内(如本文中所描述的),存储器604和固件模块602直接耦合到处理器601以及控制器中枢603,控制器中枢603与IOH处于单个芯片中。
固件模块602用于系统60的安全引导启动。
存储器604可以是例如动态随机存取存储器(DRAM)、相变存储器(PCM)或这两者的组合。对于至少一个实施例,控制器中枢603经由诸如前端总线(FSB)之类的多分支总线、诸如快速通道互连(QPI)之类的点对点接口、或者类似的连接606与处理器601进行通信。
在一个实施例中,处理器601执行控制安全世界的数据处理操作的指令。固件模块指令可嵌入在这些指令中。
根据本申请的一个或多个实施例,还公开了一种机器可读介质,机器可读介质上存储有指令,该指令在机器上执行时使机器执行上述任一个数据处理方法。
根据本申请的一个或多个实施例,还公开了一种系统,包括:
存储器,用于存储由系统的一个或多个处理器执行的指令,以及
处理器,是系统的处理器之一,用于上述任一项的数据处理方法。本申请的各方法实施方式均可以以软件、磁件、固件等方式实现。
可将程序代码应用于输入指令,以执行本文描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本文中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
至少一个实施例的一个或多个方面可以由存储在机器可读介质上的表示性指令来实现,指令表示处理器中的各种逻辑,指令在被机器读取时使得该机器制作用于执行本文所述的技术的逻辑。被称为“IP核”的这些表示可以被存储在有形的机器可读介质上,并被提供给多个客户或生产设施以加载到实际制造该逻辑或处理器的制造机器中。
这样的机器可读存储介质可以包括但不限于通过机器或设备制造或形成的物品的非瞬态的有形安排,其包括存储介质,诸如:硬盘任何其它类型的盘,包括软盘、光盘、紧致盘只读存储器(CD-ROM)、紧致盘可重写(CD-RW)以及磁光盘;半导体器件,例如只读存储器(ROM)、诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)之类的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM);相变存储器(PCM);磁卡或光卡;或适于存储电子指令的任何其它类型的介质。
因此,本申请的各实施例还包括非瞬态的有形机器可读介质,该介质包含指令或包含设计数据,诸如硬件描述语言(HDL),它定义本文中描述的结构、电路、装置、处理器和/或系统特征。这些实施例也被称为程序产品。
在一些情况下,指令转换器可用来将指令从源指令集转换至目标指令集。例如,指令转换器可以变换(例如使用静态二进制变换、包括动态编译的动态二进制变换)、变形、仿真或以其它方式将指令转换成将由核来处理的一个或多个其它指令。指令转换器可以用软件、硬件、固件、或其组合实现。指令转换器可以在处理器上、在处理器外、或者部分在处理器上且部分在处理器外。
以下段落提供了本文公开的各种实施例的示例。
实施例1、一种数据处理方法,包括:
响应于安全引导过程的执行,将安全清单以及与安全清单相关的公钥从非信任存储区读取到信任存储区;
从所述信任存储区中读取所述安全清单以及所述公钥,利用所述公钥对所述安全清单是否完整(integrity)进行验证;
如果经验证所述安全清单是完整的,则判断所述安全清单中是否包括更新指令,其中所述更新指令用于更新所述安全引导过程的引导代码;
如果所述安全清单包括所述更新指令,则中断所述安全引导过程,并执行所述更新指令,以对所述安全引导过程的所述引导代码进行更新。
实施例2、根据实施例1所述的数据处理方法,还包括通过网络从服务器接收所述安全清单。
实施例3、根据实施例1所述的数据处理方法,所述利用所述公钥对所述安全清单是否完整进行验证还包括:
验证所述公钥与设定的公钥哈希是否匹配;
如果所述公钥与所述公钥哈希匹配,那么验证所述公钥是否与所述安全清单的签名匹配;和
如果所述公钥与所述安全清单的签名匹配,则判断所述安全清单是完整的。
实施例4、根据实施例3所述的数据处理方法,所述验证所述公钥是否与所述安全清单的签名是否匹配包括:
将所述公钥的摘要与所述安全清单的签名摘要进行匹配。
实施例5根据实施例1所述的数据处理方法,如果经验证所述安全清单是不完整的,则返回错误信息并结束所述安全引导过程。
实施例6、根据实施例1所述的数据处理方法,如果经判断所述安全清单不包括所述更新指令,则继续执行所述安全引导过程。
实施例7、根据实施例1所述的数据处理方法,所述安全清单包括所述安全引导过程的元数据,所述元数据包括用于描述在所述安全引导过程中加载的软件包和签名的相关信息。
实施例8、根据实施例3所述的数据处理方法,所述公钥哈希存储在一次性可编程存储器中,其中所述一次性可编程存储器与所述非信任存储区或所述信任存储区不同。
实施例9、根据实施例1所述的数据处理方法,所述非信任存储区和所述信任存储区为非易失性存储介质。
实施例10、根据实施例1所述的数据处理方法,所述非信任存储区为非易失性存储介质,以及所述信任存储区为易失性存储介质。
实施例11、根据实施例1所述的数据处理方法,所述非信任存储区域和所述信任存储区在同一存储介质上。
实施例12、根据实施例1至11任一项中所述的数据处理方法,所述更新指令包括用于替换所述安全引导过程的部分过程的所述引导代码,或替换所述安全引导过程的全部过程的所述引导代码。
实施例13、一种数据处理装置,包括:
读取单元,用于响应于安全引导过程的执行,将安全清单以及与安全清单相关的公钥从非信任存储区读取到信任存储区;
验证单元,用于从所述信任存储区中读取所述安全清单以及所述公钥;并且,利用所述公钥对所述安全清单是否完整(integrity)进行验证;
更新单元,用于如果经验证所述安全清单是完整的,则判断所述安全清单中是否包括更新指令,其中所述更新指令用于更新所述安全引导过程的引导代码;如果经判断所述安全清单包括所述更新指令,则中断所述安全引导过程,并执行所述更新指令,以对所述安全引导过程的所述引导代码进行更新。
实施例14、根据实施例13所述的数据处理装置,还包括通过网络从服务器接收所述安全清单。
实施例15、根据实施例13所述的数据处理装置,所述利用所述公钥对所述安全清单是否完整进行验证还包括:
验证所述公钥与设定的公钥哈希是否匹配;
如果所述公钥与所述公钥哈希匹配,那么验证所述公钥是否与所述安全清单的签名匹配;和
如果所述公钥与所述安全清单的签名匹配,则判断所述安全清单是完整的。
实施例16、根据实施例书15所述的数据处理装置,所述验证所述公钥是否与所述安全清单的签名是否匹配包括:
将所述公钥的摘要与所述安全清单的签名摘要进行匹配。
实施例17、根据实施例13所述的数据处理装置,如果经验证所述安全清单是不完整的,则返回错误信息并结束所述安全引导过程。
实施例18、根据实施例13所述的数据处理装置,如果经判断所述安全清单不包括所述更新指令,则继续执行所述安全引导过程。
实施例19、根据实施例13所述的数据处理装置,所述安全清单包括所述安全引导过程的元数据,所述元数据包括用于描述在所述安全引导过程中加载的软件包和签名的相关信息。
实施例20、根据实施例15所述的数据处理装置,所述公钥哈希存储在一次性可编程存储器中,其中所述一次性可编程存储器与所述非信任存储区或所述信任存储区不同。
实施例21、根据实施例13所述的数据处理装置,所述非信任存储区和所述信任存储区为非易失性存储介质。
实施例22、根据实施例13所述的数据处理装置,所述非信任存储区为非易失性存储介质,以及所述信任存储区为易失性存储介质。
实施例23、根据实施例13所述的数据处理装置,所述非信任存储区域和所述信任存储区在同一存储介质上。
实施例24、根据实施例13至23任一项中所述的数据处理装置,所述更新指令包括用于替换所述安全引导过程的部分过程的所述引导代码,或替换所述安全引导过程的全部过程的所述引导代码。
实施例25、一种机器可读介质,所述机器可读介质上存储有指令,该指令在机器上执行时使机器执行实施例1至12中任一项所述的数据处理方法。
实施例26、一种系统,包括:
存储器,用于存储由系统的一个或多个处理器执行的指令,以及
处理器,是系统的处理器之一,用于执行实施例1至12中任一项所述的数据处理方法。
实施例27、一种服务器,所述服务器包括:
生成单元,用于生成安全清单以及与所述安全清单相关的公钥,并对所述安全清单进行加密签名,所述安全清单包括与数据处理装置的安全引导过程相关的软件包和签名的元数据;
收发单元,用于通过网络将所述安全清单发送给所述数据处理装置。
实施例28、根据实施例27所述的服务器,所述安全清单包括更新指令,其中所述更新指令用于更新所述安全引导过程的引导代码。
实施例29、根据实施例27所述的服务器,所述服务器根据加密协议,利用存储在安全硬件模块或空气隔离的计算设备中的私钥,对所述安全清单进行签名,以及生成对应的所述公钥。
实施例30、一种数据生成方法,包括:
生成安全清单以及与所述安全清单相关的公钥,并对所述安全清单进行加密签名,所述安全清单包括与数据处理装置的安全引导过程相关的软件包和签名的元数据;
通过网络将所述安全清单发送给所述数据处理装置。
实施例31、根据实施例30所述的数据生成方法,所述安全清单包括更新指令,其中所述更新指令用于更新所述安全引导过程的引导代码。
实施例32、根据实施例30所述的数据生成方法,根据加密协议,利用存储在安全硬件模块或空气隔离的计算设备中的私钥,对所述安全清单进行签名,以及生成对应的所述公钥。
Claims (15)
1.一种数据处理方法,其特征在于,包括:
响应于安全引导过程的执行,将安全清单以及与安全清单相关的公钥从非信任存储区读取到信任存储区;
从所述信任存储区中读取所述安全清单以及所述公钥,利用所述公钥对所述安全清单是否完整(integrity)进行验证;
如果经验证所述安全清单是完整的,则判断所述安全清单中是否包括更新指令,其中所述更新指令用于更新所述安全引导过程的引导代码;
如果所述安全清单包括所述更新指令,则中断所述安全引导过程,并执行所述更新指令,以对所述安全引导过程的所述引导代码进行更新。
2.根据权利要求1所述的数据处理方法,其特征在于,还包括通过网络从服务器接收所述安全清单。
3.根据权利要求1所述的数据处理方法,其特征在于,所述利用所述公钥对所述安全清单是否完整进行验证还包括:
验证所述公钥与设定的公钥哈希是否匹配;
如果所述公钥与所述公钥哈希匹配,那么验证所述公钥是否与所述安全清单的签名匹配;和
如果所述公钥与所述安全清单的签名匹配,则判断所述安全清单是完整的。
4.根据权利要求3所述的数据处理方法,其特征在于,所述验证所述公钥是否与所述安全清单的签名是否匹配包括:
将所述公钥的摘要与所述安全清单的签名摘要进行匹配。
5.根据权利要求1所述的数据处理方法,其特征在于,如果经验证所述安全清单是不完整的,则返回错误信息并结束所述安全引导过程。
6.根据权利要求1所述的数据处理方法,其特征在于,如果经判断所述安全清单不包括所述更新指令,则继续执行所述安全引导过程。
7.根据权利要求1所述的数据处理方法,其特征在于,所述安全清单包括所述安全引导过程的元数据,所述元数据包括用于描述在所述安全引导过程中加载的软件包和签名的相关信息。
8.根据权利要求3所述的数据处理方法,其特征在于,所述公钥哈希存储在一次性可编程存储器中,其中所述一次性可编程存储器与所述非信任存储区或所述信任存储区不同。
9.根据权利要求1所述的数据处理方法,其特征在于,所述非信任存储区和所述信任存储区为非易失性存储介质。
10.根据权利要求1所述的数据处理方法,其特征在于,所述非信任存储区为非易失性存储介质,以及所述信任存储区为易失性存储介质。
11.根据权利要求1所述的数据处理方法,其特征在于,所述非信任存储区域和所述信任存储区在同一存储介质上。
12.根据权利要求1至11任一项中所述的数据处理方法,其特征在于,所述更新指令包括用于替换所述安全引导过程的部分过程的所述引导代码,或替换所述安全引导过程的全部过程的所述引导代码。
13.一种数据处理装置,其特征在于,包括:
读取单元,用于响应于安全引导过程的执行,将安全清单以及与安全清单相关的公钥从非信任存储区读取到信任存储区;
验证单元,用于从所述信任存储区中读取所述安全清单以及所述公钥;并且,利用所述公钥对所述安全清单是否完整(integrity)进行验证;
更新单元,用于如果经验证所述安全清单是完整的,则判断所述安全清单中是否包括更新指令,其中所述更新指令用于更新所述安全引导过程的引导代码;如果经判断所述安全清单包括所述更新指令,则中断所述安全引导过程,并执行所述更新指令,以对所述安全引导过程的所述引导代码进行更新。
14.一种机器可读介质,其特征在于,所述机器可读介质上存储有指令,该指令在机器上执行时使机器执行权利要求1至12中任一项所述的数据处理方法。
15.一种系统,其特征在于,包括:
存储器,用于存储由系统的一个或多个处理器执行的指令,以及
处理器,是系统的处理器之一,用于执行权利要求1至12中任一项所述的数据处理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910100370.5A CN109814934B (zh) | 2019-01-31 | 2019-01-31 | 数据处理方法、装置、可读介质和系统 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910100370.5A CN109814934B (zh) | 2019-01-31 | 2019-01-31 | 数据处理方法、装置、可读介质和系统 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN109814934A true CN109814934A (zh) | 2019-05-28 |
| CN109814934B CN109814934B (zh) | 2022-05-06 |
Family
ID=66606294
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201910100370.5A Active CN109814934B (zh) | 2019-01-31 | 2019-01-31 | 数据处理方法、装置、可读介质和系统 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN109814934B (zh) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111767231A (zh) * | 2020-07-08 | 2020-10-13 | 瓴盛科技有限公司 | 多平台Bootrom验证方法、装置、系统和计算机可读介质 |
| CN114047930A (zh) * | 2021-11-15 | 2022-02-15 | 中国电信股份有限公司 | 软件制品的安全发布方法、系统、电子设备和存储介质 |
| CN114385248A (zh) * | 2020-10-22 | 2022-04-22 | 四零四科技股份有限公司 | 处理信任链的计算系统及装置 |
| CN114897667A (zh) * | 2022-05-27 | 2022-08-12 | 青岛信芯微电子科技股份有限公司 | 图像处理方法、装置、电子设备及可读存储介质 |
| CN114995799A (zh) * | 2022-07-18 | 2022-09-02 | 新华三半导体技术有限公司 | 一种汇编代码生成方法、装置及电子设备 |
| CN115910341A (zh) * | 2022-12-02 | 2023-04-04 | 成都体育学院 | 一种运动健康监测方法、装置和介质 |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102509047A (zh) * | 2011-11-09 | 2012-06-20 | 北京赛科世纪数码科技有限公司 | 校验机顶盒中程序代码的方法和系统 |
| CN102693139A (zh) * | 2011-03-25 | 2012-09-26 | 比亚迪股份有限公司 | 一种无线升级手机软件的方法及系统 |
| CN102968588A (zh) * | 2012-12-20 | 2013-03-13 | 四川长虹电器股份有限公司 | 智能终端系统 |
| CN104156659A (zh) * | 2014-08-14 | 2014-11-19 | 电子科技大学 | 一种嵌入式系统的安全启动方法 |
| CN104462965A (zh) * | 2014-11-14 | 2015-03-25 | 华为技术有限公司 | 应用程序完整性验证方法及网络设备 |
| CN106096420A (zh) * | 2016-06-15 | 2016-11-09 | 京信通信技术(广州)有限公司 | 嵌入式设备安全启动的方法和装置 |
| CN108228263A (zh) * | 2016-12-12 | 2018-06-29 | 北京小米移动软件有限公司 | 系统启动的方法及装置 |
| CN108280035A (zh) * | 2017-01-05 | 2018-07-13 | 三星电子株式会社 | 安全引导定序器和安全引导设备 |
-
2019
- 2019-01-31 CN CN201910100370.5A patent/CN109814934B/zh active Active
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102693139A (zh) * | 2011-03-25 | 2012-09-26 | 比亚迪股份有限公司 | 一种无线升级手机软件的方法及系统 |
| CN102509047A (zh) * | 2011-11-09 | 2012-06-20 | 北京赛科世纪数码科技有限公司 | 校验机顶盒中程序代码的方法和系统 |
| CN102968588A (zh) * | 2012-12-20 | 2013-03-13 | 四川长虹电器股份有限公司 | 智能终端系统 |
| CN104156659A (zh) * | 2014-08-14 | 2014-11-19 | 电子科技大学 | 一种嵌入式系统的安全启动方法 |
| CN104462965A (zh) * | 2014-11-14 | 2015-03-25 | 华为技术有限公司 | 应用程序完整性验证方法及网络设备 |
| CN106096420A (zh) * | 2016-06-15 | 2016-11-09 | 京信通信技术(广州)有限公司 | 嵌入式设备安全启动的方法和装置 |
| CN108228263A (zh) * | 2016-12-12 | 2018-06-29 | 北京小米移动软件有限公司 | 系统启动的方法及装置 |
| CN108280035A (zh) * | 2017-01-05 | 2018-07-13 | 三星电子株式会社 | 安全引导定序器和安全引导设备 |
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111767231A (zh) * | 2020-07-08 | 2020-10-13 | 瓴盛科技有限公司 | 多平台Bootrom验证方法、装置、系统和计算机可读介质 |
| CN111767231B (zh) * | 2020-07-08 | 2023-10-31 | 瓴盛科技有限公司 | 多平台Bootrom验证方法、装置、系统和计算机可读介质 |
| CN114385248A (zh) * | 2020-10-22 | 2022-04-22 | 四零四科技股份有限公司 | 处理信任链的计算系统及装置 |
| CN114385248B (zh) * | 2020-10-22 | 2024-04-23 | 四零四科技股份有限公司 | 处理信任链的计算系统及装置 |
| CN114047930A (zh) * | 2021-11-15 | 2022-02-15 | 中国电信股份有限公司 | 软件制品的安全发布方法、系统、电子设备和存储介质 |
| CN114047930B (zh) * | 2021-11-15 | 2025-02-18 | 中国电信股份有限公司 | 软件制品的安全发布方法、系统、电子设备和存储介质 |
| CN114897667A (zh) * | 2022-05-27 | 2022-08-12 | 青岛信芯微电子科技股份有限公司 | 图像处理方法、装置、电子设备及可读存储介质 |
| CN114995799A (zh) * | 2022-07-18 | 2022-09-02 | 新华三半导体技术有限公司 | 一种汇编代码生成方法、装置及电子设备 |
| CN115910341A (zh) * | 2022-12-02 | 2023-04-04 | 成都体育学院 | 一种运动健康监测方法、装置和介质 |
| CN115910341B (zh) * | 2022-12-02 | 2024-02-13 | 成都体育学院 | 一种运动健康监测方法、装置和介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN109814934B (zh) | 2022-05-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109313690B (zh) | 自包含的加密引导策略验证 | |
| CN109814934A (zh) | 数据处理方法、装置、可读介质和系统 | |
| US11829479B2 (en) | Firmware security verification method and device | |
| CN109937419B (zh) | 安全功能强化的设备的初始化方法及设备的固件更新方法 | |
| US9129536B2 (en) | Circuit for secure provisioning in an untrusted environment | |
| US9100174B2 (en) | Secure provisioning in an untrusted environment | |
| US9100189B2 (en) | Secure provisioning in an untrusted environment | |
| US9094205B2 (en) | Secure provisioning in an untrusted environment | |
| US8560820B2 (en) | Single security model in booting a computing device | |
| EP3025226B1 (en) | Media client device authentication using hardware root of trust | |
| CN100578473C (zh) | 嵌入式系统和增加嵌入式系统安全性的方法 | |
| TW202009778A (zh) | 韌體升級方法及裝置 | |
| CN112784280A (zh) | 一种SoC芯片安全设计方法及硬件平台 | |
| CN110326266B (zh) | 一种数据处理的方法及装置 | |
| TW202038120A (zh) | 安全資料處理裝置(二) | |
| US8392724B2 (en) | Information terminal, security device, data protection method, and data protection program | |
| CN109388961B (zh) | 存储设备的安全控制方法及存储设备 | |
| CN104156659A (zh) | 一种嵌入式系统的安全启动方法 | |
| CN106452786A (zh) | 加解密处理方法、装置和设备 | |
| US12373518B2 (en) | Managing ownership of an electronic device | |
| KR20230137422A (ko) | 디지털 장치를 위한 신뢰할 수 있는 컴퓨팅 | |
| CN105893837B (zh) | 应用程序安装方法、安全加密芯片及终端 | |
| CN119760696B (zh) | 密钥管控方法和芯片启动方法 | |
| Singh et al. | Lightweight security architecture for IoT edge devices | |
| CN115688120A (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 | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |