22.12论文笔记5:Blockchain-Based Secure and Lightweight Authentication for Internet of Things
Blockchain-Based Secure and Lightweight Authentication for Internet of Things | IEEE Journals & Magazine | IEEE Xplore基于区块链的安全轻量级物联网身份验证
一.引言
在过去十年里物联网广泛应用于各种领域,包括教育、商业、政府和医疗保健。主要问题:确认设备真实性,也就是通信过程中,对方不是第三方伪造,还要在该过程中保护设备安全和隐私
受限:物联网系统异构性,它由诸多子系统组成,每个应用场景安全需求不同,不能一概而论;设备资源受限,无法实施高级解决方案,结合以上两点,PKI不是很适用
本文提出结合区块链技术和rabin算法的轻量级身份验证方案,适用于资源受限的设备和应用场景,Rabin算法保证⾝份验证过程的安全性和效率,区块链技术则⽤于增强安全性并为该系统提供可扩展性,本文还通过提供安全性分析和详细实验来证明所提方案的安全性和实用性。
二.预备知识
Rabin基于求模合数平方根和⼤数分解的复杂问题,比较类似于RSA。与 RSA 和 ECC 相⽐,主要优势之⼀是 Rabin技术更简单、更⾼效。
1.密钥产生,选择两个大素数p、q满足p=q=3mod4,计算n=p*q,n作为公钥,p、q作为私钥。
2.加密
C=m^2mod n m是明文,c是对应密文
3.解密
即解 x^2=c mod n,可分解为x^2=c mod p,x^2=c mod q
使用费马小定理求解出c的平方根mp和mq;
使用扩展欧几里得算法查找p-1,q-1;
使用中国剩余定理求解出四个解 m1,m2,m3,m4
其中只有一个是正确的密文,预先在明文中做出标记即可,本文使用的是消息验证码
Rabin加密仅需运行一次mod平方运算,十分适合资源受限的情况
三.系统架构
A.系统模型
可以看到这个模型由 DM、物联⽹设备、数据中⼼的服务器和区块链组成。
假设 DM 为该系统⽣产不同的物联⽹设备和服务器,并负责初始化, 将相关信息上传到智能合约,包括公钥和设备到期时间。系统中可以有多个DM。假设 DM 已经由区块链的系统创建者进⾏了⾝份验证,也就是完全可信的。
物联⽹设备:该系统中有各种类型的物联⽹设备。其中⼤多数是资源受限的,需要将从环境中收集的数据报告给不同的服务器。因此,需要与服务器进⾏⾝份验证以建⽴安全通信的通道;否则,服务器将不信任其提供的数据。
3)服务器:这个系统中也有多个服务器。他们从不同的设备接收数据并进⾏数据处理,以便为公众提供服务。因此,这些服务器必须经过设备⾝份验证,以防⽌恶意⽅获取敏感信息。
4)区块链:区块链负责记录智能合约中的公钥和到期时间信息。在本系统中,区块链是作为一个不可篡改的数据库,并提供可扩展性,而本应用场景十分契合区块链分布式的网络结构。
B. 对手模型
下面定义了对手模型以评估安全特性。
1)首先是所有实体,DM 由区块链的系统创建者授权和认证;
服务器可能通过获取辅助公共信息甚至与其他恶意实体勾结,获取设备(或用户)的秘密信息;
设备和服务器都可以通过智能合约获取包括⾝份和公钥在内的公共信息。
2)本论文遵循广泛接受的Dolev-Yao(DY)威胁模型来定义敌手A的能力。在此模式下,服务器和设备之间身份验证期间的通信通道是不安全的。
假设A能够窃听网络系统中的所有通信通道,以获取设备/服务器的私人信息或影响其他用户的行为。
A可以模拟合法用户以生成错误消息,也可以修改、拦截或重播现有消息以影响系统。
此外,A可能与某些服务器串通获取设备/用户的敏感信息。
C. 安全要求
1)相互身份验证:访问网络系统的实体需要注册,并且他们能够识别和验证系统中的其他实体。本系统也应识别并禁止未经授权的实体进入。
2)密钥协议:为了便于后续的安全通信,应在设备和服务器之间成功相互认证后建立会话密钥,以确保传输的数据。
3)身份匿名:在通信过程中,每个设备/用户的身份对于服务器或其他不受信任的第三方应该是匿名的。
4)不可否认性:发送消息后,无论设备还是服务器都不能否认该消息最初不是自己发送的。
5)抗攻击性:物联网的实用身份验证方案应该提供针对各种类型的攻击的弹性,包括窃听攻击、重放攻击、冒充攻击和中间人攻击。
四.协议构造
A.系统初始化阶段
SF确定系统参数和初始智能合约。首先,SF 选择的系统参数包括一个通用哈希函数 H(·)、一个 MAC 函数 MAC(·) 和一个对称加/解密算法 Enc(·)/Dec(·)。
公布公共系统参数 = {H(·), MAC(·), Enc(·)/Dec(·)}
B. 注册阶段
设备和服务器注册:当由DM生产后,每个物联网设备选择两个不同的奇素数pd和qd[其中pd = qd = 3(mod 4)]作为私钥,并计算nd = pd ·qd 作为公钥。他们将自己的身份ID和公钥nd发送给DM。DM 确认有效性,并通过调用更新函数 updatePKIT(nd, ETd,IDdm) 将元组 {nd, ETd,IDdm} 上传到智能合约
对于服务器也是如此
C. 认证阶段

此阶段由 IoT 设备和服务器交互执⾏。完成相互认证后, 他们最终协商出⼀个共享的会话密钥,⽤于以后的通信。区块链为⾝份验证提供信任辅助。物联⽹设备Di和服务器Sj之间的相互认证如下。
1)假设Di预先存有服务器公钥nsj.它首先通过调用区块链中的查询函数queryPKIT(nsj)查看其是否存在,如果结果不在有效期内,Di 需要使用新服务器进行身份验证。
如果在,Di 执行以下步骤生成用于身份验证的消息并发送给服务器。
a.选择随机数a,并获得时间戳ts,
b.计算b= H(a, nsj, ts),检查是否满足等式,这是为了让b为模n的二次剩余,如果不是,则a+1,再重复这一步,直到找到满足条件的b,由于模n的二次剩余比例接近于1/4,所以一般情况下,不能执行很多次
c.使用中国剩余定理等解出b模ndi的平方根r1,2,3,4,选择其中最小的作为秘密sd,sd是以便后面服务器确认设备身份,选择最小的是为了减小通信开销;
d.计算αd = a^2(mod nsj),使用rabin加密随机数a
kd = H(a)作为会话密钥,
βd = MACkd (αd),使用kd加密αd得到验证信息βd,以便后续服务器得到正确的随机数a
γd = Enckd (ts,sd, ndi). 使用kd加密时间戳ts,sd, ndi
2)并把消息M1 = {αd, βd, γd}发送给服务器Sj
3)服务器接受消息并检查消息合法性,然后进行验证:
a.使用rabin解密算法解出 模n的平方根,r1,2,3,4
由于前面这一步,其中一个等于a
b.计算k1,2,3,4 = H(r1,2,3,4),由于前面这一步,其中一个等于会话密钥kd,使用四个解来验证等式βd = MACk1,2,3,4 (αd);来源于这一步,得到正确的会话密钥kd,与之对应的r就是随机数a
c.使用kd解密γd,得到元组ts,sd, ndi,拿自己接受到消息的时间戳ts*减去ts,验证是否小于最大通信延迟;
d.调用查询函数验证Di的公钥ndi是否在区块链中,确定该公钥是否有效;然后验证等式sd^2= H(a, nsj, ts)(mod ndi)是否成立,这是为了确定发送方确实持有该公钥;由前面
b= H(a, nsj, ts),相当于sd^2= b(mod ndi),而由于持有私钥pd,qd,才能计算b模ndi的二次剩余sd,否则就会面临求合数的模平方根的困难问题
4)服务器计算δs = MACks(ts,sd) ks=kd 并发送给设备
5)接受到响应后,设备验证δs = MACkd (ts,sd),因为ts和sd需要使用会话密钥kd来解出,并使用kd进行加密,而kd需要使用服务器的私钥ps,qs运行robin解密算法,所以等式成立,设备就能验证消息发送者的身份
身份验证完成
D.更新和撤销阶段
更新:为了应对诸如某些设备或服务器达到到期时间,某些设备的私钥可能被泄露,或者某些服务器可能更新其公钥和私钥等情况,应该为设备和服务器提供更新功能。设备选择新的私钥(p‘ d和q‘ d) 并向 DM 发送他们的⾝份和相应的公钥(n‘ d=p‘ d·q‘d)请求更新.因为DM持有设备ID,确认有效性后,DM通过调⽤update函数更新这些信息更新PKIT(n‘ d,ETd,IDdm). 同样,服务器的更新也是如此
撤销:物联⽹设备或服务器如果要离开系统,可以发送撤销请求通知相应的DM。⼀旦确认,DM 通过调⽤ revoke 函数发送撤销交易撤销PKIT(nd/ns,IDdm) 同样,如果发现物联⽹设备或服务器被攻破,DM直接调⽤revoke函数。
五.安全性分析
相互认证;在之前的过程中,设备在发送消息之前会验证服务器的有效性,然后发送验证消息,而只有持有私钥的服务器才能通过robin解密函数得到会话密钥kd,否则会面临求模合数的平方根的困难问题,而敌手想破解私钥则会面临大数分解的困难问题,所以,当验证等式δs = MACkd (ts,sd)成立后,设备就能知道消息M1被服务器接收并识别;另一方面,由于服务器接收的元组中sd只有持有私钥的设备才能生成,否则只有持有私钥pd,qd,才能计算b模n的二次剩余sd,否则同样会面临上述问题。因此,服务器能够识别设备。
综上,该方案能够完成相互验证。
会话密钥协议;之前的过程中,已经证明了kd与ks的等价性,这里就不多阐述。
身份匿名;可以看到在认证过程中设备没有发送与身份有关的信息,仅DM知道设备身份,而DM被区块链创建者所认证,认为是可信的。不过设备与DM的通信本文没有给出。除此之外,该方案满足身份匿名
不可否认性;服务器接收M1验证等式sd^2= b(mod ndi),由于sd仅能由持有私钥pd,qd的设备才能生成,敌手会面临两个困难问题,所以设备无法否认M1由自己发送;设备接收M2,验证δs = MACkd (ts,sd),由于kd需要使用服务器的私钥ps,qs运行robin解密算法,否则同样面临两个困难问题,因此服务器无法否认M2由自己发送。综上,该方案能够满足不可否认性。
窃听攻击;假设敌手在⾝份验证期间记录所有传输消息,而会话密钥kd/ks受私钥保护,而两者都会面临困难问题,所以可以抵抗窃听攻击。
重放攻击;方案中的时间戳用来抵挡重放攻击,若敌手重放消息,服务器检查时间戳的时效性就能抵挡。
冒充攻击;在相互验证和不可否认性中讨论过,若敌手想要冒充设备或服务器,则需生成有效信息来通过验证,而且由于困难问题,没有私钥不发生成消息。所以能抵挡冒充攻击。
中间人攻击; 旨在秘密改变通信的两⽅交互的对象。同冒充攻击,没有私钥无法通过身份验证。
六.总结

1.首先看一下在以太坊上实现的成本,仅在部署智能合约时开销较高,而且更新、查询、撤销的成本都较低,而物联网设备向服务器进行身份验证仅需一次查询公钥操作,也就是0.02美元,成本可以接受。

2.再看一下模拟实验中的计算和通信成本,与先前方案相比,由于robin加密算法的高效性,计算成本明显降低;而较复杂的解密操作交给资源充足的服务器来进行,计算成本也明显降低;设备端的通信成本相比之前的方案没有优势,但服务器的通信成本明显降低。
综上,本方案具有实用性。
本文提出了一种基于区块链的安全轻量级物联网身份验证方案。
该方案使用区块链和Robin密码算法辅助身份认证,实现并建立了具有去中心化、隐私保护、轻量级特征的认证系统。

