基于自组网协议度量值单向特征的网络安全策略
2021-07-05林钊安叶金才张法全王国富
林钊安, 叶金才, 张法全, 王国富
(1.桂林电子科技大学 信息与通信学院, 广西 桂林 541004;2.广西科技大学 电气与信息工程学院, 广西 柳州 545006)
一些自组网协议基于特定规则对节点之间的传输性能进行度量,并以此选取最佳路径,如AODV选择最小跳数的路径,BATMAN.adv选择发送成功概率最大的路径[1-2]。度量字段保存在控制数据包,其按照协议规则应单向变化,恶意节点可通过违反协议规则发起攻击,致使网络瘫痪。
Verma等[2-4]通过密钥验证节点的合法性,拒绝非法节点加入网络。李明武等[5]基于持续在线的授权中心实现对节点的合法性进行认证,授权中心的存在使得网络不具有去中心化的特点。这类通过密钥拒绝恶意节点的方法能防止度量字段被篡改,但只要泄露了一个密钥,就会导致整个网络受到威胁。Roy等[6-9]基于贝叶斯公式考察节点的不良行为和剩余能量,从而推定恶意节点。潘蕾娜等[10-11]结合模糊算法和分簇算法对节点行为进行多维度评估,减少了节点被错误归类的概率。这类方法基于统计学判断节点是否虚报度量值,从而保护网络,不存在密钥保管问题。但统计学方法不仅存在识别准确性与资源消耗之间的矛盾,还需要充足的先验知识,致使嵌入式设备运行困难和系统移植困难。Shi等[12]充分利用传感器网络中邻近节点采集的数据具有相关性的特点,传感器通过对比自测数据与周边节点发送的数据,识别异常节点。其优势在于:不仅能识别恶意节点,还能识别没有网络攻击意愿但系统功能异常的传感器。Sethuraman等[13]对网络运行时消耗的能量进行考察,此方案在抵御恶意节点的同时,还能优化系统的能量消耗。这类基于现实应用的方法对于恶意节点的识别具有针对性,但这些方法只适用于特定用途的网络。简而言之,基于密码学的方法能够拒绝攻击者,但密钥泄露会导致整个网络面临威胁;基于统计学的方法本质上是寻找数据包中度量值和网络实际情况之间的矛盾,这类方法普遍需要较高的运算资源;基于现实应用的方法对于识别恶意节点具有很强的针对性,但应用上具有局限性。
为了解决嵌入式设备度量值被篡改,导致网络安全受到威胁的问题,以BATMAN.adv为例,分析协议对链路的度量和恶意节点对网络的攻击,并提出基于单向序列的改进方法。
1 BATMAN.adv协议网络模型
BATMAN.adv是一种运行在数据链路层的无线自组网协议,节点定期向周围发送OGM(originator message)包,用于节点之间的相互识别和链路传输质量(transmit quality,简称TQ)的评估。为了便于描述,用o、b、c等小写字母表示节点名称。选取o作为源节点对网络进行研究,仅讨论与o节点有关的OGM包转发情况,而无线自组网中的节点具有等价性,故研究结果可以类推到网络中的任意节点。
节点o统计自身OGM包中被邻居节点回传数量与总量之比,以此计算链路的循环传输质量,设QE为传输质量。节点o通过包序列号可知邻居节点生成的OGM包数量,通过实际接收量与邻居节点生成量之比可以计算出链路的接收质量QR。根据概率的关系有QT=QE/QR。
虽然在实际的BATMAN.adv网络中主要参考链路的真实QT,但为了避免不对称链路的存在,协议计算QT时加入了不对称链路惩罚,QT'=QT,
OGM包中存在累计链路传输质量的字段,设其为QT,OGM起始值为1.0,每个节点在转发OGM包时,会将QT,OGM与链路上的QT'相乘,并重新写入OGM包,最终QT,OGM的数值就等于其所经过链路QT'的累乘。因为TQpath恒小于1,所以在OGM包传递过程中QT,OGM单向递减,节点最终会选择QT,OGM最大的方向传递数据包。随着OGM包的转发,确定了一个以o为根节点的路由路径生成树T。图1中,h节点会收到o-e-l-h、o-e-l-k-h、o-d-f-i-h等多条路径转发而来的OGM包。经过对比,h发现由自l节点的OGM包QT,OGM最大,因此当h需要发送数据包给o时,会以l作为下一跳,h-l-e-o为最佳链路。
图1 BATMAN.adv复杂网络模型示例
用符号a代表恶意节点,其在转发节点OGM包时,将QT,OGM修改为初始值1.0,此时所有经过a的OGM包都出现了QT,OGM突然上升的现象。所有经过a的OGM包其度量值会以a作为起点重新计算,因此可以将a视为新的“节点o”。设Go=G-a,在Go上以o为根节点的路由路径生成树为To。设Ga=G-o,在Ga上以a为根节点的路由路径的生成树为Ta。如果Ta上a到b节点QT'的连乘大于Ta上o到b节点QT'的连乘,则o与b之间的链路受到攻击。通过篡改QT,OGM,恶意节点不仅可以发起黑洞攻击,导致大范围丢包或通信中断,还可以监听远超自身信号覆盖范围的通信数据。
网络被攻击的主要原因在于,在OGM包转发过程中,QT,OGM应单向递减,而攻击者可以任意违背这一规则,下文将提出一种能够确保QT,OGM值单向递减的方法。
2 关于TQ值的单向序列
2.1 单向序列
定义1单向序列,对于一个满足如下性质的序列S称为单向序列:
1)给定k项状态sn-k,sn-k+1,…,sn-1,存在递推式f,在多项式时间内可求出f(sn-k,sn-k+1,…,sn-1)=sn,其中sn,sn-1,…∈{0,1}m,k为不随n变化的确定值。
2)给定k项状态sn-k+1,sn-k+2,…,sn,存在算法能够在多项式时间内求解v(sn-k+1,sn-k+2,…,sn)=n。
定义2固定输入长度的抗碰撞哈希函数f,如果一个可以在多项式时间内计算的映射f:{0,1}m→{0,1}t(m),t:N→N,且t(m) 1)f是一个单向函数[14]; 2)具有抗碰撞性,即难以确定一对不同的输入x和y,使得f(x)=f(y)[15]。 当前许多常用的密码学数哈希函数采用Merkle-Damgård结构,选定固定输入长度的抗碰撞哈希函数f,将原消息填充并分块,将f串联,实现对任意长度消息的压缩。图2为Merkle-Damgård结构哈希函数示意图,在函数f具抗碰撞的前提下,Merkle-Damgård结构哈希函数H同样具有抗碰撞性,而一个具有抗碰撞性的函数其同时也为单向函数[14,16]。 图2 Merkle-Damgård结构哈希函数示意图 定义3伪原像攻击,给定哈希值hi+1,找到(hi,Mi),使得hi+1=f(hi,Mi),其中f为哈希函数中的压缩函数,在Merkle-Damgård结构中为固定输入长度的抗碰撞哈希函数。 定理1对于任意固定输入长度的抗碰撞哈希函数f:{0,1}m→{0,1}t(m),t(m) 证明令r∈{0,1}m,计算s0=f(r)。选取可在多项式时间内求解的函数e:{0,1}t(m)→{0,1}m,确保x≠y时有e(x)≠e(y)。递推式为f(e(sn-1))=sn,定义连续递推运算g,n次连续递推为g(n)(s0)=sn,求出g(a)(s0)=sa,如图3所示,最终公开参数sa。已知sn,求解n的算法v(sn)=n,为求解式(1)。 图3 连续递推示意图 由于e(x)和f(x)均能在多项式时间内求出,所构建序列显然满足定义1中的描述1)。 由于递推式可在多项式时间内计算,且a为有限值,算法v能在多项式时间内求解,v(sn)=n满足定义1中的描述2)。 给定sn,设F为求解F(sn)=的有效算法,使得i 由上文的证明及定义3可知:若f取自Merkle-Damgård结构的哈希函数H,则对于单向序列破解等同于求解哈希函数H的伪原像。 利用上述的计算结构,可使得QT,OGM在OGM包传递过程中单向递减。因为原协议中用一个8位二进制数表示QT,OGM,所以选定s0至s255共计256个状态,QT,OGM=255-v(sn)。选定e(x)=b+x,b∈{0,1}m。具体实现还需要不可更改的s255,每个节点预先存储b以及其他节点的数字签名公钥。TQ值数据段由3个部分构成,如图4所示,其中sign{s255}为保护数据s255不可被任意修改的数字签名。 图4 TQ数据段 对于TQ值数据段的破解,可以通过伪造数字签名和破解单向序列实现,相应的困难性分析如下。 根据定理1的证明可知,序列的安全性与f有关。根据定义3可知,对于单向序列的破解等价于求解H的伪原像。具体而言,若H为常用哈希函数MD5、SHA-256和SHA-512,则对此单向序列的破解复杂度分别为2116.9、2255和2511[19-20]。 为测试单向序列的应用对于自组网性能的影响,以BATMAN-adv作为测试的基础协议,将其与单向序列结合,并在嵌入式平台上进行测试,具体参数如表1所示。考虑到嵌入式平台的计算资源的有限性,选用MD5的压缩函数作为f,128位ECDSA作为数字签名,由此构成的TQ值数据段安全性为264。f的输出结果为128位,长度与ECDSA-128签名相同,所以TQ值数据段保存了sign{s255}后不需要额外存储s255。 表1 测试平台软硬件信息 将2台电脑通过以太网接口分别连接至测试平台,由5个节点构成网型网络,如图5所示,测试平台运行BATMAN.adv及基于单向序列的BATMAN.adv改进协议。使用iperf分别在-20、-40、-60和-80 dBm信号强度下测试TCP吞吐量和UDP吞吐量,每次测试运行60 s。测试结果如图6和图7,根据测试结果,虽然随着运算量与OGM包长度的增加,BATMAN.adv改进版吞吐量降至原协议的65%,但是避免了在黑洞攻击下网络吞吐量归零的情况发生。统计学的相关方法对资源消耗较大,χ2-ERT、Person、ReliefF和IGG方法在性能相似的SOC上运行时间为7 s以上,RBF神经网络和密度峰值分布式检测方法即使在个人计算机上单次运行时间也超过6 s,所以均不适合应用于嵌入式平台[21-23]。 图5 网络连接示意图 图6 TCP吞吐量性能对比 图7 UDP吞吐量性能对比 表2 不同方法运行时间对比 自组网中确保度量值的单向变化能够有效保护网络安全,而基于固定输入长度哈希函数f设计的单向序列能够确保状态值的单向变化。经嵌入式平台测试表明,基于MD5哈希函数中压缩函数f和ECDSA改进的BATMAN.adv协议以牺牲35%网络吞吐量为代价,避免了在黑洞攻击中网络吞吐量归零的情况。相比基于统计学的方法,本方法更适合于资源有限的嵌入式平台。尽管在目前测试条件下,所提出的安全策略对网络吞吐量有较大影响,但通过应用高性能集成电路或专用加密芯片有望改善这一问题。基于片上系统重新搭建测试平台,将单向序列的相关运算交由硬件实现,有望进一步减少对网络吞吐量的影响。2.2 基于单向序列的TQ数据段
2.3 安全性分析
3 实现与性能分析
4 结束语