ハードウェアセキュリティの最新動向
VM型のTEEで、仮想マシンのメモリを暗号化するだけでは不十分とされ、AMDのSEV-SNPのようにメモリの完全性を守る仕組みが加えられた理由として、正しいものはどれか。
- A暗号化したメモリでも、ハイパーバイザは仮想マシンの鍵を管理しているので、その鍵を使ってCPUの外で自由に復号できてしまうから
- B暗号化を使うと、仮想マシンが使えるメモリの容量が半分になり、ページの入れ替えが増えてしまうから
- Cハイパーバイザは中身を読めなくても、ページの対応づけを変えたり、古い暗号文を書き戻したりして、仮想マシンの動作を狂わせられるから
答えと解説を見る
正解:C. ハイパーバイザは中身を読めなくても、ページの対応づけを変えたり、古い暗号文を書き戻したりして、仮想マシンの動作を狂わせられるから
初期のメモリの暗号化では、ハイパーバイザは暗号文を読めなくても、仮想マシンのページを別の場所に対応づけ直したり、以前に保存した古い暗号文を書き戻したり(リプレイ)、暗号文を壊したりできました。暗号文を変えられても、復号した結果が予測できない値に変わるだけで、仮想マシンは改ざんに気付けず、これを足がかりにした攻撃が研究で示されました。SEV-SNPでは、物理ページごとに持ち主の仮想マシンと対応するアドレスを記録した表(RMP)をCPUが確かめ、ハイパーバイザが仮想マシンのページに書き込んだり、対応づけを入れ替えたりするのを防ぎます。なお、2020年代半ば時点の公開資料では、動作中のメモリのバスを直接操作するような高度な物理攻撃は、SEV-SNPが防ぐ範囲の外とされています。
- A. 鍵はCPUの中だけにあり、ハイパーバイザは復号できません。読めないことと、書き換えられないことは別の問題です。
- B. 暗号化しても、使えるメモリの容量は変わりません。
- C. 正しい。機密性だけでなく、改ざんや差し替えを防ぐ完全性も必要です。