(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-09
(45)【発行日】2024-01-17
(54)【発明の名称】オープンインターコネクトを介してヘテロジニアスプロセッサ上でリモート認証及び情報分離を備えた信頼できるコンピューティングを実行するためのシステム及び方法
(51)【国際特許分類】
G06F 21/74 20130101AFI20240110BHJP
G06F 21/44 20130101ALI20240110BHJP
G06F 21/51 20130101ALI20240110BHJP
G06F 21/57 20130101ALI20240110BHJP
【FI】
G06F21/74
G06F21/44
G06F21/51
G06F21/57 350
(21)【出願番号】P 2022507642
(86)(22)【出願日】2020-08-14
(86)【国際出願番号】 CA2020051115
(87)【国際公開番号】W WO2021030903
(87)【国際公開日】2021-02-25
【審査請求日】2022-03-22
(32)【優先日】2019-08-16
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】522048731
【氏名又は名称】フィドゥシアエッジ テクノロジーズ カンパニー リミテッド
(74)【代理人】
【識別番号】100120891
【氏名又は名称】林 一好
(74)【代理人】
【識別番号】100165157
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100205659
【氏名又は名称】齋藤 拓也
(74)【代理人】
【識別番号】100126000
【氏名又は名称】岩池 満
(74)【代理人】
【識別番号】100185269
【氏名又は名称】小菅 一弘
(72)【発明者】
【氏名】ザオ ジョン カー-キン
(72)【発明者】
【氏名】フアン チン-チュン
(72)【発明者】
【氏名】フアン チン-ヤオ
【審査官】岸野 徹
(56)【参考文献】
【文献】特表2010-517162(JP,A)
【文献】特開2019-061538(JP,A)
【文献】米国特許出願公開第2019/0220601(US,A1)
【文献】特開2016-146195(JP,A)
【文献】米国特許第09147086(US,B1)
【文献】磯崎 宏,ハードウェアセキュリティ機能を利用した長期安全性の確保が可能な組込みシステム,情報処理学会 論文誌(ジャーナル) Vol.56 No.8 [online] ,日本,情報処理学会,2015年08月15日,第56巻,pp.1604-1620
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/74
G06F 21/44
G06F 21/51
G06F 21/57
(57)【特許請求の範囲】
【請求項1】
第1の装置を含むシステムであって、
前記第1の装置は、
第1の専用プロセッサ、第1の暗号化プロセッサ、及び第1の保護メモリセグメントを含む、ハードウェアプラットフォームの保護領域内の第1の処理リソースセットと、
第2の専用プロセッサ及び第2の保護メモリセグメントを含む、前記ハードウェアプラットフォームの非保護領域内の第2の処理リソースセットとを含み、
信頼できる特定目的のオペレーティングシステムが、前記第1の処理リソースセットでインスタンス化された信頼できる実行環境(TEE)で実行され、第1の信頼できる特定目的のサービスプログラムが、前記信頼できる実行環境(TEE)で前記信頼できる特定目的のオペレーティングシステムをサポートして実行され、
信頼できる一般的目的のオペレーティングシステムが、前記第2の処理リソースセットでインスタンス化された信頼できるリッチ実行環境(T-REE)で実行され、第1の信頼できる一般的目的のアプリケーションプログラムが、前記信頼できるリッチ実行環境(T-REE)で前記信頼できる一般的目的のオペレーティングシステムをサポートして実行される、システム。
【請求項2】
前記信頼できるリッチ実行環境(T-REE)は、前記第2の処理リソースセットで仮想マシンとしてインスタンス化される、請求項1に記載のシステム。
【請求項3】
前記第1の処理リソースセットでインスタンス化された前記信頼できる実行環境(TEE)と前記第2の処理リソースセットでインスタンス化された前記信頼できるリッチ実行環境(T-REE)の間で転送されたデータが、機密性、完全性、及び認証のサービスによって保護され、
前記信頼できる実行環境(TEE)によって使用された前記第1の処理リソースセット内の前記第1の保護メモリセグメントに記憶されたプログラム及びデータと、前記信頼できるリッチ実行環境(T-REE)によって使用された前記第2の処理リソースセット内の前記第2の保護メモリセグメントに記憶されたプログラム及びデータが、機密性及び完全性のサービスによって保護される、請求項1に記載のシステム。
【請求項4】
前記第1の装置は、第1の非専用プロセッサ及び第1の非保護メモリセグメントを含む、前記ハードウェアプラットフォームの非保護領域内の第3の処理リソースセットを更に含み、
一般的目的のオペレーティングシステムが、第3の処理リソースセットでインスタンス化されたリッチ実行環境(REE)で実行される、請求項1に記載のシステム。
【請求項5】
第3の処理リソースセットでインスタンス化された前記リッチ実行環境(REE)で実行されたプログラム及び処理されたデータが、機密性、完全性、又は認証のサービスによって保護されない、請求項4に記載のシステム。
【請求項6】
前記信頼できるリッチ実行環境(T-REE)がアイドルである、又は非アクティブ化されることに応じて、前記信頼できるリッチ実行環境(T-REE)がインスタンス化された前記仮想マシンが終了し、前記第2の処理リソースセットが解放されるが、前記第2の専用プロセッサが非専用プロセッサになり、保護メモリセグメントが非保護メモリの一部になる、請求項2に記載のシステム。
【請求項7】
前記第1の装置は、オープンインターコネクトに接続された共有バスを更に含み、前記第1の保護メモリセグメント、前記第2の保護メモリセグメント、及び第1の非保護メモリセグメントは、前記共有バスに接続され、前記第1の暗号化プロセッサは、前記共有バスに接続される、請求項1に記載のシステム。
【請求項8】
オープンインターコネクトを介して前記第1の装置に静的に接続された第2の装置を更に含み、前記第2の装置は、
第3の専用プロセッサ、第2の暗号化プロセッサ、及び専用メモリを含む、前記ハードウェアプラットフォームの保護領域内の第4の処理リソースセットを含む、請求項1に記載のシステム。
【請求項9】
前記第2の装置は、前記オープンインターコネクトに接続された専用バス、前記専用バスに接続された専用メモリ、及び前記専用バスに接続された第2の暗号化プロセッサを更に含み、
前記第1の処理リソースセット内の前記第1の暗号化プロセッサは、前記第1の装置と前記第2の装置の間で相互認証を行い、前記オープンインターコネクトを介してデータ転送に機密性、完全性、及び認証の保護を提供するように構成され、
前記第4の処理リソースセット内の前記第2の暗号化プロセッサは、前記第1の装置と前記第2の装置の間で相互認証を行い、前記オープンインターコネクトを介して転送されたデータに機密性、完全性、及び認証の保護を提供するように構成される、請求項8に記載のシステム。
【請求項10】
前記オープンインターコネクトは、2つの装置間の双方向の情報交換をサポートするための標準的なプロトコルを実装する通信チャネルである、請求項8に記載のシステム。
【請求項11】
信頼できる実行環境(TEE)は、特定目的のセキュリティ機能を実行するためのソフトウェア実行環境であり、前記TEEは、装置の前記ハードウェアプラットフォームの保護領域でインスタンス化され、信頼できる特定目的のオペレーティングシステムを実行する、請求項1に記載のシステム。
【請求項12】
信頼できるリッチ実行環境(T-REE)は、信頼できる一般的目的のアプリケーションプログラムを実行するためのソフトウェア実行環境であり、前記T-REEは、装置の前記ハードウェアプラットフォームの非保護領域で仮想マシンとしてインスタンス化され、信頼できる一般的目的のオペレーティングシステムを実行する、請求項1に記載のシステム。
【請求項13】
信頼できる特定目的のオペレーティングシステムは、標準的な操作手順に従って暗号化及びセキュリティ機能の実行をサポートするように構築されたオペレーティングシステムであり、前記信頼できる特定目的のオペレーティングシステムのオブジェクトコードの真正性及び完全性は、信頼できる組織によって検証され、オブジェクトコードのデジタル署名で認定され、前記信頼できる特定目的のオペレーティングシステムは、第1のセキュアブートプロセスで信頼できる実行環境(TEE)にロードされ、前記信頼できる特定目的のオペレーティングシステムは、装置の電源投入又はリセット中に開始され、デジタル署名を検証する、請求項1に記載のシステム。
【請求項14】
前記信頼できる一般的目的のオペレーティングシステムは、前記信頼できる一般的目的のアプリケーションプログラムの実行をサポートするために構築されたオペレーティングシステムであり、前記信頼できる一般的目的のオペレーティングシステムのオブジェクトコードの真正性及び完全性は、信頼できる組織によって検証され、オブジェクトコードのデジタル署名で認定され、前記信頼できる一般的目的のオペレーティングシステムは、第2のセキュアブートプロセスで信頼できるリッチ実行環境(T-REE)にロードされ、前記信頼できる一般的目的のオペレーティングシステムは、T-REE仮想マシンのインスタンス化中に開始され、TEEで実行されたセキュリティ機能によって実行される、請求項1に記載のシステム。
【請求項15】
信頼できる特定目的のサービスプログラムは、プログラムの真正性及び完全性を有し、信頼できる組織によって検証され、前記信頼できる組織のデジタル署名で認定されたプログラムであり、前記信頼できる特定目的のサービスプログラムは、暗号化又はセキュリティ機能を実行し、前記信頼できる特定目的のサービスプログラムの出力は、前記信頼できる特定目的のサービスプログラムが前記信頼できる実行環境(TEE)で実行されると、悪意のある変更がないものとして信頼される、請求項1に記載のシステム。
【請求項16】
信頼できる一般的目的のアプリケーションプログラムは、プログラムの真正性及び完全性を有し、信頼できる組織によって検証され、そのデジタル署名で認定されたプログラムであり、前記信頼できる一般的目的のアプリケーションプログラムの出力は、前記信頼できるリッチ実行環境(T-REE)で実行されると、悪意のある変更がないものとして信頼される、請求項1に記載のシステム。
【請求項17】
ヘテロジニアスコンピューティングシステムの第1の装置が、前記第1の装置の電源投入又はシステムリセット後、第1の暗号化プロセッサによって開始された第1のセキュアブート中に、前記第1の装置のハードウェアプラットフォームの保護領域内の第1の処理リソースセットでインスタンス化された、信頼できる特定目的のオペレーティングシステムを含む信頼できる実行環境(TEE)を確立するステップであって、前記第1の処理リソースセットは、第1の専用プロセッサ、第1の保護メモリセグメント、及び前記第1の暗号化プロセッサを含むステップと、
前記第1の装置が、前記第1の処理リソースセット内の信頼できる実行環境(TEE)の第1のセキュアブートが成功した後、第2のセキュアブート中に、前記第1の装置の前記ハードウェアプラットフォームの非保護領域内の第2の処理リソースセットで仮想マシンとしてインスタンス化された、信頼できる一般的目的のオペレーティングシステムを含む信頼できるリッチ実行環境(T-REE)を確立するステップであって、前記第2の処理リソースセットは、第2の専用プロセッサ及び第2の保護メモリセグメントを含むステップとを含む、
ヘテロジニアスコンピューティングシステムのための方法。
【請求項18】
前記第1の装置の前記信頼できるリッチ実行環境(T-REE)の前記信頼できる一般的目的のオペレーティングシステムは、前記信頼できる実行環境の前記第1のセキュアブートが成功して完了した後、第2のセキュアブートによりインスタンス化され、前記信頼できる一般的目的のオペレーティングシステムは、信頼できる組織によって生成され、前記信頼できる実行環境(TEE)の前記信頼できる特定目的のオペレーティングシステムによって信頼されたデジタル署名の検証により認証される、請求項17に記載の方法。
【請求項19】
前記第1の装置のTEE通信エージェントを介して前記信頼できるリッチ実行環境(T-REE)と前記信頼できる実行環境(TEE)の間で転送されたデータが、機密性、完全性、及び認証のサービスによって保護される、請求項17に記載の方法。
【請求項20】
前記第1の装置の前記第1の処理リソースセット内の前記第1の暗号化プロセッサと、第2の装置の第4の処理リソースセット内の第2の暗号化プロセッサの間で相互認証手順を実行することにより、前記第1の装置の前記第1の処理リソースセット内の前記信頼できる実行環境(TEE)が成功して確立された後、
前記ヘテロジニアスコンピューティングシステムの前記第1の装置と前記第2の装置の間に信頼できる関係を確立するステップを更に含む、請求項17に記載の方法。
【請求項21】
前記第1の装置と第2の装置の間の相互認証が成功して完了した後、
前記ヘテロジニアスコンピューティングシステムの前記第1の装置の前記第1の暗号化プロセッサと前記第2の装置の第2の暗号化プロセッサの間で機密性、完全性及び認証の保護を有する安全な通信を確立するステップを更に含む、請求項17に記載の方法。
【請求項22】
前記第1の装置の前記第1の処理リソースセット内の前記第1の暗号化プロセッサと第2の装置の第4の処理リソースセット内の第2の暗号化プロセッサの間の安全な転送により、
前記ヘテロジニアスコンピューティングシステムの前記第1の装置の前記第2の処理リソースセット内の前記第2の専用プロセッサと前記第2の装置の前記第4の処理リソースセット内の第3の専用プロセッサの間で、機密性、完全性、及び認証の保護を有するプログラム及びデータの安全な転送を確立するステップを更に含む、請求項17に記載の方法。
【請求項23】
前記ヘテロジニアスコンピューティングシステムの第2の装置の第4の処理リソースセット内の第3の専用プロセッサにおけるプログラム実行の状態が、第2の暗号化プロセッサを使用する専用メモリのコンテンツの符号付きハッシュ値を生成してから、前記第2の装置の前記第3の専用プロセッサから前記第1の装置の前記第2の処理リソースセット内の前記第2の専用プロセッサに前記符号付きハッシュ値を転送することにより検証され、前記信頼できるリッチ実行環境(T-REE)は、前記第2の処理リソースセットでインスタンス化される、請求項17に記載の方法。
【請求項24】
前記第1の装置の第1の暗号化プロセッサが、前記信頼できる実行環境(TEE)で前記信頼できる特定目的のオペレーティングシステムの前記第1のセキュアブートを実行し、
前記ヘテロジニアスコンピューティングシステムの前記第1の装置と第2の装置の間で相互認証を行い、共有メモリ内の保護セグメントに記憶されたデータに機密性及び完全性の保護を提供し、共有バス及びオープンインターコネクトを介してデータ転送に機密性、完全性、及び認証の保護を提供するように構成され、
第2の暗号化プロセッサが、前記第1の装置と前記第2の装置の間で相互認証を行い、前記オープンインターコネクトを介して転送されたデータに機密性、完全性、及び認証の保護を提供するように構成される、請求項17に記載の方法。
【請求項25】
前記第1のセキュアブート及び第2のセキュアブートは、オブジェクトコードのプロバイダ及びコンシューマとは区別される信頼できる組織によって発行されたオブジェクトコードのハッシュ値のデジタル署名を検証することにより、システムファームウェアとソフトウェアの真正性及び完全性をチェックするメカニズムである、請求項17に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オープンインターコネクトを介してヘテロジニアスプロセッサ上でリモート認証及び情報分離を備えた信頼できるコンピューティングを実行するためのシステム及び方法に関する。具体的には、本発明は、安全で信頼できるコンピューティングアーキテクチャ及びその動作方法に関する。本発明は、イーサネット(登録商標)、USB、SPIなどの標準的なオープンインターコネクトを介して中央処理装置(CPU)に接続されたグラフィックス処理ユニット(GPU)、ニューラル処理ユニット(NPU)、ビデオ処理ユニット(VPU)などのヘテロジニアス処理ユニットによって、実行されたプログラム、使用された解析モデル及び処理されたデータの真正性、機密性及び完全性の保証に関する。
【背景技術】
【0002】
ヘテロジニアスプロセッサのクラスタを保護するために特定のアクセス権を有するドメインを作成するというアイデアは、いくつかの研究で提案された。ただし、その提案には、特別なネットワークオンチップ(NoC)のハードウェア設計(NoCファイアウォールと呼ばれる)が必要である。本発明では、この要件は、中央処理装置のクラスタとヘテロジニアス処理ユニットの間に静的な関連付けを確立することにより緩和された。このより単純な(かつ、より限定的な)設計により、ハードウェアを変更する必要がなくなり、既存の組み込みシステムにより適している。3つの異なる実行環境をインスタンス化して、重要な、信頼できる、及び信頼できないアプリケーションを実行するというアイデアは、いくつかの研究で提案された。ただし、この提案では、プロセッサを異なる実行環境に自由に関連付けることができるように、書き込みは一回限りだが読み取りは何度でもできるNoCと呼ばれる特別なネットワークオンチップを使用することも要求される。マルチプロセッサシステム内の特定のプロセッサを各実行環境に関連付けることにより、本発明は、情報分離のメカニズムを単純化して特別なオンチップハードウェアの使用を回避する。
【発明の概要】
【0003】
本発明は、ヘテロジニアス処理ユニットによって、実行されたプログラム、使用された深層学習(DL)/機械学習(ML)モデル、及び処理されたデータの真正性、機密性及び完全性を保証できるコンピュータアーキテクチャ及びコンピューティング操作の両方を開示する。ヘテロジニアス処理ユニットはXPUと略され、ここで、「X」が様々なタイプの特殊処理ユニットを指す。ヘテロジニアス処理ユニットは、イーサネット、PCI、USB及びSPIを含むがこれらに限定されない標準的なオープンインターコネクトを介して中央処理装置(CPU)に接続された、グラフィックス処理ユニット(GPU)、ニューラル処理ユニット(NPU)、テンソル処理ユニット(TPU)及びビデオ処理ユニット(VPU)を含むがこれらに限定されない。ハードウェアメモリ管理ユニット(MMU)又はバス調停/多重化ユニット(BAU)を用いて情報分離を行うことなく、
【0004】
開示されたコンピュータアーキテクチャ及びコンピューティング操作は、コンピューティングタスク間の情報分離の保護、及びCPU及びXPUの実行状態のリモート認証のサポートを行いながら、XPU及びCPUで信頼できるコンピューティングを実行することを可能にする。したがって、プログラム、DL/MLモデル、及びデータの真正性、機密性、及び完全性を保証しながら、これらの処理装置で様々なコンピューティングタスクが実行される。
【0005】
本発明は、まず、1つ以上の専用CPUで構成されたシステムハードウェアプラットフォーム上の非保護領域及び共有バスで接続された共有メモリ内の専用領域にインスタンス化された仮想マシン(VM)において信頼できるリッチ実行環境(trusted rich execution environment、T-REE)を確立するためのコンピュータ操作方法を開示する。T-REEは、1つ以上の専用CPU、暗号化プロセッサ、及びメモリ内の保護領域で構成されたシステムハードウェアプラットフォームの保護領域に確立された信頼できる実行環境(trusted execution environment、TEE)によって提供されたセキュリティサービスを使用して、T-REEで処理されたプログラム、モデル、及びデータに、真正性、機密性、及び完全性の保護を提供して、同様に確立された他のT-REE及びTEEからのセキュリティサポートなしで動作するリッチ実行環境(rich execution environmen、REE)で処理されたプログラムからそれらを分離する。
【0006】
本発明はまた、相互認証が成功して完了し、関連する暗号化プロセッサによりCPUとXPU間で安全な通信チャネルが成功して確立された後、専用CPU間で確立されたT-REEによって提供された情報分離保護を、オープンインターコネクトを介してCPUに接続されたXPUを含むように拡張するためのコンピュータ操作方法を開示する。
【0007】
本発明はまた、関連する暗号化プロセッサを使用して、XPUとT-REE内の専用CPUの間で確立された安全な通信により、XPUの実行状態のリモート認証を実行するためのコンピュータ操作方法を開示する。
【0008】
本発明は、コンピュータシステムに2つの暗号化プロセッサをインストールし、一方を専用CPUに関連付け、他方をXPUに関連付けることを必要とする。2つの暗号化プロセッサは、次のセキュリティ機能を実行できる必要がある。
(1)TEE及びT-REEで実行されるソフトウェアのセキュアブート、
(2)専用CPUとXPU間の相互認証、
(3)専用CPUとXPU間のデータ発信元認証、データ機密性、及びデータ完全性の保護を提供する安全な通信
【0009】
本発明はまた、コンピュータシステムが、プロセッサのオペレーティングシステム機能を実施し、XPUとCPU間のオープンインターコネクトを介して情報交換へのアフィニティを割り込んで、それらの情報交換をT-REEの専用CPUに指示する標準機能を有することを必要とする。この機能は、オペレーティングシステムの標準機能である。
【0010】
本発明はまた、コンピュータシステムが、T-REE内の専用CPUと暗号化プロセッサを所有するTEE内の専用CPUの間の安全な情報交換をサポートする標準機能を有することを必要とする。この機能は、グローバルプラットフォームTEE標準仕様の基本機能である。
【0011】
前述の一般的な説明及び以下の詳細な説明の両方が例示的なものであり、特許請求される本発明の更なる説明を提供することを意図していることを理解されたい。
【図面の簡単な説明】
【0012】
以下の添付図面を参照して、実施形態の以下の詳細な説明を読むことによって、本発明をより完全に理解することができる。
【0013】
【
図1】ホストコンピュータサブシステム、ヘテロジニアスコンピュータサブシステム、及びこの2つのサブシステムを接続するオープンインターコネクトを含むヘテロジニアスコンピューティングシステムの機能的なアーキテクチャを示す概略図である。
【0014】
【
図2】ヘテロジニアスコンピューティングシステムのソフトウェアアーキテクチャ、特に3つの異なる実行環境:信頼できる実行環境(TEE)、信頼できるリッチ実行環境(T-REE)、及びT-REEの拡張カバレッジを、ハードウェアプラットフォーム、及びハイパーバイザとともに示す概略図である。
【0015】
【
図3】相互認証が成功して完了し、CPUとXPU間で安全な通信が確立された後、システムの電源投入又はリセットから信頼できる実行環境(TEE)及び信頼できるリッチ実行環境(T-REE)をインスタンス化して、XPUを含むようにT-REEカバレッジを拡張するブートシーケンスを示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、本発明の実施形態を詳細に参照し、その例を添付図面に示す。可能な限り、同じ又は類似の部品を参照するために、図面及び説明において同じ参照番号が使用されている。モノのインターネット(IoT)の出現により、大量のデータが様々なセンサーによって収集され、環境に組み込まれたコンピューティングノードによって分析される。このエッジ分析の新興のパラダイムでは、CPU、GPU、NPU、及びVPU(総称してXPUと呼ばれる)を備えた、エッジコンピューティングノードと呼ばれるヘテロジニアスコンピューティングシステムは、データのソース付近の複数のユーザのリアルタイムデータ分析を実行するために頻繁に使用される。マルチテナンシーをサポートするための要件-つまり、情報のプライバシーと主権を維持し、各ユーザの使用ポリシーを遵守しながら、共通のプラットフォームでコンピューティングタスクを実行できるようにする機能-は、ヘテロジニアスコンピューティングシステムに、異なるユーザのコンピューティングタスク間でデータの真正性、機密性、及び完全性の保護を提供して情報分離を実施するよう求める。ただし、組み込まれたヘテロジニアスコンピューティングシステム間でハードウェ仮想化のサポートを欠くため、システムレベルの情報分離はエッジコンピューティングノード間で適切に実施されない。
【0017】
本発明は、共有メモリを使用せずにI/Oチャネルを介して情報を交換するCPUとXPUの間で情報の真正性、機密性、及び完全性の保護を実施するためのソフトウェアシステムアーキテクチャ及び手続的方法を提供する。本発明は、一般的なアプリケーションに対する機密で信頼できるコンピューティングをサポートできるCPUを備えたホストコンピュータのハードウェアプラットフォーム上の非保護領域に仮想マシン(VM)として信頼できるリッチ実行環境(T-REE)を確立する方法を含む。また、T-REEの保護範囲を、オープンインターコネクトを介してホストコンピュータに接続されたXPUを備えたヘテロジニアスコンピュータを含むように拡張する方法を含む。最後に、ホストコンピュータ上のCPUとヘテロジニアスコンピュータ上のXPUの両方の状態に対してリモート認証を行う方法を含む。
【0018】
以下の実施形態は、システムアーキテクチャに関する。
【0019】
図1を参照する。
図1は、第1の装置(ホストコンピュータサブシステム110)、第2の装置(ヘテロジニアスコンピュータサブシステム120)、及びオープンインターコネクト130を含むヘテロジニアスコンピューティングシステム100の機能的なアーキテクチャを示す概略図である。ヘテロジニアスコンピュータサブシステム120は、オープンインターコネクト130を介してホストコンピュータサブシステム110に静的に接続される。オープンインターコネクト130は、2つの装置間の双方向の情報交換をサポートするための標準的なプロトコルを実装する通信チャネルとして定義される。オープンインターコネクト130は、イーサネット、USB、SPIなどの標準的な通信チャネルを含むが、これらに限定されなく、これらのチャネルは、複数のサブシステムで同時に使用して、固有のデータ保護なしで情報交換を行うことができる。
【0020】
図1に示すとおりである。ホストコンピュータサブシステム110は、第1の専用プロセッサ(
図1に示す専用中央処理装置(CPU)112A)、第2の専用プロセッサ(
図1に示す専用CPU112B)、第1の非専用プロセッサ(
図1に示す非専用CPU112C)、共有バス115、第1の暗号化プロセッサ(
図1に示す暗号化プロセッサ113)、第1の保護メモリセグメント(
図1に示す共有メモリの保護領域111A)、第2の保護メモリセグメント(
図1に示す共有メモリの保護領域111B)、及び第1の非保護メモリセグメント(
図1に示す共有メモリの非保護領域111C)を含む。共有バス115は、オープンインターコネクト130に接続される。専用CPU112A、暗号化プロセッサ113、共有メモリの保護領域111A、共有メモリの保護領域111B、及び共有メモリの非保護領域111Cは、共有バス115に接続される。
【0021】
共有メモリの保護領域111A及び111Bは、暗号化プロセッサ113によって実行されたメモリ暗号化、又は共有メモリに統合されたメモリ管理ハードウェアによって実施されたアクセス制御により保護される。
【0022】
ホストコンピュータサブシステム110に関して、第1の暗号化プロセッサ113は、以下の2組の機能を実行するように構成される。ハードウェアの信頼のルートとして、システムソフトウェアのセキュアブートと、CPU及び共有メモリの状態のリモート認証をリモートアテスタ(remote attestator)に行うことができる。暗号化プロセッサとして、共有メモリの保護領域に記憶されたデータに機密性及び完全性の保護を提供することができる。
【0023】
ホストコンピュータサブシステム110とヘテロジニアスコンピュータサブシステム120の間の相互作用に関して、第1の暗号化プロセッサ113は、2つのサブシステム間の相互認証を行うように構成される。また、オープンインターコネクト130を介してプログラム、モデル、及びデータの転送に機密性、完全性、及び認証の保護を提供するように構成される。
【0024】
ホストコンピュータサブシステム110及びヘテロジニアスコンピュータサブシステム120は、オープンインターコネクト130を介してプログラム、モデル、及びデータを転送する。
【0025】
ヘテロジニアスコンピュータサブシステム120は、第3の専用プロセッサ(
図1に示すヘテロジニアス処理ユニット(XPU)122)、専用バス125、第2の暗号化プロセッサ(
図1に示す暗号化プロセッサ123)、及びXPU122が使用する専用メモリ121を含む。XPU122、暗号化プロセッサ123、及び専用メモリ121は、専用バス125を介して内部的に接続される。
【0026】
処理リソースセット124A内の暗号化プロセッサ123は、ヘテロジニアスコンピュータサブシステム120とホストコンピュータサブシステム110の間で相互認証を行い、オープンインターコネクト130を介して転送されたプログラム、モデル、及びデータに機密性、完全性、及び認証の保護を提供するように構成される。
【0027】
更に、システム100のホストコンピュータサブシステム110内の要素は、それらの実行環境に応じて、第1の処理リソースセット(
図1に示す処理リソースセット114A)、第2の処理リソースセット(
図1に示す処理リソースセット114B)及び第3の処理リソースセット(
図1に示す処理リソースセット114C)に分割することができる。システム100のヘテロジニアスコンピュータサブシステム120内の要素は、第4の処理リソースセット(
図1に示す処理リソースセット124A)に分割することができる。
【0028】
処理リソースセット114Aは、専用CPU112A、共有メモリの第1の保護領域111A、及び暗号化プロセッサ113を含む。それらは、ホストコンピュータサブシステム110の保護領域にある。この領域のリソースの保護は、第1のプロセッサリソースセット114がヘテロジニアスコンピューティングシステム100全体のハードウェアの信頼のルートとして機能できるように、ハードウェアで実装される。
【0029】
処理リソースセット114Bは、専用CPU112B及び共有メモリの保護領域111Bを含む。これらは、ホストコンピュータサブシステム110の非保護領域にある。この領域のリソースの保護は、専用CPU112B及び処理リソースセット114Aで実行されたソフトウェアにより実装することができる。
【0030】
処理リソースセット114Cは、非専用CPU112C及び共有メモリの非保護領域111Cを含む。これらも、ホストコンピュータサブシステム110の非保護領域にある。この領域のリソースの保護は実装されない。
【0031】
第4の処理リソースセット124Aは、XPU122、専用バス125、暗号化プロセッサ123、及び専用メモリ121を含む。それらは、ヘテロジニアスコンピュータサブシステム120の専用領域にある。この領域のリソースの保護は、ヘテロジニアスコンピュータサブシステム120の物理的分離と、オープンインターコネクト130を介して行われた交換に提供された機密性、完全性、及び認証の保護との組み合わせにより実装される。
【0032】
以下の実施形態は、信頼できる実行環境(TEE)及び信頼できるリッチ実行環境(T-REE)の間の構造的及び機能的な相違点に関する。
【0033】
図2を参照する。
図2は、ヘテロジニアスコンピューティングシステム100のソフトウェアアーキテクチャ200、特に3つの異なる実行環境:信頼できる実行環境(TEE)210、信頼できるリッチ実行環境(T-REE)220、及びT-REE220の拡張カバレッジ230を、ハイパーバイザ222及びハードウェアプラットフォームとともに示す概略図である。なお、非保護リッチ実行環境(REE)は、本発明の一部ではないため、この図に示されない。処理リソースセット114Cでインスタンス化されたREEで実行されたプログラム及び処理されたデータは、機密性、完全性、又は認証のサービスによって保護されない。
【0034】
図2に示すように、ホストコンピュータサブシステム110のハードウェアプラットフォーム上の保護領域内の処理リソースセット114Aは、信頼できる実行環境(TEE)210をインスタンス化するように構成される。ハードウェアプラットフォームの非保護領域内の処理リソースセット114Bは、信頼できるリッチ実行環境(T-REE)220をインスタンス化するように構成される。ハードウェアプラットフォームの非保護領域内の処理リソースセット114Cは、リッチ実行環境(REE)220(図示せず)をインスタンス化するように構成される。一般的目的のオペレーティングシステムは、処理リソースセット114Cでインスタンス化されたREEで実行される。
【0035】
TEE210は、信頼できる特定目的のオペレーティングシステム211、TEE通信エージェント212、及び1つ以上の信頼できる特定目的のサービスプログラム213を含む。信頼できる特定目的のオペレーティングシステム211は、信頼できる実行環境210で実行される。信頼できる特定目的のサービスプログラム213は、信頼できる実行環境210で信頼できる特定目的のオペレーティングシステム211をサポートして実行される。
【0036】
信頼できる実行環境210は、特定目的のセキュリティ機能を実行するためのソフトウェア実行環境である。TEE210は、装置のハードウェアプラットフォームの保護領域でインスタンス化され、信頼できる特定目的のオペレーティングシステムを実行する。
【0037】
T-REE220は、ハイパーバイザ222、信頼できる一般的目的のオペレーティングシステム221、及び1つ以上の信頼できる一般的目的のアプリケーションプログラム223を含む。T-REE220は、処理リソースセット114Bで仮想マシンとしてインスタンス化される。信頼できる一般的目的のオペレーティングシステム221は、T-REE220で実行される。信頼できる一般的目的のアプリケーションプログラム223は、T-REE220で信頼できる一般的目的のオペレーティングシステム221をサポートして実行される。
【0038】
T-REE220は、信頼できる一般的目的のアプリケーションプログラムを実行するためのソフトウェア実行環境である。T-REE220は、装置のハードウェアプラットフォームの非保護領域で仮想マシンとしてインスタンス化され、信頼できる一般的目的のオペレーティングシステム221を実行する。
【0039】
信頼できる一般的目的のアプリケーションプログラム223は、信頼できる組織によって検証され、そのデジタル署名で認定されたプログラムの真正性及び完全性を有するソフトウェアプログラムである。信頼できる一般的目的のアプリケーションプログラム223の出力は、T-REE220で実行されると、悪意のある変更がないものとして信頼される。
【0040】
信頼できる一般的目的のオペレーティングシステム221は、信頼できる一般的目的のアプリケーションプログラム223の実行をサポートするように構築されたオペレーティングシステムである。信頼できる一般的目的のオペレーティングシステム221のオブジェクトコードの真正性及び完全性は、信頼できる組織によって検証され、オブジェクトコードのデジタル署名で認定される。信頼できる一般的目的のオペレーティングシステム221は、第2のセキュアブートプロセスでT-REE220にロードされ、信頼できる一般的目的のオペレーティングシステム221は、T-REE仮想マシンのインスタンス化中に開始され、TEE210で実行されたセキュリティ機能によって実行される。
【0041】
信頼できる特定目的のサービスプログラム213は、プログラムの真正性及び完全性を有し、信頼できる組織によって検証され、信頼できる組織のデジタル署名で認定されたプログラムであり、信頼できる特定目的のサービスプログラム213は、暗号化又はセキュリティ機能を実行し、信頼できる特定目的のサービスプログラム213の出力は、信頼できる特定目的のサービスプログラムがTEE210で実行されると、悪意のある変更がないものとして信頼される。
【0042】
以下の実施形態は、信頼できる実行環境(TEE)210及び信頼できるリッチ実行環境(T-REE)220の確立を説明する。
【0043】
図3を参照する。
図3は、ホストコンピュータサブシステム110とヘテロジニアスコンピュータサブシステム120の間の相互認証が成功して完了し、専用CPU112B、専用CPU112A及びXPU122の間で安全な通信が確立された後、システムの電源投入又はリセットからTEE210及びT-REE220をインスタンス化して、ヘテロジニアスコンピュータサブシステム120を含むようにT-REE220カバレッジを拡張するブートシーケンスを示すフローチャートである。
【0044】
以下のステップは、信頼できる実行環境(TEE)210を確立するために提供される。TEE210は、ホストコンピュータサブシステム110の電源投入又はシステムリセット後に暗号化プロセッサ113が開始するセキュアブート中に、ホストコンピュータサブシステム110内のハードウェアプラットフォームの保護領域内の処理リソースセット114Aでインスタンス化された信頼できる特定目的のオペレーティングシステム211を実行する。
【0045】
セキュアブートは、オブジェクトコードのプロバイダ及びコンシューマ以外の信頼できる組織によって発行されたオブジェクトコードのハッシュ値のデジタル署名を検証することにより、システムファームウェア及びソフトウェアの真正性及び完全性をチェックするメカニズムである。
【0046】
処理リソースセット114Aは、ホストコンピュータサブシステム110に専用プロセッサ112A、共有メモリの保護領域111A、及び暗号化プロセッサ113を含む。暗号化プロセッサ113は、TEE210で信頼できる特定目的のオペレーティングシステム211の第1のセキュアブートを実行し、共有メモリ内の保護セグメントに記憶されたデータに機密性及び完全性の保護を提供するように構成される。
【0047】
ステップ310は、ROMブートの実行であり、このステップでは、システムチェックを行い、ブートストラッププロセスを開始する。
【0048】
ステップ311は、第1のセキュアブートのステージ1の実行であり、このステップでは、信頼できるファームウェアを処理リソースセット114Aにインストールする。
【0049】
ステップ312は、第1のセキュアブートのステージ2の実行であり、このステップでは、信頼できる特定目的のオペレーティングシステム211の検証及び処理リソースセット114Aへのインストールを実行する。信頼できる特定目的のオペレーティングシステムは、標準的な操作手順に従って暗号化及びセキュリティ機能の実行をサポートするように構築されたオペレーティングシステムである。信頼できる特定目的のオペレーティングシステムのオブジェクトコードの真正性及び完全性は、信頼できる組織によって検証され、オブジェクトコードのデジタル署名で認定される。信頼できる特定目的のオペレーティングシステムは、第1のセキュアブートプロセスにおいて第1の処理リソースセットにロードされ、これにより、ホストコンピュータサブシステムの電源投入又はリセット中に、信頼できる特定目的のオペレーティングシステムのオブジェクトコードのデジタル署名が検証される。TEE210は、第1のセキュアブートのステージ2が成功して完了した後に確立される。
【0050】
以下のステップは、信頼できるリッチ実行環境(T-REE)220を確立するために提供される。信頼できる一般的目的のオペレーティングシステム221を実行するT-REE220は、ホストコンピュータサブシステム110のハードウェアプラットフォームの非保護領域内の処理リソースセット114Bで仮想マシンとしてインスタンス化され、処理リソースセット114Bは、第2の専用プロセッサ112B及び共有メモリの保護領域111Bを含む。
【0051】
ステップ313、第2のセキュアブートのステージ1の実行:このステップでは、ハイパーバイザをインストールする。
【0052】
ステップ314は、第2のセキュアブートのステージ2の実行:このステップでは、処理リソースセット114B内の信頼できる一般的目的のオペレーティングシステム221の検証及びインストールを実行する。信頼できる一般的目的のオペレーティングシステム221は、TEE210の第1のセキュアブートが成功して完了した後、第2のセキュアブートのステージ2にインストールされ、信頼できる一般的目的のオペレーティングシステムは、信頼できる組織によって生成されたデジタル署名の検証により認証されるため、TEE210の信頼できる特定目的のオペレーティングシステム211によって信頼される。T-REE220は、第2のセキュアブートのステージ2が成功して完了した後に確立される。
【0053】
その結果、TEE210によって使用された処理リソースセット114Aの共有メモリの保護領域111Aに記憶されたプログラム、モデル、及びデータと、T-REE220によって使用された処理リソースセット114Bの共有メモリの保護領域111Bに記憶されたプログラム及びデータは、機密性及び完全性のサービスによって保護される。
【0054】
また、ホストコンピュータサブシステム110内のTEE通信エージェント212を介してTEE210とT-REE220の間で転送されたプログラム、モデル、及びデータは、機密性、完全性、及び認証のサービスによって保護される。
【0055】
以下の実施形態は、専用CPU112Bとヘテロジニアスプロセッサ(XPU)122の間の安全な情報交換の確立によりT-REE220のカバレッジの拡張を説明する。
【0056】
ステップS320では、相互認証手順は、ホストコンピュータサブシステム110の処理リソースセット114A内の暗号化プロセッサ113と、ヘテロジニアスコンピュータサブシステム120内の処理リソースセット124A内の暗号化プロセッサ123の間で行われる。その結果、ホストコンピュータサブシステム110とヘテロジニアスコンピュータサブシステム120の間で信頼関係が確立される。
【0057】
ステップS321では、ホストコンピュータサブシステム110内の専用CPU112Aと、ヘテロジニアスコンピュータサブシステム120内のXPU122の間で安全な通信が確立される。安全な通信は、2つのサブシステム110及び120間の相互認証が成功して完了した後、ホストコンピュータサブシステム110の暗号化プロセッサ113及びヘテロジニアスコンピュータサブシステム120の暗号化プロセッサ123によって提供された機密性、完全性、及び認証のサービスによって保護される。
【0058】
ステップS322では、TEE210とT-REE220の間で安全な通信が確立される。TEE210が確立された処理リソースセット114Aの専用CPU112Aと、T-REE220が確立された処理リソースセット114Bの専用CPU112Bの間で安全な通信が行われる。安全な通信は、機密性、完全性、及び認証のサービスによって保護される。
【0059】
ステップS323では、TEE210を介して、T-REE220とヘテロジニアスコンピュータサブシステム120の間で安全な通信が確立される。ホストコンピュータサブシステム110内の、TEE210が確立された処理リソースセット114A内の暗号化プロセッサ113と、ヘテロジニアスコンピュータサブシステム120内の暗号化プロセッサ123の間の安全な通信により、T-REE220が確立された処理リソースセット114B内の専用CPU112Bとヘテロジニアスコンピュータサブシステム120内のXPU122の間で安全な通信が行われる。安全な通信は、機密性、完全性、及び認証のサービスによって保護される。
【0060】
TEE210を介してヘテロジニアスコンピュータサブシステム120とT-REE202の間で安全な通信が成功して確立された後、ヘテロジニアスコンピュータサブシステム120は、T-REE220の拡張カバレッジに含まれる。
【0061】
TEE210を介してヘテロジニアスコンピュータサブシステム120とT-REE220の間で安全な通信が成功して確立された後、ヘテロジニアスコンピュータサブシステム120内のXPU122におけるプログラム実行の状態は、暗号化プロセッサ123を使用して専用メモリ112のコンテンツの符号付きハッシュ値を生成して、符号付きハッシュ値を、ヘテロジニアスコンピュータサブシステム120から、ホストコンピュータサブシステム110内の、T-REEが確立された処理リソースセット114Bに転送することにより検証される。
【0062】
T-REE220がアイドルである、又は非アクティブ化されることに応じて、T-REE220がインスタンス化された仮想マシンが終了し、処理リソースセット114Bが解放されるが、専用プロセッサ112Bが非専用プロセッサになり、共有メモリの保護領域111Bが非保護メモリの一部になる。
【0063】
本発明の範囲又は精神から逸脱することなく、本発明の構造に様々な修正及び変形を加え得ることは、当業者に明らかである。上記に鑑み、本発明は、以下の特許請求の範囲内にある本発明の修正及び変形をカバーすることが意図される。