可編程元件的安全和防篡改挑戰

作者 : Stefano Lovati,特約作者

FPGA日益廣泛的使用正使裝置面臨可能的攻擊,從而突顯出安全議題——IP保護和敏感性資料保護。本文分析了FPGA可能暴露的主要漏洞,並介紹了可編程元件製造商所採用的防篡改技術。

可編程數位元件的大規模導入,使得嵌入式系統的實現具有越來越多的先進功能。現場可編程閘陣列(FPGA)實現了曾經只能以專用硬體設計才能達到的性能。相較於客製硬體系統,FPGA具有高度靈活性和高可配置性等優點,足以滿足廣泛的應用需求。將一個或多個核心處理器與FPGA模組整合在一起的SoC問世,證實了逐步採用高度整合的可編程元件趨勢,例如Xilinx Zynq (1)。

Xilinx Zynq UltraScale+

圖1:Xilinx Zynq UltraScale+。(圖片來源:AMD Xilinx)

FPGA日益廣泛的使用正使裝置面臨可能的攻擊,從而突顯出安全議題——智慧財產權(IP)保護和敏感性資料保護。擷取到FPGA內容的惡意行為者可能獲得專有資訊和演算法,並可能對公司造成經濟和形象損失。此外,FPGA配置可能會因非法或欺詐目的而受到更改。

本文分析FPGA可能暴露的主要漏洞,並介紹了可編程元件製造商所採用的防篡改技術。

漏洞類型

有多種方式可以破壞FPGA的安全性和資料完整性,包括:

反向工程。該技術最初在第一批ASIC和IC上使用,是透過對元件進行破壞性分析,對所獲得的層級執行後續掃描,以追蹤內部佈局和互連。然而,在FPGA的情況下,分析卻是非破壞性的,它旨在攔截配置位元串流並對其進行解碼,後者通常駐留在快閃記憶體(Flash)中,並在啟動期間被傳輸到FPGA的SRAM。即使配置位元串流未以明文形式傳輸,它也可能暴露於使用自動分析工具從外部執行的攻擊。由於位元串流包含重建FPGA配置所需的所有資訊,因此必須以所有可能的方式對其內容進行保護。

側通道攻擊(SCA)。這涉及對輸入/輸出訊號的組合進行監視和採集,檢測元件溫度以突出顯示最熱的晶片區域(電流穿過的區域),並測量運行期間的功耗和電磁輻射,直至檢查單個儲存單元或電晶體。由此獲得的資訊可用於破壞元件的安全性或利用它進行其他類型的攻擊。SCA使用統計模型,例如差分分析和相關分析,對FPGA運行期間所監測的物理量進行執行。例如,電流消耗揭示了密碼演算法反覆運算執行期間的峰值,而這些峰值取決於所處理的資料和所執行的指令。然後,適當的數學模型可找到吸收變化與所執行硬體操作之間的相關性,從而揭示解碼金鑰的價值。

熱雷射刺激(TLS)該技術常用於故障分析,但也可用於定位和讀取晶片記憶體的內容,目的是竊取位元串流解碼金鑰等秘密資訊。這種攻擊技術尚未證明適用於配備SCA反制措施的現代IC。TLS攻擊需要很長的執行時間(大約幾個小時)和昂貴的裝置(此類攻擊必須使用專業顯微鏡來進行故障分析,其成本高達100萬美元)。但是由於即使元件未通電也可以進行攻擊,因此可編程邏輯元件製造商不能忽視此類攻擊。

位元串流改變。透過在從外部PROM到晶片SRAM的傳輸過程中修改位元串流內容,這可能會影響FPGA的行為。

回讀攻擊。許多FPGA支援透過JTAG編程和除錯介面重新讀取位元串流的內容。雖然有內建機制能防止這種攻擊,但始終可以選擇繞過安全措施。

安全措施

隨著時間的推移,FPGA製造商推出了旨在防止或阻止這些攻擊的對策,同時保護可編程元件的安全性。

第一種普遍採用的技術是針對位元串流加密,然後透過整合在晶片中的適當功能區塊在硬體級執行其解碼。最廣泛使用的加密標準之一是先進加密標準(AES)。AES基於Rijndael演算法,使用128、192和256位元的對稱金鑰(使用相同的金鑰進行加密和解密)。在編程階段,演算法將生成金鑰並將其儲存在FPGA的電池備份RAM (BBRAM)內,這是一種隨機存取記憶體,其內容由緩衝電池保存(其持續時間可達幾十年)。在開機階段,整合的AES引擎將接收位元串流,對其進行解密,並將配置資料傳遞給配置邏輯。因為配置資料在任何I/O埠上都不是明文可見的,所以不可能從外部攔截位元串流。

位元串流加密的另一種技術是將FPGA配置儲存在晶片內部,僅使用內部通訊匯流排在啟動時載入它。2顯示了Lattice XP FPGA的編程方塊圖。配置位元串流可以從內部Flash載入SRAM,此操作不僅更安全,而且速度更快,只需幾微秒。也可以透過JTAG1532介面(也用於對Flash進行編程)從外部載入位元串流,儘管此操作需要更長的時間才能完成(幾秒鐘)。

LatticeXP programming block diagram - Security and Anti-Tamper Challenges of Programmable Devices

2LatticeXP FPGA編程方塊圖。(圖片來源:Lattice Semiconductor)

在一些FPGA型號上,解碼金鑰還可以在編程階段儲存在一次性可編程記憶體中,從而增加對外部攻擊的保護程度。

Xilinx在UltraScale系列上採用的金鑰混淆技術是另一種安全措施。如3所示,該方法使用AES-GCM演算法,透過將家族金鑰(僅Xilinx已知)與用戶所選擇的金鑰相結合來獲得混淆金鑰。這樣獲得的金鑰將儲存在FPGA中。位元串流將使用AES-GCM和使用者金鑰加密並儲存在外部Flash中。對於啟動期間的位元串流解密,將應用相反的過程:將混淆金鑰和家族金鑰組合以獲得所需的用戶金鑰。

Obfuscated key mechanism - Security and Anti-Tamper Challenges of Programmable Devices

3:混淆金鑰機制。(圖片來源:AMD Xilinx)

為了因應旨在注入不正確位元串流的攻擊,許多FPGA實施了拒絕載入利用不正確金鑰編碼的位元串流,並在該配置校驗和不正確時將其擦除的機制。

為了增強對SCA的保護,許多FPGA會監控並計算任何錯誤位元串流解碼的發生次數。一旦達到某個可編程閾值,就會擦除儲存的金鑰,並必須對元件進行重新編程。

雖然FPGA似乎極易受到擷取金鑰和解碼位元串流的攻擊,但這類元件的製造商已採取足夠的措施讓用戶能夠實施有效的對策。當今市場上可用的不同類型的FPGA,提供了與任何類型的應用相容的必要安全層級。

編譯:Franklin Zhao

(參考原文:Security and Anti-Tamper Challenges of Programmable Devices,by Stefano Lovati)

活動簡介
未來寬能隙半導體元件會在哪些應用成為主流?元件供應商又會開發出哪些新的應用寬能隙元件的電路架構,以協助電力系統開發商進一步簡化設計複雜度、提升系統整體效率?TechTaipei「寬能隙元件市場與技術發展研討會」將邀請寬能隙半導體的關鍵供應商一一為與會者解惑。
贊助廠商

加入LINE@,最新消息一手掌握!

發表評論