专利名称:基于计算机取证的数字证据完整性保存方法
技术领域:
本发明属于计算机证据的安全保护领域。通过实时地对被保护计算机系统中所产生的可能的犯罪证据进行固定,实现计算机犯罪证据的原始性保护。
背景技术:
近年来,计算机网络犯罪案件急剧上升,网络犯罪已经成为普遍关心的国际性问题。而打击计算机网络犯罪的关键是找到充分、可靠、具有法律效力的电子证据。因此,计算机取证受到了越来越多的关注,并成为计算机网络安全领域的研究热点。
计算机取证就是对计算机犯罪的证据进行获取、保存、分析和出示,主要包括物理证据和数字证据两个方面。物理证据就是指合法的调查人员来到计算机犯罪或者入侵现场,寻找并扣留相关的计算机硬件;数字证据是指从原始数据(包括文件、日志等)中寻找用来证明某种具体犯罪行为的电子证据。与其他合法的证据一样,这些电子证据必须真实、合法。
一般来说,物理证据的安全性保护比较容易。而电子证据由于自身具有易修改、易删除等特点,使得它们的安全性保护变得困难。如果这些电子证据从产生的时刻到提交到合法的调查人员手中这一过程中发生了任何一点改变,都将使它们失去法律效力。因此,如何保证所提交的电子证据与原始的电子信息完全一致,变得十分重要。
当前,在这一研究领域中,国内外的理论研究状况大都是跟踪研究居多、源头创新思想较少,许多研究成果都是停留在一个统一的模式上被取证机、取证机和分析机。这样的研究模式几乎是跟踪入侵检测系统的框架结构,没有体现入侵取证的具体目标,反倒是继承了入侵检测系统的一些安全缺陷,如自身安全保护不力、漏报和误报率高、资源消耗庞大、所保留的证据文件不具有严格的法律效力且易于被篡改。与具体的理论研究工作进展不同的是,已经出现了不少的取证工具软件,如TCT(the Coronor’s Toolkit)和Encase等取证软件。但是,这些工具软件的重点都是如何恢复被删除的文件,如何在事后文件信息中提取证据。随着网络入侵形式的多样化和反取证技术的出现,它们的实用性将受到大的限制。并且,一旦包含入侵信息的数据被删除或者在正式提交之前就已经被恶意篡改的话,它们将失去法律效力。
发明内容本发明的目的是解决现有计算机取证技术无法实现取证信息的完整性实时保护的问题,提供一种基于计算机取证的数字证据完整性保证方法。
本发明提供的基于计算机取证的数字证据完整性保存方法,是在主机系统运行期间,实时地记录主机产生的可能与入侵相关的每一条关键信息即取证信息,并采取一致性算法对这些信息记录进行保护;具体包括——取证信息的安全签名与转移在新产生的信息记录mi生成的同时,进行复制、签名和安全存储,信息记录签名的详细步骤如下(a)S产生满足条件的素数p和q,计算g=h(p-1)/qmod p,且h<p-1,且h(p-1)/qmodp>1,其中,p,q,g是公开的;(b)由于签名过程中用到的r值与具体的信息无关,因此可以产生一串随机的小于q的k值,并且计算出与之对应的r值,对每个k值,计算出k-1,其中,0<k<q,(k-1k)mod q=1,r=(gkmod p)mod q;(c)当一条新的信息记录mi产生,就会产生一份完全的拷贝mi’,此时,从(b)的结果中取出一组值(ki,k-1i,ri);(d)S随机取值xi作为第i条信息记录的私人密钥,xi<q,并根据公式y=gxmodp计算出相应的公开密钥yi;(e)根据公式s=(k-1(SHA(m)+xr))mod q计算出相应的si,其中,m=mi’||i||ti。如果mi’中包含时刻ti,则m的表达式中不再考虑ti;
(f)经过前面各步所得到的ri和si就是被取证计算机系统S对第i条信息记录mi的数字签名;当一条新的信息记录的签名完成,S就将签名ri、si和信息记录mi’、记录序列号i以及该记录生成的时间ti发送到安全存储对象M中;(g)当第i条信息记录的签名和其相关信息存储到M时,调用安全散列SHA算法对mi’||i||ti||SHA(i-1)进行信息摘要,即SHAi=SHA(mi’||i||ti||SHA(i-1),由于这是一个递推式,当第i条信息记录的相关信息到达时,第i-1条信息记录的信息摘要SHA(i-1)已经生成;——重复进行上述取证信息的安全签名与转移过程至全部取证文件记录完成;其中符号与参数“||”,表示字符串的连接操作;“S”,表示被保护的计算机系统,即被取证机;“V”,表示取证信息记录完整性验证者;“mi”,表示计算机在关键性文件中所产生的第i条信息记录;“mi’”表示在第i条信息记录“mi”产生的同时进行复制转移,并存放在足够安全的地方这一过程中用于安全复制转移的对象;“ti”表示计算机在相应的关键性文件中所产生的第i条记录的时刻;——系统参数本发明的取证信息完整性保存方法可以看成是被取证机S即签名者和用户V即验证者之间使用协议的集合,在取证信息完整性协议中,要用到与DSA相同的系统参数,取证信息完整性保护协议的系统参数为“p”,是L位长的素数,其中L从512到1024位且是64的倍数;“q”,是160位长且与p-1互素的因子;“g”,g=h(p-1)/qmod p,其中h是小于p-1并且满足h(p-1)/qmod p大于1的任意数;“x”,是小于q的数;“y”,y=gxmod p;另外,算法中还使用一个单向散列函数H(m),标准指定了安全散列算法SHA;上述参数中,p,q和g是公开的,且可以为网络中的所有用户公有,x为私人密钥,y为公开密钥。
上述关键信息记录包括但不限于主机系统产生的日志以及网络日志,防火墙日志,入侵检测系统日志等。
一种用上述方法保存的取证信息完整性的验证方法,该验证方法包括——(1)取证信息签名和信息摘要的验证,具体过程如下(a)信息一致性验证者V通过常用的身份认证协议向安全存储对象M证明自己的合法身份,在取得合法身份之后,准许对任何信息记录的数字签名和信息摘要进行验证;(b)验证S的签名有效,对第i条信息记录签名的验证过程为①把si代入公式w=s-1mod q,计算出wi;②u1=(SHA(mi’||i||ti)×wi)mod q,u2=(riwi)mod q,则vi=((gu1×yu2)mod p)mod q;经过计算,当vi=ri,则S的签名有效,即mi’≡mi;当验证过程中发现vi≠ri,说明签名无效,表明mi’已经被修改,mi’中所记录的信息不再有效,不具有法律效力;(c)验证第i条签名所对应的信息摘要是否有效把第i条签名所对应的mi’,i,ti值以及第i-1条签名所对应的信息摘要值SHA(i-1)代入公式SHA(mi’||i||ti||SHA(i-1)),得到SHAi’,当SHAi’=SHAi,则第i条签名所对应的信息摘要值有效,这表明第i条签名与第i-1条签名之间没有任何记录被删除或者添加;——(2)重复进行上述取证信息的验证过程至全部取证文件记录验证完成。
本发明的优点和积极效果与现有技术相比,本发明具有以下有益效果
1、取证信息的合法性。每一条取证信息都通过固定的算法进行签名和哈希迭代处理,通过严格的数学推理可以证明验证成功的取证信息是合法的。
2、取证信息完整性保护过程的安全性。本方法所保存的每一条信息记录都是在其生成的时候同时复制到安全的缓冲区中(而不是存入文件中),随后对其进行签名和哈希迭代处理,在保证其原始性的同时又能防止其他进程对信息记录的修改,因而具有很高的安全性。
3、本方法具有较低的运行代价。采用多线程技术,信息记录和签名并行处理,需要的cpu资源和内存资源都较少。
4、更高的实时性。本方法中采用的算法在保证取证信息完整性的前提下,能够实时地对原始的证据信息进行完整性保护与安全转移。本发明方法在前两个阶段,即入侵前、入侵中(见图1)即可实时地对可能的犯罪证据进行完整性保护,避免入侵者的恶意破坏,使得事后的调查取证信息具有客观性、真实性,符合法律规定,具备合法证据所要求的特征。
图1是描述计算机被入侵的全过程示意图;图2取证信息记录的安全签名与转移流程图;图3是信息签名与转移的程序测试流程;图4是数字签名验证的程序测试流程;图5是没有任何信息被修改或者删除时的验证结果;图6是当第4条信息纪录被篡改时的验证结果;图7是当删除第5、6条信息纪录时的验证结果。
具体实施方式实施例1如图1-4所示,计算机证据的完整性验证是计算机证据鉴定中的关键问题。计算机取证工作的难点之一就是证明取证人员所搜集的证据没有被修改过。图1描述了计算机被入侵的全过程,这一过程可分为三个阶段入侵前、入侵中,入侵后。其中,在入侵前期,入侵者首先确定攻击目标,并使用各种扫描工具对目标系统进行远程扫描,以获取目标系统的脆弱性,为下一阶段的成功入侵搜集信息;在入侵中,入侵者根据第一阶段所搜集到的信息,利用各种入侵技术或者工具成功地入侵目标系统;在计算机系统被发现已经被成功入侵或者正在被入侵之后,入侵过程进入第三阶段。显然,在前两个阶段确保犯罪证据的安全性和完整性与入侵后同样重要,因此,本发明提出取证信息的完整性实时保护方法。该方法由以下步骤完成第一步,取证信息的保存——(1)符号与基本定义“||”,表示字符串的连接操作;“S”,表示被保护的计算机系统;“V”,表示取证信息记录完整性验证者;“mi”,在计算机系统中,一些关键性的文件如系统日志、网络信息记录等文件中包含许多信息记录,通过查看这些记录,可以检查错误发生的原因,或者系统受到攻击时攻击者所留下的证据,为了方便描述,我们用“mi”表示计算机在关键性文件中所产生的第i条信息记录;“mi’”,目前,还没有一种加密方法能够阻止入侵者对关键文件以及关键文件中的信息记录进行删除或者添加等恶意行为,解决这个问题需要在信息记录产生时就进行复制转移,并存放在足够安全的地方,这个地方可以是受到安全保护的文件或者是安全的输出机,其中,“mi’”就是“mi”在这一过程中用于安全复制转移的对象;“ti”表示计算机在相应的关键性文件中所产生的第i条记录的时刻;——(2)系统参数本发明的取证信息完整性保存方法可以看成是被取证机S即签名者和用户V即验证者之间使用协议的集合,在取证信息完整性协议中,要用到与DSA相同的系统参数,取证信息完整性保护协议的系统参数为“p”,是L位长的素数,其中L从512到1024位且是64的倍数;“q”,是160位长且与p-1互素的因子;“g”,g=h(p-1)/qmod p,其中h是小于p-1并且满足h(p-1)/qmod p大于1的任意数;“x”,是小于q的数;“y”,y=gxmod p;另外,算法中还使用一个单向散列函数H(m),标准指定了安全散列算法SHA;上述参数中,p,q和g是公开的,且可以为网络中的所有用户公有,x为私人密钥,y为公开密钥;——(3)取证信息的安全签名与转移为了快速地对新产生的信息记录mi进行安全转移,必须在mi生成的时候就进行复制、签名和安全存储,这一过程可以用图2所示的流程来描述。信息记录签名的详细步骤如下(a)S产生满足条件的素数p和q,计算g=h(p-1)/qmod p,且h<p-1,且h(p-1)/qmodp>1,其中,p,q,g是公开的;(b)由于签名过程中用到的r值与具体的信息无关,因此可以产生一串随机的小于q的k值,并且计算出与之对应的r值,对每个k值,计算出k-1,其中,0<k<q,(k-1k)mod q=1,r=(gkmod p)mod q;(c)当一条新的信息记录mi产生,就会产生一份完全的拷贝mi’,此时,从(b)的结果中取出一组值(ki,k-1i,ri);(d)S随机取值xi作为第i条信息记录的私人密钥,xi<q,并根据公式y=gxmodp计算出相应的公开密钥yi;(e)根据公式s=(k-1(SHA(m)+xr))mod q计算出相应的si,其中,m=mi’||i||ti。如果mi’中包含时刻ti,则m的表达式中不再考虑ti;(f)经过前面各步所得到的ri和si就是被取证计算机系统S对第i条信息记录mi的数字签名;当一条新的信息记录的签名完成,S就将签名ri、si和信息记录mi’、记录序列号i以及该记录生成的时间ti发送到安全存储对象M中;(g)当第i条信息记录的签名和其相关信息存储到M时,调用安全散列SHA算法对mi’||i||ti||SHA(i-1)进行信息摘要,即SHAi=SHA(mi’||i||ti||SHA(i-1),由于这是一个递推式,当第i条信息记录的相关信息到达时,第i-1条信息记录的信息摘要SHA(i-1)已经生成;——(4)重复进行上述取证信息的安全签名与转移过程至全部取证文件记录完成。
第二步,取证信息签名的验证在M中,每一条信息记录都经过了图2所示的流程进行签名和信息摘要,且整个过程都由S完成,那么,当签名和信息摘要被正确验证,就可以确定其完整性。下面是签名和信息摘要的验证过程(a)信息一致性验证者V通过常用的身份认证协议向安全存储对象M证明自己的合法身份。在取得合法身份之后,可以对任何信息记录的数字签名和信息摘要进行验证。下面以验证第i条信息记录签名为例;(b)验证S的签名有效①把si代入公式w=s-1mod q,计算出wi;②u1=(SHA(mi’||i||ti)×wi)mod q,u2=(riwi)mod q,则vi=((gu1×yu2)mod p)mod q。经过计算,如果vi=ri,则S的签名有效,即mi’≡mi。如果在验证过程中发现vi≠ri,说明签名无效,它表明mi’已经被修改,mi’中所记录的信息不再有效,不具有法律效力。
(c)验证第i条签名所对应的信息摘要是否有效把第i条签名所对应的mi’,i,ti值以及第i-1条签名所对应的信息摘要值SHA(i-1)代入公式SHA(mi’||i||ti||SHA(i-1)),得到SHAi’,如果SHAi’=SHAi,则第i条签名所对应的信息摘要值有效,这表明第i条签名与第i-1条签名之间没有任何记录被删除或者添加。
重复进行上述取证信息的验证过程至全部取证文件记录验证完成。
实施例2取证信息完整性保护协议的测试效果首先对取证信息进行安全签名与转移(祥见实施例1),其程序测试流程如图3所示。该程序循环首先检测缓冲区是否存在要进行签名的数据,若有,则读出这条记录,判断是否是第一条记录,若是,则计算其SHA摘要,然后计算其签名,若不是,则将上一条记录得到的摘要值加入到这条信息中再进行哈希,最后保存这个信息摘要,并把这条记录及其摘要、签名、公钥以及记录号进行安全保存,然后从缓冲区中删除这条记录。
接下来对已经进行安全签名与保存的信息记录进行验证,其程序测试流程如图4所示。程序从数据库中读出第一行数据,首先验证其签名的正确性,然后判断其是否第一条记录,若是,则计算其hash值与这条记录保存的hash值比较,若不是,则将从上一条记录中得到的hash值加入到记录中再计算其hash值,与该行中保存的hash值进行比较,若相等,则可验证这条记录出现在正确的位置上,即该条记录与上一条记录之间无任何添加的或删除的记录。
现假设有如下一些取证信息1111111111、2222222222、aaaaaaaaaa、bbbbbbbbbb、cccccccccc、3333333333、ttyyuu1177、556677hhkk。
当这8条信息记录未被改动时,其验证结果如图5所示。
当第四条消息纪录“bbbbbbbbbb”被人为篡改为“bbbbbbbbba”时,验证结果如图6所示,从图6中可以看出,第4条记录的签名和hash值都是无效的,由此可以验证第4条纪录已经被篡改过。
当删除第5条和第6条信息纪录时,验证结果如图7所示。
权利要求
1.一种基于计算机取证的数字证据完整性保存方法,其特征是所述方法是在主机系统运行期间,实时地记录主机产生的可能与入侵相关的每一条关键信息即取证信息,并采取一致性算法对这些信息记录进行保护;具体包括——取证信息的安全签名与转移在新产生的信息记录mi生成的同时,进行复制、签名和安全存储,信息记录签名的详细步骤如下(a)S产生满足条件的素数p和q,计算g=h(p-1)/qmod p,且h<p-1,且h(p-1)/qmod p>1,其中,p,q,g是公开的;(b)由于签名过程中用到的r值与具体的信息无关,因此可以产生一串随机的小于q的k值,并且计算出与之对应的r值,对每个k值,计算出k-1,其中,0<k<q,(k-1k)mod q=1,r=(gkmod p)mod q;(c)当一条新的信息记录mi产生,就会产生一份完全的拷贝mi’,此时,从(b)的结果中取出一组值(ki,k-1i,ri);(d)S随机取值xi作为第i条信息记录的私人密钥,xi<q,并根据公式y=gxmod p计算出相应的公开密钥yi;(e)根据公式s=(k-1(SHA(m)+xr))mod q计算出相应的si,其中,m=mi’||i||ti。如果mi’中包含时刻ti,则m的表达式中不再考虑ti;(f)经过前面各步所得到的ri和si就是被取证计算机系统S对第i条信息记录mi的数字签名;当一条新的信息记录的签名完成,S就将签名ri、si和信息记录mi’、记录序列号i以及该记录生成的时间ti发送到安全存储对象M中;(g)当第i条信息记录的签名和其相关信息存储到M时,调用安全散列SHA算法对mi’||i||ti||SHA(i-1)进行信息摘要,即SHAi=SHA(mi’||i||ti||SHA(i-1)),由于这是一个递推式,当第i条信息记录的相关信息到达时,第i-1条信息记录的信息摘要SHA(i-1)已经生成;——重复进行上述取证信息的安全签名与转移过程至全部取证文件记录完成;其中符号与参数“||”,表示字符串的连接操作;“S”,表示被保护的计算机系统;“V”,表示取证信息记录完整性验证者;“mi”,表示计算机在关键性文件中所产生的第i条信息记录;“mi’”表示在第i条信息记录“mi”产生的同时进行复制转移,并存放在足够安全的地方这一过程中用于安全复制转移的对象;“ti”表示计算机在相应的关键性文件中所产生的第i条记录的时刻;“p”,是L位长的素数,其中L从512到1024位且是64的倍数;“q”,是160位长且与p-1互素的因子;“g”,g=h(p-1)/qmod p,其中h是小于p-1并且满足h(p-1)/qmod p大于1的任意数;“x”,是小于q的数;“y”,y=gxmod p;另外,算法中还使用一个单向散列函数H(m),标准指定了安全散列算法SHA;上述参数中,p,q和g是公开的,且为网络中的所有用户公有,x为私人密钥,y为公开密钥。
2.根据权利要求1的保存方法,其特征是关键信息记录包括有主机系统产生的日志以及网络日志,防火墙日志,入侵检测系统日志。
3.一种用权利要求1所述方法保存的取证信息完整性的验证方法,其特征是该验证方法包括——(1)取证信息签名和信息摘要的验证,具体过程如下(a)信息一致性验证者V通过常用的身份认证协议向安全存储对象M证明自己的合法身份,在取得合法身份之后,准许对任何信息记录的数字签名和信息摘要进行验证;(b)验证S的签名有效,对第i条信息记录签名的验证过程为①把si代入公式w=s-1mod q,计算出wi;(②u1=(SHA(mi’||i||ti)×wi)mod q,u2=(riwi)mod q,则vi=((gu1×yu2)mod p)mod q;经过计算,当vi=ri,则S的签名有效,即mi’≡mi;当验证过程中发现vi≠ri,说明签名无效,表明mi’已经被修改,mi’中所记录的信息不再有效,不具有法律效力;(c)验证第i条签名所对应的信息摘要是否有效把第i条签名所对应的mi’,i,ti值以及第i-1条签名所对应的信息摘要值SHA(i-1)代入公式SHA(mi’||i||ti||SHA(i-1)),得到SHAi’,当SHAi’=SHAi,则第i条签名所对应的信息摘要值有效,这表明第i条签名与第i-1条签名之间没有任何记录被删除或者添加;——(2)重复进行上述取证信息的验证过程至全部取证文件记录验证完成。
全文摘要
一种基于计算机取证的数字证据完整性保存方法。解决现有技术无法实现取证信息的完整性实时保护的问题。本发明方法是在新产生的第i条信息记录m
文档编号G06F21/00GK1845116SQ200610013610
公开日2006年10月11日 申请日期2006年4月30日 优先权日2006年4月30日
发明者孙济洲, 綦朝晖, 戴银华 申请人:天津大学