《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > 互聯(lián)環(huán)境中的安全存儲器

互聯(lián)環(huán)境中的安全存儲器

2020-03-26
作者:Cliff Zitlaw、Sergey Ostrikov
來源:Cypress

  等線嵌入式系統(tǒng)越來越普遍地采用云技術來進行數(shù)據(jù)采集、事件檢測和軟件更新。這些遠程物聯(lián)網(wǎng)設備普遍通過固件完成設置,這些固件有可能存儲在主機MCU中,也有可能存儲在外置非易失性存儲器的用戶空間中。而這些非易失性存儲器中的內(nèi)容則是惡意攻擊的主要對象。對于所有全新開發(fā)的物聯(lián)網(wǎng)設備來說,采取應對措施防止非易失性存儲器的非授權修改,已成為一項基本的設計要求。

圖片1.png

  圖 1 - 作為節(jié)點的互聯(lián)嵌入式系統(tǒng)

  本文將對分立閃存存儲器領域開始涌現(xiàn)的加密和安全基礎設施進行介紹,并探討如何將這些新特性用于物聯(lián)網(wǎng)互聯(lián)設備的安全保障。

新一代安全NOR閃存產(chǎn)品

  NOR閃存制造商已經(jīng)開發(fā)出了一些NOR閃存產(chǎn)品,這些產(chǎn)品通過集成加密基礎設施,能夠提供高水準安全性。設備配對(主機MCU和NOR閃存)與認證寫入(編程與擦除)操作已通過使用對稱加密來實現(xiàn)。這些設備通常都是基于HMAC引擎和非易失性累加計數(shù)器。在配置過程中,需要先將對稱密鑰同時加載到主機MCU和安全NOR閃存器件中,以便在正常操作時執(zhí)行經(jīng)認證的讀寫操作。

圖片2.png

  圖 2 - 采用集成加密的新一代NOR閃存器件(使用串行外設接口)

  最近,內(nèi)部NOR閃存基礎設施的發(fā)展已經(jīng)超出了內(nèi)部狀態(tài)機實際管理的范疇。較新型設備集成了CPU子系統(tǒng)(CPUSS),能夠執(zhí)行透明負載均衡和壞塊替換等高級功能。一旦CPU子系統(tǒng)成為閃存器件基礎設施的組成部分,那么增添加密硬件塊和數(shù)據(jù)包緩存的想法就能很快成為現(xiàn)實。通過使用這種全新的基礎存儲器件,就能夠開發(fā)出一系列安全功能,從而為加密安全提供支持。在NOR閃存領域,用戶存儲陣列的訪問控制和執(zhí)行前的分層代碼驗證是得到大量關注的兩個特性。

將用戶存儲空間劃分為安全區(qū)域

  較新型NOR器件的用戶存儲空間能夠劃分成多個區(qū)域,每個區(qū)域可以單獨配置,用于傳統(tǒng)(非安全)訪問或安全訪問。配置為安全訪問的區(qū)域能夠設定為受控讀/寫訪問或認證訪問。

  配置為受控訪問的安全區(qū)域能夠獨立啟用或禁用讀/寫操作。啟用/禁用設置由認證序列(需要主機MCU證明其知曉共享密鑰)進行管理。在制造過程中,共享密鑰將被同時加載到主機MCU和存儲器。試圖訪問禁用區(qū)域的讀或?qū)憣⒃谧x取期間返回未定義數(shù)據(jù),并且寫入嘗試將會被阻斷。配置為受控訪問狀態(tài)的區(qū)域可以選擇配置成加電讀/寫訪問狀態(tài)。例如,可以將啟動區(qū)域配置為加電時可讀不可寫,而將其余區(qū)域配置為禁用所有讀/寫訪問。

  此外,安全區(qū)域也可以配置為只支持經(jīng)認證的讀寫訪問。認證區(qū)域不支持傳統(tǒng)讀寫。認證讀寫操作是通過數(shù)據(jù)包傳輸來執(zhí)行的,其中包含HMAC,表示知曉共享密鑰和非易失性命令累加計數(shù)器值。在訪問請求中使用命令累加計數(shù)器能防范重放攻擊。

圖片3.png

  圖3 - 用戶陣列的安全分區(qū)

軟件層之間的安全性

  此外,分層驗證軟件也成為安全環(huán)境中的常見做法??尚庞嬎憬M織的設備身份合成引擎(DICE)工作組已發(fā)布一項策略,即每層代碼在釋放控制前都需要向下一層代碼進行證實。當主機MCU無法集成可編程存儲器時,系統(tǒng)級場景會變得更加復雜。從NOR閃存CPUSS ROM開始(推定為可信),分立閃存器件開始支持DICE策略的變化。

  NOR閃存CPUSS ROM在加電重置(PoR)時執(zhí)行,在將代碼執(zhí)行移交給CPUSS閃存前,先驗證其捕獲的閃存器件啟動代碼(在CPUSS閃存內(nèi),未暴露給用戶陣列)是否完整。完成這種DICE 0層復合器件識別符(CDI)計算需要結合使用唯一的器件密鑰(對每個閃存器件有唯一性),以及對駐留在0層中的閃存器件啟動代碼的測量值。

  國際標準文檔NIST SP800-56C介紹了在CDI計算中使用的可接受的加密單向函數(shù)。唯一器件密鑰用于0層CDI計算。0層CDI驗證將計算值與NOR制造商提供的存儲在片上的預期值進行比較。

  在確認CPUSS閃存有效后,代碼執(zhí)行就從ROM啟動代碼傳遞到(0層)CPUSS閃存器件啟動代碼。接下來,NOR器件將驗證由系統(tǒng)制造商編程到用戶陣列中的系統(tǒng)級啟動代碼。測得的系統(tǒng)級啟動代碼值將被用于與器件配置過程中存儲在片上的預期值進行比較。這兩步驗證發(fā)生在閃存器件運行其PoR序列的過程中,在可供主機MCU訪問之前。請注意,在整個啟動過程中,務必確保CDI值不被暴露給更高層的代碼,當然還有惡意行為者。

圖片4.png

  圖4 - 安全軟件分層

  在完成閃存器件PoR序列的執(zhí)行后,系統(tǒng)級啟動代碼將會暴露給主機MCU供其執(zhí)行。在確認系統(tǒng)級啟動代碼的真實性后,系統(tǒng)啟動流程能夠繼續(xù)運行。分層驗證策略還能繼續(xù)執(zhí)行,方便主機CPU對每個新軟件層的驗證工作進行管理。

  圖4描繪了從閃存啟動代碼到用戶應用的線性推進過程。實際情況很可能復雜得多,尤其是在程序控制權被移交給操作系統(tǒng)后。請注意,一旦系統(tǒng)級啟動代碼取得程序控制權,每個后續(xù)層的證實值都能夠與本地值(存儲在閃存器件中)進行比較,或更理想的話,還能夠與遠程駐留(可能是云服務器)值進行比較。如果使用DICE規(guī)范中規(guī)定的數(shù)字證書,遠程驗證的安全性還能進一步提高。

結論

  片上加密基礎模塊顯著緩解了傳統(tǒng)非易失性存儲器的受到的安全威脅。反克隆問題能夠通過主機MCU與閃存存儲器之間的設備配對得到解決。使用陣列分區(qū)和可配置訪問權限能夠處理非授權訪問。通過可信計算組織制定的DICE策略,解決了惡意篡改代碼的檢測和恢復問題。集成在新型閃存存儲器中的加密功能模塊成功地解決了傳統(tǒng)系統(tǒng)中存在的大量安全漏洞,說明外置Flash架構能夠解決未來可能出現(xiàn)的安全問題。


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