智能医疗中RFID安全的认证协议综述
1. 引言
射频识别(RFID)是一种无需与患者进行物理接触的自动识别技术。RFID标签[1]体积小、成本低,可与手环、衣物、卡片等多种物品结合使用。该技术如今也广泛应用于人类生活中[2]。根据[3]开展的研究,常见的问题包括患者身份识别手环的误用以及医疗操作人员在特定条件下可能出现疲劳的情况。因此,为解决这些问题,研究人员提出了RFID技术[4][5][6],其优势包括:非接触式、便捷、成本低、耐用,并可与多种物体配对使用。
每个将由RFID系统识别的对象都通过RFID标签进行物理标记。该标签包含一个作为存储并执行逻辑操作的微芯片,以及用于无线通信的天线。RFID读写器通过射频接口读取RFID标签。与RFID标签类似,该读取器也具有内部存储内存和执行逻辑操作的能力。不仅如此,该读取器还充当后端数据库的接口,以提供数据存储等附加功能。然而,这种RFID技术仍存在缺陷[7],包括缺乏对RFID系统的保护机制,导致其容易受到攻击。因此,需要一种保护机制来保护RFID免受各种类型的攻击[8]。本文讨论了一些RFID认证协议对攻击的抗攻击能力。
该研究的结果可以为研究人员选择适合RFID安全的协议提供参考。
2. 方法与材料
2.1. 综述准备
本研究中,我们进行了综述。我们评估了5种用于RFID安全的认证协议。我们还根据表1定义了针对RFID的几种攻击。
2.2. 方法综述方法
本研究中使用的方法如下。首先,我们简要介绍最近文献中找到的5种用于RFID安全的认证协议。其次,我们分析所选协议的优点和缺点。最后,根据这些协议对之前定义的多种攻击类型的抵抗能力进行比较。
表1 RFID上的几种攻击
| 攻击 | 含义 |
|---|---|
| 窃听 | 当攻击者“窃听”通信通道以获取在其上传输的信息时,就会发生窃听。 |
| 跟踪 | 这种攻击是通过利用RFID标签本身的设计错误来实现的,这始终响应来自读取器的查询。通过发送查询并获取来自不同位置标签的相同响应,以及标签所在位置的信息可以获取到位置以及他们访问过的位置。 |
| 中间人 | 也称为中继攻击,这种攻击发生在攻击者放置一个设备时在读取器和标签之间,可以阻止发送方发送的信息读取器或标签,随后被更改并转发给接收方。 |
| 重放 | 对RFID系统的一种攻击,其中设备重复关键信息读取器和标签之间的通信,目的是进行欺诈。设备在读取器和标签之间重复认证,欺骗读取器或标签通过验证过程。 |
| 前向安全 | 如果攻击者获取了标签中的信息,该攻击者就可以利用这些信息来跟踪未来交易。 |
| 拒绝服务(DoS) | 这种攻击的目的是通过向服务器发送大量消息,使系统发生故障,导致服务器崩溃。 |
| 克隆 | 在这种攻击中,攻击者利用从标签获取的信息来克隆或仿制标签。 |
3. 结果与讨论
3.1 RFID认证协议描述
3.1.1 基于时间戳的双向认证协议(TSBMA)
该协议的步骤[9]如下。
步骤1 – 读取器将当前时间转换为T时间戳,并计算h(〖ID〗_R⊕T)。这两者均由读取器发送给标签。
步骤2 – 标签在收到来自读取器的消息后,不会立即响应,直到通信中使用的时间戳满足条件 T_0 < T < T_max。如果满足这些条件,标签将对 h(〖ID〗_R^ ’ ⨁T) 和 h(〖ID〗_R⊕T) 进行匹配。如果匹配成功,标签将生成一个随机值 r,计算 h(〖ID〗_R⊕T⊕r),然后将其发送给读取器。
步骤3 – 在收到来自标签的响应后,读取器向数据库发送 h (〖ID〗_R⊕T⊕r)、r、h(〖ID〗_R⊕T) 和 T 以进行认证。
步骤4 – 读取器收到消息后,服务器在数据库中进行搜索,并将h(〖ID〗_R’‘⊕T)与h(〖ID〗_R⊕T)进行匹配。如果找到匹配项,则标签为有效,服务器将生成一个新的随机值r2并计算 h(ID’⊕r_2)。服务器将h(ID’⊕r_2)和随机值r2发送给读取器。反之,如果未找到匹配项,则认为读取器或标签为非真实设备,通信将被终止。
步骤5 – 读取器将服务器发送的信息传递给标签。标签随后计算 h (ID⊕r_2) 并将其与 h (ID’⊕r_2) 进行匹配。如果匹配成功,标签将时间戳 T0 更新为 T;如果匹配失败,则认为数据库或读取器非原始设备,时间戳 T0 不发生变化。
3.1.2 半随机化访问控制协议(SRAC)
该SRAC协议[10]的步骤如下。
步骤1 – 读取器向标签发送查询。
步骤2 – 标签向读取器发送MetaID = H(Key)。
步骤3 – 服务器使用MetaID查找Key,生成RS随机数,并检查H(Key⊕R_S)与其他MetaID相比是否唯一。如果不唯一,服务器将重新生成RS,直到H(Key⊕R_S)变为唯一。服务器更新密钥如下。
如果 H(Keycurr) = MetaID 那么 Keprev ← Keycurr, Keycurr ← H(Keycurr ⊕RS)
如果 H(Keyprev) = MetaID 那么 Keycurr ← H(Keyprev ⊕ RS) Key ← Keyprev
服务器通过读取器将 RS 和 H(Key||RS) 发送给标签。
步骤4 – 标签验证H(Key||RS)是否为真。如果为真,标签将更新Key ← H(Key ⊕ RS)。在此哈希函数中需要RS的原因是标签需要验证RS的完整性。服务器通过验证数据库服务器中是否存在MetaID来认证标签,而标签则通过验证H(Key||RS)来认证服务器。为了防范拒绝服务攻击,服务器的密钥更新速度必须快于标签的密钥更新速度。服务器存储两个密钥,Keycurr和Keyprev。
3.1.3 双向认证协议(TWAP)
TWAP[11]这是一种基于哈希函数的RFID认证协议。以下介绍该协议的工作流程。
步骤1 – 读取器读取T系统的本地时间,并将T和查询发送给标签。
步骤2 – 标签使用接收到的T和随机值S生成H(T || S),然后标签生成M1= H (T || S) ⊕H(TID),并将消息 M1与S一同发送给读取器。
步骤3 – 在接收到(M1,S)后,读取器检查T值并提取新时间Tnew,∆T ’ = Tnew‐T,如果∆T’ 相比∆T过大,则可以断定通信中发生了攻击,从而干扰认证过程。但如果仍在规定范围内,则读取器计算M2= H(RID)⊕H(Tnew || S),并向数据库发送(M1,M2,T,Tnew,S)。
步骤4 – 在收到来自读取器的消息后,数据库提取本地时间T2并计算TDT ’ = T2‐Tnew。如果 TDT ‘与∆DT相比过大,则可以断定通信过程中发生了攻击,从而立即终止通信过程。如果TDT ‘value仍在指定限制范围内,数据库将生成H(Tnew || S)并与M2进行XORATE运算,然后在数据库中搜索相同的H(RID)值,如果找到匹配项,则读取器认为其为原始设备。为了验证标签的真实性,数据库生成H(T || S)并与M1进行XORES运算,然后将其与H(TID)进行比对以验证标签的真实性。
步骤5
– 数据库计算 H(TID’) ⊕H(RID ^’) 并将其发送给读取器
步骤6
– 读取器根据H(RID’)计算H(TID’),并将其发送给标签
步骤7
– 标签将计算结果与它们自身获得的H(TID’)进行比较。如果匹配成功,则认证过程成功。
3.1.4 双向认证协议(MAP)
MAP[12]是一种基于轻量级哈希函数的RFID认证协议,用于在标签和数据库之间提供RFID认证服务。以下是该协议的步骤。
步骤1 – 读取器生成随机数NR,并向标签发送请求和NR。标签收到消息后,生成随机数NT并计算M1=h(S ⊕NR ⊕NT)。接着,标签将NT和消息M1发送给读取器。
步骤2 – 读取器计算M2=h(RID ⊕ NR),并向数据库发送消息(消息M1,M2,NR,NT)。
步骤3 – 在从读取器接收到M1, M2, NR和NT后,数据库执行以下操作:数据库比较NR与NR(old)是否匹配。如果匹配,则检查失败。如果NR与NR(old)不匹配,则数据库计算 h(S⊕N_R⊕N_T),并接收随机数NR和NT。接下来,数据库验证M1= h(S⊕N_R⊕N_T),以确认标签是否真实可靠。数据库计算h(RID⊕N_R),并接收随机数NR。若M2= h(RID⊕N_R)验证成功,则认为读取器是原始的。数据库生成NDB个随机数,并计算M3= h(ID⊕N_DB)和Snew = h(S⊕N_DB⊕N_T)。然后将M3和NDB发送给读取器。数据库更新Snew= h(S ⊕ N_DB ⊕ N_T)。
步骤4
– 当读取器接收到M3和NDB消息后,将其传递给标签
步骤5
– 在接收到M3和NDB后,标签计算 M3= h(ID ⊕N_DB)。当标签成功验证此消息时,进行双向认证。当事务完成后,标签将更新Snew= h(ID ⊕N_DB ⊕ N_T)。
3.2 协议比较
表2 几种RFID协议对攻击的比较
| 协议 | Forward Security | Tag Tracking | Cloning | Replay Attack | Eavesdropping | Desynchronization | Denial of Service |
|---|---|---|---|---|---|---|---|
| TSBMA | √ | √ | √ | √ | √ | √ | - |
| SRAC | √ | √ | √ | - | - | - | √ |
| TWAP | √ | √ | √ | - | - | √ | |
| MAP | - | √ | - | √ | √ | - | |
| ## 3.2 协议比较(续) |
3.2.1 基于时间戳的双向认证协议(TSBMA)
该协议能够抵抗中间人攻击(MITM),因为在本协议中,读取器具有唯一标识符IDr,且发送的消息首先经过哈希处理。当攻击者伪装成将与标签通信的原始读取器时,标签会验证读取器的真实性。由于发送的信息以哈希形式存在,即使攻击者成功获取该信息,也无法获得标识符的值。因此,攻击者无法通过标签的认证,从而无法冒充原始读取器。本协议中的时间戳T在每次通信会话中都会更新,且标签对每个生成的随机数r的响应都不同。如果攻击者试图进行重放攻击,该协议可以有效防范,因为T值始终变化,导致无法满足h(ID’⊕T⊕r) = h(ID⊕T⊕r)。该协议还能抵抗去同步化攻击,因为本协议的最后一步是将T0通信时间戳更新为T。如果攻击者获取了读取器发送给数据库的认证信息,标签中的T0将不会被更新。
3.2.2 双向认证协议(TWAP)
该协议具有前向安全防护能力,因为在使用哈希函数(其特性为单向性)的基础上,每次通信中标签生成的随机数的随机特性,以及读取器与数据库之间产生的时间戳差异,使得攻击者无法通过当前掌握的信息推知之前的标签信息。此外,由于读取器每次通信生成的时间戳T值不断变化,攻击者也无法实施重放攻击。标签ID和读取器ID均通过哈希函数加密,即使攻击者成功获取了ID相关信息,也无法得知ID的原始值,因此难以伪造读取器或标签。在每次通信中更改随机数和时间戳的值,也使得攻击者难以通过读取器与标签之间的信息识别标签的具体位置,从而实现标签追踪,因为在此协议中读取器不会向身份发送与标签相关的信息。同时,使用静态ID也使该协议能够抵抗去同步化攻击,因为标签内部内容不存在动态更新机制。
3.2.3 半随机化访问控制(SRAC)
该协议能够抵抗标签追踪,因为标签中的机密信息在每次通信成功后都会发生变化。该协议还提供了前向安全保护,因为读取器和标签每次通信时都会使用具有单向特性的哈希函数来更新其机密信息。因此,即使攻击者成功获取了读取器与标签之间通信的机密信息,也无法从所获得的信息中推导出之前的机密信息。该协议可以防止拒绝服务(DoS)攻击,因为在该协议中服务器只需为每个标签存储先前的机密信息。如果服务器未能找到MetaID,可以通过之前的MetaID进行查找。然而,该协议容易受到重放攻击,因为攻击者可以通过重复之前的消息来伪装成原始的读取器或标签。
3.2.4 双向认证协议(MAP)
在每次通信会话中,只要密钥值S、NT和NR是随机数,该协议就能抵抗标签追踪。即使攻击者获得了M1,也会因为密钥值已改变而难以追踪。通过使用密钥值和唯一标识符可以防止克隆攻击。要克隆标签,攻击者必须伪造M1和M2。然而,攻击者无法计算出M1和M2,因为其无法获取S的密值以及RFID读写器的信息。如果攻击者成为中间人,并成功截获读取器发送给数据库的M1、M2、NR和NT,并试图通过重发消息进行重放攻击,则认证将失败,因为攻击者返回的是之前已被数据库存储为NR(old)的NR值。该协议也具有抵抗前向安全的能力,因为数据库和标签在每次通信时都会存储S的密值并进行更新会话。因此,前向安全攻击将失败,因为S的密值与之前的会话没有关联。为了防止拒绝服务攻击,该协议通过检查下一会话中的S = Sold并修正S值使其不为恒定值,从而解决了攻击者发起拒绝服务攻击时出现的恒定S值问题。
4. 结论
本研究已经研究了几种用于智能医疗应用中RFID安全的认证协议。分析结果表明,所审查的协议采用了不同的机制来保护RFID。根据我们的研究结果,从漏洞/攻击角度来看,目前尚无一种协议能够抵御所有类型的攻击。双向认证协议尽管可以克服拒绝服务攻击,但无法抵抗窃听和失步攻击。基于时间戳的双向认证协议虽然大多数情况下能够应对各种攻击,但仍无法抵御拒绝服务攻击。此外可以看出,所有提出的协议在其操作中均使用了哈希函数。哈希函数作为一种单向函数,不需要高昂的计算成本,因此适用于在内存和计算能力方面存在限制的RFID系统。
本研究的未来工作是为智能医疗应用中的RFID安全选择并实施合适的认证协议。
28

被折叠的 条评论
为什么被折叠?



