CN104951316A - 一种内核可信启动方法和装置 - Google Patents

一种内核可信启动方法和装置 Download PDF

Info

Publication number
CN104951316A
CN104951316A CN201410114837.9A CN201410114837A CN104951316A CN 104951316 A CN104951316 A CN 104951316A CN 201410114837 A CN201410114837 A CN 201410114837A CN 104951316 A CN104951316 A CN 104951316A
Authority
CN
China
Prior art keywords
kernel
credible
module
subregion
boot loader
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
Application number
CN201410114837.9A
Other languages
English (en)
Other versions
CN104951316B (zh
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
Wuhan University WHU
Original Assignee
Huawei Technologies Co Ltd
Wuhan University WHU
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
Priority to CN201410114837.9A priority Critical patent/CN104951316B/zh
Application filed by Huawei Technologies Co Ltd, Wuhan University WHU filed Critical Huawei Technologies Co Ltd
Priority to PCT/CN2015/074003 priority patent/WO2015143989A1/zh
Priority to JP2016559272A priority patent/JP6319609B2/ja
Priority to EP15769226.0A priority patent/EP3098712B1/en
Priority to KR1020167026892A priority patent/KR101894926B1/ko
Priority to BR112016021661-0A priority patent/BR112016021661B1/pt
Publication of CN104951316A publication Critical patent/CN104951316A/zh
Priority to US15/272,199 priority patent/US10032030B2/en
Application granted granted Critical
Publication of CN104951316B publication Critical patent/CN104951316B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3234Cryptographic 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 additional secure or trusted devices, e.g. TPM, smartcard, USB or software token

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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例涉及可信计算技术领域。本发明实施例提供一种内核可信启动方法和装置,所述方法包括:启动安全引导模块Boot loader;调用Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信;若PCR分区可信,调用Boot loader将内核代码读取到内存中,并调用Boot loader根据第一完整算法以及PCR分区内预存的内核代码的度量标准值来度量内核代码是否可信;若内核代码可信,初始化内核代码以触发初始化的内核根据第二完整算法度量Boot loader是否可信;若Boot loader可信,启动内核。采用本方案可以在一定程度上提高内核启动的安全性。

Description

一种内核可信启动方法和装置
技术领域
本发明涉及可信计算技术领域,尤其涉及一种内核可信启动方法和装置。
背景技术
近年来,随着第三代移动通信(3rd Generation,3G)网络的普及,智能手机已成为发展最快的信息产业(Information Technology,IT)产品。
虽然快速发展的智能移动设备带领信息时代进入了一个新的发展高潮,但由于其过度苛求应用性能的提高,而忽视了安全性能的发展,造成移动设备的安全性能的发展滞后,手机的安全问题隐患也逐步暴露出来。针对移动智能设备的安全启动,现有技术采用一种从外部安全单元启动的方法,即外部安全单元通过通信接口连接到嵌入式设备上,为其提供安全功能。设备启动时,嵌入式设备需要首先确认外部安全单元的存在,防止非法启动绕过信任链的外部可信根,然后载入系统引导程序,引导程序调用安全单元对操作系统内核进行完整性度量,验证通过后即启动该内核。
但是,上述现有技术采用的方法存在如下缺陷:外部安全单元需要外部接口与移动智能设备进行通信,而一般的移动通信终端并不提供这样的外部接口,这使其应用范围受到限制;其次,该启动方案在启动之前只要验证到外部安全单元的存在,就可以启动内核,故采用该方案使得非法启动绕过安全单元的可能比较大,内核启动的安全性比较低。
发明内容
本发明提供一种内核可信启动方法和装置,用于提高内核启动的安全性。
第一方面,本发明实施例提供一种内核可信启动方法,包括:
启动安全引导模块Boot loader;
调用所述Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信;
若所述PCR分区可信,调用所述Boot loader将内核代码读取到内存中,并调用所述Boot loader根据第一完整算法以及所述PCR分区内预存的所述内核代码的度量标准值来度量所述内核代码是否可信;
若所述内核代码可信,初始化所述内核代码以触发初始化的所述内核根据第二完整算法度量所述Boot loader是否可信;
若所述Boot loader可信,启动所述内核。
结合第一方面,在第一方面的第一种可能的实施方式中,所述方法还包括:
获取环境ENV分区内预存的所述PCR分区的度量标准值;
所述调用所述Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信,包括:
调用所述Boot loader根据所述第一安全算法计算所述PCR分区的度量实际值,通过比较所述PCR分区的度量实际值是否等于所述PCR分区的度量标准值度量所述PCR分区是否可信,若所述PCR分区的度量实际值等于所述PCR分区的度量标准值,则所述PCR分区可信。
结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述获取环境ENV分区内预存的所述PCR分区的度量标准值,包括:
基于用户输入的PIN码生成根密钥;
利用所述根密钥解密所述ENV分区,以获取所述ENC分区内预存的所述PCR分区的度量标准值。
结合第一方面或第一方面的第一种或第二种可能的实施方式,在第一方面的第三种可能的实施方式中,所述方法还包括:
获取所述PCR分区内预存的所述内核代码的度量标准值;
所述若所述PCR分区可信,调用所述Boot loader将内核代码读取到内存中,并调用所述Boot loader根据第一完整算法以及所述PCR分区内预存的所述内核代码的度量标准值来度量所述内核代码是否可信,包括:
若所述PCR分区可信,调用所述Boot loader将内核代码读取到内存中,并调用所述Boot loader根据所述第一完整算法计算所述内核代码的度量实际值,通过比较所述内核代码的度量实际值是否等于所述内核代码的度量标准值度量所述内核代码是否可信,若所述内核代码的度量实际值等于所述内核代码的度量标准值,则所述内核代码可信。
结合第一方面或第一方面的第一种至第三种任一种可能的实施方式,在第一方面的第四种可能的实施方式中,所述方法还包括:
获取所述PCR分区内预存的所述Boot loader的度量标准值;
所述若所述内核代码可信,初始化所述内核代码以触发初始化的内核根据第二完整算法度量所述Boot loader是否可信,包括:
若所述内核代码可信,初始化所述内核代码以触发初始化的所述内核根据所述第二完整算法计算所述Boot loader的度量实际值,通过比较所述Bootloader的度量实际值是否等于所述Boot loader的度量标准值度量所述Bootloader是否可信,若所述Boot loader的度量实际值等于所述Boot loader的度量标准值,则所述Boot loader可信。
结合第一方面或第一方面的第一种至第四种任一种可能的实施方式,在第一方面的第五种可能的实施方式中,所述启动所述内核之后,还包括:
调用所述内核根据第三完整算法来度量内核安全管理增强模块是否可信;
若所述内核安全管理增强模块可信,启动操作系统。
结合第一方面的第五种可能的实施方式,在第一方面的第六种可能的实施方式中,所述方法还包括:
获取所述PCR分区内预存的所述内核安全管理增强模块的度量标准值;
所述调用所述内核根据第三完整算法来度量内核安全管理增强模块是否可信,包括:
调用所述内核根据所述第三完整算法来计算所述内核安全管理增强模块的度量实际值,通过比较所述内核安全管理增强模块的度量实际值是否等于所述内核安全管理增强模块的度量标准值度量所述内核安全管理增强模块是否可信,若所述内核安全管理增强模块的度量实际值等于所述内核安全管理增强模块的度量标准值,则所述内核安全管理增强模块可信。
结合第一方面的第五种或第六种可能的实施方式,在第一方面的第七种可能的实施方式中,所述启动操作系统之后,还包括:
调用所述内核安全管理增强模块根据第四完整算法来度量待启动的应用程序是否可信;
若所述应用程序可信,启动所述应用程序。
结合第一方面的第七种可能的实施方式,在第一方面的第八种可能的实施方式中,所述方法还包括:
获取所述PCR分区内预存的所述应用程序的度量标准值;
所述调用所述内核安全管理增强模块根据第四完整算法来度量待启动的应用程序是否可信,包括:
调用所述内核安全管理增强模块根据所述第四完整算法计算所述应用程序的度量实际值,通过比较所述应用程序的度量实际值是否等于所述应用程序的度量标准值度量所述应用程序是否可信,若所述应用程序的度量实际值等于所述应用程序的度量标准值,则所述应用程序可信。
第二方面,本发明实施例提供另一种内核可信启动方法,包括:
启动安全引导模块Boot loader;
调用所述Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信;
若所述PCR分区可信,调用所述Boot loader将内核代码读取到内存中,并调用所述Boot loader根据第一完整算法以及所述PCR分区内预存的所述内核代码的度量标准值来度量所述内核代码是否可信;
若所述内核代码可信,运行所述内核代码以启动所述内核。
结合第二方面,在第二方面的第一种可能的实施方式中,所述运行所述内核代码以启动内核之后,还包括:
调用所述内核根据第二完整算法来度量所述Boot loader是否可信;
若所述Boot loader可信,调用所述内核根据第三完整算法度量内核安全管理增强模块是否可信;
若所述内核安全管理增强模块可信,启动操作系统。
结合第二方面或第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,所述方法还包括:
获取环境ENV分区内预存的所述PCR分区的度量标准值;
所述调用所述Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信,包括:
调用所述Boot loader根据预存的所述第一安全算法计算所述PCR分区的度量实际值,通过比较所述PCR分区的度量实际值是否等于所述PCR分区的度量标准值度量所述PCR分区是否可信,若所述PCR分区的度量实际值等于所述PCR分区的度量标准值,则所述PCR分区可信。
结合第二方面的第二种可能的实施方式,在第二方面的第三种可能的实施方式中,所述获取环境ENV分区内预存的所述PCR分区的度量标准值,包括:
基于用户输入的PIN码生成根密钥;
利用所述根密钥解密所述ENV分区,以获取所述ENV分区内预存的所述PCR分区的度量标准值。
结合第二方面或第二方面的第一种至第三种任一种可能的实施方式,在第二方面的第四种可能的实施方式中,所述方法还包括:
获取所述PCR分区内预存的所述内核代码的度量标准值;
所述若所述PCR分区可信,调用所述Boot loader将内核代码读取到内存中,并调用所述Boot loader根据第一完整算法以及所述PCR分区内预存的所述内核代码的度量标准值来度量所述内核代码是否可信,包括:
若所述PCR分区可信,调用所述Boot loader将内核代码读取到内存中,并调用所述Boot loader根据所述第一完整算法计算所述内核代码的度量实际值,通过比较所述内核代码的度量实际值是否等于所述内核代码的度量标准值度量所述内核代码是否可信,若所述内核代码的度量实际值等于所述内核代码的度量标准值,则所述内核代码可信。
结合第二方面的第一种至第四种任一种可能的实施方式,在第二方面的第五种可能的实施方式中,所述方法还包括:
获取所述PCR分区内预存的所述Boot loader的度量标准值;
所述调用所述内核根据第二完整算法来度量所述Boot loader是否可信,包括:
调用所述内核根据所述第二完整算法计算所述Boot loader的度量实际值,通过比较所述Boot loader的度量实际值是否等于所述Boot loader的度量标准值度量所述Boot loader是否可信,若所述Boot loader的度量实际值等于所述Boot loader的度量标准值,则所述Boot loader可信。
结合第二方面的第一种至第五种任一种可能的实施方式,在第二方面的第六种可能的实施方式中,所述方法还包括:
获取所述PCR分区内预存的所述内核安全管理增强模块的度量标准值;
所述调用所述内核根据第三完整算法来度量内核安全管理增强模块是否可信,包括:
调用所述内核根据所述第三完整算法计算所述内核安全管理增强模块的度量实际值,通过比较所述内核安全管理增强模块的度量实际值是否等于所述内核安全管理增强模块的度量标准值度量所述内核安全管理增强模块是否可信,若所述内核安全管理增强模块的度量实际值等于所述内核安全管理增强模块的度量标准值,则所述内核安全管理增强模块可信。
结合第二方面的第一种至第六种任一种可能的实施方式,在第二方面的第七种可能的实施方式中,所述启动操作系统之后,还包括:
调用所述内核安全管理增强模块根据第四完整算法来度量待启动的应用程序是否可信;
若所述应用程序可信,启动所述应用程序。
结合第二方面的第七种可能的实施方式,在第二方面的第八种可能的实施方式中,所述方法还包括:
获取所述PCR分区内预存的所述应用程序的度量标准值;
所述调用所述内核安全管理增强模块根据第四完整算法来度量待启动的应用程序是否可信,包括:
调用所述内核安全管理增强模块根据所述第四完整算法计算所述应用程序的度量实际值,通过比较所述应用程序的度量实际值是否等于所述应用程序的度量标准值度量所述应用程序是否可信,若所述应用程序的度量实际值等于所述应用程序的度量标准值,则所述应用程序可信。
第三方面,本发明实施例提供一种内核可信启动装置,包括:
引导启动模块,用于启动安全引导模块Boot loader;
第一度量模块,用于调用所述Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信;
所述第一度量模块还用于若所述PCR分区可信,调用所述Boot loader将内核代码读取到内存中,并调用所述Boot loader根据第一完整算法以及所述PCR分区内预存的所述内核代码的度量标准值来度量所述内核代码是否可信;
第二度量模块,用于若所述内核代码可信,初始化所述内核代码以触发初始化的内核根据第二完整算法度量所述Boot loader是否可信;
内核启动模块,用于若所述Boot loader可信,启动所述内核。
结合第三方面,在第三方面的第一种可能的实施方式中,所述装置还包括:
获取模块,用于获取环境ENV分区内预存的所述PCR分区的度量标准值;
所述第一度量模块具体用于调用所述Boot loader根据所述第一安全算法计算所述PCR分区的度量实际值,通过比较所述PCR分区的度量实际值是否等于所述PCR分区的度量标准值度量所述PCR分区是否可信,若所述PCR分区的度量实际值等于所述PCR分区的度量标准值,则确定所述PCR分区可信。
结合第三方面的第一种可能的实施方式,在第三方面的第二种可能的实施方式中,所述获取模块具体用于基于用户输入的PIN码生成根密钥,利用所述根密钥解密所述ENV分区,以获取所述ENC分区内预存的所述PCR分区的度量标准值。
结合第三方面或第三方面的第一种或第二种可能的实施方式,在第三方面的第三种可能的实施方式中,
所述获取模块还用于获取所述PCR分区内预存的所述内核代码的度量标准值;
所述第一度量模块具体用于若所述PCR分区可信,调用所述Boot loader将内核代码读取到内存中,并调用所述Boot loader根据所述第一完整算法计算所述内核代码的度量实际值,通过比较所述内核代码的度量实际值是否等于所述内核代码的度量标准值度量所述内核代码是否可信,若所述内核代码的度量实际值等于所述内核代码的度量标准值,则所述内核代码可信。
结合第三方面或第三方面的第一种至第三种任一种可能的实施方式,在第三方面的第四种可能的实施方式中,
所述获取模块还用于获取所述PCR分区内预存的所述Boot loader的度量标准值;
所述第二度量模块具体用于若所述内核代码可信,初始化所述内核代码以触发初始化的所述内核根据所述第二完整算法计算所述Boot loader的度量实际值,通过比较所述Boot loader的度量实际值是否等于所述Boot loader的度量标准值度量所述Boot loader是否可信,若所述Boot loader的度量实际值等于所述Boot loader的度量标准值,则所述Boot loader可信。
结合第三方面或第三方面的第一种至第四种任一种可能的实施方式,在第三方面的第五种可能的实施方式中,所述装置还包括系统启动模块:
所述第二度量模块还用于调用所述内核根据第三完整算法来度量内核安全管理增强模块是否可信;
所述系统启动模块,用于若所述内核安全管理增强模块可信,启动操作系统。
结合第三方的第五种可能的实施方式,在第三方面的第六种可能的实施方式中,
所述获取模块还用于获取所述PCR分区内预存的所述内核安全管理增强模块的度量标准值;
所述第二度量模块具体用于调用所述内核根据所述第三完整算法来计算所述内核安全管理增强模块的度量实际值,通过比较所述内核安全管理增强模块的度量实际值是否等于所述内核安全管理增强模块的度量标准值度量所述内核安全管理增强模块是否可信,若所述内核安全管理增强模块的度量实际值等于所述内核安全管理增强模块的度量标准值,则所述内核安全管理增强模块可信。
结合第三方的第五种或第六种可能的实施方式,在第三方面的第七种可能的实施方式中,所述装置还包括:
第三度量模块,用于调用所述内核安全管理增强模块根据第四完整算法来度量待启动的应用程序是否可信;
应用程序启动模块,用于若所述应用程序可信,启动所述应用程序。
结合第三方的第七种可能的实施方式,在第三方面的第八种可能的实施方式中,
所述获取模块还用于获取所述PCR分区内预存的所述应用程序的度量标准值;
所述第三度量模块具体用于调用所述内核安全管理增强模块根据所述第四完整算法计算所述应用程序的度量实际值,通过比较所述应用程序的度量实际值是否等于所述应用程序的度量标准值度量所述应用程序是否可信,若所述应用程序的度量实际值等于所述应用程序的度量标准值,则所述应用程序可信。
第四方面,本发明实施例提供另一种内核可信启动装置,包括:
引导启动单元,用于启动安全引导模块Boot loader;
第一度量单元,用于调用所述Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信;
所述第一度量单元还用于若所述PCR分区可信,调用所述Boot loader将内核代码读取到内存中,并调用所述Boot loader根据第一完整算法以及所述PCR分区内预存的所述内核代码的度量标准值来度量所述内核代码是否可信;
内核启动单元,用于若所述内核代码可信,运行所述内核代码以启动内核。
结合第四方面,在第四方面的第一种可能的实施方式中,所述装置还包括:
第二度量单元,用于调用所述内核根据第二完整算法来度量所述Bootloader是否可信;
所述第二度量单元还用于若所述Boot loader可信,调用所述内核根据第三完整算法度量内核安全管理增强模块是否可信;
系统启动单元,用于若所述内核安全管理增强模块可信,启动操作系统。
结合第四方面或第四方面的第一种可能的实施方式,在第四方面的第二种可能的实施方式中,所述装置还包括:
获取单元,用于获取环境ENV分区内预存的所述PCR分区的度量标准值;
所述第一度量单元具体用于调用所述Boot loader根据预存的所述第一安全算法计算所述PCR分区的度量实际值,通过比较所述PCR分区的度量实际值是否等于所述PCR分区的度量标准值度量所述PCR分区是否可信,若所述PCR分区的度量实际值等于所述PCR分区的度量标准值,则所述PCR分区可信。
结合第四方面的第二种可能的实施方式,在第四方面的第三种可能的实施方式中,
所述获取单元具体用于基于用户输入的PIN码生成根密钥,利用所述根密钥解密所述ENV分区,以获取所述ENC分区内预存的所述PCR分区的度量标准值。
结合第四方面或第四方面的第一种至第三种任一种可能的实施方式,在第四方面的第四种可能的实施方式中,
所述获取单元还用于获取所述PCR分区内预存的所述内核代码的度量标准值;
所述第一度量单元具体用于若所述PCR分区可信,调用所述Boot loader将内核代码读取到内存中,并调用所述Boot loader根据所述第一完整算法计算所述内核代码的度量实际值,通过比较所述内核代码的度量实际值是否等于所述内核代码的度量标准值度量所述内核代码是否可信,若所述内核代码的度量实际值等于所述内核代码的度量标准值,则所述内核代码可信。
结合第四方面的第一种至第四种任一种可能的实施方式,在第四方面的第五种可能的实施方式中,
所述获取单元还用于获取所述PCR分区内预存的所述Boot loader的度量标准值;
所述第二度量单元具体用于调用所述内核根据所述第二完整算法计算所述Boot loader的度量实际值,通过比较所述Boot loader的度量实际值是否等于所述Boot loader的度量标准值度量所述Boot loader是否可信,若所述Bootloader的度量实际值等于所述Boot loader的度量标准值,则所述Boot loader可信。
结合第四方面的第一种至第五种任一种可能的实施方式,在第四方面的第六种可能的实施方式中,
所述获取单元还用于获取所述PCR分区内预存的所述内核安全管理增强模块的度量标准值;
所述第二度量单元还用于调用所述内核根据所述第三完整算法计算所述内核安全管理增强模块的度量实际值,通过比较所述内核安全管理增强模块的度量实际值是否等于所述内核安全管理增强模块的度量标准值度量所述内核安全管理增强模块是否可信,若所述内核安全管理增强模块的度量实际值等于所述内核安全管理增强模块的度量标准值,则所述内核安全管理增强模块可信。
结合第四方面的第一种至第六种可能的实施方式,在第四方面的第七种可能的实施方式中,所述装置还包括:
第三度量单元,用于调用所述内核安全管理增强模块根据第四完整算法来度量待启动的应用程序是否可信;
应用程序启动单元,用于若所述应用程序可信,启动所述应用程序。
结合第四方面的第七种可能的实施方式,在第四方面的第八种可能的实施方式中,
所述第三度量单元具体用于调用所述内核安全管理增强模块根据所述第四完整算法计算所述应用程序的度量实际值,通过比较所述应用程序的度量实际值是否等于所述应用程序的度量标准值度量所述应用程序是否可信,若所述应用程序的度量实际值等于所述应用程序的度量标准值,则所述应用程序可信。
可知,本发明实施例提供的内核可信启动方法和装置,首先调用安全引导模块Boot loader度量平台配置寄存器PCR分区是否可信;在确定所述PCR分区可信后,调用所述Boot loader根据第一完整算法以及所述PCR分区内预存的内核代码的度量标准值度量所述内核代码是否可信;在确定所述内核代码可信后,再初始化所述内核代码以触发初始化的所述内核根据第二完整算法度量所述Boot loader是否可信,在确定所述Boot loader可信后,启动所述内核。也即采用本发明提供的技术方案,只有在安全引导模块Boot loader、平台配置寄存器PCR分区和内核代码均可信时,内核才能安全启动,且所述内核代码的可信性由所述Boot loader根据所述PCR分区内预存的内核代码的度量标准值度量,所述Boot loader的可信性通过初始化所述内核代码以触发所述内核度量,所以,本发明实施例提供的技术方案可以在一定程度上提高内核启动的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的系统启动流程图;
图2a为本发明提供的内核可信启动方法一个实施例的流程图;
图2b为本发明提供的内核可信启动方法另一个实施例的流程图;
图2c为本发明提供的内核可信启动方法又一个实施例的流程图;
图2d为本发明提供的内核可信启动方法又一个实施例的流程图;
图3a为本发明提供的内核可信启动方法又一个实施例的流程图;
图3b为本发明提供的内核可信启动方法又一个实施例的流程图;
图3c为本发明提供的内核可信启动方法又一个实施例的流程图;
图3d为本发明提供的内核可信启动方法又一个实施例的流程图;
图4a为本发明提供的内核可信启动装置一个实施例的结构示意图;
图4b为本发明提供的内核可信启动装置另一个实施例的结构示意图;
图4c为本发明提供的内核可信启动装置又一个实施例的结构示意图;
图4d为本发明提供的内核可信启动装置又一个实施例的结构示意图;
图4e为本发明提供的内核可信启动装置又一个实施例的结构示意图;
图4f为本发明提供的内核可信启动装置又一个实施例的结构示意图;
图5a为本发明提供的内核可信启动装置又一个实施例的结构示意图;
图5b为本发明提供的内核可信启动装置又一个实施例的结构示意图;
图5c为本发明提供的内核可信启动装置又一个实施例的结构示意图;
图5d为本发明提供的内核可信启动装置又一个实施例的结构示意图;
图5e为本发明提供的内核可信启动装置又一个实施例的结构示意图;
图5f为本发明提供的内核可信启动装置又一个实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的系统启动流程图,结合本发明所示实施例提供的内核可信启动方法,本实施例所示结构图相比较现有技术中嵌入式系统流程的区别在于:在现有嵌入式系统的启动流程中增设了一个软构可信平台模块。该软构可信平台模块可以控制执行图2所示方法中Boot loader对PCR分区以及内核的度量过程,内核对Boot loader以及内核安全管理增强模块的度量,内核安全管理增强模块对应用程序的度量。
该系统启动流程概括为:系统上电后,启动安全引导程序即Bootloader,软构可信平台模块调用Bootloader对平台位置寄存器即PCR分区进行度量;若当前PCR分区为可信,则软构可信平台模块继续调用Bootloader对内核进行度量;若当前内核为可信,则指示Bootloader加载内核并对内核进行初始化,然后调用初始化的内核重新再对Bootloader进行度量;若此时Bootloader为可信,则软构可信平台模块指示内核启动,并对内核安全管理增强模块进行度量;若度量内核安全管理增强模块的度量当前为可信,则指示内核载入内核安全管理增强模块,然后通过内核安全管理增强模块对待开启的应用程序进行度量,若度量结果为可信,则正常开启应用程序。其中,Bootloader度量PCR分区以及内核是通过第一度量模块分别根据第一安全算法和第一完整算法来完成;内核度量Bootloader以及内核管理增强模块则是通过第二度量模块分别根据第二完整算法和第三完整算法来完成;内核管理增强模块度量应用程序则通过第三度量模块根据第四完整算法来完成。如此采用层层度量后层层开启的方法即可实现了可信嵌入式系统的安全启动。
图2a为本发明提供的内核可信启动方法一个实施例的流程图。如图2a所示,该内核可信启动方法具体包括:
S201,启动安全引导模块Boot loader;
目前,在如PC机、手机、Ipad等终端设备中使用的嵌入式系统主要包括如下功能模块:引导程序(Boot Loader)、内核(Kernel)和内核安全管理模块。用户可以在该嵌入式系统各功能模块正常启动后调用各种应用程序来执行相应操作。
在本实施例中,上述终端设备上电后,上述各功能模块的启动顺序为:设备中的嵌入式系统首先载入存储器中存储的安全引导模块(Boot Loader)以启动Boot Loader。具体的,在本实施例中将Boot loader的完整启动过程分为三部分:BL0(Bootloader0)部分、BL1(Bootloader1)部分和BL2(Bootloader2)部分。
其中,BL0是指S5PV210的iROM中固化的启动代码。在系统刚上电时,系统的整体状态未被初始化,内部时钟未被设置,此时只有iRAM可用。如果此时电源供电正常,启动流程将从iROM中固化的启动代码开始。iROM中固化的启动代码是与硬件相关的代码,通常该启动代码通过硬件方式固化在对应的硬件设备中,用户无法更改,其负责初始化系统时钟,设置看门狗,初始化堆和栈,以及加载BL1。
BL1是指在iRAM自动从外扩存储器(nand/sd/usb)中拷贝的uboot.bin二进制文件的前16K(最大16K)代码。其作用为:检测和初始化外部RAM、关闭Cache,设置栈,加载BL2。
BL2是指在代码重定向后在内存中执行的uboot的完整代码,也称为MainBoot Loader。Main Boot Loader代码非常重要,它包含文件系统初始化、网络支持、额外内存初始化等其他工作。同时负责加载操作系统(OS)内核(后续简称内核)。
上述Boot loader的完整启动过程可以描述为:BL0(iROM固化的启动代码)启动后将BL1(boot loader的前16KB代码)加载到iRAM;然后,BL1在iRAM中运行将BL2(剩下的boot loader)加载到内存(SDRAM);BL2加载内核,并把OS在SDRAM中运行起来,最终使OS运行在SDRAM中。
本步骤中所述的启动安全引导模块Boot loader是指在系统上电且载入存储器中Boot Loader后,启动Boot Loader中的BL0和BL1部分。
S202,调用Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信;
在本实施例,上述系统执行启动Boot Loader中的BL0和BL1部分之后,且执行BL2部分即加载内核之前,系统指示Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信。其中,该PCR分区内预先存储有系统启动过程中各节点(如Boot loader、内核、内核安全管理增强模块等)所需的相关参数,如用于度量各节点完整性或安全性的度量标准值。这些度量标准值可以为系统首次开始过程中,由上述各节点主动上报给系统,并由系统将其存储在系统中的指定存储单元内。
具体的,该第一安全算法可预先封装存储在系统中的存储单元中。当Bootloader执行完BL1过程后,Boot loader可触发提醒系统当前BL1过程已完成。系统接收到触发信号后,调用Boot loader根据存储单元中预存的第一安全算法度量平台配置寄存器PCR分区的可信性。
其中,上述第一安全算法具体可以是如安全哈希算法(sha1)、国产SM3杂凑算法,其度量原理可描述为:将待度量的对象如镜像文件通过上述两种算法进行计算,得到当前度量对象的度量值(即度量对象的摘要值,采用sha1算法其对应的度量对象的摘要值为160bit;采用SM3算法其对应的度量对象的摘要值为256bit;)该度量值为采用相应算法计算获得的度量对象的唯一值。若某一度量对象的度量值前后发生变化,可以认为该度量对象已发生变化或被修改。同理,上述Boot loader根据上述第一安全算法度量平台配置寄存器PCR分区是否可信的过程描述为:Boot loader将PCR分区的镜像文件读入内存中作为度量对象,并通过第一安全算法计算该PCR分区的度量值,若该度量值前后未发生变化,则表明该PCR分区未发生过变化,是安全可信的。相反,若该度量值前后发生变化,则表明该PCR分区可能已被人恶意更改而发生了变化,此时该PCR分区内存储的相关数据的安全性也存在质疑,为保证整个系统运行环境的安全性,Boot loader会通知系统PCR安全度量失败,并提醒系统停止系统启动过程,关闭设备。
在实际度量PCR分区可信性的过程中所采用的第一安全算法还可以是MTV5算法、SHA2算法、SHA256算法、MD算法中的任一种算法。其度量可信性的方法原理同sha1和SM3,只是具体计算过程会因具体算法类型而不同,根据本领域技术人员的理解水平,依据相同原理,采用如上所述方法实现对PCR分区的可信性度量,在此不作赘述。
S203,若PCR分区可信,调用Boot loader将内核代码读取到内存中,并调用Boot loader根据第一完整算法以及PCR分区内预存的内核代码的度量标准值来度量内核代码是否可信;
具体的,当采用上述第一安全算法计算PCR分区的度量值,根据该度量值确定PCR分区可信后,系统将调用Boot loader将内核代码读取到内存中,并以内核代码作为度量对象,通过调用Boot loader根据预存在存储单元上的第一完整算法来匹配计算其实际度量值与PCR分区内预存的内核代码的度量标准值之间的大小关系确定该内核代码是否可信。其中,该第一完整算法可以为上述步骤202中列举的几种第一安全算法中的一种,关于Boot loade根据第一完整算法度量内核代码可信性的方法原理可参见步骤202中根据第一安全算法对PCR分区可信性的度量过程的相应内容,在此不作赘述。
S204,若内核代码可信,初始化内核代码以触发初始化的内核根据第二完整算法度量Boot loader是否可信;
具体地,当采用第一完整算法度量内核代码安全可信后,系统调用Bootloader进行BL2过程来加载内核。在加载内核的初期,首先需对所加载的内核代码进行初始化。区别于现有技术,本发明实施例中,系统在对内核代码初始化完成后,先通过触发初始化后的内核根据第二完整算法度量所述Bootloader是否可信;该第二完整算法同上述第一完整算法一样也被预先存储在系统内的存储单元中,其具体引用的算法类型可以与第一完整算法引用的算法类型相同,或是上述列举的任一算法中的一种;其具体度量过程也同上述采用第一完整算法度量内核代码的可信性的方法原理相同,本实施例在此不作赘述。相反的,若采用第一完整算法度量内核代码不可信,则Boot loader会通知系统内核安全度量失败,并提醒系统停止系统启动过程,关闭设备。
S205,若Boot loader可信,启动内核;
具体地,当初始化后的内核采用第二完整算法度量Boot loader可信后,系统将完整启动内核代码并把OS在SDRAM中运行起来,最终使OS运行在SDRAM中。相反的,若初始化后的内核采用第二完整算法度量Boot loader不可信,则内核会通知系统Boot loader安全度量失败,并提醒系统停止系统启动过程,关闭设备。
本发明提供的内核可信启动方法,通过启动安全引导模块Boot loader;调用Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信;若PCR分区可信,调用Boot loader将内核代码读取到内存中,并调用Boot loader根据第一完整算法以及PCR分区内预存的内核代码的度量标准值来度量内核代码是否可信;若内核代码可信,初始化内核代码以触发初始化的内核根据第二完整算法度量所述Boot loader是否可信;若Boot loader可信,启动内核。该方案在一定程度上提高了内核启动的安全性。
图2b为本发明提供的内核可信启动方法另一个实施例的流程图。该实施例所述内核可信启动方法为图2a所示实施例的一种具体实现方式。如图2b所示,该内核可信启动方法具体包括:
S211,启动安全引导模块Boot loader;该步骤具体执行过程可参见步骤201的相应内容。
S212,获取环境ENV分区内预存的PCR分区的度量标准值;
在图2a所示实施例中的步骤202之前,系统还可以先获取环境ENV分区内预存的PCR分区的度量标准值;该度量标准值为PCR分区首次存储系统启动时各节点所需的相关参数时,通过第一安全算法对当时的PCR分区对应的镜像文件进行计算而产生的度量值。
具体地,获取环境ENV分区内预存的PCR分区的度量标准值的具体过程为:
1.基于用户输入的PIN码生成根密钥;
系统在首次上电运行时,会首先接到系统中Boot Loader、内核等关键节点发送的度量其自身安全性的度量标准值。然后将其存储在存储设备中的PCR分区内,供以后度量参考。然后,系统采用上述第一安全算法计算PCR分区对应的镜像文件的度量标准值P(20Byte),该度量标准值用设备根密钥SRK加密生成ENC{P},存放于ENV分区的末尾20字节处。其中,根密钥由用户掌握。用户可在每次系统启动时,输入相应的根密钥种子即PIN码来使系统生成根密钥。
2.利用根密钥解密ENV分区,以获取ENV分区内预存的PCR分区的度量标准值;
在Boot Loader完成BL1过程之后,系统会接收到用户输入的PIN码,并根据该PIN码生成SRK,以对ENV分区的末尾20字节处进行解密。
若用户输入的PIN码正确,则系统根据该PIN码生成SRK可实现对ENV分区内ENC{P}的成功解密,获取到P值。该P值即为上述PCR分区对应的度量标准值。通过比较P与PCR分区的实际度量值,可确定PCR分区是否可信。如此,非法用户即使篡改PCR分区里的任何信息,也无法篡改对应的ENC{P},所以PCR分区一旦篡改,即可被发现,进而提示系统终止当前启动过程。
S213,调用Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信;该步骤具体执行过程可参见步骤202的相应内容。
具体地,Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信的具体过程可以为:首先采用上述第一安全算法对度量对象即PCR分区的镜像文件进行计算,得到当前PCR分区的度量实际值。Boot loader通过比较PCR分区的度量实际值是否等于PCR分区的度量标准值来判断该PCR分区是否在两次度量之间发生变化,从而判断该PCR分区是否可信,若PCR分区的度量实际值等于PCR分区的度量标准值,则表征PCR分区未更改,其环境安全可信。
S214,获取PCR分区内预存的内核代码的度量标准值;
在图2a所示实施例中的步骤203之前,系统还可以先从PCR分区内获取内核代码的度量标准值;该度量标准值为系统首次开始时,由内核根据上述第一完整算法自己计算其对应标准值后主动上报给系统,并由系统存储在PCR分区内。
S215,若PCR分区可信,调用Boot loader将内核代码读取到内存中,并调用Boot loader根据第一完整算法以及PCR分区内预存的内核代码的度量标准值来度量内核代码是否可信;该步骤具体执行过程可参见步骤203的相应内容。
具体地,若PCR分区可信,则系统调用Boot loader将内核代码读取到内存中,并调用Boot loader根据第一完整算法计算内核代码的度量实际值,通过比较内核代码的度量实际值是否等于从PCR分区内获得的内核代码的度量标准值度量该内核代码是否可信,若内核代码的度量实际值等于内核代码的度量标准值,则表征内核代码可信。
S216,获取PCR分区内预存的Boot loader的度量标准值;
在图2a所示实施例中的步骤204之前,系统还可以先从PCR分区内获取Boot loader的度量标准值;该度量标准值为系统首次开始时,由Boot loader根据第二完整算法自己计算其对应标准值后主动上报给系统,并由系统存储在PCR分区内。
S217,若内核代码可信,初始化内核代码以触发初始化的内核根据第二完整算法度量所述Boot loader是否可信;该步骤具体执行过程可参见步骤204的相应内容。
具体地,若上述内核代码可信,系统首先初始化内核代码以触发初始化的内核根据第二完整算法计算Boot loader的度量实际值,并通过比较Bootloader的度量实际值是否等于从PCR分区内获得的Boot loader的度量标准值来度量Boot loader是否可信,若Boot loader的度量实际值等于Boot loader的度量标准值,则表征Boot loader可信。
S218,若Boot loader可信,启动内核;该步骤具体执行过程可参见步骤105的相应内容。
本发明提供的内核可信启动方法,通过启动安全引导模块Boot loader;调用Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信;若PCR分区可信,调用Boot loader将内核代码读取到内存中,并调用Boot loader根据第一完整算法以及PCR分区内预存的内核代码的度量标准值来度量内核代码是否可信;若内核代码可信,初始化内核代码以触发初始化的内核根据第二完整算法度量所述Boot loader是否可信;若Boot loader可信,启动内核。该方案在一定程度上提高了内核启动的安全性。
图2c为本发明提供的内核可信启动方法又一个实施例的流程图。该实施例所述内核可信启动方法为图2a所示实施例的一种具体实现方式。如图2c所示,步骤221~225的内容可参见步骤201~205的相应内容,在此不作赘述。本实施例中,该内核可信启动方法在图2a所示方法的基础上,在步骤205之后还包括:
S226,调用内核根据第三完整算法来度量内核安全管理增强模块是否可信;
其中,第三完整算法同上述第一完整算法一样也被预先存储在系统内的存储单元中,其具体引用的算法类型可以与第一完整算法引用的算法类型相同,或是上述列举的任一算法中的一种;其具体度量过程也同上述采用第一完整算法度量内核代码的可信性的方法原理相同,本实施例在此不作赘述。
具体的,在内核完成启动后,系统可继续调用内核根据上述第三完整算法来度量内核安全管理增强模块是否可信。
具体度量方法为:系统首先从PCR分区内获取内核安全管理增强模块的度量标准值;该度量标准值为系统首次开始时,由内核安全管理增强模块将其对应的镜像文件作为度量对象根据第三完整算法自己计算其对应的标准值后主动上报给系统,并由系统存储在PCR分区内。
同时,系统调用内核根据第三完整算法来计算内核安全管理增强模块当前的度量实际值,通过比较内核安全管理增强模块的度量实际值是否等于从PCR分区内获取的内核安全管理增强模块的度量标准值度量内核安全管理增强模块是否可信,若内核安全管理增强模块的度量实际值等于内核安全管理增强模块的度量标准值,则表征内核安全管理增强模块可信。
S227,若内核安全管理增强模块可信,启动操作系统;
当内核安全管理增强模块可信时,内核将动态载入内核安全管理增强模块,并启动整个系统,这包括系统正常工作环境下所需运行的所有程序。
进一步的,如图2d所示,在步骤227之后,即操作系统完成正常启动后,并且在启动每一个应用程序之前,操作系统还可以执行以下步骤(S238~S239)来进一步保证操作系统的安全性。如图2d所示,步骤231~237的内容可参见步骤221~227的相应内容,在此不作赘述。
S238,调用内核安全管理增强模块根据第四完整算法来度量待启动的应用程序是否可信;
其中,第四完整算法同上述第一完整算法一样也被预先存储在系统内的存储单元中,其具体引用的算法类型可以与第一完整算法引用的算法类型相同,或是上述列举的任一算法中的一种;其具体度量过程也同上述采用第一完整算法度量内核代码的可信性的方法原理相同,本实施例在此不作赘述。
具体度量方法为:系统首先从PCR分区内获取待启动的应用程序的度量标准值;该度量标准值为相应应用程序首次开始时,由系统调用内核安全管理增强模块将应用程序对应的镜像文件作为度量对象根据第四完整算法计算其对应的标准值后主动上报给系统,并由系统存储在PCR分区内。
同时,系统调用内核安全管理增强模块根据第四完整算法来计算该应用程序当前的度量实际值,通过比较该应用程序的度量实际值是否等于从PCR分区内获取的该应用程序的度量标准值度量该应用程序是否可信,若该应用程序的度量实际值等于该应用程序的度量标准值,则表征该应用程序可信。
S239,若上述应用程序可信,则系统执行启动该应用程序;相反,若该应用程序的度量实际值不等于该应用程序的度量标准值,则表征该应用程序不可信。此时,内核安全管理增强模块会主动通知系统当前待开启的应用程序不可信,并请求是否继续开启的指令,系统再通过弹出对应信息窗口的方式,由用户决定是否继续开启。
可以理解的,本实施例中步骤236~237或236~239同样也可在图2b所示实施例中的步骤218之后执行,在此不作赘述。
本发明提供的内核可信启动方法,通过启动安全引导模块Boot loader;调用Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信;若PCR分区可信,调用Boot loader将内核代码读取到内存中,并调用Boot loader根据第一完整算法以及PCR分区内预存的内核代码的度量标准值来度量内核代码是否可信;若内核代码可信,初始化内核代码以触发初始化的内核根据第二完整算法度量所述Boot loader是否可信;若Boot loader可信,启动内核;调用内核根据第三完整算法来度量内核安全管理增强模块是否可信;若内核安全管理增强模块可信,启动操作系统。该方案在一定程度上提高了内核以及操作系统启动的安全性。
图3a为本发明提供的内核可信启动方法另一个实施例的流程图。如图3a所示,该内核可信启动方法具体包括:
S301,启动安全引导模块Boot loader;该步骤具体执行过程可参见步骤201的相应内容。
S302,调用Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信;该步骤具体执行过程可参见步骤202的相应内容。
S303,若PCR分区可信,调用Boot loader将内核代码读取到内存中,并调用Boot loader根据第一完整算法以及PCR分区内预存的内核代码的度量标准值来度量内核代码是否可信;该步骤具体执行过程可参见步骤203的相应内容。
S304,若内核代码可信,运行内核代码以启动内核;
具体地,当调用Boot loader根据第一完整算法以及PCR分区内预存的内核代码的度量标准值来度量内核代码可信后,系统将完整启动内核代码并把OS在SDRAM中运行起来,最终使OS运行在SDRAM中。相反的,若调用Boot loader根据第一完整算法以及PCR分区内预存的内核代码的度量标准值来度量内核代码不可信,则Boot loader会通知系统内核安全度量失败,并提醒系统停止系统启动过程,关闭设备。
本实施例所示的内核可信启动方法,相比较图2a所示实施例,去除了内核在启动过程中对Boot loader的再次度量,而是直接启动整个内核,一定程度上简化了内核流程。并且通过在加载内核前对PCR分区的安全度量同样增加了内核启动时的安全性。
图3b为本发明提供的内核可信启动方法另一个实施例的流程图。该实施例所述内核可信启动方法为图3a所示实施例的一种具体实现方式。如图3b所示,该内核可信启动方法具体包括:
S311,启动安全引导模块Boot loader;
S312,获取环境ENV分区内预存的PCR分区的度量标准值;
S313,调用Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信;
S314,获取PCR分区内预存的内核代码的度量标准值;
S315,若PCR分区可信,调用Boot loader将内核代码读取到内存中,并调用Boot loader根据第一完整算法以及PCR分区内预存的内核代码的度量标准值来度量内核代码是否可信;
S316,若内核代码可信,运行内核代码以启动内核。
上述步骤311~315的具体执行过程可参见步骤211~215的相应内容;步骤316的具体执行过程可参见步骤304的相应内容,在此不作赘述。
本实施例所示的内核可信启动方法,相比较图2b所示实施例,去除了内核在启动过程中对Boot loader的再次度量,而是直接启动整个内核,一定程度上简化了内核流程。并且通过在加载内核前对PCR分区的安全度量同样增加了内核启动时的安全性。
图3c为本发明提供的内核可信启动方法又一个实施例的流程图。该实施例所述内核可信启动方法为图3a所示实施例的一种具体实现方式。如图3c所示,该内核可信启动方法在图3a所示方法的基础上,在步骤304之后还包括:
S325,调用内核根据第二完整算法来度量Boot loader是否可信;
S326,若Boot loader可信,调用内核根据第三完整算法度量内核安全管理增强模块是否可信;
S327,若内核安全管理增强模块可信,启动操作系统;
如图3c所示,步骤321~324的内容可参见步骤301~304的相应内容,在此不作赘述。
进一步的,如图3d所示,在本实施例中,在步骤327之后,即操作系统完成正常启动后,并且在启动每一个应用程序之前,操作系统还可以执行以下步骤(S338~S339)来进一步保证操作系统的安全性。
S338,调用内核安全管理增强模块根据第四完整算法来度量待启动的应用程序是否可信;
S339,若上述应用程序可信,则系统执行启动该应用程序;
上述步骤338~339的具体执行过程可参见步骤238~239中的相应内容。
可以理解的,本实施例中步骤336~337或336~339同样也可在图3b所示实施例中的步骤316之后执行,在此不作赘述。
进一步的,在步骤335之前还可以包括:获取PCR分区内预存的Bootloader的度量标准值;该步骤具体执行过程可参见步骤216的相应内容。
进一步的,上述步骤335的具体执行过程可参见步骤217的相应内容。
本实施例所示的内核可信启动方法,相比较图2c所示实施例,去除了内核在启动过程中对Boot loader的再次度量,而是直接启动整个内核;然后,通过调用启动后的内核再对Boot loader进行安全度量,在一定程度上简化了内核启动的流程,同时保证了操作系统启动的安全性。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图4a为本发明提供的内核可信启动装置一个实施例的结构示意图,该装置可以为上述嵌入式启动系统,或为该系统中新增加的固定功能模块,例如图1中所示的软构可信平台模块。该内核可信启动装置可以执行如图2所示的内核可信启动方法,如图4所示,该内核可信启动装置具体包括:引导启动模块401、第一度量模块402、第二度量模块403和内核启动模块404;其中:
引导启动模块401,用于启动安全引导模块Boot loader;
第一度量模块402,用于调用Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信;
上述第一度量模块402还用于若PCR分区可信,调用Boot loader将内核代码读取到内存中,并调用Boot loader根据第一完整算法以及PCR分区内预存的内核代码的度量标准值来度量内核代码是否可信;
第二度量模块403,用于若内核代码可信,初始化内核代码以触发初始化的内核根据第二完整算法度量Boot loader是否可信;
内核启动模块404,用于若Boot loader可信,启动内核。
进一步的,如图4b所示,411~414的具体功能与图4a中401~404的功能对应相同,在此不作赘述。该实施例提供的内核可信启动装置还可以进一步包括获取模块415,该获取模块415用于:
获取环境ENV分区内预存的PCR分区的度量标准值;获取PCR分区内预存的内核代码的度量标准值;获取PCR分区内预存的Boot loader的度量标准值。在图4b所示实施例中,上述图2b所示实施例的方法步骤可通过上述图4b所示的内核可信启动装置完成。
进一步的,如图4c所示,421~424的具体功能与图4a中401~404的功能对应相同,在此不作赘述。该实施例提供的内核可信启动装置中:
第二度量模块423还用于调用内核根据第三完整算法来度量内核安全管理增强模块是否可信;
如图4c所示,该内核可信启动装置还可以包括系统启动模块426,用于若内核安全管理增强模块可信,启动操作系统。
上述图2c所示实施例的方法步骤可通过上述图4c所示的内核可信启动装置完成。
进一步的,如图4d所示,431~434和436的具体功能与图4c中421~424和426的功能对应相同,在此不作赘述。该实施例提供的内核可信启动装置中还可以包括:
第三度量模块437,用于调用内核安全管理增强模块根据第四完整算法来度量待启动的应用程序是否可信;
应用程序启动模块438,用于若应用程序可信,启动应用程序。
上述图2d所示实施例的方法步骤可通过上述图4d所示的内核可信启动装置完成。
进一步的,如图4e所示,441~445的具体功能与图4b中411~415的功能对应相同,在此不作赘述。该实施例提供的内核可信启动装置中:
第二度量模块443还用于调用内核根据第三完整算法来度量内核安全管理增强模块是否可信;
获取模块445还用于获取PCR分区内预存的内核安全管理增强模块的度量标准值;
如图4e所示,该内核可信启动装置还可以包括系统启动模块446,用于若内核安全管理增强模块可信,启动操作系统。
进一步的,如图4f所示,451~456的具体功能与图4e中441~446的功能对应相同,在此不作赘述。在该实施例提供的内核可信启动装置中:
获取模块455还用于获取PCR分区内预存的应用程序的度量标准值;
如图4f所示,该内核可信启动装置还可以包括:
第三度量模块457,用于调用内核安全管理增强模块根据第四完整算法来度量待启动的应用程序是否可信;
应用程序启动模块458,用于若应用程序可信,启动应用程序。
上述图2a~2d所示实施例的方法步骤可通过上述图4f所示的内核可信启动装置完成。
本发明实施例提供的内核可信启动装置,通过启动安全引导模块Bootloader;调用Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信;若PCR分区可信,调用Boot loader将内核代码读取到内存中,并调用Boot loader根据第一完整算法以及PCR分区内预存的所述内核代码的度量标准值来度量内核代码是否可信;若内核代码可信,初始化内核代码以触发初始化的内核根据第二完整算法度量Boot loader是否可信;若Boot loader可信,启动内核。该方案在一定程度上提高了内核启动的安全性。
图5a为本发明提供的内核可信启动装置又一个实施例的结构示意图,该装置可以为上述嵌入式启动系统,或为该系统中新增加的固定功能模块,例如图1中所示的软构可信平台模块。该内核可信启动装置可以执行如图3a所示的内核可信启动方法,如图5a所示,该内核可信启动装置具体包括:引导启动单元501、第一度量单元502和内核启动单元503;其中:
引导启动单元501,用于启动安全引导模块Boot loader;
第一度量单元502,用于调用Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信;
该第一度量单元502还用于若PCR分区可信,调用Boot loader将内核代码读取到内存中,并调用Boot loader根据第一完整算法以及PCR分区内预存的内核代码的度量标准值来度量内核代码是否可信;
内核启动单元503,用于若内核代码可信,运行内核代码以启动内核。
进一步的,如图5b所示,511~513的具体功能与图5a中501~503的功能对应相同,在此不作赘述。该实施例提供的内核可信启动装置还可以进一步包括获取单元514,该获取单元514用于:
获取环境ENV分区内预存的PCR分区的度量标准值;获取PCR分区内预存的所述内核代码的度量标准值。
上述图3b所示实施例的方法步骤可通过上述图5b所示的内核可信启动装置完成。
进一步的,如图5c所示,521~523的具体功能与图5a中501~503的功能对应相同,在此不作赘述。该实施例提供的内核可信启动装置中还可以包括:
第二度量单元525,用于调用内核根据第二完整算法来度量Boot loader是否可信;
该第二度量单元525还用于若Boot loader可信,调用内核根据第三完整算法度量内核安全管理增强模块是否可信;
系统启动单元526,用于若内核安全管理增强模块可信,启动操作系统。
上述图3c所示实施例的方法步骤可通过上述图5c所示的内核可信启动装置完成。
进一步的,如图5d所示,531~533和535~536的具体功能与图5c中521~523和525~526的功能对应相同,在此不作赘述。在该实施例提供的内核可信启动装置中还可以包括:
第三度量单元537,用于调用内核安全管理增强模块根据第四完整算法来度量待启动的应用程序是否可信;
应用程序启动单元538,用于若应用程序可信,启动应用程序。
上述图3d所示实施例的方法步骤可通过上述图5d所示的内核可信启动装置完成。
进一步的,如图5e所示,541~544的具体功能与图5b中511~514的功能对应相同,在此不作赘述。该实施例提供的内核可信启动装置中还可以包括:
第二度量单元545,用于调用内核根据第二完整算法来度量Boot loader是否可信;
该第二度量单元545还用于若Boot loader可信,调用内核根据第三完整算法度量内核安全管理增强模块是否可信;
系统启动单元546,用于若内核安全管理增强模块可信,启动操作系统。
在图5e所示的内核可信启动装置中,获取单元544还用于:获取PCR分区内预存的Boot loader的度量标准值;获取PCR分区内预存的内核安全管理增强模块的度量标准值。
进一步的,如图5f所示,551~556的具体功能与图5e中541~546的功能对应相同,在此不作赘述。在该实施例提供的内核可信启动装置中:
获取单元554还用于获取PCR分区内预存的应用程序的度量标准值;
如图5f所示,该内核可信启动装置还可以包括:
第三度量模块557,用于调用内核安全管理增强模块根据第四完整算法来度量待启动的应用程序是否可信;
应用程序启动模块558,用于若应用程序可信,启动应用程序。
上述图3a~3d所示实施例的方法步骤均可通过上述图5f所示的内核可信启动装置完成。
本实施例所示的内核可信启动装置,通过启动安全引导模块Boot loader;调用Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信;若PCR分区可信,调用Boot loader将内核代码读取到内存中,并调用Boot loader根据第一完整算法以及PCR分区内预存的内核代码的度量标准值来度量内核代码是否可信;若内核代码可信,运行内核代码以启动内核;相比较图4a所示实施例,去除了内核在启动过程中对Boot loader的再次度量,而是直接启动整个内核,一定程度上简化了内核启动流程。并且通过在加载内核前对PCR分区的安全度量同样增加了内核启动时的安全性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应上述理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者上述技术方案的全部或部分可以以软件产品的形式体现出来,上述计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (36)

1.一种内核可信启动方法,其特征在于,包括:
启动安全引导模块Boot loader;
调用所述Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信;
若所述PCR分区可信,调用所述Boot loader将内核代码读取到内存中,并调用所述Boot loader根据第一完整算法以及所述PCR分区内预存的所述内核代码的度量标准值来度量所述内核代码是否可信;
若所述内核代码可信,初始化所述内核代码以触发初始化的所述内核根据第二完整算法度量所述Boot loader是否可信;
若所述Boot loader可信,启动所述内核。
2.根据权利要求1所述的内核可信启动方法,其特征在于,所述方法还包括:
获取环境ENV分区内预存的所述PCR分区的度量标准值;
所述调用所述Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信,包括:
调用所述Boot loader根据所述第一安全算法计算所述PCR分区的度量实际值,通过比较所述PCR分区的度量实际值是否等于所述PCR分区的度量标准值度量所述PCR分区是否可信,若所述PCR分区的度量实际值等于所述PCR分区的度量标准值,则所述PCR分区可信。
3.根据权利要求2所述的内核可信启动方法,其特征在于,所述获取环境ENV分区内预存的所述PCR分区的度量标准值,包括:
基于用户输入的PIN码生成根密钥;
利用所述根密钥解密所述ENV分区,以获取所述ENC分区内预存的所述PCR分区的度量标准值。
4.根据权利要求1至3任一项所述的内核可信启动方法,其特征在于,所述方法还包括:
获取所述PCR分区内预存的所述内核代码的度量标准值;
所述若所述PCR分区可信,调用所述Boot loader将内核代码读取到内存中,并调用所述Boot loader根据第一完整算法以及所述PCR分区内预存的所述内核代码的度量标准值来度量所述内核代码是否可信,包括:
若所述PCR分区可信,调用所述Boot loader将内核代码读取到内存中,并调用所述Boot loader根据所述第一完整算法计算所述内核代码的度量实际值,通过比较所述内核代码的度量实际值是否等于所述内核代码的度量标准值度量所述内核代码是否可信,若所述内核代码的度量实际值等于所述内核代码的度量标准值,则所述内核代码可信。
5.根据权利要求1至4任一项所述的内核可信启动方法,其特征在于,所述方法还包括:
获取所述PCR分区内预存的所述Boot loader的度量标准值;
所述若所述内核代码可信,初始化所述内核代码以触发初始化的内核根据第二完整算法度量所述Boot loader是否可信,包括:
若所述内核代码可信,初始化所述内核代码以触发初始化的所述内核根据所述第二完整算法计算所述Boot loader的度量实际值,通过比较所述Bootloader的度量实际值是否等于所述Boot loader的度量标准值度量所述Bootloader是否可信,若所述Boot loader的度量实际值等于所述Boot loader的度量标准值,则所述Boot loader可信。
6.根据权利要求1至5任一项所述的内核可信启动方法,其特征在于,所述启动所述内核之后,还包括:
调用所述内核根据第三完整算法来度量内核安全管理增强模块是否可信;
若所述内核安全管理增强模块可信,启动操作系统。
7.根据权利要求6所述的内核可信启动方法,其特征在于,所述方法还包括:
获取所述PCR分区内预存的所述内核安全管理增强模块的度量标准值;
所述调用所述内核根据第三完整算法来度量内核安全管理增强模块是否可信,包括:
调用所述内核根据所述第三完整算法来计算所述内核安全管理增强模块的度量实际值,通过比较所述内核安全管理增强模块的度量实际值是否等于所述内核安全管理增强模块的度量标准值度量所述内核安全管理增强模块是否可信,若所述内核安全管理增强模块的度量实际值等于所述内核安全管理增强模块的度量标准值,则所述内核安全管理增强模块可信。
8.根据权利要求6或7所述的内核可信启动方法,其特征在于,所述启动操作系统之后,还包括:
调用所述内核安全管理增强模块根据第四完整算法来度量待启动的应用程序是否可信;
若所述应用程序可信,启动所述应用程序。
9.根据权利要求8所述的内核可信启动方法,其特征在于,所述方法还包括:
获取所述PCR分区内预存的所述应用程序的度量标准值;
所述调用所述内核安全管理增强模块根据第四完整算法来度量待启动的应用程序是否可信,包括:
调用所述内核安全管理增强模块根据所述第四完整算法计算所述应用程序的度量实际值,通过比较所述应用程序的度量实际值是否等于所述应用程序的度量标准值度量所述应用程序是否可信,若所述应用程序的度量实际值等于所述应用程序的度量标准值,则所述应用程序可信。
10.一种内核可信启动方法,其特征在于,包括:
启动安全引导模块Boot loader;
调用所述Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信;
若所述PCR分区可信,调用所述Boot loader将内核代码读取到内存中,并调用所述Boot loader根据第一完整算法以及所述PCR分区内预存的所述内核代码的度量标准值来度量所述内核代码是否可信;
若所述内核代码可信,运行所述内核代码以启动所述内核。
11.根据权利要求10所述的内核可信启动方法,其特征在于,所述运行所述内核代码以启动所述内核之后,还包括:
调用所述内核根据第二完整算法来度量所述Boot loader是否可信;
若所述Boot loader可信,调用所述内核根据第三完整算法度量内核安全管理增强模块是否可信;
若所述内核安全管理增强模块可信,启动操作系统。
12.根据权利要求10或11所述的内核可信启动方法,其特征在于,所述方法还包括:
获取环境ENV分区内预存的所述PCR分区的度量标准值;
所述调用所述Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信,包括:
调用所述Boot loader根据预存的所述第一安全算法计算所述PCR分区的度量实际值,通过比较所述PCR分区的度量实际值是否等于所述PCR分区的度量标准值度量所述PCR分区是否可信,若所述PCR分区的度量实际值等于所述PCR分区的度量标准值,则所述PCR分区可信。
13.根据权利要求12所述的内核可信启动方法,其特征在于,所述获取环境ENV分区内预存的所述PCR分区的度量标准值,包括:
基于用户输入的PIN码生成根密钥;
利用所述根密钥解密所述ENV分区,以获取所述ENV分区内预存的所述PCR分区的度量标准值。
14.根据权利要求10至13任一项所述的内核可信启动方法,其特征在于,所述方法还包括:
获取所述PCR分区内预存的所述内核代码的度量标准值;
所述若所述PCR分区可信,调用所述Boot loader将内核代码读取到内存中,并调用所述Boot loader根据第一完整算法以及所述PCR分区内预存的所述内核代码的度量标准值来度量所述内核代码是否可信,包括:
若所述PCR分区可信,调用所述Boot loader将内核代码读取到内存中,并调用所述Boot loader根据所述第一完整算法计算所述内核代码的度量实际值,通过比较所述内核代码的度量实际值是否等于所述内核代码的度量标准值度量所述内核代码是否可信,若所述内核代码的度量实际值等于所述内核代码的度量标准值,则所述内核代码可信。
15.根据权利要求11至14任一项所述的内核可信启动方法,其特征在于,所述方法还包括:
获取所述PCR分区内预存的所述Boot loader的度量标准值;
所述调用所述内核根据第二完整算法来度量所述Boot loader是否可信,包括:
调用所述内核根据所述第二完整算法计算所述Boot loader的度量实际值,通过比较所述Boot loader的度量实际值是否等于所述Boot loader的度量标准值度量所述Boot loader是否可信,若所述Boot loader的度量实际值等于所述Boot loader的度量标准值,则所述Boot loader可信。
16.根据权利要求11至15任一项所述的内核可信启动方法,其特征在于,所述方法还包括:
获取所述PCR分区内预存的所述内核安全管理增强模块的度量标准值;
所述调用所述内核根据第三完整算法来度量内核安全管理增强模块是否可信,包括:
调用所述内核根据所述第三完整算法计算所述内核安全管理增强模块的度量实际值,通过比较所述内核安全管理增强模块的度量实际值是否等于所述内核安全管理增强模块的度量标准值度量所述内核安全管理增强模块是否可信,若所述内核安全管理增强模块的度量实际值等于所述内核安全管理增强模块的度量标准值,则所述内核安全管理增强模块可信。
17.根据权利要求11至16任一项所述的内核可信启动方法,其特征在于,所述启动操作系统之后,还包括:
调用所述内核安全管理增强模块根据第四完整算法来度量待启动的应用程序是否可信;
若所述应用程序可信,启动所述应用程序。
18.根据权利要求17所述的内核可信启动方法,其特征在于,所述方法还包括:
获取所述PCR分区内预存的所述应用程序的度量标准值;
所述调用所述内核安全管理增强模块根据第四完整算法来度量待启动的应用程序是否可信,包括:
调用所述内核安全管理增强模块根据所述第四完整算法计算所述应用程序的度量实际值,通过比较所述应用程序的度量实际值是否等于所述应用程序的度量标准值度量所述应用程序是否可信,若所述应用程序的度量实际值等于所述应用程序的度量标准值,则所述应用程序可信。
19.一种内核可信启动装置,其特征在于,包括:
引导启动模块,用于启动安全引导模块Boot loader;
第一度量模块,用于调用所述Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信;
所述第一度量模块还用于若所述PCR分区可信,调用所述Boot loader将内核代码读取到内存中,并调用所述Boot loader根据第一完整算法以及所述PCR分区内预存的所述内核代码的度量标准值来度量所述内核代码是否可信;
第二度量模块,用于若所述内核代码可信,初始化所述内核代码以触发初始化的所述内核根据第二完整算法度量所述Boot loader是否可信;
内核启动模块,用于若所述Boot loader可信,启动所述内核。
20.根据权利要求19所述的内核可信启动装置,其特征在于,所述装置还包括:
获取模块,用于获取环境ENV分区内预存的所述PCR分区的度量标准值;
所述第一度量模块具体用于调用所述Boot loader根据所述第一安全算法计算所述PCR分区的度量实际值,通过比较所述PCR分区的度量实际值是否等于所述PCR分区的度量标准值度量所述PCR分区是否可信,若所述PCR分区的度量实际值等于所述PCR分区的度量标准值,则确定所述PCR分区可信。
21.根据权利要求20所述的内核可信启动装置,其特征在于:
所述获取模块具体用于基于用户输入的PIN码生成根密钥,利用所述根密钥解密所述ENV分区,以获取所述ENC分区内预存的所述PCR分区的度量标准值。
22.根据权利要求19至21任一项所述的内核可信启动装置,其特征在于:
所述获取模块还用于获取所述PCR分区内预存的所述内核代码的度量标准值;
所述第一度量模块具体用于若所述PCR分区可信,调用所述Boot loader将内核代码读取到内存中,并调用所述Boot loader根据所述第一完整算法计算所述内核代码的度量实际值,通过比较所述内核代码的度量实际值是否等于所述内核代码的度量标准值度量所述内核代码是否可信,若所述内核代码的度量实际值等于所述内核代码的度量标准值,则所述内核代码可信。
23.根据权利要求19至22任一项所述的内核可信启动装置,其特征在于,
所述获取模块还用于获取所述PCR分区内预存的所述Boot loader的度量标准值;
所述第二度量模块具体用于若所述内核代码可信,初始化所述内核代码以触发初始化的所述内核根据所述第二完整算法计算所述Boot loader的度量实际值,通过比较所述Boot loader的度量实际值是否等于所述Boot loader的度量标准值度量所述Boot loader是否可信,若所述Boot loader的度量实际值等于所述Boot loader的度量标准值,则所述Boot loader可信。
24.根据权利要求19至23任一项所述的内核可信启动装置,其特征在于,所述装置还包括系统启动模块:
所述第二度量模块还用于调用所述内核根据第三完整算法来度量内核安全管理增强模块是否可信;
所述系统启动模块,用于若所述内核安全管理增强模块可信,启动操作系统。
25.根据权利要求24所述的内核可信启动装置,其特征在于:
所述获取模块还用于获取所述PCR分区内预存的所述内核安全管理增强模块的度量标准值;
所述第二度量模块具体用于调用所述内核根据所述第三完整算法来计算所述内核安全管理增强模块的度量实际值,通过比较所述内核安全管理增强模块的度量实际值是否等于所述内核安全管理增强模块的度量标准值度量所述内核安全管理增强模块是否可信,若所述内核安全管理增强模块的度量实际值等于所述内核安全管理增强模块的度量标准值,则所述内核安全管理增强模块可信。
26.根据权利要求24或25所述的内核可信启动装置,其特征在于,所述装置还包括:
第三度量模块,用于调用所述内核安全管理增强模块根据第四完整算法来度量待启动的应用程序是否可信;
应用程序启动模块,用于若所述应用程序可信,启动所述应用程序。
27.根据权利要求26所述的内核可信启动装置,其特征在于,
所述获取模块还用于获取所述PCR分区内预存的所述应用程序的度量标准值;
所述第三度量模块具体用于调用所述内核安全管理增强模块根据所述第四完整算法计算所述应用程序的度量实际值,通过比较所述应用程序的度量实际值是否等于所述应用程序的度量标准值度量所述应用程序是否可信,若所述应用程序的度量实际值等于所述应用程序的度量标准值,则所述应用程序可信。
28.一种内核可信启动装置,其特征在于,包括:
引导启动单元,用于启动安全引导模块Boot loader;
第一度量单元,用于调用所述Boot loader根据第一安全算法来度量平台配置寄存器PCR分区是否可信;
所述第一度量单元还用于若所述PCR分区可信,调用所述Boot loader将内核代码读取到内存中,并调用所述Boot loader根据第一完整算法以及所述PCR分区内预存的所述内核代码的度量标准值来度量所述内核代码是否可信;
内核启动单元,用于若所述内核代码可信,运行所述内核代码以启动内核。
29.根据权利要求28所述的内核可信启动装置,其特征在于,所述装置还包括:
第二度量单元,用于调用所述内核根据第二完整算法来度量所述Bootloader是否可信;
所述第二度量单元还用于若所述Boot loader可信,调用所述内核根据第三完整算法度量内核安全管理增强模块是否可信;
系统启动单元,用于若所述内核安全管理增强模块可信,启动操作系统。
30.根据权利要求28或29所述的内核可信启动装置,其特征在于,所述装置还包括:
获取单元,用于获取环境ENV分区内预存的所述PCR分区的度量标准值;
所述第一度量单元具体用于调用所述Boot loader根据预存的所述第一安全算法计算所述PCR分区的度量实际值,通过比较所述PCR分区的度量实际值是否等于所述PCR分区的度量标准值度量所述PCR分区是否可信,若所述PCR分区的度量实际值等于所述PCR分区的度量标准值,则所述PCR分区可信。
31.根据权利要求30所述的内核可信启动装置,其特征在于,
所述获取单元具体用于基于用户输入的PIN码生成根密钥,利用所述根密钥解密所述ENV分区,以获取所述ENC分区内预存的所述PCR分区的度量标准值。
32.根据权利要求28至31任一项所述的内核可信启动装置,其特征在于,
所述获取单元还用于获取所述PCR分区内预存的所述内核代码的度量标准值;
所述第一度量单元具体用于若所述PCR分区可信,调用所述Boot loader将内核代码读取到内存中,并调用所述Boot loader根据所述第一完整算法计算所述内核代码的度量实际值,通过比较所述内核代码的度量实际值是否等于所述内核代码的度量标准值度量所述内核代码是否可信,若所述内核代码的度量实际值等于所述内核代码的度量标准值,则所述内核代码可信。
33.根据权利要求29至32任一项所述的内核可信启动装置,其特征在于,
所述获取单元还用于获取所述PCR分区内预存的所述Boot loader的度量标准值;
所述第二度量单元具体用于调用所述内核根据所述第二完整算法计算所述Boot loader的度量实际值,通过比较所述Boot loader的度量实际值是否等于所述Boot loader的度量标准值度量所述Boot loader是否可信,若所述Bootloader的度量实际值等于所述Boot loader的度量标准值,则所述Boot loader可信。
34.根据权利要求29至33任一项所述的内核可信启动装置,其特征在于,
所述获取单元还用于获取所述PCR分区内预存的所述内核安全管理增强模块的度量标准值;
所述第二度量单元还用于调用所述内核根据所述第三完整算法计算所述内核安全管理增强模块的度量实际值,通过比较所述内核安全管理增强模块的度量实际值是否等于所述内核安全管理增强模块的度量标准值度量所述内核安全管理增强模块是否可信,若所述内核安全管理增强模块的度量实际值等于所述内核安全管理增强模块的度量标准值,则所述内核安全管理增强模块可信。
35.根据权利要求29至34任一项所述的内核可信启动装置,其特征在于,所述装置还包括:
第三度量单元,用于调用所述内核安全管理增强模块根据第四完整算法来度量待启动的应用程序是否可信;
应用程序启动单元,用于若所述应用程序可信,启动所述应用程序。
36.根据权利要求35所述的内核可信启动装置,其特征在于,
所述获取单元还用于获取所述PCR分区内预存的所述应用程序的度量标准值;
所述第三度量单元具体用于调用所述内核安全管理增强模块根据所述第四完整算法计算所述应用程序的度量实际值,通过比较所述应用程序的度量实际值是否等于所述应用程序的度量标准值度量所述应用程序是否可信,若所述应用程序的度量实际值等于所述应用程序的度量标准值,则所述应用程序可信。
CN201410114837.9A 2014-03-25 2014-03-25 一种内核可信启动方法和装置 Active CN104951316B (zh)

Priority Applications (7)

Application Number Priority Date Filing Date Title
CN201410114837.9A CN104951316B (zh) 2014-03-25 2014-03-25 一种内核可信启动方法和装置
JP2016559272A JP6319609B2 (ja) 2014-03-25 2015-03-11 信頼できるカーネル起動方法および装置
EP15769226.0A EP3098712B1 (en) 2014-03-25 2015-03-11 Credible kernel starting method and device
KR1020167026892A KR101894926B1 (ko) 2014-03-25 2015-03-11 신뢰 커널 시작 방법 및 장치
PCT/CN2015/074003 WO2015143989A1 (zh) 2014-03-25 2015-03-11 一种内核可信启动方法和装置
BR112016021661-0A BR112016021661B1 (pt) 2014-03-25 2015-03-11 Método e aparelho de iniciação de núcleo confiável
US15/272,199 US10032030B2 (en) 2014-03-25 2016-09-21 Trusted kernel starting method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410114837.9A CN104951316B (zh) 2014-03-25 2014-03-25 一种内核可信启动方法和装置

Publications (2)

Publication Number Publication Date
CN104951316A true CN104951316A (zh) 2015-09-30
CN104951316B CN104951316B (zh) 2018-09-21

Family

ID=54165987

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410114837.9A Active CN104951316B (zh) 2014-03-25 2014-03-25 一种内核可信启动方法和装置

Country Status (7)

Country Link
US (1) US10032030B2 (zh)
EP (1) EP3098712B1 (zh)
JP (1) JP6319609B2 (zh)
KR (1) KR101894926B1 (zh)
CN (1) CN104951316B (zh)
BR (1) BR112016021661B1 (zh)
WO (1) WO2015143989A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105678162A (zh) * 2016-02-03 2016-06-15 浪潮电子信息产业股份有限公司 一种基于tpm的操作系统安全启动控制方法
CN106384053A (zh) * 2016-09-14 2017-02-08 江苏北弓智能科技有限公司 移动操作系统可信启动方法和装置
CN106548063A (zh) * 2016-11-01 2017-03-29 广东浪潮大数据研究有限公司 一种可信度量方法、装置和系统
CN109983465A (zh) * 2016-09-26 2019-07-05 迈可菲公司 增强的安全引导
CN110109710A (zh) * 2019-05-15 2019-08-09 苏州浪潮智能科技有限公司 一种无物理可信根的os信任链构建方法与系统
CN110543769A (zh) * 2019-08-29 2019-12-06 武汉大学 一种基于加密tf卡的可信启动方法
CN115618364A (zh) * 2022-12-16 2023-01-17 飞腾信息技术有限公司 实现安全可信启动的方法、安全架构系统及相关设备
US11714910B2 (en) 2018-06-13 2023-08-01 Hewlett Packard Enterprise Development Lp Measuring integrity of computing system
WO2024027472A1 (zh) * 2022-08-03 2024-02-08 华为技术有限公司 一种确定内核状态的方法和相关设备

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106650455B (zh) * 2015-10-30 2021-09-24 中兴通讯股份有限公司 一种系统安全启动方法及装置
US10382436B2 (en) * 2016-11-22 2019-08-13 Daniel Chien Network security based on device identifiers and network addresses
US11074348B2 (en) * 2017-08-24 2021-07-27 International Business Machines Corporation Securing and changing immutable data in secure bootup
US11138315B2 (en) * 2018-01-17 2021-10-05 Hewlett Packard Enterprise Development Lp Data structure measurement comparison
US11188622B2 (en) 2018-09-28 2021-11-30 Daniel Chien Systems and methods for computer security
US10848489B2 (en) 2018-12-14 2020-11-24 Daniel Chien Timestamp-based authentication with redirection
US10826912B2 (en) 2018-12-14 2020-11-03 Daniel Chien Timestamp-based authentication
CN109871679A (zh) * 2018-12-27 2019-06-11 延锋伟世通电子科技(上海)有限公司 数据显示方法、系统、装置及介质
US11677754B2 (en) 2019-12-09 2023-06-13 Daniel Chien Access control systems and methods
CN110851188B (zh) * 2019-12-18 2023-08-29 宁波和利时信息安全研究院有限公司 一种基于双体架构的国产plc可信链实现装置及方法
CN113127879B (zh) * 2019-12-31 2023-09-05 杭州海康威视数字技术股份有限公司 一种固件可信启动方法、电子设备及可读存储介质
KR20210097379A (ko) * 2020-01-30 2021-08-09 삼성전자주식회사 보안 장치, 전자 장치, 보안 부트 관리 시스템, 부트 이미지 생성 방법 및 부트 체인 실행 방법
US11509463B2 (en) 2020-05-31 2022-11-22 Daniel Chien Timestamp-based shared key generation
US11438145B2 (en) 2020-05-31 2022-09-06 Daniel Chien Shared key generation based on dual clocks
US11392705B1 (en) 2021-07-29 2022-07-19 Netskope, Inc. Disk encryption key management for booting of a device
CN114157593A (zh) * 2021-10-18 2022-03-08 深圳市亿联无限科技有限公司 一种路由器工厂模式的实现及切换方法
CN115357908B (zh) * 2022-10-19 2022-12-23 中国人民解放军军事科学院系统工程研究院 一种网络设备内核可信度量与自动修复方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1625105A (zh) * 2003-12-02 2005-06-08 国际商业机器公司 信息处理装置、服务器装置、信息处理装置的方法及服务器装置的方法
US20050251857A1 (en) * 2004-05-03 2005-11-10 International Business Machines Corporation Method and device for verifying the security of a computing platform
CN101295339A (zh) * 2007-04-27 2008-10-29 惠普开发有限公司 安全计算机系统更新
US20090070598A1 (en) * 2007-09-10 2009-03-12 Daryl Carvis Cromer System and Method for Secure Data Disposal
CN103020518A (zh) * 2012-11-06 2013-04-03 中国科学院计算技术研究所 一种基于TPM的Linux内核初始化中的数据结构保护方法及系统
CN103150523A (zh) * 2013-03-07 2013-06-12 太原科技大学 一种简易的嵌入式可信终端系统及方法
US20130218915A1 (en) * 2012-02-22 2013-08-22 International Business Machines Corporation VALlDATING A SYSTEM WITH MULTIPLE SUBSYSTEMS USING TRUSTED PLATFORM MODULES AND VIRTUAL PLATFORM MODULES

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191464B2 (en) * 2001-10-16 2007-03-13 Lenovo Pte. Ltd. Method and system for tracking a secure boot in a trusted computing environment
KR100917290B1 (ko) * 2004-06-24 2009-09-11 인텔 코오퍼레이션 신뢰 플랫폼 모듈의 보안 가상화를 위한 방법 및 장치
US7716494B2 (en) * 2004-07-15 2010-05-11 Sony Corporation Establishing a trusted platform in a digital processing system
US7725703B2 (en) * 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module
KR100872175B1 (ko) * 2006-12-01 2008-12-09 한국전자통신연구원 Tpm을 이용한 모바일 플랫폼의 보안 부팅 장치 및 방법
CN100454324C (zh) * 2007-09-21 2009-01-21 武汉大学 一种可信机制上的嵌入式平台引导方法
CN101504704B (zh) * 2009-03-17 2010-12-29 武汉大学 由星型信任链支持的嵌入式平台应用程序完整性验证方法
GB2482652B (en) * 2010-05-21 2016-08-24 Hewlett Packard Development Co Lp Extending integrity measurements in a trusted device using a policy register
CN102136044B (zh) * 2010-07-14 2013-08-28 华为技术有限公司 安全启动方法、装置及计算机系统
US8560845B2 (en) * 2011-01-14 2013-10-15 Apple Inc. System and method for tamper-resistant booting
US8775784B2 (en) * 2011-11-11 2014-07-08 International Business Machines Corporation Secure boot up of a computer based on a hardware based root of trust
US8892858B2 (en) 2011-12-29 2014-11-18 Intel Corporation Methods and apparatus for trusted boot optimization
JP5980050B2 (ja) * 2012-08-29 2016-08-31 キヤノン株式会社 情報処理装置
CN103020531B (zh) 2012-12-06 2015-05-27 中国科学院信息工程研究所 Android智能终端运行环境可信控制方法及系统
US9465943B2 (en) * 2013-01-31 2016-10-11 Red Hat, Inc. Extension of a platform configuration register with a known value

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1625105A (zh) * 2003-12-02 2005-06-08 国际商业机器公司 信息处理装置、服务器装置、信息处理装置的方法及服务器装置的方法
US20050251857A1 (en) * 2004-05-03 2005-11-10 International Business Machines Corporation Method and device for verifying the security of a computing platform
CN101295339A (zh) * 2007-04-27 2008-10-29 惠普开发有限公司 安全计算机系统更新
US20090070598A1 (en) * 2007-09-10 2009-03-12 Daryl Carvis Cromer System and Method for Secure Data Disposal
US20130218915A1 (en) * 2012-02-22 2013-08-22 International Business Machines Corporation VALlDATING A SYSTEM WITH MULTIPLE SUBSYSTEMS USING TRUSTED PLATFORM MODULES AND VIRTUAL PLATFORM MODULES
CN103020518A (zh) * 2012-11-06 2013-04-03 中国科学院计算技术研究所 一种基于TPM的Linux内核初始化中的数据结构保护方法及系统
CN103150523A (zh) * 2013-03-07 2013-06-12 太原科技大学 一种简易的嵌入式可信终端系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
沈昌祥 等: "可信计算的研究与发展", 《中国科学:信息科学》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105678162A (zh) * 2016-02-03 2016-06-15 浪潮电子信息产业股份有限公司 一种基于tpm的操作系统安全启动控制方法
CN105678162B (zh) * 2016-02-03 2018-09-04 浪潮电子信息产业股份有限公司 一种基于tpm的操作系统安全启动控制方法
CN106384053A (zh) * 2016-09-14 2017-02-08 江苏北弓智能科技有限公司 移动操作系统可信启动方法和装置
CN109983465A (zh) * 2016-09-26 2019-07-05 迈可菲公司 增强的安全引导
CN109983465B (zh) * 2016-09-26 2023-05-16 迈可菲公司 增强的安全引导
CN106548063A (zh) * 2016-11-01 2017-03-29 广东浪潮大数据研究有限公司 一种可信度量方法、装置和系统
US11714910B2 (en) 2018-06-13 2023-08-01 Hewlett Packard Enterprise Development Lp Measuring integrity of computing system
CN110109710A (zh) * 2019-05-15 2019-08-09 苏州浪潮智能科技有限公司 一种无物理可信根的os信任链构建方法与系统
CN110543769A (zh) * 2019-08-29 2019-12-06 武汉大学 一种基于加密tf卡的可信启动方法
CN110543769B (zh) * 2019-08-29 2023-09-15 武汉大学 一种基于加密tf卡的可信启动方法
WO2024027472A1 (zh) * 2022-08-03 2024-02-08 华为技术有限公司 一种确定内核状态的方法和相关设备
CN115618364A (zh) * 2022-12-16 2023-01-17 飞腾信息技术有限公司 实现安全可信启动的方法、安全架构系统及相关设备

Also Published As

Publication number Publication date
US20170011219A1 (en) 2017-01-12
BR112016021661A2 (zh) 2017-08-15
US10032030B2 (en) 2018-07-24
JP2017515208A (ja) 2017-06-08
CN104951316B (zh) 2018-09-21
KR101894926B1 (ko) 2018-09-04
EP3098712A4 (en) 2017-03-01
WO2015143989A1 (zh) 2015-10-01
EP3098712A1 (en) 2016-11-30
KR20160130790A (ko) 2016-11-14
BR112016021661B1 (pt) 2022-11-29
EP3098712B1 (en) 2020-02-05
JP6319609B2 (ja) 2018-05-09

Similar Documents

Publication Publication Date Title
CN104951316A (zh) 一种内核可信启动方法和装置
CN107025406B (zh) 母板、计算机可读存储装置以及固件验证方法
US9703346B2 (en) Firmware interface with backup non-volatile memory storage
CN106384052A (zh) 一种实现BMC U‑boot可信启动控制的方法
CN100447736C (zh) 包括固件接口运行时环境保护字段的设备和方法
CN107451479A (zh) 一种信任链的构建方法及系统
CN101122936A (zh) 一种可信机制上的嵌入式平台引导
CN105205401A (zh) 基于安全密码芯片的可信计算机系统及其可信引导方法
CN104298913A (zh) 一种通用的智能终端安全启动方法
US10713352B2 (en) Method and apparatus for trusted measurement
CN104850792A (zh) 一种服务器信任链的构建方法和装置
CN111158767A (zh) 基于bmc的服务器安全启动方法及装置
CN111095200A (zh) 嵌入式程序的安全升级方法、装置、设备及存储介质
US9928367B2 (en) Runtime verification
CN107315945B (zh) 一种电子设备的磁盘解密方法和装置
US20210368340A1 (en) Booting and operating computing devices at designated locations
CN113419905A (zh) 一种实现可信验证的方法及装置和安全模块
CN117032813A (zh) 双基本输入输出系统闪存的切换判定方法及装置
WO2016184180A1 (zh) 一种系统安全启动方法及装置
US20200143058A1 (en) Operational verification
CN110543769A (zh) 一种基于加密tf卡的可信启动方法
CN104035787A (zh) 一种基于Andriod内核的强制访问控制方法及装置
CN109167785A (zh) 一种虚拟可信根的调用方法和业务服务器
CN104731665B (zh) 一种信息处理方法及电子设备
Papakotoulas et al. Sustaining the Trust of an IoT Infrastructure

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