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