一种解密磁盘数据的控制方法及装置
文献发布时间:2023-06-19 10:58:46
技术领域
本申请涉及计算机技术领域,尤其涉及一种解密磁盘数据的控制方法及装置。
背景技术
为了保护电脑中的存储数据,越来越多的电脑在出厂时配置有加密系统,在电脑首次启动时,用户在启动的电脑中通过账号登录等方式启动加密系统,加密系统使用全盘加密秘钥对电脑进行全盘加密,并使用磁盘主秘钥对全盘加密秘钥进行加密保护。
基于此,为了保护磁盘主秘钥,目前采用两种方式,一种是使用公钥对磁盘主秘钥进行加密,并将加密时当前运行环境下的平台度量信息进行存储,这样在电脑再次启动需要进行全盘解密时,可以在当前的平台度量信息与加密磁盘主秘钥时的平台度量信息一致的情况下使用私钥解密出磁盘主秘钥,从而解密出全盘加密秘钥,实现全盘解密;还有一种方式就是使用恢复秘钥对磁盘主秘钥进行加密,再将恢复秘钥存储到提供加密系统的供应商网站中,这样,在电脑再次启动需要进行全盘解密时,如果当前的平台度量信息与加密磁盘主秘钥时的平台度量信息不一致,就可以通过访问供应商网站上的恢复秘钥来解密出磁盘主秘钥,进而解密出全盘加密秘钥,实现全盘解密。
但是,由于地域不同或网络连接等因素,可能会存在当前的平台度量信息与加密磁盘主秘钥时的平台度量信息不一致的情况下供应商网站上的恢复秘钥无法访问的情况,这种情况下,电脑无法启动,磁盘中的数据可能会丢失。
发明内容
有鉴于此,本申请提供一种解密磁盘数据的控制方法及装置,如下:
一种解密磁盘数据的控制方法,包括:
在所述磁盘数据无法访问的情况下,获得用户的第一私钥;
使用所述第一私钥,对预先保存的目标信息进行解密,以得到第一信息;其中,所述目标信息为使用所述第一私钥对应的第一公钥对第一信息进行加密得到的信息,所述第一信息至少表征能够获取磁盘密钥的情况下电子设备的运行环境;
将所述第一信息替换目标位置上存储的信息,以使得所述目标位置上存储的信息与第二信息相一致,所述第二信息为预先保存的信息,且所述第二信息至少表征能够获取磁盘密钥的情况下所述电子设备的运行环境;
其中,在所述目标位置上存储的信息与所述第二信息相一致的情况下所述磁盘密钥能够被获取,所述磁盘密钥用于解密所述磁盘数据,使得所述磁盘数据能够被访问。
上述方法,优选的,所述目标位置为所述电子设备中的寄存器;
其中,所述将所述第一信息替换目标位置上存储的信息,包括:
将所述第一信息写入所述寄存器中,以使得所述寄存器中存储的信息能够与所述第二信息相一致。
上述方法,优选的,在将所述第一信息写入所述寄存器中之前,所述方法还包括:
保持所述寄存器为空。
上述方法,优选的,其中:
所述第一信息为在获取所述磁盘密钥的过程中所得到的第一度量信息,且所述第一度量信息为对所述电子设备的运行环境进行参数度量所得到的信息,所述度量信息被所述第一公钥加密以得到所述目标信息;
所述第二信息为预先保存的第二度量信息,所述第二度量信息在获取所述磁盘密钥的过程中得到,且所述第二度量信息为对所述电子设备的运行环境进行参数度量所得到的信息。
上述方法,优选的,获取所述磁盘密钥,包括:
读取所述电子设备中存储的第二私钥;
使用所述第二私钥对被所述第二私钥对应的第二公钥所加密的磁盘密钥进行解密,以得到解密出的磁盘密钥。
上述方法,优选的,解密所述磁盘数据,包括:
使用所述磁盘密钥对被加密的全盘加密密钥进行解密,以得到解密出的全盘加密密钥;
使用所述解密出的全盘加密密钥对被加密的所述磁盘数据进行解密,以得到解密出的磁盘数据。
上述方法,优选的,在使用所述第一私钥,对预先保存的目标信息进行解密,以得到第一信息之前,所述方法还包括:
对所述第一私钥进行验证,以得到验证结果;所述验证结果表征所述第一私钥是否与所述电子设备中存储的第一公钥相匹配;
在所述验证结果表征所述第一私钥与所述电子设备中存储的第一公钥相匹配的情况下,执行所述步骤:使用所述第一私钥,对预先保存的目标信息进行解密,以得到第一信息;
在至少所述验证结果表征所述第一私钥与所述电子设备中存储的第一公钥不匹配的情况下,结束当前流程。
上述方法,优选的,获得用户的第一私钥,包括:
在与电子设备相连接的目标设备中读取用户的第一私钥。
上述方法,优选的,获得用户的第一私钥,包括:
在电子设备上输出私钥输入界面,在接收到用户针对所述私钥输入界面的输入操作之后,根据所述输入操作获得用户的第一私钥。
一种解密磁盘数据的控制装置,包括:
私钥获得单元,用于在所述磁盘数据无法访问的情况下,获得用户的第一私钥;
信息解密单元,用于使用所述第一私钥,对预先保存的目标信息进行解密,以得到第一信息;其中,所述目标信息为使用所述第一私钥对应的第一公钥对第一信息进行加密得到的信息,所述第一信息至少表征能够获得磁盘密钥的情况下电子设备的运行环境;
信息替换单元,用于将所述第一信息替换目标位置上存储的信息,以使得所述目标位置上存储的信息与第二信息相一致,所述第二信息为预先保存的信息,且所述第二信息至少表征能够获得磁盘密钥的情况下所述电子设备的运行环境;
其中,在所述目标位置上存储的信息与所述第二信息相一致的情况下所述磁盘密钥能够被获取,所述磁盘密钥用于解密所述磁盘数据,使得所述磁盘数据能够被访问。
从上述技术方案可以看出,本申请公开的一种解密磁盘数据的控制方法及装置,在磁盘数据无法访问的情况下,获得用户的第一私钥,进而就可以使用第一私钥,对预先保存的目标信息进行解密,以得到第一信息,而这里的第一信息表征在能够获取磁盘密钥的情况下电子设备的运行环境,由此,将第一信息替换目标位置上存储的信息,以使得目标位置上存储的信息与第二信息相一致,这里的第二信息为预先保存的表征能够获取磁盘密钥的情况下电子设备的运行环境的信息,而在目标位置上存储的信息与第二信息相一致的情况下磁盘数据的磁盘密钥能够被获取,基于此,使用所获取到的磁盘密钥解密磁盘数据,使得磁盘数据能够被访问。可见,本申请中将能够获取磁盘密钥的情况下电子设备的运行环境对应的第一信息进行加密保存,进而在磁盘数据无法访问的时候使用用户的第一私钥解密出这个第一信息,就可以在将第一信息替换目标位置上存储的信息之后,使得目标位置上存储的信息与第二信息相一致,从而能够获取到解密磁盘数据的磁盘秘钥,避免目标位置上存储的信息与第二信息不一致的情况下磁盘数据无法访问的情况。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一提供的一种解密磁盘数据的控制方法的流程图;
图2-图4分别为本申请实施例中获得第一私钥的示例图;
图5为本申请实施例一提供的一种解密磁盘数据的控制方法的另一流程图;
图6为本申请实施例二提供的一种解密磁盘数据的控制装置的结构示意图;
图7为本申请实施例二提供的一种解密磁盘数据的控制装置的另一结构示意图;
图8为本申请实施例三提供的一种电子设备的结构示意图;
图9-图11分别为本申请实施例使用电脑进行硬盘解密的示例图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1,为本申请实施例一提供的一种解密磁盘数据的控制方法的实现流程图,该方法可以适用于具有磁盘且磁盘数据被磁盘密钥加密保护的电子设备中,如计算机或服务器等。本实施例中的技术方案用于实现对磁盘数据的安全解密。
具体的,本实施例中的方法可以包含以下步骤:
步骤101:在磁盘数据无法访问的情况下,获得用户的第一私钥。
其中,磁盘数据无法访问的情况包含有以下几种情况:
一种情况中,能够对磁盘数据的磁盘密钥进行解密的恢复秘钥被丢失,这里的磁盘密钥即为磁盘主秘钥,如VMK(Volume MasterKey)。其中,在磁盘数据被全盘加密密钥加密完成之后,磁盘密钥对全盘加密密钥进行加密保护,之后,使用恢复秘钥对磁盘密钥进行加密保护,例如,使用恢复秘钥和salt(in metadata block)计算出一个256bit的key,之后再使用这个key加密VMK。基于此,如果存储恢复秘钥的供应商网站中无法获取到恢复秘钥,那么就无法获取到磁盘密钥,也就无法解密出磁盘数据,导致磁盘数据无法访问;
另一种情况中,电子设备的运行环境发生变化,即当前电子设备的运行环境相对于在磁盘数据能够被获取的情况下电子设备的运行环境已经发生变化。这里的电子设备的运行环境包含有电子设备的软硬件运行环境。其中,在在磁盘数据被全盘加密密钥加密完成之后,磁盘密钥对全盘加密密钥进行加密保护,之后,使用一个公钥对磁盘密钥进行加密,并在加密过程中获取表征电子设备的运行环境的第二信息并将第二信息存储到特定位置上,基于此,在对磁盘数据进行解密的过程中,如果表征电子设备当前的运行环境的信息即目标位置上存储的信息与第二信息一致,那么可以获取到磁盘密钥,进而可以使用磁盘密钥解密出磁盘数据,但是,如果目标位置上存储的信息与第二信息不一致,那么磁盘密钥不能被获取,就不行解密出磁盘数据,导致磁盘数据无法访问。
基于此,在磁盘数据无法访问的情况下,执行本申请的技术方案,以实现对磁盘数据的安全访问。具体的,在磁盘数据无法访问的情况下,本实施例中首先获得用户的第一私钥。
其中,用户的第一私钥为只属于合法用户的私钥,第一私钥对应有第一公钥,第一公钥用于对第一信息进行加密以得到目标信息,而第一信息为表征能够获取磁盘数据的情况下电子设备的运行信息的信息,且目标信息是预先保存在电子设备中的信息。
具体的,本实施例中在获得用户的第一私钥时,可以通过以下几种方式实现:
一种实现方式中,本实施例中可以在与电子设备相连接的目标设备中读取用户的第一私钥,该目标设备为预先与电子设备绑定的合法设备,如ukey设备等,如图2中所示,在目标设备中安全存储有用户的第一私钥,基于此,本实施例中可以在目标设备中读取到用户的第一私钥;
需要说明的是,本实施例中可以在监测到磁盘数据无法访问如恢复秘钥丢失或者目标位置上存储的信息与第二信息不一致的信息时,生成私钥获取指令,该私钥获取指令用于检测电子设备是否连接有预先绑定的目标设备,如果有目标设备连接在电子设备上,那么本实施例中可以直接在目标设备中读取用户的第一私钥。
另一种实现方式中,本实施例中可以在电子设备上输出私钥输入界面,用户在该私钥输入界面中进行输入操作,如输入第一私钥的字符串等,基于此,本实施例中在接收到用户针对私钥输入界面的输入操作之后,就可以根据输入操作获得用户的第一私钥。如图3中所示,在私钥输入界面中输出有私钥输入框,用户可以在该私钥输入框中输入第一私钥,并对“确定”控件进行点击,由此确认私钥的输入,基于此,本实施例中对该输入操作进行接收之后,解析出输入操作中用户所输入的第一私钥,从而实现第一私钥的获取。
需要说明的是,本实施例中可以在监测到磁盘数据无法访问如恢复秘钥丢失或者目标位置上存储的信息与第二信息不一致的信息时,生成私钥获取指令,该私钥获取指令用于提示用户是否输入私钥,在用户对电子设备上的特定按键进行按压操作之后,本实施例中检测到用户对特定按键的按压操作进而控制电子设备进入安全解密模式,即用户热键启动特殊恢复模式,在特殊恢复模式下,电子设备中输出私钥输入界面,以提示用户进行私钥输入,在用户输入第一私钥并确认之后,本实施例中对输入操作进行接收,并解析出输入操作中用户所输入的第一私钥,从而实现第一私钥的获取。
在另一种实现方式中,本实施例中可以在电子设备的硬盘中的特定位置上读取用户的第一私钥,如图4中所示,在硬盘中安全存储有用户的第一私钥,基于此,本实施例中可以在硬盘中读取到用户的第一私钥;
需要说明的是,本实施例中可以在监测到磁盘数据无法访问如恢复秘钥丢失或者目标位置上存储的信息与第二信息不一致的信息时,生成私钥获取指令,该私钥获取指令用于在电子设备的硬盘中的特定位置上查找并读取用户的第一私钥。
具体的,用户的第一私钥可以为一个或多个字符组成的字符串。
步骤102:使用第一私钥,对预先保存的目标信息进行解密,以得到第一信息。
其中,目标信息为使用第一私钥对应的第一公钥对第一信息进行加密得到的信息,第一信息至少表征能够获取磁盘密钥的情况下电子设备的运行环境。
具体的,第一信息具体表征能够获取磁盘密钥的情况下电子设备的软硬件运行环境。
例如,第一信息为获取磁盘密钥的过程中所得到的第一度量信息,第一度量信息为对电子设备的运行环境进行参数度量所得到的信息,该第一度量信息被第一公钥进行加密后所得到的信息即为目标信息。
需要说明的是,这里的第一度量信息可以是对电子设备的软硬件运行环境中的一项或多项软硬件运行参数进行度量计算所得到的信息,基于此,使用第一公钥对第一度量信息进行加密之后就可以得到目标信息,再将目标信息保存到某个特征位置,为了区分,这里可以对目标信息保存的位置记为第一位置。本实施例中在对目标信息进行保存后,可以进一步提示用户保存第一私钥,例如,提示用户将第一私钥上传到与电子设备相连接的目标设备中,或者提示用户记录在特殊位置,或者提示用户将第一私钥保存到电子设备中的硬盘中,以便于在磁盘数据无法访问的情况下获取到用户的第一私钥。
另外,本实施例中的获取磁盘密钥的过程是指:对磁盘数据进行加密后对磁盘密钥进行加密以得到被加密的磁盘密钥的过程。例如,本实施例中在首次对磁盘数据进行加密后对磁盘密钥进行首次加密保存的过程中,对电子设备此时的运行环境进行参数度量,得到第一度量信息,该第一度量信息能够表征对磁盘密钥进行首次加密也就是磁盘数据能够被访问但已经被加密后的时候电子设备的运行环境,基于此,将得到的第一度量信息使用第一公钥进行加密,进而将得到的目标信息保存在第一位置上。
基于此,本实施例中在获得到用户的第一私钥之后,使用第一私钥对被保存在第一位置且被第一公钥加密的目标信息进行解密,从而得到第一信息。
步骤103:将第一信息替换目标位置上存储的信息,以使得目标位置上存储的信息与第二信息相一致。
其中,第二信息为预先保存的信息,例如,第二信息为预先保存到某个特定位置上的信息,为了区分,这里可以对第二信息保存的位置记为第二位置,且第二信息至少表征能够获取磁盘密钥的情况下电子设备的运行环境。
具体的,第二信息具体表征能够获取磁盘密钥的情况下电子设备的软硬件运行环境。
例如,第二信息为预先保存在第二位置上的第二度量信息,而第二度量信息在获取磁盘密钥的过程中得到,且第二度量信息为对电子设备的运行环境进行参数度量所得到的信息。
需要说明的是,这里的第二度量信息可以是对电子设备的软硬件运行环境中的一项或多项软硬件运行参数进行度量计算所得到的信息。另外,本实施例中的获取磁盘密钥的过程是指:对磁盘数据进行加密后对磁盘密钥进行加密以得到被加密的磁盘密钥的过程。例如,本实施例中在首次对磁盘数据进行加密后对磁盘密钥进行首次加密保存的过程中,对电子设备此时的运行环境进行参数度量,得到第二度量信息,该第二度量信息能够表征对磁盘密钥进行首次加密也就是磁盘数据能够被访问但已经被加密后的时候电子设备的运行环境,基于此,将得到的第一度量信息保存在第二位置上。
基于此,在将第一信息替换目标位置上存储的信息之后,目标位置上存储的信息为表征能够获取磁盘密钥的情况下电子设备的运行环境的信息,而第二信息同样为能够获取磁盘密钥的情况下电子设备的运行环境的信息,由此,目标位置上存储的信息与第二信息是一致的,而在目标位置上存储的信息与第二信息相一致的情况下磁盘密钥能够被获取,也就是说,在目标位置上存储的信息与第二信息相一致的情况下能够以前文中通过度量信息比对获取磁盘密钥的方式解密磁盘数据,即在目标位置上存储的信息与第二信息相一致的情况下允许磁盘密钥被获取,在获取到磁盘密钥之后能够解密出磁盘数据,使得磁盘数据能够被访问。
由上述方案可知,本申请实施例一的一种解密磁盘数据的控制方法,在磁盘数据无法访问的情况下,获得用户的第一私钥,进而就可以使用第一私钥,对预先保存的目标信息进行解密,以得到第一信息,而这里的第一信息表征在能够获取磁盘密钥的情况下电子设备的运行环境,由此,将第一信息替换目标位置上存储的信息,以使得目标位置上存储的信息与第二信息相一致,这里的第二信息为预先保存的表征能够获取磁盘密钥的情况下电子设备的运行环境的信息,而在目标位置上存储的信息与第二信息相一致的情况下磁盘数据的磁盘密钥能够被获取,基于此,使用所获取到的磁盘密钥解密磁盘数据,使得磁盘数据能够被访问。可见,本实施例中将能够获取磁盘密钥的情况下电子设备的运行环境对应的第一信息进行加密保存,进而在磁盘数据无法访问的时候使用用户的第一私钥解密出这个第一信息,就可以在将第一信息替换目标位置上存储的信息之后,使得目标位置上存储的信息与第二信息相一致,从而能够获取到解密磁盘数据的磁盘秘钥,避免目标位置上存储的信息与第二信息不一致的情况下磁盘数据无法访问的情况。
在具体实现中,目标位置为电子设备中的寄存器,如寄存器PCR(PlatformConfiguration Register)等,在PCR中的特定位置上用于写入对电子设备的运行环境进行参数度量所得到的度量信息。
基于此,本实施例中在步骤103中将第一信息替换目标位置上存储的信息时,具体是将第一信息写入寄存器中,以使得寄存器中存储的信息能够与第二信息相一致。
基于以上实现,在步骤103中将第一信息写入寄存器中之前,本实施例中可以保持寄存器为空,不允许将除了第一信息之外的度量信息被写入。
例如,在磁盘数据无法访问的情况下,获得用户的第一私钥的过程中,如用户热键启动电子设备进入特殊恢复模式的过程中,电子设备也会重新对自己的运行环境进行参数度量,进而得到度量信息,此时,这些度量信息不写入到PCR的特定位置上,保持PCR的特定位置为空。例如,在对secure boot state的度量完成后不扩展到PCR的标志位7上,以便于步骤103中将第一信息写入到PCR的标志位7上,由此使得PCR的标志位7上的信息与第二位置上的第二信息能够一致,由此能够获得到磁盘密钥,进而解密出磁盘数据。
在一种实现方式中,本实施例中获得磁盘密钥时具体可以通过以下方式实现:
首先,读取电子设备中存储的第二私钥。例如,本实施例中可以在电子设备的第三位置上去读取第二私钥,这里的第三位置是为了与前文中的第一位置和第二位置相区别。需要说明的是,第二私钥对应于第二公钥,而这个第二公钥则是在磁盘密钥被加密时所使用的公钥。
基于此,本实施例中使用第二私钥对被第二私钥对应的第二公钥所加密的磁盘密钥进行解密,以得到解密出的磁盘密钥。
例如,本实施例中使用第二私钥采用与第二公钥相应的解密算法对磁盘密钥进行解密,以得到解密出的磁盘密钥。
而在磁盘密钥被解密出之后,使用磁盘密钥解密磁盘数据的过程可以如下所示:
首先,使用磁盘密钥对被加密的全盘加密密钥进行解密,以得到解密出的全盘加密密钥。
例如,使用VMK解密出全盘加密密钥FVEK(Full Volume Encryption Key),而FVEK是参与加密磁盘数据的密钥。
基于此,在解密出全盘加密密钥之后,使用解密出的全盘加密密钥对被加密的磁盘数据进行解密,以得到解密出的磁盘数据。
例如,使用FVEK采用相应的解密算法如高级加密标准AES(Advanced EncryptionStandard)对磁盘数据进行解密,从而得到能够被访问的磁盘数据。
具体实现中,本实施例中解密磁盘密钥以及解密磁盘数据的过程可以通过bitlocker驱动器实现。
在一种实现方式中,为了进一步保证安全性,本实施例中在步骤102使用第一私钥,对预先保存的目标信息进行解密,以得到第一信息之前,还可以有以下步骤,如图5中所示:
步骤104:对第一私钥进行验证,以得到验证结果。
其中,第一私钥的验证结果表征第一私钥是否与电子设备中存储的第一公钥相匹配。
具体的,本实施例中将第一私钥和第一公钥进行比对或校验处理,从而得到第一私钥是否与第一公钥相匹配的验证结果。
基于此,在验证结果表征第一私钥与电子设备中存储的第一公钥相匹配的情况下,执行步骤102,以使用第一私钥,对预先保存的目标信息进行解密,以得到第一信息,而在至少验证结果表征第一私钥与所述电子设备中存储的第一公钥不匹配的情况下,结束当前流程。
也就是说,本实施例中在第一私钥与第一公钥不匹配即第一私钥错误的情况下,不再执行对磁盘密钥的解密流程也不再执行对磁盘数据的解密流程,以保证磁盘数据的安全性。
进一步的,为了保证可靠性,本实施例中可以在验证结果表征第一私钥与所述电子设备中存储的第一公钥不匹配且连续有超过阈值数量的不匹配的验证结果的情况下,再结束当前流程。
也就是说,本实施例可以尝试阈值数量的次数对磁盘密钥进行解密以及对磁盘数据的解密,但是,在尝试阈值数量的次数而仍然无法获取准确的第一私钥的情况下,不再执行对磁盘密钥的解密流程也不再执行对磁盘数据的解密流程,以保证磁盘数据的安全性。
参考图6,为本申请实施例二提供的一种解密磁盘数据的控制装置的结构示意图,该装置可以配置在具有磁盘且磁盘数据被磁盘密钥加密保护的电子设备中,如计算机或服务器等。本实施例中的技术方案用于实现对磁盘数据的安全解密。
具体的,本实施例中的装置可以包含以下单元:
私钥获得单元601,用于在所述磁盘数据无法访问的情况下,获得用户的第一私钥;
信息解密单元602,用于使用所述第一私钥,对预先保存的目标信息进行解密,以得到第一信息;其中,所述目标信息为使用所述第一私钥对应的第一公钥对第一信息进行加密得到的信息,所述第一信息至少表征能够获得磁盘密钥的情况下电子设备的运行环境;
信息替换单元603,用于将所述第一信息替换目标位置上存储的信息,以使得所述目标位置上存储的信息与第二信息相一致,所述第二信息为预先保存的信息,且所述第二信息至少表征能够获得磁盘密钥的情况下所述电子设备的运行环境;
秘钥获得单元604,用于在所述目标位置上存储的信息与所述第二信息相一致的情况下获取所述磁盘密钥,所述磁盘密钥用于解密所述磁盘数据,使得所述磁盘数据能够被访问。
从上述技术方案可以看出,本申请实施例二提供的一种解密磁盘数据的控制装置,在磁盘数据无法访问的情况下,获得用户的第一私钥,进而就可以使用第一私钥,对预先保存的目标信息进行解密,以得到第一信息,而这里的第一信息表征在能够获取磁盘密钥的情况下电子设备的运行环境,由此,将第一信息替换目标位置上存储的信息,以使得目标位置上存储的信息与第二信息相一致,这里的第二信息为预先保存的表征能够获取磁盘密钥的情况下电子设备的运行环境的信息,而在目标位置上存储的信息与第二信息相一致的情况下磁盘数据的磁盘密钥能够被获取,基于此,使用所获取到的磁盘密钥解密磁盘数据,使得磁盘数据能够被访问。可见,本申请中将能够获取磁盘密钥的情况下电子设备的运行环境对应的第一信息进行加密保存,进而在磁盘数据无法访问的时候使用用户的第一私钥解密出这个第一信息,就可以在将第一信息替换目标位置上存储的信息之后,使得目标位置上存储的信息与第二信息相一致,从而能够获取到解密磁盘数据的磁盘秘钥,避免目标位置上存储的信息与第二信息不一致的情况下磁盘数据无法访问的情况。
在一种实现方式中,所述目标位置为所述电子设备中的寄存器;
其中,所述信息替换单元603具体用于:将所述第一信息写入所述寄存器中,以使得所述寄存器中存储的信息能够与所述第二信息相一致。
在一种实现方式中,所述装置还包含如下单元,如图7中所示:
寄存器控制单元605,用于在所述信息替换单元603将所述第一信息写入所述寄存器中之前,保持所述寄存器为空。
在一种实现方式中,所述第一信息为在获取所述磁盘密钥的过程中所得到的第一度量信息,且所述第一度量信息为对所述电子设备的运行环境进行参数度量所得到的信息,所述度量信息被所述第一公钥加密以得到所述目标信息;
所述第二信息为预先保存的第二度量信息,所述第二度量信息在获取所述磁盘密钥的过程中得到,且所述第二度量信息为对所述电子设备的运行环境进行参数度量所得到的信息。
在一种实现方式中,密钥获得单元604获取磁盘密钥时,具体用于:读取所述电子设备中存储的第二私钥;使用所述第二私钥对被所述第二私钥对应的第二公钥所加密的磁盘密钥进行解密,以得到解密出的磁盘密钥。
进一步的,密钥获得单元604还用于解密所述磁盘数据,具体用于:使用所述磁盘密钥对被加密的全盘加密密钥进行解密,以得到解密出的全盘加密密钥;使用所述解密出的全盘加密密钥对被加密的所述磁盘数据进行解密,以得到解密出的磁盘数据。
在一种实现方式中,私钥获得单元601在使用所述第一私钥,对预先保存的目标信息进行解密,以得到第一信息之前,还用于:
对所述第一私钥进行验证,以得到验证结果;所述验证结果表征所述第一私钥是否与所述电子设备中存储的第一公钥相匹配;在所述验证结果表征所述第一私钥与所述电子设备中存储的第一公钥相匹配的情况下,执行所述步骤:使用所述第一私钥,对预先保存的目标信息进行解密,以得到第一信息;在至少所述验证结果表征所述第一私钥与所述电子设备中存储的第一公钥不匹配的情况下,结束当前流程。
在一种实现方式中,私钥获得单元601具体用于:在与电子设备相连接的目标设备中读取用户的第一私钥。
在一种实现方式中,私钥获得单元601具体用于:在电子设备上输出私钥输入界面,在接收到用户针对所述私钥输入界面的输入操作之后,根据所述输入操作获得用户的第一私钥。
需要说明的是,本实施例中各单元的具体实现可以参考前文中的相应内容,此处不再详述。
参考图8,为本申请实施例三提供的一种电子设备的结构示意图,该电子设备可以为具有磁盘且磁盘数据被磁盘密钥加密保护的电子设备,如计算机或服务器等。本实施例中的技术方案用于实现对磁盘数据的安全解密。
具体的,本实施例中的电子设备可以包含以下结构:
磁盘801,用于存储磁盘数据;
BIOS802,用于在所述磁盘数据无法访问的情况下,获得用户的第一私钥;使用所述第一私钥,对预先保存的目标信息进行解密,以得到第一信息;其中,所述目标信息为使用所述第一私钥对应的第一公钥对第一信息进行加密得到的信息,所述第一信息至少表征能够获得磁盘密钥的情况下电子设备的运行环境;将所述第一信息替换目标位置上存储的信息,以使得所述目标位置上存储的信息与第二信息相一致,所述第二信息为预先保存的信息,且所述第二信息至少表征能够获得磁盘密钥的情况下所述电子设备的运行环境;
其中,在所述目标位置上存储的信息与所述第二信息相一致的情况下所述磁盘密钥能够被获取,所述磁盘密钥用于解密所述磁盘数据,使得所述磁盘数据能够被访问。
从上述技术方案可以看出,本申请实施例三提供的一种电子设备,在磁盘数据无法访问的情况下,获得用户的第一私钥,进而就可以使用第一私钥,对预先保存的目标信息进行解密,以得到第一信息,而这里的第一信息表征在能够获取磁盘密钥的情况下电子设备的运行环境,由此,将第一信息替换目标位置上存储的信息,以使得目标位置上存储的信息与第二信息相一致,这里的第二信息为预先保存的表征能够获取磁盘密钥的情况下电子设备的运行环境的信息,而在目标位置上存储的信息与第二信息相一致的情况下磁盘数据的磁盘密钥能够被获取,基于此,使用所获取到的磁盘密钥解密磁盘数据,使得磁盘数据能够被访问。可见,本申请中将能够获取磁盘密钥的情况下电子设备的运行环境对应的第一信息进行加密保存,进而在磁盘数据无法访问的时候使用用户的第一私钥解密出这个第一信息,就可以在将第一信息替换目标位置上存储的信息之后,使得目标位置上存储的信息与第二信息相一致,从而能够获取到解密磁盘数据的磁盘秘钥,避免目标位置上存储的信息与第二信息不一致的情况下磁盘数据无法访问的情况。
以电子设备为个人电脑为例,本申请的发明人在使用个人电脑的过程中发现,常用的电脑在出货时通常满足操作系统供应商给配置的设备加密条件,用户在操作系统上在使用账户后,操作系统OS(operation system)会自动激活Bitlocker进行全盘加密,并把恢复密钥保存到操作系统供应商的网站中。
但是,因为各种原因,譬如恢复密钥的网站跨国无法访问的情况,再如供应商网站里面找不到恢复密钥,等等,经常有用户无法找回恢复密钥的情况,此时会导致用户存储在磁盘中的磁盘数据丢失,对用户以及公司造成不良影响。
而针对以上问题,本申请的发明人经过进一步研究,提出一种安全解锁磁盘的Bitlocker的技术方案,包含有如下关键内容:
首先,当Bitlocker被激活后,基本输入输出系统BIOS(Basic Input OutputSystem)生成非对称密钥(或对称密钥),引导用户保存私钥(或密码);
其次,BIOS将正常开机度量产生的微控制器TPM(Trusted Platfrom Module)的PCR(Platform Configuration Register)值(即前文中的第一信息)用非对称密钥加密并备份;
基于以上实现,当用户无法找回Bitlocker的恢复密钥时,可引导进入特殊恢复模式,用验证用户保存的私钥(或密码)解密保存的TPM PCR(即前文中的目标信息),并用之取代实时的度量信息。此时TPM能正常解密出bitlocker的VMK,即磁盘密钥,从而解锁Bitlocker的磁盘数据。
由此,在采用本申请所提出的技术方案之后,可在Bitlocker恢复密钥丢失的情况下,依然能提供一种安全的解锁方式。
首先,结合图9所示的中央处理器CPU(central processing unit)、BIOS、操作系统启动管理器OS boot manager、PCR和操作系统引导程序OS boot loader对Bitlocker加密及Bitlocker解锁的流程进行说明:
1、Bitlocker采用AES加密硬盘,加密所使用的密钥为:全盘加密密钥(FullVolume Encryption Key)FVEK;
2、通过磁盘密钥VMK(Volume Master Key)加密保护FVEK;
3、通过key protector保护VMK。其中,本申请中保护VMK所采用的key protector可以有两种:TPM和恢复密钥(Numerical Password),如下:
TPM:TPM使用SRK公钥加密VMK,在加密操作时将度量得到的平台测量值写入到PCR的标志位7和标志位11的存储位置上;其中平台测量值可以通过哈希计算得到;
恢复密钥:由恢复密钥和salt(in metadata block)计算出一个256-bit的AES-CCMkey,用以加密VMK,将加密的VMK保存成另外一个备份;
当CPU安全启动后,BIOS将当前平台度量值写入PCR,在当前平台度量PCR结果和密封VMK时的PCR结果一致,OS boot manager调用TPM,开启并使用SRK私钥解密VMK;然后用VMK解密FVEK;最后用FVEK解密硬盘,由此能够访问硬盘中的数据。
而如果当前平台度量PCR结果和密封VMK时的PCR结果不一致,即度量信息发生变化,比如TPM被重设reset或者firmware更新等,此时无法开启并解密得到VMK,那么操作系统进入BitLocker的恢复模式recoverymode,此时要求用户输入恢复密钥,用于解密VMK。
但是,如果用户忘记恢复密钥或者无法在网站中读取到恢复秘钥,那么VMK不能成功解密,也就无法解密出FVEK,也就无法解密硬盘,无法访问硬盘数据。
基于此,本申请提出的技术方案中,在TPM和恢复密钥两个keyprotector都失效导致硬盘不能被解锁的情况下,新建特殊恢复模式来应对这种情况,如下:
首先,建立阶段,如图10中所示:
1、当侦测到自动设备解密激活后,BIOS通过加密引擎生成公私钥。
2、引导用户,保存私钥。有多种实现方式,如上传到某个位置、存储到外接设备如通用串行总线USB(Universal Serial Bus)设备、在屏幕上输出提示用户记录,等等。
3、公钥加密PCR后并保存。如前文中保存下来的目标信息。
其次,启动阶段,如图11中所示:
1、当TPM和恢复密钥两个keyprotector都失效时,用户可以通过热键启动触发操作系统进入特殊恢复模式。该模式下,对secure boot state的度量完成后,不扩展到TPMPCR 7,即不将当前度量的信息写入到PCR 7中,以保持PCR 7空值。
2、BIOS提示用户:提供私钥,在用户提供私钥后,对私钥进行验证。
3、BIOS得到正确的私钥后,解密保存的PCR,并将解密出的PCR重新写入TPM PCR 7中。
4、引导OS BootManager执行,因为此时TPM PCR 7的值和密封VMK时的PCR 7的值一致,VMK会被成功解封,后续解密出FVEK,从而成功找回用户数据。
最后,删除机制:
本申请中建立适当的删除机制,防止滥用或者攻击。譬如:Bitlocker无法解密时输入的私钥错误超过一定次数时,停止当前处理流程,不再允许对硬盘进行解密。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
- 一种解密磁盘数据的控制方法及装置
- 磁盘数据加密方法、解密方法、装置、设备和存储介质