摘要:在冒名頂替、偽造證件行為猖獗的年代,保證正確的身份識別至關重要。這不僅對個人如此,對電子產品也是如此。系統供應商需要在外有黑客攻擊這樣的“外患”,內有克隆硬件這樣的“內憂”的環境中保護其產品的安全性。實現這些安全需求的關鍵是認證。
本文解釋了認證的概念,以及Maxim以安全存儲器形式提供加密控制和保護的方案,非常適合需要知識產權保護、HW/SW許可權管理、安全軟件功能與狀態設置、防篡改數據存儲等應用。
我們先來回顧一下加密的歷史應用,1883年弗蘭德斯語言學家Auguste Kerckhoffs發表了一篇關于軍事加密的文章,震驚了整個世界。Kerckhoffs講道,安全不應依靠隱匿性(例如非公開的保密算法),而應依靠算法及其密鑰的力量。如果安全受到破壞,Kerckhoffs認為,只需替換密鑰,而不是替換整個系統。
基于密鑰的認證過程如圖1所示:密鑰(私密)和需要認證的數據(“信息”)作為輸入,來計算信息認證碼,即MAC。MAC然后附加到信息上。信息接收方進行相同的運算,將MAC計算結果與隨信息一起收到的MAC比較。如果二者相同,則信息是合法的。
![圖1. 該MAC計算模型](/article/UploadPic/2009-5/20095984932356.gif)
圖1. 該MAC計算模型
但是,這種基本MAC計算模型也有一個弱點。非法者如果截取到信息,可隨后回放此信息,以仿冒合法身份。為克服這種固有的MAC弱點和證明MAC發送方的合法身份,接收方可產生一個隨機數,作為質詢碼回送給發送方。MAC發送方必須根據密鑰、信息和質詢碼重新計算新的MAC,并返回給接收方。如果對應任何質詢碼發送方都可產生有效的MAC,則可以確信發送方是知道密鑰的,其身份是合法的(圖2)。該過程就是質詢-響應認證。
![圖2. 質詢-響應認證過程](/article/UploadPic/2009-5/20095984932150.gif)
圖2. 質詢-響應認證過程
在加密學中,由信息產生固定長度MAC的算法稱為“單向”散列函數。單向表示從固定長度MAC輸出推演出較長的原始信息極為困難。相反,通過加密,加密的信息與原始信息是成正比的。
SHA-1是經過深入研究和國際認可的單向散列算法,由National Institute of Standards and Technology (NIST)開發。SHA-1已經發展成為國際標準ISO/IEC 10118-3:2004,算法的數學基礎是公開的,并可從NIST網站獲取。SHA-1算法的主要特點包括以下幾點:1) 不可逆性—從計算角度講,不可能從MAC推演出輸入信息;2) 抗沖突性—對于特定MAC,找到多于一種輸入信息是不現實的;3) 高雪崩效應―輸入的任何變化都會使MAC結果產生巨大的變化。基于這些原因以及對該算法的國際性研究,Maxim選擇SHA-1作為其安全存儲器的質詢-響應認證算法。
低成本安全認證—功能實現
DS2432 EEPROM內置SHA-1引擎,借助1-Wire接口,可以方便地加入到任何帶有數字處理能力的電路中,例如帶微控制器(μC)的電路。最簡單的情況下,僅僅需要一個空閑I/O引腳以及一個上拉電阻即可構成1-Wire接口,如圖3所示。如果板上的計算能力或者剩余的程序存儲空間不足以完成SHA-1 MAC計算,設計者可以采用DS2460 SHA-1協處理器,或將計算任務轉交給系統或網絡中最近的主機。協處理器還有另一個好處,可將系統密鑰存放在安全存儲器中,而不必存放在程序代碼內。
![圖3. 典型系統環境](/article/UploadPic/2009-5/20095984932743.gif)
圖3. 典型系統環境
嵌入式硬件/軟件授權管理
參考設計需要授權,并可能由第三方進行生產,需要防范非法使用程序代碼。考慮到收入原因,還有必要跟蹤和確認參考設計的使用次數。DS2432經過預先編程(在供給第三方制造商之前先裝入密鑰和存儲器設定值),可以輕松地滿足這些需求和提供更多功能。上電自檢時,參考設計(圖4)通過DS2432執行認證過程。只有具備有效密鑰的DS2432才能成功地返回有效MAC。如果檢測到無效MAC,處理器將采取相應的特定操作。這種方法還帶來另外一個好處,即可以通過DS2432安全存儲器的設定值有選擇地授權和使能參考設計的功能。(有關此概念的更多信息,見軟件功能管理一節。)
具有64位有效密鑰的DS2432可通過以下兩種安全方法提供給被授權者或第三方制造商:a) 由參考設計授權公司預先編程;或b) 由Maxim根據授權公司的輸入信息預先編程并供貨給第三方制造商。無論采用何種方法,供給被授權者或制造商的器件數量都是已知的,可據此收取授權許可費用。
![圖4. 認證參考設計](/article/UploadPic/2009-5/20095984933340.gif)
圖4. 認證參考設計
驗證硬件的合法性
驗證硬件的合法性時,需要考慮兩種情況(圖5):1) 克隆電路板完全拷貝固件/FPGA配置信息;以及2) 克隆系統主機。
![圖5. 硬件認證實例](/article/UploadPic/2009-5/20095984933856.gif)
圖5. 硬件認證實例
第一種情況下,固件/FPGA試圖認證克隆的電路板。克隆制造商要向用戶EEPROM寫入數據,必須向DS2432裝入密鑰。盡管這使數據看似正確,而密鑰在系統中卻是無效的。由于改動固件/FPGA極為復雜,為保持和主機兼容,必須精確拷貝原始固件/配置信息。如果在上電階段電路板執行DS2432質詢-響應認證過程,則DS2432產生的MAC與微控制器/FPGA計算出的MAC不同。MAC不匹配充分證明電路板是不合法的。系統與電路板之間執行質詢/響應過程可以檢測到該失配現象,并據此采取相應的特定操作。
第二種情況下,電路板試圖認證主機系統。電路板通過以下步驟驗證主機的身份:1) 產生質詢碼,由DS2432計算質詢-響應認證碼MAC;2) 向網絡主機發送計算MAC的相同輸入數據(當然不包括密鑰),主機根據這些數據和自己掌握的密鑰計算并返回質詢-響應認證碼MAC。如果二者產生的MAC相同,則電路板斷定主機是合法的。當然,如果DS2432和網絡主機有約定的話,也能獲得相同的MAC。
軟件功能管理
電子產品涵蓋手持式產品到安裝于機架上的單元。單元的尺寸越大,開發的成本越昂貴。為使成本得到有效控制,利用一些較小的子系統(電路板)來構建大型系統是非常有益的。通常,應用中并不需要子系統的所有功能。最具成本效益的作法不是去除這些功能,而是保持電路板不變,僅在控制軟件中禁用某些功能。但這種方法又會產生新的問題:如果聰明的客戶需要一些功能完備的系統,他可以只購買一套功能完備的單元和一些功能較少的單元。通過軟件拷貝,功能較少的單元就可以提供完備的功能,而價格卻更低,因此欺騙了系統供應商。
每個子系統電路板上的DS2432可以保護系統供應商免受這類欺騙。除了進行質詢-響應認證外,DS2432還可以在其用戶EEPROM內存儲獨立的配置信息。配置數據可防止非法篡改,系統供應商具有完全的控制權,這一點將在數據安全一節進一步闡述。配置信息可以存儲為位圖形式或代碼字形式,完全由系統設計者決定。根據實際需要,應盡可能簡單地設置配置信息。由于DS2432提供方便的1-Wire接口,設計者只需增加一個晶體管和一個探測點,如圖6所示。可以在電路板其它部分不上電的情況下,通過探測點向DS2432寫入配置信息。MOSFET將DS2432與其它電路隔離,當子系統正常工作時,也不會妨礙DS2432的正常訪問。
![圖6. 增加配置探測點](/article/UploadPic/2009-5/20095984933459.gif)
圖6. 增加配置探測點
該配置寫入方法還帶來另一個好處,系統在用戶現場安裝完畢后,允許進行遠程更新/更改。任何未用于配置/功能管理的用戶EEPROM均可采用電子標牌的形式實現電路板標識功能。該功能在應用筆記178:利用1-Wire產品標識印刷電路板中進行了詳細說明,此應用筆記178可從Maxim網站下載。
DS2432 1-Wire接口、1kb SHA-1安全存儲器的主要數據單元和數據流路徑如圖7所示。可以看到8字節密鑰和臨時存儲質詢碼的緩沖存儲器(暫存器)。前面未曾提及的數據單元包括獨一無二的器件ID號(標準1-Wire特性)、四個用戶EEPROM頁面、控制寄存器和系統常數。
器件ID用作1-Wire網絡中的節點地址,同時還用于認證過程。用戶存儲器存放待認證“信息”的主要部分。系統常數有助于滿足格式需求和完成填充功能,從而構成SHA-1計算的64字節輸入數據塊。控制寄存器執行特定的器件功能,例如可選的密鑰寫保護或EEPROM仿真模式;控制寄存器通常不參與認證過程。
![圖7. DS2432 SHA-1安全存儲器數據流模型](/article/UploadPic/2009-5/20095984934616.gif)
圖7. DS2432 SHA-1安全存儲器數據流模型
可毫無限制地讀取器件ID號和用戶EEPROM。并可完全讀/寫訪問緩沖存儲器。可以直接裝入密鑰,但永遠不能讀取它。改變用戶存儲器或寄存器的內容要求主機和從機(即DS2432)計算出相同的寫操作認證MAC,才可以打開緩沖存儲器至EEPROM的路徑。
取決于MAC結果的不同用途,DS2432 SHA-1引擎具有三種不同的工作方式。任何情況下,SHA-1引擎均接收64字節輸入數據,并計算出20字節MAC結果。不同之處在于輸入數據。作為安全系統的根本需求,主機必須要么知道、要么能夠計算出應用中有效/合法從器件的密鑰。
質詢-響應認證MAC
正如前面的應用示例所述,DS2432的主要功能是完成質詢-響應認證。主機發送一個隨機質詢碼,指示DS2432根據該質詢碼、密鑰、主機所選存儲器頁的數據、以及其它數據(這些數據共同構成信息)計算出響應MAC (見圖8)。
![圖8. 用于生成質詢-響應認證MAC](/article/UploadPic/2009-5/20095984934122.gif)
圖8. 用于生成質詢-響應認證MAC
DS2432完成計算后,將MAC回送給主機進行驗證。主機使用有效密鑰和DS2432所使用的相同信息數據重新進行MAC計算。如果該結果和DS2432給出的MAC是匹配的,則器件是合法的,因為只有合法的DS2432才能正確地響應質詢-響應過程。質詢碼是隨機數據這一點是非常重要的。如果質詢碼始終不變,很容易遭受一個利用有效、靜態、記錄和回放的MAC (不是使用認證DS2432實時算出的MAC)進行回放攻擊。
數據安全
除了提供從器件的認證功能外,同時強烈要求存放在器件中的數據是可信的。為實現這一點,DS2432的寫訪問是安全受限的。將數據從暫存器拷貝到EEPROM或控制寄存器之前,DS2432要求主機提供寫訪問認證MAC來證明其合法身份。DS2432根據暫存器中的新數據、密鑰、需要更新的存儲器頁數據、以及其它數據(圖9)計算該MAC。
合法主機知道密鑰并可計算出有效的寫訪問MAC。拷貝命令執行過程中收到主機MAC時,DS2432將其與自身計算的結果進行比較。只有當二者匹配時,數據才會從緩沖存儲器傳輸至目標EEPROM。當然,不能修改寫保護的存儲器頁,即使MAC是正確的。
![圖9. 用于計算寫訪問認證MAC的輸入數據](/article/UploadPic/2009-5/20095984934727.gif)
圖9. 用于計算寫訪問認證MAC的輸入數據
密鑰保護
DS2432的架構允許直接向器件裝入密鑰。可通過讀保護提供密鑰保護,如果需要,還可以采用寫保護提供密鑰保護,這將永遠不能改變密鑰。只要在設備制造現場訪問密鑰是安全和可控的,這種保護等級是很有效的。
可以采用不同方法提升密鑰保護等級: a) 由DS2432計算其密鑰;b) 由DS2432在不同場合分階段計算其密鑰;c) 計算密鑰時包含獨一無二的器件ID號,生成與器件相關的密鑰;d) 組合第2和第3種方法。
如果采用上面第1種方法,每個DS2432自己計算其密鑰,只知道計算密鑰的原始數據;永遠不會暴露密鑰本身。如果采用第2種方法,密鑰在不同場合分階段計算,只知道密鑰的“本地”原始數據。這種方法可有效控制“最終”密鑰的信息。如果密鑰是與器件相關的(第3種方法),主機還需要增加一個計算步驟。但如果一個器件的密鑰被意外發現,潛在危害卻可降至最低。如果密鑰分階段計算,并且與具體器件相關(第4種方法),可獲得最高保護等級。但是,為確保系統保密性,主機和從機一樣需要在不同地點進行設置。
計算密鑰之前,必須先裝入一個已知數值作為密鑰。有了這個已知密鑰,必須向四個存儲器頁之一寫入計算新密鑰的32字節數據。接下來,需要向DS2432的暫存器寫入一個局部密鑰。局部密鑰可以是用于計算的存儲器頁碼和獨一無二的器件ID號(CRC字節除外),或任何其它與應用相關的8字節數據。
如果指示DS2432計算密鑰,則DS2432啟動SHA-1引擎,使用圖10所示的輸入數據計算MAC。20字節MAC的最低8個字節自動拷貝到密鑰存儲器地址,立即成為有效密鑰。
![圖10. 計算密鑰的輸入數據](/article/UploadPic/2009-5/20095984934478.gif)
圖10. 計算密鑰的輸入數據
本文解釋了認證的概念,以及Maxim以安全存儲器形式提供加密控制和保護的方案,非常適合需要知識產權保護、HW/SW許可權管理、安全軟件功能與狀態設置、防篡改數據存儲等應用。
什么是認證?
認證是指兩個或多個實體之間建立身份認可的過程。單向認證情況下,一方需向另一方證明其身份的合法性。對于雙向認證,雙方需要彼此向對方證明自己的身份。最常用的認證方法是利用口令實現。使用口令的主要問題是應用中口令是暴露的,極易被探測。我們先來回顧一下加密的歷史應用,1883年弗蘭德斯語言學家Auguste Kerckhoffs發表了一篇關于軍事加密的文章,震驚了整個世界。Kerckhoffs講道,安全不應依靠隱匿性(例如非公開的保密算法),而應依靠算法及其密鑰的力量。如果安全受到破壞,Kerckhoffs認為,只需替換密鑰,而不是替換整個系統。
基于密鑰的認證過程如圖1所示:密鑰(私密)和需要認證的數據(“信息”)作為輸入,來計算信息認證碼,即MAC。MAC然后附加到信息上。信息接收方進行相同的運算,將MAC計算結果與隨信息一起收到的MAC比較。如果二者相同,則信息是合法的。
![圖1. 該MAC計算模型](/article/UploadPic/2009-5/20095984932356.gif)
圖1. 該MAC計算模型
但是,這種基本MAC計算模型也有一個弱點。非法者如果截取到信息,可隨后回放此信息,以仿冒合法身份。為克服這種固有的MAC弱點和證明MAC發送方的合法身份,接收方可產生一個隨機數,作為質詢碼回送給發送方。MAC發送方必須根據密鑰、信息和質詢碼重新計算新的MAC,并返回給接收方。如果對應任何質詢碼發送方都可產生有效的MAC,則可以確信發送方是知道密鑰的,其身份是合法的(圖2)。該過程就是質詢-響應認證。
![圖2. 質詢-響應認證過程](/article/UploadPic/2009-5/20095984932150.gif)
圖2. 質詢-響應認證過程
在加密學中,由信息產生固定長度MAC的算法稱為“單向”散列函數。單向表示從固定長度MAC輸出推演出較長的原始信息極為困難。相反,通過加密,加密的信息與原始信息是成正比的。
SHA-1是經過深入研究和國際認可的單向散列算法,由National Institute of Standards and Technology (NIST)開發。SHA-1已經發展成為國際標準ISO/IEC 10118-3:2004,算法的數學基礎是公開的,并可從NIST網站獲取。SHA-1算法的主要特點包括以下幾點:1) 不可逆性—從計算角度講,不可能從MAC推演出輸入信息;2) 抗沖突性—對于特定MAC,找到多于一種輸入信息是不現實的;3) 高雪崩效應―輸入的任何變化都會使MAC結果產生巨大的變化。基于這些原因以及對該算法的國際性研究,Maxim選擇SHA-1作為其安全存儲器的質詢-響應認證算法。
低成本安全認證—功能實現
DS2432 EEPROM內置SHA-1引擎,借助1-Wire接口,可以方便地加入到任何帶有數字處理能力的電路中,例如帶微控制器(μC)的電路。最簡單的情況下,僅僅需要一個空閑I/O引腳以及一個上拉電阻即可構成1-Wire接口,如圖3所示。如果板上的計算能力或者剩余的程序存儲空間不足以完成SHA-1 MAC計算,設計者可以采用DS2460 SHA-1協處理器,或將計算任務轉交給系統或網絡中最近的主機。協處理器還有另一個好處,可將系統密鑰存放在安全存儲器中,而不必存放在程序代碼內。
![圖3. 典型系統環境](/article/UploadPic/2009-5/20095984932743.gif)
圖3. 典型系統環境
嵌入式硬件/軟件授權管理
參考設計需要授權,并可能由第三方進行生產,需要防范非法使用程序代碼。考慮到收入原因,還有必要跟蹤和確認參考設計的使用次數。DS2432經過預先編程(在供給第三方制造商之前先裝入密鑰和存儲器設定值),可以輕松地滿足這些需求和提供更多功能。上電自檢時,參考設計(圖4)通過DS2432執行認證過程。只有具備有效密鑰的DS2432才能成功地返回有效MAC。如果檢測到無效MAC,處理器將采取相應的特定操作。這種方法還帶來另外一個好處,即可以通過DS2432安全存儲器的設定值有選擇地授權和使能參考設計的功能。(有關此概念的更多信息,見軟件功能管理一節。)
具有64位有效密鑰的DS2432可通過以下兩種安全方法提供給被授權者或第三方制造商:a) 由參考設計授權公司預先編程;或b) 由Maxim根據授權公司的輸入信息預先編程并供貨給第三方制造商。無論采用何種方法,供給被授權者或制造商的器件數量都是已知的,可據此收取授權許可費用。
![圖4. 認證參考設計](/article/UploadPic/2009-5/20095984933340.gif)
圖4. 認證參考設計
驗證硬件的合法性
驗證硬件的合法性時,需要考慮兩種情況(圖5):1) 克隆電路板完全拷貝固件/FPGA配置信息;以及2) 克隆系統主機。
![圖5. 硬件認證實例](/article/UploadPic/2009-5/20095984933856.gif)
圖5. 硬件認證實例
第一種情況下,固件/FPGA試圖認證克隆的電路板。克隆制造商要向用戶EEPROM寫入數據,必須向DS2432裝入密鑰。盡管這使數據看似正確,而密鑰在系統中卻是無效的。由于改動固件/FPGA極為復雜,為保持和主機兼容,必須精確拷貝原始固件/配置信息。如果在上電階段電路板執行DS2432質詢-響應認證過程,則DS2432產生的MAC與微控制器/FPGA計算出的MAC不同。MAC不匹配充分證明電路板是不合法的。系統與電路板之間執行質詢/響應過程可以檢測到該失配現象,并據此采取相應的特定操作。
第二種情況下,電路板試圖認證主機系統。電路板通過以下步驟驗證主機的身份:1) 產生質詢碼,由DS2432計算質詢-響應認證碼MAC;2) 向網絡主機發送計算MAC的相同輸入數據(當然不包括密鑰),主機根據這些數據和自己掌握的密鑰計算并返回質詢-響應認證碼MAC。如果二者產生的MAC相同,則電路板斷定主機是合法的。當然,如果DS2432和網絡主機有約定的話,也能獲得相同的MAC。
軟件功能管理
電子產品涵蓋手持式產品到安裝于機架上的單元。單元的尺寸越大,開發的成本越昂貴。為使成本得到有效控制,利用一些較小的子系統(電路板)來構建大型系統是非常有益的。通常,應用中并不需要子系統的所有功能。最具成本效益的作法不是去除這些功能,而是保持電路板不變,僅在控制軟件中禁用某些功能。但這種方法又會產生新的問題:如果聰明的客戶需要一些功能完備的系統,他可以只購買一套功能完備的單元和一些功能較少的單元。通過軟件拷貝,功能較少的單元就可以提供完備的功能,而價格卻更低,因此欺騙了系統供應商。
每個子系統電路板上的DS2432可以保護系統供應商免受這類欺騙。除了進行質詢-響應認證外,DS2432還可以在其用戶EEPROM內存儲獨立的配置信息。配置數據可防止非法篡改,系統供應商具有完全的控制權,這一點將在數據安全一節進一步闡述。配置信息可以存儲為位圖形式或代碼字形式,完全由系統設計者決定。根據實際需要,應盡可能簡單地設置配置信息。由于DS2432提供方便的1-Wire接口,設計者只需增加一個晶體管和一個探測點,如圖6所示。可以在電路板其它部分不上電的情況下,通過探測點向DS2432寫入配置信息。MOSFET將DS2432與其它電路隔離,當子系統正常工作時,也不會妨礙DS2432的正常訪問。
![圖6. 增加配置探測點](/article/UploadPic/2009-5/20095984933459.gif)
圖6. 增加配置探測點
該配置寫入方法還帶來另一個好處,系統在用戶現場安裝完畢后,允許進行遠程更新/更改。任何未用于配置/功能管理的用戶EEPROM均可采用電子標牌的形式實現電路板標識功能。該功能在應用筆記178:利用1-Wire產品標識印刷電路板中進行了詳細說明,此應用筆記178可從Maxim網站下載。
DS2432認證功能詳細說明
器件總體架構DS2432 1-Wire接口、1kb SHA-1安全存儲器的主要數據單元和數據流路徑如圖7所示。可以看到8字節密鑰和臨時存儲質詢碼的緩沖存儲器(暫存器)。前面未曾提及的數據單元包括獨一無二的器件ID號(標準1-Wire特性)、四個用戶EEPROM頁面、控制寄存器和系統常數。
器件ID用作1-Wire網絡中的節點地址,同時還用于認證過程。用戶存儲器存放待認證“信息”的主要部分。系統常數有助于滿足格式需求和完成填充功能,從而構成SHA-1計算的64字節輸入數據塊。控制寄存器執行特定的器件功能,例如可選的密鑰寫保護或EEPROM仿真模式;控制寄存器通常不參與認證過程。
![圖7. DS2432 SHA-1安全存儲器數據流模型](/article/UploadPic/2009-5/20095984934616.gif)
圖7. DS2432 SHA-1安全存儲器數據流模型
可毫無限制地讀取器件ID號和用戶EEPROM。并可完全讀/寫訪問緩沖存儲器。可以直接裝入密鑰,但永遠不能讀取它。改變用戶存儲器或寄存器的內容要求主機和從機(即DS2432)計算出相同的寫操作認證MAC,才可以打開緩沖存儲器至EEPROM的路徑。
取決于MAC結果的不同用途,DS2432 SHA-1引擎具有三種不同的工作方式。任何情況下,SHA-1引擎均接收64字節輸入數據,并計算出20字節MAC結果。不同之處在于輸入數據。作為安全系統的根本需求,主機必須要么知道、要么能夠計算出應用中有效/合法從器件的密鑰。
質詢-響應認證MAC
正如前面的應用示例所述,DS2432的主要功能是完成質詢-響應認證。主機發送一個隨機質詢碼,指示DS2432根據該質詢碼、密鑰、主機所選存儲器頁的數據、以及其它數據(這些數據共同構成信息)計算出響應MAC (見圖8)。
![圖8. 用于生成質詢-響應認證MAC](/article/UploadPic/2009-5/20095984934122.gif)
圖8. 用于生成質詢-響應認證MAC
DS2432完成計算后,將MAC回送給主機進行驗證。主機使用有效密鑰和DS2432所使用的相同信息數據重新進行MAC計算。如果該結果和DS2432給出的MAC是匹配的,則器件是合法的,因為只有合法的DS2432才能正確地響應質詢-響應過程。質詢碼是隨機數據這一點是非常重要的。如果質詢碼始終不變,很容易遭受一個利用有效、靜態、記錄和回放的MAC (不是使用認證DS2432實時算出的MAC)進行回放攻擊。
數據安全
除了提供從器件的認證功能外,同時強烈要求存放在器件中的數據是可信的。為實現這一點,DS2432的寫訪問是安全受限的。將數據從暫存器拷貝到EEPROM或控制寄存器之前,DS2432要求主機提供寫訪問認證MAC來證明其合法身份。DS2432根據暫存器中的新數據、密鑰、需要更新的存儲器頁數據、以及其它數據(圖9)計算該MAC。
合法主機知道密鑰并可計算出有效的寫訪問MAC。拷貝命令執行過程中收到主機MAC時,DS2432將其與自身計算的結果進行比較。只有當二者匹配時,數據才會從緩沖存儲器傳輸至目標EEPROM。當然,不能修改寫保護的存儲器頁,即使MAC是正確的。
![圖9. 用于計算寫訪問認證MAC的輸入數據](/article/UploadPic/2009-5/20095984934727.gif)
圖9. 用于計算寫訪問認證MAC的輸入數據
密鑰保護
DS2432的架構允許直接向器件裝入密鑰。可通過讀保護提供密鑰保護,如果需要,還可以采用寫保護提供密鑰保護,這將永遠不能改變密鑰。只要在設備制造現場訪問密鑰是安全和可控的,這種保護等級是很有效的。
可以采用不同方法提升密鑰保護等級: a) 由DS2432計算其密鑰;b) 由DS2432在不同場合分階段計算其密鑰;c) 計算密鑰時包含獨一無二的器件ID號,生成與器件相關的密鑰;d) 組合第2和第3種方法。
如果采用上面第1種方法,每個DS2432自己計算其密鑰,只知道計算密鑰的原始數據;永遠不會暴露密鑰本身。如果采用第2種方法,密鑰在不同場合分階段計算,只知道密鑰的“本地”原始數據。這種方法可有效控制“最終”密鑰的信息。如果密鑰是與器件相關的(第3種方法),主機還需要增加一個計算步驟。但如果一個器件的密鑰被意外發現,潛在危害卻可降至最低。如果密鑰分階段計算,并且與具體器件相關(第4種方法),可獲得最高保護等級。但是,為確保系統保密性,主機和從機一樣需要在不同地點進行設置。
計算密鑰之前,必須先裝入一個已知數值作為密鑰。有了這個已知密鑰,必須向四個存儲器頁之一寫入計算新密鑰的32字節數據。接下來,需要向DS2432的暫存器寫入一個局部密鑰。局部密鑰可以是用于計算的存儲器頁碼和獨一無二的器件ID號(CRC字節除外),或任何其它與應用相關的8字節數據。
如果指示DS2432計算密鑰,則DS2432啟動SHA-1引擎,使用圖10所示的輸入數據計算MAC。20字節MAC的最低8個字節自動拷貝到密鑰存儲器地址,立即成為有效密鑰。
![圖10. 計算密鑰的輸入數據](/article/UploadPic/2009-5/20095984934478.gif)
圖10. 計算密鑰的輸入數據
評論