一种本地数据的安全保护***和方法
技术领域
本发明涉及信息安全技术领域,具体来说,涉及一种本地数据的安全保护***和方法。
背景技术
随着人们的日常生活,电子数据如私人资料和重要文件大部分以数据形式存储于电脑硬盘上,这些资料极易被黑客通过对电脑植入木马软件被窃取。近年来国内外不乏大量个人***密事件发生,个人资料信息安全成了当今热门话题。
现有电子文档透明加解密***中,常用的方法是基于文件重定向进行透明加解密,虽然对文件进行了一系列的保护措施,但保存文件数据的加密文件从文件创建开始到彻底删除,始终保存在当前终端计算机上。只要获得这些数据文件,虽然我们获得的数据是密文乱码,但包含文件数据的全部内容,理论上总有技术手段可以将文件数据密文乱码恢复成明文。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
本发明的目的是提供一种本地数据的安全保护***和方法,不依赖联网环境,将数据文件破碎分离存储到计算机密盘和移动密盘中,保证用户的私有数据“绝对安全”,有效的克服了目前现有技术存在的上述不足。
本发明的目的是通过以下技术方案来实现:
根据本发明的一方面,提供了一种本地数据的安全存储方法,该本地数据的安全存储方法包括以下步骤:
将待保护的数据文件的按照预先设置的文件属性信息和填充信息,写入预先设置的计算机密盘的虚假文件中;
调用预先设置的移动密盘随机生成数据加密密钥和破碎密钥,然后用预先设置的USBKey中存储的加密公钥分别对数据加密密钥和破碎密钥进行加密,得到数据加密密钥密文和破碎密钥密文;
利用所述数据加密密钥对待保护的数据文件进行加密,生成密文数据,再根据预先设置的破碎方法和破碎密钥对所述密文数据进行破碎分块,得到n份碎片文件,并计算每份碎片文件HASH值;
调用预先配置的碎片文件在计算机密盘与移动密盘的存储比例,按照存储比例将n份碎片文件分成两组碎片文件,并分别向所述计算机密盘和移动密盘发送相对应的碎片文件;
将预先配置的待保护的数据文件的相关信息存储在预先设置的索引数据库的文件关键信息表和碎片索引信息表的各数据项中;
将与移动密盘相对应的碎片文件存储在移动密盘中,并将与计算机密盘相对应的碎片文件存储到计算机密盘的隐藏文件夹中,清除内存。
进一步的,还包括:
在使用移动密盘和USBKey之前,通过预先设置的登录信息校验用户身份,在用户身份通过校验的情况下,对USBKey中预先存储的加密公私钥和移动密盘进行使用。
进一步的,所述文件关键信息表包括:数据/虚假文件ID、密盘存储碎片份数、移动密盘存储碎片份数、数据加密密钥密文、破碎密钥密文、碎片HASH值字段;碎片索引信息表包括:碎片HASH值、碎片存储位置、碎片引用数字段。
进一步的,还包括:
用于在第一次使用移动密盘的情况下,将预先设置的移动密盘ID、移动密盘路径、预绑定设备ID、破碎分数n以及计算机密盘的碎片存储比例写入预先设置的配置文件,即实现设备的绑定;
将配置文件中的已绑定设备ID信息删除,即实现设备的解除绑定。
根据本发明的另一方面,提供了一种本地数据的安全存储装置,该本地数据的安全存储装置包括:
虚假文件写入模块,用于将待保护的数据文件的按照预先设置的文件属性信息和填充信息,写入预先设置的计算机密盘的虚假文件中;
密钥生成保护模块,用于调用预先设置的移动密盘随机生成数据加密密钥和破碎密钥,然后用预先设置的USBKey中存储的加密公钥分别对数据加密密钥和破碎密钥进行加密,得到数据加密密钥密文和破碎密钥密文;
加密破碎模块,利用所述数据加密密钥对待保护的数据文件进行加密,生成密文数据,再根据预先设置的破碎方法和破碎密钥对所述密文数据进行破碎分块,得到n份碎片文件,并计算每份碎片文件HASH值;
碎片文件分组模块,用于调用预先配置的碎片文件在计算机密盘与移动密盘的存储比例,按照存储比例将n份碎片文件分成两组碎片文件,并分别向所述计算机密盘和移动密盘发送相对应的碎片文件;
索引数据库生成模块,用于将预先配置的待保护的数据文件的相关信息存储在预先设置的索引数据库的文件关键信息表和碎片索引信息表的各数据项中;
碎片文件存储模块,用于将与移动密盘相对应的碎片文件存储在移动密盘中;并将与计算机密盘相对应的碎片文件存储到计算机密盘的隐藏文件夹中,清除内存。
进一步的,还包括:
身份认证模块,用于在使用移动密盘和USBKey之前,通过预先设置的登录信息校验用户身份,在用户身份通过校验的情况下,对USBKey中预先存储的加密公私钥和移动密盘进行使用。
进一步的,所述文件关键信息表包括:数据/虚假文件ID、密盘存储碎片份数、移动密盘存储碎片份数、数据加密密钥密文、破碎密钥密文、碎片HASH值字段;碎片索引信息表包括:碎片HASH值、碎片存储位置、碎片引用数字段。
根据本发明的另一方面,提供了一种本地数据的安全读取方法,该本地数据的安全读取方法包括以下步骤:
步骤1:读取预先存储在计算机密盘的虚假文件中的文件ID,根据虚假文件ID读取预先配置在索引数据库中的与虚假文件对应的所有碎片文件的HASH值;
步骤2:根据所有碎片文件的HASH值,分别在所述移动密盘和计算机密盘中查询与所有碎片文件的HASH值一致的碎片文件,直到找到预先设置的n份碎片文件;
步骤3:对所有n份碎片文件逐一计算HASH值,与虚假文件对应的HASH值碎片文件进行一致性校验;在虚假文件对应的HASH值碎片文件与n份碎片文件的HASH值存在不一致的情况下,***自动执行预先存储的返回错误结束操作的指令;在虚假文件对应的HASH值碎片文件与n份碎片文件的HASH值一致的情况下,则执行步骤4;
步骤4:将在计算机密盘中查找的碎片文件读入移动密盘;
步骤5:调用移动密盘预先设置的密钥存储区内存储的加密私钥,分别解密索引数据库中碎片文件ID 对应的数据加密密钥密文和破碎密钥密文,得到数据加密密钥和破碎密钥;利用与破碎算放相适配的重组算法和破碎密钥对n份碎片文件进行重组得到数据文件密文,再用数据加密密钥解密数据文件密文,得到数据文件;
步骤6:计算步骤5中所述数据文件的HASH值,与虚假文件中受保护数据文件的HASH值进行比对,在比对结果一致的情况下,将数据文件内容展示给用户;否则,执行预先存储的返回错误结束操作的指令。
根据本发明的另一方面,提供了一种本地数据的安全读取装置,该本地数据的安全读取装置包括:
虚假文件读取模块,用于读取预先存储在计算机密盘的虚假文件中的文件ID,根据虚假文件ID读取预先配置在索引数据库中的与虚假文件对应的所有碎片文件的HASH值;
碎片存储查询模块,用于根据所有碎片文件的HASH值,分别在所述移动密盘和计算机密盘中查询与所有碎片文件的HASH值一致的碎片文件,直到找到预先设置的n份碎片文件;
碎片文件匹配模块,用于对所有n份碎片文件逐一计算HASH值,与虚假文件对应的HASH值碎片文件进行一致性校验;在虚假文件对应的HASH值碎片文件与n份碎片文件的HASH值存在不一致的情况下,***自动执行预先存储的返回错误结束操作的指令;
碎片文件移动模块,用于在虚假文件对应的HASH值碎片文件与n份碎片文件的HASH值一致的情况下;将在计算机密盘中查找的碎片文件读入移动密盘;
重组解密模块,用于调用移动密盘预先设置的密钥存储区内存储的加密私钥,分别解密索引数据库中碎片文件ID 对应的数据加密密钥密文和破碎密钥密文,得到数据加密密钥和破碎密钥;利用与破碎算放相适配的重组算法和破碎密钥对n份碎片文件进行重组得到数据文件密文,再用数据加密密钥解密数据文件密文,得到数据文件;
文件认证模块,用于计算重组解密模块得到的所述数据文件的HASH值,与虚假文件中受保护数据文件的HASH值进行比对,在比对结果一致的情况下,将数据文件内容展示给用户;否则,执行预先存储的返回错误结束操作的指令。
根据本发明的另一方面,提供了一种本地数据的安全保护***,该本地数据的安全保护***包括本地数据的安全存储装置和本地数据的安全读取装置,其中,所述本地数据的安全存储装置包括:
虚假文件写入模块,用于将待保护的数据文件的按照预先设置的文件属性信息和填充信息,写入预先设置的计算机密盘的虚假文件中;
密钥生成保护模块,用于调用预先设置的移动密盘随机生成数据加密密钥和破碎密钥,然后用预先设置的USBKey中存储的加密公钥分别对数据加密密钥和破碎密钥进行加密,得到数据加密密钥密文和破碎密钥密文;
加密破碎模块,利用所述数据加密密钥对待保护的数据文件进行加密,生成密文数据,再根据预先设置的破碎方法和破碎密钥对所述密文数据进行破碎分块,得到n份碎片文件,并计算每份碎片文件HASH值;
碎片文件分组模块,用于调用预先配置的碎片文件在计算机密盘与移动密盘的存储比例,按照存储比例将n份碎片文件分成两组碎片文件,并分别向所述计算机密盘和移动密盘发送相对应的碎片文件;
索引数据库生成模块,用于将预先配置的待保护的数据文件的相关信息存储在预先设置的索引数据库的文件关键信息表和碎片索引信息表的各数据项中;
碎片文件存储模块,用于将与移动密盘相对应的碎片文件存储在移动密盘中;并将与计算机密盘相对应的碎片文件存储到计算机密盘的隐藏文件夹中,清除内存;
所述本地数据的安全读取装置包括:
虚假文件读取模块,用于读取预先存储在计算机密盘的虚假文件中的文件ID,根据虚假文件ID读取预先配置在索引数据库中的与虚假文件对应的所有碎片文件的HASH值;
碎片存储查询模块,用于根据所有碎片文件的HASH值,分别在所述移动密盘和计算机密盘中查询与所有碎片文件的HASH值一致的碎片文件,直到找到预先设置的n份碎片文件;
碎片文件匹配模块,用于对所有n份碎片文件逐一计算HASH值,与虚假文件对应的HASH值碎片文件进行一致性校验;在虚假文件对应的HASH值碎片文件与n份碎片文件的HASH值存在不一致的情况下,***自动执行预先存储的返回错误结束操作的指令;
碎片文件移动模块,用于在虚假文件对应的HASH值碎片文件与n份碎片文件的HASH值一致的情况下;将在计算机密盘中查找的碎片文件读入移动密盘;
重组解密模块,用于调用移动密盘预先设置的密钥存储区内存储的加密私钥,分别解密索引数据库中碎片文件ID 对应的数据加密密钥密文和破碎密钥密文,得到数据加密密钥和破碎密钥;利用与破碎算放相适配的重组算法和破碎密钥对n份碎片文件进行重组得到数据文件密文,再用数据加密密钥解密数据文件密文,得到数据文件;
文件认证模块,用于计算重组解密模块得到的所述数据文件的HASH值,与虚假文件中受保护数据文件的HASH值进行比对,在比对结果一致的情况下,将数据文件内容展示给用户;否则,执行预先存储的返回错误结束操作的指令。
本发明的有益效果为:。
(1)本发明使用加密破碎技术,将数据文件加密破碎和分离存储,分存到计算机密盘和移动密盘中。计算机(笔记本)和移动密盘任何一方丢失或泄密,由于它们仅存有数据的部分碎片,攻击者不可能通过部分碎片恢复完整数据;
(2)即使计算机和移动密盘同时被窃取,移动密盘中的数据有加密和有限次数的用户PIN码的双重保护,有效降低了攻击者从移动密盘读取碎片文件的可能性;
(3)在读取受保护的数据文件时,通过校验碎片HASH值和重组的数据文件的HASH值,以确保用户读取的受保护数据文件与上次存储时的数据文件一致,有效保证了受保护数据文件的完整性和可用性;
(4)使用内核层文件驱动过滤技术对文件进行透明加解密,不影响用户的使用习惯,具有良好的用户体验;
综上所述,本发明为用户提供了安全性极高、用户体验较好的本地数据安全保护方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例所述的一种本地数据的安全存储方法的流程示意图;
图2是根据本发明实施例所述的一种本地数据的安全存储装置的结构示意图;
图3是根据本发明实施例所述的一种本地数据的安全读取方法的流程示意图;
图4是根据本发明实施例所述的一种本地数据的安全读取装置的流程示意图;
图5是根据本发明实施例所述的一种本地数据的安全***的硬件结构示意图;
图6是根据本发明实施例所述的一种本地数据的安全方法的待保护的数据文件的安全存储形态示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,根据本发明实施例所述的根据本发明的一方面,提供了一种本地数据的安全存储方法,该本地数据的安全存储方法包括以下步骤:
将待保护的数据文件的按照预先设置的文件属性信息和填充信息,写入预先设置的计算机密盘的虚假文件中;
调用预先设置的移动密盘随机生成数据加密密钥和破碎密钥,然后用预先设置的USBKey中存储的加密公钥分别对数据加密密钥和破碎密钥进行加密,得到数据加密密钥密文和破碎密钥密文;
利用所述数据加密密钥对待保护的数据文件进行加密,生成密文数据,再根据预先设置的破碎方法和破碎密钥对所述密文数据进行破碎分块,得到n份碎片文件,并计算每份碎片文件HASH值;
调用预先配置的碎片文件在计算机密盘与移动密盘的存储比例,按照存储比例将n份碎片文件分成两组碎片文件,并分别向所述计算机密盘和移动密盘发送相对应的碎片文件;
将预先配置的待保护的数据文件的相关信息存储在预先设置的索引数据库的文件关键信息表和碎片索引信息表的各数据项中;
将与移动密盘相对应的碎片文件存储在移动密盘中,并将与计算机密盘相对应的碎片文件存储到计算机密盘的隐藏文件夹中,清除内存。
进一步的,还包括:
在使用移动密盘和USBKey之前,通过预先设置的登录信息校验用户身份,在用户身份通过校验的情况下,对USBKey中预先存储的加密公私钥和移动密盘进行使用。
进一步的,所述文件关键信息表包括:数据/虚假文件ID、密盘存储碎片份数、移动密盘存储碎片份数、数据加密密钥密文、破碎密钥密文、碎片HASH值字段;碎片索引信息表包括:碎片HASH值、碎片存储位置、碎片引用数字段。
进一步的,还包括:
用于在第一次使用移动密盘的情况下,将预先设置的移动密盘ID、移动密盘路径、预绑定设备ID、破碎分数n以及计算机密盘的碎片存储比例写入预先设置的配置文件,即实现设备的绑定;
将配置文件中的已绑定设备ID信息删除,即实现设备的解除绑定。
如图2所示,根据本发明的另一方面,提供了一种本地数据的安全存储装置,该本地数据的安全存储装置包括:
虚假文件写入模块,用于将待保护的数据文件的按照预先设置的文件属性信息和填充信息,写入预先设置的计算机密盘的虚假文件中;
密钥生成保护模块,用于调用预先设置的移动密盘随机生成数据加密密钥和破碎密钥,然后用预先设置的USBKey中存储的加密公钥分别对数据加密密钥和破碎密钥进行加密,得到数据加密密钥密文和破碎密钥密文;
加密破碎模块,利用所述数据加密密钥对待保护的数据文件进行加密,生成密文数据,再根据预先设置的破碎方法和破碎密钥对所述密文数据进行破碎分块,得到n份碎片文件,并计算每份碎片文件HASH值;
碎片文件分组模块,用于调用预先配置的碎片文件在计算机密盘与移动密盘的存储比例,按照存储比例将n份碎片文件分成两组碎片文件,并分别向所述计算机密盘和移动密盘发送相对应的碎片文件;
索引数据库生成模块,用于将预先配置的待保护的数据文件的相关信息存储在预先设置的索引数据库的文件关键信息表和碎片索引信息表的各数据项中;
碎片文件存储模块,用于将与移动密盘相对应的碎片文件存储在移动密盘中;并将与计算机密盘相对应的碎片文件存储到计算机密盘的隐藏文件夹中,清除内存。
进一步的,还包括:
身份认证模块,用于在使用移动密盘和USBKey之前,通过预先设置的登录信息校验用户身份,在用户身份通过校验的情况下,对USBKey中预先存储的加密公私钥和移动密盘进行使用。
进一步的,所述文件关键信息表包括:数据/虚假文件ID、密盘存储碎片份数、移动密盘存储碎片份数、数据加密密钥密文、破碎密钥密文、碎片HASH值字段;碎片索引信息表包括:碎片HASH值、碎片存储位置、碎片引用数字段。
如图3所示,根据本发明的另一方面,提供了一种本地数据的安全读取方法,该本地数据的安全读取方法包括以下步骤:
步骤1:读取预先存储在计算机密盘的虚假文件中的文件ID,根据虚假文件ID读取预先配置在索引数据库中的与虚假文件对应的所有碎片文件的HASH值;
步骤2:根据所有碎片文件的HASH值,分别在所述移动密盘和计算机密盘中查询与所有碎片文件的HASH值一致的碎片文件,直到找到预先设置的n份碎片文件;
步骤3:对所有n份碎片文件逐一计算HASH值,与虚假文件对应的HASH值碎片文件进行一致性校验;在虚假文件对应的HASH值碎片文件与n份碎片文件的HASH值存在不一致的情况下,***自动执行预先存储的返回错误结束操作的指令;在虚假文件对应的HASH值碎片文件与n份碎片文件的HASH值一致的情况下,则执行步骤4;
步骤4:将在计算机密盘中查找的碎片文件读入移动密盘;
步骤5:调用移动密盘预先设置的密钥存储区内存储的加密私钥,分别解密索引数据库中碎片文件ID 对应的数据加密密钥密文和破碎密钥密文,得到数据加密密钥和破碎密钥;利用与破碎算放相适配的重组算法和破碎密钥对n份碎片文件进行重组得到数据文件密文,再用数据加密密钥解密数据文件密文,得到数据文件;
步骤6:计算步骤5中所述数据文件的HASH值,与虚假文件中受保护数据文件的HASH值进行比对,在比对结果一致的情况下,将数据文件内容展示给用户;否则,执行预先存储的返回错误结束操作的指令。
根据本发明的另一方面,提供了一种本地数据的安全读取装置,该本地数据的安全读取装置包括:
如图4所示,虚假文件读取模块,用于读取预先存储在计算机密盘的虚假文件中的文件ID,根据虚假文件ID读取预先配置在索引数据库中的与虚假文件对应的所有碎片文件的HASH值;
碎片存储查询模块,用于根据所有碎片文件的HASH值,分别在所述移动密盘和计算机密盘中查询与所有碎片文件的HASH值一致的碎片文件,直到找到预先设置的n份碎片文件;
碎片文件匹配模块,用于对所有n份碎片文件逐一计算HASH值,与虚假文件对应的HASH值碎片文件进行一致性校验;在虚假文件对应的HASH值碎片文件与n份碎片文件的HASH值存在不一致的情况下,***自动执行预先存储的返回错误结束操作的指令;
碎片文件移动模块,用于在虚假文件对应的HASH值碎片文件与n份碎片文件的HASH值一致的情况下;将在计算机密盘中查找的碎片文件读入移动密盘;
重组解密模块,用于调用移动密盘预先设置的密钥存储区内存储的加密私钥,分别解密索引数据库中碎片文件ID 对应的数据加密密钥密文和破碎密钥密文,得到数据加密密钥和破碎密钥;利用与破碎算放相适配的重组算法和破碎密钥对n份碎片文件进行重组得到数据文件密文,再用数据加密密钥解密数据文件密文,得到数据文件;
文件认证模块,用于计算重组解密模块得到的所述数据文件的HASH值,与虚假文件中受保护数据文件的HASH值进行比对,在比对结果一致的情况下,将数据文件内容展示给用户;否则,执行预先存储的返回错误结束操作的指令。
根据本发明的另一方面,提供了一种本地数据的安全保护***,该本地数据的安全保护***包括本地数据的安全存储装置和本地数据的安全读取装置,其中,所述本地数据的安全存储装置包括:
虚假文件写入模块,用于将待保护的数据文件的按照预先设置的文件属性信息和填充信息,写入预先设置的计算机密盘的虚假文件中;
密钥生成保护模块,用于调用预先设置的移动密盘随机生成数据加密密钥和破碎密钥,然后用预先设置的USBKey中存储的加密公钥分别对数据加密密钥和破碎密钥进行加密,得到数据加密密钥密文和破碎密钥密文;
加密破碎模块,利用所述数据加密密钥对待保护的数据文件进行加密,生成密文数据,再根据预先设置的破碎方法和破碎密钥对所述密文数据进行破碎分块,得到n份碎片文件,并计算每份碎片文件HASH值;
碎片文件分组模块,用于调用预先配置的碎片文件在计算机密盘与移动密盘的存储比例,按照存储比例将n份碎片文件分成两组碎片文件,并分别向所述计算机密盘和移动密盘发送相对应的碎片文件;
索引数据库生成模块,用于将预先配置的待保护的数据文件的相关信息存储在预先设置的索引数据库的文件关键信息表和碎片索引信息表的各数据项中;
碎片文件存储模块,用于将与移动密盘相对应的碎片文件存储在移动密盘中;并将与计算机密盘相对应的碎片文件存储到计算机密盘的隐藏文件夹中,清除内存;
所述本地数据的安全读取装置包括:
虚假文件读取模块,用于读取预先存储在计算机密盘的虚假文件中的文件ID,根据虚假文件ID读取预先配置在索引数据库中的与虚假文件对应的所有碎片文件的HASH值;
碎片存储查询模块,用于根据所有碎片文件的HASH值,分别在所述移动密盘和计算机密盘中查询与所有碎片文件的HASH值一致的碎片文件,直到找到预先设置的n份碎片文件;
碎片文件匹配模块,用于对所有n份碎片文件逐一计算HASH值,与虚假文件对应的HASH值碎片文件进行一致性校验;在虚假文件对应的HASH值碎片文件与n份碎片文件的HASH值存在不一致的情况下,***自动执行预先存储的返回错误结束操作的指令;
碎片文件移动模块,用于在虚假文件对应的HASH值碎片文件与n份碎片文件的HASH值一致的情况下;将在计算机密盘中查找的碎片文件读入移动密盘;
重组解密模块,用于调用移动密盘预先设置的密钥存储区内存储的加密私钥,分别解密索引数据库中碎片文件ID 对应的数据加密密钥密文和破碎密钥密文,得到数据加密密钥和破碎密钥;利用与破碎算放相适配的重组算法和破碎密钥对n份碎片文件进行重组得到数据文件密文,再用数据加密密钥解密数据文件密文,得到数据文件;
文件认证模块,用于计算重组解密模块得到的所述数据文件的HASH值,与虚假文件中受保护数据文件的HASH值进行比对,在比对结果一致的情况下,将数据文件内容展示给用户;否则,执行预先存储的返回错误结束操作的指令。
具体应用时,如图5所示,本***包括计算机***、数据保护软件和移动密盘;其中:
所述计算机***与所述移动密盘通过USB接口相连接;可以是台式机、笔记本、智能终端;
所述数据保护软件安装在所述计算机***上,针对用户设置在所述计算机***上的某一特定文件夹进行保护,将该文件夹定义为计算机密盘;利用应用层控制程序和内核层文件过滤驱动程序,对写入计算机密盘的任意格式的数据文件进行保护;
所述移动密盘是一个自身带有硬件密码***移动存储盘;进出移动密盘的数据都是明文,存储在移动密盘中的数据是密文,通过密码芯片加密/解密;智能密码钥匙(以下简称USBKey)通过USB接口接入移动密盘,与移动密盘联合起来使用,通过移动密盘上的按键输入USBKey的PIN码校验用户身份,以获得USBKey中加密公私钥对和移动密盘的使用权限。
结合如图2所示,利用应用层控制程序和内核层文件过滤驱动程序将待保护的数据文件写成一个虚假文件,存储在计算机密盘上,对用户可见;将待保护的数据文件加密破碎成n份(n为大于1的整数,可配置)碎片文件,将所述n份碎片文件按照存储比例(可配置)分成两组,分别存储于计算机密盘的隐藏文件夹中和移动密盘中;建立一个索引数据库存储于移动密盘中,实现碎片文件快速存储与查询的同时保证数据安全可靠;其中:
所述虚假文件与待保护数据文件的格式和文件名称一致,其存储的内容包括固定大小的文件属性信息和填充信息两个部分;所述文件属性信息:包括文件ID、文件密级、文件控制信息、创建者、来源所有者、当前所有者、文件校验和、受保护数据文件的大小、受保护数据文件的HASH值、文件修改时间、当前文件全路径、前述信息的HASH值,用于将数据文件的真实内容定向到计算机密盘和移动密盘中对应的碎片文件;所述填充信息:若真实的数据文件大小小于或等于文件属性信息大小,则虚假文件不作填充;否则,填充信息的长度为真实文件的长度减去文件属性信息的长度,填充信息可以是随机生成的,也可以是固定值;
所述碎片文件是指先用加密算法对待保护的数据文件加密,再用破碎算法对密文破碎得到的文件;所述碎片文件以碎片内容的HASH值命名,用于校验碎片文件的完整性;
所述索引数据库包括文件关键信息表和碎片索引信息表,用于存储密钥信息和碎片信息;文件关键信息表包括:文件ID、密盘存储碎片份数、移动密盘存储碎片份数、数据加密密钥密文、破碎密钥密文、碎片HASH值字段;碎片索引信息表包括:碎片HASH值、碎片存储位置、碎片引用数字段。
另外,本***还可以包括绑定模块、认证模块、加密破碎模块、重组解密模块、碎片存储查询模块;其中:
所述绑定模块包括绑定和解除绑定;在数据保护软件在安装的过程中或第一次使用移动密盘时,将密盘ID、密盘路径、绑定设备ID、破碎份数n、计算机密盘的碎片存储比例写入配置文件,实现设备绑定;将计算机配置文件中的绑定设备ID信息删除,实现解除绑定;
所述认证模块是在移动密盘每次接入计算机***之后,在进行PIN码校验之前,对移动密盘和计算机密盘是否对应进行认证;认证方法为:提取移动密盘的ID与计算机密盘信息的绑定设备ID进行比对,若一致,再进行移动密盘的PIN码校验;否则,拒绝访问计算机密盘;
所述加密破碎模块进行密钥生成、密钥保护、加密、破碎、碎片分组、计算HASH值操作;所述密钥生成,调用移动密盘随机生成数据加密密钥和破碎密钥;所述密钥保护,用USBKey对数据加密密钥和破碎密钥的加密公钥进行加密得到数据加密密钥密文和破碎密钥密文;所述加密,调用移动密盘对待保护的数据文件内容用加密进行加密得到数据密文;所述破碎,采用破碎算法和破碎密钥,以及碎片份数n,将数据密文破碎成n份碎片文件;所述碎片分组,根据配置文件中计算机密盘的碎片存储比例λ,计算出碎片将被分成x(x≈λ*n,x为整数)份和n-x份两组,从n份碎片文件中随机选择x份破碎文件,确定了这x份将存入计算机密盘,另外n-x份碎片文件即将存入移动密盘;所述计算HASH值,是指将计算输入文件的HASH值;
所述重组解密模块进行解密密钥、碎片重组和解密操作;所述解密密钥,调用USBKey中存储的私钥对数据加密密钥密文和破碎密钥密文分别进行解密;所述碎片重组,采用与破碎算法对应的重组算法和破碎密钥,将n份碎片文件组合成数据密文;所述解密,调用移动密盘将数据密文用数据加密密钥碎数据密文解密成数据明文;
所述碎片存储查询模块实现了一种碎片文件快速存储与删除的方法:在存储碎片文件时:在索引数据库的碎片索引信息表中查询相同碎片存储位置上是否存在与该碎片文件HASH值相同的碎片HASH值;若存在,将碎片引用数+1即可;否则,将碎片文件存储到相应的碎片存储位置(计算机密盘或移动密钥);当删除受保护文件时:对于与之对应的n份碎片文件,一一在索引数据库的碎片索引信息表中查询相同碎片存储位置上与即将删除的碎片文件HASH值相同的碎片HASH值;若碎片引用数为1,则删除该碎片文件及相关数据库记录;若碎片引用数大于1,将碎片引用数-1即可;直到删除与之对应的所有n份碎片文件。
进一步的,所述破碎算法,由破碎密钥作为种子控制一个随机数发生器,生成一个与待破碎的数据密文的二进制比特流等长的随机序列,该序列的每个元素值落在集合{0,1,….n-1}中,按照该序列中相同的值分别选取对应位置的二进制比特位拼合在一起,如此就将数据分割为n份密文碎片,每份碎片按照序列值进行编号。
进一步的,所述重组算法,由破碎密钥作为种子控制一个随机数发生器,生成一个与待破碎的数据密文的二进制比特流等长的随机序列,该序列的每个元素值落在集合{0,1,….n-1}中,按照随机序列值依次选择相同编号的碎片二进制位,并从左到右拼合在一起,得到数据密文。
进一步的,所述随机数发生器,选用具有良好随机特性的线性同余发生器X k=AX k-1+B(modC),其中A=7141,B=54773,C=259200。随机选择初始条件X0作为破碎密钥。用Yk=Xk(modn)生成元素值在集合{0,1,….n-1}范围内与数据密文二进制比特流等长的随机序列。
此外,本发明还提供了一种本地数据的安全存储方法,它使用上述的本地数据安全保护***,包括以下步骤:
A1:将待保护的数据文件的文件属性信息和填充信息,写入计算机密盘的虚拟文件;
A2:调用移动密盘随机生成数据加密密钥和破碎密钥,然后用USBKey中存储的加密公钥分别加密数据加密密钥和破碎密钥,得到数据加密密钥密文和破碎密钥密文;调用移动密盘密码对待保护的数据文件进行加密,再按照破碎份数n进行对密文数据破碎分块,得到n份碎片文件,对每份碎片文件计算HASH值;
A3:读取配置文件中计算机密盘与移动密盘的存储比例,计算碎片分组规则从n份中随机选择x(x≈λ*存储比例,x为整数)份;
A4:将受保护数据文件的相关信息,存储到索引数据库的文件关键信息表和碎片索引信息表的各数据项中;
A5:将A3步骤确定的x份破碎文件存储到计算机密盘的隐藏文件夹中,将剩余n-x份破碎文件存储到移动密盘中,清除内存。
并且,本发明还提供了一种本地数据的安全读取方法,它使用上述的本地数据安全保护***,包括以下步骤:
B1:数据保护软件读取计算机密盘的虚假文件中的文件ID,根据文件ID读取移动密盘中索引数据库存储的对应所有碎片文件的HASH值;
B2:根据上述HASH值,分别从移动密盘和计算机密盘中查询所有文件名与上述HASH值一致的碎片文件,一共n份;
B3:对所有n份碎片文件一一计算HASH值,与对应的HASH值碎片文件名进行一致性校验。若有一个不一致,说明碎片文件已被篡改,无法恢复出正确的数据文件,返回错误结束操作;若均校验一致,则进入B4步骤;
B4:将计算机密盘中查找的x份碎片文件读入移动密盘;
B5:调用移动密盘密钥存储区存储的加密私钥,分别解密索引数据库中文件ID 对应的数据加密密钥密文和破碎密钥密文,得到数据加密密钥和破碎密钥;用破碎密钥对n份碎片文件进行重组得到数据文件密文,再用数据加密密钥解密数据文件密文,得到数据文件;
B6:计算B5步骤所述数据文件的HASH值,与虚假文件中受保护数据文件的HASH值进行比对;若一致,则将数据文件内容展示给用户;否则,说明数据文件已被破坏,返回“错误”。
综上所述,借助于本发明的上述技术方案,本发明使用加密破碎技术,将数据文件加密破碎和分离存储,分存到计算机密盘和移动密盘中。计算机(笔记本)和移动密盘任何一方丢失或泄密,由于它们仅存有数据的部分碎片,攻击者不可能通过部分碎片恢复完整数据;
即使计算机和移动密盘同时被窃取,移动密盘中的数据有加密和有限次数的用户PIN码的双重保护,有效降低了攻击者从移动密盘读取碎片文件的可能性;
在读取受保护的数据文件时,通过校验碎片HASH值和重组的数据文件的HASH值,以确保用户读取的受保护数据文件与上次存储时的数据文件一致,有效保证了受保护数据文件的完整性和可用性;
使用内核层文件驱动过滤技术对文件进行透明加解密,不影响用户的使用习惯,具有良好的用户体验;
综上所述,本发明为用户提供了安全性极高、用户体验较好的本地数据安全保护方法。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。