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

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

Info

Publication number
CN111460455B
CN111460455B CN202010201232.9A CN202010201232A CN111460455B CN 111460455 B CN111460455 B CN 111460455B CN 202010201232 A CN202010201232 A CN 202010201232A CN 111460455 B CN111460455 B CN 111460455B
Authority
CN
China
Prior art keywords
key
self
encryption
solid state
state disk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010201232.9A
Other languages
English (en)
Other versions
CN111460455A (zh
Inventor
杨震
唐晓柯
胡毅
甘杰
涂因子
刘梦
巩永平
于艳艳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Grid Information and Telecommunication Co Ltd
Beijing Smartchip Microelectronics Technology Co Ltd
Original Assignee
State Grid Information and Telecommunication Co Ltd
Beijing Smartchip Microelectronics Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by State Grid Information and Telecommunication Co Ltd, Beijing Smartchip Microelectronics Technology Co Ltd filed Critical State Grid Information and Telecommunication Co Ltd
Priority to CN202010201232.9A priority Critical patent/CN111460455B/zh
Publication of CN111460455A publication Critical patent/CN111460455A/zh
Application granted granted Critical
Publication of CN111460455B publication Critical patent/CN111460455B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/80Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

自加密固态硬盘的密钥协商方法、安全引导方法及系统
技术领域
本发明涉及固态硬盘技术领域,具体而言,涉及一种自加密固态硬盘的基于密码钥匙的密钥协商方法、一种自加密固态硬盘的安全引导方法、一种自加密固态硬盘的安全引导系统、以及一种自加密固态硬盘。
背景技术
自加密固态硬盘是一种不依赖外部加密装置的固态硬盘,由硬盘控制器和存储介质两部分组成。存储介质包括用于硬盘控制器访问的固件空间、保留空间和用于存储用户数据的用户空间,保留空间用于存储关键参数、数据结构。为避免硬盘被盗或丢失而造成硬盘数据泄露,通过在硬盘控制器中内嵌高速密码算法模块,使得硬盘数据的加解密可在硬盘内部进行,对外部完全透明不可见,同时保障硬盘数据读写的性能。自加密硬盘的关键是数据加密密钥(Data Encrypt Key,以下简称DEK),用于在读写硬盘时,加密和解密存储在硬盘的数据。
自加密固态硬盘,在预装操作系统后作为系统盘时,其引导方法主要包括以下两类方案。
第一种方案为基于口令的安全引导方法。该方案实现的关键部分包括:验证口令程序,存储在保留空间;使用口令衍生密钥加密硬盘的加密密钥(DEK),存储到固件空间;用户口令摘要,通过SM3、SHA、MD5等计算得到,存储在固件空间。在自加密硬盘安装到计算机并开机启动后,BIOS选择自加密硬盘作为启动设备(BIOS需支持),自加密硬盘通过响应BIOS读盘指令,将存储在硬盘保留空间的口令验证程序加载到计算机内存并获得CPU。该程序接收用户输入的口令传送给硬盘控制器,硬盘固件计算口令摘要并验证口令,如果口令验证多次失败,则需用户关机下电后再开机重试。通过口令衍生密钥、DEK恢复算法,解密固件空间的DEK密文得到DEK用于解密自加密硬盘的密文数据。口令验证程序重启计算机,BIOS再次选择自加密硬盘作为启动设备。硬盘控制器通过高速密码算法模块和DEK解密用户空间的操作系统密文,通过响应BIOS读盘指令加载操作系统到计算机内存,操作系统引导完成。
上述这种基于口令的安全引导方法,存在以下安全隐患和功能制约:
以口令作为对自加密硬盘认证的唯一手段,安全强度较低,口令易被通过键盘监听、屏幕摄录、内存木马攻击等方法窃取;需要计算机的BIOS能够支持自加密固态硬盘作为可引导设备,兼容性较低;口令认证程序需占用自加密硬盘的存储介质空间,减少用户最终可用空间;口令认证程序无法对口令使用灵活的限制策略,例如试错过多无法永久锁定、试错次数限制只能在硬盘出厂时确定、无法由用户灵活配置。
第二种方案为基于安全U盘的安全引导方法。该方案以安全U盘作为自加密固态硬盘加密密钥DEK的载体,并在安全U盘内置一个LiveOS。计算机在启动时从安全U盘引导LiveOS,实现自加密硬盘对安全U盘及用户的认证。用户与安全U盘通过口令方式认证,安全U盘与自加密硬盘的认证可通过基于共享对称密钥或非对称密钥的方式认证。认证通过后,LiveOS从安全U盘读取DEK并传递给自加密硬盘。导入硬盘DEK后,LiveOS重启计算机,用户手动干预BIOS选项,选择自加密硬盘作为启动设备,硬盘使用DEK解密密文操作系统并加载到计算机内存,实现操作系统的引导。
上述这种基于安全U盘的安全引导方法,存在以下安全隐患和功能制约:
将DEK这一关键数据存储在硬盘外部,用户可通过暴力拆解存储介质,使用DEK解密用户数据,绕开硬盘控制器的管理;安全U盘与硬盘之间的认证过程与导入密钥过程没有做到强相关,是否导入密钥仅依赖于认证的结果,易被攻击,例如攻击认证结果的状态导致状态翻转,进而窃取DEK密钥的明文;自加密硬盘引导过程需要用户手动干预,通过修改BIOS选项分别选择安全U盘、自加密硬盘作为启动设备,操作复杂易出错,加大安全引导的时间开销;无法快速更新安全U盘的密钥,更新密钥时,需要全盘读出硬盘的数据,设置新的密钥,再写入硬盘数据,过程复杂易出错且时间开销巨大,缩短存储介质的使用寿命;无法快速擦除全盘数据,清除全盘时,需要对全盘写入随机数或单一无效数据,时间开销大,缩短存储介质的使用寿命。
发明内容
本发明的目的是提供一种自加密固态硬盘的基于密码钥匙的密钥协商方法、安全引导方法及系统,用于解决预装操作系统的自加密固态硬盘作为系统盘时引导操作系统的问题。
为了实现上述目的,本发明第一方面提供一种自加密固态硬盘的基于密码钥匙的密钥协商方法,所述方法包括:
密码钥匙产生随机数并发送到自加密固态硬盘;
所述自加密固态硬盘对接收到的所述随机数进行加密,生成密文,并将所述密文返回至所述密码钥匙;
所述密码钥匙对接收到的所述密文进行解密,判断所述密文的解密结果是否与所述随机数一致,
若一致,则发送获取会话密钥因子信封的指令到所述自加密固态硬盘;
所述自加密固态硬盘根据所述指令产生会话密钥因子,对所述会话密钥因子加密生成所述会话密钥因子信封,并将所述会话密钥因子信封返回至所述密码钥匙;
所述密码钥匙解开所述会话密钥因子信封得到所述会话密钥因子,并利用所述随机数与所述会话密钥因子生成会话密钥,所述自加密固态硬盘利用所述密文与所述会话密钥因子生成所述会话密钥,完成与所述密码钥匙的密钥协商。
进一步地,所述密码钥匙解开所述会话密钥因子信封得到所述会话密钥因子,并利用所述随机数与所述会话密钥因子生成会话密钥,所述自加密固态硬盘利用所述密文与所述会话密钥因子生成所述会话密钥,完成与所述密码钥匙的密钥协商,包括:
所述密码钥匙解开所述会话密钥因子信封得到所述会话密钥因子,并利用所述随机数与所述会话密钥因子生成会话密钥,所述密码钥匙还产生测试因子,将所述测试因子发送到所述自加密固态硬盘;
所述自加密固态硬盘接收到所述测试因子,利用所述密文与所述会话密钥因子生成所述会话密钥,并利用所述会话密钥加密所述测试因子生成测试密文,将所述测试密文发送到所述密码钥匙;
所述密码钥匙利用所述会话密钥对所述测试密文进行解密,将所述测试密文的解密结果与所述测试因子进行对比,若所述测试密文的解密结果与所述测试因子一致,则所述密码钥匙与所述自加密固态硬盘的密钥协商成功。
本发明第二方面提供一种自加密固态硬盘的安全引导方法,基于上述的自加密固态硬盘的基于密码钥匙的密钥协商方法,所述方法包括:
对用户口令及密码钥匙进行认证;
与所述密码钥匙进行密钥协商,生成会话密钥;
通过所述会话密钥解密所述密码钥匙产生的密钥加密密钥;
利用所述密钥加密密钥解密所述自加密固态硬盘的加密密钥,通过解密后的所述加密密钥解密所述自加密固态硬盘;
引导所述自加密固态硬盘中的操作系统。
进一步地,所述对用户口令及密码钥匙进行认证,包括:
密码钥匙接收用户口令;
所述密码钥匙对所述用户口令进行摘要运算,得到摘要结果;
将所述摘要结果与密码钥匙内置的结果进行对比;
若所述摘要结果与密码钥匙内置的结果一致,则用户口令认证成功;
若所述摘要结果与密码钥匙内置的结果不一致,则扣减密码钥匙内置的错误口令计数器,若扣减后的错误口令计数器不为零,则重新接收用户口令;若扣减后的错误口令计数器为零,则锁定密码钥匙,用户口令认证失败。
进一步地,所述密码钥匙产生密钥加密密钥的方法包括:
扣减密码钥匙的内部计数器,判断扣减后的内部计数器是否为零;
若扣减后的内部计数器不为零,则读取密码钥匙的内部随机数;
根据密钥加密密钥生成算法对内部随机数、密码钥匙ID及用户口令进行运算,得到密钥加密密钥。
进一步地,所述扣减密码钥匙的内部计数器,判断扣减后的内部计数器是否为零,包括:若扣减后的内部计数器为零,则复位内部计数器,并重新产生内部随机数。
进一步地,所述密钥加密密钥生成算法为:
KEK=Left(SM3(R||ID||P),16);
其中,KEK为密钥加密密钥,R为所述内部随机数、ID为所述密码钥匙ID、P为所述用户口令。
进一步地,所述自加密固态硬盘在与所述密码钥匙进行密钥协商之前,识别自加密固态硬盘的安全状态。
进一步地,所述识别自加密固态硬盘的安全状态,包括:读取自加密固态硬盘的基于NVME协议定义的安全状态指令,以确定自加密固态硬盘已设置加密密钥。
本发明第三方面提供一种自加密固态硬盘的安全引导系统,所述系统包括:
用户口令验证模块,用于接收用户口令并对用户口令和密码钥匙进行认证;
密钥协商模块,用于自加密固态硬盘与密码钥匙进行密钥协商,以生成会话密钥;
密钥导入模块,用于将所述密码钥匙产生的密钥加密密钥导入所述自加密固态硬盘;
密钥解密模块,用于利用所述密钥加密密钥解密所述自加密固态硬盘的加密密钥,通过解密后的所述加密密钥解密所述自加密固态硬盘;
引导模块,用于引导所述自加密固态硬盘中的操作系统。
进一步地,所述系统还包括:
识别模块,用于识别自加密固态硬盘,并读取自加密固态硬盘的安全状态指令,以确定自加密固态硬盘已设置加密密钥。
本发明第四方面提供一种自加密固态硬盘,采用上述的自加密固态硬盘的安全引导方法,或包括上述的自加密固态硬盘的安全引导系统。
本发明基于密码钥匙增加密钥加密密钥(DEKEncrypt Key,DEK密钥加密密钥,以下简称KEK),自加密固态硬盘内部只存储密钥加密密钥KEK加密DEK后的密文。上述的密钥协商方法通过密钥钥匙与自加密固态硬盘协商产生会话密钥,密钥钥匙通过会话密钥加密密钥加密密钥KEK,自加密固态硬盘通过会话密钥解密密钥加密密钥KEK,再通过密钥加密密钥KEK来解密自加密固态硬盘的加密密钥DEK,形成密钥加密密钥KEK和加密密钥DEK的多重加密保护,大大提升密钥加密密钥KEK和加密密钥DEK的抗攻击性。
上述的基于密钥协商的安全引导方法,通过更新密码钥匙内的随机数来更新KEK,从而更新自加密固态硬盘内的DEK密文,无需对自加密固态硬盘进行全盘读写,降低更新密钥的时间和存储介质寿命开销。由于自加密固态硬盘内部只存储KEK加密DEK后的密文,擦除DEK密文便无法解密自加密固态硬盘,因此,可实现快速擦除全盘数据,减少时间开销、延长存储介质使用寿命。上述的基于密钥协商的安全引导方法,所需的用户口令、密码钥匙中的内部随机数和自加密固态硬盘的DEK密文数据分布式存储在用户、密码钥匙和自加密固态硬盘三个实体中,而不对KEK、DEK直接进行存储。存储实体中的密码钥匙与用户之间通过口令认证,自加密固态硬盘与密钥钥匙之间通过密钥协商相互认证;敏感数据KEK在密钥钥匙与自加密固态硬盘之间传输时通过密钥协商产生临时的会话密钥进行保护;自加密固态硬盘密钥恢复涉及的关键数据分布式存储,且存储实体之间严格认证,敏感数据传输经过严密保护的机制,大大提升自加密固态硬盘加密密钥DEK的安全性。
上述的密钥协商方法和安全引导方法可采用国密标准认证密码钥匙作为对自加密固态硬盘的安全认证方式,相对于仅以用户口令作为自加密硬盘认证的手段,提升安全强度,增强抗键盘监听、屏幕摄录、内存木马攻击等风险。通过密码钥匙的口令认证限制出错次数、锁定解锁机制,提升用户与密码钥匙口令认证的安全性和灵活性;基于密码钥匙的密钥协商安全引导程序存放于密码钥匙只读区,无需占用自加密硬盘存储介质空间,减少自加密硬盘的空间开销。
附图说明
附图是用来提供对本发明实施方式的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施方式,但并不构成对本发明实施方式的限制。在附图中:
图1是本发明一种实施方式提供的自加密固态硬盘的基于密码钥匙的密钥协商方法的流程图;
图2是本发明一种可选实施方式提供的自加密固态硬盘的基于密码钥匙的密钥协商方法的流程图。
图3是本发明一种可选实施方式提供的自加密固态硬盘的基于密码钥匙的密钥协商过程示意图;
图4是本发明一种可选实施方式提供的自加密固态硬盘的安全引导方法的流程图;
图5是本发明一种可选实施方式提供的自加密固态硬盘的安全引导系统的框图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
本实施方式涉及的密码钥匙可以是具有密码算法和存储功能的USBKEY。本实施方式涉及的自加密固态硬盘支持PCIe接口NVME协议。
本实施方式涉及的自加密固态硬盘可以是进行全盘加密或分区加密的固态硬盘。全盘加密是指对用户数据、应用程序及操作系统加密。自加密固态硬盘的加密密钥(DataEncrypt Key,数据加密密钥,以下简称DEK)用于对硬盘内存储的用户文件、软件、操作系统等用户空间的所有数据进行写入时的加密操作,读取时的解密操作。DEK是自加密固态硬盘安全防护最为重要的数据,在自加密固态硬盘与密码钥匙初始化配对时,在自加密固态硬盘内部通过真随机数发生器产生。本实施方式中,自加密固态硬盘内部只存储DEK密文,通过从密码钥匙导入密钥加密密钥(DEKEncrypt Key,DEK密钥加密密钥,以下简称KEK),对DEK进行解密,解密后的DEK明文只存在于自加密固态硬盘内部的只写寄存器,不能被固件读出,在硬盘掉电时丢失。
自加密固态硬盘与密码钥匙初始化配对时,由外部密码设备产生的16字节真随机数分别导入密码钥匙和自加密固态硬盘,导入密码钥匙的真随机数作为认证用SM4算法对称密钥K,导入自加密固态硬盘的真随机数作为认证用SM4算法对称密钥K’,以上对称密钥K和K’不能被读出。由密码钥匙产生认证用SM2算法密钥对,将私钥(private key)保存到密码钥匙内部(不能被读出),将公钥(Public Key)导出保存到自加密固态硬盘。
图1是本发明一种实施方式提供的自加密固态硬盘的基于密码钥匙的密钥协商方法的流程图,图3是本发明一种可选实施方式提供的自加密固态硬盘的基于密码钥匙的密钥协商过程示意图。如图1和图3所示,本发明实施方式提供一种自加密固态硬盘的基于密码钥匙的密钥协商方法,所述方法包括:
S110、密码钥匙产生随机数并发送到自加密固态硬盘。
S120、自加密固态硬盘对接收到的所述随机数进行加密,生成密文,并将所述密文返回至密码钥匙。
其中,自加密固态硬盘采用在初始化配对时与密码钥匙共享的对称密钥K’对接收到的所述随机数进行加密,加密方式为SM4-ECB。
S130、密码钥匙对接收到的所述密文进行解密,判断所述密文的解密结果是否与所述随机数一致。
其中,密码钥匙采用在初始化配对时与自加密固态硬盘共享的对称密钥K对接收到的所述密文进行解密,判断所述密文的解密结果是否与所述随机数一致,若所述密文的解密结果与所述随机数不一致,则协商失败,该协商过程终止。
S140、若判断所述密文的解密结果与所述随机数一致,则密码钥匙发送获取会话密钥因子信封的指令到自加密固态硬盘。
S150、自加密固态硬盘根据所述指令产生会话密钥因子,对所述会话密钥因子加密生成所述会话密钥因子信封,并将所述会话密钥因子信封返回至所述密码钥匙。
其中,自加密固态硬盘利用其初始化配对过程时保存的公钥对会话密钥因子进行加密。
S160、所述密码钥匙解开所述会话密钥因子信封得到所述会话密钥因子,并利用所述随机数与所述会话密钥因子生成会话密钥,所述自加密固态硬盘利用所述密文与所述会话密钥因子生成所述会话密钥,完成与所述密码钥匙的密钥协商。
其中,密码钥匙利用其初始化配对过程时保存的私钥解开接收到的所述会话密钥因子信封,若所述会话密钥因子信封解开失败,则协商失败,该协商过程终止。
具体地,步骤S160包括:若所述会话密钥因子信封解开成功,密码钥匙解开所述会话密钥因子信封后得到会话密钥因子,并利用所述随机数与所述会话密钥因子进行异或运算生成会话密钥N;自加密固态硬盘利用所述密文与所述会话密钥因子进行异或运算生成会话密钥N’(会话密钥采用对称加密方式生成,密钥钥匙的会话密钥N与自加密固态硬盘的会话密钥N’相同),密码钥匙与自加密固态硬盘共同使用该会话密钥来加密或解密数据。
图2是本发明一种可选实施方式提供的自加密固态硬盘的基于密码钥匙的密钥协商方法的流程图。参照图2,该方法还包括:
S161、密码钥匙解开所述会话密钥因子信封得到所述会话密钥因子,并利用所述随机数与所述会话密钥因子进行异或运算生成会话密钥N,所述密码钥匙还产生测试因子,将所述测试因子发送到自加密固态硬盘。
S162、自加密固态硬盘接收到所述测试因子,利用所述密文与所述会话密钥因子进行异或运算生成会话密钥N’,并利用所述会话密钥加密所述测试因子生成测试密文,将所述测试密文发送到密码钥匙。
S163、密码钥匙利用所述会话密钥N对接收到的所述测试密文进行解密,将所述测试密文的解密结果与所述测试因子进行对比,若所述测试密文的解密结果与所述测试因子一致,则密码钥匙与自加密固态硬盘的密钥协商成功。
密码钥匙利用会话密钥N将实时产生的KEK加密,导入自加密固态硬盘。自加密固态硬盘利用会话密钥N’解密被密码钥匙加密的KEK,得到解密的KEK,并利用KEK解密DEK密文,得到DEK明文,并将DEK明文写入只写寄存器,销毁KEK和DEK的中间数据,通过DEK明文解密自加密固态硬盘。上述利用会话密钥加密、解密KEK,再通过KEK解密DEK的过程可看作是自加密固态硬盘的加密密钥恢复过程。
本发明实施方式的密钥协商方法,基于密码钥匙增加密钥加密密钥KEK,自加密固态硬盘内部只存储KEK加密DEK后的密文,通过更新密码钥匙内的随机数来更新KEK,从而更新自加密固态硬盘内的DEK密文。上述的密钥协商方法通过密钥钥匙与自加密固态硬盘协商产生会话密钥,密钥钥匙通过会话密钥加密密钥加密密钥KEK,自加密固态硬盘通过会话密钥解密密钥加密密钥KEK,再通过密钥加密密钥KEK来解密自加密固态硬盘的加密密钥DEK,形成密钥加密密钥KEK和加密密钥DEK的多重加密保护,大大提升密钥加密密钥KEK和加密密钥DEK的抗攻击性。
图4是本发明一种可选实施方式提供的自加密固态硬盘的安全引导方法的流程图。该安全引导方法基于上述的自加密固态硬盘的基于密码钥匙的密钥协商方法。如图4所示,在本发明一种可选实施方式中,自加密固态硬盘的安全引导方法包括:
S210、对用户口令及密码钥匙进行认证。
一种可选实施方式中,用户口令及密码钥匙认证,包括以下步骤:
密码钥匙接收用户口令;
所述密码钥匙对所述用户口令进行摘要运算,得到摘要结果;
将所述摘要结果与密码钥匙内置的结果进行对比;
若所述摘要结果与密码钥匙内置的结果一致,则用户口令认证成功;
若所述摘要结果与密码钥匙内置的结果不一致,则扣减密码钥匙内置的错误口令计数器,若扣减后的错误口令计数器不为零,则重新接收用户口令;若扣减后的错误口令计数器为零,则锁定密码钥匙,用户口令认证失败。
上述步骤用于认证用户是否为密码钥匙的合法持有者。
S220、识别自加密固态硬盘的安全状态。
通过扫描计算机的PCIe设备,根据特征码识别出自加密固态硬盘设备。自加密固态硬盘的特征码在制作发行密码钥匙时,写入密码钥匙中,本发明不涉及这一过程。
通过读取自加密固态硬盘的基于NVME协议定义的安全状态指令,以确定自加密固态硬盘已设置加密密钥。基于NVME协议中,安全状态指令定义如下:
发送的命令格式:
Figure BDA0002419452930000121
接收的应答格式:
Figure BDA0002419452930000122
上述表格中NVME用户数据的状态,0x55表示自加密固态硬盘未设置DEK,0xAA表示自加密固态硬盘已设置DEK。
S230、自加密固态硬盘与密码钥匙进行密钥协商,生成会话密钥。
其中,自加密固态硬盘与密码钥匙密钥协商的方法如上述步骤S110至S163。
S240、通过所述会话密钥解密所述密码钥匙产生的密钥加密密钥。
密码钥匙内产生密钥加密密钥KEK,密码钥匙利用所述会话密钥加密KEK,加密后的KEK被导入自加密固态硬盘。自加密固态硬盘通过所述会话密钥解密所述加密后的KEK,得到KEK。
其中,所述密码钥匙内产生密钥加密密钥KEK的方法包括:
扣减密码钥匙的内部计数器,判断扣减后的内部计数器是否为零;
若扣减后的内部计数器为零,则复位内部计数器,并重新产生内部随机数;
若扣减后的内部计数器不为零,则读取密码钥匙的内部随机数;
根据密钥加密密钥生成算法对内部随机数、密码钥匙ID及用户口令进行运算,得到密钥加密密钥KEK。上述步骤S210中,用户口令认证成功后,才可参与密钥加密密钥生成运算。
其中,所述密钥加密密钥生成算法公式为:
KEK=Left(SM3(R||ID||P),16);
上述公式中,R为所述内部随机数、ID为所述密码钥匙ID、P为所述用户口令,KEK为密钥加密密钥,通过SM3算法计算得到。
密钥加密密钥KEK是一种口令衍生密钥,用于保护自加密固态硬盘内部的DEK。KEK在密码钥匙内部产生,KEK的产生需要用户输入正确口令、内部随机数(不可读出)、密码钥匙ID三者参与,且KEK每次都是动态产生,不在密码钥匙内部保存。通过密码钥匙的内部计数器,可定期更新KEK,显著的增加KEK的抗攻击性;在KEK更新时,自加密硬盘内部的DEK密文也会同周期更新,增加了DEK抗攻击的特性,实现对DEK的保护。
S250、利用所述密钥加密密钥解密所述自加密固态硬盘的加密密钥,通过解密后的所述加密密钥解密所述自加密固态硬盘。
在步骤S240中得到密钥加密密钥KEK,利用该KEK解密自加密固态硬盘自带的加密密钥DEK,将解密后的DEK(即DEK明文)保存到自加密固态硬盘的只写寄存器,DEK明文掉电丢失,则自加密硬盘为解密状态。
S260、引导自加密固态硬盘中的操作系统。
本发明实施方式中,基于密钥协商的安全引导方法,通过更新密码钥匙内的随机数来更新KEK,从而更新自加密固态硬盘内的DEK密文,无需对自加密固态硬盘进行全盘读写,降低更新密钥的时间和存储介质寿命开销。由于自加密固态硬盘内部只存储KEK加密DEK后的密文,擦除DEK密文便无法解密自加密固态硬盘,因此,可实现快速擦除全盘数据,减少时间开销、延长存储介质使用寿命。本发明实施方式中,安全引导所需的用户口令、密码钥匙中的内部随机数和自加密固态硬盘的DEK密文数据分布式存储在用户、密码钥匙和自加密固态硬盘三个实体中,而不对KEK、DEK直接进行存储。存储实体中的密码钥匙与用户之间通过口令认证,自加密固态硬盘与密钥钥匙之间通过密钥协商相互认证;敏感数据KEK在密钥钥匙与自加密固态硬盘之间传输时通过密钥协商产生临时的会话密钥进行保护;自加密固态硬盘密钥恢复涉及的关键数据分布式存储,且存储实体之间严格认证,敏感数据传输经过严密保护的机制,大大提升了自加密固态硬盘加密密钥DEK的安全性。
本发明实施方式中,密钥协商和安全引导可采用国密标准认证密码钥匙作为对自加密固态硬盘的安全认证方式,相对于仅以用户口令作为自加密硬盘认证的手段,提升安全强度,增强抗键盘监听、屏幕摄录、内存木马攻击等风险。通过密码钥匙的口令认证限制出错次数、锁定解锁机制,提升用户与密码钥匙口令认证的安全性和灵活性;基于密码钥匙的密钥协商安全引导程序存放于密码钥匙只读区,无需占用自加密硬盘存储介质空间,减少自加密硬盘的空间开销。
本发明一种可选实施方式还提供一种自加密固态硬盘,采用上述的自加密固态硬盘的安全引导方法。
图5是本发明一种可选实施方式提供的自加密固态硬盘的安全引导系统的框图。如图5所示,在本发明一种可选实施方式中,所述系统包括:用户口令验证模块、识别模块、密钥协商模块、密钥导入模块、密钥解密模块及引导模块。
用户口令验证模块,用于接收用户口令并对用户口令和密码钥匙进行认证,以确定用户输入的口令是正确的。
识别模块,用于识别自加密固态硬盘,并读取自加密固态硬盘的安全状态指令,以确定自加密固态硬盘已设置加密密钥DEK。
密钥协商模块,用于自加密固态硬盘与密码钥匙进行密钥协商,以生成会话密钥。
密钥导入模块,用于将所述密码钥匙产生的密钥加密密钥KEK导入所述自加密固态硬盘。密码钥匙利用所述会话密钥加密KEK,加密后的KEK通过所述密钥导入模块导入到自加密固态硬盘。自加密固态硬盘通过所述会话密钥解密所述加密后的KEK,得到KEK。
密钥解密模块,用于利用所述密钥加密密钥KEK解密所述自加密固态硬盘的加密密钥DEK,通过解密后的所述加密密钥DEK解密所述自加密固态硬盘。解密后的加密密钥DEK(即DEK明文)保存到自加密固态硬盘的只写寄存器,DEK明文掉电丢失,则自加密硬盘为解密状态。
引导模块,用于引导自加密固态硬盘中的操作系统。
上述安全引导系统还包括模式加载器,模式加载器包括Legacy模式加载器和UEFI模式加载器,引导模块包括Legacy模式引导器和UEFI模式引导器。将自加密固态硬盘安装到计算机中,插入与其配对的密码钥匙,加电开启计算机。模式加载器根据计算机的BIOS模式加载密钥钥匙作为启动设备,自加密固态硬盘解密后,引导模块根据启动前的BIOS模式(Legacy或UEFI),读取自加密固态硬盘,引导其中的操作系统,完成安全引导流程。具有上述安全引导系统的自加密固态硬盘能够满足现有的Legacy和UEFI两种模式的BIOS使用场景的安全引导;而且,无需BIOS支持PCIe接口的自加密固态硬盘作为启动设备,启动过程不需要人工干预,在满足高安全性的前提下,减少时间开销,降低操作复杂性。
本发明实施方式还提供一种自加密固态硬盘,采用上述的自加密固态硬盘的安全引导方法,或包括上述的自加密固态硬盘的安全引导系统。
以上结合附图详细描述了本发明的可选实施方式,但是,本发明实施方式并不限于上述实施方式中的具体细节,在本发明实施方式的技术构思范围内,可以对本发明实施方式的技术方案进行多种简单变型,这些简单变型均属于本发明实施方式的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施方式对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施方式的思想,其同样应当视为本发明实施方式所公开的内容。

Claims (12)

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中任一项所述的自加密固态硬盘的安全引导系统。
CN202010201232.9A 2020-03-20 2020-03-20 自加密固态硬盘的密钥协商方法、安全引导方法及系统 Active CN111460455B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010201232.9A CN111460455B (zh) 2020-03-20 2020-03-20 自加密固态硬盘的密钥协商方法、安全引导方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010201232.9A CN111460455B (zh) 2020-03-20 2020-03-20 自加密固态硬盘的密钥协商方法、安全引导方法及系统

Publications (2)

Publication Number Publication Date
CN111460455A CN111460455A (zh) 2020-07-28
CN111460455B true CN111460455B (zh) 2022-01-28

Family

ID=71680801

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010201232.9A Active CN111460455B (zh) 2020-03-20 2020-03-20 自加密固态硬盘的密钥协商方法、安全引导方法及系统

Country Status (1)

Country Link
CN (1) CN111460455B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112417491A (zh) * 2020-12-11 2021-02-26 合肥大唐存储科技有限公司 固态硬盘的数据加密密钥获取、恢复方法和数据读写方法
CN112865969A (zh) * 2021-02-07 2021-05-28 广东工业大学 一种数据加密卡的加密方法及装置
CN113242122B (zh) * 2021-04-15 2022-11-25 哈尔滨工业大学 一种基于dh和rsa加密算法的加密方法
CN113642050B (zh) * 2021-10-13 2022-02-08 联芸科技(杭州)有限公司 自配置加密硬盘及其配置方法、系统及系统的启动方法
CN115357528B (zh) * 2022-10-08 2023-01-24 北京智芯微电子科技有限公司 固态硬盘的密钥加密方法、密钥解密方法和安全防护系统
CN116305299B (zh) * 2023-05-24 2023-08-08 深圳市金胜电子科技有限公司 一种内置射频识别rfid加密的固态硬盘的控制方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008245112A (ja) * 2007-03-28 2008-10-09 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置及びその暗号鍵の管理方法
CN104852891B (zh) * 2014-02-19 2018-07-20 华为技术有限公司 一种密钥生成的方法、设备及系统
CN104615942A (zh) * 2015-02-25 2015-05-13 山东超越数控电子有限公司 一种固态硬盘加密密钥的生成方法

Also Published As

Publication number Publication date
CN111460455A (zh) 2020-07-28

Similar Documents

Publication Publication Date Title
CN111460455B (zh) 自加密固态硬盘的密钥协商方法、安全引导方法及系统
US9916452B2 (en) Self-contained cryptographic boot policy validation
US8898477B2 (en) System and method for secure firmware update of a secure token having a flash memory controller and a smart card
US20060005046A1 (en) Secure firmware update procedure for programmable security devices
US20110126023A1 (en) Systems And Methods For Data Security
CN110688660B (zh) 一种终端安全启动的方法及装置、存储介质
US20030188162A1 (en) Locking a hard drive to a host
US11606206B2 (en) Recovery key for unlocking a data storage device
CN113434853A (zh) 一种将固件烧录至存储设备的方法及控制器
CN113557689A (zh) 用管理器设备初始化数据存储设备
US20230336337A1 (en) Single-use password generation
US11366933B2 (en) Multi-device unlocking of a data storage device
US20090187770A1 (en) Data Security Including Real-Time Key Generation
CN116070241A (zh) 一种移动硬盘加密控制方法
CN113383510A (zh) 数据存储设备的多角色解锁
WO2022052665A1 (zh) 无线终端及无线终端在Uboot模式下的接口访问鉴权方法
CN113545021B (zh) 预先授权设备的注册
US11216571B2 (en) Credentialed encryption
CN110740036A (zh) 基于云计算的防攻击数据保密方法
CN113316915B (zh) 解锁数据存储设备
CN113343215A (zh) 嵌入式软件的授权和认证方法及电子设备
CN114091027B (zh) 信息配置方法、数据访问方法及相关装置、设备
US20230421378A1 (en) Portable Encryption Device With Multiple Keys
CN117501271A (zh) 通过利用物理不可克隆函数puf进行数据加密/解密向主机认证存储设备
CN114637968A (zh) 一种基于rsa算法的软件安全升级和启动方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant