CN117892360A - 微控制单元的安全启动方法、装置、微控制单元和上位机 - Google Patents

微控制单元的安全启动方法、装置、微控制单元和上位机 Download PDF

Info

Publication number
CN117892360A
CN117892360A CN202211260270.7A CN202211260270A CN117892360A CN 117892360 A CN117892360 A CN 117892360A CN 202211260270 A CN202211260270 A CN 202211260270A CN 117892360 A CN117892360 A CN 117892360A
Authority
CN
China
Prior art keywords
mcu
upper computer
identification
signature result
mirror image
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
CN202211260270.7A
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 CN202211260270.7A priority Critical patent/CN117892360A/zh
Publication of CN117892360A publication Critical patent/CN117892360A/zh
Pending legal-status Critical Current

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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例提供一种MCU的安全启动方法、装置、微控制单元和上位机,上述MCU的安全启动方法中,MCU上电之后,在boot模式下,将上述MCU的标识发送给上位机,以供上位机查找上述MCU的标识对应的公钥和镜像,然后使用MCU中保存的私钥,对上述MCU中可执行程序文件的镜像进行签名,将签名结果发送给上位机,最后接收上位机发送的数据,上述数据是上位机使用上述MCU的标识对应的公钥和镜像对上述签名结果进行验签,确定上述签名结果通过验签之后,发送给MCU的,从而可以通过MCU本地签名与上位机验签的方式,实现MCU的安全启动,提高了MCU启动的安全性。

Description

微控制单元的安全启动方法、装置、微控制单元和上位机
技术领域
本申请涉及智能终端技术领域,特别涉及一种微控制单元(microcontrollerunit,MCU)的安全启动方法、装置、微控制单元和上位机。
背景技术
随着嵌入式产品应用得越来越广泛,嵌入式产品的安全也越发受到关注。若嵌入式产品遭到攻击或存储数据遭到篡改,则会导致嵌入式产品无法正常运行,而用户隐私泄露,则会造成巨大的财产损失,因此安全启动就是保证嵌入式产品安全的第一步。
现在大多数低端的MCU无安全信任根,无法依靠自身能力完成安全启动。而篡改MCU的内部程序,是近场攻击的安全风险之一。若该MCU存在与外部交互信息的场景,那么篡改可执行文件,则可能造成极大的安全风险。
发明内容
本申请提供了一种MCU的安全启动方法、装置、微控制单元和上位机,本申请还提供一种计算机可读存储介质,以实现提高MCU启动的安全性。
第一方面提供了一种微控制单元MCU的安全启动方法,包括:MCU上电之后,在系统引导模式下,将所述MCU的标识发送给上位机,以供所述上位机查找所述MCU的标识对应的公钥和镜像;其中,所述MCU的标识对应的镜像是预先保存在所述上位机中的,所述MCU的标识对应的镜像包括所述MCU中可执行程序文件的镜像,所述MCU中的可执行程序文件包括系统引导程序和应用程序;使用所述MCU中保存的私钥,对所述MCU中可执行程序文件的镜像进行签名;将签名结果发送给所述上位机;接收所述上位机发送的数据,其中,所述上位机发送的数据是所述上位机使用所述MCU的标识对应的公钥和镜像对所述签名结果进行验签,确定所述签名结果通过验签之后,发送给所述MCU的。
其中一种可能的实现方式中,所述将所述MCU的标识发送给上位机之前,还包括:将私钥写入所述MCU的安全区;以及将可执行程序文件写入所述MCU;在所述MCU上电之后,在系统引导模式下,检测所述MCU中可执行程序文件的镜像的完整性;在确定所述MCU中的可执行程序文件通过完整性检测之后,执行所述将所述MCU的标识发送给上位机的步骤。
第二方面提供一种微控制单元MCU的安全启动方法,包括:上位机接收MCU发送的所述MCU的标识;其中,所述MCU的标识是所述MCU上电之后,在系统引导模式下发送的;查找所述MCU的标识对应的公钥和镜像;其中,所述MCU的标识对应的镜像是预先保存在所述上位机中的,所述MCU的标识对应的镜像包括所述MCU中可执行程序文件的镜像,所述MCU中的可执行程序文件包括系统引导程序和应用程序;接收所述MCU发送的签名结果;所述签名结果是所述MCU使用自身保存的私钥,对所述MCU中可执行程序文件的镜像进行签名之后发送给所述上位机的;使用所述MCU的标识对应的公钥和镜像,对所述签名结果进行验签;如果所述签名结果通过验签,则向所述MCU发送数据。
其中一种可能的实现方式中,所述使用所述MCU的标识对应的公钥和镜像,对所述签名结果进行验签之后,还包括:如果所述签名结果未通过验签,则断开与所述MCU的连接,或者,对所述MCU进行下电处理。
其中一种可能的实现方式中,所述使用所述MCU的标识对应的公钥和镜像,对所述签名结果进行验签包括:对所述MCU的标识对应的镜像进行哈希处理,获得哈希数据;根据所述MCU的标识对应的公钥和所述哈希数据,对所述签名结果进行验签。
其中一种可能的实现方式中,所述接收所述MCU发送的签名结果之后,还包括:保存所述签名结果。
第三方面提供一种微控制单元MCU的安全启动装置,该装置包含在MCU中,该装置具有实现第一方面及第一方面的可能实现方式中MCU行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,发送模块、签名模块和接收模块等。
第四方面提供一种微控制单元MCU的安全启动装置,该装置包含在上位机中,该装置具有实现第二方面及第二方面的可能实现方式中上位机行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,接收模块、查找模块、验签模块和发送模块等。
第五方面提供一种微控制单元,包括:一个或多个处理器;存储器;多个应用程序;以及一个或多个计算机程序,其中上述一个或多个计算机程序被存储在上述存储器中,上述一个或多个计算机程序包括指令,当上述指令被上述微控制单元运行时,使得上述微控制单元执行以下步骤:MCU上电之后,在系统引导模式下,将所述MCU的标识发送给上位机,以供所述上位机查找所述MCU的标识对应的公钥和镜像;其中,所述MCU的标识对应的镜像是预先保存在所述上位机中的,所述MCU的标识对应的镜像包括所述MCU中可执行程序文件的镜像,所述MCU中的可执行程序文件包括系统引导程序和应用程序;使用所述MCU中保存的私钥,对所述MCU中可执行程序文件的镜像进行签名;将签名结果发送给所述上位机;接收所述上位机发送的数据,其中,所述上位机发送的数据是所述上位机使用所述MCU的标识对应的公钥和镜像对所述签名结果进行验签,确定所述签名结果通过验签之后,发送给所述MCU的。
其中一种可能的实现方式中,当所述指令被所述微控制单元运行时,使得所述微控制单元执行所述将所述MCU的标识发送给上位机的步骤之前,还执行以下步骤:将私钥写入所述MCU的安全区;以及将可执行程序文件写入所述MCU;在所述MCU上电之后,在系统引导模式下,检测所述MCU中可执行程序文件的镜像的完整性;在确定所述MCU中的可执行程序文件通过完整性检测之后,执行所述将所述MCU的标识发送给上位机的步骤。
第六方面提供一种上位机,包括:一个或多个处理器;存储器;多个应用程序;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述上位机运行时,使得所述上位机执行以下步骤:接收MCU发送的所述MCU的标识;其中,所述MCU的标识是所述MCU上电之后,在系统引导模式下发送的;查找所述MCU的标识对应的公钥和镜像;其中,所述MCU的标识对应的镜像是预先保存在所述上位机中的,所述MCU的标识对应的镜像包括所述MCU中可执行程序文件的镜像,所述MCU中的可执行程序文件包括系统引导程序和应用程序;接收所述MCU发送的签名结果;所述签名结果是所述MCU使用自身保存的私钥,对所述MCU中可执行程序文件的镜像进行签名之后发送给所述上位机的;使用所述MCU的标识对应的公钥和镜像,对所述签名结果进行验签;如果所述签名结果通过验签,则向所述MCU发送数据。
其中一种可能的实现方式中,当所述指令被所述上位机运行时,使得所述上位机执行所述使用所述MCU的标识对应的公钥和镜像,对所述签名结果进行验签的步骤之后,还执行以下步骤:如果所述签名结果未通过验签,则断开与所述MCU的连接,或者,对所述MCU进行下电处理。
其中一种可能的实现方式中,当所述指令被所述上位机运行时,使得所述上位机执行所述使用所述MCU的标识对应的公钥和镜像,对所述签名结果进行验签的步骤包括:对所述MCU的标识对应的镜像进行哈希处理,获得哈希数据;根据所述MCU的标识对应的公钥和所述哈希数据,对所述签名结果进行验签。
其中一种可能的实现方式中,当所述指令被所述上位机运行时,使得所述上位机执行所述接收所述MCU发送的签名结果的步骤之后,还执行以下步骤:保存所述签名结果。
应当理解的是,第三方面和第五方面与第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
应当理解的是,第四方面和第六方面与第二方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
第七方面提供一种可读存储介质,上述可读存储介质中存储有程序代码,当其在MCU上运行时,使得MCU执行第一方面提供的方法。
第八方面提供一种可读存储介质,上述可读存储介质中存储有程序代码,当其在上位机上运行时,使得上位机执行第二方面提供的方法。
第九方面提供一种计算机程序产品,当上述计算机程序产品被MCU运行时,使得MCU执行第一方面提供的方法。
第十方面提供一种计算机程序产品,当上述计算机程序被上位机运行时,使得上位机执行第二方面提供的方法。
在一种可能的设计中,第九方面和第十方面中的程序可以全部或者部分存储在与处理器封装在一起的存储介质上,也可以部分或者全部存储在不与处理器封装在一起的存储器上。
附图说明
图1为本申请一个实施例提供的MCU的结构示意图;
图2为本申请一个实施例提供的上位机的结构示意图;
图3为本申请一个实施例提供的MCU的安全启动方法的流程图;
图4为本申请一个实施例提供的MCU的安全启动方法的流程图;
图5为本申请另一个实施例提供的MCU的安全启动方法的流程图;
图6为本申请另一个实施例提供的MCU的结构示意图;
图7为本申请另一个实施例提供的MCU的结构示意图;
图8为本申请另一个实施例提供的上位机的结构示意图;
图9为本申请再一个实施例提供的上位机的结构示意图。
具体实施方式
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
低端的MCU无安全信任根,无法依靠自身能力完成安全启动。而篡改MCU的内部程序,是近场攻击的安全风险之一。若该MCU存在与外部交互信息的场景,那么篡改可执行文件,则可能造成极大的安全风险。个别的高端MCU存储有根信任的链代码,但存储根信任的链代码需要在可信的根信任存储空间,否则该代码依然不可信,难以做到真正的安全可信,同时校验工作都是在同一块MCU内部进行,依然存在近场篡改的风险。对于普通能力较弱的MCU,安全可信任区内存空间紧张,难以作为可信任程序运行区。
基于以上问题,本申请提供一种MCU的安全启动方法,针对无安全信任根的MCU,在有数据交互的场景下,提供一种可靠的MCU启动方式,安全性较高。本申请实施例通过MCU本地签名与上位机验签的方式确定是否启动MCU或者与该MCU进行下一步交互。
本申请实施例提供的MCU的安全启动方法可以应用于MCU和上位机,其中,上位机可以与MCU设置在同一电子设备中,也可以与MCU设置在不同的电子设备中。本申请实施例中,上位机可以为一个可信任的设备或芯片,举例来说,上位机中包括安全信任根,可以进行安全启动。
示例性的,图1为本申请一个实施例提供的MCU的结构示意图,如图1所示,MCU100可以包括处理器110、通信接口120和存储器130。其中,处理器110、通信接口120和存储器130之间可以通过内部连接通路互相通信,传递控制和/或数据信号,该存储器130用于存储程序代码,该处理器110用于从该存储器130中调用并运行该程序代码。
上述处理器110可以和存储器130可以合成一个处理装置,更常见的是彼此独立的部件,处理器110用于执行存储器130中存储的程序代码。具体实现时,该存储器130也可以集成在处理器110中,或者,独立于处理器110。
图2为本申请一个实施例提供的上位机的结构示意图,如图2所示,上位机200可以包括处理器210、通信接口220和存储器230。其中,处理器210、通信接口220和存储器230之间可以通过内部连接通路互相通信,传递控制和/或数据信号,该存储器230用于存储程序代码,该处理器210用于从该存储器230中调用并运行该程序代码。
上述处理器210可以和存储器230可以合成一个处理装置,更常见的是彼此独立的部件,处理器210用于运行存储器230中存储的程序代码。具体实现时,该存储器230也可以集成在处理器210中,或者,独立于处理器210。
应理解,图2所示的上位机200中的处理器210可以是片上系统SOC,该处理器210中可以包括中央处理器(central processing unit,CPU),还可以进一步包括其他类型的处理器,例如:图像处理器(graphics processing unit,GPU)等。
为了便于理解,本申请以下实施例将以具有图1所示结构的MCU,具有图2所示结构的上位机为例,结合附图和应用场景,对本申请实施例提供的MCU的安全启动方法进行具体阐述。
图3为本申请一个实施例提供的MCU的安全启动方法的流程图,如图3所示,上述MCU的安全启动方法可以包括:
步骤301,MCU将私钥写入MCU的安全区,以及将可执行程序文件写入上述MCU。
其中,上述MCU的安全区包括MCU的内置闪存(flash)或外置flash;上述可执行程序文件可以包括系统引导程序(boot)和应用程序(application,APP)。
步骤302,在MCU上电之后,在系统引导(boot)模式下,MCU检测MCU中可执行程序文件的镜像的完整性。
步骤303,在确定MCU中的可执行程序文件通过完整性检测之后,MCU将MCU的标识发送给上位机。
其中,上述MCU的标识包括MCU的序列号(serial number,SN)等可以唯一标识MCU的信息,本实施例对上述MCU的标识的具体形式不作限定。
步骤304,上位机查找上述MCU的标识对应的公钥和镜像。
其中,上述MCU的标识对应的镜像是预先保存在上述上位机中的,上述MCU的标识对应的镜像包括MCU中可执行程序文件的镜像,如上所述,上述MCU中的可执行程序文件包括boot和APP。
步骤305,MCU使用上述MCU中保存的私钥,对MCU中可执行程序文件的镜像进行签名。
其中,上述MCU中保存的私钥即为上述MCU的安全区中的私钥。
步骤306,MCU将签名结果发送给上位机。
步骤307,上位机接收上述签名结果,保存上述签名结果。
步骤308,上位机使用上述MCU的标识对应的公钥和镜像,对上述签名结果进行验签。
具体地,上位机使用上述MCU的标识对应的公钥和镜像,对上述签名结果进行验签包括:对上述MCU的标识对应的镜像进行哈希处理,获得哈希数据;根据上述MCU的标识对应的公钥和上述哈希数据,对上述签名结果进行验签。
步骤309,如果上述签名结果通过验签,则上位机向MCU发送数据;如果上述签名结果未通过验签,则上位机断开与MCU的连接,或者,对上述MCU进行下电处理。
具体地,如果上述签名结果未通过验签,则上位机对上述MCU进行下电处理,举例来说,上位机可以通过自身的控制器件和二极管对上述MCU进行下电处理。
结合上述实施例及相关附图,本申请实施例提供了一种MCU的安全启动方法,该方法的实现涉及MCU100侧和上位机200侧,图4为本申请一个实施例提供的MCU的安全启动方法的流程图,本实施例提供的MCU的安全启动方法应用于MCU100侧,如图4所示,上述MCU的安全启动方法可以包括:
步骤401,MCU上电之后,在boot模式下,将上述MCU的标识发送给上位机,以供上位机查找上述MCU的标识对应的公钥和镜像。
其中,上述MCU的标识对应的镜像是预先保存在上述上位机中的,上述MCU的标识对应的镜像包括MCU中可执行程序文件的镜像,上述MCU中的可执行程序文件包括boot和APP。
步骤402,使用MCU中保存的私钥,对上述MCU中可执行程序文件的镜像进行签名。
步骤403,将签名结果发送给上位机。然后执行步骤404或步骤405。
步骤404,接收上位机发送的数据。
其中,上述上位机发送的数据是上位机使用上述MCU的标识对应的公钥和镜像对上述签名结果进行验签,确定签名结果通过验签之后,发送给上述MCU的。
另外,步骤401之前,还可以包括:MCU将私钥写入MCU的安全区;以及将可执行程序文件写入上述MCU,在MCU上电之后,在boot模式下,检测MCU中可执行程序文件的镜像的完整性;在确定MCU中的可执行程序文件通过完整性检测之后,执行步骤401。
上述MCU的安全启动方法中,MCU上电之后,在boot模式下,将上述MCU的标识发送给上位机,以供上位机查找上述MCU的标识对应的公钥和镜像,然后使用MCU中保存的私钥,对上述MCU中可执行程序文件的镜像进行签名,将签名结果发送给上位机,最后接收上位机发送的数据,上述数据是上位机使用上述MCU的标识对应的公钥和镜像对上述签名结果进行验签,确定上述签名结果通过验签之后,发送给MCU的,从而可以通过MCU本地签名与上位机验签的方式,实现MCU的安全启动,提高了MCU启动的安全性。
图5为本申请另一个实施例提供的MCU的安全启动方法的流程图,本实施例提供的MCU的安全启动方法应用于上位机200侧,如图5所示,上述MCU的安全启动方法可以包括:
步骤501,上位机接收MCU发送的上述MCU的标识。
其中,上述MCU的标识是MCU上电之后,在boot模式下发送的。
步骤502,查找上述MCU的标识对应的公钥和镜像。
其中,上述MCU的标识对应的镜像是预先保存在上位机中的,上述MCU的标识对应的镜像包括MCU中可执行程序文件的镜像,上述MCU中的可执行程序文件包括boot和APP。
步骤503,接收MCU发送的签名结果。
其中,上述签名结果是MCU使用自身保存的私钥,对上述MCU中可执行程序文件的镜像进行签名之后发送给上位机的。
进一步地,上位机接收MCU发送的签名结果之后,还可以保存上述签名结果。
步骤504,使用上述MCU的标识对应的公钥和镜像,对上述签名结果进行验签。然后执行步骤505或步骤506。
具体地,使用上述MCU的标识对应的公钥和镜像,对上述签名结果进行验签包括:对上述MCU的标识对应的镜像进行哈希处理,获得哈希数据;根据上述MCU的标识对应的公钥和上述哈希数据,对上述签名结果进行验签。
步骤505,如果上述签名结果通过验签,则向MCU发送数据。
步骤506,如果上述签名结果未通过验签,则断开与MCU的连接,或者,对上述MCU进行下电处理。
举例来说,上位机对上述MCU进行下电处理包括:上位机通过自身的控制器件和二极管对上述MCU进行下电处理。
上述MCU的安全启动方法中,上位机接收MCU发送的上述MCU的标识之后,查找上述MCU的标识对应的公钥和镜像,然后接收MCU发送的签名结果,使用上述MCU的标识对应的公钥和镜像,对上述签名结果进行验签,如果上述签名结果通过验签,则上位机向MCU发送数据,从而可以通过MCU本地签名与上位机验签的方式,实现MCU的安全启动,提高了MCU启动的安全性。
可以理解的是,上述实施例中的部分或全部步骤或操作仅是示例,本申请实施例还可以执行其它操作或者各种操作的变形。此外,各个步骤可以按照上述实施例呈现的不同的顺序来执行,并且有可能并非要执行上述实施例中的全部操作。
可以理解的是,MCU为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本申请所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本实施例可以根据上述方法实施例对MCU进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图6为本申请另一个实施例提供的MCU的结构示意图,在采用对应各个功能划分各个功能模块的情况下,图6示出了上述实施例中涉及的MCU600的一种可能的组成示意图,如图6所示,该MCU600可以包括:发送模块601、签名模块602和接收模块603;
其中,发送模块601,用于在MCU上电之后,在系统引导模式下,将上述MCU的标识发送给上位机,以供上位机查找MCU的标识对应的公钥和镜像;其中,上述MCU的标识对应的镜像是预先保存在上位机中的,上述MCU的标识对应的镜像包括上述MCU中可执行程序文件的镜像,上述MCU中的可执行程序文件包括系统引导程序和应用程序;
签名模块602,用于使用上述MCU中保存的私钥,对上述MCU中可执行程序文件的镜像进行签名;
发送模块601,还用于将签名结果发送给上位机;
接收模块603,用于接收上位机发送的数据,其中,上位机发送的数据是上位机使用上述MCU的标识对应的公钥和镜像对签名结果进行验签,确定上述签名结果通过验签之后,发送给上述MCU的。
图7为本申请另一个实施例提供的MCU的结构示意图,与图6所示的MCU相比,不同之处在于,图7所示的MCU600中还可以包括:写入模块604和检测模块605;
写入模块604,用于在发送模块601将上述MCU的标识发送给上位机之前,将私钥写入MCU的安全区;以及将可执行程序文件写入上述MCU。
检测模块605,用于在MCU上电之后,在系统引导模式下,检测MCU中可执行程序文件的镜像的完整性;
在检测模块605确定MCU中的可执行程序文件通过完整性检测之后,发送模块601执行将上述MCU的标识发送给上位机的步骤。
需要说明的是,本申请图4所示方法实施例涉及的各步骤的所有相关内容均可以援引到图6和图7中对应功能模块的功能描述,在此不再赘述。
本实施例提供的MCU600,用于执行本申请图4所示实施例提供的MCU的安全启动方法,因此可以达到与上述方法相同的效果。
同样,可以理解的是,上位机为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本申请所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本实施例可以根据上述方法实施例对上位机进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图8为本申请另一个实施例提供的上位机的结构示意图,在采用对应各个功能划分各个功能模块的情况下,图8示出了上述实施例中涉及的上位机800的一种可能的组成示意图,如图8所示,该上位机800可以包括:接收模块801、查找模块802、验签模块803和发送模块804;
其中,接收模块801,用于接收MCU发送的上述MCU的标识;其中,上述MCU的标识是MCU上电之后,在系统引导模式下发送的;
查找模块802,用于查找上述MCU的标识对应的公钥和镜像;其中,上述MCU的标识对应的镜像是预先保存在上位机中的,上述MCU的标识对应的镜像包括上述MCU中可执行程序文件的镜像,上述MCU中的可执行程序文件包括系统引导程序和应用程序;
接收模块801,还用于接收上述MCU发送的签名结果;上述签名结果是MCU使用自身保存的私钥,对上述MCU中可执行程序文件的镜像进行签名之后发送给上位机的;
验签模块803,用于使用上述MCU的标识对应的公钥和镜像,对上述签名结果进行验签;
发送模块804,用于在上述签名结果通过验签之后,向MCU发送数据。
图9为本申请再一个实施例提供的上位机的结构示意图,与图8所示的上位机相比,不同之处在于,图9所示的上位机800中还可以包括:下电模块805;
下电模块805,用于在验签模块803使用上述MCU的标识对应的公钥和镜像,对签名结果进行验签之后,如果上述签名结果未通过验签,则断开与MCU的连接,或者,对上述MCU进行下电处理。
举例来说,上位机对上述MCU进行下电处理包括:上位机通过自身的控制器件和二极管对上述MCU进行下电处理。
本实施例中,验签模块803,具体用于对上述MCU的标识对应的镜像进行哈希处理,获得哈希数据;以及根据上述MCU的标识对应的公钥和上述哈希数据,对所述签名结果进行验签。
进一步地,上位机800中还可以包括:保存模块806;
保存模块806,用于在接收模块801接收MCU发送的签名结果之后,保存上述签名结果。
需要说明的是,本申请图5所示方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本申请图8和图9所示实施例提供的上位机800,用于执行本申请图5所示实施例提供的MCU的安全启动方法,因此可以达到与上述方法相同的效果。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计程序代码,当其在MCU上运行时,使得MCU执行本申请图4所示实施例提供的方法。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在上位机上运行时,使得上位机执行本申请图5所示实施例提供的方法。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括程序代码,当其在MCU上运行时,使得MCU执行本申请图4所示实施例提供的方法。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括程序代码,当其在上位机上运行时,使得上位机执行本申请图5所示实施例提供的方法。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,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可以是单个,也可以是多个。
本领域普通技术人员可以意识到,本文中公开的实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,任一功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种微控制单元MCU的安全启动方法,其特征在于,包括:
MCU上电之后,在系统引导模式下,将所述MCU的标识发送给上位机,以供所述上位机查找所述MCU的标识对应的公钥和镜像;其中,所述MCU的标识对应的镜像是预先保存在所述上位机中的,所述MCU的标识对应的镜像包括所述MCU中可执行程序文件的镜像,所述MCU中的可执行程序文件包括系统引导程序和应用程序;
使用所述MCU中保存的私钥,对所述MCU中可执行程序文件的镜像进行签名;
将签名结果发送给所述上位机;
接收所述上位机发送的数据,其中,所述上位机发送的数据是所述上位机使用所述MCU的标识对应的公钥和镜像对所述签名结果进行验签,确定所述签名结果通过验签之后,发送给所述MCU的。
2.根据权利要求1所述的方法,其特征在于,所述将所述MCU的标识发送给上位机之前,还包括:
将私钥写入所述MCU的安全区;以及将可执行程序文件写入所述MCU;
在所述MCU上电之后,在系统引导模式下,检测所述MCU中可执行程序文件的镜像的完整性;
在确定所述MCU中的可执行程序文件通过完整性检测之后,执行所述将所述MCU的标识发送给上位机的步骤。
3.一种微控制单元MCU的安全启动方法,其特征在于,包括:
上位机接收MCU发送的所述MCU的标识;其中,所述MCU的标识是所述MCU上电之后,在系统引导模式下发送的;
查找所述MCU的标识对应的公钥和镜像;其中,所述MCU的标识对应的镜像是预先保存在所述上位机中的,所述MCU的标识对应的镜像包括所述MCU中可执行程序文件的镜像,所述MCU中的可执行程序文件包括系统引导程序和应用程序;
接收所述MCU发送的签名结果;所述签名结果是所述MCU使用自身保存的私钥,对所述MCU中可执行程序文件的镜像进行签名之后发送给所述上位机的;
使用所述MCU的标识对应的公钥和镜像,对所述签名结果进行验签;
如果所述签名结果通过验签,则向所述MCU发送数据。
4.根据权利要求3所述的方法,其特征在于,所述使用所述MCU的标识对应的公钥和镜像,对所述签名结果进行验签之后,还包括:
如果所述签名结果未通过验签,则断开与所述MCU的连接,或者,对所述MCU进行下电处理。
5.根据权利要求3或4所述的方法,其特征在于,所述使用所述MCU的标识对应的公钥和镜像,对所述签名结果进行验签包括:
对所述MCU的标识对应的镜像进行哈希处理,获得哈希数据;
根据所述MCU的标识对应的公钥和所述哈希数据,对所述签名结果进行验签。
6.根据权利要求3至5任一项所述的方法,其特征在于,所述接收所述MCU发送的签名结果之后,还包括:
保存所述签名结果。
7.一种微控制单元,其特征在于,包括:
一个或多个处理器;存储器;多个应用程序;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述微控制单元MCU运行时,使得所述微控制单元执行如权利要求1-2任一项所述方法。
8.一种上位机,其特征在于,包括:
一个或多个处理器;存储器;多个应用程序;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述上位机运行时,使得所述上位机执行如权利要求3-6任一项所述的方法。
9.一种可读存储介质,其特征在于,所述可读存储介质中存储有程序代码,当其在设备上运行时,使得设备执行如权利要求1-2任一项所述的方法或如权利要求3-6任一项所述的方法。
10.一种计算机程序产品,其特征在于,当所述计算机程序产品被设备运行时,使得所述设备执行如权利要求1-2任一项所述的方法或如权利要求3-6任一项所述的方法。
CN202211260270.7A 2022-10-14 2022-10-14 微控制单元的安全启动方法、装置、微控制单元和上位机 Pending CN117892360A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211260270.7A CN117892360A (zh) 2022-10-14 2022-10-14 微控制单元的安全启动方法、装置、微控制单元和上位机

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211260270.7A CN117892360A (zh) 2022-10-14 2022-10-14 微控制单元的安全启动方法、装置、微控制单元和上位机

Publications (1)

Publication Number Publication Date
CN117892360A true CN117892360A (zh) 2024-04-16

Family

ID=90638175

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211260270.7A Pending CN117892360A (zh) 2022-10-14 2022-10-14 微控制单元的安全启动方法、装置、微控制单元和上位机

Country Status (1)

Country Link
CN (1) CN117892360A (zh)

Similar Documents

Publication Publication Date Title
CN109492378B (zh) 一种基于设备识别码的身份验证方法、服务器及介质
CN102955921B (zh) 电子装置与安全开机方法
US6925557B2 (en) Method and system for a clean system booting process
CN109561085A (zh) 一种基于设备识别码的身份验证方法、服务器及介质
US11977962B2 (en) Immutable watermarking for authenticating and verifying AI-generated output
KR20100080400A (ko) 로크된 컴퓨터 시스템의 프리-부트 복구
CN105825131A (zh) 一种基于uefi的计算机安全启动防护方法
CN111352702A (zh) 虚拟数据中心可信状态确定方法、装置、设备及存储介质
CN109753788B (zh) 内核运行时的完整性校验方法及计算机可读存储介质
CN110505246B (zh) 客户端网络通讯检测方法、装置及存储介质
CN109889477A (zh) 基于可信密码引擎的服务器启动方法及装置
CN114995894A (zh) 操作系统的启动控制方法、终端设备及可读存储介质
CN106507300A (zh) 一种找回丢失终端的方法、装置及终端
CN111651769A (zh) 获取安全启动的度量方法和装置
CN113419905A (zh) 一种实现可信验证的方法及装置和安全模块
CN116541891A (zh) 一种uefi映像文件完整性保护方法、装置、设备及介质
CN111737701A (zh) 一种服务器可信根系统及其可信启动方法
CN117892360A (zh) 微控制单元的安全启动方法、装置、微控制单元和上位机
CN108959915B (zh) 一种rootkit检测方法、装置及服务器
CN109495436B (zh) 一种可信云平台度量系统及方法
CN107360167B (zh) 一种认证方法及装置
CN115335127B (zh) 用于反作弊检测的系统和方法
CN112130932B (zh) 一种单实例运行的方法、装置及电子设备
CN111625846B (zh) 一种移动终端设备的系统状态记录方法
CN104281811A (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