CN115344832A - 通过一起传递加密和数据的安全装置更新 - Google Patents
通过一起传递加密和数据的安全装置更新 Download PDFInfo
- Publication number
- CN115344832A CN115344832A CN202210451705.XA CN202210451705A CN115344832A CN 115344832 A CN115344832 A CN 115344832A CN 202210451705 A CN202210451705 A CN 202210451705A CN 115344832 A CN115344832 A CN 115344832A
- Authority
- CN
- China
- Prior art keywords
- memory
- firmware
- digest
- algorithm
- decryption
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 48
- 238000004519 manufacturing process Methods 0.000 claims description 6
- 125000004122 cyclic group Chemical group 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Images
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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- 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/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
一种用于更新装置的固件的方法和***。一种方法包括:接收用于对经加密的固件进行解密的解密引擎,将所述解密引擎加载至装置的第一存储器中,以及接收所述经加密的固件。所述方法可包括:从所述装置的第二存储器获得预存储的加密密钥,其中所述第二存储器是与所述第一存储器不同类型的存储器;以及使用所述加密密钥和所述解密引擎对所述经加密的固件进行解密,其中对所述经加密的固件的所述解密在所述第一存储器中进行。
Description
技术领域
示例性实施例涉及装置更新的领域,并且更特定地涉及通过一起传递加密和数据来执行安全装置更新。
背景技术
固件提供硬件在装置(例如火灾检测器等)上正确操作所需的指令集或代码。在如今的环境中,固件可被更新以修复程序错误(bug)或者向装置添加功能性。这些固件更新通常通过加密算法来保护。但是,在诸如火灾检测器之类的某些装置中,因为火灾检测器通常具有少量的可重新编程存储器,所以强加密算法因可用代码空间的有限量而不被使用。如此,存在对固件的未经授权复制和/或反向工程的潜在风险。因此,仍然需要用于保护此类固件更新的方式。
发明内容
根据实施例,提供了一种用于更新固件的方法。所述方法可包括:接收用于对经加密的固件进行解密的解密引擎;将所述解密引擎加载至装置的第一存储器中;以及接收所述经加密的固件。所述方法还可包括:从所述装置的第二存储器获得预存储的加密密钥,其中所述第二存储器是与所述第一存储器不同类型的存储器;以及使用所述加密密钥和所述解密引擎对所述经加密的固件进行解密,其中对所述经加密的固件的所述解密在所述第一存储器中进行。
除本文所述特征中的一个或多个之外或作为备选,进一步的实施例包括,作为随机存取存储器(RAM)的第一存储器,以及作为非易失性存储器(NVM)的第二存储器。
除本文所述特征中的一个或多个之外或作为备选,进一步的实施例包括,通过将所述装置中存储的摘要与所述解密引擎的经计算的摘要进行比较,在接收所述经加密的固件之前认证所述解密引擎。
除本文所述特征中的一个或多个之外或作为备选,进一步的实施例包括,在所述第一存储器中比较第一摘要和第二摘要,其中所述第一摘要对应于所述解密算法,并且所述第二摘要对应于所选引导加载程序代码部分与所述解密算法的多个XOR运算的输出。
除本文所述特征中的一个或多个之外或作为备选,进一步的实施例包括,响应于所述认证,执行所述解密引擎以对所述经加密的固件进行解密。
除本文所述特征中的一个或多个之外或作为备选,进一步的实施例包括,实现第二加密算法,其中所述第二算法不同于所述第一算法。
除本文所述特征中的一个或多个之外或作为备选,进一步的实施例包括,使用只是所述装置和所述制造方已知的所述预存储的密钥对所述经加密的固件进行解密。
除本文所述特征中的一个或多个之外或作为备选,进一步的实施例包括,使用预存储的密钥,所述预存储的密钥在制造期间被编程,并且不通过网络来传送以被存储在所述装置中。
除本文所述特征中的一个或多个之外或作为备选,进一步的实施例包括,在所述第二存储器中更新固件之前使用循环冗余校验(CRC)来验证所解密的经加密的固件。
除本文所述特征中的一个或多个之外或作为备选,进一步的实施例包括,作为火灾检测器的装置。
根据实施例,提供了一种用于更新固件的***。所述***可包括:所述装置的第一存储器;所述装置的第二存储器,所述第二存储器被配置有固件,其中所述第一存储器不同于所述第二存储器;以及处理器。所述处理器被配置成:接收用于对经加密的固件进行解密的解密引擎;将所述解密引擎加载至装置的所述第一存储器中;以及接收所述经加密的固件。所述处理器进一步被配置成:从所述装置的所述第二存储器获得预存储的加密密钥,其中所述第二存储器是与所述第一存储器不同类型的存储器;以及使用所述加密密钥和所述解密引擎对所述经加密的固件进行解密,其中对所述经加密的固件的所述解密在所述第一存储器中进行。
除本文所述特征中的一个或多个之外或作为备选,进一步的实施例包括,作为随机存取存储器(RAM)的第一存储器,以及作为非易失性存储器(NVM)的第二存储器。
除本文所述特征中的一个或多个之外或作为备选,进一步的实施例包括,使用所述第一存储器,所述第一存储器被配置成通过将所述装置中存储的摘要与所述解密引擎的经计算的摘要进行比较,在接收所述经加密的固件之前认证所述解密引擎。
除本文所述特征中的一个或多个之外或作为备选,进一步的实施例包括,在所述第一存储器中比较第一摘要和第二摘要,其中所述第一摘要对应于所述解密算法,并且所述第二摘要对应于所选引导加载程序代码部分与所述解密算法的多个XOR运算的输出。
除本文所述特征中的一个或多个之外或作为备选,进一步的实施例包括,响应于所述认证,在所述第一存储器中执行所述解密引擎以对所述经加密的固件进行解密。
除本文所述特征中的一个或多个之外或作为备选,进一步的实施例包括,实现第二加密算法,其中所述第二算法不同于所述第一算法。
除本文所述特征中的一个或多个之外或作为备选,进一步的实施例包括,其中所述第一存储器被配置成使用只是所述装置和所述制造方已知的所述预存储的密钥对所述经加密的固件进行解密。
除本文所述特征中的一个或多个之外或作为备选,进一步的实施例包括,第二存储器,所述第二存储器存储所述预存储的密钥并在制造期间被编程。
除本文所述特征中的一个或多个之外或作为备选,进一步的实施例包括,在所述第二存储器中更新固件之前使用循环冗余校验(CRC)来验证所解密的经加密的固件。
除本文所述特征中的一个或多个之外或作为备选,进一步的实施例包括,作为火灾检测器的装置。
本公开的实施例的技术效果包括使能在具有有限存储器的装置中使用复杂加密方案。
上述特征和元素可采用各种组合而无排它性地进行组合,除非另有明确指示。根据以下描述和附图,这些特征和元素以及其操作将变得更加明白。但是,应当理解,以下描述和附图旨在实际上是说明性和解释性的,而非限制性的。
附图说明
以下描述无论如何都不应当被认为是限制性的。参照附图,相似元件被相似地编号:
图1描绘了根据一个或多个实施例的、用于更新固件的架构的示例图示;
图2描绘了根据一个或多个实施例的、用于更新固件的过程的示例;
图3描绘了根据一个或多个实施例的、用于动态选择加密方法以供固件更新的分发期间使用的架构的示例图示;
图4描绘了根据一个或多个实施例的、用于验证解密算法/引擎的另一过程;
图5描绘了根据本公开的一个或多个实施例的、用于验证解密算法的示例过程;以及
图6描绘了根据本公开的一个或多个实施例的、用于更新固件的方法的流程图。
具体实施方式
固件是包括特定指令集的代码,所述特定指令集为装置的特定硬件提供低等级控制,并且固件通常被存储在硬件装置的非易失性存储器(NVM)(诸如ROM、EPROM、EEPROM和闪速存储器)中。虽然ROM是“只读存储器”,但是闪速ROM可被擦除和重写,因为它是一种可重新编程存储器。传统上,在诸如火灾检测器之类的装置中,NVM具有有限容量,并且包含装置的程序代码/固件。由于装置成本优化,存在极少空间留给未来代码更新。
因装置的NVM中的有限容量,没有用于添加强加密算法的空间。当使用加密时,解密算法被存储在NVM中,并且用来执行复杂解密,但是当前固件更新未被加密。因此,装置易受攻击或者代码处于拦截的风险中。这可以使能装置的不必要操纵或者对代码的反向工程。
另一方面,如果使用加密,则传统上使用的加密方案是简单加密方案,该简单加密方案不如更复杂加密方案那么安全,该更复杂加密方案通过本文所述的本公开的一个或多个实施例的技术所实现。
通常,诸如火灾检测器和其它器具(其它器具可包括恒温器、运动检测器等)之类的装置使用具有少量可重新编程存储器(闪速存储器)并且不具有集成硬件加密的简单微控制器。但是,此类装置中的RAM仍然可具有足够容量可用于加载和执行RAM中的解密算法。这使能通过分发加密代码和经加密的固件(加密密钥未被分发)来执行安全更新过程的能力。一旦解密算法被加载至RAM中并且被授权,则使用所述解密算法通过装置上存储的密钥对经加密的固件数据进行解密。本文所述的技术允许使用多个加密算法,其中算法的数量取决于装置中存储的密钥的数量。
存在这样的需要:通过利用强加密算法来保护固件分发并保护更新过程而保护装置免受对固件的未经授权复制或反向工程。技术效果及益处包括增加分发经加密的固件的安全性,以及在具有有限存储器的装置内执行复杂加密/固件更新。
图1描绘了根据本公开的一个或多个实施例的、用于更新装置的固件的架构100的图示。在制造方102处使用密钥124和/或加密代码122对装置固件120进行加密。如图1中所示,解密引擎110(密码算法)未由制造方102来编程至装置104中。由于解密引擎110未被编程至装置104的存储器中,因此装置104可在装置104处执行固件120更新之前下载解密引擎110。在本公开的一个或多个实施例中,解密引擎110可从外部源获得,并且因此不要求加密。在一个或多个实施例中,解密引擎110可以是具有引导加载程序代码的所选部分的多个XOR运算的结果,从而使得它对潜在攻击者看来是随机数据。解密引擎110可包括但不限于解密算法,诸如DES、AES和RSA。应当理解,在本公开的一个或多个方面中可使用其它复杂加密/解密算法。解密引擎110接收输入数据集合(经加密的文件)和一个或多个密钥,以产生诸如经解密的文件之类的输出数据。
仍然参照图1,装置104可包括但不限于诸如火灾检测器之类的检测器。装置104可包括多个组件,诸如RAM 106、NVM 108、ROM/闪速存储器、和处理器。
通常,用于操作装置104的程序代码和固件被存储在NVM 108中,并且存储器被填满至容量。在一个或多个实施例中,NVM 108是具有内置读保护的闪速存储器,所述内置读保护保护装置存储器内容免受不必要的读操作。代替再生产具有更大且更贵的存储器的装置104,本文所述的技术利用RAM 106中的可用容量来执行复杂加密/解密以执行安全固件更新。
制造方102生成密钥124,所述密钥124用于对固件120的加密以及用于装置104处对经加密的固件112的解密。密钥124不通过网络来分发,而是在(一个或多个)装置104的生产期间在制造方102处被编程,并且是制造方102和(一个或多个)装置已知的。制造方102被配置成使用加密引擎(未示出)对固件120进行加密,所述加密引擎接收固件120和密钥124和/或加密代码122以生成经加密的固件。
图2描绘了根据本公开的一个或多个实施例的、用于执行装置中的固件更新的过程200。如图2中所示,制造方202包括解密算法204,所述解密算法204可用来对经加密的数据进行解密。解密算法204与算法摘要206关联。在本公开的一个或多个实施例中,解密算法204可采用开放格式来发送,或者可以是具有引导加载程序代码的所选部分的多个XOR运算的结果,从而使得它对潜在攻击者看来是随机数据。摘要用来通过确保文件尚未以任何方式所修改或改变来维持文件的完整性。算法摘要206可以只是装置104和制造方102已知的。如果摘要是未知的,则装置将不能访问和执行解密算法204。
装置104接收更新包210的一个或多个部分,所述更新包210可包括但不限于解密算法204和经加密的固件208。如果具有引导加载程序的所选部分的多个XOR运算在发送到现场之前曾被应用于解密算法204,则装置在计算其摘要之前应该应用计算摘要214之前的相同的多个XOR运算。装置引导加载程序212根据解密算法204来计算摘要214,并且将结果与所存储的摘要206进行比较。如果摘要214和所计算的摘要的比较展现出匹配,则检验解密算法214的完整性。如果摘要不匹配,则解密算法204的错误或修改已经发生。在此类情形中,不可使用解密算法204的当前版本来完成固件更新。
在本公开的一个或多个实施例中,在已经基于比较检验了解密算法204的完整性之后,装置104可向制造方102提供通信,以指示装置104准备好接收经加密的固件224。在制造方102处已经通过加密密钥222加密以产生经加密的固件224的固件220被提供给装置。在本公开的一个或多个实施例中,经加密的固件224是更新包210的一部分,并且被提供给装置以执行固件更新。
响应于接收到经加密的固件224,装置使用其加密密钥222和解密算法204对经加密的固件224进行解密。应当理解,由于NVM的有限容量不会允许复杂加密技术被使用,因此解密在RAM中进行。在获得固件220之后,它可被安装至装置中。在一个或多个实施例中,更新装置的NVM。对于错误,可使用诸如循环冗余校验(CRC)或者其它已知错误校验技术之类的过程来处理固件220。本文所述的技术允许数据在固件的耗时解密期间被接收,并且所述技术还显著消除尝试猜测加密密钥的强力攻击的风险。
图3描绘了根据本公开的一个或多个实施例的、动态选择多种加密方法之一以供固件更新的分发期间使用的架构的图示。如图3中所示,装置104从诸如制造方102之类的发送方接收解密引擎110和经加密的固件112。在一个或多个实施例中,加密算法(解密引擎)在生产期间未被存储在装置104的存储器中。制造方102可存储对应于不同加密算法320、322、324的多个密钥310、312、314,所述加密算法320、322、324可由装置104用来执行固件更新。另外,可在制造方102处用多个密钥对装置104进行编程。密钥310、312、314不在装置104与制造方102之间传送,以维持固件更新的安全性。虽然仅示出三个不同的加密密钥310、312、314以及加密算法320、322、324,但是应当理解,任何数量的方法及对应密钥310、312、314可被使用,并且被认为在本公开的范围内。
在使用中的所选加密算法320、322、324之一变得暴露或者处于风险的情况下,制造方102可分发用不同加密算法320、322、324加密的固件映像(firmware image)。如图3中所示,“加密方法1”已被确定为处于风险或易受攻击,并且不同的“加密方法2”被选择以执行固件更新。
应当理解,通知可被提供给经加密的固件的发送方,以指示应当使用不同加密算法320、322、324。例如,算法或解密摘要不匹配的指示可被提供给发送方或制造方102。本文所述的技术使得多个加密算法能够被用来执行安全固件更新。可理解,可使用与装置中存储的密钥的数量同样多的加密算法。
图4描绘了根据本公开的一个或多个实施例的、用于校验解密算法的完整性的过程。与图2中所示的过程相似,摘要用来维持在制造方202与装置的装置引导加载程序212之间所传送(在装置引导加载程序212处接收)的更新包210的解密算法的完整性。
在这个示例中,第一算法402和/或第二算法404可用来对固件进行加密。第一算法402和第二算法404中的每个可分别与对应摘要408、410关联。在非限制性示例中,第一算法402可对应于AES,并且第二算法404可对应于三重DES,AES和三重DES分别与AES摘要和三重DES摘要关联。可理解,所述算法可以是任何其它加密算法,并且不限于图4中所示的示例。
更新包210可包括解密算法204和经加密的固件224,所述解密算法204对应于第一算法402或第二算法404。在其它实施例中,可在已经在装置处检验了解密算法204的经计算的摘要之后传送经加密的固件224。
如图4中所示,装置的装置引导加载程序212接收解密算法204,并且计算解密算法204的摘要。在本公开的一个或多个实施例中,使用解密算法来执行哈希函数,以计算摘要的值。将结果与装置中的所存储的摘要进行比较。如果所存储的摘要408、410和经计算的摘要的比较展现出匹配,则该过程可进行到接收和解密经加密的固件224。
图5描绘了根据本公开的一个或多个实施例的、用于更新装置的固件的另一过程500。本文所述的技术可包括使用多个摘要。在图5中所示的非限制性示例中,使用第一摘要506和第二摘要508。通过添加作为所选引导加载程序代码部分与解密代码的多个XOR运算510的结果所计算的第二摘要506,避免解密算法504的完整性校验期间的哈希函数冲突的概率。在本公开的不同实施例中,在制造方102处生成解密算法504的摘要508以及所选引导加载程序代码部分与解密算法504的多个XOR运算510的输出的摘要506。引导加载程序代码502是每次装置104被通电或重置时进行操作的特定软件。它是特定于硬件的可执行机器代码。各个摘要是装置104已知的,所述装置104被配置成对经加密的固件进行解密。将装置中存储的解密摘要与关联于所接收的解密算法和引导加载程序代码的对应解密摘要进行比较。如果摘要匹配,则允许对经加密的固件的解密。
图6描绘了根据本公开的一个或多个实施例的、更新固件的方法600的流程图。方法600可在与图1-图5中所示***相似的***中执行。方法600开始于框602并且进行到框604,框604提供接收用于对经加密的固件进行解密的解密引擎。框606验证解密引擎并将它加载至装置的第一存储器中,并且框608接收经加密的固件。框610从装置的第二存储器获得预存储的加密密钥,其中第二存储器是与第一存储器不同类型的存储器,并且框612使用加密密钥和解密引擎对经加密的固件进行解密,其中对经加密的固件的解密在第一存储器中进行。方法600结束于框614。
本文中描述了本公开的一个或多个说明性实施例。此类实施例只是说明本公开的范围,并不旨在以任何方式而是限制性的。因此,本文所公开的实施例的变更、修改和等效物也在本公开的范围内。
本文参照附图作为例示而非限制来呈现所公开设备和方法的一个或多个实施例的详细描述。
术语“大约”旨在包括与基于提交本申请时可用的设备的特定量的测量关联的误差程度。
本文所使用的术语学只是出于描述特定实施例的目的,并不旨在限制本公开。如本文所使用的,单数形式“一(a、an)”和“该”旨在也包括复数形式,除非上下文另有清楚指示。将进一步理解,当在本说明书中使用时,术语“包括(comprise和/或comprising)”规定所阐述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件、组件、和/或其群组的存在或添加。
虽然已经参照一个或多个示例性实施例描述了本公开,但是本领域技术人员将理解,在不背离本公开的范围的情况下,可进行各种变更,并且等效物可代替本公开的元素。另外,在不背离本公开的实质范围的情况下,可进行许多修改以使特定状况或材料适于本公开的教导。因此,旨在本公开不限于作为为了实行本公开所设想的最佳模式所公开的特定实施例,而是本公开将包括落入权利要求的范围内的所有实施例。
Claims (20)
1.一种更新装置的固件的方法,所述方法包括:
接收用于对经加密的固件进行解密的解密引擎;
将所述解密引擎加载至装置的第一存储器中;
接收所述经加密的固件;
从所述装置的第二存储器获得预存储的加密密钥,其中所述第二存储器是与所述第一存储器不同类型的存储器;以及
使用所述加密密钥和所述解密引擎对所述经加密的固件进行解密,其中对所述经加密的固件的所述解密在所述第一存储器中进行。
2.如权利要求1所述的方法,其中,所述第一存储器是随机存取存储器(RAM),并且所述第二存储器是非易失性存储器(NVM)。
3.如权利要求1所述的方法,进一步包括通过将所述装置中存储的摘要与所述解密引擎的经计算的摘要进行比较,在接收所述经加密的固件之前认证所述解密引擎。
4.如权利要求3所述的方法,其中,所述认证包括在所述第一存储器中比较第一摘要和第二摘要,其中所述第一摘要对应于所述解密算法,并且所述第二摘要对应于所选引导加载程序代码部分与所述解密算法的多个XOR运算的输出。
5.如权利要求3所述的方法,响应于所述认证,执行所述解密引擎以对所述经加密的固件进行解密。
6.如权利要求1所述的方法,进一步包括实现第二加密算法,其中所述第二算法不同于所述第一算法。
7.如权利要求1所述的方法,进一步包括使用只是所述装置和所述制造方已知的所述预存储的密钥对所述经加密的固件进行解密。
8.如权利要求7所述的方法,其中,所述预存储的密钥在制造期间被编程,并且不通过网络来传送以被存储在所述装置中。
9.如权利要求1所述的方法,进一步包括在所述第二存储器中更新固件之前使用循环冗余校验(CRC)来验证所解密的经加密的固件。
10.如权利要求1所述的方法,其中,所述装置是火灾检测器。
11.一种用于更新装置的固件的***,所述装置包括:
所述装置的第一存储器;
所述装置的第二存储器,所述第二存储器被配置有固件,其中所述第一存储器不同于所述第二存储器;
处理器,其中所述处理器被配置成:
接收用于对经加密的固件进行解密的解密引擎;
将所述解密引擎加载至装置的所述第一存储器中;
接收所述经加密的固件;
从所述装置的所述第二存储器获得预存储的加密密钥,其中所述第二存储器是与所述第一存储器不同类型的存储器;以及
使用所述加密密钥和所述解密引擎对所述经加密的固件进行解密,其中对所述经加密的固件的所述解密在所述第一存储器中进行。
12.如权利要求11所述的***,其中,所述第一存储器是随机存取存储器(RAM),并且所述第二存储器是非易失性存储器(NVM)。
13.如权利要求11所述的***,其中,所述第一存储器被配置成通过将所述装置中存储的摘要与所述解密引擎的经计算的摘要进行比较,在接收所述经加密的固件之前认证所述解密引擎。
14.如权利要求13所述的***,其中,所述认证包括在所述第一存储器中比较第一摘要和第二摘要,其中所述第一摘要对应于所述解密算法,并且所述第二摘要对应于所选引导加载程序代码部分与所述解密算法的多个XOR运算的输出。
15.如权利要求13所述的***,响应于所述认证,在所述第一存储器中执行所述解密引擎以对所述经加密的固件进行解密。
16.如权利要求11所述的***,进一步包括实现第二加密算法,其中所述第二算法不同于所述第一算法。
17.如权利要求11所述的***,其中,所述第一存储器被配置成使用只是所述装置和所述制造方已知的所述预存储的密钥对所述经加密的固件进行解密。
18.如权利要求17所述的***,其中,所述第二存储器存储所述预存储的密钥并在制造期间被编程。
19.如权利要求11所述的***,进一步包括在所述第二存储器中更新固件之前使用循环冗余校验(CRC)来验证所解密的经加密的固件。
20.如权利要求11所述的***,其中,所述装置是火灾检测器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163180736P | 2021-04-28 | 2021-04-28 | |
US63/180736 | 2021-04-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115344832A true CN115344832A (zh) | 2022-11-15 |
Family
ID=83808532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210451705.XA Pending CN115344832A (zh) | 2021-04-28 | 2022-04-27 | 通过一起传递加密和数据的安全装置更新 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220350590A1 (zh) |
CN (1) | CN115344832A (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7330978B1 (en) * | 1999-04-08 | 2008-02-12 | Microsoft Corporation | Encrypted software installer |
US6970565B1 (en) * | 2000-12-22 | 2005-11-29 | Xm Satellite Radio Inc. | Apparatus for and method of securely downloading and installing a program patch in a processing device |
US20110138377A1 (en) * | 2010-05-04 | 2011-06-09 | Phat Energy Corporation | Renewable Energy Monitoring System & Method |
EP3188063A1 (en) * | 2015-12-29 | 2017-07-05 | GuardSquare NV | A build system |
US11042644B2 (en) * | 2018-02-01 | 2021-06-22 | Quixant Plc | Method and system for security verification in a booting process with a multi-core processor |
DE102019122514A1 (de) * | 2019-08-21 | 2021-02-25 | LUPUS-ELECTRONICS GmbH | Verfahren zur Zuordnung eines zu registrierenden Rauchmelders und ein entsprechendes Rauchmelderverwaltungssystem |
KR102415005B1 (ko) * | 2019-08-21 | 2022-07-01 | 한국전자통신연구원 | 실행코드를 검증하는 하드웨어 보안모듈 및 그것을 갖는 디바이스 및 그것의 동작 방법 |
-
2022
- 2022-04-27 CN CN202210451705.XA patent/CN115344832A/zh active Pending
- 2022-04-28 US US17/731,661 patent/US20220350590A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220350590A1 (en) | 2022-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102217501B1 (ko) | 신뢰 실행 환경을 갖는 모바일 디바이스 | |
EP1325401B1 (en) | System for protecting static and dynamic data against unauthorised manipulation | |
JP5690412B2 (ja) | ハードウェアデバイスの鍵プロビジョン方法および装置 | |
US7095858B2 (en) | System and method for securely upgrading firmware | |
US8281115B2 (en) | Security method using self-generated encryption key, and security apparatus using the same | |
US8332652B2 (en) | Computing device that securely runs authorized software | |
US20030196096A1 (en) | Microcode patch authentication | |
WO1999039475A1 (en) | Cryptographic system | |
US10984107B2 (en) | Secure boot | |
TW201717574A (zh) | 保全裝置以及保全方法 | |
US20210117545A1 (en) | Semiconductor device including secure patchable rom and patch method thereof | |
US9003197B2 (en) | Methods, apparatus and system for authenticating a programmable hardware device and for authenticating commands received in the programmable hardware device from a secure processor | |
CN111512593B (zh) | 半导体设备、提供更新数据的方法、接收更新数据的方法以及介质 | |
US20220350590A1 (en) | Secure device update by passing encryption and data together | |
EP3460705A1 (en) | Distributed deployment of unique firmware | |
US12045378B2 (en) | Secured storage of ciphering keys | |
US20230119890A1 (en) | Method for securely processing digital information in a secure element | |
EP4044056A1 (en) | Secure booting apparatus and operating method thereof | |
CN117763587A (zh) | 一种算法加密的处理方法、装置、设备及介质 | |
KR100932276B1 (ko) | 보안 모듈의 업그레이드 장치 및 그 방법 | |
CN115146290A (zh) | 加密密钥的安全存储 | |
CN117668848A (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 |