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