无线Key 由用户随身携带,其硬件构成如上图所示。其中ROM 单元存放的是标签的ID 号。COS 即芯片操作系统,是无线Key 的核心,它主要实现控制无线Key 和外界的信息交 换,管理存储器单元并在无线Key 内部完成各种命令的处理等功能。 无线 Key 的认证过程主要分为两个步骤:第一步:利用RFID 技术实现标签与读卡器之 间的双向认证;第二步:在标签与读卡器进行双向认证无误后,用户机终端提示用户输入 PIN 码,进行主机对用户身份的认证。
3.2 协议设计
这里,假设读卡器和用户机终端数据库的通信是在一条安全可靠的有连接信道上进行而读卡器和无线Key 之间的通信是不安全的。并且在用户机终端和无线Key 的RAM 中已 经存储了读卡器和无线Key 双方的证书。协议描述过程(6)(7)如下:
⑴当带有标签的无线 Key 进入到读卡器的作用范围内时,读卡器会向应答器发送请求。 ⑵应答器产生响应,并由无线Key 的COS 执行一系列操作:先由随机数发生器产生随机数 R1 并存储到RAM 单元,然后取出RAM 单元中存储的读卡器的证书Certreader,在加/解密逻 辑单元中利用读卡器证书里的公钥KUB 对随机数R1 进行加密。最后通过应答器再发送给读 卡器,如图2 所示:
图2 应答器响应并利用KUB 发送R1
⑶读卡器射频接口接收到信号后,读卡器的控制单元先从用户机终端取得自己的证书,再由 加解密部件进行解密获得R1,接着调用随机数发生器(RNG)产生一个随机数R2 并存储到用 户机终端的RAM 中,然后再从用户机终端取得无线Key 的证书CertKey,在加/解密逻辑单 元中执行以下操作:首先利用自己的私钥KRB 对R1、R2 进行签名,再利用无线Key 的公钥 KUA 对上一步的结果进行加密得到数据Token1,即:Token1= EKUA(DKRB(R2|| R1))。最后读 卡器通过射频接口将Token1 发送给无线Key 端,如图3 所示。
图3 发送Token1 给无线Key
⑷应答器收到后,COS 从RAM 单元中取出读卡器和无线Key 的证书,交由加解密逻辑单 元完成解密和验证读卡器的过程:首先用无线Key 的私钥KRA 进行解密,接着利用读卡器 的公钥KUB 进行验证,得到R1 和R2 并存储R2,将通过解密得到的R1 与第⑵步中存储的 R1 进行比较看是否一致。如果没有改变,则进行下步操作。否则标签进入休眠状态。 ⑸无线 Key 端的随机数发生器产生另一随机数R3 并存储,同时从ROM 中取得标签的ID 号, 利用读卡器和无线Key 的证书,将R2、R3 和ID 号交由加/解密逻辑单元进行加密和签名操 作得到数据Token2,即:Token2 = DKRA(EKUB(R3|| R2||ID))。完成后应答器将Token2 发送 给读卡器,如图4 所示。
图4 无线Key 发送Token2 给读卡器
⑹读卡器接收后,从用户机终端取得读卡器和无线 Key 的证书,在加解密逻辑单元中完成 验证标签和得到标签ID 号的过程:首先用无线Key 的公钥KUA 进行验证,再利用自己的 私钥KRB 解密得到随机数R2、R3 和ID 号码。将得到的R2 和ID 号与存储在用户机终端RAM 中的R2 和ID 号进行比较,如果一致标签得到验证。读卡器再将得到的R3 利用自己的私钥 进行签名后发送给无线Key,以便无线Key 接收后确认读卡器已收到自己的ID 号。