ハードウェアセキュリティ
投機的に実行された命令の結果が取り消されても、Spectreのような攻撃で情報が漏れる理由として正しいものはどれか。
- A取り消しの処理に失敗して、レジスタに秘密の値が残るから
- B投機的に実行した結果は、ディスクに保存されるから
- C取り消されるのはレジスタなどのアーキテクチャの状態だけで、キャッシュなどのマイクロアーキテクチャの状態は元に戻らないから
答えと解説を見る
正解:C. 取り消されるのはレジスタなどのアーキテクチャの状態だけで、キャッシュなどのマイクロアーキテクチャの状態は元に戻らないから
CPUは、プログラムから見える状態(レジスタやメモリの内容)については、予測が外れたら完全に元に戻すように作られています。しかしキャッシュの中身や分岐予測器の状態などのマイクロアーキテクチャの状態は、性能の向上のための内部の状態として、元に戻されません。ISAの約束は守られていても、内部の状態が時間の違いとして外から見えてしまうことが、この種の脆弱性の本質です。
- A. レジスタは正しく元に戻されます。
- B. ディスクには保存されません。
- C. 正しい。ISAから見える状態だけが元に戻されます。