一种超高频RFID 系统的安全增强方法*
2020-09-27何卫国范伟力
何卫国,范伟力,朱 翔
(成都三零嘉微电子有限公司,四川 成都 610041)
0 引言
射频识别技术(Radio Frequency Identification,以下简称RFID)是在各个生产和生活领域广泛商用的自动识别技术,被看作是构成21 世纪先进物联网技术的重要基础技术。RFID 技术利用射频通信中的回射原理实现数据信息的空中无线通信传递。标签与读写器构成的RFID 识别系统能迅速识别大量标识信息,摆脱了条形码等传统标签在读取信息时需要人为手工操作的缺点。
根据应用环境的不同,用户对RFID 系统安全性提出了不同的要求。例如在电子收费系统中需要保证电子标签中的数据无法被篡改伪造;在人员身份识别系统中需保证标签不被复制使用。
1 超高频RFID 系统安全威胁分析
超高频RFID 系统的识读距离远,空中接口暴露在开放环境,极易受到攻击[1][2]。空中接口面临的威胁如表1。
表1 空中接口面临的安全威胁
针对RFID 系统空中接口面临的以上威胁,应对措施如下:
1.1 标签层威胁
1.克隆攻击
克隆攻击是指攻击者非法复制一张合法的RFID标签,由于克隆标签完整复制了合法标签的全部信息、包括标签标识、业务数据、存储的密钥等,因此无法通过常规的认证手段对克隆标签进行鉴别。
针对克隆攻击,可采用滚动认证密钥的方式来应对。在标签每次合法认证流程中,更新滚动认证密钥。
2.欺骗攻击
欺骗攻击是指攻击者利用软硬件等方式来模拟合法的RFID 标签。由于攻击者模拟的RFID 标签无法获得合法RFID 标签中的密钥等认证信息,因此在RFID 系统的通信过程中加入读写器和标签之间的双向认证机制就可应对欺骗攻击的威胁。
考虑到RFID 标签功耗低、计算能力弱的特点,可采用轻量级分组算法实现认证流程。
3.非授权访问攻击
非授权访问攻击是指攻击者在未授权的情况下非法读取RFID 标签中的存储信息。通过对RFID 标签进行分区口令管理,可以有效应对非授权访问攻击的威胁。考虑到系统对存储各区的不同安全性要求,可对RFID 标签存储区采用分级管理的机制,分别对各区设置读口令、写口令、锁定口令。每个RFID 标签的访问口令在标签初始化时由RFID读写器通过根密钥RK 和标签唯一标识生成,口令具有唯一性。
1.2 读写器层威胁
1.假冒攻击
RFID 读写器层面临的安全威胁主要是假冒攻击,攻击者通过伪造一个非法读写器来读取或更改RFID 标签信息。在假设根密钥RK 绝对安全的前提下,同样可以通过加入读写器和标签之间的双向认证机制就可应对假冒攻击的威胁。
1.3 空中信道层威胁
1.窃听攻击
窃听攻击是指攻击者非法窃听RFID 读写器和RFID 标签之间的无线通信过程。由于无线信号在空间上的开放性,无法避免RFID 系统通信过程中产生的电磁波不被攻击者获取,因此只能采用对通信内容加密的方式来应对窃听攻击的威胁。
同样出于RFID 标签功耗低、计算能力弱的考虑,在RFID 标签和RFID 读写器的安全通信中,仍然采用轻量级对称算法对通信数据进行加解密。在标签和读写器的一次互相认证过程中,均会协商产生新的会话密钥SK。
2.重放攻击
重放攻击是指攻击者在RFID 读写器和RFID标签之间重放之前的通信内容。在RFID 系统认证过程和安全通信过程中,可以通过在通信数据中添加随机数的方式来应对重放攻击。当信息的接受方连续接收到若干次包含相同随机数(该随机数通过加密方式传输)的数据时,接收方就判定遭受到了重放攻击,并拒绝接受该命令或业务数据。
3.篡改攻击
篡改攻击是指攻击者在RFID 读写器和RFID标签之间拦截并修改、替换通信内容。使用杂凑算法或CRC 校验机制可以有效保护传输信息的完整性,应对篡改攻击的威胁。
2 安全协议设计
上文中,分析了普通RFID 系统空口面临的安全威胁,并提出了相应的解决措施,本节依据上文提出的解决措施,设计了安全增强的RFID 系统空中接口安全协议。该安全协议由认证协议和加密通信协议两部分组成,通过在超高频RFID 的通用ISO18000-6C 协议中,增加若干自定义命令,实现滚动密钥认证和加密通信功能[2]。该协议中的加解密操作均由轻量级对称算法——SM7 算法实现。
空中接口认证协议流程如图1 所示。
图1 空中接口认证协议
读写器首先发送激活命令,标签返回ID。
读写器查询该ID 是否有效,若有效,由后台下发该标签的当前滚动认证密钥DAK 到读写器。
读写器使用DAK 发起和标签间的双向挑战认证,认证通过后,协商出密钥SK 作为下一步加密通信用密钥。
后台生成该标签新的DAKn 下发到读写器,读写器使用会话SK 加密后发送给标签。
标签收到新的DAKn 后,用其替换内部存储的滚动认证密钥DAK。
标签返回滚动认证密钥更新成功标志,认证流程结束。
空中接口加密通信协议流程如图2 所示。
图2 空中接口加密通信协议
读写器产生随机数Rr,使用认证过程中协商得到的会话密钥SK 对需发送命令的负载和Rr 进行加密,并将加密结果ESK(命令负载||Rr)发送给标签。
标签使用会话密钥SK 对ESK(命令负载||Rr)解密得到命令负载和Rr,标签执行命令后得到响应数据。
标签产生随机数Rt,使用会话密钥SK 对返回数据||Rt 加密,并将加密后的结果ESK(返回数据||Rt)发送给读写器。
读写器使用会话密钥SK 对接收到的ESK(返回数据||Rt)进行解密,获得标签的响应数据,至此一次完整的安全通信流程结束。随机数Rr 和Rt 用于抵御重放攻击的威胁。
3 设计实现
为实现超高频RFID 系统的安全增强设计,基于上文提出的安全协议,对RFID 标签的工作状态和跳转关系进行重新设计,同时增加自定义命令[3]。
图3 工作状态跳转图
如图3 所示,对通用RFID 标签的工作状态进行如下修改:
1)修改Open 状态:在该状态,Kill 命令为不可执行命令,Kill 命令不响应;接收到正确的Access命令后,跳转到Identify 状态。
2)新增Identify 状态:在该状态响应ID_CPRT,在T5 时间内接收到正确的ID_CPRT 命令,跳转到Security 状态,否则跳转到Arbitrate 状态。在该状态下若接收到其他命令则直接跳转到Arbitrate 状态。
3)修改Security 状态:在该状态响应AK_UPDATA 命令和SEC_CON 命令,不响应ID_CPRT,Access 命令。
新增的自定义命令如下|:
1)新增ID_CRPT 命令,该命令用于阅读器和标签之间的双向认证。
2)新增SEC_CON 命令,该命令用于阅读器和标签之间的安全通信。
3)新增AK_UPDATA 命令,该命令用于更新标签内的滚动认证密钥。
安全增强超高频RFID 系统的空中接口的工作命令流程如图4 所示。
图4 工作命令流程
安全增强超高频RFID 系统中的标签芯片架构如图5所示,其由模拟射频前端模块、数字基带模块、SM7 模块、存储器以及ESD 保护电路组成。模拟射频前端模块完成解调、调制、整流、时钟生成、上电复位等功能;数字基带完成ISO18000-6C 协议以及安全协议的实现;SM7 模块实现轻量级对称算法;ESD 电路提供天线端口的静电防护[4]。
图5 标签芯片架构
安全增强超高频RFID 系统中的读写器架构如图6 所示,其由通用UHF 模块、主控制器、TF 密码模块以及后端信道接口组成。通用UHF 模块完成射频信号的解调、调制和ISO18000-6C 协议实现,同时通过二次开发实现安全协议相关命令;TF 密码模块实现SM7 算法和其他用于后端信道的密码算法;上位机接口实现读写器和上位机的通信;主控制器用于控制通用UHF 模块、TF 密码模块和上位机接口。
安全增强超高频RFID系统的组成如图7所示,其由后台系统、阅读器和标签组成,管理界面如图8 所示。
图6 读写器架构
图7 安全增强超高频RFID 系统组成
安全增强超高频RFID 系统在人员身份识别应用中,标签识别率统计如图9 所示。在2172 次标签识别操作中,第一次认证即成功的计1621 次,占比74.62%,平均耗时403ms;第二次认证方能成功的计329 次,占比15.15%,平均耗时1026ms;第三次认证方能成功的计110 次,占比5.06%,平均耗时1869ms;第四次认证方能成功的计40 次,占比1.84%,平均耗时2399ms;第五次认证方能成功的计31 次,占比1.43%,平均耗时2507ms;第六及以上次认证方能成功的计41 次,占比1.89%,平均耗时4858ms。
图8 安全增强超高频RFID 系统管理界面
图9 标签识别率统计
4 结语
本文首先分析阐述了通用超高频RFID 系统存在的安全风险及其应对策略,提出了基于ISO18000-6C协议和SM7 算法的超高频RFID 系统空中接口安全协议,并该安全协议将其成功应用于某身份识别系统上,设计了相应的专用读写器、专用标签芯片和后台管理系统。经过系统实测,90%的标签可在1s 内完成认证识别,基本满足用户需求。同时作者也注意到,在人员佩戴标签的应用场景下,标签通信过程易受干扰,导致部分标签识别时间过长。作者在接下来的工作中,将重点研究如何缩短标签单次认证时间并优化容错机制,解决因电磁环境突变导致认证过程中断进而造成标签识别时间过长的问题。