APP下载

低开销的NB-IoT 节点群组身份安全认证协议

2022-01-12常相茂占俊王志伟

通信学报 2021年12期
关键词:私钥公钥群组

常相茂,占俊,王志伟

(1.南京航空航天大学计算机科学与技术学院,江苏 南京 211106;2.南京邮电大学计算机学院、软件学院、网络空间安全学院,江苏 南京 210023)

1 引言

随着物联网应用的普及和发展,许多由通信引起的问题逐渐凸显出来,例如应用场景分散、行业标准过多以及通信能耗过高等。为解决这些问题,2016 年,全球第三代合作伙伴计划(3GPP,3rd generation partnership project)委员会克服各种技术困难最终制定了窄带物联网(NB-IoT,narrowband Internet of things)的核心标准[1]。同传统的无线物联网通信技术相比,NB-IoT 具有大容量、广覆盖、低功耗和低成本特点[2],这为部署在长期难以达到的地方且传输数据量较少的物联网设备提供了一种更好的网络接入方式,已经被广泛用于智能停车[3]、智能抄表[4]和智能医院[5]等场景。随着NB-IoT 技术逐渐融入人们的生活,越来越多的NB-IoT 节点设备连接到网络,来满足用户多样化的需求。但是由于设备资源受限、位置暴露,这些NB-IoT 节点极易遭受攻击者的攻击,尤其是那些用于收集和传输用户敏感数据的设备。一旦这些设备遭受攻击,就会导致用户敏感数据遭到泄露,造成不可挽回的损失。因此,在访问认证过程和数据传输过程中,对用户身份隐私和传输数据安全的保障至关重要。

NB-IoT 网络消耗大约180 kHz 的带宽,上下行峰值速率理论上不会超过250 kbit/s[2],因此当大规模的NB-IoT 节点激活向核心服务器申请接入认证时,大量的信令请求会增加网络的通信压力,甚至引起通信堵塞,从而影响NB-IoT 应用程序的服务质量,降低系统运行效率。随机时延机制是一种常用的避免数据冲突和网络拥塞的方法,即当NB-IoT节点被唤醒后,各自随机延迟一段时间再进行接入以免并发通信造成冲突,然而该机制存在如下2 个方面的弊端:一是该机制并没有减少所需认证消息的数量,当存在大量NB-IoT 节点需要与服务器进行认证时(每个NB-IoT 小区可达5 万连接数[1]),需要非常大的时延来避免冲突;二是该机制无法确保避免冲突,依然存在2 个或多个节点延迟相同时间而发生并发冲突的情况。为提高大规模节点接入认证时的效率、降低通信开销,许多基于群组的聚合认证协议被提出[6]。将同一区域内的节点根据功能或其他相似特性划分为一组,认证时服务器对群组的身份进行验证,从而一次性完成对群组中所有成员身份的认证。然而,现有协议中群组认证请求的数据大小会随群组中成员数量的增加而变大,当规模庞大的NB-IoT 节点群组申请认证时,仍有可能会引起通信堵塞。

本文基于Schnorr聚合签名技术实现NB-IoT节点群组的聚合签名,将群组的认证请求大小设置为固定值,不会随着群组中成员数量的变化而变化,同时,为了保障数据通信的安全,采用基于中国剩余定理的密钥分发管理机制,服务器能以固定的信息量完成对群组内成员会话密钥信息的分发,因此服务器回复消息是一个定值。将群组和服务器认证时的通信量固定为确定的大小,从而有效减少带宽消耗,降低堵塞风险。性能分析结果表明,与现有身份安全认证协议相比,本文所提协议在传输开销和带宽消耗方面表现优异。本文有以下两点贡献。

1) 本文基于Schnorr聚合签名和中国剩余定理提出了一种新型的群组身份安全认证协议,可以实现服务器和NB-IoT 节点的双向认证,认证产生的通信量不随群组规模的增大而增加,解决大规模NB-IoT 节点安全认证时效率低下和占用大量带宽资源的问题。

2) 本文使用协议形式化分析工具Scyther 对协议的安全性进行仿真分析,验证了所提协议能够提供可靠的安全性能,可抵御重放攻击、中间人攻击等常见协议攻击模式。

2 相关工作

NB-IoT 是一种蜂窝网络,在传统的蜂窝网络LTE-A(long term evolution-advanced)中,基于群组的身份安全认证协议主要可分为两类。在第一类身份认证协议中,设备组由属于同一归属网络中的用户设备(UE,user equipment)或者机器类型通信设备(MTCD,machine type communication device)组成。当设备组中第一个成员移动进入服务网络的覆盖范围后,该成员在执行认证过程中会将整个群组的相关信息发送给网络。Chen 等[6]首先提出了该类型的群组身份安全认证协议,用于大规模设备从归属网络漫游到服务网络的访问控制,随后其他研究人员也提出了一些类似的协议[7-10]。在该类方案中,服务网络对第一个群组设备进行认证后,可以简化同其他成员的认证过程,从而减少服务网络和归属网络之间的通信开销。但是,群组中每个设备仍然需要单独向服务网络发起访问认证请求,这依旧会导致大量的信令开销,无法避免通信堵塞。

在第二类身份认证协议中,设备群组会选择一个设备作为群组组长Leader,由Leader 聚合并发送群组成员的认证请求。当设备群组进行访问身份认证时,Leader 将收集群组中所有成员的身份认证请求并聚合为一条群组身份认证请求,而服务端只需要验证Leader 发送的聚合身份认证请求就可以验证设备组中所有成员的身份。Lai 等[11]提出了一种基于聚合消息认证码的轻量级群组访问认证协议。之后,Cao 等[12]提出了一种利用双线性配对聚合签名技术的群组身份认证协议。Li 等[13]采用(t,m,n)密钥共享机制和Diffie-Hellman 密钥交换协议提出了一种具有动态更新策略的群组身份安全认证协议。为了解决公钥体系中的密钥托管问题,Lai 等[14]提出了一种基于无证书聚合签名技术的聚合认证协议,来提高大规模MTCD 访问3GPP 网络的效率和安全性。但是,无证书聚合签名技术中所使用的双线性配对操作会导致大量的计算负载,并不适用于资源受限的物联网设备。为了降低计算负载,Lai等[15]提出了一种仅使用哈希函数和异或操作的轻量级聚合身份认证机制。Ren 等[16]提出了一种基于物理不可克隆函数(PUF,physical unclonable function)的双向认证。PUF 用于生成共享根密钥,群组Leader 负责聚合和中转认证信息,通过激活海量设备的附着请求消息达到降低信令和通信开销的目的。与之不同,本文通过Schnorr 聚合签名和中国剩余定理减少认证消息来降低通信开销。

在NB-IoT 网络中,Cao 等[17]使用不基于双线性配对的无证书签密技术提出了一种群组聚合访问认证协议,以实现大规模NB-IoT 设备的快速认证和数据传输。Zhang 等[18]提出了一种基于无证书签名技术的多方快速认证机制,该机制实现了NB-IoT网络中多个UE以及认证服务器之间的快速认证。为了抵御量子攻击的威胁,Yu 等[19-20]提出了一种基于格加密的抗量子攻击聚合身份认证协议,但是其计算负载较高,并不适于资源受限的NB-IoT设备。尽管这些协议通过聚合认证请求减少了认证期间的通信数据量,但是聚合请求的大小仍然受组中成员数量的影响,当设备组中成员数量很大时,仍然存在通信阻塞的风险。

Schnorr 签名算法因为可靠的安全性、可聚合的特点,已经被广泛应用于各种安全认证领域。Maxwell 等[21]基于Schnorr 算法提出了一种多重签名算法Musig,用于提高比特币中合法性验证的效率,增强用户隐私保护。Ni 等[22]使用Schnorr算法提出了一种支持5G 网络切片和雾计算的匿名身份安全认证协议,但是协议建立在网络资源充裕的情况下,并不适于网络资源有限的NB-IoT网络。中国剩余定理可以将分发的信息进行聚合,实现轻量化的组密钥管理机制,Vijayakumar 等[23]基于此提出了一种轻量化的、集中式的群组密钥管理机制,用于多播安全通信,之后在无线传感网络、车联网等物联网环境中也得到了进一步的应用[24-26]。但是这些协议只考虑成员节点数量有限的情况,并未考虑大规模数量节点情况对网络可能造成的巨大压力。

3 预备知识

3.1 椭圆曲线离散对数难题

假设p是一个大素数,E是有限域Fp上的椭圆曲线,G∈E(Fp)是椭圆曲线上的一个q阶点。椭圆曲线离散对数难题是给定Q∈E(Fp)和G,求解整数使等式Q=kG成立。可以证明给定G和k求解Q非常容易,但是给定Q和G求解k非常困难,目前还没有一个有效的方法可以解决该难题[27]。

3.2 Schnorr 聚合签名

Schnorr 签名算法最初由德国的数学家、密码学家Schnorr[28]提出,在性能、安全、体积、扩展性等诸多方面都优于椭圆曲线数字签名算法。Schnorr签名算法的安全性可以通过随机预言模型进行验证[29],而且由于算法是线性的,因此可以进行聚合签名或者对大规模的签名进行一次性的验证,有效节省空间、提高效率。

Schnorr 签名的生成过程为给定大素数p、椭圆曲线E(Fp)和椭圆曲线上的q阶点G∈E(Fp),选择随机数并计算R=rG。使用私钥对消息m进行签名,Schnorr 签名为(R,s),其中,s如式(1)所示[30]。

使用公钥X=xG对消息m签名有效性的验证如式(2)所示。

Schnorr 的聚合签名是使用多个私钥对消息进行聚合签名,验证时使用由多个私钥派生出的公共公钥进行验证。例如使用私钥对消息m聚合签名,选择并分别计算s1,s2,公共公钥为X=(x1+x2)G,聚合签名(R,s)为

聚合签名的验证使用公共公钥,验证过程与单个签名的验证相同,如式(2)所示。

3.3 中国剩余定理

中国剩余定理又称孙子定理,是数论中的一个重要定理,该定理给出了一元线性同余方程组的有解判定条件和有解情况下的解的具体形式。给定两两互质的正整数m1,m2,…,mn和任意正整数a1,a2,…,ak,如式(4)所示的同余方程组有解,且在模下有唯一解。

对所有i=1,2,…,n,计算M i=M/mi和模乘逆满足式(5)。

方程组的唯一解如式(6)所示。

如果将mi看作节点私钥,a i看作需要分发的信息,那么服务器只需要求解并广播x就可以完成对n条信息a1,a2,…,an的分发,节点可以使用私钥mi通过求模运算得到消息ai≡x(modmi)。

4 系统模型

本文讨论的NB-IoT 网络系统结构如图1 所示。同一区域内的NB-IoT 节点根据功能或其他相似特性划分为一组,同一节点群组中成员属于同一应用服务器,会根据节点计算能力、电池容量等情况选择一个节点作为群组Leader。群组中的NB-IoT 节点会在同一时刻唤起,通过NB-IoT 网络与应用服务器进行通信。节点发送或接收数据前,服务器需要对节点的身份进行安全认证。服务器会生成认证过程中所使用的所有密钥,同时扮演密钥生成中心的角色。

图1 NB-IoT 网络系统结构

在本文所讨论的系统中,NB-IoT 节点与服务器之间的通信是不安全的,外部攻击者可以控制、截取或者篡改NB-IoT节点与服务器的无线通信消息。除此之外,攻击者还可以模仿伪装成应用服务器或者NB-IoT 节点,进行重放攻击、中间人攻击等攻击,实现上传错误数据或者盗取隐私数据。由于NB-IoT 节点数量巨大,同时与服务器进行通信时,大量的信令可能会导致网络负担过重或通信堵塞。为了同时满足NB-IoT 网络对认证效率、安全性和通信量限制的要求,本文所提协议需要满足以下几点要求。

1) 双向认证。当节点群组与服务器建立连接时,服务器需要完成对节点群组中所有节点的身份认证。除此之外,节点群组中的所有成员也能够对服务器的身份进行安全认证。

2) 会话密钥建立。在认证的过程中,能够对用于后续服务器与节点通信的会话密钥进行更新,以保护后续传输数据的安全性。

3) 对常见协议攻击的抗性。协议需要能够抵御常见的一些攻击,例如重放攻击、中间人攻击、伪装攻击等。

4) 高效性。服务器能够一次性完成对这个节点群组成员的身份认证,同时应降低通信和计算负载,来避免通信堵塞。

5 安全认证协议

本节所使用的符号定义如表1 所示。

表1 符号定义

5.1 初始化阶段

在初始化阶段,服务器根据所选择的安全等级参数,生成认证所需的各种参数以及服务器自身的密钥。服务器首先决定安全等级参数k,并选择一个大素数p> 2k。然后在有限域Fp上选择椭圆曲线E(Fp),E(Fp)上的q阶点G∈E(Fp)和哈希函数最后选择随机数作为自身的私钥,计算公钥Pc=xc G,将{q,E(Fp),G,hash(),Pc}作为系统参数公布并保密xc。

5.2 注册阶段

在注册阶段,节点UEi向服务器进行注册获得密钥以及所在群组的相关参数。

假设群组由n个节点组成,UEi向服务器发送自身IDi进行注册,服务器进行以下步骤。

5.3 双向认证阶段

在双向认证阶段,群组中节点完成同服务器的双向认证以及会话密钥分发。当群组唤醒准备同服务器发送或接收数据时,所有节点对当前时间戳进行签名并由群组Leader 聚合发送给服务器进行认证,服务器根据聚合签名的有效性可以对整个群组进行一次性认证。由于群组内节点数量有限,在群组Leader 聚合每个节点的签名时,Leader 可以给每个节点分配不同的子载波避免冲突和信道阻塞。

为了保证后续通信的安全,服务器为每个节点选择随机数用于生成会话密钥。服务器利用中国剩余定理加密保护随机数,签名后发送给群组Leader,群组Leader 再分发给节点。在验证了服务器签名的有效性后,节点使用私钥解密得到随机数,生成会话密钥。

5) 服务器接收到群组的认证请求后,执行以下步骤。

①根据自己的当前时刻与Tu的差异检查时间戳Tu的时效性。

5.4 组密钥更新阶段

群组中的节点可能因为应用需求改变或发生故障等原因退出群组,附近节点也可能因为应用需求变化使唤醒时间变动,从而需要加入群组。在本文协议中,组密钥可用于生成群组公共公钥、会话密钥以及认证服务器,还可用于在组内建立安全通信和加密服务器发送给群组的分发消息。因此,当组成员发生变动时,应及时更新组密钥,以避免可能存在的安全隐患,保证群组认证和通信的安全。

5.4.1 组成员离开

3) UEi计算得到更新后的组密钥。

5.4.2 新成员加入

3) UEi计算得到更新后的组密钥。

6 安全评估

6.1 安全分析

1) 双向认证和会话密钥建立。服务器能够使用群组的公共公钥对群组的聚合认证请求进行验证,从而完成对整个群组节点的身份认证。因为公共公钥是由组密钥和群组成员的公钥以非线性方式生成的,所以只有群组内的所有成员一起才能够生成有效的群组聚合请求。群组成员能够使用服务器的公钥对服务器的签名进行验证,从而验证服务器的身份,实现双向认证。群组成员使用私钥只能解密分发给自己的随机数,并不能获得其他分发信息的有关内容,使用解密得到的随机数生成会话密钥,实现了会话密钥的建立并保证了会话密钥的机密性。

2) 重放攻击抗性。在协议认证过程中,使用了时间戳Tu和Tc,并用签名保护了消息的完整性,因此攻击者即使执行重放攻击,也会因为时间戳的时效性失效而攻击失败。

3) 中间人攻击抗性。因为椭圆曲线离散对数难题的求解困难性,认证过程中的随机数ri,rc的安全性可以得到保证。攻击者并不了解群组成员的私钥,所以也不能够伪造群组认证消息。又因为攻击者不知道群组密钥,所以也不能够伪造服务器的回复消息。中国剩余定理保护了分发随机数的安全性,并建立了群组成员和服务器之间的会话密钥,防止后续通信被窃听和篡改的可能。

4) 认证信令堵塞避免。在所提协议中,大规模NB-IoT 节点的认证请求会由群组Leader 收集聚合为群组聚合认证请求,再发送给服务器进行身份认证,大大减少了信令数量并简化了认证流程。同时,使用基于中国剩余定理的方式分发密钥信息,有效减少了服务器回复的数据量和带宽消耗。

5) 内部人攻击抗性。①服务器侧:服务器在注册阶段结束以后,会删除UEi的私钥xi,仅保存vari用于后续会话密钥信息的分发。因此,服务器侧的内部攻击者也不能从数据库中盗取到节点的私钥从而伪装成节点进行恶意攻击。②设备群组内部:由于聚合签名和群组公共公钥的生成都使用了非线性的方式,因此群组内的攻击者在不了解其他成员私钥的情况下不能够独自或排除某些成员生成合法的聚合签名。会话密钥信息必须使用对应节点的私钥才能解密得到,而群组内部攻击者在没有得到其他成员私钥的情况下,只使用自身的私钥和群组组密钥,不能够生成其他节点的会话密钥从而伪装成组内其他节点或窃取到其他节点发送的数据。

6.2 协议安全验证工具仿真

本节使用协议形式化分析工具Scyther[25]对本文所提协议进行安全性仿真分析。Scyther 工具可以对协议进行形式化的描述,仿真验证协议的机密性和可认证性是否存在安全风险,支持无限会话轮数的分析,除了支持Dolev-Yao 模型和强安全模型外,还支持自定义安全模型,在搜索攻击、安全证明方面非常有用。Scyther 工具采用多种形式的身份验证声明,例如Nisynch、Niagree、Alive 和Weakagree 等来检测重放攻击、中间人攻击等安全攻击,使用SKR 声明来验证协议执行过程中生成密钥的机密性。

本文主要分析以下3 个角色:群组节点UEi、群组Leader 和服务器,在工具中分别表示为UEi、Leader 和Server。在本文所提协议中,初始化阶段、注册阶段和组密钥更新阶段可以认为是安全的,因此,仅考虑双向认证阶段。采用Dolev-Yao 攻击者模型对协议进行安全分析。在该模型中,攻击者被认为可以完全控制整个网络中的通信并执行一系列的攻击,包括窃听、拦截、伪造消息等。将本文所提协议在Scyther 工具中建模,并指定声明协议的安全属性,如图2 所示。从图2 中可以看出,经过Scyther 工具的仿真分析,并未发现可行的安全攻击,说明协议具有可靠的安全性。

图2 Scyther 工具的正式安全分析结果

7 性能分析

本节从传输开销、带宽消耗和计算负载等方面分析本文所提协议的性能表现,并同其他现有的群组认证协议进行比较,包括GAKA[6]、DGBAKA[7]、MTCAKA[8]、SEAKA[9]、EGAKA[10]、GBAAM[12]、GRAKA[13]、LGTH[11]和FADTS[17]。本节所使用的符号定义如表2 所示。

表2 符号定义

7.1 传输开销

由于传输一次的功耗开销与距离、数据量等多种因素相关,为了便于分析对比本文所提协议和其他现有协议的传输开销,假设NB-IoT 节点UEi与服务器进行一次传输的开销为一个单位,UEi与群组内节点、Leader 进行一次传输的开销为a个单位,UEi与NB-IoT 网络的中eNB 进行一次传输的开销为b个单位。由于群组中UEi之间的距离一般不超过100 m,因此群组间的传输开销远小于一个单位。通常,UEi与eNB 之间的传输开销会因为UEi的部署情况而不同,但是eNB 与服务器之间的通信因为主要通过有线信道进行传输,因此传输开销可以认为是固定的。根据文献[17],对传输开销进行简化分析,令a=0.01,b=0.8。不同协议之间的传输开销对比如表3 和图3所示。从表3 和图3 中可以发现,本文所提协议的传输开销与FADTS 协议相当,远小于其他现有协议。

表3 不同协议的传输开销对比

图3 传输开销对比

7.2 带宽消耗

通过对比传输的数据量大小,来分析对比本文所提协议和其他现有协议的带宽消耗,不失一般性,不同参数的带宽消耗如表4 所示。

表4 不同参数的带宽消耗

根据所有消息的大小,现有协议的带宽消耗对比如表5 所示。图4 显示了在不同分组数量下,不同协议之间总的带宽消耗对比。从图4中可以发现,本文所提协议的带宽消耗远小于其他协议。

表5 不同协议的带宽消耗对比

图4 总带宽消耗对比

7.3 计算负载

协议认证过程中的计算负载主要考虑以下3 种加密操作,哈希运算th、点乘运算tm和双线性配对操作tp。这3 种加密操作的计算负载时间如表6 所示,其中数据使用芯片为NuvoTon N32905U1DN(ARM926EJ-S@200 MHz)的ARM9节点测试得到,服务器数据由配置为 Intel i3-4160@3.60 GHz 的Dell 个人电脑测试得到。图5显示了节点数量和完成认证过程中所需的总计算负载之间的关系。表7 显示了不同协议计算负载对比。从图5 中可以发现,本文所提方案计算负载小于FADTS、SEAKA 和GRAKA,高于EGAKA,由于使用了公钥机制来提高安全性,因此远高于其他仅使用哈希函数的方案。

表6 加密操作所需时间

表7 不同协议计算负载对比

图5 计算负载对比

8 结束语

针对NB-IoT 网络中节点大规模接入认证时的通信堵塞问题,本文提出了一种基于Schnorr 聚合签名和中国剩余定理的新型群组身份安全认证协议。该协议能够一次性对群组中的节点进行身份认证,还有效减少了认证过程中的带宽消耗。协议使用基于Schnorr 聚合签名的方式生成群组聚合身份认证请求,将聚合请求的大小固定为确定值。协议又采用了基于中国剩余定理的密钥分发方式,使服务器能够以固定大小的回复信息完成对群组中所有节点密钥的分发,将群组与服务器之间的认证通信数据量确定为一固定值,不会随群组中节点的数量而变化,有效减少了认证过程中的带宽消耗。性能分析表明,与其他现有协议相比,所提协议在传输开销和带宽消耗方面性能优异。Scyther 工具对所提协议进行了形式化的安全分析,仿真结果表明,所提协议具有可靠的安全性能。

猜你喜欢

私钥公钥群组
清扫机器人避障系统区块链私钥分片存储方法
比特币的安全性到底有多高
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
Boids算法在Unity3D开发平台中模拟生物群组行为中的应用研究
神奇的公钥密码
一种基于虚拟私钥的OpenSSL与CSP交互方案
国密SM2密码算法的C语言实现
基于身份的聚合签名体制研究
一种公开密钥RSA算法的实现