发明内容
本发明实施例提供一种数据解密方法和装置及系统,用解决磁盘上的加密数据有可能无法解密的缺陷。
本发明实施例提供一种数据解密方法,包括:
主机根据本地磁盘的身份标识和管理所述本地磁盘的主机用户的身份标识,获取服务器上保存的所述本地磁盘的密码信息;所述服务器上保存有一个或多个主机用户的磁盘密码信息,所述主机用户的磁盘密码信息包括所述主机用户管理的各个磁盘的密码信息,所述磁盘的密码信息包括磁盘的身份标识、管理所述磁盘的主机用户的身份标识和所述磁盘的加密密码;
所述主机根据所述本地磁盘的密码信息中本地磁盘的加密密码,解密本地磁盘上的加密数据。
本发明实施例提供一种数据解密装置,包括:保存有加密数据的磁盘,还包括:
获取模块,用于根据本地磁盘的身份标识和管理所述本地磁盘的主机用户的身份标识,获取服务器上保存的所述本地磁盘的密码信息;所述服务器上保存有一个或多个主机用户的磁盘密码信息,所述主机用户的磁盘密码信息包括所述主机用户管理的各个磁盘的密码信息,所述磁盘的密码信息包括磁盘的身份标识、管理所述磁盘的主机用户的身份标识和所述磁盘的加密密码;
解密模块,用于根据所述本地磁盘的密码信息中本地磁盘的加密密码,解密本地磁盘上的加密数据。
本发明实施例还提供一种磁盘加密系统,包括:服务器和主机;
所述一个或多个主机用户的磁盘密码信息,所述主机用户的磁盘密码信息包括所述主机用户管理的各个磁盘的密码信息,所述磁盘的密码信息包括磁盘的身份标识、管理所述磁盘的主机用户的身份标识和所述磁盘的加密密码;
所述主机包括:
保存有加密数据的磁盘;
获取模块,用于根据本地磁盘的身份标识和管理所述本地磁盘的主机用户的身份标识,获取服务器上保存的所述本地磁盘的密码信息;
解密模块,用于根据所述本地磁盘的密码信息中本地磁盘的加密密码,解密本地磁盘上的加密数据。
进一步,所述系统还包括:所述主机的外部存储设备,用于存储私钥;
所述解密模块,还用于根据从所述外部存储设备读取的私钥,对所述磁盘的加密密码进行解密;所述磁盘的加密密码为加密所述磁盘的密码经公钥加密后的密文;
所述解密模块,还用于根据经所述私钥解密后的所述磁盘的加密密码,解密所述磁盘上的加密数据。
上述技术方案中,将磁盘的密码信息保存在位于主机远端的服务器上。主机在解密磁盘上的加密数据时,从服务器上获取该磁盘的密码信息。因此,在磁盘的密码信息被篡改或存储密码信息的位置损坏之后,主机仍然可以解密该磁盘上的加密数据。
具体实施方式
本发明将主机的本地磁盘的密码信息保存至位于远端的服务器上。磁盘上的数据经密码加密后存储在磁盘上的部分扇区中。一个磁盘的密码信息包括磁盘的身份标识、管理该磁盘的用户的身份标识和该磁盘的加密密码。其中,磁盘的加密密码为加密该磁盘上的数据时所使用的密码。一个主机用户可以管理一个或多个磁盘。一个主机用户的磁盘密码信息包括该主机用户管理的磁盘的密码信息。服务器上保存有一个或多个主机用户的磁盘密码信息。服务器可将一个或多个主机用户管理的磁盘的密码信息组织成磁盘密码信息列表,磁盘密码信息列表中一个主机用户可以对应有一个磁盘的密码信息,也可以对应有多个磁盘的密码信息。本实施例中主机可以是虚拟机(VirtualMachine,简称VM),磁盘可以是VM磁盘。
图1为本发明提供的一种数据解密方法流程图。如图1所示,本实施例提供的方法包括:
步骤11:主机根据本地磁盘的身份标识和管理所述本地磁盘的主机用户的身份标识,获取服务器上保存的所述本地磁盘的密码信息。
当前主机用户需要解密所管理的磁盘上的加密数据时,主机从服务器获取该磁盘的密码信息。主机可以直接从服务器下载本地磁盘的密码信息。例如,主机向所述服务器发送包括本地磁盘的身份标识和管理所述本地磁盘的主机用户的身份标识的获取请求。服务器先根据主机用户的身份标识在磁盘密码信息列表中查找所述主机用户的磁盘密码信息,然后根据获取请求中磁盘的身份标识从查找到的磁盘密码信息中,查找上述磁盘的密码信息,然后向主机返回磁盘的密码信息。磁盘的身份标识可以是由磁盘的空间大小、原始索引、原始分区列表等组成的信息。
主机也可以先从服务器下载管理本地磁盘的主机用户的磁盘密码信息,然后,在该主机用户的磁盘密码信息中查找本地磁盘的密码信息。例如,主机向服务器发送包括管理所述本地磁盘的主机用户的身份标识的获取请求。服务器向主机返回该主机用户的磁盘密码信息。所述主机根据所述本地磁盘的身份标识,在所述主机用户的磁盘密码信息中确定所述本地磁盘的密码信息。每个磁盘的密码信息中包括磁盘的身份标识。主机通过该主机用户当前所需要获取的加密数据所在的本地磁盘的身份标识,在该主机用户的磁盘密码信息中查找该本地磁盘的密码信息。
步骤12:主机根据所述本地磁盘的密码信息中本地磁盘的加密密码,解密本地磁盘上的加密数据。
主机获取本地磁盘的密码信息后,根据其中的所述本地磁盘的加密密码,解密本地磁盘上的加密数据。
可选地,磁盘的密码信息中磁盘的加密密码为加密所述磁盘的密码经公钥加密后的密文。例如,采用非对称加密算法的公钥对加密磁盘的密码进行加密。主机根据从外部设备读取的私钥,对所述本地磁盘的加密密码进行解密。外部设备可以是USB Key,其中私钥可以是上述非对称加密算法的公钥对应的私钥。主机根据经所述私钥解密后的所述磁盘的加密密码,解密所述本地磁盘上的加密数据。
本实施例提供的技术方案中,将磁盘的密码信息保存在位于主机远端的服务器上。主机在解密磁盘上的加密数据时,从服务器上获取该磁盘的密码信息。因此,在磁盘的密码信息被篡改或存储密码信息的位置损坏之后,主机仍然可以解密该磁盘上的加密数据。
图2为本发明实施例提供的一种数据解密系统结构示意图。图2中,磁盘上的数据采用对称密钥加密算法进行加解密,加密磁盘上数据的对称密钥采用非对称密钥加密算法的公钥进行加密,上述对称密钥的密文采用非对称密钥加密算法的私钥进行解密。磁盘除保存有经上述对称密钥加密后的加密数据外,还保存有本地密码信息(Local Key Information,简称LKI)。本地密码信息中包括磁盘的身份标识、管理该磁盘的主机用户的身份标识和上述对称密钥的密文以及该本地密码信息的哈希值。在位于主机远端的服务器上的密码信息列表中,保存有多个主机用户管理的各个磁盘的本地密码信息,以用于对各磁盘的本地密码信息进行备份。另外,加密上述对称密钥的私钥存储在管理所述磁盘的主机用户可随身携带的设备中,例如USB Key中。
图3为本发明提供的另一种数据解密方法流程图。本实施例适用于磁盘的密码信息被篡改的场景。如图3所示,本实施例提供的方法包括:
步骤31:主机从本地磁盘保存的本地密码信息中读取哈希值,对所述本地密码信息进行哈希运算生成哈希值,判断读取的哈希值与生成的哈希值是否一致。
主机的本地磁盘保存有本地密码信息,本地密码信息包括磁盘的身份标识、管理所述磁盘的主机用户的身份标识和所述磁盘的加密信息以及所述本地密码信息的哈希值。
主机在解密磁盘的加密数据之前,先从该磁盘的本地密码信息中读取该磁盘的本地密码信息的哈希值。然后,对所述本地密码信息进行哈希运算生成哈希值,判断读取的哈希值与生成的哈希值是否一致,以确定本地密码信息的完整性。如果一致,确定本地密码信息没有被篡改。如果不一致,确定本地密码信息已被篡改,需要从服务器下载所述磁盘的本地密码信息。
步骤32:主机确定读取的哈希值与生成的哈希值不一致时,根据主机用户的身份标识从服务器下载所述主机用户的磁盘密码信息。
步骤33:主机根据本地磁盘的身份标识,在所述主机用户的密码信息列表中确定所述本地磁盘的密码信息。
磁盘的身份标识记录了磁盘的空间大小、原始索引、原始分区列表等信息。不同的磁盘有可能具有相同的身份标识。通过磁盘的身份标识,可以从当前主机户的磁盘密码信息中查找到磁盘的密码信息。
在主机用户的密码信息列表中,主机查找与所述本地磁盘的身份标识对应的密码信息。在主机用户的密码信息列表中,如果查找到多条与所述本地磁盘的身份标识对应的密码信息。此时,主机可以依次根据查找到的密码信息中磁盘的加密密码,尝试解密本地磁盘上的加密数据。能成功解密上述加密数据的加密密码,则视为上述加密数据的加密密码,因此,可以将成功解密上述加密数据的加密密码所对应的磁盘的密码信息,确定为本地磁盘的密码信息。在主机用户的密码信息列表中,如果只查找到一条与所述本地磁盘的身份标识对应的密码信息,则该条密码信息为本地磁盘的密码信息。
步骤34:主机从外部存储设备读取私钥,根据所述私钥对加密所述磁盘的对称密钥的密文进行解密,根据经所述私钥解密后的对称密钥,解密所述本地磁盘上的加密数据。
步骤35:主机将本地磁盘的密码信息写入所述本地磁盘,以覆盖所述本地磁盘保存的本地密码信息。
本实施例提供的技术方案中,将磁盘的密码信息保存在位于主机远端的服务器上。主机确定磁盘中保存的本地密码信息被篡改后,根据管理该磁盘的用户的身份标识从服务器上获取该磁盘的密码信息,对磁盘上的数据进行解密。主机还可将从服务器下载的磁盘的密码信息保存在磁盘上。
图4为本发明提供的又一种数据解密方法流程图。本实施例适用于磁盘的密码信息被篡改的场景。如图4所示,本实施例提供的方法包括:
步骤41:主机从磁盘中读取本地磁盘的本地密码信息。
步骤42:在读取失败时,主机根据主机用户的身份标识从服务器下载所述主机用户的磁盘密码信息。
步骤43:主机根据本地磁盘的身份标识,在上述主机用户的磁盘密码信息中确定本地磁盘的密码信息。
步骤44:主机从外部存储设备读取私钥,根据所述私钥对加密所述磁盘的对称密钥的密文进行解密,根据经所述私钥解密后的对称密钥,解密所述本地磁盘上的加密数据。
步骤45:主机将本地磁盘的密码信息写入新磁盘,并将本地磁盘的加密数据保存到所述新磁盘。
本实施例提供的技术方案中,将磁盘的密码信息保存在位于主机远端的服务器上。主机读取磁盘中保存的本地密码信息失败时,确定磁盘保存本地密码信息的位置被损坏。此时,主机根据管理该磁盘的用户的身份标识从服务器上获取该磁盘的密码信息,对磁盘上的数据进行解密。
图5为本发明提供的一种数据恢复装置结构示意图。如图5所示,本实施例提供的装置包括:保存有加密数据的磁盘50,还包括:
获取模块51,用于根据本地磁盘的身份标识和管理所述本地磁盘的主机用户的身份标识,获取服务器上保存的所述本地磁盘的密码信息;所述服务器上保存有一个或多个主机用户的磁盘密码信息,所述主机用户的磁盘密码信息包括所述主机用户管理的各个磁盘的密码信息,所述磁盘的密码信息包括磁盘的身份标识、管理所述磁盘的主机用户的身份标识和所述磁盘的加密密码。
可选地,获取模块,还用于向所述服务器发送包括本地磁盘的身份标识和管理所述本地磁盘的主机用户的身份标识的获取请求;接收所述服务器返回的所述本地磁盘的密码信息。
可选地,获取模块,还用于向所述服务器发送包括管理所述本地磁盘的主机用户的身份标识的获取请求;接收所述服务器返回的所述主机用户的磁盘密码信息;根据所述本地磁盘的身份标识,在所述主机用户的磁盘密码信息中确定所述本地磁盘的密码信息。进一步,所述获取模块,还用于在所述主机用户的磁盘密码信息中,查找与所述本地磁盘的身份标识对应的密码信息;如果查找到多条与所述本地磁盘的身份标识对应的密码信息,依次根据查找到的密码信息中磁盘的加密密码,解密本地磁盘上的加密数据,将成功解密所述加密数据的加密密码所对应的磁盘的密码信息,确定为所述本地磁盘的密码信息。
解密模块52,用于根据所述本地磁盘的密码信息中本地磁盘的加密密码,解密本地磁盘上的加密数据。
可选地,解密模块,还用于根据从外部设备读取的私钥,对所述本地磁盘的加密密码进行解密;所述本地磁盘的加密密码为加密所述磁盘的密码经公钥加密后的密文。所述解密模块,还用于根据经所述私钥解密后的所述磁盘的加密密码,解密所述本地磁盘上的加密数据。
上述模块可参见图1对应实施例中描述,在此不再赘述。
进一步,所述本地磁盘保存的本地密码信息包括磁盘的身份标识、管理所述磁盘的主机用户的身份标识和所述磁盘的加密密码以及所述本地密码信息的哈希值。图5所示的装置还可包括:第一读写模块。
第一读写模块,用于从所述本地磁盘保存的本地密码信息中读取哈希值,并对所述本地密码信息进行哈希运算生成哈希值,判断读取的哈希值与生成的哈希值是否一致;
所述获取模块,还用于确定读取的哈希值与生成的哈希值不一致时,根据本地磁盘的身份标识和管理所述本地磁盘的主机用户的身份标识,获取服务器上保存的所述本地磁盘的密码信息;
所述第一读写模块,还用于在所述根据所述本地磁盘的加密密码,解密本地磁盘上的加密数据之后,将所述本地磁盘的密码信息写入所述本地磁盘,以覆盖所述本地磁盘保存的本地密码信息。
通过以上模块,在磁盘保存的本地密码信息被篡改时,可以通过服务器上保存的密码信息,对磁盘上的加密数据进行解密。上述模块可参见图3对应实施例中描述,在此不再赘述。
进一步,所述本地磁盘保存的本地密码信息包括磁盘的身份标识、管理所述磁盘的主机用户的身份标识和所述磁盘的加密密码以及所述本地密码信息的哈希值。图5所示的装置还可包括:第二读写模块。
第二读写模块,用于读取所述本地磁盘保存的本地密码信息;
所述获取模块,还用于读取所述本地磁盘保存的本地密码信息失败时,根据所述本地磁盘的身份标识和管理所述本地磁盘的主机用户的身份标识,获取所述服务器上保存的所述本地磁盘的密码信息;
所述第二读写模块,还用于在所述根据所述本地磁盘的加密密码,解密本地磁盘上的加密数据之后,将所述磁盘的密码信息写入新磁盘,并将所述加密数据保存到所述新磁盘。
通过以上模块,在磁盘上保存本地密码信息的位置被损坏时,可以通过服务器上保存的密码信息,对磁盘上的加密数据进行解密。上述模块可参见图4对应实施例中描述,在此不再赘述。
本发明还提供一种磁盘加密系统,包括:服务器和主机。
其中,所述服务器中上保存有一个或多个主机用户的磁盘密码信息,所述主机用户的磁盘密码信息包括所述主机用户管理的各个磁盘的密码信息,所述磁盘的密码信息包括磁盘的身份标识、管理所述磁盘的主机用户的身份标识和所述磁盘的加密密码;
其中,所述主机包括:
保存有加密数据的磁盘;
获取模块,用于根据本地磁盘的身份标识和管理所述本地磁盘的主机用户的身份标识,获取服务器上保存的所述本地磁盘的密码信息;
解密模块,用于根据所述本地磁盘的密码信息中本地磁盘的加密密码,解密本地磁盘上的加密数据。
上述模块可参见图1对应实施例中描述,在此不再赘述。
进一步,系统还包括:所述主机的外部存储设备,用于存储私钥;
所述解密模块,还用于根据从所述外部存储设备读取的私钥,对所述磁盘的加密密码进行解密;所述磁盘的加密密码为加密所述磁盘的密码经公钥加密后的密文;
所述解密模块,还用于根据经所述私钥解密后的所述磁盘的加密密码,解密所述磁盘上的加密数据。
可选地,还包括:第一读写模块。
第一读写模块,用于从所述本地磁盘保存的本地密码信息中读取哈希值,并对所述本地密码信息进行哈希运算生成哈希值,判断读取的哈希值与生成的哈希值是否一致;
所述获取模块,还用于确定读取的哈希值与生成的哈希值不一致时,根据本地磁盘的身份标识和管理所述本地磁盘的主机用户的身份标识,获取服务器上保存的所述本地磁盘的密码信息;
所述第一读写模块,还用于在所述根据所述本地磁盘的加密密码,解密本地磁盘上的加密数据之后,将所述本地磁盘的密码信息写入所述本地磁盘,以覆盖所述本地磁盘保存的本地密码信息。
上述模块可参见图3对应实施例中描述,在此不再赘述。
可选地,所述主机还包括:第二读写模块。
第二读写模块,用于读取所述本地磁盘保存的本地密码信息;
所述获取模块,还用于读取所述本地磁盘保存的本地密码信息失败时,根据所述本地磁盘的身份标识和管理所述本地磁盘的主机用户的身份标识,获取所述服务器上保存的所述本地磁盘的密码信息;
所述第二读写模块,还用于在所述根据所述本地磁盘的加密密码,解密本地磁盘上的加密数据之后,将所述磁盘的密码信息写入新磁盘,并将所述加密数据保存到所述新磁盘。
上述模块可参见图4对应实施例中描述,在此不再赘述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。