存储控制器、存储系统和操作存储设备的方法与流程
未命名
07-14
阅读:123
评论:0
存储控制器、存储系统和操作存储设备的方法
1.对相关申请的交叉引用
2.本技术要求于2022年1月7日向韩国知识产权局提交的第10-2022-0002955号韩国专利申请的优先权,该申请的公开内容通过引用被整体结合于此。
技术领域
3.本发明的构思涉及存储设备,并且更具体地,涉及存储软件映像和软件映像的电子签名的存储设备。
背景技术:
4.固件可以指用于控制硬件的程序。当硬件被制造时,固件可以被供应到硬件的存储空间中。对系统(包括固件和硬件)的攻击可以以各种方式进行。一种这样的方式是通过改变系统的至少一部分固件来使系统执行攻击者想要的操作。
技术实现要素:
5.本发明的构思提供了一种存储控制器以及一种操作存储设备的方法,该存储控制器认证由固件分配器和主机生成的双签名固件。
6.根据本发明构思的示例实施例,提供了一种存储系统,包括:主机,被配置为接收软件映像和软件映像的第一签名,并基于第二秘密密钥生成软件映像的第二签名,第一签名是基于第一秘密密钥生成的;以及存储设备,被配置为从主机接收软件映像、第一签名、第二签名和与第二秘密密钥相关的第二公共密钥,并基于第一验证和第二验证来运行软件映像,第一验证是基于与第一秘密密钥相关的第一公共密钥对第一签名执行的,并且第二验证是基于第二公共密钥对第二签名执行的。
7.根据本发明构思的另一示例实施例,提供了一种存储控制器,包括:处理器;非易失性存储器,存储由处理器运行的软件映像和软件映像的第一签名;安全存储器,存储用于验证第一签名的第一公共密钥;以及主机接口,被配置为从主机接收第二公共密钥和软件映像的第二签名,其中,处理器被配置为认证第二公共密钥,基于第二公共密钥认证第二签名,将第二签名存储在非易失性存储器中,以及将第二公共密钥存储在安全存储器中。
8.根据本发明构思的又一示例实施例,提供了一种操作存储设备的方法,该方法包括:由存储设备从主机接收软件映像、软件映像的第一签名、软件映像的第二签名和第二公共密钥;由存储设备基于第一公共密钥对第一签名执行第一验证;由存储设备基于第二公共密钥对第二签名执行第二验证;以及由存储设备基于第一验证和第二验证来存储软件映像、第一签名和第二签名。
附图说明
9.从以下结合附图的详细描述中,将更清楚地理解本发明构思的示例实施例,其中:
10.图1是图示根据本发明构思的一些示例实施例的存储系统的框图;
11.图2是图示根据本发明构思的一些示例实施例的映像签名系统的框图;
12.图3是图示根据本发明构思的一些示例实施例的认证固件的方法的图;
13.图4是图示根据本发明构思的一些示例实施例的存储系统的框图;
14.图5是图示根据本发明构思的一些示例实施例的存储双签名固件的方法的图;
15.图6是图示根据本发明构思的一些示例实施例的操作存储设备的方法的流程图;
16.图7是图示根据本发明构思的一些示例实施例的存储双签名固件的方法的图;
17.图8是图示根据本发明构思的一些示例实施例的认证状态表和状态转换的图;
18.图9是图示根据本发明构思的一些示例实施例的针对每个认证状态存储在rom和安全存储器中的数据的图;
19.图10是图示根据本发明构思的一些示例实施例的认证软件映像的方法的流程图;和
20.图11是图示根据本发明构思的一些示例实施例的固件更新的图。
具体实施方式
21.在下文中,将参照附图描述本发明构思的各种示例实施例。
22.图1是图示据本发明构思的一些示例实施例的存储系统1的框图。在一些示例实施例中,作为非限制性示例,存储系统1可以包括固定计算系统,诸如服务器、台式计算机或信息亭或其子系统。在一些示例实施例中,作为非限制性示例,存储系统1可以包括便携式计算系统,诸如移动电话、可穿戴设备或膝上型计算机或其子系统。在一些示例实施例中,作为非限制性示例,存储系统1可以包括包含在任何系统中的子系统,诸如家用电器、工业机器或运输工具,其不同于独立的计算系统。
23.参考图1,存储系统1可以包括主机10和存储设备20。在一些示例实施例中,主机10和存储设备20可以被安装在板上,并且可以通过形成在板上的图案彼此连接。
24.在一些示例实施例中,主机10可以包括用于处理指令的至少一个核心。在一些示例实施例中,作为非限制性示例,主机10可以包括应用处理器、微处理器、中央处理单元(cpu)、处理器核、多核处理器、多处理器、专用集成电路(asic)和现场可编程门阵列(fpga)。
25.主机10可以从其外部接收基于第一秘密密钥skeya签名的固件fw
signed a
(下文中称为单签名固件)。单签名固件fw
signed a
可以被理解为包括固件fw和基于第一秘密密钥skeya生成的a签名sig a。在本文中,固件可以被称为软件或程序。固件可以指用于控制存储设备20的软件。例如,存储设备20的固件可以包括主机接口层(hil)、闪存转换层(ftl)和闪存接口层(fil)。hil可以管理主机10和存储控制器21之间的数据传输,ftl可以将从主机10接收的逻辑地址转换成非易失性存储器22的物理地址,并且fil可以管理存储控制器21和非易失性存储器22之间的数据传输。
26.主机10可以从存储设备20的制造商、存储系统1的制造商或固件fw的供应商(以下称为固件分发商)接收单签名固件fw
signed a
。固件分发商可以基于第一秘密密钥skeya为固件fw生成a签名sig a,并可以将固件fw和a签名sig a提供给主机10。固件分发商可以管理第一秘密密钥skeya不对外公开。例如,固件分发商可以通过使用硬件安全模块(hsm)来管理第一秘密密钥skeya,并且可以基于第一秘密密钥skeya来生成单签名固件fw
signed a
。
27.主机10可以通过基于第二秘密密钥skeyb对单签名固件fw
signed a
进行签名来生成双签名固件fw
signed a,b
,并且可以将双签名固件fw
signed a,b
提供给存储设备20。双签名固件fw
signed a,b
可以被理解为包括固件fw、基于第一秘密密钥skeya生成的a签名sig a和基于第二秘密密钥skeyb生成的b签名sig b。具体地,主机10可以基于第二秘密密钥skeyb为单签名固件fw
signed a
生成b签名sig b,并可以将单签名固件fw
signed a
和b签名sig b提供给存储设备20。生成签名的方法的示例可以在下面参考图2来描述。
28.存储设备20可以包括存储控制器21和非易失性存储器22。
29.存储控制器21可以基于第一公共密钥pkeya和第二公共密钥pkeyb来认证固件fw。固件的认证是为了确定固件的真实性,并且可以指确定固件是由被认证的实体生成的并且固件数据是真实的。经认证的固件可以指可信任的固件。在一些示例实施例中,当b签名sig b基于第二公共密钥pkeyb被验证时,可以验证单签名固件fw
signed a
是由主机10生成的。当a签名sig a基于第一公共密钥pkeya被验证时,可以验证固件fw是由固件分发商生成的。
30.存储控制器21可以存储经认证的双签名固件fw
signed a,b
。存储控制器21可以在引导期间通过基于第一公共密钥pkeya和第二公共密钥pkeyb验证a签名sig a和b签名sig b来认证固件fw,并可以基于验证结果运行固件fw。第一公共密钥pkeya是与第一秘密密钥skeya相关的密钥,并且可以被用于验证基于第一秘密密钥skeya生成的签名(例如,a签名sig a)。第一公共密钥pkeya可以在制造存储控制器21的过程中被提供到存储控制器21中。第二公共密钥pkeyb是与第二秘密密钥skeyb相关的密钥,并且可以被用于验证基于第二秘密密钥skeyb生成的签名(例如,b签名sig b)。存储控制器21可以从主机10获得第二公共密钥pkeyb。
31.根据本发明构思的一些示例实施例的存储控制器21可以通过基于第一公共密钥pkeya和第二公共密钥pkeyb对固件fw执行认证,来确定接收的固件fw是从真正的固件分发商和真正的主机10传送的固件fw。
32.即使当供电终止时,非易失性存储器22也不会丢失存储的数据。非易失性存储器22可以包括闪存、磁性随机存取存储器(mram)、相变随机存取存储器(pram)、电阻式随机存取存储器(rram)等。非易失性存储器22还可以包括存储介质,诸如磁带、磁盘或光盘。存储控制器21可以向主机10提供存储在非易失性存储器22中的数据,并且可以将从主机10接收的数据存储在非易失性存储器22中。
33.图2是示出根据本发明构思的一些示例实施例的映像签名系统30的框图。下面可以参考图1对图2进行描述。图2的映像签名系统30可以被包括在上面参考图1描述的固件分发商中。在这种情况下,映像签名系统30可以接收固件fw,并且可以生成被传送到主机10的单签名固件fw
signed a
。在一些示例实施例中,映像签名系统30可以被包括在主机10中。在这种情况下,映像签名系统30可以接收单签名固件fw
signed a
,并且可以生成双签名固件fw
signed a,b
。在下文中,尽管映像签名系统30被描述为被包括在固件分发商中,但是本发明构思的示例实施例不限于此。
34.映像签名系统30可以由任何计算系统实现。例如,映像签名系统30的每个组件可以由通过逻辑合成设计的硬件模块、由至少一个核心执行的软件模块、包括至少一个核心和软件模块的处理单元及其组合来实现。映像签名系统30可以接收被传送到主机10的固件。在一些示例实施例中,映像签名系统30可以接收更新的固件fw。如图2所示,映像签名系
统30可以包括密钥生成器31、哈希电路32、签名生成器33和签名映像生成器34。
35.密钥生成器31可以生成包括第一秘密密钥skeya和第一公共密钥pkeya的密钥对。例如,密钥生成器31可以包括随机数生成器,并且可以基于随机数生成密钥对。在一些示例实施例中,密钥生成器31可以被省略,并且映像签名系统30可以从其外部接收至少一个密钥对。
36.哈希电路32可以接收固件fw并生成关于固件fw的摘要dig。摘要dig可以指基于诸如安全哈希算法(sha)的哈希算法生成的哈希值。
37.签名生成器33可以从密钥生成器31接收第一秘密密钥skeya,并且可以基于第一秘密密钥skeya为摘要dig生成数字签名,即a签名sig a。a签名sig a可以基于任何签名算法生成,例如,可以基于椭圆曲线数字签名算法(ecdsa)从第一秘密密钥skeya生成。在一些示例实施例中,签名生成器33也可以接收第一公共密钥pkeya,如图2所示,并且可以基于第一秘密密钥skeya和第一公共密钥pkeya生成a签名sig a。
38.签名映像生成器34可以接收固件fw和a签名sig a,并且可以生成单签名固件fw
signed a
。也就是说,单签名固件fw
signed a
可以包括固件fw和a签名sig a。在一些示例实施例中,签名映像生成器34可以以一个数字信封的形式生成单签名固件fw signed a
和第一公共密钥pkeya,并可以将生成的数字信封传送到主机10。
39.虽然上面已经描述了映像签名系统30为固件fw生成a签名sig a的过程,但是映像签名系统30可以为任何固件、程序、软件或数据生成签名。在本文中,签名所针对的数据可以被称为消息msg。
40.图3是图示根据本发明构思的一些示例实施例的认证固件的方法的图。尽管图3图示了存储控制器21,但是图3的存储控制器21的组件也可以被包括在图1的主机10中。
41.参照图3,存储控制器21可以接收消息msg和消息msg的签名sig,并基于公共密钥pkey验证签名sig,从而确定消息msg是由真实实体生成的。在一些示例实施例中,消息msg可以是单签名固件fw
signed a
或双签名固件fw
signed a,b
。
42.存储控制器21可以包括哈希电路41、解密电路42和比较电路43。哈希电路41可以基于哈希算法来生成关于消息msg的摘要dig。解密电路42可以通过基于公共密钥pkey解密签名sig来生成比较目标摘要dig
′
。在一些示例实施例中,公共密钥pkey可以是第一公共密钥pkeya或第二公共密钥pkeyb。比较电路43可以通过比较摘要dig和比较目标摘要dig
′
来生成有效性信息vld。有效性信息vld可以是指示消息msg是由真实实体生成的信息。
43.例如,哈希电路41可以生成单签名固件fw
signed a
的摘要dig。解密电路42可以通过基于认证的第二公共密钥pkeyb解密b签名sig b来生成比较目标摘要dig
′
。比较电路43可以将摘要dig与比较目标摘要dig
′
进行比较,并且可以基于比较结果来输出有效性信息vld。有效性信息vld可以是指示单签名固件fw
signed a
是由真实实体——即,主机10——生成的信息。当通过有效性信息vld确定单签名固件fw
signed a
是由真实实体生成时,存储控制器21可以基于固件fw、a签名sig a和第一公共密钥pkeya来认证固件fw。哈希电路41可以生成固件fw的摘要dig。解密电路42可以通过基于第一公共密钥pkeya解密a签名sig a来生成比较目标摘要dig
′
。比较电路43可以将摘要dig与比较目标摘要dig
′
进行比较,并且可以基于比较结果来输出有效性信息vld。有效性信息vld可以是指示固件fw是由真实实体——即,固件分发商——生成的信息。
44.图4是图示根据本发明构思的一些示例实施例的存储系统100的框图。
45.参考图4,存储系统100可以包括主机110和存储设备200。此外,存储设备200可以包括存储控制器210和非易失性存储器220。此外,根据本发明构思的一些示例实施例,主机110可以包括主机控制器111和主机存储器112。主机存储器112可以用作缓冲存储器,用于临时存储要发送到存储设备200的数据或从存储设备200发送的数据。在一些示例实施例中,如下面参考图5所描述的,存储在主机存储器112中的数据可以包括双签名固件fws
igned a,b
、第二公共密钥pkeyb、请求req或第二公共密钥pkeyb和请求req的签名sig a[pkeyb,req]。在一些示例实施例中,如下面参考图7所述,存储在主机存储器112中的数据可以包括双签名固件fws
igned a,b
、第三公共密钥pkeyc、第三公共密钥pkeyc的签名sig a[pkeyc]、第二公共密钥pkeyb或第二公共密钥pkeyb的签名sig c[pkeyb]。
[0046]
存储设备200可以包括用于根据来自主机110的请求存储数据的存储介质。例如,存储设备200可以包括固态驱动器(ssd)、嵌入式存储器和可移动外部存储器中的至少一个。当存储设备200包括ssd时,存储设备200可以是符合非易失性存储器快速(nvme)规范的设备。当存储设备200包括嵌入式存储器或外部存储器时,存储设备200可以是符合通用闪存(ufs)或嵌入式多媒体卡(emmc)规范的设备。主机110和存储设备200中的每一个可以根据采用的标准协议生成分组,并发送该分组。
[0047]
当存储设备200的非易失性存储器220包括闪存时,闪存可以包括二维(2d)nand存储器阵列或三维(3d)(或垂直)nand(vnand)存储器阵列。作为另一示例,存储设备200可以包括其他各种类型的非易失性存储器。例如,磁性ram(mram)、自旋转移矩mram、导电桥接ram(cbram)、铁电ram(feram)、相变ram(pram)、电阻ram(rram)和其他各种类型的存储器可以被应用于存储设备200。
[0048]
根据一些示例实施例,主机控制器111和主机存储器112可以分别由单独的半导体芯片实现。可替换地,在一些示例实施例中,主机控制器111和主机存储器112可以被集成到同一半导体芯片中。例如,主机控制器111可以是包括在应用处理器中的大量模块中的一个,并且应用处理器可以由片上系统(soc)实现。此外,主机存储器112可以是包括在应用处理器中的嵌入式存储器,或者是布置在应用处理器外部的非易失性存储器或存储器模块。
[0049]
主机控制器111可以管理将存储在主机存储器112中的数据存储在存储设备200中的操作,或者将存储设备200的数据存储在主机存储器112中的操作。在一些示例实施例中,主机控制器111可以包括映像签名系统113。在一些示例实施例中,映像签名系统113可以具有与图2的映像签名系统30相同的结构。映像签名系统113可以基于唯一的秘密密钥,例如第二秘密密钥skeyb或第三秘密密钥skeyc来生成签名。在一些示例实施例中,如下面参考图7所描述的,映像签名系统113可以基于唯一的第三秘密密钥skeyc生成第二公共密钥pkeyb的签名sic c[pkeyb]。
[0050]
存储控制器210可以包括主机接口211、存储器接口212、处理器213、加密电路214、ram 215、只读存储器(rom)216和安全存储器217。在本文中,ram 215可以被称为系统存储器。在一些示例实施例中,rom 216可以包括可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)或闪存。
[0051]
主机接口211可以向主机110发送分组并从主机110接收分组。从主机110发送到主机接口211的分组可以包括命令、要被写入非易失性存储器220的数据、要被写入存储控制
器210中的存储空间(例如,rom 216或安全存储器217)的数据等,并且从主机接口211发送到主机110的分组可以包括对命令的响应、从非易失性存储器220读取的数据等。存储设备200可以通过主机接口211接收图5的操作s540中的数据和图7的操作s740中的数据。
[0052]
存储器接口212可以向非易失性存储器220发送要被写入非易失性存储器220的数据,或者接收从非易失性存储器220读取的数据。存储器接口212可以被实现为符合标准规范,诸如触发(toggle)或onfi。
[0053]
处理器213还可以包括被设计为以高速执行预定义的操作(或者期望的操作)的硬件加速器、提供与处理器213的外部组件的通信信道的输入/输出(i/o)接口等。在一些示例实施例中,处理器213的组件可以被集成到单个芯片或单个晶圆中,并且处理器213可以被称为soc。在一些示例实施例中,处理器213的组件可以被集成到包括在一个封装中的两个或更多个芯片中,并且处理器213可以被称为系统级封装(sip)。处理器213可以被称为微控制单元(mcu)。
[0054]
在一些示例实施例中,处理器213可以运行在存储在rom 226中的软件(例如,ftl 218)映像中包括的指令。例如,在存储在rom 226中的软件映像中包括的至少一些指令可以被复制到处理器213中包括的高速缓存或者ram 225,并且处理器213可以运行复制的指令。
[0055]
加密电路214可以通过使用对称密钥算法对输入到存储控制器210的数据执行加密操作和解密操作中的至少一个。
[0056]
ram 215可以临时存储由处理器213使用的数据。例如,ram 215可以临时存储从rom 216、安全存储器217或非易失性存储器220读取的数据,或者要被写入rom 216、安全存储器217或非易失性存储器220的数据。此外,ram 215可以临时存储由处理器213运行的指令。在一些示例实施例中,ram 215可以包括提供相对高的操作速度的易失性存储器,诸如动态随机存取存储器(dram)或静态随机存取存储器(sram)。
[0057]
rom 216可以以非易失性方式存储由处理器213运行的软件映像。在一些示例实施例中,rom 216可以存储固件(例如,ftl 218)映像。此外,如图9所示,rom 216可以存储软件映像的数字签名(例如,图1中的a签名sig a或b签名sig b)。如图8所示,rom 216可以存储指示多个认证状态的认证状态表和指示存储控制器210的当前认证状态的状态值。
[0058]
ftl 218可以执行若干功能,诸如地址映射、损耗均衡(wear-leveling)和垃圾收集。地址映射是将从主机110接收的逻辑地址转换成实际用于在非易失性存储器220中存储数据的物理地址的操作。损耗均衡是通过使非易失性存储器220中的块被均匀使用来防止特定块的过度劣化的技术,并且例如,损耗均衡可以通过用于平衡物理块的擦除计数的固件技术来实现。垃圾收集是通过将块的有效数据复制到新块然后擦除现有块的方法来确保非易失性存储器220中的可用容量的技术。
[0059]
在一些示例实施例中,如图9所示,当电源开始被提供给存储控制器210或者存储控制器210被重置时,rom 216可以存储引导加载器,该引导加载器包括由处理器213优先运行的指令和由引导加载器运行的固件映像。
[0060]
安全存储器217可以以非易失的方式存储存储控制器210的唯一数据。在一些示例实施例中,在第一签名和第二签名被验证之后,安全存储器217可以存储用于认证由存储设备加载到ram 215上的软件映像的信息。例如,安全存储器217可以存储用于验证数字签名的至少一个公共密钥(例如,第一公共密钥pkeya或第二公共密钥pkeyb)。在一些示例实施例
中,安全存储器217可以包括一次性可编程(otp)存储器,诸如反熔丝阵列。
[0061]
在一些示例实施例中,在将从主机110接收的ftl 218存储在rom 216中之前,处理器213可以基于公共密钥(例如,第一公共密钥pkeya或第二公共密钥pkeyb)来验证ftl 218的签名。在一些示例实施例中,在运行存储在rom 216中的ftl 218之前,处理器213可以基于公共密钥来验证ftl218的签名。
[0062]
具体地,处理器213可以基于第一公共密钥pkeya来验证ftl 218的a签名sig a,并且可以通过基于第二公共密钥pkeyb来验证ftl 218的b签名sig b来认证ftl 218。处理器213可以基于认证结果将从主机110接收的ftl 218、a签名sig a和b签名sig b存储在rom 216中,或者运行存储在rom 216中的ftl 218。下面将参照图10描述认证固件的过程。
[0063]
图5是图示根据本发明构思的一些示例实施例的存储双签名固件的方法的图。关于图5的描述可以参考图4在下面进行。
[0064]
参照图5,存储系统100可以从外部设备2接收单签名固件fw
signed a
,可以基于第二秘密密钥skeyb生成单签名固件fw
signed a
的b签名sig b,并且可以存储双签名固件fw
signed a,b
。外部设备2可以包括映像签名系统310,并且可以与固件分发商相对应。映像签名系统310可以是图2的映像签名系统30的示例。存储系统100和外部设备2可以通过安全信道向彼此发送数据和从彼此接收数据。
[0065]
具体地,在操作s510,主机110可以将第二公共密钥pkeyb和请求req传送到外部设备2。请求req可以包括用于基于第一秘密密钥skeya请求第二公共密钥pkeyb的签名的信息。
[0066]
在操作s520,外部设备2可以将基于第一秘密密钥skeya生成的单签名固件fw
signed a
传送到主机110。此外,外部设备2可以基于第一秘密密钥skeya生成第二公共密钥pkeyb和请求req的签名sig a[pkeyb,req],并且可以将生成的签名sig a[pkeyb,req]传送到主机110。
[0067]
在操作s530,主机110可生成双签名固件fw
signed a,b
。具体地,主机110可以生成包括第二秘密密钥skeyb和第二公共密钥pkeyb的密钥对。主机110可以生成关于单签名固件fw
signed a
的摘要,并可以基于第二秘密密钥skeyb来生成该摘要的数字签名,即b签名sig b。主机110可以生成双签名固件fw
signed a,b
,其包括单签名固件fw
signed a
和b签名sig b。在一些示例实施例中,主机110可以包括图2的映像签名系统30。
[0068]
在操作s540,主机110可以向存储设备200提供双签名固件fw
signed a,b
、第二公共密钥pkeyb、请求req以及第二公共密钥pkeyb和请求req的签名sig a[pkeyb,req]。
[0069]
在操作s550,存储设备200可以认证被签名的第二公共密钥pkeyb和请求req。具体地,存储设备200可以基于在其制造期间提供的第一公共密钥pkeya来验证第二公共密钥pkeyb和请求req的签名sig a[pkeyb,req]。在一些示例实施例中,包括在存储设备200中的存储控制器210可以与图3的存储控制器21相对应。
[0070]
也就是说,在操作s550中,存储设备200可以获得关于第二公共密钥pkeyb和请求req的摘要dig,可以通过基于第一公共密钥pkeya解密签名sig a[pkeyb,req]来获得比较目标摘要dig
′
,并可以通过将摘要dig与比较目标摘要dig
′
进行比较来认证第二公共密钥pkeyb和请求req。也就是说,存储设备200可以确定第二公共密钥pkeyb和请求req被外部设备2认证。
[0071]
在操作s560,存储设备200可以认证固件fw。具体地,通过基于第一公共密钥pkeya和第二公共密钥pkeyb验证a签名sig a和b签名sig b,存储设备200可以确定固件fw被外部设备2和固件分发商认证。在一些示例实施例中,存储设备200可以通过基于第二公共密钥pkeyb验证b签名sig b来认证单签名固件fw
signed a
,并且可以通过基于第一公共密钥pkeya验证a签名sig a来认证固件fw。
[0072]
在操作s570,存储设备200可以存储第二公共密钥pkeyb。也就是说,因为通过操作s550第二公共密钥pkeyb是可信的,所以存储设备200可以存储第二公共密钥pkeyb。第二公共密钥pkeyb可以用于验证基于第二秘密密钥skeyb生成的签名。在一些示例实施例中,第二公共密钥pkeyb可以被存储在安全存储器217中。
[0073]
在操作s580,存储设备200可以存储双签名固件fw
signed a,b
。也就是说,因为通过操作s560的固件是可信的,所以存储设备200可以存储固件fw、a签名sig a和b签名sig b。存储设备200可以在运行固件fw之前基于第一公共密钥pkeya和第二公共密钥pkeyb来验证a签名sig a和b签名sig b,并且可以基于验证结果来运行固件fw。在一些示例实施例中,双签名固件fw
signed a,b
可以被存储在rom 216中。
[0074]
在一些示例实施例中,在存储双签名固件fw
signed a,b
之后,存储设备200可以改变认证状态,如下面参考图8所述。
[0075]
图6是图示根据本发明构思的一些示例实施例的操作存储设备的方法的流程图。操作存储设备的方法可以包括多个操作s610至s660。关于图6的描述可以参考图4在下面进行。
[0076]
在操作s610,存储设备200可以接收双签名固件fw
signed a,b
、第二公共密钥pkeyb、请求req以及第二公共密钥pkeyb和请求req的签名sig a[pkeyb,req]。在一些示例实施例中,存储设备200可以不接收请求req,并且可以接收第二公共密钥pkeyb和第二公共密钥pkeyb的签名sig a[pkeyb]。
[0077]
在操作s620,存储设备200可以确定第二公共密钥pkeyb和请求req是否有效。具体地,存储设备200可以通过基于第一公共密钥pkeya验证第二公共密钥pkeyb和请求req的签名sig a[pkeyb,req]来确定第二公共密钥pkeyb和请求req的有效性。执行有效性的确定可以被理解为执行认证。当第二公共密钥pkeyb和请求req有效时,可以执行操作s630,并且当第二公共密钥pkeyb和请求req无效时,可以执行操作s660。
[0078]
在操作s630,存储设备200可以确定固件fw是否有效。具体地,存储设备200可以通过基于在操作s620中被确定为有效的第二公共密钥pkeyb验证b签名sig b来确定单签名固件fw
signed a
的有效性。接下来,存储设备200可以通过基于第一公共密钥pkeya验证a签名sig a来确定固件fw的有效性。当单签名固件fw
signed a
和固件fw有效时,可以执行操作s640,并且当单签名固件fw
signed a
或固件fw无效时,可以执行操作s660。
[0079]
在操作s650,存储设备200可以运行固件fw。具体地,通过确定固件fw的有效性,存储设备200可以运行可信的固件fw。在一些示例实施例中,在每次引导期间,存储设备200可以基于第一公共密钥pkeya和第二公共密钥pkeyb来验证a签名sig a和b签名sig b,并且可以基于验证结果来运行固件fw。
[0080]
在操作s660,存储设备200可以向主机110提供指示第二公共密钥pkeyb、请求req或固件fw的认证失败的错误消息。该错误消息也可以包括指示引导失败的信息。
[0081]
图7是图示根据本发明构思的一些示例实施例的存储双签名固件的方法的图。关
于图7的描述可以参考图4在下面进行。
[0082]
参照图7,存储系统100可以从外部设备2接收单签名固件fw
signed a
,可以基于第二秘密密钥skeyb生成单签名固件fw
signed a
的b签名sig b,并且可以存储双签名固件fw
signed a,b
。外部设备2可以包括图2的映像签名系统310,并且可以与固件分发商相对应。存储系统100和外部设备2可以通过安全通道向彼此发送数据和从彼此接收数据。
[0083]
具体地,在操作s710,外部设备2可以将单签名固件fw
signed a
、第三秘密密钥skeyc、第三公共密钥pkeyc和基于第一秘密密钥skeya生成的第三公共密钥pkeyc的签名sig a[pkeyc]传送到主机110。第三公共密钥pkeyc可以是用于验证基于第三秘密密钥skeyc生成的签名的公共密钥。在一些示例实施例中,外部设备2可以基于第一秘密密钥skeya生成第三秘密密钥skeyc的签名,并且可以将生成的签名提供给主机110。
[0084]
在操作s720中,主机110可以生成双签名固件fw
signed a,b
。具体地,主机110可以基于对主机110唯一的第二秘密密钥skeyb生成单签名固件fw
signed a
的b签名sig b,并可以通过将单签名固件fw
signed a
与b签名sig b耦合来生成双签名固件fw
signed a,b
。
[0085]
在操作s730,主机110可以认证第三公共密钥pkeyc。具体地,主机110可以通过基于存储在存储设备200中的第一公共密钥pkeya验证第三公共密钥pkeyc的签名sig a[pkeyc]来认证第三公共密钥pkeyc。在一些示例实施例中,主机110可以通过基于第一秘密密钥skeya验证第三秘密密钥skeyc的签名来认证第三秘密密钥skeyc。在一些示例实施例中,主机110可以包括上面参考图4描述的存储控制器21的组件。
[0086]
在操作s740,主机110可以将认证的第三公共密钥pkeyc、基于第一秘密密钥skeya生成的第三公共密钥pkeyc的签名sig a[pkeyc]、第二公共密钥pkeyb、基于第三秘密密钥生成的第二公共密钥pkeyb的签名sig c[pkeyb]和双签名固件fw
signed a,b
传送到存储设备200。在操作s740,主机110可以基于第三秘密密钥skeyc生成第二公共密钥pkeyb的签名sig c[pkeyb]。
[0087]
在操作s750,存储设备200可以认证第三公共密钥pkeyc。具体地,存储设备200可以基于在其制造期间提供的第一公共密钥pkeya来认证第三公共密钥pkeyc的签名sig a[pkeyc]。在一些示例实施例中,存储设备200可以包括上面参考图4描述的存储控制器21。
[0088]
在操作s760,存储设备200可以认证第二公共密钥pkeyb。具体地,存储设备200可以基于认证的第三公共密钥pkeyc来认证第二公共密钥pkeyb的签名sig c[pkeyb]。
[0089]
在操作s770,存储设备200可以认证固件fw。具体地,存储设备200可以基于第一公共密钥pkeya和第二公共密钥pkeyb来验证双签名固件fw
signed a,b
的a签名sig a和b签名sig b。在一些示例实施例中,操作s770可以与图5的操作s560相同。
[0090]
在操作s780,存储设备200可以存储被认证的第二公共密钥pkeyb和第三公共密钥pkeyc。在一些示例实施例中,第二公共密钥pkeyb和第三公共密钥pkeyc可以被存储在安全存储器217中。
[0091]
在操作s790,存储设备200可以存储双签名固件fw
signed a,b
。具体地,存储设备200可以存储固件fw、a签名sig a和b签名sig b。存储设备200可以在运行固件fw之前基于第一公共密钥pkeya和第二公共密钥pkeyb来验证a签名sig a和b签名sig b,并且可以基于验证结果来运行固件fw。在一些示例实施例中,双签名固件fw
signed a,b
可以被存储在rom216中。
[0092]
尽管未示出,但是在存储双签名固件fw
signed a,b
之后,存储设备200可以改变认证
状态,如下面参考图8所述。
[0093]
图8是图示根据本发明构思的一些示例实施例的认证状态表和状态转换的图。关于图8的描述可以参考图4在下面描述。
[0094]
参照图8,认证状态表可以包括关于被验证以运行固件的签名(例如,sig a和sig b)的信息。此外,认证状态表可以包括指示外部设备exdv和主机host中的哪一个有权选择是否验证b签名sig b以运行固件的信息。外部设备exdv可以与图5或图7的外部设备2相对应。在一些示例实施例中,认证状态表可以被存储在图4的rom 216中。可替换地,认证状态表可以被存储在存储控制器210中的单独的otp存储器中。在一些示例实施例中,认证状态表可以被存储在非易失性存储器220中,并且在引导期间被加载到ram 215上。
[0095]
参照图8,第一状态state 1可以是这样的状态,其中,为了运行固件,基于第一秘密密钥skeya生成的a签名sig a被验证,并且基于第二秘密密钥skeyb生成的b签名sig b未被验证。此外,第一状态state 1可以是这样的状态,其中,为了运行固件,外部设备exdv有权选择是否验证b签名sig b。例如,在图5的操作s510中,尽管主机110已经向外部设备2提供了第二公共密钥pkeyb和请求req,但是在操作s520中,外部设备2可以拒绝请求req并仅提供单签名固件fw
signed a
。在这种情况下,第二公共密钥pkeyb和请求req可能没有被外部设备2认证。在第一状态state 1中,在操作s530,主机110可以不生成双签名固件fw
signed a,b
,并且可以仅向存储设备200提供从外部设备2接收的单签名固件fw
signed a
。在第一状态state 1中,存储设备200可以基于在其制造期间提供的第一公共密钥pkeya来验证a签名sig a,并且可以基于验证结果来存储或运行单签名固件fw
signed a
。
[0096]
第二状态state 2可以是这样的状态,其中,为了运行固件,基于第一秘密密钥skeya生成的a签名sig a被验证,而基于第二秘密密钥skeyb生成的b签名sig b未被验证。此外,第二状态state 2可以是这样的状态,其中,为了运行固件,主机有权选择是否验证b签名sig b。例如,如图7所示,因为外部设备2没有认证第二公共密钥pkeyb,所以主机110有权认证第二公共密钥pkeyb以验证b签名sig b。然而,与图7的操作s720不同,在第二状态state 2中,主机110可以不生成双签名固件fw
signed a,b
,并且可以仅向存储设备200提供从外部设备2接收的单签名固件fw
signed a
。在第二状态state 2中,存储设备200可以基于在其制造期间提供的第一公共密钥pkeya来验证a签名sig a,并且可以基于验证结果来存储或运行单签名固件fw
signed a
。
[0097]
第三状态state 3可以是这样的状态,其中,为了运行固件,基于第一秘密密钥skeya生成的a签名sig a和基于第二秘密密钥skeyb生成的b签名sig b被验证。此外,第三状态state 3可以是这样的状态,其中,为了运行固件,外部设备exdv有权选择是否验证b签名sig b。例如,在图5的操作s520中,当外部设备2向主机110传送基于第一秘密密钥skeya生成的第二公共密钥pkeyb的签名sig a[pkeyb,req]时,第二公共密钥pkeyb可以基于在存储设备200制造期间被提供到该存储设备200中的第一公共密钥pkeya被认证。在第三状态state 3中,因为第二公共密钥pkeyb可以由外部设备2认证,所以主机110可以执行图5所示的操作s530和s540。在第三状态state 3中,存储设备200可以基于在其制造期间提供的第一公共密钥pkeya和认证的第二公共密钥pkeyb来验证a签名sig a和b签名sig b,并且可以基于验证结果来存储或运行双签名固件fw
signed a,b
。在根据图5的示例实施例执行操作s580之后,存储系统100的认证状态可以被改变为第三状态state 3。
[0098]
第四状态state 4可以是这样的状态,其中,为了运行固件,基于第一秘密密钥skeya生成的a签名sig a和基于第二秘密密钥skeyb生成的b签名sig b被验证。此外,第四状态state 4可以是这样的状态,其中,为了运行固件,主机有权选择是否验证b签名sig b。例如,如图7所示,因为外部设备2不认证第二公共密钥pkeyb,所以主机110有权认证第二公共密钥pkeyb以验证b签名sig b。如图7所示,在第四状态state 4中,主机110可以生成双签名固件fw
signed a,b
,并且可以向存储设备200提供基于双签名固件fw
signed a,b
和唯一的第三秘密密钥skeyc生成的第二公共密钥pkeyb的签名sig c[pkeyb]。类似于图7的操作s750和s760,在第四状态state4中,存储设备200可以基于在其制造期间提供的第一公共密钥pkeya来认证第三公共密钥pkeyc,并且可以基于认证的第三公共密钥pkeyc来认证第二公共密钥pkeyb。此外,类似于操作s770,存储设备200可以基于第一公共密钥pkeya来验证a签名sig a,可以基于认证的第二公共密钥pkeyb来验证b签名sig b,并可以基于验证结果存储或运行双签名固件fw
signed a,b
。在根据图7的示例实施例执行操作s790之后,存储系统100的认证状态可以被改变为第四状态state 4。
[0099]
存储控制器210可以通过改变指示认证状态的状态值来改变存储系统100的认证状态。状态值可以被存储在被包括在存储控制器210中的rom216或otp存储器中。
[0100]
图9是图示根据本发明构思的一些示例实施例的针对每个认证状态存储在rom 216和安全存储器217中的数据的图。关于图9的描述可以参考图4和图8来进行。
[0101]
参照图9,当存储控制器210的认证状态是第一状态state 1时,rom216可以存储单签名固件fw
signed a
,即,固件fw和a签名sig a,并且安全存储器217可以存储第一公共密钥pkeya。固件fw、签名sig a和第一公共密钥pkeya可以是在存储控制器210的制造期间提供的数据。a签名sig a可以是基于第一秘密密钥skeya生成的关于固件的数字签名。在第一状态state 1中,在运行固件fw之前,存储控制器210可以基于存储在安全存储器217中的第一公共密钥pkeya来验证a签名sig a。在一些示例实施例中,第一状态state 1可以是直接在存储控制器210被制造之后的状态。当存储控制器210的认证状态是第二状态state 2时,与第一状态state 1中的数据相同的数据可以被存储在rom 216和安全存储器217中。
[0102]
参照图9,当存储控制器210的认证状态是第三状态state 3时,rom216可以存储双签名固件fw
signed a,b
,即固件fw、a签名sig a和b签名sig b,并且安全存储器217可以存储第一公共密钥pkeya和第二公共密钥pkeyb。b签名sig b可以是基于第二秘密密钥skeyb生成的关于单签名固件fw
signed a
的数字签名。固件fw、a签名sig a和第一公共密钥pkeya可以是在存储控制器210的制造期间提供的数据。b签名sig b和第二公共密钥pkeyb可以从图4的主机110被接收。在第三状态state 3中,在运行固件fw之前,存储控制器210可以基于存储在安全存储器217中的第二公共密钥pkeyb来验证b签名sig b,并可以基于第一公共密钥pkeya来验证a签名sig a。当存储控制器210的认证状态是第四状态state 4时,与第三状态state 3中的数据相同的数据可以被存储在rom 216和安全存储器217中。
[0103]
图10是图示根据本发明构思的一些示例实施例的认证软件映像的方法的流程图。认证软件映像的方法可以包括多个操作s1010至s1090。下面可以参考图2、图3或图4对图10进行描述。
[0104]
在操作s1010中,图4的存储控制器210可以生成关于单签名固件fw
signed a
的第一摘要dig1。在一些示例实施例中,加密电路214可以基于哈希算法生成关于单签名固件
fw
signed a
的第一摘要dig1。哈希算法可以与哈希电路(例如,图2的哈希电路32)使用的哈希算法相同,哈希电路被包括在图4的映像签名系统113中,以生成摘要dig。在一些示例实施例中,包括在图3的存储控制器21中的哈希电路41可以生成关于单签名固件fw
signed a
的第一摘要dig1
[0105]
在操作s1020,存储控制器210可以通过基于第二公共密钥pkeyb解密b签名sig b来产生第一比较目标摘要dig1
′
。在一些示例实施例中,加密电路214可以通过基于存储在安全存储器217中的第二公共密钥pkeyb解密从主机110接收的b签名sig b来生成第一比较目标摘要dig1
′
。在一些示例实施例中,包括在图3的存储控制器21中的解密电路42可以生成第一比较目标摘要dig1
′
。
[0106]
在操作s1030中,存储控制器210可以将第一摘要dig1与第一比较目标摘要dig1
′
进行比较。在一些示例实施例中,处理器213可以将第一摘要dig1和第一比较目标摘要dig1
′
加载到ram 215上,并且可以基于比较指令将第一摘要dig1与第一比较目标摘要dig1
′
进行比较。在一些示例实施例中,包括在图4的存储控制器21中的比较电路43可以将第一摘要dig1与第一比较目标摘要dig1
′
进行比较。当第一摘要dig1与第一比较目标摘要dig1
′
相同时,可以执行操作s1050,并且当第一摘要dig1与第一比较目标摘要dig1
′
不同时,可以执行操作s1040。
[0107]
在操作s1040中,存储控制器210可以向主机110输出中止信号。具体地,在一些示例实施例中,存储控制器210可以中止固件的运行,并向主机110输出指示中止固件运行的中止信号。可替换地,在一些示例实施例中,来自存储控制器210的引导中止信号可以是指示中止引导过程的进展的信号。
[0108]
在操作s1050,图4的存储控制器210可以生成关于固件fw的第二摘要dig2。在一些示例实施例中,加密电路214可以基于哈希算法生成关于固件fw的第二摘要dig2。哈希算法可以与哈希电路(例如,图2的哈希电路32)使用的哈希算法相同,哈希电路被包括在图4的映像签名系统113中,以生成摘要。在一些示例实施例中,包括在图3的存储控制器21中的哈希电路41可以生成关于固件fw的第二摘要dig2。
[0109]
在操作s1060,存储控制器210可以通过基于第一公共密钥pkeya解密a签名sig a来产生第二比较目标摘要dig2
′
。在一些示例实施例中,加密电路214可以通过基于存储在安全存储器217中的第一公共密钥pkeya解密从主机110接收的a签名sig a来生成第二比较目标摘要dig2
′
。在一些示例实施例中,包括在图3的存储控制器21中的解密电路42可以生成第二比较目标摘要dig2
′
。
[0110]
在操作s1070中,存储控制器210可以将第二摘要dig2与第二比较目标摘要dig2
′
进行比较。在一些示例实施例中,处理器213可以将第二摘要dig2和第二比较目标摘要dig2
′
加载到ram 215上,并且可以基于比较指令将第二摘要dig2与第二比较目标摘要dig2
′
进行比较。在一些示例实施例中,包括在图4的存储控制器21中的比较电路43可以将第二摘要dig2与第二比较目标摘要dig2
′
进行比较。当第二摘要dig2与第二比较目标摘要dig2
′
相同时,可以执行操作s1080,并且当第二摘要dig2与第二比较目标摘要dig2
′
不同时,可以执行操作s1040。在操作s1070中,当第二摘要dig2与第二比较目标摘要dig2
′
相同时,固件fw可以被确定为可信。
[0111]
在操作s1080,存储控制器210可以运行认证的固件fw。也就是说,存储控制器210
可以运行通过在引导期间执行认证软件映像的方法而获得的认证的固件fw,如图10所示。在一些示例实施例中,在操作s1080中,存储控制器210可以将认证的固件fw、a签名sig a和b签名sig b存储在图4的rom 216中。在一些示例实施例中,存储控制器210可以基于图10所示的认证软件映像的方法的操作s1010至s1070对新固件fw或更新的固件fw执行认证,并可以将认证的新固件fw以及认证的新固件fw的第一签名(例如,sig a)和第二签名(例如,sig b)存储在图9的rom 216中。下面将参照图11描述固件更新。
[0112]
图11是图示根据本发明构思的一些示例实施例的固件更新的图。关于图11的描述可以参考图4在下面进行。
[0113]
具体地,rom 216可以存储包括指令的引导加载器,当开始向存储控制器210供电或者存储控制器210被重置时,该指令首先由处理器213运行。引导加载器可以通过由处理器213运行来将存储在rom 216中的固件加载到ram 215上。
[0114]
rom 216可以存储固件和固件的签名。例如,rom 216可以存储更新之前的固件(即,旧fw)和对应固件的签名(即,旧sig a和旧sig b),即,可以存储现有的软件映像。
[0115]
在固件更新期间,rom 216可以存储更新的固件(即,新fw)和对应固件的签名(即,新sig a和新sig b),即,可以存储更新的软件映像。尽管更新的软件映像被示为存储在与现有软件映像不同的存储区域中,但是本发明构思的示例实施例不限于此。也就是说,现有的软件映像可以被擦除,并且更新的软件映像可以被新存储在被擦除的存储区域中。
[0116]
参照图11,存储控制器210可以在引导期间基于存储在安全存储器217中的第一公共密钥pkeya和第二公共密钥pkeyb来验证更新的固件(即,新fw)的签名(即,新sig a和新sig b),并可以基于验证结果运行固件(即,新fw)。
[0117]
虽然已经参照本发明的示例性实施例具体示出和描述了本发明的构思,但是应当理解,在不脱离所附权利要求的精神和范围的情况下,可以在形式和细节上进行各种改变。
技术特征:
1.一种存储系统,包括:主机,被配置为接收软件映像和软件映像的第一签名,第一签名是基于第一秘密密钥生成的,和基于第二秘密密钥生成软件映像的第二签名;以及存储设备,被配置为从主机接收软件映像、第一签名、第二签名和与第二秘密密钥相关的第二公共密钥,和基于第一验证和第二验证来运行软件映像,第一验证基于与第一秘密密钥相关的第一公共密钥对第一签名执行,并且第二验证基于第二公共密钥对第二签名执行。2.根据权利要求1所述的存储系统,还包括:处理器;非易失性存储器,存储软件映像、第一签名和第二签名;系统存储器,被配置为存储由处理器运行的软件映像;以及安全存储器,存储第一公共密钥和第二公共密钥,并且其中,存储设备被配置为在第一签名和第二签名被验证之后,将软件映像加载到系统存储器上。3.根据权利要求2所述的存储系统,其中非易失性存储器存储关于认证状态的状态表,所述认证状态指示软件映像的认证基于第一公共密钥和第二公共密钥中的哪一个,以及处理器被配置为基于状态表,将认证状态改变为基于第一公共密钥和第二公共密钥对软件映像进行认证的状态。4.根据权利要求2所述的存储系统,其中存储设备还被配置为从主机接收第二公共密钥的签名,所述签名基于第一秘密密钥生成,并且在对第二公共密钥执行的认证完成之后,安全存储器存储第二公共密钥。5.根据权利要求2所述的存储系统,其中存储设备还被配置为从主机接收与第三秘密密钥相关的第三公共密钥、第三公共密钥的签名和第二公共密钥的签名,第三公共密钥的签名基于第一秘密密钥生成,并且第二公共密钥的签名基于第三秘密密钥生成,以及在对第三公共密钥执行的第一认证和对第二公共密钥执行的第二认证完成之后,安全存储器存储第二公共密钥和第三公共密钥。6.根据权利要求2所述的存储系统,其中,存储设备还被配置为从主机接收更新的软件映像以及更新的软件映像的第三签名和第四签名,并且在基于第一公共密钥对第三签名执行的认证和基于第二公共密钥对第四签名执行的认证完成之后,安全存储器存储更新的软件映像、第三签名和第四签名。7.根据权利要求6所述的存储系统,其中,存储设备还被配置为,在第三签名和第四签名被验证之后,在引导期间运行更新的软件映像。8.根据权利要求1所述的存储系统,其中,存储设备还被配置为响应于第一签名或第二签名的验证失败,向主机传送验证失败信号。9.一种存储控制器,包括:
处理器;非易失性存储器,存储由处理器运行的软件映像和软件映像的第一签名;安全存储器,存储用于验证第一签名的第一公共密钥;以及主机接口,被配置为从主机接收第二公共密钥和软件映像的第二签名,其中,所述处理器被配置为认证第二公共密钥,基于第二公共密钥认证第二签名,将第二签名存储在非易失性存储器中,和将第二公共密钥存储在安全存储器中。10.根据权利要求9所述的存储控制器,其中,处理器还被配置为:在引导期间,基于第一公共密钥和第二公共密钥认证软件映像;以及基于认证结果运行软件映像。11.根据权利要求9所述的存储控制器,其中,非易失性存储器存储关于认证状态的状态表,所述认证状态指示在运行软件映像之前被验证以认证软件映像的签名,并且处理器还被配置为在第一签名和第二签名被验证之后,基于状态表将认证状态改变为第一签名和第二签名被验证的状态。12.根据权利要求9所述的存储控制器,其中主机接口还被配置为从主机接收更新的软件映像以及更新的软件映像的第三签名和第四签名,并且处理器还被配置为基于第一公共密钥验证第三签名,基于第二公共密钥验证第四签名,和将更新的软件映像、第三签名和第四签名存储在非易失性存储器中。13.根据权利要求12所述的存储控制器,其中,处理器还被配置为在第三签名和第四签名被验证之后,在引导期间运行更新的软件映像。14.根据权利要求9所述的存储控制器,其中,主机接口还被配置为响应于第一签名和第二签名的验证失败,向主机传送验证失败信号。15.一种操作存储设备的方法,所述存储设备与主机通信并存储第一公共密钥,所述方法包括:由存储设备从主机接收软件映像、软件映像的第一签名、软件映像的第二签名和第二公共密钥;由存储设备基于第一公共密钥对第一签名执行第一验证;由存储设备基于第二公共密钥对第二签名执行第二验证;以及基于第一验证和第二验证,由存储设备存储软件映像、第一签名和第二签名。16.根据权利要求15所述的方法,还包括:在存储设备的引导期间,由存储设备执行第一验证和第二验证;以及由存储设备基于第一验证和第二验证来运行软件映像。17.根据权利要求15所述的方法,还包括:由存储设备从主机接收第三公共密钥、第三公共密钥的第三签名和第二公共密钥的第
四签名;由存储设备基于第一公共密钥对第三签名执行第三验证;由存储设备基于第三公共密钥对第四签名执行第四验证;以及由存储设备基于第三验证和第四验证来存储第三公共密钥和第二公共密钥。18.根据权利要求15所述的方法,还包括:响应于第一验证或第二验证的失败,由存储设备向主机输出指示引导中止的信号。19.根据权利要求15所述的方法,其中,执行第一验证包括:由存储设备生成关于软件映像的第一摘要;由存储设备通过基于第一公共密钥解密第一签名来生成第二摘要;以及由存储设备基于第一摘要和第二摘要之间的比较结果生成指示第一签名的有效性的信息。20.根据权利要求19所述的方法,其中,执行第二验证包括:由存储设备生成关于软件映像和第一验证的第三摘要;由存储设备通过基于第二公共密钥解密第二签名来生成第四摘要;以及由存储设备基于第三摘要和第四摘要之间的比较结果生成指示第二签名的有效性的信息。
技术总结
一种存储系统,包括:主机,被配置为接收软件映像和该软件映像的第一签名,并且基于第二秘密密钥生成该软件映像的第二签名,第一签名是基于第一秘密密钥生成的;以及存储设备,被配置为从主机接收软件映像、第一签名、第二签名和与第二秘密密钥相关的第二公共密钥,并基于第一验证和第二验证来运行该软件映像,第一验证基于与第一秘密密钥相关的第一公共密钥对第一签名执行,并且第二验证基于第二公共密钥对第二签名执行。钥对第二签名执行。钥对第二签名执行。
技术研发人员:朴文赞 金志守 秋渊成
受保护的技术使用者:三星电子株式会社
技术研发日:2023.01.04
技术公布日:2023/7/13
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
