AIグラスにクラウドが必要な理由
AIグラスは現在最も注目されているウェアラブルフォームファクタの一つです。しかし、ここには本質的なジレンマが存在します。
- フォームファクタの制約: グラスのツルの内部に搭載できる計算資源には明確な限界があります。リアルタイム翻訳、会話要約、長期リコールといった機能は、ローカルNPUでは処理しきれません。
- ステートフル要件: 実用的なAIアシスタントは、数日から数週間にわたるコンテキストを記憶する必要があります。これは結局クラウドへの保存と読み出しを意味します。
- プライバシーのパラドックス: 個人のコンテキストを深く理解するAIを作るには、そのコンテキストをクラウド事業者が「見られない」ようにしなければなりません。
従来のクラウドアーキテクチャは、この問題を解くようには設計されていませんでした。データは at rest(ディスク上) と in transit(ネットワーク上) では暗号化されますが、in use(メモリ上での演算中) には復号が必要で、その瞬間にハイパーバイザ、ホストOS、インフラ運用者から見えてしまいます。
Metaがこの問題に対して提示した答えが Private Processing です。根拠資料は Meta Engineeringブログで確認できます。
個人的な見解ですが、この記事は単なる製品紹介ではなく、「機密コンピューティングを本番環境にどう組み込むか」というアーキテクチャリファレンスとして読む方が価値が高いと思います。日本国内でも金融・医療など規制産業において、このパターンは参考になるはずです。
![]()
核心となる3概念: Confidential Computing / TEE / Private Processing
まず用語の整理から始めます。この3つを区別できないと、以降のアーキテクチャが読み解けません。
1) Confidential Computing — パラダイム
データの3状態のうち、唯一残されていた穴である in use を塞ごうという業界全体の動きです。
| 状態 | 従来の保護 | 機密コンピューティング |
|---|---|---|
| At rest (ディスク) | 暗号化あり | 暗号化あり |
| In transit (ネットワーク) | TLSあり | TLSあり |
| In use (メモリ) | 平文露出 | CVMで隔離 |
2) TEE (Trusted Execution Environment) — ハードウェアプリミティブ
CPU/GPUチップ内の専用セキュリティハードウェアが、CVM(Confidential VM)のメモリを独自の鍵で暗号化します。この鍵はホストOS、ハイパーバイザ、運用者の誰にも渡されません。CPUとGPUの両方に拡張されるため、両方の演算対象を跨ぐワークロードも信頼境界の内側に留まります。
CCC(Confidential Computing Consortium)が定義するTEEの3大保証:
- Data Confidentiality: CVM外部からメモリ内容を読めない
- Data Integrity: CVM外部からデータを追加・削除・改変できない
- Code Integrity: ロード済みコードは誰も変更できない
3) Private Processing — Metaの実装
TEE上に構築されたMetaのインフラで、ハードウェア保証に加えて non-targetability と encrypted storage を提供します。
# リモートアテステーションの流れを擬似コードで表現
# 実装はC++/Rustベースですが、概念理解のためPythonで書き直しています。
def establish_secure_session(device, gateway):
# 1. ゲートウェイがCVM/TEEノードを選択(ユーザー識別不能なヒューリスティック)
tee_node = gateway.select_tee_node(non_identifiable_heuristics=True)
# 2. RA-TLSハンドシェイク開始: ハードウェア署名証明書を要求
attestation_report = tee_node.request_hardware_signed_cert()
# 3. 署名チェーンがチップベンダーのルートキーまで繋がるか検証
if not verify_chain(attestation_report, root_key=VENDOR_ROOT_KEY):
raise ConnectionRefused("attestation chain broken")
# 4. CVMイメージのハッシュが公開透明性台帳(append-only ledger)と一致するか照合
if attestation_report.binary_hash != public_ledger.lookup(tee_node.image_id):
raise ConnectionRefused("binary hash mismatch")
# 5. 両方の検証を通過した場合のみTLSセッション成立。失敗時はfail-closed。
return tee_node.open_tls_session()
重要なのは fail-closed である点です。検証が一つでも失敗すれば、データは一切送信されません。「とりあえず送って後で確認」という楽観的な処理はここでは通用しません。

5つのエンジニアリング要件と実際の動作フロー
MetaがAIグラス向けPrivate Processingを設計する際に定めた要件は以下の通りです。
- Hardware Isolation: 転送・演算・保存の全状態で、ホストOS・ハイパーバイザ・Meta自身もデータを読めない
- Fail-Closed Guarantees: 保証が破られた場合、システムが停止するか公開台帳で検知可能でなければならない
- Public Verifiability: 本番の全CVMイメージはappend-only公開台帳に登録
- Non-Targetability: 特定ユーザーのセッションだけを狙う攻撃が不可能であること
- Encrypted Storage: 保存データはユーザー提供鍵でのみアクセス可能
実際のリクエストフロー(4段階)
① アイデンティティ分離 (Non-targetable Routing) グラスからリクエストが出る前に、メタデータ問題を解決します。ブラインド署名トークンをランダムな周期で取得し、認証サービスがリクエストをアカウントに紐付けられないようにします。続いてFastly/CloudflareなどのサードパーティOHTTPリレーを経由してTEEノードに到達します。
② リモートアテステーション (Verification) グラスが先にサーバを検証します。RA-TLSセッションを開き、ハードウェア署名証明書を要求し、バイナリハッシュを公開台帳と照合します。失敗すればハンドシェイク自体が成立しません。
③ 処理 (Execution) TLSで暗号化されたブロブをルーティングしますが、インフラは内容を読めません。TEE内部でのみモデルが動作し、モデル間通信もRA-TLSで相互証明した後にのみデータを転送します。
④ ステート記憶 (Encrypted Storage) 永続メモリが必要な場合、TEEを出る前にユーザー鍵で暗号化されます。Metaのインフラは暗号文のみを保管し、参照時にユーザー鍵でTEEが復号して処理します。
ストレージをTEE内部に移設した理由
「普通にクラウドDBに暗号化して保存すればいいのでは?」と思うでしょう。しかし2つの理由で成立しません。
- アクセスパターンが行動を漏洩: 内容が暗号化されていても、いつ・どれくらい・何と一緒に読むかをDBは観測します。このメタデータだけで日常ルーチンが描けてしまいます。
- リモート暗号文クエリはスケールしない: セマンティックベクトル検索のような演算を行うには、大量の暗号文をネットワーク越しに引き出し、TEEで復号する必要があります。コンテキストが増えるほどレイテンシが爆発します。
そこで実行と状態を プロセッサ暗号化メモリ内にco-locate させました。クエリエンジンがTEE境界内で動作するため、読み出しが外部ネットワークを跨ぎません。
運用可観測性(Observability)という逆説
TEEは運用者を暗号学的に排除します。では障害対応はどうするのか?
- 実行中のTEEにデバッガをアタッチできない
- クラッシュ時のメモリスタックダンプ、モデル入出力ログが取得できない
- 特定ペイロードの検査ができない
そこで可観測性レイヤーを 完全にout-of-band で設計しました。CPU使用率、メモリ割当、ネットワークレイテンシ、集約されたハードウェア障害率といったシグナルのみでサービスヘルスを維持します。ユーザーデータの1バイトも露出させずに。
実務Tips: このパターンは社内規制対応システムにもそのまま移植可能です。「ログを残せないのにどうデバッグするのか」という問いへの回答がここにあります。集約メトリクスと分散トレーシングのメタデータのみでSLOを管理する手法です。

検証可能な透明性、そしてエージェント時代の基盤
Binary Transparency
本番にデプロイされた全てのCVMイメージは append-only公開台帳 に登録されます。異なるバイナリを密かにデプロイすれば、クライアントと外部モニタが不整合を検知できます。これはtamper-evidence(改ざん証跡)を確保する仕組みです。台帳と測定値は公開され、対応バイナリはセキュリティプログラム参加研究者に提供されます。
サードパーティ検証
この設計は 自社データセンター内部を敵対的環境と仮定 しています。従来のクラウドセキュリティが境界を外周に置き、ハイパーバイザ・ホストOS・運用者を信頼していたのに対し、Private Processingはその境界を内側に押し込み、3つ全てを外側に置きます。NCC Groupなどの独立セキュリティ企業と協業し、設計監査、アテステーションロジックのレビュー、分離モデルの境界テストを実施しています。バグバウンティプログラムもPrivate Processingを明示的に対象に拡張しました。
この技術の限界と注意点
率直に指摘しておくべき点があります。
- パフォーマンスオーバーヘッド: TEE内部の演算はネイティブ比でオーバーヘッドが発生します。大規模バッチ処理よりも、個人化された低レイテンシ推論に最適化された構造です。
- エコシステム依存: 特定ベンダーのTEE実装に依存すると、マルチクラウド移植性が低下します。ベンダーロックインのリスクは常に付きまといます。
- 台帳の信頼前提: 「公開台帳」が本当に独立運用されているかは別の信頼問題です。台帳運用主体が単一であれば、透明性の主張は弱まります。
- サイドチャネル攻撃: TEE自体もSpectre系のサイドチャネル攻撃から自由ではありません。ハードウェアベンダーのマイクロコードパッチに依存せざるを得ません。
日本の開発エコシステムにおける適用文脈
日本では 個人情報保護法・金融分野ガイドライン により、金融・医療・公共クラウドにおいて「演算中のデータ露出」がコンプライアンス課題となります。これまではネットワーク分離や物理的隔離で対応してきましたが、機密コンピューティングはその代替となり得ます。ただし国内CSPのTEE対応成熟度と監査体制はまだ発展途上であり、実際の導入時には リモートアテステーション連鎖と台帳検証手順 を自社で文書化しておくことが安全です。
次のステップ学習方向
- CCC(Confidential Computing Consortium)仕様文書 の精読 — TEEの形式定義から
- RA-TLSハンドシェイク実装 を実際に読む (Open Enclave、Intel SGX SDKなど)
- OHTTP / 匿名クレデンシャル(Privacy Pass) のフロー理解 — non-targetabilityの核心
- エージェント間CVM通信(inter-CVM attestation) — 今後のマルチエージェントシステムで必須知識になります
AIグラスは今後さらにステートフル化し、マルチモーダル化し、エージェント化します。信頼境界はより複雑になりますが、本記事で扱ったプリミティブはそのまま再利用されるでしょう。結局のところ「データを誰が見られるか」をハードウェアレベルで強制することが答えだということです。
あわせて読みたい記事
- Python 3.15プレビュー: 新プロファイラとUTF-8デフォルトエンコーディング導入 — 言語ランタイムレベルの変化がシステム設計にどう影響するか
- NVIDIA TensorRT Edge-LLM: 自動運転とヒューマノイドロボットのためのエッジAIランタイム徹底分析 — エッジでの推論最適化、そしてクラウドオフローディングの境界線