面向HTML的信息隐藏系统 (安全性与隐秘性增强版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网络安全综合设计
课题名称:面向HTML的信息隐藏系统专业班级:信安11-1
指导教师:苏兆品
姓名:朱航宇
学号:20112878
一. 问题描述:
摘要:本程序采用B/S 架构,信息隐藏者与信息提取者采用同一套代码即可完成信息的隐藏和提取。通过仔细分析HTML 标签的各种性质,提出了一种基于HTML 的隐藏信息的常用方法的改进版方法(该方法的安全性颇高)。该方法具有隐藏容量高、隐蔽性和安全性较好,使得在满足容量的前提下,尽量提高隐蔽性和安全性。
1.1
HTML 文件结构简介
HTML HEAD /HEAD BODY
/BODY /HTML
超文本文件不同于一般的纯文本文件,它是由标签和数据两部分组成。标签是用于控制数据显示格式和效果的,由浏览器解析执行的命令,相当于程序的指令;数据即是文件中包含的能够在浏览器上显示出来的文字、图片和动画等多媒
BR
/
HTML ——/HTML
1.2
基于HTML 文件的信息隐藏方法
根据超文本文件的结构便知道,在超文本文件中隐藏信息主要有两种策略,即在数据元素中隐藏信息和在标签中隐藏信息。在数据元素中隐藏信息的方法依赖于数据的类型是文字、图像、声音、脚本语言程序等而不同。如果元素类型是文本的话,则可应用基于普通纯文本的隐藏方法,如替换法。标签虽然是纯文本,但由于是程序指令,有固定的诸多语法规则和约束,不能随便照搬基于普通纯文本的隐藏方法,而是需要特殊考虑。标签只是控制数据在浏览器上的表现形式,
目前已提出的基于超文本文件的隐藏方法有:
① /HTML Tab 键隐藏信息,插入一个空格代表0,插入一个Tab 代表1。像著名的水印软件Wbstego 、Stegano 、Invisible Secret 等都是利用这种方法。之所以可以这样隐藏信息,是因为浏览器会对HTML 文件中多余的空格忽略掉,从而插入空格或Tab 后不改变显示的结果。可以通过连续插入任意多个符号使得隐藏的容量可以任意大,这是其优点;其缺点是每插入一个字节的信息,文件大小需增加八个字节;另外,虽然隐藏信息后的文件浏览的结果不会改变,用记事本这样的编辑软件打开也不容易看出差别(但仔细看还是能看出这些不必要的空白符号的存在),但是当文件以二进制格式打开时其多余的空格符号一览无遗,同时,这种方法也经不起“网页减肥茶”之类的软件处理。
故本程序也采用这种方法,但是为了提高安全性,加强本程序所隐藏信息之后被攻击者破解的能力,我又在现有的常规的方法的基础上加以改进,运用了伪随机序列产生器产生的随机数的序列不变的特性(只要所
给种子相同即可,这里的种子就是本程序的秘钥,不可泄露),使随机数
产生器产生1—10之间的随机数(考虑到嵌入信息量的大小与所要隐藏
信息安全性被破解大小的程度,随机数产生的范围在1-10之间较为合
适),将所要隐藏的信息转换成0,1序列之后,0,1分别代表空格和TAB
键,并且该序列是按照随机数产生器的序列进行隐藏的,故只要破解者
拿不到秘钥(种子),破解者则绝对不可能通过任何转换器得到我所要隐
藏的信息。
②改标记名称字符的大小写,用大写表示1,小写表示0来隐藏信息。但
此方法缺点颇多,信息隐藏量不大且隐蔽性不强,故本程序没有采用此
方法。智能扫描出
二.基本要求:
本程序完成了面向HTML的信息隐藏系统所要求的基本功能,并提高安
全性,加强本程序所隐藏信息之后被攻击者破解的能力,运用了伪随机
序列产生器产生的随机数的序列不变的特性(只要所给种子相同即可,
这里的种子就是本程序的秘钥,不可泄露),使随机数产生器产生1—10
之间的随机数(考虑到嵌入信息量的大小与所要隐藏信息安全性被破解
大小的程度,随机数产生的范围在1-10之间较为合适),将所要隐藏的
信息转换成0,1序列之后,0,1分别代表空格和TAB键,并且该序列是
按照随机数产生器的序列进行隐藏的,故只要破解者拿不到秘钥(种子),
破解者则绝对不可能通过任何转换器得到我所要隐藏的信息。
但本程序座位课程设计,由于时间的有限原因,只完成了,由全部Ansi
码表组成的全部任意组合字符序列,若稍加改进则可将本程序改进为可
将unicode字符集和声音,图片的可投入市场运行的程序(java具有可
以执行强的的特点),因为原理没变,都是最后对0,1序列的处理。三.测试数据:
Zhuhangyu20112878
We will be gather in the school ground at 10:00.
四.算法思想:
本程序首先对所要隐藏的HTML网页导入并进行评估该HTML文件最多
可隐藏的信息量反馈给隐藏着,由隐藏者在程序内输入想要隐藏的信息,
既可手动输入,也可调入本地文件,用户见面十分友好与智能化。隐藏
的具体方法是:由程序智能扫描出该文件每一行有多少空格以及每行文
本之后最大填充量,再有程序对所用程序对所要隐藏信息进行智能分析,
排版确定出最隐蔽的每行嵌入量,将所要隐藏的字符转化为0,1二进制
序列,使用伪随机数产生器,将隐藏信息的0,1序列转化为空格与tab
键,并按照伪随机序列的顺序进行依次嵌入,例如A的anci码为45对
应的二进制序列为:101101,伪随机序列为:856219,则嵌入的方式为:
Tab键,隔八个空格在迁入一个空格(此空格载有信息量),在隔开5个
空格嵌入tab键,在隔开6个空格再嵌入一个tab键,以此类推,不再
详述。解密时只需按照伪随机序列依次提取空格与TAB字符转化为二进
制序列,再转化为字符即可得到隐藏的信息。
五.模块划分:
本程序采用面向对象的java语言(java在网络编程中属于无冕之王),运用软件工程中的敏捷程序快速开发的思维,具有良好的架构:
该模块主要用于界面的布局以及一些界面用户输入的逻辑控制与安全性控制: