1。1。1 研究背景
1973 年 Lampson 针对安全操作系统首次提出隐蔽信道的概念[1],将隐蔽信道定义成 本意不是用来传输信息的通信信道。
网络隐蔽信道技术是将隐蔽信息嵌入在网络协议中完成消息泄露。在过去的研究里, 研究者针对传输层和网络层构造了很多隐蔽信道。随着检测隐蔽信道技术的发展,单纯 利用传输层和网络层造隐蔽信道变得越来越困难,研究者开始对 HTTP 等应用层协议中 的隐蔽信道进行研究[2]。
HTTP 协议是目前 Internet 上最广泛使用的协议,它的语法定义较为宽松,并且在 HTTP 协议定义的许多头域中存在着大量具有随机特性的部分,这就为隐蔽信道的构造 提供了条件。然而在当前的网络上,日趋完善的防火墙产品已能够高效地拦截携带敏感 信息的网络数据包,使得数据的泄漏变得越来越困难。因此人们开始关注通过隐蔽信道 进行消息传递的技术。
1。1。2 研究意义 近年来,个人隐私数据泄露的新闻层出不穷,通信安全问题成为人们越来越重视的
问题。虽然人们采用杀毒软件、防火墙等安全措施,但这只能防范非法程序利用正常的 通信途径窃取信息,对于利用不是用于通信的非法途径并没有太大的作用,这些非法途 径被称为隐蔽信道[3]。隐蔽信道是一种既能泄露隐蔽信息又能传递隐蔽信息的通道。通过 对其工作原理及性能的的研究,能够让隐蔽信道的构建者通过改进隐蔽信道的实现方法 来控制信道带宽,从而逃避网络访问控制系统的监控;还能够让安全监管人员通过改进 网络访问控制系统来检测隐蔽信道,以便采取有效措施消除或审计检测出的隐蔽信道[4]。
1。2 课题研究内容
网络隐蔽信道一般基于以下四种思想进行设计的:(1)使用网络包头保留位、扩展位 嵌入隐蔽信息;(2)利用网络包的有用位调制隐蔽信息;(3)使用网络中的各种机制进行隐 蔽通信(4)通过发送网络包的间隔传递隐蔽信息。
相较于网络层和传输层的协议,位于应用层的 HTTP 协议语法定义较为宽松,存在 着很多可以用来嵌入隐蔽信息的冗余部分。我们可以选择利用随机冗余构造隐蔽信道或 者利用头域构造隐蔽信道。
利用随机冗余构造隐蔽信道:实际传输的数据包中,有些 URL 存在多个随机位置, 可将隐蔽信息随机化后嵌入 URL 的随机部分来构造隐蔽信道。拥有大量随机部分的 Cookie 也可以用同样的方式构造隐蔽信道。URL 和 Cookie 的长度都是不定的,因此可 以在某些部分嵌入随机化的信息,也可以对长度编码来构造隐蔽信道。
利用头域构造隐蔽信道:请求消息和响应消息都由一个起始行,一个或多个头域, 一个指示头域结束的空行和可选的消息体组成。起始行后一般含有多个顺序不定的头域, 并且有些是可选的,利用这些特性可以采用多种编码方式来构造隐蔽信道。可以对部分 或全部头域的顺序编码,也可以用一些头域的有无来编码。对有多个域值的头域,也可 以用域值编码来构造隐蔽信道[2]。
本文选择了利用头域来构造隐蔽信道,更好的利用了 HTTP 协议语法宽松的特性, 对隐蔽信息进行加密解密,来进行对基于 HTTP 的网络存储隐蔽信道的设计与实现文献综述。
1。3 本文主要工作
本文首先研究了隐蔽信道、网络协议与 NDIS 中间层驱动的基本概念,深入了解了 各类隐蔽信道的工作原理与优缺点与 HTTP 协议头的特性。然后针对 HTTP 协议的特性 设计算法对包进行拦截与修改,并使用内核编程完成对中间层驱动的编写。再编写用户 态程序 Server/Client 对中间层进行调用,完成对 HTTP 报头拦截与修改来实现隐蔽信息 的传输。最后进行对隐蔽信道的测试与分析。主要步骤如下: