基于超文本标记语言的信息隐藏方法研究与实现
摘要:通过分析超文本的文件结构,提出了一种基于超文本标记语言的信息隐藏方法,并对该算法进行了分析。
关键词:信息隐藏;超文本标记语言
0 引言
信息隐藏是把一段有意义的信息隐藏到另外一个我们称之为载体的信息中,所得到的隐蔽信息载体。
隐藏信息所用的载体可以是图、文、声、像等媒体信息。
网页随着因特网而发展起来,由于网页是以明文封装在IP 数据报文中进行传输,因此可以很容易地截获网页中的信息,造成信息泄密甚至被非法篡改,因此,研究网页信息隐藏技术具有重要的实用价值和意义。
1 超文本标记语言
超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。
超文本标记语言则是用于描述网页文档的一种标记语言。
超文本标记语言的标记语言有不少,按照功能可分为下面这几类:总类(所有文件都有的)、结构性定义(由浏览器控制的显示风格)、与外观相关的标签、连结与图形、分隔、列举、背景和颜色、特殊字元、表单和表格、视框、杂项。
第一类总类是所有的HTML 文件必须有的,它包含这么几个组成:一是文件类型<HTML></HTML>;二是文件头<HEAD></HEAD>;三是文件标题
<TITLE></TITLE>;四是文件主体<BODY></BODY>。
2 基于超文本标记语言的信息隐藏方法
Web页中的数据指的是能够在浏览器上显示出来的图文声像等多媒体信息,超文本标记语言则是用来控制媒体信息的显示格式和显示效果,这是由浏览器解析执行的命令。
这些命令可以是用HTML 语言或者XML语言编写的,也可以是由VbScript或者JavaScript等脚本语言编写的。
根据前面所述,在Web 页面中隐藏信息就有两种方法: 一是利用Web页中图文声像等数据进行信息隐藏,与此相关的信息隐藏技术和水印技术已经很成熟,并且也有了很多的应用;二是利用超文本标记语言进行信息的隐藏,这种方法通过改变Web页面中的超文本标记和格式等来进行信息的隐藏,此种方法对于Web页中的数据在浏览器的显示没有影响,并且简单易实现,不容易被发现,适用于信息隐藏容量较小的情况,缺点是具有较差的鲁棒性,Web 页面的数据改动后,尤其是格式的调整会影响到隐藏的信息。
Web页是一种有着丰富格式的文档,超文本标记的作用是控制网页信息在浏览器上的显示格式,超文本标记语言本身是看不到的,所以可以通过调整超文本标记语言来隐藏信息,这样不会影响到Web 页内容的显示,不容易被人察觉。
在超文本文件的标记中,除特殊字元外,对标记语言字符的大小写状态没有要求,字母的大小写可以随意改变,同时超文本标记语言字符的大小写状态被改变,也不会影响Web页内容的正常显示。
所以既然超文本标记语言字母的大小写状态不影响内容的显示,那就可以通过改变26 个英文字母大小写状态来
进行信息的隐藏。
将字母的大写状态表示为二进制的“1”,字母的小写状态表示为二进制的“0”,超文本标记语言中字母大小写的状态变化,也就是“1”和“0”的变化,通过序列的变化形成一串二进制编码,这样就可以将秘密信息嵌入到Web页中了。
基于超文本标记语言的信息隐藏原理如图1所示。
信息隐藏算法的实现过程如下:①顺序取隐藏信息的一个数据单位(1个bit);②按一定顺序选取Web页中的一个标记字符(特殊字符除外);③按照信息嵌入的方式,根据隐藏信息的取值来修改所选标记字符的大小写状态。
为了以后提取隐藏信息的方便,可以把所隐藏信息的文件长度一起嵌入到Web页中,另外还可以把隐藏信息的相关文件属性等也嵌入到超文本文件中。
隐藏信息提取算法的实现过程如下:①根据嵌入的顺序和方式,依据标记字符的大小写状态确定隐藏信息比特的取值,首先提取出隐藏信息的长度等相关属性;②提取出相应长度的隐藏信息。
3 基于超文本标记语言的信息隐藏算法分析
从上面的描述可知基于超文本标记语言的信息隐藏算法分析有以下特点:
(1)不可感知性。
由于算法只是通过修改超文本标记语言的大小写状态,不修改Web页得内容,因此隐藏前后的文件在浏览器上的显示都是一样的,所以具有一定的不可察觉性;
(2)嵌入容量。
容量指的是载体中能够容纳的隐藏信息位的最大值。
算法中每修改一个大小写状态就可以嵌入1位的信息,根据这个
可以计算嵌入的容量约为标记字符数量的1/8。
(3) 稳健性和安全性。
用于判断衡量算法的抗攻击、抗非法嵌入、检测和篡改的能力。
算法只修改标记字符,不增加字符,只修改字母的大小写,不把字母改写成其他状态,因此隐藏信息后不会增加新的字符,所以本文提出的算法具有一定的稳健性和安全性。
不过,当以源代码的方式打开Web页时,嵌入秘密信息后的源代码与一般的HTML 文件的源代码不同,因为修改了字母的大小写状态,所以字母的大小写看上去变得不规则了,在某种程度上会引起人们的怀疑。
所以,其不可察觉性相对还是比较脆弱的。
要达到更好的安全性,可以对算法做一些修改。
可以采取两种方法,一是修改每个标记字符全部字母的大小写状态来嵌入秘密信息;二是只修改标记字符首字母的大小写状态来嵌入秘密信息。
这样,即使查看Web页的源代码,因为符合正常的阅读与书写习惯,看不出破绽,算法的安全性就大大提高。
不过按照这种方法隐藏,每个标记字符只能隐藏一位信息,这样就影响了信息嵌入的容量。
4 结束语
本文首先介绍了信息隐藏技术和超文本标记语言,提出了一种基于超文本标记的信息隐藏技术的方法,给出了相应的算法,并对算法进行了分析,该算法具有不可察觉性较好、隐藏容量大、实现简单的特点,是一种有效的隐藏方法。
网页作为一种最普及最方便的载体,它潜在的价值是不可低估的,它将在未来的信息安全保障体系中发挥更加重要的作用,对基于网页文件的信息隐藏技术还需要做进一步研
究。
参考文献:
[1] 王丽娜,张焕国,叶登攀.信息隐藏技术与应用[M].武汉:武汉大学出版社,2009.
[2] 超文本标记语言简明导引[EB/OL]./ introduction/html/htmlguide.html#misc.
[3] 刘振华,尹萍.信息隐藏技术及其应用[M].北京:科学出版社,2002.。