工程科学与技术   2020, Vol. 52 Issue (3): 168-177
一种分层无线传感网的匿名双因素用户认证协议
房卫东1,2, 张武雄1,2, 潘涛3,4, 高智伟5, 倪业鹏6     
1. 中国科学院 上海微系统与信息技术研究所 微系统技术重点实验室,上海 201899;
2. 上海无线通信研究中心,上海 201210;
3. 神华信息技术有限公司,北京 100011;
4. 福建省信息处理与智能控制重点实验室(闽江学院),福建 福州 350121;
5. 广州市智能网联汽车示范区运营中心,广东 广州 510610;
6. 中国传媒大学 数据科学与智能媒体学院,北京 100024
基金项目: 国家自然科学基金项目(61571303;61571004);国家重点研发计划项目(2019YFB2101602;2017YFC0804307);国家科技重大专项(2018ZX03001031);中国传媒大学中央高校基本科研业务费专项资金(CUC19ZD002);上海市自然科学基金项目(17ZR1429100);上海科技创新行动计划项目(17DZ2281600;17DZ2292000);福建省信息处理与智能控制重点实验室(闽江学院)开放基金项目(MJUKF–IPIC201905)
摘要: 用户认证协议可以确保无线传感网访问用户的合法性与传感器节点感知信息的接入安全。现有用户认证协议(Fan协议)存在各种安全缺陷,易遭受多种网络安全攻击,尤其是节点妥协攻击、口令猜测攻击、内部特权攻击等,也不支持用户的匿名性,无法保障用户的隐私。针对这些安全挑战,提出了一种分层无线传感网的匿名双因素用户认证协议,该协议在注册阶段以哈希隐藏方式传输口令,提高了口令传输的安全性;增大网关节点秘密参数与用户的相关性,实现了秘密参数的唯一性;在认证阶段,增大会话密钥与系统时间和用户的关联性,实现会话密钥的唯一性和动态性;引入口令更新机制,用户可以在不联系簇头节点的情况下,自由更新口令,保障了口令的新鲜性。逻辑分析与仿真结果表明,与Fan协议相比,本协议在仅增加少量计算开销的基础上,不仅可以防御节点妥协攻击、口令猜测攻击和内部特权攻击,而且实现了用户匿名性;与Nam、He–Kumar、Mir等协议相比,本协议采用了哈希函数、级联操作和异或操作等轻量级安全操作,减少了传感器节点计算开销,优化了传感器节点向网关节点的注册流程,综合性能优于上面提到的3种用户认证协议。因此,本协议不但适用于资源受限的传感器节点,而且显著提高了无线传感网安全性。
关键词: 无线传感网    用户认证协议    双因素    匿名性    
An Anonymous Two-factor User Authentication Protocol for Hierarchical Wireless Sensor Network
FANG Weidong1,2, ZHANG Wuxiong1,2, PAN Tao3,4, GAO Zhiwei5, NI Yepeng6     
1. Sci. and Technol. on Micro-system Lab., Shanghai Inst. of Micro-system and Info. Technol., Chinese Academy of Sciences, Shanghai 201899, China;
2. Shanghai Research Center for Wireless Communication, Shanghai 201210, China;
3. Shenhua Info. Technol. Co., Ltd., Beijing 100011, China;
4. Fujian Provincial Key Lab. of Info. Processing and Intelligent Control (Minjiang Univ.), Fuzhou 350121, China;
5. Guangzhou Intelligence Connteted Vehicle Pilot Zone Operation Center, Guangzhou 510610, China;
6. School of Data Sci. and Media Intelligence, Communication Univ. of China, Beijing 100024, China
Abstract: In wireless sensor network (WSN), the user authentication protocol (UAP) is an important scheme to guarantee the legality of admitted-users and access security of sensing information for sensor node. These are various security flaws in many proposed UAPs (i.e. Fan protocol), which are vulnerable to diverse cyber security attacks. In particular, they could not effectively defend against the node compromised attack, the password guessing attack, the privileged-insider attack, and so forth. In addition, the user’s anonymity is not supported so that the user privacy cannot be preserved. To tackle these security challenges, an anonymous two-factor user authentication protocol (AT–UAP) for hierarchical WSN was proposed. In the registration phase of AT–UAP, the password was transmitted via hiding Hash to enhance the transmission security, and the correlation between the secret parameters of gateway node and the users was increased to achieve the uniqueness of the secret parameter. Furthermore, in the authentication phase of AT–UAP, the association between the session key, system time and the user identity was enhanced to achieve the uniqueness and the dynamicity of the session key. Then a password update scheme was introduced to change the password freely and to guarantee the freshness of the password without contacting the cluster head. The logic analysis and the simulation results show that, compared with Fan protocol, AT–UAP can not only defend against the node compromised attack, the password guessing attack, and the privileged-insider attack, but also achieve the anonymity of user authentication on the basis of only adding a small amount of computational overhead. Moreover, compared with Nam protocol, He–Kumar protocol, and Mir protocol, AT–UAP utilizes the lightweight security operations such as hash function, cascade operation, and XOR operation to reduce the computation overhead of sensor node, also optimizes the registration process of sensor nodes to gateway nodes. Its comprehensive performance was better than that of three UAPs mentioned above. Hence, AT–UAP is suitable for the resource-constrained sensor nodes. Meantime, it could significantly improve the security of the wireless sensor network.
Key words: wireless sensor network (WSN)    user authentication protocol (UAP)    two-factors    anonymity    

当前,无线传感网(wireless sensor network,WSN)已广泛应用到许多领域,如车辆定位、气候监测等[1]。在无线传感网的多种应用场景中,用户主要有两种方式获取传感器节点感知信息:

1)间接获取方式。用户通过基站或者网关节点,发送信息查询指令给特定的传感器节点,获取其通过多跳方式回传的信息。其信息安全由网络安全策略保证[23],但信息的获取上时延较大,适用于实时性要求不高的应用场景。

2)直接获取方式。用户通过携带智能卡的手持终端,直接实现指定传感器节点的登录,通过查询指令的交互,实时地获取传感器节点的感知数据。其信息安全仅能通过认证等技术保障用户的合法性。若用户认证机制存在安全缺陷,被未授权用户捕获,并且利用其登录传感器节点,不但泄露传感器节点感知信息与网络拓扑信息,而且将进一步直接威胁到整个的无线传感网安全[4]。对于合法用户而言,在认证过程的隐私保护同样重要。若用户匿名性无法保证,则用户的个人信息(如用户身份、位置等)可能被非法获取、破解、追踪、甚至伪造,将带来更大的安全隐患。

因此,WSN用户认证协议(user authentication protocol,UAP)的完备性、尤其是匿名性,是保证网络信息安全和保护用户隐私的重要安全属性。

无线传感网通常分为分层网络和平面网络。针对分层WSN用户认证协议,Das提出了一种基于智能卡和口令用于WSN的双因素用户认证协议[5],能够实现防御口令猜测攻击、验证–窃取攻击、如相同身份多重用户攻击、以及重放攻击等多种安全攻击。Khan等[6]发现Das协议无法防御基站旁路攻击和内部特权攻击,提出了一种改进的用户认证协议,实现了传感器节点与网关节点、以及用户与网关节点之间分别共享不同密钥。Vaidya等[7]发现Das协议和Khan协议无法防御智能卡丢失攻击的安全缺陷,提出了一种改进的用户认证协议。Nyang等[8]则对Das协议不能防御离线口令猜测攻击,提出了一种可以防御离线口令猜测攻击的用户认证协议。Yoo等[9]则基于Das协议提出了一种改进的用户认证协议,但未考虑用户匿名性。Sun等[10]发现Khan协议在对抗网关节点模拟攻击、网关节点旁路攻击和内部特权攻击方面存在不足,提出了一种改进的无线传感网用户认证协议,但未实现网关节点与用户之间双向认证,无法保障用户隐私,用户和用户间也没有建立共享会话密钥。Arikumar等[11]仅利用非加密操作,提出了一种双因素认证协议,该协议禁止拥有仅与合法用户相同的身份标志的用户登录系统。Yeh等[12]基于ECC加密(elliptic curve cryptography)和智能卡认证提出了一种新的用户认证机制,提高了安全性,但增加了计算成本,而且无法实现传感器节点与用户之间的双向认证,也没有建立二者间的共享密钥。Xue等[13]基于临时凭证提出了一种WSN用户认证协议,但攻击者可通过发动离线身份标志猜测攻击获得用户身份标志信息。Yoon等[14]提出了一种新型的用户认证协议,实现了传感器节点和用户之间的双向认证,但是没有保障两者间消息的机密性,也未建立两者间的共享会话密钥。Fan等[15]提出了一种新的分层WSN双因素用户认证协议(以下简称Fan协议),该协议以较低的计算量实现了多种安全攻击的防御,引起了国内外研究同行的广泛关注。

平面WSN用户认证协议,较有代表意义的研究有:Nam等[16]提出了一种基于ECC加密可匿名WSN双因素认证协议,可以防御验证–窃取攻击、口令猜测攻击等安全攻击,实现用户匿名,但计算开销较大。He等[17]提出了一种鲁棒匿名用户认证协议(He–Kumar),实现了匿名性,可以有效防御内部特权攻击等多种安全攻击,但该协议无法防御口令猜测攻击和拒绝服务攻击。Mir等[18]提出了一种密钥协商协议的匿名认证,可以有效实现多种安全攻击的检测与防御,例如,验证–窃取攻击、重放攻击等。

用户认证协议的设计总是在发现安全漏洞,提升安全性能的迭代中获得完善与提高。分析上述用户认证协议,可以看出,多数研究是通过复杂的算法(例如,ECC算法等)来获得认证协议安全性的提升,但这势必增加资源受限传感器节点的开销,进而影响整个网络的生命周期。

因此,如何结合WSN网络特性,具有低计算量、高安全性、支持匿名认证的用户认证协议,是当前WSN信息安全领域的一个重要问题。本文提出一种匿名双因素用户认证协议(anonymous two-factor user authentication protocol,AT–UAP)。该协议采用哈希函数和异或操作,提高了口令传输的安全性,与ECC等安全操作相比,降低了计算量;引入动态口令管理,保障了口令的新鲜性;实现了用户匿名性,增强了协议安全性,其较低的计算量,更适合应用于WSN。

1 假设约定

为便于后续的推导与分析,本节将给出认证协议安全性逻辑分析中需要使用的攻击者威胁模型及攻击者的假定能力。

本文提出的AT–UAP是基于分层的传感器网络,如图1所示,假定网络的建立阶段已经完成,时钟已经同步,且用户、网关节点和簇头节点的计算能力远高于普通簇内节点。

图1 分层WSN拓扑图 Fig. 1 Topology of hierarchical WSN

由于无线通信媒介的开放性,传感器节点的信息安全易受到威胁。AT–UAP协议基于“Dolev–Yao攻击者拓展模型”分析用户认证协议安全性,这个模型是一个在非安全开放式通信中的攻击者模型,其模型及攻击者能力假定如下[19]

攻击者没有正确的密钥就不能解密消息,攻击者可以冒充其他通信实体向用户发送消息,攻击者无法获得正确的随机数,攻击者可以获得所有经公共信道传输的消息,攻击者无法破坏加密算法。

针对无线传感网用户认证协议的技术特性,Kim等为更好地分析协议安全性,拓展了Dolev–Yao攻击者模型,其拓展后的假设为[20]

攻击者可以妥协传感器节点,窃取存储的秘密参数;攻击者一旦获得用户的智能卡,可以获得卡中存储的参数信息;为方便记忆,通常用户身份标志和口令是低熵的,网关节点是诚实的,传感器节点没有配置防篡改装置。

后续将基于“Dolev–Yao攻击者拓展模型”分析用户认证协议安全性。

2 Fan协议安全性分析

Fan协议是一种典型的分层WSN双因素用户认证协议,该协议在设计过程中,充分考虑了无线传感网的应用场景,以及传感器节点的技术特性,不但提高了安全性,而且有效地降低了计算开销,适用于资源受限的传感器节点。Fan协议中,通过采用计算量较小的级联操作、异或操作、以及算法相对简单的哈希函数、代替了计算开销较大的传统加密操作,实现了对多种安全攻击的有效防御,这些安全攻击包括:重放攻击、拒绝服务攻击、验证–窃取攻击、以及智能卡丢失攻击等。但本文基于Dolev–Yao攻击者拓展模型,经分析后发现Fan协议无法抵御下列攻击,以及存在无法实现匿名性的安全缺陷。

2.1 节点妥协攻击

攻击者妥协传感器节点后,可以通过以下操作,获得会话密钥:

1)妥协传感器节点,获取秘密参数 ${S\!_k}$ ,其中, ${S\!_k}$ 表示 $M{N_j}$ (簇头节点,j表示簇头节点的ID)与其簇内节点的共享秘密参数。

2)截取消息 $ \left\{ {{K}^{*}},T_{MN}^{*},D_{3}^{*} \right\}$ ,其中, $T$ 表示系统当前时间戳。

3)计算会话密钥: $Key = h\left( {{S\!_k}\left\| {{K^*}} \right.} \right)$

攻击者利用 ${S\!_k}$ ${K^*}$ ,计算会话密钥 $Key = h\left( {{S\!_k}\left\| {{K^*}} \right.} \right)$ ,可以和同一簇内任何节点通信,不受时间和用户的限制。

2.2 口令猜测攻击

攻击者窃取用户 ${U_i}$ i表示用户的序列号)的智能卡,获取秘密参数 $h\left( \cdot \right)$ (单向哈希函数)和 ${V_i}$ 。通过以下步骤,攻击者可以猜测出 ${U_i}$ 的口令。

1)攻击者随机从 ${S\!_{id}} \times {S\!_{pw}}$ 中选择 $\left( {ID_i^*,PW_i^*} \right)$ ,其中, ${S\!_{id}}$ 表示用户身份标志空间, ${S\!_{pw}}$ 表示用户口令空间, $I{D_i}$ 表示用户身份标志, $P{W_i}$ 表示用户口令;计算 $V_i^* = {h^3}\left( {ID_i^*\left\| {PW_i^*} \right.} \right)$ ,其中, $\left\| {} \right.$ 表示比特级联操作。

2)验证 $V_i^* = {V_i}$ 是否成立,如果不成立,则重复第1)、2)步,直至 $V_i^* = {V_i}$

2.3 内部特权攻击

为方便记忆,用户可能多个应用系统使用同一口令,而在Fan协议口令以明文形式传输,因此内部特权参与者可能利用口令访问其他系统。

2.4 用户匿名性

恶意簇头节点 $M{N_m}$ 勾结恶意特权用户 ${U_m}$ 使合法用户 ${U_i}$ 的匿名性无法实现。这是因为WSN部署在敌对环境或无人值守的户外区域,存在着恶意内部节点勾结的可能。 ${U_m}$ 利用 ${A_m}$ $I{D_m}$ $P{W_m}$ ,计算 $h\left( X \right) = {A_m} \oplus $ $ {h^2}\left( {I{D_m}\left\| {P{W_m}} \right.} \right)$ 。其中, $ \oplus $ 表示比特异或操作。

通过 $h\left( X \right)$ $M{N_m}$ ${U_m}$ 勾结获取 ${U_i}$ 用户相关信息,过程如下:

1)收到 ${U_i}$ 登录请求 $\left\{ {{N_{im}},{C_1},{C_2},T} \right\}$ 后, $M{N_m}$ 计算 $T{K_i} = h\left( {h\left( {{N_{im}}\left\| {{Y_m}} \right.} \right)\left\| T \right.} \right)$ ,其中, ${Y_m}$ 表示 $M{N_m}$ $GWN$ 的共享秘密参数。

2) $M{N_m}$ 计算 $S\!I{D_i} = {C_1} \oplus T{K_i}$

3) $M{N_m}$ 计算 $RI{D_i} = S\!I{D_i} \oplus h\left( {h\left( X \right)\left\| T \right.} \right)$ ;其中, $X$ 表示 $GWN$ 的秘密参数, $h\left( X \right)$ 通过恶意特权用户 ${U_m}$ 获得。

用户所有登录请求中的 $RI{D_i}$ 作为 ${U_i}$ 的身份标志, $M{N_m}$ 可以根据 $RI{D_i}$ 辨别和追踪 ${U_i}$ 的登录请求,因此 ${U_i}$ 不能实现匿名。此外,用户口令一旦确定,则便不能更改,无法保证口令的新鲜性,增加口令泄露对网络和用户的威胁。

3 匿名双因素用户认证协议

为克服Fan协议存在安全缺陷,提出一种匿名双因素用户认证协议(AT–UAP),从如下几个方面改进Fan协议:

1)注册阶段。口令以 $\overline {P{W_i}} = h\left( {P{W_i}\left\| r \right.} \right)$ 形式传送,而不是以明文方式传送,此外,在口令交互过程中,用 $h\left( {X\left\| {S\!I{D_i}} \right.} \right)$ 替换 $h\left( X \right)$ ,从而实现 $h\left( X \right)$ 的唯一性。

2)认证阶段。用 $Key = h\left( {S\!I{D_i}\left\| {{S\!_k}\left\| {T_{MN}^*} \right.} \right.} \right)$ 替换 $Key = $ $ h\left( {{S\!_k}\left\| {{K^*}} \right.} \right)$ ,增强了会话密钥和系统时间及用户的关联性。

3)引入口令更新机制,用户可以在不联系簇头节点的情况下,随时更新口令。

AT–UAP由注册、登录、认证以及口令更新4个阶段组成。

3.1 注册阶段

新用户 ${U_i}$ 访问无线传感网数据时,向 $GWN$ 注册,详细流程如图2所示。

图2 注册阶段 Fig. 2 Registration phase

1) ${U_i}$ 选择身份账号 $I{D_i}$ 和口令 $P{W_i}$

2) ${U_i}$ 选择随机数 > $r$ ,计算 $\overline {P{W_i}} = h\left( {P{W_i}\left\| r \right.} \right)$

3) ${U_i}$ 经安全信道向 $GWN$ 提交登录请求 $\left\{ {I{D_i},} \right. $ $\left. {\overline {P{W_i}} } \right\}$

4)收到注册请求后, $GWN$ 选择随机数 ${R_i}$ 计算:

$ \begin{array}{c} RI{D_i} = h\left( {{R_i}\left\| {I{D_{GWN}}} \right.} \right) \oplus I{D_i} \oplus I{D_{GWN}},\\ {A_i} = h\left( {X\left\| {RI{D_i}} \right.} \right) \oplus h\left( {I{D_i}\left\| {\overline {P{W_i}} } \right.} \right),\\ {V_i} = {h^3}\left( {I{D_i}\left\| {\overline {P{W_i}} } \right.} \right)\text{。} \end{array} $

5) $GWN$ 生成 ${U_i}$ $S\!{N_j}$ 权证表 ${N_{ij}}$ ,计算 ${B_{ij}} = h( {N_{ij}}\|$ $ {{Y_j}} ) \oplus h( {I{D_i}\| {\overline {P{W_i}} } })$

6) $GWN$ 存储 $I{D_i}$ 对应的 $\left\{ {RI{D_i},{R_i}} \right\}$

7) $GWN$ ${U_i}$ 发送含安全参数 $h\left( \cdot \right)$ $RI{D_i}$ ${V_i}$ ${A_i}$ 的智能卡,及含 $\left\{ {{N_{ij}},{B_{ij}}} \right\}$ 的数据表。

8)收到智能卡后, ${U_i}$ 计算 $H\_P{W_i} = h\left( {P{W_i}} \right) \oplus r$ ,添加 $H\_P{W_i}$ 到智能卡中。

3.2 登录阶段

${U_i}$ 完成注册后,登录无线传感网,详细流程如图3所示。

图3 登录阶段 Fig. 3 Login phase

1) ${U_i}$ 把智能卡插入读卡器终端,输入 $ID_{_i}^*$ $PW_{_i}^*$

2)智能卡计算: $r = H\_P{W_i} \oplus h\left( {PW_i^*} \right)$ $\overline {PW_{_i}^*} = $ $h\left( {PW_{_i}^*\left\| r \right.} \right) $ $V_{_i}^* = {h^3}\left( {\left.I{D_i}\right\| {\overline {PW_{_i}^*} } } \right)$ ;并验证 $V_{_i}^* = {V_i}$ 是否成立,如果成立则继续下一步操作,否则终止操作。

3) ${U_i}$ 选择登录的簇头节点,智能卡读取该节点对应参数 $\left\{ {{N_{ij}},{B_{ij}}} \right\}$ ,计算:

$ \begin{aligned}[b] T{K_i} =& h\left( {\left( {{B_{ij}} \oplus h\left( {\left.I{D_i}\right\| {\overline {P{W_i}} } } \right)} \right)\left\| T \right.} \right) = \\ &h\left( {h\left( {{N_{ij}}|| {{Y_j}} } \right)\left\| T \right.} \right), \end{aligned} $
$ \begin{aligned}[b] S\!I{D_i} =& RI{D_i} \oplus h\left( {\left( {{A_i} \oplus {h^2}\left( {\left.I{D_i}\right\| {\overline {P{W_i}} } } \right)} \right)\left\| T \right.} \right) = \\ &{\rm{ }}RI{D_i} \oplus h\left( {h\left( {X\left\| {RI{D_i}} \right.} \right)\left\| T \right.} \right)\text{。} \end{aligned} $

其中, $T$ 表示用户系统当前时间戳。

4)智能卡计算: ${C_1} = S\!I{D_i} \oplus T{K_i}$ ${C_2} = h\left( {T{K_i}\left\| {S\!I{D_i}} \right.} \right.\left\| \right. $ $\left. {{{N_{ij}}} \left\| T \right.} \right)$

5) ${U_i}$ $M{N_j}$ 发送消息 $\left\{ {{N_{ij}},{C_1},{C_2},T} \right\}$

6)智能卡从内存中删除 $I{D_i}$ $\overline {P{W_i}} $ $S\!I{D_i}$ $h\left( {{N_{ij}}\left\| {{Y_j}} \right.} \right)$ $h\left( {I{D_i}\left\| {\overline {P{W_i}} } \right.} \right)$ ${h^2}\left( {I{D_i}\left\| {\overline {P{W_i}} } \right.} \right)$ ,保留 > $T$

3.3 认证阶段

${U_i}$ 成功登录无线传感网后,实现双向认证、建立会话密钥,流程如图4所示。

图4 认证阶段 Fig. 4 Authentication phase

1)收到登录请求 $\left\{ {{N_{ij}},{C_1},{C_2},T} \right\}$ 后, $M{N_j}$ 首先验证 $\left( {{T_{MN}} - T} \right) \le \Delta T$ 是否成立,其中, $\Delta T$ 表示允许最大消息延迟、 ${T_{MN}}$ 表示 $M{N_j}$ 系统当前时间戳;如果不成立,则拒绝登录请求,否则计算: $TK_{_i}^* = h\left( {h\left( {N_{_{ij}}^*|| {{Y_j}} } \right)\left\| T \right.} \right)$ $S\!ID_{_i}^* = {C_1} \oplus TK_{_i}^*$ $C_{_2}^* = h\left( {TK_{_i}^*|| {SID_{_i}^*|| {{N_{ij}}\left\| T \right.} } } \right)$ ;验证 $C_{_2}^* = {C_2}$ 是否成立,如果成立则接受登录请求,若不成立,则拒绝登录请求。

2) $M{N_j}$ 可以向 $GWN$ 报告 ${U_i}$ 的异常行为。 $GWN$ 收集所有 $M{N_j}$ 有关 ${U_i}$ 的报告信息后,评价 ${U_i}$ 是否可信。如果 $GWN$ 收到来自 $M{N_j}$ 的报告消息 $\left\{ {S\!I{D_i},T} \right\}$ ,通过计算: $RID_{_i}^* = S\!I{D_i} \oplus h\left( {h\left( {X\left\| {RI{D_i}} \right.} \right)\left\| T \right.} \right)$ $I{D_i} = RI{D_i} \oplus I{D_{GWN}} \oplus $ $ h\left( {{R_i}\left\| {I{D_{{\rm{GWN}}}}} \right.} \right)$ ,可以获得用户的真实身份标志,则 ${U_i}$ 合法;如果不能获得用户真实身份标志则 $GWN$ $M{N_j}$ 发送终止操作消息。

3) $M{N_j}$ 计算 ${U_i}$ 的临时密钥: $TK{M_j} = h\left( {h\left( {{N_{ij}}|| {{Y_j}} } \right)} \right. \left\|\right.$ $\left. { {SI{D_i}\left\| {{T_{MN}}} \right.} } \right)$ ,其中, $T_{_{MN}}^{\rm{*}}$ 表示 $M{N_j}$ 系统当前时间戳。计算: $Key = h\left( {{S\!_k}|| {S\!I{D_i}|| {T_{_{MN}}^{\rm{*}}} } } \right)$ $G = S\!I{D_i} \oplus {S\!_k}$ ${D_1} = Key \oplus $ $ TK{M_j}$ ${D_2} = h\left( {Key|| {TK{M_j}|| {T_{_{MN}}^{\rm{*}}} } } \right)$ ${D_3} = h\left( {T_{_{MN}}^{\rm{*}}\left\| {{S\!_k}} \right.} \right)$

4) $M{N_j}$ $SN$ 发送消息 $\left\{ {G,T_{_{MN}}^{\rm{*}},{D_3}} \right\}$ ,向 ${U_i}$ 发送消息 $ \left\{ {{D_1},{D_2},T_{_{MN}}^{\rm{*}}} \right\}$

5)收到 $ \left\{ {G,T_{MN}^*,{D_3}} \right\}$ 后, $S\!N$ 首先验证 $\left( {{T_{SN}} - T_{_{MN}}^{\rm{*}}} \right) \le $ $ \Delta T$ 是否成立,其中, ${T_{S\!N}}$ 表示 $S\!N$ 系统当前时间戳,如果不成立则终止操作;如果成立则计算 $D_{_3}^{\rm{*}} = $ $h\left( {{T_{MN}}} \right.\left\|\right.$ $ \left. { {S\!\!{_k}} } \right)$ 。验证 $D_{_3}^* = {D_3}$ 是否成立,如果成立则 $S\!N$ 计算 $S\!I{D_i} = G \oplus {S\!_k}$ ,建立会话秘密, $Key = h\left( {{S\!\!_k}\left\| {S\!I{D_i}\left\| {T_{_{MN}}^{\rm{*}}} \right.} \right.} \right)$ ;如果 $D_{_3}^* = {D_3}$ 不成立,则拒绝回应请求。

6)收到 $ \left\{ {{D_1},{D_2},T_{_{MN}}^{\rm{*}}} \right\}$ 后,智能卡首先验证 $\left( {{T_U} - {T_{MN}}} \right) \le $ $ \Delta T$ 是否成立,其中, ${T_U}$ 表示 ${U_i}$ 系统当前时间戳。如果成立,则 ${U_i}$ 重新输入 $I{D_i}$ $P{W_i}$ ,经智能卡验证,计算 $h\left( {{N_{ij}}\left\| {{Y_j}} \right.} \right)$ $S\!I{D_i}$ ,进一步计算: $TKM_j^* = h( {h( {{N_{ij}}\| } } $ ${{Y_j}} )\| {SI{D_i}}{\| {{T_{MN}}}} )$ $Ke{y^*} = {D_1} \oplus TKM_{_j}^*$ $D_{_2}^* = h( {Ke{y^*}\| {TKM_{_j}^*} } \| $ ${{T_{MN}}} )$ 。验证 $D_{_2}^* = {D_2}$ 是否成立,如果成立,则 ${U_i}$ 接受会话密钥 $Key$ 用于和节点的安全通信,如果不成立则 ${U_i}$ 终止访问。

3.4 口令更新阶段

${U_i}$ 需更换口令时,输入 $I{D_i}$ 、原始口令 $P{W_i}$ 和新口令 $PW_{_i}^{{\rm{new}}}$ ,详细流程如图5所示。

图5 口令更新阶段 Fig. 5 Password updating phase

1)智能卡计算: $r = H\_P{W_i} \oplus h\left( {PW_i^*} \right)$ $\overline {PW_{_i}^*} = h\left( {PW_i^*} \right. \left\|\right.$ $\left. { r } \right)$ $V_{_i}^* = {h^3}\left( {I{D_i}\left\| {\overline {PW_{_i}^*} } \right.} \right)$ ;验证 $V_{_i}^* = {V_i}$ 是否成立,如果成立,进行如下操作: $\overline {PW_i^{{\rm{new}}}} = h\left( {PW_i^{{\rm{new}}}\left\| r \right.} \right) $ $A_i^{{\rm{new}}} = {A_i} \oplus $ $ h\left( {I{D_i}\left\| {\overline {P{W_i}} } \right.} \right) \oplus h\left( {I{D_i}\left\| {\overline {PW_i^{{\rm{new}}}} } \right.} \right) $ $V_i^{{\rm{new}}} = {h^3}\left( {I{D_i}\left\| {PW_i^{{\rm{new}}}} \right.} \right) $ ,否则终止操作。

2) ${U_i}$ $GWN$ 提交 $ \left\{ {I{D_i},\overline {PW_{_i}^{{\rm{new}}}} } \right\}$

3) $GWN$ 收到 $ \left\{ {I{D_i},\overline {PW_{_i}^{{\rm{new}}}} } \right\}$ 后,计算:

$B_{_{ij}}^{{\rm{new}}} = h\left( {{N_{ij}}\left\| {{Y_j}} \right.} \right) \oplus h\left( {I{D_i}\left\| {\overline {PW_{_i}^{{\rm{new}}}} } \right.} \right)\text{。}$

4) $GWN$ ${U_i}$ 发送含消息 $ \left\{ {{N_{ij}},B_{ij}^{{\rm{new}}}} \right\}$ 的数据表。

5)收到 $ \left\{ {{N_{ij}},B_{ij}^{{\rm{new}}}} \right\}$ 后, ${U_i}$ 删除 $ \left\{ {{N_{ij}},{B_{ij}}} \right\}$

4 AT–UAP安全性与计算开销分析 4.1 与Fan协议对比分析

本文提出的AT–UAP,通过在注册阶段以哈希隐藏方式传输口令,增大网关节点秘密参数与用户的相关性,在认证阶段增大会话密钥与系统时间和用户的关联性,引入口令更新机制,改进Fan协议的安全缺陷,提高安全性。

4.1.1 安全性分析

两种分层双因素用户认证协议的安全性比较详见表1。从表1可以看出,与Fan协议相比,AT–UDP协议不但实现了防御多种安全攻击(主要包括节点妥协攻击、口令猜测攻击以及内部特权攻击),而且实现了用户匿名性,有效地提高了协议的安全性。

表1 安全性比较 Tab. 1 Security comparison

分析过程如下:

1)中间人攻击

假设攻击者截取登录请求消息 $ \left\{ {{N_{ij}},{C_1},{C_2},T} \right\}$ ,即使攻击者获得参数 ${N_{ij}}$ 和时间戳 $T$ ,因为 ${C_1}{\rm{ = }}S\!I{D_i} \oplus T{K_i}$ ${C_2}{\rm{ = }}h\left( {T{K_i}\left\| {S\!I{D_i}\left\| {{N_{ij}}\left\| T \right.} \right.} \right.} \right)$ ,则攻击者不能创建合法的登录请求消息,所以AT–UAP可以防御中间人攻击。

2)验证–窃取攻击

假设攻击者窃取验证表 ${V_i} = {h^3}\left( {I{D_i}\left\| {\overline {P{W_i}} } \right.} \right)$ ,为了通过网关节点认证,攻击者必须利用 $h\left( {I{D_i}\left\| {\overline {P{W_i}} } \right.} \right)$ 生成 $T{K_i}$ ${h^2}\left( {I{D_i}\left\| {\overline {P{W_i}} } \right.} \right)$ 。然而攻击者不知道用户 $P{W_i}$ $r$ ,则其不能成功计算 $\overline {P{W_i}} {\rm{ = }}h\left( {P{W_i}\left\| r \right.} \right)$ $h\left( {I{D_i}\left\| {\overline {P{W_i}} } \right.} \right)$ ,所以AT–UAP可以防御验证窃取攻击。

3)节点妥协攻击

假设攻击者妥协合法簇内节点,获取秘密参数 ${S\!_k}$ ,截取了 $M{N_j}$ 发送至簇内非妥协节点的消息 $\left\{ {G,T_{MN}^{\rm{*}},} \right. $ $\left. {{D_3}} \right\}$ ,因为, $G = S\!I{D_i} \oplus {S\!_k}$ $Key = h\left( {S\!I{D_i}\left\| {{S\!_k}\left\| {T_{MN}^*} \right.} \right.} \right)$ ,则会话密钥与 $S\!I{D_i}$ $T_{_{MN}}^*$ 相关,密钥随用户和时间而变,增加了会话密钥的安全性,即使攻击者获得 ${S\!_k}$ ,也不能获得会话密钥,因此AT–UAP可以防御节点妥协攻击。

4)拒绝服务攻击

传感器节点收到消息 $ \left\{ {G,T_{MN}^*,{D_3}} \right\}$ 后,只对其进行两次哈希操作,不消耗过多内存、计算能力和能量供给,所以AT–UAP可以有效防御该攻击。

5)口令猜测攻击

假设,攻击者设法窃取到合法用户 ${U_i}$ 智能卡,获取秘密参数 $h\left( \cdot \right)$ $V_{_i}^{\rm{*}}$ ,其中, $V_{_i}^*{\rm{ = }}{h^3}\left( {I{D_i}\left\| {\overline {PW_{_i}^*} } \right.} \right)$ 。因为 $\overline {P{W_i}} = h\left( {P{W_i}\left\| r \right.} \right)$ ,攻击者不知道随机数 $r$ ,且 $h\left( \cdot \right)$ 是单向函数的情况下,不能成功从 ${S\!_{id}} \times {S\!_{pw}}$ 中选取 $I{D_i}$ $P{W_i}$ ,通过计算 $V_{_i}^* = {h^3}\left( {I{D_i}\left\| {\overline {PW_{_i}^*} } \right.} \right)$ ,然后验证 ${V_i} = V_i^*$ 是否成立,从而成功猜测出用户口令,所以AT–UAP可以防御口令猜测攻击。

6)重放攻击

假设攻击者截取合法登录请求消息 $\left\{ {{N_{ij}},{C_1},{C_2},} \right. $ $ \left. {T} \right\}$ 并重放该消息,因为存在时间戳,故无法通过时间戳新鲜性认证,故AT–UAP可以防御重放攻击。

7)智能卡丢失攻击

假设攻击者获得用户智能卡,得到智能卡参数 $h\left( \cdot \right)$ $RI{D_i}$ ${V_i} = {h^3}\left( {I{D_i}\left\| {\overline {P{W_i}} } \right.} \right)$ $ \left\{ {{N_{ij}},{B_{ij}}} \right\}$ ${A_i} = h\left( {X\left\| {RI{D_i}} \right.} \right) \oplus $ $ h\left( {I{D_i}\left\| {\overline {P{W_i}} } \right.} \right)$ 。其中, ${B_{ij}} = h\left( {{N_{ij}}\left\| {{Y_j}} \right.} \right) \oplus h\left( {I{D_i}\left\| {\overline {P{W_i}} } \right.} \right)$ 。攻击者在不知道用户 $I{D_i}$ $P{W_i}$ $r$ 的情况下,不能通过计算得到 $h\left( {X\left\| {RI{D_i}} \right.} \right)$ $h( {{N_{ij}}\| {{Y_j}} } )$ ,因此攻击者不能利用智能卡参数发动攻击,所以AT–UAP可以防御智能卡丢失攻击。

8)相同身份标志多重登录攻击

因为 $\overline {PW_{_i}^*} = h\left( {PW_{_i}^*\left\| r \right.} \right)$ ,即使拥有相同身份标志 $I{D_i}$ 的用户 ${U_i}$ ${U'_i}$ ,其随机数 $r$ 是不同的,很难得到相同的 $\overline {PW_{_i}^*} = h\left( {PW_{_i}^*\left\| r \right.} \right)$ ,则不能创建合法登录请求 $ \left\{ {{N_{ij}},{C_1},{C_2},T} \right\}$ ,所以AT–UAP可以防御相同身份多重登录攻击。

9)内部特权攻击

因为口令以 $\overline {P{W_i}} = h\left( {P{W_i}\left\| r \right.} \right)$ 形式传输,不以明文传输,故在AT–UAP中,内部特权参与者不能利用用户口令访问其他系统。

10)用户匿名性分析

在协议中, $h\left( {X\left\| {RI{D_i}} \right.} \right){\rm{ = }}{A_i} \oplus h\left( {I{D_i}\left\| {\overline {P{W_i}} } \right.} \right)$ $X$ $RI{D_i}$ 有关。恶意用户 ${U_m}$ 只能计算 $h\left( {X\left\| {RI{D_m}} \right.} \right){\rm{ = }}{A_m} \oplus $ $ h\left( {I{D_m}\left\| {\overline {P{W_m}} } \right.} \right)$ ,而不能通过计算获得 $h\left( {X\left\| {RI{D_i}} \right.} \right)$ 。即使恶意簇头节点 $M{N_m}$ 接收 ${U_i}$ 登录请求 $ \left\{ {{N_{im}},{C_1},{C_2},T} \right\}$ ,计算: $T{K_i} = h\left( {h\left( {{N_{im}}\left\| {{Y_m}} \right.} \right)\left\| T \right.} \right)$ $SI{D_i} = {C_1} \oplus T{K_1}$ 。因为 $M{N_m}$ 不知道 $h\left( {X\left\| {RI{D_i}} \right.} \right)$ ,且 $ h\left( \cdot \right)$ 是单向函数,则 $M{N_m}$ 不能通过计算得到 $RI{D_i} = SI{D_i} \oplus h\left( {h\left( {X\left\| {RI{D_i}} \right.} \right)\left\| T \right.} \right)$ ,即使 ${U_m}$ $M{N_m}$ 勾结,也不能获得用户 $RI{D_i}$ ,所以AT–UAP能实现用户匿名性。

11)会话密钥安全性分析

假设攻击者在用户认证的阶段设法截取到 $\left\{ {G,T_{MN}^{\rm{*}},} \right. $ $ \left. {{D_3}} \right\}$ $ \left\{ {{D}_{1}},{{D}_{2}},T_{_{MN}}^{\rm{*}} \right\}$ ,其中, $Key \!=\! h \left( {{S\!\!_k}} \right.$ $\left. {\left\| {S\!I{D_i}} \right.\| {T_{MN}^ * }} \right)$ $Key \!=\! $ $ h\left( {{S\!\!_k}\left\| {S\!I\!{D_i}\left\| {T_{_{MN}}^{\rm{*}}} \right.} \right.} \right)$ $T\!K\!{M_j} \!=\! h\left( {h\left( {{N_{ij}}\| {{Y_j}} } \right)\left\| {S\!I{D_i}\left\| {{T_{MN}}} \right.} \right.} \right)$ 。攻击者在不知道参数 $I{D_i}$ $P{W_i}$ $r$ 的情况下,不能成功计算得到 $S\!I{D_i}$ $h\left( {{N_{ij}}\left\| {{Y_j}} \right.} \right)$ ,不能计算得到 $Key$ ,因此,在AT–UAP中,会话密钥是安全的。

综上可知,除了能防御上述安全攻击,AT–UAP可以实现用户匿名,保证传感器节点与用户的会话密钥安全。

4.1.2 AVISPA仿真分析

将AT–UAP转换为高级协议规范语言(high level protocols specification language,HLPSL)语言,利用Internet安全协议和应用程序自动验证(automated validation of internet security protocols and applications,AVISPA)的OFMC(on-the-fly-model-checker)分析终端模块[21-23],对本协议的安全性进行仿真验证,其结果如图6所示。

图6 AT–UAP的OFMC仿真验证 Fig. 6 OFMC simulation verification of AT–UAP

从仿真结果可知,AT–UAP经过在OFMC分析终端模块后端0.13 s的运行,完成了访问68个节点,在该过程中,未出现中间人攻击、被动攻击、重放攻击的轨迹,故可认为本协议能够有效地防御上述3种协议。

4.1.3 计算开销分析

Fan协议和AT–UAP在注册、登录、认证和口令更新阶段的计算开销比较详见表2,其中, ${T_{\rm X}}$ 表示异或操作, ${T_{\rm h}}$ 表示哈希函数。

表2 计算开销比较 Tab. 2 Comparison of computation overhead

Fan协议和AT–UAP都仅利用了哈希函数和异或操作,没有利用复杂的加密操作。其中,Fan协议的总计算成本为25 ${T_{\rm h}}$ +13 ${T_{\rm X}}$ ,AT–UAP的总计算成本为40 ${T_{\rm h}}$ +18 ${T_{\rm X}}$ 。尽管后者的计算成本高于前者,但增加的计算成本主要由用户、网关节点和簇头节点承担,而普通簇内节点仅增加了一次异或操作。考虑到在协议运行环境中,用户、网关节点和簇头节点的计算能力远高于普通簇内节点,且仅有簇内节点资源受限,权衡安全性能和计算成本,AT–UAP适用于资源受限的无线传感网。

4.2 与平面无线传感网双因素UAP对比分析

将AT–UAP与几种典型的平面无线传感网双因素UAP(Nam协议[16]、He–Kumar协议[17]与Mir协议[18])的性能(安全性与计算开销)进行对比分析,比较结果见表34所示。

表3 安全性比较 Tab. 3 Security comparison

表4 计算开销比较 Tab. 4 Comparison of computation overhead

表34中可以看出:与Nam协议相比,AT–UAP仅运用了哈希函数、级联操作和异或操作等轻量级安全操作(其中,传感器节点只执行两次哈希操作和一次异或操作),具有较低的计算开销,同时实现了相应的安全功能,因此从综合性能方面来看,AT–UAP优于Nam协议。与He–Kumar协议相比,AT–UAP可以防御口令猜测攻击和拒绝服务攻击,因此就安全性而言,AT–UAP高于He–Kumar协议。与Mir协议相比,由于该协议中每个传感器节点需向网关节点注册,而AT–UAP传感器节点不需向网关节点注册,因此减少了传感器节点计算开销。

5 结 论

在无线传感网应用中,作为用户访问网络数据合法性授权的技术保障,用户认证协议扮演者重要的角色。一旦攻击者发现并利用了这些用户认证协议的安全缺陷,可以任意窃取传感器节点的实时感知数据;若协议的匿名性出现漏洞,攻击者还可以截获用户的隐私信息,进而对传感器网络与合法用户构成更大的安全威胁。通过分析Fan等学者提出的用户认证协议,证明该协议不能防御口令猜测攻击、内部特权攻击和节点妥协攻击,也不能实现用户匿名性。针对这些安全漏洞,提出AT–UAP,仅采用哈希函数和异或操作有效克服这些安全攻击,实现用户的匿名性。考虑到AT–UAP运行在分层无线传感网中,由于用户、网关和簇头节点的计算能力远高于簇内节点,而增加的计算量主要由用户、网关和簇头节点承担,对簇内节点而言,仅增加一次异或计算,实现了以较小的计算开销获取较大安全性的目标。因此,AT–UAP适用于节点资源受限的无线传感网。下一步将继续研究轻量级用户认证协议,同时,细粒化安全操作(哈希操作、异或操作、加密操作等)的复杂度,寻求不同安全操作组合下的最优性能。

参考文献
[1]
Wu Xiaojun,Sun Weitong,Liu Haowen,et al. Optimization of anchor node layout based on positioning error estimation[J]. Advanced Engineering Sciences, 2018, 50(5): 167-175. [吴晓军,孙维彤,刘昊文,等. 基于定位误差估计的锚节点布局优化[J]. 工程科学与技术, 2018, 50(5): 167-175. DOI:10.15961/j.jsuese.201700732]
[2]
Han Weili,Yuan Lang,Li Sisi,et al. An efficient algorithm to generate password sets based on samples[J]. Chinese Journal of Computers, 2017, 40(5): 1151-1167. [韩伟力,袁琅,李思斯,等. 一种基于样本的模拟口令集生成算法[J]. 计算机学报, 2017, 40(5): 1151-1167. DOI:10.11897/SP.J.1016.2017.01151]
[3]
Yan Fei,Yu Zhao,Zhang Liqiang,et al. vTSE:A solution of SGX-based vTPM secure enhancement[J]. Advanced Engineering Science, 2017, 49(2): 133-139. [严飞,于钊,张立强,等. vTSE:一种基于SGX的vTPM安全增强方案[J]. 工程科学与技术, 2017, 49(2): 133-139. DOI:10.15961/j.jsuese.201601038]
[4]
Fang Weidong,Zhang Wuxiong,Yang Yang,et al. BTh-UAP:Biometric-based three-factor user authentication protocol for wireless sensor network[J]. Acta Electronica Sinica, 2018, 46(3): 702-713. [房卫东,张武雄,杨旸,等. 基于生物特征标识的无线传感器网络三因素用户认证协议[J]. 电子学报, 2018, 46(3): 702-713. DOI:10.3969/j.issn.0372-2112.2018.03.028]
[5]
Das M L. Two-factor user authentication in wireless sensor networks[J]. IEEE Transactions on Wireless Communications, 2009, 8(3): 1086-1090. DOI:10.1109/twc.2008.080128
[6]
Khan M K,Alghathbar K. Cryptanalysis and security improvements of ‘two-factor user authentication in wireless sensor networks’[J]. Sensors, 2010, 10(3): 2450-2459. DOI:10.3390/s100302450
[7]
Vaidya B,Makrakis D,Mouftah H T.Improved two-factor user authentication in wireless sensor networks[C]//Proceedings of the 2010 IEEE 6th International Conference on Wireless and Mobile Computing,Networking and Communications.Niagara Falls:IEEE,2010:600–606.
[8]
Nyang D H,Lee M K.Improvement of Das’s two-factor authentication protocol in wireless sensor networks[EB/OL].(2009–12–21)[2019–06–06].https://eprint.iacr.org/2009/631.pdf.
[9]
Yoo S G,Park K Y,Kim J. A security-performance-balanced user authentication scheme for wireless sensor networks[J]. International Journal of Distributed Sensor Networks, 2012, 8(3): 382810. DOI:10.1155/2012/382810
[10]
Sun Dazhi,Li Jianxin,Feng Zhiyong,et al. On the security and improvement of a two-factor user authentication scheme in wireless sensor networks[J]. Personal and Ubiquitous Computing, 2013, 17(5): 895-905. DOI:10.1007/s00779-012-0540-3
[11]
Arikumar K S,Thirumoorthy K.Improved user authentication in wireless sensor networks[C]//Proceedings of the 2011 International Conference on Emerging Trends in Electrical and Computer Technology.Nagercoil:IEEE,2011:1010–1015.
[12]
Yeh H L,Chen T H,Liu Pinchuan,et al. A secured authentication protocol for wireless sensor networks using elliptic curves cryptography[J]. Sensors, 2011, 11(5): 4767-4779. DOI:10.3390/s110504767
[13]
Xue Kaiping,Ma Changsha,Hong Peilin,et al. A temporal-credential-based mutual authentication and key agreement scheme for wireless sensor networks[J]. Journal of Network and Computer Applications, 2013, 36(1): 316-323. DOI:10.1016/j.jnca.2012.05.010
[14]
Yoon E J,Yoo K Y.A new biometric-based user authentication scheme without using password for wireless sensor networks[C]//Proceedings of the 2011 IEEE 20th International Workshops on Enabling Technologies:Infrastructure for Collaborative Enterprises.Paris:IEEE,2011:279–284.
[15]
Fan Rong,He Daojing,Pan Xuezeng,et al. An efficient and DoS-resistant user authentication scheme for two-tiered wireless sensor networks[J]. Journal of Zhejiang University (Science C), 2011, 12(7): 550-560. DOI:10.1631/jzus.c1000377
[16]
Nam J,Choo K K R,Han S,et al. Efficient and anonymous two-factor user authentication in wireless sensor networks:Achieving user anonymity with lightweight sensor computation[J]. PLoS One, 2015, 10(4): e0116709. DOI:10.1371/journal.pone.0116709
[17]
He Debiao,Kumar N,Chen Jianhua,et al. Robust anonymous authentication protocol for health-care applications using wireless medical sensor networks[J]. Multimedia Systems, 2015, 21(1): 49-60. DOI:10.1007/s00530-013-0346-9
[18]
Mir O,Munilla J,Kumari S. Efficient anonymous authentication with key agreement protocol for wireless medical sensor networks[J]. Peer-to-Peer Networking and Applications, 2017, 10: 79-91. DOI:10.1007/s12083-015-0408-1
[19]
Ramanujam R,Sundararajan V,Suresh S P.Extending Dolev–Yao with assertions[M]//Information Systems Security.Cham:Springer,2014:50–68.
[20]
Kim J,Lee D,Jeon W,et al. Security analysis and improvements of two-factor mutual authentication with key agreement in wireless sensor networks[J]. Sensors, 2014, 14(4): 6443-6462. DOI:10.3390/s140406443
[21]
Hurtado Alegría J A,Bastarrica M C,Bergel A. AVISPA:A tool for analyzing software process models[J]. Journal of Software(Evolution and Process), 2014, 26(4): 434-450. DOI:10.1002/smr.1578
[22]
Armando A,Basin D,Boichut Y,et al.The AVISPA tool for the automated validation of internet security protocols and applications[M]//Computer Aided Verification.Berlin:Springer,2005:281–285.
[23]
Viganò L. Automated security protocol analysis with the AVISPA tool[J]. Electronic Notes in Theoretical Computer Science, 2006, 155: 61-86. DOI:10.1016/j.entcs.2005.11.052