CN116628708B - 启动芯片的方法、电子设备及可读存储介质 - Google Patents
启动芯片的方法、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN116628708B CN116628708B CN202310911668.0A CN202310911668A CN116628708B CN 116628708 B CN116628708 B CN 116628708B CN 202310911668 A CN202310911668 A CN 202310911668A CN 116628708 B CN116628708 B CN 116628708B
- Authority
- CN
- China
- Prior art keywords
- chip
- firmware
- check code
- tampered
- signature
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 230000008569 process Effects 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 abstract description 16
- 238000012795 verification Methods 0.000 description 16
- 238000007726 management method Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 244000141359 Malus pumila Species 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 235000021016 apples Nutrition 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种启动芯片的方法、电子设备及可读存储介质,涉及终端领域。该方法应用于电子设备,该方法包括:在第一芯片上电启动后,第一芯片从存储单元中读取第一固件签名和第一固件;通过公钥将第一固件签名解密得到第一校验码,并对第一固件处理得到第二校验码;基于第一校验码和第二校验码确定第一固件是否被篡改;如果第一固件未被篡改,第一芯片将第一固件写入第二芯片,并启动第二芯片。本申请提供的方案能够校验固件是否被篡改,避免芯片被写入被篡改的固件后被启动的安全隐患。
Description
技术领域
本申请涉及终端领域,尤其涉及一种启动芯片的方法、电子设备及可读存储介质。
背景技术
当前,有些电子设备会采用多核的硬件结构,例如真实无线立体声(truewireless stereo,TWS)耳机包括多个芯片,其中一部分芯片,例如主微控制单元(microcontroller unit,MCU)具备安全校验的能力,另一部分芯片,例如蓝牙芯片则不具备安全校验的能力。当主MCU上电启动后,将蓝牙固件写入蓝牙芯片并启动蓝牙芯片的过程中,由于蓝牙芯片不具备安全校验的能力,不能发现蓝牙固件有没有被篡改,存在安全隐患。
发明内容
本申请提供一种启动芯片的方法、电子设备及可读存储介质。本申请提供的方案能够校验固件是否被篡改,避免芯片被写入被篡改的固件后被启动的安全隐患。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供了一种启动芯片的方法,应用于电子设备,电子设备包括第一芯片、第二芯片和存储单元,该存储单元存储第一固件和第一固件签名,该方法包括:在第一芯片上电启动后,第一芯片从存储单元中读取第一固件签名和第一固件,第一固件签名基于私钥和第一固件确定;第一芯片通过公钥将第一固件签名解密得到第一校验码,并对第一固件处理得到第二校验码;第一芯片基于第一校验码和第二校验码确定第一固件是否被篡改;如果确定第一固件未被篡改,第一芯片将第一固件写入第二芯片,并启动第二芯片。
在上述方案中,第一芯片相对于第二芯片而言具备存储公钥、访问存储单元以及处理固件的能力,因此第一芯片能够从存储单元中读取第一固件签名和第一固件,并且基于第一固件签名和第一固件得到第一校验码和第二校验码,从而根据这两个校验码确定第一固件有没有被篡改,即确定第一固件是否可信,在确定第一固件没有被篡改的情况下,将第一固件写入第二芯片并启动第二芯片,避免第二芯片被写入已篡改的固件后所带来的安全隐患。
一种可能的实施方式中, 在第一校验码和第二校验码一致的情况下,第一芯片确定第一固件没有被篡改。
一种可能的实施方式中,在第一校验码和第二校验码不一致的情况下,第一芯片确定第一固件被篡改。
一种可能的实施方式中,当确定第一固件被篡改,该方法还包括:第一芯片禁止启动第二芯片。
基于上述方案,当固件的安全校验不通过,即第一校验码和第二校验码不匹配时,可以通过禁止启动第二芯片避免安全隐患。
一种可能的实施方式中,该电子设备还包括第三芯片,第三芯片的启动顺序在第二芯片之后,该存储单元还存储第二固件和第二固件签名,该方法还包括:在启动第二芯片后,第一芯片从存储单元中读取第二固件签名和第二固件,第二固件签名基于私钥和第二固件确定;第一芯片通过公钥将第二固件签名解密得到第三校验码,并对第二固件处理得到第四校验码;基于第三校验码和第四校验码确定第二固件是否被篡改;如果第二固件未被篡改,第一芯片将第二固件写入第三芯片,并启动第三芯片。
基于上述方案,当电子设备包括多个按顺序启动的芯片时,在校验到第一个固件没有被篡改的情况下,启动相应的芯片,然后再校验后启动的其他芯片上即将被写入的固件,也就是说当先启动的芯片对应的固件校验不通过时,后续无需再进一步校验别的固件,避免安全隐患。
一种可能的实施方式中,第二芯片和第三芯片不具备以下至少一项能力:存储公钥的能力,访问存储单元的能力,处理第一固件的能力。
一种可能的实施方式中,该存储单元为只读存储器(read-only memory,ROM)。
一种可能的实施方式中,该第一芯片为主MCU。
一种可能的实施方式中,该第二芯片为蓝牙芯片、无线保真(wireless fidelity,WiFi)芯片或者调制解调器(modem)芯片。
第二方面,提供了一种电子设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时执行第一方面或第一方面中任一种实现方式中进行处理的步骤。
第三方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,使处理器执行第一方面或第一方面中任一种方法中进行处理的步骤。
第四方面,提供了一种计算机程序产品,计算机程序产品包括:计算机程序代码,当计算机程序代码被电子设备运行时,使得该电子设备执行第一方面或第一方面中任一种方法中进行处理的步骤。
其中,第二方面至第四方面的有益效果可以参照第一方面,在此不做赘述。
附图说明
图1是本申请实施例提供的电子设备100的硬件结构示意图;
图2是本申请实施例提供的校验固件的使用场景的示意图;
图3是本申请实施例提供的启动芯片的方法300的流程示意图;
图4是本申请实施例提供的启动芯片的方法400的流程示意图;
图5是本申请实施例提供的一种装置500的结构框图;
图6是本申请实施例提供的一种电子设备600的结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
本申请实施例提供的启动芯片的方法可以应用于电子设备,电子设备包括不限于手机(mobile phone)、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobileinternet device,MID)、可穿戴设备,虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、智慧家庭(smarthome)等,本申请实施例对电子设备的具体类型不作任何限制。
下面介绍实现上述方法的电子设备100的硬件结构示意图,示例性的,图1示出了电子设备100的一种硬件结构示意图。该电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142以及收发器150。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
作为举例,当电子设备100为手机或平板电脑时,可以包括图示中的全部部件,也可以仅包括图示中的部分部件。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入,USB接口除了充电外,还可以用于打开USB调试开关,或者说用于打开USB调试模式。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121等供电。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
收发器150用于向电子设备100之外的其他设备发送数据或信令等,或者用于接收来自电子设备100之外的其他设备的数据或信令等。
外部存储器接口120可以用于连接外部存储卡,例如微型(Micro)存储卡(securedigital memory card,SD),实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,至少一个功能所需的应用程序等。存储数据区可存储电子设备100使用过程中所创建的数据等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
在实际的应用场景中,电子设备100的操作***可以包括但不限于塞班(Symbian)、安卓(Andriod)、窗口(Windows)、苹果(MacOS、iOS)、黑莓(Blackberry)、鸿蒙(HarmonyOS)等操作***。本申请不对电子设备的操作***作任何限定。
图2是本申请实施例提供的校验固件的使用场景的示意图。
如图2所示,电子设备包括主芯片、多个外设芯片(或***芯片)以及存储器。其中,主芯片具备校验固件的能力,即主芯片具备以下能力:存储公钥的能力、访问存储单元的能力、处理固件的能力,处理固件的能力可以理解为将固件通过一定算法处理为校验码的能力。主芯片内设有存储单元,该存储单元可以存储公钥,主芯片例如主MCU。外设芯片例如图2所示的芯片#1、芯片#2和芯片#3,外设芯片不具备校验固件的能力,即不具备以下至少一项能力:存储公钥的能力、访问存储单元的能力、处理固件的能力。芯片#1例如蓝牙芯片,芯片#2例如WiFi芯片,芯片#3例如modem芯片。存储器例如ROM,存储器中存储主芯片和外设芯片对应的固件以及固件签名,芯片对应的固件可以理解为将会被写入该芯片的固件,例如芯片#1对应的固件#1,即固件#1将来会被写入芯片#1。固件签名基于固件和私钥确定,例如将固件#1基于一定算法处理后得到处理结果,将处理结果通过私钥加密得到固件签名#1。
图3是本申请实施例提供的启动芯片的方法300的流程示意图。方法300应用于电子设备,电子设备包括第一芯片、第二芯片和存储单元,该存储单元存储第一固件和第一固件签名。方法300包括如下步骤:
S301,在第一芯片上电启动后,第一芯片从存储单元中读取第一固件签名和第一固件,第一固件签名基于私钥和第一固件确定。
示例性的,第一芯片例如主MCU,具备校验固件的能力,即具备以下能力:存储公钥的能力,访问存储单元的能力和处理第一固件的能力。存储单元例如ROM,第一固件如果能够校验通过,即如果第一固件被校验发现没有被篡改,则会被第一芯片写入第二芯片,第二芯片例如没有校验固件能力的芯片。
具体的,若第二芯片为蓝牙芯片,则第一固件为蓝牙固件,若第二芯片为WiFi芯片,则第一固件为WiFi固件,若第二芯片为modem(调制解调器)芯片,则第一固件为modem固件。
可以理解,第二芯片不限于上述列举的芯片,任何不具备校验固件能力的芯片都可以是第二芯片,不具备校验固件能力即不包括以下至少一项能力:存储公钥的能力,访问存储单元的能力和处理第一固件的能力。
可选地,在S301之前,将第一固件通过一定算法处理后得到处理结果,使用私钥将该处理结果加密得到第一固件签名,将第一固件签名存到ROM。
S302,第一芯片通过公钥将第一固件签名解密得到第一校验码,并对第一固件处理得到第二校验码。
示例性的,非对称加密方式可以通过加密算法得到密钥对,密钥对包括公钥(public key)与私钥(private key),私钥存储在服务器,需要一定权限才可以查看,公钥存在第一芯片本地的存储空间。在执行S302时,第一芯片可以从本地存储空间获取公钥,通过该公钥解密第一固件签名得到第一校验码,并可以通过一定算法将第一固件处理得到第二校验码。
S303,第一芯片基于第一校验码和第二校验码确定第一固件是否被篡改。
示例性的,在第一校验码和第二校验码一致的情况下,第一芯片确定第一固件没有被篡改。
示例性的,在第一校验码和第二校验码不一致的情况下,第一芯片确定第一固件被篡改。
可以理解,第一校验码和第二校验码一致即第一校验码和第二校验码完全相同。
S304,如果确定第一固件未被篡改,第一芯片将第一固件写入第二芯片,并启动第二芯片。
示例性的,在确定第一固件未被篡改后,第一芯片将第一固件写入第二芯片,第二芯片运行第一固件,即启动第二芯片。
一种可能的实施方式中,如果在S303中确定第一固件被篡改,禁止第一芯片启动第二芯片,或者第一芯片终止整个***的启动。
禁止第一芯片启动第二芯片可以理解为:禁止第一芯片将第一固件写入第二芯片;***包括硬件结构和软件结构,硬件结构例如芯片,软件结构例如固件和固件签名等。
一种可能的实施方式中,该电子设备还包括第三芯片,第三芯片的启动顺序在第二芯片之后,该存储单元还存储第二固件和第二固件签名,方法300还包括:
在启动第二芯片后,第一芯片从存储单元中读取第二固件签名和第二固件,第二固件签名基于私钥和第二固件确定;第一芯片通过公钥将第二固件签名解密得到第三校验码,并对第二固件处理得到第四校验码;基于第三校验码和第四校验码确定第二固件是否被篡改;如果第二固件未被篡改,第一芯片将第二固件写入第三芯片,并启动第三芯片。
示例性的,第三芯片不具备校验固件的能力,第三芯片例如蓝牙芯片、WiFi芯片或者modem(调制解调器)芯片,第三芯片和第二芯片不同,且第二芯片的启动顺序在第三芯片之前。在第二芯片被启动后,第一芯片校验第二固件有没有被篡改,如果确定第二固件没有被篡改,则会被第一芯片写入第三芯片,如果确定第二固件被篡改,则禁止第一芯片启动第三芯片。若第一固件校验不通过,即如果第二芯片禁止被启动,则第一芯片可以无需进一步校验第二固件。
第一芯片校验第二固件的具体方式可参考上文第一芯片校验第一固件的相关内容,第一芯片确定第二固件是否被篡改后,执行的操作也可参考第一芯片确定第一固件是否被篡改后执行的操作,此处不再赘述。
基于方法300,第一芯片相对于第二/三芯片而言具备校验固件的能力,因此第一芯片能够从存储单元中读取固件签名和固件,并且基于固件签名和固件处理得到校验码,从而根据处理得到的校验码确定固件有没有被篡改,即确定固件是否可信,在确定固件没有被篡改的情况下,将固件写入相应的芯片并启动该芯片,避免芯片被写入已篡改的固件后所带来的安全隐患。
图4是本申请实施例提供的启动芯片的方法400的流程示意图。
可以理解,方法400是方法300的具体应用,在方法400中,将具备校验固件能力的芯片示例为主MCU,将不具备校验固件能力的芯片示例为蓝牙芯片、WiFi芯片和modem芯片,将存储单元示例为ROM。芯片的启动顺序为蓝牙芯片、WiFi芯片、modem芯片,即启动modem芯片后,包括芯片的整个***启动成功。
方法400包括如下步骤:
S401,主MCU上电启动。
S402,主MCU从ROM读取蓝牙固件以及蓝牙固件签名。
S403,主MCU根据蓝牙固件以及蓝牙固件签名进行蓝牙固件的检验。
蓝牙固件的校验过程可参考S302和S303中的相关描述,不再赘述。
S404,主MCU将蓝牙固件写入蓝牙芯片,并启动蓝牙芯片。
可以理解,S404为蓝牙固件校验通过时执行的操作,若蓝牙固件校验不通过,则禁止主MCU将蓝牙固件写入蓝牙芯片,或者禁止主MCU启动蓝牙芯片。
S405,主MCU从ROM读取WiFi固件以及WiFi固件签名。
S406,主MCU根据WiFi固件以及WiFi固件签名进行WiFi固件的检验。
WiFi固件的校验过程可参考S302和S303中的相关描述,不再赘述。
S407,主MCU将WiFi固件写入WiFi芯片,并启动WiFi芯片。
可以理解,S407为WiFi固件校验通过时执行的操作,若WiFi固件校验不通过,则禁止主MCU将WiFi固件写入WiFi芯片,或者禁止主MCU启动WiFi芯片。
S408,主MCU从ROM读取modem固件以及modem固件签名。
S409,主MCU根据modem固件以及modem固件签名进行modem固件的检验。
modem固件的校验过程可参考S302和S303中的相关描述,不再赘述。
S410,主MCU将modem固件写入modem芯片,并启动modem芯片。
可以理解,S410为modem固件校验通过时执行的操作,若modem固件校验不通过,则禁止主MCU将modem固件写入modem芯片,或者禁止主MCU启动modem芯片。
还可以理解,本申请实施例中提及的固件即固件二进制文件。
通过上述检验过程,可以确保***中各个芯片的固件是可信的、未被篡改的,从而保证了整个***在运行过程中的安全性。
应理解,上述举例说明是为了帮助本领域技术人员理解本申请实施例,而非要将本申请实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给出的上述举例说明,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。
图5是本申请实施例提供的一种装置500的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
装置500例如电子设备,装置500包括第一芯片、第二芯片和存储单元,该存储单元存储第一固件和第一固件签名,参照图5,第一芯片包括:读取单元501、处理单元502和确定单元503,可选地,第一芯片还包括写入单元。
其中,在第一芯片上电启动后,读取单元501用于从存储单元中读取第一固件签名和第一固件,第一固件签名基于私钥和第一固件确定;处理单元502用于通过公钥将第一固件签名解密得到第一校验码,并对第一固件处理得到第二校验码;确定单元503用于基于第一校验码和第二校验码确定第一固件是否被篡改;如果确定第一固件未被篡改,写入单元用于将第一固件写入第二芯片,并启动第二芯片。
一种可能的实施方式中,在第一校验码和第二校验码一致的情况下,确定单元503具体用于确定第一固件没有被篡改。
一种可能的实施方式中,在第一校验码和第二校验码不一致的情况下,确定单元503具体用于确定第一固件被篡改。
一种可能的实施方式中,当确定单元503确定第一固件被篡改,第一芯片禁止启动第二芯片。
一种可能的实施方式中,该电子设备还包括第三芯片,第三芯片的启动顺序在第二芯片之后,该存储单元还存储第二固件和第二固件签名,在启动第二芯片后,读取单元501还用于从存储单元中读取第二固件签名和第二固件,第二固件签名基于私钥和第二固件确定;处理单元502还用于通过公钥将第二固件签名解密得到第三校验码,并对第二固件处理得到第四校验码;确定单元503还用于基于第三校验码和第四校验码确定第二固件是否被篡改;如果第二固件未被篡改,写入单元还用于将第二固件写入第三芯片,并启动第三芯片。
一种可能的实施方式中,第二芯片和第三芯片不具备以下至少一项能力:存储公钥的能力,访问存储单元的能力,处理第一固件的能力。
一种可能的实施方式中,该存储单元为只读存储器ROM。
一种可能的实施方式中,该第一芯片为主MCU。
一种可能的实施方式中,该第二芯片为蓝牙芯片、WiFi芯片或者modem芯片。
需要说明的是,上述模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能、执行的步骤、术语的解释、关联及带来的技术效果,可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。例如,“模块”可以是实现上述功能的软件程序、硬件电路或二者结合。所述硬件电路可能包括应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。
因此,在本申请的实施例中描述的各示例的模块/单元,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
应理解,本申请实施例中的硬件***、装置以及电子设备可以执行前述本申请实施例的启动芯片的方法,即以下各种产品的具体工作过程,可以参考前述方法实施例中的对应过程。
图6是本申请实施例提供的一种电子设备600的结构示意图。电子设备600包括处理器601,例如电子设备600包括第一芯片和第二芯片,电子设备600可以实现方法300或400所示的技术方案。
可选的,该电子设备600还包括收发器602,收发器602用于接受处理器601的控制,用于支持电子设备执行前述所示的技术方案。
可选的,电子设备600还可以包括:存储介质603。
需要说明的是,芯片可以使用下述电路或者器件来实现:一个或多个现场可编程门阵列(field programmable gate array,FPGA)、可编程逻辑器件(programmable logicdevice,PLD)、控制器、状态机、门逻辑、分立硬件部件、任何其他适合的电路、或者能够执行本申请通篇所描述的各种功能的电路的任意组合。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令;当所述计算机可读存储介质在电子设备上运行时,使得该电子设备执行如前述所示的方法。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本申请实施例还提供了一种包含计算机指令的计算机程序产品,当其在电子设备上运行时,使得电子设备可以执行前述所示的技术方案。
上述本申请实施例提供的装置、电子设备、计算机存储介质、计算机程序产品均用于执行上文所提供的方法300或400,因此,其所能达到的有益效果可参考上文所提供的方法300或400对应的有益效果,在此不再赘述。
应理解,上述只是为了帮助本领域技术人员更好地理解本申请实施例,而非要限制本申请实施例的范围。本领域技术人员根据所给出的上述示例,显然可以进行各种等价的修改或变化,例如,上述方法的各个实施例中某些步骤可以是不必须的,或者可以新加入某些步骤等。或者上述任意两种或者任意多种实施例的组合。这样的修改、变化或者组合后的方案也落入本申请实施例的范围内。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。
还应理解,在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
还应理解,上文对本申请实施例的描述着重于强调各个实施例之间的不同之处,未提到的相同或相似之处可以互相参考,为了简洁,这里不再赘述。
还应理解,本申请实施例中,“预配置”、“预设定”、“预定义”可以通过在电子设备中预先保存相应的代码、表格或其他可用于指示相关信息的方式来实现,本申请对于其具体的实现方式不做限定。
还应理解,本申请实施例中的方式、情况、类别以及实施例的划分仅是为了描述的方便,不应构成特别的限定,各种方式、类别、情况以及实施例中的特征在不矛盾的情况下可以相结合。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种启动芯片的方法,其特征在于,应用于电子设备,所述电子设备包括第一芯片、第二芯片、第三芯片和存储单元,所述存储单元存储第一固件和第一固件签名以及第二固件和第二固件签名,所述第三芯片的启动顺序在所述第二芯片之后,所述方法包括:
在所述第一芯片上电启动后,所述第一芯片从所述存储单元中读取所述第一固件签名和所述第一固件,所述第一固件签名基于私钥和所述第一固件确定;
所述第一芯片通过公钥将所述第一固件签名解密得到第一校验码,并对所述第一固件处理得到第二校验码;
所述第一芯片基于所述第一校验码和所述第二校验码确定所述第一固件是否被篡改;
如果确定所述第一固件未被篡改,所述第一芯片将所述第一固件写入所述第二芯片,并启动所述第二芯片;
在启动所述第二芯片后,所述第一芯片从所述存储单元中读取所述第二固件签名和所述第二固件,所述第二固件签名基于所述私钥和所述第二固件确定;
所述第一芯片通过所述公钥将所述第二固件签名解密得到第三校验码,并对所述第二固件处理得到第四校验码;
所述第一芯片基于所述第三校验码和所述第四校验码确定所述第二固件是否被篡改;
如果所述第二固件未被篡改,所述第一芯片将所述第二固件写入所述第三芯片,并启动所述第三芯片。
2.根据权利要求1所述的方法,其特征在于,所述确定所述第一固件是否被篡改,包括:
在所述第一校验码和所述第二校验码一致的情况下,所述第一芯片确定所述第一固件没有被篡改。
3.根据权利要求1所述的方法,其特征在于,所述确定所述第一固件是否被篡改,包括:
在所述第一校验码和所述第二校验码不一致的情况下,所述第一芯片确定所述第一固件被篡改。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述第一芯片禁止启动所述第二芯片。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述第二芯片不具备以下至少一项能力:
存储所述公钥的能力;
访问所述存储单元的能力;
处理所述第一固件的能力。
6.根据权利要求1至4中任一项所述的方法,其特征在于,所述存储单元为只读存储器。
7.根据权利要求1至4中任一项所述的方法,其特征在于,所述第一芯片为主微控制单元。
8.根据权利要求1至4中任一项所述的方法,其特征在于,所述第二芯片为蓝牙芯片、无线保真WiFi芯片或者调制解调器芯片。
9.一种电子设备,其特征在于,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至8任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,使所述处理器执行如权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310911668.0A CN116628708B (zh) | 2023-07-25 | 2023-07-25 | 启动芯片的方法、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310911668.0A CN116628708B (zh) | 2023-07-25 | 2023-07-25 | 启动芯片的方法、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116628708A CN116628708A (zh) | 2023-08-22 |
CN116628708B true CN116628708B (zh) | 2024-05-31 |
Family
ID=87597631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310911668.0A Active CN116628708B (zh) | 2023-07-25 | 2023-07-25 | 启动芯片的方法、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116628708B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117215621A (zh) * | 2023-11-02 | 2023-12-12 | 北京紫光青藤微***有限公司 | 用于更新电子设备固件的方法、装置和*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144552A (zh) * | 2018-09-10 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种引导固件刷新方法和装置 |
CN109542518A (zh) * | 2018-10-09 | 2019-03-29 | 华为技术有限公司 | 芯片和启动芯片的方法 |
CN111464934A (zh) * | 2019-01-21 | 2020-07-28 | 华为技术有限公司 | 数据传输***、方法及其装置 |
CN115168866A (zh) * | 2022-06-29 | 2022-10-11 | 海光信息技术股份有限公司 | 处理器安全启动方法以及处理器 |
-
2023
- 2023-07-25 CN CN202310911668.0A patent/CN116628708B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144552A (zh) * | 2018-09-10 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种引导固件刷新方法和装置 |
CN109542518A (zh) * | 2018-10-09 | 2019-03-29 | 华为技术有限公司 | 芯片和启动芯片的方法 |
CN111464934A (zh) * | 2019-01-21 | 2020-07-28 | 华为技术有限公司 | 数据传输***、方法及其装置 |
CN115168866A (zh) * | 2022-06-29 | 2022-10-11 | 海光信息技术股份有限公司 | 处理器安全启动方法以及处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN116628708A (zh) | 2023-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11809335B2 (en) | Apparatuses and methods for securing an access protection scheme | |
US11954204B2 (en) | Artificial intelligence AI processing method and AI processing apparatus | |
US11048826B2 (en) | FPGA device and cloud system based on FPGA device | |
CN116628708B (zh) | 启动芯片的方法、电子设备及可读存储介质 | |
CN115408707B (zh) | 一种数据传输方法、装置、***及电子设备和存储介质 | |
CN114817105B (zh) | 设备枚举的方法、装置、计算机设备以及存储介质 | |
US10229079B2 (en) | System on chip (SoC), mobile electronic device including the same, and method of operating the SoC | |
CN112825041A (zh) | 一种内存隔离的装置、内存隔离方法和相关设备 | |
CN115292764B (zh) | 一种总线的安全防护方法、装置及介质 | |
KR20200099290A (ko) | 전자 장치 및 그 제어 방법 | |
CN112165706B (zh) | 设备连接管理方法、装置及蓝牙设备 | |
US20210165599A1 (en) | Storage device including memory controller, and non-volatile memory system including the same and operating method thereof | |
CN112445705B (zh) | 基于可信校验的软件运行***、方法、装置和计算机设备 | |
CN109976778B (zh) | 车辆电子产品的软件更新方法与***、上位机及存储介质 | |
CN112637160A (zh) | 登陆验证方法、装置、设备和存储介质 | |
KR20160015636A (ko) | Mac 주소 인증을 이용한 무선 통신 장치 및 방법 | |
CN114547630B (zh) | 一种基于车机多操作***的验证方法及装置 | |
CN110941835B (zh) | 数据处理方法及电子设备 | |
CN115599408B (zh) | 处理器的数据烧录方法、设备及存储介质 | |
CN111291363B (zh) | 通信模组运行处理方法、装置、通信模组及计算机可读介质 | |
US20240012903A1 (en) | Method for Executing a Program on a Data Processing Device | |
CN114547703A (zh) | 基于安全隔离模块的嵌入式安全通信方法及*** | |
CN112020019A (zh) | 数据传输方法、装置、终端设备及存储介质 | |
CN103745140A (zh) | 微控制器及其他嵌入式***程序代码保护方法和装置 | |
CN114676412A (zh) | Usb key设备的验证方法、装置和存储介质 |
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 |