一种网络化分离存储系统及其分离存储文件的方法
【技术领域】
[0001]本发明涉及信息安全技术领域,具体涉及一种网络化分离存储系统及其分离存储文件的方法。
【背景技术】
[0002]现有电子文档存储的安全性主要依靠加密与访问控制手段来保证。然而文件的密文仍保留了信息的完整性,随着计算机性能的不断增强,加密文档被更大计算能力的计算机解密的机会不断增大。由于认证所需的信息可能被解密,加密环节的失败也对身份认证系统的有效性构成较大威胁。
【发明内容】
[0003]发明目的:针对信息安全传输需求,本发明提供一种网络化分离存储系统及方法,能够有效防止黑客通过侦听、非法访问等手段窃取秘密。
[0004]技术方案:本发明所述的网络化分离存储系统,包括至少两台带有存储设备的网络节点计算机上,其中当前处于写文件请求的节点计算机为发送节点,其他节点计算机为远程节点;
网络分离存储控制软件模块、安装在网络节点计算机上,包括分拆单元和存储单元,分拆单元用于截取发送节点的写文件请求,随机选取K个存储设备作为分离存储设备,在发送节点的内存空间中将文件明文拆分生成文件密文,文件密文生成K份文件碎片,建立文件碎片-存储设备关系表、将K份文件碎片与K个分离存储设备相对应;存储单元用于将K份文件碎片写入对应的分离存储设备中,其中若分离存储设备为发送节点的存储设备、则执行本地存储操作,若分离存储设备为远程节点的存储设备、则执行网络存储操作;
用户认证模块、安装在网络节点计算机上,用于进行用户认证,若认证结果为安全应用用户,则执行安全应用程序、支持对文件的分离存储读写操作,若认证结果为普通用户,则执行普通应用程序、按照普通网络文件操作访问文件。
[0005]进一步完善上述技术方案,所述网络分离存储控制软件模块还包括读取单元,用于读取文件碎片,查询文件碎片-存储设备关系表,若分离存储设备为发送节点的存储设备、则执行本地读取操作,若分离存储设备为远程节点的存储设备、则执行网络读取操作。网络分离存储控制软件模块在发送节点的内存空间中将文件明文拆分生成文件密文,文件密文生成文件碎片,文件明文只保存在发送节点的内存空间中,文件碎片分开存储在分离存储设备中,即使文件碎片被获取,即不能获取文件明文,也不会被解密还原成文件明文,提升了文件存储的安全性能。通过用户认证模块对用户认证,若非法用户申请文件读写操作,则远程网络分离存储控制软件模块记录错误访问次数和时间,但不执行具体的文件读写操作,提升了文件访问的安全性。
[0006]优选地,每个节点计算机设有多个存储设备。设置多个存储设备,当任一个出现故障时,仍保证分离存储的稳定性。
[0007]优选地,所述存储设备采用硬盘、移动硬盘、U盘、光盘、SD卡、记性棒中任一种作为存储介质。提供多种可选的存储介质,适应不同的用户需求。
[0008]基于上述系统进行网络化分离存储文件的方法,包括如下步骤:
S1:对发送节点进行写文件请求的用户进行认证,若认证结果为安全应用用户,则执行S2,若认证结果为普通用户,则发送节点的远程网络分离存储控制软件模块记录访问次数和时间,但不执行具体的文件写操作;
S2:发送节点的网络分离存储控制软件模块截取写文件请求,在整个网络节点计算机系统中随机选取K个存储设备为分离存储设备,在发送节点的内存空间中将文件分拆成K份文件碎片,并建立文件碎片-存储设备关系表、将K份文件碎片与K个分离存储设备相对应;
S3:对文件碎片逐一进行写操作,若文件碎片对应的分离存储设备为发送节点的存储设备、则执行本地存储操作,若文件碎片对应的分离存储设备为远程节点的存储设备、则执行网络存储操作;
54:若K份文件碎片均被写入相应的分离存储设备,则本次分离存储写操作完成;若任一份文件碎片的写入过程失败,则执行S5 ;
55:远程节点的网络分离存储控制软件模块在尚未选择的存储设备中随机选择一个,更新文件碎片-存储设备关系表,更新日志后再次发起写入请求,若仍失败,则向进行写文件请求的安全应用用户报告此次写操作失败;
进一步完善上述技术方案,所述S2中文件分拆过程包括如下步骤:
521:将文件及其索引信息进行加密生成文件密文;根据文件的索引信息,产生K个的随机数三元组(町丨、1?211?3丨),其中Rli为抽取信息的数量,R2i为抽取信息位置数组,R3i为回填值数组,数组R2i和R3i的大小等于Rli的值;文件索引信息是文件目录中的一部分,包括文件名、文件存储地址、文件大小等信息;
522:根据Rli和R2i的值,从发送节点的文件密文的随机位置抽取随机数量的信息;
523:将抽取出来的信息及抽取数量、抽取位置按照文件形式(即将抽取出来的信息及抽取数量、抽取位置等内容合并为一个文件)加密后保存在发送节点的主文件分离存储设备中;主文件分离存储设备指负责进行文件分拆的存储设备,主文件分离存储设备中通常有负责进行文件分拆功能的软硬件实体,每个节点计算机至少有一个存储设备有文件分拆功能的软硬件实体,对于某个将要分拆的文件而言,其主文件分离存储设备位于发送节点(即当前节点计算机上),在一个支持文件分离存储的网络系统中,对于一个特定的将要分离存储的文件,只有一个主文件存储设备;
524:使用回填值数组R3i中的随机数,根据R2i的指示填充文件密文中的抽取位置,生成新的文件碎片i,文件碎片i的大小与文件密文的大小相等;
525:重复步骤S22-S24,直到所有随机数三元组用完;
S26:将新产生的所有文件碎片送入发送节点内存空间的文件缓冲区,创建文件碎片-存储设备关系表,实现K份文件碎片与K个存储设备的对应;在发送节点的操作系统中,一个进程拥有其独立的“内存空间”,在“内存空间”中,一部分用来支持操作系统内核的运行,其余部分用于支持用户程序运行,文件操作中的“文件缓冲区”通常位于操作系统内核所使用的那部分内存空间中。
[0009]进一步完善上述技术方案,所述本地存储操作包括更新日志后启动设备驱动程序,将对应的文件碎片写入发送节点的存储设备,并再次更新日志;
所述S3中网络存储操作包括如下步骤:
531:发送节点的网络分离存储控制软件模块向远程节点的网络分离存储控制软件模块请求写入文件碎片,若远程节点的网络分离存储控制软件模块可以完成此次请求,则创建内核缓冲区,回复Ready消息、并更新日志,否则,回复Not_aCCeSSable消息、并更新日志;
532:当发送节点收到远程节点的Ready消息、更新日志,然后将文件碎片和文件路径发送给远程节点,若此时远程节点可以完成此次写文件服务,远程节点的网络分离存储控制软件模块将文件碎片和文件路径暂存在内核缓冲区中,向发送节点回复Commit消息、并更新日志,否则回复Fail_Commit消息、并更新日志;若发送节点收到Not_accessable消息,则进入写失败处理过程;
533:远程节点的网络分离存储控制软件模块收到文件碎片和文件路径后,启动设备驱动程序将文件碎片写入相应的分离存储设备,若写操作成功完成,更新日志、并向发送节点回复Written消息,否则向发送节点回复Fail_written消息、并更新日志;
534:若发送节点收到Written消息,则该文件碎片写入成功,更新日志,若收到Fail_written消息,则进入写失败处理过程;
535:写失败处理过程包括:远程节点的网络分离存储控制软件模块重新在尚未选择的存储设备中随机选择一个作为分离存储设备,更新文件碎片-存储设备关系表,然后更新日志再次发起写服务申请,此重选过程重试若干次,若仍失败,则向执行写文件请求的安全应用用户报告写失败消息。
[0010]为了进一步保证文件分离存储的