CN115357528A - 固态硬盘的密钥加密方法、密钥解密方法和安全防护系统 - Google Patents

固态硬盘的密钥加密方法、密钥解密方法和安全防护系统 Download PDF

Info

Publication number
CN115357528A
CN115357528A CN202211220050.1A CN202211220050A CN115357528A CN 115357528 A CN115357528 A CN 115357528A CN 202211220050 A CN202211220050 A CN 202211220050A CN 115357528 A CN115357528 A CN 115357528A
Authority
CN
China
Prior art keywords
key
solid state
state disk
kek
encryption key
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.)
Granted
Application number
CN202211220050.1A
Other languages
English (en)
Other versions
CN115357528B (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.)
Beijing Smartchip Microelectronics Technology Co Ltd
Original Assignee
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 Beijing Smartchip Microelectronics Technology Co Ltd filed Critical Beijing Smartchip Microelectronics Technology Co Ltd
Priority to CN202211220050.1A priority Critical patent/CN115357528B/zh
Publication of CN115357528A publication Critical patent/CN115357528A/zh
Application granted granted Critical
Publication of CN115357528B publication Critical patent/CN115357528B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • 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/79Protecting 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 semiconductor storage media, e.g. directly-addressable memories

Landscapes

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

Abstract

本发明实施例提供一种固态硬盘的密钥加密方法、密钥解密方法和安全防护系统,属于计算机计算领域。所述固态硬盘的密钥加密方法应用于计算机的可信密码模块TCM,且所述固态硬盘的密钥加密方法包括:在预装操作系统启动之后,通过BIOS触发生成密钥加密密钥KEK;向所述固态硬盘申请随机数R;通过加密密码和随机数R,对所述密钥加密密钥KEK进行加密;将加密的所述密钥加密密钥KEK发送至所述BIOS,以所述BIOS将加密的所述密钥加密密钥KEK发送至所述固态硬盘,所述固态硬盘通过所述密钥加密密钥KEK对数据加密密钥DEK进行加密后,存储加密的所述数据加密密钥DEK。通过可信密码模块TCM为自加密固态硬盘SSD提供了包括访问控制、密钥保护、设备绑定等的安全防护。

Description

固态硬盘的密钥加密方法、密钥解密方法和安全防护系统
技术领域
本发明涉及计算机技术领域,具体地涉及一种固态硬盘的密钥加密方法、密钥解密方法和安全防护系统。
背景技术
自加密固态硬盘(下文多以硬盘代指),是一种不依赖外部加密装置的固态硬盘。自加密固态硬盘的存储介质包括用于硬盘控制器访问的固件空间、保留空间和用于存储用户数据的用户空间,其中保留空间用于存储关键参数和数据结构等。为避免硬盘被盗或丢失而造成硬盘数据泄露,通过在硬盘控制器中内嵌高速密码算法模块,使得硬盘数据的加解密可以在硬盘内部进行,数据的加、解密对外完全透明不可见,同时保障硬盘数据读写的性能。自加密硬盘的关键参数数据加密密钥(DataEncryptKey,DEK),用于在读写硬盘时,加密或解密存储在硬盘的数据。
自加密固态硬盘在作为系统盘预装操作系统时,其引导方法主要包括:1)基于口令的安全引导;2)基于安全U盘的安全引导;3)基于可信模块(Trusted Platform Module,TPM)的安全引导。
1)基于口令的安全引导存在以下安全隐患和功能制约:以口令作为对自加密固态硬盘认证的唯一手段,安全强度较低,口令易被通过键盘监听、屏幕摄录、内存木马攻击等方式窃取;口令认证程序无法对口令使用做灵活的限制策略,例如,试错过多无法永久锁定,试错次数限制也只能在硬盘出厂时确定,无法由用户灵活配置。
2)基于安全U盘的安全引导存在以下安全隐患和功能制约:将DEK这一关键数据存储在硬盘外部,用户可通过暴力拆解存储介质,使用DEK解密用户数据,绕开硬盘控制器的管理;无法快速更新安全U盘的密钥,更新密钥时,需要全盘读出硬盘的数据,设置新的密钥,再写入硬盘数据,过程复杂易出错且时间开销巨大,缩短存储介质的使用寿命;无法快速擦除全盘数据,清除全盘时,需要对全盘写入随机数或单一无效数据,时间开销大,缩短存储介质的使用寿命;需要额外携带或者管理U盘,如果U盘与硬盘一同被盗,则无法起到防护作用。
3)基于可信模的安全引导方案存在的安全隐患和功能制约与基于安全U盘的安全引导方案类似,只是无需再单独管理U盘。
发明内容
本发明实施例的目的是提供一种固态硬盘的密钥加密方法,该固态硬盘的密钥加密方法可以实现对固态硬盘的安全防护。
为了实现上述目的,本发明实施例提供一种固态硬盘的密钥加密方法,其特征在于,所述固态硬盘的密钥加密方法应用于计算机的可信密码模块TCM,且所述固态硬盘的密钥加密方法包括:在预装操作系统启动之后,通过BIOS触发生成密钥加密密钥KEK;向所述固态硬盘申请随机数R;通过加密密码和随机数R,对所述密钥加密密钥KEK进行加密;将加密的所述密钥加密密钥KEK发送至所述BIOS,以所述BIOS将加密的所述密钥加密密钥KEK发送至所述固态硬盘,所述固态硬盘通过所述密钥加密密钥KEK对数据加密密钥DEK进行加密后,存储加密的所述数据加密密钥DEK。
可选的,所述在预装操作系统启动之后,所述固态硬盘的密钥加密方法还包括:读取所述BIOS中存储的固件信息;计算所述固件信息的摘要;当所述固件信息的摘要与预存的标准度量值相等时,控制所述BIOS进入执行程序。
可选的,所述固态硬盘的密钥加密方法还包括:获取用户输入口令;通过所述BIOS计算所述用户输入口令的摘要;存储所述用户输入口令和所述用户输入口令的摘要。
可选的,在所述对所述密钥加密密钥KEK进行加密之后,所述固态硬盘的密钥加密方法包括:将加密的所述密钥加密密钥KEK与所述用户输入口令、所述用户输入口令的摘要、以及所述固件信息的摘要进行关联绑定。
本发明实施例还提供一种密钥加密方法,所述密钥加密方法应用于计算机的固态硬盘,且所述密钥加密方法包括:根据可信密码模块TCM的申请,生成随机数R;发送并存储所述随机数R;通过BIOS触发生成数据加密密钥DEK;获取加密的密钥加密密钥KEK;通过TCM指令处理模块和所述随机数R,对加密的所述密钥加密密钥KEK进行解密,得到所述密钥加密密钥KEK;通过所述密钥加密密钥KEK对所述数据加密密钥DEK进行加密,并将加密的所述数据加密密钥DEK存储在所述固态硬盘的存储区。
本发明实施例还提供一种固态硬盘的密钥解密方法,所述固态硬盘的密钥解密方法应用于计算机的可信密码模块TCM,且所述固态硬盘的密钥解密方法包括:在操作系统启动之后,向所述固态硬盘申请随机数R;通过加密密码和随机数R,对所述密钥加密密钥KEK进行加密;将加密的所述密钥加密密钥KEK发送至所述固态硬盘,以所述固态硬盘通过所述密钥加密密钥KEK对数据加密密钥DEK进行解密,进而通过所述数据加密密钥DEK对所述固态硬盘的数据进行解密。
可选的,所述在操作系统启动之后,所述固态硬盘的密钥解密方法还包括:读取BIOS中存储的固件信息;计算所述固件信息的摘要;当所述固件信息的摘要与预存的标准度量值相等时,控制所述BIOS进入执行程序。
可选的,所述固态硬盘的密钥解密方法还包括:获取用户输入口令;通过所述BIOS计算所述用户输入口令的摘要;当所述用户输入口令的摘要与预存的用户输入口令摘要相等时,继续所述BIOS的执行程序。
本发明实施例还提供一种密钥解密方法,所述密钥解密方法应用于计算机的固态硬盘,且所述密钥解密方法包括:根据可信密码模块TCM的申请,生成随机数R;发送并存储所述随机数R;获取加密的密钥加密密钥KEK;通过TCM指令处理模块和所述随机数R,对加密的所述密钥加密密钥KEK进行解密,得到所述密钥加密密钥KEK;通过所述密钥加密密钥KEK对数据加密密钥DEK进行解密,以通过所述数据加密密钥DEK对所述固态硬盘的数据进行解密。
本发明实施例还提供一种可信密码模块TCM的控制装置,所述可信密码模块TCM的控制装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序,以实现根据上述任意一项所述的固态硬盘的密钥加密方法或上述任意一项所述的固态硬盘的密钥解密方法。
本发明实施例还提供一种机器可读存储介质,其特征在于,该机器可读存储介质上存储有指令,该指令使得机器执行根据上述任意一项所述的固态硬盘的密钥加密方法或上述任意一项所述的固态硬盘的密钥解密方法。
本发明实施例还提供一种固态硬盘的控制装置,所述固态硬盘的控制装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序,以实现根据上述的密钥加密方法或上述的密钥解密方法。
本发明实施例还提供一种机器可读存储介质,其特征在于,该机器可读存储介质上存储有指令,该指令使得机器执行根据上述的密钥加密方法或上述的密钥解密方法。
本发明实施例还提供一种固态硬盘的安全防护系统,所述固态硬盘的安全防护系统包括可信密码模块TCM、上述的可信密码模块TCM的控制装置、以及权上述的固态硬盘的控制装置。
通过上述技术方案,本发明实施例通过可信密码模块TCM为自加密固态硬盘SSD提供了包括访问控制、密钥保护、设备绑定等的安全防护。具体地,将数据加密密钥DEK的密文存储于固态硬盘SSD的内部,同时通过可信密码模块TCM生成的密钥加密密钥KEK进行解密使用,可以避免DEK在外部暴露,也可以方便对DEK进行更新及删除,以达到SSD全盘数据管理的目的;KEK通过TCM加密后传输到SSD内部,同时加入了防重放的安全机制,防止了KEK明文暴露的风险。
本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
图1是基于口令的安全引导的示意图;
图2是本发明实施例提供的固态硬盘的密钥加密方法的流程示意图;
图3是固态硬盘的示例安全防护系统的结构示意图;
图4是示例密钥加密方法的流程示意图;
图5是本发明实施例提供的密钥加密方法的流程示意图;
图6是本发明实施例提供固态硬盘的密钥解密方法的流程示意图;
图7是示例密钥解密方法的流程示意图;
图8是本发明实施例提供的密钥解密方法的流程示意图。
具体实施方式
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
在详细解释本发明实施例之前,先简单总结现有技术及其缺点。自加密固态硬盘SSD(下文用硬盘指代)在作为系统盘预装操作系统时,其引导方法主要包括:1)基于口令的安全引导;2)基于安全U盘的安全引导;3)基于可信模块(Trusted Platform Module,TPM)的安全引导。
1)基于口令的安全引导,如图1所示,过程如下:
从硬盘保留空间加载验证口令程序;在硬盘第一次发行时使用口令,通过摘要算法(例如,SM3、SHA、MD5算法)计算衍生密钥,对数据加密密钥DEK进行加密后,存储到硬盘的固件空间。
再次使用时,获取用户输入口令,计算摘要,并与存储于固件空间的口令摘要进行对比,如果一致,则使用该摘要对DEK进行解密得到DEK的明文;硬盘内的高速芯片使用DEK对硬盘数据进行全盘解密,硬盘可以正常使用。
基于口令的安全引导方案存在以下安全隐患和功能制约:以口令作为对自加密固态硬盘认证的唯一手段,安全强度较低,口令易被通过键盘监听、屏幕摄录、内存木马攻击等方式窃取;口令认证程序无法对口令使用做灵活的限制策略,例如,试错过多无法永久锁定,试错次数限制也只能在硬盘出厂时确定,无法由用户灵活配置。
2)基于安全U盘的安全引导过程如下:
以安全U盘作为自加密硬盘DEK的载体,将DEK密文存储于U盘中,用户与安全U盘通过口令进行认证后,U盘将解密后的DEK明文传输给硬盘进行数据解密。
基于安全U盘的安全引导方案存在以下安全隐患和功能制约:将DEK这一关键数据存储在硬盘外部,用户可通过暴力拆解存储介质,使用DEK解密用户数据,绕开硬盘控制器的管理;无法快速更新安全U盘的密钥,更新密钥时,需要全盘读出硬盘的数据,设置新的密钥,再写入硬盘数据,过程复杂易出错且时间开销巨大,缩短存储介质的使用寿命;无法快速擦除全盘数据,清除全盘时,需要对全盘写入随机数或单一无效数据,时间开销大,缩短存储介质的使用寿命;需要额外携带或者管理U盘,如果U盘与硬盘一同被盗,则无法起到防护作用。
3)基于可信模块(Trusted Platform Module,TPM)的安全引导过程如下:使用TPM作为DEK的存储介质,在TPM完成对基本输入输出系统(Basic Input Output System,BIOS)的度量之后,会将DEK在TPM中解密,并将明文DEK传输到SSD中,SSD使用DEK进行数据的解密。
基于可信模的安全引导方案存在的安全隐患和功能制约与基于安全U盘的安全引导方案类似,只是无需再单独管理U盘。
图2是本发明实施例提供的固态硬盘的密钥加密方法的流程示意图,请参考图2,所述固态硬盘的密钥加密方法应用于计算机的可信密码模块TCM,且所述固态硬盘的密钥加密方法可以包括以下步骤:
步骤S110:在预装操作系统启动之后,通过BIOS触发生成密钥加密密钥KEK。
可信密码模块(Trusted Cryptography Module,TCM),是可信计算平台的硬件模块,以安全芯片为硬件基础,基于国密算法为可信计算平台提供密码运算功能,具有受保护的存储空间。可信密码模块TCM(下文多以TCM指代)为计算机的运行提供可信防护能力,在计算机启动时,可以对BIOS、操作系统、关键应用及文件进行可信度量,保障计算机不会运行被篡改后的系统及应用。随着对计算机运行安全的重视,TCM模块已经逐步成为计算机配置中的重要组成部分。本发明实施例的自加密固态硬盘SSD(下文多以硬盘或SSD指代)在作为系统盘预装操作系统时,通过计算机自带的可信密码模块TCM对固态硬盘SSD进行安全引导,固态硬盘的安全防护结构可以如图3所示。
图4是示例密钥加密方法的流程示意图,请结合图2、图3和图4,本发明优选的实施例中,所述在预装操作系统启动之后,所述固态硬盘的密钥加密方法还可以包括:读取所述BIOS中存储的固件信息;计算所述固件信息的摘要;当所述固件信息的摘要与预存的标准度量值相等时,控制所述BIOS进入执行程序。
以示例说明,计算机上电启动后,可以先启动TCM的可信度量流程,对BIOS中存储的固件及操作系统进行度量,判断上述内容是否被篡改,如果度量失败,则不会进行固态硬盘的加密配置(例如,KEK的传输)及操作系统的加载。例如,由TCM读取BIOS中存储的固件,并使用例如SM3算法计算其摘要H,将H与计算机出厂时预存的标准度量值H’进行比较,两者一致的情况下允许计算机执行后续的启动流程。该流程可以达到固态硬盘SSD与计算机硬件环境绑定的目的,如果该被绑定的固态硬盘SSD被挪用到其他计算机上,将无法使用。
进一步优选的,所述固态硬盘的密钥加密方法还可以包括:获取用户输入口令;通过所述BIOS计算所述用户输入口令的摘要;存储所述用户输入口令和所述用户输入口令的摘要。
承接上述示例,计算机进入BIOS的执行程序,可以根据用户的设置,确定是否展示口令输入框,用于用户输入与KEK绑定的口令密码。若用户输入口令PWD,则通过所述BIOS计算所述用户输入口令的摘要,存储所述用户输入口令和所述用户输入口令的摘要,在后续的硬盘解密时,需要先进行口令认证。例如,BIOS使用例如SM3算法计算用户输入口令的摘要PWD_H,并将其与PWD一同存入TCM内部的安全存储区。
在上述安全处理完成后,通过BIOS触发生成密钥加密密钥KEK。承接上述示例,BIOS触发TCM生成用于DEK加解密的KEK密钥(例如,可以触发TCM内部的真随机发生器生成16字节的随机数),KEK的明文只会存储于TCM内部的安全存储区,永不导出明文。
优选的,在步骤S110之后,所述固态硬盘的密钥加密方法还可以包括:将加密的所述密钥加密密钥KEK与所述用户输入口令、所述用户输入口令的摘要、以及所述固件信息的摘要进行关联绑定。
承接上述示例,如上文,如果先前输入过用户输入口令PWD,则将密钥加密密钥KEK与用户输入口令PWD、用户输入口令的摘要PWD_H、度量值H进行绑定,在后续的硬盘解密时,需要先进行口令认证。
步骤S120:向所述固态硬盘申请随机数R。
继续参考图2、图3和图4,承接上述示例,可信密码模块TCM向固态硬盘SSD申请获取随机数R(例如,固态硬盘SSD通过其真随机发生器生成8字节的随机数),固态硬盘SSD生成的随机数R可以存储于其内部RAM,并返回给可信密码模块TCM (未在图4中体现)。该随机数R可作为防重放因子,避免密文KEK被截获之后被重复使用。
步骤S130:通过加密密码和随机数R,对所述密钥加密密钥KEK进行加密。
承接上述示例,TCM使用随机数R作为参数,并使用TCM内部的加密模块提供的加密密码对KEK进行加密,例如可以通过SM4对KEK进行加密。
步骤S140:将加密的所述密钥加密密钥KEK发送至所述BIOS,以所述BIOS将加密的所述密钥加密密钥KEK发送至所述固态硬盘,所述固态硬盘通过所述密钥加密密钥KEK对所述数据加密密钥DEK进行加密后,存储所述加密的所述数据加密密钥DEK。
承接上述示例,TCM将加密的所述密钥加密密钥KEK传输给BIOS;BIOS触发固态硬盘SSD生成数据加密密钥DEK,并向固态硬盘SSD发送KEK密文;SSD内部生成DEK(例如,可以触发固态硬盘SSD的真随机发生器生成16字节的随机数),并使用内置的TCM指令处理模块对应获取TCM的加密密码,并通过机密密码和随机数R对KEK进行解密,得到KEK明文,DEK及KEK的明文可以存储于SSD的RAM区,掉电即丢失,不会持久存储。SSD使用KEK明文对DEK进行加密,并将DEK密文存储于SSD的内部存储区,据此完成了TCM与SSD的初始化配对。
图5是本发明实施例提供的密钥加密方法的流程示意图,请参考图5,所述密钥加密方法应用于计算机的固态硬盘,且所述密钥加密方法可以包括以下步骤:
步骤S210:根据可信密码模块TCM的申请,生成随机数R。
请结合图4和图5,TCM在执行完可信度量流程、以及设置口令验证流程之后,通过BIOS触发生成密钥加密密钥KEK,并向固态硬盘SSD申请随机数R,固态硬盘SSD通过例如其真随机发生器生成8字节的随机数R。
步骤S220:发送并存储所述随机数R。
承接上述示例,将随机数R存储于其内部RAM,并返回给可信密码模块TCM (未在图4中体现)。该随机数R可作为防重放因子,避免密文KEK被截获之后被重复使用。
步骤S230:通过BIOS触发生成数据加密密钥DEK。
承接上述示例,TCM将加密的所述密钥加密密钥KEK传输给BIOS,BIOS触发固态硬盘SSD生成数据加密密钥DEK(例如,可以触发固态硬盘SSD的真随机发生器生成16字节的随机数),并向固态硬盘SSD发送KEK密文。
步骤S240:获取加密的密钥加密密钥KEK。
步骤S250:通过TCM指令处理模块和所述随机数R,对加密的所述密钥加密密钥KEK进行解密,得到所述密钥加密密钥KEK。
承接上述示例,固态硬盘SSD获取KEK密文,并使用内置的TCM指令处理模块对应获取TCM的加密密码,并通过机密密码和随机数R对KEK进行解密,得到KEK明文,DEK及KEK的明文可以存储于SSD的RAM区,掉电即丢失,不会持久存储。
步骤S260:通过所述密钥加密密钥KEK对所述数据加密密钥DEK进行加密,并将加密的所述数据加密密钥DEK存储在所述固态硬盘的存储区。
承接上述示例,SSD使用KEK明文对DEK进行加密,并将DEK密文存储于SSD的内部存储区,据此完成了TCM与SSD的初始化配对。
图6是本发明实施例提供固态硬盘的密钥解密方法的流程示意图,请参考图6,所述固态硬盘的密钥解密方法应用于计算机的可信密码模块TCM,且所述固态硬盘的密钥解密方法可以包括以下步骤:
步骤S310:在操作系统启动之后,向所述固态硬盘申请随机数R。
图7是示例密钥解密方法的流程示意图,请结合图2、图6和图7,本发明优选的实施例,所述在操作系统启动之后,所述固态硬盘的密钥解密方法还可以包括:读取所述BIOS中存储的固件信息;计算所述固件信息的摘要;当所述固件信息的摘要与预存的标准度量值相等时,控制所述BIOS进入执行程序。
以示例说明,与预装操作系统的加密配置类似,计算机上电启动后,可以先启动TCM的可信度量流程,对BIOS中存储的固件及操作系统进行度量,判断上述内容是否被篡改,如果度量失败,则不会进行固态硬盘的加密配置(例如,KEK的传输)及操作系统的加载。例如,由TCM读取BIOS中存储的固件,并使用例如SM3算法计算其摘要H,将H与计算机出厂时预存的标准度量值H’进行比较,两者一致的情况下允许计算机执行后续的启动流程。该流程可以达到固态硬盘SSD与计算机硬件环境绑定的目的。
进一步优选的,所述固态硬盘的密钥解密方法还可以包括:获取用户输入口令;通过所述BIOS计算所述用户输入口令的摘要;当所述用户输入口令的摘要与预存的用户输入口令摘要相等时,继续所述BIOS的执行程序。
承接上述示例,若在加密配置时,用户设置需要口令验证,TCM获取用户输入口令,判断用户输入口令与之前预绑定的用户输入口令摘要是否一致,如一致则进行后续步骤。
在上述安全处理完成后,可信密码模块TCM向固态硬盘SSD申请获取随机数R(例如,固态硬盘SSD通过其真随机发生器生成8字节的随机数),固态硬盘SSD生成的随机数R可以存储于其内部RAM,并返回给可信密码模块TCM。该随机数R可作为防重放因子,避免密文KEK被截获之后被重复使用。
步骤S320:通过加密密码和随机数R,对所述密钥加密密钥KEK进行加密。
承接上述示例,TCM使用随机数R作为参数,并使用TCM内部的加密模块提供的加密密码对KEK进行加密,例如可以通过SM4对KEK进行加密。
步骤S330:将加密的所述密钥加密密钥KEK发送至所述固态硬盘,以所述固态硬盘通过所述密钥加密密钥KEK对数据加密密钥DEK进行解密,进而通过所述数据加密密钥DEK对所述固态硬盘的数据进行解密。
承接上述示例,TCM将加密的所述密钥加密密钥KEK传输给固态硬盘SSD;SSD使用内置的TCM指令处理模块对应获取TCM的加密密码,并通过机密密码和随机数R对KEK进行解密,获得KEK明文,使用该KEK明文对DEK进行解密处理,进而对全盘数据进行解密,计算机可以继续完成操作系统的后续启动。
图8是本发明实施例提供的密钥解密方法的流程示意图,请参考图8,所述密钥解密方法应用于计算机的固态硬盘,且所述密钥解密方法可以包括以下步骤:
步骤S410:根据可信密码模块TCM的申请,生成随机数R。
请结合图7和图8,TCM在执行完可信度量流程、以及口令验证流程之后,向固态硬盘SSD申请随机数R,固态硬盘SSD通过例如其真随机发生器生成8字节的随机数R。
步骤S420:发送并存储所述随机数R。
承接上述示例,将随机数R存储于其内部RAM,并返回给可信密码模块TCM。该随机数R可作为防重放因子,避免密文KEK被截获之后被重复使用。
步骤S430:获取加密的密钥加密密钥KEK。
承接上述示例,TCM通过加密密码和随机数R,对所述密钥加密密钥KEK进行加密,并将加密的所述密钥加密密钥KEK传输给固态硬盘SSD,固态硬盘SSD获取该KEK密文。
步骤S440:通过TCM指令处理模块和所述随机数R,对加密的所述密钥加密密钥KEK进行解密,得到所述密钥加密密钥KEK。
承接上述示例,固态硬盘SSD使用内置的TCM指令处理模块对应获取TCM的加密密码,并通过机密密码和随机数R对KEK进行解密,得到KEK明文,DEK及KEK的明文可以存储于SSD的RAM区,掉电即丢失,不会持久存储。
步骤S450:通过所述密钥加密密钥KEK对数据加密密钥DEK进行解密,以通过所述数据加密密钥DEK对所述固态硬盘的数据进行解密。
承接上述示例,SSD通过机密密码和随机数R对KEK进行解密,获得KEK明文,使用该KEK明文对DEK进行解密处理,进而对全盘数据进行解密,计算机可以继续完成操作系统的后续启动。
本发明实施例还提供一种可信密码模块TCM的控制装置,所述可信密码模块TCM的控制装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序,以实现根据步骤S110-S140所述的固态硬盘的密钥加密方法或步骤S310-S330所述的固态硬盘的密钥解密方法。
其中,处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现固态硬盘的加密配置或固态硬盘的安全解密。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令使得机器执行根据步骤S110-S140所述的固态硬盘的密钥加密方法或步骤S310-S330所述的固态硬盘的密钥解密方法。
本发明实施例还提供一种固态硬盘的控制装置,所述固态硬盘的控制装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序,以实现根据步骤S210-S260所述的密钥加密方法或步骤S410-S450所述的密钥解密方法。
其中,处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现固态硬盘的加密配置或固态硬盘的安全解密。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令使得机器执行根据步骤S210-S260所述的密钥加密方法或步骤S410-S450所述的密钥解密方法。
进一步地,本发明实施例还提供一种固态硬盘的安全防护系统,所述固态硬盘的安全防护系统包括可信密码模块TCM、上述的可信密码模块TCM的控制装置、以及上述的固态硬盘的控制装置。
请参考图3,数据加密密钥DEK,作为在对硬盘内存储的用户文件、软件、操作系统等用户空间的所有数据进行写入时的加密密钥和读取时的解密密钥,是自加密固态硬盘SSD安全防护最为重要的部分。在硬盘与可信密码模块TCM初始化配对时,在硬盘内部例如可以通过其真随机数发生器产生。通过外部导入的初始密钥加密密钥KEK进行加密存储,硬盘内部只存储DEK密文。密钥加密密钥KEK,在硬盘与TCM初始化配对时,由TCM生成并安全存储于TCM内部存储空间的密钥,用于加解密SSD内部的DEK。
可信密码模块TCM的控制装置,在计算机启动时,对BIOS中存储的固件及操作系统进行度量,判断是否被篡改,如果度量失败,则不会进行KEK的传输及操作系统的加载。据此,可以达到硬盘SSD与计算机硬件环境绑定的目的,如果SSD被挪用到其他计算机上,将无法使用。在硬盘SSD与可信密码模块TCM初始化配对时,在TCM内部可以生成例如16字节的随机数,作为KEK存储于TCM内部安全存储区,KEK的明文不会传输到TCM外部。同时,经过TCM内部的加密模块对KEK进行例如SM4加密后,将KEK的密文传输给SSD,用于SSD 的DEK的加密。在后续使用过程中,TCM对BIOS完成度量后,由BIOS调用TCM指令获取KEK的密文,并传输给SSD,进行DEK的解密,并正常加载操作系统启动计算机。进一步地,还可以在TCM中设置口令验证,在BIOS调用过程中需要验证用户输入口令后才可进行KEK密文的解密。
固态硬盘SSD的控制装置,在SSD与TCM初始化配对时,可以在SSD内部生成例如16字节的随机数作为DEK,使用TCM传输的KEK对DEK进行加密后,将DEK密文存储于硬盘内部存储区。DEK的明文只存在于硬盘内部的只写寄存器,不能被固件读出,在硬盘掉电时丢失。SSD内部内置与TCM对应的指令处理及密码运算模块,用于与TCM进行指令的交互,并完成KEK密钥在SSD内部的解密。
自加密固态硬盘SSD的接口一般为PCIe、SATA等。本发明实施例的自加密固态硬盘SSD的接口可以为PCIe/NVME。
据此,本发明实施例通过可信密码模块TCM为自加密固态硬盘SSD提供了包括访问控制、密钥保护、设备绑定等的安全防护。使用TCM作为安全器件,相比使用单一口令,提升了整体的安全性;避免了例如使用安全U盘带来的携带及管理问题。具体地,将数据加密密钥DEK的密文存储于固态硬盘SSD的内部,同时通过密钥加密密钥KEK进行解密使用,可以避免DEK在外部暴露,同时也可以方便对DEK进行更新及删除,以达到SSD全盘数据管理的目的;KEK通过TCM加密后传输到SSD内部,同时加入了防重放的安全机制,防止了KEK明文暴露的风险,提升方案的安全性。
本发明实施例在计算机启动时,对BIOS固件及操作系统进行安全度量,可以保障SSD所处软硬件环境的安全,进而达到SSD与计算机软硬件环境绑定的效果;通过TCM口令验证,进一步保证安全防护;并在KEK加密时以随机数R可作为防重放因子,避免密文KEK被截获之后被重复使用。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (14)

1.一种固态硬盘的密钥加密方法,其特征在于,所述固态硬盘的密钥加密方法应用于计算机的可信密码模块TCM,且所述固态硬盘的密钥加密方法包括:
在预装操作系统启动之后,通过BIOS触发生成密钥加密密钥KEK;
向所述固态硬盘申请随机数R;
通过加密密码和随机数R,对所述密钥加密密钥KEK进行加密;
将加密的所述密钥加密密钥KEK发送至所述BIOS,以所述BIOS将加密的所述密钥加密密钥KEK发送至所述固态硬盘,所述固态硬盘通过所述密钥加密密钥KEK对数据加密密钥DEK进行加密后,存储加密的所述数据加密密钥DEK。
2.根据权利要求1所述的固态硬盘的密钥加密方法,其特征在于,所述在预装操作系统启动之后,所述固态硬盘的密钥加密方法还包括:
读取所述BIOS中存储的固件信息;
计算所述固件信息的摘要;
当所述固件信息的摘要与预存的标准度量值相等时,控制所述BIOS进入执行程序。
3.根据权利要求2所述的固态硬盘的密钥加密方法,其特征在于,所述固态硬盘的密钥加密方法还包括:
获取用户输入口令;
通过所述BIOS计算所述用户输入口令的摘要;
存储所述用户输入口令和所述用户输入口令的摘要。
4.根据权利要求3所述的固态硬盘的密钥加密方法,其特征在于,在所述对所述密钥加密密钥KEK进行加密之后,所述固态硬盘的密钥加密方法包括:
将加密的所述密钥加密密钥KEK与所述用户输入口令、所述用户输入口令的摘要、以及所述固件信息的摘要进行关联绑定。
5.一种密钥加密方法,其特征在于,所述密钥加密方法应用于计算机的固态硬盘,且所述密钥加密方法包括:
根据可信密码模块TCM的申请,生成随机数R;
发送并存储所述随机数R;
通过BIOS触发生成数据加密密钥DEK;
获取加密的密钥加密密钥KEK;
通过TCM指令处理模块和所述随机数R,对加密的所述密钥加密密钥KEK进行解密,得到所述密钥加密密钥KEK;
通过所述密钥加密密钥KEK对所述数据加密密钥DEK进行加密,并将加密的所述数据加密密钥DEK存储在所述固态硬盘的存储区。
6.一种固态硬盘的密钥解密方法,其特征在于,所述固态硬盘的密钥解密方法应用于计算机的可信密码模块TCM,且所述固态硬盘的密钥解密方法包括:
在操作系统启动之后,向所述固态硬盘申请随机数R;
通过加密密码和随机数R,对所述密钥加密密钥KEK进行加密;
将加密的所述密钥加密密钥KEK发送至所述固态硬盘,以所述固态硬盘通过所述密钥加密密钥KEK对数据加密密钥DEK进行解密,进而通过所述数据加密密钥DEK对所述固态硬盘的数据进行解密。
7.根据权利要求6所述的固态硬盘的密钥解密方法,其特征在于,所述在操作系统启动之后,所述固态硬盘的密钥解密方法还包括:
读取BIOS中存储的固件信息;
计算所述固件信息的摘要;
当所述固件信息的摘要与预存的标准度量值相等时,控制所述BIOS进入执行程序。
8.根据权利要求7所述的固态硬盘的密钥解密方法,其特征在于,所述固态硬盘的密钥解密方法还包括:
获取用户输入口令;
通过所述BIOS计算所述用户输入口令的摘要;
当所述用户输入口令的摘要与预存的用户输入口令摘要相等时,继续所述BIOS的执行程序。
9.一种密钥解密方法,其特征在于,所述密钥解密方法应用于计算机的固态硬盘,且所述密钥解密方法包括:
根据可信密码模块TCM的申请,生成随机数R;
发送并存储所述随机数R;
获取加密的密钥加密密钥KEK;
通过TCM指令处理模块和所述随机数R,对加密的所述密钥加密密钥KEK进行解密,得到所述密钥加密密钥KEK;
通过所述密钥加密密钥KEK对数据加密密钥DEK进行解密,以通过所述数据加密密钥DEK对所述固态硬盘的数据进行解密。
10.一种可信密码模块TCM的控制装置,其特征在于,所述可信密码模块TCM的控制装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序,以实现根据权利要求1-4中任意一项所述的固态硬盘的密钥加密方法或权利要求6-8中任意一项所述的固态硬盘的密钥解密方法。
11.一种机器可读存储介质,其特征在于,该机器可读存储介质上存储有指令,该指令使得机器执行根据权利要求1-4中任意一项所述的固态硬盘的密钥加密方法或权利要求6-8中任意一项所述的固态硬盘的密钥解密方法。
12.一种固态硬盘的控制装置,其特征在于,所述固态硬盘的控制装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序,以实现根据权利要求5所述的密钥加密方法或权利要求9所述的密钥解密方法。
13.一种机器可读存储介质,其特征在于,该机器可读存储介质上存储有指令,该指令使得机器执行根据权利要求5所述的密钥加密方法或权利要求9所述的密钥解密方法。
14.一种固态硬盘的安全防护系统,其特征在于,所述固态硬盘的安全防护系统包括可信密码模块TCM、权利要求10所述的可信密码模块TCM的控制装置、以及权利要求12所述的固态硬盘的控制装置。
CN202211220050.1A 2022-10-08 2022-10-08 固态硬盘的密钥加密方法、密钥解密方法和安全防护系统 Active CN115357528B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211220050.1A CN115357528B (zh) 2022-10-08 2022-10-08 固态硬盘的密钥加密方法、密钥解密方法和安全防护系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211220050.1A CN115357528B (zh) 2022-10-08 2022-10-08 固态硬盘的密钥加密方法、密钥解密方法和安全防护系统

Publications (2)

Publication Number Publication Date
CN115357528A true CN115357528A (zh) 2022-11-18
CN115357528B CN115357528B (zh) 2023-01-24

Family

ID=84008729

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211220050.1A Active CN115357528B (zh) 2022-10-08 2022-10-08 固态硬盘的密钥加密方法、密钥解密方法和安全防护系统

Country Status (1)

Country Link
CN (1) CN115357528B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116881945A (zh) * 2023-07-26 2023-10-13 百信信息技术有限公司 一种基于tpcm的固态硬盘加解密方法、系统及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577768A (zh) * 2012-08-06 2014-02-12 三星电子株式会社 管理用于数据的安全存储的密钥的方法及其设备
CN104200156A (zh) * 2014-08-27 2014-12-10 山东超越数控电子有限公司 一种基于龙芯处理器的可信加密系统
US9735962B1 (en) * 2015-09-30 2017-08-15 EMC IP Holding Company LLC Three layer key wrapping for securing encryption keys in a data storage system
CN111460455A (zh) * 2020-03-20 2020-07-28 北京智芯微电子科技有限公司 自加密固态硬盘的密钥协商方法、安全引导方法及系统
CN112417491A (zh) * 2020-12-11 2021-02-26 合肥大唐存储科技有限公司 固态硬盘的数据加密密钥获取、恢复方法和数据读写方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577768A (zh) * 2012-08-06 2014-02-12 三星电子株式会社 管理用于数据的安全存储的密钥的方法及其设备
CN104200156A (zh) * 2014-08-27 2014-12-10 山东超越数控电子有限公司 一种基于龙芯处理器的可信加密系统
US9735962B1 (en) * 2015-09-30 2017-08-15 EMC IP Holding Company LLC Three layer key wrapping for securing encryption keys in a data storage system
CN111460455A (zh) * 2020-03-20 2020-07-28 北京智芯微电子科技有限公司 自加密固态硬盘的密钥协商方法、安全引导方法及系统
CN112417491A (zh) * 2020-12-11 2021-02-26 合肥大唐存储科技有限公司 固态硬盘的数据加密密钥获取、恢复方法和数据读写方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116881945A (zh) * 2023-07-26 2023-10-13 百信信息技术有限公司 一种基于tpcm的固态硬盘加解密方法、系统及电子设备

Also Published As

Publication number Publication date
CN115357528B (zh) 2023-01-24

Similar Documents

Publication Publication Date Title
CN112074836B (zh) 通过可信执行环境保护数据的设备和方法
EP3458999B1 (en) Self-contained cryptographic boot policy validation
US11416605B2 (en) Trusted execution environment instances licenses management
KR100792287B1 (ko) 자체 생성한 암호화키를 이용한 보안방법 및 이를 적용한보안장치
US10803175B2 (en) Device attestation through security hardened management agent
JP5992457B2 (ja) オペレーティングシステムのコンフィグレーション値の保護
CN101951316B (zh) 操作系统的受保护的网络引导
CN111723383B (zh) 数据存储、验证方法及装置
US9507964B2 (en) Regulating access using information regarding a host machine of a portable storage drive
KR20190063264A (ko) 가상 트러스트 컴퓨팅 베이스를 이용한 기기 보안성 검증 방법 및 장치
KR20050085678A (ko) 고정형 토큰 및 이동형 토큰 모두를 이용한 어테스테이션
JP2005527019A (ja) マルチトークンのシール及びシール解除
KR20060108710A (ko) 신뢰성 있는 이동 플랫폼 구조
CN101523399A (zh) 基于用户认证修改完整性度量的方法和系统
JP2010505160A (ja) 永続的セキュリティシステム及び永続的セキュリティ方法
CN115357528B (zh) 固态硬盘的密钥加密方法、密钥解密方法和安全防护系统
US10192047B2 (en) Provisioning of identity information
WO2022052665A1 (zh) 无线终端及无线终端在Uboot模式下的接口访问鉴权方法
EP3776303A1 (en) Instance handling of a trusted execution environment
CN110674525A (zh) 一种电子设备及其文件处理方法
CN109583196B (zh) 一种密钥生成方法
US11429722B2 (en) Data protection in a pre-operation system environment based on an embedded key of an embedded controller
US11960737B2 (en) Self-deploying encrypted hard disk, deployment method thereof, self-deploying encrypted hard disk system and boot method thereof
CN114201224B (zh) 处理器启动方法、异构处理器系统及处理器启动装置
Rawat et al. Enhanced Security Mechanism for Cryptographic File Systems Using Trusted Computing

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