除非在系統(tǒng)設(shè)計(jì)中加入有效的安全性,否則嵌入式系統(tǒng)很容易成為黑客、安全漏洞和惡意攻擊的犧牲品。如今,安全性是一個(gè)更大的問題,因?yàn)樾碌膶S屑夹g(shù)和有價(jià)值的 IP 被用作競(jìng)爭(zhēng)壁壘。到目前為止,實(shí)現(xiàn)傳統(tǒng)安全的技術(shù)一直很麻煩、過時(shí)且成本高昂。然而,當(dāng)前趨勢(shì)鼓勵(lì)設(shè)計(jì)人員在 FPGA 中嵌入最高級(jí)別的安全性,以實(shí)現(xiàn)更高效、成本更低的設(shè)計(jì)。
符合美國國家標(biāo)準(zhǔn)與技術(shù)研究院 (NIST) 聯(lián)邦信息處理標(biāo)準(zhǔn) (FIPS) 197 的 FPGA 支持使用 256 位高級(jí)加密標(biāo)準(zhǔn) (AES) 和非易失性密鑰的配置比特流加密。AES 是當(dāng)今可用的最先進(jìn)的加密算法。用戶定義的 AES 密鑰可以編程到存儲(chǔ)在 FPGA 設(shè)備中的 256 位非易失性密鑰中。
選擇正確的加密算法和選擇適當(dāng)?shù)拿荑€存儲(chǔ)是兩個(gè)重要的設(shè)計(jì)考慮因素。AES 支持 128、192 和 256 位的密鑰大小,并取代了具有 56 位密鑰和 64 位數(shù)據(jù)塊大小的數(shù)據(jù)加密標(biāo)準(zhǔn) (DES)。AES 等較大的密鑰大小等同于提高安全性,并且比三重 DES (3DES) 更快地加密數(shù)據(jù)。實(shí)際上,3DES 使用三個(gè)密鑰對(duì)文檔進(jìn)行了三次加密。
加密將電子數(shù)據(jù)轉(zhuǎn)換為通常稱為密文的難以理解的形式;解密密文將數(shù)據(jù)轉(zhuǎn)換回其原始形式或明文。AES 算法是一種對(duì)稱分組密碼,可對(duì) 128 位塊中的電子數(shù)據(jù)進(jìn)行加密/加密和解密/解密。在該算法中,對(duì)稱密鑰用于加密和解密,并且塊密碼以塊為單位處理數(shù)據(jù)。對(duì)稱密鑰分組密碼加密算法在許多行業(yè)中都有使用,因?yàn)樗鼈兲峁┝烁甙踩Wo(hù)和效率、易于實(shí)施和快速的數(shù)據(jù)處理速度。
密鑰存儲(chǔ)的選擇是第二個(gè)最重要的設(shè)計(jì)考慮因素。密鑰存儲(chǔ)在易失性或非易失性存儲(chǔ)器中,具體取決于芯片供應(yīng)商。一旦關(guān)閉易失性存儲(chǔ)的電源,密鑰就會(huì)丟失,除非將外部電池連接到芯片作為備用電源。另一方面,非易失性密鑰存儲(chǔ)為設(shè)計(jì)人員提供了更大的靈活性。
例如,F(xiàn)PGA 中的嵌入式非易失性密鑰可以在板上或板外進(jìn)行編程。安全密鑰存儲(chǔ)在 FPGA 內(nèi)的多熔絲中。多晶保險(xiǎn)絲是非易失性和一次性可編程的,這意味著這種存儲(chǔ)方法更可靠,因?yàn)椴恍枰獠總溆秒姵亍?/p>
可靠性差是電池對(duì)易失性存儲(chǔ)造成的最大問題。電池壽命受溫度和濕度水平的影響。電池沒電了,鑰匙就丟了。因此,無法再配置設(shè)備,必須將設(shè)備退回供應(yīng)商進(jìn)行維修和重新加載密鑰。此外,電池備份成本更高,因?yàn)樗y制造,需要更多組件、電路板空間和工程工作。
電池通常無法承受高溫回流工藝,必須在之后焊接到板上,這會(huì)產(chǎn)生額外的制造步驟。易失性密鑰存儲(chǔ)還需要在將密鑰焊接到板上后將其編程到設(shè)備中。
因?yàn)榉且资源鎯?chǔ)是一次性可編程的,所以密鑰是防篡改的。這在易失性存儲(chǔ)中是不可能的,因?yàn)榭梢砸瞥姵夭⑶铱梢允褂贸R?guī)加密配置文件對(duì) FPGA 進(jìn)行配置。
將安全性設(shè)計(jì)到系統(tǒng)中
圖 1 顯示了如何使用 Quartus II 設(shè)計(jì)軟件在 Altera 的 Stratix III FPGA 中實(shí)現(xiàn)安全性。第一步是將安全密鑰編程到 FPGA 中。設(shè)計(jì)軟件需要 256 位用戶自定義密鑰(密鑰 1 和密鑰 2)來生成密鑰編程文件。然后通過 JTAG 接口將包含 Key 1 和 Key 2 信息的文件加載到 FPGA 中。
圖1
接下來,內(nèi)置在 FPGA 中的 AES 加密引擎生成用于在第三步稍后解密配置數(shù)據(jù)的真實(shí)密鑰。通過加密密鑰 1 和密鑰 2 創(chuàng)建的真實(shí)密鑰隨后由專有功能處理,然后存儲(chǔ)在 256 位非易失性密鑰存儲(chǔ)中。
第二步,配置文件被加密并存儲(chǔ)在外部存儲(chǔ)器中。設(shè)計(jì)軟件需要兩個(gè) 256 位密鑰(密鑰 1 和密鑰 2)來加密配置文件。Quartus II AES 加密引擎通過使用密鑰 2 加密密鑰 1 來生成真實(shí)密鑰。真實(shí)密鑰用于加密配置文件,然后將其加載到外部存儲(chǔ)器中,例如配置或閃存設(shè)備。
第三,配置FPGA。在系統(tǒng)上電時(shí),外部存儲(chǔ)設(shè)備將加密的配置文件發(fā)送到 FPGA。FPGA 中的 256 位非易失性密鑰經(jīng)過專有函數(shù)的逆處理,生成真正的密鑰。AES 解密引擎然后使用真實(shí)密鑰解密配置文件并配置自己。
安全入侵
作為設(shè)計(jì)過程的一部分,系統(tǒng)設(shè)計(jì)人員必須識(shí)別和理解不同類型的安全漏洞,包括復(fù)制、逆向工程和篡改,如表 1 所示。
復(fù)制涉及在不了解其工作原理的情況下制作相同的設(shè)計(jì)副本??梢酝ㄟ^從存儲(chǔ)器件中讀取設(shè)計(jì)或在上電時(shí)將配置文件從存儲(chǔ)器件發(fā)送到 FPGA 時(shí)捕獲配置文件來完成復(fù)制。然后,竊取的設(shè)計(jì)可用于配置其他 FPGA。這種方法構(gòu)成了知識(shí)產(chǎn)權(quán)盜竊的主要形式,并可能導(dǎo)致重大的收入損失。
逆向工程需要分析配置文件以在寄存器傳輸級(jí)別或以示意圖形式重新創(chuàng)建原始設(shè)計(jì)。然后可以修改重新創(chuàng)建的設(shè)計(jì)以獲得競(jìng)爭(zhēng)優(yōu)勢(shì)。這是一種比復(fù)制更復(fù)雜的 IP 盜竊形式,通常需要大量的技術(shù)專長。這也是時(shí)間和資源密集型的,有時(shí)比從頭開始創(chuàng)建設(shè)計(jì)需要更多的工作。
篡改涉及修改存儲(chǔ)在設(shè)備中的設(shè)計(jì)或用不同的設(shè)計(jì)替換它。被篡改的設(shè)備可能包含能夠?qū)е孪到y(tǒng)故障或竊取敏感數(shù)據(jù)的有害設(shè)計(jì)代碼。
大多數(shù)非易失性 FPGA 具有允許回讀配置數(shù)據(jù)以進(jìn)行調(diào)試的功能,如圖 2 所示。設(shè)計(jì)人員通??梢詾槠骷O(shè)置安全位。如果未設(shè)置安全位,則允許回讀,并且可以直接獲取配置數(shù)據(jù)。但是當(dāng)設(shè)置了安全位時(shí),回讀被禁用。在設(shè)置安全位時(shí)進(jìn)行回讀攻擊的一種方法是檢測(cè)安全位在 FPGA 中的位置并停用它們以啟用回讀。
圖 2
設(shè)置入侵屏障
一些 FPGA 使攻擊者幾乎不可能從高度安全的嵌入式設(shè)計(jì)中竊取 IP。特別是,檢測(cè)和禁用安全位可能很困難,因此為設(shè)計(jì)人員提供了更大的防復(fù)制能力。以下討論解釋了設(shè)計(jì)人員如何設(shè)置這些安全防御。
存儲(chǔ)安全密鑰的多晶硅保險(xiǎn)絲隱藏在數(shù)百個(gè)其他多晶硅保險(xiǎn)絲中的金屬層之下。通過簡(jiǎn)單的目視檢查幾乎不可能確定特定保險(xiǎn)絲的功能。用于其他功能的多晶硅熔絲的編程狀態(tài)可能因器件而異。
這種隨機(jī)性使得識(shí)別哪些保險(xiǎn)絲存儲(chǔ)安全密鑰變得更加困難。此外,即使識(shí)別出存儲(chǔ)安全密鑰的多熔絲,也不會(huì)透露用于解密的真實(shí)密鑰,因?yàn)樗窃诖鎯?chǔ)之前由專有功能處理的。在不知道真正密鑰的情況下,無法解密設(shè)計(jì)。
因此,這些 FPGA 可以抵御回讀攻擊,因?yàn)樗鼈儾恢С峙渲梦募刈x。這可以防止在配置文件在 FPGA 中解密后嘗試讀回配置文件。此外,無法通過將安全密鑰編程到另一個(gè) FPGA 并使用加密配置文件對(duì)其進(jìn)行配置來復(fù)制這些設(shè)計(jì)。將安全密鑰編程到 FPGA 中需要兩個(gè) 256 位密鑰。因?yàn)?AES 用于生成真實(shí)密鑰,所以幾乎不可能從安全密鑰生成密鑰 1 和密鑰 2。
即使沒有加密,從配置文件對(duì)設(shè)計(jì)進(jìn)行逆向工程也是困難且耗時(shí)的。FPGA配置文件包含數(shù)百萬比特,配置文件格式是專有和保密的。要對(duì)設(shè)計(jì)進(jìn)行逆向工程,需要對(duì)用于揭示從配置文件到設(shè)備資源的映射的 FPGA 或設(shè)計(jì)軟件進(jìn)行逆向工程。
對(duì)這些 FPGA 進(jìn)行逆向工程比對(duì) ASIC 進(jìn)行逆向工程更困難。標(biāo)準(zhǔn)工具無法對(duì)這些 FPGA 進(jìn)行逆向工程,這些 FPGA 是在 65 納米先進(jìn)工藝技術(shù)節(jié)點(diǎn)上制造的。事實(shí)上,僅對(duì)一個(gè) FPGA 邏輯塊進(jìn)行逆向工程可能會(huì)花費(fèi)大量時(shí)間和資源。配置比特流加密使逆向工程更具挑戰(zhàn)性。找到解密配置文件的安全密鑰就像復(fù)制它一樣復(fù)雜;因此,從頭開始創(chuàng)建具有競(jìng)爭(zhēng)力的設(shè)計(jì)可能比嘗試對(duì)諸如此類的安全 FPGA 設(shè)計(jì)進(jìn)行逆向工程更容易、更快捷。
非易失性密鑰是一次性可編程的,以防止篡改。FPGA 使用密鑰編程后,只能配置使用相同密鑰加密的配置文件。嘗試使用未加密的配置文件或使用錯(cuò)誤密鑰加密的配置文件來配置 FPGA 會(huì)導(dǎo)致配置失敗。無論是在設(shè)計(jì)、外部存儲(chǔ)器和 FPGA 之間的傳輸過程中,還是在遠(yuǎn)程通信系統(tǒng)升級(jí)過程中,配置失敗都表明可能存在篡改。
設(shè)計(jì)方案比較
除了上述 FPGA 安全系統(tǒng)外,設(shè)計(jì)人員可用的其他設(shè)計(jì)選項(xiàng)包括基于 SRAM 的 FPGA,僅限于 3DES 加密、基于閃存的 FPGA 和基于反熔絲的 FPGA。表 2 描述了每種情況下的攻擊成本。
非易失性 FPGA 在斷電時(shí)保留其配置。揭示器件配置的一種方法是探測(cè)或檢測(cè)每個(gè)非易失性單元的可編程狀態(tài)。對(duì)基于閃存的 FPGA 的兩種側(cè)通道攻擊是電子發(fā)射檢測(cè)和晶體管閾值電壓變化。
通過電子發(fā)射檢測(cè)的攻擊首先涉及移除設(shè)備的封裝以暴露裸片。接下來,將該設(shè)備放置在真空室中并通電。然后攻擊者使用透射電子顯微鏡來檢測(cè)和顯示發(fā)射。至于第二種技術(shù),由于浮柵中的電子積累,晶體管的閾值電壓會(huì)隨著時(shí)間而變化。這導(dǎo)致晶體管的閾值電壓逐漸升高。
除了這兩種側(cè)信道攻擊之外,另一個(gè)流行的版本,功率攻擊,涉及測(cè)量 FPGA 的功耗以確定設(shè)備正在執(zhí)行的功能。至于對(duì)基于閃存的 FPGA 的回讀攻擊,所需的工作量因供應(yīng)商而異,并且取決于設(shè)備中安全位的保護(hù)程度。此外,探測(cè)每個(gè)基于閃存的 FPGA 的浮動(dòng)門需要大量的時(shí)間和精力,因?yàn)樵诰幊毯箝T不會(huì)發(fā)生物理變化。被氧化物隔離的狀態(tài)由選擇柵極和襯底之間的浮柵上電子的存在或數(shù)量決定(參見圖 3)。
圖 3
此外,對(duì)閃存 FPGA 配置文件進(jìn)行逆向工程并不容易,因?yàn)楸仨毷紫全@取配置文件。這是一項(xiàng)難以完成的任務(wù),因?yàn)楣粽弑仨氃谀嫦蚬こ讨皥?zhí)行復(fù)制。對(duì)設(shè)計(jì)人員來說,同樣重要的是要知道篡改基于閃存的 FPGA 很容易,因?yàn)樵撛O(shè)備是可重新編程的。因此,如果需要考慮篡改,則必須使用防篡改機(jī)制。
編程狀態(tài)探測(cè)也用于攻擊基于反熔絲的 FPGA。技術(shù)包括聚焦離子束 (FIB) 技術(shù)和掃描電子顯微鏡 (SEM)。FIB 用于顯微鏡成像和設(shè)備橫截面,而 SEM 涉及使用光柵型掃描的顯微鏡成像,以檢測(cè)從表面發(fā)射的二次電子。分析基于反熔絲的 FPGA 的編程狀態(tài)非常耗時(shí),因?yàn)橛袛?shù)百萬個(gè)反熔絲鏈接和一小部分已編程。
改進(jìn)的風(fēng)險(xiǎn)管理策略
設(shè)計(jì)人員必須估算總安全成本并進(jìn)行權(quán)衡,以確定適合設(shè)計(jì)中設(shè)備的安全級(jí)別。為了實(shí)現(xiàn)高水平的安全性,設(shè)計(jì)人員必須分析潛在威脅,考慮給定一組特定漏洞的攻擊概率,并設(shè)置有效和適當(dāng)?shù)姆烙胧PGA 提供了多種可靠的安全方案,使設(shè)計(jì)人員能夠?qū)嵤┏杀靖偷娘L(fēng)險(xiǎn)管理策略。
審核編輯:郭婷
-
FPGA
+關(guān)注
關(guān)注
1645文章
22050瀏覽量
618481 -
寄存器
+關(guān)注
關(guān)注
31文章
5434瀏覽量
124498 -
sram
+關(guān)注
關(guān)注
6文章
786瀏覽量
115962
發(fā)布評(píng)論請(qǐng)先 登錄
harmony-utils之AES,AES加解密
這款具有IGBT保護(hù)的芯片其原理是什么?
s32k324使用HSE進(jìn)行AES加密遇到的疑問求解
請(qǐng)問STM32G473是否支持硬件AES?
aes技術(shù)在物聯(lián)網(wǎng)中的應(yīng)用前景
aes算法在移動(dòng)應(yīng)用中的應(yīng)用場(chǎng)景
aes加密的常見錯(cuò)誤及解決方案
aes在云存儲(chǔ)中的應(yīng)用實(shí)例
aes算法在數(shù)據(jù)傳輸中的應(yīng)用
藍(lán)牙AES+RNG如何保障物聯(lián)網(wǎng)信息安全
NS1716 ESOP-8封裝 內(nèi)置 MOS 管開關(guān)降壓型 LED 恒流驅(qū)動(dòng)器
高壓真空開關(guān)具有哪些保護(hù)功能
開源物聯(lián)網(wǎng)技術(shù)--AES加密功能技術(shù)分享

用于具有AES硬件加密功能的TM4C129器件的共享密鑰引導(dǎo)加載程序

評(píng)論