關(guān)于門(mén)禁系統控制器安全漏洞的技術(shù)探討
四、解決方案
1.門(mén)禁控制器工作原理
為了阻斷“后門(mén)卡” 的通路。我們必須首先熟悉門(mén)禁系統各個(gè)設備的工作原理,了解各個(gè)設備是如何協(xié)調工作的,掌握其運行的機制,這樣就可以找到解決問(wèn)題的辦法。為了說(shuō)明問(wèn)題,我們可以構建一個(gè)簡(jiǎn)化的門(mén)禁系統模型。在這個(gè)模型中,使用一個(gè)門(mén)禁控制器控制管理一個(gè)感應讀卡器,設備之間通過(guò)RS485進(jìn)行數據通訊。系統的工作流程如圖
圖2 門(mén)禁系統工作流程
門(mén)禁控制器工作在兩種模式之下。一種是巡檢模式,另一種是識別模式。在巡檢模式下,控制器不斷向讀卡器發(fā)送查詢(xún)代碼,并接收讀卡器的回復命令。這種模式會(huì )一直保持下去,直至讀卡器感應到卡片。當讀卡器感應到卡片后,讀卡器對控制器的巡檢命令產(chǎn)生不同的回復,在這個(gè)回復命令中,讀卡器將讀到的感應卡內碼數據傳送到門(mén)禁控制器,使門(mén)禁控制器進(jìn)入到識別模式。
在門(mén)禁控制器的識別模式下,門(mén)禁控制器分析感應卡內碼,同設備內存儲的卡片數據進(jìn)行比對,并實(shí)施后續動(dòng)作。門(mén)禁控制器完成接收數據的動(dòng)作后,會(huì )發(fā)送命令回復讀卡器,使讀卡器恢復狀態(tài),同時(shí),門(mén)禁控制器重新回到巡檢模式。
2.數據篩選器的工作原理
通過(guò)上面門(mén)禁控制器和讀卡器的工作流程,可以看出要實(shí)現開(kāi)門(mén),需要經(jīng)過(guò)以下幾個(gè)步驟:
1)感應讀卡器讀取感應卡信息,獲取感應卡內碼;
2)感應讀卡器將感應卡信息傳遞到門(mén)禁控制器;
3)門(mén)禁控制器對讀取的感應卡數據和系統內部存儲信息進(jìn)行比對;
4)門(mén)禁控制器根據判斷結果,控制電路實(shí)現開(kāi)門(mén)。
我們設計一個(gè)稱(chēng)為數據篩選器的設備,該設備串行安裝在數據通訊的通道上,對所有刷卡的內碼先行經(jīng)過(guò)該設備的比對,對認可的數據,將卡片內碼數據發(fā)送到門(mén)禁控制器進(jìn)行后續操作;對不被認可的數據,直接將數據丟棄;這就使得那些“后門(mén)卡” 的數據根本無(wú)法發(fā)送到門(mén)禁控制器,從而從根本上截斷了“后門(mén)卡”信息的通路。以下就是數據篩選器的工作框圖。
圖3數據篩選器的工作框圖
數據篩選器如同門(mén)禁控制器一樣,一般工作在巡檢模式下,它不斷向感應讀卡器發(fā)送巡檢數據,并且等待獲取感應卡內碼數據。在這個(gè)過(guò)程中,感應讀卡器已經(jīng)完全和門(mén)禁控制器分離,門(mén)禁控制器對它的巡檢命令完全由數據篩選器完成。只有當數據篩選器獲取到卡信息并通過(guò)自身驗證之后,才將數據送到門(mén)禁控制器。建立起感應讀卡器和門(mén)禁控制器的聯(lián)系。數據篩選器進(jìn)行自身驗證的數據源是經(jīng)可靠途徑獲取的卡片內碼數據?!昂箝T(mén)卡”的內碼不可能被傳遞到數據篩選器中,從而阻止了“后門(mén)卡”的攻擊。
3.數據篩選器的硬件實(shí)現
根據以上思路,可使用單片機實(shí)現硬件電路設計,硬件框圖如圖4所示。單片機的~個(gè)串口,同門(mén)禁控制器以及讀卡器進(jìn)行通訊,這個(gè)串口通過(guò)切換電路來(lái)保證在一個(gè)時(shí)間點(diǎn)上只能和兩種設備之一進(jìn)行通訊,所有傳送到門(mén)禁控制器的命令全部是經(jīng)過(guò)單片機程序確認的合法命令,這樣就可實(shí)現數據的篩選和隔離。同時(shí),單片機還要通過(guò)另一個(gè)串口,監聽(tīng)門(mén)禁控制器與控制計算機之間的通訊,通過(guò)解析通訊內容,來(lái)獲取合法的感應卡內碼數據,并將數據存儲在一個(gè)大容量E PROM中,作為數據比對的依據。
4.數據篩選器軟件流程
串口是聯(lián)系門(mén)禁控制器和感應讀卡器的通訊端口。在巡檢模式下,數據篩選器通過(guò)串口,模擬門(mén)禁控制器。向感應讀卡器發(fā)送查詢(xún)命令;感應讀卡器沒(méi)有被刷卡,發(fā)送沒(méi)有感應卡的回復命令;數據篩選器進(jìn)行下一輪查詢(xún)。
當感應讀卡器有刷卡后,卡片數據會(huì )傳送到數據篩選器。數據篩選器進(jìn)入到識別模式,將卡片數據與本地存儲的標準數據進(jìn)行比對,如果數據不存在。則將數據丟棄,并回復感應讀卡器數據已經(jīng)接收。數據篩選器返回到巡檢模式并開(kāi)始下一輪查詢(xún)。
數據篩選器通過(guò)實(shí)時(shí)監聽(tīng)門(mén)禁控制器與控制計算機之間的通訊,從中獲取合法的感應卡內碼數據,并存儲在數據篩選器的E PROM中,作為將來(lái)進(jìn)行數據比對的依據。其工作流程如下:數據篩選器監聽(tīng)計算機發(fā)送給門(mén)禁控制器的所有命令,通過(guò)解析,獲取所有對卡片進(jìn)行增、刪、改的內部操作命令,根據命令,相應地將E2pROM中存儲的感應卡內碼數據進(jìn)行增、刪、改,保證數據篩選器內存儲的數據與門(mén)禁控制器的合法數據保持一致。具體操作流程如圖6所示:
在現實(shí)中,由于門(mén)禁控制器、前端設備以及它們之間的通訊協(xié)議均由同一生產(chǎn)廠(chǎng)商生產(chǎn),因此可能存在“后門(mén)卡” 的安全隱患。對于特殊部門(mén)、要害部門(mén)來(lái)說(shuō),他們對安全有著(zhù)特殊的要求,在使用門(mén)禁系統保護安全的同時(shí),也關(guān)心設備自身的安全性、可靠性。筆者在文中提出的數據篩選器構想可以有效的防止“后門(mén)卡”對門(mén)禁系統的攻擊,保障門(mén)禁系統自身的安全。
評論