数据处理方法、装置、计算机设备及介质转让专利

申请号 : CN202311510306.7

文献号 : CN117235772B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王江孙华锦李树青李幸远

申请人 : 苏州元脑智能科技有限公司

摘要 :

本发明涉及计算机技术领域,公开了一种数据处理方法、装置、计算机设备及介质,包括:获取第一个人识别密码和目标单位存储空间标识信息;通过第一加解密引擎对该个人识别密码进行秘钥派生,获取与其对应的第一身份验证秘钥;对第一个人识别密码进行验证;在对第一个人识别密码验证成功后,从任一硬盘的预设存储位置获取与目标单位存储空间标识信息对应的第一加密的数据加密秘钥;利用第一身份验证秘钥,通过第二加解密引擎对第一加密的数据加密秘钥进行解密,获取第一数据加密秘钥;获取数据操作指令;根据数据操作指令,利用第一数据加密秘钥,对目标数据执行与数据操作指令对应的操作。无需依赖主机实现秘钥的管理和访问鉴权,管理简便。

权利要求 :

1.一种数据处理方法,其特征在于,所述方法由存储控制卡执行,所述方法包括:获取第一个人识别密码和目标单位存储空间标识信息;

通过第一加解密引擎对所述第一个人识别密码进行秘钥派生,获取与所述第一个人识别密码对应的第一身份验证秘钥;

对所述第一个人识别密码进行验证;

在对所述第一个人识别密码验证成功后,从任一硬盘的预设存储位置获取与所述目标单位存储空间标识信息对应的第一加密的数据加密秘钥,其中,所述硬盘为与所述存储控制卡对应的多个硬盘中的任一个硬盘;

利用所述第一身份验证秘钥,通过第二加解密引擎对所述第一加密的数据加密秘钥进行解密,获取第一数据加密秘钥;

获取数据操作指令;

根据所述数据操作指令,利用所述第一数据加密秘钥,对目标数据执行与所述数据操作指令对应的操作。

2.根据权利要求1所述的方法,其特征在于,所述对所述第一个人识别密码进行验证,包括:从任一所述硬盘的预设存储位置获取与所述目标单位存储空间标识信息对应的第一加密盐;

利用所述第一身份验证秘钥,通过第二加解密引擎对所述第一加密盐进行解密,获取第一盐;

利用所述第一加解密引擎,对所述第一个人识别密码和所述第一盐进行加密处理,获取第一加密的个人识别密码;

将所述第一加密的个人识别密码与从任一所述硬盘的预设存储位置获取的第二加密的个人识别密码进行匹配;

当匹配成功时,确定对所述第一个人识别密码验证成功。

3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:在对所述第一个人识别密码验证成功后,获取第二个人识别密码,所述第二个人识别密码为所述第一个人识别密码更改后的个人识别密码;

利用所述第一加解密引擎对所述第二个人识别密码进行秘钥派生,获取与所述第二个人识别密码对应的第二身份验证秘钥;

随机生成一个第二盐;

利用所述第一加解密引擎,对所述第二盐和所述第二个人识别密码进行加密处理,获取第三加密的个人识别密码;

利用所述第二身份验证秘钥,通过所述第二加解密引擎对所述第二盐进行加密,获取第二加密盐,以及,利用所述第二身份验证秘钥,通过所述第二加解密引擎对所述第一数据加密秘钥进行加密,获取第二加密的数据加密秘钥;

将所述第三加密的个人识别密码、所述第二加密盐,以及所述第二加密的数据加密秘钥存储至每一个所述硬盘中,并覆盖掉每一个所述硬盘中之前已存储的加密的个人识别密码、第一加密盐,以及第一加密的数据加密秘钥。

4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:在对所述第一个人识别密码验证成功后,随机生成第二数据加密秘钥;

利用所述第一身份验证秘钥,通过所述第二加解密引擎对所述第二数据加密秘钥进行加密,获取第三加密的数据加密秘钥;

将所述第三加密的数据加密秘钥更新到每一个所述硬盘中,并覆盖掉每一个所述硬盘中之前已存储的加密的数据加密秘钥。

5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:获取第三个人识别密码;

通过所述第一加解密引擎对所述第三个人识别密码进行秘钥派生,获取与所述第三个人识别密码对应的第四身份验证秘钥;

随机生成第三盐;

通过所述第一加解密引擎对所述第三个人识别密码和所述第三盐进行加密处理,获取第三加密的个人识别密码;

随机生成第三数据加密秘钥;

利用所述第四身份验证秘钥,通过所述第二加解密引擎对所述第三数据加密秘钥进行加密,获取第四加密的数据加密秘钥;

以及,利用所述第四身份验证秘钥,通过所述第二加解密引擎对所述第三盐进行加密,获取第三加密盐;

将所述第三加密的个人识别密码、所述第三加密盐,和所述第四加密的数据加密秘钥以预划分的单位存储空间为单位进行管理,并下刷到每一个所述硬盘的预设存储位置。

6.根据权利要求5所述的方法,其特征在于,所述单位存储空间为命名空间、卷或者逻辑区块定址地址段中的一种。

7.根据权利要求1或2所述的方法,其特征在于,所述第一加解密引擎为支持哈希散列算法的加解密引擎,所述第二加解密引擎为支持对称加密算法的加解密引擎。

8.根据权利要求7所述的方法,其特征在于,所述第一加解密引擎包括安全散列算法、密码杂凑算法,以及信息‑摘要算法中的一种或多种组合;

所述第二加解密引擎包括DES算法、3DES算法、国际数据加密算法、高级加密标准算法、SM1算法,以及SM4算法中的一种或多种组合。

9.根据权利要求1或2所述的方法,其特征在于,所述预设存储位置为所述硬盘的开放配置存储区。

10.根据权利要求1或2所述的方法,其特征在于,所述数据操作指令用以指示对目标数据进行加密操作或解密操作。

11.根据权利要求1或2所述的方法,其特征在于,所述利用所述第一身份验证秘钥,通过第二加解密引擎对所述第一加密的数据加密秘钥进行解密,获取所述第一数据加密秘钥之后,所述方法还包括:将所述第一数据加密秘钥存储在易失性存储介质中。

12.根据权利要求1或2所述的方法,其特征在于,在对所述第一个人识别密码验证失败时,所述方法包括:生成用以指示验证失败的响应信息,并反馈至主机侧。

13.一种数据处理装置,其特征在于,所述装置包括:获取模块,用于获取第一个人识别密码和目标单位存储空间标识信息;

处理模块,用于通过第一加解密引擎对所述第一个人识别密码进行秘钥派生,获取与所述第一个人识别密码对应的第一身份验证秘钥;对所述第一个人识别密码进行验证;在所述处理模块对所述第一个人识别密码验证成功后,从任一硬盘的预设存储位置获取与所述目标单位存储空间标识信息对应的第一加密的数据加密秘钥,其中,所述硬盘为与存储控制卡对应的多个硬盘中的任一个硬盘;利用所述第一身份验证秘钥,通过第二加解密引擎对所述第一加密的数据加密秘钥进行解密,获取第一数据加密秘钥;

所述获取模块,还用于获取数据操作指令;

所述处理模块,还用于根据所述数据操作指令,利用所述第一数据加密秘钥,对目标数据执行与所述数据操作指令对应的操作。

14.一种计算机设备,其特征在于,包括:

存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至12中任一项所述的数据处理方法。

15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至12中任一项所述的数据处理方法。

说明书 :

数据处理方法、装置、计算机设备及介质

技术领域

[0001] 本发明涉及计算机技术领域,具体涉及数据处理方法、装置、计算机设备及介质。

背景技术

[0002] 系统如果有对数据进行加密保护的需求,可以通过位于主机和硬盘之间的存储控制卡,例如独立冗余磁盘阵列(Redundant Arrays of Independent Disks,简称RAID)或主机总线适配器(Host Bus Adaptor,简称HBA)来辅助实现数据加密功能,而这个过程中有一个重要问题就是秘钥的安全管理。
[0003] 相关技术中针对秘钥的安全管理的方案中,其中一种选用特殊的支持自加密的硬盘,而且需要分别对每块盘输入PIN码,这造成PIN码管理上的困难。另一套方案则对于主机的依赖性过强,而且主机需要设置复杂的管理架构和软件支持。

发明内容

[0004] 有鉴于此,本发明提供了一种数据处理方法、装置、计算机设备及介质,在不依赖主机的基础上,为PIN码管理提供简便的管理方式,降低加密功能的使用复杂度。
[0005] 第一方面,本发明提供了一种数据处理方法,该方法由存储控制卡执行,该方法包括:
[0006] 获取第一个人识别密码和目标单位存储空间标识信息;
[0007] 通过第一加解密引擎对第一个人识别密码进行秘钥派生,获取与第一个人识别密码对应的第一身份验证秘钥;
[0008] 对第一个人识别密码进行验证;
[0009] 在对第一个人识别密码验证成功后,从任一硬盘的预设存储位置获取与目标单位存储空间标识信息对应的第一加密的数据加密秘钥,其中,硬盘为与存储控制卡对应的多个硬盘中的任一个硬盘;
[0010] 利用第一身份验证秘钥,通过第二加解密引擎对第一加密的数据加密秘钥进行解密,获取第一数据加密秘钥;
[0011] 获取数据操作指令;
[0012] 根据数据操作指令,利用第一数据加密秘钥,对目标数据执行与数据操作指令对应的操作。
[0013] 本发明提供的一种数据处理方法,具有如下优点:
[0014] 获取第一个人识别密码(Personal Identification Number,简称PIN),以及目标单位存储空间标识信息。然后通过第一加解密引擎对第一PIN码进行秘钥派生,获取与第一PIN码对应的第一身份验证秘钥(Authentication Key,简称AK)。然后对第一PIN码进行验证,如果验证成功,则从任一硬盘的预设存储位置获取与目标单位存储空间标识信息对应的第一加密的数据加密秘钥(Encrypted Data Encryption Key,简称eDEK)。然后利用第一AK,通过第二加解密引擎对第一eDEK进行解密,获取第一数据加密秘钥(Data Encryption Key,简称DEK)。然后,获取数据操作指令,根据数据操作指令,利用第一DEK对目标数据执行与数据操作指令对应的操作,在该过程中,因为第一PIN码和第一eDEK等均存储于硬盘中,而且是与存储控制卡对应的多个硬盘中每一个硬盘均存储有相同的备份。相当于第一PIN码和第一eDEK等都是单位存储空间为单位进行管理,并存储在硬盘中的某个预设存储位置。相较于相关技术中将PIN码存储在自加密盘,并利用PIN码对数据加解密的方式而言,本申请的方案无需使用自加密硬盘存PIN码,成本更低。而且,并非是每一块硬盘对应一个PIN码,所以PIN码管理上将会更加简便。再者,无需依赖主机实现秘钥的管理和访问鉴权。而且PIN码和eDEK存放于硬盘上的好处还在于,如果存储控制卡发生损坏,依然可以依据硬盘中的PIN码和eDEK来获取相应数据,不会导致秘钥随着卡损坏而丢失,进而使得数据丢失的情况发生。
[0015] 在一种可选的实施方式中,对第一个人识别密码进行验证,包括:
[0016] 从任一硬盘的预设存储位置获取与目标单位存储空间标识信息对应的第一加密盐;
[0017] 利用第一身份验证秘钥,通过第二加解密引擎对第一加密盐进行解密,获取第一盐;
[0018] 利用第一加解密引擎,对第一个人识别密码和第一盐进行加密处理,获取第一加密的个人识别密码;
[0019] 将第一加密的个人识别密码与从任一硬盘的预设存储位置获取的第二加密的个人识别密码进行匹配;
[0020] 当匹配成功时,确定对第一个人识别密码验证成功。
[0021] 具体的,从任一硬盘的预设存储位置获取与目标单位存储空间标识信息对应的第一加密盐,然后利用第一AK,通过第二加解密引擎对第一加密盐进行解密,获取第一盐。然后,利用第一加解密引擎,对第一PIN码和第一盐进行加密处理,获取第一加密的个人识别密码(Encrypted PIN,简称ePIN)。然后将第一ePIN码与从任一硬盘的预设存储位置获取的第二ePIN码进行匹配,验证第一ePIN码是否合法,如果匹配成功,则说明对第一ePIN码的验证成功,否则失败。
[0022] 在这个过程中,对第一PIN码的验证是“正向验证”,也即是先获取第一加密盐,然后利用第一AK对第一加密盐进行解密后,获取第一盐。然后利用第一盐和第一PIN码进行加密处理,获取第一ePIN。再将第一ePIN与预设存储位置存储的第二ePIN进行匹配。这个过程中,正是因为有随机数(第一盐)的存在,所以即使其他人在知道第二ePIN的前提下,也无法反推出第一PIN,因此,只能正向进行验证第一PIN的合法性,无法通过“反推”的方式获取第一PIN。验证方式将会更加有效,也增加安全。
[0023] 在一种可选的实施方式中,该方法还包括:
[0024] 在对第一个人识别密码验证成功后,获取第二个人识别密码,第二个人识别密码为第一个人识别密码更改后的个人识别密码;
[0025] 利用第一加解密引擎对第二个人识别密码进行秘钥派生,获取与第二个人识别密码对应的第二身份验证秘钥;
[0026] 随机生成一个第二盐;
[0027] 利用第一加解密引擎,对第二盐和第二个人识别密码进行加密处理,获取第三加密的个人识别密码;
[0028] 利用第二身份验证秘钥,通过第二加解密引擎对第二盐进行加密,获取第二加密盐,
[0029] 以及,利用第二身份验证秘钥,通过第二加解密引擎对第一数据加密秘钥进行加密,获取第二加密的数据加密秘钥;
[0030] 将第三加密的个人识别密码、第二加密盐,以及第二加密的数据加密秘钥存储至每一个硬盘中,并覆盖掉每一个硬盘中之前已存储的加密的个人识别密码、第一加密盐,以及第一加密的数据加密秘钥。
[0031] 具体的,在某些情况下,需要对PIN码进行更改,而为了保证原DEK不发生改变的情况下,实现对PIN码的更新,则需要首先验证原始PIN码的合法性,如果验证成功的情况下,则可以获取新的PIN码,也即是第二PIN码。然后利用第一加解密引擎对第二PIN码进行秘钥派生,获取第二AK。并随机生成一个新的盐,也即是第二盐。然后利用第一加解密引擎,对第二盐和第二PIN码进行加密处理,获取第三ePIN码。利用第二AK,通过第二加解密引擎对第二盐进行加密,获取第二加密盐,以及利用第二AK,通过对第二加解密引擎对第一DEK进行加密,获取第二eDEK,最终将第三ePIN、第二AK,以及第二eDEK下刷到每一个硬盘中,并覆盖到之前已经存储的旧的eDEK、旧的ePIN,以及旧的加密盐等,如此一来,后续依然可以通过第三ePIN、第二eDEK,以及第二AK反推出第一DEK,进而对数据进行解密。
[0032] 在一种可选的实施方式中,该方法还包括:
[0033] 在对第一个人识别密码验证成功后,随机生成第二数据加密秘钥;
[0034] 利用第一身份验证秘钥,通过第二加解密引擎对第二数据加密秘钥进行加密,获取第三加密的数据加密秘钥;
[0035] 将第三加密的数据加密秘钥更新到每一个硬盘中,并覆盖掉每一个硬盘中之前已存储的加密的数据加密秘钥。
[0036] 具体的,为了对数据进行快速擦除,可以在验证第一PIN码成功后,随机生成第二DEK,然后利用第一AK,通过第二加解密引擎对第二DEK进行加密,获取第三eDEK。并将第三eDEK更新到每一个硬盘中,并覆盖掉每一个硬盘中之前已经存储的eDEK。通过该方式,在通过第三eDEK和其他数据在进行“反推”获取DEK时,将只能获取到第二DEK,而不能获取到原始的DEK,例如第一DEK,因此,采用原始的DEK加密的数据,将无法进行解密。也就相当于实现了数据的快速擦除操作。这种数据擦除方式甚至可以达到秒级的擦除效果。
[0037] 在一种可选的实施方式中,该方法还包括:
[0038] 获取第三个人识别密码;
[0039] 通过第一加解密引擎对第三个人识别密码进行秘钥派生,获取与第三个人识别密码对应的第四身份验证秘钥;
[0040] 随机生成第三盐;
[0041] 通过第一加解密引擎对第三个人识别密码和第三盐进行加密处理,获取第三加密的个人识别密码;
[0042] 随机生成第三数据加密秘钥;
[0043] 利用第四身份验证秘钥,通过第二加解密引擎对第三数据加密秘钥进行加密,获取第四加密的数据加密秘钥;
[0044] 以及,利用第四身份验证秘钥,通过第二加解密引擎对第三盐进行加密,获取第三加密盐;
[0045] 将第三加密的个人识别密码、第三加密盐,和第四加密的数据加密秘钥以预划分的单位存储空间为单位进行管理,并下刷到每一个硬盘的预设存储位置。
[0046] 具体的,可以事先在硬盘中备份存储ePIN、eDEK,以及加密盐等,以便于后续的实际应用。例如后续对数据加解密、更改PIN码,以及擦除数据等操作。因此,可以实现获取第三PIN码,然后,通过第一加解密引擎,对第三PIN码进行秘钥派生,获取第四AK。然后,随机生成第三盐,通过第一加解密引擎对第三PIN和第三盐进行加密处理,获取第三ePIN。然后随机生成第三DEK,利用第四AK,通过第二加解密引擎对第三DEK进行加密,获取第四eDEK,以及利用第四AK,通过第二加解密引擎对第三盐进行加密,获取第三加密盐,然后将第三ePIN、第三加密盐,以及第四eDEK等按照单位存储空间为单位进行管理,也即是绑定相应的单位存储空间的标识信息,然后下刷到每一个硬盘的预设存储位置。
[0047] 在一种可选的实施方式中,单位存储空间为命名空间、卷或者逻辑区块定址地址段中的一种。
[0048] 采用更精细的粒度对秘钥进行管理,避免出现将整个盘锁住的情况发生。
[0049] 在一种可选的实施方式中,第一加解密引擎为支持哈希散列算法的加解密引擎,第二加解密引擎为支持对称加密算法的加解密引擎。
[0050] 具体的,因为有些秘钥,例如AK、盐等在被加密后需要进行“反推”获取,所以需要采用支持对称加密算法的加解密引擎进行加密。而,对于不希望直接通过“反推”就能获取的秘钥,则可以采用支持哈希散列算法的加解密引擎执行加密处理,例如PIN码的加密,AK的派生等操作。
[0051] 在一种可选的实施方式中,第一加解密引擎包括安全散列算法、密码杂凑算法,以及信息‑摘要算法中的一种或多种组合;
[0052] 第二加解密引擎包括DES算法、3DES算法、国际数据加密算法、高级加密标准算法、SM1算法,以及SM4算法中的一种或多种组合。
[0053] 在一种可选的实施方式中,预设存储位置为硬盘的开放配置存储区。
[0054] 在一种可选的实施方式中,数据操作指令用以指示对目标数据进行加密操作或解密操作。
[0055] 在一种可选的实施方式中,利用第一身份验证秘钥,通过第二加解密引擎对第一加密的数据加密秘钥进行解密,获取第一数据加密秘钥之后,该方法还包括:
[0056] 将第一数据加密秘钥存储在易失性存储介质中。
[0057] 具体的,将第一DEK存储在易失性存储介质中,就可以达到掉电或异常情况下秘钥直接“擦除”的效果,避免其他不法分子可以轻易获取秘钥的情况发生,保证秘钥安全。
[0058] 在一种可选的实施方式中,在对第一个人识别密码验证失败时,方法包括:
[0059] 生成用以指示验证失败的响应信息,并反馈至主机侧。
[0060] 第二方面,本发明提供了一种数据处理装置,该装置包括:
[0061] 获取模块,用于获取第一个人识别密码和目标单位存储空间标识信息;
[0062] 处理模块,用于通过第一加解密引擎对第一个人识别密码进行秘钥派生,获取与第一个人识别密码对应的第一身份验证秘钥;对第一个人识别密码进行验证;在处理模块对第一个人识别密码验证成功后,从任一硬盘的预设存储位置获取与目标单位存储空间标识信息对应的第一加密的数据加密秘钥,其中,硬盘为与存储控制卡对应的多个硬盘中的任一个硬盘;利用第一身份验证秘钥,通过第二加解密引擎对第一加密的数据加密秘钥进行解密,获取第一数据加密秘钥;
[0063] 获取模块,还用于获取数据操作指令;
[0064] 处理模块,还用于根据数据操作指令,利用第一数据加密秘钥,对目标数据执行与数据操作指令对应的操作。
[0065] 本发明提供的一种数据处理装置,具有如下优点:
[0066] 获取第一PIN码,以及目标单位存储空间标识信息。然后通过第一加解密引擎对第一PIN码进行秘钥派生,获取与第一PIN码对应的第一AK。然后对第一PIN码进行验证,如果验证成功,则从任一硬盘的预设存储位置获取与目标单位存储空间标识信息对应的第一eDEK。然后利用第一AK,通过第二加解密引擎对第一eDEK进行解密,获取第一DEK。然后,获取数据操作指令,根据数据操作指令,利用第一DEK对目标数据执行与数据操作指令对应的操作,在该过程中,因为第一PIN码和第一eDEK等均存储于硬盘中,而且是与存储控制卡对应的多个硬盘中每一个硬盘均存储有相同的备份。相当于第一PIN码和第一eDEK等都是单位存储空间为单位进行管理,并存储在硬盘中的某个预设存储位置。相较于相关技术中将PIN码存储在自加密盘,并利用PIN码对数据加解密的方式而言,本申请的方案无需使用自加密硬盘存PIN码,成本更低。而且,并非是每一块硬盘对应一个PIN码,所以PIN码管理上将会更加简便。再者,无需依赖主机实现秘钥的管理和访问鉴权。而且PIN码和eDEK存放于硬盘上的好处还在于,如果存储控制卡发生损坏,依然可以依据硬盘中的PIN码和eDEK来获取相应数据,不会导致秘钥随着卡损坏而丢失,进而使得数据丢失的情况发生。
[0067] 在一种可选的实施方式中,处理模块,具体用于:
[0068] 从任一硬盘的预设存储位置获取与目标单位存储空间标识信息对应的第一加密盐;
[0069] 利用第一身份验证秘钥,通过第二加解密引擎对第一加密盐进行解密,获取第一盐;
[0070] 利用第一加解密引擎,对第一个人识别密码和第一盐进行加密处理,获取第一加密的个人识别密码;
[0071] 将第一加密的个人识别密码与从任一硬盘的预设存储位置获取的第二加密的个人识别密码进行匹配;
[0072] 当匹配成功时,确定对第一个人识别密码验证成功。
[0073] 具体的,从任一硬盘的预设存储位置获取与目标单位存储空间标识信息对应的第一加密盐,然后利用第一AK,通过第二加解密引擎对第一加密盐进行解密,获取第一盐。然后,利用第一加解密引擎,对第一PIN码和第一盐进行加密处理,获取第一加密的ePIN。然后将第一ePIN码与从任一硬盘的预设存储位置获取的第二ePIN码进行匹配,验证第一ePIN码是否合法,如果匹配成功,则说明对第一ePIN码的验证成功,否则失败。
[0074] 在这个过程中,对第一PIN码的验证是“正向验证”,也即是先获取第一加密盐,然后利用第一AK对第一加密盐进行解密后,获取第一盐。然后利用第一盐和第一PIN码进行加密处理,获取第一ePIN。再将第一ePIN与预设存储位置存储的第二ePIN进行匹配。这个过程中,正是因为有随机数(第一盐)的存在,所以即使其他人在知道第二ePIN的前提下,也无法反推出第一PIN,因此,只能正向进行验证第一PIN的合法性,无法通过“反推”的方式获取第一PIN。验证方式将会更加有效,也增加安全。
[0075] 在一种可选的实施方式中,任一硬盘中均存储与目标单位存储空间标识信息对应的第二加密的个人识别密码、第一加密盐,以及第一加密的数据加密秘钥。
[0076] 具体的,在每一个硬盘中均备份有第二ePIN、第一加密盐,以及第一eDEK,即使在存储控制卡故障,更换同类型的卡的情况下,也不会导致已加密的数据无法读取而造成数据丢失的情况发生。而且,多个硬盘分别进行备份,属于提供了多重安全保障。
[0077] 在一种可选的实施方式中,第一加解密引擎为支持哈希散列算法的加解密引擎,第二加解密引擎为支持对称加密算法的加解密引擎。
[0078] 具体的,因为有些秘钥,例如AK、盐等在被加密后需要进行“反推”获取,所以需要采用支持对称加密算法的加解密引擎进行加密。而,对于不希望直接通过“反推”就能获取的秘钥,则可以采用支持哈希散列算法的加解密引擎执行加密处理,例如PIN码的加密,AK的派生等操作。
[0079] 在一种可选的实施方式中,预设存储位置为硬盘的开放配置存储区。
[0080] 在一种可选的实施方式中,处理模块,还用于:
[0081] 在对第一个人识别密码验证成功后,获取第二个人识别密码,第二个人识别密码为第一个人识别密码更改后的个人识别密码;
[0082] 利用第一加解密引擎对第二个人识别密码进行秘钥派生,获取与第二个人识别密码对应的第二身份验证秘钥;
[0083] 随机生成一个第二盐;
[0084] 利用第一加解密引擎,对第二盐和第二个人识别密码进行加密处理,获取第三加密的个人识别密码;
[0085] 利用第二身份验证秘钥,通过第二加解密引擎对第二盐进行加密,获取第二加密盐,
[0086] 以及,利用第二身份验证秘钥,通过第二加解密引擎对第一数据加密秘钥进行加密,获取第二加密的数据加密秘钥;
[0087] 将第三加密的个人识别密码、第二加密盐,以及第二加密的数据加密秘钥存储至每一个硬盘中,并覆盖掉每一个硬盘中之前已存储的加密的个人识别密码、第一加密盐,以及第一加密的数据加密秘钥。
[0088] 具体的,在某些情况下,需要对PIN码进行更改,而为了保证原DEK不发生改变的情况下,实现对PIN码的更新,则需要首先验证原始PIN码的合法性,如果验证成功的情况下,则可以获取新的PIN码,也即是第二PIN码。然后利用第一加解密引擎对第二PIN码进行秘钥派生,获取第二AK。并随机生成一个新的盐,也即是第二盐。然后利用第一加解密引擎,对第二盐和第二PIN码进行加密处理,获取第三ePIN码。利用第二AK,通过第二加解密引擎对第二盐进行加密,获取第二加密盐,以及利用第二AK,通过对第二加解密引擎对第一DEK进行加密,获取第二eDEK,最终将第三ePIN、第二AK,以及第二eDEK下刷到每一个硬盘中,并覆盖到之前已经存储的旧的eDEK、旧的ePIN,以及旧的加密盐等,如此一来,后续依然可以通过第三ePIN、第二eDEK,以及第二AK反推出第一DEK,进而对数据进行解密。
[0089] 在一种可选的实施方式中,处理模块,还用于:
[0090] 在对第一个人识别密码验证成功后,随机生成第二数据加密秘钥;
[0091] 利用第一身份验证秘钥,通过第二加解密引擎对第二数据加密秘钥进行加密,获取第三加密的数据加密秘钥;
[0092] 将第三加密的数据加密秘钥更新到每一个硬盘中,并覆盖掉每一个硬盘中之前已存储的加密的数据加密秘钥。
[0093] 具体的,为了对数据进行快速擦除,可以在验证第一PIN码成功后,随机生成第二DEK,然后利用第一AK,通过第二加解密引擎对第二DEK进行加密,获取第三eDEK。并将第三eDEK更新到每一个硬盘中,并覆盖掉每一个硬盘中之前已经存储的eDEK。通过该方式,在通过第三eDEK和其他数据在进行“反推”获取DEK时,将只能获取到第二DEK,而不能获取到原始的DEK,例如第一DEK,因此,采用原始的DEK加密的数据,将无法进行解密。也就相当于实现了数据的快速擦除操作。这种数据擦除方式甚至可以达到秒级的擦除效果。
[0094] 在一种可选的实施方式中,数据操作指令用以指示对目标数据进行加密操作或解密操作。
[0095] 在一种可选的实施方式中,处理模块,还用于将第一数据加密秘钥存储在易失性存储介质中。
[0096] 具体的,将第一DEK存储在易失性存储介质中,就可以达到掉电或异常情况下秘钥直接“擦除”的效果,避免其他不法分子可以轻易获取秘钥的情况发生,保证秘钥安全。
[0097] 在一种可选的实施方式中,该装置还包括:发送模块;
[0098] 处理模块,还用于生成用以指示验证失败的响应信息;
[0099] 发送模块,还用于将响应信息反馈至主机侧。
[0100] 在一种可选的实施方式中,获取模块,还用于获取第三个人识别密码;
[0101] 处理模块,还用于通过第一加解密引擎对第三个人识别密码进行秘钥派生,获取与第三个人识别密码对应的第四身份验证秘钥;
[0102] 随机生成第三盐;
[0103] 通过第一加解密引擎对第三个人识别密码和第三盐进行加密处理,获取第三加密的个人识别密码;
[0104] 随机生成第三数据加密秘钥;
[0105] 利用第四身份验证秘钥,通过第二加解密引擎对第三数据加密秘钥进行加密,获取第四加密的数据加密秘钥;
[0106] 以及,利用第四身份验证秘钥,通过第二加解密引擎对第三盐进行加密,获取第三加密盐;
[0107] 将第三加密的个人识别密码、第三加密盐,和第四加密的数据加密秘钥以预划分的单位存储空间为单位进行管理,并下刷到每一个硬盘的预设存储位置。
[0108] 具体的,可以事先在硬盘中备份存储ePIN、eDEK,以及加密盐等,以便于后续的实际应用。例如后续对数据加解密、更改PIN码,以及擦除数据等操作。因此,可以实现获取第三PIN码,然后,通过第一加解密引擎,对第三PIN码进行秘钥派生,获取第四AK。然后,随机生成第三盐,通过第一加解密引擎对第三PIN和第三盐进行加密处理,获取第三ePIN。然后随机生成第三DEK,利用第四AK,通过第二加解密引擎对第三DEK进行加密,获取第四eDEK,以及利用第四AK,通过第二加解密引擎对第三盐进行加密,获取第三加密盐,然后将第三ePIN、第三加密盐,以及第四eDEK等按照单位存储空间为单位进行管理,也即是绑定相应的单位存储空间的标识信息,然后下刷到每一个硬盘的预设存储位置。
[0109] 在一种可选的实施方式中,单位存储空间为命名空间、卷或者逻辑区块定址地址段中的一种。
[0110] 采用更精细的粒度对秘钥进行管理,避免出现将整个盘锁住的情况发生。
[0111] 第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的数据处理方法。
[0112] 第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的数据处理方法。

附图说明

[0113] 为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0114] 图1是相关技术中提供的以自加密盘为例的秘钥管理方案结构示意图;
[0115] 图2是相关技术中通过存储控制卡来实现数据的加密的秘钥管理方案结构示意图;
[0116] 图3是本发明实施例提供的一种数据处理方法的流程示意图;
[0117] 图4是本发明实施例提供的另一种数据处理方法流程示意图;
[0118] 图5是本发明提供的针对数据进行处理(加/解密)的执行过程的方法结构示意图;
[0119] 图6是本发明实施例提供的再一种数据处理方法流程示意图;
[0120] 图7是保证原DEK不发生改变的情况下,实现对PIN码的更新的整体结构示意图;
[0121] 图8是本发明实施例提供的再一种数据处理方法流程示意图;
[0122] 图9是针对数据进行快速擦除的应用场景提供的数据处理方法实例的整体结构示意图;
[0123] 图10是本发明实施例提供的再一种数据处理方法流程示意图;
[0124] 图11是事先在硬盘中备份存储ePIN、eDEK,以及加密盐等预配置过程方法实例的整体结构示意图;
[0125] 图12是本发明提供的基于存储控制卡数据加密秘钥管理的整体结构示意图;
[0126] 图13是本发明提供的涉及本申请实施例的多个应用场景的整体结构示意图;
[0127] 图14是根据本发明实施例的一种数据处理装置结构框图;
[0128] 图15是本发明实施例的计算机设备的硬件结构示意图。

具体实施方式

[0129] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0130] RAID通过将多个独立的存储介质例如固态硬盘(Solid State Drive,简称SSD)或者硬盘驱动器(Hard Disk Drive,简称HDD)有机的结合成一个整体,对上位机呈现为一个带数据冗余保护的存储设备,并响应上位机的管理和读/写IO请求。
[0131] RAID组一般有n个数据盘和m个校验盘组成。依据不同的组织方式和算法,RAID可以分类成不同的RAID级别,常见的有RAID0(n=k,m=0),RAID1(n=1,m=1),RAID10(n=k,m=k),RAID5(n=k,m=1),RAID6(n=k,m=2)等。
[0132] 系统如果有对数据进行加密保护的需求,可以通过位于主机和硬盘之间的存储控制卡,例如RAID/HBA等来辅助实现数据加密功能,而这个过程中有一个重要问题就是秘钥的安全管理。
[0133] 相关技术中,存在以自加密盘(也称之为自加密驱动器,Self‑Encrypting Drive,简称SED)为例的秘钥管理方案。具体参见图1所示,自加密盘内建用于数据加解密的硬件或软件模块(加解密引擎),用于数据加密的秘钥(该秘钥已加密)存储在自加密盘上的非易失存储空间。每次上电后主机侧都需要提供一个预设的PIN码,并通过PIN码对数据加解秘钥进行解密。
[0134] 该方案的弊端在于,需要选用特殊的支持自加密的硬盘,另外,多块盘组RAID时,需要分别对每块盘输入PIN码(PIN码可以相同或不同);一般的,PIN码以盘为单位配置,无法以存储卷为颗粒度设置不同的PIN码,这造成PIN码管理上的困难。而且,如果PIN码是弱PIN码,也很容易被破解,进而无法保证硬盘上的数据安全性。
[0135] 另外,相关技术中,还包括另一种方案,例如通过存储控制卡来实现数据的加密功能。具体参见图2所示,存储控制卡内建用于数据加解密的硬件或软件模块(加解密引擎),而用于数据加密的秘钥则由主机提供。每次上电后都需要主机通过管理接口将秘钥注入存储控制卡的易失性存储空间,主机全权负责秘钥的管理和访问鉴权。该方案的弊端在于,数据加密功能的完成对于主机的依赖性过强,而且主机需要设置复杂的管理架构和软件支持。
[0136] 为解决上述问题,本发明实施例,提供了一种数据处理实施例,需要说明的是,在附图的流程图示出的步骤可以在包括诸如一组计算机可执行指令的计算机系统(计算机设备)中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0137] 在本实施例中提供了一种数据处理方法,可用于上述的终端机设备,如手机、平板电脑等,图3是本发明实施例提供的一种数据处理方法的流程示意图,如图3所示,该流程包括如下步骤:
[0138] 步骤S301,获取第一个人识别密码和目标单位存储空间标识信息。
[0139] 具体的,第一PIN码和目标单位存储空间标识信息可以由用户输入,或通过其他方式获取,例如从某个终端设备获取等。在一个具体的例子中,第一PIN码由用户输入,并且在输入时,按下与目标单位存储空间标识信息对应的按键,该按键可以是实体控件,也可以是虚拟控件。由此,存储控制卡可以获取到相应的第一PIN码和目标单位存储空间标识信息。在一个具体的例子中,标识信息可以是目标单位存储空间对应的ID信息。
[0140] 步骤S302,通过第一加解密引擎对第一个人识别密码进行秘钥派生,获取与第一个人识别密码对应的第一身份验证秘钥。
[0141] 具体的,存储控制卡内部可以通过第一加解密引擎对第一PIN码进行秘钥派生,获取第一AK。
[0142] 步骤S303,对第一个人识别密码进行验证。
[0143] 每次开机或上电后,主机需要输入PIN码进行校验后才可以正常访问硬盘上的数据。因此,需要对第一PIN码进行验证,并且在验证成功后,执行后续操作。具体的验证,可以是直接将输入的PIN码和已存储的PIN码进行匹配验证,也可以是通过某种方式获取到PIN码后,再和输入的PIN码进行匹配来执行验证操作。
[0144] 步骤S304,在对第一个人识别密码验证成功后,从任一硬盘的预设存储位置获取与目标单位存储空间标识信息对应的第一加密的数据加密秘钥。
[0145] 具体的,与存储控制卡对应的硬盘组中可以包括多个硬盘,每一个硬盘中都备份有第一eDEK,因此,可以从任一硬盘的预设存储位置获取与目标单位存储空间标识信息对应的第一eDEK。
[0146] 步骤S305,利用第一身份验证秘钥,通过第二加解密引擎对第一加密的数据加密秘钥进行解密,获取第一数据加密秘钥。
[0147] 具体的因为eDEK是经过加密后的DEK,而加密过程中是利用第一AK对DEK进行加密后,所获取的第一eDEK,因此,需要利用第一AK,通过第二加解密引擎对第一eDEK进行解密,获取第一DEK。
[0148] 步骤S306,获取数据操作指令。
[0149] 具体的,数据操作指令可以是主机直接传达的数据操作指令,例如可以是针对某一个IO端口传输的数据进行加密操作或解密操作。
[0150] 步骤S307,根据数据操作指令,利用第一数据加密秘钥,对目标数据执行与数据操作指令对应的操作。
[0151] 具体的,通过第一DEK对目标数据执行与数据操作指令对应的操作即可。
[0152] 本实施例提供的数据处理方法,获取第一PIN,以及目标单位存储空间标识信息。然后通过第一加解密引擎对第一PIN码进行秘钥派生,获取与第一PIN码对应的第一AK。然后对第一PIN码进行验证,如果验证成功,则从任一硬盘的预设存储位置获取与目标单位存储空间标识信息对应的第一eDEK。然后利用第一AK,通过第二加解密引擎对第一eDEK进行解密,获取第一DEK。然后,获取数据操作指令,根据数据操作指令,利用第一DEK对目标数据执行与数据操作指令对应的操作,在该过程中,因为第一PIN码和第一eDEK等均存储于硬盘中,而且是与存储控制卡对应的多个硬盘中每一个硬盘均存储有相同的备份。相当于第一PIN码和第一eDEK等都是单位存储空间为单位进行管理,并存储在硬盘中的某个预设存储位置。相较于相关技术中将PIN码存储在自加密盘,并利用PIN码对数据加解密的方式而言,本申请的方案无需使用自加密硬盘存PIN码,成本更低。而且,并非是每一块硬盘对应一个PIN码,所以PIN码管理上将会更加简便。再者,无需依赖主机实现秘钥的管理和访问鉴权。
而且PIN码和eDEK存放于硬盘上的好处还在于,如果存储控制卡发生损坏,依然可以依据硬盘中的PIN码和eDEK来获取相应数据,不会导致秘钥随着卡损坏而丢失,进而使得数据丢失的情况发生。
[0153] 在本实施例中提供了一种数据处理方法,可用于上述的移动终端,如手机、平板电脑等,图4是本发明实施例提供的另一种数据处理方法流程示意图,如图4所示,在前述实施例的基础上,在本实施例中,提供了一种针对第一PIN码进行验证的一种可选的实施方式,具体参见如下所示:
[0154] 步骤S401,从任一硬盘的预设存储位置获取与目标单位存储空间标识信息对应的第一加密盐。
[0155] 在一个可选的实施方式中,任一硬盘中均存储与目标单位存储空间标识信息对应的第二加密的个人识别密码、第一加密盐,以及第一加密的数据加密秘钥。
[0156] 因此,可以在任一硬盘的预设存储位置获取与目标单位存储空间标识信息对应的第一加密盐(eSalt)。
[0157] 步骤S402,利用第一身份验证秘钥,通过第二加解密引擎对第一加密盐进行解密,获取第一盐。
[0158] 具体的,第一eSalt是由第一盐和第一AK,经过第二加解密引擎进行加密后所获取的,因此在获取第一盐的时候,需要利用第一AK,通过第二加解密引擎对第一eSalt进行解密而获取到。
[0159] 步骤S403,利用第一加解密引擎,对第一个人识别密码和第一盐进行加密处理,获取第一加密的个人识别密码。
[0160] 步骤S404,将第一加密的个人识别密码与从任一硬盘的预设存储位置获取的第二加密的个人识别密码进行匹配。
[0161] 步骤S405,当匹配成功时,确定对第一个人识别密码验证成功。
[0162] 具体的,利用第一加解密引擎,对第一PIN码和第一Salt进行加密处理后,可以获取到第一ePIN。然后,将第一ePIN和任一硬盘的预设存储位置所获取的第二ePIN进行匹配,如果匹配成功,则说明对第一PIN的验证成功,否则验证失败。
[0163] 在这个过程中,对第一PIN码的验证是“正向验证”,也即是先获取第一加密盐,然后利用第一AK对第一加密盐进行解密后,获取第一盐。然后利用第一盐和第一PIN码进行加密处理,获取第一ePIN。再将第一ePIN与预设存储位置存储的第二ePIN进行匹配。这个过程中,正是因为有随机数(第一盐)的存在,所以即使其他人在知道第二ePIN的前提下,也无法反推出第一PIN,因此,只能正向进行验证第一PIN的合法性,无法通过“反推”的方式获取第一PIN。验证方式将会更加有效,也增加安全。
[0164] 在一个可选的实施方式中,第一加解密引擎为支持哈希散列算法的加解密引擎,第二加解密引擎为支持对称加密算法的加解密引擎。
[0165] 之所以第一加解密秘钥采用支持哈希散列算法的加解密引擎,而第二加解密引擎采用支持对称加密算法的加解密引擎,是考虑到有些秘钥,例如AK、盐等在被加密后需要进行“反推”获取,所以需要采用支持对称加密算法的加解密引擎进行加密。而,对于不希望直接通过“反推”就能获取的秘钥,则可以采用支持哈希散列算法的加解密引擎执行加密处理,例如PIN码的加密,AK的派生等操作。
[0166] 在一个可选的实施方式中,第一加解密引擎包括安全散列算法、密码杂凑算法SM3,以及信息‑摘要算法(Message Digest Algorithm)中的一种或多种组合,其中,安全散列算法例如包括Secure Hash Algorithm,简称SHA中的SHA‑1、SHA‑2,其中信息‑摘要算法可以采用第五版,也即是(Message Digest Algorithm MD5,简称MD5)。
[0167] 第二加解密引擎包括DES算法、3DES算法、国际数据加密算法(International Data Encryption Algorithm,简称IDEA)、高级加密标准算法(Advanced Encryption Standard,AES)、SM1算法,以及SM4算法中的一种或多种组合。
[0168] 在一个可选的实施方式中,预设存储位置为硬盘的开放配置存储区。
[0169] 而之所以将所有秘钥都存放于硬盘的开放配置位置存储,则是考虑到即使存储控制卡损坏,也可以从开放配置去中获取到相应的秘钥,来对已经加密的数据进行解密,避免因为存储控制卡的损坏,导致数据丢失的情况发生。
[0170] 在一个可选的实施方式中,数据操作指令用以指示对目标数据进行加密操作或解密操作。
[0171] 在一个可选的实施方式中,利用第一身份验证秘钥,通过第二加解密引擎对第一加密的数据加密秘钥进行解密,获取第一数据加密秘钥之后,该方法还包括:
[0172] 将第一数据加密秘钥存储在易失性存储介质中。
[0173] 在一个可选的实施方式中,在对第一个人识别密码验证失败时,方法包括:
[0174] 生成用以指示验证失败的响应信息,并反馈至主机侧。
[0175] 具体参见图5所示,图5中示意出针对数据进行处理(加/解密)的执行过程,包括前述实施例中的所有实现过程,例如包括对第一PIN码进行验证的过程,以及通过第一PIN码派生第一AK、利用第一AK、第一PIN码等参数最终获取DEK,并利用DEK对数据进行加/解密等的过程。具体包括:
[0176] (1)主机在通过存储控制卡读取数据时,先需要输入PIN按NS进行校验此时存储控制卡可以获取PIN码和NS的ID信息;
[0177] (2)存储控制卡内部通过类型B加密引擎(第一加解密引擎)对PIN码进行秘钥派生,生成身份秘钥AK;
[0178] (3)从RAID组任一成员盘的配置区读取对应NS的eSalt,并使用AK通过类型A解密引擎(第二加解密引擎)对其进行解密得到Salt;
[0179] (4)PIN码和Salt作为输入,通过类型B的加密引擎(第二加解密引擎)生成ePIN;
[0180] (5)将新生成的ePIN同从RAID组成员盘的配置区读取对应NS的ePIN进行比较,如果相同则认证通过继续进行(6)步操作,如果不同则认证失败并回馈主机侧。
[0181] (6)从RAID组成员盘的配置区读取对应NS的eDEK,并使用AK通过类型A解密引擎(第二加解密引擎)对其进行解密得到DEK,并将得到的DEK存储于存储控制卡上的易失性存储介质,存储卡下电后DEK数据丢失,下电情况包括正常下电和意外掉电情况。不论是哪种下电情况,易失性存储中的明文秘钥都将丢失,丢失后再上电,需要重新进行PIN验证流程。
[0182] (7)使用DEK通过类型A数据加密引擎对主机IO数据进行加密(写)和解密(读)处理。
[0183] 因为前文中已经做了详细的介绍说明,因此这里不再过多介绍说明。
[0184] 在一个可选的实施方式中,在本实施例中提供了一种数据处理方法,可用于上述的移动终端,如手机、平板电脑等,图6是本发明实施例提供的再一种数据处理方法流程示意图,如图6所示,该方法适用于如下应用场景:
[0185] 在某些情况下,需要对PIN码进行更改,在保证原DEK不发生改变的情况下,实现对PIN码的更新。
[0186] 该流程包括如下步骤:
[0187] 步骤S601,获取旧的PIN码和目标单位存储空间标识信息。
[0188] 具体的,例如旧的PIN码就是第一PIN码。
[0189] 步骤S602,通过第一加解密引擎对第一个人识别密码进行秘钥派生,获取与第一个人识别密码对应的第一身份验证秘钥。
[0190] 步骤S603,对第一PIN码进行验证。
[0191] 步骤S601至步骤S603的实现过程参见前文,这里不再过多赘述。
[0192] 步骤S604,在对第一个人识别密码验证成功后,获取第二个人识别密码。
[0193] 其中,第二个人识别密码为第一个人识别密码更改后的个人识别密码。
[0194] 具体获取第二PIN码的实现过程参见或第一PIN码的实现过程,这里不再过多赘述。
[0195] 步骤S605,利用第一加解密引擎对第二个人识别密码进行秘钥派生,获取与第二个人识别密码对应的第二身份验证秘钥。
[0196] 具体的派生过程参见利用第一加解密引擎对第一PIN码进行秘钥派生的过程,这里不再过多赘述。
[0197] 步骤S606,随机生成一个第二盐。
[0198] 具体的,可以采用真随机数发生器(Tune Random Number Generator,简称TRNG)随机生成一个随机数,作为第二盐(Salt)。
[0199] 步骤S607,利用第一加解密引擎,对第二盐和第二个人识别密码进行加密处理,获取第三加密的个人识别密码。
[0200] 具体的,利用第一加解密引擎,对第二Salt和第二PIN码进行加密处理后,获取第三ePIN。
[0201] 步骤S608,利用第二身份验证秘钥,通过第二加解密引擎对第二盐进行加密,获取第二加密盐。
[0202] 具体的,利用第二AK,通过第二加解密引擎对第二Salt进行加密后,获取第二eSalt。
[0203] 步骤S608,利用第二身份验证秘钥,通过第二加解密引擎对第一数据加密秘钥进行加密,获取第二加密的数据加密秘钥。
[0204] 即,利用第二AK,通过第二加解密引擎对第一DEK进行加密后,获取第二eDEK。
[0205] 步骤S609,将第三加密的个人识别密码、第二加密盐,以及第二加密的数据加密秘钥存储至每一个硬盘中,并覆盖掉每一个硬盘中之前已存储的加密的个人识别密码、第一加密盐,以及第一加密的数据加密秘钥。
[0206] 具体的,在某些情况下,需要对PIN码进行更改,而为了保证原DEK不发生改变的情况下,实现对PIN码的更新,则需要首先验证原始PIN码的合法性,如果验证成功的情况下,则可以获取新的PIN码,也即是第二PIN码。然后利用第一加解密引擎对第二PIN码进行秘钥派生,获取第二AK。并随机生成一个新的盐,也即是第二盐。然后利用第一加解密引擎,对第二盐和第二PIN码进行加密处理,获取第三ePIN码。利用第二AK,通过第二加解密引擎对第二盐进行加密,获取第二加密盐,以及利用第二AK,通过对第二加解密引擎对第一DEK进行加密,获取第二eDEK,最终将第三ePIN、第二AK,以及第二eDEK下刷到每一个硬盘中,并覆盖掉之前已经存储的旧的eDEK、旧的ePIN,以及旧的加密盐等,如此一来,后续依然可以通过第三ePIN、第二eDEK,以及第二AK反推出第一DEK,进而对数据进行解密。
[0207] 具体参见图7所示,图7中示意出保证原DEK不发生改变的情况下,实现对PIN码的更新的整体结构示意图,实现过程可以包括:
[0208] (1)主机在需要对PIN码进行更改时,先需要输入旧的PIN码按NS进行校验;
[0209] (2)存储控制卡内部通过类型B加密引擎对PIN码进行秘钥派生,生成身份秘钥AK;
[0210] (3)从RAID组成员盘的配置区读取对应NS的eSalt,并使用AK通过类型A解密引擎对其进行解密得到Salt;
[0211] (4)PIN码和Salt作为输入,通过类型B的加密引擎生成ePin;
[0212] (5)将新生成的ePIN同从RAID组成员盘的配置区读取对应NS的ePIN进行比较,如果相同则认证通过继续进行(6)步操作,如果不同则认证失败并回馈主机侧。
[0213] (6)接受主机设置的新的PIN’码;
[0214] (7)存储控制卡内部通过类型B加密引擎对PIN’码进行秘钥派生,生成身份秘钥AK’;
[0215] (8)TRNG模块随机生成一个新的Salt’;
[0216] (9)PIN’码和Salt’作为输入,通过类型B的加密引擎生成ePIN’,Salt’在此处的作用可以解决常见的彩虹表攻击问题;
[0217] (10)使用AK’,通过类型A加密引擎对Salt’进行加密,生成eSalt’;
[0218] (11)使用AK’,通过类型A加密引擎对原DEK进行加密,生成eDEK’;
[0219] (12)更新RAID组各个成员盘上的配置区,将新生成的ePIN’,eSalt’和eDEK’以NS为管理单位,在每个成员盘上进行备份下刷。
[0220] 因为具体实现过程已经在上文中做了详细介绍,因此这里不做过多赘述。
[0221] 传统的安全数据擦除,是通过若干次对整个存储空间的写入全“0”数据,全“1”数据或者真随机数据的来实现,整个过程耗时巨大,对常见磁介质硬盘而言,其耗时可能达到若干天。
[0222] 因此,在一个可选的实施方式中,在本实施例中提供了一种数据处理方法,可用于上述的移动终端,如手机、平板电脑等,图8是本发明实施例提供的再一种数据处理方法流程示意图,如图8所示,该方法适用于如下对数据进行快速擦除的应用场景。主要是通过对原DEK进行销毁处理实现快速数据安全擦除功能,所有盘上存储数据,会因为DEK的销毁而无法解密,达成秒级的安全数据擦除。具体的方法流程包括:
[0223] 步骤S801,在对第一个人识别密码验证成功后,随机生成第二数据加密秘钥。
[0224] 步骤S802,利用第一身份验证秘钥,通过第二加解密引擎对第二数据加密秘钥进行加密,获取第三加密的数据加密秘钥。
[0225] 步骤S803,将第三加密的数据加密秘钥更新到每一个硬盘中,并覆盖掉每一个硬盘中之前已存储的加密的数据加密秘钥。
[0226] 具体的实现过程和前述实施例中的实现原理类似,因此这里不做过多赘述。
[0227] 图9中示意出该应用场景中的整体实现结构示意图,参见图9所示,包括:
[0228] (1)主机在需要对RAID数据进行快速安全擦除时,先需要输入PIN码按NS进行校验;
[0229] (2)存储控制卡内部通过类型B加密引擎对PIN码进行秘钥派生,生成身份秘钥AK;
[0230] (3)从RAID组成员盘的配置区读取对应NS的eSalt,并使用AK通过类型A解密引擎对其进行解密得到Salt;
[0231] (4)PIN码和Salt作为输入,通过类型B的加密引擎生成ePIN;
[0232] (5)将新生成的ePIN同从RAID组成员盘的配置区读取对应NS的ePIN进行比较,如果相同则认证通过继续进行(6)步操作,如果不同则认证失败并回馈主机侧;
[0233] (6)TRNG模块随机生成新的DEK’;
[0234] (7)使用AK,通过类型A加密引擎对DEK’进行加密,生成eDEK’;
[0235] (8)更新RAID组各个成员盘上的配置区,将新生成的eDEK’以NS为管理单位,在每个成员盘上进行备份下刷。
[0236] 具体的,为了对数据进行快速擦除,可以在验证第一PIN码成功后,随机生成第二DEK,然后利用第一AK,通过第二加解密引擎对第二DEK进行加密,获取第三eDEK。并将第三eDEK更新到每一个硬盘中,并覆盖掉每一个硬盘中之前已经存储的eDEK。通过该方式,在通过第三eDEK和其他数据在进行“反推”获取DEK时,将只能获取到第二DEK,而不能获取到原始的DEK,例如第一DEK,因此,采用原始的DEK加密的数据,将无法进行解密。也就相当于实现了数据的快速擦除操作。这种数据擦除方式甚至可以达到秒级的擦除效果。
[0237] 在一个可选的实施方式中,如前文所介绍的,可以事先在硬盘中备份存储ePIN、eDEK,以及加密盐等,以便于后续的实际应用。例如后续对数据加解密、更改PIN码,以及擦除数据等操作。因此,在本实施例中提供了另一种数据处理方法,可用于上述的移动终端,如手机、平板电脑等,图10是本发明实施例提供的再一种数据处理方法流程示意图,如图10所示,该方法包括如下方法步骤:
[0238] 步骤S1001,获取第三个人识别密码。
[0239] 步骤S1002,通过第一加解密引擎对第三个人识别密码进行秘钥派生,获取与第三个人识别密码对应的第四身份验证秘钥。
[0240] 步骤S1003,随机生成第三盐。
[0241] 步骤S1004,通过第一加解密引擎对第三个人识别密码和第三盐进行加密处理,获取第三加密的个人识别密码。
[0242] 步骤S1005,随机生成第三数据加密秘钥。
[0243] 步骤S1006,利用第四身份验证秘钥,通过第二加解密引擎对第三数据加密秘钥进行加密,获取第四加密的数据加密秘钥;
[0244] 步骤S1007,利用第四身份验证秘钥,通过第二加解密引擎对第三盐进行加密,获取第三加密盐;
[0245] 步骤S1008,将第三加密的个人识别密码、第三加密盐,和第四加密的数据加密秘钥以预划分的单位存储空间为单位进行管理,并下刷到每一个硬盘的预设存储位置。
[0246] 具体的实现过程和前述实施例中的实现原理类似,因此这里不做过多赘述。
[0247] 图11中示意出该应用场景中的整体实现结构示意图,参见图11所示,包括:
[0248] (1)主机针对给定的NS(名称空间)初始设定PIN码,PIN码由一定长度的若干ASCII字符组成;
[0249] (2)存储控制卡内部通过类型B加密引擎对PIN码进行秘钥派生,生成身份秘钥AK(身份验证秘钥)。
[0250] (3)TRNG(真随机数发生器)模块随机生成一个真随机数,称之为盐(Salt);
[0251] (4)PIN码和Salt作为输入,通过类型B的加密引擎生成ePIN。
[0252] (5)使用AK,通过类型A加密引擎对Salt进行加密,生成eSalt(加密的盐)。
[0253] (6)TRNG模块随机生成一定位宽的真随机数DEK(数据加密秘钥),将被用于所有访问该NS的数据加、解密操作。
[0254] (7)使用AK,通过类型A加密引擎对DEK进行加密,生成eDEK;
[0255] (8)更新RAID组各个成员盘上的配置区,将新生成的ePIN、eSalt和eDEK以NS为管理单位,在每个成员盘上进行备份下刷。
[0256] 同一RAID组的成员盘的配置区存放同样的秘钥信息,以防止某块盘故障后,可以通过其他盘顺利恢复出秘钥信息。
[0257] 在本实施例中还提供了一种文件系统快照实现装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0258] 具体的,可以事先在硬盘中备份存储ePIN、eDEK,以及加密盐等,以便于后续的实际应用。例如后续对数据加解密、更改PIN码,以及擦除数据等操作。因此,可以实现获取第三PIN码,然后,通过第一加解密引擎,对第三PIN码进行秘钥派生,获取第四AK。然后,随机生成第三盐,通过第一加解密引擎对第三PIN和第三盐进行加密处理,获取第三ePIN。然后随机生成第三DEK,利用第四AK,通过第二加解密引擎对第三DEK进行加密,获取第四eDEK,以及利用第四AK,通过第二加解密引擎对第三盐进行加密,获取第三加密盐,然后将第三ePIN、第三加密盐,以及第四eDEK等按照单位存储空间为单位进行管理,也即是绑定相应的单位存储空间的标识信息,然后下刷到每一个硬盘的预设存储位置。
[0259] 图12中示意出本申请实施例中的基于存储控制卡数据加密秘钥管理的整体结构示意图,包括存储控制卡(RAID/HBA),在存储控制卡中设置有第一加解密引擎(类型B)以及第二加解密引擎(类型A),硬盘包括多个,且每一个硬盘中均设置有配置区,在配置区保存有秘钥相关数据。例如前文所介绍的ePIN、eSalt,以及eDEK等等。通过主机输入PIN码,按下NS键后可以获取NSID,以及输入数据原文,在存储控制卡中可以进行相应处理。包括数据加密或解密等操作,具体实现过程均在前文中做了详细介绍,因此这里不再过多赘述。
[0260] 图13示意出涉及前述实施例的整体流程,例如包括系统上电、创建RAID磁盘组或者新划分NS、主机PIN码初始化处理流程、主机PIN码校验处理流程、主机PIN码更改处理流程、快速数据安全擦除处理流程、响应主机读写IO请求等。类似的道理,具体实现过程均在前文中做了详细介绍,因此这里不再过多赘述。
[0261] 本实施例提供一种数据处理装置,如图14示,该装置包括:获取模块1401和处理模块1402。
[0262] 获取模块1401,用于获取第一个人识别密码和目标单位存储空间标识信息;
[0263] 处理模块1402,用于通过第一加解密引擎对第一个人识别密码进行秘钥派生,获取与第一个人识别密码对应的第一身份验证秘钥;对第一个人识别密码进行验证;在处理模块1402对第一个人识别密码验证成功后,从任一硬盘的预设存储位置获取与目标单位存储空间标识信息对应的第一加密的数据加密秘钥,其中,硬盘为与存储控制卡对应的多个硬盘中的任一个硬盘;利用第一身份验证秘钥,通过第二加解密引擎对第一加密的数据加密秘钥进行解密,获取第一数据加密秘钥;
[0264] 获取模块1401,还用于获取数据操作指令;
[0265] 处理模块1402,还用于根据数据操作指令,利用第一数据加密秘钥,对目标数据执行与数据操作指令对应的操作。
[0266] 在一种可选的实施方式中,处理模块1402,具体用于:
[0267] 从任一硬盘的预设存储位置获取与目标单位存储空间标识信息对应的第一加密盐;
[0268] 利用第一身份验证秘钥,通过第二加解密引擎对第一加密盐进行解密,获取第一盐;
[0269] 利用第一加解密引擎,对第一个人识别密码和第一盐进行加密处理,获取第一加密的个人识别密码;
[0270] 将第一加密的个人识别密码与从任一硬盘的预设存储位置获取的第二加密的个人识别密码进行匹配;
[0271] 当匹配成功时,确定对第一个人识别密码验证成功。
[0272] 在一种可选的实施方式中,任一硬盘中均存储与目标单位存储空间标识信息对应的第二加密的个人识别密码、第一加密盐,以及第一加密的数据加密秘钥。
[0273] 在一种可选的实施方式中,第一加解密引擎为支持哈希散列算法的加解密引擎,第二加解密引擎为支持对称加密算法的加解密引擎。
[0274] 在一种可选的实施方式中,第一加解密引擎包括安全散列算法、密码杂凑算法,以及中的一种或多种组合;
[0275] 第二加解密引擎包括DES算法、3DES算法、国际数据加密算法、高级加密标准算法、SM1算法,以及SM4算法中的一种或多种组合。
[0276] 在一种可选的实施方式中,预设存储位置为硬盘的开放配置存储区。
[0277] 在一种可选的实施方式中,处理模块1402,还用于:
[0278] 在对第一个人识别密码验证成功后,获取第二个人识别密码,第二个人识别密码为第一个人识别密码更改后的个人识别密码;
[0279] 利用第一加解密引擎对第二个人识别密码进行秘钥派生,获取与第二个人识别密码对应的第二身份验证秘钥;
[0280] 随机生成一个第二盐;
[0281] 利用第一加解密引擎,对第二盐和第二个人识别密码进行加密处理,获取第三加密的个人识别密码;
[0282] 利用第二身份验证秘钥,通过第二加解密引擎对第二盐进行加密,获取第二加密盐,
[0283] 以及,利用第二身份验证秘钥,通过第二加解密引擎对第一数据加密秘钥进行加密,获取第二加密的数据加密秘钥;
[0284] 将第三加密的个人识别密码、第二加密盐,以及第二加密的数据加密秘钥存储至每一个硬盘中,并覆盖掉每一个硬盘中之前已存储的加密的个人识别密码、第一加密盐,以及第一加密的数据加密秘钥。
[0285] 在一种可选的实施方式中,处理模块1402,还用于:
[0286] 在对第一个人识别密码验证成功后,随机生成第二数据加密秘钥;
[0287] 利用第一身份验证秘钥,通过第二加解密引擎对第二数据加密秘钥进行加密,获取第三加密的数据加密秘钥;
[0288] 将第三加密的数据加密秘钥更新到每一个硬盘中,并覆盖掉每一个硬盘中之前已存储的加密的数据加密秘钥。
[0289] 在一种可选的实施方式中,数据操作指令用以指示对目标数据进行加密操作或解密操作。
[0290] 在一种可选的实施方式中,处理模块1402,还用于将第一数据加密秘钥存储在易失性存储介质中。
[0291] 在一种可选的实施方式中,该装置还包括:发送模块1403;
[0292] 处理模块1402,还用于生成用以指示验证失败的响应信息;
[0293] 发送模块1403,还用于将响应信息反馈至主机侧。
[0294] 在一种可选的实施方式中,获取模块1401,还用于获取第三个人识别密码;
[0295] 处理模块1402,还用于通过第一加解密引擎对第三个人识别密码进行秘钥派生,获取与第三个人识别密码对应的第四身份验证秘钥;
[0296] 随机生成第三盐;
[0297] 通过第一加解密引擎对第三个人识别密码和第三盐进行加密处理,获取第三加密的个人识别密码;
[0298] 随机生成第三数据加密秘钥;
[0299] 利用第四身份验证秘钥,通过第二加解密引擎对第三数据加密秘钥进行加密,获取第四加密的数据加密秘钥;
[0300] 以及,利用第四身份验证秘钥,通过第二加解密引擎对第三盐进行加密,获取第三加密盐;
[0301] 将第三加密的个人识别密码、第三加密盐,和第四加密的数据加密秘钥以预划分的单位存储空间为单位进行管理,并下刷到每一个硬盘的预设存储位置。
[0302] 在一种可选的实施方式中,单位存储空间为命名空间、卷或者逻辑区块定址地址段中的一种。
[0303] 本实施例中的数据处理装置是以功能模块的形式来呈现,这里的模块是指专用集成电路(Application Specific Integrated Circuit,简称ASIC),执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
[0304] 上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
[0305] 本发明实施例提供的一种数据处理装置,获取第一PIN,以及目标单位存储空间标识信息。然后通过第一加解密引擎对第一PIN码进行秘钥派生,获取与第一PIN码对应的第一AK。然后对第一PIN码进行验证,如果验证成功,则从任一硬盘的预设存储位置获取与目标单位存储空间标识信息对应的第一eDEK。然后利用第一AK,通过第二加解密引擎对第一eDEK进行解密,获取第一DEK。然后,获取数据操作指令,根据数据操作指令,利用第一DEK对目标数据执行与数据操作指令对应的操作,在该过程中,因为第一PIN码和第一eDEK等均存储于硬盘中,而且是与存储控制卡对应的多个硬盘中每一个硬盘均存储有相同的备份。相当于第一PIN码和第一eDEK等都是单位存储空间为单位进行管理,并存储在硬盘中的某个预设存储位置。相较于相关技术中将PIN码存储在自加密盘,并利用PIN码对数据加解密的方式而言,本申请的方案无需使用自加密硬盘存PIN码,成本更低。而且,并非是每一块硬盘对应一个PIN码,所以PIN码管理上将会更加简便。再者,无需依赖主机实现秘钥的管理和访问鉴权。而且PIN码和eDEK存放于硬盘上的好处还在于,如果存储控制卡发生损坏,依然可以依据硬盘中的PIN码和eDEK来获取相应数据,不会导致秘钥随着卡损坏而丢失,进而使得数据丢失的情况发生。
[0306] 本发明实施例还提供一种计算机设备,具有上述图14所示的数据处理装置。
[0307] 请参阅图15,图15是本发明可选实施例提供的一种计算机设备的结构示意图,如图15所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图15中以一个处理器10为例。
[0308] 处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
[0309] 其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
[0310] 存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据一种小程序落地页的展现的计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0311] 存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
[0312] 该计算机设备还包括输入装置30和输出装置40。处理器10、存储器20、输入装置30和输出装置40可以通过总线或者其他方式连接,图15中以通过总线连接为例。
[0313] 输入装置30可接收输入的数字或字符信息,以及产生与该计算机设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等。输出装置40可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。上述显示设备包括但不限于液晶显示器,发光二极管,显示器和等离子体显示器。在一些可选的实施方式中,显示设备可以是触摸屏。
[0314] 本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
[0315] 虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。