無論用做獨(dú)立的處理單元,或者與輔助處理器聯(lián)合使用,SoC FPGA器件均可以改善嵌入式處理的安全性。雖然可以利用專用安全器件來構(gòu)建嵌入式處理器模塊,實(shí)施監(jiān)測和靜態(tài)密匙存儲,然而,整合系統(tǒng)關(guān)鍵功能的SoC FPGA器件若能提供安全特性,便可以提供更大的安全性、靈活性和更好的性能。
在嵌入式設(shè)計(jì)中,Linux日益流行。隨著32位計(jì)算成為常見商品,Yocto等項(xiàng)目使得用于嵌入式應(yīng)用和基于Linux的系統(tǒng)的創(chuàng)建、開發(fā),以及維護(hù)變得更加容易,使得Linux系統(tǒng)的流行性可能會進(jìn)一步增長。Linux使得OEM廠商變得更像初創(chuàng)企業(yè),其靈活的硬件開發(fā)團(tuán)隊(duì)通過使用操作系統(tǒng)來提取底層的硬件細(xì)節(jié),可以加快上市速度。盡管Linux系統(tǒng)具有優(yōu)勢,然而,如果沒有合適的方法來啟動(dòng)其嵌入式處理器,便會易于受到rootkit攻擊,對于將會創(chuàng)建數(shù)十億個(gè)新的潛在不安全端點(diǎn)的新興物聯(lián)網(wǎng)來說,Rootkit特別構(gòu)成重大威脅。
一般而言,rootkit試圖接入特權(quán)(根)模式,同時(shí)躲避系統(tǒng)惡意軟件檢測工具。惡意軟件也可能試圖通過修改系統(tǒng)的啟動(dòng)過程,把自己安裝系統(tǒng)以進(jìn)入持久狀態(tài)。如果成功,惡意軟件感染便是永久的,或者通過上電循環(huán)持續(xù),自此便可以為所欲為,包括記錄擊鍵、形成僵尸網(wǎng)絡(luò)、收集個(gè)人信息,以及實(shí)施未經(jīng)授權(quán)的服務(wù)。一旦系統(tǒng)受到感染,可能需要重新安裝整個(gè)操作系統(tǒng)。
問題從嵌入式處理器開始,其啟動(dòng)通常如圖1所示。在上電時(shí),片上ROM將從外部非易失性存儲器取得啟動(dòng)加載程序。啟動(dòng)加載程序是專用的,并且在啟動(dòng)期間對處理器進(jìn)行配置以滿足特定的應(yīng)用需求。時(shí)鐘、緩存、存儲器控制器,以及外設(shè)均進(jìn)行配置。一旦處理器完成初始化,就從外部非易失性存儲器取得應(yīng)用程序,有時(shí)進(jìn)行解壓縮,并且復(fù)制到應(yīng)用程序開始之處的快速外部易失性存儲器,讓程序開始運(yùn)行。
圖1 嵌入式啟動(dòng)過程
在啟動(dòng)過程中,惡意軟件有機(jī)會試圖修改嵌入式系統(tǒng)的啟動(dòng)程序bootloader。如圖2所示為嵌入式Linux系統(tǒng)的典型框圖,UBOOT、Linux內(nèi)核和應(yīng)用程序?qū)泳鎯υ谝子谧x取的非易失性存儲器中。
圖2 嵌入式Linux系統(tǒng)
保護(hù)啟動(dòng)過程的唯一方法,是使用一個(gè)確信它始終以預(yù)期方式運(yùn)行的組件來提供保護(hù)。作為系統(tǒng)組件,這種信任根(root-of-trust)支持了系統(tǒng)、軟件和數(shù)據(jù)完整性和保密性的校驗(yàn),以及內(nèi)部和外部實(shí)體的信任擴(kuò)展。這是創(chuàng)建所有其它安全層的基礎(chǔ),它的密匙必須一直保密,而且之前的啟動(dòng)過程不可改變,這是十分重要的。在嵌入式系統(tǒng)中,信任根與其它系統(tǒng)組件共同工作,以期確保只有經(jīng)過授權(quán)的代碼來安全地啟動(dòng)主處理器,從而將信任域擴(kuò)展到處理器及其應(yīng)用。通過使用加密技術(shù),可以擴(kuò)展信任域以涵蓋所有重要的系統(tǒng)組件,甚至通過本質(zhì)上不安全的網(wǎng)絡(luò)將數(shù)個(gè)信任系統(tǒng)捆綁在一起。
雖然許多較新的處理器具有支持安全啟動(dòng)的專門特性,然而處理器芯片安全啟動(dòng)的固有支持遠(yuǎn)不普及,通常需要一個(gè)多芯片解決方案。一個(gè)更好的解決方案是基于閃存工藝的FPGA器件,它們可以在多芯片嵌入式系統(tǒng)中提供最佳的信任根器件,顯著提升主嵌入式處理器所運(yùn)行的代碼的可信性。
基于閃存工藝的解決方案本質(zhì)上更加安全(它們一經(jīng)編程,關(guān)鍵的信息永不丟失),而且今天基于閃存工藝的 SoC FPGA解決方案還具有數(shù)項(xiàng)附加的先進(jìn)安全特性,包括片上振蕩器、用于加密服務(wù)的加速器、安全密匙存儲、真正隨機(jī)數(shù)發(fā)生器、在安全的嵌入式Flash memory(eNVM)中的片上啟動(dòng)代碼存儲,以及使能外部處理器高速安全啟動(dòng)的高速串行外設(shè)接口(SPI)。這些器件還具有超越較早期解決方案的更強(qiáng)大的設(shè)計(jì)安全性,并且包含抵御差異化功率分析(DPA)技術(shù)的防篡改措施。結(jié)合嵌入式Linux CPU,它們能夠有效地用于防止惡意軟件試圖修改嵌入式系統(tǒng)的啟動(dòng)程序。
圖3所示為可以用于安全啟動(dòng)的基于閃存工藝的SoC示例,美高森美SmartFusion2 SoC器件中的eNVM用于存儲UBOOT,其FPGA架構(gòu)則實(shí)現(xiàn)高速的SPI接口。CPU并不知悉SoC位于其和SPI閃存之間。在上電時(shí),SoC將UBOOT的SPI讀取請求從內(nèi)部eNVM導(dǎo)向CPU,而后,CPU經(jīng)過正常的UBOOT啟動(dòng)過程,并且從外部SPI閃存取得應(yīng)用鏡像的剩余部分,在后一個(gè)階段中,SoC用作外部存儲器的管道,并且將應(yīng)用鏡像傳送給CPU。SoC及其內(nèi)部eNVM僅可使用經(jīng)過認(rèn)證的加密位流進(jìn)行編程,這一位流僅可由SoC的FPGA開發(fā)環(huán)境來建立。位流文件格式是專有的,并且不提供給任何人,并且具有從Cryptography Research Incorporated(現(xiàn)為Rambus)授權(quán)許可的專利保護(hù)措施,可以抵御DPA側(cè)道攻擊。換句話說,惡意軟件試圖寫入快閃的唯一途徑是具有設(shè)計(jì)用于該SoC并備有合適的加密和用戶定義密匙的位流。
圖3 SmartFusion2器件用于存儲UBOOT
為了確保安全的多級啟動(dòng),在提供和執(zhí)行代碼之前必須先進(jìn)行驗(yàn)證,這是必不可少的,這可確保不會出現(xiàn)攪亂或損壞各階段的啟動(dòng),并且可以使用對稱或非對稱密匙加密技術(shù)來進(jìn)行。更好的是,使用對前一個(gè)階段的連續(xù)反饋來確認(rèn)在啟動(dòng)加載期間沒有發(fā)生篡改。如果所有的防篡改(AT)監(jiān)測器確認(rèn)環(huán)境安全,隨后的各個(gè)階段便可以繼續(xù)執(zhí)行。
今天的SoC FPGA可以獨(dú)立提供運(yùn)行時(shí)間監(jiān)測和校正行動(dòng),有需要時(shí)也可以提供懲罰。為了這樣做,所有的應(yīng)用程序代碼將存儲在SPI快閃中,而且可加密。SoC器件將在每個(gè)階段對代碼進(jìn)行真實(shí)性檢查和解密 (如果需要),并且通過MPU-to-FPGA SPI接口進(jìn)行請求時(shí),把它們饋入主MPU。為了增加安全性,啟動(dòng)加載程序代碼將會存儲在SoC FPGA的eNVM中。
在上電之后,F(xiàn)PGA將保持主MPU在復(fù)位狀態(tài),直到它完成自已的完整性自我測試。在準(zhǔn)備好時(shí),它會釋放復(fù)位。MPU將被配置成從通向FPGA的接口啟動(dòng)(例如通過SPI接口)。FPGA用作SPI從器件,在MPU復(fù)位之后,將向MPU提供所請求的Phase-0啟動(dòng)代碼,假設(shè)MPU本身不支持安全啟動(dòng),挑戰(zhàn)則會是將某些代碼載入MPU中并且高度確保它未被篡改。
如果各個(gè)項(xiàng)目均沒有問題,啟動(dòng)過程將會連續(xù)將通過確認(rèn)的代碼載入MPU的SRAM中,這將包括發(fā)起下一階段的所需代碼,以及包括一個(gè)通過確認(rèn)的RSA 或者 ECC公共密匙。一旦MPU SRAM中的代碼獲得信任,便可以部署附加的安全措施,比如使用公共密匙方法來建立分享的密匙,以及使用分享的密匙,對FPGA和MPU之間傳輸?shù)乃泻罄m(xù)導(dǎo)引代碼進(jìn)行加密。此外,也可以將系統(tǒng)所有的硬件組件捆綁在一起加密,使得系統(tǒng)中必須具備初始系統(tǒng)的所有組件才可以運(yùn)作。
此外,SoC可以提供模塊環(huán)境情況的實(shí)時(shí)監(jiān)控,比如溫度、電壓、時(shí)鐘頻率和其它因素。FPGA架構(gòu)可以通過安全的配置,提供I/O給外部篡改傳感器和侵入檢測器。SoC通過它們來感測,防止來自已知漏洞的攻擊,這些攻擊會施加異常條件來提取關(guān)鍵的信息。只要通過合適的設(shè)計(jì),便可以達(dá)到更高的安全水平。
-
處理器
+關(guān)注
關(guān)注
68文章
18924瀏覽量
227199 -
嵌入式
+關(guān)注
關(guān)注
5045文章
18816瀏覽量
298442 -
soc
+關(guān)注
關(guān)注
38文章
4021瀏覽量
217012
發(fā)布評論請先 登錄
相關(guān)推薦
評論