一种基于版本增量备份的软件保护方法转让专利

申请号 : CN200710190003.6

文献号 : CN101174294B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 曾庆凯

申请人 : 南京大学

摘要 :

基于版本增量备份的软件完整性保护方法,包括以下主要步骤:(1)定义软件版本的保护策略;(2)软件基本版本的初始化;(3)软件子版本的保存;(4)软件运行监视与保护;(5)软件子版本的恢复。本发明通过定义基本版本和子版本增量备份,根据文件作用和工作方式可采取不同保护方式,引入净化目录清除系统外部可能的植入文件。此方法既可保护软件系统的完整性,又为软件版本提供更新功能。

权利要求 :

1.一种基于版本增量备份的软件完整性保护方法,其特征是包括以下主要步骤:(1)定义软件版本的保护策略步骤是:

步骤20初始动作;

步骤21选择策略设定子目录,得到一个子目录名或结束标记;

步骤22判断是否取得子目录;如果取得子目录转步骤23,否则转步骤27;

步骤23开始定义目录策略;扩展目录策略的记录,取得第一个子目录为建立目录策略,设置子目录是否净化,文件计数0;

步骤24设定精确保护文件集合,选择、得到策略设定为精确保护的文件集合,为集合中每个文件扩展并填写文件策略记录,含文件名,保护方式为精确、取值2;目录策略的记录中文件计数加上文件个数;

步骤25设定粗略保护文件集合,选择、得到策略设定为粗略保护的文件集合;为集合中每个文件扩展并填写文件策略记录,含文件名,保护方式为粗略、取值1,目录策略的记录中文件计数加上文件个数;

步骤26设定可变文件集合,选择、得到策略设定为可变的文件集合,为集合中每个文件扩展并填写文件策略记录,含文件名,保护方式为可变、取值0,目录策略的记录中文件计数加上文件个数,转步骤21;

步骤27保存策略至备份库子版本,建立备份库子版本目录,依次将子目录策略、文件策略写入相应备份库子版本的文件中;

步骤28是结束状态,结束时,在备份库中该版本目录下保存了子版本保护策略;

(2)软件基本版本的初始化的步骤:将选择的一个子版本作为基本版本;

步骤30为是初始动作,建立备份库基本版本目录,将选定子版本保护策略读入保护策略结构中;

步骤31选取一个策略子目录;

步骤32判断是否取到子目录策略,如果取到子目录策略转步骤33,否则转步骤38;

步骤33取子目录下一个文件策略;

步骤34判断是否取到文件策略,如果取到文件策略转步骤35,否则转步骤31;

步骤35对被保护文件压缩生成压缩版本,将文件压缩版本复制到备份库基本版本目录;并在方法中选择相同压缩/解压算法;

步骤36计算文件特征值;对文件压缩版本FZ=f[0],f[1],...,f[i],...,f[fsize-1],按照保护策略方式采取不同的计算方法得到文件特征值;

步骤37保存文件名和文件特征值在文件特征向量表中:即将文件名,文件特征值填入文件特征向量表;转步骤33;

步骤38保存文件特征向量表至备份库基本版本下的文件中;

步骤39是结束状态,结束时,在备份库中基本版本目录下保存了文件压缩版本,文件特征向量表;

(3)软件子版本的保存的步骤:按照选择的子版本保护策略建立一个子版本备份;

步骤40为是初始动作,策略定义时已建立了备份库子版本目录,将选定子版本保护策略读入保护策略结构中;

步骤41选取一个策略子目录;

步骤42判断是否取到子目录策略,如果是转步骤43,否则转步骤4a;

步骤43取子目录下一个文件策略;

步骤44判断是否取到文件策略,如果是转步骤45,否则转步骤41;

步骤45判断是否可变策略,如果是转步骤49,否则转步骤46;

步骤46对被保护文件压缩生成压缩版本,计算文件特征值,计算方法同步骤36;

步骤47判断文件特征值是否与备份库基本版本中同文件的文件特征值不相同,如果是转步骤48,否则转步骤43;

步骤48保存文件名和文件特征值在文件特征向量表中,即将文件名、文件特征值填入文件特征向量表;

步骤49将文件压缩版本复制到备份库子版本目录,转步骤43;

步骤4a保存文件特征向量表至备份库子版本的文件中;

步骤4b是结束状态,结束时,在备份库中子版本目录下保存了有更新的文件压缩版本,及其文件特征向量表;

(4)软件运行监视与保护的步骤:将选择的子版本保护策略作为运行监视保护策略;由定时器定时启动或用户选择启动;

步骤50为是初始动作,将选定子版本保护策略读入保护策略结构中;

步骤51选取一个策略子目录;

步骤52判断是否取到子目录策略;如果是,读取被保护子目录下的文件名集合,转步骤53,否则转步骤5b;

步骤53取子目录下一个文件策略;

步骤54判断是否取到文件策略;如果是,从子目录下文件名集合中删除该文件名,转步骤55,否则转步骤59;

步骤55判断是否可变策略;如果是转步骤53,否则转步骤56;

步骤56对被保护文件压缩、计算文件特征值;计算方法同步骤36;

步骤57判断文件特征值是否与子版本同文件的文件特征值不相同;子版本同文件的文件特征值为备份库子版本中该文件的文件特征值,或备份库基本版本中该文件的文件特征值;如果是转步骤58,否则转步骤53;

步骤58将备份库子版本中文件压缩版本解压缩复制到软件的子目录,覆盖被保护的原文件,转步骤53;

步骤59判断目录策略是否为净化;如果是转步骤5a,否则转步骤51;

步骤5a:删除被保护子目录下未经策略处理的文件;删除子目录下文件名集合中剩余的文件,以净化目录,转步骤51;

步骤5b是结束状态,在发现受策略保护文件被修改时自动恢复,并清除植入文件;

(5)软件子版本的恢复的步骤包括,

步骤60为是初始动作,将选择的子版本保护策略作为子版本恢复策略,将选定子版本保护策略读入保护策略结构中;

步骤61选取一个策略子目录;

步骤62判断是否取到子目录策略,如果是,读取被保护子目录下的文件名集合,转步骤63,否则转步骤6b;

步骤63取子目录下一个文件策略;

步骤64判断是否取到文件策略,如果是,从子目录下文件名集合中删除该文件名,转步骤65,否则转步骤69;

步骤65判断是否可变策略,如果是转步骤68,否则转步骤66;

步骤66对被保护文件压缩、计算文件特征值,计算方法同步骤36;

步骤67判断文件特征值是否与子版本同文件特征值不相同:子版本同文件的文件特征值为备份库子版本中该文件的文件特征值,或若子版本中无保存时为备份库基本版本文件中的该文件的文件特征值,如果是不相同转步骤68,否则转步骤63;

步骤68将子版本中文件压缩版本解压缩复制到软件的子目录,覆盖被保护的原文件,转步骤63;

步骤69判断目录策略是否为净化,如果是转步骤6a,否则转步骤61;

步骤6a删除被保护子目录下未经策略处理的文件,删除子目录下文件名集合中剩余的文件,以净化目录,转步骤61;

步骤6b是结束状态;按照保护策略恢复,当策略保护文件被修改时自动恢复,可变文件被恢复,并清除植入文件。

说明书 :

技术领域

本发明涉及计算机主机系统,特别涉及一种对信息系统中软件进行安全备份、监视和恢复的版本完整性保护方法。

背景技术

信息系统中的软件由于病毒、攻击或操作失误等原因,可能导致软件的程序、数据的完整性遭受破坏,进而使得系统不能正常工作。软件的恢复和还原是常用方法,但是需要花费很多时间和精力。此外,软件的升级或更新也是经常发生的。软件的完整性保护、版本更新,可以及时修复损坏的系统,保持数据的持续有效,以提高系统的可用性。软件完整性保护方法可以广泛应用于政治、国防、商业、文化等等领域中的重要信息系统的设计、开发、使用和维护过程,对于提高系统的安全保障能力具有重要作用。
目前的软件恢复和还原技术存在着重复备份占用太多存储空间、还原之后数据丢失、病毒攻击删除不清等问题。

发明内容

本发明的主要目的是针对目前信息系统中软件完整性保护和版本更新过程中重复备份、保护和更新操作繁杂、植入文件删除不清等问题,提供一种基于版本增量备份的软件完整性保护方法,以提高软件备份和保护效率,提高系统的可用性。
本发明提供一种基于版本增量备份的软件完整性保护方法,该方法包括以下主要步骤:(1)定义软件版本的保护策略;步骤20初始动作;步骤21选择策略设定子目录,得到一个子目录名或结束标记;步骤22判断是否取得子目录;如果取得子目录转步骤23,否则转步骤27;步骤23开始定义目录策略;扩展目录策略的记录,取得第一个子目录为建立目录策略,设置子目录是否净化,文件计数0;步骤24设定精确保护文件集合,选择、得到策略设定为精确保护的文件集合,为集合中每个文件扩展并填写文件策略记录,含文件名,保护方式为精确、取值2;目录策略的记录中文件计数加上文件个数;步骤25设定粗略保护文件集合,选择、得到策略设定为粗略保护的文件集合;为集合中每个文件扩展并填写文件策略记录,含文件名,保护方式为粗略、取值1,目录策略的记录中文件计数加上文件个数;步骤26设定可变文件集合,选择、得到策略设定为可变的文件集合,为集合中每个文件扩展并填写文件策略记录,含文件名,保护方式为可变、取值0,目录策略的记录中文件计数加上文件个数,转步骤21;步骤27保存策略写入备份库子版本,建立备份库子版本目录,依次将子目录策略、文件策略写入相应备份库子版本的文件中;步骤28是结束状态,结束时,在备份库中该版本目录下保存了子版本保护策略。
(2)软件基本版本的初始化的步骤:将选择的一个子版本作为基本版本;步骤30为是初始动作,建立备份库基本版本目录,将选定子版本保护策略读入保护策略结构中;步骤31选取一个策略子目录;步骤32判断是否取到子目录策略,如果取到子目录策略转步骤33,否则转步骤38;步骤33取子目录下一个文件策略;步骤34判断是否取到文件策略,如果取到文件策略转步骤35,否则转步骤31;步骤35对被保护文件压缩生成压缩版本,将文件压缩版本复制到备份库基本版本目录;并在方法中选择相同压缩/解压算法;步骤36计算文件特征值;对文件压缩版本FZ=f[0],f[1],...,f[i],...,f[fsize-1],按照保护策略方式采取不同的计算方法得到文件特征值;步骤37保存文件名和文件特征值在文件特征向量表中:即将文件名,文件特征值填入文件特征向量表;转步骤33;步骤38保存文件特征向量表至备份库基本版本下的文件中;步骤39是结束状态,结束时,在备份库中基本版本目录下保存了文件压缩版本,文件特征向量表;
(3)软件子版本的保存的步骤:按照选择的子版本保护策略建立一个子版本备份;
步骤40为是初始动作,策略定义时已建立了备份库子版本目录,将选定子版本保护策略读入保护策略结构中;步骤41选取一个策略子目录;步骤42判断是否取到子目录策略,如果是转步骤43,否则转步骤4a;步骤43取子目录下一个文件策略;步骤44判断是否取到文件策略,如果是转步骤45,否则转步骤41;步骤45判断是否可变策略,如果是转步骤49,否则转步骤46;步骤46对被保护文件压缩生成压缩版本,计算文件特征值,计算方法同步骤36;步骤47判断文件特征值向量是否与基本版本中同文件的文件特征值向量不相同,如果是转步骤48,否则转步骤43;步骤48保存文件名和文件特征值在文件特征向量表中,将文件名、文件特征值填入文件特征向量表;步骤49将文件压缩版本复制到备份库子版本目录,转步骤43;步骤4a保存文件特征向量表至备份库子版本的文件中;步骤4b是结束状态,结束时,在备份库中子版本目录下保存了有更新的文件压缩版本,及其文件特征向量表。
(4)软件运行监视与保护的步骤:将选择的子版本保护策略作为运行监视保护策略;由定时器定时启动或用户选择启动;步骤50为是初始动作,将选定子版本保护策略读入保护策略结构中;步骤51选取一个策略子目录;步骤52判断是否取到子目录策略;如果是,读取被保护子目录下的文件名集合,转步骤53,否则转步骤5b;步骤53取子目录下一个文件策略;步骤54判断是否取到文件策略;如果是,从子目录下文件名集合中删除该文件名,转步骤55,否则转步骤59;步骤55判断是否可变策略;如果是转步骤53,否则转步骤56;步骤56对被保护文件压缩、计算文件特征值;计算方法同步骤36;步骤57判断文件特征向量是否与子版本同文件的文件特征向量不相同;子版本同文件的文件特征向量为备份库子版本中该文件的文件特征向量,或基本版本该文件的文件特征向量;如果是转步骤58,否则转步骤53;步骤58将备份库子版本中文件压缩版本解压缩复制到软件的子目录,覆盖被保护的原文件,转步骤53;步骤59判断目录策略是否为净化;如果是转步骤5a,否则转步骤51;步骤5a:删除被保护子目录下未经策略处理的文件;删除子目录下文件名集合中剩余的文件,以净化目录,转步骤51;步骤5b是结束状态,在发现受策略保护文件被修改时自动恢复,并清除植入文件。
(5)软件子版本的恢复的步骤包括,步骤60为是初始动作,将选择的子版本保护策略作为子版本恢复策略,将选定子版本保护策略读入保护策略结构中;步骤61选取一个策略子目录;步骤62判断是否取到子目录策略,如果是,读取被保护子目录下的文件名集合,转步骤63,否则转步骤6b;步骤63取子目录下一个文件策略;步骤64判断是否取到文件策略,如果是,从子目录下文件名集合中删除该文件名,转步骤65,否则转步骤69;步骤65判断是否可变策略,如果是转步骤68,否则转步骤66;步骤66对被保护文件压缩、计算文件特征值;步骤67判断文件特征向量是否与子版本同文件特征向量不相同:子版本同文件的文件特征向量为备份库子版本中该文件的文件特征向量,或若子版本中无保存时为基本版本文件的文件特征向量,如果是不相同转步骤68,否则转步骤63;步骤68将子版本中文件压缩版本解压缩复制到软件的子目录,覆盖被保护的原文件,转步骤63;步骤69判断目录策略是否为净化,如果是转步骤6a,否则转步骤61;步骤6a删除被保护子目录下未经策略处理的文件,删除子目录下文件名集合中剩余的文件,以净化目录;步骤是结束状态。按照鲍照保护策略恢复,当策略保护文件被修改时自动恢复,可变文件被恢复,并清除植入文件。
这些主要步骤可以根据需要组合使用。例如,步骤1、2、3、4,为对一个软件定义版本保护策略,构成基本版本和一个初始子版本,并进行该子版本的保护。此后,执行步骤1、3、4,就可进行另一子版本的保护。此时,若执行步骤5,可在软件版本被破坏时进行指定子版本的恢复。
本发明的有益效果是:通过定义基本版本和子版本增量备份,根据文件作用和工作方式可采取不同保护方式,引入净化目录清除系统外部可能的植入文件。此方法既可保护软件系统的完整性,又为软件版本提供更新功能。
下面将结合附图对最佳实施例进行详细说明。

附图说明

图1软件保护结构示意图
图2定义软件版本保护策略的流程图
图3软件基本版本初始化的流程图
图4软件子版本保存的流程图
图5软件运行监视与保护的流程图
图6软件子版本的恢复的流程图

具体实施方式

如图1所示,软件完整性保护方法由多个保护功能模块组成,根据保护策略对被保护软件实施完整性保护。系统在安全位置,如移动存储或异地服务器中设置版本备份库,用以保存被保护软件的一个基本版本和若干子版本备份。基于这个基本版本,用户可以根据应用需要,定义若干子版本。子版本对应一个保护策略。对于子版本,版本库中保存保护策略和子版本增量部分的文件备份。可以对软件指定子版本保护策略实施运行时的监视保护。由于各种原因发生软件完整性    损坏时,可用指定的子版本进行软件恢复。
文件保护方式可以为精确、粗略、可变等3种。1)精确保护,使用保护特征较多、计算量较大,取值为2;2)粗略保护,使用保护特征较少、计算量较小,取值为1;3)可变保护,对文件变化不检查保护,取值为0。其中精确和粗略保护方式下文件是不可变的。基本版本备份包括基本版本策略保护文件(可变和不可变)的压缩版本集合、文件名和特征值表。基本版本对应一个子版本,通常为第一个子版本。子版本备份包括子版本策略保护的文件集合中,与基本版本有更新的不可变文件的压缩版本集合、文件名和特征值表,可变文件压缩版本集合以及子版本保护策略。版本保护策略按照保护目录来组织,为目录策略的集合。每个目录可定义是否净化,目录下各保护文件分别定义文件策略,包括文件名和保护方式。
本发明方法包括5个主要步骤,工作流程如图2-图6所示。
图2表示软件版本保护策略定义的流程,以此流程可定义基本一个子版本的保护策略。步骤20是初始动作。步骤21选择策略设定子目录,得到一个子目录名或结束标记。步骤22判断是否取得子目录。如果是转步骤23,否则转步骤27。步骤23开始定义目录策略。扩展(第一个为建立)目录策略的记录(含目录名,净化否,文件计数),设置子目录是否净化,文件计数0。步骤24设定精确保护文件集合。选择、得到策略设定为精确保护的文件集合。为集合中每个文件扩展并填写文件策略记录(含文件名,保护方式为精确、取值2)。目录策略的记录中文件计数加上文件个数。步骤25设定粗略保护文件集合。选择、得到策略设定为粗略保护的文件集合。为集合中每个文件扩展并填写文件策略记录(含文件名,保护方式为粗略、取值1)。目录策略的记录中文件计数加上文件个数。步骤26设定可变文件集合。选择、得到策略设定为可变的文件集合。为集合中每个文件扩展并填写文件策略记录(含文件名,保护方式为可变、取值0)。目录策略的记录中文件计数加上文件个数。步骤27保存策略写入备份库子版本。建立备份库子版本目录,依次将子目录策略、文件策略写入相应备份库子版本的文件中。步骤28是结束状态。结束时,在备份库中该版本目录下保存了子版本保护策略。
图3表示软件基本版本初始化的流程。将选择的一个子版本作为基本版本。步骤30为是初始动作。建立备份库基本版本目录。将选定子版本保护策略读入保护策略结构中。步骤31选取一个策略子目录。步骤32判断是否取到子目录策略。如果是转步骤33,否则转步骤38。步骤33取子目录下一个文件策略。步骤34判断是否取到文件策略。如果是转步骤35,否则转步骤31。步骤35对被保护文件压缩生成压缩版本,将文件压缩版本复制到备份库基本版本目录。文件压缩采用压缩率较高的算法,如RAR。并在方法中选择相同压缩/解压算法。步骤36计算文件特征值。
对文件压缩版本FZ=f[o],f[1],...,f[i],...,f[fsize-1],按照保护策略方式采取不同的计算方法得到文件特征向量。
1)精确保护方式。对全文件内容计算文件特征向量,采用哈希函数,如MD5(长度32字节)。
文件特征向量FV(FZ)=MD5(FZ)
2)粗略保护方式。采用文件大小和若干文件片段检查和等特征值组成文件特征向量(长度同精确方式)。
文件特征向量FV(FZ)=其中,文件大小FZ.fsize用4字节;
31个检查和表现文件31个片段的特征。选取一定步长L逐步选择片段,如L=4096;r为步内位移,如r=12。
Checksum(i)=f[iL+r:4]<f[iL+r+4:4],i=0,…,30
表示4字节二进制异或运算。从选择的位置iL+r向后取4字节,与其后续的4字节作异或运算。
3)可变保护方式。不用特征值,默认为全0。
步骤37保存文件名和特征值在特征向量表中。将(文件名,特征值向量)填入文件特征向量表。转步骤33。步骤38保存特征向量表至备份库基本版本下的文件中。步骤39是结束状态。结束时,在备份库中基本版本目录下保存了文件压缩版本,文件特征向量表。
图4表示软件子版本保存的的流程。按照选择的子版本策略建立一个子版本备份。步骤40为是初始动作。策略定义时已建立了备份库子版本目录。将选定子版本保护策略读入保护策略结构中。步骤41选取一个策略子目录。步骤42判断是否取到子目录策略。如果是转步骤43,否则转步骤4a。步骤43取子目录下一个文件策略。步骤44判断是否取到文件策略。如果是转步骤45,否则转步骤41。步骤45判断是否可变策略。如果是转步骤49,否则转步骤46。步骤46对被保护文件压缩生成压缩版本,计算文件特征值。计算方法同步骤36。步骤47判断特征值向量是否与基本版本中同文件特征值向量不相同。如果是转步骤48,否则转步骤43。步骤48保存文件名和特征值在特征向量表中。将(文件名,特征值向量)填入文件特征向量表。步骤49将文件压缩版本复制到备份库子版本目录。转步骤43。步骤4a保存特征向量表至备份库子版本的文件中。步骤4b是结束状态。结束时,在备份库中子版本目录下保存了有更新的文件压缩版本,及其文件特征向量表。
图5表示软件运行监视与保护的流程。将选择的子版本保护策略作为运行监视保护策略。可由定时器定时启动或用户选择启动。步骤50为是初始动作。将选定子版本保护策略读入保护策略结构中。步骤51选取一个策略子目录。步骤52判断是否取到子目录策略。如果是,读取被保护子目录下的文件名集合,转步骤53,否则转步骤5b。步骤53取子目录下一个文件策略。步骤54判断是否取到文件策略。如果是,从子目录下文件名集合中删除该文件名,转步骤55,否则转步骤59。步骤55判断是否可变策略。如果是转步骤53,否则转步骤56。步骤56对被保护文件压缩、计算文件特征值。计算方法同步骤36。步骤57判断特征向量是否与子版本同文件特征向量不相同。子版本同文件特征向量为备份库子版本中该文件特征向量,或基本版本该文件特征向量(若子版本中无保存时)。如果是转步骤58,否则转步骤53。步骤58将备份库子版本中文件压缩版本解压缩复制到软件的子目录,覆盖被保护的原文件。转步骤53。步骤59判断目录策略是否为净化。如果是转步骤5a,否则转步骤51。步骤5a删除被保护子目录下未经策略处理的文件。删除子目录下文件名集合中剩余的文件,以净化目录。步骤5b是结束状态。在发现受策略保护文件被修改时自动恢复,并清除植入文件。
图6表示软件子版本恢复的流程。步骤60为是初始动作。将选择的子版本保护策略作为子版本恢复策略。将选定子版本保护策略读入保护策略结构中。步骤61选取一个策略子目录。步骤62判断是否取到子目录策略。如果是,读取被保护子目录下的文件名集合,转步骤63,否则转步骤6b。步骤63取子目录下一个文件策略。步骤64判断是否取到文件策略。如果是,从子目录下文件名集合中删除该文件名,转步骤65,否则转步骤69。步骤65判断是否可变策略。如果是转步骤68,否则转步骤66。步骤66对被保护文件压缩、计算文件特征值。计算方法同步骤36。步骤67判断特征向量是否与子版本同文件特征向量不相同。子版本同文件特征向量为备份库子版本中该文件特征向量,或基本版本该文件特征向量(若子版本中无保存时)。如果是转步骤68,否则转步骤63。步骤68将子版本中文件压缩版本解压缩复制到软件的子目录,覆盖被保护的原文件。转步骤63。步骤69判断目录策略是否为净化。如果是转步骤6a,否则转步骤61。步骤6a删除被保护子目录下未经策略处理的文件。删除子目录下文件名集合中剩余的文件,以净化目录。步骤是结束状态。按照鲍照保护策略恢复,当策略保护文件被修改时自动恢复,可变文件被恢复,并清除植入文件。