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

キャッシュを使ったサイドチャネル攻撃が成り立つ主な理由はどれか。

  1. Aキャッシュはプロセスの間で共有されることがあり、ほかのプロセスがどのデータを使ったかが、自分のアクセスの速さ(ヒットかミスか)の違いとして観察できるから
  2. Bキャッシュの中身は、誰でも直接読み出せるから
  3. Cキャッシュはデータを暗号化せずにディスクに保存するから
答えと解説を見る

正解:A. キャッシュはプロセスの間で共有されることがあり、ほかのプロセスがどのデータを使ったかが、自分のアクセスの速さ(ヒットかミスか)の違いとして観察できるから

キャッシュに入っているデータは速く、入っていないデータは遅く読めます。攻撃者が共有のキャッシュの一部を自分のデータで埋めておき、後でその読み出しの時間を測ると、ほかのプロセスがその場所を使って自分のデータが追い出されたかどうかが分かります。暗号の処理が鍵によって違う表の場所を読む場合、この方法で鍵の情報が漏れます。

  • A. 正しい。アクセスの時間が痕跡になります。
  • B. 中身を直接読むのではなく、時間の違いから推測します。
  • C. キャッシュはディスクに保存しません。
この分野を解く 分野ページへ

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

  1. Spectreと呼ばれる投機的実行の脆弱性の原理として正しいものはどれか。
  2. 投機的に実行された命令の結果が取り消されても、Spectreのような攻撃で情報が漏れる理由として正しいものはどれか。
  3. 一部のCPUで問題になったMeltdownと呼ばれる脆弱性の原理として正しいものはどれか。
  4. Meltdownへのソフトウェアの対策として導入されたKPTI(カーネルページテーブル分離)の考え方として正しいものはどれか。
  5. Spectreのような投機的実行の脆弱性への対策として使われているものに当てはまらないものはどれか。