網(wǎng)絡(luò)系統(tǒng)安全接入認(rèn)證方法探究
以太網(wǎng)(企業(yè)內(nèi)部網(wǎng)、國際互聯(lián)網(wǎng))、無線通信網(wǎng)(蜂窩電話、WiFi)和電力線通信(PLC)等網(wǎng)絡(luò)設(shè)備由服務(wù)器或基站以及網(wǎng)絡(luò)節(jié)點(diǎn)或網(wǎng)絡(luò)設(shè)備構(gòu)成,批量生產(chǎn)的網(wǎng)絡(luò)設(shè)備根據(jù)具體的網(wǎng)絡(luò)容量進(jìn)行組裝。為了得到一個受控的高可靠性網(wǎng)絡(luò)系統(tǒng),開發(fā)人員面臨兩大設(shè)計挑戰(zhàn):必須對所有連接到網(wǎng)絡(luò)的設(shè)備進(jìn)行認(rèn)證;允許通過服務(wù)器進(jìn)行遠(yuǎn)程升級。
對接入網(wǎng)絡(luò)的設(shè)備進(jìn)行授權(quán)認(rèn)證非常困難。未經(jīng)許可的設(shè)備可能會通過破環(huán)系統(tǒng)性能、干擾用戶從而直接危害到供應(yīng)商的收益。但是,網(wǎng)絡(luò)認(rèn)證功能同時也為供應(yīng)商提供了二次商機(jī),即通過服務(wù)器對購買升級功能的用戶設(shè)備進(jìn)行升級。
幾大網(wǎng)絡(luò)認(rèn)證方法比較
認(rèn)證過程是建立兩個目標(biāo)(這里指服務(wù)器和網(wǎng)絡(luò)設(shè)備)之間身份鑒定的過程。認(rèn)證過程必須避免未經(jīng)授權(quán)的制造商或克隆廠商從事的偽造或仿真活動。身份認(rèn)證的最佳途徑是采用系統(tǒng)令牌,網(wǎng)絡(luò)設(shè)備處理器結(jié)合認(rèn)證令牌進(jìn)行通信,從而對設(shè)備進(jìn)行鑒定。通過適當(dāng)配置認(rèn)證令牌限制設(shè)備的接入,最終達(dá)到杜絕假冒偽劣網(wǎng)絡(luò)設(shè)備的接入。
本地網(wǎng)的服務(wù)器距離網(wǎng)絡(luò)設(shè)備近,很難通過制造商進(jìn)行升級。例如,帶有附屬模塊(例如墨盒)的打印機(jī),其中,服務(wù)器是打印機(jī)中的微處理器,網(wǎng)絡(luò)設(shè)備就是那些模塊。
遠(yuǎn)程網(wǎng)絡(luò)的服務(wù)器工作環(huán)境安全,但是服務(wù)供應(yīng)商保持對其的接入權(quán)限。遠(yuǎn)程網(wǎng)絡(luò)存在一些如不安全的通信鏈路等潛在問題,但其確實(shí)為實(shí)際應(yīng)用提供了便利:根據(jù)中心服務(wù)器的判定,可以在完成網(wǎng)絡(luò)安裝后進(jìn)行擴(kuò)容和偵測網(wǎng)絡(luò)的攻擊者(圖1)。
圖1: 設(shè)備交付用戶使用后,網(wǎng)絡(luò)運(yùn)營商通常無權(quán)接入局域網(wǎng)(左側(cè)) ;遠(yuǎn)程網(wǎng)絡(luò)(右側(cè))即使在交付用戶使用后也具有接入權(quán)限。
認(rèn)真研究遠(yuǎn)程服務(wù)器的工作環(huán)境,對照幾種接入控制的成本和優(yōu)勢,可以使你在具體系統(tǒng)中應(yīng)用到最佳的認(rèn)證方法。認(rèn)證方案包括:簡單的密碼認(rèn)證、對稱密鑰認(rèn)證、公鑰認(rèn)證、散列認(rèn)證等。以下內(nèi)容還討論了網(wǎng)絡(luò)設(shè)備升級功能的優(yōu)勢。
簡單的密碼認(rèn)證 最簡單的認(rèn)證方法就是判斷密碼是否正確。這種方法成本最低,因?yàn)椴恍枰~外的硬件或軟件支持加密/認(rèn)證算法。由于密碼為透明傳輸,即通過通信鏈路傳輸,很容易被截取并在以后復(fù)制(圖2),由此可見,簡單的密碼檢驗(yàn)方案的安全性很差。
圖2: 密碼檢驗(yàn)的第3步通信容易造成密鑰被竊取
對于基本的密碼認(rèn)證來說,網(wǎng)絡(luò)設(shè)備和服務(wù)器必須有一個公認(rèn)的密鑰,如果網(wǎng)絡(luò)設(shè)備具有一個唯一的識別碼,可以利用該識別碼構(gòu)成設(shè)備唯一的密鑰。
對稱密鑰認(rèn)證 利用加密算法將安全信息從網(wǎng)絡(luò)設(shè)備發(fā)送到服務(wù)器,安全設(shè)備需要將加密密鑰編程到網(wǎng)絡(luò)設(shè)備中。實(shí)際應(yīng)用中有兩種類型的加密密鑰:對稱密鑰和非對稱密鑰(公鑰/私鑰)。對稱密鑰在服務(wù)器和網(wǎng)絡(luò)設(shè)備上共用同一密鑰(圖3)。
圖3: 對稱密鑰認(rèn)證中,隨機(jī)質(zhì)詢可以避免重復(fù)的響應(yīng)通信
利用處理器實(shí)現(xiàn)這一認(rèn)證比較簡單,但比簡單的密碼檢驗(yàn)要繁瑣。由于服務(wù)器和網(wǎng)絡(luò)設(shè)備之間的通信數(shù)據(jù)經(jīng)過加密,無法被攻擊者仿真,這種方法具有較高的安全性。另一方面,對稱加密算法通常僅采用簡單的運(yùn)算,例如“或”運(yùn)算和移位,具體實(shí)施成本并不高,利用微處理器即可實(shí)現(xiàn)。
該方案的前提是:網(wǎng)絡(luò)設(shè)備和服務(wù)器必須具備公用的對稱加密密鑰,如果網(wǎng)絡(luò)設(shè)備具有唯一的識別碼,則可利用識別碼構(gòu)成設(shè)備的唯一密鑰。
非對稱密鑰認(rèn)證 非對稱加密系統(tǒng)(公鑰/私鑰)不共用同一密鑰,每臺設(shè)備包含一個私鑰和一個公鑰。證書可以安裝到網(wǎng)絡(luò)設(shè)備以便驗(yàn)證其授權(quán)。由于公鑰/私鑰算法涉及到大量的計算,實(shí)施方案需要占用較大的存儲空間和CPU資源,成本較高(圖4)。例如,RSA公鑰加密需要模冪運(yùn)算。另外,還需要注意采用這類加密算法的器件受美國政府的出口限制。
該方案的前提是:網(wǎng)絡(luò)設(shè)備必須裝載包含網(wǎng)絡(luò)設(shè)備公鑰的證書,用服務(wù)器私鑰加密。用服務(wù)器公鑰解密后,可以驗(yàn)證網(wǎng)絡(luò)設(shè)備的合法性。
基于散列算法的認(rèn)證 散列(Hash)算法是將一串字符轉(zhuǎn)換成較短的、固定長度的數(shù)值或加密信息,以此代表原來的字符串。散列加密(特別是安全散列算法將其部分輸入作為密鑰)也可用于認(rèn)證(圖5)。
將部分輸入作為密鑰時,產(chǎn)生的結(jié)果稱為信息認(rèn)證代碼(MAC)。散列加密算法具備以下特征:具有較高的雪崩效應(yīng),輸入很小的變化即可導(dǎo)致顯著的輸出變化;必須具備較好的單向性(不可逆),從輸出數(shù)據(jù)無法推導(dǎo)出輸入信息;最后,還必須能夠避免沖突,兩個不同的散列輸入不能產(chǎn)生相同的散列輸出。典型的散列算法(移位、異或、與)占用較少的系統(tǒng)資源,實(shí)施成本較低。
該方案的前提是:網(wǎng)絡(luò)設(shè)備和服務(wù)器必須有一個共用密鑰,用于MAC散列加密計算。如果網(wǎng)絡(luò)設(shè)備具有唯一的識別碼(ID),ID可以用作設(shè)備的唯一密鑰。
散列算法的實(shí)現(xiàn) 為了嵌入加密散列算法,例如SHA-1,可以選擇:微處理器、ASIC、FPGA或廠商提供的專用器件(表1)。這些器件都可以作為網(wǎng)絡(luò)設(shè)備的認(rèn)證令牌進(jìn)行散列認(rèn)證。如圖5所示,通過執(zhí)行嵌入在器件內(nèi)部的SHA-1加密散列運(yùn)算,由網(wǎng)絡(luò)設(shè)備和服務(wù)器共同產(chǎn)生MAC。
表1: Maxim的SHA-1存儲器件
SHA-1是聯(lián)邦信息委員會出版的180-1和180-2 (FIPS 180-1、FIPS 180-2)以及ISO/IEC 10118-3定義的一種公共標(biāo)準(zhǔn)。目前使用的SHA散列算法是FIPS批準(zhǔn)的散列認(rèn)證方法。由于SHA-1滿足上述三項(xiàng)原則(不可逆、防沖突、較好的雪崩效應(yīng))而成為普遍使用的一種算法。
遠(yuǎn)程升級功能
Maxim器件的認(rèn)證協(xié)議提供一個32字節(jié)授權(quán)數(shù)據(jù)頁,它可以用于軟件管理或其他控制。對于給定的硬件平臺,可以選擇軟件功能。授權(quán)頁的數(shù)據(jù)可以指定啟用哪些功能。Maxim的SHA-1存儲器需要一個SHA-1 MAC完成EEPROM存儲器的寫操作,這一操作還要求服務(wù)器對網(wǎng)絡(luò)設(shè)備進(jìn)行認(rèn)證。利用這一功能,即使在沒有安全保護(hù)措施的網(wǎng)絡(luò)上也可以實(shí)現(xiàn)設(shè)備的遠(yuǎn)程升級。進(jìn)行寫操作時,SHA-1 MAC需要包括原存儲器數(shù)據(jù)、新的存儲器數(shù)據(jù)以及唯一的器件ID。
該加密技術(shù)的關(guān)鍵是把部分應(yīng)用存儲器數(shù)據(jù)作為“隨機(jī)數(shù)”。寫MAC實(shí)現(xiàn)功能升級時需要包含原功能數(shù)據(jù)、原隨機(jī)數(shù)、新功能數(shù)據(jù)、新隨機(jī)數(shù)以及唯一的器件ID。得到不可重復(fù)的、唯一的升級事件計算結(jié)果寫入經(jīng)過認(rèn)證的器件。圖6所示為寫存儲器MAC的SHA-1 MAC輸入,圖7所示為升級時序。
圖6
圖7: 在遠(yuǎn)程升級之前和之后執(zhí)行散列認(rèn)證,確認(rèn)目標(biāo)設(shè)備已經(jīng)過授權(quán),完成升級過程。
應(yīng)用實(shí)例
以下給出了實(shí)際系統(tǒng)中基于SHA-1的安全器件的工作原理(圖8)。圖中利用DS28CN01認(rèn)證令牌實(shí)現(xiàn)雙向認(rèn)證,通過I2C接口與主機(jī)通信。這種情況下,主處理器為網(wǎng)絡(luò)控制器,與基站進(jìn)行數(shù)據(jù)通信,基站與連接到DS28CN01的微處理器進(jìn)行通信。微處理器產(chǎn)生部分隨機(jī)質(zhì)詢碼,主機(jī)提供另一部分隨機(jī)碼,從而完成主機(jī)令牌認(rèn)證。該技術(shù)可以避免主機(jī)產(chǎn)生質(zhì)詢-響應(yīng)對而對其他系統(tǒng)造成混淆。
圖8: 雙向認(rèn)證不需要安全網(wǎng)絡(luò)連接
基站認(rèn)證 主機(jī)創(chuàng)建7字節(jié)隨機(jī)質(zhì)詢碼和所要求的頁碼,將其發(fā)送給基站#1的微處理器?;?1的微處理器通過I2C接口與DS28CN01通信,轉(zhuǎn)發(fā)隨機(jī)質(zhì)詢碼并在所選擇的頁面計算頁MAC。計算頁MAC將利用頁數(shù)據(jù)、唯一的ROM ID和密鑰進(jìn)行SHA-1運(yùn)算?;?1微處理器從DS28CN01重新得到MAC、頁數(shù)據(jù)和唯一的ROM ID,并將它們通過非安全鏈路轉(zhuǎn)發(fā)給主機(jī)。主機(jī)進(jìn)行相同的SHA-1計算,驗(yàn)證基站#1返回的MAC是否正確。如果不匹配,主機(jī)將拒絕基站#1的網(wǎng)絡(luò)接入。
主機(jī)認(rèn)證 首先執(zhí)行基站認(rèn)證過程,基站#1的微處理器產(chǎn)生3字節(jié)質(zhì)詢碼并將其通過非安全通信鏈路發(fā)送給主機(jī);主機(jī)產(chǎn)生4字節(jié)質(zhì)詢,與基站的3字節(jié)質(zhì)詢碼相組合,產(chǎn)生7字節(jié)質(zhì)詢碼。這個7字節(jié)數(shù)據(jù)和基站認(rèn)證中的頁數(shù)據(jù)、ROM ID一起進(jìn)行SHA-1運(yùn)算,產(chǎn)生頁MAC。該MAC和主機(jī)產(chǎn)生的4字節(jié)質(zhì)詢碼隨后送回基站#1的微處理器。
基站#1微處理器提取附加的4字節(jié)質(zhì)詢碼,結(jié)合它發(fā)送給主機(jī)的3字節(jié)質(zhì)詢,得到一個7字節(jié)質(zhì)詢碼,利用原先基站認(rèn)證中的頁面,在DS28CN01中計算頁MAC。隨后,將其與主機(jī)發(fā)送的MAC結(jié)果進(jìn)行比較。如果不匹配,基站將屏蔽主機(jī)的功能選項(xiàng)。