石家庄邮电职业技术学院 张 静 马红静 史永琳 何柳青
无线传感网络(WSNs)是物联网的重要组成部分,深入应用于智慧家居、智能农业、环境监测等领域。WSNs由大量传感器节点组成,这些传感器节点共同采集网络区域信息,并允许外部用户访问节点,获取实时数据进行操控。这些数据通过传感网或公共网络传输,且传感器节点大部分部署在无人看管环境中,这使得WSNs容易受到攻击。因此,提供安全的身份认证与密钥协商协议以验证用户身份并加密通信内容对保障网络安全至关重要。
身份认证是无线传感网络安全中的重点问题,一般分为节点身份认证和信息认证两种。身份认证是接入控制中心的核心环节,网络中心根据某种协议验证节点身份后,才能做出与节点身份对应的操作。
无线传感器节点入网到相关区域之后,要和周围节点或者汇聚节点或基站之间建立合法身份认证,为节点接入自组织网络提供准入“钥匙”。随着伪装节点被识破、新节点加入网络等情况的出现,需要将一些节点从列表中删除。其次,来自汇聚节点或者网关的控制信息,往往需要节点间的多跳转发,这就必须引入认证机制对控制信息发布源进行验证身份,确保信息的完整性、可靠性,同时,也为了防止“伪节点”对信息进行非法篡改。
一个典型的WSNs身份认证协议一般包含3个层面网络架构:一个或者多个网关,一组汇聚节点,以及大量的传感器节点。因为传感器节点受限于自身的计算能力和存储能力,而且,一般应用在安全需求较高的环境中,但是密钥和协议都需要轻量级的,能够抵抗外部攻击,并且希望具备前向安全性等特性。通常来说,WSNs环境的身份认证流程有以下几步:
(1)汇聚节点及传感器节点在网关注册,成为合法参与方。
(2)当网关想访问某传感器节点的实时数据时,需先向汇聚节点发起访问请求。
(3)传感器节点实时采集数据,完成之后发送给汇聚节点,汇聚节点汇总多个传感器节点数据后,打包发送给网关。
(4)如果请求的传感器节点处于本地网关覆盖中,网关对汇聚节点完成认证后,对传感器节点进行认证;如果访问的传感器节点处于其他网关覆盖范围,则向外部汇聚节点发起访问请求,双向认证后,由外部汇聚节点传达用户请求。
(5)本地网关和汇聚节点与传感器节点需要完成认证,认证结束后,进行密钥协商,确定一个会话密钥来保护数据传输过程。
图1 网络体系结构
通过认证过程,可以看出不管是注册、登录以及数据传输,都存在一定的风险。本文通过研究无线传感网中的身份认证方法,发现可以将椭圆加密算法应用到无线传感网认证过程中,从而保证在无线环境下的安全传送。跟之前胡认证过程比较可以看出,椭圆加密算法让原本明文发送的不安全性得到改善,并且可以阻挡重放攻击,协商秘钥加密发送信息也保证通信及用户的安全。
椭圆曲线密码学ECC属于非对称密码学的,其私钥的计算公式如下:
(1)私钥是一个随机数d,取值范围在1……n-1,其中n是子群的阶。
(2)公钥是点H=dG,G是子群的基点。
如果知道私钥d和椭圆曲线参数G,求公钥H是很容易的,但是只知道公钥H和椭圆曲线参数G,求解私钥d是非常困难的,需要解决离散对数难题,椭圆曲线的安全性保证有赖于此。
椭圆加密算法主体包括用户A和B,双方通信过程如下:
(1)节点根据椭圆曲线参数确定Ep(a,b),并在椭圆曲线上取一点,作为基点G。
(2)节点随机选择一个私有密钥k,并通过公式K=kG生成公开密钥K。
(3)节点将椭圆曲线相关信息Ep(a,b)以及K,G传给网关。
(4)网关接到信息后,将待传输信息编码到椭圆曲线Ep上的一点N,根据信息随机产生整数r。在这里编码方法很多,就不作讨论。
(5)网关计算点C1=N+rK;C2=rG。
(6)网关将C1、C2传给节点。
(7)节点接到信息后,进行C1-kC2的运算,结果可以得到N。
可以获得原始信息,是因为C1-kC2=N+rK-k(rG)=N+rKr(kG)=N,再对这个点N进行解密就可以得到原始发送数据。
整个加密过程中,如果有偷窥者S,他也只能看到Ep(a,b)、K、G、C1、C2,而通过K、G求k或通过C2、G求r都是相对困难的。因此,任何偷窥者都无法得到节点和网关间传送的任何信息。
传感器节点是通过汇聚节点,将数据传给网关的。因此在C正式加入网络之前,先要获得协调器节点认证密钥。
网络初始化过程如下:
(1)符合协议要求的汇聚节点连接网关,在此认为汇聚节点已经连接网关。
(2)汇聚节点主要通过网关获取对方的证书进行身份确认,身份确认后再进行密钥协商,这样双方就可以获得共享密钥对数据进行加密传送。
(3)汇聚节点会向周围发送信息,等待传感器节点的加入。(4)普通传感器节点根据汇聚节点信号强弱,选择信号强度高的,给汇聚节点发送包含节点自身ID号的信息。
(5)汇聚节点收到相关传感器节点发送的信息后,将这些信息加上自己的ID号加密发送给网关。
(6)网关收到信息后,生成该传感器节点的证书,并用这个节点之前预留的认证密钥加密后发送给汇聚节点。
(7)汇聚节点收到加密信息后,解密获得传感器节点的证书,并用预置胡密钥解密获得传感器节点的认证密钥,并用认证密钥加密汇聚节点的认证密钥发送给传感器节点。
(8)传感器节点C收到消息后用自身的认证密钥KC解密,从而获得自己的CERT和汇聚节点之间的认证密钥KB。
ECDHE密钥协商算法基于椭圆曲线密码系统(ECC)和DHE算法(Diffie-Hellman Ephemeral,短暂临时的DH算法),使用较短的密钥长度可提供与RSA或DH算法同等的安全等级,密钥长度有160~256位比特的椭圆曲线算法与密钥长度1024~3072位比特的非ECC算法安全强度相同。
传感器节点C获得了网关和汇聚节点的认证密钥,网络正常运行,节点和网关之间进行ECDHE密钥协商之前双方要有共同的共享参数,即必须选择相同的椭圆曲线方程、大素数p、生成源G。
密钥协商过程如下:
(1)传感器节点C随机产生一个数Rc,并用KC加密,生成消息(Rc||CERT(C))KC,之后选择一个比椭圆曲线阶小的随机数rc作为私钥,计算公钥Hc=rcG,将{Hc¦(Rc||CERT(C))KC}发送给汇聚节点。
(2)汇聚节点B收到后,首先用KC解密,解密后根据证书的正确与否,验证确定消息的完整性。如果解密不成功,则说明传感器节点证书失效或者无效,中止通信;若消息完整,则进一步核验该节点的身份是否合法,如有ID号合法,则保存该数据包。至此,B就获得了C的公钥。
然后,B也选择一个比椭圆曲线阶小的随机数rb作为私钥,计算公钥HB=rbG,并将{HB¦(Rc'||CERT(B))KB}发送给节点C。
(3)C收到后计算共享密钥S=rcHB。进一步得到S=rcHB=rcrbG。
(4)B收到后计算共享密钥S′=rbHc。进一步得到S′=rbHc=rbrcG。
(5)可以看出,S=S′,密钥协商过程完成。
(1)在认证协议中,所有信息都会进行加密处理,传输过程中全程保证通信双方的信息机密性和完整性。
(2)节点发送的信息中采用随机数作为私钥,可以保证每次通信使用的共享密钥都是不同的。攻击者即使破解获取了私钥,也只是影响本次通信,不会获取之前通信的内容,这样的特征保证了前向安全性。而且更安全的是,协商出会话密钥后,双方私钥都可丢弃,进一步提升了安全性,
(3)节点和网关密钥协商过程中,用到的是随机数作为私钥,如果两次或多次收到的随机数完全一致,便可判断收到的数据的为伪造数据,这样可以防止重放攻击。
(4)传感器网络中常见的攻击是:一是“伪节点”攻击;二是截取信息,分析数据,获取重要信息。但是本认证协议采用的是基于椭圆曲线的加密算法,密钥位数相同的情况下,安全性优于RSA算法。更好的保证系统安全,即使公钥泄漏,攻击者也无法获取私钥,更无法获取共享密钥,安全性大大提高了。
为解决无线传感网中身份认证的问题,本文提出了一个基于ECC的加密认证协议ECDHE,对传感网的公私钥密码机制进行了初步研究,通过协议提高了节点的安全性,但是仍旧有一些没有解决的难题,比如,能否将加密算法进一步简化,减轻对节点的计算要求,使协议更加的完善简约,是下一步工作需要努力的方向。