?
本應用筆記從信息技術(IT)這一全新視角闡述了物理門禁控制系統。本文對各種不同類型的鎖控技術(機械、磁卡、接觸式、RFID)進行對比,并對這些鎖控裝置的優缺點進行了評估。采用質詢-響應認證的鎖控裝置克服了傳統靜態數據門鎖的局限性。本文介紹了質詢-響應工作原理,列舉了相應的鎖控裝置并對其進行比較。本文還闡述了質詢-響應認證相比靜態數據更安全的原因。
本應用筆記討論了幾種不同類型的門禁控制系統:機械式、磁卡式、接觸式、RFID。文章討論了質詢-響應認證(質詢、加密以及消息認證碼或MAC)以及SHA-1算法的重要性。最后,本文還闡述了質詢-響應認證機制更安全的原因。
基于信息技術(IT)的鎖控裝置
嚴格意義上講,任何鑰匙內都會像ROM (只讀存儲器)一樣存儲相關信息。鎖具“讀取”鑰匙端的數據,如果與鎖具規則匹配,則通行。機械鑰匙的整體物理尺寸、最小尺寸(例如,單位增量)限制了其可選擇的代碼空間。對于一個給定類型的鑰匙,可以在不重復的前提下制造出數百或數千把鑰匙,確切數目取決于鑰匙的類型。磁卡鑰匙可以在很小的鐵磁材料上存儲信息。磁卡可以分成多個平行磁軌,每條磁軌可寫入500位以上數據。而接觸式電子令牌鑰匙(例如iButton?器件、芯片卡)則將信息存儲于硅片。可以存儲的位數從低至64位(DS1990A)到無限容量。非接觸式鑰匙則以26位模型開始,事實上這種鑰匙的容量也沒有上限限制。磁卡鑰匙在酒店門禁系統非常流行。電子令牌鑰匙,無論是接觸式還是非接觸式,都已普遍用于員工胸卡。
現狀和問題
無論是機械鎖,還是電子鎖,開啟方式都是基于靜態數據是否能滿足鎖具自身的規則要求。采用電子鎖,其數據可以是一個簡單的序列號,也可以是大量存儲數據(磁卡或存儲芯片卡等)或兩者結合。一把鑰匙攜帶的信息越少,則對于給定的鎖具而言就可以提供越多的鑰匙與之匹配。
機械鑰匙具有多種不同的類型和尺寸1。而鎖具“主人”則無法避免鑰匙在未經授權的情況下被復制。此外,還可以使用一些廉價工具惡意打開門鎖2。由于“代碼”空間有限,這種鎖具無法保證鑰匙的唯一性。日積月累,鑰匙的結構慢慢磨損,使開鎖變得更加困難。
雖然代碼空間對磁卡鑰匙卡不是問題,但它們很容易被復制2或擦除。磁卡同樣存在磨損問題。
基于ROM的電子鑰匙可以防止克隆或復制,接觸式鑰匙2和RFID鑰匙2即采用了類似原理。除了韋根(Wiegand)協議及其派生(26位或36位)協議外,電子鑰匙具有足夠的代碼空間保證每把鑰匙代碼的唯一性。
下一代安全產品:質詢-響應認證
傳統的電子鎖依賴于靜態數據,這些數據是鑰匙獲得進入的權限。這種一成不變的原則使克隆鑰匙非常簡單。事實上,如果鑰匙可以從鎖具接收一個不確定的數據質詢,并根據接收到的數據以特定的數據格式響應,則可以實現更高的加密等級。這一過程包括了公開的可讀取數據和只有鑰匙及鎖具知道的隱藏數據。
由鎖具發送給鑰匙的這個不確定數據從技術上稱為隨機質詢,隱藏數據稱為密鑰,而響應通常稱作信息認證代碼或MAC。信息包含質詢、公開可讀數據、密鑰以及常數(填充數)。為了驗證密鑰的有效性,鎖具會根據同一質詢、從鑰匙讀取的數據、密鑰以及常數計算MAC。如果鎖具所計算的MAC與鑰匙響應的MAC匹配,則鎖具認為鑰匙是合法的。技術上,這一流程如圖1所示,叫做質詢-響應認證。如果除了有效性外,鑰匙里公開可讀的數據與鎖具標準相匹配,則打開鎖具。
?
圖1. 質詢-響應認證數據流
在加密學中,從一串信息碼產生固定長度MAC的算法通常稱作單向散列算法。“單向”表示該算法通常難以從固定長度MAC輸出大量信息。采用加密算法時,加密信息的長度往往與原始信息成正比。
SHA-1是經過完全驗證并獲得國際認可的單向散列算法,SHA-1算法由美國國家標準技術研究所(NIST)制定,現已成為國際標準ISO/IEC 10118-3:2004。算法所依賴的數學公式已經在NIST網頁公開。SHA-1算法與其它算法的差別是:
不可逆性:該算法無法通過相應的MAC逆向計算輸入。
防沖突:該算法不可能找到另外一個可以產生同一MAC的輸入信息。
高雪崩效應:輸入的任何變化將引起MAC結果的很大變化。
正是由于上述原因,而且該算法經過全球認證,Maxim選擇了SHA-1用于質詢-響應認證。
質詢-響應認證密鑰
目前,全球范圍內已經有眾多公司可以大規模生產電子鎖,無論是接觸式還是非接觸式。其主要元件是內置固件(例如軟件程序)和存儲器的微控制器,存儲器用于存儲可以被鎖具接受的密鑰(例如序列號或文本串)。基于設計,門鎖應具備配合質詢、響應鑰匙工作的所有資源。所有鎖具均需要固件更新。
DS1961S質詢-響應iButton內置SHA-1引擎,于2002年推向市場。而非接觸式器件MAX66140 ISO 15693兼容安全存儲器扣則于2010年面世。雖然通信接口和外形尺寸大有區別,但兩個器件具有許多共同點,如表1所示。二者均支持SHA-1認證,具有64位密鑰和1024位用戶可編程EEPROM。可以裝載密鑰并進行計算(這一步不需要認證)、寫保護。對存儲器的寫操作需要認證,即只有在確認器件密鑰正確的前提下才能進行寫操作。作為新產品,MAX66140采用5字節質詢,與DS1961S所采用的3字節質詢不同。MAX66140還提供存儲器寫次數計數器,使篡改檢測更容易實現,并且可以使器件應用從門禁控制擴展到閉環電子支付系統。
表1. DS1961S與MAX66140對比*MAX66040計劃提供具有ISO/IEC 14443 B型接口同等密鑰的產品。
高度安全的質詢-響應認證
建立并保持一個質詢-響應認證系統需要鑰匙編程器(即一套電子裝置),根據系統要求,可能還需要一個鑰匙主機。鑰匙編程器必須清楚供應商規定的數據轉換和加密算法,以產生所需要的密鑰。如果系統支持這一功能,可以按照門鎖存儲的列表,利用鑰匙主機更新已知鑰匙的ID號。對于任何安全系統,都要嚴格控制這些物理層工具,以防非法使用。
創建新鑰匙或復制鑰匙
經過授權的管理人員可以使用鑰匙編程器在一把空鑰匙內安裝一個有效的密鑰,并在存儲器寫入有效數據(復制鑰匙時,數據從另一把鑰匙直接拷貝)。由此,即可獲得一把新鑰匙。根據具體門鎖的固件,可能需要使用鑰匙主機在鎖內已知的密鑰列表中加入新的鑰匙ID。黑客可以在一把空鑰內加入任何密鑰,然后在開放可讀存儲器中存入有效數據。然而,這樣得到的鑰匙幾乎不可能通過質詢、響應認證,因為它的密鑰是無效的。
更改鑰匙的接入權限
利用鑰匙編程器,經過授權的管理員可以更新存儲器數據,以更改鑰匙權限。如果不知道密鑰或沒有接入適當設備,黑客就無法得到MAC寫入權限,因而也就不能對鑰匙存儲器進行寫操作。
報廢一把鑰匙
利用鑰匙編程器,管理員可以更改鑰匙存儲器的內容,將其設置在“出廠默認設置”或其它任何無效狀態,但密鑰將保留不變。如果鎖內保留了已知密鑰列表,建議將無效密鑰的ID從鎖內刪除。可以在以后使用時重新恢復鑰匙密鑰。黑客的做法是通過強制措施建立密鑰。
防克隆保護
可以考慮這樣一種情況,黑客借助竊聽或記錄裝置獲得有效的密鑰,然后將其重復發送到門鎖,并對記錄數據進行分析,獲得門鎖發出的質詢以及鑰匙生成MAC。如果固件設計合理,質詢應該是隨機數,使得黑客不可能得到所有質詢響應的組合,最終放棄這一盜竊渠道。
如果固件設計不合理,采用固定質詢,或者從一個很小的模板中隨機產生質詢,這會給黑客可乘之機。黑客可以利用有效的鑰匙ID、存儲器數據以及門鎖發送的質詢和讀取的相應認證MAC,配置鑰匙仿真器。如果黑客保存了已知密鑰列表,最簡單的對策就是刪除門鎖中的列表。對于沒有使用這樣列表的系統也不是沒有防備。為了偵測鑰匙仿真器,可以讓門鎖在鑰匙內部沒使用的存儲單元寫入一個隨機數。仿真器也將接受這些寫操作,因為它不能識別哪些MAC寫操作有效。隨后,門鎖將剛寫入的數據和讀取頁的驗證MAC一起讀回。由于不能進行此項操作,仿真器無法產生有效MAC,因而操作失效。
密鑰泄露保護
可以裝載或計算作為質詢、響應認證密鑰的64位數據,最糟糕的設計是把同一密鑰寫入系統的所有鑰匙。一旦密鑰泄露或通過反復試驗被發現,系統的安全防線將被摧毀。因此,進行質詢、響應認證的鑰匙可以根據初始(當前或裝載的)密鑰、部分密鑰、存儲器頁數據以及器件指定常數,計算新的密鑰。采用這種方式,密鑰不會暴露在外部。將鑰匙的64位ID作為部分密鑰,可以產生器件的專用密鑰。如果該鑰匙的密鑰泄露,只需要修復這把鑰匙,而不需要更新整個系統。
結論
在一些安裝了電子鎖或電子門禁的場所,通過質詢-響應認證系統可以明顯改善系統的安全性。質詢-響應鑰匙可以采用接觸式接口或無線接口。受保護的質詢-響應鑰匙中的數據可以防止非法修改。存儲器的寫次數計數器監測篡改操作。克隆的質詢-響應鑰匙無法通過認證測試,即使公開可讀存儲器的數據是有效的。對質詢-響應鑰匙進行升級非常簡單,只需在鎖內或讀取裝置內設置新的密鑰或安裝新的固件。
評論
查看更多