基于读写器参与计算的RFID认证协议的设计与分析浅析
射频识别RFID(Radio Frequency IdentificaTIon)技术是支撑物联网(The Internet of Things)发展的重要技术之一,它是一种利用射频信号和空间耦合(电感或电磁耦合)传输特性实现非接触、自动识别目标对象并获取相关数据的技术。
RFID系统一般由读写器(Reader)、天线(Antenna)和标签(Tag)组成,通常还包括用来记录标签更多信息的后端服务器或后端数据库(Backend Database)。读写器通过天线发送射频信号到电子标签并接收电子标签回传的信号,获读取标签的标识性信息,然后读写器将标签的应答消息发送给后端数据库进行判断识别。
正是由于RFID技术具有无需人工干预、自动、无接触的传递数据等特性的识别过程,在诸多应用实现高效、智能化的识别、定位、跟踪、监控和管理,但该技术在为数据采集提供灵活、方便的同时也将通过无线方式传递的数据信息暴露出来,造成了信息安全方面的一个隐患。随着RFID技术应用的迅速推广,其系统中数据安全问题甚至已经超过了计算机信息系统的安全边界,引起了业界的普遍关注。
读写器一旦发出读取请求,在其天线信号覆盖范围中的标签会自动应答,但是这一应答并不会通知其持有者。因读写器与标签之间的无线通信信道是通用的工业频段,如果有人携带RFID标签进入该范围,在通用协议下,读写器可以轻易读取标签信息,这时携带者的位置隐私就受到了威胁。如果标签信息被读写器恶意篡改,则导致更为严重的安全问题,当RFID标签传出自身专有信息时,专有信息同样可能被侵犯。RFID技术应用的一些潜在用户抵制RFID技术应用推广的原因多在于此。
目前,RFID系统应用存在各式各样的安全威胁,攻击手段主要包括:1)通过窃听等手段获取相关信息;2)根据已有消息进行数据统计分析,做出对秘密的判断;3)构造消息(包括重放消息)对入侵系统进行攻击。
隐私和安已经成为制约RFID技术推广应用的两个主要因素,对于这两个问题,人们可以采取了主动干扰、静电屏蔽等物理防范措施保证系统的安全与隐私,但是这些措施在提高系统安全性的同时增加了系统成本,降低了标签使用的灵活性。密码机制在RFID系统中的引入相对于物理防范而言,由于不需增加成本而更易于用户接受,因此越来越多的研究人员将计算机信息技术中的密码机制引入到RFID的安全协议中进行研究,并提供应对隐私和安全问题的解决方案。
RFID的技术特性决定了与传统认证(例如口令认证)方式不同,标签的唯一标识信息ID与标签所附着的物品之间存在一定的对应关系,识别RFID标签的背后是对其所附着物的识别,并且:1)RFID识别是被动的;2)RFID标签应答读写器时,标识其ID的应答消息与隐私相关。因此从信息安全的角度,对于标签的应答信息,协议需要有一定的保护手段,保护所传递的信息不能够被截取、篡改和重放;对于标签的ID信息,同样需要保护,以防对指定标签的定位跟踪等涉及隐私的威胁发生,以达到机密性、完整性、可用性、真实性和隐私性的要求。
在RFID认证协议中,普遍借助随机数将RFID标签所发送的ID信息匿名化,当读写器读取标签信息时,读写器生成一个随机数并发送给标签,标签接收到随机数后,利用该随机数与标签ID结合处理,生成一个新的消息代替标签ID,实现标签ID的匿名化,之后将该消息回传给读写器作为系统认证的依据。
基于密码机制的RFID安全协议可分为静态和动态ID协议。在静态ID协议中,标签的ID始终保持不变;在动态ID协议中,每次认证完成后,标签和后端数据库中的ID信息需要同步更新。相对于静态ID协议,动态ID协议更加安全。
文献对一些经典协议进行了分析,文献利用随机数实现了标签所发出ID的动态化,但是没有利用随机数对标签ID进行保护,攻击者较容易获得标签ID信息。文献中用metaID代替标签ID,但由于metaID是固定不变的,当攻击者得知metaID与标识物的对应关系后,仍可对其进行跟踪和定位。文献利用 Hash函数与标签ID相结合,虽然具有一定的隐蔽性,但不具备随机性,给攻击者提供了重放攻击的机会。文献所述安全协议,在文献所提出的强攻击模型 (Strong Attacker)下,存在被击破的可能。对于文献,攻击者根据异或操作的特点,通过选用特定的随机数可对协议进行分析,进而破解协议。文献所给出的 LCSS协议,包含了秘密的消息但缺乏校验机制,不能保证消息的完整性,而且入侵者有机会篡改消息,危害更为严重。在文献中,研究人员试图使攻击者在无标签ID时,不能构造应答消息,但是若攻击者能给标签发送特定的随机数,并利用之前搜集的消息数据便可能构造出关键消息。
以上协议,都强调“无需人工干预”这一条件下进行,读写器只负责传递数据,不对数据进行处理,也不参与识别认证。在不增加标签制作成本的条件下,通过在读写器增加数据处理操作来提升RFID系统的安全性,从而保障标签可以仅可被合法的读写器所读取,下面给出这一新协议。
1 认证协议的设计与分析
1.1 协议设计
在介绍本协议前,将下文所用符号在表1中给出并进行说明。
1. 1.1 基本假设及系统初始状态
RFID读写器工作时,需要从一个设备上获取其工作密钥KR,例如一张预先分配给这一读写器的智能IC卡,操作者需要使用该卡启动读写器工作。如果读写器和后端数据库都具备强大的数据处理和存储能力,采用类似公钥密码算法的高强度密码技术保障它们之间的通信安全是最佳选择,但是实际情况并非如此,本协议仅要求标签具有一个伪随机数发生器,可以进行XOR运算和一个函数F(x,y)运算,F(x,y)≠F(y,x)。F(x,y)必须是适合在有限资源的标签上可以实现的轻计算型函数。
对于一个标签,它所持有的秘密为ID和Key,对应的后端数据库信息为{ID’,Key’,IDold’,Keyold’,LRd}。ID,Key和ID’,Key’,为当前认证所使用的数据,ID old’,Keyold’为上一次认证所使用的数据,LRd为以随机数,ID与Key以及ID,Key和ID’,Key’的关系为:
1.1.2 识别过程
读写器与数据库之间同样需要认证,认证方式可采用成熟的认证方式,同时也需要对操作者所控制的IC进行认证。在读取标签之前,读写器需要从IC卡中获取KR。
标签的识别过程如图1所示。
1. 2 协议分析
1.2.1 安全性
随着计算机处理能力的增强,攻击者能力也不断提升,未受保护的通信容易受到如:窃听攻击(Eavesdrop Attack),伪造攻击(Forgery Attack),重放攻击(Replay Atta ck),哄骗攻击(Spoofing Attack),扮演攻击(ImropersonaTIon,Attack),中间人攻击(Man—in—Middle Attack),不同步攻击(De-SynchronizaTIon Attack),拒绝服务(Den ial of Service)等安全方面的攻击,以及定位(Locate),跟踪(Trace),隐私信息(InformaTIon Privacy)等隐私方面的攻击。
在上述攻击中,一部分是通过对攻击所致结果来命名,典型的如不同步攻击和拒绝服务攻击;还有一部分是利用认证双方所传递的信息,如重放攻击、扮演攻击、中间人攻击等,它们是利用协议的漏洞,提供给认证方认为“合法”的数据对其进行欺骗。
无论哪种攻击,其核心为通过采用一定的手段、方式或方法获取信息、分析信息背后所保护的信息、构造出认证所需的数据进而破坏协议执行。当攻击者要攻击的 RFID系统,一般有以下3种途径,一种是通过窃听到的消息数据计算秘密,另一种在获取一系列数据信息(监听标签和读写器之间的通信,窃取后端数据数据库等)的基础上,构造可通过识别的消息,还有一种就是通过诸如旁道攻击(Side-Channel Attack)等方式从标签获取秘密。
为了抵抗攻击,协议提供以下特性:
1)消息的新鲜性(Message Freshness):如其他诸多RFID协议一样,为了实现RFID认证中对隐私保护的支持,最基本的方法是使得在开放信道中传递的消息是随机的,所设计的协议使用了随机数来使消息呈现新鲜性,并且Rt,Rd作为秘密处理。
2)机密性(Confidentiality):ID和Key以密文形式进行传递,并通过包含Rt,Rd在内的随机秘密进行保护,保障ID和Key的机密性。
3)匿名性(Anonymity):在RFID识别过程中,通过随机数对标签的应答消息进行保护,这样就保障了标签的匿名性,并且应答的消息不与任何之前的消息有因果关系。
4)重放攻击(Replay attack):在每次认证过程中,都用新的随机数对密码进行保护,即使同一标签在不同认证过程中的应答消息也是不一样的,重放上次的认证消息是行不通的。
5)跟踪(Traceability):RFID标签持有者携标签进入某读写器覆盖范围时,标签将自动相应读写器的请求,如果直接用如ID信息等固有消息进行相应,则标签持有者极易被定位跟踪。在本协议中,标签ID变成了秘密,协议运行时随机数保护了应答的消息,因此可以防止跟踪。
6)不可区分性(Indistinguishability):如果在某一时刻是多个标签在应答读写器,由于消息的随机性,攻击者无法区分到底是哪个标签在应答读写器。
7)计算秘密(Calculatethe Secret):Rr,M1,M2,M3,M4,M5通过公开的公用信道进行传递,对具有强大攻击能力的攻击者来说可视作明文。但是攻击者要求解秘密,必须求解如下形式的方程:
然而,这对攻击者来说是有一定困难的。
8)构造消息(Message Construction):哄骗攻击,扮演攻击,伪造攻击,中间人攻击都要求攻击者利用所截获的消息,或对消息进行组合,或创造新消息,或综合构造出符合验证的消息,但方程(e)求解的困难性决定攻击者要构造出假消息是困难的。例如攻击者要构造
满足服务器的验证。即便攻击者利用XOR运算的特性,选择特定的数0作为Rr,但包含Rr的消息M2中ID,Key均未知,因此构造出能通过服务器的检查
,依然是困难的。同样在没有破解标签的情况构造M3,M4,M5也是困难的。
9)拒绝服务(DoS):协议中,数据库保存了上次运行所需数据信息,以防止当同步不成功时,后端数据库不再识别标签,呈现拒绝服务的状况。
10)标签数据泄露(Tag Data,Leakage)与服务器扮演攻击(Impersonate the Sever):依照文献,服务器扮演攻击定义为攻击者破解并窃取了标签的内部状况,进而可以模仿服务器使标签更新数据,而真实的服务器却没有更新。这个协议标签更新数据前要验证Key=F(ID,LRd)。因此,如果攻击者仅仅破解内部状态,依然不能构造M3,M4,M5消息欺骗标签。但是,如果攻击者不但破解了标签,此外还获取了Rr,M1,M2,同时阻止M3,M4,M5,发送给标签,则攻击者可以得手,不过这一条件比较苛刻。
11)后端数据库信息泄露风险(Sever Data Leakage):如果后端数据库提供识别服务的数据泄露,将给系统带来巨大的风险,攻击者可以根据数据克隆标签,获取非法利益。为此本协议通过在读写器中增加操作,可以降低风险的发生。这是因为后端数据库中没有存储读写器的运行密钥KR。
1.2.2 性能
总所周知,在RFID系统中相对于标签而言,端读写器和服务器具有更强的计算能力,标签的信息处理能力影响整个系统性能的关键因素,因此,在系统性能分析是主要分析标签端的计算、通信及存储三部分。
计算:标签无需承担高强度的计算,但是应能够完成异或运算、生成随机数、实现轻量的F(x,y)函数运算。
通信:在一次完整的标签读取过程中,标签接收2条消息,发送1条消息。
存储:标签端需要存储用来完成识别过程的两个秘密数据标签ID和Key。
1.2.3 可扩展性
协议运行时,后端的数据库需要进行一个线性的查找过程,其所需时间的复杂度为O(n),显然这面临可扩展性问题。为了实现可扩展性需求,可以将数据分布于多个后端数据库,读写器认证连接后,可以有选择的连接到其工作数据库。当然,数据库要维护好式ID,Key和ID’,Key’的关系。
1.2.4 讨论
在分析认证协议时,常常假设所使用的密码算法是“完美无缺”的,忽略其可能存在的缺点,但是对于解决RFID安全问题而进行协议设计时,不能不考虑所使用的密码算法的各种特性。
RFID标签可分为主动式标签(Active Tag)及被动式标签(Passive Tag)两种。被动式的标签也叫无源标签,它身没有电池的装置,所需电流来源于读写器的无线电波电磁感应产生,因此标签只有在接收到读写器发出的信号才会被动的应答读写器。这一类型的标签成本相对较低并具有较长的使用寿命,同时比有源标签更小也更轻。主动式的标签也叫有源标签,内置有电池,可以主动传送信号供读写器读取,但体积较大,与无源标签相比成本也会高出很多。
RFID标签是整个RFID系统中最为“弱”得一个环节,特别是对于低成本的RFID标签来说没有足够的计算能力,存储能力以及电源供给能力。一般来说,低成本被动标签只有5K-10K逻辑门,并且可用于安全算法的更少。传统的密码技术难以在这些标签上实现,例如公钥密码ECC(Ellipic- based Public Key Encryption)需要15K逻辑门。传统的Hash函数需要超过16K逻辑门,这远远超出了一般低成本标签的能力。
因此,针对不同特性的RFID标签,需要对F(x,y)进行选择,使用可以在低成本标签中实现的算法。
2 结论
安全是相对的,它取决于多种因素,在基本不增加系统成本的前提下,将系统的安全级别进行提升,意义尤为重要。本文所提出的协议是针对被动式低成本RFID 标签,通过增加读写器数据处理操作来提高整体的安全性,同时所使用的函数可以根据RFID标签能力进行选择,适用性较广。