IntelがSGXをやめた、なぜ？

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3973392/0c094b42-e835-489d-b98a-5e3f13db6930.png)

✅ SGXの非推奨が正式に確認
Intelは、12世代のプロセッサ（デスクトップ、ノート、組込みプラットフォーム）において、SGX（Software Guard Extensions）を非推奨とすることを正式に発表しました。今後、SGXはサーバー向けの高性能Xeonプロセッサでのみサポートされる予定です。Intelの公式な説明によれば、この決定は市場の需要に基づくものとされています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3973392/e8df87b9-03fb-453b-bb1f-82481007879e.png)


🔍 SGXの概要と目的
SGXは、2015年にSkylakeマイクロアーキテクチャを採用した第6世代のIntelプロセッサで初めて導入されました。その主な目的は、クラウド環境におけるCSP（クラウドサービスプロバイダー）とテナント間の信頼性の問題を解決することです。SGXは、OSからもアクセスできない「エンクレーブ」と呼ばれる保護領域を提供することで、セキュアな計算環境を実現します。

🧪 SGXの技術的詳細
アテステーションプロセス
eFuseに格納される秘密情報: Seal SecretやProspering SecretはeFuseに保存され、Provisioning SecretはIntelのKey Generation Facilityで生成され、CPUに焼き付けられます。

EGETKEYの利用: 証明書ベースの識別情報（MRSIGNER、ISVPRODID、ISVSVN）とSGXの実装バージョン（CPUSVN）を使用して、Provisioning Keyを取得します。これにより、Intelのプロビジョニングサービスは、Provisioning EnclaveがIntelによって署名されたものであることを確認できます。

EPID暗号方式: AK（Attestation Key）はEPID（Enhanced Privacy ID）暗号方式を使用し、署名者の匿名性を提供します。Intelのプロビジョニングサービスが発行者となり、グループ公開鍵を公開し、マスター発行鍵を保持します。

リスク
SIGSTRUCTの漏洩: 発行されたSIGSTRUCTが漏洩すると、攻撃者はSGXのデバッグ機能を利用して、デバッグ用のProvisioning EnclaveやQuoting Enclaveを構築し、コードを変更したり、Intelサービスと通信するための128ビットのプロビジョニングキーを取得する可能性があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3973392/5879eade-bcea-438b-bcdf-02bd5812a003.png)

🔑 SGXの鍵管理
Intelの特許によれば、SGXの実装は、CPU内部の複雑なKDF（鍵導出関数）プロセスに依存しており、グローバルな秘密鍵はeFuseに保存されています。Chipworksは、Intel i5プロセッサのeFuseを完全に抽出するために5万〜25万ドルの報酬を提供しています。eFuseの内容は、特許で「グローバルラッピングロジックキー（GWK）」と呼ばれるマスターキーで暗号化されています。

SGXはまた、プロビジョニングフェーズでデバイスの対称鍵を生成するためにPUF（Physically Unclonable Function）を使用します。PUFキーはGWKで暗号化され、鍵生成サーバーに送信されます。その後、鍵生成サーバーはPUFキーでチップのフューズキーを暗号化し、チップに送信します。PUFキーは、チップのフューズキーを取得するためのコストを増加させます。攻撃者は、プロビジョニング段階を同時に侵害する必要があります。

⚠️ 初期の脅威モデルの問題
Intel SGXは、オンプレミスの所有者（クラウドサービスベンダー、システム管理者など）を脅威モデルの最初に位置付けています。技術的には、SGXはオペレーティングシステムやファームウェア全体（CSMEを除く）を信頼していませんが、Intelは重要な常識を見落としていた可能性があります。OSカーネルはもはや「コア」ではないかもしれませんが、それでも「アンダーワールド」への入り口です。多くのSGXを標的とした攻撃は、カーネル特権を持っていることに基づいています。適切な脅威モデルは、セキュリティの包括的な解決策を保証するものではありませんが、少なくとも出発点となる可能性があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3973392/f68d9229-8e9a-47d1-acbd-ef6c3a175dab.png)

🧩 その他の問題点
過剰な設計と実装: SGXの過剰な設計と実装は、制御不能な複雑さを引き起こしています。

透明性の欠如: SGXの実装は、基盤となるファームウェアへの依存に関してクローズドソースであり、適切なコストでの監査が困難です。

マルウェアの保護に利用される可能性: SGXは、マルウェアの保護にも利用される可能性があり、マルウェアの検出が不可能になる可能性があります。

サードパーティのアテステーションサービスの遅れ: Intelは、2018年12月までSMEクライアント向けのSGXベースのサードパーティアテステーションサービスを公開しませんでした。

Linuxカーネルのメインラインプロセスの遅れ: 2016年4月にIntelは、SGXパッチの最初のバージョンをLinuxカーネルコミュニティに提出しましたが、多くの未解決の基本的な問題があるとされ、2021年2月にLinuxカーネルv5.11でSGXがメインラインに統合されるまで遅れました。

サイドチャネル攻撃の低コストでの実行: Linuxカーネル特権を持つことで、サイドチャネル攻撃を低コストで実行できる可能性があります。

市場での過剰な宣伝: 特に中国では、SGXが次世代の万能なプログラムになり得ると過剰に宣伝されていますが、情報セキュリティの一般的な原則では、万能薬は存在しないとされています。

✅ SGXは依然として有効なセキュリティ機能か？
はい、SGXは依然としてデジタル資産を保護するための有効なセキュリティメカニズムです。Intelは、SGXの期待を調整し、サーバー専用市場をターゲットとしています。実運用環境の観点から、SGXは依然として非常に効果的なセキュリティメカニズムであり、自身の多層防御「サイバーバンカー」を構築するために活用できます。

🧱 根本的な問題：複雑さ
Intel SGXは、エンクレーブソリューションの中で最も洗練された実装です。Intelは、複数のレベルでサポートを活用するために多くの作業を行いました。

ハードウェア: 例：MEE（Memory Encryption Engine）

マイクロコード: 特殊な命令のため

ファームウェア: Intel CSMEインフラストラクチャのアップグレードと複数のCSMEモジュールの関与

SGXの基本
ページングの委譲: SGXは、ページング（EPC）を信頼されていないOSに委譲します。これは、ホストOSがエビクトできるBASTIONに似ています。

Intel EPIDの使用: SGXは、アテステーションを実装するためにIntel EPIDを使用しますが、これはマイクロコードで実装するには複雑すぎます。

CSMEコードモジュールの使用: EPIDに加えて、SGXはiclsClientなどの他のCSMEコードモジュールを使用し、CLS（Capability Licensing Services）を利用します。

この情報は、Intel SGXの技術的な詳細やリスク、現在の評価について理解を深めるのに役立ちます。