ハードウェアセキュリティ
Spectreと呼ばれる投機的実行の脆弱性の原理として正しいものはどれか。
- ACPUの計算の誤りで、足し算の結果が変わってしまう
- B分岐の予測にしたがって投機的に実行した命令は結果が取り消されても、キャッシュに読み込んだ痕跡が残り、それを時間の測定で読み取れる
- C投機的実行によって、CPUの温度が上がりすぎる
答えと解説を見る
正解:B. 分岐の予測にしたがって投機的に実行した命令は結果が取り消されても、キャッシュに読み込んだ痕跡が残り、それを時間の測定で読み取れる
CPUは分岐の結果が分かる前に、予測した側の命令を先に実行し、予測が外れたら結果を捨てます。Spectreでは、攻撃者が分岐の予測を誤らせて、本来は実行されない経路で秘密のデータを読み、その値に応じた場所をキャッシュに読み込ませます。結果は取り消されてもキャッシュの状態は戻らないので、キャッシュのサイドチャネルで値を推測できます。
- A. 計算の結果は正しく取り消されます。
- B. 正しい。性能のための仕組みが痕跡を残します。
- C. 温度の問題ではありません。