硬體安全的進階主題與趨勢
關於名為CHERI的指令集擴充所使用的能力(capability),正確的說明是下列何者?
- A先以CPU內部的金鑰加密指標的值再放進記憶體,每次使用時解密,使其他程式與OS無法讀取指標的值
- B每執行1道指令,CPU就確認附加在程式執行檔上的數位簽章,不執行沒有簽章的指令
- C讓指標帶有可存取的範圍與權限,並在記憶體上以軟體無法改寫的1位元標記,區分它是否以正確方式產生
查看答案與解析
正確答案:C. 讓指標帶有可存取的範圍與權限,並在記憶體上以軟體無法改寫的1位元標記,區分它是否以正確方式產生
CHERI以能力取代只有位址的指標,能力整合了位址、可指向範圍的上限與下限,以及讀、寫、執行等權限(64位元位址時壓縮收在128位元內,另外帶有1位元的標記)。CPU在每次存取時確認範圍與權限,因此能以硬體阻止陣列越界讀寫這類記憶體安全的錯誤。只有以正確的指令產生能力時才會加上標記,若當作一般資料覆寫,標記就會消失,因此無法偽造指標。劍橋大學等持續進行研究,Arm在2020年代前期向研究者提供了以此為基礎的原型處理器Morello與評估板。
- A. 它不是隱藏指標,而是讓指標帶有可用範圍與權限,以阻止越界存取。
- B. 確認執行檔的簽章由安全開機等機制負責,與能力是不同的機制。
- C. 正確。以範圍、權限與標記三者,防止越界存取與指標偽造。