CN113127041A - 存储器系统及其固件更新方法、设备及可读存储介质 - Google Patents
存储器系统及其固件更新方法、设备及可读存储介质 Download PDFInfo
- Publication number
- CN113127041A CN113127041A CN202110495988.3A CN202110495988A CN113127041A CN 113127041 A CN113127041 A CN 113127041A CN 202110495988 A CN202110495988 A CN 202110495988A CN 113127041 A CN113127041 A CN 113127041A
- Authority
- CN
- China
- Prior art keywords
- firmware
- target
- update
- version
- version information
- 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
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/62—Uninstallation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种存储系统及其固件更新方法、设备及计算机可读存储介质。存储系统的固件更新方法包括:响应于来自耦接有存储器系统的用户终端的、包括存储器系统的当前固件的版本信息和欲更新的目标固件的版本信息的固件更新请求,根据更新信息列表和固件更新请求生成相应的文件签名值,其中更新信息列表包括固件的版本信息与密钥的对应关系;以及向用户终端发送包括目标固件和相应的文件签名值的固件更新文件。根据该固件更新方法,通过非逐级递进式的固件更新方式,可实现更加灵活多变、安全可靠的固件更新,进一步地还可大幅度提升固件更新的效率。
Description
技术领域
本申请涉及计算机技术领域,更具体地,涉及存储器系统的固件更新方法、存储器系统、存储器系统的固件更新设备及计算机可读存储介质。
背景技术
固件(firmware)是一种存储于设备中的EEPROM或FLASH芯片中,并可由用户终端通过特定的刷新程序进行升级的程序。固件通常在诸如个人电脑、手机、GPS终端以及数码卫星接收器等设备中担任最基础、最底层的工作。固件的更新或升级是指把新的固件写入上述芯片中,以代替原有的固件的过程。
由于在EEPROM或FLASH芯片中存储的通常是较为机密的信息,所以保证存储的数据信息的安全性至关重要,而固件更新主要作用之一即为修复现有固件内的BUG,提高固件质量和安全性。
传统的固件更新方法仅可实现逐级递进式的固件升级,换言之,传统的固件更新方法不可通过一次固件更新过程实现越级升级,此外,传统的固件更新方法也不能实现降级更新(降级更新为采用低级固件版本替换现有的高级固件版本)。此外,当采用传统的固件更新方法实现越级更新固件时,必须要通过多次固件更新过程,逐级递进至欲更新的目标固件版本,因此大大降低了固件更新的效率。
发明内容
本申请提供了一种可至少部分解决现有技术中存在的上述问题的存储器系统的固件更新方法、存储器系统、存储器系统的固件更新设备及计算机可读存储介质。
本申请一方面提供了一种存储器系统的固件更新方法,所述方法包括:响应于来自耦接有所述存储器系统的用户终端的、包括所述存储器系统的当前固件的版本信息和欲更新的目标固件的版本信息的固件更新请求,根据更新信息列表和所述固件更新请求生成相应的文件签名值,其中所述更新信息列表包括固件的版本信息与密钥的对应关系;以及向所述用户终端发送包括所述目标固件和相应的所述文件签名值的固件更新文件。
在本申请一个实施方式中,所述方法还包括:生成所述更新信息列表。
在本申请一个实施方式中,生成所述更新信息列表的步骤包括:生成包括所述固件的N个版本信息和N个所述密钥的更新信息列表,所述密钥包括相互对应的公钥和私钥,其中,第N-1个固件版本信息与第N个公钥对应;第N-1个固件版本信息与第N-1个私钥对应;以及N为任意正整数,且N≥2。
在本申请一个实施方式中,生成所述文件签名值的步骤包括:通过所述更新信息列表获取与所述目标固件的版本信息所对应的公钥;对所述目标固件和与所述目标固件的版本信息对应的所述公钥进行计算,生成所述目标固件的哈希值;以及基于所述哈希值生成所述文件签名值。
在本申请一个实施方式中,基于所述哈希值生成所述文件签名值包括:通过所述更新信息列表获取与所述当前固件的版本信息对应的私钥;以及通过与所述当前固件的版本信息对应的所述私钥对所述目标固件的哈希值进行加密以形成所述文件签名值。
在本申请一个实施方式中,所述固件更新文件还包括与所述目标固件的版本信息对应的所述公钥。
在本申请一个实施方式中,所述目标固件的版本信息所反映的目标固件的版本低于所述当前固件的版本信息所反映的当前固件的版本,或者所述目标固件的版本信息所反映的目标固件的版本相对所述当前固件的版本信息所反映的当前固件的版本至少高两级。
在本申请一个实施方式中,所述存储器系统包括固态硬盘。
本申请另一方面提供了一种固件更新方法,所述方法包括:接收包括所述目标固件和相应的文件签名值的固件更新文件,其中所述文件签名值是根据更新信息列表、所述存储器系统的当前固件的版本信息和欲更新的目标固件的版本信息生成的,所述更新信息列表包括固件的版本信息与密钥的对应关系;对接收到的所述固件更新文件进行认证;以及在认证通过的情况下,允许将所述当前固件更新为所述目标固件。
在本申请一个实施方式中,对接收到的所述固件更新文件进行认证的步骤包括:利用本地保存的、与当前固件的版本信息对应的公钥对所述文件签名值进行解密,得到所述目标固件的哈希值;对获取的所述目标固件和与所述目标固件的版本信息对应的所述公钥进行哈希计算,得到待验证哈希目标固件;判断所述待验证哈希目标固件与所述目标固件哈希值是否相同;以及如果相同,则通过所述认证。
在本申请一个实施方式中,在认证不通过的情况下,禁止将所述当前固件更新为所述目标固件。
在本申请一个实施方式中,所述目标固件的版本信息所反映的目标固件的版本低于所述当前固件的版本信息所反映的当前固件的版本,或者所述目标固件的版本信息所反映的目标固件的版本相对所述当前固件的版本信息所反映的当前固件的版本至少高两级。
在本申请一个实施方式中,所述存储器系统包括固态硬盘。
本申请又一方面提供了一种存储器系统,其包括配置有固件的存储控制器,其中,所述存储控制器被配置为能够使用如本申请另一方面提供的任一项存储器系统的固件更新方法将当前固件更新为相应的目标版本。
本申请又一方面提供了一种存储器系统的固件更新设备,包括存储器、处理器以及存储器上并可在处理器上运行的计算机存储器,其中,所述处理器可执行所述计算机程序以实现如本申请一方面提供的任一项存储器系统的固件更新方法、或实现如本申请另一方面提供的任一项存储器系统的固件更新方法。
本申请又一方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,其中,所述计算机程序被处理器执行时实现如本申请一方面提供的任一项存储器系统的固件更新方法、或实现如本申请另一方面提供的任一项存储器系统的固件更新方法。
根据本申请一个实施方式提供的存储器系统的固件更新方法、存储器系统、存储器系统的固件更新设备及计算机可读存储介质通过建立更新信息列表,可根据用户终端当前固件的版本信息和欲更新的目标固件的版本信息,发送符合用户终端固件更新请求的固件更新文件,进而实现非逐级递进式的固件更新方式,使固件更新更加灵活多变、安全可靠。
此外,根据本申请的至少一个实施方式,通过建立更新信息列表,可仅通过一次固件更新过程实现用户终端的越级固件更新或降级固件更新,因而大幅度地提升了固件更新的效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例的详细描述,本申请的其它特征、目的和优点将会变得更明显。其中:
图1是根据本申请一个实施方式的固件更新方法流程图;
图2是根据本申请一个实施方式的更新信息列表的示意图;
图3是根据本申请一个实施方式的固件更新系统的结构及工作方式示意图;
图4是根据本申请一个实施方式的生成固件更新文件的过程示意图;
图5是根据本申请一个实施方式的用户终端实施解密、认证的过程示意图;
图6是根据本申请另一实施方式的生成固件更新文件的过程示意图;
图7是根据本申请另一实施方式的用户终端实施解密、认证的过程示意图;
图8是根据本申请一个实施方式的固件更新方式的示意图;
图9是根据本申请一个实施方式的具有存储器系统的用户终端的示意图;
图10是根据本申请一个实施方式的存储器系统的示意图;以及
图11至图13是传统固件更新方法中固件更新方式的示意图。
具体实施方式
为了更好地理解本申请,将参考附图对本申请的各个方面做出更详细的说明。应理解,这些详细说明只是对本申请的示例性实施方式的描述,而非以任何方式限制本申请的范围。在说明书全文中,相同的附图标号指代相同的元件。表述“和/或”包括相关联的所列项目中的一个或多个的任何和全部组合。
应注意,在本说明书中,第一、第二、第三等的表述仅用于将一个特征与另一个特征区域分开来,而不表示对特征的任何限制,尤其不表示任何的先后顺序。因此,在不背离本申请的教导的情况下,本申请中讨论的第一个固件版本信息也可被称作第二个固件版本信息,第一个私钥也可称为第二个私钥,反之亦然。
在附图中,为了便于说明,已稍微调整了部件的厚度、尺寸和形状。附图仅为示例而并非严格按比例绘制。如在本文中使用的,用语“大致”、“大约”以及类似的用语用作表近似的用语,而不用作表程度的用语,并且旨在说明将由本领域普通技术人员认识到的、测量值或计算值中的固有偏差。
还应理解的是,诸如“包括”、“包括有”、“具有”、“包含”和/或“包含有”等表述在本说明书中是开放性而非封闭性的表述,其表示存在所陈述的特征、元件和/或部件,但不排除一个或多个其它特征、元件、部件和/或它们的组合的存在。此外,当诸如“...中的至少一个”的表述出现在所列特征的列表之后时,其修饰整列特征,而非仅仅修饰列表中的单独元件。此外,当描述本申请的实施方式时,使用“可”表示“本申请的一个或多个实施方式”。并且,用语“示例性的”旨在指代示例或举例说明。
除非另外限定,否则本文中使用的所有措辞(包括工程术语和科技术语)均具有与本申请所属领域普通技术人员的通常理解相同的含义。还应理解的是,除非本申请中有明确的说明,否则在常用词典中定义的词语应被解释为具有与它们在相关技术的上下文中的含义一致的含义,而不应以理想化或过于形式化的意义解释。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。另外,除非明确限定或与上下文相矛盾,否则本申请所记载的方法中包含的具体步骤不必限于所记载的顺序,而可以任意顺序执行或并行地执行。下面将参考附图并结合实施例来详细说明本申请。
此外,在本申请中当使用“连接”或“联接”时可表示相应部件之间为直接的接触或间接的接触,除非有明确的其它限定或者能够从上下文推导出的除外。
图1是根据本申请一个方式的存储器系统的固件更新方法1000的流程图。如图1所示,本申请提供一种存储器系统的固件更新方法1000包括:
S1,响应于来自耦接有存储器系统的用户终端的、包括存储器系统的当前固件的版本信息和欲更新的目标固件的版本信息的固件更新请求,根据更新信息列表和固件更新请求生成相应的文件签名值,其中更新信息列表包括固件的版本信息与密钥的对应关系;
S2,向用户终端发送包括目标固件和相应的文件签名值的固件更新文件。
下面将结合图2至图8详细说明上述固件更新方法1000的各个具体步骤。
图2是根据本申请一个实施方式的更新信息列表的示意图。图3是根据本申请一个实施方式的固件更新系统的结构及工作方式示意图。
如图2和图3所示,固件更新系统可主要包括:固件发布服务器100和耦接有存储器系统的用户终端200,其中用户终端200可以是诸如个人电脑、手机、GPS终端和数码卫星接收器等。
在本申请的一个实施方式中,存储器系统(例如固态硬盘SSD)可包括FLASH芯片(例如三维NAND Flash存储器)的设备。FLASH芯片可作为上述存储器系统的SSD(SolidState Drives,固态硬盘)210的存储介质来存储数据。
固件(firmware)是一种存储于上述设备的EEPROM(Electrically ErasableProgrammable ROM,带电可擦除可编程只读存储器)或FLASH芯片中,并可由用户终端200通过特定的刷新程序进行升级的程序。固件掌控着SSD210的读/写和传输的算法,并合理的分配数据的存储。SSD210因其高速存储性、抗震性及高可靠性被广泛应用于诸如军事领域等重要。由于SSD210存储的通常是较为机密的信息,所以保证SSD210存储的数据信息的安全性至关重要,而固件更新主要作用之一即为修复SSD210的BUG,提高SSD210的质量和安全性。
在本申请的一个实施方式中,用户终端200可通过例如TCP/IP协议与固件发布服务器100建立连接,发送固件更新请求,并获取响应固件更新请求发送的固件更新版本。进一步地,在用户终端200的内部,还可通过例如PCIe(peripheral component interconnectexpress,高速串行计算机扩展总线标准)总线将获取到的固件更新文件传输到SSD210,并在SSD210中对固件更新文件进行解密、认证以及基于目标更新文件实现固件更新。
在传统的固件更新方法中,为了保护固件更新文件不受第三方的恶意篡改或截取,固件发布服务器通常会通过某些诸如MD5、SHA1以及CRC32等单向散列函数对预发送给用户终端的目标固件(目标固件的镜像文件)进行运算,生成对应的哈希摘要,并由固件发布服务器的密钥生成模块生成相互对应的公钥和私钥,由该私钥对上述哈希摘要进行加密,从而生成文件签名值。之后,将文件签名值、目标固件本身和与私钥对应的公钥打包成一个固件更新文件,用以响应用户终端的固件更新请求。
进一步地,在传统的固件更新方法中,固件发布服务器通常将用户终端本次固件更新所需的公钥预先发送给用户终端。换言之,本次发送的固件更新文件包括用于解密与目标固件版本相邻的下一个高级固件版本所需要的公钥(即,下一个公钥)。
具体地,固件发布服务器可包括计算模块和加密模块,例如SHA哈希引擎和RSA加密引擎,计算模块可对目标固件以及下一个公钥进行计算提取哈希值。然后,加密模块可采用密钥生成模块生成的相互对应的密钥中的私钥对上述哈希值进行加密生成文件签名值,其中,与该私钥相对应的公钥已经在上一次的固件更新过程中发送给了用户终端。之后,将目标固件(即,目标固件的镜像文件)、下一个公钥以及文件签名值打包生成固件更新文件。
当用户终端的SSD收到一个固件更新文件后,首先可使用与固件发布服务器的计算模块相同的、例如SHA哈希引擎对接收到的目标固件和下一个公钥进行计算提取哈希值,同时SSD的、与固件发布服务器的加密模块相对的解密模块,例如RSA解密引擎,可使用预先在上一次更新过程中接收到的公钥对接收到的文件签名值进行解密,以输出原始的哈希值。然后,对原始哈希值和本地计算模块计算出来的哈希值进行比较。如果相同,则认为收到的目标固件安全可靠,可以基于该目标固件实现固件更新;如果不相同,则认为收到的目标固件是非法的,或者是恶意篡改或截取过的,不能基于该目标固件实现固件更新。
然而,如图11至图13所示,采用传统的固件更新方法仅可实现逐级递进式的固件升级,换言之,传统的固件更新方法不能通过一次固件更新过程实现越级升级,传统的固件更新方法也不能实现降级更新(降级更新为采用低级固件版本替换现有的高级固件版本)。此外,当采用传统的固件更新方法实现越级更新固件时,必须要通过多次固件更新过程,逐级递进至欲更新的目标固件版本,因而大大降低了固件更新的效率。
在本申请提供的固件更新方法中,可在固件发布服务器100中生成更新信息列表110。更新信息列表110可包括各个固件的版本信息与密钥的对应关系。通过建立更新信息列表110,固件发布服务器100可根据用户终端200的当前固件的版本信息和欲更新的目标固件的版本信息,发送符合用户终端200的固件更新请求的固件更新文件,进而可实现非逐级递进式的固件更新,换言之,本申请提供的固件更新方法可仅通过一次固件更新过程实现越级升级或降级更新,使固件更新更加灵活多变、安全可靠。进一步地,本申请提供的固件更新方法可仅通过一次固件更新过程使用户终端200的SSD210的固件更新至目标固件,大幅度地提升了固件更新的效率。
在本申请的一个实施方式中,生成更新信息列表110的步骤可包括:生成包括固件的N个版本信息和N个密钥的更新信息列表,其中密钥包括相互对应的公钥和私钥,换言之,固件发布服务器100可利用与固件版本信息相对应的私钥对该固件进行加密,同样地,用户终端200的SSD210可利用与该私钥相对的公钥对该固件进行解密。在更新信息列表110中,第N-1个固件版本信息与第N个公钥对应,并且第N-1个固件版本信息与第N-1个私钥对应,N为任意正整数,且N≥2。作为一种选择,上述公钥和私钥也可以是其相应的索引(index)。
具体地,如图2所示,当N=6时,更新信息列表110共有5个固件版本信息和6对密钥,其中,6对密钥包括6对相互对应的公钥和私钥(如图2中椭圆虚线所示),在更新信息列表110中,固件第一版本信息对应第一私钥和第二公钥;固件第二版本信息对应第二私钥和第三公钥……固件第五版本信息对应第五私钥和第六公钥。作为一种选择,固件第一版本可以是在SSD210出厂时烧录在SSD210中的固件初始版本,可采用第一私钥对第一版本固件进行加密,然后第二公钥可与第一版本固件同时存储在SSD210的EEPROM或FLASH芯片中。
图4是根据本申请一个实施方式的固件发布服务器100生成固件更新文件的过程示意图。图6是根据本申请另一实施方式的固件发布服务器100生成固件更新文件的过程示意图。
作为一种选择,在本申请的一个实施方式中,目标固件的版本信息所反映的目标固件的版本可低于当前固件的版本信息所反映的当前固件的版本;作为另一种选择,在本申请的另一实施方式中,目标固件的版本信息所反映的目标固件的版本相对当前固件的版本信息所反映的当前固件的版本至少高两级。
具体地,如图3、图4和图6所示,步骤S1响应于来自耦接有存储器系统的用户终端200的、包括存储器系统的当前固件的版本信息和欲更新的目标固件的版本信息的固件更新请求,根据更新信息列表110与固件更新请求成相应文件签名值可例如包括:固件发布服务器100通过管理模块(未示出)生成包括固件发布服务器100上全部的固件的版本信息与密钥的对应关系的更新信息列表110;通过更新信息列表110获取与用户终端200的SSD210的欲更新的目标固件的版本信息对应的公钥;对目标固件和与目标固件的版本信息对应的公钥进行计算,生成目标固件的哈希值;通过更新信息列表110获取与用户终端200的SSD210上当前固件的版本信息对应的私钥;通过与当前固件的版本信息对应的私钥对目标固件哈希值进行加密以形成文件签名值;以及步骤S2发送包括目标固件和文件签名值的固件更新文件。
进一步地,固件更新文件还可包括与目标固件的版本信息对应的公钥。
具体地,如图4所示,在本申请的一个实施方式中,固件发布服务器100可通过管理模块生成包括固件发布服务器100上全部的固件的版本信息与密钥的对应关系的更新信息列表110。
根据固件更新请求获悉,用户终端200的SSD210上当前固件的版本为第一版本固件1,欲更新的目标固件的版本为第五版本固件5。固件发布服务器100响应于上述固件更新请求,通过更新信息列表110获取与第五版本固件5信息对应的公钥6,与第一版本固件1信息对应的公钥1,以及与公钥1相对应的私钥1。
进一步地,作为一种选择,固件发布服务器100还可包括接收计算模块(未示出)和加密发送模块(未示出),接收计算模块可包括例如用于进行计算的SHA哈希引擎,加密发送模块可包括例如用于进行加密的RSA加密引擎。接收计算模块对固件5(即,固件5的镜像文件)以及公钥6进行计算提取固件5的哈希值。加密发送模块可采用私钥2对上述固件5的哈希值进行加密生成文件签名值。之后,将固件5(即,目标固件的镜像文件)、公钥6以及文件签名值打包生成固件更新文件,发送给用户终端200的SSD210。
在上述实施方式中,本申请提供的固件更新方法可例如通过一次固件更新过程使用户终端的固件版本从第一版本越级升至第五版本,换言之,本申请提供的固件更新方法可通过一次固件更新过程实现越级升级的固件更新,进而使固件更新更加灵活多变、安全可靠。进一步地,本申请提供的固件更新方法因其仅通过一次固件更新过程即可更新至目标固件,所以大幅度地提升了固件更新的效率。
如图6所示,在本申请的一个实施方式中,固件发布服务器100可通过管理模块生成包括固件发布服务器100上全部的固件的版本信息与密钥的对应关系的更新信息列表110。
根据固件更新请求获悉,用户终端200的SSD210上当前固件的版本为第五版本固件5,欲更新的目标固件的版本为第四版本固件4。固件发布服务器100响应于上述固件更新请求,通过更新信息列表110获取与第四版本固件4信息对应的公钥5,与第五版本固件5信息对应的公钥6,以及与公钥6相对应的私钥6。
进一步地,作为一种选择,固件发布服务器100还可包括接收计算模块(未示出)和加密发送模块(未示出),接收计算模块可包括例如用于进行计算的SHA哈希引擎,加密发送模块可包括例如用于进行加密的RSA加密引擎。接收计算模块对固件4(固件4的镜像文件)以及公钥5进行计算提取固件4的哈希值。加密发送模块可采用私钥6对上述固件4的哈希值进行加密生成文件签名值。之后,将固件4(目标固件的镜像文件)、公钥5以及文件签名值打包生成固件更新文件,发送给用户终端200的SSD210。
在上述实施方式中,本申请提供的固件更新方法可例如通过一次固件更新过程使用户终端的固件版本从第五版本降级更新至第四版本,换言之,本申请提供的固件更新方法使固件更新实现降级更新,进而使固件更新更加灵活多变、安全可靠。
本申请的另一方面还提供了一种关于耦接有存储器系统的用户终端200实施解密、认证以及固件更新的方法。
图5是根据本申请一个实施方式的用户终端200实施解密、认证的过程示意图。图7是根据本申请另一实施方式的用户终端200实施解密、认证的过程示意图。
如图5和图7所示,该方法可例如包括:接收固件更新文件;对固件更新文件进行认证,若认证未通过,则禁止将当前固件更新为目标固件;若认证通过,则允许将当前固件更新为目标固件。
在本申请的一个实施方式中,SSD210的认证过程可例如包括:当用户终端200的SSD210接收到一个包括文件签名值和目标固件的固件更新文件,并接收到与目标固件的版本信息对应的公钥后,首先SSD的、与固件发布服务器100的加密发送模块相对的解密模块,例如RSA解密引擎,利用本地保存的、与当前固件的版本信息对应的公钥对文件签名值进行解密,以得到目标固件的哈希值。进一步地,可使用与固件发布服务器100的接收计算模块相同的、例如SHA哈希引擎对接收到的目标固件和与目标固件版本信息对应的公钥进行哈希计算提取哈希值,以得到待验证的哈希目标固件。然后,判断待验证哈希目标固件与目标固件哈希值是否相同。如果相同,则认为收到的目标固件安全可靠,可以基于该目标固件实现固件更新;如果不相同,则认为收到的目标固件是非法的,或者是恶意篡改或截取过的,则禁止将当前固件更新为目标固件;若认证通过,则基于固件更新文件的目标固件实现固件更新。
进一步地,在本申请提供的存储器系统的固件更新方法中,目标固件的版本信息所反映的目标固件的版本低于当前固件的版本信息所反映的当前固件的版本,或者目标固件的版本信息所反映的目标固件的版本相对当前固件的版本信息所反映的当前固件的版本至少高两级。
具体地,如图5所示,在本申请的一个实施方式中,SSD210的当前固件的版本为固件第一版本固件1,欲更新的目标固件的版本为固件第五版本固件5。对接收到的固件更新文件中的固件5和公钥6进行哈希计算提取哈希值,得到待验证的固件5哈希值。利用预先获取的、与固件1对应的公钥2对接收到的固件更新文件中的文件签名值进行解密,得到文件哈希值。判断固件5哈希值与文件固件哈希值是否相同,如果相同,则认为收到的固件5安全可靠,可以基于固件5实现固件更新;如果不相同,则认为收到的固件5是非法的,或者是恶意篡改或截取过的,不能基于固件5实现固件更新。
在上述实施方式中,本申请提供的关于用户终端200实施解密、认证以及固件更新的方法可例如通过一次固件更新过程使用户终端的固件版本从第一版本越级升至第五版本,因此使固件更新实现越级升级,进而使固件更新更加灵活多变、安全可靠。进一步地,本申请提供的固件更新方法因其仅通过一次固件更新过程即可更新至目标固件,大幅度地提升了固件更新的效率。
如图7所示,在本申请的一个实施方式中,SSD210的当前固件的版本为固件第五版本固件5,欲更新的目标固件的版本为固件第四版本固件4。对接收到的固件更新文件中的固件4和公钥5进行哈希计算提取哈希值,得到待验证的固件4哈希值。利用预先获取的、与固件5对应的公钥6对接收到的固件更新文件中的文件签名值进行解密,得到文件哈希值。判断固件4哈希值与文件固件哈希值是否相同,如果相同,则认为收到的固件4安全可靠,可以基于固件4实现固件更新;如果不相同,则认为收到的固件4是非法的,或者是恶意篡改或截取过的,不能基于固件4实现固件更新。
在上述实施方式中,本申请提供的关于用户终端200实施解密、认证以及固件更新的方法可例如通过一次固件更新过程使用户终端的固件版本从第五版本降级更新至第四版本,因此使固件更新实现降级更新,进而使固件更新更加灵活多变、安全可靠。
图8是根据本申请一个实施方式的固件更新方式的示意图。根据本申请一个实施方式提供的固件更新方法,通过建立更新信息列表,可根据用户终端当前固件的版本信息和欲更新的目标固件的版本信息,发送符合用户终端固件更新请求的固件更新文件,进而实现非逐级递进式的固件更新方式,例如仅通过一次更新过程实现越级升级或降级更新,使固件更新更加灵活多变、安全可靠。此外,根据本申请的至少一个实施方式,通过建立更新信息列表,可仅通过一次固件更新过程实现用户终端的越级固件更新或降级更新,因而大幅度地提升固件更新的效率。
图9是根据本申请一个实施方式的具有存储器系统的用户终端400的示意图。图10是根据本申请一个实施方式的存储器系统420的示意图。
如图9和图10所示,本申请的又一方面还提供了一种存储系统420。存储系统420可包括配置有固件的存储控制器428,存储控制器428可被配置为能够使用本申请的另一方面提供的实施解密、认证以及固件更新的方法,以将当前固件更新为相应的目标版本。
具体地,用户终端400通常可包括微处理器408、随机存取存储器(RAM)412、输入/输出电路418和系统总线404。用户终端400可以是诸如照相机、视频摄像机、移动通信装置、音频播放器或视频播放器等实际上可存储数据或信息并且可检索数据或信息的任何系统,本申请对此不作限定。
在一个实施方式中,包括可移动的非易失存储器424的存储系统420与总线404连接以存储信息。可选地,接口单元430可允许存储系统420间接与总线404连接。存储系统420可包括非易失存储器424和存储控制器428。作为一种选择,存储系统420可在一单芯片或电路小片上实现;作为另一种选择,存储系统420可在多芯片模块或在多个分散的、可形成芯片组并可作为存储系统420的一部分的组件上实现。
作为一种选择,非易失存储器424可以是三维NAND闪存存储器,用于存储数据,并使数据在需要时可被访问或读取,此外存储在非易失存储器424中的数据在适当的时候也可被擦除。存储数据、读取数据和擦除数据的过程通常由存储控制器428控制。当控制系统存在时,存储控制器428通过总线15与用户终端400或其它使用存储系统存储数据的系统通信。图10中的总线15通常是图9中的总线104的一部分。存储控制器428可控制包括存储器单元阵列11的非易失存储器424的操作,以写入用户终端400提供的数据、读取用户终端400请求的数据以及执行在非易失存储器424中的各种内务管理功能。
存储器单元阵列11通常可由存储控制器428通过地址解码器17寻址。解码器17施加正确的电压到存储器单元阵列11的选通(gate)和位线,以编写数据到存储单元、从存储单元读取数据或擦除存储单元。附加的电路19(编写并读取)包括控制施加到存储器单元阵列11的元件的、依赖要被编写到被寻址的存储单元的数据的电压。存储器单元阵列11可分成大量的数据块(块0-块N),数据块一殷是最小的擦除单元,换言之,每个数据块包含最小数量的可被一起擦除的存储单元,每个数据块通常可分成许多页(page,例如页5和页6)。非易失存储器424可由存储控制器428管理,存储控制器428有效地执行以控制非易失存储器424的软件和固件中的至少一个。换言之,存储控制器428可运行控制非易失存储器424的软件代码器或固件代码器。进一步地,存储控制器428还可被配置为能够使用本申请的另一方面提供的实施解密、认证以及固件更新的方法,将当前固件更新为相应的目标版本,以修复现有固件内的BUG,提高固件质量和安全性。
由于在上文中描述固件更新方法1000时涉及的内容和结构可完全或部分地适用于在这里描述的用户终端的存储器系统的,因此与其相关或相似的内容不再赘述。
根据本申请一个实施方式提供的固件更新装置,通过建立更新信息列表,可根据用户终端当前固件的版本信息和欲更新的目标固件的版本信息,发送符合用户终端固件更新请求的固件更新文件,进而实现非逐级递进式的固件更新方式,例如通过一次固件更新过程实现越级升级或降级更新,使固件更新更加灵活多变、安全可靠。此外,根据本申请的至少一个实施方式,固件更新装置通过建立更新信息列表,可仅通过一次固件更新过程实现用户终端的越级升级或降级更新,因而大幅度地提升了固件更新的效率。
本申请的又一方面还提供了一种固件更新设备,该固件更新设备可包括:存储器和处理器,其中存储器用于存储计算机程序,处理器用于执行计算机程序时实现本申请如上任一实施方式提供的固件更新方法1000或如上任一实施方式提供的关于用户终端200实施解密、认证以及固件更新的方法。
本申请的又一方面还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现本申请如上任一实施方式提供的固件更新方法1000或如上任一实施方式提供的关于用户终端200实施解密、认证以及固件更新的方法。
由于在上文中描述固件更新方法1000和关于用户终端200实施解密、认证以及固件更新的方法时涉及的内容和结构可完全或部分地适用于在这里描述的固件更新设备和计算机可读存储介质,因此与其相关或相似的内容不再赘述。
另外在本申请的实施方式中提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
以上描述仅为本申请的实施方式以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的保护范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离技术构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (16)
1.一种存储器系统的固件更新方法,其特征在于,所述方法包括:
响应于来自耦接有所述存储器系统的用户终端的、包括所述存储器系统的当前固件的版本信息和欲更新的目标固件的版本信息的固件更新请求,根据更新信息列表和所述固件更新请求生成相应的文件签名值,其中所述更新信息列表包括固件的版本信息与密钥的对应关系;以及
向所述用户终端发送包括所述目标固件和相应的所述文件签名值的固件更新文件。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:生成所述更新信息列表。
3.根据权利要求2所述的方法,其特征在于,生成所述更新信息列表的步骤包括:
生成包括所述固件的N个版本信息和N个所述密钥的更新信息列表,所述密钥包括相互对应的公钥和私钥,
其中,第N-1个固件版本信息与第N个公钥对应;
第N-1个固件版本信息与第N-1个私钥对应;以及
N为任意正整数,且N≥2。
4.根据权利要求1所述的方法,其特征在于,生成所述文件签名值的步骤包括:
通过所述更新信息列表获取与所述目标固件的版本信息所对应的公钥;
对所述目标固件和与所述目标固件的版本信息对应的所述公钥进行计算,生成所述目标固件的哈希值;以及
基于所述哈希值生成所述文件签名值。
5.根据权利要求4所述的方法,其特征在于,基于所述哈希值生成所述文件签名值包括:
通过所述更新信息列表获取与所述当前固件的版本信息对应的私钥;以及
通过与所述当前固件的版本信息对应的所述私钥对所述目标固件的哈希值进行加密以形成所述文件签名值。
6.根据权利要求1至5中任一项所述的方法,其特征在于,
所述固件更新文件还包括与所述目标固件的版本信息对应的所述公钥。
7.根据权利要求1至5中任一项所述的方法,其特征在于,所述目标固件的版本信息所反映的目标固件的版本低于所述当前固件的版本信息所反映的当前固件的版本,或者所述目标固件的版本信息所反映的目标固件的版本相对所述当前固件的版本信息所反映的当前固件的版本至少高两级。
8.根据权利要求1至5中任一项所述的方法,其特征在于,所述存储器系统包括固态硬盘。
9.一种存储器系统的固件更新方法,其特征在于,
接收包括所述目标固件和相应的文件签名值的固件更新文件,其中所述文件签名值是根据更新信息列表、所述存储器系统的当前固件的版本信息和欲更新的目标固件的版本信息生成的,所述更新信息列表包括固件的版本信息与密钥的对应关系;
对接收到的所述固件更新文件进行认证;以及
在认证通过的情况下,允许将所述当前固件更新为所述目标固件。
10.根据权利要求9所述的固件更新方法,其特征在于,对接收到的所述固件更新文件进行认证的步骤包括:
利用本地保存的、与当前固件的版本信息对应的公钥对所述文件签名值进行解密,得到所述目标固件的哈希值;
对获取的所述目标固件和与所述目标固件的版本信息对应的所述公钥进行哈希计算,得到待验证哈希目标固件;
判断所述待验证哈希目标固件与所述目标固件哈希值是否相同;以及
如果相同,则通过所述认证。
11.根据权利要求10所述的固件更新方法,其特征在于,所述方法还包括:
在认证不通过的情况下,禁止将所述当前固件更新为所述目标固件。
12.根据权利要求9至11中任一项所述的方法,其特征在于,所述目标固件的版本信息所反映的目标固件的版本低于所述当前固件的版本信息所反映的当前固件的版本,或者所述目标固件的版本信息所反映的目标固件的版本相对所述当前固件的版本信息所反映的当前固件的版本至少高两级。
13.根据权利要求9至11中任一项所述的方法,其特征在于,所述存储器系统包括固态硬盘。
14.一种存储器系统,其包括配置有固件的存储控制器,其特征在于,所述存储控制器被配置为能够使用如权利要求9-13中任一项所述的存储器系统的固件更新方法将当前固件更新为相应的目标版本。
15.一种存储器系统的固件更新设备,包括存储器、处理器以及存储器上并可在处理器上运行的计算机存储器,其特征在于,
所述处理器可执行所述计算机程序以实现如权利要求1-13中任一项所述的存储器系统的固件更新方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1-13中任一项所述的存储器系统的固件更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110495988.3A CN113127041A (zh) | 2021-05-07 | 2021-05-07 | 存储器系统及其固件更新方法、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110495988.3A CN113127041A (zh) | 2021-05-07 | 2021-05-07 | 存储器系统及其固件更新方法、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113127041A true CN113127041A (zh) | 2021-07-16 |
Family
ID=76781420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110495988.3A Pending CN113127041A (zh) | 2021-05-07 | 2021-05-07 | 存储器系统及其固件更新方法、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113127041A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108363583A (zh) * | 2018-02-05 | 2018-08-03 | 华勤通讯技术有限公司 | 一种基于bmc的芯片更新方法、设备及存储介质 |
CN110688648A (zh) * | 2019-09-29 | 2020-01-14 | 北京小米移动软件有限公司 | 安全芯片固件更新方法及装置 |
CN111459524A (zh) * | 2020-04-02 | 2020-07-28 | 安谋科技(中国)有限公司 | 软件的升级方法、装置、系统 |
CN111488589A (zh) * | 2020-04-17 | 2020-08-04 | 苏州浪潮智能科技有限公司 | 基于硬件写保护的安全可信启动及固件升级系统和方法 |
CN111984962A (zh) * | 2020-09-08 | 2020-11-24 | 英韧科技(上海)有限公司 | 固件安全验证方法及装置 |
CN112346759A (zh) * | 2020-10-14 | 2021-02-09 | 深圳市共进电子股份有限公司 | 一种固件升级方法、装置及计算机可读存储介质 |
CN112685067A (zh) * | 2020-12-25 | 2021-04-20 | 浪潮电子信息产业股份有限公司 | 一种固件版本刷新方法、装置、系统和介质 |
-
2021
- 2021-05-07 CN CN202110495988.3A patent/CN113127041A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108363583A (zh) * | 2018-02-05 | 2018-08-03 | 华勤通讯技术有限公司 | 一种基于bmc的芯片更新方法、设备及存储介质 |
CN110688648A (zh) * | 2019-09-29 | 2020-01-14 | 北京小米移动软件有限公司 | 安全芯片固件更新方法及装置 |
CN111459524A (zh) * | 2020-04-02 | 2020-07-28 | 安谋科技(中国)有限公司 | 软件的升级方法、装置、系统 |
CN111488589A (zh) * | 2020-04-17 | 2020-08-04 | 苏州浪潮智能科技有限公司 | 基于硬件写保护的安全可信启动及固件升级系统和方法 |
CN111984962A (zh) * | 2020-09-08 | 2020-11-24 | 英韧科技(上海)有限公司 | 固件安全验证方法及装置 |
CN112346759A (zh) * | 2020-10-14 | 2021-02-09 | 深圳市共进电子股份有限公司 | 一种固件升级方法、装置及计算机可读存储介质 |
CN112685067A (zh) * | 2020-12-25 | 2021-04-20 | 浪潮电子信息产业股份有限公司 | 一种固件版本刷新方法、装置、系统和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102254256B1 (ko) | 보안형 메모리 칩의 롤백 방지 버전 업그레이드 | |
US10348497B2 (en) | System and method for content protection based on a combination of a user pin and a device specific identifier | |
WO2021013245A1 (zh) | 一种数据密钥保护方法、系统及电子设备和存储介质 | |
US9485230B2 (en) | Efficient key generator for distribution of sensitive material from multiple application service providers to a secure element such as a universal integrated circuit card (UICC) | |
US8782804B2 (en) | Storage device, storage system, and authentication method | |
US8370645B2 (en) | Protection of security parameters in storage devices | |
US20110191599A1 (en) | Apparatus and method for providing hardware security | |
KR102024339B1 (ko) | 메모리 시스템 및 그것과 호스트 사이의 바인딩 방법 | |
JP2007512787A (ja) | トラステッド・モバイル・プラットフォーム・アーキテクチャ | |
US11604740B2 (en) | Obfuscating cryptographic material in memory | |
CN113438205B (zh) | 区块链数据访问控制方法、节点以及系统 | |
CN113239363A (zh) | 固件更新方法、装置、设备、可读存储介质及存储器系统 | |
US20230269078A1 (en) | Key sharing method, key sharing system, authenticating device, authentication target device, recording medium, and authentication method | |
CN116420145A (zh) | 基于多个组件的启动时间绑定的端点验证 | |
CN103370718B (zh) | 使用分布式安全密钥的数据保护方法、设备和系统 | |
CN114372284A (zh) | 一种安全计算机的用户数据保护方法 | |
CN112152802B (zh) | 数据加密方法、电子设备及计算机存储介质 | |
US11258600B2 (en) | Secure communication in accessing a network | |
US20220216999A1 (en) | Blockchain system for supporting change of plain text data included in transaction | |
WO2023073368A1 (en) | Methods and systems for secure data storage | |
CN113127041A (zh) | 存储器系统及其固件更新方法、设备及可读存储介质 | |
US20210075604A1 (en) | Key generation method | |
KR20220000537A (ko) | 차량 네트워크 기반의 데이터 송수신 시스템 및 그 방법 | |
CN111914310A (zh) | 提供高安全性的存储装置和包括该存储装置的电子装置 | |
CN111597575B (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 |