关于门禁系统控制器安全漏洞的技术探讨
四、解决方案
1.门禁控制器工作原理
为了阻断“后门卡” 的通路。我们必须首先熟悉门禁系统各个设备的工作原理,了解各个设备是如何协调工作的,掌握其运行的机制,这样就可以找到解决问题的办法。为了说明问题,我们可以构建一个简化的门禁系统模型。在这个模型中,使用一个门禁控制器控制管理一个感应读卡器,设备之间通过RS485进行数据通讯。系统的工作流程如图
图2 门禁系统工作流程
门禁控制器工作在两种模式之下。一种是巡检模式,另一种是识别模式。在巡检模式下,控制器不断向读卡器发送查询代码,并接收读卡器的回复命令。这种模式会一直保持下去,直至读卡器感应到卡片。当读卡器感应到卡片后,读卡器对控制器的巡检命令产生不同的回复,在这个回复命令中,读卡器将读到的感应卡内码数据传送到门禁控制器,使门禁控制器进入到识别模式。
在门禁控制器的识别模式下,门禁控制器分析感应卡内码,同设备内存储的卡片数据进行比对,并实施后续动作。门禁控制器完成接收数据的动作后,会发送命令回复读卡器,使读卡器恢复状态,同时,门禁控制器重新回到巡检模式。
2.数据筛选器的工作原理
通过上面门禁控制器和读卡器的工作流程,可以看出要实现开门,需要经过以下几个步骤:
1)感应读卡器读取感应卡信息,获取感应卡内码;
2)感应读卡器将感应卡信息传递到门禁控制器;
3)门禁控制器对读取的感应卡数据和系统内部存储信息进行比对;
4)门禁控制器根据判断结果,控制电路实现开门。
我们设计一个称为数据筛选器的设备,该设备串行安装在数据通讯的通道上,对所有刷卡的内码先行经过该设备的比对,对认可的数据,将卡片内码数据发送到门禁控制器进行后续操作;对不被认可的数据,直接将数据丢弃;这就使得那些“后门卡” 的数据根本无法发送到门禁控制器,从而从根本上截断了“后门卡”信息的通路。以下就是数据筛选器的工作框图。
图3数据筛选器的工作框图
数据筛选器如同门禁控制器一样,一般工作在巡检模式下,它不断向感应读卡器发送巡检数据,并且等待获取感应卡内码数据。在这个过程中,感应读卡器已经完全和门禁控制器分离,门禁控制器对它的巡检命令完全由数据筛选器完成。只有当数据筛选器获取到卡信息并通过自身验证之后,才将数据送到门禁控制器。建立起感应读卡器和门禁控制器的联系。数据筛选器进行自身验证的数据源是经可靠途径获取的卡片内码数据。“后门卡”的内码不可能被传递到数据筛选器中,从而阻止了“后门卡”的攻击。
3.数据筛选器的硬件实现
根据以上思路,可使用单片机实现硬件电路设计,硬件框图如图4所示。单片机的~个串口,同门禁控制器以及读卡器进行通讯,这个串口通过切换电路来保证在一个时间点上只能和两种设备之一进行通讯,所有传送到门禁控制器的命令全部是经过单片机程序确认的合法命令,这样就可实现数据的筛选和隔离。同时,单片机还要通过另一个串口,监听门禁控制器与控制计算机之间的通讯,通过解析通讯内容,来获取合法的感应卡内码数据,并将数据存储在一个大容量E PROM中,作为数据比对的依据。
4.数据筛选器软件流程
串口是联系门禁控制器和感应读卡器的通讯端口。在巡检模式下,数据筛选器通过串口,模拟门禁控制器。向感应读卡器发送查询命令;感应读卡器没有被刷卡,发送没有感应卡的回复命令;数据筛选器进行下一轮查询。
当感应读卡器有刷卡后,卡片数据会传送到数据筛选器。数据筛选器进入到识别模式,将卡片数据与本地存储的标准数据进行比对,如果数据不存在。则将数据丢弃,并回复感应读卡器数据已经接收。数据筛选器返回到巡检模式并开始下一轮查询。
数据筛选器通过实时监听门禁控制器与控制计算机之间的通讯,从中获取合法的感应卡内码数据,并存储在数据筛选器的E PROM中,作为将来进行数据比对的依据。其工作流程如下:数据筛选器监听计算机发送给门禁控制器的所有命令,通过解析,获取所有对卡片进行增、删、改的内部操作命令,根据命令,相应地将E2pROM中存储的感应卡内码数据进行增、删、改,保证数据筛选器内存储的数据与门禁控制器的合法数据保持一致。具体操作流程如图6所示:
在现实中,由于门禁控制器、前端设备以及它们之间的通讯协议均由同一生产厂商生产,因此可能存在“后门卡” 的安全隐患。对于特殊部门、要害部门来说,他们对安全有着特殊的要求,在使用门禁系统保护安全的同时,也关心设备自身的安全性、可靠性。笔者在文中提出的数据筛选器构想可以有效的防止“后门卡”对门禁系统的攻击,保障门禁系统自身的安全。
评论