關于門禁控制器安全漏洞的探討
一、引言
本文引用地址:http://butianyuan.cn/article/90225.htm門禁系統(tǒng)是安防系統(tǒng)中最重要的子系統(tǒng)之一,而門禁控制器又是門禁系統(tǒng)的核心。許多生產安防設備的大廠都有自己品牌的門禁控制器,而且其中不乏國外的產品。這些產品除了擁有我們所需要的穩(wěn)定性、可靠性之外,會不會也附帶一些安全上的隱患呢?這點需要我們給予充分的關注。
二、門禁控制系統(tǒng)概況
門禁控制器按照結構區(qū)分,基本分成兩大類。一類是門禁控制一體機,另一類是獨立的門禁控制器。門禁控制一體機是一種安全性相對比較低的結構類型,因為這類門禁控制器將門禁系統(tǒng)的身份識別部分和處理控制部分集成在一個設備里。這樣在安裝設備時,必然將整機安裝在門外,無形中增加了設備被破壞的可能。而單獨的門禁控制器是通過信號線與身份識別部分進行連接,通過信號線傳遞識別信息,完成開門操作。這樣在安裝設備時,可將控制器安裝在門內,增加了設備的安全性。在這里我們主要討論獨立的門禁控制器的安全問題。
獨立的門禁控制器與前端識別設備之間需要進行通訊,現在使用的通訊方式基本上為兩種,一種是使用RS485總線進行通訊,另一種使用韋根線進行通訊。
RS485通訊使用雙絞線進行半雙工通訊,采用平衡發(fā)送和差分接收,因此具有抑制共模干擾的能力,傳輸距離可以達到數公里,可實現高速的信息傳送。RS485通訊采用總線式的連接方式,可保證多臺設備正常工作,而且它是串行通訊,所以每臺拄接在總線上的設備有自己的ID地址,進行數據通訊時,系統(tǒng)保證總線上只有一臺設備發(fā)送數據,其它設備處于接收數據狀態(tài);設備之間采用自定義的協(xié)議傳輸數據。
采用RS485方式進行通訊的門禁控制器可掛接多個讀卡器,傳輸數據的過程如圖1。每一個讀卡器和門禁控制器都有自己的ID地址,RS485網絡上傳遞的數據都包含地址信息,在網絡上只有一個設備發(fā)送數據,其它設備都會接收數據,對于目的是自己的數據,設備會進行相應的處理,而不是以自己為目的的命令將被拋棄。在這樣的門禁系統(tǒng)中,門禁控制器通過輪巡的方式,完成一個門禁控制器管理多個讀卡器的功能。
圖1數據傳輸過程
韋根通訊是一種經常在安防系統(tǒng)中使用、通過兩芯線進行點對點近距離通訊的通用通訊協(xié)議,最常用的格式有Weigand26,它通過DATA 0和DATA 1兩條數據線分別傳送數據“0”和“1” ,每幀傳輸的數據為26Bit。它利用在兩條通訊數據線上分別產生的脈沖生成數據序列,通訊距離大約10米左右。
三、安全問題提出
比較兩種常用的通訊模式。RS485總線通訊采用廠家自己定義的協(xié)議,而韋根采用通用協(xié)議。自定義協(xié)議會有更多的設計空間,這里我們主要針對這種通訊模式進行研究和探討。由于在門禁系統(tǒng)中,門禁控制器多數是通過RS485總線連接感應讀卡器、鍵盤、磁卡讀卡器、指紋讀卡器等前端設備,而使用RS485串行總線進行通訊的設備需要依照自定義的通訊協(xié)議進行數據交換,因此。生產門禁控制器的生產廠家都會生產與之配套的前端設備。這樣就會出現在門禁系統(tǒng)中門禁控制器、前端設備以及它們之間的通訊協(xié)議是由一個生產廠家設計生產的情況。在這種情況下,就不能夠排除門禁控制器“后門卡”存在的可能性。這里所說的“后門卡”是指門禁控制器生產廠為了某些目的,在門禁控制器上預留后門,當使用某些特定的卡片或是結合某些特定的操作之后,使用這些未被注冊的卡片就可以啟動門禁控制器打開門鎖。如果門禁系統(tǒng)遭到“后門卡”的攻擊,我們的門禁系統(tǒng)就會在瞬間被輕易攻破,同時也意味著為加固周界所做的努力瞬間便付之東流。雖然這只是一種推測。但從技術層面來講,實現這種“后門卡”功能完全是可能的。這也正是我們的用戶,特別是對安全有著特殊要求的用戶,所擔心的一個問題。
四、解決方案
1.門禁控制器工作原理
為了阻斷“后門卡” 的通路。我們必須首先熟悉門禁系統(tǒng)各個設備的工作原理,了解各個設備是如何協(xié)調工作的,掌握其運行的機制,這樣就可以找到解決問題的辦法。為了說明問題,我們可以構建一個簡化的門禁系統(tǒng)模型。在這個模型中,使用一個門禁控制器控制管理一個感應讀卡器,設備之間通過RS485進行數據通訊。系統(tǒng)的工作流程如圖
圖2 門禁系統(tǒng)工作流程
門禁控制器工作在兩種模式之下。一種是巡檢模式,另一種是識別模式。在巡檢模式下,控制器不斷向讀卡器發(fā)送查詢代碼,并接收讀卡器的回復命令。這種模式會一直保持下去,直至讀卡器感應到卡片。當讀卡器感應到卡片后,讀卡器對控制器的巡檢命令產生不同的回復,在這個回復命令中,讀卡器將讀到的感應卡內碼數據傳送到門禁控制器,使門禁控制器進入到識別模式。
在門禁控制器的識別模式下,門禁控制器分析感應卡內碼,同設備內存儲的卡片數據進行比對,并實施后續(xù)動作。門禁控制器完成接收數據的動作后,會發(fā)送命令回復讀卡器,使讀卡器恢復狀態(tài),同時,門禁控制器重新回到巡檢模式。
2.數據篩選器的工作原理
通過上面門禁控制器和讀卡器的工作流程,可以看出要實現開門,需要經過以下幾個步驟:
1)感應讀卡器讀取感應卡信息,獲取感應卡內碼;
2)感應讀卡器將感應卡信息傳遞到門禁控制器;
3)門禁控制器對讀取的感應卡數據和系統(tǒng)內部存儲信息進行比對;
4)門禁控制器根據判斷結果,控制電路實現開門。
其中步驟1在讀卡器內部完成,步驟3、4在門禁控制器中完成,它們已經固化到設備 當中,無法改變。而第2步是通過連接兩個設備的RS485通訊線完成的,這為我們從根本上阻止“后門卡”創(chuàng)造了條件。
我們設計一個稱為數據篩選器的設備,該設備串行安裝在數據通訊的通道上,對所有刷卡的內碼先行經過該設備的比對,對認可的數據,將卡片內碼數據發(fā)送到門禁控制器進行后續(xù)操作;對不被認可的數據,直接將數據丟棄;這就使得那些“后門卡” 的數據根本無法發(fā)送到門禁控制器,從而從根本上截斷了“后門卡”信息的通路。以下就是數據篩選器的工作框圖。
圖3數據篩選器的工作框圖
數據篩選器如同門禁控制器一樣,一般工作在巡檢模式下,它不斷向感應讀卡器發(fā)送巡檢數據,并且等待獲取感應卡內碼數據。在這個過程中,感應讀卡器已經完全和門禁控制器分離,門禁控制器對它的巡檢命令完全由數據篩選器完成。只有當數據篩選器獲取到卡信息并通過自身驗證之后,才將數據送到門禁控制器。建立起感應讀卡器和門禁控制器的聯系。數據篩選器進行自身驗證的數據源是經可靠途徑獲取的卡片內碼數據。“后門卡”的內碼不可能被傳遞到數據篩選器中,從而阻止了“后門卡”的攻擊。
3.數據篩選器的硬件實現
根據以上思路,可使用單片機實現硬件電路設計,硬件框圖如圖4所示。單片機的~個串口,同門禁控制器以及讀卡器進行通訊,這個串口通過切換電路來保證在一個時間點上只能和兩種設備之一進行通訊,所有傳送到門禁控制器的命令全部是經過單片機程序確認的合法命令,這樣就可實現數據的篩選和隔離。同時,單片機還要通過另一個串口,監(jiān)聽門禁控制器與控制計算機之間的通訊,通過解析通訊內容,來獲取合法的感應卡內碼數據,并將數據存儲在一個大容量E PROM中,作為數據比對的依據。
4.數據篩選器軟件流程
串口是聯系門禁控制器和感應讀卡器的通訊端口。在巡檢模式下,數據篩選器通過串口,模擬門禁控制器。向感應讀卡器發(fā)送查詢命令;感應讀卡器沒有被刷卡,發(fā)送沒有感應卡的回復命令;數據篩選器進行下一輪查詢。
當感應讀卡器有刷卡后,卡片數據會傳送到數據篩選器。數據篩選器進入到識別模式,將卡片數據與本地存儲的標準數據進行比對,如果數據不存在。則將數據丟棄,并回復感應讀卡器數據已經接收。數據篩選器返回到巡檢模式并開始下一輪查詢。
如果數據在存儲器中被找到,說明這張卡是一張合法卡,則應該將數據發(fā)送到門禁控制器。此時,設備首先進行串口的切換,使單片機和門禁控制器進行通訊。將從感應讀卡器接收的數據原樣發(fā)送到門禁控制器。并等待接收門禁控制器的回復;收到回復后。再次將串口切換回同感應讀卡器進行通訊,轉發(fā)門禁控制器的回復命令;完成數據的傳送之后,數據篩選器回到巡檢狀態(tài),進行下一輪查詢。具體的比對流程如圖5所示。
數據篩選器通過實時監(jiān)聽門禁控制器與控制計算機之間的通訊,從中獲取合法的感應卡內碼數據,并存儲在數據篩選器的E PROM中,作為將來進行數據比對的依據。其工作流程如下:數據篩選器監(jiān)聽計算機發(fā)送給門禁控制器的所有命令,通過解析,獲取所有對卡片進行增、刪、改的內部操作命令,根據命令,相應地將E2pROM中存儲的感應卡內碼數據進行增、刪、改,保證數據篩選器內存儲的數據與門禁控制器的合法數據保持一致。具體操作流程如圖6所示:
在現實中,由于門禁控制器、前端設備以及它們之間的通訊協(xié)議均由同一生產廠商生產,因此可能存在“后門卡” 的安全隱患。對于特殊部門、要害部門來說,他們對安全有著特殊的要求,在使用門禁系統(tǒng)保護安全的同時,也關心設備自身的安全性、可靠性。筆者在文中提出的數據篩選器構想可以有效的防止“后門卡”對門禁系統(tǒng)的攻擊,保障門禁系統(tǒng)自身的安全。
評論