APP下载

基于Hash的阅读器与标签之间的认证协议优化研究

2019-11-11陈红琳

电脑知识与技术 2019年27期
关键词:隐私保护物联网

陈红琳

摘要:伴随物联网技术的不断发展,其在众多领域得到了广泛的应用,并推动了社会技术进步,然而物联网技术也带来一系列较为突出的安全问题。本文选择当前物联网RFID技术中的安全问题为研究重点,通过研究RFID技术中的安全认证协议,设计了一种基于Hash的Reader与Tag之间的优化认证协议,核心重点在于确保Tag的不可跟踪性。通过对认证协议的优化实现了对跟踪性的保护,提升了协议防范主动攻击的能力。

关键词:物联网;RFID;优化认证协议;隐私保护

中图分类号:TP311       文献标识码:A

文章编号:1009-3044(2019)27-0019-03

为了保障物联网技术的稳定健康发展,必须高度重视物联网的安全问题,特别是在RFID系统中,在阅读器(Reader)与标签(Tag)之间存在着较为显著的隐私数据安全问题与双向认证问题,尤其是用户隐私信息的可跟踪性一直是备受重视的一个研究领域,要想较好地解决这一问题,必须在Reader与Tag之间构建一种双方向认证机制。考虑到传统RFID Tag通常会被资源予以限制,本文提出一种优化的认证协议方案,即确保Tag的不可追踪性,旨在提供更加良好的可跟踪性安全保护,同时提升系统的通信效率。该优化协议方案属于一种轻量级的认证协议,其双向认证的方式主要是通过“Challenge/Response”(挑战/应答)的方式予以实现。

为了解决可跟踪性这一问题,则是确保询问器在各个询问过程中对同一Tag查询避免采用一致的Challenge。Challenge/Response方案的核心内容在于:每一次对身份进行认证时,认证Server端均会发送不同的Challenge字符串给Client端,Client端在获取Challenge后,将进行对应的Response,具体路程如下:User向认证Server端请求进行身份认证;在User Database中认证Server进行用户的身份查询,若查询显示该用户身份不合法,则不予以处理,反之则进入下一步流程;认证Server端产生一个Random Number,将其传输给User;User将User Name与Random Number相互连接,借助单方向Hash Function生成Response字符串;认证Server端将该Response字符串与自身的计算结果相互对比,若结果一致,则完成本次认证,反之则不予以认证;认证Server端发送信息告知User本次认证是否通过,后续User再次发起认证,在该过程中就缺少了请求认证的操作步骤。由此在两次认证之间的时间间隔不能设置过短,否则将会给Client端、認证Server端与网络造成过大的负担。除此以外时间间隔也不能过长,否则存在User的IP Address被盗用的风险,最终将两次认证之间的时间间隔设置为1-2分钟较为合适。

1 系统模型

本研究中RFID系统由Reader、Tag以及后端Server共同组成,此处的Tag均采用无源Tag,由于各个Tag内可以容纳的资源大小有限制,仅包含数百Bit非易失性内存与Hash函数功能。各个Tag(Ti)中均预先内置有密钥ki(长度为l比特),未对此前使用过的Random Number予以记录,该优化方案中对各个tag留取m比特的内存将上述记录予以存储。Reader向Tag查询获取其有关身份数据。后端Server则对Tag的全部必要数据信息(如Hash Function、Random Number Generator)予以存储。

2 攻击模型

本优化协议方案中,假定后端Server为可信实体,同时具有良好的安全性,在Reader与后端Server之间的通信信道不存在安全隐患,则恶意Reader无法借助Server获取相应的认证。若攻击者可以对Reader与Tag之间的通信信道予以监听,并可向通信信道注入任意类型的数据信息,由此攻击类型既可以是被动型,也可以是主动型。本文所假设的攻击模型可以是一个恶意Reader、恶意Tag或者监听器,同时在攻击模型对攻击者扫描Tag或欺骗Reader的次数设置有一定上限数量。

3 安全需求

分析RFID系统的安全需求主要包括保密性、不可跟踪性、历史安全性和可用性。

4 协议描述

本文所提出的优化协议是在基于Hash的协议的基础上予以优化的。后端Server产生Random Number(Nr),各个Tag均有对应的密钥ki(长度为l比特)与长度为m比特的映射。后端Server负责对Database的维护管理,该Database为全部密钥负责存储Random Number(Nr)与Hash值h(ki,N)。

本文研究的优化协议具体流程如下:阅读器Reader将Random Number(Nr)传输给标签Ti;标签Ti在收到Random Number(Nr)后,首先计算标签在映射中的具体位置j=h(ki,Nr)mod m,接着检验映射中的比特j(map[j])是否完成设置。若未对map[j]完成设置,则代表Random Number(Nr)此前未被使用,然后标签将h(ki,Nr)作为Response,同时设置map[j]=1。相反,则代表Random Number(Nr)存在被使用的可能性,并由标签分配一个Random Number作为Response;标签发送Response给Reader;阅读器Reader得到标签的Response后,借助(Response,Nr)对后端Server查找,若是后端Server可以在Database中查询到一致结果,那么将计算h(ki+1,Nr),同时将相应的ki替换为h(ki),将各个Random Number(Nj)的Hash值替换为Hash(ki,Nj)。若后端Server无法在Database中查询到一致结果,那么后端Server将会确认Value为Deny,最终后端Server将会对Reader返回确认;Reader最终将确认信息发送给Tag,Tag也会自检校验,若确认值为Deny,则Reader会向Tag查询新的Random Number;Tag会将h(ki+1,Nr)与确认对比,若二者一致,则Tag将会更新自身的密钥为h(ki),同时将映射对应的所有比特重置为零。

本研究提出的基于Hash的阅读器与标签之间的优化认证协议如下列图1所示:

m比特映射主要的用途是存储使用过的Random Number数据信息,同时可以避免连续成功查询时间间隔区间的跟踪攻击。从长期而言,Tag是无法跟踪的,攻击者即使在某一时间点对(Nr,Response)予以记录,在Tag完成若干次成功查询后,也无法将同一Tag的Response与上述记录予以关联,这是由于密钥Ki在每次查询成功后均会进行替换。但是因为密钥在两次成功的询问时间间隔区间内是保持不变的,由此Tag是可跟踪的。为解决这一难题,本文中的优化协议采用m比特映射对Random Number予以记录。这样可以避免恶意Reader采用相同的Random Number持续访问同一个Tag。若在一定的时间段内避免恶意Reader采用同一Random Number,这样就可以解决此类跟踪型的攻击。

后端Server生成Random Number(Nr),单一Random Number可以完成对一组Tag的查询,这是因为其获取了全部Tag的密钥,后端Server可为各个Tag事先完成h(ki,Nr)的运算,同时将其存储在Database中。后端Server在每次查询完成后,依靠搜索器Database对Tag发出的Response予以校验。若采用Hash算法,则搜索的复杂度为O(1)。由此,即使Tag的数量过多,后端Server进行计算时也不会占用过多的资源。

一般而言,系统的效率与安全性是相互矛盾的,需要找到一个适当的均衡点。借助同一个Random Number可以完成对多个Tag的查询,由此攻击者可供给获取上述Random Number,然后借助这个random number进行对合法Tag的查询,同时将获取的response存储在一个伪造的Tag中。当进行询问时,伪造Tag可通过此前获取的Response假冒原有合法的Tag,这是一种克隆的攻击方式,本文所设计的优化协议,借助限制批处理方式,可以增加此类攻击的难度或避免此类攻击。

若攻击者未对Tag进行非法查询,这种状况下Reader在第一次查询时就可以成功获取Tag相关信息;若攻击者已对上述Tag进行非法查询,则比特映射的值会被设定。由此,本研究中,对Reader从Tag获取一个有效Response之前,需对多次询问的情况予以分析说明,以确保Reader对合法Tag完成询问后,后端Server应当为Reader发送多个Random Number。在設计的优化协议中,进行系统部署时,后端Server将生成一组Random Number。对每一个Random Number与相应的Tag,Server端均预先对Hash Value予以运算,并将运算的结果h(ki,Nr)存储在Server端。若Reader想要对一组Tag进行查询,则Reader需要向Server端提供相应的Random Number。在完成询问后,后端Server应当对密钥ki予以更新,同时对Random Number(Nr)的Hash值h(ki,Nr)予以更新。除此以外,在Tag被后端Server验证后,Random Number也被更新,这样可以提升其安全性。

5 协议参数与安全强度

因为内存本身的限制,Tag无法将Random Number予以存储,在本文设计的优化协议中,Tag采用l比特对Random Number在映射中相应的位置予以标注,并用以记录Random Number。要计算上述位置,必须要先对h(ki,Nr)mod m予以计算。对新生成的各个Random Number,其在映射内的位置是按照0 ~(m-1)的概率均匀分布的,由此若是映射中的若干比特被设置,将会产生碰撞。假设存在n比特完成设置,则对于下个Random Number而言,其碰撞概率为:

Reader如果想从Tag获取有效的Response,平均尝试次数达到m/n次,假设n=m,则碰撞概率达到100%。要确保合法Reader能够查询到Tag,Tag需对映射内的全部或一部分比特位予以清除。攻击者可以通过该此前的Random Number实现对Tag的跟踪。由此,攻击者可借助对映射内所有比特位的设置,实现对Tag的跟踪,在此基础上借助原有的Random Number完成对Tag的询问。但是攻击者若想完成对全部比特位的设置,其尝试次数会受到碰撞影响,从而达到一个非常大的次数,通过相应的概率计算,可以得出如下计算式:

一般单一Tag的内存大小有数百比特,通过上述公式计算可知攻击者的尝试次数将会达到数千次。若Tag按照某一速度或足够慢的速度返回Response,攻击者将会需要耗费数个小时才能完成对Tag的跟踪。若是按照该种攻击方式,对那些较低成本的RFID而言,攻击者需要耗费较多的时间成本,从而导致缺少足够的利益驱动进行此类攻击。由此,按照本章节提出的优化协议实现了此类跟踪攻击的保护。

通过碰撞的方式,造成攻击者在进行Tag跟踪时需要花费更久的时间,但是这样也会对合法Reader询问Tag造成影响。然而合法Reader所需尝试的次数相对较少,若RFID系统未曾遭受过主动攻击,这种情况下合法Reader仅需一次尝试,即可以从Tag获取有效的Response。考虑极端情况下,即使映射内有m-1比特位被攻击者予以设置,合法Reader只需尝试m次就可以获取有效的Response,相对攻击者而言,在数量上仍然具备绝对的优势。除此以外,对于攻击者而言,要想主动完成对m-1个比特位的设置实际上是非常艰难的,这是因为各个Random Number在映射中的具体位置实际上是无法预测的。在一般情况下,若攻击者完成设置的比特位数符合0~(m-1)的均匀分部,攻击者的尝试平均次数如下所示:

相比较而言,从下列图3中可以看出恶意攻击者的尝试次数远远超过合法Reader的尝试次数,随着m的比特位数增加这种差距愈来愈大。

本文设计的优化协议中,Server端将生成t个random number,若选取适当的t值,使其略微超过m值,那么Reader在大多数情形下均可以从Tag处获取有效的Response,后端Server在每次重新尝试时仅仅需要对执行Database予以查询搜索,复杂度为O(l)。

在现有协议研究的基础上,针对抵御主动攻击优化分析如下:读写器和标签分别存储各自的身份信息、密钥及与其他参与方共享的秘密。令m为一组标签的总数,n为预先授权给读写器的可执行协议的总轮数。验证者为读写器预计算执行n轮协议所需的信息,见图4所示。令[runv]和[runt]表示当前正在执行的协议的轮数,即如果当前正在执行的是第i轮协议,那么此时[runv]和[runt]的值是i。为此,我们在下图5中“Generate future timestamp TS”操作后,增加操作“[runv←i]”。同时,读写器在每轮协议的预计算信息中也需要存储[runv]值,標签组的每个标签中存储[runv]值,且[runv],且[runv]和[runt]的初始值均为1。

上述初始化操作完成后,每个标签中存储[{Gid,TGs,Tidj,Tsj,runtj,VTsj,VT'Sj}(1≤j≤m)],其中初始时[runtj=1] 且[VTsj=VT'Sj] 。此外,标签中还存储被授权可访问该标签的每个Reader的信息[{Rid,RTSj,R-1rj}] 。Reader存储[{Rid,RVs}] ,并存储n轮协议的预计算信息,每轮协议的预计算信息为[{runv,Gid,TSri,TSvi,V1i(1..m),V2,μi(1..m),RTSi(1..m),RTnSi(1..m)}(1≤i≤n)]。验证者存储上述身份信息及预计算的n轮协议执行所需的信息。

上述协议不仅具备Tag/Reader匿名性、Tag/Reader位置隐私、前向安全性、抗重放攻击等安全属性。此外,该协议还可以抵抗异步攻击和主动攻击。

新协议中,即使敌手中断了读写器与标签之问传送的某些消息,标签和验证者共享的秘密[VTs] 仍可保持同步。在某轮协议执行过程中,当Tag j发送[Mj,βj,Yj,Rcj] 给Reader后,敌手可能截获该信息,同时分别将[Mj] 和[βj] 替换为[M''j] 和[β''j] ,其中[M''j=Mj⊕r,β''j=βj⊕r] (r为敌手选取的随机数)。然而,当接收信息[M''j,β''j,Yj,Rcj] 后,Reader验证等式[Rid=Rcj⊕PRNG(PRNG(M''j)⊕PRNG(β''j)⊕Yj⊕RTs⊕Rrj)] 时,无论使用[RTsj] 还是[RTnSj] ,该验证都将会失败且协议终止。因此,协议经过进一步优化可以抵抗主动攻击。

本文中设计了一种基于Hash的Reader与Tag之间的优化认证协议,核心重点在于确保Tag的不可跟踪性。同时针对协议进行了进一步的优化,提升了协议防范主动攻击的能力。因受到本人能力有限,本研究仍然存在若干地方需要进一步完善和深入研究:如本文设计的Reader与Tag间的认证协议,在避免跟踪攻击方面有着较为显著的功效,然而在安全性上的设计仍然需要进一步深入研究与完善。

参考文献:

[1] 刘道微,凌捷,杨昕.一种改进的满足后向隐私的RFID认证协议[J].计算机科学,2016,43(8):128-130.

[2] 赵太飞,邹波,尹航.基于Hash链的RFID认证协议[J].微型机与应用,2016,35(19):60-63.

[3] 位书敏,张永华,商玉芳.轻量级移动RFID认证协议研究设计[J].计算机与现代化,2016(11):74-78.

【通联编辑:唐一东】

猜你喜欢

隐私保护物联网
中国或成“物联网”领军者