自加密固态硬盘的密钥协商方法、安全引导方法及系统转让专利

申请号 : CN202010201232.9

文献号 : CN111460455B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨震唐晓柯胡毅甘杰涂因子刘梦巩永平于艳艳

申请人 : 北京智芯微电子科技有限公司国网信息通信产业集团有限公司

摘要 :

本发明涉及固态硬盘技术领域,公开一种自加密固态硬盘的基于密码钥匙的密钥协商方法、安全引导方法。所述密钥协商方法通过密钥钥匙与自加密固态硬盘协商产生会话密钥,通过会话密钥加密或解密KEK,大大提升密钥加密密钥KEK和加密密钥DEK的抗攻击性。自加密固态硬盘的安全引导方法,基于所述密钥协商方法,通过会话密钥解密KEK,再通过KEK来解密自加密固态硬盘的DEK,从而解密自加密固态硬盘完成引导,提升自加密固态硬盘的安全性。

权利要求 :

1.一种自加密固态硬盘的基于密码钥匙的密钥协商方法,其特征在于,所述方法包括:密码钥匙产生随机数并发送到自加密固态硬盘;

所述自加密固态硬盘对接收到的所述随机数进行加密,生成密文,并将所述密文返回至所述密码钥匙;

所述密码钥匙对接收到的所述密文进行解密,判断所述密文的解密结果是否与所述随机数一致,若一致,则发送获取会话密钥因子信封的指令到所述自加密固态硬盘;

所述自加密固态硬盘根据所述指令产生会话密钥因子,对所述会话密钥因子加密生成所述会话密钥因子信封,并将所述会话密钥因子信封返回至所述密码钥匙;

所述密码钥匙解开所述会话密钥因子信封得到所述会话密钥因子,利用所述随机数与所述会话密钥因子生成第一会话密钥,并产生测试因子,将所述测试因子发送到所述自加密固态硬盘;

所述自加密固态硬盘利用所述密文与所述会话密钥因子生成第二会话密钥,利用所述第二会话密钥与所述密码钥匙进行密钥协商。

2.根据权利要求1所述的自加密固态硬盘的基于密码钥匙的密钥协商方法,其特征在于,所述自加密固态硬盘利用所述第二会话密钥与所述密码钥匙进行密钥协商,包括:所述自加密固态硬盘利用所述第二会话密钥对接收到的测试因子进行加密生成测试密文,将所述测试密文发送到所述密码钥匙;

所述密码钥匙利用所述第一会话密钥对接收到的测试密文进行解密,将所述测试密文的解密结果与所述测试因子进行对比,若所述测试密文的解密结果与所述测试因子一致,所述自加密固态硬盘与所述密码钥匙的密钥协商成功。

3.一种自加密固态硬盘的安全引导方法,基于权利要求1或2所述的自加密固态硬盘的基于密码钥匙的密钥协商方法,其特征在于,所述方法包括:对用户口令及密码钥匙进行认证;

与所述密码钥匙进行密钥协商,生成第二会话密钥;

利用所述第二会话密钥对导入的加密后的密钥加密密钥进行解密,得到密钥加密密钥;所述密钥加密密钥由所述密码钥匙产生,所述加密后的密钥加密密钥由所述密码钥匙利用第一会话密钥对产生的密钥加密密钥进行加密后得到;

利用所述密钥加密密钥对自加密固态硬盘自带的加密密钥进行解密得到明文密钥,利用所述明文密钥解密所述自加密固态硬盘;

引导所述自加密固态硬盘中的操作系统。

4.根据权利要求3所述的自加密固态硬盘的安全引导方法,其特征在于,所述对用户口令及密码钥匙进行认证,包括:

密码钥匙接收用户口令;

所述密码钥匙对所述用户口令进行摘要运算,得到摘要结果;

将所述摘要结果与密码钥匙内置的结果进行对比;

若所述摘要结果与密码钥匙内置的结果一致,则用户口令认证成功;

若所述摘要结果与密码钥匙内置的结果不一致,则扣减密码钥匙内置的错误口令计数器,若扣减后的错误口令计数器不为零,则重新接收用户口令;若扣减后的错误口令计数器为零,则锁定密码钥匙,用户口令认证失败。

5.根据权利要求3所述的自加密固态硬盘的安全引导方法,其特征在于,所述密码钥匙产生密钥加密密钥的方法包括:

扣减密码钥匙的内部计数器,判断扣减后的内部计数器是否为零;

若扣减后的内部计数器不为零,则读取密码钥匙的内部随机数;

根据密钥加密密钥生成算法对内部随机数、密码钥匙ID及用户口令进行运算,得到密钥加密密钥。

6.根据权利要求5所述的自加密固态硬盘的安全引导方法,其特征在于,所述扣减密码钥匙的内部计数器,判断扣减后的内部计数器是否为零,包括:若扣减后的内部计数器为零,则复位内部计数器,并重新产生内部随机数。

7.根据权利要求5所述的自加密固态硬盘的安全引导方法,其特征在于,所述密钥加密密钥生成算法为:

KEK=Left(SM3(R||ID||P),16);

其中,KEK为密钥加密密钥,R为所述内部随机数、ID为所述密码钥匙ID、P为所述用户口令。

8.根据权利要求3所述的自加密固态硬盘的安全引导方法,其特征在于,所述自加密固态硬盘在与所述密码钥匙进行密钥协商之前,识别自加密固态硬盘的安全状态。

9.根据权利要求8所述的自加密固态硬盘的安全引导方法,其特征在于,所述识别自加密固态硬盘的安全状态,包括:

读取自加密固态硬盘的基于NVME协议定义的安全状态指令,以确定自加密固态硬盘已设置加密密钥。

10.一种自加密固态硬盘的安全引导系统,基于权利要求1或2所述的自加密固态硬盘的基于密码钥匙的密钥协商方法,其特征在于,所述系统包括:用户口令验证模块,用于接收用户口令并对用户口令和密码钥匙进行认证;

密钥协商模块,用于自加密固态硬盘与密码钥匙进行密钥协商,以生成会话密钥;

密钥导入模块,用于将所述密码钥匙产生的密钥加密密钥导入所述自加密固态硬盘;

密钥解密模块,用于利用所述密钥加密密钥解密所述自加密固态硬盘的加密密钥得到明文密钥,通过所述明文密钥解密所述自加密固态硬盘;

引导模块,用于引导所述自加密固态硬盘中的操作系统。

11.根据权利要求10所述的自加密固态硬盘的安全引导系统,其特征在于,所述系统还包括:

识别模块,用于识别自加密固态硬盘,并读取所述自加密固态硬盘的安全状态指令,以确定自加密固态硬盘已设置加密密钥。

12.一种自加密固态硬盘,其特征在于,采用权利要求3‑9中任一项所述的自加密固态硬盘的安全引导方法,或包括权利要求10‑11中任一项所述的自加密固态硬盘的安全引导系统。

说明书 :

自加密固态硬盘的密钥协商方法、安全引导方法及系统

技术领域

[0001] 本发明涉及固态硬盘技术领域,具体而言,涉及一种自加密固态硬盘的基于密码钥匙的密钥协商方法、一种自加密固态硬盘的安全引导方法、一种自加密固态硬盘的安全
引导系统、以及一种自加密固态硬盘。

背景技术

[0002] 自加密固态硬盘是一种不依赖外部加密装置的固态硬盘,由硬盘控制器和存储介质两部分组成。存储介质包括用于硬盘控制器访问的固件空间、保留空间和用于存储用户
数据的用户空间,保留空间用于存储关键参数、数据结构。为避免硬盘被盗或丢失而造成硬
盘数据泄露,通过在硬盘控制器中内嵌高速密码算法模块,使得硬盘数据的加解密可在硬
盘内部进行,对外部完全透明不可见,同时保障硬盘数据读写的性能。自加密硬盘的关键是
数据加密密钥(Data Encrypt Key,以下简称DEK),用于在读写硬盘时,加密和解密存储在
硬盘的数据。
[0003] 自加密固态硬盘,在预装操作系统后作为系统盘时,其引导方法主要包括以下两类方案。
[0004] 第一种方案为基于口令的安全引导方法。该方案实现的关键部分包括:验证口令程序,存储在保留空间;使用口令衍生密钥加密硬盘的加密密钥(DEK),存储到固件空间;用
户口令摘要,通过SM3、SHA、MD5等计算得到,存储在固件空间。在自加密硬盘安装到计算机
并开机启动后,BIOS选择自加密硬盘作为启动设备(BIOS需支持),自加密硬盘通过响应
BIOS读盘指令,将存储在硬盘保留空间的口令验证程序加载到计算机内存并获得CPU。该程
序接收用户输入的口令传送给硬盘控制器,硬盘固件计算口令摘要并验证口令,如果口令
验证多次失败,则需用户关机下电后再开机重试。通过口令衍生密钥、DEK恢复算法,解密固
件空间的DEK密文得到DEK用于解密自加密硬盘的密文数据。口令验证程序重启计算机,
BIOS再次选择自加密硬盘作为启动设备。硬盘控制器通过高速密码算法模块和DEK解密用
户空间的操作系统密文,通过响应BIOS读盘指令加载操作系统到计算机内存,操作系统引
导完成。
[0005] 上述这种基于口令的安全引导方法,存在以下安全隐患和功能制约:
[0006] 以口令作为对自加密硬盘认证的唯一手段,安全强度较低,口令易被通过键盘监听、屏幕摄录、内存木马攻击等方法窃取;需要计算机的BIOS能够支持自加密固态硬盘作为
可引导设备,兼容性较低;口令认证程序需占用自加密硬盘的存储介质空间,减少用户最终
可用空间;口令认证程序无法对口令使用灵活的限制策略,例如试错过多无法永久锁定、试
错次数限制只能在硬盘出厂时确定、无法由用户灵活配置。
[0007] 第二种方案为基于安全U盘的安全引导方法。该方案以安全U盘作为自加密固态硬盘加密密钥DEK的载体,并在安全U盘内置一个LiveOS。计算机在启动时从安全U盘引导
LiveOS,实现自加密硬盘对安全U盘及用户的认证。用户与安全U盘通过口令方式认证,安全
U盘与自加密硬盘的认证可通过基于共享对称密钥或非对称密钥的方式认证。认证通过后,
LiveOS从安全U盘读取DEK并传递给自加密硬盘。导入硬盘DEK后,LiveOS重启计算机,用户
手动干预BIOS选项,选择自加密硬盘作为启动设备,硬盘使用DEK解密密文操作系统并加载
到计算机内存,实现操作系统的引导。
[0008] 上述这种基于安全U盘的安全引导方法,存在以下安全隐患和功能制约:
[0009] 将DEK这一关键数据存储在硬盘外部,用户可通过暴力拆解存储介质,使用DEK解密用户数据,绕开硬盘控制器的管理;安全U盘与硬盘之间的认证过程与导入密钥过程没有
做到强相关,是否导入密钥仅依赖于认证的结果,易被攻击,例如攻击认证结果的状态导致
状态翻转,进而窃取DEK密钥的明文;自加密硬盘引导过程需要用户手动干预,通过修改
BIOS选项分别选择安全U盘、自加密硬盘作为启动设备,操作复杂易出错,加大安全引导的
时间开销;无法快速更新安全U盘的密钥,更新密钥时,需要全盘读出硬盘的数据,设置新的
密钥,再写入硬盘数据,过程复杂易出错且时间开销巨大,缩短存储介质的使用寿命;无法
快速擦除全盘数据,清除全盘时,需要对全盘写入随机数或单一无效数据,时间开销大,缩
短存储介质的使用寿命。

发明内容

[0010] 本发明的目的是提供一种自加密固态硬盘的基于密码钥匙的密钥协商方法、安全引导方法及系统,用于解决预装操作系统的自加密固态硬盘作为系统盘时引导操作系统的
问题。
[0011] 为了实现上述目的,本发明第一方面提供一种自加密固态硬盘的基于密码钥匙的密钥协商方法,所述方法包括:
[0012] 密码钥匙产生随机数并发送到自加密固态硬盘;
[0013] 所述自加密固态硬盘对接收到的所述随机数进行加密,生成密文,并将所述密文返回至所述密码钥匙;
[0014] 所述密码钥匙对接收到的所述密文进行解密,判断所述密文的解密结果是否与所述随机数一致,
[0015] 若一致,则发送获取会话密钥因子信封的指令到所述自加密固态硬盘;
[0016] 所述自加密固态硬盘根据所述指令产生会话密钥因子,对所述会话密钥因子加密生成所述会话密钥因子信封,并将所述会话密钥因子信封返回至所述密码钥匙;
[0017] 所述密码钥匙解开所述会话密钥因子信封得到所述会话密钥因子,并利用所述随机数与所述会话密钥因子生成会话密钥,所述自加密固态硬盘利用所述密文与所述会话密
钥因子生成所述会话密钥,完成与所述密码钥匙的密钥协商。
[0018] 进一步地,所述密码钥匙解开所述会话密钥因子信封得到所述会话密钥因子,并利用所述随机数与所述会话密钥因子生成会话密钥,所述自加密固态硬盘利用所述密文与
所述会话密钥因子生成所述会话密钥,完成与所述密码钥匙的密钥协商,包括:
[0019] 所述密码钥匙解开所述会话密钥因子信封得到所述会话密钥因子,并利用所述随机数与所述会话密钥因子生成会话密钥,所述密码钥匙还产生测试因子,将所述测试因子
发送到所述自加密固态硬盘;
[0020] 所述自加密固态硬盘接收到所述测试因子,利用所述密文与所述会话密钥因子生成所述会话密钥,并利用所述会话密钥加密所述测试因子生成测试密文,将所述测试密文
发送到所述密码钥匙;
[0021] 所述密码钥匙利用所述会话密钥对所述测试密文进行解密,将所述测试密文的解密结果与所述测试因子进行对比,若所述测试密文的解密结果与所述测试因子一致,则所
述密码钥匙与所述自加密固态硬盘的密钥协商成功。
[0022] 本发明第二方面提供一种自加密固态硬盘的安全引导方法,基于上述的自加密固态硬盘的基于密码钥匙的密钥协商方法,所述方法包括:
[0023] 对用户口令及密码钥匙进行认证;
[0024] 与所述密码钥匙进行密钥协商,生成会话密钥;
[0025] 通过所述会话密钥解密所述密码钥匙产生的密钥加密密钥;
[0026] 利用所述密钥加密密钥解密所述自加密固态硬盘的加密密钥,通过解密后的所述加密密钥解密所述自加密固态硬盘;
[0027] 引导所述自加密固态硬盘中的操作系统。
[0028] 进一步地,所述对用户口令及密码钥匙进行认证,包括:
[0029] 密码钥匙接收用户口令;
[0030] 所述密码钥匙对所述用户口令进行摘要运算,得到摘要结果;
[0031] 将所述摘要结果与密码钥匙内置的结果进行对比;
[0032] 若所述摘要结果与密码钥匙内置的结果一致,则用户口令认证成功;
[0033] 若所述摘要结果与密码钥匙内置的结果不一致,则扣减密码钥匙内置的错误口令计数器,若扣减后的错误口令计数器不为零,则重新接收用户口令;若扣减后的错误口令计
数器为零,则锁定密码钥匙,用户口令认证失败。
[0034] 进一步地,所述密码钥匙产生密钥加密密钥的方法包括:
[0035] 扣减密码钥匙的内部计数器,判断扣减后的内部计数器是否为零;
[0036] 若扣减后的内部计数器不为零,则读取密码钥匙的内部随机数;
[0037] 根据密钥加密密钥生成算法对内部随机数、密码钥匙ID及用户口令进行运算,得到密钥加密密钥。
[0038] 进一步地,所述扣减密码钥匙的内部计数器,判断扣减后的内部计数器是否为零,包括:若扣减后的内部计数器为零,则复位内部计数器,并重新产生内部随机数。
[0039] 进一步地,所述密钥加密密钥生成算法为:
[0040] KEK=Left(SM3(R||ID||P),16);
[0041] 其中,KEK为密钥加密密钥,R为所述内部随机数、ID为所述密码钥匙ID、P为所述用户口令。
[0042] 进一步地,所述自加密固态硬盘在与所述密码钥匙进行密钥协商之前,识别自加密固态硬盘的安全状态。
[0043] 进一步地,所述识别自加密固态硬盘的安全状态,包括:读取自加密固态硬盘的基于NVME协议定义的安全状态指令,以确定自加密固态硬盘已设置加密密钥。
[0044] 本发明第三方面提供一种自加密固态硬盘的安全引导系统,所述系统包括:
[0045] 用户口令验证模块,用于接收用户口令并对用户口令和密码钥匙进行认证;
[0046] 密钥协商模块,用于自加密固态硬盘与密码钥匙进行密钥协商,以生成会话密钥;
[0047] 密钥导入模块,用于将所述密码钥匙产生的密钥加密密钥导入所述自加密固态硬盘;
[0048] 密钥解密模块,用于利用所述密钥加密密钥解密所述自加密固态硬盘的加密密钥,通过解密后的所述加密密钥解密所述自加密固态硬盘;
[0049] 引导模块,用于引导所述自加密固态硬盘中的操作系统。
[0050] 进一步地,所述系统还包括:
[0051] 识别模块,用于识别自加密固态硬盘,并读取自加密固态硬盘的安全状态指令,以确定自加密固态硬盘已设置加密密钥。
[0052] 本发明第四方面提供一种自加密固态硬盘,采用上述的自加密固态硬盘的安全引导方法,或包括上述的自加密固态硬盘的安全引导系统。
[0053] 本发明基于密码钥匙增加密钥加密密钥(DEKEncrypt Key,DEK密钥加密密钥,以下简称KEK),自加密固态硬盘内部只存储密钥加密密钥KEK加密DEK后的密文。上述的密钥
协商方法通过密钥钥匙与自加密固态硬盘协商产生会话密钥,密钥钥匙通过会话密钥加密
密钥加密密钥KEK,自加密固态硬盘通过会话密钥解密密钥加密密钥KEK,再通过密钥加密
密钥KEK来解密自加密固态硬盘的加密密钥DEK,形成密钥加密密钥KEK和加密密钥DEK的多
重加密保护,大大提升密钥加密密钥KEK和加密密钥DEK的抗攻击性。
[0054] 上述的基于密钥协商的安全引导方法,通过更新密码钥匙内的随机数来更新KEK,从而更新自加密固态硬盘内的DEK密文,无需对自加密固态硬盘进行全盘读写,降低更新密
钥的时间和存储介质寿命开销。由于自加密固态硬盘内部只存储KEK加密DEK后的密文,擦
除DEK密文便无法解密自加密固态硬盘,因此,可实现快速擦除全盘数据,减少时间开销、延
长存储介质使用寿命。上述的基于密钥协商的安全引导方法,所需的用户口令、密码钥匙中
的内部随机数和自加密固态硬盘的DEK密文数据分布式存储在用户、密码钥匙和自加密固
态硬盘三个实体中,而不对KEK、DEK直接进行存储。存储实体中的密码钥匙与用户之间通过
口令认证,自加密固态硬盘与密钥钥匙之间通过密钥协商相互认证;敏感数据KEK在密钥钥
匙与自加密固态硬盘之间传输时通过密钥协商产生临时的会话密钥进行保护;自加密固态
硬盘密钥恢复涉及的关键数据分布式存储,且存储实体之间严格认证,敏感数据传输经过
严密保护的机制,大大提升自加密固态硬盘加密密钥DEK的安全性。
[0055] 上述的密钥协商方法和安全引导方法可采用国密标准认证密码钥匙作为对自加密固态硬盘的安全认证方式,相对于仅以用户口令作为自加密硬盘认证的手段,提升安全
强度,增强抗键盘监听、屏幕摄录、内存木马攻击等风险。通过密码钥匙的口令认证限制出
错次数、锁定解锁机制,提升用户与密码钥匙口令认证的安全性和灵活性;基于密码钥匙的
密钥协商安全引导程序存放于密码钥匙只读区,无需占用自加密硬盘存储介质空间,减少
自加密硬盘的空间开销。

附图说明

[0056] 附图是用来提供对本发明实施方式的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施方式,但并不构成对本发明实施方式的限
制。在附图中:
[0057] 图1是本发明一种实施方式提供的自加密固态硬盘的基于密码钥匙的密钥协商方法的流程图;
[0058] 图2是本发明一种可选实施方式提供的自加密固态硬盘的基于密码钥匙的密钥协商方法的流程图。
[0059] 图3是本发明一种可选实施方式提供的自加密固态硬盘的基于密码钥匙的密钥协商过程示意图;
[0060] 图4是本发明一种可选实施方式提供的自加密固态硬盘的安全引导方法的流程图;
[0061] 图5是本发明一种可选实施方式提供的自加密固态硬盘的安全引导系统的框图。

具体实施方式

[0062] 以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
[0063] 本实施方式涉及的密码钥匙可以是具有密码算法和存储功能的USBKEY。本实施方式涉及的自加密固态硬盘支持PCIe接口NVME协议。
[0064] 本实施方式涉及的自加密固态硬盘可以是进行全盘加密或分区加密的固态硬盘。全盘加密是指对用户数据、应用程序及操作系统加密。自加密固态硬盘的加密密钥(Data 
Encrypt Key,数据加密密钥,以下简称DEK)用于对硬盘内存储的用户文件、软件、操作系统
等用户空间的所有数据进行写入时的加密操作,读取时的解密操作。DEK是自加密固态硬盘
安全防护最为重要的数据,在自加密固态硬盘与密码钥匙初始化配对时,在自加密固态硬
盘内部通过真随机数发生器产生。本实施方式中,自加密固态硬盘内部只存储DEK密文,通
过从密码钥匙导入密钥加密密钥(DEKEncrypt Key,DEK密钥加密密钥,以下简称KEK),对
DEK进行解密,解密后的DEK明文只存在于自加密固态硬盘内部的只写寄存器,不能被固件
读出,在硬盘掉电时丢失。
[0065] 自加密固态硬盘与密码钥匙初始化配对时,由外部密码设备产生的16字节真随机数分别导入密码钥匙和自加密固态硬盘,导入密码钥匙的真随机数作为认证用SM4算法对
称密钥K,导入自加密固态硬盘的真随机数作为认证用SM4算法对称密钥K’,以上对称密钥K
和K’不能被读出。由密码钥匙产生认证用SM2算法密钥对,将私钥(private key)保存到密
码钥匙内部(不能被读出),将公钥(Public Key)导出保存到自加密固态硬盘。
[0066] 图1是本发明一种实施方式提供的自加密固态硬盘的基于密码钥匙的密钥协商方法的流程图,图3是本发明一种可选实施方式提供的自加密固态硬盘的基于密码钥匙的密
钥协商过程示意图。如图1和图3所示,本发明实施方式提供一种自加密固态硬盘的基于密
码钥匙的密钥协商方法,所述方法包括:
[0067] S110、密码钥匙产生随机数并发送到自加密固态硬盘。
[0068] S120、自加密固态硬盘对接收到的所述随机数进行加密,生成密文,并将所述密文返回至密码钥匙。
[0069] 其中,自加密固态硬盘采用在初始化配对时与密码钥匙共享的对称密钥K’对接收到的所述随机数进行加密,加密方式为SM4‑ECB。
[0070] S130、密码钥匙对接收到的所述密文进行解密,判断所述密文的解密结果是否与所述随机数一致。
[0071] 其中,密码钥匙采用在初始化配对时与自加密固态硬盘共享的对称密钥K对接收到的所述密文进行解密,判断所述密文的解密结果是否与所述随机数一致,若所述密文的
解密结果与所述随机数不一致,则协商失败,该协商过程终止。
[0072] S140、若判断所述密文的解密结果与所述随机数一致,则密码钥匙发送获取会话密钥因子信封的指令到自加密固态硬盘。
[0073] S150、自加密固态硬盘根据所述指令产生会话密钥因子,对所述会话密钥因子加密生成所述会话密钥因子信封,并将所述会话密钥因子信封返回至所述密码钥匙。
[0074] 其中,自加密固态硬盘利用其初始化配对过程时保存的公钥对会话密钥因子进行加密。
[0075] S160、所述密码钥匙解开所述会话密钥因子信封得到所述会话密钥因子,并利用所述随机数与所述会话密钥因子生成会话密钥,所述自加密固态硬盘利用所述密文与所述
会话密钥因子生成所述会话密钥,完成与所述密码钥匙的密钥协商。
[0076] 其中,密码钥匙利用其初始化配对过程时保存的私钥解开接收到的所述会话密钥因子信封,若所述会话密钥因子信封解开失败,则协商失败,该协商过程终止。
[0077] 具体地,步骤S160包括:若所述会话密钥因子信封解开成功,密码钥匙解开所述会话密钥因子信封后得到会话密钥因子,并利用所述随机数与所述会话密钥因子进行异或运
算生成会话密钥N;自加密固态硬盘利用所述密文与所述会话密钥因子进行异或运算生成
会话密钥N’(会话密钥采用对称加密方式生成,密钥钥匙的会话密钥N与自加密固态硬盘的
会话密钥N’相同),密码钥匙与自加密固态硬盘共同使用该会话密钥来加密或解密数据。
[0078] 图2是本发明一种可选实施方式提供的自加密固态硬盘的基于密码钥匙的密钥协商方法的流程图。参照图2,该方法还包括:
[0079] S161、密码钥匙解开所述会话密钥因子信封得到所述会话密钥因子,并利用所述随机数与所述会话密钥因子进行异或运算生成会话密钥N,所述密码钥匙还产生测试因子,
将所述测试因子发送到自加密固态硬盘。
[0080] S162、自加密固态硬盘接收到所述测试因子,利用所述密文与所述会话密钥因子进行异或运算生成会话密钥N’,并利用所述会话密钥加密所述测试因子生成测试密文,将
所述测试密文发送到密码钥匙。
[0081] S163、密码钥匙利用所述会话密钥N对接收到的所述测试密文进行解密,将所述测试密文的解密结果与所述测试因子进行对比,若所述测试密文的解密结果与所述测试因子
一致,则密码钥匙与自加密固态硬盘的密钥协商成功。
[0082] 密码钥匙利用会话密钥N将实时产生的KEK加密,导入自加密固态硬盘。自加密固态硬盘利用会话密钥N’解密被密码钥匙加密的KEK,得到解密的KEK,并利用KEK解密DEK密
文,得到DEK明文,并将DEK明文写入只写寄存器,销毁KEK和DEK的中间数据,通过DEK明文解
密自加密固态硬盘。上述利用会话密钥加密、解密KEK,再通过KEK解密DEK的过程可看作是
自加密固态硬盘的加密密钥恢复过程。
[0083] 本发明实施方式的密钥协商方法,基于密码钥匙增加密钥加密密钥KEK,自加密固态硬盘内部只存储KEK加密DEK后的密文,通过更新密码钥匙内的随机数来更新KEK,从而更
新自加密固态硬盘内的DEK密文。上述的密钥协商方法通过密钥钥匙与自加密固态硬盘协
商产生会话密钥,密钥钥匙通过会话密钥加密密钥加密密钥KEK,自加密固态硬盘通过会话
密钥解密密钥加密密钥KEK,再通过密钥加密密钥KEK来解密自加密固态硬盘的加密密钥
DEK,形成密钥加密密钥KEK和加密密钥DEK的多重加密保护,大大提升密钥加密密钥KEK和
加密密钥DEK的抗攻击性。
[0084] 图4是本发明一种可选实施方式提供的自加密固态硬盘的安全引导方法的流程图。该安全引导方法基于上述的自加密固态硬盘的基于密码钥匙的密钥协商方法。如图4所
示,在本发明一种可选实施方式中,自加密固态硬盘的安全引导方法包括:
[0085] S210、对用户口令及密码钥匙进行认证。
[0086] 一种可选实施方式中,用户口令及密码钥匙认证,包括以下步骤:
[0087] 密码钥匙接收用户口令;
[0088] 所述密码钥匙对所述用户口令进行摘要运算,得到摘要结果;
[0089] 将所述摘要结果与密码钥匙内置的结果进行对比;
[0090] 若所述摘要结果与密码钥匙内置的结果一致,则用户口令认证成功;
[0091] 若所述摘要结果与密码钥匙内置的结果不一致,则扣减密码钥匙内置的错误口令计数器,若扣减后的错误口令计数器不为零,则重新接收用户口令;若扣减后的错误口令计
数器为零,则锁定密码钥匙,用户口令认证失败。
[0092] 上述步骤用于认证用户是否为密码钥匙的合法持有者。
[0093] S220、识别自加密固态硬盘的安全状态。
[0094] 通过扫描计算机的PCIe设备,根据特征码识别出自加密固态硬盘设备。自加密固态硬盘的特征码在制作发行密码钥匙时,写入密码钥匙中,本发明不涉及这一过程。
[0095] 通过读取自加密固态硬盘的基于NVME协议定义的安全状态指令,以确定自加密固态硬盘已设置加密密钥。基于NVME协议中,安全状态指令定义如下:
[0096] 发送的命令格式:
[0097]
[0098] 接收的应答格式:
[0099]
[0100] 上述表格中NVME用户数据的状态,0x55表示自加密固态硬盘未设置DEK,0xAA表示自加密固态硬盘已设置DEK。
[0101] S230、自加密固态硬盘与密码钥匙进行密钥协商,生成会话密钥。
[0102] 其中,自加密固态硬盘与密码钥匙密钥协商的方法如上述步骤S110至S163。
[0103] S240、通过所述会话密钥解密所述密码钥匙产生的密钥加密密钥。
[0104] 密码钥匙内产生密钥加密密钥KEK,密码钥匙利用所述会话密钥加密KEK,加密后的KEK被导入自加密固态硬盘。自加密固态硬盘通过所述会话密钥解密所述加密后的KEK,
得到KEK。
[0105] 其中,所述密码钥匙内产生密钥加密密钥KEK的方法包括:
[0106] 扣减密码钥匙的内部计数器,判断扣减后的内部计数器是否为零;
[0107] 若扣减后的内部计数器为零,则复位内部计数器,并重新产生内部随机数;
[0108] 若扣减后的内部计数器不为零,则读取密码钥匙的内部随机数;
[0109] 根据密钥加密密钥生成算法对内部随机数、密码钥匙ID及用户口令进行运算,得到密钥加密密钥KEK。上述步骤S210中,用户口令认证成功后,才可参与密钥加密密钥生成
运算。
[0110] 其中,所述密钥加密密钥生成算法公式为:
[0111] KEK=Left(SM3(R||ID||P),16);
[0112] 上述公式中,R为所述内部随机数、ID为所述密码钥匙ID、P为所述用户口令,KEK为密钥加密密钥,通过SM3算法计算得到。
[0113] 密钥加密密钥KEK是一种口令衍生密钥,用于保护自加密固态硬盘内部的DEK。KEK在密码钥匙内部产生,KEK的产生需要用户输入正确口令、内部随机数(不可读出)、密码钥
匙ID三者参与,且KEK每次都是动态产生,不在密码钥匙内部保存。通过密码钥匙的内部计
数器,可定期更新KEK,显著的增加KEK的抗攻击性;在KEK更新时,自加密硬盘内部的DEK密
文也会同周期更新,增加了DEK抗攻击的特性,实现对DEK的保护。
[0114] S250、利用所述密钥加密密钥解密所述自加密固态硬盘的加密密钥,通过解密后的所述加密密钥解密所述自加密固态硬盘。
[0115] 在步骤S240中得到密钥加密密钥KEK,利用该KEK解密自加密固态硬盘自带的加密密钥DEK,将解密后的DEK(即DEK明文)保存到自加密固态硬盘的只写寄存器,DEK明文掉电
丢失,则自加密硬盘为解密状态。
[0116] S260、引导自加密固态硬盘中的操作系统。
[0117] 本发明实施方式中,基于密钥协商的安全引导方法,通过更新密码钥匙内的随机数来更新KEK,从而更新自加密固态硬盘内的DEK密文,无需对自加密固态硬盘进行全盘读
写,降低更新密钥的时间和存储介质寿命开销。由于自加密固态硬盘内部只存储KEK加密
DEK后的密文,擦除DEK密文便无法解密自加密固态硬盘,因此,可实现快速擦除全盘数据,
减少时间开销、延长存储介质使用寿命。本发明实施方式中,安全引导所需的用户口令、密
码钥匙中的内部随机数和自加密固态硬盘的DEK密文数据分布式存储在用户、密码钥匙和
自加密固态硬盘三个实体中,而不对KEK、DEK直接进行存储。存储实体中的密码钥匙与用户
之间通过口令认证,自加密固态硬盘与密钥钥匙之间通过密钥协商相互认证;敏感数据KEK
在密钥钥匙与自加密固态硬盘之间传输时通过密钥协商产生临时的会话密钥进行保护;自
加密固态硬盘密钥恢复涉及的关键数据分布式存储,且存储实体之间严格认证,敏感数据
传输经过严密保护的机制,大大提升了自加密固态硬盘加密密钥DEK的安全性。
[0118] 本发明实施方式中,密钥协商和安全引导可采用国密标准认证密码钥匙作为对自加密固态硬盘的安全认证方式,相对于仅以用户口令作为自加密硬盘认证的手段,提升安
全强度,增强抗键盘监听、屏幕摄录、内存木马攻击等风险。通过密码钥匙的口令认证限制
出错次数、锁定解锁机制,提升用户与密码钥匙口令认证的安全性和灵活性;基于密码钥匙
的密钥协商安全引导程序存放于密码钥匙只读区,无需占用自加密硬盘存储介质空间,减
少自加密硬盘的空间开销。
[0119] 本发明一种可选实施方式还提供一种自加密固态硬盘,采用上述的自加密固态硬盘的安全引导方法。
[0120] 图5是本发明一种可选实施方式提供的自加密固态硬盘的安全引导系统的框图。如图5所示,在本发明一种可选实施方式中,所述系统包括:用户口令验证模块、识别模块、
密钥协商模块、密钥导入模块、密钥解密模块及引导模块。
[0121] 用户口令验证模块,用于接收用户口令并对用户口令和密码钥匙进行认证,以确定用户输入的口令是正确的。
[0122] 识别模块,用于识别自加密固态硬盘,并读取自加密固态硬盘的安全状态指令,以确定自加密固态硬盘已设置加密密钥DEK。
[0123] 密钥协商模块,用于自加密固态硬盘与密码钥匙进行密钥协商,以生成会话密钥。
[0124] 密钥导入模块,用于将所述密码钥匙产生的密钥加密密钥KEK导入所述自加密固态硬盘。密码钥匙利用所述会话密钥加密KEK,加密后的KEK通过所述密钥导入模块导入到
自加密固态硬盘。自加密固态硬盘通过所述会话密钥解密所述加密后的KEK,得到KEK。
[0125] 密钥解密模块,用于利用所述密钥加密密钥KEK解密所述自加密固态硬盘的加密密钥DEK,通过解密后的所述加密密钥DEK解密所述自加密固态硬盘。解密后的加密密钥DEK
(即DEK明文)保存到自加密固态硬盘的只写寄存器,DEK明文掉电丢失,则自加密硬盘为解
密状态。
[0126] 引导模块,用于引导自加密固态硬盘中的操作系统。
[0127] 上述安全引导系统还包括模式加载器,模式加载器包括Legacy模式加载器和UEFI模式加载器,引导模块包括Legacy模式引导器和UEFI模式引导器。将自加密固态硬盘安装
到计算机中,插入与其配对的密码钥匙,加电开启计算机。模式加载器根据计算机的BIOS模
式加载密钥钥匙作为启动设备,自加密固态硬盘解密后,引导模块根据启动前的BIOS模式
(Legacy或UEFI),读取自加密固态硬盘,引导其中的操作系统,完成安全引导流程。具有上
述安全引导系统的自加密固态硬盘能够满足现有的Legacy和UEFI两种模式的BIOS使用场
景的安全引导;而且,无需BIOS支持PCIe接口的自加密固态硬盘作为启动设备,启动过程不
需要人工干预,在满足高安全性的前提下,减少时间开销,降低操作复杂性。
[0128] 本发明实施方式还提供一种自加密固态硬盘,采用上述的自加密固态硬盘的安全引导方法,或包括上述的自加密固态硬盘的安全引导系统。
[0129] 以上结合附图详细描述了本发明的可选实施方式,但是,本发明实施方式并不限于上述实施方式中的具体细节,在本发明实施方式的技术构思范围内,可以对本发明实施
方式的技术方案进行多种简单变型,这些简单变型均属于本发明实施方式的保护范围。
[0130] 另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施方式
对各种可能的组合方式不再另行说明。
[0131] 此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施方式的思想,其同样应当视为本发明实施方式所公开的内容。