確保物聯網時代的SoC安全性

作者 : Yash Saini、Arun Jain/恩智浦半導體(NXP,原Freescale India)

在物聯網時代,安全性已經成為系統單晶片(SoC)最重要的一部分;安全的SoC為系統(包括硬體和軟體)提供認證、機密性、完整性、不可複製性和存取控制…

在物聯網(IoT)時代,安全性已經成為系統單晶片(SoC)最重要的一部分;安全的SoC為系統(包括硬體和軟體)提供認證、機密性、完整性、不可複製性和存取控制;以下將探討開發安全系統的一些架構技術。

一般來說,安全的SoC需要四個關鍵功能:安全啟動(secure booting)、安全記憶體、運作時資料完整性(run time data integrity)校驗,以及一個中央安全性漏洞回應(central security breach response)。

安全啟動

從安全性的角度來看,啟動是SoC最重要且最脆弱的部分;如果駭客能夠控制SoC的啟動過程,就能繞過所有其他安全措施進行非法存取;SoC架構師開發了多種技術,在SoC啟動過程中提供安全保障。

將控制從硬體傳送到軟體的連動(linkage)是駭客最喜歡攻擊的一個目標點;安全啟動是一種滴水不漏的技術,可保障此種連動的安全;信任鏈(Chain-of-Trust)則是用來實現安全啟動的經典技術。信任鏈被設想為一種安全的實作,在其多個階段可使用可信任/經認證的硬體和軟體;如果SoC選擇部署安全啟動,在每個啟動階段,它會認證將執行的下一階段。

安全啟動從可信任實體(錨點)開始,晶片硬體啟動序列和BootROM是製作於晶片中的可信任實體,因此幾乎不可能更換硬體(可信任實體)而仍擁有功能性SoC。每個連續階段的驗證程序用以創建如圖1所示的信任鏈。

[20160523 SoC TA 01FIG1]

圖1 建立信任鏈


第一階段表示執行硬體重置序列,以簡化SoC的啟動;此外,該序列傳送對可信任實體BootROM的控制。第二階段表示執行BootROM以及對使用者應用軟體進行認證;認證是產生一個獨特應用程式圖像簽名的過程,並且與一個儲存在SoC中完全相同的金牌簽名匹配。第三階段表示執行使用者應用軟體。

第二階段的完成確保使用者應用軟體是可信任的,如果使用者應用程式被非法修改,它的認證會在第二階段失敗,因此也不能執行第三階段。

安全記憶體

SoC的記憶體可安全地保存加密金鑰、獨特ID、密碼等等敏感性資料。該記憶體可以劃分成多個區塊,每個區塊都有一套不同的存取控制(圖2),根據區塊中所儲存資料的特性而將之指定為安全敏感性或非敏感性。

內含敏感性資料的記憶體也稱為安全記憶體,當存在安全性漏洞(如篡改檢測、ECC操縱等)的情況下,安全敏感性區域的內容可以由控制器本身抹除,而非敏感性區域的內容則保持不變;此類記憶體控制器稱為安全記憶體控制器。

[20160523 SoC TA 01FIG2]

圖2 記憶體可以劃分為多個區塊,每個區塊各自有一套不同的存取控制。


運作時資料完整性校驗

運作時資料完整性校驗用來確保運作執行過程中週邊記憶體內容的完整性;安全啟動序列生成了參考檔案,此檔案包含安全記憶體中所儲存的單個記憶體模組內容的散列值(hash value)。在運作模式中,完整性校驗器讀取記憶體模組的內容、等待指定時間段,然後讀取另一個記憶體模組的內容。在這一過程中,此校驗器還計算記憶體模組的散列值,比較它們與啟動過程中生成的參考檔內容(圖3)。

如果兩個散列值不匹配,校驗器則向中央單元(central unit)報告安全入侵,此中央單元根據安全性原則決定要採取的措施;如果散列值匹配,完整性校驗器啟動並驗證後續記憶體模組的內容。繼續這一過程,直到SoC開始運作。完整性校驗器的掃描速率應當是可配置的,因此使用者可以實現記憶體模組驗證速率和記憶體頻寬利用率之間的平衡。

[20160523 SoC TA 01FIG3]

圖3 運作時資料完整性校驗用來確保運作時執行過程中週邊記憶體內容的完整性。


中央安全性漏洞回應單元

這個硬體模組可以被視作軟體入侵、電壓篡改等安全相關事件的SoC中央報告單元。借助此安全相關的事件資訊,安全性漏洞回應單元(Security Breach Response Unit)可以確定SoC的下一階段;此單元的運作可透過圖4的狀態機做最佳詮釋。

[20160523 SoC TA 01FIG4]

圖4 安全性漏洞回應單元


安全性漏洞回應單元監控安全入侵;如果硬體探測器報告入侵(如電壓、頻率和溫度監測器),回應單元將SoC的狀態移動到非安全狀態。非安全狀態以區別於安全狀態的某些限制為特徵,向回應單元報告的任何進一步安全性漏洞,將讓SoC轉為故障狀態(Fail State),即非功能性狀態。SoC在啟動重置(power-on-reset)指令發出前將維持故障狀態。

在這裡應注意的是,對安全入侵的回應可按照軟體策略來執行;例如,軟體可以配置某些入侵為非致命,因此這些入侵將不會導致SoC轉為非安全或故障狀態。 這種可配置性可滿足SoC不同應用的安全需求。SoC狀態資訊可傳遞給SoC的其他安全敏感性區塊,例如可感測狀態並保護敏感性資料的安全記憶體控制器。

結語

SoC安全性對IoT連網裝置的安全與可靠運作至關重要;同樣的功能不僅能使SoC執行它們的任務,也能讓它們能識別並處理威脅。而且幸運的是,這並不需要革命性的方法,只需要現有架構的演進。

想知道更多物聯網&嵌入式系統關鍵技術?快來免費參加Tech Taipei研討會!

掃描或點擊QR Code立即加入 “EETimes技術論壇” Line 社群 !

 EET-Line技術論壇-QR

發表評論