(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-24
(54)【発明の名称】マルチテナント環境におけるハードウェアチェックストップの間の顧客データおよび内部レジスタデータの保護
(51)【国際特許分類】
G06F 21/62 20130101AFI20240717BHJP
G06F 21/60 20130101ALI20240717BHJP
【FI】
G06F21/62 318
G06F21/60 320
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023561139
(86)(22)【出願日】2022-06-06
(85)【翻訳文提出日】2023-10-04
(86)【国際出願番号】 CN2022097131
(87)【国際公開番号】W WO2022267868
(87)【国際公開日】2022-12-29
(32)【優先日】2021-06-24
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ダス、ラジャ
(72)【発明者】
【氏名】グプタ、サチン
(72)【発明者】
【氏名】バラスブラマニアン、サントシュ
(72)【発明者】
【氏名】コルラパティ、サンディープ
(57)【要約】
セルフブートエンジン(SBE)などの信頼できるエンティティを通じて顧客ワークロードデータを暗号化するための方法および対応するシステムを提供する。より詳細には、顧客中心のデータを安全に抽出するための方法および対応するシステムがあり、その方式では、SBEに登録して暗号化キーを共有する顧客ペイロードおよび/またはワークロードを必要とする。
【特許請求の範囲】
【請求項1】
プロセッサコア上のハードウェアスレッドがユーザワークロードデータ一式を受け取る段階、ここで前記ユーザワークロードデータ一式には機密扱いのセキュア情報(SSI)が含まれる;
前記プロセッサコアから前記SSIを抽出して第1の抽出済みSSIを取得する段階;
前記第1の抽出済みSSIをセルフブートエンジン(SBE)に登録する段階、ここで前記登録には前記第1の抽出済みSSIに対する暗号化キーの割り当てが含まれる;
前記プロセッサコア上の前記ハードウェアスレッドが前記ユーザワークロードデータ一式の更新データを受け取る段階;
前記ユーザワークロードデータ一式の前記更新データを受け取ったことに応答して、前記第1の抽出済みSSIの前記暗号化キーを上書きする段階;および
前記SBEが、前記第1の抽出済みSSI、および前記ユーザワークロードデータ一式の前記更新データを区別する段階
を備える方法。
【請求項2】
前記第1の抽出済みSSI、および前記ユーザワークロードデータ一式の前記更新データが、同じ暗号化キーを共有する、請求項1に記載の方法。
【請求項3】
前記第1の抽出済みSSI、および前記ユーザワークロードデータ一式の前記更新データの前記区別が、カーネルデータ構造体によって行われる、請求項1に記載の方法。
【請求項4】
さらに、
前記第1の抽出済みSSI一式に含まれるデータを取り出すことにより、フレキシブルサービスプロセッサが前記第1の抽出済みSSI一式をオフロードする段階を含む、請求項1に記載の方法。
【請求項5】
さらに、
前記第1の抽出済みSSI一式に含まれるデータを予約済みメモリ空間にコピーすることにより、前記SBEが前記第1の抽出済みSSI一式をオフロードする段階を含む、請求項1に記載の方法。
【請求項6】
前記暗号化キーがホストカーネルを通じて前記SBEと共有される、請求項1に記載の方法。
【請求項7】
マシン可読ストレージデバイス;および
前記マシン可読ストレージデバイスに格納されたコンピュータコード、前記コンピュータコードには、
プロセッサコア上のハードウェアスレッドがユーザワークロードデータ一式を受け取る動作、ここで前記ユーザワークロードデータ一式には機密扱いのセキュア情報(SSI)が含まれる、
前記プロセッサコアから前記SSIを抽出して第1の抽出済みSSIを取得する動作、
前記第1の抽出済みSSIをセルフブートエンジン(SBE)に登録する動作、ここで前記登録には前記第1の抽出済みSSIへの暗号化キーの割り当てが含まれる、
前記プロセッサコア上の前記ハードウェアスレッドが前記ユーザワークロードデータ一式の更新データを受け取る動作、
前記ユーザワークロードデータ一式の前記更新データを受け取ったことに応答して、前記第1の抽出済みSSIの前記暗号化キーを上書きする動作、および
前記SBEが、前記第1の抽出済みSSI、および前記ユーザワークロードデータ一式の前記更新データを区別する動作
を含む複数の動作を1つまたは複数のプロセッサに行わせるための命令およびデータが含まれる
を備える、コンピュータプログラム製品(CPP)。
【請求項8】
前記第1の抽出済みSSI、および前記ユーザワークロードデータ一式の前記更新データが、同じ暗号化キーを共有する、請求項7に記載のCPP。
【請求項9】
前記第1の抽出済みSSI、および前記ユーザワークロードデータ一式の前記更新データの前記区別が、カーネルデータ構造体によって行われる、請求項7に記載のCPP。
【請求項10】
さらに、
前記第1の抽出済みSSI一式に含まれるデータを取り出すことにより、フレキシブルサービスプロセッサが前記第1の抽出済みSSI一式をオフロードする動作を含む、請求項7に記載のCPP。
【請求項11】
さらに、
前記第1の抽出済みSSI一式に含まれるデータを予約済みメモリ空間にコピーすることにより、前記SBEが前記第1の抽出済みSSI一式をオフロードする動作を含む、請求項7に記載のCPP。
【請求項12】
前記暗号化キーがホストカーネルを通じて前記SBEと共有される、請求項7に記載のCPP。
【請求項13】
1つまたは複数のプロセッサ;
マシン可読ストレージデバイス;および
前記マシン可読ストレージデバイスに格納されたコンピュータコード、前記コンピュータコードには、
プロセッサコア上のハードウェアスレッドがユーザワークロードデータ一式を受け取る動作、ここで前記ユーザワークロードデータ一式には機密扱いのセキュア情報(SSI)が含まれる、
前記プロセッサコアから前記SSIを抽出して第1の抽出済みSSIを取得する動作、
前記第1の抽出済みSSIをセルフブートエンジン(SBE)に登録する動作、ここで前記登録には前記第1の抽出済みSSIへの暗号化キーの割り当てが含まれる、
前記プロセッサコア上の前記ハードウェアスレッドが前記ユーザワークロードデータ一式の更新データを受け取る動作、
前記ユーザワークロードデータ一式の前記更新データを受け取ったことに応答して、前記第1の抽出済みSSIの前記暗号化キーを上書きする動作、および
前記SBEが、前記第1の抽出済みSSI、および前記ユーザワークロードデータ一式の前記更新データを区別する動作
を含む複数の動作を前記1つまたは複数のプロセッサに行わせるための命令およびデータが含まれる
を備えるコンピュータシステム(CS)。
【請求項14】
前記第1の抽出済みSSI、および前記ユーザワークロードデータ一式の前記更新データが、同じ暗号化キーを共有する、請求項13に記載のCS。
【請求項15】
前記第1の抽出済みSSI、および前記ユーザワークロードデータ一式の前記更新データの前記区別が、カーネルデータ構造体によって行われる、請求項13に記載のCS。
【請求項16】
さらに、
前記第1の抽出済みSSI一式に含まれるデータを取り出すことにより、フレキシブルサービスプロセッサが前記第1の抽出済みSSI一式をオフロードする動作を含む、請求項13に記載のCS。
【請求項17】
さらに、
前記第1の抽出済みSSI一式に含まれるデータを予約済みメモリ空間にコピーすることにより、前記SBEが前記第1の抽出済みSSI一式をオフロードする動作を含む、請求項13に記載のCS。
【請求項18】
前記暗号化キーがホストカーネルを通じて前記SBEと共有される、請求項13に記載のCS。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は概してデータセキュリティの分野に関し、より詳細には、データダンプ処理の間に採取されたユーザデータの保護に関する。
【背景技術】
【0002】
本書では、ハードウェアチェックストップ(HWチェックストップ)およびマシンチェック例外(MCE)という用語が区別なく用いられている。ウィキペディアの「マシンチェック例外」の項目には(2021年4月25日時点で)次のように記載されている。「マシンチェック例外(MCE)とは、コンピュータの中央演算処理装置がプロセッサ自体、メモリ、I/Oデバイス、またはシステムバスにおいてハードウェアエラーを検出したときに発生するコンピュータハードウェアエラーの一種であり;アーキテクチャによっては、回復できないエラーについてだけMCEが発生する。x86アーキテクチャでは、マシンチェック例外がソフトウェアによって引き起こされることはない。しかしながら、PowerPCなどの他のアーキテクチャでは、無効なメモリアクセスなどの特定のソフトウェアバグがマシンチェック例外を引き起こす可能性がある。このエラーは通常、コンポーネントの障害またはハードウェアコンポーネントの過熱またはオーバークロックが原因で発生する。ほとんどのマシンチェック例外では、オペレーティングシステムが停止して再起動が必要になり、その後でユーザは正常な作業を続けることができる。故障の原因を突きとめるのは困難になり得ることが多く、そうなるのは、問題の原因に関する情報がエラー発生の間にほとんど採取されていないからである」。
【発明の概要】
【0003】
本発明の一態様によれば、以下の動作(必ずしも以下の順序ではない)を行う方法、コンピュータプログラム製品、および/またはシステムがある。(i)プロセッサコア上のハードウェアスレッドがユーザワークロードデータ一式を受け取る動作、ここでユーザワークロードデータ一式には機密扱いのセキュア情報(SSI)が含まれる;(ii)プロセッサコアからSSIを抽出して第1の抽出済みSSIを取得する動作;(iii)第1の抽出済みSSIをセルフブートエンジン(SBE)に登録する動作、ここでこの登録には第1の抽出済みSSIへの暗号化キーの割り当てが含まれる;(iv)プロセッサコア上のハードウェアスレッドがユーザワークロードデータ一式の更新データを受け取る動作;(v)ユーザワークロードデータ一式の更新データを受け取ったことに応答して、第1の抽出済みSSIの暗号化キーを上書きする動作;および(vi)SBEが、第1の抽出済みSSI、およびユーザワークロードデータ一式の更新データを区別する動作である。
【図面の簡単な説明】
【0004】
【
図1】本発明によるシステムの第1実施形態のブロックダイアグラム図である。
【0005】
【
図2】第1実施形態のシステムによって少なくとも部分的に行われる第1実施形態の方法を示すフローチャートである。
【0006】
【
図3】第1実施形態のシステムのマシンロジック(例えば、ソフトウェア)部分を示すブロックダイアグラムである。
【0007】
【
図4】本発明の実施形態によるシステムスタックを示すブロックダイアグラムである。
【発明を実施するための形態】
【0008】
この「発明を実施するための形態」のセクションは、以下のサブセクション、すなわち、(i)ハードウェアおよびソフトウェア環境;(ii)例示的な実施形態;(iii)さらなるコメントおよび/または実施形態;ならびに(iv)定義に分けられる。
I.ハードウェアおよびソフトウェア環境
【0009】
本発明は、システム、方法、および/またはコンピュータプログラム製品であってよい。コンピュータプログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有する1つ(または複数)のコンピュータ可読記憶媒体を含み得る。
【0010】
コンピュータ可読記憶媒体は、命令実行デバイスが使用する命令の保持および格納が可能な有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、または前述したデバイスの任意の好適な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非包括的なリストには、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可能型読み取り専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、パンチカードまたは命令が記録されている溝内の隆起構造などの機械的にエンコードされたデバイス、および前述したデバイスの任意の好適な組み合わせが含まれる。コンピュータ可読記憶媒体は、本明細書において使用される場合、電波または他の自由に伝搬する電磁波、導波路または他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、または電線を通じて伝送される電気信号といった、一時的な信号それ自体と解釈されるべきではない。
【0011】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、それぞれのコンピューティング/処理デバイスに、または、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、および/または無線ネットワークといったネットワークを介して外部コンピュータまたは外部ストレージデバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを備え得る。各コンピューティング/処理デバイス内にあるネットワークアダプタカードまたはネットワークインタフェースが、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【0012】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはオブジェクト指向プログラミング言語(例えば、Smalltalk(登録商標)またはC++など)および従来の手続き型プログラミング言語(「C」プログラミング言語または同様のプログラミング言語など)を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードであってもよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、スタンドアロン型ソフトウェアパッケージとして、ユーザのコンピュータ上で部分的に且つリモートコンピュータ上で部分的に、またはリモートコンピュータまたはサーバ上で全体的に実行されてもよい。後者のシナリオにおいて、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含むあらゆるタイプのネットワークを通じてユーザのコンピュータに接続されてもよく、またはこの接続は、(例えば、インターネットサービスプロバイダを利用してインターネットを通じて)外部コンピュータに対して行われてもよい。いくつかの実施形態では、例えば、プログラム可能なロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路が、本発明の態様を行うために、コンピュータ可読プログラム命令の状態情報を利用してコンピュータ可読プログラム命令を実行し、電子回路を個人向けに最適化してよい。
【0013】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図および/またはブロックダイアグラムを参照して本明細書で説明されている。フローチャート図および/またはブロックダイアグラムの各ブロック、およびフローチャート図および/またはブロックダイアグラムにおけるブロックの組み合わせが、コンピュータ可読プログラム命令によって実現され得ることが理解されるであろう。
【0014】
これらのコンピュータ可読プログラム命令は、マシンを生成するために汎用コンピュータ、特殊目的コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供され得るので、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令は、フローチャートおよび/またはブロックダイアグラムの1つまたは複数のブロックにおいて指定された機能/動作を実現するための手段を作成するようになる。コンピュータ、プログラム可能なデータ処理装置、および/または他のデバイスに特定の方式で機能するよう指示できるこれらのコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体に格納してもよいので、命令を格納したコンピュータ可読記憶媒体は、フローチャートおよび/またはブロックダイアグラムの1つまたは複数のブロックで指定された機能/動作の態様を実現する命令を含む製造品を備える。
【0015】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイス上にもロードして、コンピュータ、他のプログラム可能な装置、または他のデバイス上で一連の動作段階を行わせて、コンピュータ実装プロセスを生成できるので、コンピュータ、他のプログラム可能な装置、または他のデバイス上で実行する命令は、フローチャートおよび/またはブロックダイアグラムの1つまたは複数のブロックで指定された機能/動作を実現するようになる。
【0016】
図におけるフローチャートおよびブロックダイアグラムは、本発明の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品の考えられる実装形態のアーキテクチャ、機能、および動作を示している。これに関して、フローチャートまたはブロックダイアグラムの各ブロックは、指定された論理機能を実現するための1つまたは複数の実行可能命令を含んだ命令のモジュール、セグメント、または一部を表し得る。いくつかの代替実装形態では、ブロックに記載された機能が、図に記載された順序以外で行われてもよい。例えば、連続して示された2つのブロックが実際には実質的に同時に実行されてもよく、または関連する機能に応じて、ときにはこれらのブロックが逆の順序で実行されてもよい。ブロックダイアグラムおよび/またはフローチャート図の各ブロック、およびブロックダイアグラムおよび/またはフローチャート図におけるブロックの組み合わせが、指定された機能または動作を行うか、または特殊目的ハードウェアおよびコンピュータ命令の組み合わせを実行する、特殊目的ハードウェアベースのシステムによって実現され得ることにも留意されたい。
【0017】
本発明によるソフトウェアおよび/または方法のための考えられるハードウェアおよびソフトウェア環境の一実施形態について、これから図を参照して詳細に説明する。
図1は、ネットワークコンピュータシステム100の様々な部分を示した機能ブロックダイアグラムであり、ここには、サーバサブシステム102;クライアントサブシステム104、106、108、110、112;通信ネットワーク114;サーバコンピュータ200;通信装置202;プロセッサ一式204;入力/出力(I/O)インタフェース一式206;メモリデバイス208;永続ストレージデバイス210;表示デバイス212;外部デバイス一式214;ランダムアクセスメモリ(RAM)デバイス230;キャッシュメモリデバイス232;およびプログラム300が含まれる。
【0018】
サブシステム102は、多くの点で、本発明における様々なコンピュータサブシステムを代表するものである。したがって、これからサブシステム102のいくつかの部分について、以下の段落で説明する。
【0019】
サブシステム102は、ラップトップコンピュータ、タブレットコンピュータ、ノートブックコンピュータ、パーソナルコンピュータ(PC)、デスクトップコンピュータ、携帯情報端末(PDA(登録商標))、スマートフォン、またはネットワーク114を介してクライアントサブシステムと通信できる任意のプログラム可能な電子デバイスであってもよい。プログラム300は、以下でこの「発明を実施するための形態」セクションの「例示的な実施形態」サブセクションにおいて詳細に説明することになる特定のソフトウェア機能の作成、管理、および制御に用いられるマシン可読命令および/またはデータの集合体である。
【0020】
サブシステム102は、ネットワーク114を介して他のコンピュータサブシステムと通信できる。ネットワーク114は、例えば、ローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、またはこの2つの組み合わせとすることができ、有線接続、無線接続、または光ファイバ接続を含むことができる。一般に、ネットワーク114は、サーバおよびクライアントサブシステムの間の通信をサポートする接続およびプロトコルの任意の組み合わせとすることができる。
【0021】
サブシステム102は、多数の両方向矢印が付いたブロックダイアグラムとして示されている。これらの両方向矢印(個々の参照番号はない)は通信ファブリックを表しており、これによりサブシステム102の様々なコンポーネント同士の間に通信が提供される。この通信ファブリックは、プロセッサ(例えば、マイクロプロセッサ、通信ネットワークプロセッサなど)、システムメモリ、周辺デバイス、およびシステム内の任意の他のハードウェアコンポーネントの間で、データおよび/または制御情報を伝え合うために設計された任意のアーキテクチャを用いて実現され得る。例えば、通信ファブリックは、1つまたは複数のバスを用いて少なくとも部分的に実現され得る。
【0022】
メモリ208および永続ストレージ210は、コンピュータ可読記憶媒体である。一般に、メモリ208は、任意の好適な揮発性または不揮発性のコンピュータ可読記憶媒体を含み得る。現在および/または近い将来において、(i)外部デバイス214がサブシステム102にメモリを一部または全て供給できる可能性があること;および/または、(ii)サブシステム102の外部にあるデバイスがサブシステム102にメモリを提供できる可能性があることにさらに留意されたい。
【0023】
プログラム300は、永続ストレージ210に格納されて、通常はメモリ208の1つまたは複数のメモリを通じて、それぞれのコンピュータプロセッサ204のうちの1つまたは複数によりアクセスされる、および/または実行される。永続ストレージ210は、(i)少なくとも送信中の信号より永続性が高く;(ii)プログラム(そのソフトロジックおよび/またはデータを含む)を有形の媒体(磁気ドメインまたは光ドメインなど)に格納し;(iii)永久ストレージより実質的に永続性が低い。あるいは、データストレージは、永続ストレージ210により提供されるタイプのストレージより永続性および/または永久性が高い可能性がある。
【0024】
プログラム300には、マシン可読で実行可能な命令および/または実体データ(すなわち、データベースに格納されるタイプのデータ)の両方を含み得る。この特定の実施形態において、永続ストレージ210は磁気ハードディスクドライブを含む。考えられる変形例をいくつか挙げると、永続ストレージ210には、ソリッドステートハードドライブ、半導体ストレージデバイス、読み取り専用メモリ(ROM)、消去可能プログラム可能型読み取り専用メモリ(EPROM)、フラッシュメモリ、またはプログラム命令またはデジタル情報を格納できる任意の他のコンピュータ可読記憶媒体が含まれ得る。
【0025】
永続ストレージ210により用いられる媒体は、着脱可能であってもよい。例えば、着脱可能なハードドライブが永続ストレージ210に用いられてよい。他の例には、光学ディスクおよび磁気ディスク、サムドライブ、ならびに永続ストレージ210の一部でもある別のコンピュータ可読記憶媒体に転送するためにドライブに挿入されたスマートカードが含まれる。
【0026】
通信装置202は、これらの例において、サブシステム102の外部にある他のデータ処理システムまたはデバイスとの通信を提供する。これらの例において、通信装置202は1つまたは複数のネットワークインタフェースカードを含む。通信装置202は、物理通信リンクおよび無線通信リンクのいずれかまたは両方を用いて通信を提供し得る。本明細書で説明したソフトウェアモジュールはいずれも、通信装置(通信装置202など)を通じて永続ストレージデバイス(永続ストレージデバイス210など)にダウンロードすることができる。
【0027】
I/Oインタフェース一式206は、サーバコンピュータ200とのデータ通信においてローカルに接続され得る他のデバイスとのデータの入力および出力を可能にする。例えば、I/Oインタフェース一式206は、外部デバイス一式214との接続を提供する。外部デバイス一式214には通常、キーボード、キーパッド、タッチスクリーン、および/またはいくつかの他の好適な入力デバイスなどのデバイスが含まれる。外部デバイス一式214には、例えば、サムドライブ、携帯型の光学ディスクまたは磁気ディスク、およびメモリカードなどの携帯型コンピュータ可読記憶媒体も含まれてよい。そのような携帯型コンピュータ可読記憶媒体には、本発明の実施形態を実施するのに用いられるソフトウェアおよびデータ、例えばプログラム300が格納され得る。これらの実施形態において、関連するソフトウェアがI/Oインタフェース一式206を介して永続ストレージデバイス210に全体的にまたは部分的にロードされてもよい(またはそうでなくてもよい)。I/Oインタフェース一式206は、データ通信時に表示デバイス212とも接続する。
【0028】
表示デバイス212は、データをユーザに表示する仕組みを提供するものであり、例えば、コンピュータのモニタであっても、またはスマートフォンの表示画面であってもよい。
【0029】
本明細書で説明したプログラムは、本発明の特定の実施形態において実現される応用に基づいて特定される。しかしながら、本明細書における具体的なプログラム名称はいずれも、便宜のためだけに用いられており、したがって、本発明は、そのような名称によって特定されるおよび/または示唆される任意の特定の応用に用いることだけに限定されるべきでないと理解されたい。
【0030】
本発明の様々な実施形態の説明は例示を目的として提示されており、その説明が包括的であることも、または開示された実施形態に限定されることも意図されてはいない。説明した実施形態の範囲から逸脱することなく、当業者には多数の変更例および変形例が明らかとなるであろう。本明細書で用いる専門用語は、実施形態の原理、実用的な応用、または市場で確認される技術に対する技術的改良を最も良く説明するように、または本明細書で開示した実施形態を他の当業者が理解できるように選択されたものである。
II.例示的な実施形態
【0031】
図2は、本発明による方法を示したフローチャート250を示す。
図3は、フローチャート250の方法の動作の少なくともいくつかを行うためのプログラム300を示している。これから、以下の段落にわたって、(方法の動作ブロックについて)
図2および(ソフトウェアブロックについて)
図3を広く参照して、本方法および関連するソフトウェアについて説明する。
【0032】
処理が動作S255で始まり、ここではユーザワークロードデータモジュール(「mod」)305がユーザワークロードデータ一式を受け取る。本発明のいくつかの実施形態において、ユーザワークロードデータ一式には、ユーザのワークフロープロセスを詳述する情報が含まれる。インスタンスによっては、ユーザワークロードデータ一式に、ユーザのワークフロープロセスに関する機密扱いのセキュア情報(SSI)が含まれる可能性がある。これらのインスタンスでは、ユーザワークロードデータに含まれるSSIが不正なソースによるアクセスによって危険にさらされないようにするのが重要である。
【0033】
処理が動作S260に進み、ここではSSI抽出mod310がプロセッサコアからSSIを抽出する。いくつかの実施形態において、抽出されたSSIは、ユーザワークロードデータの残りの部分とは別に処理される。さらに、いくつかの実施形態では、SSI抽出mod310により最初に抽出されたSSIのために、暗号化キーが作成される。
【0034】
処理が動作S265に進み、ここではSSI登録mod315が、(動作S260に関連して上記で説明した)抽出されたSSIをセルフブートエンジン(SBE)に登録する。いくつかの実施形態において、抽出されたSSIのSBEへの登録は、ホスト上で利用可能なアプリケーションプログラムインタフェース(API)を用いて行われ得る。この登録プロセスについては、サブセクションIIIでさらに説明する。
【0035】
処理が動作S270に進み、ここではユーザワークロードデータmod305がユーザワークロードデータ一式の更新データを受け取る。いくつかの実施形態において、ユーザワークロードデータ一式の更新データには、現在のワークペイロードが既存の処理コア/スレッドに割り当てられているかどうかといった情報が含まれ得る。あるいは、ユーザワークロードデータmod305は、更新データがまだ受け取られていないと判定できる。
【0036】
処理が動作S275に進み、ここでは抽出されたSSIの暗号化キーを暗号化キーmod320が上書きする。処理が最終的に動作S280に進み、ここではSSI処理mod325が、抽出されたSSI、および(動作S270に関連して上記で説明した)更新されたユーザワークロードデータ一式を区別する。
III.さらなるコメントおよび/または実施形態
【0037】
本発明のいくつかの実施形態では、当技術分野の現状に関して、以下に述べる事実、潜在的な問題、および/または潜在的な改善領域を認識している。(i)サーバの世界では、顧客データを安全に保つことが重要な目標である;(ii)サーバのデプロイメントでは、特定のハードウェア(HW)エラー/チェックストップによってシステムが故障する可能性がある;(iii)このような場合、特定のHW故障の原因を分析するのに役立つことになるHWダンプ情報(例えば、レジスタ、リングなど)を収集することが重要である;(iv)これらのレジスタ(SPR/GPR)には通常、これらの算術演算装置で既定のワークロードが命令を実行しているので何らかの顧客の機密データがあるはずである;(v)故障の原因を分析するために、システム上で実行していたのはどのプログラムかをハードウェアエンジニアが知りたいと望む可能性があり、その情報がシステムのSPR/GPRから提供され、次いでシステムエンジニアがこれを用いることができる。
【0038】
本発明のいくつかの実施形態では、当技術分野の現状に関して、以下に述べる事実、潜在的な問題、および/または潜在的な改善領域を認識している。(i)SPR/GPRのデータダンプに関する1つの問題として、ここに顧客の機密データが含まれている可能性があることが挙げられる;(ii)この問題は、既定のサーバが異なる顧客に属する複数のワークロードをホストしている場合に、ハードウェアデータおよび顧客ワークロードの間に必ずしも方向関係がないことから、データの暗号化方法を把握するのは困難であるため、一層厳しくなるのが通例である;(iii)現在、顧客データを確実に危険にさらさないようにする唯一の方法は、SPR/GPRレジスタデータのダンプをしないようにすることである;(iv)しかしながら、これではシステムエンジニアがそれらの故障をデバッグする能力が制限されることになる。
【0039】
本発明のいくつかの実施形態では、当技術分野の現状に関して、以下に述べる事実、潜在的な問題、および/または潜在的な改善領域を認識している。(i)マルチテナントシナリオでは、複数のワークロードが共通のHWリソースを共有する;(ii)ハイパーバイザがワークロードに動的に基づいて共有のリソースプールを異なるパーティションのために維持する;(iii)ハードウェアチェックストップのシナリオの場合には、特殊な問題をデバッグするのにHWレジスタダンプ情報(顧客中心のデータを偶然に含むことがある)が全て必要となり、顧客データが危険にさらされることになる可能性がある;(iv)これらの異なるワークロードデータをワークロードにより共有される異なるキーに基づいて暗号化するのに、帯域外プロセッサ(信頼できるエンティティのチェーン内にある)が役立ち得る;(v)これには、顧客ワークロードがクラッシュしたときにデバッグに必要となるダンプデータが含まれる。
【0040】
本発明のいくつかの実施形態では、当技術分野の現状に関して、以下に述べる事実、潜在的な問題、および/または潜在的な改善領域を認識している。(i)専用のシステムでは、フレキシブルサービスプロセッサを介してダンプを採取する方法があり、これには、顧客メモリダンプ、および顧客負荷が割り当てられているスレッドのハードウェアレジスタ(SPR/GPR)が含まれる;(ii)これは、顧客/企業のチームが根本原因をデバッグするのに後で用いることができる;(iii)顧客ワークロードの実行に関与するハードウェアスレッドには通常、何らかの顧客中心のデータがどこかの時点でレジスタ(SPR/GPR)に格納されている;(iv)レジスタダンプはセキュリティの観点から重要である;(v)セキュアシステムでは、フレキシブルサービスプロセッサは信頼できないエンティティであり、したがってFSPにより実行されるダンプも安全ではない;(vi)現在、データを暗号化した後にそれを取り出すプロセスは存在しない。
【0041】
データダンプを安全にするために、本発明の特定の実施形態が、データの集合体をチェーン内では安全なSBE(セルフブートエンジン)にプッシュする。いくつかの実施形態において、SBEは、顧客負荷を実行しているカーネルデータ構造体の全てにもアクセスできる。これに基づいて、SBEは、カーネルtask_structに基づいて特定の顧客ワークロードに関連付けられているHWレジスタ(SPR/GPR)にアクセスすることになる。あるいは、どの時点でも複数のHWスレッド上で実行している可能性がある複数の顧客ワークロードインスタンスが存在し得る。SBEはデータダンプの起点であるため、SBEは、ワークロード登録の間に共有された適切な顧客キーでデータを暗号化できる。データが暗号化されると、データをSBEから取り出すことができ、データを解読するのに顧客解読キーが必要になる。
【0042】
本発明のいくつかの実施形態は、フレキシブルサービスプロセッサ、およびそれがいかに安全にデータをオフロードできるかにかかっている。この解決手段では、ソース自体においてデータを保護することがどの程度可能であるかを説明する。
【0043】
本発明のいくつかの実施形態では、当技術分野の現状に関して、以下に述べる事実、潜在的な問題、および/または潜在的な改善領域を認識している。(i)オープンパワークラスのサーバでは、オープンBMCがメモリプリザービングIPL(MPIPL)においてダンプデータを採取する主要な役割を何も持っていないエンティティである(これは信頼できないエンティティである);(ii)セルフブートエンジン(SBE、信頼できるエンティティ)とは、全てのプロセッサの構成レジスタ状態(Architected Register States)を採取するエンティティである;(iii)各プロセッサには複数のコアがあり、各コアには複数のHWスレッドがある;(iv)各HWスレッドには、いくらか異なる且ついくらか共通するSPRおよびGPRの一式がある;(v)これらのSPRおよびGPRは、顧客ペイロードについて低レベル命令を実行するのに用いられる汎用レジスタである;(vi)いかなる時点でも、ホストカーネルによってHWスレッドが特定の顧客ペイロードに割り当てられ、これは実行中の顧客ペイロードに関連した情報を有するtask_structのようなカーネルデータ構造体を調べることで得られ得る。
【0044】
ここで本発明は、HWスレッドに固有の構成レジスタには、顧客がダンプコレクタエンティティに知られたくない機密扱いの顧客データが含まれる可能性があることを示す。同様に、複数の顧客ペイロードが実行されているシステム上でも、複数のそのようなシナリオが存在する可能性がある。
【0045】
以下の例を検討してみる。コア0が顧客0に割り当てられ、コア1が顧客1に割り当てられると仮定する。この例では、コア0に関する全てのSPRおよびGPRが次のようになる。(i)コア0は低レベル実行用に4個のHWスレッドを有する;(ii)各スレッドは32個のGPRおよび64個のSPRを有する;(iii)これにより、コアごとに合計384個のレジスタ(コアごとに96×4=384個のレジスタ)があることになる。ここで、顧客0および顧客1は、コアごとに384個あるレジスタに利用可能な情報を保存して、その情報を安全に保ち、誰とも共有できないようにしたいとする。
【0046】
ここで、これらのレジスタで機密データがいずれも処理されるようになるならば、これによって、顧客のワークロードに存在するセキュリティホールが露呈する可能性があり、ビジネス上の観点から見れば役に立たない可能性がある。場合によっては、レジスタデータを安全に保つ解決手段が必要になる。
【0047】
本発明のいくつかの実施形態には、以下の特徴、特性、および/または利点のうちの1つまたは複数が含まれ得る。(i)顧客中心のデータを安全に抽出する;(ii)顧客ペイロード/ワークロードをSBEに登録し、それの暗号化キーを共有する必要がある;(iii)これはホスト上で利用可能なAPIを介して行うことができる;(iv)ペイロードは暗号化キーをどこかの場所で定義してもらうことができ、その場所でホストはこれを受け取ってSBEに渡すことができる。
【0048】
いくつかの実施形態において、SBEはペイロードに関するキーを格納する必要がある。ペイロードの更新データ(新たなペイロードが既存のコア/スレッドに割り当てられるかどうかなど)が何かあれば、それでSBE内の現在のキーが上書きされる。場合によっては、このインフラストラクチャが稼働し、ペイロードのクラッシュ時にメモリおよびHWレジスタのダンプが必要になると、SBEは、カーネルデータ構造体(task_structまたはその等価物など)を用いて、システム内で実行している複数のペイロードを区別できる。
【0049】
基本的に、SBEは異なるペイロードを根拠にスレッド上のSPR/GPRを区別できる。次いでダンプ(メモリおよびレジスタ)は保存されたキーでペイロードごとに暗号化されることになる。暗号化されたダンプのオフロードには、ダンプを取り出すのにフレキシブルサービスプロセッサが役立つか、またはオンラインに戻ったときにペイロード自体がアクセスできる予約済みメモリ空間にSBEがダンプをコピーできるようないくつかの方法があってよい。
【0050】
本発明のいくつかの実施形態には、以下の特徴、特性、および/または利点のうちの1つまたは複数が含まれ得る。(i)SBEなどの信頼できるエンティティを介して顧客ワークロードのレジスタデータを暗号化する;(ii)この暗号化が起こるためには、顧客ワークロードが、ホストカーネルを介して、またはSBEがアクセスできる共有メモリを通じて、SBEと暗号化キーを共有する必要がある;および(iii)それぞれの顧客ワークロードは、機密扱いのレジスタデータをMPIPLダンプ処理の間に暗号化する必要があり且つそれ以外の何か機密扱いの情報を顧客が確認しない限りシステムエンジニアにデコードしてもらいたくない場合、同じことをする必要がある。
【0051】
本発明のいくつかの実施形態には、以下の特徴、特性、および/または利点のうちの1つまたは複数が含まれ得る。(i)SBEはホストカーネルのメモリにアクセスでき、task_structまたは等価のデータ構造体にアクセスできる;(ii)SBEは、これらの構造体から、特定のスレッドで実行するワークロードを得ることができ、事前共有された顧客ワークロード固有のキーでレジスタデータ(SPR/GPR)を暗号化する立場にある;および(iii)完全なメモリダンプおよびレジスタダンプが得られると、顧客はスレッド固有のレジスタデータを確認するか、または取り除くことができ、その後でシステムエンジニアがそれを用いてホストカーネル/オパールクラッシュ(Opal Crash)をデバッグできる。
【0052】
図4のダイアグラム400は、システムスタックダイアグラムを示している。ダイアグラム400には以下のコンポーネントが含まれる。すなわち、ペイロード1(402)、ペイロード2(404)、Power KVM(406)、SBE/HBBL/ホストブート(408)、FSP/BMC(410)、およびPower9(412)である。
【0053】
本発明のいくつかの実施形態には、以下の特徴、特性、および/または利点のうちの1つまたは複数が含まれ得る。(i)顧客ペイロード/ワークロードはSBEに登録する;(ii)顧客ペイロード/ワークロードは、ホスト上で利用可能なAPIを通じて同じSBEの暗号化キーを共有する;および(iii)ペイロードは暗号化キーをどこかの場所で定義してもらうことができ、その場所でホストはこれを受け取ってSBEに渡すことができる。
【0054】
本発明のいくつかの実施形態には、以下の特徴、特性、および/または利点のうちの1つまたは複数が含まれ得る。(i)SBEはペイロードに関して暗号化キーを格納する必要がある;(ii)既存のコア/スレッドに新たなペイロードが割り当てられた場合、新たなペイロードはSBE内にある現在のキーを上書きすることになる;(iii)このインフラストラクチャが稼働し、ペイロードのクラッシュ時にメモリおよびHWレジスタダンプが必要であると仮定すると、SBEは、カーネルデータ構造体(task_structまたはその等価物など)を用いて、システム内で実行している複数のペイロードを区別できる;(iv)スレッド上のSPR/GPRを異なるペイロードに基づいて区別する;(v)次いでダンプ(メモリおよびレジスタ)は保存されたキーでペイロードごとに暗号化されることになる;(vi)暗号化されたダンプのオフロードがいくつかの方法で行われてよく、その中にはフレキシブルサービスプロセッサを使用してダンプ関連情報を取り出す方法が含まれる;および(vii)SBEは、オンラインに戻ったときにペイロードがアクセスできる予約済みメモリ空間にダンプ関連情報をコピーできる。IV.定義
【0055】
本発明:これを、「本発明」という用語によって説明される主題が出願時の請求項または特許審査後に最終的に発行され得る請求項のいずれかによって網羅されるという絶対的な表示と解釈してはならない;「本発明」という用語は、本明細書での開示が潜在的に新しいと考えられているという一般的な感覚を読者が得るのを助けるために使用されるが、この理解は「本発明」という用語の使用により示されるように一時的且つ暫定的であり、関連情報が進展するので且つ請求項が補正される可能性があるので、特許審査の間に変更されることがある。
【0056】
実施形態:上記「本発明」の定義を参照されたい。同様の注意点が「実施形態」という用語にも適用される。
【0057】
および/または:包含的論理和;例えば、A、B、「および/または」Cとは、AまたはBまたはCのうちの少なくとも1つが当てはまる且つ適用可能であることを意味する。
【0058】
含む(including/include/includes):特に明記されていない限り、「含むが、必ずしもこれに限定されない」ことを意味する。
【0059】
ユーザ/サブスクライバ:以下のものを含むが、必ずしもこれに限定されない。(i)1人の個人;(ii)ユーザまたはサブスクライバとしての役割を果たすのに十分な知能を備えた人工知能エンティティ;および/または(iii)関連するユーザまたはサブスクライバの集団。
【0060】
データ通信:現時点で知られているか、または将来に開発されるあらゆる種類のデータ通信方式であり、無線通信、有線通信、ならびに無線部分および有線部分を有する通信経路が含まれる;データ通信は、(i)直接データ通信;(ii)間接データ通信;および/または(iii)データ通信の全過程でフォーマット、パケット化状況、媒体、暗号化状況、および/またはプロトコルが一定のままであるデータ通信に必ずしも限定されない。
【0061】
受け取る/提供する/送る/入力する/出力する/報告する:特に明確に指定されていない限り、これらの単語は、(i)その主体および対象の間の関係に関する直接性の何らかの具体的な程度;および/または(ii)その主体および対象の間に介在する中間のコンポーネント、動作、および/または物がないことを示唆する、と解釈されるべきでない。
【0062】
実質的な人間の介入がない:人間による入力がほとんどないか、または全くない状態で自動的に(多くの場合、ソフトウェアなどのマシンロジックのオペレーションによって)発生するプロセス;「実質的な人間の介入がない」を含む一部の例には、(i)コンピュータが複雑な処理を行っているときに系統電力が停電になったために、処理が途切れないで継続できるように人間がコンピュータを代替電源に切り替えること;(ii)コンピュータがリソース集約的な処理を実行しようとしており、人間がそのリソース集約的な処理に実際に着手すべきか確認すること(この場合、確認のプロセスは、切り離して考えると、実質的な人間の介入を伴うものであるが、簡単な二者択一式の確認を人間が行う必要があるにもかかわらず、リソース集約的な処理には実質的な人間の介入が何も含まれない);および(iii)コンピュータが、マシンロジックを用いて、重要な決定(例えば、悪天候を予想して全ての飛行機を地上待機にする決定)を行ったが、その重要な決定を実施する前に、コンピュータは人的ソースによる簡単な二者択一式の確認を取る必要があること、などが含まれる。
【0063】
自動的:人間の介入が全くないこと。
【0064】
モジュール/サブモジュール:ある種の機能を行うために動作可能に働くハードウェア、ファームウェア、および/またはソフトウェアのあらゆる集合であり、モジュールが(i)シングルローカルプロキシミティにあるかどうか;(ii)広域にわたって分散しているかどうか;(iii)より大きなソフトウェアコード内でシングルプロキシミティにあるかどうか;(iv)1つのソフトウェアコード内に位置しているかどうか;(v)単一のストレージデバイス、メモリ、または媒体内に位置しているかどうか;(vi)機械的に接続されているかどうか;(vii)電気的に接続されているかどうか;および/または(viii)データ通信で接続されているかどうかには関係ない。
【0065】
コンピュータ:かなりのデータ処理能力および/またはマシン可読命令読み取り能力を備えた任意のデバイスであって、デスクトップコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、フィールドプログラマブルゲートアレイ(FPGA)ベースのデバイス、スマートフォン、携帯情報端末(PDA)、身体装着型または身体挿入型コンピュータ、組み込みデバイス式コンピュータ、特定用途向け集積回路(ASIC)ベースのデバイスを含むが、これらに限定されない。
【手続補正書】
【提出日】2024-01-12
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
プロセッサコア上のハードウェアスレッドがユーザワークロードデータ一式を受け取る段階、ここで前記ユーザワークロードデータ一式には機密扱いのセキュア情報(SSI)が含まれる;
前記プロセッサコアから前記SSIを抽出して第1の抽出済みSSIを取得する段階;
前記第1の抽出済みSSIをセルフブートエンジン(SBE)に登録する段階、ここで前記登録には前記第1の抽出済みSSIに対する暗号化キーの割り当てが含まれる;
前記プロセッサコア上の前記ハードウェアスレッドが前記ユーザワークロードデータ一式の更新データを受け取る段階;
前記ユーザワークロードデータ一式の前記更新データを受け取ったことに応答して、前記第1の抽出済みSSIの前記暗号化キーを上書きする段階;および
前記SBEが、前記第1の抽出済みSSI、および前記ユーザワークロードデータ一式の前記更新データを区別する段階
を備える方法。
【請求項2】
前記第1の抽出済みSSI、および前記ユーザワークロードデータ一式の前記更新データが、同じ暗号化キーを共有する、請求項1に記載の方法。
【請求項3】
前記第1の抽出済みSSI、および前記ユーザワークロードデータ一式の前記更新データの前記区別が、カーネルデータ構造体によって行われる、請求項1に記載の方法。
【請求項4】
さらに、
前記第1の抽出済みSSI一式に含まれるデータを取り出すことにより、フレキシブルサービスプロセッサが前記第1の抽出済みSSI一式をオフロードする段階を含む、請求項1に記載の方法。
【請求項5】
さらに、
前記第1の抽出済みSSI一式に含まれるデータを予約済みメモリ空間にコピーすることにより、前記SBEが前記第1の抽出済みSSI一式をオフロードする段階を含む、請求項1に記載の方法。
【請求項6】
前記暗号化キーがホストカーネルを通じて前記SBEと共有される、請求項1
から5のいずれか一項に記載の方法。
【請求項7】
コンピュータコード
を備え、前記コンピュータコー
ドは、
プロセッサにより実行された場合、
プロセッサコア上のハードウェアスレッドがユーザワークロードデータ一式を受け取る動作、ここで前記ユーザワークロードデータ一式には機密扱いのセキュア情報(SSI)が含まれる、
前記プロセッサコアから前記SSIを抽出して第1の抽出済みSSIを取得する動作、
前記第1の抽出済みSSIをセルフブートエンジン(SBE)に登録する動作、ここで前記登録には前記第1の抽出済みSSIへの暗号化キーの割り当てが含まれる、
前記プロセッサコア上の前記ハードウェアスレッドが前記ユーザワークロードデータ一式の更新データを受け取る動作、
前記ユーザワークロードデータ一式の前記更新データを受け取ったことに応答して、前記第1の抽出済みSSIの前記暗号化キーを上書きする動作、および
前記SBEが、前記第1の抽出済みSSI、および前記ユーザワークロードデータ一式の前記更新データを区別する動作
を含む複数の動作を
前記プロセッサに行わせるための命令およびデータが含まれ
る
コンピュータプログラ
ム。
【請求項8】
前記第1の抽出済みSSI、および前記ユーザワークロードデータ一式の前記更新データが、同じ暗号化キーを共有する、請求項7に記載の
コンピュータプログラム。
【請求項9】
前記第1の抽出済みSSI、および前記ユーザワークロードデータ一式の前記更新データの前記区別が、カーネルデータ構造体によって行われる、請求項7に記載の
コンピュータプログラム。
【請求項10】
さらに、
前記第1の抽出済みSSI一式に含まれるデータを取り出すことにより、フレキシブルサービスプロセッサが前記第1の抽出済みSSI一式をオフロードする動作を含む、請求項7に記載の
コンピュータプログラム。
【請求項11】
さらに、
前記第1の抽出済みSSI一式に含まれるデータを予約済みメモリ空間にコピーすることにより、前記SBEが前記第1の抽出済みSSI一式をオフロードする動作を含む、請求項7に記載の
コンピュータプログラム。
【請求項12】
前記暗号化キーがホストカーネルを通じて前記SBEと共有される、請求項7
から11のいずれか一項に記載の
コンピュータプログラム。
【請求項13】
1つまたは複数のプロセッサ;
マシン可読ストレージデバイス;および
前記マシン可読ストレージデバイスに格納されたコンピュータコード、前記コンピュータコードには、
プロセッサコア上のハードウェアスレッドがユーザワークロードデータ一式を受け取る動作、ここで前記ユーザワークロードデータ一式には機密扱いのセキュア情報(SSI)が含まれる、
前記プロセッサコアから前記SSIを抽出して第1の抽出済みSSIを取得する動作、
前記第1の抽出済みSSIをセルフブートエンジン(SBE)に登録する動作、ここで前記登録には前記第1の抽出済みSSIへの暗号化キーの割り当てが含まれる、
前記プロセッサコア上の前記ハードウェアスレッドが前記ユーザワークロードデータ一式の更新データを受け取る動作、
前記ユーザワークロードデータ一式の前記更新データを受け取ったことに応答して、前記第1の抽出済みSSIの前記暗号化キーを上書きする動作、および
前記SBEが、前記第1の抽出済みSSI、および前記ユーザワークロードデータ一式の前記更新データを区別する動作
を含む複数の動作を前記1つまたは複数のプロセッサに行わせるための命令およびデータが含まれる
を備えるコンピュータシステム(CS)。
【請求項14】
前記第1の抽出済みSSI、および前記ユーザワークロードデータ一式の前記更新データが、同じ暗号化キーを共有する、請求項13に記載のCS。
【請求項15】
前記第1の抽出済みSSI、および前記ユーザワークロードデータ一式の前記更新データの前記区別が、カーネルデータ構造体によって行われる、請求項13に記載のCS。
【請求項16】
さらに、
前記第1の抽出済みSSI一式に含まれるデータを取り出すことにより、フレキシブルサービスプロセッサが前記第1の抽出済みSSI一式をオフロードする動作を含む、請求項13に記載のCS。
【請求項17】
さらに、
前記第1の抽出済みSSI一式に含まれるデータを予約済みメモリ空間にコピーすることにより、前記SBEが前記第1の抽出済みSSI一式をオフロードする動作を含む、請求項13に記載のCS。
【請求項18】
前記暗号化キーがホストカーネルを通じて前記SBEと共有される、請求項13
から17のいずれか一項に記載のCS。
【国際調査報告】