英特爾 Agilex 7 設備安全
產品資訊
規格
- 型號: UG-20335
- 發布日期: 2023.05.23
產品使用說明
1. 產品安全承諾
英特爾致力於產品安全,並建議使用者熟悉所提供的產品安全資源。這些資源應該在英特爾產品的整個生命週期中被利用。
2. 計畫的安全功能
未來版本的 Intel Quartus Prime Pro Edition 軟體方案提供以下安全功能:
- 部分重配置位元流安全驗證:提供額外保證,確保部分重配置 (PR) 位元流無法存取或乾擾其他 PR 角色位元流。
- 物理抗T器材自殺amper:執行裝置擦除或裝置歸零回應並對 eFuse 進行程式設計以防止裝置再次配置。
3. 可用的安全文檔
下表列出了有關英特爾 FPGA 和結構化 ASIC 設備上的設備安全功能的可用文件:
文件名稱 | 目的 |
---|---|
英特爾 FPGA 和結構化 ASIC 使用者的安全方法 指導 |
提供詳細描述的頂級文檔 英特爾可程式解決方案中的安全功能與技術 產品。幫助使用者選擇必要的安全功能 滿足他們的安全目標。 |
Intel Stratix 10 裝置安全使用者指南 | Intel Stratix 10 裝置使用者實作說明 使用安全方法確定的安全功能 使用者指南。 |
英特爾 Agilex 7 設備安全使用者指南 | Intel Agilex 7 設備使用者實作說明 使用安全方法確定的安全功能 使用者指南。 |
英特爾 eASIC N5X 裝置安全使用者指南 | 英特爾 eASIC N5X 設備使用者實施說明 使用安全方法確定的安全功能 使用者指南。 |
英特爾 Agilex 7 和英特爾 eASIC N5X HPS 加密服務 使用者指南 |
為 HPS 軟體工程師提供的實施信息 以及使用 HPS 軟體庫存取加密服務 由 SDM 提供。 |
AN-968 Black Key 設定服務快速入門指南 | 設定 Black Key 配置的完整步驟 服務。 |
常見問題解答
Q:安全方法使用者指南的目的是什麼?
答:《安全方法使用者指南》提供了英特爾可程式解決方案產品中安全功能和技術的詳細說明。它幫助使用者選擇必要的安全功能來滿足其安全目標。
Q:在哪裡可以找到《Intel Agilex 7 設備安全使用者指南》?
答:英特爾 Agilex 7 設備安全使用者指南可在英特爾資源與設計中心找到 web地點。
Q:什麼是 Black Key 設定服務?
答:Black Key Provisioning 服務提供一整套步驟來設定金鑰配置以實現安全操作。
英特爾 Agilex® 7 設備安全使用者指南
針對英特爾® Quartus® Prime 設計套件更新:23.1
在線版 反饋
UG-20335
683823 2023.05.23
英特爾 Agilex® 7 設備安全使用者指南 2
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 3
683823 | 2023.05.23 反饋意見
1.英特爾Agilex®7
設備安全結束view
英特爾® 使用專用、高度可配置的安全硬體和韌體設計英特爾 Agilex® 7 設備。
本文件包含協助您使用英特爾 Quartus® Prime 專業版軟體在英特爾 Agilex 7 裝置上實現安全功能的說明。
此外,英特爾資源與設計中心也提供了《Intel FPGA 與結構化 ASIC 安全方法使用者指南》。本文檔包含透過英特爾可程式解決方案產品提供的安全功能和技術的詳細說明,可協助您選擇滿足安全目標所需的安全功能。請聯絡英特爾支持,參考編號為 14014613136,以存取《英特爾 FPGA 和結構化 ASIC 安全方法使用者指南》。
該文件的組織方式如下: · 驗證與授權:提供建立說明
身份驗證金鑰和簽名鏈、應用權限和撤銷、簽名對像以及英特爾 Agilex 7 設備上的程式驗證功能。 · AES 位元流加密:提供建立 AES 根金鑰、加密設定位元流以及向 Intel Agilex 7 裝置配置 AES 根金鑰的說明。 · 設備配置:提供使用 Intel Quartus Prime Programmer 和安全設備管理器 (SDM) 配置韌體對 Intel Agilex 7 裝置上的安全功能進行程式設計的說明。 · 進階功能:提供啟用進階安全功能的說明,包括安全偵錯授權、硬處理器系統 (HPS) 偵錯和遠端系統更新。
1.1. 產品安全承諾
英特爾對安全的長期承諾從未如此堅定。英特爾強烈建議您熟悉我們的產品安全資源,並計劃在英特爾產品的整個生命週期中使用它們。
相關資訊 · 英特爾的產品安全 · 英特爾產品安全中心公告
英特爾公司。 版權所有。 英特爾、英特爾徽標和其他英特爾標誌是英特爾公司或其子公司的商標。 英特爾根據英特爾的標准保修保證其 FPGA 和半導體產品的性能符合當前規格,但保留隨時更改任何產品和服務的權利,恕不另行通知。 英特爾不承擔因應用或使用此處描述的任何信息、產品或服務而產生的任何責任或義務,除非英特爾明確書面同意。 建議英特爾客戶在依賴任何已發布信息和下訂單購買產品或服務之前獲取最新版本的設備規格。 *其他名稱和品牌可能被認為是他人的財產。
ISO 9001:2015 註冊
1. 英特爾 Agilex® 7 設備安全性view 683823 | 2023.05.23
1.2. 計畫的安全功能
本節提到的功能計畫用於未來版本的 Intel Quartus Prime Pro Edition 軟體。
筆記:
本節的資訊是初步的。
1.2.1.部分重配置位元流安全驗證
部分重配置 (PR) 位元流安全驗證有助於提供額外的保證,確保 PR 角色位元流無法存取或乾擾其他 PR 角色位元流。
1.2.2.物理抗T器材自殺amper
裝置自殺執行裝置擦除或裝置歸零回應,並另外對 eFuse 進行程式設計以防止裝置再次配置。
1.3. 可用的安全文檔
下表列出了有關英特爾 FPGA 和結構化 ASIC 裝置上的裝置安全功能的可用文件:
表 1.
可用的設備安全文檔
文件名稱
英特爾 FPGA 與結構化 ASIC 安全方法使用者指南
目的
頂級文檔,包含英特爾可程式解決方案產品中安全功能和技術的詳細說明。旨在協助您選擇滿足安全目標所需的安全功能。
文件 ID 721596
Intel Stratix 10 裝置安全使用者指南
英特爾 Agilex 7 設備安全使用者指南
對於 Intel Stratix 10 裝置的用戶,本指南包含使用 Intel Quartus Prime Pro Edition 軟體實現《安全方法使用者指南》所確定的安全功能的說明。
對於 Intel Agilex 7 裝置的用戶,本指南包含使用 Intel Quartus Prime Pro Edition 軟體實現《安全方法使用者指南》所確定的安全功能的說明。
683642 683823
英特爾 eASIC N5X 裝置安全使用者指南
對於 Intel eASIC N5X 裝置的用戶,本指南包含使用 Intel Quartus Prime Pro Edition 軟體實作《安全方法使用者指南》所確定的安全功能的說明。
626836
英特爾 Agilex 7 和英特爾 eASIC N5X HPS 加密服務使用者指南
本指南包含協助 HPS 軟體工程師實施和使用 HPS 軟體庫來存取 SDM 提供的加密服務的資訊。
713026
AN-968 Black Key 設定服務快速入門指南
本指南包含設定 Black Key Provisioning 服務的完整步驟。
739071
位置英特爾資源和
設計中心
英特爾網站
英特爾網站
英特爾資源與設計中心
英特爾資源與設計中心
英特爾資源與設計中心
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 5
683823 | 2023.05.23 反饋意見
若要啟用 Intel Agilex 7 裝置的驗證功能,您首先需要使用 Intel Quartus Prime Pro Edition 軟體和相關工具來建立簽章鏈。簽名鏈由根金鑰、一個或多個簽署金鑰以及適用的授權組成。您將簽章鏈套用至您的 Intel Quartus Prime Pro Edition 專案和編譯的編程 files。使用設備配置中的說明將根密鑰編程到 Intel Agilex 7 設備中。
相關資訊
設備配置第 25 頁
2.1.建立簽名鏈
您可以使用quartus_sign工具或agilex_sign.py參考實作來執行簽名鏈操作。本文檔提供了前amp使用 quartus_sign 的檔案。
若要使用參考實現,您可以呼叫 Intel Quartus Prime 軟體隨附的 Python 解釋器並省略 –family=agilex 選項;所有其他選項都是等效的。對於前ample,本節後面的 quartus_sign 指令
quartus_sign –family=agilex –operation=make_root root_public.pem root.qky 可以轉換為對參考實現的等效調用,如下所示
pgm_py Agilex_sign.py –operation=make_root root_public.pem root.qky
Intel Quartus Prime 專業版軟體包括 quartus_sign、pgm_py 和 Agilex_sign.py 工具。您可以使用 Nios® II 命令 shell 工具,它會自動設定適當的環境變數來存取這些工具。
請依照以下說明啟動 Nios II 指令 shell。 1. 開啟 Nios II 指令 shell。
選項視窗
Linux
描述
在開始功能表上,指向程式 Intel FPGA Nios II EDS然後點擊 Nios II命令外殼。
在命令 shell 中更改為/nios2eds 並執行以下命令:
./nios2_command_shell.sh
前任amp本節中的檔案假設簽章鍊和設定位元流 files 位於目前工作目錄。如果你選擇追隨前任amp關鍵所在 files 保留在 file 系統,那些前任amp萊斯假設鑰匙 file是
英特爾公司。 版權所有。 英特爾、英特爾徽標和其他英特爾標誌是英特爾公司或其子公司的商標。 英特爾根據英特爾的標准保修保證其 FPGA 和半導體產品的性能符合當前規格,但保留隨時更改任何產品和服務的權利,恕不另行通知。 英特爾不承擔因應用或使用此處描述的任何信息、產品或服務而產生的任何責任或義務,除非英特爾明確書面同意。 建議英特爾客戶在依賴任何已發布信息和下訂單購買產品或服務之前獲取最新版本的設備規格。 *其他名稱和品牌可能被認為是他人的財產。
ISO 9001:2015 註冊
2. 身份驗證與授權683823 | 2023.05.23
位於目前工作目錄。您可以選擇使用哪些目錄,並且該工具支援相對 file 路徑。如果您選擇保留鑰匙 file是在 file 系統,您必須仔細管理這些系統的存取權限 files.
英特爾建議使用商用硬體安全模組 (HSM) 來儲存加密金鑰並執行加密操作。 quartus_sign 工具和參考實作包括公鑰加密標準 #11 (PKCS #11) 應用程式介面 (API),用於在執行簽署鏈操作時與 HSM 互動。 agilex_sign.py 參考實作包含一個介面抽像以及一個 exampSoftHSM 的檔案介面。
您可以使用這些前amp檔案介面來實作 HSM 的介面。有關實現 HSM 介面和操作 HSM 的更多信息,請參閱 HSM 供應商提供的文檔。
SoftHSM 是具有 PKCS #11 介面的通用加密設備的軟體實現,由 OpenDNSSEC® 專案提供。您可以在 OpenDNSSEC 專案中找到更多信息,包括有關如何下載、建置和安裝 OpenHSM 的說明。前任amp本節的檔案使用 SoftHSM 版本 2.6.1。前任amp本節中的檔案也使用 OpenSC 中的 pkcs11-tool 公用程式透過 SoftHSM 令牌執行其他 PKCS #11 操作。您可能會找到更多信息,包括有關如何從 OpenSC 下載、建置和安裝 pkcs11tool 的說明。
相關資訊
· OpenDNSSEC 專案基於政策的區域簽署器,用於自動化 DNSSEC 金鑰追蹤流程。
· SoftHSM 有關可透過 PKCS #11 介面存取的加密儲存的實現的資訊。
· OpenSC 提供一組能夠與智慧卡配合使用的函式庫和實用程式。
2.1.1.本地建立認證金鑰對 File 系統
您可以使用 quartus_sign 工具在本機上建立身份驗證金鑰對 file 系統使用make_private_pem和make_public_pem工具操作。首先使用 make_private_pem 操作產生私鑰。您指定要使用的橢圓曲線、私鑰 file名稱,以及是否使用密碼保護私鑰(可選)。英特爾建議使用 secp384r1 曲線並遵循行業最佳實踐,為所有私鑰創建強大的隨機密碼 files。英特爾也建議限制 file 私鑰.pem 的系統權限 file僅供所有者閱讀。您可以使用 make_public_pem 操作從私鑰派生公鑰。將密鑰命名為 .pem 會很有幫助 file是描述性的。本文檔使用約定_ .pem 在以下範例中amp萊斯。
1. 在 Nios II 指令 shell 中,執行以下指令以建立私鑰。如下所示的私鑰,在後面的ex中用作根密鑰amp建立簽名鏈的檔案。英特爾 Agilex 7 裝置支援多個根金鑰,因此您
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 7
2. 身份驗證與授權683823 | 2023.05.23
重複此步驟以建立所需數量的根密鑰。前任amp儘管您可以使用任何根密鑰以類似的方式建立簽名鏈,但本文檔中的文件均引用第一個根密鑰。
帶密碼的選項
描述
quartus_sign –family=agilex –operation=make_private_pem –curve=secp384r1 root0_private.pem 當出現提示時輸入密碼。
沒有密碼
quartus_sign –family=agilex –operation=make_private_pem –curve=secp384r1 –no_passphrase root0_private.pem
2. 執行以下指令,使用上一步產生的私鑰建立公鑰。您不需要保護公鑰的機密性。
quartus_sign –family=agilex –operation=make_public_pem root0_private.pem root0_public.pem
3. 再次執行指令建立金鑰對,用作簽章鏈中的設計簽章金鑰。
quartus_sign –family=agilex –operation=make_private_pem –curve=secp384r1 design0_sign_private.pem
quartus_sign –family=agilex –operation=make_public_pem design0_sign_private.pem design0_sign_public.pem
2.1.2.在 SoftHSM 中建立身份驗證金鑰對
SoftHSM 前amp本章中的文件是自洽的。某些參數取決於您的 SoftHSM 安裝以及 SoftHSM 中的令牌初始化。
quartus_sign 工具依賴 HSM 中的 PKCS #11 API 函式庫。
前任amp本節的檔案假定 SoftHSM 函式庫安裝到下列位置之一: · Linux 上的 /usr/local/lib/softhsm2.so · 2 位元版本的 Windows 上的 C:SoftHSM2libsofthsm32.dll · C:SoftHSM2libsofthsm2-x64 64 位元版本Windows 上的.dll。
使用 softhsm2-util 工具在 SoftHSM 中初始化令牌:
softhsm2-util –init-token –label Agilex-token –pin Agilex-token-pin –so-pin Agilex-so-pin –free
選項參數,特別是令牌標籤和令牌 pin 是 examp本章中使用的文件。英特爾建議您按照 HSM 供應商的說明來建立和管理令牌和金鑰。
您可以使用 pkcs11-tool 公用程式建立身分驗證金鑰對,以與 SoftHSM 中的令牌進行互動。而不是明確引用私鑰和公鑰 .pem file是在 file 系統前amp在文件中,您可以透過標籤引用金鑰對,該工具會自動選擇適當的金鑰。
英特爾 Agilex® 7 設備安全使用者指南 8
傳送回饋
2. 身份驗證與授權683823 | 2023.05.23
執行以下命令建立密鑰對,用作後面範例中的根密鑰amp文件以及用作簽名鏈中設計簽名密鑰的密鑰對:
pkcs11-tool –module=/usr/local/lib/softhsm/libsofthsm2.so –token-label Agilex-token –login –pin Agilex-token-pin –keypairgen –機制 ECDSA-KEY-PAIR-GEN –密鑰類型 EC :secp384r1 –usage-sign –label root0 –id 0
pkcs11-tool –module=/usr/local/lib/softhsm/libsofthsm2.so –token-label Agilex-token –login –pin Agilex-token-pin –keypairgen –機制 ECDSA-KEY-PAIR-GEN –密鑰類型 EC :secp384r1 –usage-sign –label design0_sign –id 1
筆記:
此步驟中的 ID 選項對於每個金鑰必須是唯一的,但僅由 HSM 使用。此ID選項與簽署鏈中指派的金鑰取消ID無關。
2.1.3.建立簽名鏈根條目
將根公鑰轉換為簽名鏈根條目,儲存在本地 file Intel Quartus Prime 金鑰 (.qky) 格式的系統 file,使用 make_root 操作。對您產生的每個根密鑰重複此步驟。
執行以下命令,使用來自根條目的根公鑰建立帶有根條目的簽署鏈 file 系統:
quartus_sign –family=agilex –operation=make_root –key_type=所有者 root0_public.pem root0.qky
執行以下命令,使用上一節中建立的 SoftHSM 令牌中的根密鑰建立具有根條目的簽名鏈:
quartus_sign –family=agilex –operation=make_root –key_type=owner –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libso msm2 ” root0 root0.qky
2.1.4.建立簽署鏈公鑰條目
使用append_key操作為簽名鏈建立一個新的公鑰條目。您指定先前的簽章鏈、先前簽章鏈中最後一個條目的私鑰、下一層公鑰、指派給下一層公鑰的權限和取消 ID,以及新的簽章鏈 file.
請注意,softHSM 庫不可隨 Quartus 安裝一起使用,而是需要單獨安裝。有關 softHSM 的更多信息,請參閱上面的創建簽名鏈部分。
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 9
2. 身份驗證與授權683823 | 2023.05.23
根據您使用的按鍵 file 系統或 HSM 中,您可以使用以下其中一種ample 指令將 design0_sign 公鑰附加到上一節中建立的根簽章:
quartus_sign –family=agilex –operation=append_key –previous_pem=root0_private.pem –previous_qky=root0.qky –permission=6 –cancel=0 –input_pem=design0_sign_public.pem design0_sign_chain.ky
quartus_sign –family=agilex –operation=append_key –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.sooo –previous_r. root0 –previous_qky=root0.qky –permission=6 –cancel=0 –input_keyname=design0_sign design0_sign_chain.qky
對於任一簽章鏈中根條目和標頭區塊條目之間最多三個公鑰條目,您最多可以再重複append_key 操作兩次。
以下前amp檔案假設您建立了另一個具有相同權限的驗證公鑰,並指派了名為 design1_sign_public.pem 的取消 ID 1,並且將此金鑰附加到前一個 ex 的簽章鏈中amp樂:
quartus_sign –family=agilex –operation=append_key –previous_pem=design0_sign_private.pem –previous_qky=design0_sign_chain.qky –permission=6 –cancel=1 –input_pem=design1_sign_public_publicsignm1_XNUMX_public.
quartus_sign –family=agilex –operation=append_key –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.sooo –previous_r. design0_sign –previous_qky=design0_sign_chain.qky –permission=6 –cancel=1 –input_keyname=design1_sign design1_sign_chain.qky
英特爾 Agilex 7 設備包括一個額外的金鑰取消計數器,以方便使用可能在給定設備的整個生命週期中定期更改的金鑰。您可以將 –cancel 選項的參數變更為 pts:pts_value 來選擇此鍵取消計數器。
2.2.簽署配置比特流
Intel Agilex 7 裝置支援安全版本號 (SVN) 計數器,可讓您在不取消金鑰的情況下撤銷物件的授權。您可以在任何物件(例如位元流部分、韌體 .zip)簽署期間指派 SVN 計數器和適當的 SVN 計數器值 file,或緊湊證書。您可以使用 –cancel 選項和 svn_counter:svn_value 作為參數來指派 SVN 計數器和 SVN 值。 svn_counter 的有效值為 svnA、svnB、svnC 和 svnD。 svn_value 是 [0,63] 範圍內的整數。
英特爾 Agilex® 7 設備安全使用者指南 10
傳送回饋
2. 身份驗證與授權683823 | 2023.05.23
2.2.1. Quartus 金鑰 File 任務
您在 Intel Quartus Prime 軟體專案中指定簽章鏈以啟用該設計的驗證功能。從Assignments選單中,選擇Device Device and Pin Options Security Quartus Key File,然後瀏覽到簽名鏈.qky file 您創建此設計是為了簽名。
圖 1. 啟用配置位元流設置
或者,您可以將下列賦值語句加入 Intel Quartus Prime Settings 中 file (.qsf):
set_global_assignment -名稱 QKY_FILE design0_sign_chain.qky
生成 .sof file 從先前編譯的設計(包含此設定)中,從「處理」功能表中選擇「啟動」或「啟動組譯器」。新的輸出.sof file 包括使用提供的簽章鏈啟用身份驗證的指派。
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 11
2. 身份驗證與授權683823 | 2023.05.23
2.2.2.共同簽署 SDM 韌體
您可以使用 quartus_sign 工具提取、簽名並安裝適用的 SDM 韌體 .zip file。然後,共同簽名的韌體包含在編程中 file 轉換 .sof 時的生成器工具 file 進入設定比特流.rbf file。您可以使用以下命令建立新的簽名鏈並對 SDM 韌體進行簽名。
1. 建立新的簽署金鑰對。
A。在上建立一個新的簽名金鑰對 file 系統:
quartus_sign –family=agilex –operation=make_private_pem –curve=secp384r1firmware1_private.pem
quartus_sign –family=agilex –operation=make_public_pem 韌體1_private.pem 韌體1_public.pem
b.在 HSM 中建立新的簽署金鑰對:
pkcs11-tool –module=/usr/local/lib/softhsm/libsofthsm2.so –token-label Agilex-token –login –pin Agilex-token-pin –keypairgen -mechanism ECDSA-KEY-PAIR-GEN –密鑰類型 EC :secp384r1 –usage-sign –標籤韌體1 –id 1
2. 建立包含新公鑰的新簽名鏈:
quartus_sign –family=agilex –operation=append_key –previous_pem=root0_private.pem –previous_qky=root0.qky –permission=0x1 –cancel=1 –input_pem=firmware1_public.pemfirmwareware1_chain.q
quartus_sign –family=agilex –operation=append_key –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.sooo –previous_r. root0 –previous_qky=root0.qky –permission=1 –cancel=1 –input_keyname=firmware1firmware1_sign_chain.qky
3.複製韌體.zip file 從您的 Intel Quartus Prime Pro Edition 軟體安裝目錄( /devices/programmer/firmware/agilex.zip) 複製到目前工作目錄。
quartus_sign –family=agilex –get_firmware=。
4. 對韌體 .zip 進行簽名 file。該工具自動解壓縮 .zip file 並單獨簽署所有韌體.cmf files,然後重建 .zip file 供以下部分中的工具使用:
quartus_sign –family=agilex –operation=sign –qky=firmware1_sign_chain.qky –cancel=svnA:0 –pem=firmware1_private.pemAgilex.zipsigned_agilex.zip
quartus_sign –family=agilex –operation=sign –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so”
英特爾 Agilex® 7 設備安全使用者指南 12
傳送回饋
2. 身份驗證與授權683823 | 2023.05.23
–keyname=firmware1 –cancel=svnA:0 –qky=firmware1_sign_chain.qkyAgilex.zipsigned_agilex.zip
2.2.3.使用 quartus_sign 指令對設定位元流進行簽名
若要使用 quartus_sign 指令對設定位元流進行簽名,請先將 .sof 轉換為 file 到未簽名的原始二進位文件 file (.rbf) 格式。您可以選擇在轉換步驟中使用 fw_source 選項指定共同簽署的韌體。
您可以使用以下命令產生 .rbf 格式的未簽名原始位元流:
quartus_pfg c o fw_source=signed_agilex.zip -o sign_later=ON design.sof unsigned_bitstream.rbf
根據金鑰的位置,執行以下命令之一,使用 quartus_sign 工具對位元流進行簽署:
quartus_sign –family=agilex –operation=sign –qky=design0_sign_chain.qky –pem=design0_sign_private.pem –cancel=svnA:0 unsigned_bitstream.rbfsigned_bitstream.rbf
quartus_sign –family=agilex –operation=sign –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so” –keyname=so” design0_sign –qky=design0_sign_chain.qky –cancel=svnA:0 unsigned_bitstream.rbfsigned_bitstream.rbf
您可以轉換簽名的 .rbf files 到其他設定位元流 file 格式。
對於前amp文件,如果您使用 Jam* 標準測試和程式語言 (STAPL) 播放器透過 J 對位元流進行編程TAG,您可以使用以下命令來轉換 .rbf file 轉換為 Jam STAPL Player 所需的 .jam 格式:
quartus_pfg -csigned_bitstream.rbfsigned_bitstream.jam
2.2.4.部分重配置多機構支持
英特爾 Agilex 7 設備支援部分重新配置多機構身份驗證,其中設備所有者創建並簽署靜態比特流,而單獨的 PR 所有者創建並簽署 PR 角色比特流。 Intel Agilex 7 裝置透過將第一個驗證根金鑰槽指派給裝置或靜態位元流擁有者並將最終身分驗證根金鑰槽指派給部分重配置角色位元流擁有者來實現多重權限支援。
如果啟用身份驗證功能,則必須對所有 PR 角色圖像進行簽名,包括嵌套的 PR 角色圖像。 PR 角色影像可由裝置擁有者或 PR 擁有者簽署;但是,靜態區域位元流必須由裝置擁有者簽署。
筆記:
計劃在未來版本中啟用多機構支援時的部分重新配置靜態和角色位元流加密。
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 13
2. 身份驗證與授權683823 | 2023.05.23
圖 2.
實作部分重配置多重權限支援需要幾個步驟:
1. 裝置或靜態位元流擁有者產生一個或多個驗證根金鑰,如第 8 頁在 SoftHSM 中建立驗證金鑰對中所述,其中 –key_type 選項具有值擁有者。
2. 部分重配置位元流擁有者產生驗證根金鑰,但將 –key_type 選項值變更為 secondary_owner。
3. 靜態位元流和部分重配置設計擁有者均確保在「Assignments Device」和「Pin Options Security」標籤中啟用「Enable Multi-Authority support」複選框。
Intel Quartus Prime 啟用多權限選項設置
4. 靜態位元流和部分重配置設計擁有者都根據各自的根金鑰建立簽章鏈,如第 6 頁的建立簽章鏈中所述。
5. 靜態位元流和部分重配置設計擁有者都將其編譯設計轉換為 .rbf 格式 files 並簽署 .rbf files.
6.設備或靜態比特流所有者產生並簽署PR公鑰程式授權緊湊憑證。
quartus_pfg –ccert o ccert_type=PR_PUBKEY_PROG_AUTH oowner_qky_file=”root0.qky;root1.qky” unsigned_pr_pubkey_prog.ccert
quartus_sign –family=agilex –operation=sign –qky=design0_sign_chain.qky –pem=design0_sign_private.pem –cancel=svnA:0 unsigned_pr_pubkey_prog.ccertsigned_pr_pubkey_prog.ccert
quartus_sign –family=agilex –operation=sign –module=softHSM –module_args=”–token_label=s10-token –user_pin=s10-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so” –keyname=sm0. design0_sign –qky=design0_sign_chain.qky –cancel=svnA:XNUMX unsigned_pr_pubkey_prog.ccertsigned_pr_pubkey_prog.ccert
英特爾 Agilex® 7 設備安全使用者指南 14
傳送回饋
2. 身份驗證與授權683823 | 2023.05.23
7.設備或靜態比特流所有者向設備提供其認證根密鑰散列,然後對PR公鑰程序授權緊湊證書進行編程,最後向設備提供部分重配置比特流所有者根密鑰。設備配置部分描述了此配置過程。
8. Intel Agilex 7 設備配置有靜態區域 .rbf file.
9. Intel Agilex 7 裝置使用角色設計 .rbf 進行部分重新配置 file.
相關資訊
· 建立簽名鏈第 6 頁
· 在 SoftHSM 中建立身分驗證金鑰對(第 8 頁)
· 設備配置第 25 頁
2.2.5。驗證配置比特流簽名鏈
建立簽章鍊和簽章位元流後,您可以驗證簽章位元流是否正確配置了使用給定根金鑰編程的裝置。首先使用quartus_sign指令的fuse_info操作將根公鑰的雜湊列印到文字中 file:
quartus_sign –family=agilex –operation=fuse_info root0.qky hash_fuse.txt
然後,您可以使用 quartus_pfg 指令的 check_integrity 選項來檢查 .rbf 格式的簽章位元流的每個部分上的簽章鏈。 check_integrity 選項列印以下資訊:
· 整體位元流完整性檢查的狀態
· 附加到位元流 .rbf 中每個部分的每個簽名鏈中每個條目的內容 file,
· 每個簽章鏈的根公鑰雜湊的預期熔斷值。
fusion_info 輸出中的值應與 check_integrity 輸出中的 Fuse 行相符。
quartus_pfg –check_integritysigned_bitstream.rbf
這是一個前任ampcheck_integrity 指令輸出的檔案:
訊息:指令:quartus_pfg –check_integritysigned_bitstream.rbf 完整性狀態:正常
部分
類型:CMF
簽名描述符...
簽名鏈#0(條目:-1,偏移:96)
條目#0
Fuse: 34FD3B5F 7829001F DE2A24C7 3A7EAE29 C7786DB1 D6D5BC3C 52741C79
72978B22 0731B082 6F596899 40F32048 AD766A24
產生密鑰...
曲線:secp384r1
X
: 29C39C3064AE594A36DAA85602D6AF0B278CBB0B207C4D97CFB6967961E5F0ECA
456FF53F5DBB3A69E48A042C62AB6B0
Y
: 3E81D40CBBBEAC13601247A9D53F4A831308A24CA0BDFFA40351EE76438C7B5D2
2826F7E94A169023AFAE1D1DF4A31C2
產生密鑰...
曲線:secp384r1
X
: 29C39C3064AE594A36DAA85602D6AF0B278CBB0B207C4D97CFB6967961E5F0ECA
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 15
2. 身份驗證與授權683823 | 2023.05.23
456FF53F5DBB3A69E48A042C62AB6B0
Y
: 3E81D40CBBBEAC13601247A9D53F4A831308A24CA0BDFFA40351EE76438C7B5D2
2826F7E94A169023AFAE1D1DF4A31C2
條目#1
產生密鑰...
曲線:secp384r1
X
: 015290C556F1533E5631322953E2F9E91258472F43EC954E05D6A4B63D611E04B
C120C7E7A744C357346B424D52100A9
Y
: 68696DEAC4773FF3D5A16A4261975424AAB4248196CF5142858E016242FB82BC5
08A80F3FE7F156DEF0AE5FD95BDFE05
條目 #2 鑰匙圈權限:SIGN_CODE 鑰匙圈可以透過 ID 取消:3 簽名鏈 #1(條目:-1,偏移量:648)
條目#0
Fuse: FA6528BE 9281F2DB B787E805 6BF6EE0E 28983C56 D568B141 8EEE4BF6
DAC2D422 0A3A0F27 81EFC6CD 67E973BF AC286EAE
產生密鑰...
曲線:secp384r1
X
: 47A453474A8D886AB058615EB1AB38A75BAC9F0C46E564CB5B5DCC1328244E765
0411C4592FAFFC71DE36A105B054781
Y
: 6087D3B4A5C8646B4DAC6B5C863CD0E705BD0C9D2C141DE4DE7BDDEB85C0410D8
6B7312EEE8241189474262629501FCD
產生密鑰...
曲線:secp384r1
X
: 47A453474A8D886AB058615EB1AB38A75BAC9F0C46E564CB5B5DCC1328244E765
0411C4592FAFFC71DE36A105B054781
Y
: 6087D3B4A5C8646B4DAC6B5C863CD0E705BD0C9D2C141DE4DE7BDDEB85C0410D8
6B7312EEE8241189474262629501FCD
條目#1
產生密鑰...
曲線:secp384r1
X
: 1E8FBEDC486C2F3161AFEB028D0C4B426258293058CD41358A164C1B1D60E5C1D
74D982BC20A4772ABCD0A1848E9DC96
Y
: 768F1BF95B37A3CC2FFCEEB071DD456D14B84F1B9BFF780FC5A72A0D3BE5EB51D
0DA7C6B53D83CF8A775A8340BD5A5DB
條目#2
產生密鑰...
曲線:secp384r1
X
: 13986DDECAB697A2EB26B8EBD25095A8CC2B1A0AB0C766D029CDF2AFE21BE3432
76896E771A9C6CA5A2D3C08CF4CB83C
Y
: 0A1384E9DD209238FF110D867B557414955354EE6681D553509A507A78CFC05A1
49F91CABA72F6A3A1C2D1990CDAEA3D
條目#3 鑰匙圈權限:SIGN_CODE 鑰匙圈可透過ID 取消:15 簽署鏈#2(條目:-1,偏移:0) 簽署鏈#3(條目:-1,偏移量:0) 簽署鏈#4(條目:-1,偏移:0) -5,偏移:1) 簽名鏈#0(條目:-6,偏移:1) 簽名鏈#0(條目:-7,偏移量:1) 簽章鏈#0(條目:-XNUMX,偏移:XNUMX)
部分類型:IO 簽名描述符 … 簽名鏈 #0(條目:-1,偏移量:96)
條目#0
Fuse: FA6528BE 9281F2DB B787E805 6BF6EE0E 28983C56 D568B141 8EEE4BF6
DAC2D422 0A3A0F27 81EFC6CD 67E973BF AC286EAE
產生密鑰...
曲線:secp384r1
X
: 47A453474A8D886AB058615EB1AB38A75BAC9F0C46E564CB5B5DCC1328244E765
0411C4592FAFFC71DE36A105B054781
英特爾 Agilex® 7 設備安全使用者指南 16
傳送回饋
2. 身份驗證與授權683823 | 2023.05.23
Y
: 6087D3B4A5C8646B4DAC6B5C863CD0E705BD0C9D2C141DE4DE7BDDEB85C0410D8
6B7312EEE8241189474262629501FCD
產生密鑰...
曲線:secp384r1
X
: 47A453474A8D886AB058615EB1AB38A75BAC9F0C46E564CB5B5DCC1328244E765
0411C4592FAFFC71DE36A105B054781
Y
: 6087D3B4A5C8646B4DAC6B5C863CD0E705BD0C9D2C141DE4DE7BDDEB85C0410D8
6B7312EEE8241189474262629501FCD
條目#1
產生密鑰...
曲線:secp384r1
X
: 646B51F668D8CC365D72B89BA8082FDE79B00CDB750DA0C984DC5891CDF57BD21
44758CA747B1A8315024A8247F12E51
Y
: 53513118E25E16151FD55D7ECDE8293AF6C98A74D52E0DA2527948A64FABDFE7C
F4EA8B8E229218D38A869EE15476750
條目#2
產生密鑰...
曲線:secp384r1
X
: 13986DDECAB697A2EB26B8EBD25095A8CC2B1A0AB0C766D029CDF2AFE21BE3432
76896E771A9C6CA5A2D3C08CF4CB83C
Y
: 0A1384E9DD209238FF110D867B557414955354EE6681D553509A507A78CFC05A1
49F91CABA72F6A3A1C2D1990CDAEA3D
條目#3 鑰匙圈權限:SIGN_CORE 鑰匙圈可取消ID :15 簽名鏈#1(條目:-1,偏移:0) 簽署鏈#2(條目:-1,偏移量:0) 簽署鏈#3(條目:-1,偏移:0) -4,偏移:1) 簽名鏈#0(條目:-5,偏移:1) 簽名鏈#0(條目:-6,偏移量:1) 簽章鏈#0(條目:-7,偏移:1) 簽章鏈#0(條目:-XNUMX,偏移:XNUMX)
部分
類型:高壓鈉燈
簽名描述符...
簽名鏈#0(條目:-1,偏移:96)
條目#0
Fuse: FA6528BE 9281F2DB B787E805 6BF6EE0E 28983C56 D568B141 8EEE4BF6
DAC2D422 0A3A0F27 81EFC6CD 67E973BF AC286EAE
產生密鑰...
曲線:secp384r1
X
: 47A453474A8D886AB058615EB1AB38A75BAC9F0C46E564CB5B5DCC1328244E765
0411C4592FAFFC71DE36A105B054781
Y
: 6087D3B4A5C8646B4DAC6B5C863CD0E705BD0C9D2C141DE4DE7BDDEB85C0410D8
6B7312EEE8241189474262629501FCD
產生密鑰...
曲線:secp384r1
X
: 47A453474A8D886AB058615EB1AB38A75BAC9F0C46E564CB5B5DCC1328244E765
0411C4592FAFFC71DE36A105B054781
Y
: 6087D3B4A5C8646B4DAC6B5C863CD0E705BD0C9D2C141DE4DE7BDDEB85C0410D8
6B7312EEE8241189474262629501FCD
條目#1
產生密鑰...
曲線:secp384r1
X
: FAF423E08FB08D09F926AB66705EB1843C7C82A4391D3049A35E0C5F17ACB1A30
09CE3F486200940E81D02E2F385D150
Y
: 397C0DA2F8DD6447C52048CD0FF7D5CCA7F169C711367E9B81E1E6C1E8CD9134E
5AC33EE6D388B1A895AC07B86155E9D
條目#2
產生密鑰...
曲線:secp384r1
X
: 13986DDECAB697A2EB26B8EBD25095A8CC2B1A0AB0C766D029CDF2AFE21BE3432
76896E771A9C6CA5A2D3C08CF4CB83C
Y
: 0A1384E9DD209238FF110D867B557414955354EE6681D553509A507A78CFC05A1
49F91CABA72F6A3A1C2D1990CDAEA3D
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 17
2. 身份驗證與授權683823 | 2023.05.23
條目#3 鑰匙圈權限:SIGN_HPS 鑰匙圈可透過ID 取消:15 簽署鏈#1(條目:-1,偏移:0) 簽署鏈#2(條目:-1,偏移量:0) 簽署鏈#3(條目:-1,偏移:0) -4,偏移:1) 簽名鏈#0(條目:-5,偏移:1) 簽名鏈#0(條目:-6,偏移量:1) 簽章鏈#0(條目:-7,偏移:1) 簽章鏈#0(條目:-XNUMX,偏移:XNUMX)
部分類型:核心簽章描述子…簽章連結#0(條目:-1,偏移量:96)
條目#0
Fuse: FA6528BE 9281F2DB B787E805 6BF6EE0E 28983C56 D568B141 8EEE4BF6
DAC2D422 0A3A0F27 81EFC6CD 67E973BF AC286EAE
產生密鑰...
曲線:secp384r1
X
: 47A453474A8D886AB058615EB1AB38A75BAC9F0C46E564CB5B5DCC1328244E765
0411C4592FAFFC71DE36A105B054781
Y
: 6087D3B4A5C8646B4DAC6B5C863CD0E705BD0C9D2C141DE4DE7BDDEB85C0410D8
6B7312EEE8241189474262629501FCD
產生密鑰...
曲線:secp384r1
X
: 47A453474A8D886AB058615EB1AB38A75BAC9F0C46E564CB5B5DCC1328244E765
0411C4592FAFFC71DE36A105B054781
Y
: 6087D3B4A5C8646B4DAC6B5C863CD0E705BD0C9D2C141DE4DE7BDDEB85C0410D8
6B7312EEE8241189474262629501FCD
條目#1
產生密鑰...
曲線:secp384r1
X
: 646B51F668D8CC365D72B89BA8082FDE79B00CDB750DA0C984DC5891CDF57BD21
44758CA747B1A8315024A8247F12E51
Y
: 53513118E25E16151FD55D7ECDE8293AF6C98A74D52E0DA2527948A64FABDFE7C
F4EA8B8E229218D38A869EE15476750
條目#2
產生密鑰...
曲線:secp384r1
X
: 13986DDECAB697A2EB26B8EBD25095A8CC2B1A0AB0C766D029CDF2AFE21BE3432
76896E771A9C6CA5A2D3C08CF4CB83C
Y
: 0A1384E9DD209238FF110D867B557414955354EE6681D553509A507A78CFC05A1
49F91CABA72F6A3A1C2D1990CDAEA3D
條目#3 鑰匙圈權限:SIGN_CORE 鑰匙圈可取消ID :15 簽名鏈#1(條目:-1,偏移:0) 簽署鏈#2(條目:-1,偏移量:0) 簽署鏈#3(條目:-1,偏移:0) -4,偏移:1) 簽名鏈#0(條目:-5,偏移:1) 簽名鏈#0(條目:-6,偏移量:1) 簽章鏈#0(條目:-7,偏移:1) 簽章鏈#0(條目:-XNUMX,偏移:XNUMX)
英特爾 Agilex® 7 設備安全使用者指南 18
傳送回饋
683823 | 2023.05.23 反饋意見
AES 位元流加密
高級加密標準 (AES) 比特流加密功能使設備所有者能夠保護配置比特流中智慧財產權的機密性。
為了幫助保護金鑰的機密性,配置比特流加密使用 AES 金鑰鏈。這些金鑰用於加密配置位元流中的擁有者數據,其中第一個中間金鑰使用 AES 根金鑰進行加密。
3.1.建立 AES 根密鑰
您可以使用 quartus_encrypt 工具或 stratix10_encrypt.py 參考實作以 Intel Quartus Prime 軟體加密金鑰 (.qek) 格式建立 AES 根金鑰 file.
筆記:
stratix10_加密.py file 用於英特爾 Stratix® 10 和英特爾 Agilex 7 設備。
您可以選擇指定用於派生 AES 根密鑰和密鑰派生密鑰的基本密鑰、直接 AES 根密鑰的值、中間密鑰的數量以及每個中間密鑰的最大使用次數。
您必須指定設備系列,輸出.qek file 位置和出現提示時的密碼。
執行以下命令,使用基本密鑰的隨機資料以及中間密鑰數量和最大密鑰使用的預設值來產生 AES 根密鑰。
若要使用參考實現,您可以呼叫 Intel Quartus Prime 軟體隨附的 Python 解釋器並省略 –family=agilex 選項;所有其他選項都是等效的。對於前ample,本節後面的 quartus_encrypt 指令
quartus_encrypt –family=agilex –operation=MAKE_AES_KEY aes_root.qek
可以轉換為對參考實作的等效調用,如下所示 pgm_py stratix10_encrypt.py –operation=MAKE_AES_KEY aes_root.qek
3.2. Quartus 加密設定
若要為設計啟用位元流加密,您必須使用Assignments Device Device and Pin Options Security 面板指定適當的選項。您可以選擇啟用配置位元流加密複選框,並從下拉式選單中選擇所需的加密金鑰儲存位置。
英特爾公司。 版權所有。 英特爾、英特爾徽標和其他英特爾標誌是英特爾公司或其子公司的商標。 英特爾根據英特爾的標准保修保證其 FPGA 和半導體產品的性能符合當前規格,但保留隨時更改任何產品和服務的權利,恕不另行通知。 英特爾不承擔因應用或使用此處描述的任何信息、產品或服務而產生的任何責任或義務,除非英特爾明確書面同意。 建議英特爾客戶在依賴任何已發布信息和下訂單購買產品或服務之前獲取最新版本的設備規格。 *其他名稱和品牌可能被認為是他人的財產。
ISO 9001:2015 註冊
圖 3. Intel Quartus Prime 加密設定
3. AES 位元流加密 683823 | 2023.05.23
或者,您可以將下列賦值語句新增至 Intel Quartus Prime 設定中 file .qsf:
set_global_assignment -name ENCRYPT_PROGRAMMING_BITSTREAM on set_global_assignment -name PROGRAMMING_BITSTREAM_ENCRYPTION_KEY_SELECT eFuse
如果您想要針對旁路攻擊媒介啟用額外的緩解措施,您可以啟用加密更新率下拉清單和啟用加擾複選框。
英特爾 Agilex® 7 設備安全使用者指南 20
傳送回饋
3. AES 位元流加密 683823 | 2023.05.23
.qsf 中相應的更改是:
set_global_assignment -name PROGRAMMING_BITSTREAM_ENCRYPTION_CNOC_SCRAMBLING 上 set_global_assignment -name PROGRAMMING_BITSTREAM_ENCRYPTION_UPDATE_RATIO 31
3.3.加密設定位元流
您可以在對位元流進行簽章之前對設定位元流進行加密。英特爾 Quartus Prime 編程 File 生成器工具可以使用圖形使用者介面或命令列自動加密和簽章來設定位元流。
您可以選擇建立部分加密的位元流,以便與 quartus_encrypt 和 quartus_sign 工具或等效參考實作一起使用。
3.3.1.使用程式設定比特流加密 File 生成器圖形介面
您可以使用程式設計 File 用於加密和簽名所有者圖像的生成器。
圖 4.
1. 在 Intel Quartus Prime 上 File 選單選擇程式設計 File 發電機。 2. 關於輸出 Files 選項卡,指定輸出 file 鍵入您的配置
方案。
輸出 File 規格
配置方案輸出 file 選項卡
輸出 file 類型
3. 關於輸入 Files 選項卡,點擊新增位元流並瀏覽到您的 .sof。 4. 若要指定加密和驗證選項,請選擇 .sof 並按一下
特性。 A。開啟啟用簽章工具。 b.對於私鑰 file 選擇您的簽章金鑰私有 .pem file。 C。開啟最終加密。
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 21
3. AES 位元流加密 683823 | 2023.05.23
圖 5.
d.對於加密金鑰 file,選擇您的 AES .qek file。輸入(.sof) File 身份驗證和加密屬性
啟用身份驗證指定私有根.pem
啟用加密 指定加密金鑰
5. 在輸入上產生簽章和加密的位元流 Files 選項卡,按一下產生。將出現密碼對話框,供您輸入 AES 金鑰 .qek 的密碼 file 並簽署私鑰.pem file。程式設計 file 生成器建立加密和簽名的輸出_file.rbf。
3.3.2.使用程式設定比特流加密 File 生成器命令列介面
使用 quartus_pfg 命令列介面產生 .rbf 格式的加密和簽章設定位元流:
quartus_pfg -c crypto_enabled.sof top.rbf -o Finalize_encryption=ON -o qek_file=aes_root.qek -o 簽章=ON -o pem_file=design0_sign_private.pem
您可以將 .rbf 格式的加密和簽署的設定位元流轉換為其他設定位元流 file 格式。
3.3.3.使用命令列介面產生部分加密的設定位元流
您可以產生部分加密的節目 file 稍後完成加密並簽署圖像。產生部分加密的程式 file 採用 quartus_pfg 命令列介面的 .rbf 格式: quartus_pfg -c -o Finalize_encryption_later=ON -o sign_later=ON top.sof top.rbf
英特爾 Agilex® 7 設備安全使用者指南 22
傳送回饋
3. AES 位元流加密 683823 | 2023.05.23
您可以使用 quartus_encrypt 命令列工具來完成位元流加密:
quartus_encrypt –family=agilex –operation=ENCRYPT –key=aes_root.qek top.rbf crypto_top.rbf
您可以使用 quartus_sign 命令列工具對加密的設定位元流進行簽署:
quartus_sign –family=agilex –operation=SIGN –qky=design0_sign_chain.qky –pem=design0_sign_private.pem –cancel=svnA:0 加密_top.rbf 簽章_加密_top.rbf
quartus_sign –family=agilex –operation=sign –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so” –keyname=so” design0_sign –qky=design0_sign_chain.qky –cancel=svnA:0 加密_top.rbf 簽章_加密_top.rbf
3.3.4.部分重配置位元流加密
您可以在某些使用部分重新配置的英特爾 Agilex 7 FPGA 設計上啟用位元流加密。
利用分層部分重配置 (HPR) 或靜態更新部分重配置 (SUPR) 的部分重配置設計不支援位元流加密。如果您的設計包含多個 PR 區域,則必須加密所有角色。
若要啟用部分重配置位元流加密,請在所有設計修訂中遵循相同的流程。 1. 在 Intel Quartus Prime 上 File 選單中,選擇分配設備設備
和 Pin 選項安全性。 2. 選擇所需的加密金鑰儲存位置。
圖 6. 部分重配置位元流加密設定
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 23
3. AES 位元流加密 683823 | 2023.05.23
或者,您可以在 Quartus Prime 設定中加入下列賦值語句 file .qsf:
set_global_assignment -name –ENABLE_PARTIAL_RECONFIGURATION_BITSTREAM_ENCRYPTION 上
編譯基礎設計和修訂後,軟體會產生 a.soffile 和一個或多個.pmsffiles,代表角色。 3. 建立加密和簽署的程序 file來自.sof 和.pmsf file其方式與未啟用部分重新配置的設計類似。 4. 轉換編譯好的persona.pmsf file 到部分加密的.rbf file:
quartus_pfg -c -o Finalize_encryption_later=ON -o sign_later=ON crypto_enabled_persona1.pmsf persona1.rbf
5. 使用 quartus_encrypt 命令列工具完成位元流加密:
quartus_encrypt –family=agilex –operation=ENCRYPT –key=aes_root.qek persona1.rbf crypto_persona1.rbf
6. 使用 quartus_sign 命令列工具對加密的設定位元流進行簽章:
quartus_sign –family=agilex –operation=SIGN –qky=design0_sign_chain.qky –pem=design0_sign_private.pem 加密_persona1.rbf 簽章_加密_persona1.rbf
quartus_sign –family=agilex –operation=SIGN –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2. design0_sign_chain.qky –cancel=svnA:0 –keyname=design0_signencrypted_persona1.rbfsigned_encrypted_persona1.rbf
英特爾 Agilex® 7 設備安全使用者指南 24
傳送回饋
683823 | 2023.05.23 反饋意見
設備配置
初始安全功能配置僅在 SDM 配置韌體中支援。使用 Intel Quartus Prime Programmer 載入 SDM 配置韌體並執行設定操作。
您可以使用任何類型的 JTAG 下載電纜,用於將 Quartus Programmer 連接到 Intel Agilex 7 裝置以執行設定操作。
4.1.使用 SDM 配置韌體
當您選擇初始化操作和對配置位元流以外的內容進行程式設計的命令時,Intel Quartus Prime Programmer 會自動建立並載入工廠預設幫助程式映像。
根據指定的程式命令,出廠預設幫助程式映像是以下兩種類型之一:
· 設定幫助程式映像-由一個位元流部分組成,其中包含 SDM 配置韌體。
· QSPI 輔助映像-由兩個位元流部分組成,一個包含 SDM 主韌體,一個 I/O 部分。
您可以建立工廠預設幫助圖像 file 在執行任何程式命令之前載入到您的裝置中。對身分驗證根金鑰雜湊進行程式設計後,由於包含 I/O 部分,您必須建立並簽署 QSPI 出廠預設幫助程式映像。如果您另外對共同簽署韌體安全設定 eFuse 進行編程,則必須使用共同簽名韌體建立配置和 QSPI 出廠預設幫助程式映像。您可以在未設定的裝置上使用共同簽署的出廠預設幫助程式映像,因為未設定的裝置會忽略 SDM 韌體上的非 Intel 簽章鏈。有關建立、簽署和使用 QSPI 出廠預設幫助程式映像的更多詳細信息,請參閱在自有裝置上使用 QSPI 出廠預設幫助程式映像(第 26 頁)。
配置工廠預設幫助程式映像執行配置操作,例如對身份驗證根密鑰雜湊、安全設定熔絲、PUF 註冊或黑密鑰配置進行程式設計。您使用 Intel Quartus Prime 編程 File 用於建立配置幫助程式映像的生成器命令列工具,指定 helper_image 選項、您的 helper_device 名稱、配置幫助程式映像子類型以及可選的共同簽署韌體 .zip file:
quartus_pfg –helper_image -o helper_device=AGFB014R24A -o subtype=PROVISION -o fw_source=signed_agilex.zipsigned_provision_helper_image.rbf
使用 Intel Quartus Prime Programmer 工具對輔助映像進行程式設計:
quartus_pgm -c 1 -mjtag -o「p;signed_provision_helper_image.rbf」-force
英特爾公司。 版權所有。 英特爾、英特爾徽標和其他英特爾標誌是英特爾公司或其子公司的商標。 英特爾根據英特爾的標准保修保證其 FPGA 和半導體產品的性能符合當前規格,但保留隨時更改任何產品和服務的權利,恕不另行通知。 英特爾不承擔因應用或使用此處描述的任何信息、產品或服務而產生的任何責任或義務,除非英特爾明確書面同意。 建議英特爾客戶在依賴任何已發布信息和下訂單購買產品或服務之前獲取最新版本的設備規格。 *其他名稱和品牌可能被認為是他人的財產。
ISO 9001:2015 註冊
4. 設備配置 683823 | 2023.05.23
筆記:
您可以省略指令中的初始化操作,包括 examp在對配置幫助程式映像進行程式設計或使用包含初始化操作的命令之後,將使用本章中提供的檔案。
4.2.在自有裝置上使用 QSPI 出廠預設幫助程式映像
當您選擇 QSPI 快閃記憶體程式設計的初始化操作時,Intel Quartus Prime Programmer 會自動建立並載入 QSPI 出廠預設幫助程式映像 file。對身份驗證根金鑰雜湊進行程式設計後,您必須建立並簽署 QSPI 工廠預設幫助程式映像,並在對 QSPI 快閃記憶體進行程式設計之前單獨對簽署的 QSPI 工廠幫助程式映像進行程式設計。 1. 您使用 Intel Quartus Prime 編程 File 生成器命令列工具
建立 QSPI 幫助程式映像,指定 helper_image 選項、您的 helper_device 類型、QSPI 幫助程式映像子類型以及可選的共同簽署韌體 .zip file:
quartus_pfg –helper_image -o helper_device=AGFB014R24A -o subtype=QSPI -o fw_source=signed_agilex.zip qspi_helper_image.rbf
2. 對 QSPI 出廠預設幫助程式映像進行簽署:
quartus_sign –family=agilex –operation=sign –qky=design0_sign_chain.qky –pem=design0_sign_private.pem qspi_helper_image.rbfsigned_qspi_helper_image.rbf
3.您可以使用任何QSPI flash編程 file 格式。以下前amp檔案使用轉換為 .jic 的設定位元流 file 格式:
quartus_pfg -csigned_bitstream.rbfsigned_flash.jic -o 裝置=MT25QU128 -o flash_loader=AGFB014R24A -o 模式=ASX4
4. 使用 Intel Quartus Prime Programmer 工具對簽署的幫助程式映像進行程式設計:
quartus_pgm -c 1 -mjtag -o “p;signed_qspi_helper_image.rbf” –force
5. 使用 Intel Quartus Prime Programmer 工具將 .jic 映像程式設定為快閃記憶體:
quartus_pgm -c 1 -mjtag -o“p;signed_flash.jic”
4.3.身份驗證根金鑰配置
要將所有者根密鑰雜湊值編程到實體熔絲,首先必須載入配置韌體,接下來編程所有者根密鑰雜湊值,然後立即執行加電重置。如果將根密鑰雜湊編程到虛擬熔絲,則不需要上電重設。
英特爾 Agilex® 7 設備安全使用者指南 26
傳送回饋
4. 設備配置 683823 | 2023.05.23
若要對身份驗證根密鑰雜湊進行編程,請對配置韌體幫助程式映像進行編程,並執行以下命令之一來對根密鑰 .qky 進行編程 files.
// 對於物理(非易失性)eFuse quartus_pgm -c 1 -mjtag -o “p;root0.qky;root1.qky;root2.qky” –non_volatile_key
// 對於虛擬(易失性)eFuses quartus_pgm -c 1 -mjtag -o“p;root0.qky;root1.qky;root2.qky”
4.3.1.部分重配置多重權限根密鑰編程
配置裝置或靜態區域位元流擁有者根金鑰後,您再次載入裝置設定幫助程式映像,對簽署的 PR 公鑰程式授權緊湊憑證進行編程,然後設定 PR 角色位元流擁有者根金鑰。
// 對於物理(非易失性)eFuse quartus_pgm -c 1 -mjtag -o “p;root_pr.qky” –pr_pubkey –non_volatile_key
// 對於虛擬(易失性)eFuses quartus_pgm -c 1 -mjtag -o “p;p;root_pr.qky” –pr_pubkey
4.4.對鑰匙取消 ID 保險絲進行編程
從 Intel Quartus Prime Pro Edition 軟體版本 21.1 開始,對 Intel 和擁有者金鑰取消 ID 熔絲進行程式設計需要使用簽署的緊湊憑證。您可以使用具有 FPGA 部分簽署權限的簽署鏈來簽署金鑰取消 ID 緊湊憑證。您可以透過編程創建緊湊的證書 file 生成器命令列工具。您可以使用 quartus_sign 工具或參考實作對未簽署的憑證進行簽署。
英特爾 Agilex 7 裝置支援每個根金鑰的單獨的擁有者金鑰取消 ID 庫。當所有者金鑰取消 ID 緊湊證書被編程到英特爾 Agilex 7 FPGA 中時,SDM 會確定哪個根密鑰簽署了緊湊證書,並熔斷與該根密鑰對應的密鑰取消 ID 熔絲。
以下前amp這些檔案會為英特爾金鑰 ID 7 建立英特爾金鑰取消憑證。
執行以下命令建立未簽署的 Intel 金鑰取消 ID 緊湊憑證:
quartus_pfg –ccert -o ccert_type=CANCEL_INTEL_KEY -o cancel_key=7 unsigned_cancel_intel7.ccert
執行以下命令之一來簽署未簽署的英特爾金鑰取消 ID 緊湊憑證:
quartus_sign –family=agilex –operation=SIGN –qky=design0_sign_chain.qky –pem=design0_private.pem –cancel=svnA:0 unsigned_cancel_intel7.ccertsigned_cancel_intel7.ccert
quartus_sign –family=agilex –operation=sign –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so”
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 27
4. 設備配置 683823 | 2023.05.23
–keyname=design0_sign –qky=design0_sign_chain.qky –cancel=svnA:0 unsigned_cancel_intel7.ccertsigned_cancel_intel7.ccert
執行以下命令建立未簽署的擁有者金鑰取消 ID 緊湊憑證:
quartus_pfg –ccert -o ccert_type=CANCEL_OWNER_KEY -o cancel_key=2 unsigned_cancel_owner2.ccert
運行以下命令之一來簽署未簽署的所有者金鑰取消 ID 緊湊憑證:
quartus_sign –family=agilex –operation=SIGN –qky=design0_sign_chain.qky –pem=design0_private.pem –cancel=svnA:0 unsigned_cancel_owner2.ccertsigned_cancel_owner2.ccert
quartus_sign –family=agilex –operation=sign –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so” –keyname=so” design0_sign –qky=design0_sign_chain.qky –cancel=svnA:0 unsigned_cancel_owner2.ccertsigned_cancel_owner2.ccert
建立簽章金鑰取消 ID 緊湊型憑證後,您可以使用 Intel Quartus Prime Programmer 透過 J 將緊湊型憑證編程到裝置TAG.
//對於物理(非易失性)eFuses quartus_pgm -c 1 -mjtag -o “pi;signed_cancel_intel7.ccert” –non_volatile_key quartus_pgm -c 1 -mjtag -o “pi;signed_cancel_owner2.ccert” –non_volatile_key
//對於虛擬(易失性)eFuses quartus_pgm -c 1 -mjtag -o “pi;signed_cancel_intel7.ccert” quartus_pgm -c 1 -mjtag -o“pi;signed_cancel_owner2.ccert”
您也可以使用 FPGA 或 HPS 郵件匣介面將緊湊型憑證傳送至 SDM。
4.5.取消根密鑰
當存在另一個未取消的根密鑰雜湊時,Intel Agilex 7 裝置允許您取消根密鑰雜湊。您可以透過先使用簽章鏈植根於不同根金鑰雜湊的設計來配置裝置來取消根金鑰哈希,然後編寫簽署的根金鑰雜湊來取消緊湊憑證。您必須使用植根於要取消的根金鑰的簽章鏈來簽署根金鑰雜湊取消緊湊憑證。
運行以下命令產生未簽署的根密鑰哈希取消緊湊證書:
quartus_pfg –ccert -o –ccert_type=CANCEL_KEY_HASH unsigned_root_cancel.ccert
英特爾 Agilex® 7 設備安全使用者指南 28
傳送回饋
4. 設備配置 683823 | 2023.05.23
運行以下命令之一來簽署未簽署的根密鑰哈希取消緊湊證書:
quartus_sign –family=agilex –operation=SIGN –qky=design0_sign_chain.qky –pem=design0_private.pem –cancel=svnA:0 unsigned_root_cancel.ccertsigned_root_cancel.ccert
quartus_sign –family=agilex –operation=sign –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so” –keyname=so” design0_sign –qky=design0_sign_chain.qky –cancel=svnA:0 unsigned_root_cancel.ccertsigned_root_cancel.ccert
您可以透過 J 編寫根密鑰哈希取消緊湊證書TAG、FPGA 或 HPS 信箱。
4.6.編程計數器熔斷器
您更新安全版本號 (SVN) 和偽時間 Stamp (PTS) 使用簽署緊湊證書的計數器保險絲。
筆記:
SDM追蹤給定配置期間看到的最小計數器值,並且當計數器值小於最小值時不接受計數器增量憑證。在對計數器增量緊湊型憑證進行程式設計之前,您必須更新指派給計數器的所有物件並重新配置裝置。
運行與要產生的計數器增量證書相對應的以下命令之一。
quartus_pfg –ccert -o ccert_type=PTS_COUNTER -o counter=<-1:495> unsigned_pts.ccert
quartus_pfg –ccert -o ccert_type=SVN_COUNTER_A -o counter=<-1:63> unsigned_svnA.ccert
quartus_pfg –ccert -o ccert_type=SVN_COUNTER_B -o counter=<-1:63> unsigned_svnB.ccert
quartus_pfg –ccert -o ccert_type=SVN_COUNTER_C -o 計數器=<-1:63> unsigned_svnC.ccert
quartus_pfg –ccert -o ccert_type=SVN_COUNTER_D -o 計數器=<-1:63> unsigned_svnD.ccert
計數器值為 1 建立計數器增量授權證書。對計數器增量授權緊湊憑證進行編程使您能夠對更多未簽署的計數器增量憑證進行編程以更新相應的計數器。您可以使用 quartus_sign 工具以與金鑰取消 ID 緊湊憑證類似的方式對計數器緊湊憑證進行簽署。
您可以透過 J 編寫根密鑰哈希取消緊湊證書TAG、FPGA 或 HPS 信箱。
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 29
4. 設備配置 683823 | 2023.05.23
4.7.安全資料對象服務根金鑰配置
您可以使用 Intel Quartus Prime Programmer 來設定安全資料物件服務 (SDOS) 根金鑰。編程器自動載入配置韌體幫助程式映像以配置 SDOS 根密鑰。
quartus_pgm c 1 mjtag –service_root_key –non_volatile_key
4.8.安全設定 保險絲配置
使用 Intel Quartus Prime Programmer 檢查裝置安全設定熔絲並將其寫入基於文字的 .fuse file 如下:
quartus_pgm -c 1 -mjtag -o「ei;程式設計_file.保險絲;AGFB014R24B”
選項· i:程式設計器將配置韌體幫助程式映像載入到裝置。 · e:程式設計師從設備讀取熔絲並將其儲存在.fuse中 file.
.fuse file 包含保險絲名稱-值對的清單。此值指定保險絲是否已熔斷或保險絲欄位的內容。
以下前ample 顯示了 .fuse 的格式 file:
# 聯合簽名韌體
=“沒有被吹”
# 設備允許殺死
=“沒有被吹”
# 設備不安全
=“沒有被吹”
# 停用 HPS 偵錯
=“沒有被吹”
# 停用內在 ID PUF 註冊
=“沒有被吹”
# 禁用 JTAG
=“沒有被吹”
# 停用 PUF 包裝的加密金鑰
=“沒有被吹”
# 停用 BBRAM 中的擁有者加密金鑰 =“未損壞”
# 停用 eFuses 中的擁有者加密金鑰 = “未熔斷”
# 停用所有者根公鑰哈希 0
=“沒有被吹”
# 停用所有者根公鑰哈希 1
=“沒有被吹”
# 停用所有者根公鑰哈希 2
=“沒有被吹”
# 禁用虛擬 eFuse
=“沒有被吹”
# 強制 SDM 時脈為內部振盪器 =“未熔斷”
# 強制更新加密金鑰
=“沒有被吹”
# Intel 明確按鍵取消
=“0”
# 鎖定安全電子保險絲
=“沒有被吹”
# 所有者加密金鑰程式完成
=“沒有被吹”
# 擁有者加密金鑰程式啟動
=“沒有被吹”
# 擁有者明確金鑰取消 0
=“”
# 擁有者明確金鑰取消 1
=“”
# 擁有者明確金鑰取消 2
=“”
# 業主保險絲
=
「0x00000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000
0000000000000000000000”
# 所有者根公鑰哈希 0
=
「0x00000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000”
# 所有者根公鑰哈希 1
=
「0x00000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000”
# 所有者根公鑰哈希 2
=
「0x00000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000”
# 所有者根公鑰大小
=“無”
#PTS計數器
=“0”
# PTS 櫃檯基地
=“0”
英特爾 Agilex® 7 設備安全使用者指南 30
傳送回饋
4. 設備配置 683823 | 2023.05.23
# QSPI 啟動延遲 # RMA 計數器 # SDMIO0 為 I2C # SVN 計數器 A # SVN 計數器 B # SVN 計數器 C # SVN 計數器 D
= “10ms” = “0” = “未熔斷” = “0” = “0” = “0” = “0”
修改.fuse file 設定您想要的安全設定保險絲。以 # 開頭的行被視為註解行。若要對安全設定保險絲進行編程,請刪除前導 # 並將值設為熔斷。對於前ample,要啟用Co-signed Firmware安全性設定fuse,修改fuse第一行 file 到以下內容:
聯合簽名固件=“失敗”
您還可以根據您的要求分配和編程所有者保險絲。
您可以使用以下命令執行空白檢查、編程並驗證所有者根公鑰:
quartus_pgm -c 1 -mjtag -o “ibpv;root0.qky”
選項 · i:將配置韌體幫助程式映像載入到裝置。 · b:執行空白檢查以驗證所需的安全性設定熔絲是否未
已經吹了。 · p:對熔絲進行編程。 · v:驗證裝置上的程式碼金鑰。
對 .qky 進行程式設計後 file,您可以透過再次檢查熔絲資訊來檢查熔絲訊息,以確保所有者公鑰哈希和所有者公鑰大小都具有非零值。
雖然以下欄位不可透過 .fuse 寫入 file 方法,它們包含在檢查操作輸出中以進行驗證: · 設備不安全· 設備允許終止· 禁用所有者根公鑰哈希0 · 禁用所有者根公鑰哈希1 · 禁用所有者根公鑰哈希2 · 英特爾密鑰取消·所有者加密密鑰程式開始· 所有者加密密鑰程式完成· 所有者密鑰取消· 所有者公鑰哈希· 所有者公鑰大小· 所有者根公鑰哈希0 · 所有者根公鑰哈希1 · 所有者根公鑰哈希 2
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 31
4. 設備配置 683823 | 2023.05.23
· PTS 計數器 · PTS 計數器基底 · QSPI 啟動延遲 · RMA 計數器 · SDMIO0 為 I2C · SVN 計數器 A · SVN 計數器 B · SVN 計數器 C · SVN 計數器 D
使用 Intel Quartus Prime Programmer 對 .fuse 進行編程 file 返回設備。如果新增 i 選項,程式設計器會自動載入配置韌體以對安全性設定熔斷器進行程式設計。
//對於物理(非易失性)eFuses quartus_pgm -c 1 -mjtag -o“pi;編程_file.fuse” –non_volatile_key
//對於虛擬(易失性)eFuses quartus_pgm -c 1 -mjtag -o“pi;編程_file。
您可以使用以下命令來驗證裝置根密鑰雜湊是否與命令中提供的 .qky 相同:
quartus_pgm -c 1 -mjtag -o“v;root0_another.qky”
如果密鑰不匹配,程式設計師將失敗並顯示操作失敗錯誤訊息。
4.9. AES 根密鑰配置
您必須使用簽署的 AES 根金鑰緊湊憑證將 AES 根金鑰編程到 Intel Agilex 7 裝置。
4.9.1. AES 根密鑰緊湊型證書
您可以使用 quartus_pfg 命令列工具來轉換 AES 根金鑰 .qek file 轉換為緊湊證書 .ccert 格式。您在建立緊湊憑證時指定密鑰儲存位置。您可以使用 quartus_pfg 工具建立未簽署的憑證以供以後簽署。您必須使用啟用了 AES 根金鑰憑證簽署權限(權限位元 6)的簽署鏈,才能成功簽署 AES 根金鑰緊湊憑證。
英特爾 Agilex® 7 設備安全使用者指南 32
傳送回饋
4. 設備配置 683823 | 2023.05.23
1. 使用下列命令之一建立用於簽署 AES 金鑰緊湊憑證的附加金鑰對amp萊斯:
quartus_sign –family=agilex –operation=make_private_pem –curve=secp384r1 aesccert1_private.pem
quartus_sign –family=agilex –operation=make_public_pem aesccert1_private.pem aesccert1_public.pem
pkcs11-tool –module=/usr/local/lib/softhsm/libsofthsm2.so –token-label Agilex-token –login –pin Agilex-token-pin –keypairgen 機制 ECDSA-KEY-PAIR-GEN –key-type EC: secp384r1 –使用標誌–標籤aesccert1 –id 2
2. 使用下列命令之一建立具有正確權限位元設定的簽章鏈:
quartus_sign –family=agilex –operation=append_key –previous_pem=root0_private.pem –previous_qky=root0.qky –permission=0x40 –cancel=1 –input_pem=aesccert1_public.pem accccert1_sign_chain.
quartus_sign –family=agilex –operation=append_key –module=softHSM -module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.sooo –previous_r. root0 –previous_qky=root0.qky –permission=0x40 –cancel=1 –input_keyname=aesccert1 aesccert1_sign_chain.qky
3. 為所需的 AES 根金鑰儲存位置建立未簽署的 AES 緊湊憑證。提供以下 AES 根密鑰儲存選項:
· EFUSE_WRAPPED_AES_KEY
· IID_PUF_WRAPPED_AES_KEY
· UDS_IID_PUF_WRAPPED_AES_KEY
· BBRAM_WRAPPED_AES_KEY
· BBRAM_IID_PUF_WRAPPED_AES_KEY
· BBRAM_UDS_IID_PUF_WRAPPED_AES_KEY
//建立eFuse AES根密鑰未簽署憑證 quartus_pfg –ccert -o ccert_type=EFUSE_WRAPPED_AES_KEY -o qek_file=aes.qek unsigned_efuse1.ccert
4. 使用 quartus_sign 指令或參考實作對緊湊型憑證進行簽章。
quartus_sign –family=agilex –operation=sign –pem=aesccert1_private.pem –qky=aesccert1_sign_chain.qky unsigned_ 1.ccert簽名_ 1. 證書
quartus_sign –family=agilex –operation=sign –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so”
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 33
4. 設備配置 683823 | 2023.05.23
–keyname=aesccert1 –qky=aesccert1_sign_chain.qky unsigned_ 1.ccert簽名_ 1. 證書
5. 使用 Intel Quartus Prime Programmer 透過 J 將 AES 根金鑰壓縮憑證程式設計到 Intel Agilex 7 裝置TAG。當使用 EFUSE_WRAPPED_AES_KEY 緊湊憑證類型時,Intel Quartus Prime Programmer 預設對虛擬 eFuse 進行程式設計。
您新增 –non_volatile_key 選項來指定編程物理熔絲。
//對於物理(非揮發性)eFuse AES 根密鑰 quartus_pgm -c 1 -mjtag -o “pi;signed_efuse1.ccert” –non_volatile_key
//對於虛擬(易失性)eFuse AES 根密鑰 quartus_pgm -c 1 -mjtag -o“pi;signed_efuse1.ccert”
//對於 BBRAM AES 根密鑰 quartus_pgm -c 1 -mjtag -o“pi;signed_bbram1.ccert”
SDM配置韌體和主韌體支援AES根密鑰證書編程。您也可以使用 FPGA 結構或 HPS 中的 SDM 郵件匣介面來程式設計 AES 根金鑰憑證。
筆記:
quartus_pgm 指令不支援緊湊憑證 (.ccert) 的選項 b 和 v。
4.9.2.內在 ID® PUF AES 根金鑰配置
實現內在* ID PUF 包裝的 AES 金鑰包括以下步驟: 1. 透過 J 註冊內在 ID PUFTAG。 2. 包裝 AES 根密鑰。 3. 將輔助資料和包裝金鑰編程到四路 SPI 快閃記憶體中。 4. 查詢Intrinsic ID PUF啟動狀態。
使用固有 ID 技術需要與固有 ID 簽訂單獨的授權協議。 Intel Quartus Prime Pro Edition 軟體在沒有適當許可的情況下限制 PUF 操作,例如註冊、金鑰包裝和對 QSPI 快閃記憶體的 PUF 資料程式設計。
4.9.2.1.固有 ID PUF 註冊
若要註冊 PUF,您必須使用 SDM 配置韌體。配置韌體必須是重啟後載入的第一個固件,並且您必須在任何其他命令之前發出 PUF 註冊命令。配置韌體在 PUF 註冊後支援其他指令,包括 AES 根金鑰包裝和程式設計四 SPI,但是,您必須重新啟動裝置才能載入設定位元流。
您使用 Intel Quartus Prime Programmer 觸發 PUF 註冊並產生 PUF 幫助程式資料 .puf file.
英特爾 Agilex® 7 設備安全使用者指南 34
傳送回饋
4. 設備配置 683823 | 2023.05.23
圖 7.
固有 ID PUF 註冊
quartus_pgm PUF 註冊
註冊 PUF 幫助程序數據
安全設備管理員 (SDM)
wrapper.puf 輔助數據
當您指定 i 操作和 .puf 參數時,程式設計師會自動載入配置韌體幫助程式映像。
quartus_pgm -c 1 -mjtag -o“ei;help_data.puf;AGFB014R24A”
如果您使用共同簽署固件,請在使用 PUF 註冊命令之前對共同簽署韌體幫助程式映像進行程式設計。
quartus_pgm -c 1 -mjtag -o “p;signed_provision_helper_image.rbf” –force quartus_pgm -c 1 -mjtag -o“e;help_data.puf;AGFB014R24A”
UDS IID PUF 在設備製造期間註冊,且不可重新註冊。相反,您可以使用程式設計器來確定 IPCS 上 UDS PUF 幫助程式資料的位置,下載 .puf file 直接,然後使用UDS .puf file 與 .puf 一樣 file 從 Intel Agilex 7 設備中提取。
使用以下程式設計師命令產生文本 file 包含一個列表 URLs 指向特定於設備的 fileIPCS 上的:
quartus_pgm -c 1 -mjtag -o“e;ipcs_urls.txt;AGFB014R24B” –ipcs_urls
4.9.2.2.包裝 AES 根金鑰
您產生 IID PUF 包裝的 AES 根金鑰 .wkey file 透過將簽署的憑證傳送到SDM。
您可以使用 Intel Quartus Prime Programmer 自動產生、簽署和傳送憑證來包裝 AES 根金鑰,或者您也可以使用 Intel Quartus Prime Programmer File 生成器產生未簽署的憑證。您可以使用自己的工具或 Quartus 簽章工具對未簽署的憑證進行簽署。然後,您使用 Programmer 傳送簽章憑證並包裝 AES 根金鑰。簽署的憑證可用於對可以驗證簽名鏈的所有裝置進行程式設計。
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 35
4. 設備配置 683823 | 2023.05.23
圖 8.
使用 Intel Quartus Prime 程式設計器封裝 AES 金鑰
.pem 私有
鑰匙
.qky
quartus_pgm
封裝 AES 密鑰
AES.QSKigYnature RootCPhuabilnic 金鑰
產生 PUF 包裝金鑰
封裝的 AES 金鑰
SDM
.qek 加密
鑰匙
.wkey PUF 包裝
AES 密鑰
1. 您可以使用下列參數透過程式設計師產生 IID PUF 包裝的 AES 根金鑰 (.wkey):
· .qky file 包含具有 AES 根金鑰憑證權限的簽署鏈
· 私有.pem file 簽名鏈中的最後一個金鑰
· .qek file 持有 AES 根密鑰
· 16 位元組初始化向量 (iv)。
quartus_pgm -c 1 -mjtag –qky_file=aes0_sign_chain.qky –pem_file=aes0_sign_private.pem –qek_file=aes.qek –iv=1234567890ABCDEF1234567890ABCDEF -o “ei;aes.wkey;AGFB014R24A”
2. 或者,您可以使用程式設計產生未簽署的 IID PUF 包裝 AES 根金鑰證書 File 使用下列參數的生成器:
quartus_pfg –ccert -o ccert_type=IID_PUF_WRAPPED_AES_KEY -o qek_file=aes.qek –iv=1234567890ABCDEF1234567890ABCDEF unsigned_aes.ccert
3. 使用您自己的簽章工具或 quartus_sign 工具使用下列指令對未簽署的憑證進行簽署:
quartus_sign –family=agilex –operation=sign –qky=aes0_sign_chain.qky –pem=aes0_sign_private.pem unsigned_aes.ccertsigned_aes.ccert
4. 然後,您使用 Programmer 傳送簽署的 AES 憑證並傳回包裝的金鑰 (.wkey) file:
quarts_pgm -c 1 -mjtag –ccert_file=signed_aes.ccert -o “ei;aes.wkey;AGFB014R24A”
注意:如果您之前載入了配置韌體幫助程式映像,則不需要 i 操作,例如ample,註冊 PUF。
4.9.2.3。將輔助資料和封裝金鑰編程到 QSPI 快閃記憶體
您使用 Quartus 編程 File 生成器圖形介面,用於建立包含 PUF 分區的初始 QSPI 快閃記憶體映像。您必須產生並編程整個快閃記憶體程式映像,才能將 PUF 分割區新增至 QSPI 快閃記憶體。 PUF的創建
英特爾 Agilex® 7 設備安全使用者指南 36
傳送回饋
4. 設備配置 683823 | 2023.05.23
圖 9.
資料分區以及 PUF 輔助資料和包裝金鑰的使用 file不支援透過程式設計產生快閃記憶體映像 File 生成器命令列介面。
以下步驟示範了使用 PUF 幫助程式資料和包裝金鑰建立快閃記憶體程式設計映像:
1. 關於 File 選單,點擊編程 File 發電機。關於輸出 Files 選項卡進行以下選擇:
A。對於設備系列,選擇 Agilex 7。
b.對於配置模式,選擇 Active Serial x4。
C。對於輸出目錄,瀏覽到您的輸出 file 目錄。這個前任ample 使用output_files.
d.對於名稱,指定編程的名稱 file 待生成。這個前任ample 使用output_file.
e.在說明下選擇編程 files 來生成。這個前任ample 生成 JTAG 間接配置 File (.jic) 用於設備配置和原始二進位文件 File 裝置幫助程式映像的程式設計幫助程式映像 (.rbf)。這個前任ample 也選擇可選的記憶體映射 File (.map) 和原始程式數據 File (.rpd)。原始程式設計數據 file 只有當您計劃將來使用第三方程式設計師時才有必要。
程式設計 File 產生器 – 輸出 Files 選項卡 – 選擇 JTAG 間接配置
裝置系列配置模式
輸出 file 選項卡
輸出目錄
JTAG 間接 (.jic) 記憶體映射 File 程式設計助手原始程式設計數據
關於輸入 Files 選項卡,進行以下選擇: 1. 按一下「新增位元流」並瀏覽至您的 .sof。 2. 選擇您的.sof file 然後單擊屬性。
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 37
4. 設備配置 683823 | 2023.05.23
A。開啟啟用簽章工具。 b.對於私鑰 file 選擇您的 .pem file。 C。開啟完成加密。 d.對於加密金鑰 file 選擇您的.qek file。 e.按一下「確定」返回到先前的視窗。 3. 指定您的 PUF 輔助數據 file,點擊新增原始資料。改變 FileQuartus Physical Unclonable Function 的型別下拉選單 File (*.puf)。瀏覽到您的 .puf file。如果您同時使用 IID PUF 和 UDS IID PUF,請重複此步驟,以便 .puf file每個 PUF 的 s 加為輸入 files。 4. 指定您的封裝 AES 金鑰 file,點擊新增原始資料。改變 FileQuartus Wrapped Key 的類型下拉式選單 File (*.wkey)。瀏覽到您的 .wkey file。如果您已使用 IID PUF 和 UDS IID PUF 封裝 AES 金鑰,請重複此步驟,以便 .wkey file每個 PUF 的 s 加為輸入 files.
圖 10. 指定輸入 File用於配置、身份驗證和加密
新增比特流 新增原始數據
特性
私鑰 file
完成加密 加密金鑰
在「設定設備」標籤上,進行以下選擇: 1. 按一下「新增裝置」並從可用快閃記憶體清單中選擇您的快閃記憶體設備
裝置. 2. 選擇剛剛新增的設定設備,然後按一下「新增分割區」。 3. 在編輯分區對話方塊中輸入 file 並從以下位置選擇您的 .sof
下拉列表。您可以保留預設值或在「編輯分區」對話方塊中編輯其他參數。
英特爾 Agilex® 7 設備安全使用者指南 38
傳送回饋
4. 設備配置 683823 | 2023.05.23
圖 11. 指定 .sof 設定位元流分區
配置設備
編輯分區新增.sof file
新增分區
4. 當您新增 .puf 和 .wkey 作為輸入時 files、程式設計 File 生成器會自動在您的設定設備中建立 PUF 分區。若要將 .puf 和 .wkey 儲存在 PUF 分區中,請選擇 PUF 分區並按一下編輯。在「編輯分割區」對話方塊中,選擇您的 .puf 和 .wkey file從下拉清單中選擇 s。如果刪除PUF分割區,則必須刪除並重新新增用於程式設計的設定設備 File 用於建立另一個 PUF 分區的產生器。您必須確保選擇正確的 .puf 和 .wkey file 分別用於 IID PUF 和 UDS IID PUF。
圖 12. 新增 .puf 和 .wkey files 到 PUF 分區
PUF分區
編輯
編輯分區
快閃記憶體載入器
選擇生成
5. 對於 Flash Loader 參數,選擇與您的 Intel Agilex 7 OPN 相符的 Intel Agilex 7 裝置系列和裝置名稱。
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 39
4. 設備配置 683823 | 2023.05.23
6.點選Generate產生輸出 file您在輸出中指定的 s Files 選項卡。
7. 程式設計 File 生成器讀取您的 .qek file 並提示您輸入密碼。輸入您的密碼以回應輸入 QEK 密碼提示。按一下 Enter 鍵。
8. 程式完成後點選確定 File 生成器報告產生成功。
您使用 Intel Quartus Prime Programmer 將 QSPI 程式映像寫入 QSPI 快閃記憶體。 1. 在 Intel Quartus Prime Tools 選單中選擇 Programmer。 2. 在 Programmer 中,按一下 Hardware Setup,然後選擇已連接的 Intel
FPGA 下載纜線。 3. 點選“新增” File 並瀏覽到您的 .jic file.
圖 13. 程式 .jic
程式設計 file
程式設計/配置
JTAG 掃描鏈
4. 取消選擇與助手影像關聯的方塊。 5. 選擇 .jic 輸出的程式/配置 file。 6. 開啟「開始」按鈕對您的四路 SPI 快閃記憶體進行程式設計。 7. 重新啟動主機板。該設計已編程至四路 SPI 快閃記憶體
裝置隨後載入到目標 FPGA 中。
您必須產生並編程整個快閃記憶體編程映像,以將 PUF 分區新增至四路 SPI 快閃記憶體。
當快閃記憶體中已存在 PUF 分區時,可以使用 Intel Quartus Prime Programmer 直接存取 PUF 輔助資料和包裝金鑰 files。對於前amp文件中,如果啟動不成功,可以重新註冊 PUF,重新包裝 AES 金鑰,然後僅對 PUF 進行編程 files 而不必覆蓋整個快閃記憶體。
英特爾 Agilex® 7 設備安全使用者指南 40
傳送回饋
4. 設備配置 683823 | 2023.05.23
Intel Quartus Prime Programmer 支援下列 PUF 操作參數 file位於預先存在的 PUF 分區:
· p:程序
· v:驗證
· r:擦除
· b:空白支票
即使存在 PUF 分區,您也必須遵循相同的 PUF 註冊限制。
1. 使用 i 操作參數載入第一個操作的配置韌體幫助程式映像。對於前amp在檔案中,以下命令序列重新註冊 PUF、重新包裝 AES 根金鑰、清除舊的 PUF 幫助程式資料和包裝金鑰,然後編程並驗證新的 PUF 幫助程式資料和 AES 根金鑰。
quartus_pgm -c 1 -mjtag -o “ei;new.puf;AGFB014R24A” quartus_pgm -c 1 -mjtag –ccert_file=signed_aes.ccert -o “e;new.wkey;AGFB014R24A” quartus_pgm -c 1 -mjtag -o “r;old.puf” quartus_pgm -c 1 -mjtag -o “r;old.wkey” quartus_pgm -c 1 -mjtag -o “p;new.puf” quartus_pgm -c 1 -mjtag -o “p;new.wkey” quartus_pgm -c 1 -mjtag -o “v;new.puf” quartus_pgm -c 1 -mjtag -o“v;new.wkey”
4.9.2.4。查詢固有ID PUF啟動狀態
註冊固有 ID PUF 後,包裝 AES 金鑰,產生快閃記憶體編程 files,並更新四路 SPI 閃存,您可以重新啟動裝置以從加密的位元流觸發 PUF 啟動和配置。 SDM 報告 PUF 啟動狀態以及配置狀態。如果 PUF 啟動失敗,SDM 會報告 PUF 錯誤狀態。使用quartus_pgm指令查詢配置狀態。
1、使用以下指令查詢啟動狀態:
quartus_pgm -c 1 -mjtag –status –status_type=”配置”
這是amp成功激活的文件輸出:
資訊 (21597):CONFIG_STATUS 的回應設備正在使用者模式下執行 00006000 RESPONSE_CODE=OK,LENGTH=6 00000000 STATE=IDLE 00160300 版本 C000007B MS MSEL=QSSTAT_NOAL,nCONFIF=1,nCONEL=QFRM,nCONEL=QR,>
CLOCK_SOURCE=INTERNAL_PLL 0000000B CONF_DONE=1, INIT_DONE=1, CVP_DONE=0, SEU_ERROR=1 00000000 錯誤位置 00000000 錯誤詳細資料 PUF_STATUS 的回應 00002000SP RESP2 SER_IID STATUS =PUF_啟動_成功,
RELIABILITY_DIAGNOSTIC_SCORE=5,TEST_MODE=0 00000500 UDS_IID STATUS=PUF_ACTIVATION_SUCCESS,
RELIABILITY_DIAGNOSTIC_SCORE=5,TEST_MODE=0
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 41
4. 設備配置 683823 | 2023.05.23
如果您只使用 IID PUF 或 UDS IID PUF,且尚未編程輔助資料 .puf file 對於 QSPI 快閃記憶體中的任一 PUF,該 PUF 不會被激活,並且 PUF 狀態反映 PUF 輔助資料無效。以下前amp檔案顯示未針對任一 PUF 編程 PUF 輔助資料時的 PUF 狀態:
PUF_STATUS 的回應 00002000 RESPONSE_CODE=OK, LENGTH=2 00000002 USER_IID STATUS=PUF_DATA_CORRUPTED,
RELIABILITY_DIAGNOSTIC_SCORE=0,TEST_MODE=0 00000002 UDS_IID STATUS=PUF_DATA_CORRUPTED,
RELIABILITY_DIAGNOSTIC_SCORE=0,TEST_MODE=0
4.9.2.5。 PUF 在快閃記憶體中的位置
PUF的位置 file 支援 RSU 的設計和不支援 RSU 功能的設計是不同的。
對於不支援 RSU 的設計,您必須包含 .puf 和 .wkey file當您建立更新的 Flash 映像時。對於支援 RSU 的設計,SDM 在工廠或應用程式映像更新期間不會覆蓋 PUF 資料部分。
表 2.
不支援 RSU 的快閃記憶體子分區佈局
快閃記憶體偏移量(以位元組為單位)
大小(以位元組為單位)
內容
描述
0K 256K
256K 256K
配置管理韌體 配置管理固件
在 SDM 上運行的韌體。
512K
256K
配置管理韌體
768K
256K
配置管理韌體
1M
32K
PUF資料副本0
用於儲存 PUF 輔助資料和 PUF 包裝的 AES 根金鑰副本 0 的資料結構
1百萬+32千
32K
PUF資料副本1
用於儲存 PUF 輔助資料和 PUF 包裝的 AES 根金鑰副本 1 的資料結構
表 3.
支援 RSU 的快閃記憶體子分區佈局
快閃記憶體偏移量(以位元組為單位)
大小(以位元組為單位)
內容
描述
0K 512K
512K 512K
決策韌體 決策韌體
用於識別和載入最高優先權影像的韌體。
1萬1.5萬
512K 512K
決策韌體 決策韌體
2M
8K+24K
決策韌體數據
填充
保留供決策韌體使用。
2M+32K
32K
為SDM保留
為SDM 保留。
2M+64K
多變的
工廠形象
當所有其他應用程式映像無法載入時,您會建立作為備份的簡單映像。該映像包括在 SDM 上運行的 CMF。
下一個
32K
PUF資料副本0
用於儲存 PUF 輔助資料和 PUF 包裝的 AES 根金鑰副本 0 的資料結構
持續…
英特爾 Agilex® 7 設備安全使用者指南 42
傳送回饋
4. 設備配置 683823 | 2023.05.23
快閃記憶體偏移量(以位元組為單位)
大小(以位元組為單位)
下一頁 +32K 32K
內容 PUF 資料副本 1
下一個 + 256K 4K 下一個 +32K 4K 下一個 +32K 4K
子分區表複製 0 子分區表複製 1 CMF 指標塊複製 0
下一個 +32K _
CMF指標區塊複製1
變數 變數
變數 變數
應用圖1 應用圖2
4.9.3.黑鍵配置
描述
用於儲存 PUF 輔助資料和 PUF 包裝的 AES 根金鑰副本 1 的資料結構
方便閃存儲存管理的資料結構。
按優先順序指向應用程式映像的指標清單。當您新增影像時,該影像將變為最高。
指向應用程式映像的指標清單的第二個副本。
您的第一個應用程式圖像。
您的第二個應用程式圖像。
筆記:
Intel Quartus PrimeProgrammer 協助在 Intel Agilex 7 裝置與黑鍵設定服務之間建立相互驗證的安全連線。安全連線透過 https 建立,需要使用文字標識的多個證書 file.
使用 Black Key Provisioning 時,英特爾建議您避免在外部連接 TCK 引腳來上拉或下拉電阻,同時仍將其用於 JTAG。但是,您可以使用 10 k 電阻將 TCK 引腳連接到 VCCIO SDM 電源。引腳連接指南中包含將 TCK 連接到 1 k 下拉電阻的現有指南,以抑制雜訊。 10 k 上拉電阻指導的變化不會影響裝置的功能。有關連接 TCK 引腳的更多信息,請參閱 Intel Agilex 7 引腳連接指南。
bkp_tls_ca_certcertificate 向您的黑鍵設定程式設計師實例驗證您的黑鍵配置服務實例。 bkp_tls_* 憑證向您的黑鍵配置服務實例驗證您的黑鍵配置編程器實例。
您建立一個文字 file 包含 Intel Quartus Prime Programmer 連接到黑鍵配置服務所需的資訊。若要啟動黑鍵配置,請使用程式設計師命令列介面指定黑鍵配置選項文字 file。然後黑鍵配置會自動進行。若要存取黑鍵配置服務和相關文檔,請聯絡英特爾支援。
您可以使用 quartus_pgm 指令啟用黑鍵設定:
quartus_pgm -c -m -裝置–bkp_options=bkp_options.txt
命令參數指定以下資訊:
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 43
4. 設備配置 683823 | 2023.05.23
· -c:電纜編號 · -m:指定編程模式,如JTAG · –device:指定J上的裝置索引TAG 鏈。預設值為 1。 file 包含黑鍵配置選項。
相關連結 Intel Agilex 7 裝置系列接腳連接指南
4.9.3.1.黑鍵配置選項
黑鍵配置選項是文字 file 透過 quartus_pgm 指令傳遞給程式設計師。這 file 包含觸發黑鍵配置所需的資訊。
以下是前ampbkp_options.txt 文件 file:
bkp_cfg_id = 1 bkp_ip = 192.167.1.1 bkp_port = 10034 bkp_tls_ca_cert = root.cert bkp_tls_prog_cert = prog.cert bkp_tls_progsky = https://1234 .192.167.5.5:5000 bkp_proxy_user = proxy_user bkp_proxy_password = proxy_password
表 4.
黑鍵配置選項
此表顯示觸發黑鍵配置所需的選項。
選項名稱
類型
描述
bkp_ip
必需的
指定運行黑鍵配置服務的伺服器IP位址。
bkp_埠
必需的
指定連接到伺服器所需的黑鍵配置服務連接埠。
bkp_cfg_id
必需的
標識黑鍵供應配置流程ID。
黑鍵配置服務建立黑鍵配置配置流程,包括 AES 根密鑰、所需的 eFuse 設定和其他黑鍵配置授權選項。在黑鍵配置服務設定期間指派的號碼標識黑鍵配置配置流程。
注意:多個設備可能引用相同的黑鍵配置服務配置流程。
bkp_tls_ca_cert
必需的
用於識別 Intel Quartus Prime Programmer (Programmer) 的黑色密鑰配置服務的根 TLS 憑證。黑密鑰設定服務執行個體的受信任憑證授權單位核發此憑證。
如果您在裝有 Microsoft® Windows® 作業系統 (Windows) 的電腦上執行 Programmer,則必須在 Windows 憑證儲存中安裝此憑證。
bkp_tls_prog_cert
必需的
為黑密鑰配置程式設計師(BKP 程式設計師)實例所建立的憑證。這是用於識別此 BKP 程式設計師實例的 https 用戶端證書
持續…
英特爾 Agilex® 7 設備安全使用者指南 44
傳送回饋
4. 設備配置 683823 | 2023.05.23
選項名稱
類型
bkp_tls_prog_key
必需的
bkp_tls_prog_key_pass 可選
bkp_proxy_address bkp_proxy_user bkp_proxy_password
可選 可選 可選
描述
到黑鍵配置服務。在啟動黑金鑰設定會話之前,您必須在黑金鑰設定服務中安裝並授權此憑證。如果您在 Windows 上執行 Programmer,則此選項不可用。在這種情況下,bkp_tls_prog_key 已包含此憑證。
BKP程式設計師憑證對應的私鑰。此金鑰向黑金鑰配置服務驗證 BKP Programmer 實例的身份。如果您在 Windows 上執行 Programmer,則 .pfx file 結合了 bkp_tls_prog_cert 憑證和私鑰。 bkp_tlx_prog_key 選項傳遞 .pfx file 在 bkp_options.txt 中 file.
bkp_tls_prog_key 私鑰的密碼。黑鍵配置配置選項 (bkp_options.txt) 文字中不需要 file.
指定代理伺服器 URL 地址。
指定代理伺服器使用者名稱。
指定代理驗證密碼。
4.10.轉換擁有者根金鑰、AES 根金鑰憑證和 Fuse files 到 Jam STAPL File 格式
您可以使用 quartus_pfg 命令列命令來轉換 .qky、AES 根密鑰 .ccert 和 .fuse files 至 Jam STAPL 格式 File (.jam) 和 Jam 位元組代碼格式 File (.jbc)。你可以使用這些 file分別使用 Jam STAPL Player 和 Jam STAPL Byte-Code Player 對 Intel FPGA 進行程式設計。
單一 .jam 或 .jbc 包含多種功能,包括韌體幫助程式映像配置和程式、空白檢查以及金鑰和熔絲編程驗證。
警告:
當您轉換 AES 根密鑰 .ccert 時 file 為 .jam 格式,將 .jam file 包含明文但混淆形式的 AES 金鑰。因此,您必須保護 .jam file 儲存 AES 密鑰時。您可以透過在安全環境中配置 AES 金鑰來實現此目的。
這裡有前ampquartus_pfg 轉換指令的檔案:
quartus_pfg -c -o helper_device=AGFB014R24A “root0.qky;root1.qky;root2.qky” RootKey.jam quartus_pfg -c -o helper_device=AGFB014R24A “0.Kpqkroot1.kx2; c -o helper_device=AGFB014R24A aes.ccert aes_ccert.jam quartus_pfg -c -o helper_device=AGFB014R24A aes.ccert aes_ccert.jbc quartus_pfg -c -o helper_deviceb. g -c -o helper_device=AGFB014 24R014A 設定。
有關使用 Jam STAPL Player 進行設備編程的更多信息,請參閱 AN 425:使用命令列 Jam STAPL 解決方案進行設備編程。
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 45
4. 設備配置 683823 | 2023.05.23
執行以下命令對擁有者根公鑰和 AES 加密金鑰進行程式設計:
//將輔助位元流載入到FPGA中。 // 輔助位元流包含配置韌體 quartus_jli -c 1 -a CONFIGURE RootKey.jam
//將所有者根公鑰編程到虛擬 eFuses quartus_jli -c 1 -a PUBKEY_PROGRAM RootKey.jam
//將擁有者根公鑰編程到實體 eFuse quartus_jli -c 1 -a PUBKEY_PROGRAM -e DO_UNI_ACT_DO_EFUSES_FLAG RootKey.jam
//將 PR 所有者根公鑰編程到虛擬 eFuse quartus_jli -c 1 -a PUBKEY_PROGRAM -e DO_UNI_ACT_DO_PR_PUBKEY_FLAG pr_rootkey.jam
//將 PR 擁有者根公鑰編程到實體 eFuse quartus_jli -c 1 -a PUBKEY_PROGRAM -e DO_UNI_ACT_DO_PR_PUBKEY_FLAG -e DO_UNI_ACT_DO_EFUSES_FLAG pr_rootkey.jam
//將 AES 加密金鑰 CCERT 編程到 BBRAM quartus_jli -c 1 -a CCERT_PROGRAM EncKeyBBRAM.jam
//將 AES 加密金鑰 CCERT 編程到實體 eFuse quartus_jli -c 1 -a CCERT_PROGRAM -e DO_UNI_ACT_DO_EFUSES_FLAG EncKeyEFuse.jam
相關連結 AN 425:使用命令列 Jam STAPL 解決方案進行設備編程
英特爾 Agilex® 7 設備安全使用者指南 46
傳送回饋
683823 | 2023.05.23 反饋意見
進階功能
5.1.安全調試授權
要啟用安全偵錯授權,偵錯擁有者需要產生身份驗證金鑰對並使用 Intel Quartus Prime Pro Programmer 產生裝置資訊 file 對於運行調試映像的裝置:
quartus_pgm -c 1 -mjtag -o “ei;device_info.txt;AGFB014R24A” –dev_info
設備所有者使用 quartus_sign 工具或參考實作將條件公鑰條目附加到簽名鏈,用於使用調試所有者的公鑰、必要的授權、設備資訊文字進行調試操作 file,以及適用的進一步限制:
quartus_sign –family=agilex –operation=append_key –previous_pem=debug_chain_private.pem –previous_qky=debug_chain.qky –permission=0x6 –cancel=1 –dev_info=device_info.qkytriction= debug_authorization_public_key.pem secure_debug_auth_chain.qky
設備所有者將完整的簽名鏈發送回調試所有者,調試所有者使用簽名鍊及其私鑰對調試映像進行簽署:
quartus_sign –family=agilex –operation=sign –qky=secure_debug_auth_chain.qky –pem=debug_authorization_private_key.pem unsigned_debug_design.rbfauthorized_debug_design.rbf
您可以使用 quartus_pfg 指令檢查此簽章的安全偵錯位元流的每個部分的簽章鏈,如下所示:
quartus_pfg –check_integrityauthorized_debug_design.rbf
此指令的輸出列印用於產生簽章位元流的條件公鑰的限制值 1,2,17,18。
然後,調試所有者可以對安全授權的調試設計進行編程:
quartus_pgm -c 1 -mjtag -o“p;authorized_debug_design.rbf”
裝置擁有者可以透過取消在安全性偵錯授權簽章鏈中指派的明確金鑰取消ID來撤銷安全偵錯授權。
5.2. HPS 調試證書
僅允許透過 J 對 HPS 偵錯存取連接埠 (DAP) 進行授權存取TAG 介面需要幾個步驟:
英特爾公司。 版權所有。 英特爾、英特爾徽標和其他英特爾標誌是英特爾公司或其子公司的商標。 英特爾根據英特爾的標准保修保證其 FPGA 和半導體產品的性能符合當前規格,但保留隨時更改任何產品和服務的權利,恕不另行通知。 英特爾不承擔因應用或使用此處描述的任何信息、產品或服務而產生的任何責任或義務,除非英特爾明確書面同意。 建議英特爾客戶在依賴任何已發布信息和下訂單購買產品或服務之前獲取最新版本的設備規格。 *其他名稱和品牌可能被認為是他人的財產。
ISO 9001:2015 註冊
5. 進階功能 683823 | 2023.05.23
1. 點選 Intel Quartus Prime 軟體Assignments 選單並選擇Device Device and Pin Options Configuration 標籤。
2. 在「設定」標籤中,透過從下拉式選單中選擇HPS 接腳或SDM 接腳來啟用HPS 偵錯存取連接埠(DAP),並確保未選取「允許在沒有憑證的情況下進行HPS 偵錯」復選框。
圖 14. 為 HPS DAP 指定 HPS 或 SDM 接腳
HPS 偵錯存取連接埠 (DAP)
或者,您可以在 Quartus Prime Settings .qsf 中設定以下分配 file:
set_global_assignment -name HPS_DAP_SPLIT_MODE “SDM PINS”
3. 使用這些設定編譯並載入設計。 4. 建立具有適當權限的簽章鏈來簽署 HPS 偵錯
證書:
quartus_sign –family=agilex –operation=append_key –previous_pem=root_private.pem –previous_qky=root.qky –permission=0x8 –cancel=1 –input_pem=hps_deky_cert_public_key.pem hps_de_cert
5. 從載入調試設計的設備請求未簽署的 HPS 調試證書:
quartus_pgm -c 1 -mjtag -o“e;unsigned_hps_debug.cert;AGFB014R24A”
6. 使用 quartus_sign 工具或參考實作以及 HPS 偵錯簽章鏈對未簽章的 HPS 偵錯憑證進行簽章:
quartus_sign –family=agilex –operation=sign –qky=hps_debug_cert_sign_chain.qky –pem=hps_debug_cert_private_key.pem unsigned_hps_debug.certsigned_hps_debug.cert
英特爾 Agilex® 7 設備安全使用者指南 48
傳送回饋
5. 進階功能 683823 | 2023.05.23
7. 將簽署的 HPS 偵錯憑證傳送回裝置以啟用對 HPS 偵錯存取連接埠 (DAP) 的存取:
quartus_pgm -c 1 -mjtag -o“p;signed_hps_debug.cert”
HPS 偵錯證書僅在產生後有效,直到裝置的下一個電源週期或載入不同類型或版本的 SDM 韌體為止。在重新啟動裝置之前,您必須產生、簽署和編程已簽署的 HPS 偵錯證書,並執行所有偵錯操作。您可以透過重新啟動裝置來使簽署的 HPS 偵錯憑證失效。
5.3.平台認證
您可以產生參考完整性清單 (.rim) file 使用程式設計 file 生成器工具:
quartus_pfg -csigned_encrypted_top.rbf top_rim.rim
請依照以下步驟確保您的設計中的平台認證: 1. 使用 Intel Quartus Prime Pro Programmer 設定您的裝置
您為其建立了參考完整性清單的設計。 2. 使用平台證明驗證程序透過向平台發出命令來註冊設備
SDM透過SDM郵箱在重新載入時建立設備ID憑證和韌體憑證。 3. 使用 Intel Quartus Prime Pro Programmer 根據設計重新配置您的裝置。 4. 使用平台證明驗證器向 SDM 發出命令以取得證明設備 ID、韌體和別名證書。 5. 使用證明驗證者發出SDM信箱指令來取得證明證據,驗證者檢查回傳的證據。
您可以使用 SDM 信箱指令實作自己的驗證程式服務,或使用 Intel 平台證明驗證程式服務。有關英特爾平台證明驗證程序服務軟體、可用性和文件的更多信息,請聯繫英特爾支援。
相關連結 Intel Agilex 7 裝置系列接腳連接指南
5.4.物理抗Tamper
您啟用物理防tamper 功能使用以下步驟: 1. 選擇偵測到的事件所需的回應amper 事件 2. 配置所需的 tamper檢測方法及參數3.包括抗tamper IP 在您的設計邏輯中,以協助管理反tamper
事件
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 49
5. 進階功能 683823 | 2023.05.23
5.4.1.抗T細胞amp呃回應
您啟用物理防amp呃,透過從 Anti-t 選擇一個回應amp錯誤回應:Assignments Device Device and Pin Options Security Anti-T 上的下拉列表amp呃選項卡。預設情況下,防tamp呃響應被禁用。五類防amp呃回覆可用。當您選擇所需的回應時,將啟用啟用一種或多種偵測方法的選項。
圖 15. 可用的抗 Tamp呃回應選項
Quartus Prime 設定.gsf 中的對應分配 file 如下:
set_global_assignment -名稱 ANTI_TAMPER_RESPONSE“通知設備擦除設備鎖定和歸零”
當您啟用反tamp回應後,您可以選擇兩個可用的 SDM 專用 I/O 引腳來輸出 tamp使用分配元件和引腳選項配置配置引腳選項視窗了解事件偵測和回應狀態。
英特爾 Agilex® 7 設備安全使用者指南 50
傳送回饋
5. 進階功能 683823 | 2023.05.23
圖 16. T 可用的 SDM 專用 I/O 接腳amp錯誤事件偵測
您也可以在設定中進行以下引腳分配 file:設定全域分配-名稱USE_TAMPER_DETECT SDM_IO15 set_global_assignment -name ANTI_TAMPER_RESPONSE_FAILED SDM_IO16
5.4.2.抗T細胞amp檢測
您可以單獨啟用頻率、溫度和體積tagSDM 的偵測功能。 FPGA 檢測依賴包含 Anti-Tamp您設計中的 er Lite 英特爾 FPGA IP。
筆記:
SDM頻率和音量tag等amp錯誤偵測方法取決於內部參考和測量硬件,這些參考和測量硬體可能因設備而異。英特爾建議您描述 t 的行為特徵amp呃檢測設定。
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 51
5. 進階功能 683823 | 2023.05.23
頻率tamper 偵測在設定時脈來源上運作。啟用頻率 tamp為了進行偵測,您必須在「Assignments Device」(分配元件)和「Pin Options」(引腳選項)「General」(一般)標籤上的「Configuration Clock Source」(配置時脈來源)下拉清單中指定除“Internal Oscillator”(內部振盪器)以外的選項。您必須確保在啟用頻率 t 之前啟用從內部振盪器執行設定 CPU 複選框。amp呃檢測。圖 17. 將 SDM 設定為內部振盪器
啟用頻率 tamper偵測,選擇啟用頻率tamper 偵測複選框並選擇所需的頻率 tamp從下拉式選單中選擇檢測範圍。圖 18. 使能頻率 Tamp檢測
英特爾 Agilex® 7 設備安全使用者指南 52
傳送回饋
5. 進階功能 683823 | 2023.05.23
或者,您可以啟用頻率 Tamp透過對 Quartus Prime 設定 .qsf 進行以下變更來進行偵測 file:
設定全域分配-名稱 AUTO_RESTART_CONFIGURATION 關閉 設定全域分配-名稱 DEVICE_INITIALIZATION_CLOCK OSC_CLK_1_100MHZ 設定全域分配-名稱 RUN_CONFIG_CPU_FROM_INT_OSC 開啟 設定全域分配-名稱 RUN_CONFIG_CPU_FROM_INT_OSC 開啟 設定全域分配名稱AMPset_global_assignment -name FREQUENCY_T 上的 ER_DETECTIONAMPER_DETECTION_RANGE 35
啟用溫度 tamper檢測,選擇啟用溫度tamper 偵測複選框並在對應欄位中選擇所需的溫度上限和下限。預設情況下,上限和下限填充為設計中所選裝置的相關溫度範圍。
啟用音量tag等amp檢測後,您可以選擇啟用 VCCL 卷中的一個或兩個tag等amper 偵測或啟用 VCCL_SDM 卷tag等amper 偵測複選框並選擇所需的 Voltag等amper 檢測觸發百分比tage 在對應的欄位中。
圖 19. 啟用音量tagTamp檢測
或者,您可以啟用 VoltagTamper 透過在 .qsf 中指定以下分配進行檢測 file:
設定全域分配-名稱ENABLE_TEMPERATURE_TAMPset_global_assignment -name TEMPERATURE_T 上的 ER_DETECTIONAMPER_UPPER_BOUND 100 set_global_assignment -name ENABLE_VCCL_VOLTAGE_TAMPER_DETECTION ON set_global_assignment -name ENABLE_VCCL_SDM_VOLTAGE_TAMPER_DETECTION 開啟
5.4.3.抗T細胞amper Lite 英特爾 FPGA IP
抗Tamper Lite Intel FPGA IP 可在 Intel Quartus Prime Pro Edition 軟體的 IP 目錄中找到,可促進您的設計與 SDM 之間的雙向通信,以實現amp呃事件。
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 53
圖 20. 抗 Tamper Lite 英特爾 FPGA IP
5. 進階功能 683823 | 2023.05.23
IP 提供以下訊號,您可以根據需要連接到您的設計:
表 5.
抗Tamper Lite Intel FPGA IP I/O 訊號
訊號名稱
方向
描述
gpo_sdm_at_event gpi_fpga_at_event
輸出輸入
SDM 偵測到的 SDM 訊號到 FPGA 結構邏輯amp呃事件。 FPGA 邏輯有大約 5ms 的時間來執行任何所需的清理並透過 gpi_fpga_at_response_done 和 gpi_fpga_at_zeroization_done 回應 SDM。 SDM 繼續進行 tamp當 gpi_fpga_at_response_done 置位或在指定時間內未收到回應時執行回應操作。
FPGA中斷到SDM,您設計的反tamper 檢測電路已偵測到amper 事件和 SDM tamp應該觸發呃響應。
gpi_fpga_at_response_done
輸入
FPGA 中斷至 SDM,表示 FPGA 邏輯已執行所需的清理。
gpi_fpga_at_zeroization_d 一
輸入
FPGA 向 SDM 發出訊號,告知 FPGA 邏輯已完成任何所需的設計資料歸零。這個訊號是amp當 gpi_fpga_at_response_done 置位時導致。
5.4.3.1. 發布信息
IP 版本控制方案 (XYZ) 編號從一個軟體版本變更為另一個軟體版本。變化:
· X 表示IP 的主要修訂。如果更新 Intel Quartus Prime 軟體,則必須重新產生 IP。
· Y 表示該 IP 包含新功能。 重新生成您的 IP 以包含這些新功能。
· Z 表示IP 包含微小的變化。 重新生成您的 IP 以包含這些更改。
表 6.
抗Tamper Lite 英特爾 FPGA IP 發布訊息
IP版本
物品
說明20.1.0
英特爾 Quartus Prime 版本
21.2
發布日期
2021.06.21
英特爾 Agilex® 7 設備安全使用者指南 54
傳送回饋
5. 進階功能 683823 | 2023.05.23
5.5.將設計安全功能與遠端系統更新結合使用
遠端系統更新 (RSU) 是一項英特爾 Agilex 7 FPGA 功能,可協助更新配置 file以一種穩健的方式。 RSU 與身份驗證、韌體聯合簽章和位元流加密等設計安全功能相容,因為 RSU 不依賴配置位元流的設計內容。
使用 .sof 建立 RSU 映像 Files
如果您將私鑰儲存在本機 file系統,您可以使用 .sof 的簡化流程產生具有設計安全功能的 RSU 映像 files 作為輸入。使用 .sof 產生 RSU 映像 file,您可以按照產生遠端系統更新映像部分中的說明進行操作 File使用程式設計 File Intel Agilex 7 設定使用者指南的產生器。對於每個 .sof file 在輸入上指定 File在選項卡上,按一下屬性...按鈕並為簽章和加密工具指定適當的設定和金鑰。程式設計 file 生成器工具在創建 RSU 編程時自動對工廠和應用程式映像進行簽署和加密 files.
或者,如果您將私鑰儲存在 HSM 中,則必須使用 quartus_sign 工具,因此使用 .rbf files。本節的其餘部分詳細介紹了使用 .rbf 產生 RSU 映像的流程的變化 files 作為輸入。您必須對 .rbf 格式進行加密和簽名 file在選擇它們作為輸入之前 files 表示 RSU 映像;但是,RSU 啟動訊息 file 不得加密,而只能簽署。程式設計 File 生成器不支援修改 .rbf 格式的屬性 files.
以下前amp文件演示了對生成遠端系統更新映像部分中的命令的必要修改 File使用程式設計 File Intel Agilex 7 設定使用者指南的產生器。
使用 .rbf 產生初始 RSU 映像 Files:命令修改
使用 .rbf 產生初始 RSU 映像 Files 部分,修改步驟 1 中的命令,以使用本文檔前面部分中的說明根據需要啟用設計安全功能。
對於前amp文件,您將指定一個已簽署的韌體 file 如果您使用韌體共同簽名,則使用 Quartus 加密工具加密每個 .rbf file,最後使用quartus_sign工具對每一個進行簽名 file.
在步驟 2 中,如果您啟用了韌體共同簽名,則必須在從工廠映像建立啟動 .rbf 時使用附加選項 file:
quartus_pfg -c factory.sof boot.rbf -o rsu_boot=ON -o fw_source=signed_agilex.zip
建立啟動訊息 .rbf 後 file,使用quartus_sign工具對.rbf進行簽名 file。您不得加密啟動訊息 .rbf file.
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 55
5. 進階功能 683823 | 2023.05.23
產生應用程式鏡像:指令修改
若要產生具有設計安全功能的應用程式映像,請修改產生應用程式映像中的命令以使用啟用了設計安全功能的 .rbf(包括共同簽署的韌體(如果需要)),而不是原始應用程式 .sof file:
quartus_pfg -c cosigned_fw_signed_encrypted_application.rbf secure_rsu_application.rpd -o 模式=ASX4 -o 位元交換=ON
產生出廠更新鏡像:指令修改
建立啟動訊息 .rbf 後 file,您使用 quartus_sign 工具對 .rbf 進行簽名 file。您不得加密啟動訊息 .rbf file.
若要產生 RSU 出廠更新映像,請修改產生原廠更新映像中的指令以使用 .rbf file 啟用設計安全功能並新增選項以指示共同簽署的韌體使用情況:
quartus_pfg -c cosigned_fw_signed_encrypted_factory.rbf secure_rsu_factory_update.rpd -o mode=ASX4 -o bitswap=ON -o rsu_upgrade=ON -o fw_source=signed_agilex.z=signed_lex
相關連結 Intel Agilex 7 設定使用者指南
5.6. SDM 加密服務
Intel Agilex 7 裝置上的 SDM 提供 FPGA 結構邏輯或 HPS 可以透過對應 SDM 郵件匣介面要求的加密服務。有關所有 SDM 加密服務的郵箱命令和資料格式的更多信息,請參閱《Intel FPGA 和結構化 ASIC 安全方法使用者指南》中的附錄 B。
若要存取 SDM 信箱介面到 FPGA 結構邏輯以實現 SDM 加密服務,您必須在設計中實例化郵件信箱用戶端 Intel FPGA IP。
從 HPS 存取 SDM 信箱介面的參考程式碼包含在 Intel 提供的 ATF 和 Linux 程式碼中。
相關連結 郵件信箱客戶端 Intel FPGA IP 使用者指南
5.6.1.供應商授權啟動
英特爾為 HPS 軟體提供了一個參考實現,該實現利用供應商授權的啟動功能從第一個版本開始對 HPS 啟動軟體進行身份驗證。tage 引導程式一直到 Linux 核心。
相關連結 Intel Agilex 7 SoC 安全啟動示範設計
英特爾 Agilex® 7 設備安全使用者指南 56
傳送回饋
5. 進階功能 683823 | 2023.05.23
5.6.2.安全資料對象服務
您透過SDM郵箱傳送命令來執行SDOS物件加密和解密。配置 SDOS 根密鑰後,您可以使用 SDOS 功能。
相關資訊 安全資料物件服務根金鑰配置第 30 頁
5.6.3. SDM 加密原語服務
您透過 SDM 信箱傳送命令來啟動 SDM 加密原語服務操作。有些加密原語服務要求向SDM傳輸或從SDM傳輸的資料多於郵箱介面可以接受的資料。在這些情況下,格式命令會變更以提供指向記憶體中資料的指標。此外,您必須變更郵件信箱用戶端 Intel FPGA IP 的實例化,才能使用來自 FPGA 結構邏輯的 SDM 加密原語服務。您還必須將啟用加密服務參數設為 1,並將新公開的 AXI 啟動器介面連接到設計中的記憶體。
圖 21. 在郵件信箱客戶端 Intel FPGA IP 中啟用 SDM 加密服務
5.7.比特流安全設定 (FM/S10)
FPGA 位元流安全選項是一組策略,用於在定義的時間段內限制指定的功能或操作模式。
Bitstream Security 選項由您在 Intel Quartus Prime Pro Edition 軟體中設定的標誌組成。這些標誌會自動複製到設定位元流中。
您可以透過使用對應的安全設定 eFuse 在裝置上永久實施安全選項。
若要使用設定位元流或裝置 eFuse 中的任何安全性設置,您必須啟用身份驗證功能。
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 57
5. 進階功能 683823 | 2023.05.23
5.7.1.選擇並啟用安全性選項
若要選擇並啟用安全選項,請執行下列操作: 從「Assignments」功能表中,選擇「Device」、「Device and Pin Options」、「Security」、「更多選項」… 圖 22. 選擇並啟用安全選項
然後從下拉清單中選擇要啟用的安全選項的值,如下例所示amp樂:
圖 23. 選擇安全選項的值
英特爾 Agilex® 7 設備安全使用者指南 58
傳送回饋
5. 進階功能 683823 | 2023.05.23
以下是Quartus Prime Settings.qsf中的相應更改 file:
set_global_assignment -名稱 SECU_OPTION_DISABLE_JTAG “ON CHECK” set_global_assignment -name SECU_OPTION_FORCE_ENCRYPTION_KEY_UPDATE “ON STICKY” set_global_assignment -name SECU_OPTION_FORCE_SDM_CLOCK_TO_OP_OSC ON setcL_UYORCE_SDM_CLOCK_TO_OP_OSC ON set_lo_Ly_ES_UUUm_L_B. signment -name SECU_OPTION_LOCK_SECURITY_EFUSES ON set_全域分配-名稱SECU_OPTION_DISABLE_HPS_DEBUG 開啟set_global_分配-名稱SECU_OPTION_DISABLE_ENCRYPTION_KEY_IN_EFUSES 開啟名稱SECU_OPTION_DISABLE_ENCRYPTION_KEY_IN_EFUSES 開啟編號_分配-名稱SECU_OPTION_DISABLE_ENCRYPTION_KEY_IN_EFUSES 開啟set_global_分配-名稱SECU_OPTION_DISABLE_ENCRYPTION_KEY_IN_EFUSES ON set_global_assignment -nameU_OPTION_DISABL_URYWRYP. LE_PUF_WRAPPED_ENCRYPTION_KEY ON
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 59
683823 | 2023.05.23 反饋意見
故障排除
本章介紹您在嘗試使用裝置安全功能時可能遇到的常見錯誤和警告訊息以及解決這些問題的措施。
6.1.在 Windows 環境中使用 Quartus 指令出現錯誤
錯誤 quartus_pgm:未找到指令 說明 當嘗試使用 WSL 在 Windows 環境中的 NIOS II Shell 中使用 Quartus 指令時,會顯示此錯誤。解決方法 此指令適用於Linux環境;對於 Windows 主機,使用下列指令: quartus_pgm.exe -h 同樣,將相同的語法套用至其他 Quartus Prime 指令,例如 quartus_pfg、quartus_sign、quartus_encrypt 等指令。
英特爾公司。 版權所有。 英特爾、英特爾徽標和其他英特爾標誌是英特爾公司或其子公司的商標。 英特爾根據英特爾的標准保修保證其 FPGA 和半導體產品的性能符合當前規格,但保留隨時更改任何產品和服務的權利,恕不另行通知。 英特爾不承擔因應用或使用此處描述的任何信息、產品或服務而產生的任何責任或義務,除非英特爾明確書面同意。 建議英特爾客戶在依賴任何已發布信息和下訂單購買產品或服務之前獲取最新版本的設備規格。 *其他名稱和品牌可能被認為是他人的財產。
ISO 9001:2015 註冊
6. 故障排除 683823 | 2023.05.23
6.2.產生私鑰警告
警告:
指定的密碼被認為是不安全的。英特爾建議至少使用 13 個字元的密碼。建議您使用 OpenSSL 執行檔變更密碼。
openssl ec 輸入-出去-aes256
描述
此警告與密碼強度有關,並在嘗試透過發出以下命令來產生私鑰時顯示:
quartus_sign –family=agilex –operation=make_private_pem –curve=secp3841 root.pem
解決方法 使用 openssl 執行檔指定更長、更強的密碼。
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 61
6. 故障排除 683823 | 2023.05.23
6.3.將簽章金鑰新增至 Quartus 專案錯誤
錯誤 …File 包含根密鑰資訊...
描述
新增簽名金鑰.qky後 file 到Quartus工程中,需要重新編譯.sof file。當你加入這個重新生成的.sof file 使用 Quartus Programmer 到所選裝置時,出現下列錯誤訊息表明 file 包含根密鑰資訊:
新增失敗file-路徑名稱> 到程式設計師。這 file 包含根密鑰資訊 (.qky)。但是,Programmer 不支援位元流簽章功能。您可以使用程式設計 File 生成器來轉換 file 到簽名的原始二進位文件 file (.rbf) 用於配置。
解決
使用 Quartus 編程 file 生成器來轉換 file 轉換為簽名的原始二進位文件 File .rbf 用於配置。
相關連結 使用 quartus_sign 指令對設定位元流進行簽章(第 13 頁)
英特爾 Agilex® 7 設備安全使用者指南 62
傳送回饋
6. 故障排除 683823 | 2023.05.23
6.4.生成 Quartus Prime 編程 File 不成功
錯誤
錯誤 (20353):QKY 中的公鑰 X 與 PEM 中的私鑰不匹配 file.
錯誤 (20352):無法透過 python 腳本agilex_sign.py 對位元流進行簽署。
錯誤:Quartus Prime 編程 File 生成器不成功。
說明 如果您嘗試使用不正確的私鑰 .pem 對配置位元流進行簽名 file 或 .pem file 與新增至項目的 .qky 不匹配,會顯示上述常見錯誤。解決方法 確保使用正確的私鑰 .pem 對位元流進行簽署。
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 63
6. 故障排除 683823 | 2023.05.23
6.5.未知參數錯誤
錯誤
錯誤(23028):未知參數“ûc”。請參閱 –help 以了解法律論證。
錯誤 (213008):程式選項字串「ûp」非法。請參閱 –help 以了解合法的程式選項格式。
說明 如果從 .pdf 複製並貼上命令列選項 file 在 Windows NIOS II Shell 中,您可能會遇到如上所示的未知參數錯誤。解決方法 在這種情況下,您可以手動輸入命令,而不是從剪貼簿貼上。
英特爾 Agilex® 7 設備安全使用者指南 64
傳送回饋
6. 故障排除 683823 | 2023.05.23
6.6。位元流加密選項停用錯誤
錯誤
無法完成加密 file 設計.sof,因為它是在禁用比特流加密選項的情況下編譯的。
描述 如果在停用位元流加密選項的情況下編譯專案後嘗試透過 GUI 或命令列加密位元流,Quartus 將拒絕該命令,如上所示。
解決方法 確保在透過 GUI 或命令列啟用位元流加密選項的情況下編譯專案。若要在 GUI 中啟用此選項,您必須選取此選項的核取方塊。
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 65
6. 故障排除 683823 | 2023.05.23
6.7.指定密鑰的正確路徑
錯誤
錯誤 (19516):偵測到編程 File 生成器設定錯誤:找不到“key_”file'。確保 file 位於預期位置或更新setting.sec
錯誤 (19516):偵測到編程 File 生成器設定錯誤:找不到“key_”file'。確保 file 位於預期位置或更新設定。
描述
如果您使用儲存在 file 系統中,您需要確保它們為用於位元流加密和簽署的金鑰指定正確的路徑。如果程式設計 File 生成器無法偵測到正確的路徑,顯示上述錯誤訊息。
解決
請參閱 Quartus Prime 設定 .qsf file 找到密鑰的正確路徑。確保使用相對路徑而不是絕對路徑。
英特爾 Agilex® 7 設備安全使用者指南 66
傳送回饋
6. 故障排除 683823 | 2023.05.23
6.8。使用不支援的輸出 File 類型
錯誤
quartus_pfg -c design.sof 輸出_file.ebf -o Finalize_operation=ON -o qek_file=ae.qek -o 簽名=ON -o pem_file=sign_private.pem
錯誤 (19511):不支援的輸出 file 類型(ebf)。使用“-l”或“-list”選項顯示支援的 file 類型資訊。
說明 使用 Quartus 編程時 File 生成器產生加密和簽署的設定位元流,如果不支援的輸出,您可能會看到上述錯誤 file 類型已指定。解決方法 使用 -l 或 –list 選項查看支援的列表 file 類型。
傳送回饋
英特爾 Agilex® 7 設備安全使用者指南 67
683823 | 2023.05.23 反饋意見
7. Intel Agilex 7 設備安全使用者指南檔案
有關本使用者指南的最新版本和先前版本,請參閱 Intel Agilex 7 裝置安全使用者指南。如果未列出 IP 或軟體版本,則適用先前 IP 或軟體版本的使用者指南。
英特爾公司。 版權所有。 英特爾、英特爾徽標和其他英特爾標誌是英特爾公司或其子公司的商標。 英特爾根據英特爾的標准保修保證其 FPGA 和半導體產品的性能符合當前規格,但保留隨時更改任何產品和服務的權利,恕不另行通知。 英特爾不承擔因應用或使用此處描述的任何信息、產品或服務而產生的任何責任或義務,除非英特爾明確書面同意。 建議英特爾客戶在依賴任何已發布信息和下訂單購買產品或服務之前獲取最新版本的設備規格。 *其他名稱和品牌可能被認為是他人的財產。
ISO 9001:2015 註冊
683823 | 2023.05.23 反饋意見
8. Intel Agilex 7 設備安全使用者指南的修訂歷史記錄
文檔版本 2023.05.23
2022.11.22 2022.04.04 2022.01.20
2021.11.09
文件/資源
![]() |
英特爾 Agilex 7 設備安全 [pdf] 使用者手冊 Agilex 7 設備安全、Agilex 7、設備安全、安全 |