物聯(lián)傳媒 旗下網(wǎng)站
登錄 注冊(cè)

關(guān)于門禁控制器安全漏洞的探討

作者:柯文湧 余兵
來(lái)源:RFID世界網(wǎng)
日期:2008-08-12 14:23:26
摘要:主要討論安全技術(shù)防范系統(tǒng)中的門禁控制器自身的安全問(wèn)題,同時(shí)就可能存在的問(wèn)題提出解決方案。

一、引言 
   
  門禁系統(tǒng)是安防系統(tǒng)中最重要的子系統(tǒng)之一,而門禁控制器又是門禁系統(tǒng)的核心。許多生產(chǎn)安防設(shè)備的大廠都有自己品牌的門禁控制器,而且其中不乏國(guó)外的產(chǎn)品。這些產(chǎn)品除了擁有我們所需要的穩(wěn)定性、可靠性之外,會(huì)不會(huì)也附帶一些安全上的隱患呢?這點(diǎn)需要我們給予充分的關(guān)注。 
   
二、門禁控制系統(tǒng)概況 
   
  門禁控制器按照結(jié)構(gòu)區(qū)分,基本分成兩大類。一類是門禁控制一體機(jī),另一類是獨(dú)立的門禁控制器。門禁控制一體機(jī)是一種安全性相對(duì)比較低的結(jié)構(gòu)類型,因?yàn)檫@類門禁控制器將門禁系統(tǒng)的身份識(shí)別部分和處理控制部分集成在一個(gè)設(shè)備里。這樣在安裝設(shè)備時(shí),必然將整機(jī)安裝在門外,無(wú)形中增加了設(shè)備被破壞的可能。而單獨(dú)的門禁控制器是通過(guò)信號(hào)線與身份識(shí)別部分進(jìn)行連接,通過(guò)信號(hào)線傳遞識(shí)別信息,完成開門操作。這樣在安裝設(shè)備時(shí),可將控制器安裝在門內(nèi),增加了設(shè)備的安全性。在這里我們主要討論獨(dú)立的門禁控制器的安全問(wèn)題。 

    獨(dú)立的門禁控制器與前端識(shí)別設(shè)備之間需要進(jìn)行通訊,現(xiàn)在使用的通訊方式基本上為兩種,一種是使用RS485總線進(jìn)行通訊,另一種使用韋根線進(jìn)行通訊。  

    RS485通訊使用雙絞線進(jìn)行半雙工通訊,采用平衡發(fā)送和差分接收,因此具有抑制共模干擾的能力,傳輸距離可以達(dá)到數(shù)公里,可實(shí)現(xiàn)高速的信息傳送。 RS485通訊采用總線式的連接方式,可保證多臺(tái)設(shè)備正常工作,而且它是串行通訊,所以每臺(tái)拄接在總線上的設(shè)備有自己的ID地址,進(jìn)行數(shù)據(jù)通訊時(shí),系統(tǒng)保證總線上只有一臺(tái)設(shè)備發(fā)送數(shù)據(jù),其它設(shè)備處于接收數(shù)據(jù)狀態(tài);設(shè)備之間采用自定義的協(xié)議傳輸數(shù)據(jù)。  

    采用RS485方式進(jìn)行通訊的門禁控制器可掛接多個(gè)讀卡器,傳輸數(shù)據(jù)的過(guò)程如圖1。每一個(gè)讀卡器和門禁控制器都有自己的ID地址,RS485網(wǎng)絡(luò)上傳遞的數(shù)據(jù)都包含地址信息,在網(wǎng)絡(luò)上只有一個(gè)設(shè)備發(fā)送數(shù)據(jù),其它設(shè)備都會(huì)接收數(shù)據(jù),對(duì)于目的是自己的數(shù)據(jù),設(shè)備會(huì)進(jìn)行相應(yīng)的處理,而不是以自己為目的的命令將被拋棄。在這樣的門禁系統(tǒng)中,門禁控制器通過(guò)輪巡的方式,完成一個(gè)門禁控制器管理多個(gè)讀卡器的功能。 

關(guān)于門禁控制器安全漏洞的探討 



圖1數(shù)據(jù)傳輸過(guò)程  

    韋根通訊是一種經(jīng)常在安防系統(tǒng)中使用、通過(guò)兩芯線進(jìn)行點(diǎn)對(duì)點(diǎn)近距離通訊的通用通訊協(xié)議,最常用的格式有Weigand26,它通過(guò)DATA 0和DATA 1兩條數(shù)據(jù)線分別傳送數(shù)據(jù)“0”和“1” ,每幀傳輸?shù)臄?shù)據(jù)為26Bit。它利用在兩條通訊數(shù)據(jù)線上分別產(chǎn)生的脈沖生成數(shù)據(jù)序列,通訊距離大約10米左右。 

三、安全問(wè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)門禁控制器打開門鎖。如果門禁系統(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ù)通訊。系統(tǒng)的工作流程如圖2:  

門禁系統(tǒng)工作流程 



圖2 門禁系統(tǒng)工作流程 

    門禁控制器工作在兩種模式之下。一種是巡檢模式,另一種是識(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.?dāng)?shù)據(jù)篩選器的工作原理 

    通過(guò)上面門禁控制器和讀卡器的工作流程,可以看出要實(shí)現(xiàn)開門,需要經(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)開門。  

    其中步驟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)嗔恕昂箝T卡”信息的通路。以下就是數(shù)據(jù)篩選器的工作框圖。 

數(shù)據(jù)篩選器的工作框圖 



圖3數(shù)據(jù)篩選器的工作框圖 

    數(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.?dāng)?shù)據(jù)篩選器的硬件實(shí)現(xiàn)  

    根據(jù)以上思路,可使用單片機(jī)實(shí)現(xiàn)硬件電路設(shè)計(jì),硬件框圖如圖4所示。單片機(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)聽門禁控制器與控制計(jì)算機(jī)之間的通訊,通過(guò)解析通訊內(nèi)容,來(lái)獲取合法的感應(yīng)卡內(nèi)碼數(shù)據(jù),并將數(shù)據(jù)存儲(chǔ)在一個(gè)大容量E PROM中,作為數(shù)據(jù)比對(duì)的依據(jù)。 

數(shù)據(jù)篩選器的硬件框圖 



圖4數(shù)據(jù)篩選器的硬件框圖  

4.?dāng)?shù)據(jù)篩選器軟件流程  

    串口是聯(lián)系門禁控制器和感應(yīng)讀卡器的通訊端口。在巡檢模式下,數(shù)據(jù)篩選器通過(guò)串口,模擬門禁控制器。向感應(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í)別模式,將卡片數(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ù)篩選器返回到巡檢模式并開始下一輪查詢。  

    如果數(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)行下一輪查詢。具體的比對(duì)流程如圖5所示。 

數(shù)據(jù)篩選器比對(duì)流程 



圖5數(shù)據(jù)篩選器比對(duì)流程 

    數(shù)據(jù)篩選器通過(guò)實(shí)時(shí)監(jiān)聽門禁控制器與控制計(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)聽計(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ù)保持一致。具體操作流程如圖6所示: 

數(shù)據(jù)篩選器工作流程 



圖6數(shù)據(jù)篩選器工作流程 

    在現(xiàn)實(shí)中,由于門禁控制器、前端設(shè)備以及它們之間的通訊協(xié)議均由同一生產(chǎn)廠商生產(chǎn),因此可能存在“后門卡” 的安全隱患。對(duì)于特殊部門、要害部門來(lái)說(shuō),他們對(duì)安全有著特殊的要求,在使用門禁系統(tǒng)保護(hù)安全的同時(shí),也關(guān)心設(shè)備自身的安全性、可靠性。筆者在文中提出的數(shù)據(jù)篩選器構(gòu)想可以有效的防止“后門卡”對(duì)門禁系統(tǒng)的攻擊,保障門禁系統(tǒng)自身的安全。