CN105117651B - 一种控制单板安全启动的方法、软件包升级的方法及装置 - Google Patents
一种控制单板安全启动的方法、软件包升级的方法及装置 Download PDFInfo
- Publication number
- CN105117651B CN105117651B CN201510589849.1A CN201510589849A CN105117651B CN 105117651 B CN105117651 B CN 105117651B CN 201510589849 A CN201510589849 A CN 201510589849A CN 105117651 B CN105117651 B CN 105117651B
- Authority
- CN
- China
- Prior art keywords
- software package
- veneer
- signature
- updated
- software
- 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.)
- Active
Links
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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种控制单板安全启动的方法,包括:在单板上电后,获取待加载到所述单板的软件包的重签名,所述软件包的重签名为使用所述单板的单板私钥对所述软件包进行重签名得到的,所述重签名是在使用所述软件包的软件包公钥对所述软件包的原签名验证通过后做出的,所述原签名为使用所述软件包的软件包私钥对所述软件包进行签名得到的;使用与所述单板私钥配对的单板公钥对所述软件包的重签名进行校验;在所述重签名通过校验后,启动所述单板。本发明实施例提供的控制单板安全启动的方法,可以保证在软件包的密钥对泄漏时,其他单板依然可以安全启动。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种控制单板安全启动的方法及装置。
背景技术
随着黑客威胁的增加,运营商提出了对电信设备可信环境的要求,例如,多模基站启动时必须通过密码学手段对软件进行校验。如果校验失败,则多模基站不能接入网络。
电信设备的设备商通常都会预先生成一个不对称密钥对,作为厂商密钥,设备商会妥善的保管密钥对中的私钥,并用该私钥对要发布的软件包进行签名,密钥对中的公钥随软件包一起发布。
电信设备中的单板安全启动时,需要对逐级加载的软件包进行校验,校验的过程就是使用随软件包发布的公钥对软件包的签名行校验,如果校验成功,则加载该软件包,并用该密钥对存储该软件包。如果校验失败,则不加载该软件包,这样,可以避免加载非法的或经篡改的软件包。
这样单板启动时,只要软件包能校验通过,就能确保软件包是厂商所发布的,只要用于单板启动的各软件包能逐级校验通过,构建起信任链,就能确保单板的初始软件运行环境是安全可靠的。
现有技术中,因为一个软件包可以用于多个同型号的单板,因此分别针对同型号的中不同单板发布使用不同私钥签名的软件包存在操作上的困难。由于不可能针对每个单板发布软件包,导致存储时也必须使用相同密钥对。因此,软件包发布的密钥对就是在单板上存储的密钥对。因此必然会出现多个单板使用相同的密钥对的情况,常是所有单板都使用相同的密钥对。
因此,一旦设备商用于软件包签名的密钥对泄露,那么现网的存量单板会批量(或者全部)的暴露在攻击者面前,无法保证启动安全。
发明内容
为了解决现有技术中因密钥对泄漏,导致批量单板无法安全启动的问题,本发明实施例提供一种控制单板安全启动的方法,可以保证在软件包的密钥对泄漏时,其他单板依然可以安全启动。本发明实施例还提供了相应的设备。
本发明第一方面提供一种控制单板安全启动的方法,包括:
在单板上电后,获取待加载到所述单板的软件包的重签名,所述软件包的重签名为使用所述单板的单板私钥对所述软件包进行重签名得到的,所述重签名是在使用所述软件包的软件包公钥对所述软件包的原签名验证通过后做出的,所述原签名为使用所述软件包的软件包私钥对所述软件包进行签名得到的;
使用与所述单板私钥配对的单板公钥对所述软件包的重签名进行校验;
在所述重签名通过校验后,启动所述单板。
结合第一方面,在第一种可能的实现方式中,所述获取待加载到所述单板的软件包的重签名之前,所述方法还包括:
获取待更新的软件包;
在安全世界中,使用所述待更新的软件包的软件包公钥对所述待更新的软件包的原签名进行校验;
在所述待更新的软件包的原签名通过校验后,在所述安全世界中使用所述单板私钥对所述待更新的软件包进行重签名。
结合第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:
用所述待更新的软件包和所述待更新的软件包的重签名替换对应的低版本的软件包和所述低版本的软件包对应的重签名,所述低版本的软件包中包含所述低版本的软件包公钥。
本发明第二方面提供一种软件包升级的方法,包括:
获取单板待更新的软件包;
在安全世界中,使用所述待更新的软件包的软件包公钥对所述待更新的软件包的原签名进行校验;
在所述待更新的软件包的原签名通过校验后,在所述安全世界中使用所述单板的单板私钥对所述待更新的软件包进行重签名,所述重签名用于在所述单板启动时检验所述软件包的安全性。
结合第二方面,在第一种可能的实现方式中,所述方法还包括:
用所述待更新的软件包和所述待更新的软件包的重签名替换对应的低版本的软件包和所述低版本的软件包对应的重签名,所述低版本的软件包中包含所述低版本的软件包公钥。
本发明第三方提供一种控制单板安全启动的装置,包括:
获取模块,用于在单板上电后,获取待加载到所述单板的软件包的重签名,所述软件包的重签名为使用所述单板的单板私钥对所述软件包进行重签名得到的,所述重签名是在使用所述软件包的软件包公钥对所述软件包的原签名验证通过后做出的,所述原签名为使用所述软件包的软件包私钥对所述软件包进行签名得到的;
校验模块,用于使用与所述单板私钥配对的单板公钥对所述获取模块获取的所述软件包的重签名进行校验;
单板启动模块,用于在所述重签名通过所述校验模块校验后,启动所述单板。
结合第三方面,在第一种可能的实现方式中,所述装置还包括签名模块和存储模块,
所述获取模块,还用于获取待更新的软件包;
所述校验模块,还用于在安全世界中,使用所述获取模块获取的所述待更新的软件包的软件包公钥对所述待更新的软件包的原签名进行校验;
所述签名模块,用于在所述待更新的软件包的原签名通过所述校验模块校验后,在所述安全世界中使用所述单板私钥对所述待更新的软件包进行重签名。
结合第三方面第一种可能的实现方式,在第二种可能的实现方式中,所述装置还包括替换模块,
所述替换模块,用于用所述待更新的软件包和所述签名模块签名得到的所述待更新的软件包的重签名替换对应的低版本的软件包和所述低版本的软件包对应的重签名,所述低版本的软件包中包含所述低版本的软件包公钥。
本发明第四方面提供一种软件包升级的装置,包括:
获取模块,用于获取单板待更新的软件包;
校验模块,用于在安全世界中,使用所述获取模块获取的所述待更新的软件包的软件包公钥对所述待更新的软件包的原签名进行校验;
签名模块,用于在所述待更新的软件包的原签名通过所述校验模块校验后,在所述安全世界中使用所述单板的单板私钥对所述待更新的软件包进行重签名,所述重签名用于在所述单板启动时检验所述软件包的安全性。
结合第四方面,在第一种可能的实现方式中,所述装置还包括替换模块,
所述替换模块,用于用所述待更新的软件包和所述签名模块签名得到的所述待更新的软件包的重签名替换对应的低版本的软件包和所述低版本的软件包对应的重签名,所述低版本的软件包中包含所述低版本的软件包公钥。
本发明实施例提供的控制单板安全启动的方法,一套单板包括两套密钥对,分别为单板公钥、单板私钥和软件包公钥、软件包私钥,针对通过验证的软件包签名,再采用单板的私钥对软件包进行重签名,从而提高了软件包存储的安全性。而且各单板的单板私钥与单板公钥与其他单板的单板私钥和单板公钥都不相同,即使该单元的单板私钥和单板公钥被黑客攻破,也不会影响其他单板的启动。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是中央处理器的安全世界和非安全世界示意图;
图2是本发明实施例中软件包重签名的过程示意图;
图3是本发明实施例中控制单板安全启动的方法的一实施例示意图;
图4是本发明实施例中软件包升级的方法的一实施例示意图;
图5是本发明实施例中控制单板安全启动的装置的一实施例示意图;
图6是本发明实施例中控制单板安全启动的装置的另一实施例示意图;
图7是本发明实施例中控制单板安全启动的装置的另一实施例示意图;
图8是本发明实施例中软件包升级的装置的一实施例示意图;
图9是本发明实施例中软件包升级的装置的另一实施例示意图;
图10是本发明实施例中控制单板安全启动的装置的另一实施例示意图;
图11是本发明实施例中软件包升级的装置的另一实施例示意图。
具体实施方式
本发明实施例提供一种控制单板安全启动的方法,软件包升级的方法,同时还提供了软件包公钥泄漏后的吊销方法,本发明实施例提供的方法可以保证在软件包的密钥对泄漏时,其他单板依然可以安全启动。本发明实施例还提供了相应的装置。以下分别进行详细说明。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于理解,先对单板做个简单的介绍:
单板就是通信设备中的一个硬件,本发明实施例中的单板在生产阶段就为每个单板生成了不同的非对称密钥对,在本发明实施例中将其称为单板密钥对,包括单板私钥和单板公钥。单板的密钥对必须保证不可篡改,单板私钥不可被外部读取。通常在芯片的安全模块中,单板私钥生成后直接烧写到芯片的安全模块(如:eFuse)中,不可篡改和直接访问,只能通过硬件安全引擎访问;单板公钥可以存储在flash上,但是单板公钥的hash值存放在eFuse中,用于防止篡改。
单板启动时必须加载相应的软件包,软件包成功加载后完成单板启动过程。但是软件包是适用于批量单板的,软件包发布时也有相应的软件包密钥对,包括软件包公钥和软件包私钥,软件包私钥通常由厂商保存,软件包公钥随软件包发布。
信任区TrustZone技术将中央处理器(Central Processing Unit,CPU)物理的划分为安全世界(Secure World)和非安全世界/普通世界(Normal World),如图1所示,这样允许加密、解密等安全相关的行为在物理隔离的安全世界中运行,非安全世界的操作***(Operator System,OS)或者应用(APP)无法访问到安全世界中的地址。
对于软件来说,安全世界和非安全世界是隔离的,他们可以各自运行不同的软件,对于非安全世界的软件都无法直接看到安全世界的地址,只能通过指定方式(如:中断)请求安全世界的执行特定的功能。
单板安装到通信设备后,在单板上电启动时,单板上的CPU会使用该单板的单板公钥,从安全启动代码(Bootrom Secure Boot Code,BSBC)开始逐级校验单板启动所需要的软件包,其中,待校验的软件包可以根据安全要求进行选择。一般而言,启动中需要加载到内存的软件包是必须被校验的。例如:单板启动时要校验的软件包可以包括bootrom、补丁、OS、APP等,如果软件包的签名和他在单板上的签名是匹配的,则继续启动,否则单板停止加载和启动。需要说明的是,本发明实施例中涉及到的签名都是指数字签名。
如果软件包公钥硬编码在代码中,则当软件包校验通过加载后,公钥也一并被证明是合法安全的。
驻留安全世界的软件也属于软件包的一部分,他们在启动时也会通过签名验证。通过验证后,这部分代码加载并驻留在安全世界运行,负责完成特定的安全相关的功能。
实际上,在本发明实施例中,单板启动时所校验的签名是在安全世界使用单板私钥完成的重签名,在软件包有更新时,厂商发布新的软件包,也就是待更新的软件包,在该新的软件包中携带软件包公钥,CPU获取到该待更新的软件包后,将该待更新的软件包放入安全世界中,在安全世界中使用该待更新的软件包公钥对该待更新的软件包的签名进行校验,该签名可以理解为是该软件包的原签名,原签名是使用所述软件包的软件包私钥对所述软件包进行签名得到的;原签名通过校验后,在安全世界中使用该单板的单板私钥对该待更新的软件包进行重签名,然后将该待更新的软件包的重签名和该待更新的软件包关联存储,得到更新的软件包。如果软件包公钥硬编码在代码中,则当软件包校验通过加载后,软件包公钥也一并被证明是合法安全的。因软件包公钥在软件包中,所以对软件包进行重签名后,软件包公钥也受到重签名的保护。
本发明实施例中,因为安全世界和非安全世界的业务软件运行环境物理隔离,极难被黑客攻击和破解。因此,软件包的校验和重签名在安全世界中进行是安全可靠的。
软件包从原签名到重签名的过程可以参阅图2进行理解:
待更新的软件包在安全世界中采用软件包公钥对该待更新的软件包的原签名进行校验,校验通过后,使用单板私钥对该待更新的软件包进行重签名操作,得到该待更新的软件包的重签名。
在单板上电后,对软件包的重签名进行校验,在单板启动时需要加载的各个软件包的重签名都通过校验后,表示单板启动成功。
现有技术中软件包的签名既用于软件包升级,也用于安全启动。导致安全启动时,所有单板都必须使用相同的密钥。而本发明实施例中分离了软件包升级和单板启动这两个阶段,每个单板重新签名了所下载的软件包,这样每个单板所存储的软件包都有不同的密钥和签名,减少了泄密后的风险。而且,即使本单板的单板公钥和单板私钥被黑客攻破,也不会影响其他单板的安全性。
另外,本发明实施例中通过将校验和重签名放到安全世界这个可信环境中一次性完成,利用软件包原签名,解决了重签名接口鉴权的问题。
本发明不局限于特定的通信***,针对的是支持安全启动特性的单板。影响可信单板启动和软件更新场景。
另外,需要说明的是,本发明实施例中还可以通过另外两种方案来解决非对称密钥对泄漏后的更新问题。
方案一:
1、这个策略也需要CPU内的可信环境中,预置单板不对称密钥,但是只需要烧写入单板公钥,因为不涉及重签名,单板私钥不需要存放在CPU上,由设备商保存即可。单板不对称密钥对对于所有单板是相同的。
2、软件包验证用的公钥随bootrom发布。
3、软件包发布后;BOOTROM使用单板私钥签名发布。
4、单板启动时,CPU使用单板公钥验证BOOTROM签名正确;BOOTROM使用软件包公钥验证软件包签名正确。
5、当需要更新软件包公钥时,通过升级BOOTROM,完成更新。
本发明的方案也区分了单板密钥对和软件包密钥对,因此可以支持软件包密钥的更新。但是由于没有重签名的过程,单板密钥对必须做成所有单板相同,否则就无法发布BOOTROM升级时所需的数字签名。
方案二:
与方案一相比,方案二在单板的可信环境中内置了多个单板密钥对,这些密钥对在所有的单板都相同。
当第一组单板密钥对泄漏后,通过升级或者吊销命令,使第一组单板密钥对失效;当再次启动时,由于第一组单板密钥已经失效,因此以第一组单板密钥中私钥签名的BOOTROM的签名都无法校验通过,而未吊销的密钥的数字签名都可以生效,可以避免因一组密钥对泄漏,所有单板的密钥都需要立马更新的状况。
参阅图3,本发明实施例提供的控制单板安全启动的方法的一实施例包括:
101、在单板上电后,获取待加载到所述单板的软件包的重签名,所述软件包的重签名为使用所述单板的单板私钥对所述软件包进行重签名得到的,所述重签名是在使用所述软件包的软件包公钥对所述软件包的原签名验证通过后做出的,所述原签名为使用所述软件包的软件包私钥对所述软件包进行签名得到的。
102、使用与所述单板私钥配对的单板公钥对所述软件包的重签名进行校验。
103、在所述重签名通过校验后,启动所述单板。
本发明实施例提供的控制单板安全启动的方法,一套单板包括两套密钥对,分别为单板公钥、单板私钥和软件包公钥、软件包私钥,针对通过验证的软件包签名,再采用单板的私钥对软件包进行重签名,从而提高了软件包存储的安全性。而且各单板的单板私钥与单板公钥与其他单板的单板私钥和单板公钥都不相同,即使该单元的单板私钥和单板公钥被黑客攻破,也不会影响其他单板的启动。
可选地,在上述图3对应的实施例的基础上,本发明实施例提供的控制单板安全启动的方法的第一个可选实施例中,所述获取待加载到所述单板的软件包的重签名之前,所述方法还包括:
获取待更新的软件包;
在安全世界中,使用所述待更新的软件包的软件包公钥对所述待更新的软件包的原签名进行校验;
在所述待更新的软件包的原签名通过校验后,在所述安全世界中使用所述单板私钥对所述待更新的软件包进行重签名。
可选地,在上述第一个可选实施例的基础上,本发明实施例提供的控制单板安全启动的方法的第一个可选实施例中,所述将所述待更新的软件包和所述待更新的软件包进行重签名对应存储之后,所述方法还包括:
用所述待更新的软件包和所述待更新的软件包的重签名替换对应的低版本的软件包和所述低版本的软件包对应的重签名,所述低版本的软件包中包含所述低版本的软件包公钥。
本发明实施例中,软件包公钥包含在软件包中,这样在安全世界的环境中,当一个软件包公钥泄漏后,就可以通过软件包更新的方式吊销该软件包,同时也就实现了软件包公钥的更新。
图3对应的实施例或可选实施例可以参阅图3以前所描述的软件更新、单板启动的方案进行理解,本处不做过多赘述。
参阅图4,本发明实施例提供的软件包升级的方法的一实施例包括:
201、获取单板待更新的软件包。
202、在安全世界中,使用所述待更新的软件包的软件包公钥对所述待更新的软件包的原签名进行校验。
203、在所述待更新的软件包的原签名通过校验后,在所述安全世界中使用所述单板的单板私钥对所述待更新的软件包进行重签名,所述重签名用于在所述单板启动时检验所述软件包的安全性。
本发明实施例提供的软件包升级的方法,一套单板包括两套密钥对,分别为单板公钥、单板私钥和软件包公钥、软件包私钥,针对通过验证的软件包签名,再采用单板的私钥对软件包进行重签名,从而提高了软件包存储的安全性。而且各单板的单板私钥与单板公钥与其他单板的单板私钥和单板公钥都不相同,即使该单元的单板私钥和单板公钥被黑客攻破,也不会影响其他单板的启动。
可选地,在上述图4对应的实施例的基础上,本发明实施例提供的软件包升级的方法的可选实施例中,所述将所述待更新的软件包和所述待更新的软件包进行重签名对应存储之后,所述方法还可以包括:
用所述待更新的软件包和所述待更新的软件包的重签名替换对应的低版本的软件包和所述低版本的软件包对应的重签名,所述低版本的软件包中包含所述低版本的软件包公钥。
本发明实施例中,软件包公钥包含在软件包中,这样在安全世界的环境中,当一个软件包公钥泄漏后,就可以通过软件包更新的方式吊销该软件包,同时也就实现了软件包公钥的更新。
图4对应的实施例或可选实施例可以参阅图4以前所描述的软件更新的方案进行理解,本处不做过多赘述。
参阅图5,本发明实施例提供的控制单板安全启动的装置30的一实施例包括:
获取模块301,用于在单板上电后,获取待加载到所述单板的软件包的重签名,所述软件包的重签名为使用所述单板的单板私钥对所述软件包进行重签名得到的,所述重签名是在使用所述软件包的软件包公钥对所述软件包的原签名验证通过后做出的,所述原签名为使用所述软件包的软件包私钥对所述软件包进行签名得到的;
校验模块302,用于使用与所述单板私钥配对的单板公钥对所述获取模块301获取的所述软件包的重签名进行校验;
单板启动模块303,用于在所述重签名通过所述校验模块302校验后,启动所述单板。
本发明实施例中,获取模块301在单板上电后,获取待加载到所述单板的软件包的重签名,所述软件包的重签名为使用所述单板的单板私钥对所述软件包进行重签名得到的,所述重签名是在使用所述软件包的软件包公钥对所述软件包的原签名验证通过后做出的,所述原签名为使用所述软件包的软件包私钥对所述软件包进行签名得到的;校验模块302使用与所述单板私钥配对的单板公钥对所述获取模块301获取的所述软件包的重签名进行校验;单板启动模块303在所述重签名通过所述校验模块302校验后,启动所述单板。与现有技术中批量单板的密钥对都相同相比,本发明实施例提供的控制单板安全启动的装置,包括两套密钥对,分别为单板公钥、单板私钥和软件包公钥、软件包私钥,针对通过验证的软件包签名,再采用单板的私钥对软件包进行重签名,从而提高了软件包存储的安全性。而且各单板的单板私钥与单板公钥与其他单板的单板私钥和单板公钥都不相同,即使该单元的单板私钥和单板公钥被黑客攻破,也不会影响其他单板的启动。
可选地,在上述图5对应的实施例的基础上,参阅图6,本发明实施例提供的控制单板安全启动的装置30的第一个可选实施例中,所述装置30还包括签名模块304,
所述获取模块301,还用于获取待更新的软件包;
所述校验模块302,还用于在安全世界中,使用所述获取模块301获取的所述待更新的软件包的软件包公钥对所述待更新的软件包的原签名进行校验;
所述签名模块304,用于在所述待更新的软件包的原签名通过所述校验模块302校验后,在所述安全世界中使用所述单板私钥对所述待更新的软件包进行重签名。
可选地,在上述图6对应的实施例的基础上,参阅图7,本发明实施例提供的控制单板安全启动的装置30的第二个可选实施例中,所述装置30还包括替换模块305,
所述替换模块305,用于用所述待更新的软件包和所述签名模块304签名得到的所述待更新的软件包的重签名替换对应的低版本的软件包和所述低版本的软件包对应的重签名,所述低版本的软件包中包含所述低版本的软件包公钥。
图5-图7对应的实施例或可选实施例,可以参阅图3之前的内容、图3部分的实施例或可选实施例的相关描述进行理解,本处不做过多赘述。
参阅图8,本发明实施例提供的软件包升级的装置40的一实施例包括:
获取模块401,用于获取单板待更新的软件包;
校验模块402,用于在安全世界中,使用所述获取模块401获取的所述待更新的软件包的软件包公钥对所述待更新的软件包的原签名进行校验;
签名模块403,用于在所述待更新的软件包的原签名通过所述校验模块402校验后,在所述安全世界中使用所述单板的单板私钥对所述待更新的软件包进行重签名,所述重签名用于在所述单板启动时检验所述软件包的安全性。
本发明实施例中,获取模块401获取单板待更新的软件包;校验模块402在安全世界中,使用所述获取模块401获取的所述待更新的软件包的软件包公钥对所述待更新的软件包的原签名进行校验;签名模块403在所述待更新的软件包的原签名通过所述校验模块402校验后,在所述安全世界中使用所述单板的单板私钥对所述待更新的软件包进行重签名,所述重签名用于在所述单板启动时检验所述软件包的安全性。与现有技术中批量单板的密钥对都相同相比,本发明实施例提供的软件包升级的装置,包括两套密钥对,分别为单板公钥、单板私钥和软件包公钥、软件包私钥,针对通过验证的软件包签名,再采用单板的私钥对软件包进行重签名,从而提高了软件包存储的安全性。而且各单板的单板私钥与单板公钥与其他单板的单板私钥和单板公钥都不相同,即使该单元的单板私钥和单板公钥被黑客攻破,也不会影响其他单板的启动。
可选地,在上述图8对应的实施例的基础上,参阅图9,本发明实施例提供的软件包升级的装置40的可选实施例中,所述装置40还包括替换模块404,
所述替换模块404,用于用所述待更新的软件包和所述签名模块签名得到的所述待更新的软件包的重签名替换对应的低版本的软件包和所述低版本的软件包对应的重签名,所述低版本的软件包中包含所述低版本的软件包公钥。
图8-图9对应的实施例或可选实施例,可以参阅图3之前的软件更新部分的描述、图4部分的实施例或可选实施例的相关描述进行理解,本处不做过多赘述。
图10是本发明实施例提供的控制单板安全启动的装置30的结构示意图。所述控制单板安全启动的装置30包括处理器310、存储器350和输入/输出I/O设备330,存储器350可以包括只读存储器和随机存取存储器,并向处理器310提供操作指令和数据。存储器350的一部分还可以包括非易失性随机存取存储器(NVRAM)。
在一些实施方式中,存储器350存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
在本发明实施例中,通过调用存储器350存储的操作指令(该操作指令可存储在操作***中),
在单板上电后,获取待加载到所述单板的软件包的重签名,所述软件包的重签名为使用所述单板的单板私钥对所述软件包进行重签名得到的,所述重签名是在使用所述软件包的软件包公钥对所述软件包的原签名验证通过后做出的,所述原签名为使用所述软件包的软件包私钥对所述软件包进行签名得到的;
使用与所述单板私钥配对的单板公钥对所述软件包的重签名进行校验;
在所述重签名通过校验后,启动所述单板。
本发明实施例提供的控制单板安全启动的装置,一套单板包括两套密钥对,分别为单板公钥、单板私钥和软件包公钥、软件包私钥,针对通过验证的软件包签名,再采用单板的私钥对软件包进行重签名,从而提高了软件包存储的安全性。而且各单板的单板私钥与单板公钥与其他单板的单板私钥和单板公钥都不相同,即使该单元的单板私钥和单板公钥被黑客攻破,也不会影响其他处理器310控制控制单板安全启动的装置30的操作,处理器310还可以称为CPU(Central Processing Unit,中央处理单元)。存储器350可以包括只读存储器和随机存取存储器,并向处理器310提供指令和数据。存储器350的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中控制单板安全启动的装置30的各个组件通过总线***320耦合在一起,其中总线***320除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线***320。
上述本发明实施例揭示的方法可以应用于处理器310中,或者由处理器310实现。处理器310可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器310中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器310可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器350,处理器310读取存储器350中的信息,结合其硬件完成上述方法的步骤。
可选地,处理器310还用于:
获取待更新的软件包;
在安全世界中,使用所述待更新的软件包的软件包公钥对所述待更新的软件包的原签名进行校验;
在所述待更新的软件包的原签名通过校验后,在所述安全世界中使用所述单板私钥对所述待更新的软件包进行重签名。
可选地,处理器310还用于:用所述待更新的软件包和所述待更新的软件包的重签名替换对应的低版本的软件包和所述低版本的软件包对应的重签名,所述低版本的软件包中包含所述低版本的软件包公钥。
图10对应的实施例或可选实施例,可以参阅图3之前的内容、图3、图5-图7部分的实施例或可选实施例的相关描述进行理解,本处不做过多赘述。
图11是本发明实施例提供的软件包升级的装置40的结构示意图。所述软件包升级的装置40包括处理器410、存储器450和输入/输出I/O设备430,存储器450可以包括只读存储器和随机存取存储器,并向处理器410提供操作指令和数据。存储器450的一部分还可以包括非易失性随机存取存储器(NVRAM)。
在一些实施方式中,存储器450存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
在本发明实施例中,通过调用存储器450存储的操作指令(该操作指令可存储在操作***中),
获取单板待更新的软件包;
在安全世界中,使用所述待更新的软件包的软件包公钥对所述待更新的软件包的原签名进行校验;
在所述待更新的软件包的原签名通过校验后,在所述安全世界中使用所述单板的单板私钥对所述待更新的软件包进行重签名,所述重签名用于在所述单板启动时检验所述软件包的安全性。
本发明实施例提供的控制单板安全启动的装置,一套单板包括两套密钥对,分别为单板公钥、单板私钥和软件包公钥、软件包私钥,针对通过验证的软件包签名,再采用单板的私钥对软件包进行重签名,从而提高了软件包存储的安全性。而且各单板的单板私钥与单板公钥与其他单板的单板私钥和单板公钥都不相同,即使该单元的单板私钥和单板公钥被黑客攻破,也不会影响其他单板。
处理器410控制软件包升级的装置40的操作,处理器410还可以称为CPU(CentralProcessing Unit,中央处理单元)。存储器450可以包括只读存储器和随机存取存储器,并向处理器410提供指令和数据。存储器450的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中软件包升级的装置40的各个组件通过总线***420耦合在一起,其中总线***420除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线***420。
上述本发明实施例揭示的方法可以应用于处理器410中,或者由处理器410实现。处理器410可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器410中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器410可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器450,处理器410读取存储器450中的信息,结合其硬件完成上述方法的步骤。
可选地,处理器410还用于:
用所述待更新的软件包和所述待更新的软件包的重签名替换对应的低版本的软件包和所述低版本的软件包对应的重签名,所述低版本的软件包中包含所述低版本的软件包公钥。
图11对应的实施例或可选实施例,可以参阅图3之前的内容、图4、图8-图9部分的实施例或可选实施例的相关描述进行理解,本处不做过多赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的控制单板安全启动的方法、软件包升级的方法以及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种控制单板安全启动的方法,其特征在于,包括:
在单板上电后,获取待加载到所述单板的软件包的重签名,所述软件包的重签名为使用所述单板的单板私钥对所述软件包进行重签名得到的,所述重签名是在使用所述软件包的软件包公钥对所述软件包的原签名验证通过后做出的,所述原签名为使用所述软件包的软件包私钥对所述软件包进行签名得到的;
在安全世界中,使用与所述单板私钥配对的单板公钥对所述软件包的重签名进行校验;其中,在单板启动时要校验的软件包包括:启动代码、补丁、操作***、应用以及驻留在所述安全世界的代码;
在所述重签名通过校验后,启动所述单板;
所述获取待加载到所述单板的软件包的重签名之前,所述方法还包括:
获取待更新的软件包;
在所述安全世界中,使用所述待更新的软件包的软件包公钥对所述待更新的软件包的原签名进行校验;
在所述待更新的软件包的原签名通过校验后,在所述安全世界中使用所述单板私钥对所述待更新的软件包进行重签名。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
用所述待更新的软件包和所述待更新的软件包的重签名替换对应的低版本的软件包和所述低版本的软件包对应的重签名,所述低版本的软件包中包含所述低版本的软件包公钥。
3.一种软件包升级的方法,其特征在于,包括:
获取单板待更新的软件包;
在安全世界中,使用所述待更新的软件包的软件包公钥对所述待更新的软件包的原签名进行校验;
在所述待更新的软件包的原签名通过校验后,在所述安全世界中使用所述单板的单板私钥对所述待更新的软件包进行重签名,所述重签名用于在所述单板启动时检验所述软件包的安全性;其中,在单板启动时要校验的软件包包括:启动代码、补丁、操作***、应用以及驻留在所述安全世界的代码。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
用所述待更新的软件包和所述待更新的软件包的重签名替换对应的低版本的软件包和所述低版本的软件包对应的重签名,所述低版本的软件包中包含所述低版本的软件包公钥。
5.一种控制单板安全启动的装置,其特征在于,包括:
获取模块,用于在单板上电后,获取待加载到所述单板的软件包的重签名,所述软件包的重签名为使用所述单板的单板私钥对所述软件包进行重签名得到的,所述重签名是在使用所述软件包的软件包公钥对所述软件包的原签名验证通过后做出的,所述原签名为使用所述软件包的软件包私钥对所述软件包进行签名得到的;
校验模块,用于在安全世界中,使用与所述单板私钥配对的单板公钥对所述获取模块获取的所述软件包的重签名进行校验;
单板启动模块,用于在所述重签名通过所述校验模块校验后,启动所述单板;
所述装置还包括签名模块和存储模块,
所述获取模块,还用于获取待更新的软件包;
所述校验模块,还用于在安全世界中,使用所述获取模块获取的所述待更新的软件包的软件包公钥对所述待更新的软件包的原签名进行校验;
所述签名模块,用于在所述待更新的软件包的原签名通过所述校验模块校验后,在所述安全世界中使用所述单板私钥对所述待更新的软件包进行重签名;其中,在单板启动时要校验的软件包包括:启动代码、补丁、操作***、应用以及驻留在所述安全世界的代码。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括替换模块,
所述替换模块,用于用所述待更新的软件包和所述签名模块签名得到的所述待更新的软件包的重签名替换对应的低版本的软件包和所述低版本的软件包对应的重签名,所述低版本的软件包中包含所述低版本的软件包公钥。
7.一种软件包升级的装置,其特征在于,包括:
获取模块,用于获取单板待更新的软件包;
校验模块,用于在安全世界中,使用所述获取模块获取的所述待更新的软件包的软件包公钥对所述待更新的软件包的原签名进行校验;
签名模块,用于在所述待更新的软件包的原签名通过所述校验模块校验后,在所述安全世界中使用所述单板的单板私钥对所述待更新的软件包进行重签名,所述重签名用于在所述单板启动时检验所述软件包的安全性;其中,在单板启动时要校验的软件包包括:启动代码、补丁、操作***、应用以及驻留在所述安全世界的代码。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括替换模块,
所述替换模块,用于用所述待更新的软件包和所述签名模块签名得到的所述待更新的软件包的重签名替换对应的低版本的软件包和所述低版本的软件包对应的重签名,所述低版本的软件包中包含所述低版本的软件包公钥。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510589849.1A CN105117651B (zh) | 2015-09-16 | 2015-09-16 | 一种控制单板安全启动的方法、软件包升级的方法及装置 |
PCT/CN2016/099115 WO2017045627A1 (zh) | 2015-09-16 | 2016-09-14 | 一种控制单板安全启动的方法、软件包升级的方法及装置 |
EP16845741.4A EP3343424B1 (en) | 2015-09-16 | 2016-09-14 | Control board secure start method, and software package upgrade method and device |
US15/922,708 US20180204009A1 (en) | 2015-09-16 | 2018-03-15 | Method and apparatus for controlling secure boot of board, and method and apparatus for upgrading software package |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510589849.1A CN105117651B (zh) | 2015-09-16 | 2015-09-16 | 一种控制单板安全启动的方法、软件包升级的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105117651A CN105117651A (zh) | 2015-12-02 |
CN105117651B true CN105117651B (zh) | 2018-05-29 |
Family
ID=54665636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510589849.1A Active CN105117651B (zh) | 2015-09-16 | 2015-09-16 | 一种控制单板安全启动的方法、软件包升级的方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20180204009A1 (zh) |
EP (1) | EP3343424B1 (zh) |
CN (1) | CN105117651B (zh) |
WO (1) | WO2017045627A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105117651B (zh) * | 2015-09-16 | 2018-05-29 | 上海华为技术有限公司 | 一种控制单板安全启动的方法、软件包升级的方法及装置 |
CN107451432A (zh) * | 2016-05-30 | 2017-12-08 | 深圳市中兴微电子技术有限公司 | 一种启动程序检查方法和装置 |
EP3602375A4 (en) * | 2017-03-28 | 2020-12-16 | Sierra Wireless, Inc. | METHOD AND DEVICE FOR SAFELY STARTING UP A COMPUTER DEVICE |
CN111212805B (zh) * | 2017-10-27 | 2021-07-09 | 因温特奥股份公司 | 用于建筑物的人员运送设备的安全*** |
KR102515891B1 (ko) * | 2018-06-11 | 2023-03-29 | 삼성전자주식회사 | 전자장치, 그 제어방법 및 기록매체 |
KR102126931B1 (ko) * | 2018-11-07 | 2020-06-25 | 시큐리티플랫폼 주식회사 | 시큐어 부팅 장치 및 방법 |
US11520895B2 (en) | 2020-12-07 | 2022-12-06 | Samsung Electronics Co., Ltd. | System and method for dynamic verification of trusted applications |
US11902453B2 (en) * | 2021-06-25 | 2024-02-13 | Intel Corporation | Method, system and apparatus for delayed production code signing for heterogeneous artifacts |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833745A (zh) * | 2012-07-17 | 2012-12-19 | 华为技术有限公司 | 一种软件安全升级的方法、通信设备和通信*** |
CN103338450A (zh) * | 2013-06-26 | 2013-10-02 | 华为技术有限公司 | 一种验证方法及设备 |
CN103354496A (zh) * | 2013-06-24 | 2013-10-16 | 华为技术有限公司 | 一种公钥密码的处理方法、装置及*** |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130031371A1 (en) * | 2011-07-25 | 2013-01-31 | Alcatel-Lucent Usa Inc. | Software Run-Time Provenance |
JP5543949B2 (ja) * | 2011-09-21 | 2014-07-09 | 株式会社東芝 | 制御装置およびモニタプログラム |
US9430658B2 (en) * | 2014-12-16 | 2016-08-30 | Freescale Semiconductor, Inc. | Systems and methods for secure provisioning of production electronic circuits |
CN105117651B (zh) * | 2015-09-16 | 2018-05-29 | 上海华为技术有限公司 | 一种控制单板安全启动的方法、软件包升级的方法及装置 |
-
2015
- 2015-09-16 CN CN201510589849.1A patent/CN105117651B/zh active Active
-
2016
- 2016-09-14 WO PCT/CN2016/099115 patent/WO2017045627A1/zh active Application Filing
- 2016-09-14 EP EP16845741.4A patent/EP3343424B1/en active Active
-
2018
- 2018-03-15 US US15/922,708 patent/US20180204009A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833745A (zh) * | 2012-07-17 | 2012-12-19 | 华为技术有限公司 | 一种软件安全升级的方法、通信设备和通信*** |
CN103354496A (zh) * | 2013-06-24 | 2013-10-16 | 华为技术有限公司 | 一种公钥密码的处理方法、装置及*** |
CN103338450A (zh) * | 2013-06-26 | 2013-10-02 | 华为技术有限公司 | 一种验证方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2017045627A1 (zh) | 2017-03-23 |
US20180204009A1 (en) | 2018-07-19 |
EP3343424A4 (en) | 2018-08-15 |
EP3343424A1 (en) | 2018-07-04 |
CN105117651A (zh) | 2015-12-02 |
EP3343424B1 (en) | 2021-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105117651B (zh) | 一种控制单板安全启动的方法、软件包升级的方法及装置 | |
CN109313690B (zh) | 自包含的加密引导策略验证 | |
US11843705B2 (en) | Dynamic certificate management as part of a distributed authentication system | |
US8782388B2 (en) | Information processing apparatus, method, and computer-readable storage medium that encrypt data in a blob based on a hash value | |
US8732445B2 (en) | Information processing device, information processing method, information processing program, and integrated circuit | |
US7774619B2 (en) | Secure code execution using external memory | |
KR101190479B1 (ko) | 티켓 인증 보안 설치 및 부트 | |
US8560823B1 (en) | Trusted modular firmware update using digital certificate | |
CN105144626B (zh) | 提供安全性的方法和设备 | |
JP6371919B2 (ja) | セキュアなソフトウェアの認証と検証 | |
CN111264044B (zh) | 芯片、生成私钥的方法和可信证明的方法 | |
KR20170095163A (ko) | 하드웨어 디바이스 및 그 인증 방법 | |
US8392724B2 (en) | Information terminal, security device, data protection method, and data protection program | |
EP2565811A2 (en) | System and method for authenticating a gaming device | |
KR20090109589A (ko) | 프로세서 내에서의 보호된 리소스들로의 억세스에 대한 안전한 보호 방법 | |
CN110795126A (zh) | 一种固件安全升级*** | |
CN109814934B (zh) | 数据处理方法、装置、可读介质和*** | |
CN111177709A (zh) | 一种终端可信组件的执行方法、装置及计算机设备 | |
CN114003915A (zh) | 基于芯片的安全启动方法及装置 | |
CN112861137A (zh) | 安全固件 | |
CN111506915A (zh) | 授权访问的控制方法、装置和*** | |
CN115062290A (zh) | 一种组件认证方法及装置 | |
KR20230137422A (ko) | 디지털 장치를 위한 신뢰할 수 있는 컴퓨팅 | |
CN108228219B (zh) | 一种带外刷新bios时验证bios合法性的方法及装置 | |
CN105426206B (zh) | 一种版本信息的控制方法和控制装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |