(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-31
(54)【発明の名称】隔離された環境において実装されたコンピューティングリソースへのアクセスの制御
(51)【国際特許分類】
G06F 21/62 20130101AFI20241024BHJP
G06F 21/55 20130101ALI20241024BHJP
G06F 21/44 20130101ALI20241024BHJP
H04L 9/32 20060101ALI20241024BHJP
【FI】
G06F21/62
G06F21/55
G06F21/44
H04L9/32 200B
H04L9/32 200F
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024521190
(86)(22)【出願日】2022-10-24
(85)【翻訳文提出日】2024-04-08
(86)【国際出願番号】 EP2022079557
(87)【国際公開番号】W WO2023072817
(87)【国際公開日】2023-05-04
(32)【優先日】2021-10-28
(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)【要約】
コンピューティングリソースへのアクセスを制御するための解決手段が提案される。対応する方法は、(コンピューティングリソースから隔離された)セカンダリコンピューティング環境によって、コンピューティングリソースにアクセスするためのアクセス要求を受信し、検証する段階を備える。(セカンダリコンピューティング環境から隔離された)メインコンピューティング環境は、アクセス要求の検証のポジティブな結果の表示を検出し;これに応じて、メインコンピューティング環境は、セカンダリコンピューティング環境の完全性条件を検証し、その後、それに従ってセカンダリコンピューティング環境がコンピューティングリソースにアクセスすることを承認する。方法を実行するためのコンピュータプログラム及びコンピュータプログラム製品も提案される。また、方法を実装するためのシステムが提案される。
【特許請求の範囲】
【請求項1】
1つ又は複数のコンピューティングリソースへのアクセスを制御するための方法であって、前記方法が、コンピューティングシステムの制御下で:
前記コンピューティングシステムにおいて実装されるセカンダリコンピューティング環境によって、前記コンピューティングリソースにアクセスするためのアクセス要求を受信する段階、前記セカンダリコンピューティング環境は前記コンピューティングリソースから隔離されている;
前記セカンダリコンピューティング環境によって前記アクセス要求を検証する段階;
前記コンピューティングシステムにおいて実装されるメインコンピューティング環境によって、前記アクセス要求の前記検証のポジティブな結果の表示を検出する段階、前記メインコンピューティング環境が前記セカンダリコンピューティング環境から隔離されている;
前記ポジティブな結果の前記表示の前記検出に応じて、前記メインコンピューティング環境によって前記セカンダリコンピューティング環境の完全性条件を検証する段階;及び
前記完全性条件の前記検証のポジティブな結果に応じて、前記メインコンピューティング環境によって、前記セカンダリコンピューティング環境に対して前記コンピューティングリソースへの前記アクセスを承認する段階
を備える、方法。
【請求項2】
前記メインコンピューティング環境は、前記コンピューティングシステムのオペレーティングシステムによって定義され、前記セカンダリコンピューティング環境は、前記オペレーティングシステム上で実行しているコンテナによって定義される、請求項1に記載の方法。
【請求項3】
前記コンピューティングリソースへの前記アクセスを承認する前記段階が:
前記完全性条件の前記検証の前記ポジティブな結果に応じて、前記メインコンピューティング環境によって証明書を生成する段階;
前記メインコンピューティング環境から前記セカンダリコンピューティング環境へと前記証明書を渡す段階;
前記証明書に応じて、前記セカンダリコンピューティング環境によって、前記コンピューティングリソースにアクセスするためのさらなるアクセス要求を前記メインコンピューティング環境に提出する段階;
前記セカンダリコンピューティング環境によって提供された前記証明書に従って、前記メインコンピューティング環境によって前記さらなるアクセス要求を検証する段階;及び
前記さらなるアクセス要求の前記検証のポジティブな結果に応じて、前記メインコンピューティング環境によって、前記セカンダリコンピューティング環境に対して前記コンピューティングリソースへの前記アクセスを承認する段階
有する、請求項1または2に記載の方法。
【請求項4】
前記方法が:
前記アクセス要求の前記検証の前記ポジティブな結果に応じて、前記セカンダリコンピューティング環境によって、結果インジケータを交換メモリ領域に記憶する段階;及び
前記メインコンピューティング環境によって、前記結果インジケータの前記記憶を検出することによって、前記ポジティブな結果の前記表示を検出する段階
を備える、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記方法が:
前記アクセス要求の前記検証の前記ポジティブな結果に応じて、前記セカンダリコンピューティング環境によって、公開鍵及び秘密鍵のペアを生成する段階;及び
前記セカンダリコンピューティング環境によって、前記公開鍵を含む前記結果インジケータを前記交換メモリ領域に記憶する段階
を備える、請求項4に記載の方法。
【請求項6】
前記完全性条件を検証する前記段階が:
前記メインコンピューティング環境によって前記公開鍵の形式的な訂正を検証する段階
を有する、請求項5に記載の方法。
【請求項7】
前記コンピューティングリソースへの前記アクセスを承認する前記段階が:
前記結果インジケータの前記記憶の前記検出に応じて、前記メインコンピューティング環境によって、前記結果インジケータの署名を、その秘密鍵を用いて生成する段階;
前記メインコンピューティング環境によって前記署名を前記交換メモリ領域に記憶する段階;
前記セカンダリコンピューティング環境によって前記署名の前記記憶を検出する段階;
前記署名の前記記憶の前記検出に応じて、前記セカンダリコンピューティング環境によって、前記コンピューティングリソースにアクセスするためのさらなるアクセス要求を前記メインコンピューティング環境に提出する段階;
前記セカンダリコンピューティング環境によって提供された前記署名に従って、前記メインコンピューティング環境によって前記さらなるアクセス要求を検証する段階;及び
前記さらなるアクセス要求の前記検証のポジティブな結果に応じて、前記メインコンピューティング環境によって、前記セカンダリコンピューティング環境に対して前記コンピューティングリソースへの前記アクセスを承認する段階
を有する、請求項4から6のいずれか一項に記載の方法。
【請求項8】
前記コンピューティングリソースへの前記アクセスを承認する前記段階が:
前記結果インジケータの前記記憶の前記検出に応じて、前記メインコンピューティング環境によって、有効期間を有する前記署名を生成する段階;及び
前記セカンダリコンピューティング環境によって提供された前記署名の前記有効期間に従って、前記メインコンピューティング環境によって前記さらなるアクセス要求を検証する段階
を有する、請求項7に記載の方法。
【請求項9】
前記完全性条件を検証する前記段階が:
前記メインコンピューティング環境によって前記結果インジケータを生成するプロセスの識別子を検証する段階
を有する、請求項4から8のいずれか一項に記載の方法。
【請求項10】
前記完全性条件を検証する前記段階が:
前記メインコンピューティング環境によって、前記アクセス要求の前記検証の前記ポジティブな結果及び前記結果インジケータの前記記憶の間の遅延を検証する段階
を有する、請求項4から9のいずれか一項に記載の方法。
【請求項11】
前記完全性条件を検証する前記段階が:
前記メインコンピューティング環境によって、前記結果インジケータの前記記憶及び現在の時刻の間の遅延を検証する段階
を有する、請求項4から10のいずれか一項に記載の方法。
【請求項12】
前記完全性条件を検証する前記段階が:
前記メインコンピューティング環境によって、前記セカンダリコンピューティング環境のメモリスペースのコンテンツを検証する段階
を有する、請求項1から11のいずれか一項に記載の方法。
【請求項13】
前記完全性条件を検証する前記段階が:
前記メインコンピューティング環境によって、前記セカンダリコンピューティング環境において実行しているプロセスを検証する段階
を有する、請求項1から12のいずれか一項に記載の方法。
【請求項14】
前記コンピューティングリソースが前記コンピューティングシステムによって実装されている、請求項1から13のいずれか一項に記載の方法。
【請求項15】
前記コンピューティングリソースが1つ又は複数のさらなるコンピューティングシステムによって実装されている、請求項1から14のいずれか一項に記載の方法。
【請求項16】
1つ又は複数のコンピューティングリソースへのアクセスを制御するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、1つ又は複数のコンピュータ可読記憶媒体に集合的に記憶されたプログラム命令を有する前記1つ又は複数のコンピュータ可読記憶媒体を備え、前記プログラム命令は、コンピューティングシステムに:
コンピュータを使用して、前記コンピューティングシステムにおいて実装されたセカンダリコンピューティング環境によって、前記コンピューティングリソースにアクセスするためのアクセス要求を受信する手順、前記セカンダリコンピューティング環境は、前記コンピューティングリソースから隔離されている;
前記コンピュータを使用して、前記セカンダリコンピューティング環境によって前記アクセス要求を検証する手順;
前記コンピュータを使用して、前記コンピューティングシステムにおいて実装されるメインコンピューティング環境によって、前記アクセス要求の前記検証のポジティブな結果の表示を検出する手順、前記メインコンピューティング環境は、前記セカンダリコンピューティング環境から隔離されている;
前記コンピュータを使用して、前記ポジティブな結果の前記表示を前記検出したことに応じて、前記メインコンピューティング環境によって、前記セカンダリコンピューティング環境の完全性条件を検証する手順;及び
前記完全性条件の前記検証のポジティブな結果に応じて、前記コンピュータを使用して、前記メインコンピューティング環境によって、前記セカンダリコンピューティング環境に対して前記コンピューティングリソースへの前記アクセスを承認する手順
を有する方法を実行させるために前記コンピューティングシステムによって読み出し可能である、コンピュータプログラム製品。
【請求項17】
1つ又は複数のコンピューティングリソースへのアクセスを制御するためのコンピューティングシステムであって、前記コンピューティングシステムが:
前記コンピューティングシステムにおいて実装されるセカンダリコンピューティング環境、前記セカンダリコンピューティング環境は前記コンピューティングリソースから隔離されている
を備え、ここで前記セカンダリコンピューティング環境は:
前記コンピューティングリソースにアクセスするためのアクセス要求を受信するためのインタフェース;
前記アクセス要求を検証するためのセカンダリオーサライザ;及び
前記コンピューティングシステムにおいて実装されるメインコンピューティング環境、前記メインコンピューティング環境は前記セカンダリコンピューティング環境から隔離されている
を有し、ここで前記メインコンピューティング環境は:
前記アクセス要求の前記検証のポジティブな結果の表示を検出するためのモニタ;
前記ポジティブな結果の前記表示を前記検出したことに応じて、前記セカンダリコンピューティング環境の完全性条件を検証するための検証装置;及び
前記完全性条件の前記検証のポジティブな結果に応じて、前記セカンダリコンピューティング環境に対して前記コンピューティングリソースへの前記アクセスを承認するためのメインオーサライザ
を含む、コンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の背景を、その文脈に関連する技術の議論と共に以下で紹介する。しかしながら、この議論が文書、動作、及び人工物等に言及する場合であっても、それは、論述されている技術が先行技術の一部であること、又は本開示に関連する分野において共通の一般知識であることを示唆又は表すものではない。
【0002】
本開示は、情報技術分野に関する。より具体的には、本開示は、コンピューティングリソースへのアクセスの制御に関する。
【0003】
コンピューティングリソースへのアクセスを制御することは、情報技術インフラストラクチャにおける重要な課題である。実際に、ほとんどのコンピューティングリソースは、故意又は偶然のいずれであれ、これに対して引き起こされ得る損傷から保護されるべきである。この目的で、異なるエンティティ、例えば、(人間の)ユーザ(一般的にサブジェクトと称される)によって、保護されたリソース(一般的にオブジェクトと称される)に対して実行され得るアクティビティを許可/禁止するために、これらの保護された(コンピューティング)リソースへのアクセスは制限されている。このようにして、(適切な)サブジェクトがオブジェクトに対して(適切な)アクティビティを適時に、かつ適切な理由で実行できるようにすることが可能であり;これにより、情報技術インフラストラクチャにおいてサブジェクトが所望されない(及び概ね危険な)アクティビティを実行し得るというリスクが回避(又は少なくとも大幅に低減)される。
【発明の概要】
【0004】
本開示の単純化された概要を、その基本的な理解を提供するためにここで提示するが、この概要の唯一の目的は、以下のより詳細な説明への前置きとして、本開示の一部の概念を単純化された形態で紹介することであり、その主要な要素の特定として、又はその範囲の描写として解釈されるべきではない。
【0005】
一般的な用語で、本開示は、連続した隔離環境におけるコンピューティングリソースへのアクセスを制御する考えに基づいている。
【0006】
特に、一実施形態は、コンピューティングリソースへのアクセスを制御するための方法を提供する。(コンピューティングリソースから隔離された)セカンダリコンピューティング環境が、コンピューティングリソースにアクセスするためのアクセス要求を受信し、検証する。(セカンダリコンピューティング環境から隔離された)メインコンピューティング環境は、アクセス要求の検証のポジティブな結果の表示を検出し;これに応じて、メインコンピューティング環境は、セカンダリコンピューティング環境の完全性条件を検証し、その後、それに従ってセカンダリコンピューティング環境がコンピューティングリソースにアクセスすることを承認する。
【0007】
一実施形態によれば、1つ又は複数のコンピューティングリソースへのアクセスを制御するためのコンピュータ実装方法は、コンピューティングシステムの制御下で、コンピューティングシステムにおいて実装されたセカンダリコンピューティング環境によって、コンピューティングリソースにアクセスするためのアクセス要求を受信する段階を含み、セカンダリコンピューティング環境はコンピューティングリソースから隔離されている。コンピュータが、セカンダリコンピューティング環境によってアクセス要求を検証する。コンピュータは、コンピューティングシステムにおいて実装されるメインコンピューティング環境によって、アクセス要求の検証のポジティブな結果の表示を検出し、メインコンピューティング環境はセカンダリコンピューティング環境から隔離されている。コンピュータは、ポジティブな結果の表示を検出したことに応じて、メインコンピューティング環境によってセカンダリコンピューティング環境の完全性条件を検証する。コンピュータは、完全性条件の検証のポジティブな結果に応じて、メインコンピューティング環境によって、セカンダリコンピューティング環境に対してコンピューティングリソースへのアクセスを承認する。
【0008】
さらなる態様は、方法を実装するためのコンピュータプログラムを提供する。
【0009】
さらなる態様は、対応するコンピュータプログラム製品を提供する。
【0010】
さらなる態様は、対応するシステムを提供する。
【0011】
より具体的には、本開示の1つ又は複数の態様が独立請求項に記載されており、それらの特徴が従属請求項に記載されており、全ての請求項の表現は参照により逐語的に本明細書に組み込まれている(任意の有利な特徴は、すべての他の態様に対して必要な修正を加えて適用される任意の具体的な態様を参照して提供される)。
【0012】
保護されたリソースへのアクセスの制御は、対応するアクセス制御アプリケーションによって実装される。概して、各アクセス制御アプリケーションは、サブジェクトを、情報技術インフラストラクチャにおいて動作するためのサブジェクトを識別するのに使用されるデジタルアイデンティティと関連付ける。アクセス制御アプリケーションは、保護されたリソースへのアクセスを試みている各サブジェクトを認証して、自身のアイデンティティを証明するためにサブジェクトによってのみ保有されているべき証明書(例えば、アクセス制御アプリケーションを利用可能な承認されたユーザのリストに含まれる公開鍵に対応する、ユーザのクライアント上でセキュアな方法で記憶された秘密鍵)によってそのアイデンティティを確認する。セキュリティを向上させるために、多要素認証も実装されてよい。この場合、アクセス制御アプリケーションは、保護されたリソースへのアクセスを試みているサブジェクトのみによって保有されているべき2つ又はそれより多くの情報(要素)を、自身のアイデンティティを確認するために必要とする;典型例は、別の通信チャネルを介してサブジェクトに(例えば、その携帯電話に)送信される、又はセキュリティトークンによって提供される(ランダムに生成された)ワンタイムパスワード(One-Time Password:OTP)である。
【0013】
典型例は、例えば遠隔でホストにログインするための、非セキュアネットワーク(例えば、インターネット)を介したクライアントからホストへのアクセスである。例えば、ホスト(例えば、対応する組織のオペレータ)へのアクセスを承認された各ユーザのクライアント上で実行しているSSHクライアント及びホスト上で実行しているSSHサーバの間にセキュアなチャネル(盗聴及び改ざんの両方に対して耐性のあるデータの転送のための)を確立するためにセキュアシェルプロトコル(Secure Shell Protocol:SSH)が使用されてよい。
【0014】
しかしながら、アクセス制御アプリケーションは、敵対的な攻撃の効果に耐えることを許容しない脆弱性を有し得る。これにより、脆弱性のせいで損傷(情報技術インフラストラクチャに対してネガティブな効果を有する)が生じる可能性に起因して、保護されたリソースは脅威に晒される。特に、攻撃者によって、その脆弱性を利用してアクセス制御アプリケーションをハッキングするために悪性コード(エクスプロイト)が使用され得る。例えば、アクセス制御アプリケーションは、異常な又はオーバーフローしたコンテンツによってハイジャック(攻撃者にデータを送信するようにさせる)され得る;このようにして、アクセス制御アプリケーション(保護されたリソースへのアクセスのためのセッションを作成するために高権限で実行している)の制御を行う攻撃者は、同様に高権限で動作し得る。攻撃の可能性の影響を制限するために、権限分離技術が実装されてよい。この場合、アクセス制御アプリケーションは、異なる権限を有する2つのプロセスに分けられる。はっきりと定義されたインタフェースを介してそれらの間で通信するこれらの2つのプロセスを用いて、権限を有さない子プロセスはサブジェクトとの通信を処理し、権限を有する親プロセスはサブジェクトの認証を処理する。
【0015】
アクセス制御アプリケーションの新たな脆弱性は絶え間なく発見されている(例えば、自動ツール又はリバースエンジニアリングによって)。したがって、アクセス制御アプリケーションは、既知の脆弱性を修正する(例えば、パッチ又は新たなリリース/バージョンを分配することによって)ために経時的にアップグレードされている。
【0016】
しかしながら、一部の場合では、最新レベルのアクセス制御アプリケーションを即座にインストールすることが、不可能ではなくても困難であり得る。例えば、クラウド環境において典型的であるように、対応するコンピューティングシステムがソフトウェアイメージ(コンピューティングシステムの大容量メモリのコンテンツをカプセル化する構造)として、又は仮想アプライアンス(それらのソフトウェアイメージを用いて1つ又は複数の仮想マシンの定義をカプセル化する構造)として展開されている場合に、アクセス制御アプリケーションのアップグレードは非常に複雑である。また、対応するコンピューティングシステム上で実行する、より最新のレベルの1つ又は複数の他のソフトウェアプログラムが必要とされる場合に、アクセス制御アプリケーションのアップグレードが妨げられる。
【図面の簡単な説明】
【0017】
本開示の解決手段、ならびにそのさらなる特徴及び利点は、純粋に非限定的に示す方法によって与えられる、以下のその詳細な説明を参照して最良に理解され、これは、添付図面と併せて読まれるべきである(ここで、簡潔さのために、対応する要素は同等又は類似の参照番号で示されており、それらの説明は繰り返されず、各エンティティの名称は概ね、そのタイプ及びその属性の両方、同様の値、コンテンツ及び表現を示すために使用される)。
【0018】
図面は以下のように記載される。
【0019】
【
図1A】本開示の一実施形態による解決手段の一般的原則を示す。
【0020】
【
図1B】本開示の一実施形態による解決手段の一般的原則を示す。
【0021】
【
図1C】本開示の一実施形態による解決手段の一般的原則を示す。
【0022】
【
図1D】本開示の一実施形態による解決手段の一般的原則を示す。
【0023】
【
図2】本開示の一実施形態による解決手段が実践され得る情報技術インフラストラクチャの概略的なブロック図を示す。
【0024】
【
図3】本開示の一実施形態による解決手段を実装するのに使用され得るメインソフトウェアコンポーネントを示す。
【0025】
【
図4A】本開示の一実施形態による解決手段の実装に関するアクティビティのフローを説明するアクティビティ図を示す。
【0026】
【
図4B】本開示の一実施形態による解決手段の実装に関するアクティビティのフローを説明するアクティビティ図を示す。
【0027】
【
図5】
図1に示す1つ又は複数のコンピュータ又はデバイスに完全又は部分的に組み込まれてよく、かつ、
図1に示すシステム及び方法と連携する、本開示の一実施形態によるコンピュータシステムを図示する概略的なブロック図である。
【0028】
【
図6】本発明の一実施形態によるクラウドコンピューティング環境を図示する。
【0029】
【
図7】本発明の一実施形態による抽象化モデル層を図示する。
【発明を実施するための形態】
【0030】
特に
図1A~
図1Dを参照すると、本開示の一実施形態による解決手段の一般的原則が示されている。
【0031】
図1Aから開始すると、クライアントコンピューティングマシンのユーザ、又は単にクライアント105は、例えばホストコンピューティングシステム、又は単にホスト110上に実装された、1つ又は複数の保護された(コンピューティング)リソースにアクセスする必要がある。この目的のために、クライアント105は、(コンピューティングリソースにアクセスするための)対応するアクセス要求を提出する。本開示の一実施形態による解決手段(以下で詳細に説明するような)では、保護されたリソースへのアクセスは、コンピューティングシステム(例えば、同じホスト110)上で実装される、連続するセカンダリ(コンピューティング)環境120及びメイン(コンピューティング)環境130の制御下で2部分の手順を用いて制御される。この目的のために、アクセス要求がセカンダリ環境120によって受信される。セカンダリ環境120は、(例えば、ホスト110上で実行しているコンテナによって実装された)保護されたリソースから隔離されている。セカンダリ環境120は、通常どおりにアクセス要求を検証する(例えば、対応する証明書を介してユーザを認証することによって)。
【0032】
図1Bに移ると、アクセス要求の検証の結果がポジティブである状況(例えば、ユーザが正しく認証された場合)が検討される。本開示の一実施形態による解決手段では、メイン環境130は、アクセス要求の検証(セカンダリ環境120によって実行される)のポジティブな結果を検出する。例えば、一実装形態において、セカンダリ環境120は、結果インジケータ(例えば、ユーザに対して新たに生成された公開鍵)を交換メモリ領域140(例えば、コンテナのユーザディレクトリ)に記憶する。メイン環境130は、交換メモリ領域140を監視して、公開鍵の記憶、そして非間接的に検証のポジティブな結果を検出する。
【0033】
図1Cに移ると、(セカンダリ環境120によるアクセス要求の)検証のポジティブな結果の検出に応じて、メイン環境130はセカンダリ環境の完全性条件を検証する。例えば、メイン環境130は、公開鍵が形式的に正しく適時に生成されたかどうか、セカンダリ環境120のプロセス及びコンテンツが予想されたとおりであるかどうか等を検証する。
【0034】
図1Dに移ると、セカンダリ環境120の完全性条件の検証のポジティブな結果の場合、メイン環境130はセカンダリ環境120に対して、保護されたリソースへのアクセスを承認する。例えば、メイン環境130は、公開鍵をデジタルに署名し、その署名を交換メモリ領域140に記憶する;セカンダリ環境120が公開鍵の署名の記憶を検出すると間もなく、それは、証明書として公開鍵の署名(これはメイン環境によって自動的に受け入れられる)を使用することによって、保護されたリソースへの(さらなる)アクセス要求を(ユーザに代わって)メイン環境130に提出する。
【0035】
このようにして、ユーザの認証は、このタスクのみを実行するチェックポイントとして動作するセカンダリ環境120内で完全に実行される。したがって、セカンダリ環境120をハッキングすることが可能であり得るいかなる攻撃者も、せいぜい得られるのはそれへのアクセスのみである(保護されたリソースから完全に隔離されている)。また、メイン環境130は、セカンダリ環境120からのみアクセス要求を受信し得る(既に認証に成功したユーザに代わって)ため、攻撃者に晒されない。
【0036】
いずれの場合も、メイン環境130(外部からは到達できない)は、これに晒されることなくセカンダリ環境120の完全性条件を検証する。これにより、攻撃者がセカンダリ環境120の任意の脆弱性を利用することが防止される。実際に、セカンダリ環境120がハッキングされたかもしれないとメイン環境130が疑うと間もなく、それはそこから来るいかなるアクセス要求も拒否する。これにより、セカンダリ環境120の制御を乗っ取ることができたとしても、攻撃者が保護されたリソースへのアクセスを得ることは非常に困難になる。
【0037】
保護されたリソースへのアクセスを制御するためにセカンダリ環境120上で実行している任意のアクセス制御アプリケーションは、対応するコンピューティングシステムの残りとは完全に独立しているため、常にその最新レベルでインストールされ得る。これにより、アクセス制御アプリケーションがすべての既知の脆弱性を修正するためにアップグレードされていることが確保される。上記はすべて、あらゆる状況における攻撃の可能性に対する高度な保護を確保する;例えば、対応するコンピューティングシステムがソフトウェアイメージとして、又は仮想アプライアンス(クラウド環境において特に有用)として展開されている場合でさえも、かつ、コンピューティングシステムの他のソフトウェアプログラムとのいかなる適合性の問題にかかわらず、最新レベルのアクセス制御アプリケーションが容易にインストールされ得る。
【0038】
ここで
図2を参照すると、本開示の一実施形態による解決手段が実践され得る情報技術インフラストラクチャ200の概略的なブロック図が示される。
【0039】
情報技術インフラストラクチャ200は、上述のクライアント105の複数のインスタンス及び上述のホスト110の1つ又は複数のインスタンスを備える。情報技術インフラストラクチャ200は、(電気通信)ネットワーク205を介してそれらの間で通信するクライアント105及びホスト110を含む、分散型アーキテクチャを有する。ホスト110へのアクセスが承認されたものより多くのユーザに対して、ネットワーク205へのアクセスが許容される;例えば、ネットワーク205は非セキュアであり(例えば、インターネットに基づくグローバルタイプ)、これへのアクセスは制御されていない。具体的な実装形態において、情報技術インフラストラクチャ200は、クライアント/サーバモデルに基づいており、ホスト110が、クライアント105にサービスを提供するサーバとして動作する。
【0040】
ホスト110の少なくとも一部が保護されたリソースを提供する。特に、これらは、クライアント105の(承認された)ユーザによってのみアクセスされ得る(ホスト110上で直接的に、又は、それらによって提供されるサービス、例えばCRM、LDAP、SIEM、SaaS、及び電子メール等を介してのいずれか)ハードウェア及び/又はソフトウェアリソース(例えば、デバイス、マシン、ファイル、プログラム、及びウェブページ等)である。ホスト110のうちの1つ又は複数が、(例えば、デバイスを使用するため、マシンを開始/停止するため、ファイルを読み出す/書き込むため、プログラムを実行するため、及びコンテンツをダウンロードする等のために)保護されたリソースへのアクセスを制御する。各ホスト110によって制御される保護されたリソースは、同じホスト110、又は1つ又は複数の他のホスト110のプールのいずれかによって提供され得る;後者の場合、プールのホスト110は、セキュアな(通信)ネットワーク、例えば専用LAN(図では示されていない)を介して、それらの保護されたリソースを制御するホスト100と通信する。
【0041】
上記のコンピューティングマシン(すなわち、クライアント105及びホスト110)のそれぞれは、それらの間で、1つ又は複数のレベルで(コンピューティングマシン105、110のタイプに応じて好適にスケールされたアーキテクチャを用いて)バス構造210を通して接続されているいくつかのユニットを備える。特に、マイクロプロセッサ(μP)215、又はそれ以上は、コンピューティングマシン105、110の論理機能を提供する;不揮発性メモリ(ROM)220はコンピューティングマシン105、110のブートストラップのための基本コードを記憶し、揮発性メモリ(RAM)225は、マイクロプロセッサ215によってワーキングメモリとして使用される。コンピューティングマシン105、110には、プログラム及びデータを記憶するための大容量メモリ230が設けられている(例えば、クライアント105、及びデータセンタのストレージデバイス、又はそれ以上のための対応するSSDであり、これらはホスト110のために実装される)。また、コンピューティングマシン105、110は、周辺機器又は入出力(I/O)ユニット235のための複数のコントローラを備える:例えば、各クライアント105の周辺機器235は、キーボード、マウス、モニタ、ネットワーク205に接続するためのネットワークアダプタ、及び取り外し可能なストレージユニット(例えば、USBタイプ)の読み出し/書き込みのためのドライブを含み、一方で、各ホスト110の周辺機器235は、ホスト110をそれぞれのデータセンタにプラグし、その後、その制御のためにそれをデータセンタのコンソール(例えば、USBタイプ等の取り外し可能なストレージユニットの読み出し/書き込みのためのドライブも設けられているパーソナルコンピュータ)に、及びネットワーク205とのその通信のためにデータセンタのスイッチ/ルータサブシステムに接続するためのネットワークアダプタを含む。
【0042】
ここで
図3を参照すると、本開示の一実施形態による解決手段を実装するのに使用され得るメインソフトウェアコンポーネントが示される。
【0043】
特に、参照番号300を用いてすべてのソフトウェアコンポーネント(プログラム及びデータ)が全体として示されている。ソフトウェアコンポーネント300は、通常、大容量メモリに記憶され、本開示の解決手段に直接関連しない(そのため、簡潔さのために図では省略されている)可能な他のアプリケーションプログラムと共にプログラムが実行されるときに、対応する保護されたリソース(同じホスト110又は他のホストのプールのいずれかによって提供される、図では示されていない)へのアクセスを制御する汎用ホスト110のワーキングメモリに(少なくとも部分的に)ロードされる。プログラムは最初に、例えば取り外し可能なストレージユニットから、又はネットワークから、大容量メモリにインストールされる。この点で、各プログラムは、指定された論理機能を実装するための1つ又は複数の実行可能命令を備えるモジュール、セグメント、又はコードの一部分であってよい。
【0044】
ホスト110のハードウェア上で直接実行しているオペレーティングシステム305は、その上で任意の他のソフトウェアプログラムが実行し得るソフトウェアプラットフォームを定義する。特に、コンテナ310(ゾーン、プライベートホスト、又はパーティションとしても知られる)は、(共有の)オペレーティングシステム305上で実行しているコンピューティング環境をエミュレートする(それにより提供されるリソース隔離特徴を利用する)。コンテナ310のコンピューティング環境は、分離されたワーキングメモリ領域(ユーザ空間)で実行し、これにアサインされたホスト110の選択されたリソース(例えば、ファイルシステム、デバイス、ネットワーク接続、及び処理パワー等)が割り当てられているため、ホスト110の残りの部分からは隔離されている。結果として、コンテナ310は、そのアクセスが制御されるべき保護されたリソースからは完全に隔離されている。コンテナ310は、上述のセカンダリ環境120を定義する。オペレーティングシステム305によって実装されるホスト110の残りの部分(コンテナ310を除く)は、代わりに、(コンテナ310から完全に隔離された)メイン環境130を定義する。
【0045】
コンテナ310は以下のコンポーネントを備える。(セカンダリ)オーサライザ315は、クライアント(図では示されていない)のユーザからの保護されたリソースにアクセスするための対応するアクセス要求を受信するためのインタフェースをホスト110の外部に晒している。オーサライザ315は、アクセス要求を検証して、それらを(予備)承認又は拒否する。例えば、オーサライザは、その上で実行しているSSHクライアントを介してユーザのクライアントによって提出されたアクセス要求に応じて、(非セキュアな)ネットワーク(図では示されていない)を介してセキュアな方法で保護されたリソースへのアクセスを制御するためのセキュアシェル(SSH)プロトコルを実装するSSHサーバ(SSHデーモンを晒す)である。オーサライザ315は、保護されたリソースへのアクセスを承認されたユーザについての情報を含むユーザレポジトリ320を読み出す。例えば、ユーザレポジトリ320は、各(承認された)ユーザのエントリを有する;エントリは、ユーザの識別情報及び対応する公開鍵(対応する秘密鍵は、その秘密パスワードによって保護されたユーザのクライアントに記憶されている)を記憶する。オーサライザ315は、暗号化及び復号動作を実行する(セカンダリ)暗号化エンジン325を使用する。暗号化エンジン325は、ホスト110のデジタル証明書330を読み出す。オーサライザ315は、上述の交換メモリ領域を実装する交換フォルダ335を書き込む。交換フォルダ335は、(アクティブな)アクセス要求に関する情報を記憶する。例えば、交換フォルダ335は、各アクセス要求に対するディレクトリを含み、このディレクトリは、コンテナ(アクセス要求の検証のポジティブな結果の上述の結果インジケータを定義する)によって、秘密/公開鍵のペアを、及びホストによって、公開鍵の署名(それを用いてコンテナを認証するための証明書として使用される)を記憶するのに使用される。(セカンダリ)モニタ340は、交換フォルダ335を監視し、その任意の変更についてオーサライザ315に通知する。オーサライザ315はリクエスタ345を使用する。リクエスタ345は、保護されたリソース(同じホスト110へ、又は図では示されていないプールの他のホストへの)に(実際に)アクセスするための対応する(さらなる)アクセス要求を提出する。問題の例では、リクエスタ345はSSHクライアントによって実装される。
【0046】
ホスト110は、(コンテナ310に加えて)以下のコンポーネントを備える。(メイン)オーサライザ350が、保護されたリソースにアクセスする要求を(実際に)承認又は拒否する。例えば、上記のように、オーサライザ350は、SSHプロトコルを実装するSSHサーバである。保護されたリソースがホスト110である場合、オーサライザ350は、ユーザに代わって保護されたリソースにアクセスするための対応する(さらなる)アクセス要求を受信するために、コンテナ310に対して、すなわちそのリクエスタ345に対してインタフェース(問題の例ではSSHデーモン)をさらに晒す。(メイン)モニタ355は、交換フォルダ335を監視し、その任意の変更についてオーサライザ350に通知する。オーサライザ350は交換フォルダ335を書き込む。コンテナ310の交換フォルダ335が(コンテナ310)を実装するオペレーティングシステム305を介して)ホスト110に完全にアクセス可能であるため、上述の読み出し/書き込み動作が可能である。オーサライザ355は検証装置360を使用する。検証装置360は、コンテナ310の完全性条件を検証する。例えば、完全性条件は、交換フォルダ335に書き込まれたデータ、コンテナ310のコンテンツ(例えば、そのメモリスペースに記憶された情報)、及び/又はコンテナ310の動作(例えば、その実行プロセス)によって定義される。オーサライザ355は、コンテナ310から受信したアクセス要求を認証するための公開鍵を記憶する公開鍵レポジトリ365の読み出し/書き込みを行う。オーサライザ355は、暗号化及び復号動作を実行するメイン(暗号化エンジン370)を使用する。暗号化エンジン370は、セキュアな方法で記憶されているホスト110の秘密鍵375(例えば、その秘密鍵)を読み出す。
【0047】
ここで
図4A~
図4Bを参照すると、本開示の一実施形態による解決手段の実装に関するアクティビティのフローを説明するアクティビティ図が示される。
【0048】
特に、図は、方法400を用いて汎用ホストによって対応する保護されたリソースへのアクセスを制御するのに使用され得る例示的なプロセスを表す。この点で、各ブロックは、ホスト上で指定された論理機能を実装するための1つ又は複数の実行可能命令に対応し得る。
【0049】
コンテナ120(セカンダリ環境)のスイムレーンから開始すると、セカンダリオーサライザ(リスニング状態にある)のインタフェースはブロック403において、保護されたリソースにアクセスするための一般ユーザのクライアントからの(新たな)アクセス要求を受信する。例えば、アクセス要求は、そのシェルにログインするためにホストに、又はプールの他の各ホストにアクセスする、遠隔コマンドを実行する、情報をセキュアに転送する、トンネル又はVPNを実装する、遠隔ディレクトリをローカルファイルシステムにマウントする、管理を実行する、及び監視又はメンテナンス動作等のためのものである。これに応じて、セカンダリオーサライザはブロック406において通常どおりにアクセス要求を検証する。例えば、セカンダリオーサライザのトランスポート層は、クライアントに対してホストを認証し(例えばそのデジタル証明書を介して)、対応する通信セッションの間に交換される情報を暗号化/復号するために使用されるセッション鍵を(例えば、Diffie-Hellman鍵交換法を介して)クライアントと交換する(その最大量まで又は最大時間まで行われ、その後新たなセッション鍵が交換される)。また、セカンダリオーサライザのユーザ認証層は、ホストに対してユーザを認証する(例えば、ユーザレポジトリから取得した自身の公開鍵を介して、公開鍵を用いて問題を暗号化し、対応する秘密鍵を用いてそれを復号し、復号された問題を、自身のアイデンティティの証明としてホストに返すユーザのクライアントに暗号化された問題を送信することによって)。アクティビティのフローは、アクセス要求の検証の結果に従ってブロック409において分岐する。検証の結果がネガティブである場合(例えば、ユーザの認証が成功しなかった場合)、セカンダリオーサライザはブロック412において、アクセス要求を拒否する(場合によっては、対応する情報をログし、及び/又はシステム管理者に警告を送信する)。プロセスはその後、ブロック403に戻って次のアクセス要求のために待機する。逆に、検証の結果がポジティブである場合(ユーザは保護されたリソースへのアクセスが承認され、認証に成功したことを意味する)、プロセスはブロック415へと下る。この時点で、セカンダリオーサライザはアクセス要求を許可するが、このようにして、ユーザはコンテナのみへのアクセスを得、保護されたリソースへのアクセスは得ない。例えば、セカンダリオーサライザの接続層は、(暗号化された)データを(ユーザレポジトリにログインされた、コンテナへのユーザの対応するログイン時刻と共に)両方向に転送するために、ユーザのクライアント及びコンテナの間で(セキュアな)接続を確立する。本開示の一実施形態による解決手段では、セカンダリオーサライザはブロック418において、ここでユーザに代わってホストに対してコンテナを認証するために、(一時的な)証明書として使用される秘密鍵及び公開鍵のペアを生成するようセカンダリ暗号化エンジンにコマンドする。セカンダリオーサライザはブロック424において、交換フォルダにユーザのための新たなディレクトリを作成し、その後、生成されたばかりの秘密鍵及び公開鍵をその中に保存する;この情報はまた、(以下で説明するようにホストによる使用のための)アクセス要求の検証のポジティブな結果の結果インジケータを定義する。
【0050】
代わりに、ホスト110(メイン環境130))のスイムレーンを参照すると、メインモニタはブロック424において交換フォルダを継続的に監視する。例えば、メインモニタは、ディレクトリ/ファイルの追加についてそのコンテンツを(例えば、1~10[ms]ごとに)能動的にサンプリングすることによって交換フォルダを直接的にポーリングする;代替的には、メインモニタは、(例えば、fanotify APIを介して)交換フォルダへのディレクトリ/ファイルの追加に関与する任意のイベントの通知を受信するためにオペレーティングシステムのサービスにサブスクライブしている。いずれの場合も、アクティビティのフローは、交換フォルダのモニタの結果に従ってブロック427において分岐する。(新たな)公開鍵を含む(新たな)ディレクトリが追加されていない場合、プロセスはブロック424に戻って、同一の動作を継続的に繰り返す。逆に、(新たな)公開鍵を含む(新たな)ディレクトリが(ブロック421においてユーザのセカンダリオーサライザによって)追加されると間もなく、メインオーサライザ(好適にはモニタによって通知される)は、コンテナの完全性条件を検証するよう検証装置にコマンドする。結果として、メインオーサライザは、いかなる対応する要求も受信することなく、(セカンダリオーサライザによって実行された)アクセス要求の検証のポジティブな結果を検出する;これにより、メインオーサライザの加工の可能性が回避されるため、さらなるセキュリティが追加される。コンテナの完全性条件の検証は、1つ又は複数の動作によって実行され得る。例えば、検証装置がブロック430において、(交換フォルダから取得された)公開鍵を検証する。特に、検証装置は、公開鍵が正しい形式であるかどうか(例えば、そのフォーマットが正しいかどうか、及びそれが対応する秘密鍵と合致するかどうか等)を検証する。追加的に又は代替的に、検証装置は、公開鍵が予想されるプロセスによって作成されているかどうかを検証する;例えば、検証装置は、公開鍵を(例えばそのメタデータから)作成したプロセスの識別子(例えば、そのプロセス識別子(Process IDentifier:PID))を読み出し、その後、それを(例えば、コンテナからのホストの起動時に取得された)セカンダリオーサライザの(既知の)識別子と比較する。追加的に又は代替的に、検証装置は、アクセス要求の検証のポジティブな結果及び公開鍵の記憶の間の遅延を検証する;例えば、検証装置は、コンテナへのユーザのログイン時刻(ユーザレポジトリから)、及び公開鍵の作成時刻(例えば、そのメタデータから)を取得し、その後、それらの差を最大許容値(例えば、0.5~1.5[s])と比較する。追加的に又は代替的に、検証装置は、公開鍵の記憶及び現在の時刻の間の遅延を検証する;例えば、検証装置は、公開鍵の作成時刻(例えばそのメタデータから)及び現在の時刻(例えばシステムクロックから)を取得し、その後、それらの差を最大許容値(例えば、0.5~1.5[s])と比較する。アクティビティのフローは、公開鍵の検証の結果に従ってブロック433において分岐する。公開鍵の検証の結果がネガティブである場合(例えば、上述の検証のうちの少なくとも1つが失敗したため)、これは、コンテナがハッキングされた可能性があることを意味する。この場合、コンテナの完全性条件の検証はネガティブであり、その後、オーサライザはブロック436においてアクセス要求を拒否する(場合によっては、対応する情報をログし、及び/又はシステム管理者に警告を送信する)。プロセスは、その後、ブロック424に戻り、さらなる公開鍵による、交換フォルダへのさらなるディレクトリの追加について待機する。逆に、公開鍵の検証の結果がポジティブである場合、プロセスはブロック439へと下り、検証装置がコンテナのステータスを検証する。特に、検証装置は、コンテナのメモリスペースのコンテンツを検証する;例えば、検証装置は、コンテナのメモリスペースに記憶されたファイルの数を判断し、それを予想される値(アクセス要求に従って検証装置に知られている)と比較する。追加的に又は代替的に、検証装置は、コンテナにおいて実行しているプロセスを検証する;例えば、検証装置は、コンテナにおいて実行しているプロセスの数を判断し、それをその(既知の)正しい数と比較する。アクティビティのフローは、コンテナのステータスの検証の結果に従ってブロック442において分岐する。コンテナのステータスの検証の結果がネガティブである場合(例えば、上述の検証のうちの少なくとも1つが失敗したため)、これは、コンテナがハッキングされた可能性があることを意味する。したがって、コンテナの完全性条件の検証が再びネガティブとなり、プロセスはその後、ブロック436に進み、ここで、オーサライザは上記のようにアクセス要求を拒否する(その後、プロセスはブロック424に戻って、さらなる公開鍵での交換フォルダへのさらなるディレクトリの追加について待機する)。逆に、コンテナのステータスの検証の結果がポジティブである場合、プロセスはブロック445へと下る。この時点で、コンテナの完全性条件の検証はポジティブであり(疑わしいアクティビティが検出されていないため)、メインオーサライザはその後、その秘密鍵でそれに署名することによって公開鍵の署名を生成するよう暗号化エンジンにコマンドする。署名は、(比較的)短い有効期間を有する(例えば、30~90[s])。アクティビティのフローは、アクセス要求(例えば、事前定義された、又はユーザレポジトリから取得され、その表示はセカンダリオーサライザによってログされている)によってアクセスされる保護されたリソースに従ってブロック448において分岐する。保護されたリソースが同じホストである場合、メインオーサライザはブロック451において、対応するリポジトリに公開鍵を(単独で、又はその署名と共に)追加する。代わりに、保護されたリソースが1つ又は複数の他のホストのプールである場合、メインオーサライザはブロック454において、公開鍵及びその署名をプールの他の各ホストに伝送する。これに応じて(図では示されていない)、プールの他の各ホストにおいて、同様のオーサライザ(リスニング状態にある)が公開鍵及びその署名を受信する;オーサライザは同様に、同様の公開鍵レポジトリに公開鍵及びその署名を追加する。アクティビティのフローはブロック457において、ブロック451又はブロック454のいずれかから再び合流する;この時点で、メインオーサライザが交換フォルダにおいてユーザのディレクトリに署名を追加する。プロセスはその後、ブロック424に戻り、さらなる公開鍵による交換フォルダへのさらなるディレクトリの追加について待機する。
【0051】
コンテナ120のスイムレーンを参照すると、プロセスは、ブロック421からの公開鍵の署名の待機ループに入る。特に、セカンダリモニタはブロック460において、交換フォルダを継続的に監視する。例えば、セカンダリモニタは、ファイルの追加についてそのコンテンツを(例えば、1~10[ms]ごとに)能動的にサンプリングすることによってユーザのディレクトリを直接的にポーリングする;代替的には、セカンダリモニタは、ユーザのディレクトリへのディレクトリ/ファイルの追加に関与する任意のイベントの通知を受信するためにオペレーティングシステムの上記と同じサービスにサブスクライブしている。いずれの場合も、アクティビティのフローは、交換フォルダのモニタの結果に従ってブロック463において分岐する。(新たな)署名が追加されない場合、セカンダリオーサライザはブロック466において、コンテナへのユーザのログイン(ユーザレポジトリから取得された)から、事前定義されたタイムアウト、例えば3~5[s]が満了したかどうかを検証する。層でない場合、プロセスはブロック460に戻って、同一の動作を継続的に繰り返す。逆に、タイムアウトが満了した場合、プロセスは再びブロック412に進み、セカンダリオーサライザは、上記のようにアクセス要求を拒否する(その後、プロセスはブロック403に戻ってさらなるアクセス要求について待機する)。再びブロック463を参照すると、公開鍵の署名が(ブロック457においてメインオーサライザによって)追加されると間もなく、プロセスはブロック469へと下る。この時点で、アクティビティのフローは、アクセスされる保護されたリソースに従って分岐する。保護されたリソースが同じホストである場合、セカンダリオーサライザはブロック472において、それにアクセスするための(さらなる)アクセス要求を、(ユーザに代わって)メインオーサライザのインタフェースにローカルに提出する。ホスト110のスイムレーンに移ると、メインオーサライザ(リスニング状態にある)のインタフェースはブロック475において、コンテナからアクセス要求を受信する。これに応じて、メインオーサライザはブロック478において上記のようにアクセス要求を検証する。しかしながら、この場合、コンテナは単に、公開鍵及びその署名を介して認証される。特に、メインオーサライザは最初に、対応するリポジトリに公開鍵が存在するか(コンテナの完全性条件のポジティブな検証に応じてその中に記憶されている)どうか検証する。層である場合、メインオーサライザは、署名がまだ満了していないかどうかを検証する;例えば、メインオーサライザは、署名の有効期間を(例えばそのメタデータから)読み出し、それを現在の時刻(例えば、システムクロックから取得された)と比較する。署名が依然として有効である場合、メインオーサライザは、ホストの秘密鍵を用いて公開鍵の(新たな)署名を計算し、それが(受信した)署名と合致するかどうかを検証する。アクティビティのフローは、アクセス要求の検証の結果に従ってブロック481において分岐する。検証の結果がネガティブである場合(すなわち、対応するリポジトリに公開鍵が存在しない、署名の期限が満了している、又は署名が正しくない)、メインオーサライザはブロック484においてアクセス要求を拒否する(場合によっては、対応する情報をログし、及び/又はシステム管理者に警告を送信する)。プロセスは、その後、ブロック475に戻って、次のアクセス要求について待機する。逆に、検証の結果がポジティブである場合(メインオーサライザによって公開鍵が実際に生成され、それによって最近署名されたことを意味する)、プロセスはブロック487へと下る。この時点で、メインオーサライザはアクセス要求を許可する。例えば、上記のように、メインオーサライザの接続層が、コンテナ及びホスト(ユーザに代わって)の間で(セキュアな)接続を確立する。このようにして、ユーザはここで、コンテナを介して、ホスト、すなわち所望の保護されたリソースへのアクセスを実際に得る。プロセスは、その後、ブロック475に戻って、コンテナからの次のアクセス要求について待機する。コンテナ120のスイムレーンを参照すると、保護されたリソースが他のホストのプールである場合、アクティビティのフローはブロック469からブロック490に進む;この場合、セカンダリオーサライザは同様に、プールの他の各ホストにアクセスするための(さらなる)アクセス要求を、オーサライザの(同様の)インタフェースに遠隔で提出する(セキュアなLANを介して)。これに応じて(図では示されていない)、プールの他の各ホストにおいて、オーサライザ(リスニング状態にある)のインタフェースは、コンテナからアクセス要求を受信し、上記のように公開鍵及びその署名を使用してコンテナを認証することによってアクセス要求を検証し、その後、アクセス要求を許可する(検証の結果がポジティブであると想定する)。例えば、上記のように、プールの他のホストのオーサライザの接続層は、コンテナ及びプールの他のホスト(ユーザに代わって)の間で(セキュアな)接続を確立する。このようにして、ユーザはここで、コンテナ(他のホストのプールにアクセスするためのある種のジャンプボックスとして動作する)を介して、プールのホスト、すなわち所望の保護されたリソースへのアクセスを実際に得る。プロセスはその後、ブロック472から、又はブロック490からブロック403に戻って、次のアクセス要求について待機する。
【0052】
もちろん、ローカル及び具体的な要件をみたすために、当業者は、本開示に多くの論理的及び/又は物理的な修正及び改変を適用してよい。より具体的には、本開示は、その1つ又は複数の実施形態を参照してある程度の具体性を伴って説明されてきたが、その形態及び詳細における様々な省略、置換、及び変更、並びに他の実施形態が可能であることが理解されるべきである。特に、本開示の異なる実施形態はさらには、そのより完全な理解を提供するために前述の説明において記載される具体的な詳細(例えば、数値)なしで実践され得る;逆に、不要な詳細によって説明を不明瞭にしないために周知の特徴が省略又は簡略化されている場合がある。また、本開示の任意の実施形態に関連して説明される具体的な要素及び/又は方法の段階は、一般的な設計上の選択の問題として任意の他の実施形態に組み込まれ得ることが明示的に意図される。また、同じグループ及び異なる実施形態、実施例、まあは代替例において提示された項目は、互いに事実上同等であると解釈されるものではない(が、それらは別個の自律的なエンティティである)。いずれの場合も、各数値は、適切な公差に従って修正されたものとして読み出されるべきである;特に、別段の指示がない限り、「実質的に」、「約」、及び「およそ」等の用語は、10%以内、好ましくは5%以内、及びさらにより好ましくは1%以内として理解されるべきである。また、数値の各範囲は、範囲内(その端点を含む)での連続に沿った任意の可能な数を明示的に指定するものと意図されるべきである。序数詞及び他の修飾語句は、単に、同じ名称を有する要素を区別するためのラベルとして使用されるが、それら自体がいかなる優先度、先行関係又は順序を暗示するものではない。含む、備える、有する、含有する、及び関与する等の用語は、オープンで非包括的な意味を有するものと意図されるべきであり(すなわち、引用された項目に限定されない)、に基づく、に依存する、による、及び、の関数等の用語は、非包括的な関係として意図されるべきであり(すなわち、可能なさらなる変数が関与し得る)、a/anという用語は、1つ又は複数の項目として意図されるべきであり(別段の明示的な指示がない限り)、のための手段(又は任意のミーンズプラスファンクションの明確な記述)という用語は、関連する機能を実行するために適合又は構成された任意の構造として意図されるべきである。
【0053】
例えば、一実施形態は、1つ又は複数のコンピューティングリソースへのアクセスを制御するための方法を提供する。しかしながら、コンピューティングリソースは、任意の数及び任意のタイプであってよく(例えば、同じコンピューティングシステムによって、又は1つ又は複数の他のコンピューティングシステム等によって提供される、個々に又はそれらの任意の組み合わせのいずれかで、上述のものに関して、部分的な、異なる、かつ追加的なコンピューティングリソース)、それらは、任意の目的のためにアクセスされ得る(例えば、ホスト上で動作するため、アプリケーションを実行するため、及びデータの読み出し/書き込みのため等)。
【0054】
一実施形態において、方法は、コンピューティングシステムの制御下で以下の段階を備える。しかしながら、コンピューティングシステムは、任意のタイプのものであってよい(以下を参照されたい)。
【0055】
一実施形態において、方法は、コンピューティングシステムにおいて実装されたセカンダリコンピューティング環境によるコンピューティングリソースにアクセスするためのアクセス要求を受信する段階を備える。しかしながら、セカンダリコンピューティング環境は、任意のタイプのものであってよく(例えば、コンテナ及び仮想マシン等)、任意の方法でアクセス要求を受信してよい(例えば、ユーザ、プログラム、及びサービス等の任意のサブジェクトによって提出されたメッセージ及びコマンド等で)。
【0056】
一実施形態において、セカンダリコンピューティング環境は、コンピューティングリソースから隔離されている。しかしながら、この結果は、任意の方法で達成されてよい(例えば、コンピューティングリソースが同じコンピューティングシステムによって提供される場合には論理的に、及びコンピューティングリソースが異なるコンピューティングシステムによって提供される場合には物理的に、等)。
【0057】
一実施形態において、方法は、セカンダリコンピューティング環境によってアクセス要求を検証する段階を備える。しかしながら、アクセス要求は、任意の方法で検証されてよい(例えば、任意の方法で、例えば秘密鍵、パスワード、及びトークン等を用いて、それを提出するサブジェクトを認証することによって、及び、例えば役割及び属性等に基づく対応する権利をさらに検証することによって等)。
【0058】
一実施形態において、方法は、コンピューティングシステムにおいて実装されるメインコンピューティング環境によって、アクセス要求の上記検証のポジティブな結果の表示を検出する段階を備える。しかしながら、メインコンピューティング環境は、任意のタイプのものであってよく(例えば、コンピューティングシステムのオペレーティングシステムによって定義されたコンピューティング環境全体、及び別個の仮想マシン等)、任意の方法でポジティブな結果を検出してよい(例えば、交換メモリ領域を監視することによって、セカンダリコンピューティング環境に問い合わせることによって等)。
【0059】
一実施形態において、メインコンピューティング環境は、セカンダリコンピューティング環境から隔離されている。しかしながら、この結果は任意の方法で達成されてよい(例えば、オペレーティングシステム及び仮想化層等によって)。
【0060】
一実施形態において、方法は、ポジティブな結果の表示の上記検出に応じて、メインコンピューティング環境によってセカンダリコンピューティング環境の完全性条件を検証する段階を備える。しかしながら、完全性条件は、任意の方法で(例えば、結果インジケータ及び/又はセカンダリコンピューティング環境のステータスを検証することによって、上述のものに関して部分的、異なる、かつ追加の検証を用いて、個々に、又はそれらの組み合わせのいずれかで)検証されてよい。
【0061】
一実施形態において、方法は、完全性条件の上記検証のポジティブな結果に応じて、メインコンピューティング環境によって、セカンダリコンピューティング環境に対してコンピューティングリソースへの上記アクセスを承認する段階を備える。しかしながら、アクセス要求は、任意の方法で承認されてよい(例えば、メインコンピューティング環境への対応するさらなるアクセス要求を提出するためにセカンダリコンピューティング環境によって使用するための証明書を生成することによって、及びセカンダリコンピューティング環境へのアクセスを自動的に許可することによって等)。
【0062】
さらなる実施形態は、追加の有利な特徴を提供するが、これらは、基本的な実装形態ではすべて省略され得る。
【0063】
特に、一実施形態において、メインコンピューティング環境は、コンピューティングシステムのオペレーティングシステムによって定義される。しかしながら、オペレーティングシステムは、任意のタイプのものであってよい(例えば、コマンドラインインタフェース及びグラフィカルユーザインタフェース等を有する、シングルユーザ及びマルチユーザ等のタイプ)。
【0064】
一実施形態において、セカンダリコンピューティング環境は、オペレーティングシステム上で実行しているコンテナによって定義される。しかしながら、コンテナは任意のタイプのものであってよい(例えば、完全に専用の情報画像を有する、複数のコンテナがそこからインスタンス化されるリードオンリレイヤ、及びリダイレクトオンライト(redirect-on-write)技術を用いてコンテナ専用とされたリードライト(read-write)レイヤによって形成された情報画像を有するもの等)。
【0065】
一実施形態において、コンピューティングリソースへの上記アクセスを承認する上記段階は、完全性条件の上記検証のポジティブな結果に応じて、メインコンピューティング環境によって証明書を生成する段階を含む。しかしながら、証明書は任意のタイプのものであってよい(例えば、署名及びワンタイムパスワード等)。
【0066】
一実施形態において、コンピューティングリソースへの上記アクセスを承認する上記段階は、証明書をメインコンピューティング環境からセカンダリコンピューティング環境に通す段階を含む。しかしながら、証明書は任意の方法で通されてよい(例えば、それらを交換メモリ領域に記憶することによって、及びメッセージを送信することによって等)。
【0067】
一実施形態において、コンピューティングリソースへの上記アクセスを承認する上記段階は、証明書に応じて、セカンダリコンピューティング環境によって、コンピューティングリソースにアクセスするためのさらなるアクセス要求をメインコンピューティング環境に提出する段階を含む。しかしながら、さらなるアクセス要求は任意の方法で提出されてよい(例えば、自動的に、及びセカンダリ処理環境によって提供される非常に限定的なシェルにおいて手動で等)。
【0068】
一実施形態において、コンピューティングリソースへの上記アクセスを承認する上記段階は、セカンダリコンピューティング環境によって提供された証明書に従って、メインコンピューティング環境によってさらなるアクセス要求を検証する段階を含む。しかしながら、さらなるアクセス要求は任意の方法で検証されてよい(例えば、署名が正しいことを検証することによって、及びワンタイムパスワードをその予想される値と比較することによって等)。
【0069】
一実施形態において、コンピューティングリソースへの上記アクセスを承認する上記段階は、さらなるアクセス要求の上記検証のポジティブな結果に応じて、メインコンピューティング環境によって、セカンダリコンピューティング環境に対してコンピューティングリソースへの上記アクセスを承認する段階を含む。しかしながら、コンピューティングリソースへのアクセスは任意の方法で承認されてよい(上記を参照されたい)。
【0070】
一実施形態において、方法は、アクセス要求の上記検証のポジティブな結果に応じて、セカンダリコンピューティング環境によって、結果インジケータを交換メモリ領域に記憶する段階を備える。しかしながら、結果インジケータは任意のタイプのものであってよく(例えば、フレッシュな公開鍵、ワンタイムパスワード、及びアクセスを要求しているサブジェクトの識別子等)、任意の交換メモリ領域に記憶されてよい(例えば、アクセス要求専用のディレクトリを有する共有フォルダ、及びアクセス要求専用のエントリを有する共有メモリ構造等)。
【0071】
一実施形態において、方法は、メインコンピューティング環境によって結果インジケータの上記記憶を検出することによって、ポジティブな結果の表示を検出する段階を備える。しかしながら、結果インジケータの記憶は任意の方法で検出されてよい(例えば、交換メモリ領域を監視することによって、及び対応する通知サービスにサブスクライブすることによって等)。
【0072】
一実施形態において、方法は、アクセス要求の上記検証のポジティブな結果に応じて、セカンダリコンピューティング環境によって公開鍵及び秘密鍵のペアを生成する段階を備える。しかしながら、公開/秘密鍵は任意の方法で生成されてよい(例えば、任意の暗号アルゴリズムに基づいて、及び任意のフォーマットで等)。
【0073】
一実施形態において、方法は、セカンダリコンピューティング環境によって、公開鍵を含む結果インジケータを交換メモリ領域に記憶する段階を備える。しかしながら、結果インジケータは、任意の方法で公開鍵に基づいてよい(例えば、対応する秘密鍵と共に、及び単独で等)。
【0074】
一実施形態において、完全性条件を検証する上記段階は、メインコンピューティング環境によって公開鍵の形式的な訂正を検証する段階を含む。しかしながら、公開鍵の形式的な訂正は任意の方法で検証されてよい(例えば、そのフォーマット及び秘密鍵とのその合致等に従って)。
【0075】
一実施形態において、コンピューティングリソースへの上記アクセスを承認する上記段階は、結果インジケータの上記記憶の上記検出に応じて、メインコンピューティング環境によって、その秘密鍵を用いて結果インジケータの署名を生成する段階を含む。しかしながら、秘密鍵は任意のタイプのものであってよい(例えば、秘密鍵及び対称鍵等)。
【0076】
一実施形態において、コンピューティングリソースへの上記アクセスを承認する上記段階は、メインコンピューティング環境によって署名を交換メモリ領域に記憶する段階を含む。専用のしかしながら、署名は任意の方法で交換メモリ領域に記憶されてよい(例えば、共有フォルダにおけるアクセス要求の同じディレクトリに、アクセス要求専用のディレクトリを有する別の共有フォルダに、共有メモリ構造におけるアクセス要求の同じエントリに、及びアクセス要求専用のエントリを有する別の共有メモリ構造に、等)。
【0077】
一実施形態において、コンピューティングリソースへの上記アクセスを承認する上記段階は、セカンダリコンピューティング環境によって署名の上記記憶を検出する段階を含む。しかしながら、署名の記憶は任意の方法で検出されてよい(例えば、交換メモリ領域を監視することによって、及び対応する通知サービスにサブスクライブすることによって等)。
【0078】
一実施形態において、コンピューティングリソースへの上記アクセスを承認する上記段階は、署名の上記記憶の上記検出に応じて、セカンダリコンピューティング環境によって、コンピューティングリソースにアクセスするためのさらなるアクセス要求をメインコンピューティング環境に提出する段階を含む。しかしながら、さらなるアクセス要求は任意の方法で提出されてよい(上記を参照されたい)。
【0079】
一実施形態において、コンピューティングリソースへの上記アクセスを承認する上記段階は、セカンダリコンピューティング環境によって提供された署名に従って、メインコンピューティング環境によってさらなるアクセス要求を検証する段階を含む。しかしながら、さらなるアクセス要求は、任意の方法で署名に従って検証されてよい(例えば、署名を再生し、それを受信したものと比較することによって、及び受信した署名を、以前に保存されたその正しい値と比較することによって等)。
【0080】
一実施形態において、コンピューティングリソースへの上記アクセスを承認する上記段階は、結果インジケータの上記記憶の上記検出に応じて、メインコンピューティング環境によって、有効期間を有する署名を生成する段階を含む。しかしながら、有効期間は任意のタイプのものであってよい(例えば、任意の値を有する、例えば有効期間単独、署名時刻及び署名期間等のその任意の指示によって定義された、署名に埋め込まれた、及びメインコンピューティング環境に記憶されたもの等)。
【0081】
一実施形態において、コンピューティングリソースへの上記アクセスを承認する上記段階は、セカンダリコンピューティング環境によって提供された署名の有効期間に従って、メインコンピューティング環境によってさらなるアクセス要求を検証する段階を含む。しかしながら、有効期間は任意の方法で使用されてよい(例えば、単に有効期間を現在の時刻と比較することによって、及びワークロードが高い場合に特定の遅延を許容することによって、等)。
【0082】
一実施形態において、完全性条件を検証する上記段階は、メインコンピューティング環境によって、結果インジケータを生成するプロセスの識別子を検証する段階を含む。しかしながら、この検証は任意の方法で実行されてよい(例えば、結果インジケータのメタデータを読み出すことによって、及びオペレーティングシステムに問い合わせることによって、等)。
【0083】
一実施形態において、完全性条件を検証する上記段階は、メインコンピューティング環境によって、アクセス要求の上記検証のポジティブな結果及び結果インジケータの上記記憶の間の遅延を検証する段階を含む。しかしながら、遅延は任意の方法で完全性条件を検証するのに使用されてよい(例えば、単に遅延を任意の最大許容値と比較することによって、及びワークロードが高い場合に特定の追加の遅延を許容することによって、等)。
【0084】
一実施形態において、完全性条件を検証する上記段階は、メインコンピューティング環境によって、結果インジケータの上記記憶及び現在の時刻の間の遅延を検証する段階を含む。しかしながら、このさらなる遅延は任意の方法で完全性条件を検証するのに使用されてよい(例えば、単に遅延を任意の最大許容値と比較することによって、及びワークロードが高い場合に特定の追加の遅延を許容することによって、等)。
【0085】
一実施形態において、完全性条件を検証する上記段階は、メインコンピューティング環境によって、セカンダリコンピューティング環境のメモリスペースのコンテンツを検証する段階を含む。しかしながら、メモリスペースのコンテンツは任意の方法で検証されてよい(例えば、ファイルの数、ファイルの名称、及びファイルの作成者等に従って)。
【0086】
一実施形態において、完全性条件を検証する上記段階は、メインコンピューティング環境によって、セカンダリコンピューティング環境において実行しているプロセスを検証する段階を含む。しかしながら、プロセスは任意の方法で検証されてよい(例えば、それらの数、タイプ、識別子、及び親等に従って)。
【0087】
一実施形態において、コンピューティングリソースがコンピューティングシステムによって実装される。しかしながら、コンピューティングリソースは任意の方法でコンピューティングシステムによって実装されてよい(例えば、コンピューティングシステム全体、その中で実行するアプリケーション、及びその中に記憶された情報等によって与えられる)。
【0088】
一実施形態において、コンピューティングリソースは1つ又は複数のさらなるコンピューティングシステムによって実装される。しかしながら、さらなるコンピューティングシステムは、任意の数であってよく、任意のタイプ(例えば、ホスト、サーバ、及び仮想マシン等)であってよく、任意の方法でコンピューティングシステムに連結されてよい(例えば、任意のローカル、ワイドエリア、グローバル、セルラ、又は衛星ネットワークを介してそれらの間で通信し、任意のタイプの有線及び/又は無線接続を利用する);また、コンピューティングリソースは、任意の方法でさらなるコンピューティングシステムによって実装されてよい(例えば、さらなるコンピューティングシステムぜんたい、その中で実行しているアプリケーション、その中に記憶された情報、及びそれらの任意の組み合わせ等によって与えられる)。
【0089】
概ね、同等の方法を用いて同じ解決手段が実装された(より多くの段階又はその一部分の同じ機能を有する類似の段階を使用すること、いくつかの本質的でない段階を除去する又はさらなる任意の段階を追加することによって)場合、類似の検討事項が適用される;また、段階は、異なる順序で、同時に、又は交互の方式で(少なくとも部分的に)実行されてよい。
【0090】
一実施形態は、コンピューティングシステムに上述の方法を実行させるように構成されたコンピュータプログラムを提供する。一実施形態は、1つ又は複数のコンピュータ可読記憶媒体に集合的に記憶されたプログラム命令を有する上記1つ又は複数のコンピュータ可読記憶媒体を備えるコンピュータプログラム製品を提供し、プログラム命令は、コンピューティングシステムに同じ方法を実行させるためにコンピューティングシステムによって読み出し可能である。しかしながら、コンピュータプログラムは、スタンドアロンモジュールとして、既存のソフトウェアアプリケーション(例えば、アクセス制御アプリケーション)のためのプラグインとして、又は その中に直接実装されてよい。また、コンピュータプログラムは任意のコンピューティングシステム上で実行されてよい(以下を参照されたい)。いずれの場合も、本開示の一実施形態による解決手段は、さらにはハードウェア構造(例えば、半導体材料の1つ又は複数のチップに統合された電子回路によって)で、又は、好適にプログラミング又は別様に構成されたソフトウェア及びハードウェアの組み合わせで実装されるのに適している。
【0091】
一実施形態は、上記の方法の段階を実行するように構成された手段を備えるシステムを提供する。一実施形態は、上記の方法の各段階を実行するための回路(すなわち、例えば、ソフトウェアによって好適に構成された任意のハードウェア)を備えるシステムを提供する。しかしながら、システムは、任意のタイプのものであってよく(例えば、物理マシン、仮想マシン、及び物理/仮想マシンのプール等)、コンピューティングリソースへのアクセスを要求している任意の数及びタイプのクライアントと相互作用してよい(例えば、任意のタイプの有線及び/又は無線接続を利用するグローバル、ローカル、セルラ、又は衛星型等の任意のネットワークを介して、又はさらにはローカルに等)。
【0092】
概ね、システムが異なる構造を有する、又は同等のコンポーネントを含む、又は他の動作特性を有する場合に、類似の検討事項が適用される。いずれの場合も、そのすべてのコンポーネントはより多くの要素に分けられてよく、又は、2つ又はそれより多いコンポーネントが単一の要素へと共に組み合わされてよい;また、対応する動作の並行した実行をサポートするために各コンポーネントが複製されてよい。また、別段の指定がない限り、異なるコンポーネント間のインタラクションは、概して、連続である必要がなく、1つ又は複数の媒介物を通して直接的又は間接的のいずれかであってよい。フローチャート及びブロック図に関して、本開示の図におけるフローチャート及びブロック図は、本発明の様々な実施形態によるシステム、方法、及びコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能、及び動作を例示する。これに関して、フローチャート又はブロック図における各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む命令のモジュール、セグメント、又は一部を表し得る。いくつかの代替的な実装形態において、ブロックに記されている機能は、図面に記されている順序と異なる順序で行われ得る。例えば、連続して示される2つのブロックは、実際には、実質的に同時に実行され得るか、又は、関与する機能に応じてブロックが逆の順序で実行されることもあり得る。ブロック図及び/又はフローチャート図の各ブロック、及び、ブロック図及び/又はフローチャート図のブロックの組み合わせは、指定された機能又は動作を実行する、又は、専用ハードウェア及びコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムにより実装され得ることにも留意されたい。
【0093】
図5を参照すると、システム又はコンピュータ環境1000が、一般的なコンピューティングデバイスの形態で示されるコンピュータ
図1010を含む。例えば、本発明の方法は、例えば、概してメモリ1030、より具体的にはコンピュータ可読記憶媒体1050と称される、コンピュータ可読ストレージデバイス、又はコンピュータ可読記憶媒体上に具現化される、プログラム命令を含むプログラム1060に具現化されてよい。そのようなメモリ及び/又はコンピュータ可読記憶媒体又はその両方は、不揮発性メモリ又は不揮発性ストレージを含む。例えば、メモリ1030は、RAM(Random Access Memory)又はROM(Read Only Memory)等の記憶媒体1034と、キャッシュメモリ1038とを含むことができる。プログラム1060は、(プログラム段階、コード、又はプログラムコードを実行するために)コンピュータシステム1010のプロセッサ1020で実行可能である。データ1114を含むデータベース1110として、さらなるデータストレージが具現化されてもよい。コンピュータシステム1010及びプログラム1060は、ユーザにとってローカルであっても、リモートサービスとして(例えば、クラウドベースのサービスとして)提供されてもよい、コンピュータ及びプログラムの一般的な表現であり、通信ネットワーク1200を使用して(例えば、ネットワーク、インターネット、又はクラウドサービスと相互作用して)アクセス可能なウェブサイトを使用して、さらなる例で提供されてよい。本明細書において、コンピュータシステム1010はまた、コンピュータデバイスもしくはデバイスに含まれるコンピュータ、例えばラップトップコンピュータ又はデスクトップコンピュータ等、又は、1つ又は複数のサーバを、単独で又はデータセンタの一部として一般的に表すことが理解される。コンピュータシステムは、ネットワークアダプタ/インタフェース1026及び入出力(I/O)インタフェース1022を含むことができる。I/Oインタフェース1022は、コンピュータシステムに接続され得る外部デバイス1074とのデータの入出力を可能にする。ネットワークアダプタ/インタフェース1026は、コンピュータシステム及び通信ネットワーク1200として一般的に示されるネットワークの間で通信を提供し得る。
【0094】
コンピュータ1010は、コンピュータシステムにより実行されている、プログラムモジュール等のコンピュータシステム実行可能命令の一般的なコンテキストで説明されてよい。概して、プログラムモジュールは、特定のタスクを実行する、又は、特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、及び、データ構造等を含み得る。方法の段階と、システムコンポーネント及び技法とは、方法の段階及びシステムの各々のタスクを実行するためのプログラム1060のモジュールに具現化されてよい。モジュールは一般的に、プログラムモジュール1064として図に表される。プログラム1060及びプログラムモジュール1064は、プログラムの特定の段階、ルーチン、サブルーチン、命令、又はコードを実行することができる。
【0095】
本開示の方法は、モバイルデバイス等のデバイス上でローカルに実行されることができるか、又は、例えばリモートにあり得、通信ネットワーク1200を使用してアクセスされることが可能なサーバ1100上でのサービスとして実行されることができる。プログラム又は実行可能命令は、プロバイダによりサービスとして提供されてもよい。コンピュータ1010は、通信ネットワーク1200を介してリンクされるリモート処理デバイスによりタスクが実行される分散型クラウドコンピューティング環境で実践されてよい。分散型クラウドコンピューティング環境では、メモリストレージデバイスを含むローカル及びリモートのコンピュータシステムストレージ媒体の両方にプログラムモジュールが配置されてよい。
【0096】
コンピュータ1010は、様々なコンピュータ可読媒体を含むことができる。そのような媒体は、コンピュータ1010(例えば、コンピュータシステム又はサーバ)によってアクセス可能な任意の利用可能な媒体であってよく、揮発性及び不揮発性の媒体、並びに取り外し可能及び取り外し不可能な媒体の両方を含んでよい。コンピュータメモリ1030は、ランダムアクセスメモリ(RAM)1034及び/又はキャッシュメモリ1038等の、揮発性メモリの形態のさらなるコンピュータ可読媒体を含むことができる。コンピュータ1010は、他の取り外し可能/取り外し不可能な揮発性/不揮発性のコンピュータストレージ媒体、一例では、ポータブルコンピュータ可読記憶媒体1072をさらに含んでよい。一実施形態において、コンピュータ可読記憶媒体1050は、取り外し不可能な不揮発性の磁気媒体に対する読み出し及び書き込みを行うために提供され得る。コンピュータ可読記憶媒体1050は、例えば、ハードドライブとして具現化され得る。例えば、データ1114を記憶し、かつ、処理ユニット1020と通信するための、記憶システム1110(例えば、データベース)として、さらなるメモリ及びデータ記憶装置が提供され得る。データベースは、サーバ1100上に記憶されてもよいし、サーバ1100の一部であってもよい。図示されていないが、取り外し可能不揮発性磁気ディスク(例えば、「フロッピディスク」)からの読み出し、及びこれへの書き込みを行うための磁気ディスクドライブと、CD-ROM、DVD-ROM又は他の光媒体等の取り外し可能不揮発性光ディスクからの読み出し、及びこれへの書き込みを行うための光ディスクドライブとを提供することができる。そのような場合は、各々が1つ又は複数のデータ媒体インタフェースによりバス1014へ接続され得る。以下でさらに図示及び説明するように、メモリ1030は、本発明の実施形態の機能を実行するように構成される1つ又は複数のプログラムモジュールを含み得る少なくとも1つのプログラム製品を含んでよい。
【0097】
本開示で説明する方法は、例えば、プログラム1060と一般的に称される1つ又は複数のコンピュータプログラムに具現化されてよく、コンピュータ可読記憶媒体1050内のメモリ1030に記憶され得る。プログラム1060は、プログラムモジュール1064を含むことができる。プログラムモジュール1064は概して、本明細書で説明するような本発明の実施形態の機能及び/又は方法論を実行することができる。1つ又は複数のプログラム1060は、メモリ1030に記憶され、処理ユニット1020で実行可能である。例として、メモリ1030は、コンピュータ可読記憶媒体1050上にオペレーティングシステム1052、1つ又は複数のアプリケーションプログラム1054、他のプログラムモジュール、及びプログラムデータを記憶してよい。プログラム1060と、コンピュータ可読記憶媒体1050上に記憶されるオペレーティングシステム1052及びアプリケーションプログラム1054とは、処理ユニット1020で同様に実行可能であることが理解される。また、アプリケーション1054及びプログラム1060が、一般的に示されるものであり、本開示で論述する1つ又は複数のアプリケーション及びプログラムのすべてを含んでもよいし、その一部であってもよいこと、又は、その逆であってもよいこと、すなわち、アプリケーション1054及びプログラム1060が、本開示で論述する1つ又は複数のアプリケーション又はプログラムのすべてであってもよいし、その一部であってもよいことが理解される。
【0098】
1つ又は複数のプログラムを1つ又は複数のコンピュータ可読記憶媒体に記憶することで、プログラムがコンピュータ可読記憶媒体に具現化される及び/又は符号化されるようにすることができる。一例では、記憶されたプログラムは、方法を実行するため、又は、コンピュータシステムに1つ又は複数の機能を実行させるために、プロセッサ、又はプロセッサを有するコンピュータシステムで実行するためのプログラム命令を含むことができる。
【0099】
コンピュータ1010は、1つ又は複数の外部デバイス1074、例えばキーボード、ポインティングデバイス、ディスプレイ1080等;ユーザがコンピュータ1010と相互作用することを可能にする1つ又は複数のデバイス;及び/又は、コンピュータ1010が1つ又は複数の他のコンピューティングデバイスと通信することを可能にする任意のデバイス(例えば、ネットワークカード、モデム等)と通信してもよい。そのような通信は、入出力(I/O)インタフェース1022を介して行われ得る。なおもさらに、コンピュータ1010は、ネットワークアダプタ/インタフェース1026を介して、ローカルエリアネットワーク(LAN)、一般的なワイドエリアネットワーク(WAN)、及び/又はパブリックネットワーク(例えば、インターネット)等の1つ又は複数のネットワーク1200と通信することができる。図示されるように、ネットワークアダプタ1026は、バス1014を介してコンピュータ1010の他のコンポーネントと通信する。示されてはいないが、他のハードウェア及び/又はソフトウェアコンポーネントがコンピュータ1010と併せて使用され得ることが理解されるべきである。例には、マイクロコード、デバイスドライバ1024、冗長処理ユニット、外部ディスクドライブアレイ、RAIDシステム、テープドライブ、及びデータアーカイブ記憶システム等が含まれるが、これらに限定されない。
【0100】
コンピュータ、又はコンピュータ1010上で実行されているプログラムは、通信ネットワーク1200として具現化される1つ又は複数の通信ネットワークを介して、サーバ1100として具現化されるサーバと通信してよいことが理解される。通信ネットワーク1200は、例えば、無線、有線、又は光ファイバを含む、伝送媒体及びネットワークリンク、並びに、ルータ、ファイアウォール、スイッチ、及びゲートウェイコンピュータを含んでよい。通信ネットワークは、有線、無線通信リンク、又は光ファイバケーブル等の接続を含んでよい。通信ネットワークは、様々なプロトコル、例えばライトウェイトディレクトリアクセスプロトコル(LDAP)、トランスポートコントロールプロトコル/インターネットプロトコル(TCP/IP)、ハイパーテキストトランスポートプロトコル(HTTP)、ワイヤレスアプリケーションプロトコル(WAP)等を使用して互いに通信する、インターネット等のネットワーク及びゲートウェイの世界的な集合を表す場合がある。ネットワークはまた、例えばイントラネット、ローカルエリアネットワーク(LAN)、又はワイドエリアネットワーク(WAN)等の複数の異なるタイプのネットワークを含んでよい。
【0101】
一例では、コンピュータは、インターネットを使用してウェブ(ワールドワイドウェブ)上のウェブサイトにアクセスし得るネットワークを使用することができる。一実施形態において、モバイルデバイスを含むコンピュータ1010は、インターネットを含み得る通信システムもしくはネットワーク1200、又は、公衆交換電話網(PSTN)、例えば、セルラネットワークを使用することができる。PSTNは、電話回線、光ファイバケーブル、伝送リンク、セルラネットワーク、及び通信衛星を含んでよい。インターネットは、例えば携帯電話又はラップトップコンピュータを使用して、テキストメッセージ(SMS)、(SMSに関連する)マルチメディアメッセージングサービス(MMS)、電子メール、又はウェブブラウザを介して検索エンジンにクエリを送信する等、多数の検索技法及びテキスティング技法を容易にする場合がある。検索エンジンは、検索結果、すなわち、クエリに対応するウェブサイト、文書、又は他のダウンロード可能なデータへのリンクを取得し、同様に、例えば、検索結果のウェブページとして、デバイスを介してユーザに検索結果を提供することができる。
【0102】
本発明は、任意の可能な技術的詳細レベルで統合化されたシステム、方法及び/又はコンピュータプログラム製品であってもよい。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(又は複数のコンピュータ可読記憶媒体)を含み得る。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持及び記憶し得る有形デバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又はこれらの任意の好適な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストは以下を含む:ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM:random access memory)、リードオンリメモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memory又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM:static random access memory)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM:compact disc read-only memory)、デジタルバーサタイルディスク(DVD:digital versatile disk)、メモリスティック、フロッピディスク、命令が記録されているパンチカード又は溝の中の隆起構造等の機械的にエンコードされるデバイス、及びこれらの任意の好適な組み合わせ。コンピュータ可読記憶媒体は、本明細書において使用される場合、電波又は他の自由に伝搬する電磁波、導波路又は他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又は電線を通じて伝送される電気信号な等の、一時的な信号それ自体と解釈されるべきではない。
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、それぞれのコンピューティング/処理デバイスに、又は、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又は無線ネットワークを介して、外部コンピュータ又は外部ストレージデバイスに、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを備え得る。各コンピューティング/処理デバイス内のネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するために転送する。
本発明の動作を実行するコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データであってもよく、又はSmalltalk(登録商標)、C++又は同様のもの等のオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語等の手続き型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組み合わせで記述したソースコード又はオブジェクトコードのいずれかであってもよい。コンピュータ可読プログラム命令は、スタンドアロンのソフトウェアパッケージとして、ユーザのコンピュータ上で全体を実行すること、ユーザのコンピュータ上で一部分を実行することができ、ユーザのコンピュータ上で一部分を、リモートコンピュータ上で一部分を実行すること、又は、リモートコンピュータ又はサーバ上で全体を実行することができる。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてよく、又はその接続が、(例えば、インターネットサービスプロバイダを使用したインターネットを介して)外部コンピュータに対して行われてよい。いくつかの実施形態において、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行して、電子回路をパーソナライズし得る。
本発明の態様は、本明細書において、本発明の実施形態による方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図及び/又はブロック図を参照して説明されている。フローチャート図及び/又はブロック図の各ブロック、及びフローチャート図及び/又はブロック図におけるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得ることが理解されよう。
【0103】
コンピュータ可読プログラム命令は、マシンを生成するのに、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサに提供されてもよく、それにより、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行する命令は、フローチャート及び/又はブロック図のブロック又は複数のブロックにおいて指定された機能/動作を実装する手段を作成する。これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラマブルデータ処理装置及び/又は他のデバイスに特定の方式で機能するように指示することができるコンピュータ可読記憶媒体に記憶されてよく、それにより、その中に命令が記憶されたコンピュータ可読記憶媒体が、フローチャート及び/又はブロック図の1つ又は複数のブロックで指定された機能/動作の態様を実装する命令を含む製品を有する。
【0104】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、又は、他のデバイスにロードされて、コンピュータ、他のプログラマブル装置、又は、他のデバイス上で一連の動作段階を実行させて、コンピュータ実装プロセスを作ることもでき、それにより、コンピュータ、他のプログラマブル装置、又は、他のデバイス上で実行される命令が、フローチャート及び/又はブロック図のブロック又は複数のブロックにおいて指定された機能/動作を実装するようになる。
【0105】
図におけるフローチャート及びブロック図は、本発明の様々な実施形態による、システム、方法、及びコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能、及び動作を例示する。これに関して、フローチャート又はブロック図における各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む命令のモジュール、セグメント、又は一部を表し得る。いくつかの代替的な実装形態において、ブロックに記されている機能は、図面に記されている順序と異なる順序で行われ得る。例えば、連続して示される2つのブロックは、実際には、実質的に同時に実行され得るか、又は、関与する機能に応じてブロックが逆の順序で実行されることもあり得る。ブロック図及び/又はフローチャート図の各ブロック、及び、ブロック図及び/又はフローチャート図におけるブロックの組み合わせは、指定された機能又は動作を実行する、又は専用ハードウェア及びコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムにより実装され得ることにも留意されたい。
【0106】
本開示は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書で引用される教示内容の実装形態は、クラウドコンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在既知又は今後開発される任意の他のタイプのコンピューティング環境と併せて実装されることが可能である。
【0107】
クラウドコンピューティングは、管理の労力又はサービスのプロバイダとの対話を最小限に抑えながら迅速にプロビジョニング及びリリースされ得る構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールに対する便利なオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル及び少なくとも4つの展開モデルを含み得る。
【0108】
特性は以下のとおりである。
【0109】
オンデマンドセルフサービス:クラウドコンシューマは、サービスプロバイダとの人的対話を要することなく、必要に応じて自動的に、サーバ時間及びネットワークストレージ等のコンピューティング能力を一方的にプロビジョニングすることができる。
【0110】
幅広いネットワークアクセス:能力は、ネットワークを介して利用可能であり、また、異種混交のシンクライアントプラットフォーム又はシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、及びPDA(登録商標))による使用を促進する標準的なメカニズムを通じてアクセスされる。
【0111】
リソースプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数のコンシューマにサービス提供するようにプールされており、様々な物理リソース及び仮想リソースが需要に従って動的に割り当て及び再割り当てされる。コンシューマは、概して、提供されるリソースの正確な位置に対する制御又は知識を有しないが、より高い抽象化レベル(例えば、国、州、又はデータセンタ)では位置を指定することが可能であり得るという点において、ある種の位置独立性がある。
【0112】
迅速な弾力性:能力は迅速に且つ伸縮自在に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトすることも、迅速にリリースして素早くスケールインすることもできる。多くの場合、コンシューマにとって、プロビジョニングに利用可能な能力は無制限に見え、任意の時点において任意の量で購入できる。
【0113】
計測サービス:クラウドシステムは、ある抽象化レベルでサービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザアカウント)に適した計測能力を活用することにより、リソースの使用を自動的に制御及び最適化する。リソース使用率は、モニタリング、制御、及び、報告され、こうすることで、利用されるサービスのプロバイダ及びコンシューマの両方に透明性を提供することができる。
【0114】
サービスモデルは以下のとおりである。
【0115】
サービスとしてのソフトウェア(SaaS):コンシューマに提供される能力は、クラウドインフラストラクチャ上で実行しているプロバイダのアプリケーションを使用することである。アプリケーションには、ウェブブラウザ(例えば、ウェブベースの電子メール)等のシンクライアントインタフェースを介して、様々なクライアントデバイスからアクセス可能である。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、ストレージ、又は、個々のアプリケーション能力さえも含む基礎となるクラウドインフラストラクチャを管理又は制御しないが、限定的なユーザ固有のアプリケーション構成設定は例外となる場合がある。
【0116】
サービスとしてのプラットフォーム(PaaS):コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語及びツールを使用して作成された、コンシューマが作成又は取得したアプリケーションをクラウドインフラストラクチャ上に展開することである。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、又はストレージを含む基礎となるクラウドインフラストラクチャを管理又は制御しないが、展開されたアプリケーション及び、場合によっては、アプリケーションホスティング環境の構成を制御する。
【0117】
サービスとしてのインフラストラクチャ(IaaS):コンシューマに提供される能力は、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティングリソースをプロビジョニングすることであり、コンシューマは、オペレーティングシステム及びアプリケーションを含み得る任意のソフトウェアを展開し、実行させることが可能である。コンシューマは、基礎となるクラウドインフラストラクチャを管理又は制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーションを制御し、場合によっては、選択されたネットワーキングコンポーネント(例えば、ホストファイアウォール)を限定的に制御する。
【0118】
展開モデルは以下のとおりである。
【0119】
プライベートクラウド:クラウドインフラストラクチャは、組織のためだけに運用される。それは組織又はサードパーティによって管理されてよく、オンプレミス又はオフプレミスに存在してよい。
【0120】
コミュニティクラウド:クラウドインフラストラクチャは、複数の組織により共有されており、共有の関心事(例えば、ミッション、セキュリティ要件、ポリシ、及び法令順守に関わる考慮事項)を有する特定のコミュニティをサポートする。コミュニティクラウドは、それらの組織又はサードパーティによって管理されてよく、オンプレミス又はオフプレミスで存在してよい。
【0121】
パブリッククラウド:クラウドインフラストラクチャは、一般市民又は大規模業界団体が利用でき、クラウドサービスを販売する組織が所有している。
【0122】
ハイブリッドクラウド:このクラウドインフラストラクチャは、2又はそれより多くのクラウド(プライベート、コミュニティ、又はパブリック)の複合体であり、これは、一意的なエンティティのままであるが、データ及びアプリケーションのポータビリティ(例えば、クラウド間の負荷分散のためのクラウドバースト)を可能にする標準化された技術又は独自技術によって共に結合される。
【0123】
クラウドコンピューティング環境は、ステートレス性、低結合性、モジュール性、及び意味的相互運用性に重点を置いたサービス指向型である。クラウドコンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0124】
ここで
図6を参照すると、例示的なクラウドコンピューティング環境2050が図示される。示されているように、クラウドコンピューティング環境2050は、例えば、携帯用情報端末(PDA)もしくはセルラ電話2054A、デスクトップコンピュータ2054B、ラップトップコンピュータ2054C、及び/又は自動車コンピュータシステム2054N等の、クラウドコンシューマにより使用されるローカルコンピューティングデバイスが通信し得る1つ又は複数のクラウドコンピューティングノード2010を含む。ノード2010は、互いに通信し得る。それらは、本明細書の上記で説明されたプライベートクラウド、コミュニティクラウド、パブリッククラウド、又はハイブリッドクラウド、又はそれらの組み合わせ等の1つ又は複数のネットワークに、物理的又は仮想的にグループ化(図示せず)され得る。これにより、クラウドコンピューティング環境2050は、インフラストラクチャ、プラットフォーム及び/又はソフトウェアを、クラウドコンシューマがそのためにローカルコンピューティングデバイス上にリソースを維持する必要がないサービスとして提供することが可能となる。
図6に示すコンピューティングデバイス2054A~Nのタイプは、単に例示を意図するものであり、コンピューティングノード2010及びクラウドコンピューティング環境2050は、任意のタイプのネットワーク及び/又はネットワークアドレス可能接続を介して(例えば、ウェブブラウザを使用して)、任意のタイプのコンピュータ化されたデバイスと通信できることが理解される。
【0125】
ここで
図7を参照すると、クラウドコンピューティング環境2050(
図6)によって提供される機能抽象化層のセットが示される。
図7に示されるコンポーネント、レイヤ、機能は、例示することを意図するに過ぎず、発明の実施形態は、これに限定されないことが、予め理解されるべきである。図示のように、以下のレイヤ及び対応する機能が提供される。
【0126】
ハードウェア及びソフトウェア層2060が、ハードウェアコンポーネント及びソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム2061、RISC(Reduced Instruction Set Computer:縮小命令セットコンピュータ)アーキテクチャベースのサーバ2062、サーバ2063、ブレードサーバ2064、ストレージデバイス2065、及び、ネットワーク及びネットワーキングコンポーネント2066が含まれる。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア2067及びデータベースソフトウェア2068を含む。
【0127】
仮想化層2070は、抽象化層を提供する。抽象化層から、以下の仮想エンティティの例が提供され得る:仮想サーバ2071、仮想ストレージ2072、仮想プライベートネットワークを含む仮想ネットワーク2073、仮想アプリケーション及びオペレーティングシステム2074、ならびに、仮想クライアント2075。
【0128】
一例では、管理層2080が下記の機能を提供してよい。リソースプロビジョニング2081は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソース及び他のリソースの動的な調達を提供する。計測及び価格設定2082は、リソースがクラウドコンピューティング環境内で利用される際のコスト追跡と、これらのリソースの消費に対する請求又は送り状作成とを提供する。一例では、これらのリソースは、アプリケーションソフトウェアライセンスを含み得る。セキュリティは、クラウドコンシューマ及びタスクについてのアイデンティティ検証、並びに、データ及び他のリソースの保護を提供する。ユーザポータル2083は、コンシューマ及びシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理2084は、必要なサービスレベルが満たされるように、クラウドコンピューティングリソースの配分及び管理を提供する。サービスレベル合意(SLA)計画及び履行2085は、将来の要件がSLAに従って予期されるクラウドコンピューティングリソースの事前の取り決め及び調達を提供する。
【0129】
ワークロード層2090は、クラウドコンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロード及び機能の例としては、マッピング及びナビゲーション2091、ソフトウェア開発及びライフサイクル管理2092、仮想クラスルーム教育配信2093、データ分析プロセス2094、トランザクション処理2095、及び1つ又は複数のコンピューティングリソースへのアクセスの制御2096が挙げられる。
【0130】
本発明の様々な実施形態の説明は例示を目的として提示されており、その説明が包括的であることも、又は開示された実施形態に限定されることも意図されてはいない。同様に、本明細書で説明する本開示の実施形態の特徴又は機能の例は、特定の実施形態の説明に使用されるか、例として列挙されるかに関わらず、本明細書で説明する本開示の実施形態を限定することを意図するものでも、本明細書で説明する例に本開示を限定することを意図するものでもない。説明されている実施形態の範囲及び主旨から逸脱することのない多くの修正及び変形が、当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の適用、もしくは市場に見られる技術に対する技術的改善点を最も良く説明するように、又は、当業者が本明細書に開示された実施形態を理解できるように選択されている。
【手続補正書】
【提出日】2024-05-09
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
1つ又は複数のコンピューティングリソースへのアクセスを制御するための方法であって、前記方法が、コンピューティングシステムの制御下で:
前記コンピューティングシステムにおいて実装されるセカンダリコンピューティング環境によって、前記コンピューティングリソースにアクセスするためのアクセス要求を受信する段階、前記セカンダリコンピューティング環境は前記コンピューティングリソースから隔離されている;
前記セカンダリコンピューティング環境によって前記アクセス要求を検証する段階;
前記コンピューティングシステムにおいて実装されるメインコンピューティング環境によって、前記アクセス要求の前記検証のポジティブな結果の表示を検出する段階、前記メインコンピューティング環境が前記セカンダリコンピューティング環境から隔離されている;
前記ポジティブな結果の前記表示の前記検出に応じて、前記メインコンピューティング環境によって前記セカンダリコンピューティング環境の完全性条件を検証する段階;及び
前記完全性条件の前記検証のポジティブな結果に応じて、前記メインコンピューティング環境によって、前記セカンダリコンピューティング環境に対して前記コンピューティングリソースへの前記アクセスを承認する段階
を備える、方法。
【請求項2】
前記メインコンピューティング環境は、前記コンピューティングシステムのオペレーティングシステムによって定義され、前記セカンダリコンピューティング環境は、前記オペレーティングシステム上で実行しているコンテナによって定義される、請求項1に記載の方法。
【請求項3】
前記コンピューティングリソースへの前記アクセスを承認する前記段階が:
前記完全性条件の前記検証の前記ポジティブな結果に応じて、前記メインコンピューティング環境によって証明書を生成する段階;
前記メインコンピューティング環境から前記セカンダリコンピューティング環境へと前記証明書を渡す段階;
前記証明書に応じて、前記セカンダリコンピューティング環境によって、前記コンピューティングリソースにアクセスするためのさらなるアクセス要求を前記メインコンピューティング環境に提出する段階;
前記セカンダリコンピューティング環境によって提供された前記証明書に従って、前記メインコンピューティング環境によって前記さらなるアクセス要求を検証する段階;及び
前記さらなるアクセス要求の前記検証のポジティブな結果に応じて、前記メインコンピューティング環境によって、前記セカンダリコンピューティング環境に対して前記コンピューティングリソースへの前記アクセスを承認する段階
有する、請求項
1に記載の方法。
【請求項4】
前記方法が:
前記アクセス要求の前記検証の前記ポジティブな結果に応じて、前記セカンダリコンピューティング環境によって、結果インジケータを交換メモリ領域に記憶する段階;及び
前記メインコンピューティング環境によって、前記結果インジケータの前記記憶を検出することによって、前記ポジティブな結果の前記表示を検出する段階
を備える、請求項
1に記載の方法。
【請求項5】
前記方法が:
前記アクセス要求の前記検証の前記ポジティブな結果に応じて、前記セカンダリコンピューティング環境によって、公開鍵及び秘密鍵のペアを生成する段階;及び
前記セカンダリコンピューティング環境によって、前記公開鍵を含む前記結果インジケータを前記交換メモリ領域に記憶する段階
を備える、請求項4に記載の方法。
【請求項6】
前記完全性条件を検証する前記段階が:
前記メインコンピューティング環境によって前記公開鍵の形式的な訂正を検証する段階
を有する、請求項5に記載の方法。
【請求項7】
前記コンピューティングリソースへの前記アクセスを承認する前記段階が:
前記結果インジケータの前記記憶の前記検出に応じて、前記メインコンピューティング環境によって、前記結果インジケータの署名を、その秘密鍵を用いて生成する段階;
前記メインコンピューティング環境によって前記署名を前記交換メモリ領域に記憶する段階;
前記セカンダリコンピューティング環境によって前記署名の前記記憶を検出する段階;
前記署名の前記記憶の前記検出に応じて、前記セカンダリコンピューティング環境によって、前記コンピューティングリソースにアクセスするためのさらなるアクセス要求を前記メインコンピューティング環境に提出する段階;
前記セカンダリコンピューティング環境によって提供された前記署名に従って、前記メインコンピューティング環境によって前記さらなるアクセス要求を検証する段階;及び
前記さらなるアクセス要求の前記検証のポジティブな結果に応じて、前記メインコンピューティング環境によって、前記セカンダリコンピューティング環境に対して前記コンピューティングリソースへの前記アクセスを承認する段階
を有する、請求項
4に記載の方法。
【請求項8】
前記コンピューティングリソースへの前記アクセスを承認する前記段階が:
前記結果インジケータの前記記憶の前記検出に応じて、前記メインコンピューティング環境によって、有効期間を有する前記署名を生成する段階;及び
前記セカンダリコンピューティング環境によって提供された前記署名の前記有効期間に従って、前記メインコンピューティング環境によって前記さらなるアクセス要求を検証する段階
を有する、請求項7に記載の方法。
【請求項9】
前記完全性条件を検証する前記段階が:
前記メインコンピューティング環境によって前記結果インジケータを生成するプロセスの識別子を検証する段階
を有する、請求項
4に記載の方法。
【請求項10】
前記完全性条件を検証する前記段階が:
前記メインコンピューティング環境によって、前記アクセス要求の前記検証の前記ポジティブな結果及び前記結果インジケータの前記記憶の間の遅延を検証する段階
を有する、請求項
4に記載の方法。
【請求項11】
前記完全性条件を検証する前記段階が:
前記メインコンピューティング環境によって、前記結果インジケータの前記記憶及び現在の時刻の間の遅延を検証する段階
を有する、請求項
4に記載の方法。
【請求項12】
前記完全性条件を検証する前記段階が:
前記メインコンピューティング環境によって、前記セカンダリコンピューティング環境のメモリスペースのコンテンツを検証する段階
を有する、請求項
1に記載の方法。
【請求項13】
前記完全性条件を検証する前記段階が:
前記メインコンピューティング環境によって、前記セカンダリコンピューティング環境において実行しているプロセスを検証する段階
を有する、請求項
1に記載の方法。
【請求項14】
前記コンピューティングリソースが前記コンピューティングシステムによって実装されている、請求項
1に記載の方法。
【請求項15】
前記コンピューティングリソースが1つ又は複数のさらなるコンピューティングシステムによって実装されている、請求項
1に記載の方法。
【請求項16】
1つ又は複数のコンピューティングリソースへのアクセスを制御するためのコンピュータプログラ
ムであって、前記コンピュータプログラ
ムは、プログラム命
令を備え、前記プログラム命令は、コンピューティングシステムに:
コンピュータを使用して、前記コンピューティングシステムにおいて実装されたセカンダリコンピューティング環境によって、前記コンピューティングリソースにアクセスするためのアクセス要求を受信する手順、前記セカンダリコンピューティング環境は、前記コンピューティングリソースから隔離されている;
前記コンピュータを使用して、前記セカンダリコンピューティング環境によって前記アクセス要求を検証する手順;
前記コンピュータを使用して、前記コンピューティングシステムにおいて実装されるメインコンピューティング環境によって、前記アクセス要求の前記検証のポジティブな結果の表示を検出する手順、前記メインコンピューティング環境は、前記セカンダリコンピューティング環境から隔離されている;
前記コンピュータを使用して、前記ポジティブな結果の前記表示を前記検出したことに応じて、前記メインコンピューティング環境によって、前記セカンダリコンピューティング環境の完全性条件を検証する手順;及び
前記完全性条件の前記検証のポジティブな結果に応じて、前記コンピュータを使用して、前記メインコンピューティング環境によって、前記セカンダリコンピューティング環境に対して前記コンピューティングリソースへの前記アクセスを承認する手順
を有する方法を実行させるために前記コンピューティングシステムによって読み出し可能である、コンピュータプログラ
ム。
【請求項17】
1つ又は複数のコンピューティングリソースへのアクセスを制御するためのコンピューティングシステムであって、前記コンピューティングシステムが:
前記コンピューティングシステムにおいて実装されるセカンダリコンピューティング環境、前記セカンダリコンピューティング環境は前記コンピューティングリソースから隔離されている
を備え、ここで前記セカンダリコンピューティング環境は:
前記コンピューティングリソースにアクセスするためのアクセス要求を受信するためのインタフェース;
前記アクセス要求を検証するためのセカンダリオーサライザ;及び
前記コンピューティングシステムにおいて実装されるメインコンピューティング環境、前記メインコンピューティング環境は前記セカンダリコンピューティング環境から隔離されている
を有し、ここで前記メインコンピューティング環境は:
前記アクセス要求の前記検証のポジティブな結果の表示を検出するためのモニタ;
前記ポジティブな結果の前記表示を前記検出したことに応じて、前記セカンダリコンピューティング環境の完全性条件を検証するための検証装置;及び
前記完全性条件の前記検証のポジティブな結果に応じて、前記セカンダリコンピューティング環境に対して前記コンピューティングリソースへの前記アクセスを承認するためのメインオーサライザ
を含む、コンピューティングシステム。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0130
【補正方法】変更
【補正の内容】
【0130】
本発明の様々な実施形態の説明は例示を目的として提示されており、その説明が包括的であることも、又は開示された実施形態に限定されることも意図されてはいない。同様に、本明細書で説明する本開示の実施形態の特徴又は機能の例は、特定の実施形態の説明に使用されるか、例として列挙されるかに関わらず、本明細書で説明する本開示の実施形態を限定することを意図するものでも、本明細書で説明する例に本開示を限定することを意図するものでもない。説明されている実施形態の範囲及び主旨から逸脱することのない多くの修正及び変形が、当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の適用、もしくは市場に見られる技術に対する技術的改善点を最も良く説明するように、又は、当業者が本明細書に開示された実施形態を理解できるように選択されている。
(他の可能な項目)
(項目1)
1つ又は複数のコンピューティングリソースへのアクセスを制御するための方法であって、前記方法が、コンピューティングシステムの制御下で:
前記コンピューティングシステムにおいて実装されるセカンダリコンピューティング環境によって、前記コンピューティングリソースにアクセスするためのアクセス要求を受信する段階、前記セカンダリコンピューティング環境は前記コンピューティングリソースから隔離されている;
前記セカンダリコンピューティング環境によって前記アクセス要求を検証する段階;
前記コンピューティングシステムにおいて実装されるメインコンピューティング環境によって、前記アクセス要求の前記検証のポジティブな結果の表示を検出する段階、前記メインコンピューティング環境が前記セカンダリコンピューティング環境から隔離されている;
前記ポジティブな結果の前記表示の前記検出に応じて、前記メインコンピューティング環境によって前記セカンダリコンピューティング環境の完全性条件を検証する段階;及び
前記完全性条件の前記検証のポジティブな結果に応じて、前記メインコンピューティング環境によって、前記セカンダリコンピューティング環境に対して前記コンピューティングリソースへの前記アクセスを承認する段階
を備える、方法。
(項目2)
前記メインコンピューティング環境は、前記コンピューティングシステムのオペレーティングシステムによって定義され、前記セカンダリコンピューティング環境は、前記オペレーティングシステム上で実行しているコンテナによって定義される、項目1に記載の方法。
(項目3)
前記コンピューティングリソースへの前記アクセスを承認する前記段階が:
前記完全性条件の前記検証の前記ポジティブな結果に応じて、前記メインコンピューティング環境によって証明書を生成する段階;
前記メインコンピューティング環境から前記セカンダリコンピューティング環境へと前記証明書を渡す段階;
前記証明書に応じて、前記セカンダリコンピューティング環境によって、前記コンピューティングリソースにアクセスするためのさらなるアクセス要求を前記メインコンピューティング環境に提出する段階;
前記セカンダリコンピューティング環境によって提供された前記証明書に従って、前記メインコンピューティング環境によって前記さらなるアクセス要求を検証する段階;及び
前記さらなるアクセス要求の前記検証のポジティブな結果に応じて、前記メインコンピューティング環境によって、前記セカンダリコンピューティング環境に対して前記コンピューティングリソースへの前記アクセスを承認する段階
有する、項目1または2に記載の方法。
(項目4)
前記方法が:
前記アクセス要求の前記検証の前記ポジティブな結果に応じて、前記セカンダリコンピューティング環境によって、結果インジケータを交換メモリ領域に記憶する段階;及び
前記メインコンピューティング環境によって、前記結果インジケータの前記記憶を検出することによって、前記ポジティブな結果の前記表示を検出する段階
を備える、項目1から3のいずれか一項に記載の方法。
(項目5)
前記方法が:
前記アクセス要求の前記検証の前記ポジティブな結果に応じて、前記セカンダリコンピューティング環境によって、公開鍵及び秘密鍵のペアを生成する段階;及び
前記セカンダリコンピューティング環境によって、前記公開鍵を含む前記結果インジケータを前記交換メモリ領域に記憶する段階
を備える、項目4に記載の方法。
(項目6)
前記完全性条件を検証する前記段階が:
前記メインコンピューティング環境によって前記公開鍵の形式的な訂正を検証する段階
を有する、項目5に記載の方法。
(項目7)
前記コンピューティングリソースへの前記アクセスを承認する前記段階が:
前記結果インジケータの前記記憶の前記検出に応じて、前記メインコンピューティング環境によって、前記結果インジケータの署名を、その秘密鍵を用いて生成する段階;
前記メインコンピューティング環境によって前記署名を前記交換メモリ領域に記憶する段階;
前記セカンダリコンピューティング環境によって前記署名の前記記憶を検出する段階;
前記署名の前記記憶の前記検出に応じて、前記セカンダリコンピューティング環境によって、前記コンピューティングリソースにアクセスするためのさらなるアクセス要求を前記メインコンピューティング環境に提出する段階;
前記セカンダリコンピューティング環境によって提供された前記署名に従って、前記メインコンピューティング環境によって前記さらなるアクセス要求を検証する段階;及び
前記さらなるアクセス要求の前記検証のポジティブな結果に応じて、前記メインコンピューティング環境によって、前記セカンダリコンピューティング環境に対して前記コンピューティングリソースへの前記アクセスを承認する段階
を有する、項目4から6のいずれか一項に記載の方法。
(項目8)
前記コンピューティングリソースへの前記アクセスを承認する前記段階が:
前記結果インジケータの前記記憶の前記検出に応じて、前記メインコンピューティング環境によって、有効期間を有する前記署名を生成する段階;及び
前記セカンダリコンピューティング環境によって提供された前記署名の前記有効期間に従って、前記メインコンピューティング環境によって前記さらなるアクセス要求を検証する段階
を有する、項目7に記載の方法。
(項目9)
前記完全性条件を検証する前記段階が:
前記メインコンピューティング環境によって前記結果インジケータを生成するプロセスの識別子を検証する段階
を有する、項目4から8のいずれか一項に記載の方法。
(項目10)
前記完全性条件を検証する前記段階が:
前記メインコンピューティング環境によって、前記アクセス要求の前記検証の前記ポジティブな結果及び前記結果インジケータの前記記憶の間の遅延を検証する段階
を有する、項目4から9のいずれか一項に記載の方法。
(項目11)
前記完全性条件を検証する前記段階が:
前記メインコンピューティング環境によって、前記結果インジケータの前記記憶及び現在の時刻の間の遅延を検証する段階
を有する、項目4から10のいずれか一項に記載の方法。
(項目12)
前記完全性条件を検証する前記段階が:
前記メインコンピューティング環境によって、前記セカンダリコンピューティング環境のメモリスペースのコンテンツを検証する段階
を有する、項目1から11のいずれか一項に記載の方法。
(項目13)
前記完全性条件を検証する前記段階が:
前記メインコンピューティング環境によって、前記セカンダリコンピューティング環境において実行しているプロセスを検証する段階
を有する、項目1から12のいずれか一項に記載の方法。
(項目14)
前記コンピューティングリソースが前記コンピューティングシステムによって実装されている、項目1から13のいずれか一項に記載の方法。
(項目15)
前記コンピューティングリソースが1つ又は複数のさらなるコンピューティングシステムによって実装されている、項目1から14のいずれか一項に記載の方法。
(項目16)
1つ又は複数のコンピューティングリソースへのアクセスを制御するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、1つ又は複数のコンピュータ可読記憶媒体に集合的に記憶されたプログラム命令を有する前記1つ又は複数のコンピュータ可読記憶媒体を備え、前記プログラム命令は、コンピューティングシステムに:
コンピュータを使用して、前記コンピューティングシステムにおいて実装されたセカンダリコンピューティング環境によって、前記コンピューティングリソースにアクセスするためのアクセス要求を受信する手順、前記セカンダリコンピューティング環境は、前記コンピューティングリソースから隔離されている;
前記コンピュータを使用して、前記セカンダリコンピューティング環境によって前記アクセス要求を検証する手順;
前記コンピュータを使用して、前記コンピューティングシステムにおいて実装されるメインコンピューティング環境によって、前記アクセス要求の前記検証のポジティブな結果の表示を検出する手順、前記メインコンピューティング環境は、前記セカンダリコンピューティング環境から隔離されている;
前記コンピュータを使用して、前記ポジティブな結果の前記表示を前記検出したことに応じて、前記メインコンピューティング環境によって、前記セカンダリコンピューティング環境の完全性条件を検証する手順;及び
前記完全性条件の前記検証のポジティブな結果に応じて、前記コンピュータを使用して、前記メインコンピューティング環境によって、前記セカンダリコンピューティング環境に対して前記コンピューティングリソースへの前記アクセスを承認する手順
を有する方法を実行させるために前記コンピューティングシステムによって読み出し可能である、コンピュータプログラム製品。
(項目17)
1つ又は複数のコンピューティングリソースへのアクセスを制御するためのコンピューティングシステムであって、前記コンピューティングシステムが:
前記コンピューティングシステムにおいて実装されるセカンダリコンピューティング環境、前記セカンダリコンピューティング環境は前記コンピューティングリソースから隔離されている
を備え、ここで前記セカンダリコンピューティング環境は:
前記コンピューティングリソースにアクセスするためのアクセス要求を受信するためのインタフェース;
前記アクセス要求を検証するためのセカンダリオーサライザ;及び
前記コンピューティングシステムにおいて実装されるメインコンピューティング環境、前記メインコンピューティング環境は前記セカンダリコンピューティング環境から隔離されている
を有し、ここで前記メインコンピューティング環境は:
前記アクセス要求の前記検証のポジティブな結果の表示を検出するためのモニタ;
前記ポジティブな結果の前記表示を前記検出したことに応じて、前記セカンダリコンピューティング環境の完全性条件を検証するための検証装置;及び
前記完全性条件の前記検証のポジティブな結果に応じて、前記セカンダリコンピューティング環境に対して前記コンピューティングリソースへの前記アクセスを承認するためのメインオーサライザ
を含む、コンピューティングシステム。
【国際調査報告】