概要
anix Runtime Encryption(FRE)技術は、アプリケーションが暗号化されたデータを処理・操作できるようにし、平文のコードやデータがオペレーティングシステムや他の実行中のプロセスに露出する可能性を排除します。これにはあらゆる形態の悪意ある攻撃も含まれます。FREはIntel® SGX技術を用いて構築されており、Intel® CPUに搭載されています。この技術により、Intel® SGXエンクレーブ内で使用されるデータやアプリケーションはクラウドサービスプロバイダーだけでなく、Fortanix自身からもアクセスできなくなります。
任意のアプリケーションやデータの実行環境を完全かつ簡単に暗号化できる能力は非常に大きな意味を持ち、特定のユースケースについては別途ソリューションブリーフで詳述されています。
本技術概要では、Intel® SGX技術とFortanix Runtime Encryptionの基本について説明します。

Intel® SGX(Software Guard Extensions)について
- Intel® SGX技術は、アプリケーションの攻撃対象領域を大幅に減らす実行環境の保護を提供します。
- Intel®は製造時にCPUに暗号化キーを埋め込み(第5世代以降)、アプリケーションがプライベートメモリ領域(エンクレーブ)を作成できる一連の命令を提供します。この領域は、より高い権限レベル(rootユーザーなど)を持つプロセスからも隔離されています。
- アプリケーションがIntel® SGXエンクレーブ内で実行されると、そのアプリに割り当てられたシステムメモリはCPUコアによって透過的かつ自動的に暗号化されます。さらに、メモリ暗号化に使用されるキーはCPUハードウェア内に存在します。したがって、攻撃者がシステムメモリを直接読み取ろうとしても、復号されたメモリにアクセスできません。SGXはメモリのリプレイ攻撃からも保護します。
- これにより、SGX対応マシン上で実行されるアプリケーションやワークロードに対してハードウェアレベルのセキュリティが提供されます。
SGX対応アプリ構築の課題:
- SGXでアプリケーションを保護するには、アプリのコードを変更し、IntelのSGX SDKを使用する必要があります。この作業はアプリごとに異なり(例えば、開発者は各アプリを信頼できる部分と信頼できない部分に分割し、Intel SDKでビルドする必要があります)。
- SGX SDKはスタンドアロンのC/C++アプリを構築するための低レベルプリミティブを提供しますが、より複雑なアプリ(分散アプリ、Javaなど他言語で書かれたアプリ、ウェブサービスなど)を構築するためのライブラリやツール、サポートは提供していません。
- これにより、SGXの利用、実装、スケーラビリティに深刻な制限が生じます。
Fortanix Runtime Encryption(FRE)
- FREは抽象化レイヤーであり、あらゆる汎用ハードウェアに簡単にインストールでき、Intel® SGX CPUによって作成されたハードウェア暗号化された信頼できるコンテキストで、修正されていない任意のアプリを実行可能にします。
- 完全なSGX保護を享受するために必要なのは、単にアプリ(プレーンバイナリ)をFRE上にインストールすることだけです。
- FREはあらゆるタイプのアプリをサポートします:ネイティブ、コンテナ、VMなど、どのプログラミング言語で書かれたものでも対応可能です。
- FREはCPU内のSGXキーを使用してアプリの実行時を暗号化し、信頼できない環境下でも信頼できる環境(エンクレーブ)を作り出します。これはアプリを安全に保つための独立したハードウェア強制のフットプリントです。
- アプリはどこに展開されても安全です:rootユーザー、IT担当者、クラウドサービスプロバイダー、国家など、誰もFREの保護されたデータにアクセスや閲覧はできません。データにアクセスできるのはテナントの認可されたユーザーのみです。
- FREはアプリのライフサイクル全体を保護します — プロビジョニング、Intel® SGXとの統合、実行時の証明、改ざん防止保証、通信。信頼管理は分散されたSGXエンクレーブ間で維持されます。クラウドインフラが侵害された場合やクラウドプロバイダーが法的要求によりデータ開示を求められた場合でも、アプリはデータの機密性を保ちます。
- FREの幅広いプラットフォーム対応により、Fortanix Self Defending KMSTM + HSMやデータベース暗号化などの複数のユースケースが可能であり、スケール、クラスタリング、ハイブリッドおよび分散環境のサポートなども標準で備えています。



