安全問題通常集中在處理器上執行的軟件上。但是,并非所有電子功能都可以在軟件中運行。FPGA提供了另一種工作方式,并且比軟件中執行的功能更安全。
FPGA提供了更多的硬件控制,并且對于攻擊者而言更加不透明。對于嵌入式FPGA,設計人員可以完全控制整個系統。這意味著更少依賴其他人設計的硬件。這也意味著最終設計不可能公開記錄,這意味著在進行許多攻擊之前必須進行艱巨的逆向工程任務。
Flex Logix首席執行官Geoff Tate表示:“如果您擔心安全性,那么在某些情況下,要有人破解,FPGA塊將變得更加困難。
通過編寫在處理器上執行的軟件,可以實現大量的電子功能。已經充分記錄了安全隱患和保護此類系統的需求。但是,FPGA還是一種在硬件而非軟件中實現功能的流行方法。盡管有時這是ASIC專用硅電路的前奏,但FPGA加速器在數據中心中很流行。需求可能迅速變化的新興行業中的設計也可以使用FPGA。
基于FPGA的系統中的安全性不亞于基于處理器的系統中的安全性。但是,FPGA有一些根本的區別,可以幫助完成安全任務。主要區別與信息可用性和硬件工程師所具有的控制有關。
更難破解您不知道的東西
處理器是由硬件公司制造的,還是由IP公司設計的以包含在SoC中。在后一種情況下,將處理器集成到芯片中的硬件團隊對處理器模塊的可見性有限。重點在于互連,而不是處理器中邏輯的細節。配置和連接后,該處理器可供軟件工程師用于創建代碼。
為了創建代碼,必須很好地記錄處理器的硬件體系結構。指令集,流水線,I / O,存儲器架構,內部時序-所有這些都必須已知,以便創建性能最佳的軟件。但是,所有這些信息的可用性也使處理器處于危險之中,因為它不僅對善意的編碼人員可用,對于尋求弱點和入侵方式的攻擊者也可用。
FPGA不那么透明。現成的版本具有詳細記錄的高級體系結構,但較低級的細節留給了設計軟件。盡管處理器必須容納想要使用匯編語言工作并管理每個時鐘周期的程序員,但很久以前,FPGA設計就失去了手動控制不同邏輯模塊配置方式的能力。設計的規模是如此之大,以至于實際上,布局布線工具在完成整個設計方面的工作要比手動調整要好得多。
結果,FPGA沒有記錄手動設計所需的底層細節。甚至用于配置FPGA的位流也沒有記載。可以對其中的一些細節進行逆向工程,但這需要大量工作-比了解處理器所需的工作要多得多。泰特觀察說:“祝你好運,找出[比特流]中的哪些比特流向何處。” 嵌入在SoC(eFPGA)中的FPGA架構甚至更加晦澀難懂。“當您談論嵌入式FPGA時,難度更大。”
此外,處理器傾向于控制整個系統,同時還托管需要運行的各種軟件程序。因此,即使FPGA可以控制系統,這也不是典型的。通常由處理器負責,FPGA加速特定的委托任務。對處理器的攻擊有使攻擊者控制系統的風險,但這對于FPGA攻擊來說是不太可能的結果。Tate說:“即使您控制了FPGA,也無法控制系統。”
在管理通信時,處理器也占據著中心位置,因此通信通道成為嘗試訪問處理器的一種方式。FPGA傾向于在較低的體系結構級別上運行,因此通過通信通道進行攻擊可能不太成功。
文檔可能不是基于處理器的系統的唯一漏洞。使用處理器可以更輕松地探查發現正在發生的事情甚至影響行為的能力。Mentor FPGA解決方案經理Ray Salemi說:“ FPGA比基于處理器的系統提供更好的安全性,因為基于處理器的系統容易遭受反復試驗的攻擊,在這種情況下,對手使用諸如內存緩沖區溢出之類的技術來改變處理器的行為。西門子業務。“另一方面,FPGA在啟動時從ROM加載其配置位,并且數據無法通過數據路徑修改底層邏輯。”
如果您處于控制之中,則更容易確保安全。處理器,無論是預先設計的還是可配置的IP,都只能為硬件設計人員提供有限的控制權。現成的處理器無法控制。就是這樣。SoC中的處理器IP提供了更高級別的控制,但仍處于較高級別,您可以在其中指定諸如可以放置多少個不同塊的實例或可以創建多少個I / O的東西。Tortuga Logic的聯合創始人兼首席技術官Jason Oberg表示:“有了SoC,實際硬件的內部就是一個黑匣子。” “您可以在軟件級別配置什么東西,但是您真的不知道軟件如何與硬件交互。”
這些模塊和I / O的詳細設計不受芯片設計人員的控制。當然,這是有意的-這是IP提供的提高生產力的基礎。但是,該IP的購買者無法糾正任何安全漏洞。Oberg說:“您控制和分析的系統越多,對系統的了解,對安全性的了解以及整體保證就越高。”
借助現成的FPGA,硬件設計人員可以完全控制在FPGA架構中實現的邏輯。OneSpin Solutions信任與安全產品經理John Hallman表示:“之所以認為FPGA安全性更高,是因為您可以對設計進行定制而不是別人定制。” “最后一件定制作品是您的。”
驗證也更加透明。Oberg說:“在構建自己的定制ASIC的FPGA中,您將進行更多的白盒分析。” “這使您可以研究許多不同的極端情況,并幫助您設計出更強大的系統,而不必相信供應商已正確地做到了這一點。”
但是,FPGA中還有很多其他邏輯,設計人員無法控制。至少,有支持FPGA配置的硬件基礎架構。許多FPGA還具有強化的處理器和其他模塊。Oberg指出:“在現代的基于SoC的FPGA中,您仍然非常依賴FPGA的ASIC部分來安全地構建該部分。” 使用這種FPGA的硬件設計人員幾乎無法控制這些硬邏輯模塊。
嵌入式FPGA(eFPGA)提供了更多控制。將FPGA模塊連接至系統其余部分的所有邏輯均在設計人員的控制之下。Oberg說:“對于eFPGA,您正在構建自己的ASIC,并且可以完全控制整個過程-實際比特流的加載方式和存儲位置。” 連接到FPGA的所有模塊均由設計團隊選擇或設計。關于安全漏洞的任何擔憂都可以通過現成的FPGA來解決。
當然,這是一把雙刃劍。Hallman告誡說:“嵌入式FPGA為您提供了可重編程邏輯的領域,但沒有為您提供保護該邏輯的模板。” “由集成商來定制您的安全性取決于您。您必須提出安全計劃和驗證計劃,以確保所部署的內容滿足您的安全需求。” 因此,只有在設計者知道如何實現所有必要的安全細節時,收益才會累積。
構建包含處理器,片上存儲器和eFPGA的SoC還有一個安全優勢。這意味著更多的信號保留在芯片上,使它們更難監聽。Synopsys的高級市場經理Joe Mallett說:“使軟件和硬件在同一設備上協同工作具有潛在的好處。” “外部存儲器交互作用有限,通道更加安全,軟件和硬件之間的緊密耦合。”
像軟件一樣,FPGA代碼也可以更新,以改善功能并修復安全漏洞。Hallman說:“人們正在FPGA中進行無線‘固件’更新,您可以在其中修改基礎硬件功能。” 但是更新FPGA比更新軟件更為嚴格。“傳統上,更新FPGA被視為一個更強大的過程。”
改變FPGA代碼的方式要能提供新的所需功能,同時又能適應舊的界限,達到正確的時序,并且堅持現有的I / O比改變軟件更困難。但是它仍然有價值。Hallman說:“肯定存在無法在特定區域關閉計時的風險。” 這些挑戰仍然存在,但是與ASIC相比,您至少有重新配置的機會。好了一步。”
也就是說,安全軟件堆棧將依賴于內置在硬件中的安全功能。如果該硬件已更新,則可能會破壞軟件堆棧。“可以對安全硬件進行更新以滿足當前的需求,但是與此同時,它可能會使舊的軟件堆棧停止工作,” Mallett指出。“由于同時對硬件和軟件進行了強制更新,因此這可能是一個好處。”
但是,在處理器的控制下重新配置eFPGA會帶來另一個漏洞。Salemi說:“嵌入式eFPGA顯示安全性僅與最弱的鏈接一樣強。” “如果可以通過SoC中的嵌入式處理器來重新配置eFPGA,則控制了嵌入式CPU的對手可以重新配置嵌入式FPGA以安裝后門。例如,人們可以重新配置eFPGA來實現以前受損的通信接口版本,從而開放整個芯片進行攻擊。”
這些擔憂在安全性和安全性重疊的汽車,機器人技術和航空電子等市場引起了熱議。除了典型的安全措施外,還需要監視片上數據流量模式,以識別違規行為的異常行為。對于熱點或異常熱活動也是如此,這可能與正常老化和使用情況相關或無關。
Xilinx芯片營銷總監Manuel Uhm表示:“我們增強了安全性功能,可防止發生差分功率攻擊等事件。“在模具中,我們還具有多個溫度傳感器,因為您可以獲得熱點,而客戶需要知道這些熱點在哪里,以適應熱冷卻解決方案。我們也測試老化。所有這些對于設備在現場能使用多長時間以及我們攜帶它們多長時間至關重要。因此,我們仍有客戶購買Virtex-5芯片(于2006年推出)。而在汽車領域,您可能需要覆蓋20到25年。
可見的篡改
篡改始終是硬件和軟件關注的問題。標準FPGA已提交并驗證了其硬件。無論它是否具有固有的安全性,攻擊者都將無法篡改該基本硬件。但是,仍然可以通過弄亂比特流并更改加載的圖像來篡改結構的內容。
幾年前,柏林理工大學的一組研究人員使用非接觸式探測技術提出了一篇論文,表明這是可能的。
“除了產生電信號外,這些晶體管還發射少量的紅外光,它們還將調制紅外信號,具體取決于晶體管通道是處于活動狀態還是處于活動狀態”,防偽產品技術總監Scott Best說。Rambus。“因此,使用非常精確的紅外激光,您可以將激光從晶體管反射回來,然后回來,它將告訴您該晶體管是打開還是關閉,以及那里是否有電壓。您可以將感應與晶體管切換或信號在總線上轉換的時間同步。為此需要做一些材料準備工作,因為通常使用任何高分辨率,您都需要將芯片背面的厚度從250微米減薄到25微米。因此,現在紅外線很容易從硅片的背面逸出,您將獲得真正的高分辨率以檢測紅外線的發射。”
借助eFPGA,該陣列以軟形式實例化,因此流氓設計人員可以在將設計投入硅之前對其進行篡改。但是,由于織物的排列特性,如果在目視檢查中看不到這種變化,則很難進行改變。在門相對混亂的設計中調整某些東西要容易得多,在這種情況下,變化很難被發現。“當您擁有嵌入式FPGA或存儲器之類的陣列結構時,很難在其中放置特洛伊木馬電路而不干擾統一的陣列結構,” Tate說道。
另外,eFPGA的一些關鍵用戶需要其他方法來檢測可能的篡改。例如,可以模擬典型工作負載下芯片的預期功率曲線,然后在構建時將其與實際芯片進行比較。如果它們之間的差異太大,則表明存在某些問題。再次強調,防止篡改并不僅僅是使篡改的任何嘗試更加明顯。
eFPGA比特流的詳細信息通常不會在數據表和應用筆記中發布。通常,只有NDA下的重要客戶才能使用它們,并且提供eFPGA的公司可能會拒絕與動機不佳的人合作。這不是對比特流內容的嚴格保護,但確實提供了另一層保護。
雖然標準的FPGA帶有一個保存其內容的存儲器,但是eFPGA通常使用引導ROM進行存儲。當然,標準的FPGA也可以做到這一點,但是位流塊將以FPGA制造商確定的格式存儲。使用嵌入式FPGA,設計人員可以自由控制位流在內存中的位置,并且通常比引導代碼本身小得多。堅定的設計工程師甚至可以對比特流進行加擾,以便將其散布在存儲器的不同部分中,而不是散布在一個塊中。
防止比特流被篡改的另一種方法是對存儲中的比特流進行加密,僅在將其加載到設備中時解密。在現成的FPGA中,任何這種加密都將在銷售FPGA的公司的控制下進行。使用eFPGA,特定的加密技術和保護密鑰的方法仍在設計者的控制之下。
Tate說:“客戶無需告訴我們他們如何將eFPGA配置代碼映射到其閃存中。” “他們可以加密部分或全部閃存,并在SoC中解密。他們可以分條或使用其他算法“散列”地址以非線性方式進行存儲。或者他們可以兩者都做。”
禁用JTAG端口
對于基于處理器和基于FPGA的系統,仍然存在一種臭名昭著的爬入系統的方法-JTAG(或其他調試)端口。通過此端口可以訪問內部邏輯的廣闊區域。盡管內部掃描鏈的組織對于逆向工程可能很繁瑣,但這并非不可能。
因此,在安全性尤為重要的情況下,設計通常會在設計和制造完成后禁用JTAG端口。有時這是通過不可逆轉地熔斷保險絲來實現的。如果使用此選項,則將來將無法使用JTAG端口來幫助診斷任何問題。
另一種選擇是通過位流禁用JTAG端口。最終映像可以包含有關禁用JTAG端口的說明。如果將來需要退回設備進行故障分析,則創建比特流的公司可以加載專用比特流,該專用比特流僅使JTAG端口僅供內部使用。
也可以用密碼保護JTAG,盡管這帶來了管理密鑰的挑戰。將單個密鑰用于所有設備嗎?然后入侵一臺設備將解鎖其他所有設備。但是,現在為每臺設備使用不同的密鑰給配置功能帶來了挑戰,因為該功能不太可能經常使用。因此,這可能是實施起來比較困難的選擇。
所有這些考慮因素還受到構建FPGA的技術的影響。到目前為止,目前使用的大多數FPGA使用SRAM內容,這些內容必須在上電時重新加載。這是位流管理最重要的地方。例如,對于重新加載啟用JTAG端口的比特流,它也更加靈活。
基于閃存的設備中的非易失性配置消除了每次上電時加載比特流的需要。設備是在制造過程中配置的,因此一旦設備部署,攻擊者就很難更改其內容。話雖如此,Oberg指出,基于SRAM的設備可以在必要時使用冗余,以抵御單事件干擾和內容更改—假設任何篡改僅發生在冗余集之一上。
多租戶–處理器和FPGA
數據中心提出了另一種安全挑戰–多租戶。對于處理器,其想法是多個客戶端可以使用一臺服務器。由服務器基礎結構來確保來自一個客戶端的信息不會泄漏到另一客戶端。這可以通過分離內存和分時處理器本身來完成。
也有興趣為數據中心中的FPGA加速器提供多租戶訪問。Hallman說:“分區對于保持一定程度的隔離非常重要。” 與其分時共享處理器,不如共享一個FPGA結構空間,其中一部分包含一個客戶端使用的邏輯,另一部分包含另一客戶端的邏輯。
當然,這比共享處理器要復雜得多。如何管理不同的圖像?即使在運行時,它們是否可以獨立于邏輯的其他客戶端部分進行加載或重新配置?如何在兩個客戶端之間隔離硬件?Hallman說:“我進行了一些特定的對話,客戶希望允許訪問FPGA設計的某些部分,但他們希望鎖定其他部分,尤其是在數據中心應用程序中。”
能夠進行這種劃分的硬件元件將是部分重編程電路。這定義了可以重新編程FPGA架構而無需接觸FPGA其他部分的粒度。但是除此之外,域之間的信號交叉沒有物理障礙。Hallman表示,必須通過驗證獨立域互不影響來通過驗證來實施分區。
盡管這是一個有趣的場景,但它可能不如基于處理器的多租戶的隔離技術那么完善。而且,由于它是硬件而不是軟件,因此使其成為安全啟用的難度更大。目前,這并不常見。泰特說:“大多數客戶在運營期間不會即時進行編程。”
結論
在處理器和FPGA上的軟件中實現功能之間的選擇涉及經典的權衡。軟件更靈活,更易于更改。FPGA比強化邏輯更靈活,但仍不如軟件靈活。安全成為此決定中的另一個考慮因素。如果需要最終的安全性,則FPGA和嵌入式FPGA可以使系統比軟件更安全。
但這不是萬能藥。“與傳統的軟件/微處理器相比,FPGA實施面臨許多相同的挑戰,例如加密閃存,安全啟動以及免受系統內攻擊的保護,” Mallett說。盡管有機會獲得更好的安全性,但仍有大量工作要做。
責任編輯:tzh
-
處理器
+關注
關注
68文章
19813瀏覽量
233629 -
FPGA
+關注
關注
1643文章
21973瀏覽量
614338 -
芯片
+關注
關注
459文章
52215瀏覽量
436514 -
soc
+關注
關注
38文章
4348瀏覽量
221760
發布評論請先 登錄
請問NICE協處理器與傳統ocb外設相比的優勢有什么?
NICE協處理器與傳統ocb外設相比的優勢有什么?
處理器和芯片的區別是什么 處理器是指cpu嗎
NPU與傳統處理器的區別是什么
盛顯科技:異形拼接處理器和傳統拼接處理器有什么區別?
智能系統的安全性分析
恒訊科技分析:IPSec與SSL/TLS相比,安全性如何?

評論