作者: Tim Morin 隨著設備互聯越來越多的應用在物聯網和機器至機器連接中,基于閃存的FPGA提供安全IP和硬件信任根,可以用于保護設計避免入侵。 對于基于數字信號處理器(DSP)的設計,如果DSP沒有足夠的安全能力,便特別容易受到入侵。在許多應用中,如果使用FPGA以作配合來卸載DSP的部分工作,便可以輕易實施先進的安全功能。而且,如果配合的FPGA使用flash存儲技術,在芯片上存儲結構中的配置位流以及關鍵性密匙信息,便可以實現固有的防止復制或克隆的安全性,使得設計人員能夠自動保護設計避免這些類型的偷竊。 DSP和FPGA系統結構 在使用FPGA或DSP的系統中(圖1),DSP實施高級信號處理算法,而FPGA實施前端抽取功能。高速串行RapidIO總線用于連接FPGA和DSP;FPGA還連接至PCIe總線,經由互聯網用作遠程接入管理端口。PCIe總線還可橋接進入和離開RapidIO總線的通信量,以期把擴展遠程管理連接至DSP。FPGA控制一個外部DDR3 DRAM,后者用作無線接口所收發數據包的緩存,并且允許FPGA從DSP卸載任何低層數據協議處理和緩存管理功能。 ![]() 圖1: 使用FPGA和DSP的無線通信系統. FPGA還將負責從外部SPI Flash “導引”DSP,FPGA使用自身的SPI存儲器作為DSP代碼來源,通過來自DSP的SPI端口的導引功能來映射引導過程。一旦代碼傳送完成,FPGA便允許DSP開始執行。 安全根 如果系統不保護導引過程,侵入者便能夠以自己的代碼替代,然后有效地劫持整個系統,這可能導致系統的損壞、重大的財務損失以及可能的個人責務。我們必需使用安全的導引過程來最大限度地減小此類攻擊,而硬件信任根是實施安全導引過程的必要條件。 硬件信任根支持系統數據完整性和保密性的驗證,同時可以將這個信任擴展至內部和外部實體。硬件信任根可避免被侵入或修改,也能夠作為安全地鋪設更高級功能的起點。在嵌入式系統中,信任根與其它系統組件共同工作,以確保主處理器僅使用授權代碼進行安全導引,從而擴展信任區域至處理器及其應用。 硬件信任根必需在安全的FPGA上構建,其配置位流必需保護避免復制或反向工程,以避免被惡意入侵者破壞信任根。所以,保護FPGA器件的知識產權(IP)就是保護嵌入式系統其余部分的必要條件。 多級導引過程的安全要求 從其它部分進行嵌入處理系統的初始化,需要安全的導引過程,以執行不受惡意內容或泄漏影響的受信任代碼。圖2所示為安全導引過程為充分保護嵌入式系統的初始化而必需經過的各個不同階段。每一個階段都必需由先前的成功階段來驗證,以確保直到頂層應用層的“信任鏈(chain-of-trust)”。不可修改的引導加載程序(階段0)代碼能夠嵌入在FPGA器件中,并且通過安全的信任根,使用受保護的安全密匙和相關的安全算法進行驗證,以確保代碼的完整性和真實性。把代碼和執行轉移至每個安全導引的順序階段前,這些階段都必須經過先前受信任的系統進行驗證。 ![]() 圖2: 多級安全導引過程概述 實施安全的嵌入式系統 加密位流數據是保護用于上電的配置位流(就象用于基于SRAM的 FPGA配置位流)的一個常用方法。這使得在配置啟動過程中僅通過觀察來捕獲位流變得更加困難。解密密匙存儲在FPGA中,用于在配置FPGA之前解密數據。通常需要使用電池,以期在掉電時保留安全密匙。 另一個保護FPGA配置位流的方法是使用非易失性存儲器將其完全存儲在片上,避免在啟動中暴露。一些FPGA器件,比如美高森美的SmartFusion2和IGLOO2系列,還通過在制造期間進行編程時將位流加密以提供額外的保護功能。這還保護設計避免不道德的合同制造商進行復制或反向工程,使得所需的硬件信任根被破壞。 一旦我們創建了安全的FPGA,下一個主要要求就是實施硬件信任根。FPGA必需保護安全密匙和片上不可改變的初始階段(Phase 0)導引載入程序,使得惡意侵入者完全無法攻擊或修改它們。如果使用基于Flash 的FPGA在片上存儲不可改變的代碼和安全密匙,還可以經由配置過程來加載配置位流以獲得安全性。安全密匙僅是整個設計的一小部分,然而,它對于保護設計避免其它形式的攻擊是十分重要的。 阻止攻擊 一個常見的攻擊方法是使用側通道分析(比如觀察安全密匙相關運作期間的功率或定時簽名)來試圖找出片上的安全信息。這種側通道方法類似保險箱竊賊不斷操縱鎖具和偵聽機心的噪聲來找出保險箱組合的方法。在這種情況下,側通道就是通過物理方法實施安全“功能”所造成的聲音。實施經設計耐受通道攻擊的解密算法,可以耐受更先進的差分功率分析(DPA)形式的側通道攻擊。 如果不使用耐受DPA的技術,觀察者便能夠測量設計在處理密匙和算法時所使用的功率。此外,頻繁改變安全密匙將會限制攻擊者用于數據分析的測量數目,使得他們難以利用這類方法入侵。而且,預充電寄存器和總線等電路設計技巧將會限制侵入者所能夠利用的“噪聲”。 綜合概覽 現在已保護了FPGA IP的安全,而我們的設計也建立了信任根,便能夠更詳細地檢視整個嵌入式系統實施方案。圖3所示為安全的嵌入式系統的實施方案,其中描述了安全導引過程的不同組件。不可改變的導引代碼與密匙存儲在片上,外部SPI存儲器存儲余下的DSP代碼 (包括任何所需的OS加載程序和OS代碼,以及應用程序代碼),全部均使用信任根管理的安全的挑戰和響應系統來驗證。在過程結束時,安全的代碼被載入DSP片上的SRAM,FPGA允許DSP開始運作,可以確信僅有授權代碼被執行。此外,使用FPGA I/O可以輕易實施低成本PCB篡改檢測方案以檢測任何鉆孔或切割跡線的企圖及實施保護措施。 ![]() 圖3: 使用 SmartFusion2或 IGLOO2 FPGA的安全實施方案 一旦完成了安全導引,FPGA便能夠實施系統所需的其它功能,比如橋接PCIe和RapidIO接口、連接JESD204x總線、通過FPGA模塊預處理無線信號,以及控制DDR3緩存。當需要附加的算法處理能力時,SmartFusion2具有片上處理器可供選擇;當FPGA模塊足以實施所需的控制功能時,IGLOO2也能夠選擇。 保護用于物聯網的新DSP設計的安全 基于Flash的 FPGA提供安全IP和硬件信任根,用于構建更高層次安全功能,如安全導引等,以保護設計避免侵入。未來的安全需求將以這些功能為基礎,例如,傳送安全數據和授權安全設備將成為新興的IoT和M2M應用的主要要求,這些應用將瞄準許多新的DSP相關設計。這將需要數種附加的設計安全層以保護嵌入式系統設計IP。此外,預計新的數據安全性要求將顯著增長,需要先進的安全技術和方法來完全滿足較低功率、較小占位面積和更高的處理效率需求,才可在這些新市場上取得成功。 |