ハードウェアセキュリティの最新動向

CHERIと呼ばれる命令セットの拡張で使われるケイパビリティの説明として、正しいものはどれか。

  1. Aポインタの値をCPUの中の鍵で暗号化してからメモリに置き、使うたびに復号することで、ほかのプログラムやOSからポインタの値を読まれないようにする
  2. Bプログラムの実行ファイルに付けた電子署名を、命令を1つ実行するたびにCPUが確かめ、署名のない命令を実行しないようにする
  3. Cポインタに、アクセスしてよい範囲と権限を持たせ、メモリ上ではソフトウェアから書き換えられない1ビットのタグで、正しく作られたものかを区別する
答えと解説を見る

正解:C. ポインタに、アクセスしてよい範囲と権限を持たせ、メモリ上ではソフトウェアから書き換えられない1ビットのタグで、正しく作られたものかを区別する

CHERIでは、アドレスだけのポインタの代わりに、アドレス、指せる範囲の上限と下限、読み書きや実行の権限をまとめたケイパビリティを使います(64ビットのアドレスの場合、圧縮して128ビットに収め、別に1ビットのタグを持ちます)。CPUはアクセスのたびに範囲と権限を確かめるので、配列の範囲外の読み書きのようなメモリ安全性の誤りを、ハードウェアで止められます。タグは正しい命令でケイパビリティを作ったときだけ付き、普通のデータとして書き換えると消えるので、ポインタを偽造できません。ケンブリッジ大学などが研究を進め、ArmはこれをもとにしたMorelloという試作のプロセッサと評価用のボードを、2020年代前半に研究者向けに提供しました。

  • A. ポインタを隠すのではなく、使える範囲と権限を持たせて、範囲外のアクセスを止めます。
  • B. 実行ファイルの署名の確認は、セキュアブートなどで行うもので、ケイパビリティとは別の仕組みです。
  • C. 正しい。範囲、権限、タグの3つで、範囲外のアクセスとポインタの偽造を防ぎます。
この分野を解く 分野ページへ

ハードウェアセキュリティの最新動向の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

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

  1. ArmのMTE(メモリタギング拡張)では、メモリの16バイトごとに4ビットのタグを付け、ポインタの上位のビットにも4ビットのタグを入れて、アクセスのたびに両者が一致するかをCPUが確かめる。解放した領域を指す古いポインタで、その領域にアクセスする誤りを考える。領域を割り当て直したときの新しいタグが16通りから一様にランダムに選ばれるとすると、タグが偶然一致して誤りを見逃す確率はどれか。
  2. Armのポインタ認証(PAC)の仕組みとして、正しいものはどれか。
  3. IntelのCET(制御フロー強制技術)などで採用されているハードウェアのシャドウスタックの説明として、正しいものはどれか。
  4. 制御フロー完全性をハードウェアで支える機能について、関数からの戻りを守るものと、関数ポインタなどによる間接的な呼び出しやジャンプを守るものの組み合わせとして、正しいものはどれか。
  5. DRAMの微細化が進むほど、ロウハンマーが起きやすくなるといわれる理由として、正しいものはどれか。