著录项信息
专利名称 | 用于射频识别系统的安全认证方法 |
申请号 | CN200910048154.7 | 申请日期 | 2009-03-24 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2010-09-29 | 公开/公告号 | CN101847199A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06K7/00 | IPC分类号 | G;0;6;K;7;/;0;0;;;H;0;4;L;9;/;0;0查看分类表>
|
申请人 | 复旦大学 | 申请人地址 | 上海市邯郸路220号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 复旦大学 | 当前权利人 | 复旦大学 |
发明人 | 王俊宇;刘丹;谭杰;杨玉庆;闵昊 |
代理机构 | 上海元一成知识产权代理事务所(普通合伙) | 代理人 | 吴桂琴 |
摘要
本发明公开了一种用于射频识别系统的安全认证方法,首先进行通过标签的初始ID进行认证密钥查找,然后进行标签认证和读写器认证,双方均通过认证后,数据通信的密钥生成,在此后的通信中使用此通信密钥,下次通信时,安全认证流程对标签的认证密钥进行实时更新。本发明通过实时更新标签认证密钥以及采用密文传输信息等手段来提高RFID系统的安全性,充分保证了认证密钥的前向安全,使攻击者不可能从当前获取的密钥推算出之前通信所采用的密钥,适合于任何RFID通信协议,并能提高密钥查找的效率。
用于射频识别系统的安全认证方法\n技术领域\n[0001] 本发明属于射频识别技术领域,涉及一种射频识别系统的安全认证方法,尤其涉及一种射频识别系统的通信协议及安全认证方法。\n背景技术\n[0002] 射频识别(RFID)是一种通过电磁波进行非接触双向通信的自动识别技术。射频识别的基本系统包括电子标签(以下简称标签)和读写器。二十世纪90年代,RFID技术开始广泛用于交通卡,门禁卡等领域。近年来,RFID技术不断出现在各种新的应用领域,例如商品防伪,电子护照,车钥匙,动物管理,图书管理,供应链管理和奥运会门票等,甚至有人建议将RFID植入人体。\n[0003] 毫无疑问,RFID技术的推广应用使得人类的生活变得更加方便,但同时也越来越引起人们对由此带来的安全与隐私问题的关注。不安全的RFID系统除了会威胁个人隐私,还会造成团体组织敏感信息的泄漏。RFID系统的安全问题涉及到后台系统、中间件、读写器和电子标签等各个环节,但是,电子由于成本所限,能够用于安全设计的资源最少,因此成为RFID系统中最薄弱和最容易受到攻击的环节。RFID系统中读写器与标签之间面临的常见攻击手段主要包括:物理攻击,伪造,克隆,非授权访问,窃听,跟踪和拒绝服务等。国际工业界和学术界对RFID系统的安全隐私问题展开了研究,提出了许多解决方案,大致可以分为两类:一类安全方案是基于非密码算法的安全方案,例如,通过“kill”指令使标签作废的方法以及使用“blocker”标签阻塞攻击者等。采用非密码学的方法对读写器和标签进行认证的方法简单,但是安全性能不可靠,只能部分防止标签被任意读取。另一类安全方案是基于密码算法的安全方案,由于标签资源有限,采用对称密码算法的安全方案是目前研究的主流。现有的基于密码算法的安全解决方案虽然采用了认证流程,但是没有解决跟踪风险和密钥查找等问题。\n[0004] 发明内容\n[0005] 本发明的目的是针对现有技术的不足,提出一种适用于射频识别系统的安全认证方法,尤其涉及一种射频识别系统的通信协议及安全认证方法。本发明在读写器和标签进行正常通信之前增加认证密钥查询和双向认证流程,对标签认证密钥进行实时更新,并对认证完成后的数据通信进行加密,以提高RFID系统的安全性。本发明利用对称密钥算法和单向函数的特性,有效地保护了认证密钥,保证了数据传输的前向安全,适合于任何RFID通信协议。\n[0006] 本发明的主要目的是通过如下技术方案实现的:用于射频识别的安全认证方法,包括标签认证和读写器认证,还包括认证密钥查找和认证密钥更新,\n[0007] 首先,标签接收请求访问指令,标签返回加密的临时ID,即metaIDi(i=0...n,ii i\n=0时为初始ID),读写器以加密的metaID 作为索引查找对应的认证密钥KAuthen ;\n[0008] 然后进行标签认证和读写器认证;\n[0009] 所述的标签认证包括,标签接收读写器发送的随机数R1,标签用自己的认证密i\n钥KAuthen 对R1进行加密得到S1,标签将S1发送给读写器,读写器使用查找到的认证密钥i\nKAuthen 对S1解密,如果解密结果与R1相同,说明标签合法;反之,标签不能通过认证,通信结束;\n[0010] 标签通过认证后,再对读写器进行认证,所述的读写器认证包括,标签生成随机数i i\nR2,利用认证密钥KAuthen 加密得到S2,发送给读写器,读写器用认证密钥KAuthen 解密出随机数R2,再用R2作为密钥加密R1得到密文S3,如果C2与S3相同,说明读写器合法;如果不相等,读写器不能通过认证,通信结束;\n[0011] 读写器也通过认证后,将R2作为第i次数据传输的密钥,对传输的信息进行加密;\n[0012] 最后进行认证密钥更新,读写器生成随机数R3作为通信的认证密钥KAutheni+1,用i+1 i+1\n单向函数H计算得到metaID ,读写器更新该标签的认证密钥和临时ID,即(metaID ,i+1 i+1 i+1 i+1 i+1\nKAuthen ),并将(metaID ,KAuthen )安全写入标签,第i+1次通信时,用(metaID ,KAuthen )i i\n代替原来的(metaID,KAuthen)。\ni i\n[0013] 所述临时IDmetaID 与认证密钥KAuthen 的关系为, 其中H为单向\n函数。\n[0014] 所述将(metaIDi+1,KAutheni+1)安全写入标签,包括,读写器将metaIDi+1和KAutheni+1分别与R2异或,得到 和 将α和β发送给标签;标签接收到后,将\ni+1 i+1 i+1 i+1\nα和β分别与R2异或即可以得到(metaID ,KAuthen ),并用(metaID ,KAuthen )代替原i i\n来的(metaID,KAuthen)。\n[0015] 标签和读写器的双向认证均通过后,标签和读写器之间的数据传输均以密文形式进行,加密传输流程包括\n[0016] 当读写器向标签存储器写入信息时,\n[0017] 假设要写入的信息为M1,读写器首先利用密钥R2对其进行加密,读写器加密后得到对应的密文Cipher1=Enc(M1,R2),Enc表示加密算法,读写器发送写指令write(Cipher1,addr1),指令中包含写入的密文Cipher1和写入地址addr1;标签接收写指令write(Cipher1,addr1)后,利用密钥R2对密文Cipher1解密得到明文M1=Dec(Cipher1,R2),Dec表示解密运算,并将M1写入存储器中对应地址单元。标签成功写入信息后,返回写入成功的响应write_success;\n[0018] 所述的加密传输流程还包括,\n[0019] 当读写器读取标签存储器信息时,\n[0020] 假设要读取的信息为M2,地址为addr2,读写器发送读指令Read(addr2);标签将地址addr2的信息M2用密钥R2加密得到对应密文Cipher2=Enc(M2,R2),Enc为加密算法,将其返回给读写器;读写器利用密钥R2对密文Cipher2解密得到明文M2=Dec(Cipher2,R2),Dec解密算法。\n[0021] 读写器向标签写入数据时,还包括数据完整性校验,\n[0022] 首先,计算信息摘要,\n[0023] 假设传输信息的明文为M1,读写器首先利用密钥R2对其进行加密,得到密文Cipher1=Enc(M1,R2),并用哈希函数Hash计算M1对应的信息摘要Hash(M1),\n[0024] 然后,进行信息摘要比较,\n[0025] 读写器通过写入指令将密文发送给标签,标签对密文Cipher1进行解密得到对应明文M′1,然后计算其对应的Hash(M′1),将Hash(M1)与Hash(M′1)比较,如果一致,则将M′1其写入指定地址的存储单元,同返回写入成功的响应;\n[0026] 读写器从标签读数据时,还包括数据完整性校验,\n[0027] 首先,计算信息摘要,\n[0028] 读写器发送读指令Read(addr2),标签根据地址从存储器中读取对应明文信息M2,先用哈希函数Hash计算M2对应的信息摘要Hash(M2),\n[0029] 然后,进行信息摘要的比较,\n[0030] 对M2进行加密,最后将M2的密文Cipher2=Enc(M2,R2)和摘要信息Hash(M2)同时传送给读写器;读写器首先对密文解密得到明文M2,然后计算其对应的摘要信息,得到Hash(M′2),如果Hash(M′2)与接收到的Hash(M2)相等,说明标签的数据M2没有被篡改,从而保证了标签存储信息的完整性。当标签本身具有独立的HASH函数计算功能时,由于标签可以对存储区的任何数据进行HASH计算,故此时M2与M1也无相关性。\n[0031] 本发明的优点在于,通过读写器标签在进行通信之前增加双向认证流程,实时更新标签认证密钥以及采用密文传输信息等手段实现上述安全目标的;通过采用对称密钥算法,及单向函数的特性,有效的保护了认证密钥,并且解决了密钥查找的问题,提高了密钥查找的效率,能够抵御RFID读写器与标签之间面临的大部分攻击,包括:窃听,跟踪,非法读取、篡改标签数据,克隆,伪造,中间人攻击,而且能有效保护标签持有者的隐私。\n附图说明\n[0032] 图1为标签读写器进行双向认证的流程示意图。\n[0033] 图2为标签的ID与对应认证密钥的关系示意图。\n[0034] 图3为读写器读取标签存储器的示意图。\n[0035] 图4为读写器写入标签存储器的示意图。\n[0036] 图5为保证传输数据完整性时,读写器读取标签存储器的示意图。\n[0037] 图6为保证传输数据完整性时,读写器写入标签存储器的示意图。\n[0038] 为了便于理解,以下将通过具体的附图和实施例对本发明的进行详细地描述。需要特别指出的是,具体实例和附图仅是为了说明,显然本领域的普通技术人员可以根据本文说明,在本发明的范围内对本发明做出各种各样的修正和改变,这些修正和改变也纳入本发明的范围内。\n具体实施方式\n[0039] 实施例1\n[0040] 图1为RFID读写器和标签之间的双向认证流程,包括:认证密钥查找,标签认证,读写器认证,数据通信的密钥生成和认证密钥更新几个步骤。\n[0041] 步骤一,认证密钥查找\n[0042] 假设每个标签均拥有一个独立的密钥,当合法的读写器与标签通信时,如何快速确定当前标签的密钥称为认证密钥查找问题。简单的解决方法是读写器遍历数据库中所有的认证密钥,分别使用每个密钥与标签进行双向认证,该方法的缺陷是当标签数量增加时,读写器负担会急剧增加,不能满足大多数应用的需求。一种改进方法是为每个标签分配一个固定索引号,标签被查询时,首先返回各自的索引号,读写器根据该索引号查找对应的认证密钥。由于索引号是固定的且是明文传输,该方法存在跟踪风险,攻击者甚至可以建立标签索引号和标签ID的联系,使得其面临隐私泄露风险。本发明提出了一种快速动态的\n0\n密钥查找方法,具体过程如下:每个合法标签在出厂时会被分配一个初始认证密钥Kanthen,\n0 0\n通过单向函数H计算对应的标签初始ID,设为metaID,即 并将(metaID,\n0 0 0\nKanthen)写入标签存储器。由后台数据库保存所有标签的(metaID,Kanthen)对0第i次认i\n证开始之前,读写器发送查询指令Query,标签返回当前临时ID,记为metaID ;读写器以i i\nmetaID 作为索引在后台数据库查找该标签对应的认证密钥KAuthen。临时ID在每次认证完毕后将被更新,所以该方法不存在跟踪和隐私泄露风险。\n[0043] 步骤二,标签认证,\n[0044] 读写器对标签的合法性进行认证。读写器生成一个随机数R1发送给标签;标签用当前认证密钥KAutheni对R1加密得到 其中E(R1,KAutheni)表示以KAutheni作i\n为密钥对明文R1进行对称密钥加密运算。标签生成一个随机数R2,利用KAuthen 加密得到标签将S1和S2发送给读写器,附图中{S1,S2}表示连接符号,即消息由S1\ni\n和S2组成。读写器使用认证密钥KAuthen 对S1解密,其解密结果如果与R1相等,则说明标签合法;反之,标签不能通过认证,通信结束。\n[0045] 步骤三,读写器认证,\n[0046] 标签对读写器的合法性进行认证。当读写器验证了标签的合法性后,从中解密出标签生成的随机数R′2,以R′2作为密钥,加密R1,并将C2=E(R1,\nR′2)发送给标签;标签计算E(R′1,R2),将其与C2比较,如果相同,说明读写器合法;反之,读写器不能通过认证,通信结束。\n[0047] 步骤四,数据通信的密钥生成,\n[0048] 当读写器与标签完成了双向认证后,如果双方均合法,则可以进行数据的传输,传输的数据必须以密文形式进行。在上面的认证过程中,标签产生的随机数R2一直是以密文传输,则可以将R2作为双方数据传输的密钥。由于R2是标签产生的一次性随机数,提高了通信的安全性。\n[0049] 步骤五,认证密钥更新,\n[0050] 为了保证认证密钥具有前向安全性,即攻击者不可能从当前获取的密钥推算出之前通信时采用的密钥,本发明的安全认证流程对标签的认证密钥进行实时更新。读写器生成随机数R3,将其作为标签下一次认证时的合法密钥,即 利用单向函数H计算得i+1 i+1 i+1\n到对应的认证密钥metaID , 即得到该标签的新(metaID ,KAuthen )\ni+1 i+1\n对,读写器更新该标签的密钥和ID;为了将(metaID ,KAuthen )安全地写入标签,读写器i+1 i+1\n将metaID 和KAuthen 分别与R2异或,得到 和 将α和β发送\ni+1 i+1\n给标签;标签接收到后,将α和β分别与R2异或即可以得到(metaID ,KAuthen ),并用i+1 i+1 i i\n(metaID ,KAuthen )代替原来的(metaID,KAuthen)。\ni i\n[0051] 在第i轮认证中,标签的临时ID,metaID,和认证密钥KAuthen 的关系如附图2所示,即 其中H为单向函数(不能从函数值反推函数输入)。在认证过程中\ni i i\nmetaID 以明文返回读写器,攻击者即使获得单向函数算法,也不能从metaID 计算KAuthen,i\n函数的单向性提高了认证密钥KAuthen 的保密性。当标签认证密钥更新后,认证密钥和临时ID仍然满足附图2所示关系。本发明中的单向函数只需在读写器端实现,降低了标签的硬件复杂度,节约了标签成本。\n[0052] 当读写器、标签双向认证通过后,读写器可以读取标签存储器中的数据,或者向标签写入数据。根据通信保密性的要求,它们之间的通信必须以密文的形式进行。这里的加密算法可以与前面的认证流程中的加密算法一致,或者不同。下文中用Enc表示加密算法,用Dec表示解密运算。\n[0053] 图3为读写器向标签存储器写入信息的流程,假设要写入的信息为M1,读写器加密后得到对应的密文Cipher1=Enc(M1,R2),读写器发送写指令write(Cipher1,addr1),指令中包含写入的密文Cipher1和写入地址addr1;标签接收写指令write(Cipher1,addr1)后,利用密钥R2对密文Cipher1解密得到明文M1=Dec(Cipher1,R2),并将M1写入存储器中对应地址单元。标签成功写入信息后,返回写入成功的响应write_success。\n[0054] 图4为读写器读取标签存储器信息的流程,假设要读取的信息为M2,地址为addr2,读写器发送读指令Read(addr2);标签将地址addr2的信息M2加密得到对应密文Cipher2=Ennc(M2,R2),将其返回给读写器;读写器利用密钥R2对密文Cipher2解密得到明文M2=Dec(Cipher2,R2)。需要说明的是该处的M2与前面的写操作的M1无相关性。\n[0055] 为了更好地保护标签的敏感数据,可以在读写器标签的相互通信中增加传输信息的完整性。数据完整性是通过哈希函数计算信息摘要的方式获得的。\n[0056] 带完整性校验的写入标签流程如图5所示:假设传输信息的明文为M1,读写器首先利用密钥R2对其进行加密,得到密文Cipher1=Enc(M1,R2),并用哈希函数Hash计算M1对应的摘要Hash(M1),然后通过写入指令将密文发送给标签,标签对密文Cipher1进行解密得到对应明文M′1,然后计算其对应的Hash(M′1),将Hash(M1)与其比较,如果一致,则将M′1其写入指定地址的存储单元,同返回写入成功的响应;\n[0057] 带完整性校验的读标签流程如图6所示:首先发送读指令Read(addr2),标签根据地址从存储器中读取对应明文信息M2,先用哈希函数Hash计算M2对应的摘要Hash(M2),然后对M2进行加密,最后将M2的密文Cipher2=Enc(M2,R2)和摘要信息Hash(M2)同时传送给读写器;读写器首先对密文解密得到明文M′2,然后计算其对应的摘要信息,得到Hash(M′2),如果Hash(M′2)与接收到的Hash(M2)相等,说明标签的数据M2没有被篡改,从而保证了标签存储信息的完整性。当标签本身具有独立的HASH函数计算功能时,由于标签可以对存储区的任何数据进行HASH计算,故此时M2与M1也无相关性。\n[0058] 综上所述,为了防止攻击者随意读取标签信息,保护标签持有者的个人隐私,防止跟踪,窃听和篡改标签数据等攻击,本发明的安全认证流程引入了对读写器的身份认证流程;为了防止不法分子克隆标签,伪造标签,引入了对标签合法性的认证流程。为了防止重放和中间人攻击,本发明的安全流程使用了一次性随机数。为了保证认证密钥的前向安全性,标签读写器双向认证结束后,读写器会更新认证密钥和标签临时ID;使用单向函数从认证密钥计算标签临时ID,即使标签临时ID被攻击者窃听,也不可能推导出对应的认证密钥。\n[0059] 以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,任何所属技术领域的普通技术人员,若在不脱离本发明所提技术特征的范围内,利用本发明所揭示技术内容所做出局部变化或修改的等效实施例,并且未脱离本发明的技术特征内容,均仍属于本发明技术特征的范围内。
法律信息
- 2018-04-17
未缴年费专利权终止
IPC(主分类): G06K 7/00
专利号: ZL 200910048154.7
申请日: 2009.03.24
授权公告日: 2012.06.06
- 2012-06-06
- 2010-11-17
实质审查的生效
IPC(主分类): G06K 7/00
专利申请号: 200910048154.7
申请日: 2009.03.24
- 2010-09-29
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2005-03-02
|
2004-08-02
| | |
2
| |
2006-02-01
|
2005-07-07
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |