一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

固态硬盘读写方法、装置、电子设备及可读存储介质与流程

2023-01-02 12:39:14 来源:中国专利 TAG:


1.本技术涉及存储软件技术领域,特别涉及一种固态硬盘读写方法、装置、电子设备及可读存储介质。


背景技术:

2.目前,固态硬盘大多只有存储功能,没有身份认证功能,无法保证固态硬盘数据的安全性。为解决该问题,相关技术中,有些固态硬盘会采用对传输的数据进行加密传输的方式,保证数据的安全,但是,当数据量巨大时,会影响硬盘性能。
3.因此,如何在不影响固态硬盘性能的前提下,有效地保证固态硬盘数据的安全性是本领域技术人员亟待解决的问题。


技术实现要素:

4.本技术的目的是提供一种固态硬盘读写方法,该固态硬盘读写方法可以在不影响固态硬盘性能的前提下,有效地保证固态硬盘数据的安全性;本技术的另一目的是提供另一种固态硬盘读写方法、固态硬盘读写装置、电子设备及计算机可读存储介质,均具有上述有益效果。
5.第一方面,本技术提供了一种固态硬盘读写方法,应用于固态硬盘,所述方法包括:根据主机设备下发的第一信息获取指令向所述主机设备反馈硬盘信息,以使所述主机设备根据所述硬盘信息生成第一密钥;根据所述主机设备下发的第二信息获取指令生成随机数据,并反馈所述随机数据至所述主机设备,以使所述主机设备利用所述第一密钥对所述随机数据进行加密,获得验证数据;获取所述主机设备下发的所述验证数据,并利用所述验证数据和所述随机数据进行安全认证,当安全认证通过时响应所述主机设备下发的读写指令以实现固态硬盘读写操作。
6.可选地,所述固态硬盘配置有安全认证能力寄存器,所述第一信息获取指令由所述主机设备在遍历到所述安全认证能力寄存器时下发至所述固态硬盘。
7.可选地,所述安全认证能力寄存器中设置有预设数量个数据寄存器,所述根据所述主机设备下发的第二信息获取指令生成随机数据,并反馈所述随机数据至所述主机设备,包括:根据所述主机设备下发的所述第二信息获取指令生成所述随机数据;对所述随机数据进行划分,获得所述预设数量个随机子数据;将各所述随机子数据写入至各所述数据寄存器,以使所述主机设备从各所述数据寄存器中读取获得各所述随机子数据,并基于各所述随机子数据生成所述随机数据。
8.可选地,所述获取所述主机设备下发的所述验证数据,包括:
从各所述数据寄存器中读取获得各验证子数据;各所述验证子数据由所述主机设备对所述验证数据进行划分并写入各所述数据寄存器中;基于各所述验证子数据生成所述验证数据。
9.可选地,所述固态硬盘读写方法还包括:当安全认证不通过时,对所述安全认证能力寄存器进行复位。
10.可选地,所述对所述安全认证能力寄存器进行复位之前,还包括:对验证失败次数进行统计;当所述验证失败次数达到预设次数时,执行所述对所述安全认证能力寄存器进行复位的步骤。
11.可选地,所述固态硬盘读写方法还包括:当安全认证通过时,对所述验证失败次数清零。
12.可选地,所述利用所述验证数据和所述随机数据进行安全认证,包括:根据所述硬盘信息生成所述第一密钥;利用所述第一密钥对所述验证数据进行解密,获得解密数据;判断所述解密数据与所述随机数据是否一致;若是,则确定认证通过;若否,则确定认证不通过。
13.可选地,所述利用所述验证数据和所述随机数据进行安全认证,包括:根据所述硬盘信息生成所述第一密钥;利用所述第一密钥对所述随机数据进行加密,获得加密数据;判断所述加密数据与所述验证数据是否一致;若是,则确定认证通过;若否,则确定认证不通过。
14.可选地,所述响应所述主机设备下发的读写指令以实现固态硬盘读写操作,包括:根据所述主机设备下发的所述读写指令加载设备驱动;结合所述设备驱动执行所述固态硬盘读写操作。
15.可选地,所述固态硬盘读写方法还包括:对所述验证数据的反馈时间进行统计;当所述反馈时间超出预设时间时,对所述安全认证能力寄存器进行复位。
16.可选地,所述硬盘信息包括硬盘出厂信息和历史验证次数,所述方法还包括:当接收到下电信号时,将所述历史验证次数写入至非易失性flash中。
17.第二方面,本技术提供了另一种固态硬盘读写方法,应用于主机设备,包括:下发第一信息获取指令至固态硬盘;接收所述固态硬盘根据所述第一信息获取指令反馈的硬盘信息,并根据所述硬盘信息生成第一密钥;下发第二信息获取指令至所述固态硬盘,以使所述固态硬盘根据所述第二信息获取指令生成随机数据;接收所述固态硬盘反馈的所述随机数据,并利用所述第一密钥对所述随机数据进行加密,获得验证数据;
下发所述验证数据至所述固态硬盘,以使所述固态硬盘利用所述随机数据和所述验证数据进行安全认证;当接收到所述固态硬盘反馈的认证通过信息时,下发读写指令至所述固态硬盘,以使所述固态硬盘响应所述读写指令以实现固态硬盘读写操作。
18.可选地,所述根据所述硬盘信息生成第一密钥,包括:结合预设加密算法,利用第二密钥对所述硬盘信息进行加密,获得所述第一密钥。
19.第三方面,本技术还公开了一种固态硬盘读写装置,应用于固态硬盘,所述装置包括:硬盘信息反馈模块,用于根据主机设备下发的第一信息获取指令向所述主机设备反馈硬盘信息,以使所述主机设备根据所述硬盘信息生成第一密钥;随机数据生成模块,用于根据所述主机设备下发的第二信息获取指令生成随机数据,并反馈所述随机数据至所述主机设备,以使所述主机设备利用所述第一密钥对所述随机数据进行加密,获得验证数据;安全认证模块,用于获取所述主机设备下发的所述验证数据,并利用所述验证数据和所述随机数据进行安全认证,当安全认证通过时响应所述主机设备下发的读写指令以实现固态硬盘读写操作。
20.第四方面,本技术还公开了另一种固态硬盘读写装置,应用于主机设备,所述装置包括:第一指令下发模块,用于下发第一信息获取指令至固态硬盘;第一密钥生成模块,用于接收所述固态硬盘根据所述第一信息获取指令反馈的硬盘信息,并根据所述硬盘信息生成第一密钥;第二指令下发模块,用于下发第二信息获取指令至所述固态硬盘,以使所述固态硬盘根据所述第二信息获取指令生成随机数据;随机数据加密模块,用于接收所述固态硬盘反馈的所述随机数据,并利用所述第一密钥对所述随机数据进行加密,获得验证数据;验证数据下发模块,用于下发所述验证数据至所述固态硬盘,以使所述固态硬盘利用所述随机数据和所述验证数据进行安全认证;第三指令下发模块,用于当接收到所述固态硬盘反馈的认证通过信息时,下发读写指令至所述固态硬盘,以使所述固态硬盘响应所述读写指令以实现固态硬盘读写操作。
21.第五方面,本技术还公开了一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上所述的任一种固态硬盘读写方法的步骤。
22.第六方面,本技术还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的任一种固态硬盘读写方法的步骤。
23.应用本技术所提供的技术方案,在对固态硬盘进行读写之前,首先获取其硬盘信息生成第一密钥,然后利用该第一密钥对固态硬盘的随机数据进行加密生成验证数据,由此,固态硬盘则可以利用随机数据和验证数据进行安全认证,当认证通过时,主机设备才可
以对固态硬盘执行读写操作,当认证不通过时,不允许主机设备对自身执行读写操作,显然,基于该种实现方式,在安全认证过程中,只需要对固态硬盘中随机生成的少量数据进行加解密校验,无需对固态硬盘中的存储数据进行加解密传输,因此,该种实现方式可以在不影响固态硬盘性能的前提下,有效地保证固态硬盘数据的安全性。
附图说明
24.为了更清楚地说明现有技术和本技术实施例中的技术方案,下面将对现有技术和本技术实施例描述中需要使用的附图作简要的介绍。当然,下面有关本技术实施例的附图描述的仅仅是本技术中的一部分实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图,所获得的其他附图也属于本技术的保护范围。
25.图1为本技术所提供的一种固态硬盘读写方法的流程示意图;图2为本技术所提供的另一种固态硬盘读写方法的流程示意图;图3为本本技术所提供的一种安全认证能力寄存器的结构示意图;图4为本技术所提供的一种固态硬盘读写装置的结构示意图;图5为本技术所提供的另一种固态硬盘读写装置的结构示意图;图6为本技术所提供的一种电子设备的结构示意图。
具体实施方式
26.本技术的核心是提供一种固态硬盘读写方法,该固态硬盘读写方法可以在不影响固态硬盘性能的前提下,有效地保证固态硬盘数据的安全性;本技术的另一核心是提供另一种固态硬盘读写方法、固态硬盘读写装置、电子设备及计算机可读存储介质,均具有上述有益效果。
27.为了对本技术实施例中的技术方案进行更加清楚、完整地描述,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行介绍。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
28.本技术实施例提供了一种固态硬盘读写方法。
29.请参考图1,图1为本技术所提供的一种固态硬盘读写方法的流程示意图,该固态硬盘读写方法应用于固态硬盘,可以包括如下s101至s103。
30.s101:根据主机设备下发的第一信息获取指令向主机设备反馈硬盘信息,以使主机设备根据硬盘信息生成第一密钥;本步骤旨在基于固态硬盘的硬盘信息实现第一密钥的生成,其中,硬盘信息是指需要进行读写操作的固态硬盘的相关信息,可以包括但不限于设备型号、设备id、设备出厂参数等;第一密钥则用于实现数据加密功能(用于对后述随机数据进行加密)。
31.在实现过程中,当主机设备需要对一个固态硬盘进行读写操作时,先将固态硬盘与主机设备建立连接关系(例如,可以是将固态硬盘插入至主机设备的相应接口),然后由主机设备下发第一信息获取指令至固态硬盘,其中,第一信息获取指令即为获取固态硬盘的硬盘信息的指令,因此,固态硬盘在接收到第一信息获取指令之后,即可向主机设备反馈
硬盘信息;进一步,主机设备在获得固态硬盘上传的硬盘信息之后,即可基于该硬盘信息生成第一密钥,以便于利用该第一密钥执行后续数据加密操作。
32.s102:根据主机设备下发的第二信息获取指令生成随机数据,并反馈随机数据至主机设备,以使主机设备利用第一密钥对随机数据进行加密,获得验证数据;本步骤旨在实现随机数据和验证数据的生成。具体而言,在主机设备基于硬盘信息生成第一密钥之后,即可向固态硬盘下发第二信息获取指令,该第二信息获取指令是用于获取随机数据的指令,对于固态硬盘而言,当其接收到第二信息获取指令时,即可随机生成一个固定大小的字节数据,即上述随机数据,并反馈给主机设备;进一步,主机设备在接收到随机数据之后,即可利用上述第一密钥对随机数据进行加密,获得验证数据。可以理解的是,随机数据和验证数据则用于实现固态硬盘的安全认证,其中,随机数据由固态硬盘随机生成,其大小、形式等均不影响本技术方案的实施,具体可以由固态硬盘的实际性能所决定,本技术对此不做限定。
33.s103:获取主机设备下发的验证数据,并利用验证数据和随机数据进行安全认证,当安全认证通过时响应主机设备下发的读写指令以实现固态硬盘读写操作。
34.本步骤旨在实现安全认证,以便在安全认证通过之后实现固态硬盘读写操作。具体而言,主机设备在利用第一密钥对随机数据加密生成验证数据之后,即可将验证数据下发至固态硬盘,由固态硬盘利用接收到的验证数据和自身的随机数据进行安全认证;并且,在安全认证通过时,固态硬盘即可响应主机设备下发的读写指令,从而完成主机设备对固态硬盘的读写操作;反之,如若安全认证不通过,固态硬盘将不会响应主机设备下发的读写指令,不允许主机设备对自身执行读写操作。
35.可见,本技术实施例所提供的固态硬盘读写方法,在对固态硬盘进行读写之前,首先获取其硬盘信息生成第一密钥,然后利用该第一密钥对固态硬盘的随机数据进行加密生成验证数据,由此,固态硬盘则可以利用随机数据和验证数据进行安全认证,当认证通过时,主机设备才可以对固态硬盘执行读写操作,当认证不通过时,不允许主机设备对自身执行读写操作,显然,基于该种实现方式,在安全认证过程中,只需要对固态硬盘中随机生成的少量数据进行加解密校验,无需对固态硬盘中的存储数据进行加解密传输,因此,该种实现方式可以在不影响固态硬盘性能的前提下,有效地保证固态硬盘数据的安全性。
36.在本技术的一个实施例中,固态硬盘配置有安全认证能力寄存器,上述第一信息获取指令可以由主机设备在遍历到安全认证能力寄存器时下发至固态硬盘。
37.具体而言,可以在固态硬盘中预先配置安全认证能力寄存器,并且,在主机设备中增设安全认证能力寄存器扫查功能,由此,只有在主机设备遍历到固态硬盘中的安全认证能力寄存器时,才可执行后续安全认证操作以及固态硬盘读写操作。可以理解的是,通过上述针对固态硬盘和主机设备的对照设置,可以有效避免主机设备识别到非法硬盘,保证主机设备的安全性。
38.在本技术的一个实施例中,安全认证能力寄存器中设置有预设数量个数据寄存器,上述根据主机设备下发的第二信息获取指令生成随机数据,并反馈随机数据至主机设备,可以包括如下步骤:根据主机设备下发的第二信息获取指令生成随机数据;对随机数据进行划分,获得预设数量个随机子数据;
将各随机子数据写入至各数据寄存器,以使主机设备从各数据寄存器中读取获得各随机子数据,并基于各随机子数据生成随机数据。
39.本技术实施例提供了一种将随机数据反馈至主机设备的实现方法。具体而言,可以预先在安全认证能力寄存器中设置预设数量个数据寄存器,该数据寄存器用于实现随机数据的存储,当然,预设数量的具体取值并不影响本技术方案的实施,由技术人员根据实际需求进行设置即可,本技术对此不做限定。
40.在实现过程中,固态硬盘在接收到主机设备下发的第二信息获取指令时,可以先响应该第二信息获取指令生成随机数据,然后根据安全认证能力寄存器中数据寄存器的数量,即上述预设数量对随机数据进行划分,此处可以采用平均划分的实现方式,获得预设数量个随机子数据,并将这随机数量各随机子数据依次写入至各个数据寄存器,由此,主机设备即可从各个数据寄存器中读取获得各个随机子数据,并基于所有的随机子数据拼接成上述随机数据,从而实现随机数据至主机设备的反馈。
41.在本技术的一个实施例中,上述获取主机设备下发的验证数据,可以包括如下步骤:从各数据寄存器中读取获得各验证子数据;各验证子数据由主机设备对验证数据进行划分并写入各数据寄存器中;基于各验证子数据生成验证数据。
42.本技术实施例提供了一种获取验证数据的实现方法。对应于上述从数据寄存器中读取随机数据的实现流程,本技术实施例则可以实现验证数据的写入,即由主机设备将验证数据写入至各个数据寄存器,从而实现验证数据由主机设备至固态硬盘的下发。
43.在实现过程中,主机设备在基于随机数据生成验证数据之后,同样可以根据上述预设数量对验证数据进行划分,得到预设数量个验证子数据,并以此写入至固态硬盘的各个数据寄存器中,由此,对于固态硬盘而言,即可以从各个数据寄存器中读取获得各个验证子数据,并基于所有的验证子数据拼接成上述验证数据,从而实现验证至固态硬盘的下发。
44.在本技术的一个实施例中,该固态硬盘读写方法还可以包括:当安全认证不通过时,对安全认证能力寄存器进行复位。
45.在本技术实施例中,当安全认证不通过时,将不会响应主机设备下发的读写指令,不执行固态硬盘读写操作。除此之外,由于在安全认证过程中存在对固态硬盘中安全认证能力寄存器的读写操作,因此,当安全认证不通过时,还可以进一步对安全认证能力寄存器进行复位,以使固态硬盘恢复至初始状态,便于固态硬盘进行下一次的安全验证。
46.在本技术的一个实施例中,上述对安全认证能力寄存器进行复位之前,还可以包括如下步骤:对验证失败次数进行统计;当验证失败次数达到预设次数时,执行对安全认证能力寄存器进行复位的步骤。
47.可以理解的是,一次性的安全认证可能存在失误,因此,可以预先设置验证失败次数上限,即上述预设次数,允许进行多次安全认证。具体而言,在确定安全认证不通过之后,对安全认证能力寄存器进行复位之前,可以先统计当前验证失败次数,如若当前验证失败次数还未达到预设次数,则允许返回s101重新进行安全认证,反之,如若当前验证失败次数达到了预设次数,则可以直接执行对安全认证能力寄存器进行复位的步骤。其中,验证失败
次数的统计可以基于计数器实现。此外,预设次数的具体取值并不影响本技术方案的实施,由技术人员根据实际情况进行设置即可,本技术对此不做限定。
48.在本技术的一个实施例中,该固态硬盘读写方法还可以包括:当安全认证通过时,对验证失败次数清零。
49.具体而言,在对验证失败次数统计的过程中,每当安全认证不通过时,将会对统计的验证失败次数加一,反之,一旦出现安全认证通过的情况,说明此次安全认证通过,当前主机设备可以对固态硬盘执行读写操作,此时则可以直接将统计的验证失败次数清零,由此,在后续新的主机设备需要对固态硬盘进行读写操作时,即可重新进行验证失败次数的统计。
50.在本技术的一个实施例中,上述利用验证数据和随机数据进行安全认证,可以包括如下步骤:根据硬盘信息生成第一密钥;利用第一密钥对验证数据进行解密,获得解密数据;判断解密数据与随机数据是否一致;若是,则确定认证通过;若否,则确定认证不通过。
51.本技术实施例提供了一种基于验证数据和随机数据进行安全认证的实现方法。具体而言,固态硬盘在接收到主机设备下发的验证数据之后,可以利用自身生成的随机数据对其进行校验,当然,由于验证数据为加密数据,因此,需要先对该验证数据进行解密,然后将解密数据与随机数据进行对比,其中,解密过程可以基于利用硬盘信息生成的第一密钥实现;进一步,如若解密数据与随机数据一致,则说明安全认证通过,此时,固态硬盘即可响应主机设备下发的读写指令,从而完成主机设备对固态硬盘的读写操作;反之,如若解密数据与随机数据不一致,则说明安全认证不通过,此时,固态硬盘将不会响应主机设备下发的读写指令,不允许主机设备对自身执行读写操作。
52.在本技术的一个实施例中,上述利用验证数据和随机数据进行安全认证,可以包括如下步骤:根据硬盘信息生成第一密钥;利用第一密钥对随机数据进行加密,获得加密数据;判断加密数据与验证数据是否一致;若是,则确定认证通过;若否,则确定认证不通过。
53.本技术实施例提供了一种基于验证数据和随机数据进行安全认证的实现方法。具体而言,固态硬盘在接收到主机设备下发的验证数据之后,可以利用自身生成的随机数据对其进行反校验,首先,基于自身的硬盘信息生成第一密钥,并利用该第一密钥对随机数据进行加密,获得加密数据,然后将加密数据与认证数据进行对比;进一步,如若加密数据与验证数据一致,则说明安全认证通过,此时,固态硬盘即可响应主机设备下发的读写指令,从而完成主机设备对固态硬盘的读写操作;反之,如若加密数据与验证数据不一致,则说明安全认证不通过,此时,固态硬盘将不会响应主机设备下发的读写指令,不允许主机设备对自身执行读写操作。
54.在本技术的一个实施例中,上述响应主机设备下发的读写指令以实现固态硬盘读写操作,可以包括如下步骤:根据主机设备下发的读写指令加载设备驱动;结合设备驱动执行固态硬盘读写操作。
55.本技术实施例提供了一种响应读写指令实现固态硬盘读写操作的方法。可以理解的是,在主机设备与固态硬盘建立连接之后,对固态硬盘进行读写操作之前,需要先加载设备驱动,从而结合设备驱动实现读写操作,因此,固态硬盘在接收到主机设备下发的指令之后,可以先加载设备驱动,然后结合设备驱动执行各项固态硬盘读写操作。显然,在本技术实施例中,只有在主机设备对固态硬盘的安全认证通过之后才会进行设备驱动的加载,否则不会加载设备驱动,可以进一步保证固态硬盘的数据安全。
56.在本技术的一个实施例中,该固态硬盘读写方法还可以包括如下步骤:对验证数据的反馈时间进行统计;当反馈时间超出预设时间时,对安全认证能力寄存器进行复位。
57.在本技术实施例中,还可以对验证数据的反馈时间进行统计,只有当验证数据在预设时间内被反馈至固态硬盘时,才可继续后续验证数据的安全认证操作,反之,如若在预设时间内仍然未收到主机设备反馈的验证数据,则可以默认安全认证不通过,直接执行对安全能力寄存器的复位操作即可。显然,基于该种实现方式,可以有效避免由于长时间无响应造成的不必要的时间占用。
58.在实现过程中,在主机设备与固态硬盘建立连接,固态硬盘接收到上电信号之后,即可启动一个计时器进行计时,该计时器的计时时间即为验证数据的反馈时间,一旦该时间达到预设时间,且仍未接收到验证数据,则说明此次安全认证不通过,对安全认证能力寄存器进行复位即可;如若在上述预设时间内接收到了验证数据,则可以继续后续安全认证操作。其中,预设时间的具体取值同样不影响本技术方案的实施,由技术人员根据实际情况进行设置即可,本技术对此不做限定。
59.在本技术的一个实施例中,上述硬盘信息可以包括硬盘出厂信息和历史验证次数,该固态硬盘读写方法还可以包括:当接收到下电信号时,将历史验证次数写入至非易失性flash中。
60.本技术实施例旨在实现历史验证次数的掉电保存操作,其中,历史验证次数是指固态硬盘在出厂投入使用之后进行安全认证的总次数,需要说明的是,历史验证次数包括验证成功的所有次数和验证失败的所有次数,以便于用户可以该历史验证次数确定固态硬盘的使用情况。具体而言,可以通过一个计数器实现历史验证次数的统计,并且,在接收到下电信号时,可立即将其写入至非易失性flash中,以有效避免掉电丢失。除此之外,在掉电时,还可以将上述验证失败次数一同写入至该非易失性flash中。
61.本技术实施例提供了另一种固态硬盘读写方法。
62.请参考图2,图2为本技术所提供的另一种固态硬盘读写方法的流程示意图,该固态硬盘读写方法应用于主机设备,可以包括如下s201至s206。
63.s201:下发第一信息获取指令至固态硬盘;本步骤旨在实现将第一信息获取指令下发至固态硬盘,其中,第一信息获取指令是用于获取固态硬盘的硬盘信息的指令,硬盘信息是指需要进行读写操作的固态硬盘的相
关信息。当主机设备需要对一个固态硬盘进行读写操作时,可以先将固态硬盘与主机设备建立连接关系,然后由主机设备下发第一信息获取指令至固态硬盘,以获取其硬盘信息。
64.s202:接收固态硬盘根据第一信息获取指令反馈的硬盘信息,并根据硬盘信息生成第一密钥;本步骤旨在基于硬盘信息实现第一密钥的生成,其中,第一密钥用于实现数据加密功能(用于对后述随机数据进行加密)。具体而言,固态设备在接收到主机设备下发的第一信息获取指令之后,即可向其反馈自身的硬盘信息,进一步,主机设备则可以根据该硬盘信息生成第一密钥,以便于利用该第一密钥执行后续数据加密操作。
65.s203:下发第二信息获取指令至固态硬盘,以使固态硬盘根据第二信息获取指令生成随机数据;本步骤旨在实现将第二信息获取指令下发至固态硬盘,以便于固态硬盘基于该第二信息获取指令生成随机数据并进行反馈。具体而言,在主机设备基于硬盘信息生成第一密钥之后,即可向固态硬盘下发第二信息获取指令,对于固态硬盘而言,当其接收到该第二信息获取指令时,即可随机生成一个固定大小的字节数据,即上述随机数据,并反馈给主机设备。
66.s204:接收固态硬盘反馈的随机数据,并利用第一密钥对随机数据进行加密,获得验证数据;本步骤旨在实现验证数据的生成。具体而言,主机设备在接收到固态硬盘反馈的随机数据之后,即可利用上述第一密钥对随机数据进行加密,获得验证数据。可以理解的是,随机数据和验证数据则用于实现固态硬盘的安全认证,其中,随机数据由固态硬盘随机生成,其大小、形式等均不影响本技术方案的实施,具体可以由固态硬盘的实际性能所决定,本技术对此不做限定。
67.s205:下发验证数据至固态硬盘,以使固态硬盘利用随机数据和验证数据进行安全认证;本步骤旨在实现安全认证,以便在安全认证通过后实现固态硬盘读写操作。具体而言,主机设备在利用第一密钥对随机数据加密生成验证数据之后,即可将验证数据下发至固态硬盘,由固态硬盘利用该验证数据和自身的随机数据进行安全认证。
68.s206:当接收到固态硬盘反馈的认证通过信息时,下发读写指令至固态硬盘,以使固态硬盘响应读写指令以实现固态硬盘读写操作。
69.本步骤旨在实现安全认证通过时的固态硬盘读写操作。具体而言,当安全认证通过时,固态硬盘即可反馈认证通过信息至主机设备,由此,主机设备即可向固态硬盘下发读写指令,以便于固态硬盘响应该读写指令,从而完成主机设备对固态硬盘的读写操作。当然,当安全认证未通过时,固态硬盘可以反馈验证不通过信息或者不反馈任何信息至主机设备,此后,对于主机设备下发的任何指令固态硬盘均不会进行响应。
70.可见,本技术实施例所提供的固态硬盘读写方法,在对固态硬盘进行读写之前,首先获取其硬盘信息生成第一密钥,然后利用该第一密钥对固态硬盘的随机数据进行加密生成验证数据,由此,固态硬盘则可以利用随机数据和验证数据进行安全认证,当认证通过时,主机设备才可以对固态硬盘执行读写操作,当认证不通过时,不允许主机设备对自身执行读写操作,显然,基于该种实现方式,在安全认证过程中,只需要对固态硬盘中随机生成
的少量数据进行加解密校验,无需对固态硬盘中的存储数据进行加解密传输,因此,该种实现方式可以在不影响固态硬盘性能的前提下,有效地保证固态硬盘数据的安全性。
71.在本技术的一个实施例中,上述根据硬盘信息生成第一密钥,可以包括:结合预设加密算法,利用第二密钥对硬盘信息进行加密,获得第一密钥。
72.本技术实施例提供了一种第一密钥的生成方法。具体而言,可以在主机设备中预先设置第二密钥并安装加密算法,即上述预设加密算法,由此,在获得固态硬盘反馈的硬盘信息之后,即可利用该第一密钥对硬盘信息使用预设加密算法进行加密处理,得到第一密钥。其中,预设加密算法的使用类型并不影响本技术方案的实施,可实现加密功能即可,例如,可以为3des(tdea,triple data encryption algorithm)加密算法、sm4(一种国密算法)加密算法等,本技术对此不做限定。可以理解的是,主机设备先使用第二密钥对硬盘信息使用特定算法得到第一密钥,再使用第一密钥对随机数据进行加密,具有防重放作用,且经过两级加密,更加不易被破解,具备更高的安全系。
73.本技术实施例提供了又一种固态硬盘读写方法。
74.首先,在固态硬盘中配置安全认证能力寄存器:可以理解的是,每个pcie设备都存在4k的配置空间,4k空间中前256 byte(0x00 ~ 0xff)是与pci兼容的寄存器,256 byte的前64 byte(0x00 ~ 0x3f)就是pci header。在配置空间中,除了pci header,还存在很多描述pcie相关能力的寄存器,这些寄存器在0x40 ~ 0xff中实现,这一段空间被称为pcie能力寄存器空间,此处可以由用户实施很多的pcie能力,常见的有msi能力寄存器、pcie能力结构寄存器等。
75.在一个pcie设备中可能存在多个能力结构,这些寄存器组成一个链表。每个能力结构都有一个唯一的id号和一个指针,指针指向下一个能力结构,如果为0则表示到了链表的结尾。pcie能力寄存器空间实施了一些能力,第一个能力的寄存器地址偏移信息保存在pci header中的能力指针寄存器中。
76.其中,pcie扩展能力结构存放在pci配置空间0x100之后的位置,该结构是pcie独有的,跟常规的能力结构类似,同样也包含一个id和指针,且指针指向下一个扩展。在本技术中,可以选择在pcie扩展能力结构的配置空间中扩展出一个pcie能力寄存器,称为pcie安全认证能力寄存器。
77.请参考图3,图3为本本技术所提供的一种安全认证能力寄存器的结构示意图,其中,ro表示该字段是只读的,主机不能写;rw表示该字段是可读写的。关于该安全认证能力寄存器:(1)安全认证能力寄存器的id为n(n不能与pcie协议中定义的能力寄存器的能力id相同,该值为自定义值,当安全系统平台的主机设备检测到该id值时,即可确定该安全认证能力寄存器);能力版本号表示该安全认证能力寄存器的版本信息,版本号从1开始;下一个能力寄存器的偏移地址为12bit,寻址范围为4k内,故可以在0x100 ~ 0xfff地址之间正确寻址,如果为0x000,则表示该安全认证能力寄存器是最后一个pcie能力寄存器。
78.(2)安全认证计数器表示安全认证的次数,每进行一次认证,该值就会加1,用于一级密钥(上述第二密钥)分散二级密钥(上述第一密钥)时使用。
79.(3)数据寄存器有两种功能,一种是主机设备读数据寄存器时固态硬盘通过该数据寄存器将产生的随机数返回给主机设备;另一种是验证时,主机设备将加密的数据(上述
验证数据)写入数据寄存器,以便于固态硬盘验证该加密数据。
80.其次,在安全平台系统的主机设备中设置关于安全认证能力寄存器的扫查功能:在安全平台系统上,主机设备的pci驱动需要同步修改,在固态硬盘上电时必须能识别到pcie安全认证能力寄存器,并使用固态硬盘相同的密钥加密产生验证数据,写入数据寄存器中,以供固态硬盘验证,验证通过后,固态硬盘才会响应主机设备的加载nvme驱动流程,主机设备才能识别固态硬盘。由此,其他平台上的主机设备,将无法识别pcie安全认证能力寄存器,或者即便识别到但密钥不正确,均无法识别固态硬盘,可以有效保证固态硬盘丢失后,数据不会被窃取。
81.最后,基于上述配置,本技术实施例所提供的固态硬盘读写方法的实现流程如下:1、固态硬盘在上电后启动一个定时器,定时时间为t。固态硬盘在验证通过前不处理主机设备的加载驱动指令,且在上电后t时间内,固态硬盘如果没有收到主机设备反馈的验证数据,则固态硬盘认为其为非安全系统平台的主机设备,固态硬盘复位pcie安全认证能力寄存器,保证固态硬盘在非安全系统的平台上不会被识别。
82.2、安全系统平台的主机设备在遍历固态硬盘的pcie能力寄存器时,如若能够识别pcie安全认证能力寄存器,则读取安全认证计数器,固态硬盘检测到主机设备读取的是安全认证计数器,则将安全认证计数值(上述历史验证次数)返回给主机设备。其中,安全认证计数值在每次安全认证时不管是否验证通过,都会加1,并且,在下电时会保存到非易失性flash中,保证掉电不丢失。
83.3、主机设备在枚举pcie设备时获取到固态硬盘的vendor id(供应商id)、device id(设备id)、subsystem vendor id(子厂商id)、subsystem id(子系统id)(均可以在type 0 configuration space header中读取获得),再加上读取的安全认证计数值,使用厂商特定算法和一级密钥对上述信息进行计算得到二级密钥。
84.4、主机设备读pcie安全认证能力寄存器中的4个数据寄存器,固态硬盘检测到主机设备读取数据寄存器时,将会产生16字节的随机数据,分为4组4字节数据返回。主机设备读取第一个数据寄存器时,返回第一组4字节随机数据,读取第二个数据寄存器时,返回第二组,以此类推。主机设备得到所有16字节的随机数据后,使用二级密钥对其进行加密得到16字节的验证数据。主机设备将其划分为4组4字节的验证数据,并分别写入到4个数据寄存器中,传输给固态硬盘。可以理解的是,使用一级密钥得到二级密钥,再用二级密钥加密随机数据,更加不易被破解,并且,每次验证安全认证计数器都会增加,且每次的随机数据都不同,具有防重放作用。
85.5、固态硬盘在主机设备写数据寄存器时,将每个数据寄存器的值组织起来,使用同样的算法计算加密数据,与主机设备传入的验证数据进行比对,如果相同,则表示验证通过,并设置验证通过标志;如果验证不通过,则复位pcie安全认证能力寄存器。此外,固态硬盘还会维护一个错误计数器,用于记录连续验证失败的次数,每次验证错误,错误计数器加1,该计数器保存到非易失性flash中,每次上电判断该错误计数器值,当大于m时,不再执行上电流程。在计数值计数到m前,只要验证成功,则该错误计数器就会清0。当然,m的取值不能太小,防止误操作导致ssd挂掉,也不能太大,防止窃取者想通过试错方式多次重试破解。
86.6、主机写指定寄存器,通知固态硬盘加载nvme驱动,固态硬盘验证通过后,会响应此消息,加载nvme驱动,设置nvme设备准备就绪,主机设备可以识别nvme设备,之后主机就
能对固态硬盘进行读写操作。
87.可见,本技术实施例所提供的固态硬盘读写方法,在对固态硬盘进行读写之前,首先获取其硬盘信息生成第一密钥,然后利用该第一密钥对固态硬盘的随机数据进行加密生成验证数据,由此,固态硬盘则可以利用随机数据和验证数据进行安全认证,当认证通过时,主机设备才可以对固态硬盘执行读写操作,当认证不通过时,不允许主机设备对自身执行读写操作,显然,基于该种实现方式,在安全认证过程中,只需要对固态硬盘中随机生成的少量数据进行加解密校验,无需对固态硬盘中的存储数据进行加解密传输,因此,该种实现方式可以在不影响固态硬盘性能的前提下,有效地保证固态硬盘数据的安全性。
88.本技术实施例提供了一种固态硬盘读写装置。
89.请参考图4,图4为本技术所提供的一种固态硬盘读写装置的结构示意图,该固态硬盘读写装置应用于固态硬盘,可以包括:硬盘信息反馈模块1,用于根据主机设备下发的第一信息获取指令向主机设备反馈硬盘信息,以使主机设备根据硬盘信息生成第一密钥;随机数据生成模块2,用于根据主机设备下发的第二信息获取指令生成随机数据,并反馈随机数据至主机设备,以使主机设备利用第一密钥对随机数据进行加密,获得验证数据;安全认证模块3,用于获取主机设备下发的验证数据,并利用验证数据和随机数据进行安全认证,当安全认证通过时响应主机设备下发的读写指令以实现固态硬盘读写操作。
90.可见,本技术实施例所提供的固态硬盘读写装置,在对固态硬盘进行读写之前,首先获取其硬盘信息生成第一密钥,然后利用该第一密钥对固态硬盘的随机数据进行加密生成验证数据,由此,固态硬盘则可以利用随机数据和验证数据进行安全认证,当认证通过时,主机设备才可以对固态硬盘执行读写操作,当认证不通过时,不允许主机设备对自身执行读写操作,显然,基于该种实现方式,在安全认证过程中,只需要对固态硬盘中随机生成的少量数据进行加解密校验,无需对固态硬盘中的存储数据进行加解密传输,因此,该种实现方式可以在不影响固态硬盘性能的前提下,有效地保证固态硬盘数据的安全性。
91.在本技术的一个实施例中,固态硬盘配置有安全认证能力寄存器,第一信息获取指令由主机设备在遍历到安全认证能力寄存器时下发至固态硬盘。
92.在本技术的一个实施例中,安全认证能力寄存器中设置有预设数量个数据寄存器,上述随机数据生成模块2可具体用于根据主机设备下发的第二信息获取指令生成随机数据;对随机数据进行划分,获得预设数量个随机子数据;将各随机子数据写入至各数据寄存器,以使主机设备从各数据寄存器中读取获得各随机子数据,并基于各随机子数据生成随机数据。
93.在本技术的一个实施例中,上述安全认证模块3可具体用于从各数据寄存器中读取获得各验证子数据;各验证子数据由主机设备对验证数据进行划分并写入各数据寄存器中;基于各验证子数据生成验证数据。
94.在本技术的一个实施例中,该固态硬盘读写装置还可以包括复位模块,用于当安全认证不通过时,对安全认证能力寄存器进行复位。
95.在本技术的一个实施例中,该固态硬盘读写装置还可以包括验证失败次数统计模
块,用于在上述对安全认证能力寄存器进行复位之前,对验证失败次数进行统计;当验证失败次数达到预设次数时,执行对安全认证能力寄存器进行复位的步骤。
96.在本技术的一个实施例中,该固态硬盘读写装置还可以包括验证失败次数清零模块,用于当安全认证通过时,对验证失败次数清零。
97.在本技术的一个实施例中,上述安全认证模块3可具体用于根据硬盘信息生成第一密钥;利用第一密钥对验证数据进行解密,获得解密数据;判断解密数据与随机数据是否一致;若是,则确定认证通过;若否,则确定认证不通过。
98.在本技术的一个实施例中,上述安全认证模块3可具体用于根据硬盘信息生成第一密钥;利用第一密钥对随机数据进行加密,获得加密数据;判断加密数据与验证数据是否一致;若是,则确定认证通过;若否,则确定认证不通过。
99.在本技术的一个实施例中,上述安全认证模块3可具体用于根据主机设备下发的读写指令加载设备驱动;结合设备驱动执行固态硬盘读写操作。
100.在本技术的一个实施例中,该固态硬盘读写装置还可以包括反馈时间统计模块,用于对验证数据的反馈时间进行统计;当反馈时间超出预设时间时,对安全认证能力寄存器进行复位。
101.在本技术的一个实施例中,硬盘信息包括硬盘出厂信息和历史验证次数,该固态硬盘读写装置还可以包括下电存储模块,用于当接收到下电信号时,将历史验证次数写入至非易失性flash中。
102.对于本技术实施例提供的装置的介绍请参照上述方法实施例,本技术在此不做赘述。
103.本技术实施例提供了另一种固态硬盘读写装置。
104.请参考图5,图5为本技术所提供的另一种固态硬盘读写装置的结构示意图,该固态硬盘读写装置应用于主机设备,可以包括:第一指令下发模块4,用于下发第一信息获取指令至固态硬盘;第一密钥生成模块5,用于接收固态硬盘根据第一信息获取指令反馈的硬盘信息,并根据硬盘信息生成第一密钥;第二指令下发模块6,用于下发第二信息获取指令至固态硬盘,以使固态硬盘根据第二信息获取指令生成随机数据;随机数据加密模块7,用于接收固态硬盘反馈的随机数据,并利用第一密钥对随机数据进行加密,获得验证数据;验证数据下发模块8,用于下发验证数据至固态硬盘,以使固态硬盘利用随机数据和验证数据进行安全认证;第三指令下发模块9,用于当接收到固态硬盘反馈的认证通过信息时,下发读写指令至固态硬盘,以使固态硬盘响应读写指令以实现固态硬盘读写操作。
105.可见,本技术实施例所提供的固态硬盘读写装置,在对固态硬盘进行读写之前,首先获取其硬盘信息生成第一密钥,然后利用该第一密钥对固态硬盘的随机数据进行加密生成验证数据,由此,固态硬盘则可以利用随机数据和验证数据进行安全认证,当认证通过时,主机设备才可以对固态硬盘执行读写操作,当认证不通过时,不允许主机设备对自身执行读写操作,显然,基于该种实现方式,在安全认证过程中,只需要对固态硬盘中随机生成
的少量数据进行加解密校验,无需对固态硬盘中的存储数据进行加解密传输,因此,该种实现方式可以在不影响固态硬盘性能的前提下,有效地保证固态硬盘数据的安全性。
106.在本技术的一个实施例中,上述第一密钥生成模块5可具体用于结合预设加密算法,利用第二密钥对硬盘信息进行加密,获得第一密钥。
107.对于本技术实施例提供的装置的介绍请参照上述方法实施例,本技术在此不做赘述。
108.本技术实施例提供了一种电子设备。
109.请参考图6,图6为本技术所提供的一种电子设备的结构示意图,该电子设备可包括:存储器,用于存储计算机程序;处理器,用于执行计算机程序时可实现如上述任意一种固态硬盘读写方法的步骤。
110.如图6所示,为电子设备的组成结构示意图,电子设备可以包括:处理器10、存储器11、通信接口12和通信总线13。处理器10、存储器11、通信接口12均通过通信总线13完成相互间的通信。
111.在本技术实施例中,处理器10可以为中央处理器(central processing unit,cpu)、特定应用集成电路、数字信号处理器、现场可编程门阵列或者其他可编程逻辑器件等。
112.处理器10可以调用存储器11中存储的程序,具体的,处理器10可以执行固态硬盘读写方法的实施例中的操作。
113.存储器11中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本技术实施例中,存储器11中至少存储有用于实现以下功能的程序:根据主机设备下发的第一信息获取指令向主机设备反馈硬盘信息,以使主机设备根据硬盘信息生成第一密钥;根据主机设备下发的第二信息获取指令生成随机数据,并反馈随机数据至主机设备,以使主机设备利用第一密钥对随机数据进行加密,获得验证数据;获取主机设备下发的验证数据,并利用验证数据和随机数据进行安全认证,当安全认证通过时响应主机设备下发的读写指令以实现固态硬盘读写操作。
114.在一种可能的实现方式中,存储器11可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及至少一个功能所需的应用程序等;存储数据区可存储使用过程中所创建的数据。
115.此外,存储器11可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
116.通信接口12可以为通信模块的接口,用于与其他设备或者系统连接。
117.当然,需要说明的是,图6所示的结构并不构成对本技术实施例中电子设备的限定,在实际应用中电子设备可以包括比图6所示的更多或更少的部件,或者组合某些部件。
118.本技术实施例提供了一种计算机可读存储介质。
119.本技术实施例所提供的计算机可读存储介质上存储有计算机程序,计算机程序被
处理器执行时可实现如上述任意一种固态硬盘读写方法的步骤。
120.该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
121.对于本技术实施例提供的计算机可读存储介质的介绍请参照上述方法实施例,本技术在此不做赘述。
122.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
123.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
124.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom或技术领域内所公知的任意其它形式的存储介质中。
125.以上对本技术所提供的技术方案进行了详细介绍。本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术的保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献