计算机系统应用  2022, Vol. 31 Issue (1): 267-272   PDF    
轻量级的一对多认证和密钥协商方案
杨鹏飞, 李雅斌, 严翌瑄     
长安大学 信息工程学院, 西安 710064
摘要:在物联网数据传输过程中, 需要认证通信双方的身份和加密传输数据. 目前, 已有大量的认证和密钥协商方案已经被设计, 但是, 现有方案容易遭受多种攻击, 例如智能卡被盗攻击, 拒绝服务攻击等; 针对现有方案存在问题, 本文提出了一种轻量级的一对多认证和密钥协商方案, 在用户端和传感器端分别使用椭圆曲线密码学和异或操作来实现相互认证, 利用预共享密钥的方法将传感器端扩展为多个. 最后, 通过功能比较, 计算代价, 通信代价对比, 显示所提方案优于其他方案, 更适合于多传感器场景.
关键词: 认证    密钥协商    椭圆曲线密码学    匿名性    物联网    
Lightweight One-to-many Authentication and Key Agreement Scheme
YANG Peng-Fei, LI Ya-Bin, YAN Yi-Xuan     
School of Information Engineering, Chang’an University, Xi’an 710064, China
Abstract: In the data transmission process of the Internet of Things, it is necessary to authenticate the identities of the communicating parties and encrypt the transmitted data. At present, a large number of authentication and key agreement schemes have been designed, but they are vulnerable to various attacks, such as smart card stolen attack and denial of service attack. In view of the problems of existing schemes, this study proposes a lightweight one-to-many authentication and key agreement scheme, using elliptic curve cryptography and XOR operation on the user and the sensor sides respectively to achieve mutual authentication and the method of a pre-shared key to expand the sensor side to multiple ones. Finally, through the comparison of functions, computation cost, and communication cost, it is shown that the proposed scheme is better than other schemes and is more suitable for multi-sensor scenarios.
Key words: authentication     key agreement     elliptic curve cryptography     anonymity     Internet of Things (IoT)    

物联网[1]技术的发展, 极大地便利了人们的生活, 人们足不出户就可以获取千里之外的传感器收集的实时数据, 然而, 由于数据在公开信道中传输的自然特性, 使得信息被截获, 篡改等事件时常发生, 为了保证在公开信道中传输数据的安全性, 研究人员将认证和密钥协商技术应用于物联网环境中.

1976年, ${\text{Diffie-Hellman}}$ 第一次提出密钥协商的概念[2], 随后, 研究人员在其思想影响下, 提出了大量的密钥协商方案[3-9]; 然而, 现有的大多数方案存在以下两个问题: (1)很多方案在传感器端采用昂贵的双线性对或椭圆曲线密码学技术, 这不太适合于资源受限的传感器; (2)大多数方案为一个用户和一个传感器密钥协商方案, 当用户想要访问n个传感器数据时, 需要将协议运行n次, 这样极大地增加了用户端的负担, 浪费了计算和通信资源.

基于以上存在问题, 本文提出了一个一对多认证和密钥协商方案, 其中传感器端使用了异或, 哈希等计算代价较小的操作, 并且实现了一个用户和n个传感器同时进行密钥协商.

1 背景知识 1.1 椭圆曲线[10]

$q$ 是一个大素数, ${F_q}$ 表示阶数为 $q$ 的有限域, ${F_q}$ 上的椭圆曲线E定义为满足等式 ${y^2} = {x^3} + ax + b{\text{ mod }}p$ 的点 $(x,y)$ 的集合, 其中, $a,b$ 满足 $4{a^3} + 27{b^2} \ne 0{\text{ mod }}q$ , 无穷远点 $O$ E上点形成循环加法群 $ \mathbb{G} $ , 阶数是 $q$ , 生成元是P.

1.2 椭圆曲线上困难问题假设[11]

椭圆曲线计算性 ${\text{Diffie-Hellman}}$ 问题( ${\text{ECCDHP}}$ )假设: 给定任意 $P,aP,bP \in \mathbb{G}$ , ( $a,b \in Z_q^*$ ), 在多项式时间算法内很难算出 $abP \in \mathbb{G}$ .

1.3 哈希函数

哈希 ${\text{(Hash)}}$ 函数是一个确定的函数, 它可以将任意长度的消息映射为固定长度.

哈希函数特点:

(1)输入可变: 输入可以是任意位数的数据.

(2)输出定长: 输出的长度是固定位数.

(3)单向性: 对于任意消息M, 在多项式时间内计算 $H(M)$ 是可行的; 相反, 已有任意 $h = H(M)$ , 在多项式时间内计算M是不可行的.

1.4 网络模型

所提方案的网络模型如图1所示, 模型中包含3个实体, 分别是网关 $ GWN $ , 用户 $ {U_i} $ , 传感器 ${S_j}(j = 1,2, \cdots, n)$ .

图 1 网络模型图

(1) $ GWN $ : 表示一个可信实体, 主要负责用户 $ {U_i} $ 和传感器 ${S_j}(j = 1,2, \cdots, n)$ 的注册, 同时协助用户 $ {U_i} $ 和传感器 ${S_j}$ 完成相互认证.

(2) $ {U_i} $ : 表示第 $ i $ 个用户, 在 $ GWN $ 处注册获得认证信息, 通过认证信息证明自己的合法身份, 经过 $ GWN $ 认证后, 可以访问传感器数据.

(3) $ {S_j} $ : 表示第 $ j $ 个传感器, 向 $ GWN $ 注册获得认证信息, 利用认证信息证明身份的合法性, 经过 $ GWN $ 认证后, 可以向用户提供相应数据.

1.5 安全性需求

匿名性: 方案应该保证攻击者不能通过在公开信道中传输的消息揭露用户或传感器的真实身份.

不可追踪性: 方案应该满足不可追踪性, 即攻击者无法将同一实体在公开信道中传输的消息关联在一起.

用户仿冒攻击: 攻击者不能伪造用户的登录信息, 成功通过网关验证, 并与传感器建立会话密钥.

网关仿冒攻击: 攻击者不能伪造网关信息, 完成与用户或传感器的双向认证.

传感器仿冒攻击: 攻击者不能伪造传感器秘密信息, 成功通过网关验证, 并与用户建立会话密钥.

重放攻击: 攻击者不能将之前在公开信道中传输的消息重新传输, 从而误导其他实体认为该消息为合法实体所发.

中间人攻击: 攻击者不能在用户和网关, 网关和传感器之间发送消息, 让通信双方误以为在与合法实体通信.

拒绝服务攻击: 攻击者不能向网关发送大量的无用消息来造成网关瘫痪.

智能卡被盗攻击: 敌手即使获得合法用户的智能卡, 也无法仿冒用户发起认证和密钥协商请求.

2 本文方案 2.1 系统建立

网关 $ GWN $ 选择一个阶数为 $ q $ 的群 $ \mathbb{G} $ , 生成元是 $ P $ , 选择 $ s \in Z_q^* $ 作为自己的私钥, 计算相对应公钥 $ S = s \cdot P $ .

$ GWN $ 选择哈希函数 $ h( \cdot ):{\{ 0,1\} ^*} \to Z_q^* $ , 公开系统参数: $ (P,\mathbb{G},q,S,h( \cdot )) $ .

2.2 用户注册

用户 $ {U_i} $ 要想成为合法授权用户, 必须要和网关 $ GWN $ 注册. 具体过程如图2所示.

(1) $ {U_i} $ 选择自己的身份 $ UI{D_i} $ , 密码 $ P{W_i} $ 和随机数 $ t \in Z_q^* $ , 计算 $ BP{W_i} = h(P{W_i}||t) $ , 将 $ (UI{D_i},BP{W_i}) $ 通过安全信道发送给 $ GWN $ .

(2) $ GWN $ 收到后, 计算 $ a = h(UI{D_i}||s) $ , $ EP{W_i} = $ $ BP{W_i} \oplus a $ , 在智能卡中存储 $ (EP{W_i},P,h( \cdot )) $ , 最后, 将智能卡安全地发送给 $ {U_i} $ .

(3) $ {U_i} $ 收到后, 输入身份 $ UI{D_i} $ 和密码 $ P{W_i} $ , 计算 $ A = h(UI{D_i}||P{W_i}) \oplus t $ , $ B = h(UI{D_i}||BP{W_i}||t) $ , 存储 $ (A,B) $ , 此时, 智能卡中包含 $ (A,B,EP{W_i},P,h( \cdot )) $ 信息.

图 2 用户注册

2.3 传感器注册

所有传感器需要和网关 $ GWN $ 注册. 具体过程如图3所示.

图 3 传感器注册

(1)传感器 ${S_j}(j = 1,2, \cdots, n)$ 选择自己的身份 $ SI{D_j} $ , 通过安全信道发送给网关 $ GWN $ .

(2) $ GWN $ 收到后, 选择一个随机数 $ {r_{gwn - s}} \in Z_q^* $ 作为所有传感器的共同密钥, 同时计算传感器私钥 $ s{k_j} = $ $ h(SI{D_j}||s) $ , 将 $ ({r_{gwn - s}},s{k_j}) $ 安全地发送给 $ {S_j} $ .

(3) $ {S_j} $ 收到后, 将 $ ({r_{gwn - s}},s{k_j}) $ 存储在自己的内存中.

2.4 相互认证和密钥协商

当用户 $ {U_i} $ 想要访问传感器 ${S_j}(j = 1 ,2,\cdots, n)$ 的数据时, 必须与所有传感器协商出会话密钥. 具体过程如图4所示.

(1) $ {U_i} $ 输入身份 $ UI{D_i} $ , 密码 $ P{W_i} $ , 计算 $ t = A \oplus h(UI{D_i}|| $ $ P{W_i}) $ , $ BP{W_i} = h(P{W_i}||t) $ , $ B' = $ $ h(UI{D_i}||BP{W_i}||t) $ , 验证等式 $ B' = B $ 是否成立, 若不成立, 说明输入的身份或密码有错误; 提示用户输入正确的身份和密码; 否则, $ {U_i} $ 选择随机数 $ b \in Z_q^* $ , 时间戳 $ T{S_1} $ , 计算 $ a = EP{W_i} \oplus BP{W_i} $ , $ {M}_{1}= $ $ b\cdot P $ , $ {\text{ }}pk $ $ =h(b\cdot S) $ , $ c = h(a||T{S_1}) $ , $ {M_2} = UI{D_i} \oplus h({M_1}||pk $ $ ||T{S_1}) $ , $ {M_3} = h(UI{D_i}||GID||a||T{S_1}) $ , 通过公开信道发送消息 $ ({M_1},{M_2},{M_3},T{S_1}) $ 到网关 $ GWN $ .

(2) $ GWN $ 收到消息后, 检查是否 $ |T{S_1} - T{S'_1}| \le \Delta TS $ , 成立则继续计算 $ pk = h(s{M_1}) $ , $ UI{D'_i} = {M_2} $ $ \oplus h({M_1}||pk||T{S_1}) $ , $ a' = h(UI{D'_i}||s) $ , $ {M'_3} = h(UI{D'_i} $ $ ||GID||a'||T{S_1}) $ , 验证等式 $ {M'_3} = {M_3} $ 是否成立, 若成立则选择时间戳 $ T{S_2} $ , 计算 $ c = h(a'||T{S_1}) $ , $ {M_4} = {r_{gwn - s}} \oplus c $ , $ {M_5} = UI{D'_i} \oplus h({r_{gwn - s}}) $ , $ {M_6} = h(UI{D'_i} $ $ ||c||T{S_2}) $ , 最后, $ GWN $ 将消息 $ ({M_4},{M_5},{M_6}, $ $ T{S_2}) $ 广播给所有传感器.

(3)传感器 $ {S_j} $ 收到消息后, 检查是否 $ |T{S_2} - T{S'_2}| \le $ $ \Delta TS $ , 计算 $ c' = {M_4} \oplus {r_{gwn - s}} $ , $ UI{D'_i} = $ $ {M_5} \oplus h({r_{gwn - s}}) $ , $ {M'_6} = h(UI{D'_i}||c'||T{S_2}) $ , 验证等式 $ {M'_6} = {M_6} $ 是否成立, 若成立则选择时间戳 $ T{S_3} $ , 计算 $ {M_7} = {r_{gwn - s}} \oplus SI{D_j} $ , $ {M_8} = h({r_{gwn - s}}||SI{D_j}||s{k_j}||T{S_3}) $ , 传感器将消息 $ ({M_7},{M_8}, $ $ T{S_3}) $ 发送给 $ GWN $ .

(4) $ GWN $ 收到消息后, 检查是否 $ |T{S_3} - T{S'_3}| \le \Delta TS $ , 计算 $ SI{D'_j} = {M_7} \oplus {r_{gwn - s}} $ , 接着验证传感器的合法性, 计算 $ s{k_j} = h(SI{D_j}||s)(j = 1,2 \cdots n) $ , $ {M'_8} = h({r_{gwn - s}}||SI{D_j}||s{k_j}|| $ $ T{S_3}) $ , 验证是否 $ {M'_8} = {\text{ }}{M_8} $ ; 若成立, 则说明传感器是合法的. $ GWN $ 选择时间戳 $ T{S_4} $ , $ T{S_5} $ , 计算 $ K = \displaystyle\sum\limits_{j = 1}^n {s{k_j}} $ , $ {M_9} = $ $ h(K||{r_{gwn - s}}{\text{||}}T{S_4}) $ , $ {M_{10}} = {M_9} \oplus {r_{gwn - s}} $ , $ SK = h(UI{D'_i}||c|| $ $ GID||{M_9}) $ , $ {M_{11}} = $ $ h(SK||{M_9}||{r_{gwn - s}}||T{S_4}) $ , $ {M_{12}} = {M_9} \oplus $ $ h(pk||T{S_5}) $ , $ {M_{13}} = h(SK||{M_9}||T{S_5}) $ , 广播消息 $ ({M_{10}},{M_{11}}, $ $ T{S_4}) $ 给所有传感器, 发送消息 $ ({M_{12}},{M_{13}},T{S_5}) $ $ {U_i} $ .

(5) $ {S_j} $ 收到消息后, 检查是否 $ |T{S_4} - T{S'_4}| \le \Delta TS $ , 成立则计算 $ {M'_9} = {M_{10}} \oplus {r_{gwn - s}} $ , 会话密钥 $ SK = h(UI{D'_i}||c'|| $ $ GID||{M'_9}) $ , 验证等式 $ {M'_{11}} = h(SK|| $ $ {M'_9}||{r_{gwn - s}}||T{S_4}) $ 是否成立.

(6) $ {U_i} $ 收到消息后, 检查是否 $|T{S_5} - T{S'_5}| \le \Delta TS$ , 成立则继续计算 $ {M'_9} = {M_{12}} \oplus h(pk||T{S_5}) $ , $ SK = h(UI{D_i}|| $ $ c||GID||{M'_9}) $ , 验证 $ {M'_{13}} = h(SK||{M'_9}|| $ $ T{S_5}) $ .

通过上述过程, 用户 $ {U_i} $ 和所有传感器之间协商出共同的会话密钥 $ SK $ . 此时, 用户 $ {U_i} $ 就可以访问所有传感器数据了.

3 协议分析 3.1 安全性分析

本小节将分析第1.5节中所给的安全性需求.

用户匿名性: 方案中, 用户身份被 $ pk = bsP $ $ h({r_{gwn - s}}) $ 保护, 只有知道主私钥 $ s $ , 随机数 $ b $ $ {r_{gwn - s}} $ 才能计算出用户身份 $ UI{D_i} $ , 因此, 攻击者不可能知道用户身份, 所以, 该方案提供了用户匿名性.

用户不可追踪性: 方案中, 用户身份被 $ pk = bsP $ 和时间戳 $ T{S_1} $ 保护, 随机数 $ b $ $ T{S_1} $ 在每次认证和密钥协商过程中都是变化的, 因此不能将消息关联起来, 所以, 方案提供了用户不可追踪性.

传感器匿名性: 传感器 $ {S_j} $ 的身份被共同密钥 $ {r_{gwn - s}} $ 保护, 只有网关 $ GWN $ 和合法传感器才拥有 $ {r_{gwn - s}} $ , 因此, 方案提供了传感器匿名性.

用户仿冒攻击: 方案中, 只有正确输入用户的身份和密码才能通过智能卡认证, 因此, 除授权用户外, 其他实体不能通过认证.

网关仿冒攻击: 只有拥有主私钥s才能仿冒网关, 然而s只有网关知道, 所以, 其他实体无法仿冒网关.

传感器仿冒攻击: (1)传感器外部仿冒攻击: 未授权传感器想要仿冒授权传感器, 必须知道共同密钥 $ {r_{gwn - s}} $ 和想要仿冒传感器的私钥 $ s{k_j} $ ; (2)传感器内部仿冒攻击: 当授权传感器想要仿冒网络模型中的其他传感器, 必须知道想要仿冒传感器的私钥 $ s{k_j} $ ; 显然, 其他实体是无法得到这些秘密值, 因此方案可以抵抗传感器仿冒攻击.

重放攻击: 方案中传输的消息中都包含了时间戳 $ T{S_i} $ , 因此所提方案可以抵抗重放攻击.

中间人攻击: 要发起中间人攻击需要知道实体的秘密信息, 但攻击者无法获得这些信息, 因此, 方案可以抵抗中间人攻击.

拒绝服务攻击: 当攻击者发来大量消息时, 实体首先会检查其中包含的时间戳 $ T{S_i} $ , 当时间戳无效时, 就会丢弃消息, 因此可以抵抗拒绝服务攻击.

图 4 相互认证和密钥协商

智能卡被盗攻击: 方案中, 智能卡中含有信息 $ (A,B,EP{W_i},P,h( \cdot )) $ , 攻击者需要得到 $ a $ 来发起协商请求, 然而 $ a $ $ UI{D_i} $ , $ P{W_i} $ 保护, 攻击者无法获得 $ UI{D_i} $ $ P{W_i} $ , 所以方案可以抵抗智能卡被盗攻击.

3.2 功能比较

本小节将所提方案与文献[12-15]进行功能比较. 如表1, 其中, R1: 相互认证; R2: 用户匿名性; R3: 用户不可追踪性; R4: 传感器匿名性; R5: 用户仿冒攻击; R6: 网关仿冒攻击; R7: 传感器外部仿冒攻击; R8: 传感器内部仿冒攻击; R9: 重放攻击; R10: 中间人攻击; R11: 拒绝服务攻击; R12: 一对多方案. 从表1中可以看出, 文献[12-14]均为一个用户和一个传感器密钥协商方案, 且文献[12]不满足用户匿名性, 文献[14]不能抵抗拒绝服务攻击, 文献[15]虽然为一个用户和多个传感器密钥协商方案, 但不能抵抗传感器内部仿冒攻击.

表 1 功能比较

3.3 计算代价比较

表2列出了所提方案与文献[12-15]所使用的密码学操作运行的平均时间, 本文使用MIRACL Crypto SDK[16]得到上述数据, 运行环境为 ${\text{2}}{\text{.53 GHz}}$ , ${\text{i7CPU}}$ ${\text{4 GB}}$ 内存的 ${\text{64}}$ ${\text{Windows 10}}$ 操作系统. 表3给出了所提方案和文献[12-15]计算代价比较, 图5给出了计算代价与传感器数量关系图, 从图中可以看出: 文献[13, 14]访问一个传感器时, 计算代价已经超过了所提方案, 虽然文献[12, 15]在访问少量传感器时, 计算代价小于所提方案, 但当传感器数量分别超过30和91时, 计算代价将会超过所提方案, 因此, 所提方案更适合于多传感器场景.

3.4 通信代价比较

为了更好地比较通信代价, 本文做了如下假定: 假定 $ ECC $ $ |\mathbb{G}| $ 的长度为160 bits; 身份, 哈希函数的输出, 随机数的长度均为160 bits; 对称加密的密文长度为128 bits; 时间戳的长度为32 bits; 表4给出了所提方案与文献[12-15]通信代价比较, 图6给出了通信代价与传感器数量关系图; 从图中可以看出: 随着传感器数量的增加, 所提方案的通信代价低于文献[12-14], 虽然所提方案的通信代价高于文献[15], 但在功能和计算代价优于文献[15].

表 2 密码运算运行时间

表 3 具体方案计算代价对比 (ms)

图 5 计算代价比较

表 4 具体方案通信代价对比 (bits)

图 6 通信代价比较

4 结论与展望

本文利用椭圆曲线密码学技术, 异或等操作提出了一个轻量级的一对多认证和密钥协商方案, 在网关的帮助下, 用户和多个传感器之间实现了相互认证并且协商出对称加密会话密钥, 减少了用户端的计算代价和通信代价; 预共享共同密钥方法的使用使得所提方案具有扩展性, 更符合现代物联网场景, 性能比较表明, 所提方案在计算和通信代价方面更为高效. 接下来的研究工作是如何实现用户端是多个用户的认证和密钥协商方案, 这样可以进一步减少传感器端的计算和通信代价.

参考文献
[1]
任补补. 物联网中无线传感器网络安全认证方法研究[硕士学位论文]. 兰州: 兰州理工大学, 2020.
[2]
Diffie W, Hellman M. New directions in cryptography. IEEE Transactions on Information Theory, 1976, 22(6): 644-654. DOI:10.1109/TIT.1976.1055638
[3]
Al-Turjman F, Ever YK, Ever E. Seamless key agreement framework for mobile-sink in IoT based cloud-centric secured public safety sensor networks. IEEE Access, 2017, 5: 24617-24631. DOI:10.1109/ACCESS.2017.2766090
[4]
Mo JQ, Li KM. A secure and efficient anonymous user authentication and key agreement scheme for global mobility networks based on bilinear pairing. 2020 IEEE 3rd International Conference on Electronic Information and Communication Technology (ICEICT). Shenzhen: IEEE, 2020. 579–584.
[5]
Khatoon S, Rahman M, Alrubaian M, et al. Privacy-preserved, provable secure, mutually authenticated key agreement protocol for healthcare in a smart city environment. IEEE Access, 2019, 7: 47962-47971. DOI:10.1109/ACCESS.2019.2909556
[6]
Hamid HAA, Rahman M, Hossain MS, et al. A security model for preserving the privacy of medical big data in a healthcare cloud using a fog computing facility with pairing-based cryptography. IEEE Access, 2017, 5: 22313-22328. DOI:10.1109/ACCESS.2017.2757844
[7]
孟磊. 基于双线性对的高效身份认证密钥协商协议研究[硕士学位论文]. 重庆: 重庆邮电大学, 2020.
[8]
Ma MM, He DB, Wang HQ, et al. An efficient and provably secure authenticated key agreement protocol for fog-based vehicular Ad-Hoc networks. IEEE Internet of Things Journal, 2019, 6(5): 8065-8075. DOI:10.1109/JIOT.2019.2902840
[9]
Jia XY, He DB, Kumar N, et al. Authenticated key agreement scheme for fog-driven IoT healthcare system. Wireless Networks, 2019, 25(8): 4737-4750. DOI:10.1007/s11276-018-1759-3
[10]
Koblitz N. Elliptic curve cryptosystem. Mathematics of Computation, 1987, 48(177): 203-209. DOI:10.1090/S0025-5718-1987-0866109-5
[11]
光笑黎, 张露露, 刘继增. 一种轻量级基于证书的认证密钥协商方案. 计算机系统应用, 2021, 30(1): 264-269. DOI:10.15888/j.cnki.csa.007806
[12]
Wazid M, Das AK, Odelu V, et al. Design of secure user authenticated key management protocol for generic IoT networks. IEEE Internet of Things Journal, 2018, 5(1): 269-282. DOI:10.1109/JIOT.2017.2780232
[13]
Soni P, Pal AK, Islam SKH. An improved three-factor authentication scheme for patient monitoring using WSN in remote health-care system. Computer Methods and Programs in Biomedicine, 2019, 182: 105054. DOI:10.1016/j.cmpb.2019.105054
[14]
Kumar D, Singh HK, Ahlawat C. A secure three-factor authentication scheme for wireless sensor networks using ECC. Journal of Discrete Mathematical Sciences and Cryptography, 2020, 23(4): 879-900. DOI:10.1080/09720529.2019.1627072
[15]
Vinoth R, Deborah LJ, Vijayakumar P, et al. Secure multifactor authenticated key agreement scheme for industrial IoT. IEEE Internet of Things Journal, 2021, 8(5): 3801-3811. DOI:10.1109/JIOT.2020.3024703
[16]
Shamus S. Multi Precision Integer and Rational Arithmetic Cryptographic Library (MIRACL). http://www.certivox.com/miracl/