南京理工大学
硕士学位论文
网络通信的信息隐藏技术研究
姓名:翟江涛
申请学位级别:硕士
专业:系统工程
指导教师:戴跃伟;刘光杰
20080615
硕-】:论文网络通信的信息隐藏技术研究
摘要
网络技术的快速发展使得信息传输更加快捷,方便。但是大量的信息尤其是那些涉
及到国家安全、公司机密和个人隐私的信息的传输安全性越来越受到关注。这些信息一旦外泄,将会带来严重后果。以往这些信息的传输多采用加密技术。但是,加密技术会引起攻击者的破解兴趣,并且随着计算机硬件的发展,破解速度比以前要快得多。信息隐藏技术是解决该问题的一个很好的方法。信息隐藏是将需要保密传递的信息隐藏到一些载体信息中,实现对秘密信息进行保护的--1'3技术,是信息安全的重要分支。网络通信中巨大的信息流通量使得用网络通信数据作为载体进行秘密通信的冗余量大,同时也使攻击者很难有足够的精力去检测网上所有的通信数据,因此利用网络通信数据来隐藏信息是一个比较理想的方法。
本论文研究了网络通信数据中的信息隐藏技术,完成的主要成果有:
1)实现了一套基于TCP/IP协议族中各协议的信息隐藏算法。
2)设计开发了一套针对WinPeap数据传输的通信协议。开发了一条网络信息隐藏控制信道,‘通过使用RSA的公开密钥系统和Diffie.Hellman密钥交换算法保证了该控制信道的安全。
3)提出以数据包之间行为模式关系作为隐秘信道,这不同于基于TCP协议字段的信息隐藏,信息的隐藏没有修改协议的任何位置而是基于数据包之间的关系如:端口跳跃,包长度变换,包时间间隔等行为方式的转换。
4)提出了利用应用层协议(telnet,邱,smtp,pop3,http,ssh)通信的信令语句进行信息隐藏的方法,隐蔽信息的传递,依靠应用层信令语句的传输来实现。
5)对网络信息隐藏的特点,指标以及本文开发的控制信道进行了分析,并对本文介绍的两种隐藏算法提出了改进意见。关键词:信息隐藏,TCP/IP协议,安全控制信道,数据包属性,通信信令
硕I:论文明络通信的信息隐藏技术研究
Abstract
Withthe
moredevelopmentofInteracttechnology,informationsecurityincanbetransmittedarefasterandconveniently.Meanwhile,theinformationtransmissionmoreconcerned,
secretespeciallythesecurityinformationreferringtothenationalsecurity,business
roseandpersonalprivacy.Inthepast,encryptionWaSusedinthetransmission,but,it
interestingsandthedecodethedecodingspeedwerefasterwiththedevelopmentofhardware.Informationhiding
tohidetechnologyCantosomesolvetheproblemwell.Informationhidingtechnologyisinformationinformationcarriers,whichisthetechnologyforprotectingthe
securitysecretinformation.It
performingisabranchofinformationtechnology.Thelargeinformationflowinnetworksuppliesthelargeredundancyinthecarriertosecretnetworkcommunicationdata硒theattackerdifficulttocheckall
idealmethod.communication,whichCanmakethethecommunicationdatainthe
Thispaperstudiesthe
thefollowingresults:network.So,hidinginnetworkdataiSanhidinginformationtechnologyinnetworkcommunication,including
1)Achieve
protocolfamily.allinformationhidingalgorithmbasedontheprotocolsintheTCP/IP
2)Designand
controlling
publickeydevelopasetofprotocolscorrespondingtoWinPcap.DevelopasetofprotocolsandtheguaranteesthesafetyofthecontrolchannelbyutilizingtheRSAsystemandDiffie Hellmankeyexchangealgorithm.
3)Takethe
past
onrelationsbetweenpacketsonaSsecretchannels,whichiSdifferentfromtheinformationhidingmeansbasedtheTCPprotocolfield.Informationhidingisbasedtherelationshipofthedatapacketssuchas:portjumpingandpacketlengthchange.
4)Usethesignaling
ssh)tohidestatementofapplicationlayerprotocol(telnet,卸,smtp,pop3,http,thetransmissionofthehiddeninformationandinformation.Canberealized
.bythetransmissionoftheapplicationlayersignalingstatements.
5)Analysetheindexes,charactersofnetwork
channel,givingimprovingideasoninformationhidingandthecontroltwoalgorithmswhichusedinthisarticle.
Keywords:information
betweenhiding,TCP/IPprotocol,safetycontrollingchannel,relationsofpatterns
packets,signalingstatement.
声明
本学位论文是我在导师的指导下取得的研究成果,尽我所知,在本学位论文中,除了加以标注和致谢的部分外,不包含其他人已经发表或公布过的研究成果,也不包含我为获得任何教育机构的学位或学历而使用过的材料。与我一同工作的同事对本学位论文做出的贡献均己在论文中作了明确的说明。
研究生签名:程丝磕)蹦年.『月f日
学位论文使用授权声明
南京理工大学有权保存本学位论文的电子和纸质文档,可以借阅或上网公布本学位论文的部分或全部内容,可以向有关部门或机构送交并授权其保存、借阅或上网公布本学位论文的部分或全部内容。对于保密论文,按保密的有关规定和程序处理。
研究生签名:翟姿煎矽暑年了月f日
硕士论文嘲络通信的信息隐藏技术研究
1绪论
1.1引言
纵观历史,信息~直贯穿于人类的活动当中,从最初的简单标记到现在快捷的信息
传递,实现了人与人之间的沟通,交流和协作。但是信息在交流的过程中容易受到攻击,尤其是那些关系国家安全、公司机密等方面的信息,一旦被别人获取,后果不堪设想。如:在战场环境下,大量机密军事信息需要传送到各单位,如果在传输过程中被敌方截获,将会对国家安全构成严重威胁。商业活动中,公司的核心商业计划或秘密一旦被竞争对手获得,公司将受到严重的损失。个人隐私方面,一旦个人的敏感数据外泄将影响个人的发展和利益。因此这些数据的安全成了人们关注的焦点,人们为了保护这些信息,采取了各种各样的方法。
较早的时候,人们利用密码技术对信息进行加密保护。密码技术是利用数学方法对
信息进行置换,把明文转换为不可识别的密文来保证信息的内涵不被非法获取。然而密文很容易引起攻击者的注意,而且随着破译技术的迅速发展和计算机硬件性能的不断提高,破译密码的难度也不断降低,几乎所有的数据加密技术都处于危机边缘,以前认为安全的MD5算法被我国山东大学的王小云教授破解就是最好的例证。另外,有些情况虽然攻击者无法破解,但是也能推测到将有“大事”发生,尤其是在军事领域更容易引起敌对者的关注。同时,当数据在正常使用的情况下,如果需要对该数据的合法性及产权进行跟踪检测时,传统的数据加密技术变得无能为力。
为了解决密码技术存在的问题,人们又提出了一门新的技术——信息隐藏技术【l'Z’
3 41。信息隐藏技术与上世纪90年代受到重视并蓬勃发展起来。信息隐藏技术是将秘密信息隐藏在非机密的信息之中,然后通过公开的信道传送至接收方,从而实现安全通信的技术。信息隐藏技术主要包括用于版权保护和认证的数字水印技术和用于保密通信的隐藏技术,两者的区别在于前者是要保护载体的安全而后者则是要保护被隐藏的信息。
目前人们的日程生活离不开计算机网络,在这个网络里,不同类型的计算机系统通
过统一的通信协议和网络协议连接,从而达到共享资源和信息传递。正是由于网络中存在如此多的协议和数据,势必也存在着大量的隐蔽信道。比如:网络协议设计中的某些不常用位或者通信规则,格式化文档,多媒体信息等。并且由于网络流量巨大,这些隐蔽信道更加不容易被检测出来。另一方面,为了能有效的防范这些隐蔽信道,我们也需要弄清楚网络中可能存在的隐蔽信道,从而更有效的防止被别有用心的人利用,给国家,公司和个人带来损失。
l绪论硕一l:论文1.2信息隐藏技术的基本概念
信息隐藏是-I'-J新的综合性前沿学科,涉及到计算机图形学,7信号与信息处理,计算机网络和密码分析等多个学科知识。信息隐藏是指通过嵌入算法将待隐藏信息嵌入到宿主载体中,通过载体的传输而达到隐藏的目的。信息隐藏系统通常由两部分构成:(1)信息嵌入,可以称之为嵌入器,主要是嵌入算法。(2)信息检测,可以称之为检测器,主要是提取算法,用于从载体中提取隐藏的信息。其基本模型如图1.2.1所示:
图1.2.1信息隐藏的基本模型
Simmons在1983【5】年提出的“囚犯问题”是该隐蔽通信的典型模型。我们假设通信双方是Alice和Bob,Eve是攻击方,Alice欲将秘密消息m传递给Bob,可以先在载体信息源中选取一个看似平常的消息C,它在网络中传输时不会引起任何怀疑,称之为隐秘载体。将秘密消息m隐藏到隐秘载体C中,隐藏过程有时需使用嵌入密钥控制。这样,m便隐藏到了C中,隐秘载体C变成了隐秘对象S。信息隐藏过程要求隐秘对象S尽可能地保持原有载体C的特征不变,使得任何攻击者在仅知道表面无关紧要的消息S时,无法检测到秘密消息M的存在。Alice通过信道将隐秘对象发送到Bob,Bob知道Alice使用的嵌入算法,利用相应的提取算法将隐藏于隐秘对象S中的秘密信息m提取出来。
根据Alice和Bob在隐蔽通信中的不同位置,隐蔽通信又分为几种情况。图1.2.2给出了这几种情况。
硕l:论文网络通信的信息隐藏技术研究’;…。,’一i…’i一’i…。i…i…’i…’;…+i…专…~…i…’j…’i…’;…‘;…’}…i…’_…;…‘;…7i…’i…’i…。j…;…’i…‘;…。j…。i……。;…’?。
图1.2.2隐蔽通信中收发方的可能不同位置
,
图1.2.2列出了Alice和Bob在整个通信过程中发送隐蔽消息的位置。第1种情况,
Alice和Bob作为发送方和接收方,在整个通信链路上传输的都是含有隐蔽信息的数据包m’。第2种情况Alice作为发送方,Bob作为中间人,整个链路的信息在Alice到Bob这段传输的是m’,Bob以后又是m了。第3种情况与第2种较为类似,只是Bob的位置稍有变化。第4中情况Alice和Bob都作为中间人,信息在Alice的位置被修改成m’,Bob提取后又恢复成m.。在这4种情况中最常见的是第1种和第4种,这两种也是我们研究的重点。当Alice和Bob做为发送方和接收方来传输隐藏信息时比较容易实现,因为发送方和接收方可以很容易的控制通信信道。但当他们中间的一个或者两个是中间人时,就需要考虑阻截网络通信方面的问题。只有阻截了信道,才能添加和提取隐藏信息,实现较为复杂。
1.3信息隐藏技术的发展历史
信息隐藏技术虽然是-f-j新的前沿学科,但是它的历史可以追溯到“匿形术”的使用。“匿形术”一词来自古希腊文中“隐藏的”和“图形’’两个词语的结合。信息隐藏起源于古希心6】,Herdotus(前48卜前425)在他的Histories一书中曾描述到:“在古希腊反抗波斯人的战争中,为了安全地传送军事情报,奴隶主剃光奴隶的头发,将情报刻在奴隶的头皮上,待头发长起后再派出去传送秘密信息”。大量这样的技术是在特
l绪论硕{:论文洛伊战争时期被人们发明和传播的。我国古代也早有利用藏头诗,藏尾诗,漏格诗以及绘画等形式将“密语”隐藏在诗文或画卷中特定位置的隐蔽消息传递手段。二战时期,据对德国曾利用缩微原理和照相方法,将秘密情报缩小至数十或数百乃至数干分之一,制成很薄的显微点膜片,然后把它们隐藏在书信中的某个特定位置,接收者按照预先设定的位置和标记再把显微点还原成像。美国军队则使用了扩频通信技术,将带有秘密信息的载波信号的频谱扩展,使得地方截获到的信号在频谱仪上呈现一片噪声。
与古代伪装技术有同样作用的数学方法在现代信息隐藏中得以应用。如许多信源编码技术,利用人类分辨系统的局限性将信息隐藏在不回引起人类感知系统觉察的地方,如数字图像信息隐藏的LSB方法等。
1.4信息隐藏技术的分类及基本指标
信息隐藏的分类主要有以下几个方面【7】,根据信息隐藏的载体不同可以分为图像中的信息隐藏,视频中的信息隐藏,语音中的信息隐藏,文本中的信息隐藏和各类数据中的信息隐藏等。根据目前已经提出的信息隐藏算法,从它们对载体的修改方式上分类,可以分为:时域(空域)替换技术,变换域技术,扩展频谱技术,统计方法。
信息隐藏技术通常有下列一些基本要求[4】:
(1)不可感知性和不可检测性:隐藏的信息应该是感觉不到的,其存在不应该使原始媒体信息的感觉质量发生变化或影响原始媒体信息的感觉效果。
(2)秘密性:嵌入方法应该是秘密的,嵌入的信息难以检测。’在有的情况下,还需要对隐藏信息进行加密,以进一步提高秘密性。
(3)信息容量:载体中要能隐藏尽可能多的信息,又称为隐藏容量。一般而言,在保证不可感知的条件下,隐藏的信息越多,不可感知性就越差。因此每一个具体的隐藏方案都需要在不可感知性和信息容量之间进行折衷考虑。
(4)算法计算的复杂性低:算法应该易于实现,在某些应用中,甚至要求算法的实现满足实时性的要求。算法复杂性过高,则会影响整个系统的运行效率,较难满足实时性
。
的要求。
1.5信息隐藏技术的研究现状及发展趋势
回顾以往的信息隐藏技术,国内外所做的研究主要集中于以下三个方面:
其一,针对多媒体信号研究能进行较大容量的信息隐藏方法,此类研究着力解决隐藏容量和多媒体嵌入后引起的感知失真的问题。这类研究至今仍然存在着诸多未决的问题。感知失真如何度量?这个问题不但困扰信息隐藏学界对整个多媒体信号处理领域的
硕i论文H络№t∞竹息№藏技术研究
研究者来说十分棘手的。如何更为有效的嵌入?此问题是信息隐藏研究的核心问题,现有的许多数据嵌入算法绝大多数是针对水印系统以提高鲁棒性为目的的,而隐藏核心嵌入算法究其根本均是量化算法的各类变形,是否存在更好的嵌入方法以及如何寻找均是当前的困难问题。
其二,针对多媒体信号研究安全的信息隐藏方法,此类研究着力解决隐藏容量和隐
藏的不可感知性问题,不可感知性是指视觉上的不可见性和统计上的不可见性。这类问题的研究也存在着许多复杂困难的问题。具体包括:如何建模多媒体信号的统计模型,如何度量数据嵌入后统计特性的改变。这些都是多媒体统计信号处理中的共同难题,不单是信息隐藏需要面对的。
其三,寻找其他的载体。我们能够见到的如沈星明等研究的基于文本和软件的信息
隐藏、牛夏牧等的基于指纹和虹膜信息隐藏、潘志庚等研究的基于三维造型的信息隐藏,王建民等研究的基于关系数据库的信息隐藏、DeepaKunder等研究的基于网络通信协议的信息隐减。在这些载体中进行数据嵌入需要处理新的“4;可见”问题,而且数据的嵌入不能影响载体的使用.因此引入了许多新的问题。
信息隐减的主要发展趋势有以下几个方面:
其一,隐藏容量问题,隐减算法研究到一定程度后,急需解决些深层的理论问题,
如:不影响感知性的隐藏度量问题,隐藏容量问题,通过哪些指标评价隐藏算法的问题。
其二,信息隐藏的对立面——信息隐藏检测技术。既然有了隐藏,一些不法分子就
会利用该技术传递信息,达到危害国家安全.公众利益的目的,因此,我们就要研究隐藏检测技术以对付潜在信息隐藏的存在。
1.6信息隐藏技术的应用背景
信息隐减技术主要用来传送少量秘密信息,如密钥和认证信息等,可以在不引起怀
疑的情况下将这些信息安全的传送出去。它也可能技用来传送计算机病毒和木马,以及在网络系统中泄露关键信息,图16l为一个计算机网络中可能存在的隐蔽信道示意图。
;≮≥r鼠。一n■:
J一.二i
圈1.6I透过网络数据流泄露秘密信息
由图1—61我们可以看出,秘密数据从内部网络中流出,我们以TCP/IP为例子柬描
l绪论顾l:论文述通过网络数据流泄漏秘密信息的过程。假设泄密者能够和被通信方的进行网络通信。这表明,通信的内容和通信的网络数据都是系统安全策略所允许的。这时泄密者可通过修改TCP或者IP数据包的一些未用位,如TCP包的填充位、TTL位、D数据包的标识位等字段将秘密数据发送给接收方,而由于系统没有这方面的相互防护,防火墙和入侵检测已经网络内容审查等安全技术将近乎透明。事情是利用网络进行信息隐藏的技术已经发展的非常迅速,已有很多技术可实现有效的隐蔽通信,我们将在后面的国内外研究现状中详细介绍已有的技术。由此可以看到由于针对网络通信的传统安全管理和控制方式在面临信息隐藏时无法奏效,因此造成了A1这个潜在的泄密点。
1.7本论文的结构安排
第1章概述了信息隐藏技术的基本概念,工作模型,信息隐藏技术的分类和技术指标以及隐藏技术的发展现状和发展趋势。
第2章设计开发了一套控制WinPeap发送数据的上层信道和通信协议,以及为保证该通信安全顺利进行而设计的基于RSA公钥系统和Diffie.Hellman密钥交换算法的安全控制信道。
第3章实现了基于TCP/IP协议族中各协议的信息隐臧,通过修改协议的某些取值不唯一或者不常使用的位来隐藏信息。
第4章提出了针对网络数据包包间属性的信息隐藏算法,利用诸如端口跳跃,包长度变化等数据包之间的关系来实现隐蔽信息.的传递。这些方法没有修改数据包的任何部分,而是利用数据包之间的关系传递隐蔽信息。并且由于网络数据量大,变化多样而具有很强的隐蔽性。
第5章提出了针对网络应用层协议的通信行为的信息隐藏算法,通过对这些应用层协议的分析,得到它们常用的通信信令,对这些信令进行编码传输我们的隐蔽信息。
第6章分析了网络信息隐藏的特点和技术指标,对本文的两个隐藏算法提出了改进方法,并且对本隐蔽通信系统的上层控制信道进行了分析。
硕J:论文网络通信的信息隐藏技术研究
2网络信息隐藏控制协议
由于我们采用了通信协议作为隐藏信息的载体,所以就需要修改数据包头的某些位
置来隐藏信息。平常我们使用的SOCKET接口传输数据,数据包包头信息是由操作系统自动填写的,用户无法修改,而rawsocket又被windowsxpsp2限制使用,我们就采用了WinPcap提供的发送数据包功能。WinPcap是独立于协议栈直接面向物理层的,可以让我们自己按照协议格式构建数据包包头,这样我们就可以修改需要隐藏数据的位置,构建要发送的数据包。本章主要介绍构建WinPcap数据包发送数据的协议以及为控制该信道而设计的上层安全控制信道。
2.1WinPcap概述
WinPcap是一套基于Win32平台的网络接13API,用于捕获网络数据包并进行分析
的开源库。它是集成于操作系统的设备驱动程序,可以从网卡捕获或者发送底层原始数据。大多数网络应用程序通过被广泛使用的操作系统元件来访问网络,比如socket。这是一种简单的实现方式,因为操作系统已经妥善处理了底层具体实现细节(比如协议处理,封装数据包等等),只提供了一个与读写文件类似的,令人熟悉的接口。用户只需要将要发送的信息输入就可以了,socket会为用户按照相关协议自动填写数据包包头并发送这些数据包。然而,有些时候,这种“简单的方式”并不能满足任务的需求,因为有些应用程序比如我们的信息隐藏平台就需要直接访问网络中的数据包。也就是说,这些应用程序需要访问原始数据包,即没有被操作系统利用网络协议处理过的数据包。此时WinPcap就发挥了它发送原始数据包的作用,根据TCP/IP协议栈的格式采用WinPcap构建各种协议的数据包。
2.2信息隐藏系统总体框架结构
由2.1节的介绍我们可以知道,由于WinPcap脱离协议栈的特性并且它自身不能完
全控制数据的发送,因此我们在采用WinPcap发送数据时就需要为该信道设计一个控制信道,用来控制WinPcap发送数据包,实现系统同步,我们称控制信道为上层控制信道,WinPcap发送隐蔽信息的信道称为下层信道。总体框架如图2.2.1所示:
2刚络信息隐藏控制协议硕_L论文
上层信道与对方建立连接
土
1L,上层信道发送控制指令给下层信道
下层信道按照指令执行相关操作
图2.2.1信息隐藏系统总体结构图
整个系统的运行,首先由上层的安全信道建立连接,然后上层信道负责传输控制指令,以保证下层信道发送数据的同步,下层信道按照相关指令执行操作,构建隐蔽信道。2.3上层控制信道
由于我们采用了WinPeap发送数据,然而它本身没有基于任何协议,是脱离协议栈的,我们需要根据TCP/IP协议规定的数据包格式,。构建合法的TCP/IP数据包,通过修改其中的位置来达到如第3章所述的信息隐藏算法。为了使通信的双方能J下常通信,我们就需要为该通信机制设置一套通信协议,为此提出了一套基于C/S结构的上层信道通信协议。为了保证上层信道的安全,我们采用了基于RSA的公开密钥系统,并利用Di佑e-Hellman密钥交换算法交换密钥以避免中间人攻击.确保通信中使用的会话密钥的安全,这样可以充分保证上层信道的安全,为整个系统的安全提供的强有力的保障。2.3.1协议的工作流程上层协议工作流程如图2.3.1所示:
硕一I:论文网络通信的信息隐藏技术研究
图2.3.1上层信道T作流程图
2网络信息隐藏控制协议硕J二论文具体的工作过程如下:
(1)建立连接
A向B发送HELLO,若B同意连接返回YES,否则返回NO;若A收到B的应答为YES则和B建立上层信道;若A收到B的应答为NO,则通知用户;若B无应答,通知A再次进行尝试。
(2)交换配置
上层连接建立后,A通过上层信道向B发送BEREADYRECIEVEMETHOD指令,B收到后返回OK,A发送下层WinPcap信道使用的方法(我们事先已经为每种方法建立编码,而且每种方法所使用的参数一起发送给B),具体格式如图2-3.2所示:匝至巫三国亘三叵
图2.3.2配置信息格式
RECEIVEMETHOD表示该数据是配置信息数据,METHODID表示具体使用的是那种方式发送的隐藏信息。B收到后返回METHOD..RECEIVED信息,具体格式如图2.3.3所示:METHODMETHOD_IDMETHODPARAMETERI
,图2.3.3METHOD—RECEIVED消息格式
A根据收到的信息判断传输是否正确,如果正确,发送METHODDONE,B收到METHOD—DONE则确认相关方法和参数。若A发送消息后超时没有收到B的回应,则进行重发。B总是根据最先到达的消息进行响应,如果A超时3次,通知用户网络通信存在问题。
(3)交换密钥’
密钥交换和配雹交换的流程大致相当,这里的密钥交换采用Diffic-Hellmanmi密钥交换算法,具体将在2.3.3节中介绍。
(4)建立上层信道:
信道的建立意味着应用程序开辟一个线程用于管理由下层的WinPc印信道。这时A将需要发送的数据读入缓冲区,利用密钥生成加密使用的密码流,进行流式加密。B同时准备好解密密码流。。
(5)激活信道
A通过发送激活标志激活B,使其网卡处于侦听状态,具体过程如下:
A发送:ACTWEA METHOD_ID-Key-BEGINTIMENCS—ID,B收到后返回RESPONEA-METHOD—ID—Key-BEGINTIMENCS—ID并开始线程,A收到B返回的RESPONEA-METHOD_ID-Key-BEGINTIMENCS—ID指令后激发NCS同步信息。
(6)信道同步
通过激活和灭活机制来实现下层信道信息的同步,下层信道发送信息是以缓冲块的
硕1:论文网络通信的信息隐藏技术研究形式发送即CacheBLOCK即每次激活时告知相应的块序号,初始的块序号随机生成,引入同步机制后激活方式改变为A发送:SYNNCSIDSEQUENCE,B收到后返回:SYNNCSIDSEQUENCE,并开始线程。A收到返回后激发NCS发送信息通过NCS信道将缓存区中的信息从A发送到B标号为SEQENCE的信息。
(7)数据发送和接收,
A通过下层信道发送编号为SEQENCE的数据,B通过下层信道接收由A发送到B的标号为SEQENCE的信息。
(8)数据同步和校验
消息同步检验信令是通过计算发送消息的摘要实现的,A发送CHECKMESSAGEABSTRACT,B收到后比较本地的MESSAGEABSTRACT如一致,返回CHECKOK如不一致返回CHECKERROR,A收到CHECKERROR后可能需要重新发起连接进行传输,即进行信道的同步工作,否则进行下一个CacheBLOCK的同步和数据发送。
(9)灭活上层信道
A发送:DEACTIVENCSID,B收到后返回:RESPONEDEACTWENCSID,B将收到的数据整理上报给应用程序,中止线程。
(1O)结束上层信道
A向B发送FINISHA.METHODID.Key.BEGINTIME,B收到后返回FINISH并清空NCS配置缓存。上述过程叙述的是A到B的单工通信,上层信道一旦建立,B也可通过激活A.METHODID.Key-BEGINTIME信道向A发送信息,其具体原则均一致,所有的过程均使用线程机制来完成。
2.3.2协议格式.
为了实现即时消息和文件的传输,我们需要为WinPcap信道定义即时消息和文件传输格式。
(1)即时消息格式
假设通信双方为A和B,AB之间的即时消息的发送和接收不同于文件的传输,文件的传输在更多情况下是单工的,即A在和B发送文件时,B不主动向A发送数据。而即时消息的通信很多时候是双工的,A和B通信的同时,B也和A在进行通信。因此从逻辑上讲,即时通信需要在双方同时建立消息发送线程和消息接收线程。即时消息的格式定义如图2.3.4所示:
图2.3.4即时消息格式
B接收到A发送的数据,可以根据OPTIONCODE来确定收到的是即时消息,MESSAGELENGTH则可以让B知道数据的长度,接受到该长度后就计算校验值。’
2网络信息隐藏控制协议硕I:论文(2)文件传输格式
文件发送采取类似于简单文件传输协议的机制来完成,文件传输协议格式与消息类似,定义如图2.3.5所示t
图2.3.5文件传输格式
具体的细节如下:
FILEDATAOPTIONCODE需要取为FILENAMETRANSFER,FINISH。当OPTIONCODE取三者时,DATATRANSFER,FILEDATA
分别对应文件名,文件内容和文件发送结束标志。
2.3.3上层信道的安全机制
作为隐蔽通信系统,安全是首要考虑的问题。由于我们采用的是上层信道建立通信双方的连接并且发送指令控制下层WinPcap发送数据的,所以上层信道的安全性就至关重要。我们需要对上层信道通信双方的身份进行认证并且要保证指令的安全。基于此考虑,我们设计了基于RSA的公开密钥系统,并利用Diffie.Hellman密钥交换算法,交换密钥以避免中间人攻击。、
通信的发起方我们一般称之为客户端,接收方称为服务器端。RSA的工作过程是这样的:首先,当客户端向服务器发送连接时,服务器端把自己的公钥传送给客户端。客户端通过使用服务端的公钥加密本次通信的密钥并将其传送给服务端。如果服务端能用自己的私钥解释了这个密钥,那么客户端就认为服务端是真实可信的,否则,说明通信的对方只有服务端的公钥而没有私钥,客户端结束本次通话。当服务端可信时,这个密钥就作为本次通信双方的会话密钥使用。这样就保证了对每次通话双方的身份进行认证,同时可以保证一次一密和密钥的随机性,为通信双方构建了一个安全的平台,具体过程见图2.3.6所示: