硬體安全的進階主題與趨勢

關於Arm的指標驗證(PAC)的機制,正確的是下列何者?

  1. A每次使用指標時,都以系統呼叫詢問OS,請OS確認該指標的值是否正確
  2. B由指標的值與情境值,以CPU內部的金鑰計算簡短的驗證碼,放入指標的高位元,並在使用前加以確認
  3. C先以CPU內部的金鑰加密指標的所有位元再存入記憶體,每次使用前在CPU內部解密
查看答案與解析

正確答案:B. 由指標的值與情境值,以CPU內部的金鑰計算簡短的驗證碼,放入指標的高位元,並在使用前加以確認

在64位元指標中不用於虛擬位址的高位元,放入以CPU內部金鑰、由指標的值與情境值(例如堆疊指標)計算出的驗證碼。在使用函式返回位址等之前,以專用指令重新計算並比較,不一致時就把它變成無法使用的位址,因此能提高覆寫堆疊上返回位址之攻擊(ROP等)的難度。軟體無法讀取金鑰,因此攻擊者無法產生與改寫後指標相符的驗證碼。不過,驗證碼的長度取決於虛擬位址寬度等設定,多半只有十幾位元以下,在可以多次猜測的情況下,必須考慮偶然一致的機率。

  • A. 每次都詢問OS會非常慢。確認是以CPU的指令進行。
  • B. 正確。不知道金鑰的攻擊者無法產生與改寫後指標相符的驗證碼。
  • C. 指標的值本身不加密。位址部分保持原樣,只在高位元附加驗證碼。
練習這個領域 前往領域頁面

硬體安全的進階主題與趨勢的其他題目

  1. 關於Intel的CET(控制流程強制技術)等所採用的硬體影子堆疊,正確的說明是下列何者?
  2. 關於以硬體支援控制流程完整性的功能,保護函式返回者與保護經由函式指標等之間接呼叫或跳躍者的組合,正確的是下列何者?
  3. DRAM越微縮,越容易發生列鎚攻擊(Rowhammer)的理由,正確的是下列何者?
  4. 以DRAM內部的TRR(目標列刷新)對抗列鎚攻擊的對策,在研究中曾被繞過,其理由正確的是下列何者?
  5. 「只要使用具ECC的記憶體,就不必擔心列鎚攻擊」這種想法的問題點,正確的是下列何者?