本應(yīng)用筆記從信息技術(shù)(IT)這一全新視角闡述了物理門禁控制系統(tǒng)。本文對(duì)各種不同類型的鎖控技術(shù)(機(jī)械、磁卡、接觸式、RFID)進(jìn)行對(duì)比,并對(duì)這些鎖控裝置的優(yōu)缺點(diǎn)進(jìn)行了評(píng)估。采用質(zhì)詢-響應(yīng)認(rèn)證的鎖控裝置克服了傳統(tǒng)靜態(tài)數(shù)據(jù)門鎖的局限性。本文介紹了質(zhì)詢-響應(yīng)工作原理,列舉了相應(yīng)的鎖控裝置并對(duì)其進(jìn)行比較。本文還闡述了質(zhì)詢-響應(yīng)認(rèn)證相比靜態(tài)數(shù)據(jù)更安全的原因。?
概述
人類使用門鎖的歷史已經(jīng)非常悠久,通過門鎖的防護(hù)作用來保護(hù)個(gè)人財(cái)產(chǎn)。隨著技術(shù)的進(jìn)步,鎖具也在不斷推陳出新。當(dāng)然,機(jī)械鎖仍然在今天占據(jù)主要地位;但是,如果您仔細(xì)觀察汽車鑰匙或者是員工胸卡,就會(huì)發(fā)現(xiàn)電子鎖已悄然進(jìn)入門禁控制領(lǐng)域。
本應(yīng)用筆記討論了幾種不同類型的門禁控制系統(tǒng):機(jī)械式、磁卡式、接觸式、RFID。文章討論了質(zhì)詢-響應(yīng)認(rèn)證(質(zhì)詢、加密以及消息認(rèn)證碼或MAC)以及SHA-1算法的重要性。最后,本文還闡述了質(zhì)詢-響應(yīng)認(rèn)證機(jī)制更安全的原因。
基于信息技術(shù)(IT)的鎖控裝置
嚴(yán)格意義上講,任何鑰匙內(nèi)都會(huì)像ROM (只讀存儲(chǔ)器)一樣存儲(chǔ)相關(guān)信息。鎖具“讀取”鑰匙端的數(shù)據(jù),如果與鎖具規(guī)則匹配,則通行。機(jī)械鑰匙的整體物理尺寸、最小尺寸(例如,單位增量)限制了其可選擇的代碼空間。對(duì)于一個(gè)給定類型的鑰匙,可以在不重復(fù)的前提下制造出數(shù)百或數(shù)千把鑰匙,確切數(shù)目取決于鑰匙的類型。磁卡鑰匙可以在很小的鐵磁材料上存儲(chǔ)信息。磁卡可以分成多個(gè)平行磁軌,每條磁軌可寫入500位以上數(shù)據(jù)。而接觸式電子令牌鑰匙(例如iButton?器件、芯片卡)則將信息存儲(chǔ)于硅片。可以存儲(chǔ)的位數(shù)從低至64位(DS1990A)到無限容量。非接觸式鑰匙則以26位模型開始(參見Wiegand Public Format,PDF),事實(shí)上這種鑰匙的容量也沒有上限限制。磁卡鑰匙在酒店門禁系統(tǒng)非常流行。電子令牌鑰匙,無論是接觸式還是非接觸式,都已普遍用于員工胸卡。
現(xiàn)狀和問題
無論是機(jī)械鎖,還是電子鎖,開啟方式都是基于靜態(tài)數(shù)據(jù)是否能滿足鎖具自身的規(guī)則要求。采用電子鎖,其數(shù)據(jù)可以是一個(gè)簡(jiǎn)單的序列號(hào),也可以是大量存儲(chǔ)數(shù)據(jù)(磁卡或存儲(chǔ)芯片卡等)或兩者結(jié)合。一把鑰匙攜帶的信息越少,則對(duì)于給定的鎖具而言就可以提供越多的鑰匙與之匹配。
機(jī)械鑰匙具有多種不同的類型和尺寸1。而鎖具“主人”則無法避免鑰匙在未經(jīng)授權(quán)的情況下被復(fù)制。此外,還可以使用一些廉價(jià)工具惡意打開門鎖2。由于“代碼”空間有限,這種鎖具無法保證鑰匙的唯一性。日積月累,鑰匙的結(jié)構(gòu)慢慢磨損,使開鎖變得更加困難。
雖然代碼空間對(duì)磁卡鑰匙卡不是問題,但它們很容易被復(fù)制2或擦除。磁卡同樣存在磨損問題。
基于ROM的電子鑰匙可以防止克隆或復(fù)制,接觸式鑰匙2和RFID鑰匙2即采用了類似原理。除了韋根(Wiegand)協(xié)議及其派生(26位或36位)協(xié)議外,電子鑰匙具有足夠的代碼空間保證每把鑰匙代碼的唯一性。
下一代安全產(chǎn)品:質(zhì)詢-響應(yīng)認(rèn)證
傳統(tǒng)的電子鎖依賴于靜態(tài)數(shù)據(jù),這些數(shù)據(jù)是鑰匙獲得進(jìn)入的權(quán)限。這種一成不變的原則使克隆鑰匙非常簡(jiǎn)單。事實(shí)上,如果鑰匙可以從鎖具接收一個(gè)不確定的數(shù)據(jù)質(zhì)詢,并根據(jù)接收到的數(shù)據(jù)以特定的數(shù)據(jù)格式響應(yīng),則可以實(shí)現(xiàn)更高的加密等級(jí)。這一過程包括了公開的可讀取數(shù)據(jù)和只有鑰匙及鎖具知道的隱藏?cái)?shù)據(jù)。
由鎖具發(fā)送給鑰匙的這個(gè)不確定數(shù)據(jù)從技術(shù)上稱為隨機(jī)質(zhì)詢,隱藏?cái)?shù)據(jù)稱為密鑰,而響應(yīng)通常稱作信息認(rèn)證代碼或MAC。信息包含質(zhì)詢、公開可讀數(shù)據(jù)、密鑰以及常數(shù)(填充數(shù))。為了驗(yàn)證密鑰的有效性,鎖具會(huì)根據(jù)同一質(zhì)詢、從鑰匙讀取的數(shù)據(jù)、密鑰以及常數(shù)計(jì)算MAC。如果鎖具所計(jì)算的MAC與鑰匙響應(yīng)的MAC匹配,則鎖具認(rèn)為鑰匙是合法的。技術(shù)上,這一流程如圖1所示,叫做質(zhì)詢-響應(yīng)認(rèn)證。如果除了有效性外,鑰匙里公開可讀的數(shù)據(jù)與鎖具標(biāo)準(zhǔn)相匹配,則打開鎖具。
圖1. 質(zhì)詢-響應(yīng)認(rèn)證數(shù)據(jù)流
在加密學(xué)中,從一串信息碼產(chǎn)生固定長(zhǎng)度MAC的算法通常稱作單向散列算法?!皢蜗颉北硎驹撍惴ㄍǔky以從固定長(zhǎng)度MAC輸出大量信息。采用加密算法時(shí),加密信息的長(zhǎng)度往往與原始信息成正比。
SHA-1是經(jīng)過完全驗(yàn)證并獲得國(guó)際認(rèn)可的單向散列算法,SHA-1算法由美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究所(NIST)制定,現(xiàn)已成為國(guó)際標(biāo)準(zhǔn)ISO/IEC 10118-3:2004。算法所依賴的數(shù)學(xué)公式已經(jīng)在NIST網(wǎng)頁(yè)公開。SHA-1算法與其它算法的差別是:
- 不可逆性:該算法無法通過相應(yīng)的MAC逆向計(jì)算輸入。
- 防沖突:該算法不可能找到另外一個(gè)可以產(chǎn)生同一MAC的輸入信息。
- 高雪崩效應(yīng):輸入的任何變化將引起MAC結(jié)果的很大變化。
正是由于上述原因,而且該算法經(jīng)過全球認(rèn)證,Maxim選擇了SHA-1用于質(zhì)詢-響應(yīng)認(rèn)證。
?
質(zhì)詢-響應(yīng)認(rèn)證密鑰
目前,全球范圍內(nèi)已經(jīng)有眾多公司可以大規(guī)模生產(chǎn)電子鎖,無論是接觸式還是非接觸式。其主要元件是內(nèi)置固件(例如軟件程序)和存儲(chǔ)器的微控制器,存儲(chǔ)器用于存儲(chǔ)可以被鎖具接受的密鑰(例如序列號(hào)或文本串)?;谠O(shè)計(jì),門鎖應(yīng)具備配合質(zhì)詢、響應(yīng)鑰匙工作的所有資源。所有鎖具均需要固件更新。
DS1961S質(zhì)詢-響應(yīng)iButton內(nèi)置SHA-1引擎,于2002年推向市場(chǎng)。而非接觸式器件MAX66140 ISO 15693兼容安全存儲(chǔ)器扣則于2010年面世。雖然通信接口和外形尺寸大有區(qū)別,但兩個(gè)器件具有許多共同點(diǎn),如表1所示。二者均支持SHA-1認(rèn)證,具有64位密鑰和1024位用戶可編程EEPROM。可以裝載密鑰并進(jìn)行計(jì)算(這一步不需要認(rèn)證)、寫保護(hù)。對(duì)存儲(chǔ)器的寫操作需要認(rèn)證,即只有在確認(rèn)器件密鑰正確的前提下才能進(jìn)行寫操作。作為新產(chǎn)品,MAX66140采用5字節(jié)質(zhì)詢,與DS1961S所采用的3字節(jié)質(zhì)詢不同。MAX66140還提供存儲(chǔ)器寫次數(shù)計(jì)數(shù)器,使篡改檢測(cè)更容易實(shí)現(xiàn),并且可以使器件應(yīng)用從門禁控制擴(kuò)展到閉環(huán)電子支付系統(tǒng)。
表1. DS1961S與MAX66140對(duì)比
Feature | DS1961S | MAX66140* |
Form factor | iButton, F3 and F5 size | Plastic key fob |
Communication interface | Contact-based, 1-Wire? protocol | Wireless, 13.56MHz ISO15693 and ISO18000-3 Mode 1 |
Data rate | Standard speed: up to 15.3kbps; overdrive speed: up to 125kbps | Slow speed: 1.6kbps down, 6.6kbps up; fast speed: 26kbps down and up |
ID# | 64-bit 1-Wire ROM ID | 64-bit UID, ISO compliant |
Authentication method | 160-bit SHA-1 MAC | 160-bit SHA-1 MAC |
Secret size | 64-bit (read protected) | 64-bit (read protected) |
Secret generation | Load, compute; optional write protection through separate register write access | Load, compute, optional automatic write protection |
User memory | 1024 bits organized as four pages of 32 bytes; write access in 8-byte blocks; user-programmable write protection for page 0 only or for all four pages together; user-programmable EPROM emulation mode for page 1 only | 1024 bits organized as 16 blocks of 8 bytes; four blocks form a 32-byte page; write access in 8-byte blocks; individual block write cycle counter; user-programmable write protection for each individual block; user-programmable EPROM emulation mode for each individual page; user-programmable read protection for page 3 |
Write authentication MAC | Involves ID#, page #, page data, new data, secret, constants | Involves ID#, page #, page data, new data, secret, write cycle counter, constants |
Read authentication MAC | Involves ID#, page #, page data, 3-byte challenge, secret, constants | Involves ID#, page #, page data, 5-byte challenge, secret, constants |
*MAX66040計(jì)劃提供具有ISO/IEC 14443 B型接口同等密鑰的產(chǎn)品。
高度安全的質(zhì)詢-響應(yīng)認(rèn)證
建立并保持一個(gè)質(zhì)詢-響應(yīng)認(rèn)證系統(tǒng)需要鑰匙編程器(即一套電子裝置),根據(jù)系統(tǒng)要求,可能還需要一個(gè)鑰匙主機(jī)。鑰匙編程器必須清楚供應(yīng)商規(guī)定的數(shù)據(jù)轉(zhuǎn)換和加密算法,以產(chǎn)生所需要的密鑰。如果系統(tǒng)支持這一功能,可以按照門鎖存儲(chǔ)的列表,利用鑰匙主機(jī)更新已知鑰匙的ID號(hào)。對(duì)于任何安全系統(tǒng),都要嚴(yán)格控制這些物理層工具,以防非法使用。
創(chuàng)建新鑰匙或復(fù)制鑰匙
經(jīng)過授權(quán)的管理人員可以使用鑰匙編程器在一把空鑰匙內(nèi)安裝一個(gè)有效的密鑰,并在存儲(chǔ)器寫入有效數(shù)據(jù)(復(fù)制鑰匙時(shí),數(shù)據(jù)從另一把鑰匙直接拷貝)。由此,即可獲得一把新鑰匙。根據(jù)具體門鎖的固件,可能需要使用鑰匙主機(jī)在鎖內(nèi)已知的密鑰列表中加入新的鑰匙ID。黑客可以在一把空鑰內(nèi)加入任何密鑰,然后在開放可讀存儲(chǔ)器中存入有效數(shù)據(jù)。然而,這樣得到的鑰匙幾乎不可能通過質(zhì)詢、響應(yīng)認(rèn)證,因?yàn)樗拿荑€是無效的。
更改鑰匙的接入權(quán)限
利用鑰匙編程器,經(jīng)過授權(quán)的管理員可以更新存儲(chǔ)器數(shù)據(jù),以更改鑰匙權(quán)限。如果不知道密鑰或沒有接入適當(dāng)設(shè)備,黑客就無法得到MAC寫入權(quán)限,因而也就不能對(duì)鑰匙存儲(chǔ)器進(jìn)行寫操作。
報(bào)廢一把鑰匙
利用鑰匙編程器,管理員可以更改鑰匙存儲(chǔ)器的內(nèi)容,將其設(shè)置在“出廠默認(rèn)設(shè)置”或其它任何無效狀態(tài),但密鑰將保留不變。如果鎖內(nèi)保留了已知密鑰列表,建議將無效密鑰的ID從鎖內(nèi)刪除??梢栽谝院笫褂脮r(shí)重新恢復(fù)鑰匙密鑰。黑客的做法是通過強(qiáng)制措施建立密鑰。
防克隆保護(hù)
可以考慮這樣一種情況,黑客借助竊聽或記錄裝置獲得有效的密鑰,然后將其重復(fù)發(fā)送到門鎖,并對(duì)記錄數(shù)據(jù)進(jìn)行分析,獲得門鎖發(fā)出的質(zhì)詢以及鑰匙生成MAC。如果固件設(shè)計(jì)合理,質(zhì)詢應(yīng)該是隨機(jī)數(shù),使得黑客不可能得到所有質(zhì)詢響應(yīng)的組合,最終放棄這一盜竊渠道。
如果固件設(shè)計(jì)不合理,采用固定質(zhì)詢,或者從一個(gè)很小的模板中隨機(jī)產(chǎn)生質(zhì)詢,這會(huì)給黑客可乘之機(jī)。黑客可以利用有效的鑰匙ID、存儲(chǔ)器數(shù)據(jù)以及門鎖發(fā)送的質(zhì)詢和讀取的相應(yīng)認(rèn)證MAC,配置鑰匙仿真器。如果黑客保存了已知密鑰列表,最簡(jiǎn)單的對(duì)策就是刪除門鎖中的列表。對(duì)于沒有使用這樣列表的系統(tǒng)也不是沒有防備。為了偵測(cè)鑰匙仿真器,可以讓門鎖在鑰匙內(nèi)部沒使用的存儲(chǔ)單元寫入一個(gè)隨機(jī)數(shù)。仿真器也將接受這些寫操作,因?yàn)樗荒茏R(shí)別哪些MAC寫操作有效。隨后,門鎖將剛寫入的數(shù)據(jù)和讀取頁(yè)的驗(yàn)證MAC一起讀回。由于不能進(jìn)行此項(xiàng)操作,仿真器無法產(chǎn)生有效MAC,因而操作失效。
密鑰泄露保護(hù)
可以裝載或計(jì)算作為質(zhì)詢、響應(yīng)認(rèn)證密鑰的64位數(shù)據(jù),最糟糕的設(shè)計(jì)是把同一密鑰寫入系統(tǒng)的所有鑰匙。一旦密鑰泄露或通過反復(fù)試驗(yàn)被發(fā)現(xiàn),系統(tǒng)的安全防線將被摧毀。因此,進(jìn)行質(zhì)詢、響應(yīng)認(rèn)證的鑰匙可以根據(jù)初始(當(dāng)前或裝載的)密鑰、部分密鑰、存儲(chǔ)器頁(yè)數(shù)據(jù)以及器件指定常數(shù),計(jì)算新的密鑰。采用這種方式,密鑰不會(huì)暴露在外部。將鑰匙的64位ID作為部分密鑰,可以產(chǎn)生器件的專用密鑰。如果該鑰匙的密鑰泄露,只需要修復(fù)這把鑰匙,而不需要更新整個(gè)系統(tǒng)。
結(jié)論
在一些安裝了電子鎖或電子門禁的場(chǎng)所,通過質(zhì)詢-響應(yīng)認(rèn)證系統(tǒng)可以明顯改善系統(tǒng)的安全性。質(zhì)詢-響應(yīng)鑰匙可以采用接觸式接口或無線接口。受保護(hù)的質(zhì)詢-響應(yīng)鑰匙中的數(shù)據(jù)可以防止非法修改。存儲(chǔ)器的寫次數(shù)計(jì)數(shù)器監(jiān)測(cè)篡改操作??寺〉馁|(zhì)詢-響應(yīng)鑰匙無法通過認(rèn)證測(cè)試,即使公開可讀存儲(chǔ)器的數(shù)據(jù)是有效的。對(duì)質(zhì)詢-響應(yīng)鑰匙進(jìn)行升級(jí)非常簡(jiǎn)單,只需在鎖內(nèi)或讀取裝置內(nèi)設(shè)置新的密鑰或安裝新的固件。
評(píng)論
查看更多