工控物联网认证协议与密钥协商算法研究
扫描二维码
随时随地手机看文章
引言
工控物联网广泛应用于包括水文监测、数字化油田、智能电网、环境监控、矿井监测、智能建筑、智能交通等在内的众多领域,使得工业自动化控制进入了一个崭新的时代。但是,随着物联网在工业控制中的深入应用,对工控终端设备的身份假冒、数据泄露、越权操作等信息安全问题也接踵而至。为了保证工控物联网环境的安全运行,对终端设备的认证及信息保护必不可少,这也成为工控物联网发展中最重要的一环。
物联网认证是物联网安全中的重要环节,它是安全系统中的第一道屏障,在物联网中有着十分重要的作用。物联网认证协议提供设备与设备、设备与服务器之间完善可靠的认证方式,只有在认证双方认证通过之后才可进行数据传输等操作。所有的认证机制或多或少都要使用密钥,为了保证认证过程中的信道安全,要对报文进行加密,密钥协商算法就可以很好地解决这个问题。
低成本工控物联网的终端具有资源有限、低能耗等特点,因此本文采用轻量级的物联网认证协议。现有的轻量级认证协议包括Hash-Lock、随机Hash-Lock和Hash链等协议。这些协议一方面存在着各种安全性的缺陷,易受多种方式的攻击;另一方面,大多应用于简单的RFID认证,对工控物联网复杂数据传输,能否满足认证需要也是个巨大挑战。在现有的密钥管理算法中,McCullagh-Barreto密钥协商算法在算法安全性和运行效率两方面都符合要求,但该算法不能抵抗密钥泄露伪装攻击,因此,本文在该算法的基础上进行了改进,使其具有抵抗密钥泄露伪装攻击的能力,称为改进的McCullagh-Barreto密钥协商算法。
1基于工控物联网的轻量级双向认证协议
为了解决现有认证协议存在的安全隐私保护弱点和性能不高等问题,本文提出基于工控物联网的轻量级双向认证协议(Light-weightMutualAuthenticationProtocolBasedonloTofIndustrialControl)o
该协议所采用的前提如下:
每个终端具有一个独特的启动器,产生和维护标签的安全参数;
每个终端和服务器都具有一个伪随机数位发生器;
节点能够运行Hash函数h和带密钥Hash函数f,且内存记录安全可靠;
服务器和服务器之间的信道是安全的;
服务器和终端之间的信道是不安全的,容易被窃听或篡改。
下面对协议中所用到的符号进行定义:
N:系统中终端的数目;
T:第i个终端(1WiWN);
ID,:第i个终端的标识符;
h:Hash函数,力:{0,1}'—{0,1}‘;
Di:终端的秘密信息;
Hi:第i个终端标识符的哈希值;
f:带密钥Hash函数』:{0,1}奴{0,1}—{0,1}';
l:终端标识符的比特长度;
Xnew:X更新后的值;
X0ld:X更新前的值;
r:l比特的随机串;
©:异或操作符;
-:替换操作符;
<<:循环左移操作符;
>>:循环右移操作符;
eR:随机选择操作符。
基于工控物联网的轻量级双向认证协议分为初始化和认证两个阶段。
1.1初始化阶段
在认证过程运行之前,初始化过程执行系统初始化的步骤有两步:第一步是在协议中为每个终端Ti分配一个长度为l比特的标识符ID,,然后将ID,存储并锁定在终端内存中;第二步是计算Hi=h(ID),在数据库中为每个终端T存储一条记录[(IDiHi)new,(IDiHi)old,Di],第1对值是为终端最新分配的id,和Hi,第2对是之前分配的值,Di是终端的详细秘密信息。最初的(IDiHi)new是初始化分配的ID,和Hi,(IDi,Hi)old设置为空。
1.2认证阶段
图1所示是协议认证阶段的流程图。图中,网关用于生成一个随机比特串r1er{0,1}1,并发送给终端Ti。终端Ti收到
『1后,会生成一个随机比特串rer{0,1}1作为会话的临时私钥,并计算Hi=Ml=ID,.5n,Ml瓦(r5矽,然后发送响
应消息HMM给网关服务器,网关服务器传递消息H"W2,r\给服务器。服务器收到终端的响应后,将进行以下步骤:
服务器使用H检索数据库,如果在数据库中没有找到H,就发送出错信息给网关,并终止会话;若找到Hi=H,new或Hi=Hiold,则计算r-肱5ID,new或r-肱5IDtola,然后计
?
算并判断泌习Mr5矽。
若泌=5矽,则验证通过,同时计算MlID,(r&Z/2),然后发送D,和M给网关。
更新数据库中响应终端的记录,同时令IDiold—ID,,Hiold—H,,ID,*w-(ID》Z/4)5(H,》Z/4)5r,以,岫一力(1%,叫);否则发送出错信息给网关服务器,终止会话。
网关服务器获取终端的秘密信息D,后,将传递认证消息M给终端,然后由终端Ti计算并判断ID,=M,53&Z/2)。如果不相等,终端就保持当前存储的ID,不变;若相等,则验证通过,同时更新当前存储的ID,令:
ID,--(ID,-&14)5(Hi》1/4)5r5r
本文协议的安全性取决于ID,、『1和r2这3个参数的长度规格。一般来说,通过增加和r2这3个参数的长度,
,貌联网集可靠传输ReliableTransmission
可明显提高本文协议的安全性能,满足终端更高的安全要求。2改进的McCullagh-Barreto密钥协商算法
McCullagh-Barreto算法是一个高效的认证密钥协商算法,可以应用于工控物联网环境,然而Xie[5]等人指出该算法不能抵抗密钥泄露伪装攻击KCIA(KeyCompromiseImpersonationAttack),因此本文在该算法基础上进行了改进,使其具有抗密钥泄露伪装攻击的能力,称为改进的McCullagh-Barreto密钥协商算法。
改进的McCullagh-Barreto密钥协商算法分为初始化、密钥提取和密钥协商三个阶段。
2.1初始化
给定安全参数k,算法随机选取s∈Zq*,P,Q∈G1,计算P0=sP。设置系统公开参数为<G1,G2,e,q,P,Q,P0,H1,H2,H3>。其中,三个hash函数为H1:{0,1}*→Zq*,H2:{0,1}*→Zq*,H3:{0,1}*→{0,1}*。s为系统主密钥,由密钥生成中心KGC保管。
2.2密钥提取
采用SakaiR和KasaharaM的密钥构造方法。KGC验证参与实体Pi在线公开的身份标识IDi,计算Pi的私钥Si=(H1(IDi)+s)-1P。Pi的公钥为Qi=(H1(IDi)+s)P=H1(IDi)P+P0。
2.3密钥
协商两个实体Alice和Bob通过以下步骤协商一个共同的会话密钥。实体Alice的身份信息为IDA,其公私钥对为(PA,SA);实体Bob的身份信息为IDB,其公私钥对为(PB,SB)。Alice和Bob执行如下的算法:
Step1:用户Alice选择一个临时的密钥x∈RZq*,计算TA=xQB并将TA发送给Bob。
Step2:用户Bob选择一个临时的密钥y∈RZq*,计算TB=xQA并将TB发送给Alice。
Step3:用户Alice计算tA=H2(TA,IDA,IDB),tB=H2(TB,IDA,IDB),KAB=e(TB+tBPA,SA)(x+tA),然后计算出共享会话密钥SKAB=H3(IDA,IDB,TA,TB,KAB)。
Step4:用户Bob计算tA=H2(TA,IDA,IDB),tB=H2(TB,IDA,IDB),KBA=e(TA+tBPB,SB)(y+tB),然后计算出共享会话密钥SKBA=H3(IDA,IDB,TA,TB,KBA)。
如果 Alice 和 Bob 诚实地执行算法,他们将协商得到一个共同的会话密钥 :
原算法认证过程中仅使用1个hash函数完成认证双方的会话密钥交换,攻击者很容易截获一方的私钥,进行伪装攻击。改进的算法则使用了3个hash函数完成会话密钥交换,且加入了节点的身份信息,使得算法更加安全。
3结语
本文提出的认证协议是轻量级协议,适用于低成本工控物联网环境,但对于更加复杂且对安全要求很高的环境还有待完善。因此,研究的下一步将考虑在认证协议中加入PKI证书,使其适用于认证更加严格的工控物联网环境,同时密钥协商算法也需要进行相应的改进来适应复杂环境下的工控物联网。
20211019_616ec3030105d__工控物联网认证协议与密钥协商算法研究