本應用筆記介紹了設計人員如何保護其 Xilinx FPGA 實現、保護 IP 并防止附加外設偽造。設計人員可以使用本應用筆記中描述的參考設計之一來實現這種安全性。這些設計在FPGA和DeepCover安全身份驗證器之間實現了SHA-256或ECDSA質詢和響應安全認證。
介紹
本應用筆記重點介紹SHA-256認證參考設計(RD),該參考設計采用MAXREFDES34#(用于1-Wire)和MAXREFDES43#用于I。2C. 每個參考設計 (RD) 都描述了狀態機的 Verilog 實現或微控制器中的“C”裸機實現。每個實現方案都在相應的FPGA演示板上進行測試。
對于1-Wire設計,參考代碼定義了主機FPGA上的組合SHA-256處理器和1-Wire主機。對于我?2C 設計,參考代碼定義 SHA-256 處理器并利用現有的 FPGA I2C 協議。RD 使用以下安全身份驗證器之一:
DS28E15DeepCover安全認證器,帶1線SHA-256和512位用戶EEPROM
DS28C22DeepCover 安全內存與 I2C SHA-256 身份驗證、加密和 3Kb 用戶 EEPROM
DS28E35DeepCover安全認證器,具有1線ECDSA和1Kb用戶EEPROM
為了將Maxim安全認證器IC與FPGA演示板連接,每個RD都附帶一個兼容的插件模塊——Pmod?端口標準由 Digilent, Inc. 開發相應的IC焊接在Pmod板上。關于1-Wire設計,只需稍作調整,即可使用存儲器密度更大的SHA-256認證器,例如DS28E22或DS28E25。
為什么要將安全性應用于FPGA系統?部分詳細介紹了設計人員面臨的重要安全問題。以下標題為“保護您的 FPGA”的部分演示了身份驗證如何實際保護 FPGA 系統。
為什么要將安全性應用于 FPGA 系統?
外圍設備的防偽保護
使用 FPGA 通信和操作替換外設、耗材、模塊或傳感器的系統通常成為造假者或未經授權的售后市場公司的目標。這些假冒版本的外設可能會帶來安全問題,降低應用程序的質量,并且通常會對OEM解決方案產生負面影響。此外,OEM將外圍設備的收入損失給這些造假者。在解決方案中引入安全認證使FPGA能夠確保外設的真實性,并在檢測到假冒產品時采取特定于應用的操作。如圖1所示,在系統和連接的外設之間執行質詢和響應序列以確認真實性。
FPGA 知識產權保護和實施保護
基于靜態RAM(SRAM)的FPGA幾乎沒有保護措施來保護IP(即配置數據或FPGA實現)免受非法復制和盜竊。原因是一旦數據被加載,它就會保存在SRAM存儲單元中,可以很容易地探測以確定其內容。此外,如果沒有某種類型的安全機制來保護配置數據或位文件,然后再將其加載到芯片中,則該數據可以被窺探。瀏覽這些數據是可能的,因為位流通常存儲在FPGA在上電時加載其配置模式時讀取的單獨存儲芯片中。克隆者可以簡單地復制配置文件并創建原始文件的克隆。這些類型的 FPGA 沒有內置加密功能,否則可以保護配置文件不被復制。
功能管理、許可證管理和過度構建保護
功能管理。為了減少設計時間和工作量,設計人員將創建功能齊全的FPGA系統,并使用固件去除某些方面的功能,以實現不同的價位或功能級別。然而,這產生了一個新問題:需要多個功能齊全系統的聰明客戶可以只購買一個功能齊全的單元和幾個功能減少的單元。然后,復制軟件,更簡單的單元的行為類似于功能齊全的設備,但價格較低,從而縮短了系統供應商。
身份驗證如何工作?
若要以最安全的方式實現身份驗證,請使用以下內容作為一般準則:
確保隨機質詢是加密安全的隨機數。
知道一個密鑰(稱為“FPGA 密鑰”),該密鑰可用于內部操作,但無法從外部發現。
計算涉及密鑰、隨機數和其他數據的哈希,就像安全內存一樣。
比較哈希結果。
在 FPGA 環境中,質詢和響應身份驗證的工作方式顯示在以下編號語句中。字母(例如 A、B、C)對應于圖 2 中的數據流。本節介紹 SHA-256 對稱身份驗證。
生成一個隨機數并將其作為質詢 (A) 發送給安全身份驗證器。
指示身份驗證器根據其密鑰、質詢 A、其唯一 ID 和其他固定數據計算哈希。哈希是算法塊 (B) 的輸出。
根據安全身份驗證器和 FPGA 密鑰使用的相同輸入和常量計算哈希 (C)。
將安全身份驗證器 (B) 計算的哈希值作為響應,并將其與預期的響應 (C) 進行比較。
如果預期響應和實際響應相同,則FPGA知道身份驗證器是真實的。如果是真實的,您的安全目標(IP保護,防偽保護等)就實現了。
圖2.質詢和響應身份驗證流程更詳細。證明哈希發起方(安全驗證器)的真實性。
如前所述,FPGA 和安全身份驗證器之間的身份驗證實現了為什么要將安全性應用于 FPGA? 部分的第 1 點到第 3 點的安全性?,F在,讓我們觀察如何根據以下框圖物理設置安全系統。
外圍設備的防偽保護
要實現防偽保護,應使用如圖3所示的系統配置。FPGA 及其相應的安全實現駐留在嵌入式系統中。一些外圍設備(可能是傳感器、一次性、消耗品或其他嵌入式系統)是作為設計師希望保護的對象。Maxim安全認證IC位于該外設中。
圖3.外圍設備防偽框圖。
IP 保護、功能管理、許可證管理和過度構建保護
對于標題為“為什么要對FPGA應用安全性?”一節中描述的所有其他安全需求,應使用圖4所示的硬件設置。FPGA及其相應的安全實現與Maxim安全認證IC一起位于嵌入式系統中。
圖4.知識產權保護和其他應用的框圖。
參考設計 | FPGA | 演示板 | 實現 | 使用的認證IC | 認證IC接口 |
MAXREFDES34# |
賽靈思 斯巴達-6 |
安富利斯巴達-6 LX9 微板? | 威瑞洛格 | DS28E15 | 1-線 |
賽靈思 鋅芯 |
微鋅 | “C” | |||
MAXREFDES43# |
賽靈思 鋅芯 |
澤德板? | “C” | DS28C22 | 我2C |
MAXREFDES44# |
賽靈思 鋅芯 |
微鋅 | “C” | DS28E35 | 1-線 |
參考設計特定說明
采用DS43C28的MAXREFDES22#是獨一無二的,因為它對FPGA和DS28C22之間通信的敏感數據實現了雙向、小消息加密。此加密功能是可選的;最常見的用途是DS28C22位于連接的外設子系統內。或者,也許有必要加密敏感的傳感器數據、校準數據、特征設置數據或個人數據(例如,患者心率或 SSN)。
采用DS44E28的MAXREFDES35#采用非對稱ECDSA認證,而不是實現對稱SHA-256認證。對于對稱認證,FPGA和認證IC必須存儲相同的密鑰,因此敏感的密鑰數據駐留在系統的兩端。然而,對于非對稱認證,FPGA只保存公鑰,DS28E35保存私鑰。唯一的敏感數據是私鑰;公鑰不需要保護。
從兩個角度來看,使用非對稱加密可能更具吸引力:
您正在將產品許可給客戶或使用多個合同制造商。非對稱身份驗證提供了一個很好的管理工具,用于添加新許可證或由于使用證書而刪除現有許可證。有關證書的更多信息,請參見應用筆記 5767 “ECDSA 認證系統的基礎”。
FPGA 配置/位文件安全性較差的實現。如果 FPGA 密鑰暴露,對這些應用使用 SHA-256 對稱身份驗證可能會有風險;但是,請注意,對于相關的參考設計(例如,用于Spartan-34 FPGA的MAXREFDES6#),已經采取了額外的步驟來保護FPGA端的密鑰。事實上,如果您沒有實現內置的FPGA加密功能(在適用的FPGA上,如Xilinx Zynq),或者如果您使用的是不保護配置/位文件的上一代FPGA,那么使用DS28E35是理想的選擇。
帶有DS34E28的MAXREFDES15#使用SHA-256實現對稱認證。這些身份驗證方案要求FPGA端密鑰和安全身份驗證器密鑰都是安全的。由于以下原因,MAXREFDES34# 成功地保護了 FPGA 端的密鑰:
密鑰存儲在閃存器件的FPGA位文件中。將位文件從位反轉回Verilog代碼是非常困難的(Spartan-6參考是用Verliog編寫的)。因此,位文件的模糊性和笨拙性提供了第一層安全性。
位文件中的密鑰與DS28E15中存儲的密鑰不完全相同。FPGA根據自己的密鑰版本計算DS28E15密鑰。
本應用筆記中未披露其他專有的FPGA秘密保護技術。
總結
FPGA 嵌入式系統的設計人員面臨著許多潛在的安全威脅,包括偽造外設和復制 FPGA 實現等。將Maxim安全認證器與上述任一參考設計結合使用,可以保護FPGA系統免受這些潛在問題的影響。
審核編輯:郭婷
-
傳感器
+關注
關注
2548文章
50668瀏覽量
751978 -
處理器
+關注
關注
68文章
19160瀏覽量
229115 -
FPGA
+關注
關注
1626文章
21665瀏覽量
601818
發布評論請先 登錄
相關推薦
評論