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