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

關於針對濫用間接分支預測之Spectre變種(分支目標注入)的對策retpoline與IBRS,說明的組合正確的是下列何者?

  1. Aretpoline是重新設計CPU電路、移除預測器的對策,IBRS是由編譯器把間接分支指令改寫成其他指令序列的對策
  2. Bretpoline是把間接分支換成不依賴預測器之指令序列的軟體對策,IBRS是限制間接分支預測的CPU功能
  3. Cretpoline與IBRS都會停止CPU的推測執行功能本身,無論使用哪一個,推測執行帶來的效能提升都會消失
查看答案與解析

正確答案:B. retpoline是把間接分支換成不依賴預測器之指令序列的軟體對策,IBRS是限制間接分支預測的CPU功能

retpoline由編譯器把間接分支指令換成結合call與ret的指令序列,讓CPU使用返回位址的預測,而非可能被濫用的間接分支預測器,並讓推測執行在無害的迴圈中空轉。IBRS是透過微碼更新等加入的CPU控制功能,例如限制核心中的間接分支預測,使其不依循使用者程式所訓練的內容。舊的CPU每次切換IBRS都很耗時,因此retpoline被廣泛使用,新的CPU則提供了可一直保持啟用的改良版(eIBRS)。不過,有些CPU的返回位址預測也會依賴另一個預測器,2022年發表的Retbleed等已顯示只靠retpoline並不足夠的情況。

  • A. 正好相反。retpoline是由編譯器進行的軟體對策,IBRS是CPU的功能。
  • B. 正確。一個以軟體避開預測器,一個以CPU功能限制預測。
  • C. 兩者都不會消除推測執行本身,而是避開或限制可能被濫用的預測。
練習這個領域 前往領域頁面

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

  1. 某項處理在加入推測執行的對策之前需要10秒,期間呼叫了500萬次系統呼叫。假設加入對策後,每次系統呼叫的處理時間從0.4 µs增加為0.6 µs,其他部分的時間不變。整個處理時間的增加比例是下列何者?
  2. 以格為基礎的後量子密碼,會反覆進行次數 n = 256 的多項式乘法。若把所有係數兩兩相乘的單純方法約需 n² 次乘法,使用數論轉換(NTT)的方法約需 n log₂ n 次,則使用NTT後乘法次數約減為幾分之一,最接近的是下列何者?
  3. ML-KEM-768的公開金鑰為1,184位元組、密文為1,088位元組,而橢圓曲線金鑰交換X25519的公開值為32位元組。ML-KEM-768的公開金鑰是X25519公開值的幾倍,正確的是下列何者?
  4. 在ML-KEM的解封裝中,會由以私密金鑰解密所收到之密文的結果重新產生密文,並與收到的密文比較是否一致。關於這部分實作的注意事項,正確的是下列何者?
  5. 要設計一款會使用10年以上之嵌入式設備的SoC。為因應未來密碼的遷移(例如遷移到後量子密碼),硬體與韌體的設計中適當的是下列何者?