《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 業(yè)界動(dòng)態(tài) > 用DS2432實(shí)現(xiàn)雙向認(rèn)證及軟件功能保護(hù)

用DS2432實(shí)現(xiàn)雙向認(rèn)證及軟件功能保護(hù)

2008-07-17
作者:羅 敬, 張益星

??? 摘 要: 介紹了一種應(yīng)用DS2432器件實(shí)現(xiàn)雙向認(rèn)證及軟件功能保護(hù)的方法,。首先分析了信息認(rèn)證的基本計(jì)算模型,然后應(yīng)用DS2432器件并使用SHA-1算法實(shí)現(xiàn)了1-Wire" title="1-Wire">1-Wire網(wǎng)絡(luò)的安全認(rèn)證" title="安全認(rèn)證">安全認(rèn)證,。分析了其質(zhì)詢-響應(yīng)認(rèn)證過程,,從而得出可將系統(tǒng)密鑰存放在安全存儲(chǔ)器" title="安全存儲(chǔ)器">安全存儲(chǔ)器中,,而不必存放在程序代碼內(nèi)。這種系統(tǒng)便于擴(kuò)展,,DS2432的數(shù)據(jù)安全性甚至可以實(shí)現(xiàn)遠(yuǎn)程配置信息修改,,節(jié)省設(shè)計(jì)時(shí)間,實(shí)現(xiàn)了低成本的安全認(rèn)證功能,。
??? 關(guān)鍵詞: 認(rèn)證? 密鑰? SHA-1算法? 信息認(rèn)證碼MAC? 1-Wire? 數(shù)據(jù)安全

?

??? 高技術(shù)電子產(chǎn)品保證正確的身份識(shí)別至關(guān)重要,,系統(tǒng)供應(yīng)商需要在外有黑客攻擊這樣的“外患”,內(nèi)有克隆硬件這樣的“內(nèi)憂”的環(huán)境中保護(hù)其產(chǎn)品的安全性,。實(shí)現(xiàn)這些安全需求的關(guān)鍵是認(rèn)證,。Maxim/Dallas Semiconductor公司的DS2432器件[1]以安全存儲(chǔ)器形式提供加密控制和保護(hù)方案,非常適合需要知識(shí)產(chǎn)權(quán)保護(hù)、HW/SW許可權(quán)管理,、安全軟件功能與狀態(tài)設(shè)置、防篡改數(shù)據(jù)存儲(chǔ)等 方面的應(yīng)用,。
1 認(rèn)證機(jī)制
1.1 認(rèn)證
??? 認(rèn)證是指兩個(gè)或多個(gè)實(shí)體之間建立身份認(rèn)可的過程,。單向認(rèn)證情況下,一方需向另一方證明其身份的合法性,。對(duì)于雙向認(rèn)證,,雙方需要彼此向?qū)Ψ阶C明自己的身份。最常用的認(rèn)證方法是利用口令實(shí)現(xiàn)的,。使用口令的主要問題是應(yīng)用中口令是暴露的,,極易被探測。
??? 1883年,,弗蘭德斯語言學(xué)家Auguste Kerckhoffs發(fā)表了一篇關(guān)于軍事加密的文章,,震驚了整個(gè)世界。Kerckhoffs認(rèn)為:安全不應(yīng)依靠隱匿性(例如非公開的保密算法),,而應(yīng)依靠算法及其密鑰的力量,。如果安全受到破壞,只需替換密鑰,,而不是替換整個(gè)系統(tǒng)[2],。
??? 基于密鑰的認(rèn)證過程[2]如圖1所示。密鑰(私密)和需要認(rèn)證的數(shù)據(jù)(“信息”)作為輸入,,計(jì)算出信息認(rèn)證碼MAC后附加到信息上,。信息接收方進(jìn)行相同的運(yùn)算,將MAC計(jì)算結(jié)果與隨信息一起收到的MAC比較,,如果二者相同,,則信息是合法的。

??????????????????????????????????
??? 但是,,這種認(rèn)證過程有一個(gè)弱點(diǎn),。非法者如果截取到信息,可隨后回放此信息,,以仿冒合法身份,。為克服這種固有的MAC弱點(diǎn)和證明MAC發(fā)送方的合法身份,接收方可產(chǎn)生一個(gè)隨機(jī)數(shù),,作為質(zhì)詢碼回送給發(fā)送方,。MAC發(fā)送方必須根據(jù)密鑰、信息和質(zhì)詢碼重新計(jì)算新的MAC,,并返回給接收方,。如果對(duì)應(yīng)任何質(zhì)詢碼發(fā)送方都可產(chǎn)生有效的MAC,則可以確信發(fā)送方是知道密鑰的,其身份是合法的,,該過程就是質(zhì)詢-響應(yīng)認(rèn)證,。
1.2 SHA-1算法
??? 在加密學(xué)中,由信息產(chǎn)生固定長度MAC的算法稱為“單向”散列算法,。單向算法從固定長度MAC輸出推演出較長的原始信息極為困難,。相反,通過加密的方法則較為容易,,因?yàn)榧用艿男畔⑴c原始信息是成正比的,。
??? SHA-1是經(jīng)過深入研究和國際認(rèn)可的單向散列算法[2-4],由National Institute of Standards and Technology (NIST)開發(fā),。SHA-1已經(jīng)發(fā)展成為國際標(biāo)準(zhǔn)ISO/IEC 10118-3:2004,,算法的數(shù)學(xué)基礎(chǔ)是公開的。
??? SHA-1算法的主要特點(diǎn)包括以下幾點(diǎn): (1)不可逆性,從計(jì)算角度講,,不可能從MAC推演出輸入信息,。(2) 抗沖突性,對(duì)于特定MAC,找到多于一種輸入信息是不現(xiàn)實(shí)的,。(3)高雪崩效應(yīng),輸入的任何變化都會(huì)使MAC結(jié)果產(chǎn)生巨大的變化,。基于這些原因以及對(duì)該算法的國際性研究,,Maxim/Dallas Semiconductor公司選擇SHA-1作為其安全存儲(chǔ)器的質(zhì)詢-響應(yīng)認(rèn)證算法,。
2 利用DS2432實(shí)現(xiàn)低成本安全認(rèn)證功能
??? DS2432 EEPROM內(nèi)置SHA-1引擎,借助1-Wire接口,,可以方便地將其加入到任何帶有數(shù)字處理能力的電路中,,例如帶微控制器(μC)或FPGA的電路。最簡單的情況下,,僅僅需要一個(gè)空閑I/O引腳以及一個(gè)上拉電阻即可構(gòu)成1-Wire接口,。如果板上的計(jì)算能力或者剩余的程序存儲(chǔ)空間不足以完成SHA-1算法MAC計(jì)算,設(shè)計(jì)者可以采用DS2460 SHA-1協(xié)處理器,,或?qū)⒂?jì)算任務(wù)轉(zhuǎn)交給系統(tǒng)或網(wǎng)絡(luò)中最近的主機(jī),。協(xié)處理器還有另一個(gè)好處,即可將系統(tǒng)密鑰存放在安全存儲(chǔ)器中,,而不必存放在程序代碼內(nèi)[1],。
??? 每個(gè)子系統(tǒng)電路板上的DS2432可以保護(hù)系統(tǒng)供應(yīng)商免受上述欺騙。除了進(jìn)行質(zhì)詢-響應(yīng)認(rèn)證外,,DS2432還可以在其用戶EEPROM內(nèi)存儲(chǔ)獨(dú)立的配置信息,。配置數(shù)據(jù)可防止非法篡改,且系統(tǒng)供應(yīng)商具有完全的控制權(quán),。配置信息可以位圖形式或代碼字形式存儲(chǔ),,完全由系統(tǒng)設(shè)計(jì)者決定。根據(jù)實(shí)際需要,應(yīng)盡可能簡單地設(shè)置配置信息,。由于DS2432提供方便的1-Wire接口,,設(shè)計(jì)者只需增加如圖2所示的一個(gè)MOSFET和一個(gè)探測點(diǎn),就可以在電路板其他部分不上電的情況下,,通過探測點(diǎn)向DS2432寫入配置信息,。MOSFET將DS2432與其他電路隔離,當(dāng)子系統(tǒng)正常工作時(shí),,也不會(huì)妨礙DS2432的正常訪問。

???????????????????????????
??? 該配置信息寫入方法還帶來另一個(gè)好處,,系統(tǒng)在用戶現(xiàn)場安裝完畢后,,允許進(jìn)行遠(yuǎn)程更新/更改。任何未用于配置/功能管理的用戶EEPROM均可采用電子標(biāo)牌的形式實(shí)現(xiàn)電路板標(biāo)識(shí)功能,。
3 DS2432認(rèn)證功能的設(shè)計(jì)與實(shí)現(xiàn)
3.1 器件總體架構(gòu)
??? DS2432的1-Wire接口,、1KB SHA-1安全存儲(chǔ)器的主要數(shù)據(jù)單元和數(shù)據(jù)流路徑如圖3所示。在這個(gè)模型中包含了8字節(jié)密鑰和臨時(shí)存儲(chǔ)質(zhì)詢碼的緩沖存儲(chǔ)器" title="緩沖存儲(chǔ)器">緩沖存儲(chǔ)器(暫存器)以及主要數(shù)據(jù)單元,。數(shù)據(jù)單元包括獨(dú)一無二的器件ID號(hào),、四個(gè)用戶EEPROM頁面、控制寄存器" title="控制寄存器">控制寄存器和系統(tǒng)常數(shù),。

?????????????????????????????????
??? 器件ID號(hào)用作1-Wire網(wǎng)絡(luò)中的節(jié)點(diǎn)地址,,同時(shí)還用于認(rèn)證過程。用戶存儲(chǔ)器存放待認(rèn)證“信息”的主要部分,。系統(tǒng)常數(shù)有助于滿足格式需求和完成填充功能,,從而構(gòu)成SHA-1算法的64字節(jié)輸入數(shù)據(jù)塊??刂萍拇嫫鲌?zhí)行特定的器件功能,,例如可選的密鑰寫保護(hù)或EEPROM仿真模式,控制寄存器通常不參與認(rèn)證過程,。
??? 在這個(gè)模型中,,可毫無限制地讀取器件ID號(hào)和用戶EEPROM的信息,并可完全讀/寫訪問緩沖存儲(chǔ)器,,還可以直接裝入密鑰,,但永遠(yuǎn)不能讀取它。如若改變用戶存儲(chǔ)器或寄存器的內(nèi)容,,則要求主機(jī)和從機(jī)(即DS2432)計(jì)算出相同的寫操作認(rèn)證MAC,,才可以打開緩沖存儲(chǔ)器至EEPROM的路徑。
??? 根據(jù)MAC結(jié)果的不同用途,,DS2432 SHA-1引擎具有三種不同的工作方式[3],。任何情況下,SHA-1引擎均接收64字節(jié)輸入數(shù)據(jù),并計(jì)算出20字節(jié)的MAC結(jié)果,。不同之處在于輸入數(shù)據(jù),。作為安全系統(tǒng)的根本需求,主機(jī)必須知道或者能夠計(jì)算出應(yīng)用中的有效/合法的從器件密鑰,。
3.2 質(zhì)詢-響應(yīng)認(rèn)證MAC
??? DS2432的主要功能是完成質(zhì)詢-響應(yīng)認(rèn)證,。主機(jī)發(fā)送一個(gè)隨機(jī)質(zhì)詢碼,指示DS2432根據(jù)該質(zhì)詢碼,、密鑰,、主機(jī)所選存儲(chǔ)器頁的數(shù)據(jù)以及其他數(shù)據(jù)計(jì)算出響應(yīng)MAC,如圖4所示,。

?????????????????????????????

??? DS2432完成計(jì)算后,,將MAC回送給主機(jī)進(jìn)行驗(yàn)證。主機(jī)使用有效密鑰和DS2432所使用的相同信息數(shù)據(jù)重新進(jìn)行MAC計(jì)算,。如果該結(jié)果和DS2432給出的MAC是匹配的,,則器件是合法的,因?yàn)橹挥泻戏ǖ腄S2432才能正確地響應(yīng)質(zhì)詢-響應(yīng)認(rèn)證過程,。質(zhì)詢碼是隨機(jī)數(shù)據(jù)這一點(diǎn)是非常重要的,。如果質(zhì)詢碼始終不變,很容易遭受一個(gè)利用有效,、靜態(tài),、記錄和回放的MAC (不是使用認(rèn)證DS2432實(shí)時(shí)算出的MAC)進(jìn)行回放攻擊。
3.3 數(shù)據(jù)安全
??? 除了提供從器件的認(rèn)證功能外,,還強(qiáng)烈要求存放在器件中的數(shù)據(jù)是可信的,。為實(shí)現(xiàn)這一點(diǎn),DS2432的寫訪問是安全受限的,。將數(shù)據(jù)從暫存器拷貝到EEPROM或控制寄存器之前,,DS2432要求主機(jī)提供寫訪問認(rèn)證MAC來證明其合法身份。如圖5所示,,DS2432要根據(jù)暫存器中的新數(shù)據(jù),、密鑰、需要更新的存儲(chǔ)器頁數(shù)據(jù)以及其他數(shù)據(jù)計(jì)算該MAC,。
?????????????????????????????

??? 合法主機(jī)知道密鑰后可計(jì)算出有效的寫訪問MAC,。拷貝命令執(zhí)行過程中收到主機(jī)MAC時(shí),,DS2432將其與自身計(jì)算的結(jié)果進(jìn)行比較,。只有二者匹配,數(shù)據(jù)才會(huì)從緩沖存儲(chǔ)器傳輸至目標(biāo)EEPROM,,但不能修改寫保護(hù)的存儲(chǔ)器頁,,即使MAC是正確的,。
3.4 密鑰保護(hù)
??? DS2432的架構(gòu)允許直接向器件裝入密鑰??赏ㄟ^讀保護(hù)提供密鑰保護(hù),,如果需要,還可以采用寫保護(hù)提供密鑰保護(hù),,但這將永遠(yuǎn)不能改變密鑰,。只要在設(shè)備制造現(xiàn)場訪問密鑰是安全和可控的,這種保護(hù)等級(jí)是很有效的,。
??? 可以采用不同方法提升密鑰保護(hù)等級(jí)[1]:(1)由DS2432計(jì)算其密鑰,。(2)由DS2432在不同場合分階段計(jì)算其密鑰。(3)計(jì)算密鑰時(shí)包含利用獨(dú)一無二的器件ID號(hào),,生成與器件相關(guān)的密鑰,。(4)組合利用(2)和(3)兩種方法。

??? 如果采用上面第1種方法,,每個(gè)DS2432自己計(jì)算其密鑰,只知道計(jì)算密鑰的原始數(shù)據(jù),,永遠(yuǎn)不會(huì)暴露密鑰本身,。如果采用第2種方法,密鑰在不同場合分階段計(jì)算,,只知道密鑰的“本地”原始數(shù)據(jù),。這種方法可有效控制“最終”密鑰的信息。如果采用第3種方法,,密鑰是與器件相關(guān)的,,主機(jī)還需要增加一個(gè)計(jì)算步驟。但如果一個(gè)器件的密鑰被意外發(fā)現(xiàn),,潛在危害卻可降至最低,。如果采用第4種方法,密鑰分階段計(jì)算,,并且與具體器件相關(guān),,可獲得最高保護(hù)等級(jí)。但是,,為確保系統(tǒng)保密性,,主機(jī)和從機(jī)一樣需要在不同地點(diǎn)進(jìn)行設(shè)置。
??? 計(jì)算密鑰之前,,必須先裝入一個(gè)已知數(shù)值作為密鑰,。有了這個(gè)已知密鑰,必須向四個(gè)存儲(chǔ)器頁之一寫入計(jì)算新密鑰的32字節(jié)數(shù)據(jù),。接下來,,需要向DS2432的暫存器寫入一個(gè)局部密鑰,。局部密鑰可以是用于計(jì)算的存儲(chǔ)器頁碼和獨(dú)一無二的器件ID號(hào)(CRC字節(jié)除外),或任何其他與應(yīng)用相關(guān)的8字節(jié)數(shù)據(jù),。
??? 如果指示DS2432計(jì)算密鑰,,則DS2432啟動(dòng)SHA-1引擎,使用圖6所示的輸入數(shù)據(jù)計(jì)算MAC,。20字節(jié)MAC的最低8個(gè)字節(jié)自動(dòng)拷貝到密鑰存儲(chǔ)器地址,,立即成為有效密鑰。

?????????????????????????????????
??? DS2432巧妙實(shí)現(xiàn)的安全認(rèn)證功能,,不但保護(hù)了程序代碼,,而且公共硬件平臺(tái)利用安全的軟件功能設(shè)置也有助于降低生產(chǎn)成本;DS2432的數(shù)據(jù)安全性甚至可以實(shí)現(xiàn)遠(yuǎn)程配置信息修改,,節(jié)省了技術(shù)人員的寶貴時(shí)間,;從DS2432所展示的功能可以看出,一個(gè)小小的硅晶片將對(duì)收益產(chǎn)生巨大的影響,,實(shí)現(xiàn)了低成本的安全認(rèn)證,。
參考文獻(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.應(yīng)用密碼學(xué):協(xié)議,算法與C源程序[M].吳世忠,,祝世雄,,張文政等,譯.北京:機(jī)械工業(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.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。