CN113553109A - 一种用于校验操作系统前置软件的方法 - Google Patents
一种用于校验操作系统前置软件的方法 Download PDFInfo
- Publication number
- CN113553109A CN113553109A CN202110786712.0A CN202110786712A CN113553109A CN 113553109 A CN113553109 A CN 113553109A CN 202110786712 A CN202110786712 A CN 202110786712A CN 113553109 A CN113553109 A CN 113553109A
- Authority
- CN
- China
- Prior art keywords
- signature
- verification
- bios
- bootloader
- operating system
- 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
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000012795 verification Methods 0.000 claims abstract description 136
- 238000005516 engineering process Methods 0.000 claims abstract description 24
- 238000013461 design Methods 0.000 abstract description 3
- 238000011161 development Methods 0.000 abstract description 3
- 238000005259 measurement Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- 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/602—Providing cryptographic facilities or services
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Abstract
本申请公开了一种用于校验操作系统前置软件的方法,包括:使用内部存储器启动信任链,采用数字签名验证技术,依次验证BootLoader的签名和内核的签名。通过使用内部存储器启动信任链,采用数字签名验证技术,依次验证BootLoader的签名和内核的签名,可以校验启前置软件内容的完整性和来源的真实性,不需要增加额外的硬件便可有效保障嵌入式系统启动时可信性的方法。利用完整性验证技术和数字签名技术建立嵌入式可信启动信任链,能够有效地保护预期度量值。通过验证签名的技术可以验证启动实体内容的完整性和来源的真实性,有效地保证系统启动过程的可信性,简化了硬件设计难度,可广泛应用于严格控制成本的嵌入式系统开发中,提高系统的高可信能力。
Description
技术领域
本申请涉及系统安全技术领域,尤其涉及一种用于校验操作系统前置软件的方法。
背景技术
随着信息技术的高速发展,在带来信息产业空前繁荣的同时,危害信息安全的事件也不断发生,信息安全形势日益严峻。目前有多种保障系统安全的技术,比如系统访问控制、入侵检测技术和防病毒体系等,这些技术大都只能提高系统应用层的安全。一个系统能够正常运行的前提是系统本身是安全的,如果系统在启动之前就由于被篡改或破坏等原因进入一种不可信的状态,则基于该系统而建立的任何安全机制都无法确保系统的可信性。传统嵌入式系统的设计很少考虑系统安全问题,存在较多的安全隐患,如用户可通过刷机进入一种不确定的系统状态,或者内核被恶意程序植入而遭篡改,这些操作都可能给用户带来严重的损失和破坏。
目前,已经有一些研究成果可以做到防止内核等关键信息被篡改。现有的可信启动相关研究方法分为两类:一类是需要增加额外硬件辅助,如在PC机领域添置可信平台模块(Trusted Platform Module,TPM)以及在移动设备终端添置移动可信模块(MobileTrusted Module,MTM)这类安全芯片。然而该方法需要增加额外的可信硬件模块,这将增加硬件开销和成本。而对成本控制非常严格的嵌入式设备,大多没有这样的可信模块。因此,该类方法对于嵌入式系统而言,具有很大的局限性。
综上所述,需要提供一种不需要增加额外硬件的前置软件校验方法。
发明内容
为解决以上问题,本申请提出了一种用于校验操作系统前置软件的方法,通过使用内部存储器启动信任链,采用数字签名验证技术,依次验证BootLoader的签名和内核的签名,判断操作系统前置软件是否发生改变。
具体地,本发明提出了一种用于校验操作系统前置软件的方法,包括:
使用内部存储器启动信任链,采用数字签名验证技术,依次验证BootLoader的签名和内核的签名。
优选地,若操作系统的前置软件包括BIOS,则在所述使用内部存储器启动信任链,采用数字签名验证技术,依次验证BootLoader的签名和内核的签名之前,还包括:
在操作系统启动时,使用信任根验证组件对当前BIOS进行验证。
优选地,所述在操作系统启动时,使用信任根验证组件对当前BIOS进行验证,包括:
在操作系统启动时,使用信任根验证组件对当前的BIOS镜像生成的第一签名与原始BIOS签名进行比较;
若所述第一签名与所述原始BIOS签名相同,则将执行权交予BIOS;
若所述第一签名与所述原始BIOS签名不相同,则更新BIOS,进行再验证。
优选地,所述更新BIOS,进行再验证,包括:
使用存储的原始BIOS镜像进行BIOS更新;
使用信任根对更新后的BIOS镜像生成的第二签名与原始BIOS签名进行比较;
若所述第一签名与所述原始BIOS签名相同,则将执行权交予BIOS;
若所述第一签名与所述原始BIOS签名不相同,则停止启动。
优选地,所述使用内部存储器启动信任链,采用数字签名验证技术,依次验证BootLoader的签名和内核的签名,包括:
使用内部存储器中的第一验证公钥解密BootLoader的签名头部中的信息;
对BootLoader的签名头部中的信息进行计算,得到第一验证私钥;
对第一验证公钥和第一验证私钥进行配对,若匹配,则使用BootLoader中的第二验证公钥解密内核的签名头部中的信息;
对内核的签名头部中的信息进行计算,得到第二验证私钥;
对第二验证公钥和第二验证私钥进行配对,若匹配,则允许操作系统启动。
优选地,若第一验证公钥和第一验证私钥不匹配,则终止操作系统的启动。
优选地,若第二验证公钥和第二验证私钥不匹配,则终止操作系统的启动。
优选地,所述BootLoader的签名和所述内核的签名分别使用不同的Hash算法和不同密钥长度的RSA算法。
优选地,所述签名头部中的信息,包括:BootLoader或内核的大小、签名信息、签名算法。
本申请的优点在于:通过使用内部存储器启动信任链,采用数字签名验证技术,依次验证BootLoader的签名和内核的签名,可以校验启动实体(前置软件)内容的完整性和来源的真实性,不需要增加额外的硬件。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选事实方案的目的,而并不认为是对本申请的限制。而且在整个附图中,用同样的参考符号表示相同的部件。在附图中:
图1是本申请提供的一种用于校验操作系统前置软件的方法的步骤示意图;
图2是本申请提供的一种用于校验操作系统前置软件的方法的信任根校验示意图;
图3是本申请提供的一种用于校验操作系统前置软件的方法的信任链校验示意图;
图4是本申请提供的一种用于校验操作系统前置软件的系统的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
根据本申请的实施方式,提出一种用于校验操作系统前置软件的方法,如图1所示,包括:
S101,使用内部存储器(Internal ROM,IROM)启动信任链,采用数字签名验证技术,依次验证BootLoader的签名和内核的签名。
若操作系统的前置软件包括BIOS,则在使用内部存储器启动信任链,采用数字签名验证技术,依次验证BootLoader的签名和内核的签名之前,还包括:
在操作系统启动时,使用信任根(Root of Trust,RT)验证组件对当前BIOS进行验证。
在操作系统启动时,使用信任根验证组件对当前BIOS进行验证,包括:
在操作系统启动时,使用信任根验证组件对当前的BIOS镜像生成的第一签名与原始BIOS签名进行比较;
若第一签名与原始BIOS签名相同,则将执行权交予BIOS;
若第一签名与原始BIOS签名不相同,则更新BIOS,进行再验证。
更新BIOS,进行再验证,包括:
使用存储的原始BIOS镜像进行BIOS更新;
使用信任根对更新后的BIOS镜像生成的第二签名与原始BIOS签名进行比较;
若第一签名与原始BIOS签名相同,则将执行权交予BIOS;
若第一签名与原始BIOS签名不相同,则停止启动。
使用内部存储器启动信任链,采用数字签名验证技术,依次验证BootLoader的签名和内核的签名,包括:
使用内部存储器中的第一验证公钥解密BootLoader的签名头部中的信息;
对BootLoader的签名头部中的信息进行计算,得到第一验证私钥;
对第一验证公钥和第一验证私钥进行配对,若匹配,则使用BootLoader中的第二验证公钥解密内核的签名头部中的信息;
对内核的签名头部中的信息进行计算,得到第二验证私钥;
对第二验证公钥和第二验证私钥进行配对,若匹配,则允许操作系统启动。
若第一验证公钥和第一验证私钥不匹配,则终止操作系统的启动。
若第二验证公钥和第二验证私钥不匹配,则终止操作系统的启动。
BootLoader的签名和内核的签名分别使用不同的Hash算法和不同密钥长度的RSA算法。
签名头部中的信息,包括:BootLoader或内核的大小、签名信息、签名算法。
下面,对本申请的实施方式进行进一步详细说明。
以一个操作系统的前置软件包括BIOS、Bootloader和内核(Kernel)为例,则首先对BIOS进行校验。
如图2所示,在系统每次启动时,使用RT验证组件对BIOS进行验证,RT验证组件对当前的BIOS镜像生成签名(第一签名),将生成的签名与系统存储的原始BIOS签名进行对比;当签名对一致时,则验证通过,BIOS可信,将执行权交予BIOS。
当签名对不一致时,访问历史存储的原始BIOS镜像,进行验证并执行BIOS更新,对当前的BIOS进行更新;执行复位操作,重启RT验证组件,对更新后的BIOS进行再校验,使用信任根对更新后的BIOS镜像生成的第二签名与原始BIOS签名进行比较,当签名对一致时,则验证通过,BIOS可信,将执行权交予BIOS;当验证不通过时,则BIOS不可信,不可信的BIOS不再继续执行。
在BIOS校验通过后,启动信任链,采用数字签名验证技术,依次验证BootLoader的签名和内核的签名。
IROM为第一个启动实体,之后是BootLoader、Kernel的启动,组成启动信任链。信任链中的每阶段包含签名头部和验证尾部;上一个启动实体通过尾部的验证模块通过验证公钥解密下一个实体的签名头部。验证模块使用签名头部中的信息计算签名头部所对应的实体的当前的计算值(验证私钥),与验证公钥进行对比,若验证私钥中的签名与验证公钥中的签名一致,则允许启动,若不一致,则报错,启动终止。
信任链的可信启动分为内部存储器验证BootLoader和由BootLoader验证内核两个阶段;若信任链中的签名比较全部一致,则说明校验成功;若信任链中的签名比较有不一致,则校验不通过(不可信),启动终止。
签名头部包括用于计算验证私钥的信息,如对应的实体自身的签名信息、大小、签名算法参数。验证模块采用数字签名验证技术对启动实体的可信性进行验证,确保启动实体的来源可信。
如图3所示,使用内部存储器验证尾部中的第一验证公钥解密BootLoader的签名头部中的信息;验证尾部中的验证模块对BootLoader的签名头部中的信息进行计算,得到第一验证私钥。验证模块对第一验证公钥和第一验证私钥进行配对,若第一验证公钥和第一验证私钥不匹配,则不允许BootLoader启动,终止操作系统的启动;若匹配,则允许BootLoader启动,且BootLoader验证尾部中的验证模块使用BootLoader验证尾部中的第二验证公钥解密内核的签名头部中的信息。BootLoader验证尾部中的验证模块对内核的签名头部中的信息进行计算,得到第二验证私钥,对第二验证公钥中的签名信息和第二验证私钥中的签名信息进行配对,若第二验证公钥和第二验证私钥不匹配,则不允许内核启动,终止操作系统的启动;若匹配,则允许内核启动,允许操作系统启动。
BootLoader的签名和内核的签名能够分别使用不同的Hash算法和不同密钥长度的RSA算法。
通过利用完整性验证技术和数字签名技术建立嵌入式信任链,可有效地保护预期度量值(签名)。
根据本申请的实施方式,还提出一种用于校验操作系统前置软件的系统,如图4所示,包括:
信任链校验模块101,用于使用内部存储器启动信任链,采用数字签名验证技术,依次验证BootLoader的签名和内核的签名。
本申请的实施方式还包括:
信任根校验模块,用于在操作系统启动时,使用信任根验证组件对当前BIOS进行验证。
信任根校验模块包括:
校验单元,用于在操作系统启动时,使用信任根验证组件对当前的BIOS镜像生成的第一签名与原始BIOS签名进行比较;判断第一签名是否与原始BIOS签名相同,若相同,则将执行权交予BIOS;若不同,则使用信任根对更新后的BIOS镜像生成的第二签名与原始BIOS签名进行再验证,若第一签名与原始BIOS签名相同,则将执行权交予BIOS;若第一签名与原始BIOS签名不相同,则停止启动;
更新模块,用于使用存储的原始BIOS镜像进行BIOS更新。
信任链校验模块包括:
内部存储器单元,用于使用内部存储器中的第一验证公钥解密BootLoader单元的签名头部中的信息,对BootLoader单元的签名头部中的信息进行计算,得到第一验证私钥,对第一验证公钥和第一验证私钥进行配对,根据匹配结果,启动BootLoader单元或停止操作系统的启动;
BootLoader单元,用于使用BootLoader中的第二验证公钥解密内核单元的签名头部中的信息,对内核单元的签名头部中的信息进行计算,得到第二验证私钥,对第二验证公钥和第二验证私钥进行配对,根据匹配结果,启动内核单元或停止操作系统的启动;
内核单元,根据匹配结果,启动操作系统或停止操作系统的启动。
第一验证公钥和第一验证私钥中的BootLoader的签名以及第二验证公钥和第二验证私钥中的内核的签名分别使用不同的Hash算法和不同密钥长度的RSA算法。
签名头部中的信息,包括:BootLoader或内核的大小、签名信息、签名算法。
本申请的方法中,通过使用内部存储器启动信任链,采用数字签名验证技术,依次验证BootLoader的签名和内核的签名,可以校验启动实体(前置软件)内容的完整性和来源的真实性,不需要增加额外的硬件模块,便可有效保障嵌入式系统启动时可信性的方法。利用完整性验证技术和数字签名技术建立嵌入式可信启动信任链,能够有效地保护预期度量值。通过验证签名的技术可以验证启动实体内容的完整性和来源的真实性,有效地保证系统启动过程的可信性,简化了硬件设计难度,缩减了开销,在保障可信启动的前提下降低了开发难度,可广泛应用于严格控制成本的嵌入式系统开发中,以提高系统的高可信能力。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种用于校验操作系统前置软件的方法,其特征在于,包括:
使用内部存储器启动信任链,采用数字签名验证技术,依次验证BootLoader的签名和内核的签名。
2.如权利要求1所述的方法,其特征在于,若操作系统的前置软件包括BIOS,则在所述使用内部存储器启动信任链,采用数字签名验证技术,依次验证BootLoader的签名和内核的签名之前,还包括:
在操作系统启动时,使用信任根验证组件对当前BIOS进行验证。
3.如权利要求2所述的方法,其特征在于,所述在操作系统启动时,使用信任根验证组件对当前BIOS进行验证,包括:
在操作系统启动时,使用信任根验证组件对当前的BIOS镜像生成的第一签名与原始BIOS签名进行比较;
若所述第一签名与所述原始BIOS签名相同,则将执行权交予BIOS;
若所述第一签名与所述原始BIOS签名不相同,则更新BIOS,进行再验证。
4.如权利要求3所述的方法,其特征在于,所述更新BIOS,进行再验证,包括:
使用存储的原始BIOS镜像进行BIOS更新;
使用信任根对更新后的BIOS镜像生成的第二签名与原始BIOS签名进行比较;
若所述第一签名与所述原始BIOS签名相同,则将执行权交予BIOS;
若所述第一签名与所述原始BIOS签名不相同,则停止启动。
5.如权利要求1所述的方法,其特征在于,所述使用内部存储器启动信任链,采用数字签名验证技术,依次验证BootLoader的签名和内核的签名,包括:
使用内部存储器中的第一验证公钥解密BootLoader的签名头部中的信息;
对BootLoader的签名头部中的信息进行计算,得到第一验证私钥;
对第一验证公钥和第一验证私钥进行配对,若匹配,则使用BootLoader中的第二验证公钥解密内核的签名头部中的信息;
对内核的签名头部中的信息进行计算,得到第二验证私钥;
对第二验证公钥和第二验证私钥进行配对,若匹配,则允许操作系统启动。
6.如权利要求5所述的方法,其特征在于,若第一验证公钥和第一验证私钥不匹配,则终止操作系统的启动。
7.如权利要求5所述的方法,其特征在于,若第二验证公钥和第二验证私钥不匹配,则终止操作系统的启动。
8.如权利要求1所述的方法,其特征在于,所述BootLoader的签名和所述内核的签名分别使用不同的Hash算法和不同密钥长度的RSA算法。
9.如权利要求5所述的方法,其特征在于,所述签名头部中的信息,包括:BootLoader或内核的大小、签名信息、签名算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110786712.0A CN113553109A (zh) | 2021-07-12 | 2021-07-12 | 一种用于校验操作系统前置软件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110786712.0A CN113553109A (zh) | 2021-07-12 | 2021-07-12 | 一种用于校验操作系统前置软件的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113553109A true CN113553109A (zh) | 2021-10-26 |
Family
ID=78102964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110786712.0A Pending CN113553109A (zh) | 2021-07-12 | 2021-07-12 | 一种用于校验操作系统前置软件的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113553109A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101816004A (zh) * | 2007-10-02 | 2010-08-25 | 国际商业机器公司 | 通过安全内核设计划分的安全策略 |
CN103927490A (zh) * | 2014-04-25 | 2014-07-16 | 华为技术有限公司 | 操作系统安全启动方法及装置 |
CN104156659A (zh) * | 2014-08-14 | 2014-11-19 | 电子科技大学 | 一种嵌入式系统的安全启动方法 |
-
2021
- 2021-07-12 CN CN202110786712.0A patent/CN113553109A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101816004A (zh) * | 2007-10-02 | 2010-08-25 | 国际商业机器公司 | 通过安全内核设计划分的安全策略 |
CN103927490A (zh) * | 2014-04-25 | 2014-07-16 | 华为技术有限公司 | 操作系统安全启动方法及装置 |
CN104156659A (zh) * | 2014-08-14 | 2014-11-19 | 电子科技大学 | 一种嵌入式系统的安全启动方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108399339B (zh) | 一种基于安全芯片的可信启动方法 | |
US8590040B2 (en) | Runtime platform firmware verification | |
US10142104B2 (en) | Securely recovering a computing device | |
CN109669734B (zh) | 用于启动设备的方法和装置 | |
US8341393B2 (en) | Security to extend trust | |
US8341422B2 (en) | Method and apparatus for incremental code signing | |
US20230020278A1 (en) | Secure boot assist for devices, and related systems, methods and devices | |
US8732445B2 (en) | Information processing device, information processing method, information processing program, and integrated circuit | |
KR101229148B1 (ko) | 소프트웨어 신뢰성 검증 방법, 장치 및 컴퓨터 판독가능 매체 | |
TWI788594B (zh) | 安全執行可延伸韌體應用程式的方法及計算機設備 | |
EP3343424B1 (en) | Control board secure start method, and software package upgrade method and device | |
US10936722B2 (en) | Binding of TPM and root device | |
KR102395258B1 (ko) | 부트 메모리 버스의 경로 절체 기능을 이용한 시큐어 부팅 방법 및 이를 이용한 장치 | |
CN111291381A (zh) | 一种基于tcm构建信任链的方法、设备及介质 | |
CN112511306A (zh) | 一种基于混合信任模型的安全运行环境构建方法 | |
CN112181513A (zh) | 一种基于硬件板卡的控制操作系统引导的可信度量方法及系统 | |
CN112148314A (zh) | 一种嵌入式系统的镜像验证方法、装置、设备及存储介质 | |
TW202145007A (zh) | 應用加速驗證映像檔方法的系統 | |
CN111241548B (zh) | 计算机启动方法 | |
US11620385B2 (en) | Vehicle control device, vehicle control device start-up method, and recording medium | |
CN115357908B (zh) | 一种网络设备内核可信度量与自动修复方法 | |
CN111597560A (zh) | 一种安全可信模组启动方法及系统 | |
CN116707758A (zh) | 可信计算设备的认证方法、设备和服务器 | |
CN112988262B (zh) | 一种在目标平台上启动应用程序的方法及装置 | |
CN113553109A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211026 |
|
RJ01 | Rejection of invention patent application after publication |