硬體安全的進階主題與趨勢
在Arm的MTE(記憶體標記擴充)中,記憶體每16位元組附加4位元的標記,指標的高位元也放入4位元的標記,每次存取時由CPU確認兩者是否一致。考慮以指向已釋放區域的舊指標存取該區域的錯誤。假設重新配置區域時的新標記,是從16種值中均勻隨機選出,則標記偶然一致而漏掉錯誤的機率是下列何者?
- A1/16(約6.3%)
- B1/4(25%)
- C15/16(約93.8%)
查看答案與解析
正確答案:A. 1/16(約6.3%)
標記為4位元,可取的值有 2⁴ = 16 種。若新標記從16種值中均勻選出,與舊指標的標記偶然一致的機率為 1/16 = 6.25%(約6.3%),其餘 15/16 的情況會被偵測為不一致。即使只有1次存取,也有約94%的機率被發現,因此能在大量設備上運作的同時發現錯誤,並提高攻擊的難度。若在配置時讓相鄰區域一定帶有不同的標記,溢出到相鄰區域的錯誤就能確實被偵測。
- A. 正確。這是與 2⁴ = 16 種值中的1種一致的機率。
- B. 這是除以標記位元數4的值。標記可取的值的數量是 2⁴ = 16。
- C. 這是被偵測為不一致的機率(1 − 1/16)。