硬體安全
下列關於為何即使推測執行的指令結果被取消,Spectre這類攻擊仍會洩漏資訊的原因,何者正確?
- A因為取消處理失敗,暫存器中殘留機密的值
- B因為推測執行的結果會被儲存到磁碟
- C因為被取消的只有暫存器等架構(architectural)狀態,快取等微架構(microarchitectural)狀態不會復原
查看答案與解析
正確答案:C. 因為被取消的只有暫存器等架構(architectural)狀態,快取等微架構(microarchitectural)狀態不會復原
CPU被設計成,對於程式可見的狀態(暫存器與記憶體的內容),預測錯誤時會完全復原。然而快取的內容與分支預測器的狀態等微架構狀態,屬於為了提升效能的內部狀態,不會被復原。即使遵守了ISA的約定,內部狀態仍會以時間差異的形式被外界看見,這正是此類漏洞的本質。
- A. 暫存器會被正確復原。
- B. 不會儲存到磁碟。
- C. 正確。只有從ISA看得到的狀態會被復原。