一种基于固态硬盘命令的锁定方法、系统及存储介质与流程

未命名 08-14 阅读:72 评论:0


1.本发明涉及存储技术领域,尤其涉及一种基于固态硬盘命令的锁定方法、系统及存储介质。


背景技术:

2.目前固态硬盘因低时延、高性能、低功耗等优点被广泛应用,固态硬盘支持的功能也越来越多。但是固态硬盘部分支持的命令、特征或固态硬盘厂商的私有命令,不希望某些用户使用,或暂不开放,或者防止在开放环境下被恶意攻击等,这些命令如果不做限制,可能会被使用到,因此需要锁定这些命令或特征,在需要时再解锁。
3.目前nvme(nvm express,非易失性内存主机控制器接口规范)2.0协议中新增了一个command and feature lockdown(命令和功能锁定)特性,该特性可以用于禁止执行提交给nvme子系统中的nvm express控制器和/或管理端点的命令,但其不具有安全认证,任何人都可以下发此命令来锁定和解锁命令,且掉电失效。


技术实现要素:

4.有鉴于此,本发明的目的在于提出一种基于固态硬盘命令的锁定方法、系统及存储介质,用以解决现有技术中固态硬盘的nvme协议中锁定功能特性不具有安全认证,致使任何人都可以通过该特性来锁定和解锁命令,导致不安全的问题。
5.基于上述目的,本发明提供了一种基于固态硬盘命令的锁定方法,包括以下步骤:
6.由固态硬盘基于主机发送的获取特征命令产生随机数,并将随机数返回至主机,并由主机基于固态硬盘中配置的初始密钥并利用厂商特定算法对随机数进行加密,得到第一二级密钥;
7.将锁操作命令对应的命令操作码或特征标识符作为消息,并基于消息、第一二级密钥和厂商特定算法进行hmac计算,得到第一完整性认证数据;
8.由固态硬盘在接收到主机发送的锁操作命令后,基于初始密钥、随机数、厂商特定算法及消息得到第二完整性认证数据;
9.判断第一完整性数据与第二完整性数据是否相等;
10.响应于第一完整性数据与第二完整性数据相等,确定锁操作命令安全认证成功,并执行锁操作命令,以对命令操作码或特征标识符进行锁定或解锁。
11.在一些实施例中,执行锁操作命令,以对命令操作码或特征标识符进行锁定包括:
12.执行锁操作命令,以将命令操作码或特征标识符存储至固态硬盘的非易失性内存中,并根据命令操作码禁用对应的命令,或者根据特征标识符设置对应的特征。
13.在一些实施例中,执行锁操作命令,以对命令操作码或特征标识符进行解锁包括:
14.执行锁操作命令,以将命令操作码或特征标识符从固态硬盘的非易失性内存中删除。
15.在一些实施例中,锁操作命令包括数据指针、第一字段和第二字段;
16.数据指针指向固态硬盘中存放消息的内存地址,消息为主机传输至固态硬盘的数据;
17.第一字段定义消息的大小;
18.第二字段定义消息属于命令操作码或特征标识符,并定义对消息进行锁定或解锁。
19.在一些实施例中,方法还包括:
20.响应于固态硬盘接收到主机发送的锁操作命令,将随机数清除。
21.在一些实施例中,由固态硬盘在接收到主机发送的锁操作命令后,基于初始密钥、随机数、厂商特定算法及消息得到第二完整性认证数据包括:
22.由固态硬盘在接收到主机发送的锁操作命令后,基于初始密钥并利用厂商特定算法对随机数进行加密,得到第二二级密钥,并基于消息、第二二级密钥和厂商特定算法进行hmac计算,得到第二完整性认证数据。
23.在一些实施例中,方法还包括:
24.将消息与第一完整性数据拼接,并将拼接后的数据作为待传输数据。
25.在一些实施例中,由固态硬盘基于主机发送的获取特征命令产生随机数包括:
26.响应于固态硬盘接收到主机发送的获取特征命令,使用内部的真随机数发生器产生预设字节数的随机数,获取特征命令配置有获取随机数的特征标识符。
27.本发明的另一方面,还提供了一种基于固态硬盘命令的锁定系统,包括:
28.加密模块,配置用于由固态硬盘基于主机发送的获取特征命令产生随机数,并将随机数返回至主机,并由主机基于固态硬盘中配置的初始密钥并利用厂商特定算法对随机数进行加密,得到第一二级密钥;
29.第一计算模块,配置用于将锁操作命令对应的命令操作码或特征标识符作为消息,并基于消息、第一二级密钥和厂商特定算法进行hmac计算,得到第一完整性认证数据;
30.第二计算模块,配置用于由固态硬盘在接收到主机发送的锁操作命令后,基于初始密钥、随机数、厂商特定算法及消息得到第二完整性认证数据;
31.判断模块,配置用于判断第一完整性数据与第二完整性数据是否相等;以及
32.执行模块,配置用于响应于第一完整性数据与第二完整性数据相等,确定锁操作命令安全认证成功,并执行锁操作命令,以对命令操作码或特征标识符进行锁定或解锁。
33.本发明的又一方面,还提供了一种计算机可读存储介质,存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述方法。
34.本发明的再一方面,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该计算机程序被处理器执行时执行上述方法。
35.本发明至少具有以下有益技术效果:
36.本发明的基于固态硬盘命令的锁定方法,通过锁操作命令,可以安全可靠地锁定或解锁对应的命令操作码或特征标识符,能够防止在开放环境下恶意软件的攻击破坏盘内数据,实现了仅限指定用户使用特定功能;通过每次获取随机数,使用初始密钥对随机数加密得到二级密钥,这样每次的二级密钥都不同,可以做到防重放攻击;使用二级密钥对要传输的数据计算完整性认证数据,既认证了发送者的合法性,又保证了传输数据的完整性,防止传输数据被恶意添加或删除,保证了要锁定或解锁的命令或特征不会被攻击者随意修
改,保证了安全性。
附图说明
37.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
38.图1为根据本发明实施例提供的基于固态硬盘命令的锁定方法的示意图;
39.图2为根据本发明实施例提供的锁操作命令的结构示意图;
40.图3为根据本发明实施例提供的基于固态硬盘命令的锁定系统的示意图;
41.图4为根据本发明实施例提供的实现基于固态硬盘命令的锁定方法的计算机可读存储介质的示意图;
42.图5为根据本发明实施例提供的执行基于固态硬盘命令的锁定方法的计算机设备的硬件结构示意图。
具体实施方式
43.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
44.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称的非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备固有的其他步骤或单元。
45.基于上述目的,本发明实施例的第一个方面,提出了一种基于固态硬盘命令的锁定方法的实施例。图1示出的是本发明提供的基于固态硬盘命令的锁定方法的实施例的示意图。如图1所示,本发明实施例包括如下步骤:
46.步骤s10、由固态硬盘基于主机发送的获取特征命令产生随机数,并将随机数返回至主机,并由主机基于固态硬盘中配置的初始密钥并利用厂商特定算法对随机数进行加密,得到第一二级密钥;
47.步骤s20、将锁操作命令对应的命令操作码或特征标识符作为消息,并基于消息、第一二级密钥和厂商特定算法进行hmac计算,得到第一完整性认证数据;
48.步骤s30、由固态硬盘在接收到主机发送的锁操作命令后,基于初始密钥、随机数、厂商特定算法及消息得到第二完整性认证数据;
49.步骤s40、判断第一完整性数据与第二完整性数据是否相等;
50.步骤s50、响应于第一完整性数据与第二完整性数据相等,确定锁操作命令安全认证成功,并执行锁操作命令,以对命令操作码或特征标识符进行锁定或解锁。
51.hmac是密钥相关的哈希运算消息认证码(hash-based messageauthentication code)的缩写。hmac中的h代指hash(哈希)散列算法,hmac可以使用多种单项散列式,例如使用sha-1。hmac(k,m)=h(k

opad∣h(k

ipad∣m)),其中

k’表示密钥,

m’表示消息,
‘⊕’

示xor运算,

h’表示hash运算,

|’表示前后数据拼接在一起。ipad=一个字节(byte)的0x36重复64次;opad=一个字节(byte)的0x5c重复64次。
52.本发明实施例的基于固态硬盘命令的锁定方法,通过锁操作命令,可以安全可靠地锁定或解锁对应的命令操作码或特征标识符,能够防止在开放环境下恶意软件的攻击破坏盘内数据,实现了仅限指定用户使用特定功能;通过每次获取随机数,使用初始密钥对随机数加密得到二级密钥,这样每次的二级密钥都不同,可以做到防重放攻击;使用二级密钥对要传输的数据计算完整性认证数据,既认证了发送者的合法性,又保证了传输数据的完整性,防止传输数据被恶意添加或删除,保证了要锁定或解锁的命令或特征不会被攻击者随意修改,保证了安全性。
53.在一些实施例中,执行锁操作命令,以对命令操作码或特征标识符进行锁定包括:执行锁操作命令,以将命令操作码或特征标识符存储至固态硬盘的非易失性内存中,并根据命令操作码禁用对应的命令,或者根据特征标识符设置对应的特征。
54.在一些实施例中,执行锁操作命令,以对命令操作码或特征标识符进行解锁包括:执行锁操作命令,以将命令操作码或特征标识符从固态硬盘的非易失性内存中删除。
55.在一些实施例中,锁操作命令包括数据指针、第一字段和第二字段;数据指针指向固态硬盘中存放消息的内存地址,消息为主机传输至固态硬盘的数据;第一字段定义消息的大小;第二字段定义消息属于命令操作码或特征标识符,并定义对消息进行锁定或解锁。
56.本实施例中,通过锁操作命令(命令或特征安全锁定和解锁的nvme命令),用于配置禁止或允许针对指定命令或指定特征标识符的set feature(设置对应的特征)命令的执行。该命令的命令操作码是自定义的值,不能与任何通用的nvme(nvm express,非易失性内存主机控制器接口规范)命令操作码相同。
57.图2示出了根据本发明实施例提供的锁操作命令的结构示意图。如图2所示,nvme命令包括64个字节,即16个dword(一个dword是4个字节单位)。锁操作命令使用数据指针、命令dword 10和命令dword 11字段。使用的字段介绍如下:
58.对于数据指针,其告知固态硬盘从哪个内存地址获取主机传输的数据。传输的数据格式如下表1所示(注:一次传输的数据总长度不能超过4096字节)。固态硬盘获取到这些数据后,对命令操作码或特征标识符进行保存,锁定或解锁对应命令或特征。
59.表1
60.bytesdescription(描述)03:00命令操作码1或特征标识符107:04命令操作码2或特征标识符2
……ꢀ
(n-1)*4+3:(n-1)*4命令操作码n或特征标识符n
61.命令dword 10定义要传输的数据的dword(即消息的dword)的个数。
62.命令dword 11每个字段定义如下表2所示:
63.表2
64.[0065][0066]
在一些实施例中,方法还包括:响应于固态硬盘接收到主机发送的锁操作命令,将随机数清除。
[0067]
在一些实施例中,由固态硬盘基于主机发送的获取特征命令产生随机数包括:响应于固态硬盘接收到主机发送的获取特征命令,使用内部的真随机数发生器产生预设字节数的随机数,获取特征命令配置有获取随机数的特征标识符。
[0068]
本实施例中,需要自定义一个特征标识符randomfid,主机向固态硬盘发送的get feature命令(即获取特征命令)带有该特征标识符时,固态硬盘使用内部的真随机数发生器产生16字节的随机数,通过get feature命令返回。
[0069]
在一些实施例中,由固态硬盘在接收到主机发送的锁操作命令后,基于初始密钥、随机数、厂商特定算法及消息得到第二完整性认证数据包括:由固态硬盘在接收到主机发送的锁操作命令后,基于初始密钥并利用厂商特定算法对随机数进行加密,得到第二二级密钥,并基于消息、第二二级密钥和厂商特定算法进行hmac计算,得到第二完整性认证数据。
[0070]
在一些实施例中,方法还包括:将消息与第一完整性数据拼接,并将拼接后的数据作为待传输数据。
[0071]
本实施例中,对消息(msg)使用产生的二级密钥(key),使用厂商特定算法(sm3或sha256等),通过hmac(key,msg)计算得到完整性认证数据(如果是sm3算法,则会得到32字节的数据)。把第一完整性认证数据加到msg数据的后面,总体作为传输数据。如下表3,在表2的基础上增加了第一完整性数据。
[0072]
表3
[0073]
bytesdescription(描述)03:00命令操作码1或特征标识符107:04命令操作码2或特征标识符2
……ꢀ
(n-1)*4+3:(n-1)*4命令操作码n或特征标识符n(n)*4+m:(n)*4m+1字节的完整性认证数据
[0074]
以下为本发明的基于固态硬盘命令的锁定方法的一示例性实施例:
[0075]
1、ssd出厂前初始化操作
[0076]
ssd(solid state disk,固态硬盘)出厂前会写入16字节的初始密钥到ssd中的非易失性内存中,该空间没有任何外部指令可以进行读取,只能在ssd内部固件读取使用。保证非法人员无法获取初始密钥,无法对数据进行篡改。
[0077]
2、锁定或解锁对应的命令或特征
[0078]
(1)配置get feature命令(即获取特征命令)中的特征标识符为自定义的获取随机数的特征标识符randomfid,向固态硬盘发送get feature命令。
[0079]
(2)固态硬盘收到get feature命令后,使用内部的真随机数发生器产生16字节随机数(random),返回数据给主机。
[0080]
注:固态硬盘把产生的随机数暂时保存起来,固态硬盘中这个随机数在以下情况下会被清除,保证防重放要求:
[0081]
a.在固态硬盘控制器级别复位时会被清除;
[0082]
b.当收到一次锁操作命令时,无论是否验证成功,都会清除这个随机数。
[0083]
(3)主机收到随机数后,发送者根据出厂时写入固态硬盘的初始密钥(这个密钥只有厂商知道),使用厂商特定算法(对称加密算法sm4或三重数据加密算法3des或高级加密标准aes等)对随机数进行加密,得到一个二级密钥key。
[0084]
(4)组织要发送的锁定或解锁的命令操作码或特征标识符如上表1所示,传输的数据要么都是命令操作码,要么都是特征标识符,不能两者混合。
[0085]
以这些数据作为消息msg,使用产生的二级密钥key,使用厂商特定算法,通过hmac(key,msg)计算得到第一完整性认证数据。把第一完整性认证数据加到msg数据的后面,总体作为传输数据。
[0086]
(5)设置nvme命令的dword 10字段为要传输的数据的dword字节个数。根据是锁定还是解锁操作,以及传输的数据是消息操作码还是特征标识符设置dword 11。向固态硬盘发送该锁操作命令。
[0087]
(6)固态硬盘接收到该锁操作命令后,使用出厂时预先写入非易失性内存中的初始密钥,使用厂商特定的算法对随机数加密得到二级密钥,再使用二级密钥对传输的命令操作码或特征标识符使用厂商特定算法计算得到第二完整性认证数据,与接收的命令中的第一完整性认证数据进行比对,如果相等,表示认证成功,且数据有效。如果是锁定,则保存传入的命令操作码或特征标识符到非易失性内存中,之后根据这些数据来禁用对应的命令或设置对应的特征。如果是解锁,则把传入的命令操作码或特征标识符从对应的非易失性内存中删除。
[0088]
本实施例可以达到以下效果:
[0089]
(1)具备灵活性:所有固态硬盘都可以使用同一套固件,通过锁定或解锁命令,使特定用户使用特定的硬盘功能,当需要其他功能时可以通过命令直接解锁,而不需升级固件。当固态硬盘出现问题时,厂商也可以解锁对应的私有命令,来调试固态硬件,快速定位问题。
[0090]
(2)具备安全性:在发送锁定和解锁命令前,需要先获取随机数(防重放)生成二级密钥,再使用二级密钥对要发送的数据计算hmac,保证数据的完整性的同时认证发送者,具有安全性。
[0091]
本发明实施例的第二个方面,还提供了一种基于固态硬盘命令的锁定系统。图3示出的是本发明提供的基于固态硬盘命令的锁定系统的实施例的示意图。如图3所示,一种基于固态硬盘命令的锁定系统包括:加密模块10,配置用于由固态硬盘基于主机发送的获取特征命令产生随机数,并将随机数返回至主机,并由主机基于固态硬盘中配置的初始密钥并利用厂商特定算法对随机数进行加密,得到第一二级密钥;第一计算模块20,配置用于将锁操作命令对应的命令操作码或特征标识符作为消息,并基于消息、第一二级密钥和厂商特定算法进行hmac计算,得到第一完整性认证数据;第二计算模块30,配置用于由固态硬盘在接收到主机发送的锁操作命令后,基于初始密钥、随机数、厂商特定算法及消息得到第二完整性认证数据;判断模块40,配置用于判断第一完整性数据与第二完整性数据是否相等;以及执行模块50,配置用于响应于第一完整性数据与第二完整性数据相等,确定锁操作命令安全认证成功,并执行锁操作命令,以对命令操作码或特征标识符进行锁定或解锁。
[0092]
本发明实施例的第三个方面,还提供了一种计算机可读存储介质,图4示出了根据本发明实施例提供的实现基于固态硬盘命令的锁定方法的计算机可读存储介质的示意图。如图4所示,计算机可读存储介质3存储有计算机程序指令31。该计算机程序指令31被处理器执行时实现上述任意一项实施例的方法。
[0093]
应当理解,在相互不冲突的情况下,以上针对根据本发明的基于固态硬盘命令的锁定方法阐述的所有实施方式、特征和优势同样地适用于根据本发明的基于固态硬盘命令的锁定系统和存储介质。
[0094]
本发明实施例的第四个方面,还提供了一种计算机设备,包括如图5所示的存储器402和处理器401,该存储器402中存储有计算机程序,该计算机程序被该处理器401执行时实现上述任意一项实施例的方法。
[0095]
如图5所示,为本发明提供的执行基于固态硬盘命令的锁定方法的计算机设备的一个实施例的硬件结构示意图。以如图5所示的计算机设备为例,在该计算机设备中包括一个处理器401以及一个存储器402,并还可以包括:输入装置403和输出装置404。处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图5中以通过总线连接为例。输入装置403可接收输入的数字或字符信息,以及产生与基于固态硬盘命令的锁定系统的用户设置以及功能控制有关的键信号输入。输出装置404可包括显示屏等显示设备。
[0096]
存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本技术实施例中的基于固态硬盘命令的锁定方法对应的程序指令/模块。存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储基于固态硬盘命令的锁定方法的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部
网、局域网、移动通信网及其组合。
[0097]
处理器401通过运行存储在存储器402中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的基于固态硬盘命令的锁定方法。
[0098]
最后需要说明的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦写可编程rom(eeprom)或快闪存储器。易失性存储器可以包括随机存取存储器(ram),该ram可以充当外部高速缓存存储器。作为例子而非限制性的,ram可以以多种形式获得,比如同步ram(dram)、动态ram(dram)、同步dram(sdram)、双数据速率sdram(ddrsdram)、增强sdram(esdram)、同步链路dram(sldram)、以及直接rambus ram(drram)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。
[0099]
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
[0100]
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
[0101]
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
[0102]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

技术特征:
1.一种基于固态硬盘命令的锁定方法,其特征在于,包括以下步骤:由固态硬盘基于主机发送的获取特征命令产生随机数,并将所述随机数返回至所述主机,并由所述主机基于所述固态硬盘中配置的初始密钥并利用厂商特定算法对所述随机数进行加密,得到第一二级密钥;将锁操作命令对应的命令操作码或特征标识符作为消息,并基于所述消息、所述第一二级密钥和所述厂商特定算法进行hmac计算,得到第一完整性认证数据;由所述固态硬盘在接收到所述主机发送的所述锁操作命令后,基于所述初始密钥、所述随机数、所述厂商特定算法及所述消息得到第二完整性认证数据;判断所述第一完整性数据与所述第二完整性数据是否相等;响应于所述第一完整性数据与所述第二完整性数据相等,确定所述锁操作命令安全认证成功,并执行所述锁操作命令,以对所述命令操作码或所述特征标识符进行锁定或解锁。2.根据权利要求1所述的方法,其特征在于,执行所述锁操作命令,以对所述命令操作码或所述特征标识符进行锁定包括:执行所述锁操作命令,以将所述命令操作码或所述特征标识符存储至所述固态硬盘的非易失性内存中,并根据所述命令操作码禁用对应的命令,或者根据所述特征标识符设置对应的特征。3.根据权利要求1或2所述的方法,其特征在于,执行所述锁操作命令,以对所述命令操作码或所述特征标识符进行解锁包括:执行所述锁操作命令,以将所述命令操作码或所述特征标识符从所述固态硬盘的非易失性内存中删除。4.根据权利要求1所述的方法,其特征在于,所述锁操作命令包括数据指针、第一字段和第二字段;所述数据指针指向所述固态硬盘中存放所述消息的内存地址,所述消息为所述主机传输至所述固态硬盘的数据;所述第一字段定义所述消息的大小;所述第二字段定义所述消息属于所述命令操作码或所述特征标识符,并定义对所述消息进行锁定或解锁。5.根据权利要求1所述的方法,其特征在于,还包括:响应于所述固态硬盘接收到所述主机发送的所述锁操作命令,将所述随机数清除。6.根据权利要求1所述的方法,其特征在于,由所述固态硬盘在接收到所述主机发送的所述锁操作命令后,基于所述初始密钥、所述随机数、所述厂商特定算法及所述消息得到第二完整性认证数据包括:由所述固态硬盘在接收到所述主机发送的所述锁操作命令后,基于所述初始密钥并利用所述厂商特定算法对所述随机数进行加密,得到第二二级密钥,并基于所述消息、所述第二二级密钥和所述厂商特定算法进行hmac计算,得到第二完整性认证数据。7.根据权利要求1所述的方法,其特征在于,还包括:将所述消息与第一所述完整性数据拼接,并将拼接后的数据作为待传输数据。8.根据权利要求1所述的方法,其特征在于,由固态硬盘基于主机发送的获取特征命令产生随机数包括:
响应于固态硬盘接收到主机发送的获取特征命令,使用内部的真随机数发生器产生预设字节数的随机数,所述获取特征命令配置有获取随机数的特征标识符。9.一种基于固态硬盘命令的锁定系统,其特征在于,包括:加密模块,配置用于由固态硬盘基于主机发送的获取特征命令产生随机数,并将所述随机数返回至所述主机,并由所述主机基于所述固态硬盘中配置的初始密钥并利用厂商特定算法对所述随机数进行加密,得到第一二级密钥;第一计算模块,配置用于将锁操作命令对应的命令操作码或特征标识符作为消息,并基于所述消息、所述第一二级密钥和所述厂商特定算法进行hmac计算,得到第一完整性认证数据;第二计算模块,配置用于由所述固态硬盘在接收到所述主机发送的所述锁操作命令后,基于所述初始密钥、所述随机数、所述厂商特定算法及所述消息得到第二完整性认证数据;判断模块,配置用于判断所述第一完整性数据与所述第二完整性数据是否相等;以及执行模块,配置用于响应于所述第一完整性数据与所述第二完整性数据相等,确定所述锁操作命令安全认证成功,并执行所述锁操作命令,以对所述命令操作码或所述特征标识符进行锁定或解锁。10.一种计算机可读存储介质,其特征在于,存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-8任意一项所述的方法。

技术总结
本发明提供了一种基于固态硬盘命令的锁定方法、系统及存储介质,方法包括:由固态硬盘基于主机发送的获取特征命令产生随机数,并将随机数返回至主机,并基于固态硬盘中配置的初始密钥并利用厂商特定算法对随机数进行加密,得到第一二级密钥;将锁操作命令对应的命令操作码或特征标识符作为消息,并基于消息、第一二级密钥和厂商特定算法进行HMAC计算,得到第一完整性认证数据;由固态硬盘在接收到主机发送的锁操作命令后得到第二完整性认证数据;判断第一完整性数据与第二完整性数据是否相等;若相等,确定锁操作命令安全认证成功,并执行锁操作命令,以对命令操作码或特征标识符进行锁定或解锁。本发明保证了要锁定或解锁的命令或特征的安全性。或特征的安全性。或特征的安全性。


技术研发人员:崔佳宁 尹作刚 张琪
受保护的技术使用者:山东云海国创云计算装备产业创新中心有限公司
技术研发日:2023.04.27
技术公布日:2023/8/13
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐