发明内容
为了解决上述问题,本发明的目的在于提供基于环境认证的文件安全存储方法与系统,能进行高效的对重要的明文文件使用多样化的环境特征对其加密,能够有效的摆脱繁琐或安全性弱的用户口令并且绑定用户环境防止被非此环境人员对相关文件进行操作以实现文件的安全存储。
具体地来讲,本发明公开了一种基于环境认证的文件安全存储方法,包括下列步骤:
步骤1,建立用户个人计算机程序可视化界面,为用户提供友好的操作界面;
步骤2,获取该用户个人计算机的环境特征信息,结合用户自定义脚本,再辅以随机序列,得到唯一的环境绑定密钥;
步骤3,根据该用户个人计算机的该环境特征信息,通过高级加密标准的电码本模式进行加密并生成密钥;
步骤4,如果参与解密的新的用户个人计算机的环境特征信息与加密时该用户个人计算机的该环境特征信息相同,则通过高级加密标准的电码本模式直接进行解密,若与加密时该用户个人计算机的该环境特征信息不相同,则根据该密钥进行解密。
所述的基于环境认证的文件安全存储方法,步骤2的具体步骤如下:
步骤21,获取硬件指纹信息,用于标识用户个人计算机硬件资源的唯一硬件特征信息;
步骤22,获取网络环境信息,通过获取用户个人计算机直连网络的网络设备的特征信息组合,用于标识用户个人计算机网络的唯一网络特征信息;
步骤23,获取用户自定义脚本信息,通过执行用户自定义脚本获取用户个人计算机的信息,用于标识用户个人计算机的唯一脚本特征信息。
所述的基于环境认证的文件安全存储方法,步骤3还包括加密文件的结构:密文、生成密钥的硬件设备位图、团体名、用户自定义脚本、随机序列、明文的hash值,其中生成密钥的硬件设备位图,用于每一个二进制位对应于一个硬件类别,根据位图获取生成密钥的硬件组合;团体名,用于网络环境认证;用户自定义脚本,用于自定义基于环境认证的加密规则;随机序列,加密文件时随机生成;明文的hash值:用于密文解密后hash运算的值与该明文的hash值对比,检验是否解密正确。
所述的基于环境认证的文件安全存储方法,步骤3中生成该密钥的具体步骤包括:
步骤31,根据硬件指纹信息,获取硬件指纹信息字符串;
步骤32,根据团体名获取的网络环境信息,获取网络环境信息字符串;
步骤33,根据获取的该硬件指纹信息字符串和该网络环境信息字符串,通过hash运算,得到临时密钥;
步骤34,根据用户自定义脚本信息,获取用户自定义脚本信息字符串;
步骤35,根据该临时密钥、用户自定义脚本信息字符串、随机序列,通过hash运算,得到最终密钥。
所述的基于环境认证的文件安全存储方法,步骤4还包括:
根据明文的hash值,通过解密后hash运算的值与该明文的hash值对比,检验是否解密正确。
本发明还公开了一种基于环境认证的文件安全存储系统,包括:
模块1为UI模块,用于用户个人计算机程序可视化界面,为用户提供友好的操作界面;
模块4为环境特征信息提取模块,获取该用户个人计算机的环境特征信息,结合用户自定义脚本,再辅以随机序列,得到唯一的环境绑定密钥;
模块2为加密模块,根据该用户个人计算机的该环境特征信息,通过高级加密标准的电码本模式进行加密并生成密钥;
模块3为解密模块,如果参与解密的新的用户个人计算机的环境特征信息与加密时该用户个人计算机的该环境特征信息相同,则通过高级加密标准的电码本模式直接进行解密,若与加密时该用户个人计算机的该环境特征信息不相同,则根据该密钥进行解密。
所述的基于环境认证的文件安全存储系统,该环境特征信息提取模块包括:
模块41为硬件信息获取模块用于获取硬件指纹信息,用于标识用户个人计算机硬件资源的唯一硬件特征信息;
模块42为获取网络特征模块用于获取网络环境信息,通过获取用户个人计算机直连网络的网络设备的特征信息组合,用于标识用户个人计算机网络的唯一网络特征信息;
模块43获取脚本信息模块用于获取用户自定义脚本信息,通过执行用户自定义脚本获取用户个人计算机的信息,用于标识用户个人计算机的唯一脚本特征信息。
所述的基于环境认证的文件安全存储系统,该加密模块的加密文件结构包括:密文、生成密钥的硬件设备位图、团体名、用户自定义脚本、随机序列、明文的hash值,其中生成密钥的硬件设备位图,用于每一个二进制位对应于一个硬件类别,根据位图获取生成密钥的硬件组合;团体名,用于网络环境认证;用户自定义脚本,用于自定义基于环境认证的加密规则;随机序列,加密文件时随机生成;明文的hash值:用于密文解密后hash运算的值与该明文的hash值对比,检验是否解密正确。
所述的基于环境认证的文件安全存储系统,加密模块中生成该密钥的具体步骤如下:
通过模块41,硬件信息获取模块,通过步骤S92,根据硬件指纹信息,通过步骤S921,获取硬件指纹信息字符串;
通过模块42,获取网络特征模块,通过步骤S93根据团体名获取的网络环境信息,通过步骤S931获取网络环境信息字符串;
通过获取的该硬件指纹信息字符串和该网络环境信息字符串,通过步骤S95,hash运算,经过步骤S951,获取临时密钥;
通过模块43,获取脚本信息模块,通过步骤S94,根据用户自定义脚本信息,通过步骤S941,获取用户自定义脚本信息字符串;
根据该获取的临时密钥、用户自定义脚本信息字符串、随机数,通过步骤S952,hash运算,获取最终密钥。
所述的基于环境认证的文件安全存储系统,该解密模块还包括:
根据明文的hash值,通过解密模块解密后hash运算的值与该明文的hash值对比,检验是否解密正确。
本发明的技术效果为:
在搜集环境特征信息时,不仅对本地硬件,如CPU、硬盘、USB、光盘等进行获取,而且对于用户所在的网络环境特征信息也加以关注。方法上,用户通过SNMP协议获取主机直连的网关设备的各类信息,结合用户自定义的脚本信息获取网络特征环境信息,以达到本地与网络环境双重认证的效果,以实现用户文件的安全保密存储。
本发明较之同类创新之处在于提供了用户自定义脚本自主设计环境认证规则的功能,通过自定义脚本,用户能够灵活的设定各种与环境相关的加解密条件,如“第二个盘符第三个文件的文件名必须为aa”、“当前日期必须为12月26日”等,这种用户自定义加密条件规则的方法不仅极大地扩展了普通的结合本地特征信息的方式,而且灵活的条件设置让文件存储的安全得到进一步的保障。
脚本的功能十分强大,通过用户的自主定义,攻击者很难破解脚本产生的结果,同时脚本的运行结果与用户当前“唯一”的计算机系统“软环境”紧密结合,拥有不确定性、唯一性、难破解性等诸多优点。
经测试,本系统能进行高效的对重要的明文文件使用多样化的环境特征对其加密,实现了文件的保密性存储。即使该密文文件被非授权地复制到其他PC环境中,由于多种混合环境特征的难复制性,密文文件不能被解密成明文文件,文件仍具有保密性。对于合法用户在授权的PC上,不需要输入任何口令密码,即可透明地解密明文,得到明文文件,十分高效安全。
具体实施方式
安全存储系统大致可分类为安全网络文件系统、加密文件系统、可生存存储系统基于存储的入侵检测系统。它们分别从四个不同的层次提供存储系统的机密性、完整性和可用性。本发明关注个人信息文件的机密性。所以选用加密隔离的方式确保用户个人信息不被非授权的攻击者获取。
以下是本发明的具体描述:
本发明通过加密部分对文件进行加密,实现文件保密性,防止非授权用户的非法获取以及获知用户私密信息内容。
密文文件的解密以及文件所在磁盘位置的定位都必须通过提供正确的计算机软硬件环境才能正确实施。
本发明主要由7个模块组成,如图1所示,分别是UI模块1、加密模块2、解密模块3、环境特征提取模块4,其中环境特征提取模块4包括硬件信息获取模块、获取网络特征模块、获取脚本信息模块。
每个模块的具体作用为:
UI模块实现程序界面可视化,为用户提供友好的操作界面。
加密模块实现对文件的加解密操作,以加密的方式实现用户个人文件信息的安全存储,加密算法选用的是高级加密标准AES(Advanced Encryption Standard),加密模式是ECB模式。
解密模块:对密文文件进行解密,将明文文件返回给用户。
环境特征提取模块实现获取用户个人PC的环境特征获取。该模块包含了:
硬件信息获取模块,主要包含了CPU、硬盘、USB设备等硬件设备的序列号等特征信息。
获取网络特征模块,是通过获取计算机所在子网的网关设备的多种信息作为标识该网络的唯一网络特征信息。
获取脚本信息模块,用户可以自定义脚本,通过执行多元化的脚本获取计算机的各类信息,将这些高度离散的信息组成识别该计算机的唯一脚本特征信息。
本发明安全存储文件结构如下:
为了实现文件在本机上的安全存储,用户可以使用本程序的加密功能将机密文件的明文文本加密成密文文件,防止非授权用户非法获取文件内容,即使攻击者获取到密文文件,也不能理解文件内容。
加密的文件通过构造新的文件结构存储在用户磁盘介质上,通过文件结构,可以把硬件指纹、网络特征信息以及自定义脚本信息结合起来,为文件提供安全的环境绑定。
加密的文件结构包括:密文、生成密钥的硬件设备位图、团体名、用户自定义脚本、随机序列、明文的hash值,其中生成密钥的硬件设备位图,用于每一个二进制位对应于一个硬件类别,根据位图获取生成密钥的硬件组合;团体名,用于网络环境认证;用户自定义脚本,用于自定义基于环境认证的加密规则;随机序列,加密文件时随机生成;明文的hash值:用于密文解密后hash运算的值与该明文的hash值对比,检验是否解密正确。
本发明基本操作流程如下:
如图2所示,程序开始,步骤S1,如果要加密文件,选择需要加密的文件或文件夹,步骤S11,点击加密按钮,步骤S12,提取硬件指纹信息,步骤S13,提取网络信息,步骤S14提取自定义脚本信息,步骤S15,导出加密密钥,步骤S16,选择解密文件存放的目标路径,步骤S17,加密成功,步骤S4,退出程序;
步骤S2,如果要解密文件,选择需要解密的文件或文件夹,步骤S21,点击解密按钮,步骤S22,选择解密文件存放的目标路径,步骤S23,解密成功,步骤S4,退出程序;
步骤S3,如果要用密钥解密(用于不在认证环境下的解密),选择需要解密的文件或文件夹,步骤S31,点击密钥解密按钮,步骤S32,选择加密时导出的密钥,步骤S33,选择解密文件存放的目标路径,步骤S34,解密成功,步骤S4,退出程序。
本发明基本功能大致分为加密、解密、密钥解密(用于不在认证环境下的解密)。整个用户操作流程方便简单、清楚快捷,人性化的操作提示使用户不会迷失在加解密流程的迷宫里,清晰的使用流程让用户得以迅速上手保障个人存储安全。
以下为本发明模块间交互流程,交互流程如图3所示:
首先根据模块1,UI模块开始程序,通过模块2,加密模块的步骤S43,提取环境特征信息和模块3,解密模块的步骤S53,提取环境特征信息到模块4,环境特征信息提取模块,通过模块4,得到特征信息字符串集,经过步骤S9,字符串映射到密钥的算法得到密钥,最终创建加密正文或创建明文文件。
模块4,环境特征信息提取模块,由模块41,硬件信息获取模块、模块42,模块获取网络特征模块和模块43,获取脚本信息模块组成。
其中模块41,硬件信息获取模块的具体工作流程如图5所示:步骤S61,获取硬件设备特征信息,然后通过步骤S62与其他特征信息结合,步骤S63特征信息向密钥映射。
硬件指纹信息指的是计算机系统硬件资源的唯一标识,常见的硬件指纹信息一般硬件的序列号等,本发明通过获取这些序列号信息来标识该计算机系统的硬件环境。
模块42,获取网络特征模块的具体工作流程如图6所示:
步骤S71,选择网络环境信息提取选项,步骤S72,向网关设备发送GET请求,步骤S73,网关返回特征信息
网络环境的获取是通过获取主机直连网络的网络设备的特征信息组合,本发明中,通过SNMPv2获取主机所在网络的网关设备的mib信息,比如:该设备的描述信息,端口的描述,子网的网络地址以及掩码等。
通过多种网络特征信息的组合可以标识该网络的唯一性,达到网络环境的认证。
模块43,获取脚本信息模块,的具体工作流程如图7所示:
步骤S81,根据用户自定义脚本,步骤S82,运行脚本获取字符串信息,然后根据步骤S83,与其他特征信息结合,最后根据步骤S84,特征信息向密钥映射。
脚本信息的加入大大增加了用户的自定义度。脚本的功能十分强大,脚本语言都能够随时部署,而不需要耗时的编译/打包过程。在本发明中选用了Python3.1,Python可以被应用到网络开发、GUI开发、图形开发、Web开发、游戏开发、手机开发、数据库开发等众多领域。
本发明加入Python脚本的目的是,用户可以自定义一段Python(一种解释型、面向对象、动态数据类型的高级程序设计语言)来执行任意的操作,只需要在这段代码中输出一段任意长度、任意内容的字符串信息,用作安全存储系统加密密钥生成。
使用脚本可以获取很多操作系统“软环境”的信息(比如系统用户名,特定文件的内容等等),这些特征信息的有序组合可以区别不同的系统环境以达到环境认证的目的。
环境信息获取模块,用于获取基于用户环境的特征信息,实现密钥与密文物理上分离且密钥的不可复制性。
提取环境特征信息的流程,如图4所示,首先获取本地环境或者网络环境的特征信息,然后结合用户自定义脚本实现个人环境认证的强大扩展,再辅以随机序列,旨在生成独一无二的环境绑定密钥,为最后生成的明文以及密文提供更安全的存储保护。
以下是本发明密钥生成算法的具体流程:
根据收集到的各类特征信息,生成唯一的、与用户环境绑定的密钥。
生成流程如图8所示,步骤如下:根据步骤S92,获取相应硬件的硬件指纹,根据步骤S921获取硬件指纹信息字符串;根据步骤S93,根据团体名获取的网络环境信息,根据步骤S931获取网络环境信息字符串;根据获取的硬件指纹信息字符串和网络环境信息字符串,根据步骤S95,进行hash运算,根据步骤S951,得到临时密钥;根据步骤S94运行用户自定义脚本信息,获取用户自定义脚本信息字符串;根据该临时密钥、用户自定义脚本信息字符串、随机序列,根据步骤S952,hash运算,得到最终密钥。
以下为本发明加解密具体流程:
如图9所示:在上层,用户选择加密或者解密,接着,选择加密方式(例如自定义脚本信息,根据文件结构提取硬件指纹,提取网络环境信息)或者使用密钥进行解密,点击确定后,软件自动生成用户定制的密钥信息,几步方便快捷的操作后,便可通过自定义的环境认证信息进行个人文件的安全存储了。
以下为文件加密具体流程:
如图10所示:首先根据步骤S41,传入待加密的文件地址,然后根据步骤S42,选择特征信息的提取,步骤S43,提取环境特征信息,步骤S44,创建密文文件,然后根据步骤S45,写入文件头信息,最后根据S46,加密正文。
文件加密实现功能:对目标文件进行加密,以定义的密文文件结构存储。
加密算法:采用AES算法的ECB模式。加密算法的块大小为128位;密钥大小为128位。采用OpenSSL安全开发包,封装加解密函数。
以下为文件解密具体流程:
如图11所示,首先根据步骤S51,传入待解密的文件地址,然后根据S52,读取文件头信息,根据S53,提取环境特征信息,然后根据S54,解密正文,最后根据S55,创建明文文件。
文件解密实现功能:对密文文件进行解密,将明文文件返回给用户。
加密算法:采用AES算法的ECB模式。加密算法的块大小为128位;密钥大小为128位。采用OpenSSL安全开发包,封装加解密函数。
以下为本发明具体测试分析:
对硬件环境下的加解密成功率及速度测试步骤如下:
功能指标包括:使用硬件特征对明文文件加解密的成功率及效率和在其他硬件环境下的加解密成功率。
测试流程:
在计算机A1上用硬件信息加密明文文件集
{O1,O2,O3,O4,O5,O6,O7,O8,O9,O10},生成密钥文件集
{E1,E2,E3,E4,E5,E6,E7,E8,E9,E10},记录加密结果及耗时;
在计算机A1上解密文件{E1,E2,E3,E4,E5,E6,E7,E8,E9,E10},记录解密结果及耗时;
在计算机A2上解密文件{E1,E2,E3,E4,E5,E6,E7,E8,E9,E10},记录解密结果及耗时;
结果分析:
在计算机A2上对密文进行解密,成功率为0
对不同大小的文件进行加解密的速度测试,当文件大小大于10M后,加解密的速度平均约为13M/s,使用硬件加解密的成功率为100%。
网络环境下的解密成功率测试步骤如下:
功能指标包括:在不同网络环境下,对相同密文文件的解密成功率。
测试流程:
使用在网络环境N1下的主机A1对文件O加密,生成密文E,使用在网络环境N1下的主机A2对E解密,测试成功率;
使用在网络环境N2下的主机A3对E解密,测试成功率。
结果分析:
在相同网络下的解密成功率达到了75%,其中有一台解密失败,发现原因是由于该主机没有使用相同网络,由于网关地址错误引起获取网关设备信息失败。
而不同网络环境下的测试结果则为0%,所以,能在特定的情况下使用网络环境特征对文件进行加密控制。
相同网络环境指在同一子网下,具有相同网关设备的子网环境。
用户自定义信息加解密成功率测试步骤如下:
功能指标包括:使用指定的用户自定义特征信息对明文文本进行加解密的成功率。
测试流程:
在主机A1系统上定义一个简单的脚本,特定文件的字符串内容作为特征信息对文本O进行加密,生成密文文件E,分别在主机A1和A2等其他主机对E解密,记录解密成功率。
结果分析:
该测试使用特定文件的字符串信息作为加密明文文本的密钥信息,测试结果表明离开了密文所在的操作系统的稳定环境,在另一个系统环境下解密的成功率是非常低的。
该项测试反映出用户自定义信息的唯一性,同时用户定义的信息具有多样化、和不可枚举性的特点,复制相同的环境是非常困难的。所以,密文文件在非授权的计算机环境下是相对安全的。
经测试,本系统能进行高效的对重要的明文文件使用多样化的环境特征对其加密,实现了文件的保密性存储。即使该密文文件被非授权地复制到其他PC环境中,由于多种混合环境特征的难复制性,密文文件不能被解密成明文文件,文件仍具有保密性。对于合法用户在授权的PC上,不需要输入任何口令密码,即可透明地解密明文,得到明文文件,十分高效安全。