IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハーの特許一覧

特表2024-540128安全なエンクレーブマイグレーションのための方法およびホストシステム
<>
  • 特表-安全なエンクレーブマイグレーションのための方法およびホストシステム 図1
  • 特表-安全なエンクレーブマイグレーションのための方法およびホストシステム 図2
  • 特表-安全なエンクレーブマイグレーションのための方法およびホストシステム 図3
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-31
(54)【発明の名称】安全なエンクレーブマイグレーションのための方法およびホストシステム
(51)【国際特許分類】
   G06F 21/60 20130101AFI20241024BHJP
   G06F 21/55 20130101ALI20241024BHJP
   G06F 9/46 20060101ALI20241024BHJP
【FI】
G06F21/60 360
G06F21/55 340
G06F9/46 420B
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024525474
(86)(22)【出願日】2021-10-27
(85)【翻訳文提出日】2024-06-19
(86)【国際出願番号】 EP2021079884
(87)【国際公開番号】W WO2023072390
(87)【国際公開日】2023-05-04
(81)【指定国・地域】
(71)【出願人】
【識別番号】517451940
【氏名又は名称】エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】サミラ・ブリオンゴス
(72)【発明者】
【氏名】クラウディオ・ソリエンテ
(72)【発明者】
【氏名】ガッサン・カラメ
(57)【要約】
エンクレーブマイグレーションを可能にする方法を提供する。エンクレーブのコンテンツおよびそのシールされたデータは送信ホストから受信ホストに転送される。方法は、送信ホストのセキュリティモニタと受信ホストのセキュリティモニタの間での共有暗号キーKの交換を含む構成証明を実施するステップと、セキュリティモニタ間に安全な通信チャネルを実装するために共有暗号キーKを使用するステップと、2つのセキュリティモニタによって安全な通信チャネルを介して所定の転送プロトコルを実行するステップとを含む。転送プロトコルは、両方のセキュリティモニタが準備できており転送を実行できることを検証するための検証メッセージの初期交換と、エンクレーブデータのその後の転送とを含む。転送プロトコルの特定のステップの最大許容持続時間を定義するタイムアウトは、検証メッセージの初期交換とエンクレーブデータの転送について実装され得る。
【特許請求の範囲】
【請求項1】
エンクレーブのマイグレーションを可能にする方法であって、前記エンクレーブのコンテンツおよびそのシールされたデータが、送信ホスト(200S)である第1のマシンから受信ホスト(200R)である第2のマシンに転送され、前記方法が、
前記送信ホスト(200S)のセキュリティモニタ(130S)と前記受信ホスト(200R)のセキュリティモニタ(130R)との間で、前記2つのセキュリティモニタ(130S、130R)間の共有暗号キーKの交換を含む、構成証明を実施するステップと、
前記2つのセキュリティモニタ(130S、130R)間に安全な通信チャネルを実装するために、前記共有暗号キーKを使用するステップと、
前記2つのセキュリティモニタ(130S、130R)によって、前記安全な通信チャネルを介して、所定の転送プロトコルを実行するステップであって、前記転送プロトコルが、
両方のセキュリティモニタ(130S、130R)が準備できており、転送を実行できること、を検証するための、前記セキュリティモニタ(130S、130R)間の検証メッセージの初期交換と、
前記セキュリティモニタ(130S、130R)間の前記エンクレーブデータのその後の転送と
を含む、ステップと
を含む、方法。
【請求項2】
前記転送プロトコルの特定のステップの最大許容持続時間を定義するタイムアウトが、前記検証メッセージの前記初期交換と前記エンクレーブデータの前記その後の転送との両方について実装され、
前記実装されたタイムアウトのいずれかを超えた場合、前記転送プロトコルが中断される、
請求項1に記載の方法。
【請求項3】
前記エンクレーブデータの前記転送についての前記タイムアウトが、前記2つのセキュリティモニタ(130S、130R)間のネットワーク遅延と、他のパーティが前記転送プロトコルに従ってそれぞれの応答を準備するのに必要な時間と、許容マージンとを含むように定義される、請求項2に記載の方法。
【請求項4】
前記セキュリティモニタ(130S、130R)間の検証メッセージの前記初期交換が、
前記送信ホスト(200S)の前記セキュリティモニタ(130S)によって、前記受信ホスト(200R)の前記セキュリティモニタ(130R)に準備メッセージを送信するステップであって、前記準備メッセージが、転送されるべき前記エンクレーブのサイズを示す、ステップと、
前記受信ホスト(200R)の前記セキュリティモニタ(130R)によって、前記準備メッセージに応答して、前記送信ホスト(200S)の前記セキュリティモニタ(130S)に準備完了メッセージを送信するステップであって、前記準備完了メッセージが、転送されるべき前記エンクレーブを前記セキュリティモニタ(130R)が受信する準備ができていることを示す、ステップと
を含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記セキュリティモニタ(130S、130R)間の前記エンクレーブデータの前記その後の転送が、
前記送信ホスト(200S)の前記セキュリティモニタ(130S)によって、転送されるべき前記エンクレーブに属する永続的ストレージ上に保存されたデータSおよびDRAMページのセットDを復号するステップと、
前記共有暗号キーKを使用することによってDとSとを再暗号化するステップと、
暗号化されたDおよびSを前記受信ホスト(200R)の前記セキュリティモニタ(130R)に送信するステップと
を含む、請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記セキュリティモニタ(130S、130R)によって、悪意のあるオペレーティングシステム(150)によってもたらされる時刻変更に対して保護された信頼できるクロックソースを用いて、前記実装されたタイムアウトを観察するステップをさらに含む、請求項2から5のいずれか一項に記載の方法。
【請求項7】
前記セキュリティモニタ(130S、130R)の各々のランタイムメモリ内で電力サイクルごとに上書きされる時間変数をインスタンス化するステップをさらに含む、請求項6に記載の方法。
【請求項8】
ホスト上で同時並行して実行することが許可されるアプリケーションインスタンスの最大数を含む構成情報を提供するマニフェストファイルでエンクレーブアプリケーションを拡張するステップをさらに含む、請求項1から7のいずれか一項に記載の方法。
【請求項9】
クラッシュ故障耐性(CFT)ストレージを用いて前記転送プロトコルのステータスに対して一貫した状態を維持するステップをさらに含み、前記CFTストレージが、前記送信ホストおよび前記受信ホスト(200S、200R)の前記セキュリティモニタ(130S、130R)を含む3つ以上のセキュリティモニタのセットによって実行される、請求項1から8のいずれか一項に記載の方法。
【請求項10】
前記転送プロトコルが、前記送信ホスト(200S)のハイパーバイザ(140)の要求に応じて、前記送信ホスト(200S)の前記セキュリティモニタ(130S)によってトリガされる、請求項1から9のいずれか一項に記載の方法。
【請求項11】
前記共有暗号キーKから、前記安全な通信チャネルを介する通信を認証するために使用される第1の暗号キーと、前記安全な通信チャネルを介する通信を暗号化するために使用される第2の暗号キーとを導出するステップをさらに含む、請求項1から10のいずれか一項に記載の方法。
【請求項12】
計算プラットフォームであって、前記プラットフォームが、
オペレーティングシステム(150)と、
ハードウェア構成要素(120)と、
アプリケーションが前記プラットフォーム上で実行される他のソフトウェアから分離して実行されることを可能にするエンクレーブ(110)であって、前記エンクレーブのコンテンツへのアクセス制御が前記ハードウェア構成要素(120)によって保護される、エンクレーブ(110)と、
前記ハードウェア構成要素(120)の上に実装され、前記エンクレーブ(110)の管理およびオーケストレーションを実行するように構成されたセキュリティモニタ(130S)と
を備え、前記セキュリティモニタ(130S)が、さらに、
受信ホスト(200R)のセキュリティモニタ(130R)で構成証明を実施し、前記受信ホスト(200R)の前記セキュリティモニタ(130R)と共有暗号キーKを交換することと、
前記受信ホスト(200R)の前記セキュリティモニタ(130R)との安全な通信チャネルを実装するために、前記共有暗号キーKを使用することと、
前記安全な通信チャネルを介して、前記受信ホスト(200R)の前記セキュリティモニタ(130R)で所定の転送プロトコルを実行することと
を行うように構成され、前記転送プロトコルが、
両方のセキュリティモニタ(130S、130R)が準備できており、転送を実行できること、を検証するための、前記セキュリティモニタ(130S、130R)間の検証メッセージの初期交換と、
前記セキュリティモニタ(130S、130R)間の前記エンクレーブデータのその後の転送とを含む、
プラットフォーム。
【請求項13】
前記セキュリティモニタ(130S)が、前記ハードウェア構成要素(120)内に実装された信頼できるタイマ(210)への直接アクセスによって強化される、請求項12に記載のプラットフォーム。
【請求項14】
電力サイクルごとに上書きされる時間変数が、前記セキュリティモニタ(130S)のランタイムメモリ内でインスタンス化される、請求項13に記載のシステム。
【請求項15】
前記セキュリティモニタ(130S)が、
前記プラットフォーム上に展開されたそれぞれの前記アプリケーションのインスタンスの数を追跡するアプリケーションごとのカウンタを保持することと、
実行中の前記インスタンスの数がそれぞれの前記アプリケーションのマニフェストファイルにおいて定義されたしきい値に達した場合、前記オペレーティングシステム(150)からの新しいインスタンスを展開する要求を拒否することと
を行うようにさらに構成された、請求項12から14のいずれか一項に記載のプラットフォーム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、エンクレーブのコンテンツおよびそのシールされたデータの、第1のマシン(送信ホスト)から第2のマシン(受信ホスト)へのマイグレーション(migration)を可能にする方法に関する。
【0002】
さらに、本発明の実施形態は、エンクレーブのコンテンツおよびそのシールされたデータの、別の計算プラットフォームへのマイグレーションを可能にする計算プラットフォームに関する。
【背景技術】
【0003】
信頼できる実行環境(Trusted Execution Environment: TEE)は、潜在的に悪意のあるハイパーバイザまたはオペレーティングシステムを含む、同じプラットフォーム上の他のソフトウェアから分離してアプリケーションを実行することを可能にする。アプリケーションは、いわゆるエンクレーブにロードされ、エンクレーブコンテンツへのアクセス制御は、基礎となるハードウェアによって保護される。特に、ランタイムエンクレーブメモリ(すなわち、ダイナミックランダムアクセスメモリ(DRAM))は、プロセッサから離れることのないハードウェア依存のキーで暗号化される。
【0004】
さらに、TEEを実装するハードウェアプラットフォームは、リモート構成証明(remote attestation)またはシーリング(sealing)などの他のサービスを特徴とする。リモート構成証明は、リモートパーティがエンクレーブのソフトウェア構成およびエンクレーブが展開されるプラットフォームのハードウェアにおける検証可能なステートメントを取得することを可能にし、ほとんどのリモート構成証明プロトコルの副産物として、TEEおよびリモートパーティは、共有暗号キーを用いて安全なチャネル(secure channel)を確立する。シーリングは、エンクレーブが、保存されたデータがエンクレーブ自体にのみ利用可能なように永続的ストレージにデータを保存することを可能にし、これは、プラットフォームとエンクレーブとの両方に固有のハードウェア管理キーでデータを暗号化および認証することによって達成される。
【0005】
エンクレーブの管理およびオーケストレーションは、ハードウェアのすぐ上で実行され、TEEのインスタンス化に応じて異なる名前を用いる薄いソフトウェア層に委任される。例えば、この層は、ARM TrustZoneではファームウェアまたはセキュアモニタと呼ばれ、どのアプリケーションが「セキュアワールド」において実行されるかを制御し、いわゆるセキュアワールドとノーマルワールドとを切り替えることを担当し、Intel SGXプラットフォームにおいて、ソフトウェア層は、「システムエンクレーブ」のセットにわたって分散される。
【0006】
本発明の実施形態は、Risc-V命令セットアーキテクチャ上に構築されたエンクレーブに焦点を当てる。アプリケーションエンクレーブの管理を担当する薄い層は、本明細書では、セキュリティモニタ(Security Monitor: SM)と呼ばれる。
【0007】
以前の研究は、エンクレーブ内で実行されるアプリケーションをクローン化すること、すなわち、同じアプリケーションエンクレーブの複数のインスタンスを同時並行して(concurrently)実行することが、アプリケーションの挙動を駆動するための効果的な攻撃手段となり得ることを示している。さらに、アプリケーションマイグレーションは、被害アプリケーションの複数のクローンを取得する手段となる場合がある。特に、敵対者は、送信ホスト上でマイグレートされたアプリケーションの実行を停止することなく、送信ホストから受信ホストへの被害アプリケーションのマイグレーションを開始し得る。結果として、同じアプリケーションの2つのインスタンスが、ホストの各々において1つずつ同時並行して実行されることになる。
【発明の概要】
【発明が解決しようとする課題】
【0008】
したがって、本発明の目的は、エンクレーブの機密性および完全性が保持されるように、最初に説明したタイプのエンクレーブマイグレーションのための方法および計算プラットフォームを改善し、さらに発展させることである。
【課題を解決するための手段】
【0009】
本発明によれば、前述の目的は、エンクレーブマイグレーションを可能にする方法によって達成され、エンクレーブのコンテンツおよびそのシールされたデータは、送信ホストである第1のマシンから受信ホストである第2のマシンに転送される。方法は、送信ホストのセキュリティモニタと受信ホストのセキュリティモニタとの間で、2つのセキュリティモニタ間の共有暗号キーKの交換を含む、構成証明を実施するステップと、2つのセキュリティモニタ間に安全な通信チャネルを実装するために、共有暗号キーKを使用するステップと、2つのセキュリティモニタによって、安全な通信チャネルを介して、所定の転送プロトコルを実行するステップとを含む。転送プロトコルは、両方のセキュリティモニタが準備できており、転送を実行できること、を検証するための、セキュリティモニタ間の検証メッセージの初期交換と、セキュリティモニタ間のエンクレーブデータのその後の転送とを含む。
【0010】
さらに、前述の目的は、オペレーティングシステムと、ハードウェア構成要素と、アプリケーションがプラットフォーム上で実行される他のソフトウェアから分離して実行されることを可能にするエンクレーブであって、エンクレーブのコンテンツへのアクセス制御がハードウェア構成要素によって保護される、エンクレーブと、ハードウェア構成要素の上に実装され、エンクレーブの管理およびオーケストレーションを実行するように構成されたセキュリティモニタとを備える計算プラットフォームによって達成される。セキュリティモニタは、さらに、受信ホストのセキュリティモニタで構成証明を実施し、受信ホストのセキュリティモニタと共有暗号キーKを交換することと、受信ホストのセキュリティモニタとの安全な通信チャネルを実装するために、共有暗号キーKを使用することと、安全な通信チャネルを介して、受信ホストのセキュリティモニタとの所定の転送プロトコルを実行することとを行うように構成され、転送プロトコルは、両方のセキュリティモニタが準備できており、転送を実行できること、を検証するための、セキュリティモニタ間の検証メッセージの初期交換と、セキュリティモニタ間のエンクレーブデータのその後の転送とを含む。
【0011】
本発明によれば、エンクレーブのランタイムメモリおよびそのシールされたデータのマイグレーションプロセスは、アトミック性を保証することによってクローン化に対して保護され得ることが認識された。したがって、本発明の実施形態は、TEEにおいて実行されているアプリケーションの、あるホストから別のソフトへのライブマイグレーションを可能にし、一方で、そのコンテンツを機密に、かつ変更されないように保ちながら、マイグレートされたアプリケーションを、両方のホストにおいてネットワーク遅延よりも長い期間、両方のホストにおいて実行することができないことを保証する。例えば、マイグレーションは、パブリッククラウドにおいて行われ得る。
【0012】
本発明の実施形態によれば、転送プロトコルの特定のステップの最大許容持続時間を定義するタイムアウトは、検証メッセージの初期交換とエンクレーブデータのその後の転送との両方について実装され得る。より具体的には、本発明の実施形態によれば、2つのマシン/計算プラットフォームがエンクレーブの2つのクローンを同時に実行することが不可能であることを保証するために、転送プロトコルは、それを超えるとマイグレーション動作を中断(abort)させる異なるタイムアウトを活用する。言い換えれば、検証メッセージの初期交換とエンクレーブデータのその後の転送との両方に関連して、実装されたタイムアウトのいずれかが転送プロトコルの特定のステップの最大許容持続時間を超えた場合、転送プロトコルは、中断される。
【0013】
一実施形態によれば、エンクレーブデータの転送についてのタイムアウトは、関与する2つのセキュリティモニタ間のネットワーク遅延と、他のパーティが転送プロトコルに従ってそれぞれの応答を準備するのに必要な時間と、許容マージン(例えば、ネットワーク遅延の特定の割合)とを含むように定義され得る。
【0014】
一実施形態によれば、セキュリティモニタ間の検証メッセージの初期交換は、送信ホストのセキュリティモニタによって、受信ホストのセキュリティモニタに準備メッセージを送信するステップと、受信ホストのセキュリティモニタによって、準備メッセージに応答して、送信ホストのセキュリティモニタに準備完了メッセージを送信するステップとを含み得る。準備メッセージは、他のパーティに今後の転送を通知し得、転送されるべきエンクレーブのサイズも示し得る。準備完了メッセージは、他のパーティが、転送されるべきエンクレーブを受信する準備ができていることを示し得る。
【0015】
一実施形態によれば、セキュリティモニタ間のエンクレーブデータのその後の転送は、送信ホストのセキュリティモニタによって、転送されるべきエンクレーブに属する永続的ストレージ上に保存されたデータS(本明細書では簡単にSで表す)およびDRAMページのセット(本明細書では簡単にDで表す)を復号するステップと、次いで、共有暗号キーKを使用することによってDとSとを再暗号化するステップと、暗号化されたDおよびSを受信ホストのセキュリティモニタに送信するステップとを含む。
【0016】
一実施形態によれば、セキュリティモニタは、それぞれの計算プラットフォームのハードウェア内に適切に実装された信頼できるタイマへの直接アクセスによって強化され得る。ここでは、セキュリティモニタが、信頼できるタイマを用いて、実装されたタイムアウトを観察することが記載され得る。信頼できるタイマは、悪意のあるオペレーティングシステムによってもたらされる時刻変更に対して保護された信頼できるクロックソースの形式において実装され得る。
【0017】
計算プラットフォームから(すなわち、計算プラットフォームのそれぞれのチップ/プロセッサから)電力を除去することによって影響を受けるタイマの操作を検出するために、変数が電力サイクルごとに上書きされるように、時間的変数がセキュリティモニタの各々のランタイムメモリ内でインスタンス化されることが記載され得る。
【0018】
一実施形態によれば、エンクレーブアプリケーションの許可されたクローンの数が、これらの詳細が指定されているエンクレーブのマニフェストファイルを使用することによって定義され、文書化されることが記載され得る。言い換えれば、エンクレーブアプリケーションは、ホスト上で同時並行して実行することが許可されるアプリケーションインスタンスの最大数を含む構成情報を提供するマニフェストファイルで拡張され得る。ここでは、セキュリティモニタが、プラットフォーム上に展開されたそれぞれのアプリケーションのインスタンスの数を追跡するアプリケーションごとのカウンタを保持することが記載され得る。実行中のインスタンスの数がそれぞれのアプリケーションのマニフェストファイルにおいて定義されたしきい値に達した場合、プラットフォームのセキュリティモニタは、プラットフォームのオペレーティングシステムからの、新しいインスタンスを展開するいかなる要求も拒否し得る。
【0019】
一実施形態によれば、計算プラットフォームは、クラッシュ故障耐性(Crash Fault Tolerant: CFT)ストレージを用いて、転送プロトコルのステータスに関する一貫した状態を維持するように構成され得る。CFTストレージは、送信ホストおよび受信ホストのセキュリティモニタを含む3つ以上のセキュリティモニタのセットによって実行され得る。そのような実装形態は、実装されたセットのセキュリティモニタの半分までが任意にビザンチンであり、交換されたメッセージが敵対者によって任意に遅延されることを許容することができる。
【0020】
一実施形態によれば、転送プロトコルは、送信ホストのハイパーバイザの要求に応じて、送信ホストのセキュリティモニタによってトリガされ得る。
【0021】
特に信頼性の高いキー管理に関して、2つの暗号キーが共有暗号キーKから導出され、導出されたキーのうちの第1のキーが、安全な通信チャネルを介する通信の認証のために使用され、導出されたキーのうちの第2のキーが、安全な通信チャネルを介する通信を暗号化するために使用されることが記載され得る。
【0022】
本発明の教示を有利な方法で設計し、さらに発展させるいくつかの方法が存在する。この目的のため、一方では従属請求項が参照されるべきであり、他方では図によって示される例としての本発明の好ましい実施形態の以下の説明が参照されるべきである。図の助けを借りた本発明の好ましい実施形態の説明に関連して、一般的に好ましい実施形態および教示のさらなる展開について説明する。
【図面の簡単な説明】
【0023】
図1】Risc-V命令セットアーキテクチャの一般的な概念を示す概略図である。
図2】本発明の一実施形態に従って実装されたホスト上で実行されるエンクレーブを示す概略図である。
図3】本発明の一実施形態による、ライブTEEマイグレーションを実行するためのプロトコルを示す概略図である。
【発明を実施するための形態】
【0024】
本発明の実施形態に従って想定されるシステムモデルを図1に概略的に示す。より具体的には、図1は、Risc-V命令セットシステム100の上に構築されたエンクレーブ110を示す。
【0025】
Risc-Vは、図1に示すように様々な特権レベルを定義する。信頼できるハードウェア120の上で、セキュリティモニタ(SM)130は、マシンモード(または単にMモード)である最も特権的なモードにおいて実行される。したがって、このモードにおいて実行されるファームウェアまたはコードは、システム100の信頼できるコンピューティングベース(TCB)内に含まれる。
【0026】
セキュリティモニタ130の上に実装されるハイパーバイザ層140は、クラウド環境には必要であるが、他のシナリオ、例えば、仮想化を実装しない企業によって管理されるサーバのグループには存在しない場合がある。
【0027】
セキュリティモニタ130は、エンクレーブ110と信頼できないプラットフォーム構成要素との間のインターフェースである。仮想メモリ管理およびプロセススケジューリングなどのいくつかのタスクを、オペレーティングシステム(OS)150またはハイパーバイザ140に委任することができる。それにもかかわらず、セキュリティモニタ130は、エンクレーブ展開などの重要なタスクを監督する。
【0028】
送信ホストから受信ホストへのTEEアプリケーションのマイグレーションは、ホストの各々において実行されるセキュリティモニタ130間の調整を必要とする。特に、2つのセキュリティモニタ130は、2つのモニタ130によって合意された暗号キー、例えばKによってインスタンス化された安全なチャネルにおいて合意しなければならない。送信ホスト上のセキュリティモニタ130(以降、セキュリティモニタ130Sと呼ぶ)は、転送されるべきアプリケーションのDRAMページとシールされたデータとの両方をキーKで暗号化し、それを受信ホスト上のセキュリティモニタ130(以降、セキュリティモニタ130Rと呼ぶ)に送信する。そうするために、送信ホスト上のセキュリティモニタ130Sは、転送されるべきアプリケーションのDRAMページとシールされたデータとを暗号化するために使用されるハードウェア管理キーにアクセスすることができなければならないことに留意すべきである。受信ホスト上のセキュリティモニタ130Rは、受信ホスト上にアプリケーションを展開する前に、キーKを使用することによってアプリケーションのDRAMページとシールされたデータとを復号する。これは、大体において、エンクレーブにおいて実行されている仮想マシンをプラットフォーム間でマイグレートするためにAMD Secure Encrypted Virtualizationにおいて利用可能なマイグレーション技法である。
【0029】
本発明の実施形態は、所与のホスト上で実行中のインスタンスの数が開発者によって選択されたしきい値を超えないことと、あるホストから別のホストへのインスタンスのマイグレーション中に、マイグレートされるインスタンスが2つのホスト間のネットワーク遅延によって制限される期間中にのみ、両方のホスト上で実行することができることとを保証することによって、TEEアプリケーションのセキュリティを強化する。このように、本発明の実施形態は、クローンベースの攻撃がマイグレーション機能を利用しないことを保証しながら、ホスト間でのTEEアプリケーションのマイグレーションを可能にする。
【0030】
本発明の実施形態は、ホスト上で同時並行して実行することができるアプリケーションインスタンスの開発者定義の最大数を含む構成情報を提供するマニフェストファイルでアプリケーションを拡張する。さらに、本発明の実施形態は、送信ホスト上の同じアプリケーションが放棄された場合かつその場合にのみ、受信ホスト上のマイグレートされたアプリケーションが実行を開始することを保証するために、安全なタイマにアクセスすることができるホスト上のセキュリティモニタを強化し、2つのセキュリティモニタ間の通信プロトコルを実装する。
【0031】
図2は、本発明の実施形態を実現するために実装および利用され得る要素および機能構成要素(ならびにそれらの間のいくつかの関係)の一般的な概要とともに、マシン200を示す。特に明記しない限り、同様の構成要素および機能は、図1と同様の参照番号で表される。図示を容易にするために、本発明を理解するために必ずしも必要されないホストの構成要素(例えば、オペレーティングシステムまたはハイパーバイザなど)は、図2において省略されている。本発明の実施形態の文脈において、マシン200は、送信ホストと受信ホストとの両方として機能し得る。
【0032】
図示の実施形態において、マシン200は、ハードウェア120に実装された信頼できるタイマ210への直接アクセスによって強化されたセキュリティモニタ130を備える。セキュリティモニタ130は、ハードウェア管理キー220を用いて暗号化/復号動作をトリガすることもできるが、セキュリティモニタ130は、これらのキー220が持ち出されるのを防ぐために、それらのキー220を直接読み取ることはできない。
【0033】
一実施形態において、本発明は、アプリケーションコードとともにアプリケーション開発者によって供給されるマニフェストファイルを用いてTEEアプリケーションを拡張する。マニフェストファイルは、様々な構成パラメータ、ならびにそれぞれのホスト上で同時に実行することができるアプリケーションインスタンスの最大数を含み得る。したがって、セキュリティモニタ130は、それぞれのホスト200上で展開されるインスタンスの数を追跡するアプリケーションごとのカウンタを保持するように構成され得る。アプリケーションの新しいインスタンスが開始されるたびに、カウンタが増加し、インスタンスが放棄されるたびに、カウンタが減少する。OSがセキュリティモニタ130に新しいインスタンスを展開することを要求するたびに、実行中のインスタンスの数がマニフェストファイルにおいて定義されたしきい値に達している場合、セキュリティモニタ130は、要求を拒否する。
【0034】
さらなる実施形態によれば、セキュリティモニタ130は、ライブTEEマイグレーションを実行するロジックで強化される。図3は、一実施形態によるそれぞれのプロトコルのステップを示す。プロトコルは、送信ホスト200Sのハイパーバイザの要求に応じて、送信ホスト200S上のセキュリティモニタ130S(図3ではSM1として示す)によってトリガされ得る。SM1 130Sは、最初に、受信ホスト200R上のセキュリティモニタ130R(SM2として示す)を構成証明し得る。構成証明は、SM2がTEE対応プラットフォーム上で実行されている正規のセキュリティモニタであり、開発者によって指定されたすべての要件を満たしているという保証をSM1に提供する。副産物として、2つのセキュリティモニタ130S、130Rは、セキュリティ通信チャネルを実装するために使用される共有暗号キー、例えばKを取得する。図3において、構成証明およびキー交換をステップS301に示す。2つのセキュリティモニタ130S、130R間のすべての後続の通信は、通信チャネルを介して行われ、すなわち、すべての転送されるデータは、共有暗号キーKで暗号化され、認証される。必要であれば、共有暗号キーを決定論的関数への入力として使用することによって、共有暗号キーKから複数の暗号キー、例えば、認証用の1つの暗号キーおよび暗号化用の1つの暗号キーが導出され得る。
【0035】
2つのマシンがエンクレーブの2つのクローンを同時に実行することが不可能であることを保証するために、本発明の実施形態によるプロトコルは、超過した場合にマイグレーション動作を中断させる異なるタイムアウトを活用する。この目的のため、SM130は、図2に示すように、信頼できるタイマ210へのアクセスを提供される。言い換えれば、SM130は、それぞれのチップ/プロセッサに含まれるクロックソースにアクセスすることができる。セキュリティモニタ130が最高の特権レベルにおいて実行されることを考えると、そのような時間のソースを、悪意のあるOS150またはハイパーバイザ140が操作できないことに留意すべきである。結果として、タイマ出力を操作する唯一の方法は、プロセッサの電力を除去することである。
【0036】
本発明の実施形態によれば、そのような操作は、電力サイクルごとに上書きされるSM130のランタイムメモリ内で時間変数をインスタンス化することによって検出され得る。したがって、時間測定間のこの変数の任意の変化は、電源の操作、および、例えば、クラッシュ、またはマイグレーションプロセスを攻撃しようとする悪意のあるパーティなどの起こり得る問題を示す。
【0037】
本発明の実施形態によれば、図3に示すプロトコルは、すべてのステップが実行されるか、またはなにも起こらないように設計され、それによってアトミック性を保証する。両方のセキュリティモニタ130S、130Rは、「クラッシュのみ」であり、すなわち、プロトコル仕様に従うように構成されるが、例えば、電源障害により故障する場合があると想定される。さらに、あるSMから別のSMに送信されるメッセージは、事前定義された時間間隔内に受信されることになっている。したがって、セキュリティモニタ130S、130Rの各々は、他のパーティからのメッセージを期待するときにタイムアウトを定義することができ、メッセージがタイムアウトまでに受信されない場合、他のパーティは、クラッシュしたとみなされる。
【0038】
以下では、あるパーティがメッセージを送信するたびに、タイマも開始し、応答が到着するまでの最大遅延を定義するタイムアウトを設定する。実施形態によれば、タイムアウトは、2つのパーティ間のネットワーク遅延と、他のパーティが応答を準備するのに必要な時間と、許容マージン(例えば、ネットワーク遅延の10%)とを含み得る。
【0039】
一実施形態によれば、構成証明後、SM1は、転送されるべきエンクレーブに属する永続的ストレージに保存されたデータ(以下、単にSで表す)およびDRAMページのセット(以下、単にDで表す)を識別し得る。プロセッサがDおよびSを暗号化するためにその時使用している暗号キーもフェッチする。次に、SM1は、DとSとを復号し、Kを使用することによってそれらを再暗号化する。暗号化されたDおよびSは、SM2に転送され、SM2は、最終的に、送信されたエンクレーブの実行を継続する。
【0040】
本発明の一実施形態によれば、プロセス全体は、以下のように実施される。
【0041】
1. SM1が動作しているホスト200S上のハイパーバイザ140は、特定のエンクレーブをSM2が動作しているホスト200Rにマイグレートする要求をSM1に送信する。
【0042】
2. SM1およびSM2は、図3のステップS301に示すように、互いに構成証明し、暗号キーKに合意し、それらのそれぞれのホスト200S、200R間のネットワーク遅延を測定する。
【0043】
3. SM1は、S302に示すようにPREPARE(準備)メッセージをSM2に送信する。PREPAREメッセージは、転送されるべきエンクレーブのサイズも含み得る。さらにSM1は、タイムアウトT1でタイマを開始する。タイマがタイムアウトに達し、SM2からの次の期待されるメッセージ(READY(準備完了))が到着していない場合、SM1は、ABORT(中断)メッセージ(図示せず)を送信し、動作を中断し、SM2から受信する可能性があるいかなる後続メッセージも無視する。
【0044】
4. SM1からのメッセージPREPAREの受信に応じて、セキュリティモニタSM2は、S303に示すように、SM1にREADYメッセージを送信する。SM2はまた、タイムアウトT2でタイマを開始する。タイマがタイムアウトに達し、SM1からの次の期待されるメッセージ(DATA)が到着していない場合、SM2は、ABORTメッセージ(図示せず)を送信し、動作を中断し、SM1から受信する可能性があるいかなる後続メッセージも無視する。
【0045】
5. SM2からのメッセージREADYの受信に応じて、セキュリティモニタSM1は、転送されるべきエンクレーブのDRAMページならびにそのシールされたデータを復号するようにハードウェアをトリガする。次いで、復号されたデータは、キーKで暗号化される。結果として生じる暗号文は、S304に示すように、DATAメッセージにおいてSM2に送信される。SM1はまた、タイムアウトT3でタイマを開始する。タイマがタイムアウトに達し、SM2からの次の期待されるメッセージ(DONE(完了))が到着していない場合、SM1は、ABORTメッセージ(図示せず)を送信し、動作を中断し、SM2から受信する可能性があるいかなる後続メッセージも無視する。
【0046】
6. SM1からのメッセージDATAの受信に応じて、セキュリティモニタSM2は、受信したデータを復号するためにキーKを使用し、エンクレーブのDRAMページおよびシールされたデータを展開するようにハードウェア暗号化ルーチンをトリガする。次に、SM2は、S305に示すように、メッセージDONEをSM1に送信し、マイグレーションプロトコルを終了する。
【0047】
7. SM2からのメッセージDONEの受信に応じて、セキュリティモニタSM1は、転送されたばかりのエンクレーブのDRAMページおよびシールされたデータを除去し、マイグレーションプロトコルを終了する。
【0048】
上記で説明したプロトコルが適切に機能するために、タイムアウトを測定するためにSM1上に信頼できる時間のソースが存在することが重要である。本発明の実施形態によれば、これは、チップ周波数発振器の出力を計数レジスタのセットに直接供給することによって実装され得る。この信号は、異なる周波数におけるCPUクロックが取得される分周器および乗算器に供給される信号と同じである。当業者によって理解されるように、これは、SMクロックがCPU周波数から独立しており、その周波数を変更することができないことを意味する。そのようなレジスタのセットは、SMによってのみ構成または読み出すことができ、例えば、マシンモードにおいて実行されていないプロセスによる他のアクセスは、ブロックされ、すなわち、OSもハイパーバイザも、十分な権限を持っていないので、レジスタのセットにアクセスすることができない。一実施形態によれば、レジスタのうちの1つは、CPUに電力が供給されている間、増加し続けるように構成され得るが、他のレジスタは、SMが通知されることを望むカウントの終わりに対応する値、すなわち、上記で例示的に説明した場合のタイムアウトT1およびT3(SM1用)ならびにタイムアウトT2(SM2用)でSMによって書き込まれ得る。例えば、それぞれのメッセージが時間通りに到着し、それぞれのタイマが不要になった場合、レジスタのカウントは、SMによって停止およびリセットすることができる。
【0049】
さらなる実施形態によれば、敵対者がネットワークを制御することができる場合、マイグレーションプロトコルは、マイグレーションプロトコルのステータスに対して一貫した状態を維持することができるクラッシュ故障耐性(CFT)ストレージに依存し得、それによって、SM1およびSM2がアトミックマイグレーションを達成することを可能にする。より具体的には、本発明の実施形態は、他のセキュリティモニタのセットによって実行されるCFT層Lを提供し、セットは、SM1とSM2とを含む4つ以上のセキュリティモニタを含む。Lは、それらのモニタの1/2までが任意にビザンチンであり、交換されたメッセージが敵対者によって任意に遅延されることを許容することができる。ここでは、一実施形態によれば、マイグレーションプロトコルは、以下のように展開され得る(ここで、使用される用語は、図3のプロトコルに関連して使用されるものと同じである)。
【0050】
1. SM1は、認証済みで、新しい、暗号化された「PREPARE SM2(準備SM2)」メッセージをLに送信する。これは、SM2が適切に動作しており、転送を受信する準備ができていることを確認するのに役立つ。
【0051】
2. 「PREPARE SM2」メッセージの受信に応じて、SM2は、認証済みで、新しい、暗号化された「SM2 READY(SM2準備完了)」メッセージをLに返信する。これは、転送を受信する準備ができていることを示す。
【0052】
3. 「SM2 READY」メッセージの受信に応じて、SM1は、キーKで暗号化されたDとMとをSM2に直接送信し、メッセージ「SENT from SM1(SM1から送信)」をLに送信する。
【0053】
4. 最後のメッセージの受信に応じて、SM2は、DとMとを復号し、それらをローカルエンクレーブキーで再暗号化し、それらを永続的ストレージに記憶する。次いで、SM2は、認証済みで、新しい、暗号化された「SM2 DEPLOYED(SM2展開)」メッセージをLに送信する。
【0054】
5. 「SM2 DEPLOYED」メッセージの受信に応じて、SM1は、そのエンクレーブを一時停止し、認証済みで、新しい、暗号化されたメッセージOKをLに送信する。
【0055】
このプロトコルは、セキュリティモニタがクラッシュする場合、いつでもクラッシュする可能性があり、敵対者もネットワークを制御することができることを想定している。メッセージは、輻輳によりネットワーク内で遅延する可能性があるが、タイムアウトT以内に到着する可能性が高い。メッセージがタイムアウトT以内に到着しない場合、すべてのパーティは、送信ノードがクラッシュしたとみなし得る。プロトコルが完全に終了しない場合、SM1とSM2との両方のパーティは、マイグレーションプロセスを中断し、SM1は、マイグレートされるエンクレーブを実行し続けるデフォルトパーティとなる。この場合、SM1は、認証済みで、新しい、暗号化されたABORTメッセージをLに送信する。
【0056】
要約すると、実施形態によれば、本発明は、エンクレーブのコンテンツおよびそのシールされたデータの機密性と完全性とを保持し、クローンの作成を回避して、異なるマシン間のエンクレーブのコンテンツおよびそのシールされたデータのライブマイグレーションを可能にする方法を提供し、方法は、以下のステップを含む。
1)送信側SM(130S)と受信側SM(130R)との間の構成証明、およびキー交換。
2)アトミック性を保証し、異なるタイムアウトを使用する事前定義された転送プロトコルに従う、メッセージおよびデータの送信。
a. 送信側と受信側との両方が準備できており、動作を実行できることを検証するために、いくつかのメッセージを交換する。
b. エンクレーブの実際のデータ(ランタイムおよびシールされたデータ)の転送。
【0057】
基礎となるシステム/プラットフォームに応じて、方法は、以下のオプションによって強化され得る。
- クローンの最大数が開発者によって指定されるマニフェストファイルを含むように、Risc-V環境におけるエンクレーブアーキテクチャを変更する。
- 本発明のプロトコルに従ってデータの送信中にタイムアウトを設定するために、信頼できるタイマにセキュリティモニタへのアクセスを与える。
- エンクレーブをハードウェア管理キーで暗号化または復号することを可能にするために、ハードウェアロジックまたはソフトウェアモジュールのいずれかを用いてSMを強化する。
【0058】
本明細書に記載された本発明の多くの変形例および他の実施形態は、前述の説明および関連する図面において提示された教示の利益を有する、本発明が関係する当業者に思い浮かぶであろう。したがって、本発明は、開示された特定の実施形態に限定されず、変形例および他の実施形態は、添付の特許請求の範囲内に含まれることが意図されることが理解されるべきである。本明細書では特定の用語が用いられているが、それらは、一般的かつ説明的な意味でのみ使用され、限定を目的とするものではない。
【符号の説明】
【0059】
100 Risc-V命令セットシステム
110 エンクレーブ
120 信頼できるハードウェア
130 セキュリティモニタ(SM)
130R 受信ホスト上のセキュリティモニタ
130S 送信ホスト上のセキュリティモニタ
140 ハイパーバイザ
150 オペレーティングシステム(OS)
200 マシン
200R 受信ホスト
200S 送信ホスト
210 信頼できるタイマ
220 ハードウェア管理キー
図1
図2
図3
【手続補正書】
【提出日】2024-06-27
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
エンクレーブのマイグレーションを可能にする方法であって、前記エンクレーブのコンテンツおよびそのシールされたデータが、送信ホスト(200S)である第1のマシンから受信ホスト(200R)である第2のマシンに転送され、前記方法が、
前記送信ホスト(200S)のセキュリティモニタ(130S)と前記受信ホスト(200R)のセキュリティモニタ(130R)との間で、前記2つのセキュリティモニタ(130S、130R)間の共有暗号キーKの交換を含む、構成証明を実施するステップと、
前記2つのセキュリティモニタ(130S、130R)間に安全な通信チャネルを実装するために、前記共有暗号キーKを使用するステップと、
前記2つのセキュリティモニタ(130S、130R)によって、前記安全な通信チャネルを介して、所定の転送プロトコルを実行するステップであって、前記転送プロトコルが、
両方のセキュリティモニタ(130S、130R)が準備できており、転送を実行できること、を検証するための、前記セキュリティモニタ(130S、130R)間の検証メッセージの初期交換と、
前記セキュリティモニタ(130S、130R)間の前記エンクレーブデータのその後の転送と
を含む、ステップと
を含む、方法。
【請求項2】
前記転送プロトコルの特定のステップの最大許容持続時間を定義するタイムアウトが、前記検証メッセージの前記初期交換と前記エンクレーブデータの前記その後の転送との両方について実装され、
前記実装されたタイムアウトのいずれかを超えた場合、前記転送プロトコルが中断される、
請求項1に記載の方法。
【請求項3】
前記エンクレーブデータの前記転送についての前記タイムアウトが、前記2つのセキュリティモニタ(130S、130R)間のネットワーク遅延と、他のパーティが前記転送プロトコルに従ってそれぞれの応答を準備するのに必要な時間と、許容マージンとを含むように定義される、請求項2に記載の方法。
【請求項4】
前記セキュリティモニタ(130S、130R)間の検証メッセージの前記初期交換が、
前記送信ホスト(200S)の前記セキュリティモニタ(130S)によって、前記受信ホスト(200R)の前記セキュリティモニタ(130R)に準備メッセージを送信するステップであって、前記準備メッセージが、転送されるべき前記エンクレーブのサイズを示す、ステップと、
前記受信ホスト(200R)の前記セキュリティモニタ(130R)によって、前記準備メッセージに応答して、前記送信ホスト(200S)の前記セキュリティモニタ(130S)に準備完了メッセージを送信するステップであって、前記準備完了メッセージが、転送されるべき前記エンクレーブを前記セキュリティモニタ(130R)が受信する準備ができていることを示す、ステップと
を含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記セキュリティモニタ(130S、130R)間の前記エンクレーブデータの前記その後の転送が、
前記送信ホスト(200S)の前記セキュリティモニタ(130S)によって、転送されるべき前記エンクレーブに属する永続的ストレージ上に保存されたデータSおよびDRAMページのセットDを復号するステップと、
前記共有暗号キーKを使用することによってDとSとを再暗号化するステップと、
暗号化されたDおよびSを前記受信ホスト(200R)の前記セキュリティモニタ(130R)に送信するステップと
を含む、請求項1に記載の方法。
【請求項6】
前記セキュリティモニタ(130S、130R)によって、悪意のあるオペレーティングシステム(150)によってもたらされる時刻変更に対して保護された信頼できるクロックソースを用いて、前記実装されたタイムアウトを観察するステップをさらに含む、請求項2に記載の方法。
【請求項7】
前記セキュリティモニタ(130S、130R)の各々のランタイムメモリ内で電力サイクルごとに上書きされる時間変数をインスタンス化するステップをさらに含む、請求項6に記載の方法。
【請求項8】
ホスト上で同時並行して実行することが許可されるアプリケーションインスタンスの最大数を含む構成情報を提供するマニフェストファイルでエンクレーブアプリケーションを拡張するステップをさらに含む、請求項1に記載の方法。
【請求項9】
クラッシュ故障耐性(CFT)ストレージを用いて前記転送プロトコルのステータスに対して一貫した状態を維持するステップをさらに含み、前記CFTストレージが、前記送信ホストおよび前記受信ホスト(200S、200R)の前記セキュリティモニタ(130S、130R)を含む3つ以上のセキュリティモニタのセットによって実行される、請求項1に記載の方法。
【請求項10】
前記転送プロトコルが、前記送信ホスト(200S)のハイパーバイザ(140)の要求に応じて、前記送信ホスト(200S)の前記セキュリティモニタ(130S)によってトリガされる、請求項1に記載の方法。
【請求項11】
前記共有暗号キーKから、前記安全な通信チャネルを介する通信を認証するために使用される第1の暗号キーと、前記安全な通信チャネルを介する通信を暗号化するために使用される第2の暗号キーとを導出するステップをさらに含む、請求項1に記載の方法。
【請求項12】
計算プラットフォームであって、前記プラットフォームが、
オペレーティングシステム(150)と、
ハードウェア構成要素(120)と、
アプリケーションが前記プラットフォーム上で実行される他のソフトウェアから分離して実行されることを可能にするエンクレーブ(110)であって、前記エンクレーブのコンテンツへのアクセス制御が前記ハードウェア構成要素(120)によって保護される、エンクレーブ(110)と、
前記ハードウェア構成要素(120)の上に実装され、前記エンクレーブ(110)の管理およびオーケストレーションを実行するように構成されたセキュリティモニタ(130S)と
を備え、前記セキュリティモニタ(130S)が、さらに、
受信ホスト(200R)のセキュリティモニタ(130R)で構成証明を実施し、前記受信ホスト(200R)の前記セキュリティモニタ(130R)と共有暗号キーKを交換することと、
前記受信ホスト(200R)の前記セキュリティモニタ(130R)との安全な通信チャネルを実装するために、前記共有暗号キーKを使用することと、
前記安全な通信チャネルを介して、前記受信ホスト(200R)の前記セキュリティモニタ(130R)で所定の転送プロトコルを実行することと
を行うように構成され、前記転送プロトコルが、
両方のセキュリティモニタ(130S、130R)が準備できており、転送を実行できること、を検証するための、前記セキュリティモニタ(130S、130R)間の検証メッセージの初期交換と、
前記セキュリティモニタ(130S、130R)間の前記エンクレーブデータのその後の転送とを含む、
プラットフォーム。
【請求項13】
前記セキュリティモニタ(130S)が、前記ハードウェア構成要素(120)内に実装された信頼できるタイマ(210)への直接アクセスによって強化される、請求項12に記載のプラットフォーム。
【請求項14】
電力サイクルごとに上書きされる時間変数が、前記セキュリティモニタ(130S)のランタイムメモリ内でインスタンス化される、請求項13に記載のプラットフォーム
【請求項15】
前記セキュリティモニタ(130S)が、
前記プラットフォーム上に展開されたそれぞれの前記アプリケーションのインスタンスの数を追跡するアプリケーションごとのカウンタを保持することと、
実行中の前記インスタンスの数がそれぞれの前記アプリケーションのマニフェストファイルにおいて定義されたしきい値に達した場合、前記オペレーティングシステム(150)からの新しいインスタンスを展開する要求を拒否することと
を行うようにさらに構成された、請求項12から14のいずれか一項に記載のプラットフォーム。
【国際調査報告】