機密コンピューティングとは

きみつこんぴゅーてぃんぐ

処理している最中のデータを、ハードウェアで守られたTEEの中で扱い、OSやハイパーバイザ、クラウドの事業者の管理者からも読めないようにする計算の方法。保存中や通信中のデータの暗号化に加えて、使用中のデータを守る。仮想マシン全体を守るVM型(AMD SEV-SNP、Intel TDX、Arm CCAなど)と、アプリケーションの一部を守るエンクレーブ型(Intel SGXなど)がある。リモートアテステーションで中の状態を確かめてから、秘密のデータや鍵を渡して使う。

「機密コンピューティング」は、2分野の4問の練習問題に出てきます(ハードウェアセキュリティの最新動向, ハードウェアセキュリティなど)。

この用語の分野: ハードウェアセキュリティの最新動向

使用中のデータを守る

データは、ディスクに保存している間はストレージの暗号化で、ネットワークを流れる間はTLSなどで守れます。しかし計算するときにはメモリの上で復号されるので、従来はOSやハイパーバイザ、それを管理するクラウドの事業者を信頼するしかありませんでした。機密コンピューティングでは、CPUがTEEのメモリを、CPUの中だけにある鍵で暗号化し、TEEの外のソフトウェアからのアクセスを拒否します。これにより、利用者はクラウドの基盤を全面的には信頼せずに、機密のデータを処理できます。

VM型とエンクレーブ型

VM型は仮想マシン全体のメモリを守るので、既存のOSやアプリケーションをほぼそのまま動かせますが、ゲストOSを含む大きなソフトウェアを信頼する範囲(TCB)に入れることになります。エンクレーブ型は秘密を扱う部分だけを保護された領域で動かすので、TCBは小さくなりますが、アプリケーションを分けて作り直す必要があります。VM型では暗号化に加えて、ハイパーバイザがページの対応づけを変えたり古い内容を書き戻したりするのを防ぐ、完全性の保護も重要です。2020年代半ば時点で、CPUのTEEとGPUを組み合わせ、AIの処理を機密コンピューティングで行う仕組みも提供されています。

限界と注意点

機密コンピューティングが守るのは、主にソフトウェアや管理者からのメモリの読み書きです。キャッシュや投機的実行を使うサイドチャネル攻撃、ハイパーバイザが資源を渡さないことによるサービスの停止(可用性)、動作中のメモリのバスへの高度な物理攻撃は、方式によっては守る範囲の外です。また、TEEの中のソフトウェアに脆弱性があれば、そこから秘密が漏れます。そのため、アテステーションで中の状態とファームウェアの版を確かめ、TCBを小さく保ち、マイクロコードなどの更新を続けることが大切です。

機密コンピューティングの練習問題に挑戦

クラウドで使われる「機密コンピューティング」で、仮想マシンのメモリをCPUが暗号化する機能(AMD SEVやIntel TDXなど)の目的として正しいものはどれか。

  1. A仮想マシンの動作を必ず2倍速くする
  2. B仮想マシンのメモリの容量を増やす
  3. Cクラウドの事業者のハイパーバイザや管理者からも、仮想マシンの中のデータを読めないようにする
答えと解説を見る

正解:C. クラウドの事業者のハイパーバイザや管理者からも、仮想マシンの中のデータを読めないようにする

通常、仮想マシンのメモリは、それを動かすハイパーバイザから自由に読み書きできるので、利用者はクラウドの事業者を信頼する必要があります。メモリを暗号化する機能では、仮想マシンごとの鍵をCPUの中だけで管理し、メモリの内容をCPUの外では暗号化された状態に保つので、ハイパーバイザやメモリを直接読む攻撃者からも中身が見えません。リモートアテステーションと組み合わせて使います。

機密コンピューティングで使われるTEEのうち、仮想マシン全体を守るVM型のもの(AMD SEV-SNP、Intel TDXなど)と、アプリケーションの一部を守るエンクレーブ型のもの(Intel SGXなど)の違いの説明として、正しいものはどれか。

  1. AVM型は仮想マシンのメモリを暗号化せずにアクセスの権限の確認だけで守り、メモリを暗号化して守るのはエンクレーブ型だけである
  2. BVM型は既存のOSやアプリケーションをほぼそのまま動かせるが、ゲストOS全体を信頼する範囲(TCB)に含めることになる
  3. Cエンクレーブ型ではOSやハイパーバイザも信頼する範囲に含まれるが、VM型ではCPUだけを信頼すればよい
答えと解説を見る

正解:B. VM型は既存のOSやアプリケーションをほぼそのまま動かせるが、ゲストOS全体を信頼する範囲(TCB)に含めることになる

エンクレーブ型は、アプリケーションの中で秘密を扱う部分だけを保護された領域で動かすので、信頼しなければならない範囲(TCB:Trusted Computing Base)はCPUとエンクレーブのコードにまで小さくなりますが、アプリケーションを分けて作り直す必要があります。VM型は、仮想マシン全体のメモリを暗号化してハイパーバイザやクラウドの管理者から守るので、既存のソフトウェアをほぼそのまま移せます。その代わり、ゲストOSとその上のすべてのソフトウェアがTCBに入り、そこに脆弱性があれば秘密が漏れます。TCBが小さいほど検証しやすく、攻撃される面も狭くなるので、使いやすさと信頼する範囲の大きさのかね合いで選びます。

よくある質問

メモリを暗号化しているのに、なぜアテステーションが必要なのですか?

暗号化は外から読めないようにするだけで、中で何が動いているかは示しません。偽のTEEや、改ざんされたゲストOS、脆弱性の修正前のファームウェアで動いているかもしれないので、CPUの鍵で署名された測定値と版の番号を確かめてから、データを復号する鍵を渡します。

クラウドの事業者をまったく信頼しなくてよくなるのですか?

メモリの中身を読まれる心配は大きく減りますが、CPUのメーカーとそのファームウェアは信頼する必要があり、事業者は資源を止めてサービスを妨げることはできます。何を信頼し、何から守られるのかを、方式ごとに確かめて使います。

「機密コンピューティング」が出てくる問題(4問)

  1. クラウドで使われる「機密コンピューティング」で、仮想マシンのメモリをCPUが暗号化する機能(AMD SEVやIntel TDXなど)の目的として正しいものはどれか。
  2. 機密コンピューティングで使われるTEEのうち、仮想マシン全体を守るVM型のもの(AMD SEV-SNP、Intel TDXなど)と、アプリケーションの一部を守るエンクレーブ型のもの(Intel SGXなど)の違いの説明として、正しいものはどれか。
  3. 機密コンピューティングで、利用者の検証サーバ(検証者)が、VM型のTEEから受け取ったアテステーションの報告を確かめてから、データを復号する鍵を渡す。検証者が確かめる内容の組み合わせとして、最も適切なものはどれか。
  4. 2020年代半ば時点で、データセンター向けの一部のGPUは、CPUのTEEと組み合わせて機密コンピューティングに使える機能を備えている。この仕組みの考え方として、正しいものはどれか。

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

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

この用語が出てくる比較

関連する用語

ハイパーバイザ TEE(信頼できる実行環境) リモートアテステーション エンクレーブ ナンス GPU 推論 Arm CCA HBOM(ハードウェア部品表) MTE(メモリタギング拡張)

用語集の一覧へ