門禁考勤系統(tǒng)存在的漏洞
門禁系統(tǒng)是安防系統(tǒng)中最重要的子系統(tǒng)之一,而門禁控制器又是門禁系統(tǒng)的核心。許多生產(chǎn)安防設(shè)備的大廠都有自己品牌的門禁控制器,而且其中不乏國(guó)外的產(chǎn)品。這些產(chǎn)品除了擁有我們所需要的穩(wěn)定性、可靠性之外,會(huì)不會(huì)也附帶一些安全上的隱患呢?這點(diǎn)需要我們給予充分的關(guān)注。
門禁控制器存在哪些安全漏洞:
比較兩種常用的通訊模式。RS485總線通訊采用廠家自己定義的協(xié)議,而韋根采用通用協(xié)議。自定義協(xié)議會(huì)有更多的設(shè)計(jì)空間,這里我們主要針對(duì)這種通訊模式進(jìn)行研究和探討。由于在門禁系統(tǒng)中,門禁控制器多數(shù)是通過(guò)RS485總線連接感應(yīng)讀卡器、鍵盤、磁卡讀卡器、指紋讀卡器等前端設(shè)備,而使用RS485串行總線進(jìn)行通訊的設(shè)備需要依照自定義的通訊協(xié)議進(jìn)行數(shù)據(jù)交換,因此。生產(chǎn)門禁控制器的生產(chǎn)廠家都會(huì)生產(chǎn)與之配套的前端設(shè)備。這樣就會(huì)出現(xiàn)在門禁系統(tǒng)中門禁控制器、前端設(shè)備以及它們之間的通訊協(xié)議是由一個(gè)生產(chǎn)廠家設(shè)計(jì)生產(chǎn)的情況。在這種情況下,就不能夠排除門禁控制器"后門卡"存在的可能性。這里所說(shuō)的"后門卡"是指門禁控制器生產(chǎn)廠為了某些目的,在門禁控制器上預(yù)留后門,當(dāng)使用某些特定的卡片或是結(jié)合某些特定的操作之后,使用這些未被注冊(cè)的卡片就可以啟動(dòng)門禁控制器打開(kāi)門鎖。如果門禁系統(tǒng)遭到"后門卡"的攻擊,我們的門禁系統(tǒng)就會(huì)在瞬間被輕易攻破,同時(shí)也意味著為加固周界所做的努力瞬間便付之東流。雖然這只是一種推測(cè)。但從技術(shù)層面來(lái)講,實(shí)現(xiàn)這種"后門卡"功能完全是可能的。這也正是我們的用戶,特別是對(duì)安全有著特殊要求的用戶,所擔(dān)心的一個(gè)問(wèn)題。
解決方案 :
1、門禁控制器工作原理
為了阻斷"后門卡" 的通路。我們必須首先熟悉門禁系統(tǒng)各個(gè)設(shè)備的工作原理,了解各個(gè)設(shè)備是如何協(xié)調(diào)工作的,掌握其運(yùn)行的機(jī)制,這樣就可以找到解決問(wèn)題的辦法。為了說(shuō)明問(wèn)題,我們可以構(gòu)建一個(gè)簡(jiǎn)化的門禁系統(tǒng)模型。在這個(gè)模型中,使用一個(gè)門禁控制器控制管理一個(gè)感應(yīng)讀卡器,設(shè)備之間通過(guò)RS485進(jìn)行數(shù)據(jù)通訊。
門禁控制器工作在兩種模式之下。一種是巡檢模式,另一種是識(shí)別模式。在巡檢模式下,控制器不斷向讀卡器發(fā)送查詢代碼,并接收讀卡器的回復(fù)命令。這種模式會(huì)一直保持下去,直至讀卡器感應(yīng)到卡片。當(dāng)讀卡器感應(yīng)到卡片后,讀卡器對(duì)控制器的巡檢命令產(chǎn)生不同的回復(fù),在這個(gè)回復(fù)命令中,讀卡器將讀到的感應(yīng)卡內(nèi)碼數(shù)據(jù)傳送到門禁控制器,使門禁控制器進(jìn)入到識(shí)別模式。
在門禁控制器的識(shí)別模式下,門禁控制器分析感應(yīng)卡內(nèi)碼,同設(shè)備內(nèi)存儲(chǔ)的卡片數(shù)據(jù)進(jìn)行比對(duì),并實(shí)施后續(xù)動(dòng)作。門禁控制器完成接收數(shù)據(jù)的動(dòng)作后,會(huì)發(fā)送命令回復(fù)讀卡器,使讀卡器恢復(fù)狀態(tài),同時(shí),門禁控制器重新回到巡檢模式。
2、數(shù)據(jù)篩選器的工作原理
通過(guò)上面門禁控制器和讀卡器的工作流程,可以看出要實(shí)現(xiàn)開(kāi)門,需要經(jīng)過(guò)以下幾個(gè)步驟:
1)感應(yīng)讀卡器讀取感應(yīng)卡信息,獲取感應(yīng)卡內(nèi)碼;
2)感應(yīng)讀卡器將感應(yīng)卡信息傳遞到門禁控制器;
3)門禁控制器對(duì)讀取的感應(yīng)卡數(shù)據(jù)和系統(tǒng)內(nèi)部存儲(chǔ)信息進(jìn)行比對(duì);
4)門禁控制器根據(jù)判斷結(jié)果,控制電路實(shí)現(xiàn)開(kāi)門。
其中步驟1在讀卡器內(nèi)部完成,步驟3、4在門禁控制器中完成,它們已經(jīng)固化到設(shè)備當(dāng)中,無(wú)法改變。而第2步是通過(guò)連接兩個(gè)設(shè)備的RS485通訊線完成的,這為我們從根本上阻止"后門卡"創(chuàng)造了條件。
我們?cè)O(shè)計(jì)一個(gè)稱為數(shù)據(jù)篩選器的設(shè)備,該設(shè)備串行安裝在數(shù)據(jù)通訊的通道上,對(duì)所有刷卡的內(nèi)碼先行經(jīng)過(guò)該設(shè)備的比對(duì),對(duì)認(rèn)可的數(shù)據(jù),將卡片內(nèi)碼數(shù)據(jù)發(fā)送到門禁控制器進(jìn)行后續(xù)操作;對(duì)不被認(rèn)可的數(shù)據(jù),直接將數(shù)據(jù)丟棄;這就使得那些"后門卡" 的數(shù)據(jù)根本無(wú)法發(fā)送到門禁控制器,從而從根本上截?cái)嗔?quot;后門卡"信息的通路。
數(shù)據(jù)篩選器如同門禁控制器一樣,一般工作在巡檢模式下,它不斷向感應(yīng)讀卡器發(fā)送巡檢數(shù)據(jù),并且等待獲取感應(yīng)卡內(nèi)碼數(shù)據(jù)。在這個(gè)過(guò)程中,感應(yīng)讀卡器已經(jīng)完全和門禁控制器分離,門禁控制器對(duì)它的巡檢命令完全由數(shù)據(jù)篩選器完成。只有當(dāng)數(shù)據(jù)篩選器獲取到卡信息并通過(guò)自身驗(yàn)證之后,才將數(shù)據(jù)送到門禁控制器。建立起感應(yīng)讀卡器和門禁控制器的聯(lián)系。數(shù)據(jù)篩選器進(jìn)行自身驗(yàn)證的數(shù)據(jù)源是經(jīng)可靠途徑獲取的卡片內(nèi)碼數(shù)據(jù)。"后門卡"的內(nèi)碼不可能被傳遞到數(shù)據(jù)篩選器中,從而阻止了"后門卡"的攻擊。
3、數(shù)據(jù)篩選器的硬件實(shí)現(xiàn)
根據(jù)以上思路,可使用單片機(jī)實(shí)現(xiàn)硬件電路設(shè)計(jì),單片機(jī)的~個(gè)串口,同門禁控制器以及讀卡器進(jìn)行通訊,這個(gè)串口通過(guò)切換電路來(lái)保證在一個(gè)時(shí)間點(diǎn)上只能和兩種設(shè)備之一進(jìn)行通訊,所有傳送到門禁控制器的命令全部是經(jīng)過(guò)單片機(jī)程序確認(rèn)的合法命令,這樣就可實(shí)現(xiàn)數(shù)據(jù)的篩選和隔離。同時(shí),單片機(jī)還要通過(guò)另一個(gè)串口,監(jiān)聽(tīng)門禁控制器與控制計(jì)算機(jī)之間的通訊,通過(guò)解析通訊內(nèi)容,來(lái)獲取合法的感應(yīng)卡內(nèi)碼數(shù)據(jù),并將數(shù)據(jù)存儲(chǔ)在一個(gè)大容量E PROM中,作為數(shù)據(jù)比對(duì)的依據(jù)。
4、數(shù)據(jù)篩選器軟件流程
串口是聯(lián)系門禁控制器和感應(yīng)讀卡器的通訊端口。在巡檢模式下,數(shù)據(jù)篩選器通過(guò)串口,模擬門禁控制器。向感應(yīng)讀卡器發(fā)送查詢命令;感應(yīng)讀卡器沒(méi)有被刷卡,發(fā)送沒(méi)有感應(yīng)卡的回復(fù)命令;數(shù)據(jù)篩選器進(jìn)行下一輪查詢。
當(dāng)感應(yīng)讀卡器有刷卡后,卡片數(shù)據(jù)會(huì)傳送到數(shù)據(jù)篩選器。數(shù)據(jù)篩選器進(jìn)入到識(shí)別模式,將卡片數(shù)據(jù)與本地存儲(chǔ)的標(biāo)準(zhǔn)數(shù)據(jù)進(jìn)行比對(duì),如果數(shù)據(jù)不存在。則將數(shù)據(jù)丟棄,并回復(fù)感應(yīng)讀卡器數(shù)據(jù)已經(jīng)接收。數(shù)據(jù)篩選器返回到巡檢模式并開(kāi)始下一輪查詢。
如果數(shù)據(jù)在存儲(chǔ)器中被找到,說(shuō)明這張卡是一張合法卡,則應(yīng)該將數(shù)據(jù)發(fā)送到門禁控制器。此時(shí),設(shè)備首先進(jìn)行串口的切換,使單片機(jī)和門禁控制器進(jìn)行通訊。將從感應(yīng)讀卡器接收的數(shù)據(jù)原樣發(fā)送到門禁控制器。并等待接收門禁控制器的回復(fù);收到回復(fù)后。再次將串口切換回同感應(yīng)讀卡器進(jìn)行通訊,轉(zhuǎn)發(fā)門禁控制器的回復(fù)命令;完成數(shù)據(jù)的傳送之后,數(shù)據(jù)篩選器回到巡檢狀態(tài),進(jìn)行下一輪查詢。
數(shù)據(jù)篩選器通過(guò)實(shí)時(shí)監(jiān)聽(tīng)門禁控制器與控制計(jì)算機(jī)之間的通訊,從中獲取合法的感應(yīng)卡內(nèi)碼數(shù)據(jù),并存儲(chǔ)在數(shù)據(jù)篩選器的E PROM中,作為將來(lái)進(jìn)行數(shù)據(jù)比對(duì)的依據(jù)。其工作流程如下:數(shù)據(jù)篩選器監(jiān)聽(tīng)計(jì)算機(jī)發(fā)送給門禁控制器的所有命令,通過(guò)解析,獲取所有對(duì)卡片進(jìn)行增、刪、改的內(nèi)部操作命令,根據(jù)命令,相應(yīng)地將E2pROM中存儲(chǔ)的感應(yīng)卡內(nèi)碼數(shù)據(jù)進(jìn)行增、刪、改,保證數(shù)據(jù)篩選器內(nèi)存儲(chǔ)的數(shù)據(jù)與門禁控制器的合法數(shù)據(jù)保持一致。