ハードウェアセキュリティの最新動向
VM型のTEE(AMD SEV-SNP・Intel TDX・Arm CCA)と機密コンピューティング、メモリの完全性の保護とその負担、アテステーションの検証、GPUの機密コンピューティング、CHERI・MTE・ポインタ認証・シャドウスタックによるメモリと制御フローの保護、ロウハンマーとTRR・PRAC・ECCの限界、MDSとretpoline・IBRS、対策による性能の低下、耐量子計算機暗号のハードウェア(数論変換・鍵の大きさ・実装の注意)、オープンなルートオブトラストとDICE、安全なファームウェアの更新、HBOM、チップレットのセキュリティ、分割製造・ICカモフラージュ・ロジックロッキング、逆解析、FIPS 140-3・コモンクライテリア・PSA Certified・SESIP、認証付きデバッグとライフサイクル、スキャンチェーン、電圧グリッチ・レーザ・電磁パルスによる故障注入を、計算問題を含む3択問題で学べます。
ハードウェアセキュリティの最新動向の要点
ハードウェアセキュリティは、クラウドやAI、IoT機器の広がりとともに、守る対象も攻撃の手口も大きく変わってきました。クラウドの事業者の管理者からもデータを守る機密コンピューティング、ポインタの誤りをハードウェアで止める仕組み、量子コンピュータの時代に向けた暗号のハードウェア、多くの会社が関わる半導体のサプライチェーンの守り方などが、現在の大きなテーマです。ここでは「ハードウェアセキュリティ」の分野の基礎の上に、より新しく深い内容を学びます。
まず機密コンピューティングとして、VM型のTEEとエンクレーブ型の違いと信頼する範囲(TCB)、暗号化だけでなく完全性の保護が必要な理由と、その記憶容量の負担の計算、アテステーションの報告で検証者が確かめること、Arm CCAのレルム、GPUを含む機密コンピューティングを扱います。続いて、CHERIのケイパビリティ、MTEのタグが偶然一致する確率の計算、ポインタ認証、シャドウスタックと間接分岐の保護による制御フロー完全性を学びます。DRAMへの攻撃では、ロウハンマーが微細化で起きやすくなる理由、TRRが回避された研究、ECCの限界、DDR5のPRAC、リフレッシュの頻度と活性化の回数の計算を、過渡的実行攻撃では、MDS、retpolineとIBRS、対策による性能の低下の計算を扱います。後半では、数論変換による多項式の掛け算の高速化、ML-KEMの鍵の大きさ、カプセル化の解除の実装の注意、暗号を入れ替えられるハードウェアの設計、OpenTitanやCaliptra、DICE、A/B方式の更新とロールバック防止、HBOM、チップレットの間の信頼、分割製造・ICカモフラージュ・ロジックロッキング、逆解析を前提にした鍵の守り方を学びます。最後に、FIPS 140-3のレベル、コモンクライテリアのEAL、PSA CertifiedやSESIPの合成の考え方、認証付きデバッグ、ライフサイクルとRMA、スキャンチェーンの守り方、電圧グリッチ・レーザ・電磁パルスによる故障注入と、その成功の確率や対策の効果の計算を確かめます。攻撃の手順ではなく、設計者や守る側の視点から原理と対策を理解することを目的とします。計算問題の値は、誤りの選択肢の値も含めて、Pythonで計算して確かめています。製品の名前や規格の版、年は、それぞれの問題で示した時点の情報です。サイドチャネル攻撃、Spectre・Meltdown・KPTI、電力解析、故障注入とロウハンマーの基本、セキュアブート、TPM、TEE・TrustZone・エンクレーブ、PUF、真性乱数生成器、ハードウェアトロイ、JTAGの無効化は「ハードウェアセキュリティ」、ML-KEM・ML-DSAの標準とHSMは「暗号技術の基礎と応用」、DRAMのリフレッシュとロウハンマーという現象の名前は「DRAM」、チップレットとUCIeは「先端技術(3D実装・チップレット)」、スキャン設計は「テスト・検査」、A/B方式のファームウェアの更新は「組込み・ファームウェア」、ISO/SAE 21434は「車載半導体と機能安全」の分野で扱います。
ハードウェアセキュリティの最新動向の問題一覧(40問)
- 機密コンピューティングで使われるTEEのうち、仮想マシン全体を守るVM型のもの(AMD SEV-SNP、Intel TDXなど)と、アプリケーションの一部を守るエンクレーブ型のもの(Intel SGXなど)の違いの説明として、正しいものはどれか。
- VM型のTEEで、仮想マシンのメモリを暗号化するだけでは不十分とされ、AMDのSEV-SNPのようにメモリの完全性を守る仕組みが加えられた理由として、正しいものはどれか。
- メモリの暗号化に、改ざんの検出とリプレイの防止を加える回路を考える。64バイトのキャッシュラインごとに、8バイトのMAC(改ざんを検出するための符号)と、書き込みのたびに増える8バイトのカウンタを主記憶に保存するとする。カウンタを守るための木の分は考えないとき、保護するデータの量に対して、余分に必要な記憶容量の割合はどれか。
- 機密コンピューティングで、利用者の検証サーバ(検証者)が、VM型のTEEから受け取ったアテステーションの報告を確かめてから、データを復号する鍵を渡す。検証者が確かめる内容の組み合わせとして、最も適切なものはどれか。
- 2020年代半ば時点で、データセンター向けの一部のGPUは、CPUのTEEと組み合わせて機密コンピューティングに使える機能を備えている。この仕組みの考え方として、正しいものはどれか。
- Arm CCA(Confidential Compute Architecture)で導入されたレルム(Realm)の説明として、正しいものはどれか。
- CHERIと呼ばれる命令セットの拡張で使われるケイパビリティの説明として、正しいものはどれか。
- ArmのMTE(メモリタギング拡張)では、メモリの16バイトごとに4ビットのタグを付け、ポインタの上位のビットにも4ビットのタグを入れて、アクセスのたびに両者が一致するかをCPUが確かめる。解放した領域を指す古いポインタで、その領域にアクセスする誤りを考える。領域を割り当て直したときの新しいタグが16通りから一様にランダムに選ばれるとすると、タグが偶然一致して誤りを見逃す確率はどれか。
- Armのポインタ認証(PAC)の仕組みとして、正しいものはどれか。
- IntelのCET(制御フロー強制技術)などで採用されているハードウェアのシャドウスタックの説明として、正しいものはどれか。
- 制御フロー完全性をハードウェアで支える機能について、関数からの戻りを守るものと、関数ポインタなどによる間接的な呼び出しやジャンプを守るものの組み合わせとして、正しいものはどれか。
- DRAMの微細化が進むほど、ロウハンマーが起きやすくなるといわれる理由として、正しいものはどれか。
- DRAMの中のTRR(ターゲットロウリフレッシュ)によるロウハンマーへの対策が、研究で回避されたことがある理由として、正しいものはどれか。
- 「ECC付きのメモリを使えば、ロウハンマーの心配はない」という考えの問題点として、正しいものはどれか。
- 2024年に更新されたDDR5の規格(JESD79-5C)に加えられた、PRAC(行ごとの活性化の計数)の考え方として、正しいものはどれか。
- 同じバンクで行を活性化できる最短の間隔を、簡単のためtRC = 50 nsとする。リフレッシュの周期が64 msのとき、ある行がリフレッシュされてから次にリフレッシュされるまでに、隣の1つの行を活性化できる回数は最大で 64 ms ÷ 50 ns となる。リフレッシュの頻度を2倍にしたときの、この最大の回数はどれか。
- 2019年に公表されたMDS(マイクロアーキテクチャデータサンプリング)と呼ばれる脆弱性の特徴として、正しいものはどれか。
- 間接分岐の予測を悪用するSpectreの変種(分岐ターゲットインジェクション)への対策である、retpolineとIBRSの説明の組み合わせとして、正しいものはどれか。
- ある処理は、投機的実行への対策を入れる前に10秒かかり、その間にシステムコールを500万回呼んでいた。対策を入れると、システムコール1回あたりの処理時間が0.4 µsから0.6 µsに増え、それ以外の部分の時間は変わらないとする。処理全体の時間の増加の割合はどれか。
- 格子に基づく耐量子計算機暗号では、次数 n = 256 の多項式の掛け算を何度も行う。係数どうしをすべて掛け合わせる素朴な方法では約 n² 回、数論変換(NTT)を使う方法では約 n log₂ n 回の掛け算が必要とすると、NTTを使うことで掛け算の回数がおよそ何分の1になるかとして、最も近いものはどれか。
- ML-KEM-768の公開鍵は1,184バイト、暗号文は1,088バイトで、楕円曲線の鍵交換X25519の公開値は32バイトである。ML-KEM-768の公開鍵の大きさが、X25519の公開値の何倍かとして、正しいものはどれか。
- ML-KEMのカプセル化の解除では、受け取った暗号文を秘密鍵で復号した結果から暗号文をもう一度作り、受け取った暗号文と一致するかを比べる。この部分の実装の注意として、正しいものはどれか。
- 10年以上使われる組込み機器のSoCを設計する。将来の暗号の移行(耐量子計算機暗号への移行など)に備えるハードウェアとファームウェアの設計として、適切なものはどれか。
- OpenTitanやCaliptraのように、ルートオブトラストの回路の設計を公開する取り組みの利点として、最も適切なものはどれか。
- TCGが定めたDICE(Device Identifier Composition Engine)の仕組みとして、正しいものはどれか。
- A面とB面の2つの領域を使ってファームウェアを更新する機器で、ロールバック防止のためにeFuseに記録する最低の版の番号を、新しい版の番号に進める時期として、最も適切なものはどれか。
- ハードウェアの部品表(HBOM)の説明として、正しいものはどれか。
- 複数の会社のチップレットを1つのパッケージに組み合わせるときのセキュリティの考え方として、適切なものはどれか。
- 半導体の設計を守る技術と、主に想定している信頼できない相手の組み合わせとして、正しいものはどれか。
- チップの層を1枚ずつ削って電子顕微鏡で撮影したり、X線で内部を撮影したりして回路を読み取る逆解析を前提にしたとき、設計の考え方として適切なものはどれか。
- 暗号モジュールの認証の基準であるFIPS 140-3のセキュリティレベル1〜4について、物理的な安全性の要求の説明として、正しいものはどれか。
- セキュリティ製品を評価する国際規格であるコモンクライテリア(ISO/IEC 15408)のEAL(評価保証レベル)が表すものとして、正しいものはどれか。
- IoT機器向けのセキュリティの認証の枠組みであるPSA CertifiedやSESIPで重視されている、合成(コンポジション)の考え方として、正しいものはどれか。
- 出荷した製品のデバッグのポートを、メーカーの技術者だけが開けるようにする、認証付きのデバッグの設計として、最も適切なものはどれか。
- セキュリティチップのライフサイクルの状態を、テスト、本番(プロダクション)、故障品の解析(RMA)などに分けて管理する。本番の状態から故障の解析のためにRMAの状態に移すときの扱いとして、適切なものはどれか。
- スキャンテストのためのスキャンチェーンが、暗号の処理を行うチップで攻撃の経路になりうる理由と、その対策の組み合わせとして、正しいものはどれか。
- 電源の電圧を一瞬だけ下げる電圧グリッチで、チップが誤動作する主な理由として、正しいものはどれか。
- 故障注入攻撃のうち、レーザを使う方法と電磁パルスを使う方法の特徴の組み合わせとして、正しいものはどれか。
- ある故障注入の試みが1回で成功する確率が0.1%で、各回の結果は互いに独立とする。1,000回試みたとき、少なくとも1回成功する確率として、最も近いものはどれか。
- ファームウェアの署名の確認を、故障注入の1回の試みで飛ばされる確率が1/1,000であるとする。同じ確認を2か所で行い、両方を飛ばさないと攻撃が成功しないようにした。1回の試みで2か所を同時に狙えて、それぞれが飛ばされるのは互いに独立に確率1/1,000で起きるとき、攻撃が成功するまでの試みの回数の期待値はどれか。
ハードウェアセキュリティの最新動向の参考書を探す PR
Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。
コンピュータシステムのほかの分野
- 計算機算術 IEEE 754・固定小数点・丸め誤差
- 確率・統計と待ち行列 場合の数・確率分布・推定と検定・M/M/1
- 情報理論と符号の基礎 エントロピー・ハフマン符号・ハミング符号・CRC
- 命令セット・アセンブリ RISC-V・アドレッシング・呼び出し規約
- コンパイラ 構文解析・SSA・最適化・レジスタ割り当て
- リンカ・ローダと実行形式 ELF・シンボル解決・再配置・動的リンク
- OSとハードウェア 割り込み・システムコール・ページフォールト
- Linuxとコマンドラインの基礎 シェル・パーミッション・パイプ・スクリプト
- メモリ階層と性能 キャッシュ・置き換え方式・ミスの3分類
- マルチコアと同期 MESI・アトミック命令・メモリバリア
- GPUプログラミング ワープ・共有メモリ・合体アクセス・占有率
- AIハードウェアとソフトウェアスタック 推論と学習・量子化・Rooflineモデル
- 機械学習の基礎 学習の種類・評価指標・ニューラルネットワーク
- 組込み・ファームウェア GPIO・UART/SPI/I2C・RTOS
- ハードウェア記述言語と検証 Verilog・ラッチ・状態機械・テストベンチ
- インターフェース・バス規格 PCIe・USB・SerDes・CXL
- ネットワークの基礎 TCP/IP・サブネット計算・DNS・TLS
- Web技術の基礎 HTTP・Cookie・REST・CORS・キャッシュ
- 無線通信の基礎 変調・OFDM・MIMO・RF回路
- 情報セキュリティの基礎 暗号・認証・Web攻撃と対策
- 暗号技術の基礎と応用 AES・暗号利用モード・RSA・TLS 1.3・耐量子暗号
- サイバー攻撃と防御の実務 キルチェーン・ゼロトラスト・EDR/SIEM・インシデント対応・SBOM
- データベースの基礎 SQL・正規化・トランザクション
- データ構造とアルゴリズム 計算量・探索・ソート・グラフ
- プログラミングの基礎(擬似言語のトレース) 擬似言語・トレース・配列・再帰
- C言語の基礎 ポインタ・メモリ・未定義動作
- ソフトウェア開発とプロジェクト管理 開発プロセス・テスト・日程とコストの管理
- 経営戦略と会計の基礎(ストラテジ系) 会計・損益分岐点・経営戦略・マーケティング
- サービスマネジメントとシステム監査 SLA・インシデントと問題・監査と内部統制
- システム構成と信頼性設計 冗長化・RAID・バックアップ・クラウド
- クラウドとコンテナの基礎 Docker・Kubernetes・責任共有モデル・IaC
- 性能評価・プロファイリング アムダールの法則・CPI・ボトルネック
- ハードウェアセキュリティ サイドチャネル・セキュアブート・TEE・PUF
- 電力管理(ソフトウェア制御) DVFS・パワーゲーティング・スリープ状態