基于对称加密算法的双向认证方法及系统 【技术领域】
本发明涉及一种双向认证方法和系统,尤其涉及一种基于对称加密算法的双向认证方法及系统。
背景技术
对于无线网络来说,如无线局域网或无线城域网等,其安全问题远比有线以太网严重的多。射频识别标签(RFID)同样面临安全问题,在进行安全通信之前,必须有效地解决RFID中读写器和电子标签之间的安全认证及密钥协商问题。
电子标签通常是一个低性能设备,处理能力较低;而读写器、数据库服务器等设备性能一般较高,其处理能力不受限制,能够满足如PC机上的各种运算和操作。因此,在设计电子标签应用系统时,电子标签的性能就会成为一个瓶颈,需要根据电子标签性能来确定所采用的设计方案。安全认证方案的设计也不例外。
如果电子标签的设备性能较高,可以采用现有的无线网络的安全方案,如:无线局域网IEEE802.11i或无线城域网IEEE802.16e等安全方案来实现电子标签与读写器之间的双向认证;但如果电子标签性能较低,则需要设计一些特殊的安全方案,在性能和安全性方面达到一个折衷。
目前所采用的一些方案需要读写器和服务器互相可信,一般情况下由于它们不在同一地理位置,因此在实际运用中所采用的该种技术方案是不可行的。
基于公钥系统的认证方案尽管灵活、扩展性好,但是其所需要的公钥运算对低性能电子标签来说是不合适的;而与公钥运算相比较的对称加密运算来说,其性能较高,能够适合各种低性能设备。
【发明内容】
为了解决背景技术中存在的上述技术问题,本发明提供了一种可实现数据库和电子标签之间无需安全链接、可进行双向认证及可合理利用设备性能的基于对称加密算法的双向认证方法及系统。
本发明的技术解决方案是:本发明提供了一种基于对称加密算法的双向认证方法,其特殊之处在于:该方法包括以下步骤:
1)碰撞过程:由读写器READER、电子标签TAG和电子标签应用系统数据库DB共同完成碰撞过程;
2)证书鉴别请求:在完成碰撞过程后,由电子标签应用系统数据库DB构造并发送证书鉴别请求分组给认证服务器AS;
3)证书鉴别响应:当认证服务器AS收到证书鉴别请求分组后发送证书鉴别响应分组给电子标签应用系统数据库DB;
4)挑战信息:当电子标签应用系统数据库DB收到证书鉴别响应分组后发送挑战信息分组给读写器READER;
5)认证请求:当读写器READER收到挑战信息分组后发送认证请求分组给电子标签TAG;
6)认证响应:当电子标签TAG收到认证请求分组后发送认证响应分组给读写器READER;
7)身份请求:当读写器READER收到认证响应分组后发送身份请求分组给电子标签应用系统数据库DB;
8)身份响应:当电子标签应用系统数据库DB收到身份请求分组后发送身份响应分组给读写器READER。
上述步骤1)具体步骤如下:
1.1)由读写器READER通过碰撞协议从关联的多个电子标签TAG中选取一个电子标签TAG;
1.2)将所选取的标签PID信息以及读写器READER的数字证书CERT_R一起发送给电子标签应用系统数据库DB。
上述步骤2)中证书鉴别请求分组内容包括:CERT_R字段、N1字段、CERT_D字段和SIG_D字段;
其中:
CERT_R字段:标识读写器READER的数字证书;
N1字段:标识电子标签应用系统数据库DB选取的一次性随机数;
CERT_D字段:标识电子标签应用系统数据库DB的数字证书;
SIG_D字段:标识电子标签应用系统数据库DB对其前所有字段的签名。
上述步骤3)中,当认证服务器AS收到证书鉴别请求分组后,由认证服务器AS验证电子标签应用系统数据库DB的签名SIG_D是否正确?若不正确,则丢弃该分组;若正确,则验证CERT_R和CERT_D的有效性;根据验证结果构造并发送证书鉴别响应分组给电子标签应用系统数据库DB;该证书鉴别响应分组内容包括:CERT_R字段、N1字段、CERT_D字段、RES_R字段、RES_D字段和SIG_A字段;
其中:
CERT_R字段:其值与证书鉴别请求分组中的CERT_R字段值相同;
N1字段:其值与证书鉴别请求分组中的N1字段值相同;
CERT_D字段:其值与证书鉴别请求分组中的CERT_D字段值相同;
RES_R字段:标识认证服务器AS对CERT_R的鉴别结果;
RES_D字段:标识认证服务器AS对CERT_D的鉴别结果;
SIG_A字段:标识认证服务器AS对其前所有字段的签名。
上述步骤4)中,当电子标签应用系统数据库DB收到证书鉴别响应分组后,由电子标签应用系统数据库DB验证N1是否为自己选取的随机数?若不是,则丢弃该分组;若是,则验证认证服务器AS的签名SIG_A是否有效?若无效,则丢弃该分组;若有效,则通过RES_R字段验证CERT_R的合法性,如果CERT_R不合法,则丢弃该分组;若合法,则构造并发送挑战信息分组给读写器READER;该分组内容包括:N1、CERT_D、RES_R、RES_D、SIG_A、CHM以及SIG_D;
其中:
N1字段:其值与证书鉴别请求、证书鉴别响应分组中的N1字段值相同;
CERT_D字段:其值与证书鉴别请求、证书鉴别响应分组中的CERT_D字段值相同;
RES_R字段:其值与证书鉴别响应分组中的RES_R字段值相同;
RES_D字段:其值与证书鉴别响应分组中的RES_D字段值相同;
SIG_A字段:其值与证书鉴别响应分组中的SIG_A字段值相同;
CHM字段:标识电子标签应用系统数据库DB发送给读写器READER的认证电子标签TAG的挑战信息,计算方法为:CHM=E(TK;SK);
SIG_D字段:标识电子标签应用系统数据库DB对其前所有字段的签名。
上述步骤5)中,当读写器READER收到挑战信息分组后,由读写器READER验证认证服务器AS的签名SIG_A是否有效?若无效,则丢弃该分组;若有效,则根据RES_D字段验证CERT_D的合法性,若不合法,则丢弃该分组;若合法,则验证电子标签应用系统数据库DB的签名SIG_D是否有效?若无效,则丢弃该分组;若有效,则构造并发送认证请求分组给电子标签TAG;该分组内容包括:N2以及CHM;
其中:
N2字段:标识读写器READER选取的一次性随机数;
CHM字段:其值与挑战信息分组中的CHM字段值相同。
上述步骤6)中,当电子标签TAG收到认证请求分组后,首先判断电子标签TAG本地重新计算CHM与接收到的CHM是否相等?若不相等,则丢弃该分组;若相等,则完成对读写器READER的认证,同时,构造并发送认证响应给读写器READER;该分组内容包括:RCHM;
其中:
RCHM字段:标识电子标签TAG对认证请求的响应信息,其计算方法为:
RCHM=E(N2⊕PID;SK);]]>
发送认证响应后,电子标签TAG更新其PID和TK如下:TK=TK⊕E(TK⊕PID⊕N2;SK).]]>
上述步骤7)中,当读写器READER收到认证响应分组后,由读写器READER构造并发送身份请求分组给电子标签应用系统数据库DB,该分组内容包括:N2、RCHM以及MIC;
其中:
N2字段:其值与认证请求分组中的N2字段值相同;
RCHM字段:其值与认证响应分组中的RCHM字段值相同;
MIC字段:标识读写器READER计算地完整性校验信息,其计算方法为:读写器READER)。
上述步骤8)中,当电子标签应用系统数据库DB收到身份请求分组后,电子标签应用系统数据库DB利用读写器READER的公钥解密MIC并验证解密结果是否等于若不相等,则丢弃该分组;若相等,则解密RCHM并计算PID,计算构造并发送身份响应分组给读写器READER;该分组内容包括:N2、CID以及SIG_D;
其中:
N2字段:其值与认证请求、身份请求分组中的N2字段值相同;
CID字段:标识电子标签TAG的身份ID使用读写器READER的公钥加密后的密文,即CID=EP(ID;读写器READER);
SID_D字段:标识电子标签应用系统数据库DB对其前面所有字段的签名;
发送身份响应分组后,电子标签应用系统数据库DB更新其PID和TK如下:
PID=PID⊕E(TK⊕PID;SK);]]>TK=TK⊕E(TK⊕PID⊕N2;SK).]]>
上述步骤8)之后还包括步骤9)当读写器READER收到身份响应分组后,由读写器READER验证N2是否为自己选取的随机数?若否,则丢弃该分组;若是,则利用自己的私钥解密得到电子标签TAG的身份标识ID。
一种用于实现基于对称加密算法的双向认证方法的认证系统,其特殊之处在于:所述系统包括:电子标签TAG、读写器READER、用于实现电子标签TAG和读写器READER进行对称加密算法的双向认证的电子标签应用系统数据库DB以及认证服务器AS;所述电子标签TAG和读写器READER连接;所述电子标签应用系统数据库DB分别和认证服务器AS以及读写器READER连接。
本发明的优点是:
1、可实现数据库和电子标签之间的双向认证。本发明采用对称加密算法,基于三元对等鉴别和证书机制,实现了数据库和电子标签之间的双向认证。
2、数据库和读写器之间无需安全链接。本发明所提供的数据库和读写器之间的安全通信通过公钥机制实现,因此数据库和读写器之间无需安全链接。
3、可合理利用设备性能。本发明将复杂运算过程由读写器来执行,而电子标签的最复杂运算为对称加密运算,能够合理利用设备性能。
【附图说明】
图1为本发明认证方法流程示意图。
【具体实施方式】
参见图1,本发明提供了一种基于对称加密算法的双向认证方法,该方法包括:
1)碰撞过程:该分组由读写器READER、电子标签TAG和电子标签应用系统数据库DB共同完成。首先读写器READER通过碰撞协议从关联的多个电子标签TAG中选取一个电子标签TAG,然后,将自己的数字证书CERT_R和所选取的标签PID信息发送给电子标签应用系统数据库DB。
2)证书鉴别请求:在完成碰撞过程后,当电子标签应用系统数据库DB获得读写器READER发送的信息后,构造并发送证书鉴别请求分组给认证服务器AS,该分组由电子标签应用系统数据库DB发送给认证服务器AS。分组内容包括:
CERT_R N1 CERT_D SIG_D
其中:
CERT_R字段:标识读写器READER的数字证书;
N1字段:标识电子标签应用系统数据库DB选取的一次性随机数;
CERT_D字段:标识电子标签应用系统数据库DB的数字证书;
SIG_D字段:标识电子标签应用系统数据库DB对其前所有字段的签名。
3)证书鉴别响应:收到证书鉴别请求后,认证服务器AS验证电子标签应用系统数据库DB的签名SIG_D是否正确,如果不正确,则丢弃该分组;如果正确,则验证CERT_R和CERT_D的有效性,并根据验证结果构造并发送证书鉴别响应给电子标签应用系统数据库DB。该证书鉴别响应分组由认证服务器AS发送给电子标签应用系统数据库DB。证书鉴别响应分组内容包括:
CERT_R N1 CERT_D RES_R RES_D SIG_A
其中:
CERT_R字段:其值与证书鉴别请求分组中的CERT_R字段值相同;N1字段:其值与证书鉴别请求分组中的N1字段值相同;
CERT_D字段:其值与证书鉴别请求分组中的CERT_D字段值相同;
RES_R字段:标识认证服务器AS对CERT_R的鉴别结果;
RES_D字段:标识认证服务器AS对CERT_D的鉴别结果;
SIG_A字段:标识认证服务器AS对其前所有字段的签名。
4)挑战信息:收到证书鉴别响应后,电子标签应用系统数据库DB验证N1是否为自己选取的随机数,如果不是,则丢弃该分组,如果是,则验证认证服务器AS的签名SIG_A是否有效?如果无效,则丢弃该分组;如果有效,则通过RES_R字段验证CERT_R的合法性。如果CERT_R不合法,则丢弃该分组,如果CERT_R合法,则构造并发送挑战信息分组给读写器READER。该挑战信息分组由电子标签应用系统数据库DB发送给读写器READER。挑战信息分组内容包括:
N1 CERT_D RES_R RES_D SIG_A CHM SIG_D
其中:
N1字段:其值与证书鉴别请求、证书鉴别响应分组中的N1字段值相同;
CERT_D字段:其值与证书鉴别请求、证书鉴别响应分组中的CERT_D字段值相同;
RES_R字段:其值与证书鉴别响应分组中的RES_R字段值相同;
RES_D字段:其值与证书鉴别响应分组中的RES_D字段值相同;
SIG_A字段:其值与证书鉴别响应分组中的SIG_A字段值相同;
CHM字段:标识电子标签应用系统数据库DB发送给读写器READER的认证电子标签TAG的挑战信息,计算方法为:CHM=E(TK;SK);
SIG_D字段:标识电子标签应用系统数据库DB对其前所有字段的签名。
5)认证请求:收到挑战信息分组后,读写器READER验证认证服务器AS的签名SIG_A是否有效。如果无效,则丢弃该分组,如果有效,则根据RES_D字段验证CERT_D的合法性。如果不合法,则丢弃该分组,如果合法,则验证电子标签应用系统数据库DB的签名SIG_D是否有效。如果无效,则丢弃该分组,如果有效,则构造并发送认证请求分组给电子标签TAG。该认证请求分组由电子标签应用系统数据库DB发送给电子标签TAG。认证请求分组内容包括:
N2 CHM
其中:
N2字段:标识读写器READER选取的一次性随机数;
CHM字段:其值与挑战信息分组中的CHM字段值相同;
6)认证响应:收到认证请求后,电子标签TAG本地重新计算CHM并与接收到的CHM比较。如果不相等,则丢弃该分组;如果相等,则完成对读写器READER的认证,同时,构造并发送认证响应给读写器READER。该认证响应分组由电子标签TAG发送给读写器READER。认证响应分组内容包括:
RCHM
其中:
RCHM字段:标识电子标签TAG对认证请求的响应信息,其计算方法为:
RCHM=E(N2⊕PID;SK).]]>
发送认证响应后,电子标签TAG更新其PID和TK如下:TK=TK⊕E(TK⊕PID⊕N2;SK).]]>
7)身份请求:收到认证响应后,读写器READER构造并发送身份请求分组给电子标签应用系统数据库DB。该身份请求分组由读写器READER发送给电子标签应用系统数据库DB。身份请求分组内容包括:
N2 RCHM MIC
其中:
N2字段:其值与认证请求分组中的N2字段值相同;
RCHM字段:其值与认证响应分组中的RCHM字段值相同;
MIC字段:标识读写器READER计算的完整性校验信息,其计算方法为:读写器READER)。
8)身份响应:收到身份请求分组后,电子标签应用系统数据库DB利用读写器READER的公钥解密MIC并验证解密结果是否等于如果不相等,则丢弃该分组,如果相等,则解密RCHM并计算PID,然后,计算构造并发送身份响应分组给读写器READER。该身份响应分组由电子标签应用系统数据库DB发送给读写器READER。身份响应分组内容包括:
N2 CID SIG_D
其中:
N2字段:其值与认证请求、身份请求分组中的N2字段值相同;
CID字段:标识电子标签TAG的身份ID使用读写器READER的公钥加密后的密文,即CID=EP(ID;读写器READER);
SID_D字段:标识电子标签应用系统数据库DB对其前面所有字段的签名。
发送身份响应分组后,电子标签应用系统数据库DB更新其PID和TK如下:
PID=PID⊕E(TK⊕PID;SK);]]>TK=TK⊕E(TK⊕PID⊕N2;SK).]]>
收到身份响应分组后,读写器READER验证N2是否为自己选取的随机数,如果不是,则丢弃该分组,如果是,则利用自己的私钥解密得到电子标签TAG的身份标识ID。完成对电子标签TAG的认证。
通过上述协议,电子标签TAG和电子标签应用系统数据库DB实现了双向认证,电子标签应用系统数据库DB和读写器READER实现了双向认证,读写器READER获得电子标签TAG的真实身份标识ID;同时,电子标签TAG和电子标签应用系统数据库DB实现了对PID和SK的同步更新,用于下次认证。
另外,需要说明的是:证书鉴别请求和证书鉴别响应分组应成对出现,并且是可选的,仅当电子标签应用系统数据库DB需要进行证书有效性验证时才会使用这两个分组。
这里给出一个基于对称加密算法的双向认证方案,假设电子标签、读写器、数据库之间事先没有任何安全关联,通过设计简单的操作实现电子标签和读写器之间的双向认证。电子标签端设备最复杂的运算是对称加密运算。
本发明在提供一种基于对称加密算法的双向认证方法的同时,还提供了一种基于对称加密算法的双向认证系统,该系统包括:电子标签TAG、读写器READER、用于实现电子标签TAG和读写器READER进行对称加密算法的双向认证的电子标签应用系统数据库DB以及认证服务器AS;电子标签TAG和读写器READER连接;电子标签应用系统数据库DB分别和认证服务器AS以及读写器READER连接。
其中,ID表示电子标签TAG的身份标识;
PID表示电子标签TAG的伪身份标识,电子标签TAG和电子标签应用系统数据库DB预共享该信息;
SK表示电子标签TAG存储的预共享密钥,同时,数据对<PID,SK>安全存储在电子标签应用系统数据库DB上;
TK表示电子标签TAG存储的预共享临时密钥,同时,数据对<PID,TK>安全存储在电子标签应用系统数据库DB上;
CERT_R表示读写器READER的数字证书;
CERT_D表示电子标签应用系统数据库DB的数字证书;
CERT_A表示认证服务器AS的数字证书;
MIC表示消息完整性校验;
E(m;Key)表示使用密钥Key对消息m对称加密;
EP(m;X)表示使用实体X的公钥对消息m加密;
ES(m;X)表示使用实体X的私钥对消息m解密;
SIG_D表示电子标签应用系统数据库DB的公钥签名;
SIG_A表示认证服务器AS的公钥签名;
RES_R表示认证服务器AS对读写器READER证书的鉴别结果;
RES_D表示认证服务器AS对电子标签应用系统数据库DB证书的鉴别结果;表示逐位异或运算。
本发明属电子标签系统中基于预共享密钥的认证方法(Shared-key basedRFID Authentication Protocol,SRAP)之一。