CN113779652A - 数据完整性保护的方法和装置 - Google Patents

数据完整性保护的方法和装置 Download PDF

Info

Publication number
CN113779652A
CN113779652A CN202010518090.9A CN202010518090A CN113779652A CN 113779652 A CN113779652 A CN 113779652A CN 202010518090 A CN202010518090 A CN 202010518090A CN 113779652 A CN113779652 A CN 113779652A
Authority
CN
China
Prior art keywords
data
check
information
storage area
integrity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010518090.9A
Other languages
English (en)
Inventor
曾雪红
夏毅
蔡恒
蔡永锦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010518090.9A priority Critical patent/CN113779652A/zh
Priority to PCT/CN2021/098744 priority patent/WO2021249359A1/zh
Priority to EP21823161.1A priority patent/EP4148609A4/en
Publication of CN113779652A publication Critical patent/CN113779652A/zh
Priority to US18/062,961 priority patent/US20230169216A1/en
Pending legal-status Critical Current

Links

Images

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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • 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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • 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/3247Cryptographic 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例提供一种数据完整性保护的方法和装置。其中,数据完整性保护的方法应用于电子设备,电子设备存储有设备商数据和第一校验信息,第一校验信息存储在电子设备的第一存储区域中,用于对设备商数据进行完整性校验,方法包括:获取第一数据;对第一数据进行数字签名,生成第二数据和第二校验信息;存储第二数据和第二校验信息;其中,第二校验信息存储在电子设备的第二存储区域中。本申请实施例提供的数据完整性保护的方法,支持第三方集成商定制的固件或软件重新加载到系统运行,简化了流程,提高了电子设备的集成开发效率。

Description

数据完整性保护的方法和装置
技术领域
本申请实施例涉及计算领域,尤其涉及一种数据完整性保护的方法和装置。
背景技术
设备中存储的固件、软件等可能会受到攻击,导致被非法篡改或被植入木马,危害设备的运行安全。为了保护设备中的固件、软件等数据,可信计算系统通常采用数字签名校验的方法。
通常,设备上电启动时,从系统可信根开始,逐级启动固件或软件。在启动下级固件或软件前,先对固件或软件进行完整性校验,完整性校验通过后再启动。
随着通信技术的发展以及分工的精细化,多厂商共同参与的共建系统越来越普遍。设备出厂后,第三方集成商为了适配业务的需要,可能需要定制固件或软件。目前,设备出厂后不支持第三方集成商定制的固件或软件重新加载到系统运行,必须返回给原厂家重新签名后才能加载,流程复杂,设备的集成开发效率很低。
发明内容
本申请实施例提供一种数据完整性保护的方法和装置,支持第三方集成商定制的固件或软件重新加载到系统运行,提高了电子设备的集成开发效率。
第一方面,本申请实施例提供一种数据完整性保护的方法,可以应用于电子设备,电子设备存储有设备商数据和第一校验信息,第一校验信息存储在电子设备的第一存储区域中,用于对设备商数据进行完整性校验,该方法包括:获取第一数据;对第一数据进行数字签名,生成第二数据和第二校验信息;存储第二数据和第二校验信息;其中,第二校验信息存储在电子设备的第二存储区域中。
通过第一方面提供的数据完整性保护的方法,电子设备出厂后存储有设备商数据和第一校验信息,第一校验信息存储在电子设备的第一存储区域中,用于对设备商数据进行完整性校验。电子设备出厂后,第三方集成商可以定制固件或软件,可以对第一数据进行数字签名,生成第二数据和第二校验信息。第二校验信息存储在电子设备的第二存储区域中。由于第一存储区域和第二存储区域分别存储与不同主体相关的校验信息,因此,根据第一存储区域和第二存储区域中至少一个存储区域中的校验信息,在电子设备上电进行安全启动时,可以支持第三方集成商定制的固件或软件重新加载到系统运行,不需要将电子设备返厂重新进行数字签名。在多厂商共建系统的场景中,简化了流程,提高了电子设备的集成开发效率,提高了多厂商合作的效率。
可选的,在第一方面的一种可能的实施方式中,第一存储区域和第二存储区域均为一次性写入存储区域。
通过该可能的实施方式提供的数据完整性保护的方法,避免了其他主体对第一存储区域和第二存储区域进行篡改的风险,提升了数据完整性保护的安全性能。
可选的,在第一方面的一种可能的实施方式中,第一数据包括第三方集成商对所述设备商数据进行修改后的数据,对第一数据进行数字签名,生成第二数据和第二校验信息,可以包括:获取第三方集成商提供的公私钥对,根据公私钥对中的私钥对第一数据进行数字签名,生成第二数据和第二校验信息;或者,根据第一校验信息对应的私钥对第一数据进行数字签名,生成第二数据和第二校验信息。
通过该可能的实施方式提供的数据完整性保护的方法,可以根据第三方集成商的定制需求,灵活设置对第一数据进行数字签名时采用的私钥,提升了第三方集成商定制的灵活性。
可选的,在第一方面的一种可能的实施方式中,第二校验信息包括安全启动策略和/或信任根;其中,安全启动策略用于指示对第二数据进行完整性校验的规则。
可选的,在第一方面的一种可能的实施方式中,安全启动策略具体用于指示下列中的任意一项:直接加载第一数据;使用第一校验信息对第二数据进行完整性校验;使用第二校验信息对第二数据进行完整性校验;使用第一校验信息或第二校验信息对第二数据进行完整性校验。
通过该可能的实施方式提供的数据完整性保护的方法,第三方集成商可以根据定制需求灵活设置对第一数据进行数字签名的规则,进行数字签名的规则不同时,安全启动策略不同。后续,在电子设备的安全启动过程中,可以根据安全启动策略确定对第二数据进行完整性校验的规则,提升了安全启动过程中数据的运行速度和稳定性。
可选的,在第一方面的一种可能的实施方式中,方法还可以包括:对第二存储区域执行写保护操作。
通过该可能的实施方式提供的数据完整性保护的方法,可以锁定第二存储区域,避免其他主体对第二存储区域进行篡改,提升了数据完整性保护的安全性能。
可选的,在第一方面的一种可能的实施方式中,第二数据可以包括第一数据、第一数据对应的签名信息和第一数据对应的完整性验证信息。
可选的,在第一方面的一种可能的实施方式中,第一数据对应的完整性验证信息可以包括下列中的至少一项:证书、证书链、对第一数据进行数字签名所采用的公钥,或对第一数据进行数字签名所采用的公钥的哈希值。
第二方面,本申请实施例提供一种数据完整性保护的方法,包括:获取待验证数据、第一校验信息和第二校验信息。其中,第一校验信息存储在电子设备的第一存储区域中,第二校验信息存储在电子设备的第二存储区域中,第一存储区域和第二存储区域均为一次性写入存储区域。根据第一校验信息和第二校验信息中的至少一个对待验证数据进行完整性校验。
可选的,在第二方面的一种可能的实施方式中,第二校验信息包括第三方集成商提供的下列中的至少一项:安全启动策略或第二信任根;其中,安全启动策略用于指示对待验证数据进行完整性校验的规则。
可选的,在第二方面的一种可能的实施方式中,根据第二校验信息对待验证数据进行完整性校验,可以包括:根据安全启动策略确定是否直接加载待验证数据;若确定不直接加载待验证数据、需要对待验证数据进行完整性校验时,则根据第一校验信息或第二校验信息对待验证数据进行完整性校验。
可选的,在第二方面的一种可能的实施方式中,若确定直接加载待验证数据,则加载并执行待验证数据。
可选的,在第二方面的一种可能的实施方式中,第一校验信息包括设备提供商提供的第一信任根,第一信任根包括第一根公钥或第一根公钥的哈希值。
可选的,在第二方面的一种可能的实施方式中,安全启动策略具体用于指示下列中的任意一项:直接加载待验证数据;使用第一校验信息对待验证数据进行完整性校验;使用第二校验信息对待验证数据进行完整性校验;使用第一校验信息或第二校验信息对待验证数据进行完整性校验。
可选的,在第二方面的一种可能的实施方式中,根据第一校验信息和第二校验信息中的至少一个对待验证数据进行完整性校验之前,还可以包括:确定第二存储区域处于写保护状态。
通过该可能的实施方式提供的数据完整性保护的方法,避免了其他主体对第二存储区域进行篡改的风险,提升了数据完整性保护的安全性能。
可选的,在第二方面的一种可能的实施方式中,该方法还可以包括:若确定第二存储区域未处于写保护状态,则对第二存储区域执行写保护操作。
可选的,在第二方面的一种可能的实施方式中,该方法还可以包括:对第二存储区域执行写保护操作,可以包括:生成提示信息;提示信息用于指示第二存储区域未处于写保护状态;接收写保护指令,写保护指令用于指示对第二存储区域进行写保护;根据写保护指令对第二存储区域执行写保护操作。
第三方面,本申请实施例提供一种数据完整性保护的装置,可以应用于电子设备,电子设备存储有设备商数据和第一校验信息,第一校验信息存储在电子设备的第一存储区域中,用于对设备商数据进行完整性校验,数据完整性保护的装置可以包括:获取模块,用于获取第一数据;处理模块,用于对第一数据进行数字签名,生成第二数据和第二校验信息;存储模块,用于存储第二数据和第二校验信息;其中,第二校验信息存储在电子设备的第二存储区域中。
可选的,在第三方面的一种可能的实施方式中,第一存储区域和第二存储区域均为一次性写入存储区域。
可选的,在第三方面的一种可能的实施方式中,第一数据包括第三方集成商对所述设备商数据进行修改后的数据,处理模块具体用于:获取第三方集成商提供的公私钥对;根据公私钥对中的私钥对第一数据进行数字签名,生成第二数据和第二校验信息;或者,根据第一校验信息对应的私钥对第一数据进行数字签名,生成第二数据和第二校验信息。
可选的,在第三方面的一种可能的实施方式中,第二校验信息包括安全启动策略和/或信任根;其中,安全启动策略用于指示对第二数据进行完整性校验的规则。
第四方面,本申请实施例提供一种数据完整性保护的装置,可以包括:获取模块,用于获取待验证数据、第一校验信息和第二校验信息;第一校验信息存储在电子设备的第一存储区域中,第二校验信息存储在电子设备的第二存储区域中,第一存储区域和第二存储区域均为一次性写入存储区域;处理模块,用于根据第一校验信息和第二校验信息中的至少一个对待验证数据进行完整性校验。
可选的,在第四方面的一种可能的实施方式中,第二校验信息包括第三方集成商提供的下列中的至少一项:安全启动策略或第二信任根;其中,安全启动策略用于指示对待验证数据进行完整性校验的规则。
可选的,在第四方面的一种可能的实施方式中,处理模块具体用于:根据安全启动策略确定是否直接加载待验证数据;若确定不直接加载待验证数据、需要对待验证数据进行完整性校验时,则根据第一校验信息或第二校验信息对待验证数据进行完整性校验。
可选的,在第四方面的一种可能的实施方式中,第一校验信息包括设备提供商提供的第一信任根,第一信任根包括第一根公钥或第一根公钥的哈希值。
可选的,在第四方面的一种可能的实施方式中,处理模块还用于:在根据第一校验信息和第二校验信息中的至少一个对待验证数据进行完整性校验之前,确定第二存储区域处于写保护状态。
第五方面,本申请实施例提供一种数据完整性保护的装置,包括处理器和存储器,处理器用于调用存储器中存储的程序,以执行以上第一方面或第二方面提供的方法。
第六方面,本申请实施例提供一种电子设备,包括处理器和存储器,处理器用于调用存储器中存储的程序,以执行以上第一方面或第二方面提供的方法。
第七方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当指令在计算机或处理器上运行时,实现如以上第一方面或第二方面提供的方法。
第八方面,本申请实施例提供一种程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,设备的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得该设备实施以上第一方面或第二方面提供的方法。
附图说明
图1为本申请实施例适用的电子设备的一种软硬件架构图;
图2为一种电子设备的结构示意图;
图3为一种电子设备安全启动的原理示意图;
图4为本申请实施例适用的电子设备的一种结构示意图;
图5为本申请实施例提供的数据完整性保护的方法的一种流程图;
图6为本申请实施例提供的数据完整性保护的方法的另一种流程图;
图7为本申请实施例提供的数据完整性保护的方法的又一种流程图;
图8为本申请实施例提供的电子设备安全启动的一种原理示意图;
图9为本申请实施例提供的数据完整性保护的装置的一种结构示意图;
图10为本申请实施例提供的数据完整性保护的装置的另一种结构示意图;
图11为本申请实施例提供的数据完整性保护的装置的又一种结构示意图;
图12为本申请实施例提供的电子设备的一种结构示意图。
具体实施方式
下面结合附图描述本申请实施例。
首先,对本申请实施例涉及的概念进行说明。
1、数字签名(digital signature)
数字签名也可以称为公钥数字签名或电子签名,是使用公钥加密领域的技术实现的用于鉴别数字信息是否有效、完整的方法。一套数字签名通常定义两种互补的运算,一种运算用于签名,另一种运算用于验证。
2、安全启动(secure boot,verified boot)
安全启动是指只允许由特定主体(例如设备制造商)签名的固件或软件运行在设备上的技术。安全启动的核心功能是利用数字签名来确认固件或软件是否是受信任的。安全启动可以基于公钥加密算法、数字签名算法、哈希算法等。安全启动依赖的硬件基础架构可以称为可信根,可信根确保了平台运行的第一条指令的完整性,并且通过数字签名校验可以确保后续被加载对象的完整性,从而将信任链逐级传递给后续的固件或软件,最终构建整个平台的可信。
电子设备中存储的固件、软件等可能会受到攻击,导致被非法篡改或被植入木马,危害设备的运行安全。为了确保电子设备的运行安全,通常采用数字签名校验的方法。示例性的,图1为本申请实施例适用的电子设备的一种软硬件架构图。如图1所示,电子设备的硬件部分可以包括但不限于:芯片、闪速存储器(flash memory,Flash)和外设。电子设备的软件部分可以包括但不限于:固件、操作系统、驱动、硬件配置信息和应用软件。其中,芯片可以包括存储器,本申请实施例对存储器的数量、类型和存储的具体内容不做限定。例如,参考图1,在支持安全启动的电子设备中,芯片可以包括只读存储器(read-only memory,ROM)和一次性电可编程电容丝(electrical FUSE,eFUSE)。ROM中可以存储可信的启动代码。eFUSE用于一次性写入不可更改的数据,例如,该数据可以包括用于在安全启动中进行数字签名校验的校验信息。可选的,eFUSE中还可以存储配置信息,例如,配置信息可以包括但不限于下列中的至少一项:芯片使用的电源电压、芯片的版本号和生产日期。Flash中可以存储软件包等持久化数据。在电子设备中,固件(firmware,FW)是指硬件器件中可编程的软件部分,通常为写入可消除只读存储器(erasable read only memory,EROM)或可擦除可编程只读存储器(erasable programmable read-only memory,EPROM)中的担任系统最基础、最底层工作的软件,具备软件的可升级性。可选的,固件可以包括但不限于:引导代码(bootloader)固件和统一可扩展固件接口(unified extensible firmware interface,UEFI)固件。操作系统、驱动和硬件配置信息可以构成应用软件的运行平台,应用软件是指用于实现各种特定功能的软件。应用软件也称为应用程序。
需要说明,在本申请实施例中,“电子设备”也可以称为“设备”。
需要说明,在本申请实施例中,“电子设备中存储的固件、软件”与“电子设备中存储的固件或软件”具有相同含义,包括电子设备安全启动中运行的数据,例如,可以包括图1中固件、操作系统、驱动或硬件配置信息中的至少一项。
需要说明,本申请实施例对外设包括的具体部件不做限定,电子设备的类型不同,外设包括的部件可以不同。
需要说明,本申请实施例对电子设备还包括的其他软件或硬件不做限定。
下面,结合图1~图3,通过示例A和示例B对电子设备的数字签名过程和安全启动过程进行示例性说明,但并不对电子设备的数字签名过程和安全启动过程形成限定。示例性的,图2为一种电子设备的结构示意图,图3为一种电子设备安全启动的原理示意图。如图2所示,电子设备可以包括芯片100,芯片100可以包括存储区域11和ROM12。存储区域11为一次性写入存储区域。芯片100、存储区域11和ROM12可以分别参见图1中关于芯片、eFUSE和ROM的描述,原理相似,此处不再赘述。在示例A和示例B中,电子设备存储的固件、软件可以包括:引导代码(bootloader)固件、UEFI固件、内核(kernel)软件包、驱动、硬件配置信息。
示例A
首先,对电子设备出厂前的数字签名过程进行示例性说明。电子设备可以执行如下操作:
1.1、在芯片100的ROM12中烧录一段不可更改的可信的启动代码。
1.2、获取设备提供商提供的根公钥A和根私钥A,在芯片100的存储区域11中写入根公钥A或根公钥A的哈希(Hash)值。与写入根公钥A相比,写入根公钥A的哈希值可以节省存储空间。本示例以写入根公钥A的哈希值为例进行说明。
对存储区域11进行写保护,锁定存储区域11,避免其他主体对存储区域11进行篡改。
1.3、获取设备提供商提供的二级公钥B和二级私钥B。在本示例中,采用二级私钥B对固件或软件进行数字签名。
1.4、对bootloader固件进行数字签名。
使用二级私钥B签名bootloader固件,生成bootloader固件对应的签名信息。
使用根私钥A签名二级公钥B,生成bootloader固件对应的证书链。该证书链包括使用根私钥A签名过的二级公钥B,还包括根公钥A或者根公钥A的哈希值,本示例以包括根公钥A的哈希值为例进行说明。
将bootloader固件、bootloader固件对应的签名信息以及bootloader固件对应的证书链打包存储在电子设备中,可以称为数据包a。
1.5、采用与1.4相似的方法,依次对UEFI固件、kernel软件包、驱动、硬件配置信息进行数字签名并打包存储。
其中,对UEFI固件、UEFI固件对应的签名信息以及UEFI固件对应的证书链打包,可以称为数据包b。
对kernel软件包、kernel软件包对应的签名信息以及kernel软件包对应的证书链打包,可以称为数据包c。
对驱动、驱动对应的签名信息以及驱动对应的证书链打包,可以称为数据包d。
对硬件配置信息、硬件配置信息对应的签名信息以及硬件配置信息对应的证书链打包,可以称为数据包e。
下面,对电子设备出厂后的安全启动过程进行示例性说明。
电子设备上电后,固定从ROM中可信的启动代码开始,逐级启动数据包a~数据包e中的固件或软件。在启动下级固件或软件前,需要先对固件或软件进行完整性校验,完整性校验通过后再启动。具体的,电子设备可以执行如下操作:
2.1、从芯片100的ROM12中存储的启动代码启动。
2.2、启动代码从存储区域11中读取设备提供商提供的根公钥A的哈希值。为了便于说明,该读取的根公钥A可以称为根公钥A’。
2.3、启动代码读取数据包a中bootloader固件对应的证书链,解析出根公钥A。为了便于说明,该解析出的根公钥A可以称为根公钥A”。
2.4、验证设备提供商提供的根公钥A是否被篡改。
具体的,比较根公钥A’的哈希值与根公钥A”的哈希值是否相同。
情况一:如果根公钥A’的哈希值与根公钥A”的哈希值相同,说明设备提供商提供的根公钥A没有被篡改,执行2.5。
情况二:如果根公钥A’的哈希值与根公钥A”的哈希值不同,说明设备提供商提供的根公钥A可能被篡改,则停止启动。
2.5、验证设备提供商提供的二级公钥B是否被篡改。
具体的,启动代码读取数据包a中bootloader固件对应的证书链,解析出使用根私钥A签名过的二级公钥B。为了便于说明,该解析出的二级公钥B可以称为二级公钥B’。采用根公钥A’或根公钥A”对二级公钥B’进行校验。
情况一:如果校验通过,说明设备提供商提供的二级公钥B没有被篡改,执行2.6。
情况二:如果校验没有通过,说明设备提供商提供的二级公钥B可能被篡改,则停止启动。
2.6、对bootloader固件进行完整性校验。
具体的,根据二级公钥B’和bootloader固件对应的签名信息对bootloader固件进行完整性校验。
情况一:如果校验通过,说明bootloader固件没有被篡改,则加载并执行bootloader固件。
情况二:如果校验没有通过,说明bootloader固件可能被篡改,则停止启动。
2.7、后续,采用与2.3~2.6相似的方法,bootloader固件可以对UEFI固件进行完整性校验,UEFI固件可以对kernel软件包、驱动和硬件配置信息进行完整性校验,逐级安全启动,从而实现电子设备的安全启动。
示例B
本示例与示例A的区别在于,对固件、软件进行数字签名时采用的私钥不同,相应的,对固件、软件进行数字签名验证时采用的公钥不同。在示例A中,使用设备提供商提供的二级私钥B和二级公钥B分别进行数字签名和验证。在本示例中,使用设备提供商提供的根私钥A和根公钥A分别进行数字签名和验证。
本示例对与示例A中相同的步骤采用相同的步骤序号,对与示例A中不同的步骤采用不同的步骤序号并详细说明。
在本示例中,对于数字签名过程,电子设备可以执行步骤1.1~1.2、1.3’~1.4’。
1.3’、对bootloader固件进行数字签名。
使用根私钥A签名bootloader固件,生成bootloader固件对应的签名信息。
bootloader固件对应的证书链可以包括:根公钥A或根公钥A的哈希值,本示例以包括根公钥A的哈希值为例进行说明。
将bootloader固件、bootloader固件对应的签名信息以及bootloader固件对应的证书链打包存储在电子设备中,可以称为数据包a。
1.4’、采用与1.3’相似的方法,依次对UEFI固件、kernel软件包、驱动、硬件配置信息进行数字签名并打包存储,分别形成数据包b~数据包e。
对于安全启动过程,电子设备可以执行步骤2.1~2.2、2.3’~2.6’。
2.3’、启动代码读取数据包a中bootloader固件对应的证书链,解析出根公钥A。为了便于说明,该解析出的根公钥A可以称为根公钥A”。
2.4’、验证设备提供商提供的根公钥A是否被篡改。
具体的,比较根公钥A’的哈希值与根公钥A”的哈希值是否相同。
情况一:如果根公钥A’的哈希值与根公钥A”的哈希值相同,说明设备提供商提供的根公钥A没有被篡改,执行2.5’。
情况二:如果根公钥A’的哈希值与根公钥A”的哈希值不同,说明设备提供商提供的根公钥A可能被篡改,则停止启动。
2.5’、对bootloader固件进行完整性校验。
具体的,根据根公钥A’或根公钥A”,以及bootloader固件对应的签名信息,对bootloader固件进行完整性校验。
情况一:如果校验通过,说明bootloader固件没有被篡改,则加载并执行bootloader固件。
情况二:如果校验没有通过,说明bootloader固件可能被篡改,则停止启动。
2.6’、后续,采用与2.3’~2.5’相似的方法,bootloader固件可以对UEFI固件进行完整性校验,UEFI固件可以对kernel软件包、驱动和硬件配置信息进行完整性校验,逐级安全启动,从而实现电子设备的安全启动。
随着通信技术的发展以及分工的精细化,多厂商共同参与的共建系统越来越普遍。设备出厂后,第三方集成商为了适配业务的需要,可能定制固件或软件,例如,增加新的固件或软件,或者,对电子设备中缺省的固件或软件进行修改。目前,当设备出厂后,不支持由第三方集成商定制的固件或软件重新加载到系统运行,必须将设备返回至设备提供商重新签名后才能加载运行,流程复杂,设备的集成开发效率很低,不利于多厂商合作。
针对上述技术问题,本申请实施例提供一种数据完整性保护的方法。参见图4,图4为本申请实施例适用的电子设备的一种结构示意图。电子设备可以包括芯片100,芯片100可以包括存储区域11、ROM12和存储区域13。芯片100、存储区域11和ROM12可以分别参见图2中的芯片100、存储区域11和ROM12,原理相似,此处不再赘述。电子设备出厂时,电子设备中存储有缺省的固件或软件,以及用于对缺省的固件或软件进行完整性校验的校验信息,该校验信息存储在电子设备的一个存储区域中,例如,存储区域11。电子设备出厂后,对于第三方集成商需要定制的固件或软件进行数字签名,并将对应的校验信息存储在电子设备的另一个存储区域中,例如,存储区域13。由于存储区域11和存储区域13分别存储与不同主体相关的校验信息,因此,根据存储区域11和存储区域13中至少一个存储区域中的校验信息,在电子设备上电进行安全启动时,可以支持第三方集成商定制的固件或软件重新加载到系统运行,不需要将电子设备返厂重新进行数字签名。在多厂商共建系统的场景中,简化了流程,提高了电子设备的集成开发效率,提高了多厂商合作的效率。
需要说明,本申请实施例对电子设备的类型和应用场景不做限定。例如,电子设备可以为应用于计算或通信领域的任意设备,例如,计算机、手机、路由器、交换机或智能设备。电子设备可以应用于人工智能(artificial intelligence,AI)领域。设备提供商可以提供AI模块硬件、固件、操作系统和部分AI应用软件,第三方集成商可以将AI模块集成到底板并扩展外设,增加外设对应的驱动,同时根据定制需求修改操作系统内核和AI应用软件。示例性的,在一种应用场景中,电子设备可以为AI边缘计算设备。
需要说明,本申请实施例对设备提供商和第三方集成商的名称不做限定。例如,设备提供商也可以称为设备提供方、第一设备主体或第一厂商,第三方集成商也可以称为第三方集成方、第二设备主体或第二厂商。
需要说明,本申请实施例对电子设备包括的存储区域的数量不做限定。当存储区域的数量大于两个时,存储区域与不同的主体之间可以一一对应,或者,一个主体可以对应至少一个存储区域。例如,存储区域为3个,称为存储区域1~3。在一种实现方式中,存储区域1~3分别存储与厂商1~3相关的校验信息。在另一种实现方式中,存储区域1~2可以存储与厂商1相关的校验信息,存储区域3可以存储与厂商2相关的校验信息。
需要说明,本申请实施例对存储区域和校验信息的名称不做限定。为了描述方便,在本申请各实施例中,与设备提供商相关的存储区域可以称为第一存储区域,第一存储区域中存储的校验信息可以称为第一校验信息。与第三方集成商相关的存储区域可以称为第二存储区域,第二存储区域中存储的校验信息可以称为第二校验信息。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图5为本申请实施例提供的数据完整性保护的方法的一种流程图。本实施例提供的数据完整性保护的方法,可以应用于电子设备出厂后第三方集成商进行集成开发的阶段,执行主体可以为数据完整性保护的装置或电子设备。为了方便说明,本申请各方法实施例均以电子设备为执行主体进行说明。其中,电子设备存储有设备商数据和第一校验信息,第一校验信息存储在电子设备的第一存储区域中,用于对设备商数据进行完整性校验。设备商数据可以包括电子设备出厂时存储的固件或软件。需要说明,本实施例对设备商数据的名称不做限定,比如,设备商数据也可以称为“缺省数据”或“缺省的固件或软件”。第一校验信息可以包括设备提供商提供的第一信任根。其中,第一信任根可以包括第一根公钥、或者包括第一根公钥的哈希值,或者包括与第一根公钥相关的其他信息。需要说明,在本申请各实施例中,为了描述方便,第一校验信息包括的信任根可以称为第一信任根,设备提供商提供的根公钥可以称为第一根公钥,与第一根公钥对应的根私钥可以称为第一根私钥。其中,电子设备出厂前的数字签名过程可以参见上述示例A或示例B,此处不再赘述。如图5所示,本实施例提供的数据完整性保护的方法,可以包括:
S501、获取第一数据。
第一数据可以包括第三方集成商定制的固件或软件。第三方集成商定制的固件或软件,可以通过对电子设备中的设备商数据进行修改得到。第三方集成商对设备商数据进行修改后的数据,可以通过对设备商数据中的一部分数据或全部数据进行修改得到,或者,可以基于设备商数据通过增加新的固件或软件得到。
下面结合图3,对第一数据进行示例性说明,但并不对第一数据形成限定。
示例1、UEFI固件包括第一数据包和第二数据包,第三方集成商需要对第一数据包进行修改,则第一数据可以包括修改后的第一数据包和未被修改的第二数据包。
示例2、UEFI固件包括第一数据包和第二数据包,驱动包括第三数据包和第四数据包。第三方集成商需要对第一数据包和第四数据包进行修改,则第一数据可以包括修改后的第一数据包和未被修改的第二数据包,以及未被修改的第三数据包和修改后的第四数据包。
示例3、UEFI固件包括第一数据包和第二数据包,第三方集成商需要基于第一数据包增加新的第三数据包,则第一数据可以包括未被修改的第一数据包、未被修改的第二数据包和新增加的第三数据包。
S502、对第一数据进行数字签名,生成第二数据和第二校验信息。
其中,第二数据可以包括第一数据、第一数据对应的签名信息和第一数据对应的完整性验证信息。在本实施例中,第一数据对应的完整性验证信息可以包括下列中的至少一项:证书、证书链、对第一数据进行数字签名所采用的公钥,或对第一数据进行数字签名所采用的公钥的哈希值。
其中,第二校验信息用于在电子设备上电后的安全启动过程中对第二数据进行完整性校验。在本实施例中,第二校验信息可以包括下列中的至少一项:安全启动策略或第二信任根。安全启动策略用于指示对第二数据进行完整性校验的规则。第二信任根可以包括第三方集成商提供的第二根公钥、或者包括第二根公钥的哈希值,或者包括与第二根公钥相关的其他信息。需要说明,在本申请各实施例中,为了描述方便,第二校验信息包括的信任根可以称为第二信任根,第三方集成商提供的根公钥可以称为第二根公钥,与第二根公钥对应的根私钥可以称为第二根私钥。其中,安全启动策略或第二信任根可以为第三方集成商提供的。
本实施例对采用的数字签名算法不做限定,可以为任意一种数字签名算法,例如上述示例A或示例B中的相关描述。
本实施例对进行数字签名时采用的私钥不做限定,采用的私钥不同,对应的安全启动策略不同。
比如,可以采用与第三方集成商提供的第二根公钥对应的第二根私钥对第一数据进行数字签名,则安全启动策略可以用于指示使用第二校验信息对第二数据进行完整性校验,或者,安全启动策略可以用于指示使用第一校验信息或第二校验信息对第二数据进行完整性校验。
又比如,可以采用与设备提供商提供的第一根公钥对应的第一根私钥对第一数据进行数字签名,则安全启动策略可以用于指示使用第一校验信息对第二数据进行完整性校验,或者,安全启动策略可以用于指示使用第一校验信息或第二校验信息对第二数据进行完整性校验。
需要说明,电子设备中存储的固件或软件具有层级,在电子设备上电后安全启动的过程中将逐级启动各个固件或软件。例如,在图3中,电子设备存储的固件、软件包括:bootloader固件、UEFI固件、kernel软件包、驱动和硬件配置信息。第三方集成商定制的固件或软件可以涉及至少一个层级。若第三方集成商定制的固件或软件涉及至少两个层级,即,第一数据涉及至少两个层级时,分别对每个层级的固件或软件进行数字签名。举例说明。参见上述示例2,第一数据涉及UEFI固件和驱动这两个层级,对第一数据进行数字签名,可以包括:对修改后的第一数据包和未被修改的第二数据包进行数字签名,生成对应的第二数据;对未被修改的第三数据包和修改后的第四数据包进行数字签名,生成对应的第二数据。
S503、存储第二数据和第二校验信息。其中,第二校验信息存储在电子设备的第二存储区域中。
示例性的,第一存储区域可以参见图4中的存储区域11,第二存储区域可以参见图4中的存储区域13,原理相似,此处不再赘述。
可见,本实施例提供的数据完整性保护的方法,电子设备出厂后存储有设备商数据和第一校验信息,第一校验信息存储在电子设备的第一存储区域中,用于对设备商数据进行完整性校验。电子设备出厂后,第三方集成商可以定制固件或软件,可以对第一数据进行数字签名,生成第二数据和第二校验信息。第二校验信息存储在电子设备的第二存储区域中。由于第一存储区域和第二存储区域分别存储与不同主体相关的校验信息,因此,根据第一存储区域和第二存储区域中至少一个存储区域中的校验信息,在电子设备上电进行安全启动时,可以支持第三方集成商定制的固件或软件重新加载到系统运行,不需要将电子设备返厂重新进行数字签名。在多厂商共建系统的场景中,简化了流程,提高了电子设备的集成开发效率,提高了多厂商合作的效率。
可选的,S502中,对第一数据进行数字签名,生成第二数据和第二校验信息,可以包括:
获取第三方集成商提供的公私钥对。
根据公私钥对中的私钥对第一数据进行数字签名,生成第二数据和第二校验信息。
或者,
根据第一校验信息对应的私钥对第一数据进行数字签名,生成第二数据和第二校验信息。
具体的,可以根据第三方集成商的定制需求,灵活设置对第一数据进行数字签名时采用的私钥,提升第三方集成商定制的灵活性。其中,在一种实现方式中,对第一数据进行数字签名时采用的私钥与第三方集成商相关,具体为与第三方集成商提供的私钥。例如,参见上述示例A中的数字签名过程,第三方集成商提供的公私钥对可以包括第二根私钥和第二根公钥,还可以包括一对二级公私钥对,可以根据第三方集成商提供的二级公私钥对中的二级私钥对第一数据进行数字签名。又例如,参见上述示例B中的数字签名过程,第三方集成商提供的公私钥对可以包括第二根私钥和第二根公钥,可以根据第三方集成商提供的第二根私钥对第一数据进行数字签名。在另一种实现方式中,对第一数据进行数字签名时采用的私钥与设备提供商相关,具体为第一校验信息对应的私钥,即设备提供商提供的第一根私钥。
在本实施例中,为了提升数据完整性保护的安全性能,第一存储区域和第二存储区域均为一次性写入存储区域。一次性写入存储区域用于一次性写入不可更改的数据,避免了其他主体对第一存储区域和第二存储区域进行篡改的风险。本实施例对一次性写入存储区域的实现方式不做限定。例如,第一存储区域和第二存储区域均为eFUSE。又例如,第一存储区域和第二存储区域可以为同一个存储器中的两个一次性写入存储区域。又例如,第一存储区域和第二存储区域分别为不同存储器中的一次性写入存储区域。
可选的,本实施例提供的数据完整性保护的方法,还可以包括:
对第二存储区域执行写保护操作。
通过对第二存储区域进行写保护,可以锁定第二存储区域,避免其他主体对第二存储区域进行篡改,提升了电子设备安全启动的安全性。
图6为本申请实施例提供的数据完整性保护的方法的另一种流程图。本实施例提供的数据完整性保护的方法,可以应用于电子设备出厂后第三方集成商进行集成开发的阶段,执行主体可以为数据完整性保护的装置或电子设备。本实施例与图5所示实施例的区别在于,在图5所示实施例中,需要对第一数据进行数字签名。而在本实施例中,可以确定第一数据是可信的,可以不对第一数据进行数字签名。相应的,在电子设备上电后的安全启动过程中,可以直接加载运行第一数据。
在本实施例中,对与图5所示实施例中相同的步骤采用相同的步骤序号,对与图5所示实施例不同的步骤采用不同的步骤序号并详细说明。
如图6所示,本实施例提供的数据完整性保护的方法,可以包括:
S501、获取第一数据。
S602、存储第一数据和第二校验信息。其中,第二校验信息存储在电子设备的第二存储区域中。
其中,第二校验信息用于在电子设备上电后的安全启动过程中对第二数据进行完整性校验。在本实施例中,由于可以确定第一数据是可信的,后续,在电子设备上电后的安全启动过程中,可以直接加载运行第一数据,则第二校验信息可以包括安全启动策略,安全启动策略可以用于指示直接加载第一数据,或者,用于指示使用第一校验信息对第二数据进行完整性校验。
可见,本实施例提供的数据完整性保护的方法,电子设备出厂后存储有设备商数据和第一校验信息,第一校验信息存储在电子设备的第一存储区域中,用于对设备商数据进行完整性校验。电子设备出厂后,第三方集成商可以定制固件或软件,在可以确定该定制的固件或软件是可信的场景中,可以不对第一数据进行数字签名,并且将第二校验信息存储在电子设备的第二存储区域中。由于第一存储区域和第二存储区域分别存储与不同主体相关的校验信息,因此,根据第一存储区域和第二存储区域中至少一个存储区域中的校验信息,在电子设备上电进行安全启动时,可以支持第三方集成商定制的固件或软件重新加载到系统运行,不需要将电子设备返厂重新进行数字签名。在多厂商共建系统的场景中,简化了流程,提高了电子设备的集成开发效率,提高了多厂商合作的效率。
需要说明的是,图5所示实施例与图6所示实施例在一些场景中可以相互结合。此时,第一数据涉及至少两个层级,不同层级的固件或软件根据第三方集成商的需求,可以进行数字签名,也可以不进行数字签名。
下面,在图5和图6所示实施例的基础上,结合图4通过示例C对本申请实施例提供的数据完整性保护的方法进行示例性说明。例如,在本示例中,电子设备出厂时,设备商数据可以包括:bootloader固件、UEFI固件、kernel软件包、驱动、硬件配置信息,均使用设备提供商提供的根私钥A(即第一根私钥)进行数字签名。第一校验信息可以包括设备提供商提供的根公钥A(即第一根公钥)的哈希值,存储在电子设备的存储区域11(即第一存储区域)中。例如,第三方集成商需要对UEFI固件和驱动进行修改。需要说明,本示例并不对第一数据、第二数据和第二校验信息包括的具体内容形成限定。
示例C
本示例提供的数据完整性保护的方法,可以包括:
3.1、获取第一数据。
由于第三方集成商需要对电子设备出厂时的UEFI固件和驱动进行修改,第一数据涉及了固件或软件中的两个层级。为了便于说明,将电子设备出厂时的UEFI固件称为第一UEFI固件,将第三方集成商定制的UEFI固件称为第二UEFI固件,第二UEFI固件包括第一UEFI固件中未被修改的部分和第一UEFI固件中已经被修改后的部分。相似的,将电子设备出厂时的驱动称为第一驱动,将第三方集成商定制的驱动称为第二驱动,第二驱动包括第一驱动中未被修改的部分和第一驱动中已经被修改后的部分。第一数据可以包括第二UEFI固件和第二驱动。
3.2、对第一数据进行数字签名,生成第二数据和第二校验信息。
例如,在本示例中,根据第三方集成商的需求,需要采用第三方集成商提供的根私钥C(即第二根私钥)对第二UEFI固件进行数字签名,不需要对第二驱动进行数字签名。
采用第三方集成商提供的根私钥C对第二UEFI固件进行数字签名,生成第二UEFI固件对应的签名信息。并且,将第二UEFI固件、第二UEFI固件对应的签名信息和第二UEFI固件对应的完整性验证信息打包为第二数据,可以称为数据包b’。其中,第二UEFI固件对应的完整性验证信息可以包括根公钥C(即第二根公钥)的哈希值,根公钥C与根私钥C对应。
第二校验信息可以包括安全启动策略和第二信任根。安全启动策略用于指示使用第二校验信息对第二UEFI固件进行完整性校验,可以直接加载第二驱动。第二信任根可以包括根公钥C的哈希值。
3.3、存储第二数据和第二校验信息。
具体的,在电子设备中存储数据包b’和第二驱动,在存储区域13中写入第二校验信息。
3.4、对存储区域13进行写保护,锁定存储区域13,避免其他主体对存储区域13进行篡改。
图7为本申请实施例提供的数据完整性保护的方法的又一种流程图。本实施例提供的数据完整性保护的方法,可以应用于电子设备上电后的安全启动过程,执行主体可以为数据完整性保护的装置或电子设备。如图7所示,本实施例提供的数据完整性保护的方法,可以包括:
S701、获取待验证数据、第一校验信息和第二校验信息。
其中,第一校验信息存储在电子设备的第一存储区域中,第二校验信息存储在电子设备的第二存储区域中。第一存储区域和第二存储区域均为一次性写入存储区域。
示例性的,第一存储区域可以参见图4中的存储区域11,第二存储区域可以参见图4中的存储区域13,原理相似,此处不再赘述。
本实施例对待验证数据包括的具体内容不做限定。可选的,待验证数据可以包括电子设备出厂时缺省的固件或软件,例如,待验证数据可以包括图3中的引导代码固件包、UEFI固件包、内核软件包、驱动和硬件配置信息中的至少一项及其对应的签名信息和证书链。比如,待验证数据可以包括:UEFI固件包、UEFI固件包对应的签名信息和证书链。又比如,待验证数据可以包括:UEFI固件包、UEFI固件包对应的签名信息和证书链,以及内核软件包、内核软件包对应的签名信息和证书链。可选的,待验证数据可以包括电子设备出厂后第三方集成商定制的固件或软件。可选的,待验证数据可以包括电子设备中缺省的固件或软件以及第三方集成商定制的固件或软件的任意组合。
在本实施例中,第一校验信息可以包括设备提供商提供的第一信任根,第一信任根可以包括第一根公钥、或者包括第一根公钥的哈希值,或者包括与第一根公钥相关的其他信息。
在本实施例中,第二校验信息包括第三方集成商提供的下列中的至少一项:安全启动策略或第二信任根。其中,安全启动策略用于指示对待验证数据进行完整性校验的规则,第二信任根可以包括第二根公钥、或者包括第二根公钥的哈希值,或者包括与第二根公钥相关的其他信息。
在本实施例中,安全启动策略可以用于指示下列中的任意一项:
直接加载待验证数据;
使用第一校验信息对待验证数据进行完整性校验;
使用第二校验信息对待验证数据进行完整性校验;
使用第一校验信息或第二校验信息对待验证数据进行完整性校验。
在本实施例中,第一存储区域可以处于写保护状态。通过确定第一存储区域处于写保护状态,可以避免第一存储区域被恶意篡改的风险,进一步提升了电子设备安全启动的安全性。
S702、根据第一校验信息和第二校验信息中的至少一个对待验证数据进行完整性校验。
可见,本实施例提供的数据完整性保护的方法,电子设备的第一存储区域和第二存储区域均为一次性写入存储区域,避免了对存储区域进行篡改的风险,提升了数据完整性保护的安全性能。而且,第一存储区域中存储有第一校验信息,第二存储区域中存储有第二校验信息,第一校验信息与第二校验信息涉及的主体不同。在电子设备上电进行安全启动时,通过采用双校验信息进行完整性校验,如果采用第一校验信息和第二校验信息中的至少一个对待验证数据进行的完整性校验通过,就可以确保电子设备中待验证数据的完整性,实现了多厂商共建系统场景中电子设备的安全启动。本实施例提供的数据完整性保护的方法,支持由第三方集成商定制的固件或软件直接加载到系统运行,不需要将电子设备返厂重新进行数字签名。在多厂商共建系统的场景中,简化了流程,提高了电子设备的集成开发效率,提高了多厂商合作的效率。
需要说明的是,本实施例对S702中,根据第一校验信息对待验证数据进行完整性校验以及根据第二校验信息对待验证数据进行完整性校验的执行顺序不做限定。可以先根据第一校验信息对待验证数据进行完整性校验,也可以先根据第二校验信息对待验证数据进行完整性校验。下面进行详细说明。
在第一种实现方式中,先根据第一校验信息对待验证数据进行完整性校验。具体的,S702中,根据第一校验信息和第二校验信息中的至少一个对待验证数据进行完整性校验,可以包括步骤4.1~4.3:
4.1、根据第一校验信息对待验证数据进行完整性校验。
若根据第一校验信息对待验证数据进行完整性校验未通过,则执行4.2。
若根据第一校验信息对待验证数据进行完整性校验通过,则执行4.3。
4.2、继续根据第二校验信息对待验证数据进行完整性校验。
若根据第二校验信息对待验证数据进行完整性校验通过,则执行4.3。
若根据第二校验信息对待验证数据进行完整性校验未通过,则停止启动。
4.3、加载并执行待验证数据。
在第二种实现方式中,先根据第二校验信息对待验证数据进行完整性校验。具体的,S702中,根据第一校验信息和第二校验信息中的至少一个对待验证数据进行完整性校验,可以包括步骤5.1~5.3:
5.1、根据第二校验信息对待验证数据进行完整性校验。
若根据第二校验信息对待验证数据进行完整性校验未通过,则执行5.2。
若根据第二校验信息对待验证数据进行完整性校验通过,则执行5.3。
5.2、继续根据第一校验信息对待验证数据进行完整性校验。
若根据第一校验信息对待验证数据进行完整性校验通过,则执行5.3。
若根据第一校验信息对待验证数据进行完整性校验未通过,则停止启动。
5.3、加载并执行待验证数据。
其中,在第一种实现方式中和在第二种实现方式中,根据第二校验信息对待验证数据进行完整性校验,可以包括:
根据安全启动策略确定是否直接加载待验证数据。
若确定不直接加载待验证数据、需要对待验证数据进行完整性校验时,则根据第一校验信息或第二校验信息对待验证数据进行完整性校验。
若确定直接加载待验证数据,则加载并执行待验证数据。
具体的,根据第三方集成商的不同的定制需求,在电子设备的安全启动过程中可能存在如下两种场景。第一种场景是可以直接加载待验证数据,提升加载速度。第二种场景是待验证数据需要进行完整性校验且在校验通过后才加载运行,提升运行的安全性。当确定为第二种场景时,则根据第一校验信息或第二校验信息对待验证数据进行完整性校验。当确定为第一种场景时,则直接加载并执行待验证数据。
本实施例提供的数据完整性保护的方法,在S702中根据第一校验信息和第二校验信息中的至少一个对待验证数据进行完整性校验之前,还可以包括:
确定第二存储区域是否处于写保护状态。
若第二存储区域处于写保护状态,则执行根据第一校验信息和第二校验信息中的至少一个对待验证数据进行完整性校验的步骤。
具体的,为了防止第三方集成商忘记锁定第二存储区域,尤其是防止不需要定制的第三方集成商忘记锁定第二存储区域,在对待验证数据进行完整性校验之前先确定第二存储区域是否处于写保护状态。如果第二存储区域处于写保护状态,则恶意攻击者不会篡改第二存储区域中存储的第二校验信息,可以继续执行对待验证数据进行完整性校验的操作。
本实施例提供的数据完整性保护的方法,还可以包括:
若确定第二存储区域未处于写保护状态,则对第二存储区域执行写保护操作。
通过对第二存储区域执行写保护操作,可以防止第二存储区域被恶意篡改,提升了电子设备启动的安全性。
其中,对第二存储区域执行写保护操作,可以包括:
生成提示信息。提示信息用于指示第二存储区域未处于写保护状态。
接收写保护指令,写保护指令用于指示对第二存储区域进行写保护。
根据写保护指令对第二存储区域执行写保护操作。
需要说明,本实施例对提示信息的实现方式不做限定。可选的,提示信息可以包括下列中的任意一项:文字信息或语音信息。
在图7所示实施例的基础上,结合图4和图8通过示例D对本申请实施例提供的数据完整性保护的方法进行说明。本示例与上述示例B和示例C相对应。图8为本申请实施例提供的电子设备安全启动的一种原理示意图。在图8中,电子设备可以包括芯片100,芯片100可以包括存储区域11、ROM12和存储区域13。其中,存储区域11为第一存储区域,存储区域13为第二存储区域。在本示例中,电子设备出厂时,设备商数据包括:bootloader固件、UEFI固件、kernel软件包、驱动、硬件配置信息,均使用设备提供商提供的根私钥A(即第一根私钥)进行数字签名。电子设备出厂后,第三方集成商对电子设备出厂时的UEFI固件和驱动进行了修改,分别形成第二UEFI固件和第二驱动。其中,采用第三方集成商提供的根私钥C(即第二根私钥)对第二UEFI固件进行数字签名,没有对第二驱动进行数字签名。在本示例中,第二校验信息存储在存储区域13中,包括安全启动策略和第二信任根。安全启动策略用于指示使用第二校验信息对第二UEFI固件进行完整性校验,可以直接加载第二驱动。第二信任根可以包括根公钥C(即第二根公钥)的哈希值。第一校验信息存储在存储区域11中,包括根公钥A(即第一根公钥)的哈希值。假设,在完整性校验过程中,先根据第一校验信息对待验证数据进行完整性校验,若校验不通过,再根据第二校验信息对待验证数据进行完整性校验。
示例D
电子设备上电后,本实施例提供的数据完整性保护的方法,可以包括:
6.1、从芯片100的ROM12中存储的启动代码启动。
6.2、启动代码从存储区域11中读取设备提供商提供的根公钥A的哈希值。
启动代码从存储区域13中读取第二校验信息。
6.3、获取待验证数据。该待验证数据包括:bootloader固件及其对应的签名信息和证书链。
6.4、先根据第一校验信息对待验证数据进行完整性校验。
具体的,读取数据包a中bootloader固件对应的证书链,解析出根公钥A。为了便于说明,该解析出的根公钥A可以称为根公钥A”。将从存储区域11中读取的根公钥A可以称为根公钥A’。
比较根公钥A’的哈希值与根公钥A”的哈希值是否相同。假设,根公钥A’的哈希值与根公钥A”的哈希值相同,设备提供商提供的根公钥A没有被篡改,则根据根公钥A’或根公钥A”,以及bootloader固件对应的签名信息,对bootloader固件进行完整性校验。
假设校验通过,说明bootloader固件没有被篡改,则加载并执行bootloader固件。
6.5、获取待验证数据。该待验证数据包括:第二UEFI固件及其对应的签名信息和证书链(完整性验证信息)。
6.6、先根据第一校验信息对待验证数据进行完整性校验。
由于采用了第三方集成商提供的根私钥C(即第二根私钥)对第二UEFI固件进行数字签名,因此校验未通过。
6.7、再根据第二校验信息对待验证数据进行完整性校验。
根据安全启动策略确定需要使用第二校验信息对第二UEFI固件进行完整性校验,读取数据包b’中第二UEFI固件对应的证书链,解析出根公钥C。为了便于说明,该解析出的根公钥可以称为根公钥C”。将从存储区域13中读取的根公钥C可以称为根公钥C’。
比较根公钥C’的哈希值与根公钥C”的哈希值是否相同。假设,根公钥C’的哈希值与根公钥C”的哈希值相同,第三方集成商提供的根公钥C没有被篡改,则根据根公钥C’或根公钥C”,以及第二UEFI固件对应的签名信息,对第二UEFI固件进行完整性校验。
假设校验通过,说明第二UEFI固件没有被篡改,则加载并执行第二UEFI固件。
6.8、获取待验证数据。该待验证数据包括:内核软件包及其对应的签名信息和证书链。
6.9、先根据第一校验信息对待验证数据进行完整性校验。
可以参见6.4的说明,原理相似,此处不再赘述。
6.10、获取待验证数据。该待验证数据包括:第二驱动。
6.11、先根据第一校验信息对待验证数据进行完整性校验。
由于没有对第二驱动进行数字签名,因此校验未通过。
6.12、再根据第二校验信息对待验证数据进行完整性校验。
根据安全启动策略确定可以直接加载第二驱动,则直接加载并执行第二驱动。
6.13、获取待验证数据。该待验证数据包括:硬件配置信息及其对应的签名信息和证书链。
6.14、先根据第一校验信息对待验证数据进行完整性校验。
可以参见6.4的说明,原理相似,此处不再赘述。
图9为本申请实施例提供的数据完整性保护的装置的一种结构示意图。如图9所示,本实施例提供的数据完整性保护的装置,可以应用于电子设备,所述电子设备存储有设备商数据和第一校验信息,所述第一校验信息存储在所述电子设备的第一存储区域中,用于对所述设备商数据进行完整性校验,所述装置包括:
获取模块91,用于获取第一数据;
处理模块92,用于对所述第一数据进行数字签名,生成第二数据和第二校验信息;
存储模块93,用于存储所述第二数据和所述第二校验信息;其中,所述第二校验信息存储在所述电子设备的第二存储区域中。
可选的,所述第一存储区域和所述第二存储区域均为一次性写入存储区域。
可选的,所述第一数据包括第三方集成商对所述设备商数据进行修改后的数据,所述处理模块92具体用于:
获取第三方集成商提供的公私钥对;
根据所述公私钥对中的私钥对所述第一数据进行数字签名,生成所述第二数据和所述第二校验信息;
或者,
根据所述第一校验信息对应的私钥对所述第一数据进行数字签名,生成所述第二数据和所述第二校验信息。
可选的,所述第二校验信息包括安全启动策略和/或信任根;其中,所述安全启动策略用于指示对所述第二数据进行完整性校验的规则。
本实施例提供的数据完整性保护的装置,可以执行本申请图5或图6所示实施例提供的数据完整性保护的方法,技术原理和技术效果相似,此处不再赘述。
图10为本申请实施例提供的数据完整性保护的装置的另一种结构示意图。如图10所示,本实施例提供的数据完整性保护的装置,可以包括:
获取模块101,用于获取待验证数据、第一校验信息和第二校验信息;所述第一校验信息存储在电子设备的第一存储区域中,所述第二校验信息存储在所述电子设备的第二存储区域中,所述第一存储区域和所述第二存储区域均为一次性写入存储区域;
处理模块102,用于根据所述第一校验信息和所述第二校验信息中的至少一个对所述待验证数据进行完整性校验。
可选的,所述第二校验信息包括第三方集成商提供的下列中的至少一项:安全启动策略或第二信任根;其中,所述安全启动策略用于指示对所述待验证数据进行完整性校验的规则。
可选的,所述处理模块102具体用于:
根据所述安全启动策略确定是否直接加载所述待验证数据;
若确定不直接加载所述待验证数据、需要对所述待验证数据进行完整性校验时,则根据所述第一校验信息或所述第二校验信息对所述待验证数据进行完整性校验。
可选的,所述第一校验信息包括设备提供商提供的第一信任根,所述第一信任根包括第一根公钥或所述第一根公钥的哈希值。
可选的,所述处理模块102还用于:
在根据所述第一校验信息和所述第二校验信息中的至少一个对所述待验证数据进行完整性校验之前,确定所述第二存储区域处于写保护状态。
本实施例提供的数据完整性保护的装置,可以执行本申请图7所示实施例提供的数据完整性保护的方法,技术原理和技术效果相似,此处不再赘述。
图11为本申请实施例提供的数据完整性保护的装置的又一种结构示意图。如图11所示,本实施例提供的数据完整性保护的装置,可以包括处理器1101和存储器1102,所述存储器1102用于存储指令,所述处理器1101用于执行所述存储器1102中存储的指令,用于执行本申请图5-图7任一实施例提供的数据完整性保护的方法,技术原理和技术效果相似,此处不再赘述。
图12为本申请实施例提供的电子设备的一种结构示意图。如图12所示,本实施例提供的电子设备,可以包括处理器1201和存储器1202,所述存储器1202用于存储指令,所述处理器1201用于执行所述存储器1202中存储的指令,用于执行本申请图5-图7任一实施例提供的数据完整性保护的方法,技术原理和技术效果相似,此处不再赘述。
应理解,处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储器可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random access memory,RAM)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。

Claims (15)

1.一种数据完整性保护的方法,其特征在于,应用于电子设备,所述电子设备存储有设备商数据和第一校验信息,所述第一校验信息存储在所述电子设备的第一存储区域中,用于对所述设备商数据进行完整性校验,所述方法包括:
获取第一数据;
对所述第一数据进行数字签名,生成第二数据和第二校验信息;
存储所述第二数据和所述第二校验信息;其中,所述第二校验信息存储在所述电子设备的第二存储区域中。
2.根据权利要求1所述的方法,其特征在于,所述第一存储区域和所述第二存储区域均为一次性写入存储区域。
3.根据权利要求1或2所述的方法,其特征在于,所述第一数据包括第三方集成商对所述设备商数据进行修改后的数据,所述对所述第一数据进行数字签名,生成第二数据和第二校验信息,包括:
获取所述第三方集成商提供的公私钥对;
根据所述公私钥对中的私钥对所述第一数据进行数字签名,生成所述第二数据和所述第二校验信息。
4.根据权利要求1或2所述的方法,其特征在于,所述第二校验信息包括安全启动策略和/或信任根;其中,所述安全启动策略用于指示对所述第二数据进行完整性校验的规则。
5.一种数据完整性保护的方法,其特征在于,包括:
获取待验证数据、第一校验信息和第二校验信息;所述第一校验信息存储在电子设备的第一存储区域中,所述第二校验信息存储在所述电子设备的第二存储区域中,所述第一存储区域和所述第二存储区域均为一次性写入存储区域;
根据所述第一校验信息和所述第二校验信息中的至少一个对所述待验证数据进行完整性校验。
6.根据权利要求5所述的方法,其特征在于,所述第二校验信息包括第三方集成商提供的下列中的至少一项:安全启动策略或信任根;其中,所述安全启动策略用于指示对所述待验证数据进行完整性校验的规则。
7.根据权利要求5或6所述的方法,其特征在于,所述根据所述第一校验信息和所述第二校验信息中的至少一个对所述待验证数据进行完整性校验之前,还包括:
确定所述第二存储区域处于写保护状态。
8.一种数据完整性保护的装置,其特征在于,应用于电子设备,所述电子设备存储有设备商数据和第一校验信息,所述第一校验信息存储在所述电子设备的第一存储区域中,用于对所述设备商数据进行完整性校验,所述装置包括:
获取模块,用于获取第一数据;
处理模块,用于对所述第一数据进行数字签名,生成第二数据和第二校验信息;
存储模块,用于存储所述第二数据和所述第二校验信息;其中,所述第二校验信息存储在所述电子设备的第二存储区域中。
9.根据权利要求8所述的装置,其特征在于,所述第一存储区域和所述第二存储区域均为一次性写入存储区域。
10.根据权利要求8或9所述的装置,其特征在于,所述第一数据包括第三方集成商对所述设备商数据进行修改后的数据,所述处理模块具体用于:
获取所述第三方集成商提供的公私钥对;
根据所述公私钥对中的私钥对所述第一数据进行数字签名,生成所述第二数据和所述第二校验信息。
11.根据权利要求8或9所述的装置,其特征在于,所述第二校验信息包括安全启动策略和/或信任根;其中,所述安全启动策略用于指示对所述第二数据进行完整性校验的规则。
12.一种数据完整性保护的装置,其特征在于,包括:
获取模块,用于获取待验证数据、第一校验信息和第二校验信息;所述第一校验信息存储在电子设备的第一存储区域中,所述第二校验信息存储在所述电子设备的第二存储区域中,所述第一存储区域和所述第二存储区域均为一次性写入存储区域;
处理模块,用于根据所述第一校验信息和所述第二校验信息中的至少一个对所述待验证数据进行完整性校验。
13.根据权利要求12所述的装置,其特征在于,所述第二校验信息包括第三方集成商提供的下列中的至少一项:安全启动策略或信任根;其中,所述安全启动策略用于指示对所述待验证数据进行完整性校验的规则。
14.根据权利要求12或13所述的装置,其特征在于,所述处理模块还用于:
在根据所述第一校验信息和所述第二校验信息中的至少一个对所述待验证数据进行完整性校验之前,确定所述第二存储区域处于写保护状态。
15.一种电子设备,其特征在于,包括处理器和存储器,所述处理器用于调用所述存储器中存储的程序,以执行如权利要求1-7任一项所述的方法。
CN202010518090.9A 2020-06-09 2020-06-09 数据完整性保护的方法和装置 Pending CN113779652A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202010518090.9A CN113779652A (zh) 2020-06-09 2020-06-09 数据完整性保护的方法和装置
PCT/CN2021/098744 WO2021249359A1 (zh) 2020-06-09 2021-06-07 数据完整性保护的方法和装置
EP21823161.1A EP4148609A4 (en) 2020-06-09 2021-06-07 DATA INTEGRITY PROTECTION METHOD AND APPARATUS
US18/062,961 US20230169216A1 (en) 2020-06-09 2022-12-07 Data integrity protection method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010518090.9A CN113779652A (zh) 2020-06-09 2020-06-09 数据完整性保护的方法和装置

Publications (1)

Publication Number Publication Date
CN113779652A true CN113779652A (zh) 2021-12-10

Family

ID=78834662

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010518090.9A Pending CN113779652A (zh) 2020-06-09 2020-06-09 数据完整性保护的方法和装置

Country Status (4)

Country Link
US (1) US20230169216A1 (zh)
EP (1) EP4148609A4 (zh)
CN (1) CN113779652A (zh)
WO (1) WO2021249359A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114491565A (zh) * 2022-03-31 2022-05-13 飞腾信息技术有限公司 固件安全启动方法、装置、计算设备和可读存储介质
CN117034368A (zh) * 2023-10-09 2023-11-10 苏州元脑智能科技有限公司 一种数据完整性的保护方法、装置、设备及存储介质
CN117668872A (zh) * 2023-12-04 2024-03-08 北京海泰方圆科技股份有限公司 一种数据保护方法及装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102126931B1 (ko) * 2018-11-07 2020-06-25 시큐리티플랫폼 주식회사 시큐어 부팅 장치 및 방법
WO2023222238A1 (en) * 2022-05-20 2023-11-23 Huawei Technologies Co., Ltd. Apparatus and method for secure boot using authorized subkeys

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4690779B2 (ja) * 2005-06-03 2011-06-01 株式会社日立製作所 属性証明書検証方法及び装置
CN101504705B (zh) * 2009-03-17 2011-05-11 武汉大学 可信平台模块及其计算机启动控制方法
CN102656592A (zh) * 2010-02-16 2012-09-05 松下电器产业株式会社 信息处理设备、信息处理系统、软件例程执行方法和远程认证方法
EP2973156B1 (en) * 2013-03-15 2018-04-25 Intel Corporation Key revocation in system on chip devices
US10140117B2 (en) * 2016-06-30 2018-11-27 Microsoft Technology Licensing, Llc Fault-tolerant variable region repaving during firmware over the air update
US20190138730A1 (en) * 2017-11-03 2019-05-09 Dell Products, Lp System and Method to Support Boot Guard for Original Development Manufacturer BIOS Development
CN108399339B (zh) * 2018-02-12 2021-09-14 广东为辰信息科技有限公司 一种基于安全芯片的可信启动方法
US11169934B2 (en) * 2018-06-28 2021-11-09 Intel Corporation Systems, methods and apparatus for low latency memory integrity mac for trust domain extensions
CN109245899B (zh) * 2018-09-06 2021-03-16 成都三零嘉微电子有限公司 一种基于sm9密码算法信任链设计方法
US10878100B2 (en) * 2018-10-17 2020-12-29 Intel Corporation Secure boot processor with embedded NVRAM

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114491565A (zh) * 2022-03-31 2022-05-13 飞腾信息技术有限公司 固件安全启动方法、装置、计算设备和可读存储介质
CN114491565B (zh) * 2022-03-31 2022-07-05 飞腾信息技术有限公司 固件安全启动方法、装置、计算设备和可读存储介质
CN117034368A (zh) * 2023-10-09 2023-11-10 苏州元脑智能科技有限公司 一种数据完整性的保护方法、装置、设备及存储介质
CN117034368B (zh) * 2023-10-09 2024-02-09 苏州元脑智能科技有限公司 一种数据完整性的保护方法、装置、设备及存储介质
CN117668872A (zh) * 2023-12-04 2024-03-08 北京海泰方圆科技股份有限公司 一种数据保护方法及装置

Also Published As

Publication number Publication date
EP4148609A1 (en) 2023-03-15
US20230169216A1 (en) 2023-06-01
WO2021249359A1 (zh) 2021-12-16
EP4148609A4 (en) 2023-10-04

Similar Documents

Publication Publication Date Title
CN113779652A (zh) 数据完整性保护的方法和装置
US10417427B2 (en) Method for authenticating firmware volume and system therefor
TWI607376B (zh) 用於處理改變依照統一可延伸韌體介面計算裝置中之系統安全資料庫及韌體儲存區請求的系統及方法
US8291226B2 (en) Method and apparatus for securely booting from an external storage device
CN103914658B (zh) 终端设备的安全启动方法及终端设备
FI114416B (fi) Menetelmä elektroniikkalaitteen varmistamiseksi, varmistusjärjestelmä ja elektroniikkalaite
US9563769B2 (en) System and method for secure loading data in a cache memory
US20150019856A1 (en) Secure download and security function execution method and apparatus
US8392724B2 (en) Information terminal, security device, data protection method, and data protection program
TW201500960A (zh) 在配有適用統一可延伸韌體介面(uefi)之韌體之計算裝置中的安全性變數變化檢測技術
EP2633464A1 (en) Software authentication
CN113486360B (zh) 基于risc-v的安全启动方法及系统
CN109814934B (zh) 数据处理方法、装置、可读介质和系统
JP2019122030A (ja) コード署名の条件付き規定に基づくセキュアクライアント認証
WO2005101725A1 (fr) Procede d'authentification dynamique de programmes par un objet portable electronique
US10095855B2 (en) Computer system and operating method therefor
CN114818012B (zh) 基于白名单列表的Linux文件完整性度量方法
CN114896640A (zh) 一种基于可信根的安全启动方法、装置、设备及可读介质
KR20230082388A (ko) 차량 제어기의 부트로더 검증 장치 및 그 방법
CN113254295B (zh) 验证方法和系统
CN117556430B (zh) 一种安全启动方法、装置、设备及存储介质
CN117992969A (zh) 一种可信的系统完整性校验方法和装置、电子设备
CN118210567A (zh) 一种座舱域多核异构SoC的防降级安全启动方法及系统
CN118312947A (zh) 设备启动方法、装置、计算机设备及嵌入式设备
CN117857118A (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