??? 摘 要: 介紹了一種應用DS2432器件實現(xiàn)雙向認證及軟件功能保護的方法。首先分析了信息認證的基本計算模型,然后應用DS2432器件并使用SHA-1算法實現(xiàn)了1-Wire" title="1-Wire">1-Wire網絡的安全認證" title="安全認證">安全認證。分析了其質詢-響應認證過程,從而得出可將系統(tǒng)密鑰存放在安全存儲器" title="安全存儲器">安全存儲器中,而不必存放在程序代碼內。這種系統(tǒng)便于擴展,DS2432的數(shù)據(jù)安全性甚至可以實現(xiàn)遠程配置信息修改,節(jié)省設計時間,實現(xiàn)了低成本的安全認證功能。
??? 關鍵詞: 認證? 密鑰? SHA-1算法? 信息認證碼MAC? 1-Wire? 數(shù)據(jù)安全
?
??? 高技術電子產品保證正確的身份識別至關重要,系統(tǒng)供應商需要在外有黑客攻擊這樣的“外患”,內有克隆硬件這樣的“內憂”的環(huán)境中保護其產品的安全性。實現(xiàn)這些安全需求的關鍵是認證。Maxim/Dallas Semiconductor公司的DS2432器件[1]以安全存儲器形式提供加密控制和保護方案,非常適合需要知識產權保護、HW/SW許可權管理、安全軟件功能與狀態(tài)設置、防篡改數(shù)據(jù)存儲等 方面的應用。
1 認證機制
1.1 認證
??? 認證是指兩個或多個實體之間建立身份認可的過程。單向認證情況下,一方需向另一方證明其身份的合法性。對于雙向認證,雙方需要彼此向對方證明自己的身份。最常用的認證方法是利用口令實現(xiàn)的。使用口令的主要問題是應用中口令是暴露的,極易被探測。
??? 1883年,弗蘭德斯語言學家Auguste Kerckhoffs發(fā)表了一篇關于軍事加密的文章,震驚了整個世界。Kerckhoffs認為:安全不應依靠隱匿性(例如非公開的保密算法),而應依靠算法及其密鑰的力量。如果安全受到破壞,只需替換密鑰,而不是替換整個系統(tǒng)[2]。
??? 基于密鑰的認證過程[2]如圖1所示。密鑰(私密)和需要認證的數(shù)據(jù)(“信息”)作為輸入,計算出信息認證碼MAC后附加到信息上。信息接收方進行相同的運算,將MAC計算結果與隨信息一起收到的MAC比較,如果二者相同,則信息是合法的。
??????????????????????????????????
??? 但是,這種認證過程有一個弱點。非法者如果截取到信息,可隨后回放此信息,以仿冒合法身份。為克服這種固有的MAC弱點和證明MAC發(fā)送方的合法身份,接收方可產生一個隨機數(shù),作為質詢碼回送給發(fā)送方。MAC發(fā)送方必須根據(jù)密鑰、信息和質詢碼重新計算新的MAC,并返回給接收方。如果對應任何質詢碼發(fā)送方都可產生有效的MAC,則可以確信發(fā)送方是知道密鑰的,其身份是合法的,該過程就是質詢-響應認證。
1.2 SHA-1算法
??? 在加密學中,由信息產生固定長度MAC的算法稱為“單向”散列算法。單向算法從固定長度MAC輸出推演出較長的原始信息極為困難。相反,通過加密的方法則較為容易,因為加密的信息與原始信息是成正比的。
??? SHA-1是經過深入研究和國際認可的單向散列算法[2-4],由National Institute of Standards and Technology (NIST)開發(fā)。SHA-1已經發(fā)展成為國際標準ISO/IEC 10118-3:2004,算法的數(shù)學基礎是公開的。
??? SHA-1算法的主要特點包括以下幾點: (1)不可逆性,從計算角度講,不可能從MAC推演出輸入信息。(2) 抗沖突性,對于特定MAC,找到多于一種輸入信息是不現(xiàn)實的。(3)高雪崩效應,輸入的任何變化都會使MAC結果產生巨大的變化。基于這些原因以及對該算法的國際性研究,Maxim/Dallas Semiconductor公司選擇SHA-1作為其安全存儲器的質詢-響應認證算法。
2 利用DS2432實現(xiàn)低成本安全認證功能
??? DS2432 EEPROM內置SHA-1引擎,借助1-Wire接口,可以方便地將其加入到任何帶有數(shù)字處理能力的電路中,例如帶微控制器(μC)或FPGA的電路。最簡單的情況下,僅僅需要一個空閑I/O引腳以及一個上拉電阻即可構成1-Wire接口。如果板上的計算能力或者剩余的程序存儲空間不足以完成SHA-1算法MAC計算,設計者可以采用DS2460 SHA-1協(xié)處理器,或將計算任務轉交給系統(tǒng)或網絡中最近的主機。協(xié)處理器還有另一個好處,即可將系統(tǒng)密鑰存放在安全存儲器中,而不必存放在程序代碼內[1]。
??? 每個子系統(tǒng)電路板上的DS2432可以保護系統(tǒng)供應商免受上述欺騙。除了進行質詢-響應認證外,DS2432還可以在其用戶EEPROM內存儲獨立的配置信息。配置數(shù)據(jù)可防止非法篡改,且系統(tǒng)供應商具有完全的控制權。配置信息可以位圖形式或代碼字形式存儲,完全由系統(tǒng)設計者決定。根據(jù)實際需要,應盡可能簡單地設置配置信息。由于DS2432提供方便的1-Wire接口,設計者只需增加如圖2所示的一個MOSFET和一個探測點,就可以在電路板其他部分不上電的情況下,通過探測點向DS2432寫入配置信息。MOSFET將DS2432與其他電路隔離,當子系統(tǒng)正常工作時,也不會妨礙DS2432的正常訪問。
???????????????????????????
??? 該配置信息寫入方法還帶來另一個好處,系統(tǒng)在用戶現(xiàn)場安裝完畢后,允許進行遠程更新/更改。任何未用于配置/功能管理的用戶EEPROM均可采用電子標牌的形式實現(xiàn)電路板標識功能。
3 DS2432認證功能的設計與實現(xiàn)
3.1 器件總體架構
??? DS2432的1-Wire接口、1KB SHA-1安全存儲器的主要數(shù)據(jù)單元和數(shù)據(jù)流路徑如圖3所示。在這個模型中包含了8字節(jié)密鑰和臨時存儲質詢碼的緩沖存儲器" title="緩沖存儲器">緩沖存儲器(暫存器)以及主要數(shù)據(jù)單元。數(shù)據(jù)單元包括獨一無二的器件ID號、四個用戶EEPROM頁面、控制寄存器" title="控制寄存器">控制寄存器和系統(tǒng)常數(shù)。
?????????????????????????????????
??? 器件ID號用作1-Wire網絡中的節(jié)點地址,同時還用于認證過程。用戶存儲器存放待認證“信息”的主要部分。系統(tǒng)常數(shù)有助于滿足格式需求和完成填充功能,從而構成SHA-1算法的64字節(jié)輸入數(shù)據(jù)塊??刂萍拇嫫鲌?zhí)行特定的器件功能,例如可選的密鑰寫保護或EEPROM仿真模式,控制寄存器通常不參與認證過程。
??? 在這個模型中,可毫無限制地讀取器件ID號和用戶EEPROM的信息,并可完全讀/寫訪問緩沖存儲器,還可以直接裝入密鑰,但永遠不能讀取它。如若改變用戶存儲器或寄存器的內容,則要求主機和從機(即DS2432)計算出相同的寫操作認證MAC,才可以打開緩沖存儲器至EEPROM的路徑。
??? 根據(jù)MAC結果的不同用途,DS2432 SHA-1引擎具有三種不同的工作方式[3]。任何情況下,SHA-1引擎均接收64字節(jié)輸入數(shù)據(jù),并計算出20字節(jié)的MAC結果。不同之處在于輸入數(shù)據(jù)。作為安全系統(tǒng)的根本需求,主機必須知道或者能夠計算出應用中的有效/合法的從器件密鑰。
3.2 質詢-響應認證MAC
??? DS2432的主要功能是完成質詢-響應認證。主機發(fā)送一個隨機質詢碼,指示DS2432根據(jù)該質詢碼、密鑰、主機所選存儲器頁的數(shù)據(jù)以及其他數(shù)據(jù)計算出響應MAC,如圖4所示。
??? DS2432完成計算后,將MAC回送給主機進行驗證。主機使用有效密鑰和DS2432所使用的相同信息數(shù)據(jù)重新進行MAC計算。如果該結果和DS2432給出的MAC是匹配的,則器件是合法的,因為只有合法的DS2432才能正確地響應質詢-響應認證過程。質詢碼是隨機數(shù)據(jù)這一點是非常重要的。如果質詢碼始終不變,很容易遭受一個利用有效、靜態(tài)、記錄和回放的MAC (不是使用認證DS2432實時算出的MAC)進行回放攻擊。
3.3 數(shù)據(jù)安全
??? 除了提供從器件的認證功能外,還強烈要求存放在器件中的數(shù)據(jù)是可信的。為實現(xiàn)這一點,DS2432的寫訪問是安全受限的。將數(shù)據(jù)從暫存器拷貝到EEPROM或控制寄存器之前,DS2432要求主機提供寫訪問認證MAC來證明其合法身份。如圖5所示,DS2432要根據(jù)暫存器中的新數(shù)據(jù)、密鑰、需要更新的存儲器頁數(shù)據(jù)以及其他數(shù)據(jù)計算該MAC。
?????????????????????????????
??? 合法主機知道密鑰后可計算出有效的寫訪問MAC??截惷顖?zhí)行過程中收到主機MAC時,DS2432將其與自身計算的結果進行比較。只有二者匹配,數(shù)據(jù)才會從緩沖存儲器傳輸至目標EEPROM,但不能修改寫保護的存儲器頁,即使MAC是正確的。
3.4 密鑰保護
??? DS2432的架構允許直接向器件裝入密鑰??赏ㄟ^讀保護提供密鑰保護,如果需要,還可以采用寫保護提供密鑰保護,但這將永遠不能改變密鑰。只要在設備制造現(xiàn)場訪問密鑰是安全和可控的,這種保護等級是很有效的。
??? 可以采用不同方法提升密鑰保護等級[1]:(1)由DS2432計算其密鑰。(2)由DS2432在不同場合分階段計算其密鑰。(3)計算密鑰時包含利用獨一無二的器件ID號,生成與器件相關的密鑰。(4)組合利用(2)和(3)兩種方法。
??? 如果采用上面第1種方法,每個DS2432自己計算其密鑰,只知道計算密鑰的原始數(shù)據(jù),永遠不會暴露密鑰本身。如果采用第2種方法,密鑰在不同場合分階段計算,只知道密鑰的“本地”原始數(shù)據(jù)。這種方法可有效控制“最終”密鑰的信息。如果采用第3種方法,密鑰是與器件相關的,主機還需要增加一個計算步驟。但如果一個器件的密鑰被意外發(fā)現(xiàn),潛在危害卻可降至最低。如果采用第4種方法,密鑰分階段計算,并且與具體器件相關,可獲得最高保護等級。但是,為確保系統(tǒng)保密性,主機和從機一樣需要在不同地點進行設置。
??? 計算密鑰之前,必須先裝入一個已知數(shù)值作為密鑰。有了這個已知密鑰,必須向四個存儲器頁之一寫入計算新密鑰的32字節(jié)數(shù)據(jù)。接下來,需要向DS2432的暫存器寫入一個局部密鑰。局部密鑰可以是用于計算的存儲器頁碼和獨一無二的器件ID號(CRC字節(jié)除外),或任何其他與應用相關的8字節(jié)數(shù)據(jù)。
??? 如果指示DS2432計算密鑰,則DS2432啟動SHA-1引擎,使用圖6所示的輸入數(shù)據(jù)計算MAC。20字節(jié)MAC的最低8個字節(jié)自動拷貝到密鑰存儲器地址,立即成為有效密鑰。
?????????????????????????????????
??? DS2432巧妙實現(xiàn)的安全認證功能,不但保護了程序代碼,而且公共硬件平臺利用安全的軟件功能設置也有助于降低生產成本;DS2432的數(shù)據(jù)安全性甚至可以實現(xiàn)遠程配置信息修改,節(jié)省了技術人員的寶貴時間;從DS2432所展示的功能可以看出,一個小小的硅晶片將對收益產生巨大的影響,實現(xiàn)了低成本的安全認證。
參考文獻
[1] Maxim/Dallas Semiconductor. Protecting the R&D investment—two-way authentication and secure soft-feature?settings. www.maxim.com.cn. 2005.
[2] SCHNE1ER B.應用密碼學:協(xié)議,算法與C源程序[M].吳世忠,祝世雄,張文政等,譯.北京:機械工業(yè)出版社,
?2000.
[3] MEDHI D. HUANG D. MEHTA M, et al. Locationaware?key management scheme for wireless seflS0r networks[C].Procedings of 2004 ACM Workshop on Se. curity of Ad?Hoc and Sensor Networks.Washington DC. USA: ACM ??Press. 2004:29-42.
[4] LEE P P C, LUI J C S,YAU D K Y. Distributed collaborative key agreement protocols for dynam ic peer
?groups[C]. Proc.of the ICNP,2002:53-62.