掌桥专利:专业的专利平台
掌桥专利
首页

实现MCU软件生产资料的安全烧录方法、系统和设备

文献发布时间:2024-04-18 19:59:31


实现MCU软件生产资料的安全烧录方法、系统和设备

技术领域

本发明涉及MCU烧录技术领域,尤其是涉及一种实现MCU软件生产资料的安全烧录方法、系统和设备。

背景技术

物联网设备或其他基于MCU开发的产品,都需要向MCU中烧录固件和出厂数据等软件生成资料后,MCU才能按照既定的处理逻辑进行工作,且MCU内部固件是需要保密的,若是MCU内部固件被泄露可能会被用于制作仿制品,但是,现有技术中,通过烧录器对MCU进行烧录信息,未在MCU烧录固件和出厂数据等软件生产资料时进行加密,因此可能会将固件泄露,造成损失。

发明内容

本发明的目的在于提供一种实现MCU软件生产资料的安全烧录方法、系统和设备,以解决了现有技术中存在的在含有MCU设备生成过程中泄露固件的技术问题。

本发明提供一种实现MCU软件生产资料的安全烧录方法,包括:

获取待烧录MCU对应的临时固件,并所述临时固件烧录至所述待烧录MCU中;

获取所述待烧录MCU软件生产资料,将所述待烧录MCU软件生产资料通过安全通道发送至所述临时固件;

所述临时固件将所述待烧录MCU软件生产资料写入所述待烧录MCU的Flash中。

在可能的实施方式中,所述获取待烧录MCU对应的临时固件之前,还包括:

根据待烧录MCU的型号,创建所述待烧录MCU对应的临时固件。

在可能的实施方式中,所述安全通道,包括:

基于链接申请,确定PC端生产工具与云端之间的安全通信;

根据通讯参数,确定PC端生产工具与MCU之间的安全通信。

在可能的实施方式中,获取所述待烧录MCU的软件生产资料之前,还包括:

创建待烧录产品,所述待烧录产品使用所述待烧录MCU;

基于所述待烧录产品,创建所述待烧录产品的版本,所述待烧录产品的版本包括若干个软件生产资料;

基于所述待烧录产品的版本,创建所述待烧录产品的批次。

在可能的实施方式中,所述软件生产资料包括固件、出厂数据、秘钥、证明和配置信息。

在可能的实施方式中,获取所述待烧录MCU软件生产资料,包括:

获取所述待烧录MCU的认证信息;

基于所述待烧录MCU的认证信息,得到所述待烧录MCU软件生产资料。

在可能的实施方式中,所述临时固件将所述待烧录MCU软件生产资料写入所述待烧录MCU的Flash中,包括:

所述待烧录MCU软件生产资料为启用安全特性的数据,所述启用安全特性的数据包括启动Flash加密、启用安全启动、关闭调试接口中任一项。

本发明还提供一种实现MCU软件生产资料的安全烧录系统,包括:云端、PC端生产工具、烧录器、MCU、临时固件,其中所述云端与所述PC端生产工具连接,所述PC端生产工具与所述MCU连接,所述PC端生产工具与所述烧录器连接,所述烧录器与所述MCU接口连接,所述临时固件位于MCU中。

在可能的实施方式中,所述云端与所述PC端生产工具通过网络连接;

所述PC端生产工具与所述MCU通过串口或双向通讯接口连接;

所述PC端生产工具与所述烧录器通过USB连接;

所述烧录器与所述MCU通过烧录接口连接。

本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一项所述一种实现MCU软件生产资料的安全烧录方法的步骤。

本发明提供的一种实现MCU软件生产资料的安全烧录方法、系统和设备,通过在MCU中设置临时固件,以及通过安全通道将MCU软件生产资发送至临时固件中,临时固件将MCU软件生产资料写入MCU的Flash中,以便后续使用,防止数据在传输过程中被窃取或非法访问。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种实现MCU软件生产资料的安全烧录系统的架构示意图;

图2为本发明实施例提供的一种实现MCU软件生产资料的安全烧录方法的流程示意图之一;

图3为本发明实施例提供的一种实现MCU软件生产资料的安全烧录方法的流程示意图之二;

图4为本发明提供的一种电子设备。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

此外,术语“水平”、“竖直”、“悬垂”等术语并不表示要求部件绝对水平或悬垂,而是可以稍微倾斜。如“水平”仅仅是指其方向相对“竖直”而言更加水平,并不是表示该结构一定要完全水平,而是可以稍微倾斜。

在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

MCU(Microcontroller Unit)微控制单元,是以微处理器为核心,集成了存储器、定时器、I/O口、各种接口电路和特定功能电路于一体的芯片,通常用于控制和驱动各种机械或电子设备。

MCU UID是指微控制单元的唯一标识码,通常由芯片制造商在生产过程中编程到芯片中,用于唯一标识每个芯片。UID还可以作为设备的序列号,用于在通讯协议中标识和区分设备,还可以被用作安全秘钥,与软件加密算法结合使用,以降低固件被恶意复制的风险。

Flash(Flash Memory)存储器是一种非易失性存储器,用于存储程序代码和数据,通过特定的程序可以修改里面的数据。

RAM(Random Access Memory)随机存取存储器是一种用于存储数据的电子设备,RAM工作时可以随时从任何一个指定的地址写入或读出信息。

软件生产资料指的是在软件生产过程中所使用的各种工具、技术、资源和人才等。在本申请中,软件生产资料具体包括固件、出厂数据、密钥、证书和配置信息等数据。

烧录器是一种用来将数据文件拷贝到芯片的机器,通常与计算机连接,再配合编程软件使用,主要用于单片机/存储器之类的芯片的编程。

本发明中,通过在设备的生产过程中,不通过烧录器直接明文向MCU的Flash中烧写,而是先用烧录器在MCU中烧录一个临时的代理固件也就是临时固件到RAM中运行,在将MCU和云端建立一个安全通道,云端基于安全通道向MCU发送软件生产资料,临时固件安全通道中收到后将软件生产资料写入到MCU的Flash中,整个烧录过程中通过云端与MCU端的安全保护,可有效的防止在交付过程中MCU中的固件被泄露。

图1为本发明提供的一种实现MCU软件生产资料的安全烧录的系统架构图,如图1所示,该系统包括:云端、PC端生产工具、烧录器、MCU、临时固件,其中云端与PC端生产工具通过网络连接,PC端生产工具与MCU通过串口或其他双向通讯接口连接,PC端生产工具与烧录器通过USB连接,烧录器与MCU通过烧录接口连接,临时固件位于MCU中。

在本申请中,云端是对软件生产资料和设备MCU进行存储和管理,其至少具备以下功能:安全管理软件生产资料、验证请求设备合法性、与设备建立安全通道和软件生产资料基于安全通道下发的能力等;

PC端生产工具是工厂工人操作的主要交互入口,其至少具备以下功能:通过烧录器想MCU中烧写临时固件的RAM、运行RAM中的临时固件、通过串口与临时固件进行通讯、与远端通讯以及相互透传MCU和云端的通讯数据等的能力;

临时固件是针对某款具体型号的MCU开发的临时固件,可适用基于该MCU设计的不同产品,其至少具备以下功能:调用MCU中预置在其安全环境中的设备证书以及其对应私钥、读取MCU UID、通过串口与PC端生产工具通讯、基于设备证书和MCU UID向云端证明合法设备、通过预置云端的跟证书,验证云端服务器合法性、与云端建立安全通道以及将软件生产资料写入到对应Flash空间等的能力。

图2和图3为本发明提供的一种实现MCU软件生产资料的安全烧录方法,如图2和图3所示,该方法是通过PC端生产工具烧录至MCU,从云端获取软件生产资料并启用mcu安全特性,其具体过程如下:

S110、获取待烧录MCU对应的临时固件,并将所述临时固件烧录至所述待烧录MCU中。

在本申请中,PC端工具根据待烧录MCU型号获取待烧录MCU对应的临时固件,使用烧录器将临时固件烧录到MCU中,并启动该临时固件。

进一步,临时固件通常包含用于与PC端生产工具通信的代码,以便进行后续的通信和数据传输。

在可能的实施方式中,获取临时固件之前,还包括:

根据待烧录MCU的型号,创建所述待烧录MCU对应的临时固件。

具体的,可采用具有开发固件的工具,基于待烧录MCU的特性,创建一个与待烧录MCU对应的临时固件,其开发过程可能包括以下步骤:首先,对待烧录MCU进行需求分析,明确待烧录MCU的设计要求和功能需求,其次根据需求分析的结果,进行待烧录MCU的硬件设计,然后根据硬件设计和需求分析的结果,进行软件设计和编码,最后使用开发工具将源代码编译成可执行二进制文件,并进行调试和测试。

本申请中,在云端存储适用于不同型号的MCU的临时固件,该临时固件可以适用于基于该款MCU设计的不同的产品。

进一步,临时固件可以烧录到MCU的Flash的某个地方,只要不会被主固件覆盖即可。

S120、获取所述待烧录MCU的软件生产资料,将所述待烧录MCU的软件生产资料通过安全通道发送至所述临时固件。

在可能的实施方式中,获取所述待烧录MCU的软件生产资料之前,还包括:

创建待烧录产品,所述待烧录产品使用所述待烧录MCU;

基于所述待烧录产品,创建所述待烧录产品的版本,所述待烧录产品的版本包括若干个软件生产资料;

基于所述待烧录产品的版本,创建所述待烧录产品的批次。

具体的,在云端配置相关待烧录产品的软件生产资料,软件生产资料包括固件、出厂数据、秘钥、证明和配置信息等数据。

在云盘创建一个产品,在产品中选择使用的MCU信号,根据MCU型号自动匹配临时固件,在产品中创建一个版本,选择要烧写的固件、出厂数据等软件生产资料,在版本上创建一个批次,用户选择创建的数量,可根据用户的数量自动生成对应数量的生产资料数据,并加密存储。

进一步,可同时对多个同型号待烧录MCU产品进行烧录MCU软件生产资料。

在可能的实施方式中,获取所述待烧录MCU软件生产资料,包括:

获取所述待烧录MCU的认证信息;

基于所述待烧录MCU的认证信息,得到所述待烧录MCU软件生产资料。

具体的,PC端生产工具获取待烧录MCU的认证信息,该认证信息为待烧录MCU的设备证书、UID等信息,并将认证信息通过串口发送至云端,云端根据待烧录MCU的认证信息,获得待烧录MCU的软件生产资料,并将将待烧录MCU的软件生产资料通过安全通道发送至PC端生产工具,PC端生产工具通过安全通道将待烧录MCU的软件生产资料发送至待烧录MCU中的临时固件中。

在可能的实施方式中,安全通道,包括:

基于链接申请,确定PC端生产工具与云端之间的通信;

根据通讯参数,确定PC端生产工具与MCU之间的通信。

具体地,本申请中PC端生产工具与云端之间通过双向HTTPS协议进行通信,通过单向和双向的身份验证来保证安全、可靠的通信方式。PC端生产工具向云端发送一个链接申请,该链接申请为申请生产批次的请求,可通过U-key与server建立HTTPS双向认证链接,将申请生产批次的请求发送至云端,云端接收到请求后,验证U-key合法性和鉴权U-key关联的生产批次,并将验证结果返回至PC端生产工具,其中验证结果返回的是生产批次信息,该生产批次信息包含生产批次数量和剩余可用数量等。

进一步,鉴权U-key关联的生产批次是通过使用U-key作为身份验证和授权的机制,来关联和确认请求中的生产批次的有效性和合法性,例如,在生产制造过程中,每个生产批次通常都有一个唯一的标识符,如批次号或产品序列号,并将U-key与生产批次信息进行绑定,如将批次号或产品序列号等唯一标识符存储在U-key中,在需要对该批次进行身份验证或授权操作时,通过U-key来验证身份并获取对该批次的访问权限。

进一步,HTTPS(HTTP Secure)安全协议,用于在互联网上传输数据时提供加密和安全通信,由SSL/TLS协议封装在HTTP协议上,从而在客户端和服务器之间提供安全的通信。

具体的,本申请中PC端生产工具与MCU之间通过串口进行通信,或是采用其他双向通讯接口进行通信,例如,待烧录MCU的串口首先和PC端生产工具的串口通过串口线物理连接,然后使用双方约定的通讯参数,如波特率、奇偶校验、校验位等进行通讯。

进一步,根据PC端生产工具与云端之间通过双向HTTPS协议进行通信和PC端生产工具与MCU之间通过串口或其他双向通讯接口进行通信,PC端生产工具在此用于转发数据的作用,进而实现MCU与云端之间的使用双向认证的机制建立安全通信,可防止在交互过程中将MCU中的信息泄露。

具体的,PC端生产工具将待烧录MCU的认证信息发送至云端,也就是将待烧录MCU的申请软件生产资料的请求发送至云端,该申请软件生产资料包括SNB(Server NamingBitmap)服务器命名机制、SE(安全引擎)、OS(操作系统)、SE初始化信息,SE秘钥证书,以及加密固件、加密Matter生产数据等,云端根据申请软件生产资料的请求,进行认证后,向PC端生产工具返回初始化安全生产链接鉴权,PC端生产工具将返回的初始化安全生产链接鉴权转发给待烧录MCU中,待烧录MCU的临时固件执行初始化安全生产链接鉴权,并将结果返回至PC端生产工具,PC端生产工具将该结果返回至云端,云端鉴权结果,验证成功后,将待烧录MCU的软件生产资料发送至PC端生产工具,PC端生产工具将待烧录MCU的软件生产资料发送至待烧录MCU的临时固件中。

进一步,MCU内置设备证书是少量安全性要求较高的MCU;对于没有设备证书的MCU,可以通过验证MCU UID的方式代替;若没有MCU UID的MCU设备,也可以使用Flash UID代替;若没有任何唯一标识的MCU,可以选择不验证MCU的合法性,但是安全性能会进一步降低。

进一步,PC端生产工具和云端的连接可以通过双向HTTPS,例如使用U盾来识别用户身份防止没有权限的人使用,特别是MCU不具备设备证书也不具备可识别的UID时,可通过U盾可以一定程度的增加安全性。

S130、所述临时固件将所述待烧录MCU软件生产资料写入所述待烧录MCU的Flash中。

在本发明中,待烧录MCU的临时固件接受到待烧录MCU的软件生产资料后,将待烧录MCU的软件生产资料进行解密后,烧录至待烧录MCU的Flash中,以便后续使用。

进一步,云端向待烧录MCU发送的软件生产资料是通过加密后的具有MCU安全特性的数据,例启用Flash加密、启用安全启动、关闭调试接口等,以进一步增强MCU内部的安全保护。

具体的,云端发送特定的数据或指令给待烧录MCU,以启用MCU的安全特性,例启用Flash加密可以保护MCU内部的存储数据不被非法读取;启用安全启动可以保护MCU的启动代码不被篡改;关闭调试接口可以防止黑客通过调试接口攻击MCU,通过上述的安全特性可以进一步增强MCU内部的安全保护。

本发明中,实现云端到MCU端,采用端到端的加密方式,确保数据在整个传输过程中都是密文形式。这样可以防止数据在传输过程中被窃取或非法访问,以及可对不同的设备烧录不同的内容,具体内容由云端控制,解决一设备一数据的问题。

图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行一种实现MCU软件生产资料的安全烧录方法的步骤。此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

相关技术
  • 一种基于惯导数据的高光谱图像获取系统及方法
  • 一种基于差分GPS的惯导系统姿态获取方法
技术分类

06120116517739