CN113239363A - 固件更新方法、装置、设备、可读存储介质及存储器系统 - Google Patents
固件更新方法、装置、设备、可读存储介质及存储器系统 Download PDFInfo
- Publication number
- CN113239363A CN113239363A CN202110608879.8A CN202110608879A CN113239363A CN 113239363 A CN113239363 A CN 113239363A CN 202110608879 A CN202110608879 A CN 202110608879A CN 113239363 A CN113239363 A CN 113239363A
- Authority
- CN
- China
- Prior art keywords
- firmware
- hash
- white list
- public key
- file
- 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
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/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/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/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
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)
- Stored Programmes (AREA)
Abstract
本申请提供了一种固件更新方法、装置、设备、计算机可读存储介质及存储器系统。固件更新方法包括:通过对白名单进行加密生成白名单签名值,其中白名单包括标识固件镜像文件是否被允许用于更新的信息;以及响应于来自用户端的固件更新请求,发送包括固件镜像文件、白名单和白名单签名值的固件更新文件。根据该固件更新方法,利用白名单机制标记固件镜像文件的修改属性,可防止已发布的并且具有安全漏洞的固件镜像文件用于固件更新,保证了固件的安全性。
Description
技术领域
本申请涉及计算机技术领域,更具体地,涉及固件更新方法、装置、设备、计算机可读存储介质以及存储器系统。
背景技术
固件(firmware)是一种存储于设备中的EEPROM或FLASH芯片中,并可由用户端通过特定的刷新程序进行升级的程序。固件通常在诸如个人电脑、手机、GPS终端以及数码卫星接收器等设备中担任最基础、最底层的工作。固件的更新或升级是指把新的固件写入上述芯片中,以代替原有的固件的过程。
近年来针对用户端的攻击已经从上层软件逐渐转移到了底层的固件,第三方恶意者有可能在固件版本的更新过程中,通过存在安全漏洞的固件更新文件访问用户端存储设备上的所有数据,甚至可能利用更新过程在用户端的固件中植入恶意代码、病毒、木马等,这样的安全事故在金融、政府和军事等领域必然会造成无法估量的危害。
发明内容
本申请提供了一种可至少部分解决现有技术中存在的上述问题的固件更新方法、装置、设备及计算机可读存储介质。
本申请一方面提供了一种固件更新方法,所述方法包括:通过对白名单进行加密生成白名单签名值,其中所述白名单包括标识固件镜像文件是否被允许用于更新的信息;以及响应来自于用户端的固件更新请求,发送包括所述固件镜像文件、所述白名单和所述白名单签名值的固件更新文件。
在本申请一个实施方式中,所述方法还包括:生成包括标识所述固件镜像文件是否被允许用于更新的信息的所述白名单。
在本申请一个实施方式中,所述方法还包括:动态更新标识所述固件镜像文件是否被允许用于更新的所述信息。
在本申请一个实施方式中,所述固件更新请求还包括用户端发送的随机数;以及通过对所述白名单进行加密生成所述白名单签名值包括:分别生成非对称随机密钥和对称密码,其中,所述非对称随机密钥包括相互对应的公钥和私钥;利用所述对称密码对所述随机数进行加密得到随机数哈希值;以及利用所述私钥对所述白名单和所述随机数哈希值进行加密,生成所述白名单签名值。
在本申请一个实施方式中,所述固件更新请求还包括与所述随机数同时生成的时间戳;以及在生成上述白名单签名值的步骤中,利用所述私钥对所述白名单、所述随机数哈希值和所述时间戳进行加密,生成所述白名单签名值。
在本申请一个实施方式中,所述方法还包括:对所述固件镜像文件进行哈希计算生成固件镜像文件哈希摘要;利用所述私钥对所述固件镜像文件哈希摘要进行加密,生成文件签名值;以及响应于所述固件更新请求发送包括所述文件签名值的所述固件更新文件。
在本申请一个实施方式中,所述方法还包括:对所述公钥进行哈希计算生成公钥哈希值;以及响应于所述固件更新请求发送包括所述公钥哈希值的所述固件更新文件。
在本申请一个实施方式中,所述方法还包括:预先向所述用户端发送所述公钥和所述对称密码。
在本申请一个实施方式中,采用非对称加密算法生成所述非对称随机密钥。
在本申请一个实施方式中,采用安全散列算法SHA-256进行所述哈希计算。
在本申请一个实施方式中,所述固件更新方法用于更新存储器系统的固件。
本申请另一方面提供了一种固件更新方法,所述方法包括:获取固件更新文件,所述固件更新文件包括固件镜像文件、白名单和白名单签名值,其中所述白名单包括标识所述固件镜像文件是否被允许用于更新的信息;利用预先获取的公钥对所述白名单签名值进行解密,得到待验证白名单;以及在确定出所述待验证白名单与所述白名单相同后,获取所述白名单的所述信息,以确认所述固件镜像文件是否被允许用于更新,如果是,则基于所述固件镜像文件实现固件更新,否则拒绝固件更新。
在本申请一个实施方式中,所述方法还包括:在确定出所述待验证白名单与所述白名单不同后,则拒绝固件更新。
在本申请一个实施方式中,所述固件更新文件还包括文件签名值,其中,所述方法还包括:利用所述公钥对所述文件签名值进行解密,得到文件哈希摘要,并对获取的所述固件镜像文件进行哈希计算,得到待验证哈希摘要;判断所述待验证哈希摘要与所述文件哈希摘要是否相同;以及如果相同,则进入确定所述待验证白名单与所述白名单是否相同的步骤,如果不相同,则拒绝固件更新。
在本申请一个实施方式中,所述固件更新文件还包括公钥哈希值,以及所述方法还包括:对所述公钥进行哈希计算,得到待验证哈希公钥;判断所述待验证哈希公钥与所述公钥哈希值是否相同;以及如果相同,则进入判断所述待验证哈希摘要与所述文件哈希摘要是否相同的步骤,如果不相同,则拒绝固件更新。
在本申请一个实施方式中,所述白名单签名值还包括随机数哈希值,所述随机数哈希值由与固件更新请求同时生成的随机数经对称密码加密生成;以及所述方法还包括:利用所述公钥对所述白名单签名值进行解密,得到所述随机数哈希值;利用预先获取的对称密码对本地保留的随机数进行加密,得到待验证哈希随机数;判断所述待验证哈希随机数与所述随机数哈希值是否相同;以及如果相同,则进入判断所述待验证哈希公钥与所述公钥哈希值是否相同的步骤,如果不相同,则拒绝固件更新。
在本申请一个实施方式中,所述哈希计算采用安全散列算法SHA-256。
在本申请一个实施方式中,所述白名单签名值还包括时间戳,所述时间戳与固件更新请求同时生成;以及所述方法还包括:利用所述公钥对所述白名单签名值进行解密,得到待验证时间戳;判断所述待验证时间戳与本地保留的时间戳是否相同;以及如果相同,则进入判断所述待验证哈希公钥与所述公钥哈希值是否相同的步骤,如果不相同,则拒绝固件更新。
在本申请一个实施方式中,所述固件更新方法用于更新存储器系统的固件。
本申请又一方面提供了一种存储器系统,所述存储器系统包括:一个或多个存储管芯,其用于存储数据;存储控制器,其与所述存储管芯耦接,并且其被配置为:获取固件更新文件,所述固件更新文件包括固件镜像文件、白名单和白名单签名值,其中所述白名单包括标识所述固件镜像文件是否被允许用于更新的信息;利用预先获取的公钥对所述白名单签名值进行解密,得到待验证白名单;以及在确定出所述待验证白名单与所述白名单相同后,获取所述白名单的所述信息,以确认所述固件镜像文件是否被允许用于更新,如果是,则基于所述固件镜像文件实现固件更新,否则拒绝固件更新。
在本申请一个实施方式中,所述存储控制器被进一步配置为:在确定出所述待验证白名单与所述白名单不同后,则拒绝固件更新。
在本申请一个实施方式中,所述固件更新文件还包括文件签名值,以及所述存储控制器被进一步配置为:利用所述公钥对所述文件签名值进行解密,得到文件哈希摘要,并对获取的所述固件镜像文件进行哈希计算,得到待验证哈希摘要;判断所述待验证哈希摘要与所述文件哈希摘要是否相同;以及如果相同,则进入确定所述待验证白名单与所述白名单是否相同的步骤,如果不相同,则拒绝固件更新。
在本申请一个实施方式中,所述固件更新文件还包括公钥哈希值,以及所述存储控制器被进一步配置为:对所述公钥进行哈希计算,得到待验证哈希公钥;判断所述待验证哈希公钥与所述公钥哈希值是否相同;以及如果相同,则进入判断所述待验证哈希摘要与所述文件哈希摘要是否相同的步骤,如果不相同,则拒绝固件更新。
在本申请一个实施方式中,所述白名单签名值还包括随机数哈希值,所述随机数哈希值由与固件更新请求同时生成的随机数经对称密码加密生成;以及所述存储控制器被进一步配置为:利用所述公钥对所述白名单签名值进行解密,得到所述随机数哈希值;利用预先获取的对称密码对本地保留的随机数进行加密,得到待验证哈希随机数;判断所述待验证哈希随机数与所述随机数哈希值是否相同;以及如果相同,则进入判断所述待验证哈希公钥与所述公钥哈希值是否相同的步骤,如果不相同,则拒绝固件更新。
在本申请一个实施方式中,所述哈希计算采用安全散列算法SHA-256。
在本申请一个实施方式中,所述白名单签名值还包括时间戳,所述时间戳与固件更新请求同时生成;以及所述存储控制器被进一步配置为:利用所述公钥对所述白名单签名值进行解密,得到待验证时间戳;判断所述待验证时间戳与本地保留的时间戳是否相同;以及如果相同,则进入判断所述待验证哈希公钥与所述公钥哈希值是否相同的步骤,如果不相同,则拒绝固件更新。
在本申请一个实施方式中,所述存储器系统包括固态硬盘。
本申请又一方面提供了一种固件更新装置,所述装置包括:接收计算模块,所述接收计算模块用于接收来自用户端的更新请求;更新模块,所述更新模块用于生成白名单,所述白名单包括标识所述固件镜像文件是否被允许用于更新的信息;以及加密发送模块,所述加密发送模块用于对所述白名单进行加密,以生成白名单签名值,以及用于发送固件更新文件,所述固件更新文件包括固件镜像文件、所述白名单和所述白名单签名值。
本申请又一方面提供了一种固件更新装置,所述装置包括:获取模块,所述获取模块用于获取固件更新文件,所述固件更新文件包括固件镜像文件、白名单和白名单签名值,其中,所述白名单包括标识所述固件镜像文件是否被允许用于更新的信息;以及认证模块,所述认证模块用于利用预先获取的公钥对所述白名单签名值进行解密,得到待验证白名单;以及在确定出所述待验证白名单与所述白名单相同后,获取所述白名单的所述信息,以确认所述固件镜像文件是否被允许用于更新,如果是,则基于所述固件镜像文件实现固件更新,否则拒绝固件更新。
本申请又一方面提供了一种固件更新设备,所述设备包括:存储器,用于存储计算机程序;以及处理器,用于执行所述计算机程序,以实现如本申请一方面提供的任一项所述的固件更新方法、或实现如本申请另一方面提供的任一项所述的固件更新方法。
本申请又一方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,其中,所述计算机程序被处理器执行时实现如本申请一方面提供的任一项所述的固件更新方法、或实现如本申请另一方面提供的任一项所述的固件更新方法。
根据本申请一个实施方式提供的固件更新方法、装置、设备、计算机可读存储介质及存储器系统,通过利用白名单机制标记固件镜像文件的修改属性,可防止已发布并且具有安全漏洞的固件镜像文件用于固件更新,保证了固件的安全性。
此外,根据本申请的至少一个实施方式,白名单上标识固件镜像文件是否被允许用于更新的信息可动态更新,因而在发现明显的安全漏洞时,可及时对白名单上的信息进行更新,提高了固件更新的实时安全性。
进一步地,根据本申请一个实施方式提供的固件更新方法、装置、设备、计算机可读存储介质及存储器系统,用户端可通过对接收到的固件更新文件进行诸如时间戳认证、随机数哈希值认证、文件签名值认证、公钥哈希值认证、白名单签名值认证以及白名单上标识信息的确认等多项渐进式或并行式认证,可防止恶意或具有安全漏洞的固件更新文件对用户端存储设备的破坏,保证了固件更新的安全性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例的详细描述,本申请的其它特征、目的和优点将会变得更明显。其中:
图1是根据本申请一个实施方式的固件更新方法流程图;
图2是根据本申请一个实施方式的白名单的示意图;
图3是根据本申请一个实施方式的固件更新系统的结构及工作方式示意图;
图4是根据本申请一个实施方式的生成白名单签名值的方法流程图;
图5是根据本申请一个实施方式的生成文件签名值和公钥哈希值的方法流程图;
图6是根据本申请一个实施方式的SSD实施解密、认证的过程示意图;
图7是根据本申请一个实施方式的存储系统的结构示意图;以及
图8是根据本申请一个实施方式的存储系统的结构示意图。
具体实施方式
为了更好地理解本申请,将参考附图对本申请的各个方面做出更详细的说明。应理解,这些详细说明只是对本申请的示例性实施方式的描述,而非以任何方式限制本申请的范围。在说明书全文中,相同的附图标号指代相同的元件。表述“和/或”包括相关联的所列项目中的一个或多个的任何和全部组合。
应注意,在本说明书中,第一、第二、第三等的表述仅用于将一个特征与另一个特征区域分开来,而不表示对特征的任何限制,尤其不表示任何的先后顺序。因此,在不背离本申请的教导的情况下,本申请中讨论的第一个固件版本信息也可被称作第二个固件版本信息,第一个私钥也可称为第二个私钥,反之亦然。
在附图中,为了便于说明,已稍微调整了部件的厚度、尺寸和形状。附图仅为示例而并非严格按比例绘制。如在本文中使用的,用语“大致”、“大约”以及类似的用语用作表近似的用语,而不用作表程度的用语,并且旨在说明将由本领域普通技术人员认识到的、测量值或计算值中的固有偏差。
还应理解的是,诸如“包括”、“包括有”、“具有”、“包含”和/或“包含有”等表述在本说明书中是开放性而非封闭性的表述,其表示存在所陈述的特征、元件和/或部件,但不排除一个或多个其它特征、元件、部件和/或它们的组合的存在。此外,当诸如“...中的至少一个”的表述出现在所列特征的列表之后时,其修饰整列特征,而非仅仅修饰列表中的单独元件。此外,当描述本申请的实施方式时,使用“可”表示“本申请的一个或多个实施方式”。并且,用语“示例性的”旨在指代示例或举例说明。
除非另外限定,否则本文中使用的所有措辞(包括工程术语和科技术语)均具有与本申请所属领域普通技术人员的通常理解相同的含义。还应理解的是,除非本申请中有明确的说明,否则在常用词典中定义的词语应被解释为具有与它们在相关技术的上下文中的含义一致的含义,而不应以理想化或过于形式化的意义解释。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。另外,除非明确限定或与上下文相矛盾,否则本申请所记载的方法中包含的具体步骤不必限于所记载的顺序,而可以任意顺序执行或并行地执行。下面将参考附图并结合实施例来详细说明本申请。
此外,在本申请中当使用“连接”或“联接”时可表示相应部件之间为直接的接触或间接的接触,除非有明确的其它限定或者能够从上下文推导出的除外。
图1是根据本申请一个实施方式的固件更新方法1000的流程图。如图1所示,本申请提供一种固件更新方法1000包括:
S1,通过对白名单进行加密生成白名单签名值,其中白名单包括标识固件镜像文件是否被允许用于更新的信息。
S2,响应于来自用户端的固件更新请求,发送包括固件镜像文件、白名单和白名单签名值的固件更新文件。
下面将结合图2至图6详细说明上述固件更新方法1000的各个具体步骤。
步骤S1
图2是根据本申请一个实施方式的白名单110的示意图。图3是根据本申请一个实施方式的固件更新系统的结构及工作方式示意图。
如图2和图3所示,步骤S1通过对白名单进行加密生成白名单签名值,其中白名单包括标识固件镜像文件是否被允许用于更新的信息可例如包括:接收来自用户端的SSD300的随机数;利用固件发布服务器100的文件密钥生成模块120生成包括相互对应的公钥和私钥的非对称随机密钥,利用固件发布器100的随机数密钥生成模块130生成对称密码;在固件发布服务器100的接收计算模块140中,利用对称密码对随机数进行加密得到随机数哈希值;在固件发布服务器100的加密发送模块150中,利用私钥对白名单和随机数哈希值进行加密,生成白名单签名值。
具体地,在本申请的一个实施方式中,可通过固件发布服务器100中生成包括固件Image(固件镜像文件)的版本信息以及标识该固件Image是否被允许用于更新的信息的白名单110;以及动态更新白名单110中的标识信息。作为一种选择,也可预先配置包括固件Image(固件镜像文件)的版本信息以及标识该固件Image是否被允许用于更新的信息的白名单110。
固件更新装置主要包括:固件发布服务器100和数据通道管理模块200,其中固件发布服务器100还可包括接收计算模块、更新模块、加密发送模块以及密钥生成模块(后文将参照图3对固件发布服务器100的各个模块做进一步描述)。
在本申请的一个实施方式中,进行固件更新的用户端可以是诸如个人电脑、手机、GPS终端和数码卫星接收器等包括EEPROM(Electrically Erasable Programmable ROM,带电可擦除可编程只读存储器)或FLASH芯片的设备,其中只读存储器EEPROM或FLASH芯片可作为上述设备的SSD(Solid State Drives,固态硬盘)300的存储介质。固件(firmware)是一种存储于上述设备的EEPROM或FLASH芯片中,并可由用户端通过特定的刷新程序进行升级的程序。
在本申请的一个实施方式中,用户端可通过例如TCP/IP协议与固件发布服务器100建立连接,发送固件更新请求,并获取响应固件更新请求发送的固件更新版本。此外,在用户端的内部,还可通过例如PCIe(peripheral component interconnect express,高速串行计算机扩展总线标准)总线将获取的固件更新文件传输到SSD300。数据通道管理模块200负责管理上述用户端与固件发布服务器之间的数据通道以及用户端内部的数据通道。进一步地,数据通道管理模块200还可分别控制传送白名单签名值的数据通道以及随机数(或随机数与时间戳共用的)的数据通道(后文将参照图3对其做进一步描述)。
在传统的固件更新方法中,固件发布服务器通常会通过某些诸如MD5、SHA1以及CRC32等单向散列函数对预发送给用户端的固件Image进行运算,生成对应的哈希摘要,并由固件发布服务器的密钥生成模块生成相互对应的公钥和私钥,由该私钥对上述哈希摘要进行加密,从而生成文件签名值。之后,响应用户端的固件更新请求,将文件签名值、固件Image和与私钥对应的公钥打包成一个固件更新文件发送给用户端。
然而,在传统的固件更新方法中,不免出现已发布的固件版本在后续的应用中出现明显的安全漏洞的情况,因此,当用户端基于存在安全漏洞的固件Image进行固件更新后,第三方恶意者有可能在固件更新的过程中,通过存在安全漏洞的固件Image访问用户端存储设备上的所有数据,甚至可能利用更新过程,在用户端的固件中植入恶意代码、病毒、木马等,这样的安全事故在金融、政府和军事领域必然会造成无法估量的危害。
在本申请提供的固件更新方法中,根据本申请一个实施方式提供的固件更新方法,可通过白名单标记固件Image的修改属性,例如,设备厂商在发布一个新的固件时上述用于标记的信息为可以用于更新,在后期的应用中如果发现重大的安全漏洞,则可以将上述标记信息修改为不可用于更新。添加白名单验证机制后,只有当SSD获取到了有效的白名单并验证到固件Image可以用于更新的情况下才能完成后续的更新操作,因此可防止具有安全漏洞的固件Image用于固件更新,保证了固件的安全性。
此外,根据本申请的至少一个实施方式,白名单上标识固件Image是否被允许用于更新的信息可动态更新,因而在发现明显的安全漏洞时,可及时对白名单上的信息进行更新,提高了固件更新的实时安全性。
图4是根据本申请一个实施方式的生成白名单签名值的方法流程图。
如图3和图4所示,SSD300可包括随机数生成器310,当用户端发送固件更新请求的时候,随机数生成器310可同时发送一个随机数。换言之,在向例如固件发布服务器100发送固件更新请求的同时发送随机数,固件发布服务器100在收到随机数后,可通过例如计算加密等方式生成随机数哈希值,之后,随机数哈希值与白名单同时加密打包成白名单签名值后发送给SSD。在SSD收到白名单签名值后,可对随机数哈希值进行验证,当验证通过,则可确认与随机数哈希值同时接收到的白名单为固件发布服务器100响应本次与随机数同时发送的固件更新请求而发送的。
作为一种选择,可选用非对称机密算法生成非对称随机密钥。
进一步地,在本申请的一个实施方式中,用户端在发送附加有随机数的固件更新请求时,还可同时发送一个与随机数同时生成的时间戳。具体地,该时间戳可由在SSD发出固件更新请求的同时生成。时间戳用于对随机数产生的时间进行认证,从而验证随机数在产生后是否经过篡改。进一步地,每一个白名单只有在特定时间窗口才是有效的,避免了白名单被监听后的重放攻击。
此外,在固件更新请求包括时间戳的情况下,对白名单进行加密生成白名单签名值可例如包括:接收来自用户端的SSD300的随机数和时间戳;利用固件发布服务器100的文件密钥生成模块120生成包括相互对应的公钥和私钥的非对称随机密钥,利用固件发布器100的随机数密钥生成模块130生成对称密码;利用对称密码对随机数进行加密得到随机数哈希值;利用私钥对白名单、随机数哈希值和时间戳进行加密,生成白名单签名值。
步骤S2
图5是根据本申请一个实施方式的生成文件签名值和公钥哈希值的方法流程图。
结合图3和图5,步骤S2响应于来自用户端的固件更新请求,发送包括固件镜像文件、白名单和白名单签名值的固件更新文件可例如包括:生成固件Image的文件签名值;生成公钥哈希值;以及发送包括固件Image、固件Image的文件签名值、公钥哈希值、白名单以及白名单签名值的固件更新文件。
如图5所示,在本申请的一个实施方式中,固件更新文件还包括固件Image的文件签名值。作为一种选择,生成文件签名值的方法可包括:对固件Image进行哈希计算生成哈希摘要,利用私钥对固件Image哈希摘要进行加密,生成文件签名值。
在本申请的一个实施方式中,固件发布服务器100可包括文件密钥生成模块120、接收计算模块140和加密发送模块150,在接收计算模块140中可通过诸如MD5、SHA1以及CRC32等单向散列函数对预发送给用户端的固件Image进行运算,生成对应的固件Image哈希摘要,并由固件发布服务器100的文件密钥生成模块120生成相互对应的公钥和私钥,在加密发送模块150中,由私钥对上述固件Image哈希摘要进行加密,从而生成文件签名值。
在本申请的一个实施方式中,哈希计算可选择例如安全散列算法SHA-256等,加密过程可选择非对称加密算法,本申请对哈希计算的算法和加密算法不作限定。
进一步地,在本申请的一个实施方式中,固件更新文件还包括公钥哈希值。作为一种选择,生成公钥哈希值的方法可包括:对公钥进行哈希计算生成公钥哈希值。哈希计算可选择例如安全散列算法SHA-256等,本申请对哈希计算的算法不作限定。
此外,在本申请的一个实施方式中,还可预先向所述户发送公钥和对称密码,以方便SSD300对上述文件更新文件实施解密和认证,例如可在固件出厂时预先烧录上述用于后续的固件更新中的公钥和对称密码。
在上述实施方式中,固件更新文件中包括固件Image的文件签名值和公钥哈希值,因此,可避免单纯传送固件Image明文而出现的固件Image被逆向、被篡改的风险,进一步提升了固件更新文件的完整性和可信性,增加了SSD固件更新的安全性。
本申请的另一方面还提供了一种关于SSD300实施解密、认证以及固件更新的方法。
图6是根据本申请一个实施方式的SSD300实施解密、认证的过程示意图。
如图3和图6所示,该方法可例如包括:用户端的SSD300预先获取公钥和对称密码;接收固件更新文件;对固件更新文件的白名单签名值进行认证,若认证未通过,则拒绝固件更新,若认证通过,则获取白名单的标识固件Image是否被允许用于更新的信息,并在确认该信息标识固件Image不可用于更新时,拒绝固件更新,在确认该信息标识固件Image可以用于更新时,执行固件更新。
在本申请的一个实施方式中,SSD300可包括认证模块,其中认证模块可包括第一认证模块321、第二认证模块322、第三认证模块323和第四认证模块324。SSD300的认证过程可例如包括六个认证过程,分别为时间戳认证、随机数哈希值认证、公钥哈希值认证、文件签名值认证、白名单签名值认证和白名单中信息的确认。通过上述多项、渐进式认证或并行式认证,可防止恶意或具有安全漏洞的固件更新文件对用户端存储设备的破坏,保证了固件更新的安全性。
具体地,当SSD300接收到一个固件更新文件(图6所示的虚线框输入值)后,在第一认证模块321中,可根据预存公钥对固件更新文件的白名单签名值进行解密,得到随机数哈希值,进一步地,利用预先接收的对称密码对本地预先保存的随机数进行加密,得到待验证哈希随机数。本地预先保存的随机数可以是例如由SSD300的随机数生成器310提供的、附加于更新请求中的随机数的副本,并判断待验证哈希随机数与随机数哈希值是否相同。如果不同,则拒绝固件更新;如果相同,则可进入公钥哈希值认证的步骤。
进一步地,在本申请的一个实施方式中,当随机数哈希值认证通过后,还可验证与随机数哈希值同时接收到的时间戳,以确定白名单是否为固件发布服务器100响应本次与随机数和时间戳同时发送的固件更新请求而发送的,进而保证了白名单的时效性。具体地,可在上述根据预存公钥对固件更新文件的白名单签名值进行解密的过程中,在得到随机数哈希值的同时获得固件更新文件中的时间戳,进一步地,判断本地预先保存的时间戳(例如附加于本地发送更新请求中的时间戳的副本)与上述更新文件中的解密得到的时间戳是否一致。如果相同,则认为白名单为固件发布服务器100响应本次与随机数和时间戳同时发送的固件更新请求而发送的。
进一步地,在第二认证模块322中,可根据预存公钥对固件更新文件的公钥哈希值进行认证。可使用与固件发布服务器100的接收计算模块相同的、例如SHA哈希引擎对预存公钥进行哈希计算,得到待验证哈希公钥,然后判断待验证哈希公钥与更新文件中的公钥哈希值是否相同。如果不同,则拒绝固件更新;如果相同,则可进入文件签名值认证的步骤。哈希计算可采用例如安全散列算法SHA-256,本申请对哈希计算采用的算法不作限定。
进一步地,在第三认证模块323中,可根据预存公钥对固件更新文件的文件签名值进行解密,得到文件哈希摘要,作为一种选择,可使用与固件发布服务器100的接收计算模块相同的、例如SHA哈希引擎对固件更新文件的固件Image进行哈希计算,得到待验证哈希摘要。判断待验证哈希摘要与文件哈希摘要是否相同。如果不同,则拒绝固件更新;如果相同,则可进入白名单签名值的认证步骤。哈希计算可采用例如安全散列算法SHA-256,本申请对哈希计算采用的算法不作限定。
对预发送的固件更新文件的固件Image和公钥进行计算和加密,并在用户端端(SSD)对固件Image的文件签名值和公钥哈希值进行认证(计算、解密和比较)可避免单纯传送固件Image明文而出现的固件Image被逆向、被篡改的风险,进一步提升了固件更新文件的完整性和可信性,增加了SSD固件更新的安全性。
进一步地,在第四认证模块324中,可根据预存公钥对固件更新文件的白名单签名值进行解密,得到待验证白名单,判断固件更新文件的白名单与待验证白名单是否相同。如果不同,则拒绝固件更新;如果相同,则可进入确认固件Image是否被允许用于更新的所述信息的步骤。在确认上述信息标识固件Image不可用于更新时,拒绝固件更新,在确认该信息标识固件Image可以用于更新时,执行固件更新。
在用户端端(SSD),对白名单签名值进行认证以及对其中包括的固件Image修改属性进行确认,可防止具有安全漏洞的固件镜像文件用于固件更新,保证了固件的安全性。
然而,本领域技术人员应理解,在未背离本申请教导的情况下,在上述实施方式中,本申请提供的关于SSD300实施解密、认证以及固件更新的方法可同时串行或并行执行上述多个认证过程,也可根据实际情况增加或删除个别认证过程,来获得说明书中描述的各个结果和优点。
本申请的另一方面还提供了一种固件更新装置。该固件更新装置可包括更新模块、接收计算模块和加密发送模块。更新模块用于生成白名单,白名单用于标识固件镜像文件是否被允许用于更新的信息。接收计算模块用于接收来自用户端的更新请求,进一步地,接收模块还用于对固件镜像文件进行哈希计算以生成固件镜像文件哈希摘要。加密发送模块用于分别对固件镜像文件哈希摘要和白名单进行加密,以生成文件签名值和白名单签名值,进一步地,加密发送模块还用于发送固件更新文件,固件更新文件包括固件镜像文件、白名单、文件签名值和白名单签名值。
在本申请的一个实施方式中,更新模块还用于动态更新白名单的标识固件镜像文件是否被允许用于更新的信息。
在本申请的一个实施方式中,固件更新装置还可包括文件密钥生成模块,文件密钥生成模块用于生成非对称随机密钥,其中非对称随机密钥包括相互对应的公钥和私钥。
在本申请的一个实施方式中,当更新请求还包括来自用户端的随机数或包括随机数和与随机数同时生成的时间戳时,固件更新装置还可包括随机数密钥生成模块,随机数密钥生成模块用于生成对称密码,对称密码用于对随机数进行加密生成随机数哈希值。
在本申请的一个实施方式中,当更新请求还包括来自用户端的随机数或包括随机数和与随机数同时生成的时间戳时,接收计算模块还可用于利用对称密码对随机数进行加密得到随机数哈希值。加密发送模块还可用于利用私钥对白名单和随机数哈希值进行加密生成白名单签名值;或者,用于利用私钥对白名单、随机数哈希值以及时间戳进行加密生成白名单签名值。
进一步地,在本申请的一个实施方式中,固件更新装置还可包括数据通道管理模块,数据通道管理模块用于分别控制传送白名单签名值的数据通道以及随机数的数据通道;或者,用于分别控制传送白名单签名值的数据通道以及随机数与时间戳共用的数据通道。该时间戳与随机数以及更新请求同时生成,进一步地,时间戳用于对随机数产生的时间进行认证,从而验证随机数在产生后是否经过篡改。进一步地,每一个白名单只有在特定时间窗口才是有效的,避免了白名单被监听后的重放攻击。
在本申请的一个实施方式中,固件更新装置可包括固件发布服务器和数据通道管理模块。
由于在上文中描述固件更新方法1000时涉及的内容和结构可完全或部分地适用于在这里描述的固件更新装置,因此与其相关或相似的内容不再赘述。
根据本申请至少一个实施方式提供的固件更新装置,通过利用白名单机制标记固件镜像文件的修改属性,可防止具有安全漏洞的固件镜像文件用于固件更新,保证了固件的安全性。此外,基于本申请一个实施方式的白名单上标识固件镜像文件是否被允许用于更新的信息可动态更新,因而在发现明显的安全漏洞时,可及时对白名单上的信息进行更新,提高了固件更新的实时安全性。
图7是根据本申请一个实施方式的存储系统的结构示意图。图8是根据本申请一个实施方式的存储系统的结构示意图。
如图7和图8所示,本申请的又一方面还提供了一种存储器系统3000。存储器系统3000包括:存储控制器3100和存储器装置3200,其中存储器装置3200包括一个或多个用于存储数据的存储管芯3202。存储控制器3100与存储管芯3202耦接,并可被配置为:获取包括固件镜像文件、白名单和白名单签名值的固件更新文件,其中白名单包括标识固件镜像文件是否被允许用于更新的信息;利用预先获取的公钥对白名单签名值进行解密,得到待验证白名单;以及在确定出待验证白名单与白名单相同后,获取白名单的信息,以确认固件镜像文件是否被允许用于更新,如果是,则基于固件镜像文件实现固件更新,否则拒绝固件更新。
具体地,在本申请的一个实施方式中,存储器装置3200可包括多个存储器单元,每个存储器单元能够存储至少一位的数据。例如,存储器装置3200可以是包括至少一个管芯3202的非易失性存储器并且可包括多个块(例如,BKL0、BKL1……BKL8等等),其中每个块包含多个存储器单元。存储器装置3200的块可以为固件块3201、用户数据块、专用测试块以及备份块等,其中各个块之间可在物理上可分开。作为一种选择,存储器装置3200可包括诸如系统区域3210、用户数据区域、保留区域以及测试区域等不同的功能区域,固件块3201可例如位于存储器装置3200的系统区域3210,以使与其属性不同的块可在物理上彼此分开。
进一步地,固件块3201可存储包括命令、程序、引擎等的固件,以支持存储器系统3000的基本操作,例如固件块3201中存储的固件可负责初始设置存储器系统3000,以及执行诸如存储器系统3000的内部操作控制、初始化、自诊断等功能。此外,存储器装置3200可经由至少一条数据路径耦接到存储控制器3100,并由存储控制器3100进行固件更新以及使用固件来执行基本操作。
在本申请的一个实施方式中,存储控制器3100被进一步配置为在确定出待验证白名单与白名单不同后,拒绝固件更新。因而,根据本申请至少一个实施方式提供的存储器系统,通过利用白名单机制标记固件镜像文件的修改属性,可防止具有安全漏洞的固件镜像文件用于固件更新,保证了固件的安全性。
进一步地,在本申请的一个实施方式中,固件更新文件还包括文件签名值,存储控制器3100被进一步配置为利用公钥对文件签名值进行解密,得到文件哈希摘要,并对获取的固件镜像文件进行哈希计算,得到待验证哈希摘要;判断待验证哈希摘要与文件哈希摘要是否相同;以及如果相同,则进入上述确定待验证白名单与白名单是否相同的步骤,如果不相同,则拒绝固件更新。
此外,在本申请的一个实施方式中,固件更新文件还包括公钥哈希值,存储控制器3100被进一步配置为对公钥进行哈希计算,得到待验证哈希公钥;判断待验证哈希公钥与公钥哈希值是否相同;以及如果相同,则进入判断待验证哈希摘要与文件哈希摘要是否相同的步骤,如果不相同,则拒绝固件更新。
另外,在本申请的一个实施方式中,白名单签名值还包括随机数哈希值,随机数哈希值由与固件更新请求同时生成的随机数经对称密码加密生成,存储控制器3100被进一步配置为利用公钥对白名单签名值进行解密,得到随机数哈希值;利用预先获取的对称密码对本地保留的随机数进行加密,得到待验证哈希随机数;判断待验证哈希随机数与随机数哈希值是否相同;以及如果相同,则进入判断待验证哈希公钥与公钥哈希值是否相同的步骤,如果不相同,则拒绝固件更新。随机数为用户端的随机数生成器310在发送固件更新请求的时候同时发送一组数据。因而,在固件更新之前对固件更新文件中包括的随机数进行验证则可确认与随机数哈希值同时接收到的白名单是否为固件发布服务器响应本次与随机数同时发送的固件更新请求而发送的固件更新文件。
作为一种选择,在本申请的一个实施方式中,上述哈希计算可采用安全散列算法SHA-256。
进一步地,在本申请的一个实施方式中,白名单签名值还包括时间戳,时间戳与固件更新请求同时生成,存储控制器3100被进一步配置为:利用公钥对白名单签名值进行解密,得到待验证时间戳;判断待验证时间戳与本地保留的时间戳是否相同;以及如果相同,则进入判断待验证哈希公钥与公钥哈希值是否相同的步骤,如果不相同,则拒绝固件更新。时间戳用于对随机数产生的时间进行认证,从而验证随机数在产生后是否经过篡改。进一步地,每一个白名单只有在特定时间窗口才是有效的。因此,在固件更新之前对固件更新文件中包括的时间戳进行验证可避免了白名单被监听后的重放攻击。
作为一种选择,在本申请的一个实施方式中,存储器系统3000包括固态硬盘SSD。
本申请的提供的存储器系统可通过其存储控制器对固件更新文件进行多次诸如时间戳认证、随机数哈希值认证、公钥哈希值认证、文件签名值认证、白名单签名值认证以及白名单中信息的确认等认证,通过上述多项、渐进式认证或并行式认证,可防止恶意或具有安全漏洞的固件更新文件对用户端存储设备的破坏,保证了固件更新的安全性。
本申请的又一方面还提供了一种固件更新设备,该固件更新设备可包括:存储器和处理器,其中存储器用于存储计算机程序,处理器用于执行计算机程序时实现本申请如上任一实施方式提供的固件更新方法1000或如上任一实施方式提供的关于SSD300实施解密、认证以及固件更新的方法。
本申请的又一方面还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现本申请如上任一实施方式提供的固件更新方法1000或如上任一实施方式提供的关于SSD300实施解密、认证以及固件更新的方法。
由于在上文中描述固件更新方法1000和关于SSD300实施解密、认证以及固件更新的方法时涉及的内容和结构可完全或部分地适用于在这里描述的固件更新设备和计算机可读存储介质,因此与其相关或相似的内容不再赘述。
另外,在本申请的实施方式中提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
以上描述仅为本申请的实施方式以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的保护范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离技术构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (31)
1.一种固件更新方法,其特征在于,所述方法包括:
通过对白名单进行加密生成白名单签名值,其中所述白名单包括标识固件镜像文件是否被允许用于更新的信息;以及
响应来自于用户端的固件更新请求,发送包括所述固件镜像文件、所述白名单和所述白名单签名值的固件更新文件。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
生成包括标识所述固件镜像文件是否被允许用于更新的信息的所述白名单。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
动态更新标识所述固件镜像文件是否被允许用于更新的所述信息。
4.根据权利要求1至3中任一项所述的方法,其特征在于,
所述固件更新请求还包括用户端发送的随机数;以及
通过对所述白名单进行加密生成所述白名单签名值包括:
分别生成非对称随机密钥和对称密码,其中,所述非对称随机密钥包括相互对应的公钥和私钥;
利用所述对称密码对所述随机数进行加密得到随机数哈希值;以及
利用所述私钥对所述白名单和所述随机数哈希值进行加密,生成所述白名单签名值。
5.根据权利要求4所述的方法,其特征在于,
所述固件更新请求还包括与所述随机数同时生成的时间戳;以及
在生成所述白名单签名值的步骤中,
利用所述私钥对所述白名单、所述随机数哈希值和所述时间戳进行加密,生成所述白名单签名值。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
对所述固件镜像文件进行哈希计算生成固件镜像文件哈希摘要;
利用所述私钥对所述固件镜像文件哈希摘要进行加密,生成文件签名值;以及
响应于所述固件更新请求发送包括所述文件签名值的所述固件更新文件。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
对所述公钥进行哈希计算生成公钥哈希值;以及
响应于所述固件更新请求发送包括所述公钥哈希值的所述固件更新文件。
8.根据权利要求4至7中任一项所述的方法,其特征在于,所述方法还包括:
预先向所述用户端发送所述公钥和所述对称密码。
9.根据权利要求4所述的方法,其特征在于,采用非对称加密算法生成所述非对称随机密钥。
10.根据权利要求6或7所述的方法,其特征在于,采用安全散列算法SHA-256进行所述哈希计算。
11.根据权利要求1所述的方法,其特征在于,所述固件更新方法用于更新存储器系统的固件。
12.一种固件更新方法,其特征在于,所述方法包括:
获取固件更新文件,所述固件更新文件包括固件镜像文件、白名单和白名单签名值,其中所述白名单包括标识所述固件镜像文件是否被允许用于更新的信息;
利用预先获取的公钥对所述白名单签名值进行解密,得到待验证白名单;以及
在确定出所述待验证白名单与所述白名单相同后,获取所述白名单的所述信息,以确认所述固件镜像文件是否被允许用于更新,
如果是,则基于所述固件镜像文件实现固件更新,否则拒绝固件更新。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
在确定出所述待验证白名单与所述白名单不同后,则拒绝固件更新。
14.根据权利要求12或13所述的方法,其特征在于,所述固件更新文件还包括文件签名值,以及
所述方法还包括:
利用所述公钥对所述文件签名值进行解密,得到文件哈希摘要,并对获取的所述固件镜像文件进行哈希计算,得到待验证哈希摘要;
判断所述待验证哈希摘要与所述文件哈希摘要是否相同;以及
如果相同,则进入确定所述待验证白名单与所述白名单是否相同的步骤,如果不相同,则拒绝固件更新。
15.根据权利要求14所述的方法,其特征在于,
所述固件更新文件还包括公钥哈希值,以及
所述方法还包括:
对所述公钥进行哈希计算,得到待验证哈希公钥;
判断所述待验证哈希公钥与所述公钥哈希值是否相同;以及
如果相同,则进入判断所述待验证哈希摘要与所述文件哈希摘要是否相同的步骤,如果不相同,则拒绝固件更新。
16.根据权利要求15所述的方法,其特征在于,
所述白名单签名值还包括随机数哈希值,所述随机数哈希值由与固件更新请求同时生成的随机数经对称密码加密生成;以及
所述方法还包括:
利用所述公钥对所述白名单签名值进行解密,得到所述随机数哈希值;
利用预先获取的对称密码对本地保留的随机数进行加密,得到待验证哈希随机数;
判断所述待验证哈希随机数与所述随机数哈希值是否相同;以及
如果相同,则进入判断所述待验证哈希公钥与所述公钥哈希值是否相同的步骤,如果不相同,则拒绝固件更新。
17.根据权利要求14或15所述的方法,其特征在于,所述哈希计算采用安全散列算法SHA-256。
18.根据权利要求16所述的方法,其特征在于,
所述白名单签名值还包括时间戳,所述时间戳与固件更新请求同时生成;以及
所述方法还包括:
利用所述公钥对所述白名单签名值进行解密,得到待验证时间戳;
判断所述待验证时间戳与本地保留的时间戳是否相同;以及
如果相同,则进入判断所述待验证哈希公钥与所述公钥哈希值是否相同的步骤,如果不相同,则拒绝固件更新。
19.根据权利要求12所述的方法,其特征在于,所述固件更新方法用于更新存储器系统的固件。
20.一种存储器系统,其特征在于,包括:
一个或多个存储管芯,其用于存储数据;以及
存储控制器,其与所述存储管芯耦接,并且其被配置为:
获取固件更新文件,所述固件更新文件包括固件镜像文件、白名单和白名单签名值,其中所述白名单包括标识所述固件镜像文件是否被允许用于更新的信息;利用预先获取的公钥对所述白名单签名值进行解密,得到待验证白名单;以及在确定出所述待验证白名单与所述白名单相同后,获取所述白名单的所述信息,以确认所述固件镜像文件是否被允许用于更新,如果是,则基于所述固件镜像文件实现固件更新,否则拒绝固件更新。
21.根据权利要求20所述的存储器系统,其特征在于,所述存储控制器被进一步配置为:
在确定出所述待验证白名单与所述白名单不同后,则拒绝固件更新。
22.根据权利要求20或21所述的存储器系统,其特征在于,所述固件更新文件还包括文件签名值,以及所述存储控制器被进一步配置为:
利用所述公钥对所述文件签名值进行解密,得到文件哈希摘要,并对获取的所述固件镜像文件进行哈希计算,得到待验证哈希摘要;
判断所述待验证哈希摘要与所述文件哈希摘要是否相同;以及
如果相同,则进入确定所述待验证白名单与所述白名单是否相同的步骤,如果不相同,则拒绝固件更新。
23.根据权利要求22所述的存储器系统,其特征在于,所述固件更新文件还包括公钥哈希值,以及所述存储控制器被进一步配置为:
对所述公钥进行哈希计算,得到待验证哈希公钥;
判断所述待验证哈希公钥与所述公钥哈希值是否相同;以及
如果相同,则进入判断所述待验证哈希摘要与所述文件哈希摘要是否相同的步骤,如果不相同,则拒绝固件更新。
24.根据权利要求23所述的存储器系统,其特征在于,所述白名单签名值还包括随机数哈希值,所述随机数哈希值由与固件更新请求同时生成的随机数经对称密码加密生成;以及所述存储控制器被进一步配置为:
利用所述公钥对所述白名单签名值进行解密,得到所述随机数哈希值;
利用预先获取的对称密码对本地保留的随机数进行加密,得到待验证哈希随机数;
判断所述待验证哈希随机数与所述随机数哈希值是否相同;以及
如果相同,则进入判断所述待验证哈希公钥与所述公钥哈希值是否相同的步骤,如果不相同,则拒绝固件更新。
25.根据权利要求22或23所述的存储器系统,其特征在于,所述哈希计算采用安全散列算法SHA-256。
26.根据权利要求24所述的存储器系统,其特征在于,所述白名单签名值还包括时间戳,所述时间戳与固件更新请求同时生成;以及所述存储控制器被进一步配置为:
利用所述公钥对所述白名单签名值进行解密,得到待验证时间戳;
判断所述待验证时间戳与本地保留的时间戳是否相同;以及
如果相同,则进入判断所述待验证哈希公钥与所述公钥哈希值是否相同的步骤,如果不相同,则拒绝固件更新。
27.根据权利要求20所述的存储器系统,其特征在于,所述存储器系统包括固态硬盘。
28.一种固件更新装置,其特征在于,所述装置包括:
接收计算模块,所述接收计算模块用于接收来自用户端的更新请求;
更新模块,所述更新模块用于生成白名单,所述白名单包括标识所述固件镜像文件是否被允许用于更新的信息;以及
加密发送模块,所述加密发送模块用于对所述白名单进行加密,以生成白名单签名值,以及用于发送固件更新文件,所述固件更新文件包括固件镜像文件、所述白名单和所述白名单签名值。
29.一种固件更新装置,其特征在于,所述装置包括:
获取模块,所述获取模块用于获取固件更新文件,所述固件更新文件包括固件镜像文件、白名单和白名单签名值,其中,所述白名单包括标识所述固件镜像文件是否被允许用于更新的信息;以及
认证模块,所述认证模块用于利用预先获取的公钥对所述白名单签名值进行解密,得到待验证白名单;以及在确定出所述待验证白名单与所述白名单相同后,获取所述白名单的所述信息,以确认所述固件镜像文件是否被允许用于更新,如果是,则基于所述固件镜像文件实现固件更新,否则拒绝固件更新。
30.一种固件更新设备,其特征在于,所述设备包括:
存储器,用于存储计算机程序;以及
处理器,用于执行所述计算机程序,以实现如权利要求1-11中任一项所述的固件更新方法,或实现如权利要求12-19中任一项所述的固件更新方法。
31.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1-11中任一项所述的固件更新方法,或实现如权利要求12-19中任一项所述的固件更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110608879.8A CN113239363A (zh) | 2021-06-01 | 2021-06-01 | 固件更新方法、装置、设备、可读存储介质及存储器系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110608879.8A CN113239363A (zh) | 2021-06-01 | 2021-06-01 | 固件更新方法、装置、设备、可读存储介质及存储器系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113239363A true CN113239363A (zh) | 2021-08-10 |
Family
ID=77136114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110608879.8A Pending CN113239363A (zh) | 2021-06-01 | 2021-06-01 | 固件更新方法、装置、设备、可读存储介质及存储器系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113239363A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112364394A (zh) * | 2020-11-11 | 2021-02-12 | 中国信息安全测评中心 | 一种固态硬盘的安全防护方法及装置 |
CN114499892A (zh) * | 2022-03-31 | 2022-05-13 | 飞腾信息技术有限公司 | 固件启动方法、装置、计算机设备及可读存储介质 |
CN116628767A (zh) * | 2023-07-20 | 2023-08-22 | 常州楠菲微电子有限公司 | 一种预防系统启动后flash系统固件攻击方法及flash控制器 |
WO2023227702A1 (de) * | 2022-05-25 | 2023-11-30 | Lenze Se | Verfahren zur versionsverwaltung von firmware für komponenten der funktionalen sicherheit und elektrisches gerät |
CN117556430A (zh) * | 2024-01-12 | 2024-02-13 | 上海芯联芯智能科技有限公司 | 一种安全启动方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140208114A1 (en) * | 2013-01-18 | 2014-07-24 | Neopost Technologies | System and method for massive controlled and secured update of devices firmware |
CN108959973A (zh) * | 2018-06-27 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种针对bmc固件刷新的保护方法与系统 |
CN109583189A (zh) * | 2018-12-13 | 2019-04-05 | 深圳忆联信息系统有限公司 | 固件安全加载方法、装置、计算机设备及存储介质 |
CN110008693A (zh) * | 2019-04-12 | 2019-07-12 | 深圳市趣创科技有限公司 | 安全应用程序加密保证方法及装置与系统和存储介质 |
CN112181467A (zh) * | 2020-10-10 | 2021-01-05 | 北京字节跳动网络技术有限公司 | 终端的存储器固件升级方法、装置、终端和存储介质 |
CN112784280A (zh) * | 2021-01-12 | 2021-05-11 | 苏州浪潮智能科技有限公司 | 一种SoC芯片安全设计方法及硬件平台 |
-
2021
- 2021-06-01 CN CN202110608879.8A patent/CN113239363A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140208114A1 (en) * | 2013-01-18 | 2014-07-24 | Neopost Technologies | System and method for massive controlled and secured update of devices firmware |
CN108959973A (zh) * | 2018-06-27 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种针对bmc固件刷新的保护方法与系统 |
CN109583189A (zh) * | 2018-12-13 | 2019-04-05 | 深圳忆联信息系统有限公司 | 固件安全加载方法、装置、计算机设备及存储介质 |
CN110008693A (zh) * | 2019-04-12 | 2019-07-12 | 深圳市趣创科技有限公司 | 安全应用程序加密保证方法及装置与系统和存储介质 |
CN112181467A (zh) * | 2020-10-10 | 2021-01-05 | 北京字节跳动网络技术有限公司 | 终端的存储器固件升级方法、装置、终端和存储介质 |
CN112784280A (zh) * | 2021-01-12 | 2021-05-11 | 苏州浪潮智能科技有限公司 | 一种SoC芯片安全设计方法及硬件平台 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112364394A (zh) * | 2020-11-11 | 2021-02-12 | 中国信息安全测评中心 | 一种固态硬盘的安全防护方法及装置 |
CN114499892A (zh) * | 2022-03-31 | 2022-05-13 | 飞腾信息技术有限公司 | 固件启动方法、装置、计算机设备及可读存储介质 |
WO2023227702A1 (de) * | 2022-05-25 | 2023-11-30 | Lenze Se | Verfahren zur versionsverwaltung von firmware für komponenten der funktionalen sicherheit und elektrisches gerät |
CN116628767A (zh) * | 2023-07-20 | 2023-08-22 | 常州楠菲微电子有限公司 | 一种预防系统启动后flash系统固件攻击方法及flash控制器 |
CN116628767B (zh) * | 2023-07-20 | 2023-10-17 | 常州楠菲微电子有限公司 | 一种预防系统启动后flash系统固件攻击方法及flash控制器 |
CN117556430A (zh) * | 2024-01-12 | 2024-02-13 | 上海芯联芯智能科技有限公司 | 一种安全启动方法、装置、设备及存储介质 |
CN117556430B (zh) * | 2024-01-12 | 2024-03-29 | 上海芯联芯智能科技有限公司 | 一种安全启动方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108768664B (zh) | 密钥管理方法、装置、系统、存储介质和计算机设备 | |
CN111010410B (zh) | 一种基于证书身份认证的拟态防御系统及证书签发方法 | |
US10708062B2 (en) | In-vehicle information communication system and authentication method | |
CN113239363A (zh) | 固件更新方法、装置、设备、可读存储介质及存储器系统 | |
EP2887576B1 (en) | Software key updating method and device | |
CN106612180B (zh) | 实现会话标识同步的方法及装置 | |
CN111031047B (zh) | 设备通信方法、装置、计算机设备及存储介质 | |
KR101754308B1 (ko) | 모바일 민감 데이터 관리 방법 및 이를 수행하는 위탁 서버 | |
CN110995757B (zh) | 加密装置、加密系统和数据的加密方法 | |
US11329835B2 (en) | Apparatus and method for authenticating IoT device based on PUF using white-box cryptography | |
CN107733636B (zh) | 认证方法以及认证系统 | |
US11381585B2 (en) | Method and system for providing security on in-vehicle network | |
JP2007535015A (ja) | プロセッサの保護された資源へのアクセスに対するセキュリティ保護方法 | |
CN112396735B (zh) | 网联汽车数字钥匙安全认证方法及装置 | |
KR102364649B1 (ko) | Puf 기반 사물인터넷 디바이스 인증 장치 및 방법 | |
CN113392401A (zh) | 认证系统 | |
KR102591826B1 (ko) | Puf를 이용한 인증서 기반 디바이스 인증 장치 및 방법 | |
JP2017011491A (ja) | 認証システム | |
CN115203708B (zh) | 一种应用数据部署至协处理器的方法及系统 | |
CN116388992A (zh) | 针对分布式tee应用的远程认证方法及装置 | |
CN109302442B (zh) | 一种数据存储证明方法及相关设备 | |
CN108900595B (zh) | 访问云存储服务器数据的方法、装置、设备及计算介质 | |
US10404719B2 (en) | Data verification method | |
CN113872986A (zh) | 配电终端认证方法、系统、装置、计算机设备和存储介质 | |
CN107343276B (zh) | 一种终端的sim卡锁数据的保护方法及系统 |
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 |