CN115086023B - 一种物联网固件保护方法、装置、设备及介质 - Google Patents

一种物联网固件保护方法、装置、设备及介质 Download PDF

Info

Publication number
CN115086023B
CN115086023B CN202210669064.5A CN202210669064A CN115086023B CN 115086023 B CN115086023 B CN 115086023B CN 202210669064 A CN202210669064 A CN 202210669064A CN 115086023 B CN115086023 B CN 115086023B
Authority
CN
China
Prior art keywords
firmware
key
chip
sram chip
internet
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
CN202210669064.5A
Other languages
English (en)
Other versions
CN115086023A (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.)
DBAPPSecurity Co Ltd
Original Assignee
DBAPPSecurity 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 DBAPPSecurity Co Ltd filed Critical DBAPPSecurity Co Ltd
Priority to CN202210669064.5A priority Critical patent/CN115086023B/zh
Publication of CN115086023A publication Critical patent/CN115086023A/zh
Application granted granted Critical
Publication of CN115086023B publication Critical patent/CN115086023B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y40/00IoT characterised by the purpose of the information processing
    • G16Y40/50Safety; Security of things, users, data or systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种物联网固件保护方法、装置、设备及介质,涉及物联网技术领域,包括:在物联网设备上电启动后,判断SRAM芯片中是否存在第一密钥;若存在所述第一密钥,则读取只读存储器中的固件信息以便基于所述固件信息确定是否存在固件;若确定存在所述固件,则读取FLASH芯片中的密文固件和所述SRAM芯片中的所述第一密钥;利用所述第一密钥对所述密文固件进行解密以得到解密固件,并将所述解密固件存储至RAM芯片以及运行所述解密固件。本申请中由于第一密钥存储在具有独立电池供电的SRAM芯片中,而SRAM芯片具有掉电丢失数据的特性,能防止密钥被泄露;并且,解密固件同样存储在具有掉电后丢失数据特性的RAM芯片中,保证了固件的安全性和设备的稳定性。

Description

一种物联网固件保护方法、装置、设备及介质
技术领域
本发明涉及物联网技术领域,特别涉及一种物联网固件保护方法、装置、设备及介质。
背景技术
随着物联网设备的不断发展,经常会发生破解、克隆和抄袭的问题,其中固件可以指由物联网设备运行的程序,一般固化在存储芯片之中,如ROM(Read Only Memory,即只读存储器)、FLASH(即闪存)等,负责控制和协调集成电路的功能。随着电路板克隆技术的提高,物联网设备的电路及软件均可被破解,即:硬件电路可以被抄板,而存储在ROM、FLASH中的软件则可被特殊工具读出。因此,这样的产品几乎没有防破解能力,研制开发人员花费大量的心血和资金经过长期研制而成的产品就被人轻而易举地窃取了。目前,市场上甚至还发展出了成熟的破解、克隆和抄袭产业链,在读取到固件后,即使无法克隆,也可通过逆向技术进行破解和抄袭,与被抄袭厂家形成恶意竞争,甚至用以次充好的产品扰乱市场,从而对物联网设备销售市场形成了恶性影响。固件保护的基本原则是对硬件电路和软件程序均采取一切可用的方法增加其固件的读出难度,防止通过硬件电路的测试使固件被读取后进行破解、克隆和抄袭。
现有技术中,提出了一种利用在电子设备的使用阶段,若需要运行所述关键代码或使用所述关键数据,则以MCU(Microcontroller Unit,即微控制单元)自身ID为密钥,对FLASH中所存储的固件密文进行解密,以获取关键代码或关键数据,并运行关键代码或使用关键数据的解决方案。也即通过采用以MCU自身唯一ID为密钥,对FLASH中存储的密文固件进行加密、解密的解决方式,然而该方法仍存在密钥唯一性和密钥可被获取的技术缺陷,由于MCU的密钥唯一性会在MCU损坏时,造成密钥的丢失,从而无法对关键代码和关键数据进行解密,使得电子设备只能更换不能维修,增加了设备成本;另外,可通过特殊工具单独读取FLASH中的密文固件,再重新编写固件获取MCU自身的ID,获取到ID后对读取的固件进行解密,从而进一步的通过逆向技术进行破解、克隆和抄袭。
综上,如何提高固件的防破解能力,以保护物联网固件不被窃取和读取是目前有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种物联网固件保护方法、装置、设备及介质,能够提高固件的防破解能力,以保护物联网固件不被窃取和读取。其具体方案如下:
第一方面,本申请公开了一种物联网固件保护方法,包括:
在物联网设备上电启动后,判断SRAM芯片中是否存在第一密钥;
若存在所述第一密钥,则读取只读存储器中的固件信息以便基于所述固件信息确定是否存在固件;
若确定存在所述固件,则读取FLASH芯片中的密文固件和所述SRAM芯片中的所述第一密钥;
利用所述第一密钥对所述密文固件进行解密以得到解密固件,并将所述解密固件存储至RAM芯片以及运行所述解密固件。
可选的,所述物联网固件保护方法,还包括:
在所述生产阶段通过所述预设生产程序基于所述SRAM芯片的序列号向服务器发送密钥获取请求以获取第一密钥,并将所述第一密钥写入至所述SRAM芯片。
可选的,所述通过所述预设生产程序基于所述SRAM芯片的序列号向服务器发送密钥获取请求以获取第一密钥,包括:
通过所述预设生产程序基于所述SRAM芯片的序列号向服务器发送密钥获取请求以便所述服务器生成与所述序列号对应的密钥对;其中,所述密钥对包括第一密钥和第二密钥;
通过所述预设生产程序获取所述服务器发送的所述第一密钥。
可选的,所述物联网固件保护方法,还包括:
通过所述服务器对所述SRAM芯片的序列号和所述第二密钥进行绑定并保存;
相应的,所述读取只读存储器中的固件信息以确定是否存在固件之后,还包括:
若确定不存在,则基于所述SRAM芯片的序列号向服务器发送固件下载请求,以便所述服务器利用对应的所述第二密钥对所述固件进行加密得到密文固件;
获取所述服务器发送的所述密文固件和相应的固件信息,并将所述密文固件和所述固件信息分别写入所述FLASH芯片和所述只读存储器,然后执行所述分别读取FLASH芯片中的密文固件和所述SRAM芯片中的所述第一密钥的步骤。
可选的,所述将所述第一密钥写入至所述SRAM芯片的过程中,还包括:
若所述第一密钥写入所述SRAM芯片失败,则重新跳转至所述通过所述预设生产程序基于所述SRAM芯片的序列号向服务器发送密钥获取请求以获取第一密钥的步骤,直到所述第一密钥成功写入所述SRAM芯片。
可选的,所述若确定存在所述固件之后,还包括:
判断是否升级所述固件;
若是,则重新跳转至所述基于所述SRAM芯片的序列号向服务器发送固件下载请求的步骤;
若否,则执行所述读取FLASH芯片中的密文固件和所述SRAM芯片中的所述第一密钥的步骤。
可选的,所述判断所述SRAM芯片中是否存在第一密钥之后,还包括:
若所述SRAM芯片中不存在第一密钥,则向所述服务器上报异常信息,并结束运行。
第二方面,本申请公开了一种物联网固件保护装置,包括:
判断模块,用于在物联网设备上电启动后,判断SRAM芯片中是否存在第一密钥;
第一信息读取模块,用于若存在所述第一密钥,则读取只读存储器中的固件信息以便基于所述固件信息确定是否存在固件;
第二信息读取模块,用于若确定存在所述固件,则读取FLASH芯片中的密文固件和所述SRAM芯片中的所述第一密钥;
解密模块,用于利用所述第一密钥对所述密文固件进行解密以得到解密固件,并将所述解密固件存储至RAM芯片以及运行所述解密固件。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的物联网固件保护方法的步骤。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的物联网固件保护方法的步骤。
可见,本申请在物联网设备上电启动后,判断SRAM芯片中是否存在第一密钥;若存在所述第一密钥,则读取只读存储器中的固件信息以便基于所述固件信息确定是否存在固件;若确定存在所述固件,则读取FLASH芯片中的密文固件和所述SRAM芯片中的所述第一密钥;利用所述第一密钥对所述密文固件进行解密以得到解密固件,并将所述解密固件存储至RAM芯片以及运行所述解密固件。由此可见,本申请在物联网设备上电启动后,首先需要判断SRAM芯片中是否存在第一密钥,若存在,则进一步读取只读存储器中的固件信息以确定是否存在固件,若也存在,则分别从FLASH芯片中读取密文固件以及从SRAM芯片中读取第一密钥,然后则利用第一密钥对密文固件进行解密得到解密固件,并存储至RAM芯片中。通过上述技术方案,由于第一密钥存储在具有独立电池供电的SRAM芯片中,且SRAM芯片具有掉电丢失数据的特性,若物联网设备遭遇拆解,SRAM芯片会立即断电,从而丢失SRAM芯片中存储的第一密钥,保证不法分子即使通过特殊工具读取到FLASH芯片中的密文固件,也无法获得第一密钥进行解密;并且,考虑到物联网设备具有长时间运行的特性,解密固件同样存储在具有掉电后丢失数据特性的RAM芯片中,具有更快的运行速度,非法分子也无法读取RAM中的数据,保证了固件的安全性和设备的稳定性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种物联网固件保护方法流程图;
图2为本申请公开的一种具体的物联网固件保护方法流程图;
图3为本申请公开的一种生产阶段利用生产程序获取第一密钥的流程图;
图4为本申请公开的一种生产阶段外利用引导程序获取密文固件的流程图;
图5为本申请公开的一种物联网固件保护装置结构示意图;
图6为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,市场上甚至还发展出了成熟的破解、克隆和抄袭产业链,在读取到固件后,即使无法克隆,也可通过逆向技术进行破解和抄袭,与被抄袭厂家形成恶意竞争,甚至用以次充好的产品扰乱市场,从而对物联网设备销售市场形成了恶性影响。为此,本申请实施例公开了一种物联网固件保护方法、装置、设备及介质,能够提高固件的防破解能力,以保护物联网固件不被窃取和读取。
参见图1所示,本申请实施例公开了一种物联网固件保护方法,该方法包括:
步骤S11:在物联网设备上电启动后,判断SRAM芯片中是否存在第一密钥。
本实施例中,物联网设备上电启动,并判断SRAM(Static Random-Access Memory,即静态随机存取存储器)芯片中是否存在第一密钥。本申请的方法应用于引导程序,需要注意的是,对于SRAM芯片而言只要供电,数据就会保持,但断电后数据就会消失,那么若物联网设备遭遇拆解,SRAM芯片会立即断电,从而丢失SRAM芯片中存储的第一密钥,保证不法分子即使通过特殊工具读取到FLASH芯片中的密文固件,也无法获得第一密钥进行解密。
上述判断所述SRAM芯片中是否存在第一密钥之后,还包括:若所述SRAM芯片中不存在第一密钥,则向所述服务器上报异常信息,并结束运行。也即,若设备由于意外导致SRAM芯片丢失了第一密钥,引导程序会第一时间将异常信息上报服务器,并终止运行,以便设备厂商可以更快的维修设备,做到更好的客户服务。
步骤S12:若存在所述第一密钥,则读取只读存储器中的固件信息以便基于所述固件信息确定是否存在固件。
本实施例中,若SRAM芯片中存在第一密钥,则进一步读取只读存储器中的固件信息以便基于所述固件信息确定是否存在固件。固件信息可以包括固件编号,存储位置以及相关配置文件信息,那么通过读取固件信息能够确定当前是否存在固件。
步骤S13:若确定存在所述固件,则读取FLASH芯片中的密文固件和所述SRAM芯片中的所述第一密钥。
本实施例中,当确定存在固件后,则读取FLASH芯片中存储的密文固件以及SRAM芯片中存储的第一密钥。
步骤S14:利用所述第一密钥对所述密文固件进行解密以得到解密固件,并将所述解密固件存储至RAM芯片以及运行所述解密固件。
本实施例中,在读取到第一密钥和密文固件后,则利用第一密钥对密文固件进行解密以得到解密固件,然后将解密固件存储至RAM(random access memory,即随机存取存储器)芯片中,以及运行RAM芯片中的解密固件。考虑到物联网设备具有长时间运行的特性,解密固件同样存储在具有掉电后丢失数据特性的RAM芯片中,具有更快的运行速度,非法分子也无法读取RAM中的数据,保证了固件的安全性和设备的稳定性。
可见,本申请在物联网设备上电启动后,判断SRAM芯片中是否存在第一密钥;若存在所述第一密钥,则读取只读存储器中的固件信息以便基于所述固件信息确定是否存在固件;若确定存在所述固件,则读取FLASH芯片中的密文固件和所述SRAM芯片中的所述第一密钥;利用所述第一密钥对所述密文固件进行解密以得到解密固件,并将所述解密固件存储至RAM芯片以及运行所述解密固件。由此可见,本申请在物联网设备上电启动后,首先需要判断SRAM芯片中是否存在第一密钥,若存在,则进一步读取只读存储器中的固件信息以确定是否存在固件,若也存在,则分别从FLASH芯片中读取密文固件以及从SRAM芯片中读取第一密钥,然后则利用第一密钥对密文固件进行解密得到解密固件,并存储至RAM芯片中。通过上述技术方案,由于第一密钥存储在具有独立电池供电的SRAM芯片中,且SRAM芯片具有掉电丢失数据的特性,若物联网设备遭遇拆解,SRAM芯片会立即断电,从而丢失SRAM芯片中存储的第一密钥,保证不法分子即使通过特殊工具读取到FLASH芯片中的密文固件,也无法获得第一密钥进行解密;并且,考虑到物联网设备具有长时间运行的特性,解密固件同样存储在具有掉电后丢失数据特性的RAM芯片中,具有更快的运行速度,非法分子也无法读取RAM中的数据,保证了固件的安全性和设备的稳定性。
参见图2所示,本申请实施例公开了一种具体的物联网固件保护方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体包括:
步骤S21:在所述生产阶段通过所述预设生产程序基于所述SRAM芯片的序列号向服务器发送密钥获取请求以获取第一密钥,并将所述第一密钥写入至所述SRAM芯片。
本实施例中,在生产阶段通过预设生产程序基于SRAM芯片的序列号向服务器发送密钥获取请求以获取第一密钥,具体可以为:通过所述预设生产程序基于所述SRAM芯片的序列号向服务器发送密钥获取请求以便所述服务器生成与所述序列号对应的密钥对;其中,所述密钥对包括第一密钥和第二密钥;通过所述预设生产程序获取所述服务器发送的所述第一密钥。参见图3所示,图3为本申请公开的一种在生产阶段利用生产程序获取第一密钥的流程图,在生产阶段时,先通过生产工具向只读存储器中写入预设生产程序,工厂可以批量烧录生产程序至只读存储器,并在物联网设备上电启动后,利用预设生产程序读取SRAM芯片的序列号以便基于该序列号向服务器发送密钥获取请求,服务器在收到密钥获取请求后,则生成与序列号对应的密钥对,密钥对包括第一密钥和第二密钥;具体的,服务器通过RSA算法生成密钥对,包括作为私钥的第一密钥和作为公钥的第二密钥,其中,RSA算法是一种非对称加密算法;然后将第一密钥下发至物联网设备,以及将第一密钥写入在SRAM芯片中。通过上述方式,生产工具只用烧录一次生产程序,并且是通过非对称加密算法形成密钥对,在提高生产效率的同时,也防止了在生产阶段固件被窃取的风险。上述过程还包括:通过所述服务器对所述SRAM芯片的序列号和所述第二密钥进行绑定并保存,也即,作为公钥的第二密钥与SRAM芯片的序列号形成记录保存在服务器。
进一步的,如图3中所示,上述将所述第一密钥写入至所述SRAM芯片的过程中,还包括:若所述第一密钥写入所述SRAM芯片失败,则重新跳转至所述通过所述预设生产程序基于所述SRAM芯片的序列号向服务器发送密钥获取请求以获取第一密钥的步骤,直到所述第一密钥成功写入所述SRAM芯片。也即,在将第一密钥写入SRAM芯片时,可能会出现写入失败的问题,此时则重新执行通过所述预设生产程序基于所述SRAM芯片的序列号向服务器发送密钥获取请求以获取第一密钥的步骤,直到第一密钥成功写入所述SRAM芯片。需要指出的是,在写入成功后,则通过预设生产程序向服务器请求下载引导程序,并将引导程序写入至只读存储器中。
步骤S22:在物联网设备上电启动后,判断SRAM芯片中是否存在第一密钥。
本实施例中,由于生产阶段已经将引导程序写入了只读存储器中,因此在生产阶段以外,在物联网设备上电启动后则利用引导程序判断SRAM芯片中是否存在第一密钥。
步骤S23:若存在所述第一密钥,则读取只读存储器中的固件信息以便基于所述固件信息确定是否存在固件。
步骤S24:若确定存在所述固件,则读取FLASH芯片中的密文固件和所述SRAM芯片中的所述第一密钥。
本实施例中,具体参见图4所示,图4为本申请公开的一种在生产阶段外利用引导程序获取密文固件的流程图,上述若确定存在所述固件之后,还包括:判断是否升级所述固件;若是,则重新跳转至所述基于所述SRAM芯片的序列号向服务器发送固件下载请求的步骤;若否,则执行所述读取FLASH芯片中的密文固件和所述SRAM芯片中的所述第一密钥的步骤。也即,当确定存在固件后,则还需判断是否升级固件,若升级,则重新根据SRAM芯片的序列号向服务器请求下载新的固件,若不升级,则执行读取FLASH芯片中的密文固件和所述SRAM芯片中的所述第一密钥的步骤。为了不影响物联网设备的长时间使用,固件的升级检测也由引导程序在物联网设备上电运行后完成,固件升级的过程中,由于采用的非对称加密算法,即使通过网络技术获取了升级固件,也无法解密,保证了固件在升级过程中的安全性和设备的可修改性。
在另一种具体实施例中,上述方法还包括:若确定不存在,则基于所述SRAM芯片的序列号向服务器发送固件下载请求,以便所述服务器利用对应的所述第二密钥对所述固件进行加密得到密文固件;获取所述服务器发送的所述密文固件和相应的固件信息,并将所述密文固件和所述固件信息分别写入所述FLASH芯片和所述只读存储器,然后执行所述分别读取FLASH芯片中的密文固件和所述SRAM芯片中的所述第一密钥的步骤。可以理解的是,若不存在固件,则基于SRAM芯片的序列号向服务器发送固件下载请求,以便服务器利用对应的第二密钥对固件进行加密得到密文固件,由于在服务器端对SRAM芯片的序列号和第二密钥进行绑定并保存,第二密钥即公钥,那么利用对应的公钥对固件进行加密以得到密文固件;然后服务器下发密文固件和固件信息,引导程序则下载密文固件和固件信息,并将密文固件和固件信息分别写入FLASH芯片和只读存储器,后续执行分别读取FLASH芯片中的密文固件和SRAM芯片中的第一密钥的步骤,以完成解密操作。上述过程中,由于服务器是将加密后的密文固件并下发至物联网设备,防止了密钥由于网络传输导致的泄露,并且,本方案将固件信息和配置信息等存储于只读存储器,在密钥丢失的情况下,也可以通过新的密钥和与新的固件密文(由固件信息确定的固件生成)恢复使用,保证了设备的可用性。
步骤S25:利用所述第一密钥对所述密文固件进行解密以得到解密固件,并将所述解密固件存储至RAM芯片以及运行所述解密固件。
其中,关于上述步骤S23和S25更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本申请实施例中,在生产阶段通过预设生产程序基于SRAM芯片的序列号向服务器发送密钥获取请求以获取第一密钥,并将第一密钥写入至SRAM芯片,以及从服务器下载引导程序并写入只读存储器中;而在后续阶段,则利用引导程序从服务器下载密文固件,以及利用生产阶段获取的第一密钥对密文固件进行解密得到解密固件,最后将解密固件存储至RAM芯片以及运行解密固件。如此一来,本申请通过使用不同程序分阶段向服务器获取第一密钥和固件,防止了固件被窃取和读取,同时有更低的维护成本,保证了设备的稳定性和易用性。另外,通过本申请的技术方案,在对固件进行升级时也能确保固件升级更新过程中的安全性与便捷性。
参见图5所示,本申请实施例公开了一种物联网固件保护装置,该装置包括:
判断模块11,用于在物联网设备上电启动后,判断SRAM芯片中是否存在第一密钥;
第一信息读取模块12,用于若存在所述第一密钥,则读取只读存储器中的固件信息以便基于所述固件信息确定是否存在固件;
第二信息读取模块13,用于若确定存在所述固件,则读取FLASH芯片中的密文固件和所述SRAM芯片中的所述第一密钥;
解密模块14,用于利用所述第一密钥对所述密文固件进行解密以得到解密固件,并将所述解密固件存储至RAM芯片以及运行所述解密固件。
可见,本申请在物联网设备上电启动后,判断SRAM芯片中是否存在第一密钥;若存在所述第一密钥,则读取只读存储器中的固件信息以便基于所述固件信息确定是否存在固件;若确定存在所述固件,则读取FLASH芯片中的密文固件和所述SRAM芯片中的所述第一密钥;利用所述第一密钥对所述密文固件进行解密以得到解密固件,并将所述解密固件存储至RAM芯片以及运行所述解密固件。由此可见,本申请在物联网设备上电启动后,首先需要判断SRAM芯片中是否存在第一密钥,若存在,则进一步读取只读存储器中的固件信息以确定是否存在固件,若也存在,则分别从FLASH芯片中读取密文固件以及从SRAM芯片中读取第一密钥,然后则利用第一密钥对密文固件进行解密得到解密固件,并存储至RAM芯片中。通过上述技术方案,由于第一密钥存储在具有独立电池供电的SRAM芯片中,且SRAM芯片具有掉电丢失数据的特性,若物联网设备遭遇拆解,SRAM芯片会立即断电,从而丢失SRAM芯片中存储的第一密钥,保证不法分子即使通过特殊工具读取到FLASH芯片中的密文固件,也无法获得第一密钥进行解密;并且,考虑到物联网设备具有长时间运行的特性,解密固件同样存储在具有掉电后丢失数据特性的RAM芯片中,具有更快的运行速度,非法分子也无法读取RAM中的数据,保证了固件的安全性和设备的稳定性。
图6为本申请实施例提供的一种电子设备的结构示意图。具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的由电子设备执行的物联网固件保护方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows、Linux、FreeRTOS等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的物联网固件保护方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223除了可以包括电子设备接收到的由外部设备传输进来的数据,也可以包括由自身输入输出接口25采集到的数据等。
进一步的,本申请实施例还公开了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的由物联网固件保护过程中执行的方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种物联网固件保护方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种物联网固件保护方法,其特征在于,包括:
在物联网设备上电启动后,判断SRAM芯片中是否存在第一密钥;
若存在所述第一密钥,则读取只读存储器中的固件信息以便基于所述固件信息确定是否存在固件;
若确定存在所述固件,则读取FLASH芯片中的密文固件和所述SRAM芯片中的所述第一密钥;
利用所述第一密钥对所述密文固件进行解密以得到解密固件,并将所述解密固件存储至RAM芯片以及运行所述解密固件。
2.根据权利要求1所述的物联网固件保护方法,其特征在于,还包括:
在生产阶段通过预设生产程序基于所述SRAM芯片的序列号向服务器发送密钥获取请求以获取第一密钥,并将所述第一密钥写入至所述SRAM芯片。
3.根据权利要求2所述的物联网固件保护方法,其特征在于,所述通过预设生产程序基于所述SRAM芯片的序列号向服务器发送密钥获取请求以获取第一密钥,包括:
通过预设生产程序基于所述SRAM芯片的序列号向服务器发送密钥获取请求以便所述服务器生成与所述序列号对应的密钥对;其中,所述密钥对包括第一密钥和第二密钥;
通过所述预设生产程序获取所述服务器发送的所述第一密钥。
4.根据权利要求3所述的物联网固件保护方法,其特征在于,还包括:
通过所述服务器对所述SRAM芯片的序列号和所述第二密钥进行绑定并保存;
相应的,所述读取只读存储器中的固件信息以确定是否存在固件之后,还包括:
若确定不存在,则基于所述SRAM芯片的序列号向服务器发送固件下载请求,以便所述服务器利用对应的所述第二密钥对所述固件进行加密得到密文固件;
获取所述服务器发送的所述密文固件和相应的固件信息,并将所述密文固件和所述固件信息分别写入所述FLASH芯片和所述只读存储器,然后执行所述读取FLASH芯片中的密文固件和所述SRAM芯片中的所述第一密钥的步骤。
5.根据权利要求2所述的物联网固件保护方法,其特征在于,所述将所述第一密钥写入至所述SRAM芯片的过程中,还包括:
若所述第一密钥写入所述SRAM芯片失败,则重新跳转至所述通过所述预设生产程序基于所述SRAM芯片的序列号向服务器发送密钥获取请求以获取第一密钥的步骤,直到所述第一密钥成功写入所述SRAM芯片。
6.根据权利要求4所述的物联网固件保护方法,其特征在于,所述若确定存在所述固件之后,还包括:
判断是否升级所述固件;
若是,则重新跳转至所述基于所述SRAM芯片的序列号向服务器发送固件下载请求的步骤;
若否,则执行所述读取FLASH芯片中的密文固件和所述SRAM芯片中的所述第一密钥的步骤。
7.根据权利要求2至6任一项所述的物联网固件保护方法,其特征在于,所述判断SRAM芯片中是否存在第一密钥之后,还包括:
若所述SRAM芯片中不存在第一密钥,则向所述服务器上报异常信息,并结束运行。
8.一种物联网固件保护装置,其特征在于,包括:
判断模块,用于在物联网设备上电启动后,判断SRAM芯片中是否存在第一密钥;
第一信息读取模块,用于若存在所述第一密钥,则读取只读存储器中的固件信息以便基于所述固件信息确定是否存在固件;
第二信息读取模块,用于若确定存在所述固件,则读取FLASH芯片中的密文固件和所述SRAM芯片中的所述第一密钥;
解密模块,用于利用所述第一密钥对所述密文固件进行解密以得到解密固件,并将所述解密固件存储至RAM芯片以及运行所述解密固件。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的物联网固件保护方法的步骤。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的物联网固件保护方法的步骤。
CN202210669064.5A 2022-06-14 2022-06-14 一种物联网固件保护方法、装置、设备及介质 Active CN115086023B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210669064.5A CN115086023B (zh) 2022-06-14 2022-06-14 一种物联网固件保护方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210669064.5A CN115086023B (zh) 2022-06-14 2022-06-14 一种物联网固件保护方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN115086023A CN115086023A (zh) 2022-09-20
CN115086023B true CN115086023B (zh) 2024-04-26

Family

ID=83251503

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210669064.5A Active CN115086023B (zh) 2022-06-14 2022-06-14 一种物联网固件保护方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN115086023B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101179379A (zh) * 2007-12-11 2008-05-14 中兴通讯股份有限公司 用于微波接入全球互通系统的固件安全管理方法
CN111435394A (zh) * 2019-01-15 2020-07-21 阿里巴巴集团控股有限公司 基于fpga硬件的安全计算方法和装置
CN114266055A (zh) * 2022-03-02 2022-04-01 山东华翼微电子技术股份有限公司 一种多核固件安全存储方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2978158A1 (en) * 2014-07-21 2016-01-27 Nxp B.V. Methods and architecture for encrypting and decrypting data
CN113656086A (zh) * 2020-04-28 2021-11-16 瑞昱半导体股份有限公司 安全存储及加载固件的方法及电子装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101179379A (zh) * 2007-12-11 2008-05-14 中兴通讯股份有限公司 用于微波接入全球互通系统的固件安全管理方法
CN111435394A (zh) * 2019-01-15 2020-07-21 阿里巴巴集团控股有限公司 基于fpga硬件的安全计算方法和装置
CN114266055A (zh) * 2022-03-02 2022-04-01 山东华翼微电子技术股份有限公司 一种多核固件安全存储方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于STM32高安全性Bootloader的研究;刘细华;赵立宏;;电子技术与软件工程;20131001(第19期);全文 *

Also Published As

Publication number Publication date
CN115086023A (zh) 2022-09-20

Similar Documents

Publication Publication Date Title
US9904557B2 (en) Provisioning of operating systems to user terminals
TW202009778A (zh) 韌體升級方法及裝置
CN104462965B (zh) 应用程序完整性验证方法及网络设备
CN102171704B (zh) 用硬件加密存储设备进行外部加密和恢复管理
US20150095652A1 (en) Encryption and decryption processing method, apparatus, and device
EP2005356A1 (en) Authentication of a request to alter at least one of a bios and a setting associated with the bios
KR20070059380A (ko) 내장 전원이 구비되지 않은 기기에서의 안전 클럭 구현방법 및 장치
CN111200593A (zh) 应用登录方法、装置和电子设备
US10223249B2 (en) Test methodology for detection of unwanted cryptographic key destruction
CN115795513A (zh) 文件加密和文件解密方法、装置以及设备
US10397205B2 (en) Recording data and using the recorded data
CN115086023B (zh) 一种物联网固件保护方法、装置、设备及介质
CN111381850B (zh) 一种bios固件的升级方法、装置、设备及介质
CN117201120A (zh) 一种信息加密方法、装置、计算机设备及存储介质
CN114139221B (zh) 密钥状态检测方法、装置、设备及介质
CN100472391C (zh) 许可信息管理设备和许可信息管理方法
CN115543386A (zh) 一种固件加密方法、解密方法、处理装置及介质
CN112567414A (zh) 运行智能合约的方法和装置
CN111142902B (zh) 处理器的升级固件保护方法、装置及车辆
CN114154164A (zh) 一种fpga安全启动的方法、装置、设备及可读介质
CN110516468B (zh) 一种虚拟机内存快照加密的方法和装置
WO2019140673A1 (zh) 信息转移的方法、装置、存储介质及电子设备
JP2014222420A (ja) 半導体記憶装置及びデータ処理システム
CN111241602B (zh) Fpga的ip核加载方法、装置及电子设备
CN117768218A (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