RFID(Radio Frequency Identification)作为一种新的自动识别技术逐渐被广泛地应用于人们的日常生活当中,隐私安全问题也逐渐受到人们所重视。本文首先对现有的一种用于人类身份认证的安全协议-HB 协议进行了分析研究,并从 RFID 实际应用安全性要求角度对协议进行了改进。性能分析结果表明,改进的协议可以有效地解决目前的 RFID 应用系统中的数据安全问题。
重加密的安全要求
在该应用模型中,为了保护隐私,重加密时需实现明文保密、公钥保密、防非法公钥替换、防合法公钥替换、别名无关性。其中别名无关性是指:除了L i 任何实体都不能够判断不同别名是否对应同一个ID 。
重加密的算法选择
对重加密算法提出3点要求:
(1)具有单向性。否则重加密读写器可以逆向计算获得ID 。可以选择公钥加密、Hash 函数等。
(2)随机化特性。一个ID 须对应多个别名,这要求多个密文对应一个明文。可以选择具有随机化的公钥加密方案,例如ElGamal 算法。
(3)一次解密。设解密时别名已经过N 次重加密,一次解密要求,经过一次解密操作即可恢复明文。通用重加密算法具有该特性。
重加密的缺点及对策
RFID 的重加密技术存在一些缺点:
(1)重加密间隔内的跟踪问题。在2次重加密间隔内,标签别名不变,则易受跟踪。
(2)未解决合法公钥替换攻击问题。
(3)未做到RFID 标签认证。标签容易受到置换攻击、数据篡改攻击,读写器易收到重放(replay)和哄骗(spoofing)攻击。
重加密防置换攻击的策略
为了防止置换攻击引起的跟踪,必须在重加密时,抵抗公钥置换攻击。其难点在于重加密读写器并不能比攻击者获得更多的有关标签的信息。本文认为防公钥置换攻击可分为抗置换、检测置换、防置换跟踪3个等级:
(1)抗置换:抗置换要求标签别名不能够被置换。采用写保护密码可以防止标签名被置换,但是它同样限制了重加密操作。讨论如下方法:
1) 标签验证读写器合法性:即使简单的验证协议也需要读写器在线,甚至在标签上实现Hash 函数。
2) 标签验证写入数据的合法性:重加密一般使用公钥加密,验证数据的合法性需要在标签上实现较大的运算量。
3) 别名由标签内部产生:此时可设置存储单元为外部不可写,可抵抗置换攻击。但是若使用公钥作为重加密运算,则对标签要求太高。值得注意的是若采用Hash 函数作为重加密算法,则可以在标签内实现一个Hash 函数的条件下实现内部产生别名,它实际上等同于Hash-链协议[2],但解密时需要在线连接数据库。
(2)检测置换:检测置换要求在置换发生以后能够在重加密时检测出来。对此本文提出“过程记录”法,其基本思想是,设标签内有一存储单元D =(α2, β 2) ,D 记录公钥变化的过程,从D 不能够计算公钥本身,但是从D 能够检测置换。设D 初始化为(1, 1),并设通用重加密中,第k 次重加密时C PK =(αk ,1, βk ,1) ,每次重加密后标签做如下操作:
D k +1=(αk +1,2, βk +1,2)←(αk ,2αk ,1, βk ,2βk ,1)
(3)防置换跟踪:公钥置换的目的是实现跟踪,如果能够在重加密后破坏公钥置换的跟踪性,则一定程度实现抗置换攻击。
但该方法不能够防止写入的(α1, β1) 不是一个正确的C PK的篡改攻击。例如设攻击者的标签有D ´= (α´2, β ´2) ,攻击者只要设置(α1, β1)= (α´2/α2, β ´2/β 2) ,则根据式可将该标签置换为攻击者的标签。假设任何标签的(α1, β1) 为正确的C PK ,则该方案能够防止置换2个合法标签名的攻击。在硬件上,该方案主要在标签内实现一个乘法器。
重加密在RFID 安全应用中有对标签要求低、可离线工作等优点,是一个具有广泛应用前景的方案。本文综述了其在RFID 应用中的现状,提出通用模型、安全要求和存在的问题。“过程记录”法在抗置换攻击方面提供了一个思路,它在一定程度上能抗置换攻击。