信息真伪识别与处理技术研究
2018-01-13吴文灿麦永浩通讯作者
◆吴文灿 张 鹏 麦永浩(通讯作者)
(湖北警官学院 湖北 430034)
0 引言
面对管理日趋严格的网络环境,犯罪分子的犯罪手段也越来越隐蔽,他们善于利用网络上一些信息隐藏工具,把犯罪信息隐藏起来或者进行加密,这就使侦办案件的人员不能够轻易地发现犯罪痕迹,给破案增加了难度。因此,对于取证的人员来说,发现隐藏的犯罪信息变得非常重要,判断某一个或某几个文件是普通文件,还是经过加密或修改了的“犯罪文件”,以及如何破解加密文件和发现文件哪一部分被修改的,就变得至关重要了。
在司法鉴定中隐写分析的最终目标,是为了提取出秘密信息作为呈堂证据[1],在进行数据取证时,取证人员往往需要运用多种隐写检测方法,多数情况下检测分析对象也是不确定的,因此,高效、准确地实现数字取证隐写分析已成为一个亟待解决的问题。本文对几种常见的信息隐藏技术进行了分类,并给出了相应的解决方案。
1 更改文件拓展名
在反取证手段中最常见的一种就是用过更改文件拓展名来隐藏犯罪信息,这一方式操作简单,且不易被察觉,仅仅通过一般的取证手段是很难发现此类被修改的文件。“更改文件拓展名”顾名思义就是把本来属于某一文件的格式,通过修改其拓展名转换成另一种格式。比如:某一文件原来是“.doc”,修改拓展名后变为“.dll”,如此一来,文件的格式就变的跟之前毫无关联,犯罪信息也就被隐藏起来,如果办案人员只针对“.doc”的文件进行查找,必定不会有任何结果。
可以明显的看到,修改之后除了文件的图标发生改变之外,文件的大小、占用空间、创建时间、修改时间、访问时间等属性信息都没有发生变化。所以这种更改方式只是给文件换了一个外壳,文件内容并没有发生变化。针对这一情况,我们可以通过查看文件头的内容对文件拓展名是否修改进行判断。下面是通过WinHex查看该文件内容的结果:
图1 原文件
修改后:
图2 修改后的文件
图3 用WinHex查看“.doc”文件
图4 用WinHex查看“.dll”文件
通过两张图片的对比可以发现,不管文件拓展名被修改成什么样子,文件头的内容是不会被修改的,通过查看文件头就能知道,此文件原来是属于何种类型的,是否被修改。
2 文件加密
文件加密技术是一种在操作系统级自动加密写入存储介质的数据的技术。文件加密按加密方法可分为两类:一类是Windows系统的文件加密功能,另一类是商业加密软件实现的加密算法[2]。Windows系统有五种加密方法,商业加密软件分为驱动级加密和插件级加密;加密算法可分为三类:IDEA算法、RSA算法、AES算法。
2.1 Windows系统的文件加密功能
在Windows系统的文件加密功能是系统自带的,即不需要连接外网,也不需要使用专业的软件工具就能对文件加密。目前最常用的有两种加密方式,一种是普通的加密方式,另一种是限制其他用户访问的方式,无论哪一种方式,其目的都是为了让除了使用这台电脑的人,其他用户都无法访问该文件,换句话说就是文件加密后,在本机上打开文件不需要输入密码,但是当把该文件拷贝到另一台设备时,设备是无法访问该加密文件的。具体的操作方式在网上中有详细的介绍,可自行搜索。
Windows系统自带的加密方式虽然操作方便,实用性强,但是其保密性不高,容易破解,每种加密方式都可以找到对应的解密方式,而且都是公开的。还有一种情况是,由于在本机上打开该加密文件不需要输入密码,因此可以使用仿真系统运行该硬盘的镜像,找到目标文件即可,不需要花费时间去破解加密文件。
2.2 软件加密
除了Windows系统自带的加密方式可以加密文件之外,还有使用第三方软件对文件进行加密的加密途径,目前该类软件层出不穷,但归根结底主要有三种加密算法:IDEA 算法、RSA算法、AES算法。
2.2.1 IDEA算法
IDEA(International Data Encryption Algorithm),IDEA加密算法是一种长度为64位的分组密码算法。密钥长度为128位,并由8轮迭代操作实现。与DES类似,IDEA算法是一种分组加密算法,它设计了一系列加密轮,每一轮加密都使用一个子密钥从密钥中生成完整的加密密钥[3]。整个算法包括密钥生成、数据加密和数据解密三部分。加密算法指定明文和密文块为64位,密钥长度为128位。加密和解密是一样的,但密钥是不同的。
加密过程。输入明文是8个字符(即,64位)。64位的数据块被分成四个子块X1、X2、X3和X4,每个都是16位。这4个区块将是输入的第一次迭代,所有的8轮迭代。在每一轮中,4个子块是互斥的,添加和相乘,并且是不同的或添加和乘以与6位16子密钥。最后,在输出变换,4个子块的操作与4个子键。加密过程如图5所示。
图5 IDEA算法加密过程
解密过程。像加密密钥一样,解密密钥需要扩展。不同的是,解密密钥由密钥,此外,逆或乘法的逆运算,和他们一一对应。IDEA加密算法的解密过程与加密过程中,加密密钥是加密,解密的密钥用于解密。输入密文也是8个字符(64位)。64位的数据块被分成四个子块,Y1,Y3,Y4和Y2,每个都是16位。这4个区块将是输入的第一次迭代,所有的8轮迭代。解密过程如图6所示。
图6 IDEA算法解密过程
IDEA算法加密、解密速度快,算法公开,它比传统的DES算法相对安全一些。
2.2.2 RSA算法
RSA算法属于公钥密码体制,即加密密钥与解密密钥两者之间是无法互相推导出来的,这就消除了通信双方需要交换密钥的麻烦,公钥、加密方式、解密方式都是公开的,唯独私钥是保密的。RSA是目前研究最为广泛的公钥算法。它已被测试了30年以上的各种攻击,因为它向公众介绍。它被公认为是最好的公钥方案之一。
密钥产生。RSA算法最终会产生两个密钥,一个公钥PU,一个私钥PR。
(1)选择p,q,p和q都是质数,p≠q;
(2)计算n = p*q;
(3)计算N = (p-1)(q-1);
(4)选择整数e,gcd(N,e) = 1;1 < e < N;
(5)计算d,d ≡ e-1(mod N);
(6)公钥为 PU = {e,n};私钥 PR = {d,n};
(7)公钥给甲方,私钥给乙方[4]。
加密过程。假设甲方想给乙方发送一条明文消息,记作m,甲方已知乙方有私钥。甲方使用起先与乙方约好的格式将m转换为一个小于n的整数M。假如信息非常长的话,可以将这个信息分为几段,然后将每一段转换为 M,总之每一段明文 M都要小于n。用下面这个公式甲方可以将M加密为密文C:
C = Me(mod n)
解密过程。明文M = Cd(mod n)
整个算法中两个质数p和q以及私钥中的整数d是要保密的,RSA算法的安全性原理就是认为将任意的两个大素数的乘积再分解为两个大素数是极其困难的[5]。
2.2.3 AES算法
AES(Advanced Encryption Standard)属于对称分组密码算法,明文分组的长度为128位即16字节,密钥长度可以为128,192或256位,其目的是取代原先的DES,目前已被广泛地使用。与公钥体制密码(如:RSA)相比,AES以及大多数对称密码的结构都很复杂,下图是AES加密与解密过程图。
图7 AES加密和解密
从图中可以看出加密和解密过程中,共经过10轮,每一轮由四个不同阶段组成:字节代替,行移位,列混淆,轮密钥加。其中第10轮不包含列混淆这个阶段。
与DES和RSA加密算法相比,AES加密算法具有加密速度快、加密强度高、不占用硬件资源等优点。
除了上述三中加密算法之外,还有一些软件没有对文件内容进行加密,只是简单地设置了访问密码,位数最高的可达到200位。
综上所述,想要破解IDEA算法,关键是找到其所用128位的密钥,通过乘法逆或加法逆运算计算出解密密钥;想要破解RSA算法,关键是找到两个质数p和q,通过p和q可以计算出其他的元素;想要破解AES算法,关键是找到128位的拓展密钥。如果这些关键信息没有的话,通常使用暴力破解法,不过这对于计算机的性能以及运算速度是要求很高的,普通的家庭计算机难以胜任。
3 虚拟磁盘
虚拟磁盘就是用内存资源虚拟出一个或者多个磁盘的技术。虚拟磁盘由于是从内存中分离出的一块存储空间,所以虚拟磁盘的运行速度是一边硬盘的几十倍,利用虚拟磁盘可以加快数据的传输。
虚拟磁盘创建成功后,再用Bitlocker进行加密,就可以达到加密文件的效果。
3.1 分区盘符加密:Bitlocker
Windows Bitlocker驱动器加密是Windows系统自带的一种加密方式,是对系统中的分区进行加密,Bitlocker使用TMP保护计算机上用户数据。并不是所有的 Windows操作系统都支持Bitlocker加密,只有在Windows Vista的Enterprise版和Ultimate版才能够实现。TMP是指符合可信赖平台模块标准的安全芯片,其具有加密解密的功能,并能完成高速数据的加密解密,以及充当保护BIOS和操作系统不被修改的辅助处理器。
3.2 加密与解密
使用Bitlocker加密分区的方法,可自行搜索,加密完成后,当计算机重新开机后,必须通过输入密码才能访问次分区磁盘。对于安全性要求高的数据机密时,可以将密钥文件保存在移动U盘上,这样在每次重启开机时,都必须将此U盘连接上才能访问[7]。解除方面,对于Bitlocker加密功能的解除非常简单,只需打开“控制面板-系统安全-管理Bitlocker”界面,单击要解除功能的驱动器右侧的“关闭Bitlocker”,再点击“解密驱动器”,进入解密过程,等待解密完成即可。
图8 Bitlocker驱动器加密界面
以上是对bitlocker加密原理的阐述,虚拟磁盘本身也有隐藏的技术,只要在磁盘管理器里将虚拟磁盘“脱机”出去,虚拟磁盘就在磁盘列表中“消失”了,当需要访问时,再点击“联机”就行了。
总之,虚拟磁盘的隐藏方式与Bitlocker加密方式相结合就能更好的对文件进行加密。目前对于 Bitlocker驱动器加密只有Fraunhofer SIT安全实验室公开表示,他们能够破解,但这并不表示Bitlocker已经不安全了。
图9 虚拟磁盘隐藏方式
如果犯罪分子把重要文件用此种方式加密隐藏,关键就要找到加密的密码,或者加密的U盘,这就对进行现场勘查的人员有比较高的要求,不放过任何可能藏有密码和小型存储介质的角落。
4 信息隐写
信息隐写是指把隐秘信息隐藏在大量的文件中,如:图像、音频、视频等媒体文件中,仅靠人的感官是无法识别出来的一种隐藏信息的技术。在日常的通讯活动中,该方法已经被使用了很多年,如今,有大量的软件工具能帮助人们把重要信息隐藏在图片文件、HTML网页文件、DOC文件、以及其他文件中。
信息隐写包含一下技术指标:不可见性,鲁棒性,隐藏容量[8]。
不可见性是隐写技术的基本要求,在秘密信息嵌入载体之后,必须保证不影响载体的(视)听觉效果和性能规律,做到不易被察觉和观测到。
鲁棒性是隐写技术的核心要求,一旦发现嵌入信息的存在性、检测到嵌入信息的位置或者估计出密钥,那么该隐写系统就宣告失败。一个具有较强鲁棒性的隐写系统才是好的隐写系统。
隐藏容量是指在保证隐蔽性的前提下,尽可能多地嵌入秘密信息来进行信息的发送。
隐藏信息的方式无非两种,一种是置换,另一种是填充。置换是指把原文件中的某一部分内容改写成不想让人发现的信息,但不影响原文件的使用,或者是对原文件的修改无法被人的感官轻易地发现。填充是指在原文件的头部或尾部写入想要隐藏的信息,同样对原文件的使用没有影响。在文献[9]中对音频隐写有详细的说明。本文就图片隐写为例,说明图片隐写的相关技术。
4.1 填充
填充的方式非常简单,不需要任何软件工具的帮助,即可完成。这种方式的优点在于操作简单,填充文件大小不限,图片文件不受损。缺点是文件大小可能会有改变,如果一个清晰度不高的图片,大小却是好几M,就很容易被人发现。
填充之前的图片为test.png如图10所示。
图10 test.png(原图)
再创建一个.txt文档,里面有需要传递的信息,如图11所示。
图11 test.txt
在命令提示符中输入“copy test.png /b + test.txt new.png”,就会生成二者的合成文件new.png。
图12 输入命令
把new.png用记事本打开,会发现.txt里的内容已经被填充在文件尾部,如图13所示。
图13 用记事本打开的结果
而new.png从表面上看起来与test.png一模一样,都能正常的打开。
图14 new.png
4.2 置换
最常用的置换方式是通过LSB进行的,LSB(Least Significant Bit)即最低有效位。原则是人的眼睛在像素的灵敏度,微妙的变化,利用R、G、B三种颜色的图像隐藏的最低点,嵌入率为12.5%,是目前公认的大量的信息隐藏算法,而且算法简单嵌入速度快[10]。世界上任何一种颜色都是由红、绿、蓝三原色组成的,所以在处理颜色问题时,全世界规定 RGB色彩模式作为统一的颜色标准。通过规定红色(Red)、绿色(Green)、蓝色(Blue)三色的颜色通道的变化,以及他们之间相互叠加的组合结果给每一种颜色标注了对应的编号。红、绿、蓝的颜色通道各为256阶亮度,“0”表示最弱,即“关灯”状态,“255”表示最强,即最亮的状态。
了解了LSB和RGB之后,举一个例子来说明。表示单一的红色,则把红色的亮度调为255,转为二进制就是11111111,蓝色和绿色亮度调为0,转为二进制就是00000000,三色叠加后结果还是红色,现在想把字母“A”加到图片当中,“A”的 ASCII码值是65,转为二进制就是01000001,通过LSB转换后,红色的最后一位变成0,蓝色和绿色的最后一位变成1,虽然有变化,但是对于人眼来说,想分辨这一点几乎是不可能的。
图15 变化前
图16 变化后
这种置换的方式把信息隐藏的足够安全,不仅没有改变文件的大小,也没有破坏原图的内容,就算是专业人士也很难判断图片中是否隐藏有关键信息。缺点是一张图片可隐藏的信息有限,而且提取隐藏的信息比较麻烦,需要使用专业的软件工具。
在遇到这一类问题时,首先要判断的是嫌疑人是否使用了这种隐写技术,那就需要查看计算机上的应用程序,嫌疑人是否使用了,或曾经使用过该类的软件工具,如果使用过,则从该软件入手,分析该软件的数据,再进一步找到目标图片。此类技术的实现一定需借助专业工具,所以从软件层面着手分析是可行的。
5 总结
本文对几种常见的反取证手段进行了阐述,从原理出发,根据不同的原理,提出针对性的应对措施,办案人员在处理此类案件时需找到病因,对症下药,否则可能遗漏关键信息,导致案件侦办过程停滞不前,贻误最佳破案时机。还有其他的手段本文没有提及到,日后可做进一步研究。
[1]姚秋凤,麦永浩,吴燕波.面向数字取证的异常隐写检测分析方法及系统研究[J].湖北警官学院学报,2015.
[2]http://baike.baidu.com/link?url=cnyAWukOQe3hQkc9q Dxar2AZ7ItqjIAnByJcY0pHNnKu3TA2Nu0AdsMO8ByvKyTeC hveUQN7gubQyoi4C2KcoAHaO7J3PgSVnE2F9r6P4ZDjODaLl kRAalZj3txhAWvY#4.
[3]http://www.jiamisoft.com/blog/index.php/5806-eccjiami suanfamangqianming.html.
[4]William Stallings.Cryptography and Network Security[M].北京:电子工业出版社,2012.
[5]程晓荣,马力,何壮壮.公钥RSA加密算法的分析与改进[J].网络安全技术与应用,2015.
[6]http://baike.baidu.com/link?url=cnyAWukOQe3hQkc9q Dxar2AZ7ItqjIAnByJcY0pHNnKu3TA2Nu0AdsMO8ByvKyTeC hveUQN7gubQyoi4C2KcoAHaO7J3PgSVnE2F9r6P4ZDjODaLl kRAalZj3txhAWvY#4.
[7]周泰来.电子文档的加密安全产品分析[J].设备管理与维修,2015.
[8]侯瑜.图像隐写分析[D].北京交通大学,2015.
[9]孙冉,王让定,严迪群,金超.一种以VBR MP3音频为载体的隐写方法[J].无线电通信技术,2015.
[10]张艳玲,王允锋.混沌序列增强LSB图像隐藏算法的鲁棒性分析[J].西安工业大学学报,2015.