ハードウェアセキュリティ

Meltdownへのソフトウェアの対策として導入されたKPTI(カーネルページテーブル分離)の考え方として正しいものはどれか。

  1. Aユーザのプログラムが動いている間は、カーネルのメモリのほとんどをページテーブルから外し、投機的にも読めないようにする
  2. Bカーネルをすべて暗号化して、ディスクに置く
  3. Cユーザのプログラムの実行を禁止する
答えと解説を見る

正解:A. ユーザのプログラムが動いている間は、カーネルのメモリのほとんどをページテーブルから外し、投機的にも読めないようにする

従来のOSは、切り替えを速くするため、ユーザのプロセスのページテーブルにもカーネルのメモリを(アクセス禁止の印を付けて)載せていました。Meltdownでは、その印の確認より先に投機的に読めてしまったので、KPTIではユーザのプログラムが動く間はカーネルのページを対応づけ自体から外しました。番地の変換ができなければ投機的にも読めません。ただし、システムコールのたびにページテーブルを切り替えるので性能が下がります。

  • A. 正しい。代わりにシステムコールなどの切り替えが重くなります。
  • B. カーネルをディスクに置くわけではありません。
  • C. プログラムは普通に動きます。
この分野を解く 分野ページへ

ハードウェアセキュリティのほかの問題

  1. Spectreのような投機的実行の脆弱性への対策として使われているものに当てはまらないものはどれか。
  2. 投機的実行の脆弱性への対策について、一般的に正しいものはどれか。
  3. 暗号の処理を行うチップの消費電力の波形を使う電力解析のうち、差分電力解析(DPA)の特徴として正しいものはどれか。
  4. 電力解析への対策として使われるマスキングの考え方として正しいものはどれか。
  5. 電磁波を使ったサイドチャネル解析の特徴として正しいものはどれか。