基于RFID 二次认证加密的智能识别系统设计*
2021-06-30臧俊斌
臧俊斌 ,白 洋
(1.中北大学 仪器科学与动态测试教育部重点实验室,山西 太原 030051;2.中北大学(朔州校区),山西 朔州 036000)
0 引言
自国内启动“金卡工程”以来,非接触式IC 卡技术的发展及应用取得了一定的效果,例如小区门禁管理系统、家庭门禁管理系统以及办公室门禁管理系统等智能识别系统已经广泛的应用到人们的日常生活中[1-2]。但是仍然存在很多安全隐患,例如:(1)如果用户不慎丢失IC 卡,或者由于某种情况被非法分子通过某种手段获取到IC 卡号,然后将IC 卡号复制到空白卡中,这有可能会造成用户信息泄露,甚至威胁到用户财产安全;(2)所有用户数据存储在服务器,管理员可以掌握所有用户的信息,而有些用户不愿意将个人信息安全交给某个管理员以防止泄密。这些问题都致使RFID 技术的应用推广受到限制,同时也使其便捷、高效的优点难以展现,进而束缚了技术变革带来的经济和社会效益。但是RFID标准的初步形成,将极大地推动RFID 的应用和研究[3-7]。因此,为进一步解决目前“金卡工程”所带来的安全隐患瓶颈与安全等级越高成本越贵技术难题,推动RFID 技术的实用性发展,需加强对智能识别系统的设计与研究。对此,本文利用基于8051 内核的STC89C52、MFRC522 模块、MIFARE 卡等构建射频识别模块架构设计,实现在该读写模块基础上进行二次开发认证加密的自动识别方法,旨在提供一个安全等级较高、便携使用的智能识别系统,以解决目前智慧安全系统的瓶颈问题。
1 安全隐患
市面上常规的IC 卡可以轻易被复制。丢失若不进行注销权限,卡被别人捡到或者通过空白IC 卡全盘复制的新卡也是可以通过验证轻而易举地进入,其这种行为有一定的风险,涉及个人及公共安全。此外,在一些注册系统中,因为没有持卡者和具体卡号的绑定关系,失主在注销丢失IC 卡的权限时,也会遇到无法确定注销哪一张卡这种问题。
同样地,将用户数据存储在服务器中也存在一定的被窃取的风险,进而使得窃取了IC 卡信息的不法人员制作特定信息的复制品,其同样可以通过验证。
2 RFID 认证原理与实现
无线通信技术中的射频识别技术(Radio Frequency Identifica tion,RFID)主要是通过电感耦合(近场通信)或电磁反向散射耦合(远场通信)方式实现读写器和电子标签的无机械接触数据通信[8-11]。
综合应用场合与功能的需求,本文RFID 认证系统的射频模块读写器采用MFRC522 芯片,此芯片具有低电压、低成本、小尺寸等的优点,其工作频段为13.56 MHz、集成度较高,并与ISO/IEC 14443 A/MIFARE 3 种型号都兼容,拥有强大而有效的解调和解码电路,可实现与任意类型卡的近场通信。数字部分可提供帧校验、奇偶校验和CRC 校验等多种校验方式。此外,MFRC522 还拥有SPI、UART、I2C 等丰富的外设资源,方便系统的二次开发[9-14]。
本系统采用的电子标签是MIFARE S50 智能卡,拥有8 Kbit 的EEPROM。本文将EEPROM 分为16 个扇区,每个扇区分成4 个块(Block0~Block3),每块有16 B。绝对地址Block0 块用于存储IC 卡制造商代码,Block3 用于控制块。控制块包括密钥A、密钥B、访问控制条件三部分,访问控制条件决定密钥A 和密钥B 的使用以实现对数据的读(Read)、写(Write)、增 值(Increment)、减 值(Decrement)、转存(Transfer)、恢复(Restore)等控制操作,每个扇区的密钥和存取控制独立设置,可以根据实际需要自行设定密码和存取控制,只有同时满足访问控制条件和密钥认证,读写器才能访问标签内用户数据,这样可确保每个分区的数据安全。其访问控制条件如表1 所示。
表1 访问控制条件
系统认证时只有读写器和标签相互认证且在访问控制允许下验证密码后才能进行下一步数据操作,以确保操作的安全性。而通用识别系统的用户ID 号则可以由任意读写器读取[15],倘若用户不慎丢失IC 卡,非法分子可以使用“Chinese Magic Card”复制该IC 卡,用户的所有信息将直接暴露给非法分子。因此,本文提出的二次认证加密智能识别系统可提高用户安全等级。
3 系统工作原理
3.1 系统运行模式
系统工作思想就是利用读写器和标签必须在相互认证且访问控制允许下验证密码通过后才能访问数据,同时配合UID 作为识别系统的Key。意味着只有在通过第二个身份认证的情况下才能访问数据或者进行下一步操作。
本系统具有3 种工作模式:注册模式、工作模式、注销模式。
(1)注册模式阶段:进入注册模式需要输入密码,此密码由系统管理员保管。首先,读写器在这种模式下开放注册,将用户新卡注册入系统。具体是:系统给需注册的IC 卡分配一个SID(System-ID),显示到LCD 屏上,IC卡主需牢记SID 号,同时系统将此SID 码对应的Joaat 哈希码写入到IC 卡特定扇区的块中。SID 同UID 作为整体保存到EEPROM 数据存储单元;将需注册的IC 卡的某一分组的某一块填充具体数据,同时将IC 卡内区尾部的密钥A 和密钥B 更改。所有用户的IC 卡经注册加入系统后,由管理员授权后可以进入工作模式。
(2)工作模式阶段:工作模式阶段可由解锁该系统的智能卡ID 号确定,此时任何未经注册的IC 卡和无法通过UID+SID 哈希码组合验证的IC 卡都无效,作为不合法IC 卡不具有有效性。只有系统认定合法的用户才能正常识别,通过智能识别系统。如果用户不慎将卡丢失,为防止意外事故,需及时通知管理员注销。
(3)注销模式阶段:进入注销模式后,用户可以手动输入用户的SID(十进制)进行注销。系统将通过用户提供的SID 号对应生成Jotta 哈希码检索并删除此卡所有相关信息,被注销卡的所有信息(包括UID 和SID)将会从EEPROM 存储单元删除。
如上所述,此时丢失的卡即使被非法分子得到,且被得知IC 卡的ID 号也无妨,因为仍需破解密钥A 或密钥B 才能访问到用户卡的数据信息,而密钥A 和密钥B又是结合用户SID 生成的,卡里只存储了用户SID 对应的哈希码,鉴于哈希码的不可逆性,所以非法分子无法获取真正的密钥,也就无法获得卡内存储的信息,密钥无法被泄露,这大大增加了破解和伪造用户卡的难度。另一种情况,若原卡被非法复制,只要失主及时在读写器端注销此卡,使用这张复制的卡同样无法通过验证,因为系统数据库中已经把原卡的SID 和UID 信息全部删除,复制的卡会被识别为不合法,也就无法通过读卡器端的验证。这就意味着用户的安全级别更高,小区安全或者家庭财产安全也更有保障。
3.2 哈希码
哈希码是一种算法,它不是唯一确定的一串字符。通过散列算法将任意长度的输入变换成固定长度的输出。不同的输入可能有相同的输出,但不可能从散列值来唯一的确定输入值。不同的哈希算法得出的哈希码差别迥异。
常用的哈希算法有MD4、MD5 和SHA-1 等。Joaat hash 全称为Jenkin′s "One at a time"hash,是一种简单高性能的字符串映射加密算法。其加密过程高效,加密后的密文具有不可逆和低字节的特点,适合于在代码容量较小的系统及实时系统中使用。对于RFID 用户验证的应用满足这两个特点,故选用此加密方式。
4 系统组成
本智能识别系统由完整且功能完备的硬件和软件构成。由模块化思想设计的硬件结构大大降低了后期维护的成本,同时软件部分也采用模块化设计,易于开发者后期维护。系统总体组成如图1 所示。
图1 系统结构图
4.1 硬件系统
硬件部分主要由STC89C52RC 单片机、MFRC522 射频模块、AT24C256 存储模块、人机交互按键模块、外围控制电路以及报警模块等部分组成。
(1)单片机控制部分
系统主控部分采用STC89C52 单片机。STC89C52 MCU采用MCS-51 核心,其抗干扰能力强、运行速度快、性能高、功耗低。其内置8 KB 的闪存ROM、512 B RAM 和2 KB的EEPROM、3 个16 位定时器/计数器、32 个普通I/O 口,满足此系统工作条件。此外,STC89C52 单片机还具有价格低廉的特点。因此,选用STC89C52 作为主控芯片,能够降低系统成本。
(2)按键和LCD 模 块
本系统具有3 种工作模式,因此必须具备模式切换的功能。另外本系统具有注销功能,需要在用户注销时输入SID。本系统设置按键模块,使用按键扫描的方式确定系统的工作模式。因此,系统采用4×4 矩阵键盘,设有数字键(0~9)、确认键、退格键、清空键,以及功能键A、B、C。
(3)外围控制电路
外围控制电路包括了电机以及电机控制电路、霍尔感应开关和报警模块,用来控制锁的开启和关闭以及防止非法开锁。
(4)存储部分
本系统存在注册模式,注册模式时,用户的注册信息存储在EEPROM 中。考虑到该系统将应用到类似小区的中型门禁管理系统,因此,本系统选取ATMEL 公司生产的AT24C256 可编程只读存取器,它具有256 Kbit 的位存储单元、32 KB 存储单元,而用户SID 对应的哈希码和IC 的UID(Unique ID)只需要8 B 的存储空间,其详细的数据存储记录格式见表2 所示。因此本系统最多支持4 096 个IC 卡,可应用于中型门禁系统。
表2 EEPROM 数据记录格式
4.2 软件系统
基于硬件电路的设计,本文开发出相应的软件来配合响应硬件电路以实现整体识别功能。软件程序的质量直接决定着整个系统的成败。使用可移植性高的C 语言编写,在Real View MDK 编译环境中运行,使用STC-ISP软件与单片机交互,这给程序的修改和调试带来很大的方便。图2 展示了系统的软件结构设计流程图。
图2 系统软件流程图
系统的关键API 函数主要有:
4.3 系统测试
识别部分是该系统的关键部分,需要进行大量实验以测试验证系统的可靠性。为便于观察,需通过多机通讯的方式验证识别系统是否可靠。图3 所示为搭建的系统实验测试方案,其主要由RFID-RC522 射频模块和终端处理组成,射频模块用于IC 卡感应识别,终端处理器负责完成对数据的读写控制操作。首先进行IC 卡的注册,如图4 所示,用户进入注册模式需要输入管理员密码,之后将卡贴近读卡器,读卡器识别到UID 为B4EEF8E2的卡后,将卡序列号转换为哈希码作为SID 并显示在屏幕上。该SID 由用户保管。
图3 系统结构实验测试图
图4 注册模式
然后,进入到工作模式。如图5 所示,屏幕显示UID为 B4EEF8E2 的卡通过了ID 验证及块认证,UID 为56AC2312 的卡因未注册所以没有通过ID 验证,更无法进行下一步的块认证。而UID 为CABB9A10 的通过了ID认证但没有通过块认证,结果同样是验证失败。
图5 工作模式
假设UID 为B4EEF8E2 卡的主人将卡遗失,被非法分子捡到。该卡的主人及时进行了注销,如图6 所示,进入注销模式,输入SID 号后,系统将该卡的所有相关验证信息删除。如图7 所示,非法分子使用IC卡复制工具将UID 为B4EEF8E2的卡复制到“Chinese Magic Card”上,企图使用复制的卡通过系统验证,但复制卡只通过了ID 认证,没有通过块认证,结果如图8 所示。
图6 注销模式
图7 IC 卡复制
图8 复制卡无法通过验证
综上,测试的卡分别是注册过的卡、未注册的卡和系统中已注册的卡的复制卡。经测试,系统运行稳定,未注册的卡和已注册卡的复制卡无法通过认证。同时,因为有密钥的存在,也无法轻易读取卡内信息。
对于已注销的卡,仍可以在注册模式下进行注册,但需要系统管理员提供进注册模式的密码,此时即可验证注册者的身份是否合法。
5 结论
基于RFID 技术的二次认证加密智能识别系统便捷、有效地保障了用户信息的安全性,解决了个人信息存储于服务器带来的安全隐患与昂贵成本问题。此外,本文详细阐述了二次认证系统的3 种工作模式以及针对各工作模式下的实验测试效果,表明其具有极高的安全性,且不易被破解和伪造,也能有效识别并阻止复制卡认证。所以此设计方法具有极大的应用价值,适用于家庭小区、办公室、学校等任何可以使用智能识别系统的场所,以提高安全等级。另外,随着IoT 的大规模普及,RFID 技术作为一种物联网的促进剂将不断改进,安全和隐私级别会不断提高,RFID 在日常生活中的应用将更加广泛,而基于RFID 技术的性能优异、便捷可靠的安全识别系统也会得到快速提升与推广。