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

タイミング攻撃が成り立つ原理と、代表的な対策の組み合わせとして正しいものはどれか。

  1. A処理が速すぎることを利用する。わざと処理を遅くする
  2. B時計の時刻がずれていることを利用する。時計を合わせる
  3. C秘密の値によって処理時間が変わることを利用する。秘密の値に関係なく同じ時間で終わる(定数時間の)実装にする
答えと解説を見る

正解:C. 秘密の値によって処理時間が変わることを利用する。秘密の値に関係なく同じ時間で終わる(定数時間の)実装にする

例えば鍵のビットが1のときだけ余分な計算をする実装では、処理時間を何度も測ると鍵のビットが分かってしまいます。対策は、秘密の値によって分岐や繰り返しの回数、メモリを読む場所が変わらないように書く定数時間の実装です。一律に処理を遅くしたり、ランダムな待ち時間を加えたりするだけでは、測定の回数を増やされると差が見えてしまうので、十分ではありません。

  • A. 一律に遅くしても、時間の差が残れば漏れます。
  • B. 時計の時刻の問題ではありません。
  • C. 正しい。分岐やメモリの読み方が秘密に依存しないようにします。
この分野を解く 分野ページへ

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

  1. 上のパスワードの比較の関数に潜む問題と、対策の組み合わせとして正しいものはどれか。
  2. キャッシュを使ったサイドチャネル攻撃が成り立つ主な理由はどれか。
  3. Spectreと呼ばれる投機的実行の脆弱性の原理として正しいものはどれか。
  4. 投機的に実行された命令の結果が取り消されても、Spectreのような攻撃で情報が漏れる理由として正しいものはどれか。
  5. 一部のCPUで問題になったMeltdownと呼ばれる脆弱性の原理として正しいものはどれか。