1. 引言
物联网开启了万物互联时代,尤其是5G的普及和应用,将会构建一个智能化和数字化的世界,物联网的应用将逐渐延伸到我们的生活中。面对大量的智能设备,传统的终端–云端网络架构存在缺陷,当大量的数据传输到云端时增加了云中心的负担,而且云服务器与用户设备的距离较远,会引起能耗问题并且造成通信延迟 [1]。为解决云计算问题,引入了边缘计算 [2],将部分计算和数据转移到终端附近,即在靠近终端处可以找到计算和存储节点的边缘设备。边缘计算环境下的网络结构为终端–边缘–云端,此时用户之间需要跨域通信,涉及到身份认证与密钥协商。
已有的云计算环境下物联网跨域认证问题,主要是基于PKI的,即用户的公私钥由数字证书发放,解决了用户密钥托管问题,避免了无证书密码体系的复杂搭建过程。文献 [3] 中移动设备的公私钥由基于证书的签名方法得到,不涉及复杂的证书管理,当设备访问外域网络时需进行全认证和重认证,提高了认证效率。文献 [4] 研究了边缘环境下的物联网认证架构,提出一种基于标识的密钥管理方法,并设计了基于身份标识的认证方案。而区块链的引入弥补了数字证书需要认证、管理、更新等不足,其核心优势是去中心化,数据安全透明。文献 [5] 利用区块链的优势对密钥托管问题进行优化,结合区块链证书机制和改进的SM9密钥生成算法进行身份认证,并保存认证信息,通过查询过程,设计快速的重认证协议。文献 [6] 提出一种基于区块链的分布式车载雾服务轻量级匿名认证,实现了跨数据中心身份认证。文献 [7] 基于区块链和边缘计算,提出了分布式可信身份验证系统,设计的非对称加密算法防止区块链节点和终端之间的连接被攻击,提高了认证效率。文献 [8] 基于联盟链,将终端设备的证书哈希值存于区块链上,避免了复杂的证书验证过程。
综上,边缘计算弥补了云计算的不足,就跨域认证问题,本文提出了基于口令和生物特征的用户间跨域认证与密钥协商协议,使得不同域中的用户可以完成注册和认证密钥协商。该协议通过区块链共识机制选取性能高的边缘服务器,参与终端注册和认证与密钥协商阶段。生物认证技术的利用提高了用户在认证密钥协商阶段的安全性和便捷性,从而实现了有效安全的跨域认证目标。
2. 预备知识
2.1. 椭圆曲线上离散对数困难问题 [9]
假设E是一条椭圆曲线,g为p阶循环群G的本原元,考虑方程
(p是一大素数),给定y,g,p,其中,
,计算x是不可行的。
2.2. 哈希函数
哈希函数可以将不同长度的字符串,转换成固定长度的散列值,如果输入的数据略有不同,那么输出完全不同。单向哈希函数
是满足以下条件的函数:
1) 函数的输入x为任意长度,输出的
是固定长度。
2) 给定函数h和输入y,
在计算上是不可行的。
3) 对任何给定的x,寻找
使得
在计算上是不可行的。
2.3. 模糊提取器
生物特征的模糊性是指对于生物特征,在每次提取时与生物模板比对会有细微的差别。若将生物信息直接用于哈希函数,则注册阶段与认证阶段存在容错性问题,为此提出了模糊提取器 [10]。
模糊提取器主要包含两个算法,生成算法Gen和恢复算法Rep:
1)
,输入生物信息B,Gen输出提取的随机字符串R和辅助字符串P。
2)
,输入用户的生物信息B'与辅助字符串P,Rep可以从B'和P中恢复R。
2.4. ElGamal加密 [11]
给定素数p及其本原根g,用户A按如下方式生成密钥对:
1) 随机生成整数a,使得
。
2) 计算
。
3) A的私钥为a,公钥为
。
用户B通过用户A的公钥按如下方式计算密钥:
1) 选择任意整数b,使得
。
2) 计算密钥
。
3. 系统结构与区块链技术
3.1. 系统结构
本文基于区块链的双因子跨域认证方案由多个域联接组成,每个域都独立存在,实现域内用户的注册。用户
与模糊提取器FE相连接,通过区块链共识机制选择域内计算能力较强的,配置较高的边缘设备(认证服务器) ES,物联网终端区块链中存储由证书中心CA颁发的数字证书的哈希值,方便之后和用户端存储的哈希值进行对比,从而完成用户身份验证,其中,ES和CA都是选自区块链中的节点。
3.2. 区块链技术 [12]
在区块链中,每个区块由区块高度和区块哈希组成的区块标识进行识别,包含区块头和区块体:前一区块包含后一区块的哈希值,当前时间和随机数;区块体中记录某一时间段的交易信息。因此,区块与区块之间形成链式结构,在其上可以进行数据的计算和存储。
本文采用基于联盟链的DPOS (股权授权证明)共识机制,其原理是让所有股民(代表所有节点)进行投票,由此产生代表,即超级节点,这些代表轮流生成区块负责记账,除代表外的其余节点同步账本实现区块链内的共识。
4. 基于口令和生物特征的跨域认证密钥协商协议
本文设计的跨域协议主要包括用户注册(见图1)、认证协商(见图2)两个阶段,在边缘认证服务器上完成注册,在边缘设备处比对用户的随机密钥,以及数字证书的哈希值,完成用户身份的双重验证,最后协商密钥。本文中主要符号的意义如表1所示。
4.1. 注册阶段
1)
域中用户
在其端口输入
,
,通过模糊提取器
采集生物特征
。
2)
利用生成算法
,获得一随机密钥
和辅助字符串
,将口令
作哈希运算,并删除
,
。通过安全信道向
发送注册请求
。
3)
端用私钥解密
,判断
是否已注册,若已注册,则终止;否则,保存
,
,
。对
和
进行签名,向CA端发送
申请证书。
4) CA端用
的公钥验证签名
,将生成的数字证书
发送至区块链,并保存其哈希值
。
5) CA端向
端发送数字证书交易
。
6) CA端将证书哈希值
发送给
并保存。
4.2. 认证协商阶段
域中用户
与
域中用户
需要取得联系,首先在
端验证
的身份,
端对
端进行认证,通过后
和
可以保持通信。
1)
端口输入
,
,
,
采集生物特征
。
2)
端计算
的哈希值
,请求访问
并发送
。
3)
端用私钥解密
,并验证
与
是否相等,若不相等,则终止认证;否则将
返回给
。
4)
端采用恢复算法
获得用户生物特征的随机密钥
,对其加密为
发送给
。
5)
端用其私钥解密收到的信息,判断
是否成立,若成立,则向
发送认证请求
。
6)
端首先验证随机数
的有效性,接着发送
,请求
注册时在区块链保存的证书的哈希值。
7) 区块链接收到请求信息后,将哈希值
返回给
。
8)
端判断
是否成立,若成立,则返回
表明认证成功;若不成立,则返回认证失败。
9)
用私钥对
进行签名,其中,
是随机数,发送至
。
10)
用
的公钥验证
,选随机数
作签名
,并计算会话密钥
。发送给
,
用
的公钥验证签名并计算
是否成立,若成立,则会话密钥为
。
Figure 2. Certification negotiation stage
图2. 认证协商阶段
5. 安全性分析
5.1. 认证安全性
注册阶段和认证协商阶段,模糊提取器采用生成和恢复算法,获得随机字符串作为生物特征因子参与生物识别。将数字证书的哈希值存储在区块链节点上,避免了丢失和被篡改。用户
需要在
和
端完成双重验证,消息由公钥加密后传输,私钥是未知的,因此该认证是安全的。
5.2. 会话密钥安全性
密钥协商是基于DH算法,采用Canetti和Krawczyk提出的签名认证器 [13],将原来的
,
进行签名,发送给对方,转换为对签名的验证,因此该密钥协商过程是安全的。
5.3. 抗重放攻击
认证协商阶段,用户请求访问边缘认证服务器时发送
,其中
是随机数。还有请求认证
时也会加入随机数,当区块链接收请求消息
时,其上的节点会验证随机数的有效性。因此即使攻击者截取了消息,在验证随机数时效性时也会失败。
5.4. 抗口令猜测攻击
用户端输入口令后,在模糊提取器端计算口令的哈希值,随即删除口令,使其无法被非法用户窃取。又哈希函数具有单向性,攻击者无法恢复真实的口令,之后在信道上传输也具有安全性。
5.5. 前向安全性
用户在协商密钥过程中,用ElGamal加密算法计算各自的公私钥,其中a,b是随机数,在每次加密时计算得
和
也是随机的。另外,该加密算法是基于离散对数困难问题的,攻击者很难得到会话密钥,即使攻击者破解了前一次会话密钥后,仍然无法知道下一次会话时用户双方产生的密钥。
6. 性能分析
本文选取已有的跨域认证方案进行比较,只讨论认证协商阶段的计算效率(见表2)。由于Hash函数运算的单次计算时间很小,可以忽略其运算量。下面比较不同协议中数字签名与验证(Sig/Ver)、公钥加解密(Ep/Ds)、双线性对(Ee)与指数运算(EDex)。
Table 2. Comparison of computational efficiency
表2. 计算效率对比
实验环境为:英特尔酷睿i5-7300HQ,2.5 GHz主频,8 GB内存,Win10,64位,Python3.9。其中,执行一次签名与验证的时间为4.363 ms,执行一次加解密的时间为5.851 ms,执行一次双线性对的时间为14.744 ms,执行一次指数运算的时间为10.463 ms。
通过对比可知,本文方案的运算量是
,与方案1相比,本文方案多一次公钥加解密,但无双线性对运算。本文是基于口令和生物特征设计的协议,用户不需要携带智能卡,避免了智能卡的丢失。
7. 结束语
本文基于区块链技术,在边缘计算环境下,设计了一种双因子的跨域认证密钥协商协议,通过边缘设备对用户进行认证,方便了用户且提高了认证效率,减轻了云端认证的压力。在保证安全性的基础上,利用口令、生物特征完成对用户的身份认证。分析表明,本文提出的跨域认证方案具有较好的计算性能和较高的安全性。