常丹婷
(上海海事大学信息工程学院,上海 201306)
随着面向服务、云计算、人工智能等信息技术在海上船舶领域的逐步应用,以船舶和岸上基站的联网结构为主导的船舶自组网(Internet Of Vessels,IOV)[1]正被学术界广泛认可,结合具有卫星定位功能和无线通信技术的船载智能信息服务,通过信息交换,在无线传感网上实现各节点信息的提取、监管与利用。
近年来,随着Ad Hoc的不断兴起,国内外学者对无线传感的安全机制进行了大量的研究,并不断拓展到海洋区域,逐步形成了船舶自组网。这些解决方案主要可以分为两种:一种使用对称密码系统[2],该系统需要通信双方长期共享一个密钥。另一个是非对称密码术的使用。Shamir在1984年首次提出了基于身份的密码学(Identity-Based Cryptography)[3]。在基于身份的密码体系中,用户公钥可以通过计算用户身份信息直接得出,用户私钥由受信任的第三方密钥生成中心(Private Key Generator,PKG)生成。2001年,Boneh使用双线性对提出了第一个基于身份的加密方案[4]。然而,基于证书的传统非对称密码系统的通信、计算和存储成本非常大,不适合于船舶自组网。基于阈值密码学的分布式 CA,如 TS-DSA[5]、TS-RSA[6],则需要大量交互。目前的研究重点更多的是在无线设备上应用椭圆曲线加密技术,由于其密钥长度短、数字签名快、计算数据量小,使得它特别适用于设备有限的计算和存储。
分析发现,在船舶自组网中发起攻击的首先进行邻居身份验证。考虑到船舶网络身份验证并不频繁,本文采用并优化了一种基于单向密钥链ID认证防御机制(One-way Key Chain ID Authentication,OKCIDA)[7],降低攻击者在任何时间段发起攻击的可能性,限制攻击者攻击的时间。OKCIDA的主要思想是将节点ID与单向密钥链关联,使得攻击节点发送或回复的邻居认证请求只有在新节点加入认证过程中才会得到合法节点的回复或确认。因此,由于攻击效果,狡猾的攻击者将选择在新节点进入阶段启动这两种类型的攻击。其次,为了阻止攻击节点在新节点加入阶段成功加入网络,基于椭圆曲线离散对数问题(Elliptic Curve Discrete Logarithm Problem,ECDLP)[8],与其他签名相比,使用短密钥可以满足相同的安全需求,从而减少网络数据传输,让网络中的协议可以应用于大型船舶中。参考Duan[9]等人提出的基于位置的邻居认证模式中构造参数思想,通过构造对称参数并组合OKCIDA,提出了一种基于双线性的认证签名方案(BASS,Bilinear Authentication Signature Scheme)。BASS不仅可以阻止攻击节点与旧节点建立有效邻居关系,而且解决了攻击节点与新节点建立有效邻居关系的问题[10]。以丢弃无效信息并阻止攻击节点加入网络。分析表明,该方案在邻居认证、消息签名、访问控制方面能够保证通信的安全性,而且无效节点剔除能够提高节点间的通信效率。最后,给出了BASS的基于双线性的安全证明和效率分析,结果表明该方案具有高性能及可扩展性。
设G1是阶为素数q的点的加法群,P是它的生成元。用G2表示一个q阶点的乘法群;映射e:G1×G1→G2,若满足如下的性质,则称群(G1,G2)是一对双线性群[11]:
(1)双线性:
(2)非退化:如果 q是G1的一个生成元,那么e(q,q)也是G2的一个生成元。
(3)计算性:∀U,V∈G1都可计算e(U,V)。
假设网络中的船舶节点在部署后没有移动,它们将随机分布在不同的探测区域。在实际的船联网中,当一些旧节点损坏或能量耗尽时,为了维护网络的连通性,需要将新的节点添加到网络中。也就是说,在船舶节点部署的时间存在差异,因此网络中有不同批次的节点。假定网络按部署批次递增方式来进行部署,即第m+1批次节点部署时,第m批次节点已经部署。标记Bam为部署批次第m批次的批次号,IDi为点i的主ID号,Idi是点i的标识,由Bam和IDi组成;
故在节点ID中引入Ba域[12],向每一批节点部署单向密钥链中对应的密钥,新节点需向旧节点提供认证密钥Knew,旧节点通过认证Kold=h(Knew)过滤新节点。
(1)单向密钥链。选取随机km∈Z*q(1≤m≤n-1)和 哈希h:{0,1}*→ Z*p,迭代执行h,生成如图1所示单向密钥链。如式(3)所示,给定km+1很容易推出km;反之给定km,无法计算出km+1。
图1 单项密钥链认证模型
(2)基于节点部署批次Bam预载单向密钥链中对应的密钥ki,使得(4)成立。如对于第1批节点预载共享密钥K(Ba1)=k1。
(3)K(Bam+1)认证。第m+1批新节点若被部署,新节点i向邻居j提供K(Bam+1)信息。如果j为旧节点,则验证公式(5)是否成立,其中Km表示最近通过认证的密钥。若等式成立,则表示有新节点部署到网络中,并通过OKCIDA检查;否则丢弃。
本节在胡、Duan等人提出的算法基础上[13],优化了一种基于双线性的单项密钥链防御认证机制,包括密钥的生成和分发、基于密钥的邻居认证方案和签名过滤。由于之前的算法只限制攻击者时间,当网络中添加新节点时,攻击节点可以尝试在监听新节点发送的身份验证密钥后加入网络。因此针对OKCIDA的不足,组合OKCIDA和邻居节点关系,基于椭圆曲线离散对数问题(ECDLP),并参考Duan等人提出的LBNA模式中对称参数构造思想[14],提出了一种基于双线性的邻居安全协议(BASS),以防御攻击。BASS包括预部署阶段和认证签名阶段。
表1 方案的符号标记表
在船舶网络被部署前,TA产生系统参数,使用的部分标记和定义如表1所示。
(1)生成系统公共参数Pamas(p,q,G,G1,G2,e,P)。
(2)系统选取安全参数k∈Z+,根据输入k产生系数q,生成q阶加法群G1、q阶乘法群G2和双线性映射ê:G1×G1→G2。选取生成元 P 于 G1中。
(3)选择 2个无碰撞的 Hash函数 H和 h:H:{0,1}*→G1*,h:{0,1}*→ G2*。从安全角度可把H、h看作2个随机预言式。
(4)选择一个随机数k∈Zp*作为主私钥。同时设置相应主公钥:
根据在群G里DLP的难解性,通过(P,Ppub)来计算k是不可行的。
(5)依照OKCIDA生成一个密钥链[15]。对于密钥km,使得m预载的共享批次密钥K((Bam)=km。m预载可公开参数为(p,q,G,G1,G2,e,Zp*,P,Ppub,H,h,K((Bam)Bamax)。
根据定义,邻居认证是指任何两个相邻节点验证彼此的网络成员资格的过程。这个过程是支持海上船舶通信中许多安全服务的基础[16]。
在部署后阶段,每个节点都需要发现和执行与相邻节点的相互认证,这是许多现有的传感器网络安全解决方案中的一个必备过程。图2勾画了该算法的邻居认证的交互过程。具体如下:
(1)对于任意的新节点i,邻居认证签名过程如下:
①选择两个随机数 λi,μi∈Z*p,计算 Xi和 Yi之后进一步按照(9)计算i的私钥IKi。
②对原始消息M产生加密消息Ci,节点i产生对原始消息的签名。节点i选取随机数αi∈Zq*并按照(10)(11)计算 θ,i和 ci。随后进一步按照(12)计算 σi,SIGi=<σi,ci>则为节点i在加密信息Ci上的数字签名。节点i向本地广播邻居发现消息M={IDi,Xi,Yi,Ti,K(Bam+1)}.其中 Ti=sekiP,seki为随机选择的且seki∈
(2)对于i的任意邻居节点j,接收消息M后处理如下:
①首先检查N的新鲜性,若不新鲜,则丢弃这条消息。
②检查(14)是否成立,如果成立则该消息过期,将其丢弃。
③检查部署批次号。如果(15)成立,则其可能是新部署节点,进行后续检查;否则丢弃;
④K(Bam+1)认证。若j为新节点,比较K(Bam+1)是否与共享批次密钥相同;若j为旧节点则查证是否成立。若通过认证,进行后续检查;否则丢弃。
(3)向 i回复消息 Mecho。
①选择随机数sekj∈并计算Tj=sekjP。计算与i的对密钥:
其中:
如果j为新节点,则Mecho={IDj,Xj,Yj,Tj,h(K(j,i),Ti,Tj,1)};如果 j为旧节点,则 Mecho={IDi,Xi,Yi,Tj,Nj,h(K(j,i),Ti,Tj,Nj,1)},Nj表示j拥有的邻居节点集合,并根据网络模型假设Nj≠Ø。
②当i收到j的回复消息Mecho,进行消息认证。计算与j的对密钥:
其中:
通过哈希值比较来判断:若j为新节点,则将h(K(i,j),Ti,Tj,1)与Mecho中的对应域比较,若相同,则进入后续处理,否则丢弃;若j为旧节点且Nj≠Ø,则将h(K(j,i),Ti,Tj,Nj,1)与Mecho中的对应域比较,后续操作同上。
(4)向j发送回复确认消息Mack
MaMack后,通过认证,将h(K( j, i),Ti,Tj,2)与 Mack中对应当j收到i的回复消息内容作比较。若相同,则与i的邻居认证成功,同时结束与i的对密钥建立。且可通过对密钥K(j,i)生成其他密钥。当i和j拥有的私钥IK为系统预载合法密钥时,可以保证:
成立。验证过程详见第3节。
定理1(验证公式):公式K(i,j)=K(j,i)是成立的。
图2 船舶节点邻居交互认证签名过程
(1)计算复杂度分析
本文方案所消耗的时间仅与代表性方案进行比较。如果设用户身份u表示长度为nu的二进制串,消息m表示为长度为nm的二进制串,整数求和计算时间为单位时间O(1),Cmul表示群元素的乘法运算时间,Cexpt表示指数运算时间,Cparing表示双线性对e的运算时间。与Duan方案相比,新方案密文中包含接收者的身份列表,确保接收方可以获得所需的信息和并解密密文;与SHAO J[17]方案相比,降低了系统输出参数;与LAL等人的方案相比,新增双线性运算,较大程度上降低了运算次数,并减短密文长度,这都降低了计算成本和传输带宽,使得效率较大提升。三种方案在相同标准下的量化详见表2。
(1)通信复杂度分析
本文并不通过考量计算效率来计算通信复杂度,而考虑通信的比特数。基于船联网中的通信开销通常由身份信息、签名、消息等组成。该方案中消息的大小为110B,签名的大小为56B。每个方案的通信复杂度如表3所示。
这个方案基于椭圆曲线密码体制ECDLP而设计,与传统的基于离散对数的DLP签名体制[18]相比,签名长度相对较短。通过表3可以看出,与其他方案的相比,本文方案的通信复杂度明显较优一些。
表3 4种方案的通信复杂度比较
本文提出了提出了一种基于双线性的认证签名方案(BASS),以丢弃无效信息并阻止攻击节点加入网络。与Duan方案相比,降低签名和验证的计算量,提高了计算效率;与SHAO J方案相比安全强度有了进一步提升;与LAL方案相比,本文的新方案减少了系统输出的参数,降低了风险性。该方案的优点是在邻居认证、消息签名、访问控制方面能够保证通信的安全性和更高的实用性,主要缺点在于依赖于双线性验证,计算时间消耗较多,在某些场景的计算中会有性能上的影响[19]。总而言之,安全与高效的平衡将是值得进一步研究的问题。