戴建浜 福建省莆田第二中学
近些年,随着生活水平的提高和学校对安防意识的重视,智能门锁已成为学校门锁升级换代的选择。智能门锁是指在传统机械锁的基础上改进的,在用户安全性、识别、管理性方面更加智能化简便化的锁具。[1]智能门锁是门禁系统中锁门的执行部件,磁卡、射频卡是使用非机械钥匙作为用户识别ID的成熟技术,这类卡片属非接触类,安全性较高,塑料材质,配置携带较方便,价格又低廉,如指纹锁、虹膜识别门禁等,这类卡在银行、政府部门(注重安全性),以及酒店、学校宿舍、居民小区、别墅、宾馆等使用比较多。还有一种智能锁是近年来比较畅销的人工智能锁具,可以进行人脸识别开锁,具有安全性高、简单又方便的特点。目前,不管是哪一种智能锁,一般都可以与智能手机、智能路由器、监控器等智能家居设备一起实现用手机远程操控等功能。
但这些智能锁具都存在一个致命的问题,就是电源问题,目前有一部分智能锁要拉专线给锁供电,有一部分采用电池方式,但过几个月就得更换电池,改造成本很高,在没电时也会有安全隐患。还有就是强电磁波干扰问题[2],攻击者通过外部的强电磁场发射工具,向门锁发出强电磁波干扰(俗称小黑盒攻击),电磁波在门锁内部耦合产生电压,可能触发门锁的误动作。[3]攻击结果包括但不限于触发开锁信号、驱动电机、触发MCU或识别芯片重启等造成误开锁。据2018年的一份研究,国家质检中心对市面上40款智能门锁做了风险监测,15%都能被小黑盒秒开,剩余绝大多数都存在安全风险。
本文涉及的“挂锁”采用传统机械锁的构造,无需改造原有门的结构,锁内部无需安装电池也可实现智能锁的多数功能,实现一把钥匙可以授权开多把锁,不同的管理员可以授权开不同的、多个锁的功能,真正达到一把钥匙开全校所有锁的目的。挂锁采用防小黑盒暴力破解设计,免去没电、更换锁电池的烦恼,安全方便,特别适合校园这一类锁头经常更换、开锁人员随时更换的场所。
挂锁是由锁梁直接与锁体扣接而成的一种封闭形锁具,它是锁具世界中最古老、最庞大的家族,可以说其他锁具都是从挂锁这门类中繁衍、派生而来。[4]笔者设计的校园一把钥匙开锁系统是在原有挂锁的基础上改进而成的,由无源挂锁、有源钥匙、校园解码中心三个部分组成,其中有源钥匙利用物联网技术连接到校园解码中心获取密码并返回给无源挂锁,比对成功后即可以开锁。物联网(IOT:Internet of Things)是一个通过信息技术将各种物体与网络相连,以帮助人们获取所需物体相关信息的巨大网络。[5]在本研究中物联网连接的就是钥匙和锁,每把钥匙和锁在物联网中都有一个唯一的ID,也称为识别码,系统通过读取这个识别码的对应关系来判断是否开锁。系统原理结构如图1所示。
图1 系统原理结构
图1中无源挂锁的解锁密码存放在校园解码中心,要通过有源钥匙通过网络去获取。本研究实现的目标是不改变原有门的结构,用一把钥匙开多把锁的功能,从图1中可以看出,一把钥匙可以开多把锁,一个挂锁可以授权给多人开。
无源挂锁由锁梁、锁体和USB锁口组成,锁体集成一块ESP32单片机,这是一款专门为移动设备、可穿戴电子产品和物联网应用而设计的单片机[6],具有低功耗性能,包括精细分辨时钟门控、省电模式和动态电压调整等。采用ESP32单片机具有成本低、容易编程等众多优点。
每把锁头内置的单片机在出厂时都有唯一的ID(Identity document),用户不能更改,每个ID对应12位16进制编码来作为这把锁的解码密码,保证其无重复编号和安全性,使其达到统一管理,当与电子钥匙通信时,有多层交互通信及校验过程,以便达到更加安全可靠、无误开率、无重开率的目的。运行时锁随机生成加密代码和运算代码,一起发送至解码中心用于解码中心对解锁码进行加密,之后锁再对收到的解锁码进行解密,以防止解锁码在串口传输时被窃取后复制。锁梁末端有一个缺口,锁住时被一非金属物件卡住,该物件连接一个舵机,当接收到开锁指令时,舵机转动一个方向带动非金属物件,松开锁梁,达到开锁的目的。USB接口有四根线,其中两根线给无源挂锁的ESP32单片机供电,另外两根通过串口与有源钥匙的USB插口相连接,发送开锁请求和接收解锁密码。结构图如图2所示。
图2 挂锁结构图
有源钥匙由电池、控制部分和USB插口部分组成。电池是一块3.7V的锂电池,结合升压模块,升压至5.0V给控制部分供电。控制部分是一块ESP32单片机,这种单片机带有Wi-Fi模块,可以接入校园无线网络进行认证,单片机上也有一个唯一的ID识别码和12位16进制密码来作为这把钥匙登入系统的准入编码。钥匙上有一个USB插口,此插口与平时USB的插口外观一致,插口上有四根线,其中两根电源线用来与锁头连接,给锁头供电,另外两根与锁头的串口连接,用来接收锁头编码给校园解码中心和发送解锁密码给锁头。本研究单片机需要事先连接到校园无线网络,在单片机成功登入系统后,插入锁头,锁头会反馈一个锁头ID给钥匙,钥匙再把自己的ID和锁头的ID通过无线网络发送至系统平台端进行比对认证,如果比对成功,平台发送一个解锁密码回来,钥匙收到解锁密码后,把密码再通过串口发送给锁头,锁头比对解锁密码与内置的密码是否相匹配,匹配成功则发送一个指令给舵机,舵机转动非金属物体,松开锁梁,解锁成功。钥匙侧面还有一个电脑编程接口,可重新烧写程序,分配钥匙ID和密码,以及给电池充电等。具体结构如图3所示。
解码中心平台主要实现比对的过程,采用B/S结构,管理员从Web端登入页面后就可以进入后台添加或删除教师,给教师钥匙授权开锁对象和数量。每把钥匙通过自身的准入编码登录到平台,上传锁的ID、加密代码和运算代码在平台进行匹配,匹配成功则返回根据加密代码和运算代码返回加密后锁的解锁密码,具体流程如图4所示。
图4 校园解码中心工作流程
由锁生成并记录加密代码(随机常数)和运算代码(随机常数),解密中心根据运算代码选用不同加密算法。
本研究基于校园无线网络,如果学校没有无线网络,也可以通过手机共享等方式接入网络。当然,也可以用zigbee、z-wave、sigfox、Lora或NB-iot等方式连接至物联网,其他原理一致。
本研究硬件分钥匙和锁头两个部分。钥匙和锁头通过串口进行连接,连接方式如下页图5所示,钥匙和锁头的供电电源均来自钥匙的锂电池,TX是发送(transport),RX是接收(receive)。钥匙的发送端接锁头的接收端,钥匙的接收端接锁头的发送端。
图5 钥匙与锁头连接示意图
钥匙上装有一个指示灯,当成功连接上Wi-Fi,工作正常时,显示绿灯,连接失败显示红灯。当钥匙插入锁头进行解锁,显示黄灯并闪烁,钥匙先获取锁头的ID编码后上传至校园解锁中心,解锁中心匹配成功后返回解锁密码并通过钥匙传送至锁头,解锁成功后显示绿灯,解锁失败显示红灯。具体程序流程如图6所示。
图6 钥匙工作流程
锁头通电后发送请求信号,成功发送ID编码后开始等待接收解锁密码,收到并匹配成功则告诉舵机转动非金属物件,锁被打开,舵机恢复原位,程序流程如图7所示。
图7 锁头工作流程
本研究中的挂锁、钥匙和校园解码中心组成了一个完整的开锁系统,系统管理采用B/S结构,为了保证系统的稳定性,建立一个良好的数据库结构和简单安全的后台管理系统是非常有必要的。
数据库共涉及钥匙列表、锁头列表和解锁匹配列表三个表(如下页表1、表2、表3),钥匙列表保存所有钥匙的信息,锁头列表保存所有锁的信息,解锁匹配列表保存管理员的授权信息。数据库保存在本地服务器,供平台调用。
表1 钥匙列表
表2 锁头列表
表3 解锁匹配列表
后台要做的是对新钥匙和新锁头分配ID、授权开锁等。可以将一把新锁通过数据线连接到计算机,通过管理端对锁进行命名,注册锁的账户和密码以及命名相对应的房间号。同样,每拿到一把新的钥匙,都要把新钥匙通过数据线连接到电脑,通过管理端对钥匙分配ID,生成登录密码,注册钥匙的所有人的身份信息、联系电话等,并授权开锁方案、失效时间等。当出现钥匙丢失时,可将已经丢失的钥匙禁用,防止钥匙被盗用。
本文介绍了一种基于物联网的校园一把钥匙开挂锁系统。本系统改变了传统智能锁锁芯带电的模式,让钥匙带电可充电,而锁不带电,钥匙可再编程,重复利用,极大地节约了资源,实现了钥匙的分布式管理。本系统适合铁门较多、挂锁较多的学校,实践表明,它能解除这些学校管理多把钥匙的烦恼,提高校园安全管理水平。