APP下载

面向WSN 的双向认证与密钥协商方案设计*

2024-01-02胡现刚张学超

通信技术 2023年11期
关键词:会话私钥密钥

吴 昆,胡现刚,张学超

(1.中国人民解放军91977 部队,北京 100071;2.南部战区海军参谋部机要密码室,广东 湛江 524000;3.中国共产党中央军事委员会政法委员会,北京 100000)

0 引言

无线传感器网络中的大部分信息传输过程都是在相邻节点之间进行的,相邻节点之间的会话密钥安全会对整个网络的安全性产生极大的影响。由于WSN 的通信通常采用开放的无线传输方式,为保证网络中数据传输的安全,需要对通信双方的身份进行验证并进行安全的会话密钥协商[1]。

目前,WSN 认证的研究主要集中于基于对称密码体制和非对称密码体制两类,其中,对称密码方案主要利用密钥预分配和秘密共享机制实现[2-3]。文献[4]提出的基于多项式的(k,n)门限共享方案通过秘密产生及分发和秘密恢复过程实现k个参与者的认证与密钥管理,可以抵御k-1 个参与者的共谋攻击。文献[5]基于中国剩余定理设计了异步(t,m,n)组认证方案,具有较强的安全性和应用价值;Liu等人在此基础上提出了一种基于对称多项式的可验证成对WSN 组密钥分发与身份认证方案[6],实现了组密钥的便捷获取。然而,这种方式需要节点存储大量的密钥信息才能实现较好的网络连接性,而且网络的可扩展性比较差,密钥更新困难[7]。

早期的非对称密码方案主要是对传统网络协议的改进[8,9],TinyPK 方案[10]采用了低指数级RSA 算法,减少了算法的运算量,但是只实现了节点单向认证。Chang 等人[11]提出了一种基于椭圆曲线加密算法的无线传感节点认证协议,它基于证书的公钥体制实现,安全性较高,但是需要复杂的证书管理过程。为解决此类问题,文献[12]和文献[13]提出了基于身份的密码方案,使用节点身份标识等公开信息推导出公钥,方案基于双线性对实现,计算开销太大,且面临密钥托管的问题。文献[14]提出了高效和安全的基于身份的签名算法,其只需要进行加法群上的点乘操作,避免了复杂的双线性对运算,具有较高的执行效率。文献[15]将椭圆曲线和环签名相结合,实现节点匿名通信,并提供中间节点的认证。文献[16]利用区块链技术将网关节点、传感器节点和用户的公开身份信息存储在区块链账本中,保证了关键信息不会被窃取和更改。

此外,研究者还提出了基于地理位置信息的节点认证方案[17-18],避免了复杂的密码运算和时间同步,但是对节点部署位置等信息的精确性依赖较大,可能会影响网络的连通性。

考虑到WSN 节点的计算能力和存储一般比较有限,本身的资源也比较少[19],同时,由于网络面临的环境比较复杂,为保证网络的安全性,需要经常对密钥进行更新。结合现有的研究思想,面向WSN 安全需求和特点,本文提出了一种基于身份的节点认证与密钥协商方案,利用椭圆曲线点乘运算代替双线性运算,在较低的时间和资源消耗下实现了节点之间的双向认证与密钥协商和更新过程。

1 ID-AKA 方案设计

假设网络中除基站外所有节点的地位相同,基站的安全性和计算能力等都比较高,因此将基站作为整个网络系统的密钥管理中心(Key Generation Center,KGC),产生和管理节点的公私钥。方案共包括网络初始化、节点认证、会话密钥协商及密钥更新4 个阶段,下面分别对各阶段的流程进行介绍。

1.1 网络初始化

当节点被部署到目标区域后,系统开始执行网络初始化过程,将基站作为系统的KGC,负责管理网络中节点的初始化操作,与各节点一起合作产生节点的公私钥对。

首先基站产生网络的系统参数和自己的公私钥对,并将系统参数和自己的公钥信息公布给网络中的节点,具体过程如下文所述。

(1)选 取GF(2n) 上 的koblitz 曲 线E:y2+xy=x3+x2+1,任选E上的循环群G中的生成元P=(Px,Py)为公开的基点,其中Px,Py∈GF(2n)。

(2)定义抗碰撞的安全哈希函数。

H1:(0,1)*×G→{0,1}*;

H2:G×G×(0,1)*→{0,1}*;

H3:(0,1)*×(0,1)*×G×G×G→{0,1}*。

(3)随机选取s∈GF(2n)为基站的主密钥,秘密保存s,计算基站的公钥PK=sP,公开系统参数{n,E,P,PK,H1,H2,H3}。

当基站完成系统参数信息生成后,开始进行节点在基站上的注册过程。

(1)节点Ni首先将身份标识符IDi发送给基站;其次基站选择随机数ki∈GF(2n),计算Ki=kiP及si=ki+sH1(IDi,Ki),基站通过安全信道将{Ki,si}发送给节点Ni,之后基站记录节点的注册信息。

(2)节点Ni以si作为自己的私钥,计算PKi=Ki+H1(IDi,Ki)PK作为节点的公钥,公私钥的正确性可由PKi=Ki+H1(IDi,Ki)PK=siP来判定。

1.2 节点认证

完成网络初始化之后,节点开始与其相邻节点进行身份认证操作。相邻节点A 与B,其身份标识分别为IDa与IDb,那么A、B 执行以下操作进行相互认证:

(1)节点获取自己公私钥对信息后,执行身份认证之前的预计算过程。节点Ni随机选取ri∈GF(2n),并选择时间戳Ti,计算Ri=(ri+si)2P,fi=(ri+si)2(si+H2(Ri,Ki,Ti))-1。

(2)预计算之后,节点A 与B 分别向其邻居节点发送局部广播信息σa={IDa,Ta,Ra,fa,Ka}与σb={IDb,Tb,Rb,fb,Kb}。

1.3 密钥协商

相邻节点完成认证后,结合自身信息和接收到的信息执行会话密钥协商过程。

(1)节点A 计算Da=(ra+sa)2Rb,计算SK0=H3(IDa,IDb,Ra,Rb,Da),将SK0作为与节点B 的会话密钥,同时选取随机数i,并使用SK0计算发送给节点B,通过验证接收到的信息来验证会话密钥是否建立成功。其中IDa,IDb等的顺序可以根据ID 值的大小来判断。

(2)节点B 计算Db=(rb+sb)2Ra,并计算SK0=H3(IDa,IDb,Ra,Rb,Db),将SK0作为与节点A 的会话密钥,在收到节点A 的密钥建立询问之后,返回MACSK0(i+1,IDa,IDb),确认会话密钥建立。

1.4 密钥更新

当网络运行一段时间之后,需要对节点间的会话密钥进行更新,以避免密钥泄露造成的风险。由于节点之间已经进行过双向认证,因此进行密钥更新时,无须进行身份验证,可以通过之前的会话密钥进行密钥更新。执行过程如下文所述。

方案整体的流程如图1 所示,最后,当新节点加入网络时,只需要利用自己的身份标识在基站完成注册,之后利用自己的公私钥信息与需要进行通信的节点进行认证与密钥协商即可。因此,所提方案具有较强的网络扩展性。

图1 节点认证与密钥协商以及密钥更新流程

2 方案安全性分析

2.1 正确性分析

2.1.1 节点身份验证

节点A 与B 在接收到对方的认证信息σi={IDi,Ri,fi,Ki}后,可以通过计算判断是否成立来确定对方的身份是否可信,如式(1)所示。

所以,节点可以判断对方身份是否真实。

2.1.2 会话密钥协商

在会话密钥协商阶段,节点A 与节点B 分别收到对方的回复信息后,可以根据收到的信息及自己的私钥和选取的随机密钥,计算得到相同的会话密钥,如式(2)所示。

会话密钥中同时包含节点A 与节点B 选取的随机秘密值ra和rb,以及长期私钥sa和sb,计算过程基于ECDH 难题,保证了密钥信息的安全性。

2.2 安全属性分析

本文提出的方案可以实现通信节点双方的身份认证与密钥确认,同时还具有抵抗未知密钥共享攻击、完美前向安全、已知会话密钥安全、抗密钥泄露伪装等属性,下面将对所提方案的安全属性进行非形式化分析。

2.2.1 双向认证与密钥确认

双向认证是指通信双方可以通过信息传输确认对方的身份信息,密钥确认是指在双方计算出会话密钥之后,能够确认对方也得到了正确的会话密钥信息。本文方案在进行密钥协商之前进行了身份的双向认证过程,通过对包含对方公钥和私钥的信息进行匹配,判断节点的身份是否真实。以节点A 为例,从收到的σb={IDb,Rb,fb,Kb}中计算出节点B 的公钥PKb,之后结合数据中隐藏的私钥信息,对节点A 的身份进行验证。同时在会话密钥协商完成后,结合得到的会话密钥与MAC 函数计算实现了密钥确认。

2.2.2 抗未知密钥共享

抗未知密钥共享是指一个参与者A 不应被强迫与一个实体C 实现密钥协商,而实际上实体A却认为自己是在与参与者B 进行通信。由于本方案在会话密钥协商过程中加入了双方的身份信息<IDa,IDb>,并通过Hash 函数进行保护,因此通过计算对方公钥,可以对通信对方的身份信息进行预判断,并可以利用接收到的信息中隐含的私钥信息验证对方的身份。因此,本文所提方案有效地避免了未知密钥共享攻击。

2.2.3 完美前向安全性

如果节点A 或者B 及A 和B 的长期密钥sa与sb泄露,将不会影响旧的会话密钥的安全性。假设有攻击者获取到sa与sb,针对会话密钥协商阶段,可以结合历史交互信息<Ra,Rb>,计算得到sa2Rb和但是由于无法得到节点选取的随机密钥值<ra,rb>,因为私钥信息与临时秘密值是无关的,就无法进一步计算出Da=Db=(rb+sb)2Ra,因此就无法得到会话密钥SK0。针对会话密钥更新阶段,密钥更新过程与节点双方的私钥无关,因此无法通过节点私钥获取旧的会话密钥。

2.2.4 已知会话密钥安全

已知会话密钥安全是指,即使敌手获取了已知的旧的会话密钥,也不会影响当前会话的安全。在本文方案中,每次密钥协商的执行,临时秘密值<ra,rb>都是分别由参与节点A 与节点B 独立随机选取的,多个会话密钥值之间没有联系。在密钥更新过程中,攻击者获取旧的会话密钥SKi之后的攻击模型如图2 所示。

图2 已知会话密钥攻击模型

2.2.5 抗密钥泄露伪装

抗密钥泄露伪装是指如果一个参与方A 的长期私钥泄露,使得攻击者可以伪装成A,但是却不能伪装成其他通信对象B 与A 进行成功的密钥协商。在密钥协商过程中,攻击者获取节点A 的长期私钥sa之后意图伪装成B 的攻击模型如图3 所示。

图3 密钥泄露伪装攻击模型

由于攻击者无法获取节点B 的私钥sb,就无法伪造B 的密钥协商信息σb',因此只能通过窃听获取节点B 产生的σb={IDb,Rb,fb,Kb,Tb}并发送给A;节点A 接收到来自攻击者的σb后,发送密钥协商信息σb给攻击者,之后通过计算建立对应的会话密钥,并发送确认信息与攻击者进行密钥确认。一方面,由于攻击者无法得到节点B 的长期私钥sb和随机密钥rb,因此无法通过计算Db=(rb+sb)2Ra得到会话密钥SK0;另一方面,攻击者只拥有节点A 的长期私钥sa,但是无法得到其选取的随机密钥ra,同样无法通过计算Da=(ra+sa)2Rb来得到会话密钥SK0,因此就无法正确回复节点A 的密钥确认查询,因此无法成功与A 完成密钥协商过程。

2.3 方案性能分析

假定节点的计算开销只考虑进行点乘计算的能耗,节点信息传输的能耗只与传输信息的长度有关,则进行如下定义:

M为完成一次点乘运算的计算开销,l1为节点身份标识IDi的长度,l2为时间戳Ti的长度,令MAC函数值的长度为n,其中|G|为传输一个点值的开销,|G|=2n。那么方案整个过程的计算及通信开销如表1 所示。

表1 方案性能总结

将本方案与现有的WSN 密钥协商方案进行对比,结果表2 所示,其中计算开销与通信开销为单个节点的节点认证与密钥协商过程的消耗,且为方便计算其中的通信开销,不再考虑节点ID 以及时间戳等因素。

表2 方案性能对比

通过对比分析,虽然文献[20]的方案的各类开销比较少,但是在会话密钥建立过程中没有对对方的身份进行验证,因此在密钥更新时,需要重复进行会话密钥的协商。文献[20]和文献[22]的方案没有对会话密钥进行确认,此时如果通信的一方被攻击而没有得到正确的会话密钥,就无法解密后续的会话信息,那么得到会话密钥的通信方就会重复发送加密信息以得到反馈,从而使节点的资源被不断消耗,或者造成网络阻塞。因此,综合各方面考虑,本文方案具有较低的能耗。

在网络中,当需要与多个节点进行密钥协商时,那么节点只需要执行一次预运算过程,然后通过局部广播的方式向其他节点传输认证信息,节点的能耗可以进一步减少。

3 结语

由于经典的基于对称密钥的WSN 会话密钥协商方案安全性不强、网络扩展性差,传统的基于非对称密码体制的密钥协商方案资源消耗大、性能不高,本文以ECC 点乘算法为基础,针对WSN 节点的特点,设计了一种基于ECC 的ID-AKA 方案,实现了通信节点之间的双向认证、密钥协商和确认,并通过两次通信实现了节点会话密钥的更新。本文所提方案主要基于ECC 点乘算法来实现,较好地减少了密钥协商过程的能耗。安全分析表明,本方案可以满足WSN 节点密钥协商过程所需的几种典型的安全属性,能够较好地适用于WSN。

猜你喜欢

会话私钥密钥
探索企业创新密钥
比特币的安全性到底有多高
基于改进ECC 算法的网络信息私钥变换优化方法
密码系统中密钥的状态与保护*
一种基于虚拟私钥的OpenSSL与CSP交互方案
一种对称密钥的密钥管理方法及系统
基于ECC的智能家居密钥管理机制的实现
有意冒犯性言语的会话含义分析
汉语教材中的会话结构特征及其语用功能呈现——基于85个会话片段的个案研究
冲突语的会话分析研究