基于传统的加密算法的安全协议,文献[9]提出基于矩阵乘法的认证方案,由于标签存储能力的限制,矩阵阶数不能太大,因此作者分析了该方案存在的弱点是不能防止野蛮密钥攻击。文献[10]提出基于椭圆曲线的公钥认证方案。文献[11]提出的方案基于零知识证明思想。这类协议大部分在计算量和通信量上较大,适合于电能、计算能力和存储能力限制不大的主动式RFID标签,不适合于低成本RFID标签。
3 零知识泄露的双向RFID认证协议
提出一种零知识泄露的双向RFID认证协议。对于低成本RFID标签来说,该协议有合适的通信量和计算量,并能够有效地保护RFID系统的安全性和隐私性。首先,我们给出协议的主要思想,定义协议的假设,然后给出协议的描述。
为方便和简化协议的描述,定义:T表示标签,R表示阅读器,B表示后端数据库系统,A表示攻击者。
3.1 主要思想
由前面的安全性和隐私性分析可以看出,RFID安全弱点来自T和R之间不安全的无线通信接口。A可以干扰、篡改或窃听T和R之间的通信,使T和B的数据不同步,可以对T和R实施重放攻击,也可以在不被察觉的情况下跟踪标签持有者的位置和行为,并模仿合法的T或R。而基于零知识证明的身份认证机制的基本思想是:信息的拥有者可以在无需泄漏密秘信息的情况下就能够向验证者证明它拥有该信息。因此,基于零知识的身份认证机制很适合于RFID系统。
我们的协议采用在R与T之间传送零知识认证消息(Zero-knowledge Authentication Message,ZAM)的方式,在不泄露标签ID的情况下,实现R和T之间的双向认证,并为以后的会话提供一个一次一换的随机会话密钥(Random Session Key,RSK)和可以作为会话序号的时间戳(Date Timestamp,DT)。
3.2 假设
我们的方案主要针对低成本标签中可以执行同步加密操作的一类标签(也称为同步密钥标签),这类标签是目前低成本标签的主流和发展趋势。根据Auto-ID中心的试验数据,在设计5美分标签时,集成电路芯片的成本不应该超过2美分,也就是说用于安全和隐私保护的门电路数量不能超过2.5k~5k个。根据文献[12],实现一个Hash函数单元只需要1.7k个门电路,实现一个随机数发生器(Pseudorandom Number Generator,PRNG)也仅需要数百个门电路。因此,我们假设T有一个单向Hash函数H(),有一个随机数发生器,有一定的存储能力,有基本的运算能力(如XOR)。T和B有相同的单向Hash函数,并预共享一个会话密钥(Session Key,SK)。
R和B有很大的计算机能力,因此假设R和B之间的通信信道是安全的。
3.3 协议描述
协议执行过程如图1所示。