CN106650460B - 一种版本校验方法、装置及终端设备 - Google Patents

一种版本校验方法、装置及终端设备 Download PDF

Info

Publication number
CN106650460B
CN106650460B CN201611005776.8A CN201611005776A CN106650460B CN 106650460 B CN106650460 B CN 106650460B CN 201611005776 A CN201611005776 A CN 201611005776A CN 106650460 B CN106650460 B CN 106650460B
Authority
CN
China
Prior art keywords
version
bit position
check bit
edition
verification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611005776.8A
Other languages
English (en)
Other versions
CN106650460A (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.)
Shanghai Huawei Technologies Co Ltd
Original Assignee
Shanghai 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 Shanghai Huawei Technologies Co Ltd filed Critical Shanghai Huawei Technologies Co Ltd
Priority to CN201611005776.8A priority Critical patent/CN106650460B/zh
Publication of CN106650460A publication Critical patent/CN106650460A/zh
Priority to PCT/CN2017/108532 priority patent/WO2018090818A1/zh
Application granted granted Critical
Publication of CN106650460B publication Critical patent/CN106650460B/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/577Assessing vulnerabilities and evaluating computer system security
    • 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/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种版本校验方法、装置及终端设备,用于防止攻击者使用有安全漏洞的版本进行安全攻击,提高系统安全性。本发明实施例方法中每个版本的版本号有对应的校验比特位,通过比特位指示版本的禁用和可用信息,在获得第一版本时,先根据该版本的版本号确定该版本号对应的校验比特位,若该版本的版本号对应的校验比特位为第一数值,则确定该版本被禁用,校验未通过,若该版本的版本号对应的校验比特位为第二数值,则确定该版本可用,校验通过。通过本发明实施例,可以对该版本进行安全校验,没有校验通过的版本无法使用,因此可以防止攻击者使用有安全漏洞的版本进行安全攻击。

Description

一种版本校验方法、装置及终端设备
技术领域
本发明涉及计算机领域,尤其涉及一种版本校验方法、装置及终端设备。
背景技术
系统安全是为了支持安全启动以及保证系统在可信环境中运行的一整套软硬件方案。基于ARM架构的系统安全方案通常由Secure Boot和Trust Zone技术结合而成,Secure Boot是系统安全的基础,负责整个安全系统的初始化过程。根据可信的完整性理论,系统的安全启动是整个系统安全的可信根,只有保证了系统启动的安全,才能保证系统其他各部件的安全。
系统安全启动时,系统采取逐级认证签名,认证通过之后引导后续的过程。通常安全版本的摘要签名和代码存储在片外(通常是Flash),系统首先由片内Boot启动,对片外启动代码签名认证校验通过后,切换到片外启动代码执行,引导后续启动程序。
如果片外安全版本有安全漏洞,需要升级,假设有安全漏洞的版本为VerX,升级版本为VerY,VerX存在安全漏洞,升级之后,攻击者也可以将版本回退到VerX,利用其中的漏洞,进行安全攻击,因此存在系统安全风险。
发明内容
本发明实施例提供了一种版本校验方法、装置及终端设备,能够防止攻击者使用有安全漏洞的版本进行安全攻击,提高了系统安全。
本发明实施例适用于对软件版本进行安全校验的场景,该软件可以是操作系统、也可以是在系统上的应用程序。
第一方面,本发明实施例提供了一种版本校验方法,该方法包括:
在操作系统或应用程序需要安全启动或升级的场景下,处理器获取第一版本的版本信息,版本信息包括第一版本的版本号,其中,版本号用于标识所述第一版本;根据第一版本的版本号确定第一版本的版本号对应的校验比特位;若第一版本的版本号对应的校验比特位为第一数值,则确定第一版本被禁用,第一版本校验未通过;若第一版本的版本号对应的校验比特位为第二数值,则确定第一版本可用,第一版本校验通过。
可选的,第一版本为处理器待启动的系统或应用程序的目标版本,或第二版本为处理器待升级的系统或应用程序的目标版本。
本发明实施例中的每个版本的版本号有对应的校验比特位,通过比特位指示版本的禁用和可用信息,在获取到某个版本后,可以对该版本进行安全校验,没有校验通过的版本无法使用,因此可以防止攻击者使用有安全漏洞的版本进行安全攻击。
结合第一方面,在第一方面的第一种可能的实现方式中,该方法还包括:
当确认某个版本存在安全漏洞时,处理器接收禁用第二版本的指示,禁用第二版本的指示中包括第二版本的版本号;根据第二版本的版本号确定第二版本的版本号对应的校验比特位;将第二版本的版本号对应的校验比特位置为所述第一数值。
因此,校验比特位信息可根据版本的安全信息(bugList)进行更新,及时将有安全漏洞的版本对应的比特位设置为禁用,从而可以确保有安全漏洞的版本无法使用,防止攻击者使用有安全漏洞的版本进行安全攻击。
结合第一方面,或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,版本号(包括第一版本号和第二版本号)对应的校验比特位存储于电子熔断金属熔丝eFuse的第一字段中,第一字段中的每个比特位用于指示一个版本是否被禁用。
可选的,所述校验比特位的第一数值为1,所述第二校验比特位的第二数值为0。
可选的,所述第一字段可以为eFuse中的NV_BITMAP_E字段,当该字段中某个比特为1时,则表示该比特位对应的版本号已被禁用,当该字段中某个比特为0时,则表示该比特位对应的版本号为可用状态。
如此,可以利用eFuse的一次性熔断特点,若某个版本存在安全漏洞,将该版本对应的比特位熔断置1后,将再也无法回退到该版本,从而保证了版本启动或升级时的安全性。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,版本号(包括第一版本号和第二版本号)对应的校验比特位存储于闪存Flash的第二字段中,第二字段中的每个比特位用于指示一个版本是否被禁用。
可选的,一种可能的实施中,所述校验比特位的第一数值为1,所述第二校验比特位的第二数值为0。
可选的,在另一种可能的实施中,所述校验比特位的第一数值为0,所述第二校验比特位的第二数值为1。
若采用这种方式存储,则需要通过秘钥保护存储内容,签名认证之后才允许更新校验比特位。
结合第一方面的任一种可能的实现方式,在第一方面的第四种可能的实现方式中,该方法还包括:对第一版本的版本信息进行签名认证;当签名认证通过时,才执行根据第一版本的版本号确定第一版本的版本号对应的校验比特位的步骤。以防止版本被篡改,从而可以对启动或升级时的版本进行安全校验,提高安全性。
结合第一方面的任一种可能的实现方式,在第一方面的第五种可能的实现方式中,本发明实施例可以应用于版本升级时对版本进行校验,校验时,获取第一版本的版本信息包括:接收第一版本升级指示,根据升级指示获取第一版本的版本信息;该方法还包括:若校验不通过,则不升级至第一版本;若校验通过,则升级至第一版本。
可选的,接收第一版本升级指示可以为:接收升级操作系统版本的指示,或接收升级应用程序版本的指示。
结合第一方面的任一种可能的实现方式,在第一方面的第六种可能的实现方式中,本发明实施例可以应用于版本升级时对版本进行校验,校验时,获取第一版本的版本信息包括:接收启动第一版本的启动指示,根据启动指示获取第一版本的版本信息;该方法还包括:当第一版本校验不通过时,不启动第一版本;当第一版本校验通过时,启动第一版本。
可选的,接收启动第一版本的启动指示可以为:接收启动某操作系统版本的指示,或接收启动某应用程序版本的指示。
第二方面,本发明实施例提供了一种版本校验装置,具体实现对应于上述第一方面提供的版本校验方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件程序实现。硬件和软件包括一个或多个与上述功能相对应的单元模块,所述单元模块可以是软件和/或硬件。
一种可能的设计中,该装置包括:
版本信息获取模块,用于获取第一版本的版本信息,该版本信息包括第一版本的版本号;版本校验模块,用于根据第一版本的版本号确定第一版本的版本号对应的校验比特位,若第一版本的版本号对应的校验比特位为第一数值,则确定第一版本被禁用,第一版本校验未通过,若第一版本的版本号对应的校验比特位为第二数值,则确定第一版本可用,第一版本校验通过。
结合第二方面,在第二方面的第一种可能的实现方式中,该装置还包括:
接收模块,用于接收禁用第二版本的指示,禁用第二版本的指示中包括第二版本的版本号;校验位更新模块,用于根据第二版本的版本号确定第二版本的版本号对应的校验比特位,将第二版本的版本号对应的校验比特位置为所述第一数值。
结合第二方面的任一种可能的实现方式,在第二方面的第二种可能的实现方式中,第一版本的版本号对应的校验比特位存储于电子熔断金属熔丝eFuse的第一字段中,第一字段中的每个比特位用于指示一个版本是否被禁用。
可选的,所述校验比特位的第一数值为1,所述第二校验比特位的第二数值为0。
结合第二方面的任一种可能的实现方式,在第二方面的第三种可能的实现方式中,第一版本的版本号对应的校验比特位存储于闪存Flash的第二字段中,第二字段中的每个比特位用于指示一个版本是否被禁用。
可选的,一种可能的实施中,所述校验比特位的第一数值为1,所述第二校验比特位的第二数值为0。
可选的,在另一种可能的实施中,所述校验比特位的第一数值为0,所述第二校验比特位的第二数值为1。
结合第二方面的任一种可能的实现方式,在第二方面的第四种可能的实现方式中,该装置还包括:签名认证模块,用于对第一版本的版本信息进行签名认证,当签名认证通过时,则版本校验模块执行根据第一版本的版本号确定第一版本的版本号对应的校验比特位的步骤。
结合第二方面的任一种可能的实现方式,在第二方面的第五种可能的实现方式中,版本信息获取模块,具体用于接收升级指示,根据升级指示获取第一版本的版本信息;该装置还包括:升级模块,用于当校验不通过时,不升级至第一版本;若校验通过时,升级至第一版本。
结合第二方面的任一种可能的实现方式,在第二方面的第二种可能的实现方式中,版本信息获取模块,具体用于接收启动第一版本的启动指示,根据启动指示获取第一版本的版本信息;该装置还包括:安全启动模块,用于当第一版本校验不通过时,不启动第一版本,当第一版本校验通过时,启动第一版本。
第三方面,本发明实施例还提供了一种芯片,该芯片用于执行程序代码,以执行第一方面的版本校验方法的全部或部分步骤。
可选的,该芯片包括电子熔断金属熔丝eFuse,所述eFuse中存储有版本校验比特位,每个比特位用于指示一个版本是否被禁用。
可选的,该芯片为系统级芯片SOC。
第四方面,本发明实施例还提供了一种终端设备,该终端设备包括:相互连接的收发器、处理器及存储器;存储器用于存储程序代码,处理器调用存储器中的程序代码,以执行第一方面的全部或部分步骤:
获取第一版本的版本信息,版本信息包括第一版本的版本号;根据第一版本的版本号确定第一版本的版本号对应的校验比特位;若第一版本的版本号对应的校验比特位为第一数值,则确定第一版本被禁用,第一版本校验未通过;若第一版本的版本号对应的校验比特位为第二数值,则确定第一版本可用,第一版本校验通过。
第五方面,本发明实施例还提供了一种计算机存储介质,该介质存储有应用程序,该程序执行时包括上述第一方面的版本校验方法中的部分或者全部步骤。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,每个版本的版本号有对应的校验比特位,通过比特位指示版本的禁用和可用信息,在获得某个版本(第一版本)时,先根据该版本的版本号确定该版本号对应的校验比特位,若该版本的版本号对应的校验比特位为第一数值,则确定该版本被禁用,校验未通过,若该版本的版本号对应的校验比特位为第二数值,则确定该版本可用,校验通过。通过本发明实施例,在获取到某个版本后,可以对该版本进行安全校验,没有校验通过的版本无法使用,因此可以防止攻击者使用有安全漏洞的版本进行安全攻击。
附图说明
图1为本发明实施例中系统安全启动相关的签名校验过程示意图;
图2为本发明实施例中版本校验方法流程图;
图3为本发明实施例中通过eFuse存储版本校验信息进行校验的示意图;
图4为本发明实施例中版本校验方法的另一种流程图;
图5为本发明实施例中的版本校验装置功能模块结构图;
图6为本发明实施例中终端设备的硬件结构示意图。
具体实施方式
为了使本发明的技术方案及有益效果更加清楚,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
此外本发明实施例中的版本校验方法适用于各种带有处理器(CentralProcessing Unit,简称:CPU)及应用程序的终端设备,包括计算设备、车载设备、可穿戴设备、以及各种形式的用户设备(User Equipment,简称UE),移动台(Mobile station,简称MS),终端(terminal),终端设备(Terminal Equipment)等等。
本发明实施例适用于可以对软件进行升级,存在多个软件版本的上述终端设备中对软件的版本进行安全校验的场景,该软件可以是操作系统、也可以是在系统上的应用程序,例如:ARM架构的系统安全启动,某个应用程序的安全启动等场景的版本校验。本发明实施例以系统安全启动为例进行说明。
结合图1,对本发明实施例中的版本校验方法进行说明,该方法的执行主体为处理器(CPU)。
101、获取第一版本的版本信息,该版本信息包括第一版本的版本号;
获取版本的场景和方式有多种,包括在系统版本需要升级时,需要获取待升级的版本;在开机启动系统时,需要获取需要启动的版本;在安装新的版本时,也会获得待安装的版本。
本发明实施例中的第一版本仅是特指某个版本,其中的“第一”是用于区别类似的对象,而不是用于描述特定的顺序或先后次序。
在进行版本升级时,处理器接收升级指示,根据该升级指示获取待升级的版本(第一版本)的版本信息。
或者,在开机安全启动,或者升级后安全启动某个版本(即第一版本)时,处理器会接收到启动该版本的启动指示,之后根据该启动指示获取待启动的该版本的版本信息,
其中版本信息包括版本号以及该版本的程序启动代码等信息。
102、根据第一版本的版本号确定第一版本的版本号对应的校验比特位;
在获取到第一版本的版本信息后,对该版本进行安全校验,确定该版本是否是可用的版本。
每个版本的版本号有对应的校验比特位,通过校验比特位指示版本的禁用和可用信息。
当某个版本号对应的校验比特位为第一数值时,指示该版本号对应的版本被禁用,当某个版本号对应的校验比特位为第二数值时,指示该版本号对应的版本可用。
该校验比特位可以存储于电子熔断金属熔丝(eFuse)中,也可以存储于片外存储器(如:Flash)里,存储在片外存储器时,需要通过秘钥保护,签名认证之后才允许更新。
1、存储于eFuse中
在系统级芯片(System-on-a-Chip,简称:SOC)中,eFuse是一种重要的非易失性存储单元,由熔丝结构构成,通过熔丝可以在芯片上编程并存储信息,eFuse模块有一次性熔断的特性:eFuse中默认存储的比特位都是0,可以通过编程将需要的比特位由0改为1,一旦置1,就不能再改为0。利用eFuse的一次性熔断的特性,在SoC的eFuse中增加第一字段,该字段中对应的每个比特位用于指示一个版本是否可用(也即是否被禁用)。
可选的,该第一字段可以为NV_BITMAP_E字段。
在eFuse中,所述校验比特位中的第一数值的取值为1,所述校验比特位中的第二数值的取值为0,即当eFuse中的第一字段中某个比特位为1时,表示该比特位对应的版本已被禁用,当某个比特位为0时,表示该比特位对应的版本可用。
如图2所示,Flash中存储有系统片外启动代码版本的版本信息:版本0(Ver0)。CPU中存储有片内启动引导程序(Boot),还包括有eFuse模块,eFuse模块中NV_BITMAP_E字段中的版本0对应的比特位Bit0为0,表示版本0可用。
假设有片外启动代码有16个版本,NV_BITMAP_E字段中有32bit,则第0至第15bit分别用于指示版本0至版本15的是否可用,比特位和版本号之间的对应关系可以如图3所示。Bit 0为1,用于指示版本0(Ver0)被禁用;Bit 1为0,用于指示版本1(Ver1)可用;……Bit 16为0,用于指示版本16(Ver16)可用。
在进行版本安全校验时,根据第一版本的版本号确定第一版本的版本号对应的校验比特位,根据该版本号对应的比特位是0还是1来确定该版本号是否可用。
2、存储于片外存储器中
以片外存储器为Flash进行举例,校验比特位存放在片外Flash里,在Flash中增加第二字段,该字段中的每个比特位用于指示一个版本是否可用(也即是否被禁用)。
可选的,在Flash中,所述校验比特位中的第一数值的取值为1,所述校验比特位中的第二数值的取值为0,即当eFuse中的第一字段中某个比特位为1时,表示该比特位对应的版本已被禁用,当某个比特位为0时,表示该比特位对应的版本可用。
可选的,在Flash中,也可以是第一数值的取值为0,表示该比特位对应的版本已被禁用,第二数值的取值为1,表示该比特位对应的版本可用。
进一步,为了保证安全性,对该第二字段使用私钥签名,在安全启动进行校验需要读取Flash中的第二字段,或需要对Flash中的第二字段进行更新时,先使用公钥认证签名,若签名认证通过,才允许读取或更新校验比特位。
Flash中的校验比特位与片外启动代码的版本的版本号之间的映射关系与图2相同,此处不做赘述。
103、若第一版本的版本号对应的校验比特位为第一数值,则确定第一版本被禁用,第一版本校验未通过;
根据第一版本的版本号从eFuse的第一字段或片外存储器的第二字段中的校验比特位中确定第一版本的版本号对应的校验比特位为第一数值时,则获知该版本不可用,即被禁用,则该第一版本校验不通过。
若是在启动第一版本时,对第一版本校验不通过,则说明该版本存在安全问题,则不允许启动该版本。
若是在升级至第一版本时,对第一版本校验不通过,则说明该版本存在安全问题,则不允许升级至该版本。
104、若第一版本的版本号对应的校验比特位为第二数值,则确定第一版本可用,第一版本校验通过。
根据第一版本的版本号从eFuse的第一字段或片外存储器的第二字段中的校验比特位中确定第一版本的版本号对应的校验比特位为第二数值,则获知该版本可用,则该第一版本校验通过。
若是在启动第一版本时,对第一版本校验通过,则说明该版本不存在安全问题,则允许启动该版本。
若是在升级至第一版本时,对第一版本校验通过,则说明该版本不存在安全问题,则允许升级至该版本。
下面对有安全问题的版本进行校验比特位置位的过程进行说明。
当某个版本(第二版本)有安全漏洞时,处理器接收到禁用第二版本的指示,该禁用指示中包括第二版本的版本号,则处理器根据该版本号确定第二版本的版本号对应的校验比特位是第几个bit位,该比特位原本为第二数值,此时,将该比特位置为第一数值,例如:当第二数值为0,第一数值为1时,将该比特位由0置位为1。以表示第二版本不可用,即已被禁用,后续不允许再升级到该版本,或不允许启动该版本。
一种应用场景为,发现某个版本有漏洞时,升级到一个新的版本。此时,在升级时,既需要对有漏洞的版本的版本号对应的校验比特位置为第一数值,又要对待升级的版本进行图1所示的实施例中的版本校验。可选的,也可以在升级时不进行图1所示的实施例中的版本校验,待该版本升级完成后,在启动该版本时,对该版本进行图1所示的实施例中的版本校验。
例如:Ver1版本有安全漏洞,Ver1升级到Ver2。若采用eFuse存储校验比特位的方式,Ver2升级启动之后,更新NV_BITMAP_E,将不可使用的版本Ver1对应的比特置位。然后有安全漏洞的版本Ver1再也无法通过版本校验,其他无安全漏洞的版本Ver0,Ver2仍然可以通过版本校验。
本发明实施例中,每个版本的版本号有对应的校验比特位,通过比特位指示版本的禁用和可用信息。在获得某个版本时,先根据该版本的版本号确定该版本号对应的校验比特位,若该版本的版本号对应的校验比特位为第一数值,则确定该版本被禁用,校验不通过,则不允许该版本升级或启动;若该版本的版本号对应的校验比特位为第二数值,则确定该版本可用,校验通过,则允许该版本升级或启动。通过本发明实施例,在获取到某个版本后,可以对该版本进行安全校验,没有校验通过的版本无法使用,因此可以防止攻击者使用有安全漏洞的版本进行安全攻击。
另外,校验比特位信息可根据版本的安全信息(bugList)进行更新,及时将有安全漏洞的版本对应的比特位设置为禁用,从而可以确保有安全漏洞的版本无法使用,防止攻击者使用有安全漏洞的版本进行安全攻击。
另一方面,本发明实施例每个版本对应一个校验比特位,在被禁用的版本之前的其他版本,如果没有安全漏洞,还可以使用,若当前版本因为一些原因无法启动的时候,还可以将之前的其他版本作为备份版本启动。因此能够提高方案的完整性。
进一步,在实际应用中,在获取到某个版本时,需要先对该版本的版本信息进行签名认证,当签名认证通过时,才执行图1所示的实施例中步骤102至步骤104。
结合图4,下面对签名认证过程进行介绍。
系统启动代码(系统的某个版本对应的启动代码,System Code)在进行启动时,需要先进行签名安全校验,以确保系统启动代码没有被篡改。图1为系统安全启动相关的签名校验过程示意图,图1所示的示意图中采用eFuse模块存储密钥等与安全相关的内容。
签名认证的原理可以为:采用基于RSA非对称加密算法,使用私钥签名,公钥认证的签名认证机制来构建安全启动的信任链。
芯片商随机生成非对称性密钥对,并将公钥Hash值和私钥指数烧入Efuse,公钥写到Flash指定位置,设备商使用一单向散列函数:哈希(Hash)函数对系统启动代码生成信息摘要,然后使用Efuse私钥对信息摘要进行加密,即数字签名,签名后的信息摘要与系统启动代码放在一起,写到片外存储器,片外存储器通常是FLASH,例如,图4中所示为非易失性随机访问存储器(Non-Volatile Random Access Memory,NVRAM),公私钥对由芯片内部产生,烧写与校验过程不可见,且不备份。
安全启动时,系统由片内Boot启动,片内Boot ROM包含最小系统初始化和签名认证安全校验程序,先对Flash中的公钥生成Hash值,与Efuse的可信公钥根(Root Of TrustPublic Key,ROTPK)比对,所述可信公钥根是安全启动使用的EK公钥(N,e)的SHA256Hash值,以保证校验签名使用的公钥是唯一指定的。如果通过则对片外系统启动代码生成Hash摘要值,再使用公钥认证签名得到原始Hash摘要值,对这两个信息摘要值进行校验,就知道系统启动代码是否被篡改过,是否是预期授权的代码。片外系统启动代码签名认证校验通过后,切换到片外系统启动代码执行,引导后续启动程序。
因此,在系统进行安全启动时,需要先对系统启动代码进行签名认证,签名认证通过后,确认系统启动代码没有被篡改,再进行图1所示的实施例中的版本校验,确定该版本的系统启动代码是否是可用的版本,是可用的版本时,才允许启动该版本。从而能够从确保程序启动时的安全性。
以上是对本发明实施例中的版本校验方法进行的介绍,下面对本发明实施例中的版本校验装置进行介绍。
结合图5,本发明实施例中的版本校验装置包括:
版本信息获取模块501,用于获取第一版本的版本信息,该版本信息包括第一版本的版本号;
版本校验模块502,用于根据第一版本的版本号确定第一版本的版本号对应的校验比特位,若第一版本的版本号对应的校验比特位为第一数值,则确定第一版本被禁用,第一版本校验未通过,若第一版本的版本号对应的校验比特位为第二数值,则确定第一版本可用,第一版本校验通过。
在一些具体的实施中,该装置还包括:
接收模块503,用于接收禁用第二版本的指示,禁用第二版本的指示中包括第二版本的版本号;校验位更新模块504,用于根据第二版本的版本号确定第二版本的版本号对应的校验比特位,将第二版本的版本号对应的校验比特位置为第一数值。
在一些具体的实施中,所述版本号对应的校验比特位存储于电子熔断金属熔丝eFuse的第一字段中,第一字段中的每个比特位用于指示一个版本是否被禁用。
在一些具体的实施中,所述版本号对应的校验比特位存储于闪存Flash的第二字段中,第二字段中的每个比特位用于指示一个版本是否被禁用。
在一些具体的实施中,该装置还包括:签名认证模块505,用于对第一版本的版本信息进行签名认证,当签名认证通过时,则版本校验模块502执行根据第一版本的版本号确定第一版本的版本号对应的校验比特位的步骤。
在一些具体的实施中,版本信息获取模块501,具体用于接收升级指示,根据升级指示获取第一版本的版本信息;该装置还包括:升级模块506,用于当校验不通过时,不升级至第一版本;若校验通过时,升级至第一版本。
在一些具体的实施中,版本信息获取模块501,具体用于接收启动第一版本的启动指示,根据启动指示获取第一版本的版本信息;该装置还包括:安全启动模块507,用于当第一版本校验不通过时,不启动第一版本,当第一版本校验通过时,启动第一版本。
以上版本校验装置中的各模块之间的信息交互请参阅上述版本校验方法实施例(图1至图4所对应的实施例)中的描述,此处不再赘述。
可选的,上述版本校验方法中实现的功能可以通过专用集成电路(英文:application-specific integrated circuit,简称:ASIC)实现,或可编程逻辑器件(英文:programmable logic device,简称:PLD)实现。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,简称:CPLD),FPGA,通用阵列逻辑(英文:genericarray logic,简称:GAL)或其任意组合。
另外,本发明实施例还提供了一种芯片,该芯片用于执行程序代码,以执行上述版本校验方法实施例的全部或部分步骤。
该芯片包括电子熔断金属熔丝eFuse,所述eFuse中存储有版本校验比特位,每个比特位用于指示一个版本是否被禁用。
此外,本发明实施例还提供了一种终端设备,该终端设备可以以一个用户设备(例如:手机)的形式存在。该终端设备还可以包括手持设备、车载设备、可穿戴设备、计算设备,以及各种形式的用户设备。手持设备可以为包括手机、平板电脑、PDA(Personal DigitalAssistant,个人数字助理)、等任意终端设备。
下面以手机为例对本发明实施例中的终端设备进行说明。
图6示出的是与本发明实施例提供的用户设备相关的手机的部分结构的框图。参考图6,手机包括:射频(Radio Frequency,RF)电路610、存储器620、输入单元630、显示单元640、传感器650、音频电路660、无线保真(wireless fidelity,WiFi)模块670、处理器680、以及电源690等部件。其中,射频电路610、WiFi模块670为收发器。本领域技术人员可以理解,图6中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图6对手机的各个构成部件进行具体的介绍:
存储器620可用于存储软件程序以及模块,处理器680通过运行存储在存储器620的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
具体的,存储器620存储的应用程序为执行时包括上述图1到图4所对应的方法中的部分或者全部步骤。存储器620中存储所述版本号信息、版本对应的程序启动代码等信息。
输入单元630可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元630可包括触控面板631以及其他输入设备632。触控面板631,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板631上或在触控面板631附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板631可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器680,并能接收处理器680发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板631。除了触控面板631,输入单元630还可以包括其他输入设备632。具体地,其他输入设备632可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元640可用于显示由用户输入的信息或提供给用户的信息。显示单元640可包括显示面板641,可选的,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板641。进一步的,触控面板631可覆盖显示面板641,当触控面板631检测到在其上或附近的触摸操作后,传送给处理器680以确定触摸事件的类型,随后处理器680根据触摸事件的类型在显示面板641上提供相应的视觉输出。虽然在图6中,触控面板631与显示面板641是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板631与显示面板641集成而实现手机的输入和输出功能。
处理器680是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器620内的软件程序和/或模块,以及调用存储在存储器620内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器680可包括一个或多个处理单元;优选的,处理器680可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器680中。
具体的,本发明实施例中的处理器680用于执行存储器620中的应用程序,以执行图1到图4中的实施例中的处理器所执行的部分或者全部步骤。
手机还可包括至少一种传感器650、电源690,尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
另外,本发明实施例还提供了一种计算机存储介质,该介质存储有应用程序,该程序执行时包括上述版本校验方法中的部分或者全部步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (15)

1.一种版本校验方法,其特征在于,包括:
获取第一版本的版本信息,所述版本信息包括所述第一版本的版本号;
根据所述第一版本的版本号确定所述第一版本的版本号对应的校验比特位;
若所述第一版本的版本号对应的校验比特位为第一数值,则确定所述第一版本被禁用,所述第一版本校验未通过;
若所述第一版本的版本号对应的校验比特位为第二数值,则确定所述第一版本可用,所述第一版本校验通过。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收禁用第二版本的指示,所述禁用第二版本的指示中包括所述第二版本的版本号;
根据所述第二版本的版本号确定所述第二版本的版本号对应的校验比特位;
将所述第二版本的版本号对应的校验比特位置为所述第一数值。
3.根据权利要求1所述的方法,其特征在于,
所述第一版本的版本号对应的校验比特位存储于电子熔断金属熔丝eFuse的第一字段中,
所述第一字段中的每个比特位用于指示所述每个比特位对应的版本是否被禁用。
4.根据权利要求1所述的方法,其特征在于,
所述第一版本的版本号对应的校验比特位存储于闪存Flash的第二字段中,所述第二字段中的每个比特位用于指示所述每个比特位对应的版本是否被禁用。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
对所述第一版本的版本信息进行签名认证;
当签名认证通过时,则执行根据所述第一版本的版本号确定所述第一版本的版本号对应的校验比特位的步骤。
6.根据权利要求1至4中任一项所述的方法,其特征在于,所述获取第一版本的版本信息包括:
接收升级指示,根据所述升级指示获取所述第一版本的版本信息;
所述方法还包括:
若校验不通过,则不升级至所述第一版本;
若校验通过,则升级至所述第一版本。
7.根据权利要求1至4中任一项所述的方法,其特征在于,所述获取第一版本的版本信息包括:
接收启动所述第一版本的启动指示,根据所述启动指示获取所述第一版本的版本信息;
所述方法还包括:
当所述第一版本校验不通过时,不启动所述第一版本;
当所述第一版本校验通过时,启动所述第一版本。
8.一种版本校验装置,其特征在于,包括:
版本信息获取模块,用于获取第一版本的版本信息,所述版本信息包括所述第一版本的版本号;
版本校验模块,用于根据所述第一版本的版本号确定所述第一版本的版本号对应的校验比特位,若所述第一版本的版本号对应的校验比特位为第一数值,则确定所述第一版本被禁用,所述第一版本校验未通过,若所述第一版本的版本号对应的校验比特位为第二数值,则确定所述第一版本可用,所述第一版本校验通过。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收禁用第二版本的指示,所述禁用第二版本的指示中包括所述第二版本的版本号;
校验位更新模块,用于根据所述第二版本的版本号确定所述第二版本的版本号对应的校验比特位,将所述第二版本的版本号对应的校验比特位置为所述第一数值。
10.根据权利要求8所述的装置,其特征在于,
所述第一版本的版本号对应的校验比特位存储于电子熔断金属熔丝eFuse的第一字段中,所述第一字段中的每个比特位用于指示所述每个比特位对应的版本是否被禁用。
11.根据权利要求8所述的装置,其特征在于,
所述第一版本的版本号对应的校验比特位存储于闪存Flash的第二字段中,所述第二字段中的每个比特位用于指示所述每个比特位对应的版本是否被禁用。
12.根据权利要求8至11中任一项所述的装置,其特征在于,所述装置还包括:
签名认证模块,用于对所述第一版本的版本信息进行签名认证,当签名认证通过时,则所述版本校验模块执行所述根据所述第一版本的版本号确定所述第一版本的版本号对应的校验比特位的步骤。
13.根据权利要求8至11中任一项所述的装置,其特征在于,
所述版本信息获取模块,具体用于接收升级指示,根据所述升级指示获取所述第一版本的版本信息;
所述装置还包括:
升级模块,用于当校验不通过时,不升级至所述第一版本;若校验通过时,升级至所述第一版本。
14.根据权利要求8至11中任一项所述的装置,其特征在于,
所述版本信息获取模块,具体用于接收启动所述第一版本的启动指示,根据所述启动指示获取所述第一版本的版本信息;
所述装置还包括:
安全启动模块,用于当所述第一版本校验不通过时,不启动所述第一版本,当所述第一版本校验通过时,启动所述第一版本。
15.一种终端设备,其特征在于,所述终端设备包括:相互连接的收发器、处理器及存储器;
所述存储器用于存储程序代码,所述处理器调用所述存储器中的所述程序代码,以执行以下操作:
获取第一版本的版本信息,所述版本信息包括所述第一版本的版本号;根据所述第一版本的版本号确定所述第一版本的版本号对应的校验比特位;若所述第一版本的版本号对应的校验比特位为第一数值,则确定所述第一版本被禁用,所述第一版本校验未通过;若所述第一版本的版本号对应的校验比特位为第二数值,则确定所述第一版本可用,所述第一版本校验通过。
CN201611005776.8A 2016-11-15 2016-11-15 一种版本校验方法、装置及终端设备 Active CN106650460B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201611005776.8A CN106650460B (zh) 2016-11-15 2016-11-15 一种版本校验方法、装置及终端设备
PCT/CN2017/108532 WO2018090818A1 (zh) 2016-11-15 2017-10-31 一种版本校验方法、装置及终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611005776.8A CN106650460B (zh) 2016-11-15 2016-11-15 一种版本校验方法、装置及终端设备

Publications (2)

Publication Number Publication Date
CN106650460A CN106650460A (zh) 2017-05-10
CN106650460B true CN106650460B (zh) 2019-07-19

Family

ID=58806825

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611005776.8A Active CN106650460B (zh) 2016-11-15 2016-11-15 一种版本校验方法、装置及终端设备

Country Status (2)

Country Link
CN (1) CN106650460B (zh)
WO (1) WO2018090818A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106650460B (zh) * 2016-11-15 2019-07-19 上海华为技术有限公司 一种版本校验方法、装置及终端设备
CN109508534A (zh) * 2017-09-14 2019-03-22 厦门雅迅网络股份有限公司 防止通过软件降级进行攻击的方法、嵌入式系统
CN108008283A (zh) * 2017-11-23 2018-05-08 莱克电气股份有限公司 一种版本号检测系统及方法
CN109241748A (zh) * 2018-11-28 2019-01-18 郑州云海信息技术有限公司 一种基于软件版本号识别软件漏洞的方法
CN109947446A (zh) * 2019-02-22 2019-06-28 南京电研电力自动化股份有限公司 一种通用可配置智能升级菜单的保护装置液晶显示方法
CN111736859B (zh) * 2019-03-25 2023-08-01 成都鼎桥通信技术有限公司 操作系统的版本更新方法、服务器以及终端
CN110442387B (zh) * 2019-07-02 2022-05-17 亿咖通(湖北)技术有限公司 一种车载系统的参数自适应方法、装置及汽车
CN112527341B (zh) * 2019-09-19 2024-03-01 合肥杰发科技有限公司 一种车机系统升级方法、车机系统及计算机存储介质
CN110990249B (zh) * 2019-10-11 2023-11-14 平安科技(深圳)有限公司 代码扫描结果处理方法、装置、计算机设备及存储介质
CN112181482B (zh) * 2020-09-29 2023-03-21 平安科技(深圳)有限公司 版本验证方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1918839A1 (de) * 2006-11-03 2008-05-07 Siemens Aktiengesellschaft Modifizieren eines Softwarestands einer Steuergerätesoftware für ein Steuergerät und Erkennen einer solchen Modifikation
CA2548823C (en) * 2002-07-05 2009-01-20 Cyberscan Technology, Inc. Secure game download
CN101356536A (zh) * 2005-11-18 2009-01-28 高通股份有限公司 移动安全系统及方法
CN102799815A (zh) * 2012-06-29 2012-11-28 安科智慧城市技术(中国)有限公司 一种安全加载程序库的方法和装置
CN104956374A (zh) * 2013-03-01 2015-09-30 意法爱立信有限公司 用于软件防回滚恢复的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100100966A1 (en) * 2008-10-21 2010-04-22 Memory Experts International Inc. Method and system for blocking installation of some processes
CN103279700A (zh) * 2013-06-08 2013-09-04 北京时代奥视数码技术有限公司 液晶监视器的固件版本验证方法和液晶监视器
CN103544413B (zh) * 2013-10-31 2017-02-15 宇龙计算机通信科技(深圳)有限公司 一种在智能终端中校验软件版权的方法及装置
CN106650460B (zh) * 2016-11-15 2019-07-19 上海华为技术有限公司 一种版本校验方法、装置及终端设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2548823C (en) * 2002-07-05 2009-01-20 Cyberscan Technology, Inc. Secure game download
CN101356536A (zh) * 2005-11-18 2009-01-28 高通股份有限公司 移动安全系统及方法
EP1918839A1 (de) * 2006-11-03 2008-05-07 Siemens Aktiengesellschaft Modifizieren eines Softwarestands einer Steuergerätesoftware für ein Steuergerät und Erkennen einer solchen Modifikation
CN102799815A (zh) * 2012-06-29 2012-11-28 安科智慧城市技术(中国)有限公司 一种安全加载程序库的方法和装置
CN104956374A (zh) * 2013-03-01 2015-09-30 意法爱立信有限公司 用于软件防回滚恢复的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《可回滚的软件升级技术研究》;李胜利,孙学军,崔金红;《计算机工程与应用》;20041001;113-115

Also Published As

Publication number Publication date
CN106650460A (zh) 2017-05-10
WO2018090818A1 (zh) 2018-05-24

Similar Documents

Publication Publication Date Title
CN106650460B (zh) 一种版本校验方法、装置及终端设备
US10735427B2 (en) Method and apparatus for managing program of electronic device
CN101578609B (zh) 安全启动计算设备
US9589139B2 (en) Method and device for altering a unified extensible firmware interface (UEFI) secure boot process in a computing device
KR101229148B1 (ko) 소프트웨어 신뢰성 검증 방법, 장치 및 컴퓨터 판독가능 매체
US10846099B2 (en) Selecting a boot loader on an electronic device
CN105975864A (zh) 操作系统的启动方法、装置及终端
US10200201B2 (en) Method for application installation, electronic device, and certificate system
CN106921799A (zh) 一种移动终端安全防护方法以及移动终端
US10242167B2 (en) Method for user authentication and electronic device implementing the same
CN109614798B (zh) 安全启动方法、装置及终端设备
WO2014134389A1 (en) Continuation of trust for platform boot firmware
WO2017211205A1 (zh) 一种白名单更新方法和装置
KR102469569B1 (ko) 전자 장치 및 그의 동작 방법
CN112865956B (zh) 证书更新方法、装置、终端设备和服务器
EP3817322A1 (en) Method for upgrading service application range of electronic identity card, and terminal device
US8056137B2 (en) Communication terminal device and computer device
JP2005293058A (ja) 情報処理端末およびその情報安全保護方法
CN109753793A (zh) 一种热补丁方法及热补丁装置
JP2021512404A (ja) 認証ウィンドウ表示方法及び装置
CN106295363B (zh) 开机校验方法及装置
US20170295174A1 (en) Electronic device, server, and method for authenticating biometric information
CN116679967B (zh) 一种基本输入输出系统固件升级方法和装置
US8621191B2 (en) Methods, apparatuses, and computer program products for providing a secure predefined boot sequence
CN106982418B (zh) 一种移动终端防丢失的处理方法及移动终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant