Note: Intel ME disable

目前Intel 平台已經全部導入ME(Management Engine)的設計, 也因為配合現在安全需求會有一個TEE的執行環境, 所以Intel 開始推他的SGX(Software Guard Extensions), 而要執行TEE Application跟OS溝通勢必要有一個RPCs溝通的管道, 系統內通常會載入一個專門的Driver負責跟TEE環境溝通, 而配合一般使用者環境會有它搭配的SDK開發, 而其中有一個環節是Intel DAL(dynamic application Loader)這是設計來讓載入有效簽名的Java Applet 到 Intel ME (from ME 7.1 support), 因此它需要跟 ME/TEE等東西打交道

本來上面講的東西Intel 不太對外公佈細節, 畢竟越少談, 越不容易被人找到漏洞, 不過這幾年也陸續傳出被發現各種資安漏洞如Intel-SA-0073/Intel-SA-0075/Intel-SA-0086 , 又被攻擊說因為ME不公開也是有資安疑慮, 變成某些國防使用會有不可預知的風險等等, 不知道是不是如此, Intel 把DAL Host Interface 就公開在Github上了, 算是踏出一小步

那這個有啥用呢, 用處就是搭配 me-disable 這個Linux 上的code 可以參考做出其他環境的版本, 而且因為有Intel DAL Host Interface的資料,  可以更清楚他的Command定義 可以從原碼中找到透過 “MKHI_GEN_GROUP_ID", “GEN_SET_MFG_MRST_AND_HALT_CMD" 這個命令去Reset & Halt ME的

這個功能是實際上對一般人無用但是對很多從事x86產業的OEM/ODM廠商來說, 就算是基本工具了, 因為ME啟動的情況下, 透過他的PCH會把某些東西鎖住, 無法實際操作, 這個設計也是因為安全需求, 但是Intel當初又不願意公開細節, 畢竟總是有更新系統Firmware的時刻, 多數廠商目前都採用各種奇怪的手法或是乾脆不更新某塊區塊了.

Intel 這個版本已經把Windows 下 User Application 如何找到Driver interface跟下指令的部份完全公開

Update: Sept. 08 2018

A Windows ME Disable by Myself
ME_Disable

ref.
Secret of Intel Management Engine by Igor Skochinsky

Wikipedia – Intel Active Management Technology

 

廣告

Note: RPMB Partition

RPMB 是從eMMC 4.4  開始引入的設計,全稱叫做Replay Protected Memory Block, 從名稱就知道是一個有特殊保護設計的區域,透過SHA-256 MAC (Message Authentication Code)SHA-256機制保護,也就是要寫入該區域時,Host 需要將要寫入的資料透過一個Key去做HMAC讓eMMC controller 去驗證是否為有效資料,目前常見使用環境下是設備生產時會寫入Key 到eMMC/UFS 內的OTP區域,然後將該Key也存放在TEE 區域內,透過TEE 去保護該Key 不會洩漏到裝置外部,達到保護該區域的資料安全可靠

他有幾個特徵它同BOOT Partition一樣是128KB 為最小單位,最大則為32MB,同Boot 一樣是透過CSD register 的值去設定大小, 一般出廠原生設定為32, 剛好是4MB

RPMB 一般用來存裝置內的各種生產時需要寫入的各種公鑰與裝置相關設定等等,如序號,因為讀取時不需要Key 所以可以讓一般應用讀取

ref.