檢測服務器或者PC是否支持IntelSGX的原理和方式

原理和規則

英特爾® Software Guard 擴展平臺支持包括三個方面

  1. BIOS是否支持
  2. CPU是否支持
  3. 是否安裝了PSW,平臺軟件包。

不支持的情況分爲以下三種

  • CPU 不支持英特爾 SGX
  1. BIOS 不支持英特爾 SGX
  2. BIOS 和 CPU 支持英特爾 SGX,但 BIOS 明確禁用英特爾 SGX

支持sgx cpu型號列表

Intel® Core i7-6700K SR2L0
Intel® Core i5-6400T SR2L1
Intel® Core i7-6700 SR2L2
Intel® Core i7-6700T SR2L3
Intel® Core i5-6600K SR2L4
Intel® Core i5-6600 SR2L5
Intel® Core i5-6500 SR2L6
Intel® Core i5-6400 SR2L7
Intel® Core i5-6500T SR2L8
Intel® Core i5-6600T SR2L9
Intel® Xeon® E3-1280 v5 SR2LC
Intel® Xeon® E3-1240 v5 SR2LD
Intel® Xeon® E3-1230 v5 SR2LE
Intel® Xeon® E3-1270 v5 SR2LF
Intel® Xeon® E3-1220 v5 SR2LG
Intel® Xeon® E3-1260L v5 SR2LH
Intel® Xeon® E3-1225 v5 SR2LJ
Intel® Xeon® E3-1275 v5 SR2LK
Intel® Xeon® E3-1245 v5 SR2LL
Intel® Xeon® E3-1235L v5 SR2LM
Intel® Xeon® E3-1240L v5 SR2LN

開啓IntelSGX的方式

重啓電腦,進入BIOS設置後,在高級選項的CPU設置裏。尋找SGX相關選項:

共有三種 BIOS 設置。

  • Enabled(啓用) 英特爾 SGX 已啓用,可用於各應用程序。

  • Software Controlled(軟件控制)英特爾 SGX 可通過軟件應用啓用,只有這樣才能投入使用(稱爲“軟件選擇”)。 通過軟件選擇啓用英特爾 SGX 要求系統重啓。

  • Disabled(禁用)英特爾 SGX 已明確禁用,無法通過軟件應用啓用。 該設置只能在 BIOS 設置屏幕中更改。

第一和第三種很容易理解。下面主要解釋Software Controlled的意義(我的電腦就是這種方式)

Software Controlled

如果英特爾 SGX 設置爲 Software Controlled,英特爾 SGX 最初處於禁用狀態,需通過軟件應用在 SDK 中進行以下幾次調用,才能將其設爲啓用狀態:

sgx_enable_device()
sgx_cap_enable_device()
爲什麼會有software controller?
因爲SGX啓動後悔保留很大一塊RAM空間,用於EPC安全頁面緩存。系統選擇採用軟件激活的方式啓動SGX,而不是一直激活的狀態,避免SGX對於系統資源的消耗影響了其他程序和進程。

如何查詢自己的CPU是否支持Intel SGX

CPU支持查詢

CPU信息,intel cpu第六代開始支持sgx
在這裏插入圖片描述
在Intel官網找到對應型號,裏面會標註是否支持
https://ark.intel.com/content/www/us/en/ark/products/88185/intel-core-i5-6400-processor-6m-cache-up-to-3-30-ghz.html
在這裏插入圖片描述
說明我的cpu是支持SGX的,但需要安裝Intel ME軟件配合使用。

BIOS支持查詢

在進入bios尋找CPU相關選項,找到後Enable

我的是華碩ASUS主板,本來是沒有這個選項。我在Tool裏面聯網升級後,出現了SGX的支持。說明主板的支持也分爲硬件和軟件兩個方面。
在這裏插入圖片描述

如何檢查環境已經配置好了呢?

  1. intel sgx sdk中有專門的方法來檢查硬件環境,這裏我不在展開。
  2. 這裏找到了幾款機遇sdk編譯好的exe工具,點擊可以直接運行,查看結果。

在這裏插入圖片描述

如果環境不支持就會報錯,根據錯誤提示調整環境後,顯示上面結果。如果環境沒準備好,跑程序會出現很多其他問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章