SOGO論壇
標題:
利用SHA-256主/從認證系統增強安全性
[列印本頁]
作者:
old2009
時間:
2014-8-23 14:14:29
標題:
利用SHA-256主/從認證系統增強安全性
近十年來,SHA-1安全認證一直作為防偽以及預防非法竊取智慧財產權(IP)的有力武器。但是現在,隨著資訊處理技術進步,工程師亟需更高層級的安全性。基於這一需求,安全認證器與安全協同處理器晶片均建置SHA-256安全認證。這項新技術提供先進的實體安全性,實現無與倫比的低成本IP保護、避免複製以及週邊設備認證技術。
安全認證系統
建置安全認證系統需要利用感測器/週邊設備模組連接主機系統。圖1所示的系統由SHA-256安全認證器和SHA-256安全協同處理器組成。主機透過工業標準I2C匯流排與認證器和協同處理器進行通訊。
SHA-256安全認證系統
圖1:SHA-256安全認證系統採用DeepCover DS2465 SHA-256協同處理器和DeepCover DS28C22認證器。
SHA-256安全認證器
該系統的SHA-256安全認證器支援256位元質詢,採用256位元密鑰。圖1所示認證器為I2C從機,具有唯一64位元ROM ID,作為安全認證運算的基本資料單元。系統設計者可將3Kb用戶EEPROM劃分為開放(無保護)存取的區域、主控制器必須經授權的寫入存取區域、涉及資料加密的讀取/寫入區域。可結合安全認證進行加密,進一步提高資料安全性。表1所示為可用的保護模式。系統預設設置:缺少RP、WP、EM、AP和EP,就無法啟動系統。RP/WP/EM/AP/EP等安全保護具有累加性。
表1:安全認證保護選項
表1:安全認證保護選項
SHA-256安全協同處理器
圖1所示的SHA-256安全協同處理器可使主處理器無需參與SHA-256運算。更重要的是,安全協同處理器內建保護記憶體,可安全儲存主密鑰。保留附加記憶體以儲存、保護用於運算唯一從屬密鑰的其它資料單元。從主機端來看,SHA-256安全協處理器為256位元組讀取/寫入記憶體,針對特殊目的分配特定區域(資料單元)。
安全邏輯
基於SHA的安全性取決於由公開資料與密鑰運算得到的資訊驗證碼(MAC)。為了確保安全驗證,兩造(即主機或協同處理器和認證器)必須知道「永不洩露」的密鑰。此外,為了實現最大程度的安全性,每個認證器中的密鑰必須是獨一無二的。按照這種方式,一旦某個認證器的密鑰受到威脅,也不至影響整個系統的安全性。
乍看之下,似乎沒有辦法達到這些目標。但我們採用了一個簡單的解決途徑,即利用一些已知‘資料來源’運算密鑰,然後在受信任/受控制的生產環境下將其安裝到安全認證器中。用於運算唯一安全認證密鑰的資料來源包括:主密鑰、綁定資料、部份密鑰、安全認證器的ROM ID,以及填充/格式化符號(‘其它資料’),過程如圖2所示。儘管資料來源在某個時間點是公開的,例如在受信任的生產環境,但運算得到的密鑰永遠不會暴露,始終是隱蔽的。
產生唯一的密鑰。
圖2:產生唯一的密鑰。
出於安全性和儲存空間的考慮,系統中所有安全記憶體的唯一密鑰不能儲存在安全協同處理器或主機中;協同處理器僅在受保護的記憶體部份儲存主密鑰和綁定資料。部份密鑰是系統常數,可在主處理器的韌體中編碼並公開交換。在讀取認證器的ROM ID後,協同處理器即可運算唯一密鑰,如圖2所示。等到認證器和協同處理器共用唯一密鑰,系統即可進行工作。
質詢-應答安全認證
安全認證的主要目的是驗證所連接的對象真實有效。基於對稱密鑰的認證方法將密鑰和待驗證資料(資訊)作為輸入以運算MAC。主機利用預先制訂的密鑰和相同資訊資料執行相同的運算,然後將運算所得的MAC與從安全認證器接收到的MAC進行比較。如果兩個MAC完全相同,則說明安全認證器是系統的一部份。
在這種SHA-256認證系統中,資訊是主機質詢和安全認證器中儲存資料單元的組合。質詢基於隨機數據,這一點至關重要,如果質詢從未發生變化,則會導致攻擊者記錄並重播有效的靜態MAC,取代即時運算MAC。
安全認證器利用質詢、密鑰、記憶體資料及附加資料運算一個MAC(圖3)。如果安全認證器能夠為任何質詢碼產生的有效MAC,則可以認為其已知密鑰並被視為可靠。
運算質詢-應答安全認證MAC。
圖3:運算質詢-應答安全認證MAC
安全認證寫入作業
除了有效驗證以外,多數系統還需要確保安全認證器中儲存的資料可信度。出於這一考慮,可對安全認證器中的部份或全部EEPROM進行‘安全保護’。如果啟動安全保護,在執行記憶體寫入作業時,要求主機向安全認證器提供主機安全認證MAC,證明其有效性(圖4)。
驗證寫入接取作業(主機安全認證MAC)
圖4:驗證寫入接取作業(主機安全認證MAC)
主機安全認證MAC是利用新的記憶體資料、既有記憶體資料、安全認證器的唯一密鑰以及ROM ID及其附加資料運算所取得的。安全認證器按照相同方式運算MAC。
合法主機重建安全認證器的密鑰,能夠產生有效的防寫入MAC。接收到來自主機的MAC時,安全認證器將其與自身的運算結果進行比較。只有兩個MAC相匹配時,才允許將資料寫入EEPROM。即使MAC正確,也不能更改受到寫入保護的使用者儲存區域。
加密讀寫作業
DS28C22安全認證器不僅具備普通的SHA-256安全認證功能,始終不會暴露密鑰,甚至可以配置成在記憶體讀取/寫入作業期間也不至於暴露其儲存資料。這種增強保護方案是透過在傳輸期間對資料進行加密實現的。在晶片內部,以確定方式儲存資料,以滿足安全認證的需要。
寫入作業加密採用一次戳記(OTP)、安全認證器的密鑰、安全認證器的部份ROM ID以及其它資料(填充、格式化符號以及資料位址相關的資料)。如圖5所示,這些資料單元組成一項訊息,根據SHA-256演算法對其進行處理得到的資訊驗證程式碼為OTP。主機將新記憶體資料與OTP中對應的資料進行XOR運算,然後發送至安全認證器。安全認證器再次執行XOR運算,重建EEPROM中程式設計原始資料。主機提供加密種子,種子應為亂數。按照這種方式,即使主機重複寫入相同的資料,對於I2C匯流排上的竊聽者,加密後的資料每次都不同。
加密寫入作業。
圖5:加密寫入作業。
讀取作業加密類似於寫入作業加密。儘管訊息的資料單元實質上是相同的,但「其它資料」存在差異,使得讀取作業OTP不同於寫入作業OTP,即使其它資料來源完全相同。如圖6所示,安全認證器讀取使用者記憶體中的資料,將其與OTP進行XOR運算,使主機能夠對其進行讀取作業。然後主機利用其自身的OTP執行XOR運算。如果主機能夠運算得到用於加密的安全認證器密鑰和OTP,XOR運算步驟將成功解密資料。同樣地,主機提供加密種子,種子應為亂數。現在,即使主機重複讀取相同的資料,對於I2C匯流排上的竊聽者,資料每次都不同。
加密讀取作業。
圖6:加密讀取作業。
加密認證寫入作業
加密寫入作業無法防止未知安全認證器密鑰的主處理器對記憶體進行寫入作業,儘管實際寫入記憶體的資料無用。當然,破壞者可惡意耗盡記憶體,以此損害安全認證器。為防止發生以上現象,設置為加密的記憶體區域應在初始寫入作業後採取防寫或安全認證保護,只有合法主機可更改記憶體資料。
加密認證寫入作業包括兩步:第一步中,主機按圖5所示對新資料進行加密,然後將其送至安全認證器;第二步中,主機按圖4所示運算寫入作業安全認證MAC,然後將其送至安全認證器。相對於沒有加密的安全認證寫入作業,現在是根據已有加密記憶體資料和加密後的新資料運算得到MAC。
密鑰保護
安全認證器的密鑰和安全協同處理器的主密鑰透過硬體設計進行讀取保護。如果需要,密鑰可採取防寫,防止利用已知密鑰代替未知密鑰來篡改安全認證器的資料。綁定資料一般儲存在協同處理器的記憶體內,應在安裝之後進行讀保護。只要在受信任的生產環境下針對應用設置協同處理器和安全認證器,這種等級的保護就非常有效。
DeepCover終極安全
Maxim Integrated的DeepCover技術提供強大、經濟的保護方案,可防止試圖偵測密鑰的晶片級攻擊。DeepCover技術包括多種監測晶片級篡改事件的主動電路,採用先進的晶片級佈線、佈局技術,以及專利技術,有效抵禦各種攻擊性作業。
雙向安全認證
該系統的密鑰認證支援質詢-應答安全認證和防寫入作業(主機安全認證)。整個用戶記憶體適用於質詢-應答安全認證,雙向安全認證適用於儲存安全資料(安全認證寫入作業)的記憶體區域。資料加密不妨礙質詢-應答安全認證。始終利用用戶EEPROM中的未加密資料運算安全認證MAC。
結語
SHA-256的密鑰、質詢和MAC均為256位元,相對於原來的SHA-1安全認證方案有了顯著改進。目前最新的安全認證系統可針對主機系統(具有SHA-256協同處理器的主控制)與感測器/週邊設備模組(SHA-256安全認證器)的匹配性進行驗證。這使得SHA-256安全認證的建置方案比以往都更大幅簡化。
歡迎光臨 SOGO論壇 (https://oursogo.com/)
Powered by OURSOGO.COM