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