一种适用于MANET网络层的匿名安全通信方法与流程

文档序号:12278784阅读:306来源:国知局
一种适用于MANET网络层的匿名安全通信方法与流程

本发明涉及通信网络安全领域,尤其涉及一种适用于MANET网络层的匿名安全通信方法。



背景技术:

移动自组网络(MANET)由于其开放的无线通信介质、节点的移动性以及自组织特性使其适合于紧急场合和临时场合,但同时也使其很容易遭受各种安全威胁和攻击,比如被动窃听、数据篡改和重发、伪造身份和拒绝服务等。研究者针对上述各种可能的攻击提出了不少相应的安全解决方案,在通信内容的机密性、完整性、真实性、可用性、不可否认性等方面提供安全保障。

MANET的匿名安全以保护用户的隐私信息为目的,其在军事和商业应用等重要场合正受到越来越多的重视。如在战术无线网络中,敌方可能通过窃听和流量分析等方式得到指挥中心和重要节点的位置信息,然后发动有针对性的破坏攻击。这种被动攻击通常不容易被检测和预防,所以隐藏通信双方身份的匿名通信是保障节点安全基本要求;在商业应用中,用户的身份以及其他涉及隐私的信息受到法律的保护,比如在电子交易中,要求消费者的身份不会被第三方所知道。而在电子投票中,当进行匿名投票时,要求投票人的私人信息不可被探知。这些都对MANET在实际应用中的匿名安全提出了很高的要求。

在MANET中,AODV(按需距离矢量路由协议)和DSR(动态源路由协议)路由是最常用的按需路由协议,但是它们存在的问题在于路由建立阶段会暴露源节点和目的节点信息以及路由信息,而在包转发阶段由于源节点和目的节点的IP地址在IP协议中也是公开的,所以极易泄漏节点信息。另一方面,敌对攻击者也可以通过流量分析等被动攻击手段获知路由信息和节点信息,被动攻击不同于主动攻击如DOS(拒绝服务攻击),其不易被发觉和防范。

虽然目前针对安全路由提出了不少方案,比如ARAN、AODV-S、SRP、Ariadne、SEAD等安全路由协议,但是其目的主要是保证路由信息的正确、真实、可用等安全特性,并不能有效地保证节点通信的匿名安全。比如SRP和ARAN仅仅保证匿名信息的真实性,而不能保证路由信息的隐秘,在这些协议中,中间节点可以轻易的发现通信双方的身份。

针对匿名安全,文献1[J.Kong,X.Hong.ANODR:Anonymous On Demand Routing withUntraceable Routes for Mobile Ad-hoc Networks.In Proceedings of the 4th ACM InternationalSymposium on Mobile Ad Hoc Networking and Computing(MobiHoc'03),pp.291--302,2003.]、文献2[B.Zhu,Z.Wan,M.S.Kankanhalli,and F.Bao,R.H.Deng,Anonymous Secure Routing in Mobile Ad-hoc Networks.Proceedings of the 29th IEEE International Conference on Local Computer Networks(LCN 2004),Tampa,USA,pp.102-108,November 2004.]、文献3[Y.Zhang,W.Liu,and W.Lou.Anonymous communicationsin mobile ad hoc networks.In Proceedings of the 24th International Conference of the IEEE Communications Society(INFOCOM 2005).IEEE,2005.]、文献4[R.Song,L.Korba,and G.Yee.AnonDSR:Efficient AnonymousDynamic Source Routing for Mobile Ad-Hoc Networks.In ACM Workshop on Security of Ad Hoc and Sensor Networks(SASN),2005.]、文献5[K.El-Khatib,L.Korba,R.Song,and G.Yee,“Secure dynamic distributed routing algorithm for ad hoc wireless networks,”in Proc.ICPP Workshops,Kaohsiung,Taiwan,Oct.2003.]提出了几种有效的移动自组网匿名路由协议。

其中,文献1提出的ANODR、文献2提出的ASR和文献3提出的MASK是基于文献6[C.Perkins,E.Belding-Royer,and S.Das.Ad hoc On-Demand Distance Vector(AODV)Routing.RFC 3561,July 2003.]提出的AODV路由协议思想设计的。ANODR首先引入了全局陷门(the global trapdoor)概念实现节点身份的匿名,在源节点发送的RREQ中,用全局门限Trapdoor代替目的节点身份,保证仅仅目的节点可以解密trapdoor。为减少运算量,仅仅在第一次路由建立过程中采用公钥加密,在之后的路由建立过程中采用对等加密。

文献4提出的AnonDSR和文献5提出的SDDR匿名路由协议则基于文献8[D.B.Johnson,D.A.Maltz,and Y.Hu.The Dynamic Source Routing Protocol for Mobile Ad Hoc Networks(DSR).<draft-ietf-manet-dsr-09.txt>,April 2003.]提出的DSR的动态源路由(dynamic source routing)思想形成,同时借鉴了结合了文献7[David Chaum.Untraceable Electronic Mail,Return Addresses,and Digital Pseudonyms.Communications of the ACM,24(2),1981.]提出的mix-net层层加密思想。在路由建立阶段,每个节点使用临时公钥层层加密信息到RREQ(route request)包中,只有目的节点可以解开RREQ,并获得沿路节点的信息。

在ANODR、ASR、AnonDSR等协议中,均假设采用CA认证来完成公钥分配和保证公钥和身份的真实性。但是其存在的问题是在通信前,通信双发需要互发证书来进行确认,并且证书的维护和更新都会加大通信量和计算量。同时在CA认证和证书更新中存在匿名泄漏的可能,比如说节点A需要确认节点B的CA证书,需要知道发证机构C的公钥,这样节点A不可避免地知道节点B属于发证机构C的群组。

文献3提出的MASK协议使用IBE(Identity-Based Encryption,基于身份加密)方法产生节点的公钥和私钥,无需为用户颁发包含公钥的数字证书,这样避免了CA认证中泄漏信息的可能性。为达到匿名的目的,该方法基于双线性映射为每个节点生成了大量的伪ID号作为公钥以及对应的私钥。MASK采用hello包完成相邻节点的密钥协商,每个节点到达一个地方均要和邻居节点通过三次握手建立匿名虚拟链接关系。

上述IBE密码学最早由公钥领域先驱Shamir在1984年提出设想,但没有给出具体的实现方案。直到2001年才由斯坦福大学的密码学专家Dan Boneh和加州大学戴维斯分校的教授Matt Franklin提出具体实现方案,即BF_IBE方案。他们利用双线性映射构建加密系统,其中modified Weil pairing即是满足要求的双线性对。BF_IBE方案的安全性是基于椭圆曲线上双线性映射DH(Diffie-Hellman)问题的基础上。

在IBE的密钥系统的实现中,存在一个可信第三方PKG(private key generator,私钥生成器),其使用主钥(master key,仅仅PKG知道)以及来自椭圆曲线加密算法的一组公共参数,产生与用户ID对应的公钥和私钥并分配给加入网络的每个用户。公钥由用户ID(例如电子邮件地址、电话号码等任意身份信息)通过散列映射得到,这样避免了复杂的证书认证过程,减少了数字证书的维护等方面的复杂问题。

BF_IBE系统的具体实现大致分为四个步骤:

1)建立阶段:PKG完成主钥以及系统的公共参数(system parameters)G1,G2,q,P,Ppub,H1,H2的生成,其中主钥仅仅PKG拥有,而系统公共参数则公开给所有用户。其中,G1为加法群,G2为乘法群,具有相同阶q;为可行的双线性映射,随机选择作为主钥,需要严格保密,P为随机选择的生成元,Ppub=sP;选择密码散列函数将任意字符串映射到G1加法群中;选择密码散列函数H2:G2→{0,1}n将乘法群G2映射到消息空间{0,1}n

2)密钥提取阶段:对于给定的用户ID∈{0,1}*,PKG通过散列函数H1,完成对应公钥的生成PKID=H1(ID);同时通过主钥s计算对应而太阳能用户的私钥SKID=sPKID,通过安全信道将私钥颁发给用户,由该用户保管此私钥,形成公私密钥对(PKID,SKID)。

3)加密阶段:发送者可以用接收者的ID,通过H1映射获得对应的公钥PKID=H1(ID),然后利用该公钥加密通信的信息。

4)解密阶段:接收者则使用PKG颁发给自己的私钥SKID对收到的信息进行解密。

由于IBE加密系统采用各节点的ID身份作为公钥,避免了传统CA证书的目录管理以及繁琐的公钥认证过程,使得其在安全认证方面的应用越来越广泛。但是在移动自组网的匿名通信中,要求通信节点的身份ID仅仅为通信双方获知,不可被其他节点所知道,所以实际通信应用中与IBE的应用产生了矛盾。在MASK协议中同样也引入了IBE进行匿名邻居认证,其为了解决身份匿名问题采用伪ID号代替自身实际的ID号来避免节点身份的泄漏,但如果伪ID号长期不变,则失去了匿名的含义,因为敌对者可以针对此伪ID实施流量分析攻击。为解决伪ID更新的问题,MASK要求PKG事先给每个用户提供了足够的伪ID和对应的密钥集合,但这样不但加大了PKG的运算量,也耗费了用户的内存。在伪ID用完后,用户不得不重复使用,这样也降低了安全性。



技术实现要素:

针对上述现有技术的不足,本发明提供一种适用于MANET网络层的匿名安全通信方法,以实现MANET网络节点的身份匿名和路由匿名,从而有效保护网络中节点的身份信息安全、位置信息安全和路由信息安全,可有效抵御各种针对敏感信息的网络攻击。

为了实现上述目的,本发明采用如下技术方案:

一种适用于MANET网络层的匿名安全通信方法,包括以下步骤:

步骤S1,系统初始化步骤:首先通过一PKG生成主钥和网络公共参数,其中所述主钥由PKG自身保存,所述网络公共参数公开给网络中的所有节点;而后PKG根据各节点互不冲突的ID生成对应于各节点的公钥和私钥,并将所述公钥公开给所有节点,将所述私钥公开给对应的节点;

步骤S2,共享密钥协商步骤:采用IBE协议实现源节点与目的节点之间的共享密钥和通信序列号协商,其中所述共享密钥为称密钥;

步骤S3,路由发现步骤:根据协商的共享密钥和通信序列号,采用洋葱加密协议建立源节点与目的节点之间的匿名路由路径;以及

步骤S4,数据发送步骤:采用洋葱加密协议实现从源节点沿所述匿名路由路径到目的节点的数据传输。

进一步地,在所述步骤S1中,

所述主钥为

所述网络公共参数为G1,G2,q,P,Ppub,H1,H2,H3,其中,表示双线性映射,G1,G2分别表示阶数为大素数q的加法群和乘法群,P为随机选择的生成元,Ppub=sP,H1,H2,H3分别表示三个防碰撞的散列映射,H1:{0,1}*→G1表示任意字符到G1加法群的映射,H2:G2→{0,1}n表示将乘法群G2映射到消息空间{0,1}n,H3:G2→(0,1)β表示从G2乘法群到固定长度为β位集合的映射;

设节点i的ID为IDi,则节点i的公钥PKIDi=H1(IDi),节点i的私钥PKPIDi=sPKIDi=sH1(IDi)。

进一步地,所述步骤S2包括:

步骤S21,假设源节点的ID为IDA,目的节点的ID为IDB,源节点首先随机选择生成其公钥PKPIDA=H1(IDA)和对应的伪私钥SKPIDA=rPKPIDA,而后广播发送一共享密钥协商包SKNAB,其中SKNAB格式为<SKN,TRAB,PKPIDA,S_INFO>,在SKNAB中,SKN为共享密钥协商标识位,其中PKIDB=H1(IDB),在S_INFO中,REQ表示申请协商标识位,SOURCE_ID=IDA,DEST_ID=IDB,EXP_TIME表示Sequence_number和Shared_key的有效期,Sequence_number,Shared_key分别表示协商的共享密钥和通信序列号,其中Sequence_number由IDA和IDB经过散列运算得到,

步骤S22,当目的节点收到SKNAB后,首先计算fBA

然后计算TRBA=H2(fBA),并判断TRBA是否等于TRAB,若TRBA和TRAB相同,则目的节点认为SKNAB是发给自己的,计算KBA=H3(fBA),利用KBA对S_INFO进行解密,得到所述通信序列号Sequence_number和共享密钥Shared_key,而后在确认SKNAB信息完整后回送一ACK广播包,ACK广播包格式为<SKN_ACK,Sequence_number,SIGNAB>,其中SKN_ACK表示协商应答标识位,在SIGNAB中,ACK表示应答信号标识位;

步骤S23,目的节点和源节点保存所述Sequence_number和Shared_key。

进一步地,所述步骤S3包括:

步骤S31,源节点广播一个匿名路由发现包ARREQ,ARREQ包格式为<RREQ,SEQNUMtagt,PKtemp,TRtagt,PDO>,其中RREQ表示匿名路由请求标识位,SEQNUMtagt表示目的节点的伪ID号,且SEQNUMtagt=Sequence_number,PKtemp是由源节点产生的临时性的公钥,TRtagt是由对称密钥加密的陷门信息,TRtagt=ESSKtagt(IDtagt,PDO_SIGN,SKtemp),其中IDtagt表示目的节点的ID,PDO_SIGN表示洋葱标识位,SKtemp是PKtemp对应的私钥,PDO表示路径发现洋葱;当各中间节点接收到ARREQ后,采用洋葱加密算法对ARREQ进行逐层加密;

步骤S32,当目的节点收到经过层层加密的ARREQ后,对其进行解密并获得ARREQ传送的路由信息,而后采用单播的方式沿ARREQ经过路由的反向发送一个经其采用洋葱加密协议层层加密的匿名路由应答包ARREP,其中ARREP包括ARREQ传送的路由信息;当各中间节点接收到所述ARREP后,依次对ARREP进行逐层解密;当源节点接收到ARREP后,对其进行最终层解密并获得ARREQ传送的路由信息,从而建立源节点与目的节点之间的匿名路由路径。

进一步地,在所述步骤S32中,若目的节点获得多条ARREQ传送的路由时,则选择最短的一条或最安全的一条路由的路由信息打包到所述ARREQ中。

进一步地,所述步骤S4包括,

步骤S41,源节点根据所述ARREQ传送的路由信息对待发送的数据包进行洋葱加密,而后沿步骤S3建立的匿名路由路径发送所述数据包;当各中间节点接收到所述数据包后,依次对其进行逐层解密;

步骤S42,目的节点收到所述数据包括,对其进行最终层解密并获得其中的数据。

通过采用上述技术方案,本发明具有如下有益效果:

本发明采用基于IBE加密方案的身份匿名实现方法和基于洋葱加密的匿名路由协议,能够有效保护网络中节点的身份信息安全(包括源节点、目的节点和中间节点在发送和接收数据过程中节点的身份信息不能被邻居节点辨认,敌对节点要想获得节点的真实身份存在计算上的困难),位置信息安全(包括通信中源节点和目的节点的位置,其他节点包括中间节点不知道源节点和目的节点距离他们有多远)和路由信息的安全(位于中间节点位置的敌方不能通过跟踪路由追溯到源或目的节点,不是中间节点的敌对节点不能知道关于路由的任何信息),并且保障数据包在网络中的安全传输,同时实现了匿名(身份隐藏)和安全两大目标,可以有效抵御各种针对敏感信息的网络攻击,适用于对信息安全要求较高、需要保障信息隐私的应用场合。

附图说明

图1为本发明的适用于MANET网络层的匿名安全通信方法的流程图;

图2为本发明一个实施例的路由示意图;

图3为本发明一个实施例的数据传输示意图。

具体实施方式

下面根据附图,给出本发明的较佳实施例,并予以详细描述,使能更好地理解本发明的功能、特点。

如图1所示,本发明的适用于MANET网络层的匿名安全通信方法主要包括四个步骤:S1,系统初始化步骤;S2,共享密钥协商步骤;S3,路由发现步骤;S4,数据发送步骤。各步骤的详细过程如下:

S1,系统初始化步骤

假设存在可信的第三方机构PKG,在系统初始化的时候,PKG完成主钥s的生成以及网络公共参数G1,G2,q,P,Ppub,H1,H2,H3的生成,其中主钥仅仅PKG拥有,而网络公共参数G1,G2,H1,H2,H3则公开给所有用户。在公共参数中,表示双线性映射,G1,G2分别表示阶数为大素数q的加法群和乘法群,P为随机选择的生成元,Ppub=sP H1,H2,H3分别表示三个防碰撞的散列映射,H1:{0,1}*→G1表示任意字符到G1加法群的映射,H2:G2→{0,1}n将乘法群G2映射到消息空间{0,1}n,H3:G2→(0,1)β表示从G2乘法群到固定长度为β位集合的映射。

由于每个节点均有自己的不冲突的ID,在加入自组网的时候,都从第三方PKG获得所有节点的公钥,并安全地获得对应于自身节点ID的私钥,这样源节点可以直接使用目的节点的ID作为公钥加密。其中,PKG生成的主钥为节点i知道网络公共参数,并且经从PKG中获得了对应IDi的私钥SKIDi和公钥PKIDi,其中SKIDi=sPKIDi=sH1(IDi)。

S2,共享密钥协商步骤

在一般匿名通信协议中陷门一般是采用目的节点的公钥进行加密,由目的节点的私钥进行解密,这样虽然能够很好的保证私密性,但是因为公钥加密和私钥解密开销远远大于对等密钥的操作,大大增加了网络节点的延迟和负载,本文在以下两个方面进行了改进。首先引入椭圆曲线上双线性映射构建陷门,由于其基于椭圆曲线运算,使得其运算量较少;其次在第一次和目标节点通信的时候,先进行单独的共享密钥协商,经过协商后,源节点和目的节点将交换对称密钥和通信序列号,以后通信中陷门的构建则采用对称密钥算法,从而减少了各个节点的计算量。

与AnonDSR方案的SPE阶段不同的是,本阶段为了防止泄漏用户身份等信息,仅仅是协商共享密钥和通信序列号,而不涉及路由的建立,所以通信双方均采用广播的方式完成。

源节点A首先与目的节点B进行共享密钥协商,为简述方便,分别设定各自的ID为IDA和IDB。源节点A随机选择生成公钥PKPIDA=H1(IDA)和对应的伪私钥SKPIDA=rPKPIDA,广播发送共享密钥协商包SKNAB申请握手,具体发送包格式如下:<SKN,TRAB,PKPIDA,S_INFO>。其中:

SKN表示共享密钥协商标识位,

PKIDB=H1(IDB),

TRAB=H2(fAB),KAB=H3(fAB)

即,由IDA的伪私钥SKPIDA和IDB的公钥PKIDB进行线性对运算和散列运算H2得到陷门信息TRAB;同时进行H3散列映射变换可以得到结果KAB;用KAB作为临时对等密钥来加密他们之间的协商信息,得到S_INFO。在S_INFO中,REQ标志表示这个包是申请握手协商,而SOURCE_ID表示源节点的ID号,DEST_ID表示目的节点的ID号;EXP_TIME表示双方协商的计时器,用来表示Sequence_number和Shared_key的有效期;Sequence_number和Shared_key则是握手后共用的通信序列号和共享密钥。我们取Shared_key=KAB,KAB和TRAB均从fAB计算得出,因此S_INFO又是一个数字签名,可以防止协商的共享信息被篡改,保证信息的机密性和完整性。

网络中各节点IDi收到SKNAB包后,尝试用自己的私钥进行线性对运算和散列运算,计算陷门TRiA是否等于陷门TRAB。当目的节点IDB收到SKNAB后,根据PKPIDA来计算fBA,然后通过H2散列运算判断TRBA是否等于TRAB,推理如下:

TRBA=H2(fBA)=H2(fAB)=TRAB

当发现TRBA和TRAB相同,则认为SKNAB包是发给自己的。计算KBA,同理KBA=H3(fBA)=H3(fAB)=KAB,然后用KBA对S_INFO进行解密,一方面可以得到双方通信序列号Sequence_number和共享密钥Shared_key,另一方面通过数字签名S_INFO则可以验证SKNAB是否信息完整,有没有被篡改。

在验证数字签名S_INFO是否正确后,回送ACK广播包。ACK包格式如下:<SKN_ACK,Sequence_number,SIGNAB>,其中,

当源节点IDA收到ACK包后,通过Sequence_number知道是发给自己的数据包,然后用KAB解密以确认和目的节点IDB在Sequence_number,Shared_key上达成了一致。

本协议的缺点是最开始的时候,由于双线性映射运算量较大,造成通信延迟较大,并且因为是广播包,容易造成洪泛。为解决这个问题,一个提高速度、减少延迟的思路是,可以先转发再进行线性运算。

另外因为仅仅是第一次通信用到此协议,所以其对于网络的性能影响不大,而且在以后的通信中由于采用对等密钥进行加密解密操作,其计算量和延迟将会大大的减少。并且由于采用广播的方式,客观上起到了匿名的功效,使得敌对节点不能够有效跟踪。

经过第一阶段的通信,通信双方将就通信序列号和共享密钥达成一致,将此信息写入到共享密钥信息表,所以需要维护这个对应的表格以便之后的通信。定时器用于对于长期不用的节点进行删除或者刷新。共享密钥信息表具体结构如下表1,此处shared_key即双方协商的对称密钥:

表1共享秘密密钥信息表

另外为了保证对称密钥的安全,通信双方可采用hash算法进行对称密钥的同步更新,防止长期使用同一个sequnce_number和对称密钥而被破译的可能性。

S3,路由发现步骤

在完成共享密钥协商后,就进入了路由发现步骤。本步骤又可细分为:S31,源节点发起ARREQ(匿名路由请求包)步骤;S32,目的节点回送ARREP(匿名路由响应包)步骤。

在本发明中,源节点发起ARREQ步骤的过程如下:

本阶段类似DSR协议的RREQ阶段。当发起者(源节点)建立一条新的路由时,通过广播一个匿名路由发现包(ARREQ:anonymous route request)给网络中所有节点来启动路由发现过程。ARREQ包含五个部分:<RREQ,SEQNUMtagt,PKtemp,TRtagt,PDO>,其中RREQ是匿名路由请求标识位,表示此数据包是匿名路由请求包;SEQNUMtagt表示目的节点的伪ID号,要求其必须为全局唯一的序列号,此序列号在互相认证阶段由源节点和目的节点协商建立(即SEQNUMtagt=Sequence_number);PKtemp是由源节点产生的临时性的公钥(产生过程与协商过程中的公钥PKPIDA=H1(IDA)和对应的伪私钥SKPIDA=rPKPIDA产生相同),其对应的私钥SKtemp存放在陷门TRtagt信息中,SKtemp仅仅目的节点可以获得;TRtagt是由对称密钥加密的陷门信息,由SEQNUMtagt对应的共享密钥SSKtagt(SSKtagt=Shared_key)加密,内含目的节点的ID、标志位以及与PKtemp对应的SKtemp,即TRtagt=ESSKtagt(IDtagt,PDO_SIGN,SKtemp);PDO(路径发现洋葱)类似DSR协议中RREQ的路由记录,为了隐私安全,要求每个中间节点用PKtemp为公钥加密自己的临时会话密钥Ki,然后用Ki对称加密其对应的临时伪ID号(即Ni)和接收到的PDOi,从而构建新的PDO。这里同样要求Ni是全局唯一的,其产生方法类似SEQNUMtagt

路由示意图如图2所示,假设节点A是源节点,节点E是目标节点。

在图2中,PDOi意思是路径发现洋葱(path discovery onion),PROi意思是路径返回洋葱(path reverse onion),如下是经过各个节点的格式:

SignA,SignB,SignC,SignD为数字签名,用于判断数据完整性,防止被篡改。PAD表示填充随机值,用于保证每个包等长,防止敌对节点通过长度来判断路径信息。

当中间节点收到路由请求包后,采用洋葱加密算法对PDO进行层层加密,其处理流程如下:

a)首先检查SEQNUMtagt是否已经收到过,如果收到,则丢弃此数据包。

b)如果是第一次收到,则检查SEQNUMtagt是否为自己的伪ID,如果是,则用对应的SSKtagt对ARREQ的TRtagt解密。

c)如SEQNUMtagt不是自己的伪ID,则生成临时的会话密钥Ki和伪IDNi(也可以事先生成好,但是对于不同的SEQNUMtagt要求产生不同的值,否则失去伪ID的意义),用临时公钥PKtemp加密自己Ki,然后再用Ki加密Ni和收到的PDOi-1。同时在自己的路由表(如表2)中添加临时的Ki和Ni,为防止超时,可添加timer(定时器),如果长时间没有使用此路由,就删除此项。

表2路由表格式

注:SEQNUMtagt'表示用于其他路由的伪ID号。

d)接b),如果可以用SSKtagt解密对应TRtagt,则用解密后的IDtagt再次确认;然后用对应的SKtemp对PDO进行解密,依次获得沿路的节点信息(Ki,Ni),最后得到整个从源节点到目的节点的匿名路由PRroute={NA,KA,NB,KB,NC,KC,ND,KD}。可能存在多条路由,由目的节点选择最短路径或者其认为的安全路径。

在本发明中,目的节点回送ARREP(匿名路由响应包)步骤如下:

当目的节点收到ARREQ获取前向路由(源节点->目的节点)后,需要回应ARREP包给源节点。与源节点采用广播方式发送ARREQ不同,目的节点采用单播的方式沿着获得的前向路由反向发送ARREP。为防止敌对节点通过判断数据包标识符来获得路由信息,进而获得源节点的隐私信息,ARREQ采用数据包标识符使其看上去像数据包,从而使ARREP包隐藏于大量的数据包中,防止路由响应包被识别跟踪。为保证安全,目的节点使用所获的前向路由提供的(Ki,Ni)预先进行层层加密,构造了一个路径返回洋葱,定义为PROi(path reverse onion),见上图2。为区别于普通数据包,将ARREP标志加密到每一层。ARREP的格式为<DATA,ND,PROD,PAD>,其中:

PRroute={NA,KA,NB,KB,NC,KC,ND,KD}

其中ND是节点D的伪ID号;PROD是目的节点事先构建好的洋葱,使用沿路节点的临时会话密钥Ki进行加密。在PROD中,ARREP标志表示此数据包是ARREP包,区别于真正的数据包。PRroute则是目的节点得到的前向路由(源节点->目的节点)。当节点D收到数据后,检查到ND是自己的伪ID,则可解密PROD。END为标志位,表示这是最后一层,不需要再解密转发。中间节点D解密后,获得下一跳的节点C的伪ID号NC,为防止敌对节点通过数据包长度来跟踪路由,可以填充无用数据PAD再转发去。

节点D发送的包格式如下:<DATA,NC,PROC,PAD>,其中节点C发送的包格式如上:<DATA,NB,PROB,PAD>,其中最后源节点A将获得整条路径的路由信息PRroute,PRroute={NA,KA,NB,KB,NC,KC,ND,KD}

S4,数据发送步骤

当源节点(节点A)获得了返回路径,即可采用类似文献9[R.Dingledine,N.Mathewson,and P.Syverson.Tor:Thesecond-generation onion router.In Proceedings of the 13thUSENIX Security Symposium,August 2004.]提出的TOR协议的思路,层层加密需要发送数据,为区别一般的纯数据包和ARREP包,需要在洋葱数据(OD:onion data)打上不同标志位。如果为纯数据包,记为PL;如果为ARREP包,则记为ARREP(见PRO的定义)。

发送的数据包的格式如下,不管是前向方向(源节点->目的节点),还是反向方向(目的节点->源节点),均需要发送者事先进行层层加密构建洋葱数据(OD),这和TOR的思路不一样,TOR在反向方向不需要预先层层加密。数据包格式如下:<ADA TA,Ni,ODi>,

以node A->node E为例,数据传输如图3所示,其中:

节点A预先进行层层加密,发送已经构造好的洋葱数据包。然后中间节点检查Ni是不是存在于自己的路由表中,如果存在,则解密ODi,检查标识符是否是PL_SIGN,如果是,则获取下一跳的Ni+1和ODi+1,替换ADATA帧格式中的Ni和ODi,然后将新的ADATA数据包广播出去。如此依次下去,目的节点E将获得ODD,解密ODD后从END标识符知道自己是最后的节点,获得数据。

以上记载的,仅为本发明的较佳实施例,并非用以限定本发明的范围,本发明的上述实施例还可以做出各种变化。即凡是依据本发明申请的权利要求书及说明书内容所作的简单、等效变化与修饰,皆落入本发明专利的权利要求保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1