第3章计算机取证与司法鉴定基础知识 3.1仪器设备配置标准 3.1.1背景 随着电子产品的广泛应用,电子证据在诉讼活动中的重要性日益显现。同时,随着国家司法鉴定制度改革的逐渐深入,计算机取证与司法鉴定标准化的相关工作正在逐步展开。2006年,司法部司法鉴定管理局下发了《司法鉴定机构仪器设备基本配置标准(暂行)》(以下简称《配置标准》); 2011年9月,司法部司法鉴定管理部门就《配置标准》的修订向社会广泛征求意见,并在征求意见稿中对原声像资料鉴定细分为录音资料鉴定、图像资料鉴定和电子数据鉴定三类,以国家意志的形式推动电子数据鉴定机构仪器设备配置的标准化和规范化发展。 3.1.2配置原则 从计算机取证与司法鉴定的流程和模型看,预检工作主要通过拍照、录像以及通电测试等手段,真实记录检材受理前的各种状态及电气特性; 检材接收主要包括在正式受理后对检材进行校验码(即Hash值)计算和在双方共同确认下封存Hash值; 检材克隆主要通过“位对位”克隆和Hash值比对等方式校验副本与原始检材的一致性; 数据分析主要通过多种形式、多种手段、多种层次粒度完成对数据信息的全面分析工作; 提取固定、鉴定结论和出庭质询主要是指在数据分析的基础上,提取并固定有价值的证据信息形成鉴定结论,并做好出庭接受质询的准备。而工作环境、证据链监督和仪器设备的评测准入是计算机取证与司法鉴定过程控制与质量管理的具体体现。设备的配置标准应依据鉴定的整个流程,充分涵盖技术、管理与法律层面相切合的特性,突出鉴定的过程控制和质量管理等基础特点,并能体现释疑重现的全程证据链监督,同时考虑强制引入国家的评测准入机制,确保标准制定的科学性、规范性和广泛适用性。 3.1.3配置标准及说明 1. 必备仪器设备 依据计算机取证与司法鉴定的相关步骤,现场勘验和检材预检环节必备的仪器设备有照相机、摄像机; 检材克隆和证据固定环节必备的仪器设备有只读接口、数据克隆工具和校验码计算工具,这是计算机取证与司法鉴定过程控制与质量管理的根本保证。通过只读、克隆和校验三大基础技术,保证了计算机取证与司法鉴定既能定性又能定量,且可以随时精确重现的显著特点; 证据发现和分析鉴定环节必备的仪器设备有电子数据检验专用计算机和综合性电子数据恢复、搜索、分析软件,以确保可以深入地发现及提取证据信息,并进行分析形成完整的证据链; 同时,针对整个鉴定流程的质量管理必备的仪器设备还有电子物证存储柜以及其他相关工具。 以上归纳起来有八类必备设备,分析说明如下。 1) 照相机和摄像机 照相或摄像是现场勘验取证以及鉴定机构与委托方进行检材交接时的必要环节,照相或摄像时主要关注检材的一些重要细节信息,包括检材外观、型号、接口类型、存储容量、S/N编码、是否封装或贴有封条、编号、写有文字等重要特征,是证明检材送检状态及完整性的重要依据。此外摄像也是必要时审核鉴定过程是否合法的一项重要手段,例如在缺乏现场见证人或进行在线取证时,检验操作者是否按鉴定标准规范进行操作。 2) 只读接口 只读接口设备通过数字只读技术保护检材内电子数据不被“污染”,从而保证检材数据自受理至鉴定完成整个过程的原始性和完整性。只读工具从实现形式上分为软件只读和硬件只读,软件只读依托操作系统的相关进程指令实现只读,硬件只读通过在鉴定计算机和存储设备间增加硬件设备,并屏蔽“写入”信号实现数据的只读操作。直接对检材进行勘验时,必须通过只读接口设备,以保证电子证据的原始性和完整性,规避鉴定人无意中对检材的更改、添加或删除等操作。由于检材接口类型的多样性,需要配备多种常用类型接口的只读接口工具,如IDE只读接口、SATA只读接口、SCSI只读接口、SAS只读接口等。在配置数量上,各类只读接口设备应至少配备3套,以保证磁盘阵列的常规鉴定需求,如RAID5型磁盘阵列至少由3块硬盘组成,重组时须保证3套只读接口。 3) 数据克隆工具 首先,“数据复制工具”与“数据克隆工具”是不同的。人们通常所说的复制是相对操作系统而言的,是对介质存储数据内容的简单复制,复制操作的最小单位是文件,而克隆是针对数据存储设备的每一个存储单位,是一种“位对位”的全盘镜像,两者操作涉及的粒度相差较大。例如,将硬盘A中数据内容C复制到空硬盘B中,此时硬盘A和B中内容都为C,但对B盘进行数据恢复操作后得到的数据很可能并不为C; 克隆操作不仅可以保证不管对硬盘A和B进行什么恢复操作得到的内容数据都为C,并且两块硬盘的校验码也相同。 其次,克隆是为了在鉴定过程中不破坏和修改检材原有数据的完整性,通过硬盘复制机或克隆软件将原始检材中的内容克隆到目标检材中。由于这种克隆是位对位的克隆,原始检材中的内容会在目标检材中完全地反映出来,不会丢失、遗漏,也不会被修改,包括被删除的文件、未分配空间、打印缓冲区、数据残留区和文件碎片等,这样就可以只对克隆后的目标检材进行取证鉴定。 再次,克隆是证据载体的可靠备份,是证据保全的重要环节。当证据受到质疑时人们可以通过克隆检材的方式重现鉴定过程,消除质疑。 最后,在某些情况下对原始检材的检查、实验等操作存在诸多不可预见性,可能会影响电子证据的原始性。如某些检材无法从现场带走,或者需要就地将磁盘阵列中的数据重组转移到取证硬盘中,或者需要多人对同一检材同时进行鉴定,这时对检材进行数据克隆是非常必要的,不仅可以提高工作效率、有效避免对检材数据造成不可逆的破坏,还可以保证鉴定过程的有效控制。 4) 校验码计算工具 校验码比对是计算机取证与司法鉴定过程控制与质量管理的三大基础技术之一,既能够辅助克隆技术精确重现鉴定过程,又能够用于电子证据的保全等,它通过校验Hash值实现。以MD5和SHA1这两种常见的Hash算法为例,它们可以对任意类型的文件、硬盘分区或者整个硬盘进行校验,分别输出128位和160位的定长散列值,同一文件、硬盘分区或硬盘数据中哪怕一个标点符号的更改都会导致输出的Hash值不同,这就是校验码比对的意义。由于文件、硬盘分区或者整个硬盘的容量很大,但通过校验Hash值可以在案件进行的任何时候非常方便地验证文件、分区或整个磁盘的Hash值,来判定校验对象是否被修改。 校验码比对是证据链监督的一个重要检验手段,这是因为通过比对检材的校验码值,可以检验整个司法过程中各个环节是否对检材造成“污染”,确保了证据的原始性和一致性。虽然一些具备电子数据恢复、搜索和分析功能的综合性取证软件中通常集成有校验码计算功能,但在某些情况仅需要计算校验码时,配备专门小巧实用的校验码计算工具就显得高效且必要。也有意见认为综合性取证软件集成了校验码计算功能是否不应再单独列出,但是鉴于校验码计算工具的特殊意义和实际作用,笔者认为应该将其单列出来作为必备工具之一。 5) 电子数据检验专用计算机 电子数据检验专用计算机就是指专门用于电子数据检验分析的计算机,一般应当配备两台,一台可以连接互联网进行普通的鉴定,另外一台不得与任何网络连接,专门鉴定保密数据。有些电子数据检验工作站,直接集成了只读锁、读卡器、克隆机、打印机等硬件设备,安装了各类检验分析软件和校验工具,也可以作为电子数据检验专用计算机。 6) 综合性电子数据恢复、搜索、分析软件 例如,像常见的EnCase、FTK、XWays、Winhex、DataCompass等综合性较强的电子数据恢复、搜索、分析软件,此类综合软件能很好地完成电子证据的显示、搜索、恢复、提取、校验、分析、镜像等多种功能,对于专业的计算机取证与司法鉴定机构至少应该配备1~2种。同时应该引起重视的是此类软件功能丰富且专业性很强,对鉴定结果有着至关重要的影响,对其进行评测准入来保证鉴定的合法性、准确性和公正性就显得尤为重要。 7) 电子物证存储柜 电子物证存储柜主要用于检材的安全存放,是体现鉴定机构程序管理与质量管理的重要环节,也是鉴定机构管理检材的必备设备,应具备一定的防盗功能。 8) 其他必要工具 在计算机取证与司法鉴定工作中一些常见的小工具也是必备的,因种类多而杂,这里归纳到一起,如各种接口的转接卡和转接桥(SATA转IDE、MicroSATA转SATA、SAS转SATA,等等)、各类存储卡读卡器(如SD卡、MMC卡、CF卡以及TF卡等常见存储介质的读卡器)、用于存储克隆数据的大容量硬盘(500GB以上)、各类数据线和电源线、螺丝刀和内螺起(拆笔记本用)、防静电袋和手套、光盘刻录机、标签纸和记号笔等。 2. 选配仪器设备 可选配设备种类繁多,功能各异,各计算机取证与司法鉴定机构可以根据自己的业务和自身经济实力灵活配置。选配设备可以按计算机取证与司法鉴定的类别层次划分为技术支撑设备、应用支撑设备和其他工具设备。同时,考虑到选配设备太多,以免配置标准目录过长,这里只将技术支撑设备和应用支撑设备列为选配设备,以作参考。 技术支撑设备有密码破解系统、专业数据恢复工具、磁盘阵列重组设备、海量数据存储系统等。 应用支撑设备有即时通信综合取证分析工具,病毒及恶意代码综合分析工具,电子文档与数据电文综合分析工具,数据比较工具,现场取证工具,在线取证工具,手机数据提取、恢复、分析工具, MAC/Linux系统检验工具等。 其他工具设备有数据销毁设备、存储介质修复工具、工业超净间、电焊台、磁力显微镜、录音笔、扫描仪、碎纸机、光盘销毁机、视频监控设备、交换机、路由器、硬件防火墙等。具体配置标准如表31所示。 表31计算机取证与司法鉴定机构仪器设备配置标准 03计算机取证与 司法鉴定 照相机1台必备 摄像机1台必备 只读接口3套必备 数据克隆工具1套必备 校验码计算工具1套必备 电子数据检验专用计算机2台必备 综合性电子数据恢复、搜索、分析软件1套必备 电子物证存储柜1套必备 其他必备工具1套必备 密码破解系统1套选配 专业数据恢复工具1套选配 磁盘阵列重组设备1套选配 海量数据存储系统1套选配 即时通信综合取证分析工具1套选配 病毒及恶意代码综合分析工具1套选配 电子文档与数据电文综合分析工具1套选配 数据比较工具1套选配 现场取证工具1套选配 在线取证工具1套选配 手机数据提取、恢复、分析工具1套选配 MAC/Linux系统检验工具1套选配电子数据检验系统须配备防范计算机病毒等恶意代码及网络入侵的措施 3.1.4结语 开展计算机取证与司法鉴定机构仪器设备基本配置标准研究,不仅可以为鉴定机构配置仪器设备提供直接参考,而且可以有效地促进鉴定理论技术的研究、工具设备的研发,以及评测准入机制的建立,以致通过技术使结论科学化,通过管理使技术规范化,通过法律使鉴定合法化来推动计算机取证与司法鉴定的标准化、规范化研究。 3.2数据加密 在取证过程中,取证人员还经常遇到的一个问题就是打开一个有密码保护的文件,或是经过某种加密后,显示为乱码的文件。这时对取证人员来说,首要问题就是想办法将这种加密破解,恢复数据的原本面貌。 3.2.1密码学 密码学是研究秘密通信的原理和破译密码的方法的一门科学。数据加密的起源可能要追溯到人类刚刚出现,并开始学习如何通信的时候,他们想寻找一种方法对通信的内容保密,只能通信双方知道,而外人不能了解真正的内容。随后,密码学经历了漫长的发展。而最近几十年随着计算机的应用,密码学也得到了飞速的发展。尤其是近几年随着网络的高速发展,原来人们必须亲自去做的事现在都可以通过网络来完成,因而对网络传输数据的加密提出了更高的要求。例如,网上银行,人们在输入信用卡号和密码时,就要求传输的数据具有很高的安全性,否则,后果不堪设想。 图31为整个加密解密过程的概貌,其中C=EK[M]为采用加密算法E,密钥为K对明文加密,M=Dk[C]为其相应的解密算法。 图31加密解密过程 3.2.2传统加密算法 传统加密算法主要有以下几种。 1. 替换加密 替换加密是用另一个字符替换明文中的一个字符。这种替换是通信双方提前约定好的。接收者收到密文后,只要按照约定进行逆替换即可。例如,凯撒密码就是对英文字母表中的26个字母用其后的第K个字母代替,当K为2时即是: c代替a,d代替b,…,a代替y,b代替z,其中K成为密钥,可以为1~25的任意值(K为0时相当于不加密,无意义)。当然,这种替代是任意的,不一定按照字母表顺序,双方可任意约定,如d代替a,m代替b,f代替c等。 2. 代码加密 代码加密是指通信双方预先设定一组代码,明文和这组代码进行运算所得的结果为密文,接收方进行反运算得出明文。 例如,将26个英文字母a到z分别用0~25这26个数字表示,加密算法为将明文和密钥的对应位数字相加后对26取余,即α=(β+ki)mod 26,则明文computer,密钥the,加密后为: 明文computer 密钥thetheth 密文vvqibxxy 3. 换位密码 换位密码根据一定的规则重新安排明文字母。 例如,一个周期为4的换位密码,密钥是3、1、4、2,明文为computer。 明文: computer 密文: mcpoeurt 此类密码破解相对较简单。在英文中,对于一定数量的英文来说,字母出现的频率是有一定规律的,如单字母中e、t出现最多,双字母组合th出现最多,三字母组合the等,只要进行一定的分析即可。 3.2.3对称加密体系 密码学可分为两类: 对称密码体系(单钥密码算法)和非对称密码体系(公钥密码体系)。前者为加密解密采用相同或相似的密钥,由加密密钥很容易得出解密密钥。因此,采用此类加密算法的密钥是必须保密的。本部分介绍两种此类加密算法。 1. DES DES是美国国家标准局于1977年正式公布的,它采用56位密钥来对64位明文转换为64位的密文,其中密钥K总长为64位,第8、16、…、64这8位为奇偶校验位。其加密过程如下。 第一步,将64位明文T按照初始变换表进行初始变换: T′=IP(T)。 第二步,T′进行16次函数f运算。 第三步,对第二步的结果进行逆换位运算IP-1。 其中,密钥K在第二步参与16次函数的运算,并且16次运算所用的密钥不同,但都由K进行移位、换位等运算得出。运算过程如图32所示。 图32DES过程 在第二步中,64位明文分为两部分,记为L和R,每部分包含32位,在每一轮运算时,R一方面直接成为下一步的L部分,另一方面R和密钥ki进行函数f运算后再与L运算成为下一步运算时的R部分,即在下一步运算时,L和R进行了交换。但在最后一轮即第16轮运算中不做交换,直接作为相应部分即可。最后把两部分进行合并,进行逆换位运算。解密时,只要按加密的相反步骤即可。 由于DES仅采用了长度较短的56位密钥,因此其安全性受到了严重的挑战。通过穷尽密钥搜索和查分攻击,已造成了DES算法的安全性不再受到信任。在1998年,电子便捷基金会动用了一台价值为25万美元的高速计算机,在56个小时内通过穷尽搜索破译了56位长度的DES。而从1998年至今,计算机的运算速度飞速发展,破译56位密钥的DES已不是难题。 由此,产生了二重DES和三重DES,即多次运用DES。多次运用DES有个重要的前提,即任意两个密钥k1和k2,不能够找到另一个密钥k3,使得k3对明文的加密结果与经过k1和k2两个加密后结果相同,即Ek2[Ek1[M]]≠Ek3[M]。否则,多重DES算法就无意义,再多重也只相当于一重。二重DES即用k1和k2进行两次加密,而三重DES则主要有两种形式: 一种是用k1、k2和k33个密钥; 另一种是用k1和k2两个密钥,其中第一次和第三次运算为加密,密钥为k1,第二次为解密,密钥为k2,解密算法则正好相反。 2. AES 1997年4月美国国家标准和技术协会(ANSI)对各界发出了下一代加密标准(AES)的征求意向,正式公告征求下一代加密算法(AES)以保护敏感但非机密的资料。其基本要求是: 比三重DES快,但同时至少与三重DES安全性相当,分组长度为128位,密钥长度为128位、192位或256位。1998年8月公布了AES的15个候选算法,2000年10月宣布在最终候选的5个算法中Rijndeal算法成为AES的最终标准。 Rijndael算法是一个可变数据块长和可变密钥长的分组迭代加密算法,数据块长和密钥长可分别为128位、192位或256位,但为满足要求,分组长度为128位,密钥长度为128位、192位或256位。 数据用矩阵表示,称为状态。矩阵以列为主,即先排第一列,再第二列,以此类推。每列四行,有4个S盒,每个S盒为一个8位,因此依数据块的不同可分为Nb=4、6、8列。密钥也可类似地表示为二维字节数组,它有四行,Nk列,且Nk等于密钥块长除32,则Nk也同样可取值4、6、8。算法转换的圈数Nr由Nb和Nk共同决定,有等式: Nr=max(Nk, Nb)+6 在整个过程中共需要r+1个子密钥,同时需要构造4(r+1)个32比特字。如当分组长度为128位,密钥为128位时,则Nr=10,所以需11个子密钥,每个子密钥由4个32比特的字W[i]组成,其中0≤i≤43,而W[0],W[1],W[2],W[3]为种子密钥,其余都由这4个通过一定变换得出。 Rijndael算法是一个圈迭代的分组密码,每一圈包括字节替换层(BS)、行移位层(SR)、列混合层(MC)、密钥异或层(ADK)。加密具体步骤如下。 (1) 与会话密钥异或,得到B=Nb×4个S盒,每个S盒有8位。 (2) 对状态的每个字节替换。 (3) 对状态的每一行,按不同的位移量进行行移位。 (4) 对状态中的Nb列中的每列并行应用线性变换GF(2564)→GF(2564) 列混合。如果为最后一圈,则省略这一步。 (5) 异或另一个会话密钥ki后或者结束,或者回到第(2)步开始另一圈。 每一圈变换为(2)~(5)步。 解密过程与加密过程正好相反。 AES与DES相比,无论在加密时间、执行效率,还是安全性方面,AES都要比DES有很大的优势。表32为在相同的条件下两者对某一个文件进行加解密所需时间的比较(时间单位: 秒)。 表32AES与DES对文件加解密所需时间比较 算法加密解密 DES1818 AES610 由表32看出,无论是加密还是解密,AES所需时间都要比DES少很多。 在安全性方面,DES的加密单位仅有64位二进制, 密钥的位数只有56位,各次迭代中使用的密钥ki是递推产生的,而且DES不能对抗差分和线性密码分析。对于AES,其支持可变分组长度,分组长度可设定为32位的任意倍数,最少为128位,最大为256位; 密钥也是同样的限制,对于128位的密钥长度,如采用穷举的方法来破解,以目前PC的速度来说,需要的时间可以说是天文数字。另外,AES可有效对抗差分密码分析和线性密码分析,有较强的安全性。因此,越来越多的场合开始用AES替代DES。 3.2.4公钥密码体系 1976年W.Diffie和M.E.Hellman提出了公钥加密算法,开创了密码学的新时代。公钥密码算法与单钥密码算法的区别是: 公钥算法将加密密钥和解密密钥分开,加密密钥是公开的,称为公开密钥,用于加密; 解密密钥为某个用户专用,不可公开,用于解密。这样,任何人想向某个人发消息,只要用他的公钥加密即可,由于解密密钥只有他自己知道,因此他人想知道真正内容是很困难的。另外,公钥算法要求由加密密钥求解解密密钥是几乎不可能的。 1. RSA RSA算法于1978年由R.Rivest、A.Shamir和L.Adleman提出,是迄今为止在理论上最成熟的公钥加密算法。其理论基础为分解大整数的困难性假定。具体算法如下。 (1) 任意选两个大素数: p和q; (2) 计算n=p×q,(n)=(p-1)×(q-1); (3) 选一整数e,要求: 1<n<(n),且gcd((n),e)=1,即(n)与e互质; (4) 计算d,使得e×d=1 mod (n); (5) {e,n}为公钥,{d,n}为私钥。 加密运算为: 首先将明文比特流分组,使得每个分组对应的十进制数小于n,即分组长度小于log2n,然后对每个分组m加密,c=me mod n。 解密运算为: m=cd mod n。 例如,选p=7,q=17,则n=p×q=119,(n)=(p-1)×(q-1)=96。取e=5,满足条件,则因77×5=385=4×96+1,所以d=77。因此公钥为{5,119},私钥为{77,119}。如明文为23,则加密得c=235mod 119=109,解密为10977mod 119=23。 RSA算法的安全性依赖于分解大数的难度。一旦n分解出p和q,则p-1、q-1及d就可计算出。但至今尚未证明分解因子的困难性,目前来说还是一个难题。 在RSA算法中对p和q的要求有3个: 一是要求p和q的长度不能相差太大,p和q应选大概100位左右的数,这样n能达到200位(目前已能分解130位左右的十进制数); 二是要求p-1和q-1都有大素数因子; 三是gcd(p-1,q-1)不能太大。另外,解密密钥d不要太小。以上几点都是基于RSA的安全性考虑。否则容易受到穷举攻击。 RSA算法可用于保密、签名和认证等方面,目前已在各个领域广泛应用。 2. 椭圆曲线加密 1985年N. Koblitz 和Miller分别独立提出了椭圆曲线密码体制(ECC) ,其依据就是定义在椭圆曲线点群上的离散对数问题的困难性。 所谓椭圆曲线,是指由下面的韦尔斯特拉斯(Weiertrass)方程所确定的平面曲线。 y2+a1xy+a3y=x3+a2x2+a4x+a6(31) 若F是一个域,ai∈F,i=1,2,…,6 满足式(31)的数偶(x,y)称为域上的椭圆曲线E的点。另外,E上的点还需要加上一个无穷远点O,可以把点O看作是由平行线相交于该点。 定义在有限域上的椭圆曲线。其方程如下: y2=x3+ax+b(mod p)(32) 这里p是素数, a和b为两个小于p的非负数,它们满足: 4a3+27b2(mod p)≠0 其中, x,y,a,b∈Fp,则满足式(32)的点(x,y)和一个无穷远点O就组成了椭圆曲线E。椭圆曲线离散对数问题ECDLP定义为: 给定素数p和椭圆曲线E,对Q=kP ,在已知P、Q的情况下求出小于p的正整数k。 可以证明,已知k 和P 计算Q 比较容易,而由Q 和P 计算k 则比较困难,至今没有有效的方法来解决这个问题,这就是椭圆曲线加密算法原理之所在。 椭圆曲线可以用参数集T={p,a,b,G,n,h}来表示,其中p、a、b含义如上描述,G 是在椭圆曲线中所挑选的基点,n 是G 的阶,其值是一个非常大的数,是满足nG=0成立的最小正整数,0为无穷远点。h 是由椭圆曲线上的点的总数除以n 得到的。 在[1,n]之间随机地确定一个整数d,计算Q=dG,就确定了密钥对(d,Q)。主要的安全性参数是n,因此ECC密钥的长度就定义为n的长度。 具体加密过程为(假设由A传送给B,Pm为要加密的明文): (1) 选取椭圆曲线Ep(a,b)和基点G。用户A随机选取一个整数na(na