(57)【要約】【課題】セキュアで堅牢なライセンスメカニズムを用いてライセンスを附与するクラウドソフトウエアを提供する。【解決手段】システムによって実行されることに応答して、システムに、固有識別子をライセンスサーバに送信させ、固有識別子に基づいてセキュアなチャネルを確立４０４させ、セキュアなチャネルを通じて、機器をアクティブにするためのライセンスサーバからのライセンスを要求させ、セキュアなデータチャネルを通じて、ライセンスデータをライセンスサーバから受信４１２させ、ライセンスが有効であるか否かを判断４１４させ、ライセンスが有効であるという判断に応答して機器をアクティブにさせる４２２複数の命令を備える少なくとも１つの機械可読媒体。【選択図】図４
2017152017.tif 000002
【特許請求の範囲】
【請求項１】
クラウドインフラストラクチャにおける仮想マシン上の機器にライセンスを付与するマシン制御方法であって、
第１の仮想マシンに関連付けられるセキュリティデバイスに含まれる第１の固有識別子を用いて、前記第１の仮想マシンに関連付けられるセキュリティデバイスとライセンスサーバに関連付けられるセキュリティデバイスとの間にセキュアなチャネルを確立する段階と、
前記第１の仮想マシンによって、前記第１の仮想マシン上の機器をアクティブにするための前記ライセンスサーバからのライセンスを要求する段階と、
確立された前記セキュアなチャネルを通じて、前記ライセンスサーバと前記第１の仮想マシンとの間でライセンスデータを交換する段階と、
前記ライセンスデータが有効であるか否かを判断する段階と、
前記ライセンスデータが有効であるという判断に応答して前記第１の仮想マシン上の機器をアクティブにする段階と
を備えるマシン制御方法。
【請求項２】
第２の仮想マシンに関連付けられるセキュリティデバイスに含まれる第２の固有識別子を用いて、前記第２の仮想マシンに関連付けられるセキュリティデバイスと前記ライセンスサーバに関連付けられるセキュリティデバイスとの間にセキュアなチャネルを確立する段階と、
前記第２の仮想マシンによって、前記第２の仮想マシン上の機器をアクティブにするための前記ライセンスサーバからのライセンスを要求する段階と、
確立された前記セキュアなチャネルを通じて、前記ライセンスサーバと前記第２の仮想マシンとの間でライセンスデータを交換する段階と、
前記ライセンスデータが有効であるか否かを判断する段階と、
前記ライセンスデータが有効であるという判断に応答して前記第２の仮想マシン上の機器をアクティブにする段階と
をさらに備える、請求項１に記載のマシン制御方法。
【請求項３】
前記第１の仮想マシンに関連付けられるセキュリティデバイス及び前記ライセンスサーバに関連付けられるセキュリティデバイスは、インテルソフトウェアガード拡張ハードウェアとしての能力を有するハードウェアである、請求項１に記載のマシン制御方法。
【請求項４】
前記第１の仮想マシンに関連付けられるセキュリティデバイス及び前記ライセンスサーバに関連付けられるセキュリティデバイスは、インテルトラステッドエグゼキューションエンジンとしての能力を有するハードウェアである、請求項１に記載のマシン制御方法。
【請求項５】
前記ライセンスサーバに関連付けられるライセンスデータベースに前記ライセンスデータを格納する段階と、
前記第１の仮想マシンに前記ライセンスデータを格納する段階と
をさらに備える請求項１から４のいずれか一項に記載のマシン制御方法。
【請求項６】
前記ライセンスデータは、期限切れ時間と、前記第１の仮想マシンを動作させるクライアントのＭＡＣアドレス、ＩＰアドレス、及びホスト名のうちの１つとを含む、請求項５に記載のマシン制御方法。
【請求項７】
クライアントの時間が前記期限切れ時間より後である場合に、前記第１の仮想マシン上の機器を非アクティブにする段階
をさらに備える請求項６に記載のマシン制御方法。
【請求項８】
前記ライセンスデータベースに格納されている前記ライセンスデータが、前記第１の仮想マシンに格納されている前記ライセンスデータと一致しない場合に、前記第１の仮想マシン上の機器を停止する段階
をさらに備える請求項６に記載のマシン制御方法。
【請求項９】
前記ライセンスが無効であるという判断に応答して、前記ライセンスデータベースの前記ライセンスデータを削除する段階
をさらに備える請求項６に記載のマシン制御方法。
【請求項１０】
予め定められた期間の後に、前記第１の仮想マシンによってライセンス更新を要求する段階と、
前記ライセンス更新が無効である場合に、前記第１の仮想マシン上の機器を非アクティブにする段階と
をさらに備える請求項１から９のいずれか一項に記載のマシン制御方法。
【請求項１１】
前記第１の仮想マシンは、ベアメタルマシン又はコンテナである、請求項１から１０のいずれか一項に記載のマシン制御方法。
【請求項１２】
クラウドインフラストラクチャにおける仮想マシンにアクセスするように構成されるクライアントデバイスと、
第１の仮想マシンに関連付けられる第１のセキュリティユニットであって、第１の固有識別子を含む第１のセキュリティユニットと、
前記第１の仮想マシンと通信するように構成されるライセンスサーバと、
前記ライセンスサーバに関連付けられる第２のセキュリティユニットであって、第２の固有識別子を含む第２のセキュリティユニットと
を備え、
前記第１のセキュリティユニット及び前記第２のセキュリティユニットは、前記第１の固有識別子を用いて前記第１の仮想マシンと前記ライセンスサーバとの間にセキュアなチャネルを確立して、確立された前記セキュアなチャネルを通じて、前記ライセンスサーバと前記第１の仮想マシンとの間でライセンスデータを交換し、前記ライセンスデータが有効であるか否かを判断するように構成され、
前記第１の仮想マシン上の被ライセンス付与機器は、前記ライセンスデータが有効であるという判断に応答してアクティブにされる、ライセンス管理システム。
【請求項１３】
第２の仮想マシンに関連付けられる第３のセキュリティユニットであって、第２の固有識別子を含む第３のセキュリティユニットをさらに備え、
前記ライセンスサーバは、前記第２の仮想マシンと通信するように構成され、
前記第２のセキュリティユニット及び前記第３のセキュリティユニットは、前記第２の固有識別子を用いて前記第２の仮想マシンと前記ライセンスサーバとの間にセキュアなチャネルを確立して、確立された前記セキュアなチャネルを通じて、前記ライセンスサーバと前記第２の仮想マシンとの間でライセンスデータを交換し、前記ライセンスデータが有効であるか否かを判断するように構成され、
前記第２の仮想マシン上の被ライセンス付与機器は、前記ライセンスデータが有効であるという判断に応答してアクティブにされる、請求項１２に記載のライセンス管理システム。
【請求項１４】
前記第１のセキュリティユニット及び前記第２のセキュリティユニットは、インテルソフトウェアガード拡張ハードウェアとしての能力を有するハードウェアである、請求項１２に記載のライセンス管理システム。
【請求項１５】
前記第１のセキュリティユニット及び前記第２のセキュリティユニットは、インテルトラステッドエグゼキューションエンジンとしての能力を有するハードウェアである、請求項１２に記載のライセンス管理システム。
【請求項１６】
前記ライセンスサーバに関連付けられる第１のメモリであって、前記ライセンスサーバに関連付けられるライセンスデータベースに前記ライセンスデータを格納するように構成される第１のメモリと、
前記第１の仮想マシンに関連付けられる第２のメモリであって、前記ライセンスデータを格納するように構成される第２のメモリと
をさらに備える請求項１２から１５のいずれか一項に記載のライセンス管理システム。
【請求項１７】
前記ライセンスデータは、期限切れ時間と、前記第１の仮想マシンを動作させるクライアントのＭＡＣアドレス、ＩＰアドレス、及びホスト名のうちの１つとを含む、請求項１６に記載のライセンス管理システム。
【請求項１８】
前記第１の仮想マシンは、クライアントの時間が前記期限切れ時間より後である場合に、前記第１の仮想マシン上の被ライセンス付与機器を非アクティブにするように構成される、請求項１７に記載のライセンス管理システム。
【請求項１９】
前記第１の仮想マシンは、前記ライセンスデータベースに格納されている前記ライセンスデータが、前記第１の仮想マシンに格納されている前記ライセンスデータと一致しない場合に、前記第１の仮想マシン上の被ライセンス付与機器を停止するように構成される、請求項１７に記載のライセンス管理システム。
【請求項２０】
前記ライセンスサーバは、前記ライセンスが無効である場合に、前記ライセンスデータベースの前記ライセンスデータを削除するように構成される、請求項１７に記載のライセンス管理システム。
【請求項２１】
前記第１の仮想マシンは、予め定められた期間の後に、ライセンス更新を要求し、前記ライセンス更新が無効である場合に、前記第１の仮想マシン上の被ライセンス付与機器を非アクティブにするように構成される、請求項１２から２０のいずれか一項に記載のライセンス管理システム。
【請求項２２】
前記第１の仮想マシンは、ベアメタルマシン又はコンテナである、請求項１２から２１のいずれか一項に記載のライセンス管理システム。
【請求項２３】
前記第１の固有識別子は、乱数生成部を用いて決定される、請求項１２から２２のいずれか一項に記載のライセンス管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示される技術は、概して、ライセンスを付与するクラウドソフトウェア、より具体的には、セキュアで堅牢なライセンスメカニズムを用いてライセンスを付与するクラウドソフトウェアに関する。
【背景技術】
【０００２】
仮想化及びクラウドインフラストラクチャ、プラットフォーム、サービス展開としてのソフトウェアの出現に伴い、例えば、ファイアウォール、ロードバランサ、ワイドエリアネットワークオプティマイザ等の伝統的にハードウェアベースであった被ライセンス付与アプリケーション及びサービスは、仮想マシン（ＶＭ）として配置されてきている。新しいハードウェアのリリースサイクルを待つ必要なく、ソフトウェアに新しい機能を導入することがより容易であるので、ネットワーク機能の仮想化は、クラウドインフラストラクチャにおいて民生のハードウェアの使用を許容することによるコストの節約及び速度の技術革新を提供する。現在利用可能なライセンス付与ソリューションは、プロプライエタリであり、クラウドのために設計されておらず、より強いセキュリティを提供するハードウェアに根付いていない。
【図面の簡単な説明】
【０００３】
開示される技術の実施形態は、図面において、限定のためでなく、例として示され、それにおいて、同様の符号は、同様の要素を指す。
【図１】機器又は仮想ネットワーク機能がベアメタルマシン上又はハイパーバイザ上の何れかで動作し得る、クラウドに関連するライセンス管理システムを示す。
【図２】クライアントホスト上に位置付けられるライセンスエージェントを有する被ライセンス付与機器を示す。
【図３】セキュアで堅牢なライセンスメカニズムを用いる仮想化環境を示す。
【図４】開示される技術の実施形態の高レベルフローを示す。
【図５】ライセンスエージェントとライセンスサーバとの間のメッセージを示す。
【図６】様々な実施形態に従う、本開示を実施するために適したコンピューティングデバイスの例を示す。
【図７】様々な実施形態に従う、本開示の態様を組み込む、プログラミング命令を有する製造物品を示す。
【発明を実施するための形態】
【０００４】
本明細書で用いられるように、機器及び仮想ネットワーク機能（ＶＮＦ）は、互換的に被ライセンス付与アプリケーション及びサービスを指すために用いられる。開示される技術の実施形態は、以下でより詳細に議論されるように、インテルソフトウェアガード拡張（ＳＧＸ）技術又は他のトラステッドエグゼキューションエンジン（ＴＥＥ）の使用によってハードウェアにライセンス付与を根付かせる。これらは、本明細書において、セキュリティデバイスに対してＳＥＣと称される。ＳＥＣは、ＳＧＸ又はＴＥＥの何れかを指してよい。
【０００５】
上述のように、図１は、ＶＮＦがベアメタルマシン、コンテナ上、又はハイパーバイザ上の何れかで動作し得る、クラウド環境に関連するライセンス管理システムを示す。クラウド環境は、様々なクライアントホスト１００を含んでよく、各クライアントホストは、ハードウェアにＳＥＣ１０２を含む。各ＳＥＣ１０２は、各ＳＥＣに固有であってＳＥＣ１０２内に格納されているライセンスキーデータを含む。図２は、各クライアントホスト１００上に位置付けられ得る被ライセンス付与機器２００又はＶＮＦを示す。被ライセンス付与機器２００は、ＳＥＣ１０２と通信するライセンスエージェント２０２を含む。
【０００６】
ライセンスエージェント２０２は、複数のＳＥＣ１０２を介して、複数のライセンスを検証するために、ライセンスサーバとセキュアに通信してよい。つまり、ライセンスエージェント２０２は、クライアントホスト１００上のＳＥＣ１０２と通信してよく、次に、セキュアなライセンスキーデータを用いて、ライセンスサーバ１０４上のＳＥＣ１０２とセキュアに通信する。
【０００７】
上述のように、ライセンスキーデータは、各ＳＥＣ１０２に固有であり、ライセンス及びキーデータそれ自体を改ざんから保護する。図４に関して以下でより詳細に議論されるように、機器２００は、ライセンスが有効であることをライセンスエージェント２０２が確かめた後にのみ、アクティブにされてよい。
【０００８】
図３は、クラウド仮想化環境において動作しているライセンス管理システムを示す。しかし、ライセンス管理システムは、また、上述のように、ベアメタルマシン上又はコンテナにおいて動作してよい。図３の実施形態は、バックホール３０６を介してクラウド仮想化環境３００におけるＶＮＦ／ＶＭ３０４に接続する複数のクライアント３０２を含む。ハイパーバイザは、１又は複数のＶＮＦをホストし、本明細書で共にＶＮＦ／ＶＭ３０４と称される。複数のクライアント３０２は、また、クラウドテナントと称されてよい。バックホール３０６は、クラウド仮想化環境と複数のクライアントとの間のネットワークの任意の部分であってよい。複数のＶＮＦ／ＶＭ３０４のそれぞれにおけるＳＥＣ３０８は、ＳＥＣ３０８をまた含むライセンスサーバシステム３１０と通信する。クラウド仮想化環境３００は、OpenStack等のクラウドオペレーティングシステム（ＯＳ）３１２又はハイパーバイザ、及びプラットフォーム３１４を含んでよい。議論を容易にするために、ハイパーバイザ又はクラウドＯＳ３１２は、以下では、クラウドＯＳ３１２と称される。しかし、当業者によって容易に理解されるように、ハイパーバイザ、クラウドＯＳ、又は同等のシステムが用いられてよい。クラウド仮想化環境３００をサポートする各物理計算ホストは、１つのプラットフォーム３１４を有し、各プラットフォーム３１４は、セキュアクロック３１６を含む。ライセンスサーバをサポートする各物理計算ホストは、また、ＳＥＣ３０８及びセキュアクロック３１６を有する。図４及び５に関して以下でより詳細にまた議論されるように、ＳＥＣ３０８がセキュアクロック３１６へのアクセスを有するので、それは、時間操作攻撃の事故を減少させる。
【０００９】
図４は、ライセンスを有するＶＭ上のＶＮＦをアクティブにするための開示される技術のいくつかの実施形態の高レベルフローの例を示す。図４は、様々な動作を実行するクラウドＯＳを示すが、クラウドＯＳは、複数のＶＭを起動することに集中し、ライセンスを取得及び更新するタスクをＶＮＦに委譲してよい。図４に示される高レベルフローは、有効なライセンス付与による保証を得たい全ての独立系ソフトウェアベンダー（ＩＳＶ）及びクラウドオペレーティングシステムにわたって用いられてよい。動作４００において、各ＶＭにおけるＳＥＣは、セキュアクロックから時間を読み取る。ＳＥＣは、また、キーエントロピのための、かつ、セッションの再生を検出するためのシードとして、プラットフォーム又はシリコンベースの乱数生成部を用いてよい。ハードウェアの乱数生成部は、特に、ノンス生成のための、セキュアな通信チャネル等をセットアップするライセンスサーバにおいて有用な、ランダム性のリッチなストリームを提供する。これは、特に、マウスの動き及びキーボードのストローク等のエントロピの伝統的なソースが利用可能でないクラウドにおいて有用である。動作４０２において、ライセンスエージェントは、ライセンスサーバとのセキュアなチャネルを生成するために、複数のヒューズキー、複数のルートキー、又は複数のトラステッドプラットフォームモジュール（ＴＰＭ）キーであってよいＶＭに関連付けられるＳＥＣにおける複数のキーを取り出す。動作４０４において、ライセンスエージェントによって取り出された複数のキーは、ＶＭ／ＶＮＦに関連付けられるＳＥＣによって、ライセンスサーバに関連付けられるＳＥＣに送信される。各ＳＥＣがそれ自身の固有のキーのセットを有するので、これは、ＶＭ／ＶＮＦとライセンスサーバとの間のセキュアなチャネルを確立し、不正な公開及びセキュアなチャネルの外での複製からのライセンスの保護を保証する。
【００１０】
動作４０６において、クライアントは、クラウドＯＳにおけるＶＭ／ＶＮＦのアクティブ化をトリガする。アクティブ化に対するクライアントの要求に応じて、動作４０８において、クラウドＯＳは、ライセンスが有効である場合、アクティブにするためにＶＭ／ＶＮＦに要求を送信する。しかし、上述のように、ＶＮＦは、定期的に又はスタートアップ時に、アクティブ化のために又はライセンスの更新のために要求を送信してよい。順に、ＶＭ／ＶＮＦは、図５に関して以下でより詳細に議論されるように、クライアントメタデータを含み得るクライアントのライセンスデータを、ＶＭ／ＶＮＦに関連付けられるＳＥＣに送信する。動作４１０において、ＶＭ／ＶＮＦは、ライセンスを検証するようにＳＥＣに要求する。次に、動作４１２において、ＶＭ／ＶＮＦに関連付けられるＳＥＣとライセンスサーバに関連付けられるＳＥＣとの間に確立されたセキュアなチャネル上で、クライアントメタデータを含むライセンスデータが交換され、ＶＭ／ＶＮＦに関連付けられるＳＥＣは、ライセンスが有効か否かを判断する。動作４１４において、ＶＭ／ＶＮＦに関連付けられるＳＥＣは、ライセンスが有効か無効かをライセンスサーバに関連付けられるＳＥＣに通知する。 動作４１６において、ＶＭ／ＶＮＦに関連付けられるＳＥＣは、また、ライセンスが有効か無効かをライセンスサーバに関連付けられるＳＥＣに通知する。 動作４１８において、クライアントメタデータを含み得るライセンスデータは、また、ライセンスデータベースに保存されるライセンスデータに照らしてチェックされる。
【００１１】
動作４２０において、ライセンスの有効性に基づいて、ライセンスサーバに関連付けられるＳＥＣは、クラウドＯＳ上でＶＭ／ＶＮＦのアクティブ化をトリガする、又はクラウドＯＳ上でＶＭ／ＶＮＦのアクティブ化を停止する。動作４２２において、クラウドＯＳは、次に、ライセンスサーバに関連付けられるＳＥＣから受信されるトリガに基づいて、ＶＭ／ＶＮＦをアクティブにする、又は停止する。
【００１２】
ＶＮＦは、問題のクライアント又はクラウドテナントを起動すること及びそれに通知することに失敗し得る。クラウドＯＳは、また、ライセンス料が支払われていない場合にクラウドテナントに通知すること等のいくつかの修正動作が行われることができるように、又はクラウドプロバイダの使用が増加していると、より多くのライセンスをそれらが取得するように、この失敗を警告されてよい。クラウドＯＳは、また、状況に応じて、ＶＮＦを停止し、リソースを埋め合わせ、再割り当てしてよい。
【００１３】
代替的な実施形態において、全てのプラットフォーム上でのライセンス検証は、図４のスキームを拡張することによって追加されてよい。各プラットフォームのためのＳＥＣは、ソフトウェアＩＤ、ＭＡＣアドレス、ホスト名又はプラットフォームシステムＩＤ、セキュアタイム値、乱数等を備えるライセンス認証ブロブに署名し、これは、また、ライセンスサーバに関連付けられるＳＥＣに配信される。
【００１４】
代替的な実施形態において、ＶＭがマイグレートされる場合、複数のＶＭ／ＶＮＦのマイグレーションの間のライセンス承認は、複数のＳＥＣのネットワークによって透過的に処理されることができる。そのような場合において、ライセンスのアクティブ化は、クラウドＯＳがＶＭ／ＶＮＦマイグレーションを成立させているのと同時に、クラウドＯＳによってトリガされる。ライセンスサーバアウェアクラウドは、ＶＭマイグレーションイベントを示すライセンスサーバにセキュアメッセージを送信してよい。クラウドＯＳは、サービス−ＶＭ（例えば、ファイアウォール、ロードバランサ等）の場合におけるように、特別なＶＭ起動が用いられるか否かを知っている。ＳＥＣは、ＳＥＣの外部に公開されない異なる固有の複数のキーを有するので、ライセンスサーバは、これらの認証情報の不正な使用がないと仮定する。従って、各ＶＭ／ＶＮＦに関連付けられる各ＳＥＣは、ＳＥＣライセンスサーバとの固有の通信接続を有し、ライセンス認証は、否認防止によって保護される。
【００１５】
図５は、ライセンスエージェントとライセンスサーバとの間のメッセージングを示す。バックグラウンドにおいて、ライセンスサーバは、多数の連続するリフレッシュ期間の間リフレッシュされていない複数のライセンスを継続的に回収する。ライセンスサーバは、また、毎日の終わりに、同時に用いられたライセンス、典型的な使用の期間、及び失敗したライセンス要求の数等の統計値と共に、署名された複数の監査ログを生成してよい。つまり、ライセンスサーバは、メッセージの損失又はリオーダの場合に備えて、バックグラウンドにおいて、それの状態をチェックし、検証し、確定する。例えば、ライセンスリリースのメッセージが失われる場合、ライセンスは、占有されている又は用いられているとみなされる。バックグラウンドにおいて、ライセンスサーバは、宙に浮いているライセンス（ダングリングライセンス）を定期的にチェックしてよく、ライセンスの数がそれの割当量に到達した場合、ライセンス付与サーバは、クライアントの便宜のために、宙に浮いているライセンス（ダングリングライセンス）を収集し、宙に浮いているライセンス（ダングリングライセンス）をリリースすることを試みる。
【００１６】
動作５００において、ライセンスエージェントは、関連付けられるＳＥＣを介して、ライセンスサーバからのライセンスを要求する。これは、ＭＡＣアドレス、ホスト名、ＩＰアドレス、及びセキュアクロックを用いるライセンスサーバに対するクライアントの時間等のクライアントホストのメタデータを送信することを含む。この情報は、上述のように、ＳＥＣを介してセキュアに送信される。動作５０２において、ライセンスサーバは、クライアントのメタデータを用いてライセンスを生成し、ライセンスエージェントにライセンスを送信する。ライセンスは、クライアント時間及びリース期間に基づく期限切れ時間、並びにサーバ時間及びリース期間に基づく期限切れ時間を含む。ライセンスは、また、クライアントのホスト名、ＭＡＣアドレス、及びＩＰアドレス、並びにサーバタイムスタンプを含む。ライセンスは、ライセンスデータベースに保存され、次に、付属の証明書とともに署名され、ライセンスエージェントに発行される。動作５０２において、ライセンスエージェントがライセンスを受信する場合、それは、ライセンスの署名を検証し、ライセンスエージェントに関連付けられるＳＥＣにライセンスをキャッシュする。クライアント期限切れ時間が実際クライアント時間より小さい限りにおいて、ライセンスは有効であり、クライアントによって用いられてよい。
【００１７】
つまり、ライセンス検証は、ライセンスに取り込まれた期限切れタイムスタンプを、ローカルサーバ上のセキュアなクロックベースのタイムスタンプ、及び検証を求めるＶＭによって提供されたセキュアなタイムスタンプと比較することによって、複数のＳＥＣによって実行される。セキュアなタイムスタンプがＶＭ及び／又はライセンスサーバによって確立されることができない場合、次に、ネットワークタイムプロトコルを用いるライセンスサーバ上で確立されるタイムスタンプが用いられる。ライセンスサーバは、概して、個別の計算ノード、及び計算ノード上で動作しているＶＭより信頼される。
【００１８】
ライセンスエージェントは、期限切れ時間がローカルセキュアクロックを過ぎていないことをチェックし、キープアライブメッセージ又は更新メッセージをライセンスサーバに送信するデーモンプロセスを実行することによって、機器がキャッシュライセンスとともに用いられることができることを定期的に検証する。多数のチェック期間の後、ライセンスサーバからのライセンスリフレッシュ応答がない場合において、ライセンスエージェントは、機器をシャットダウンするようにＶＭに命令する。
【００１９】
動作５０４において、ライセンス更新要求は、上述のように、ライセンスエージェントからライセンスサーバに送信される。ライセンスメタデータがライセンスデータベースに格納されたライセンスデータと一致する場合、ライセンスの期限がまだ切れておらず、次に、ライセンスが更新される。ライセンスの期限が切れている場合、次に、リターン期限切れメッセージが、ライセンスエージェントに送信され、ライセンスが回収され、被ライセンス付与ＩＤが無効にされる。ライセンスメタデータ及び／又は署名がライセンスデータベースに格納されたものと一致しない場合、次に、ＶＭのマイグレーション又はクローンがライセンスを用いることを試みることが可能である。クリーンＶＭマイグレーションの間、上述のように、ライセンスサーバは通知され、ライセンスは回収され、新しいクライアントホストからの要求に対して再発行される。動作５０６において、ライセンスリフレッシュ又はエラーコードの何れかが、ライセンスエージェントに送信される。全ての要求、応答、及びエラーは、ライセンスサーバによって記録され、ライセンスデータベースに保存されてよい。
【００２０】
ライセンスエージェントがエラーメッセージを受信する場合、次に、動作５００において、新しいライセンスが要求されてよい。そうでなければ、ライセンスリフレッシュが検証され、リフレッシュ時間がライセンスエージェントにおいて更新される。ライセンスの期限が切れている場合、次に、動作５０８において、ライセンスがライセンスエージェントからリリースされ、ライセンスがライセンスエージェントに関連付けられるＳＥＣのキャッシュから削除され、ライセンスがライセンスサーバにおいて回収され、イベントが記録される。
【００２１】
ＶＭが停止され、中止され、又はマイグレートされる場合、ライセンスエージェントは、ライセンスのローカルキャッシュをクリアすることを含むライセンス回収イベントをトリガし、ライセンスをリリースするためにメッセージをライセンスサーバに発行する。これは、浮いているライセンス（フローティングライセンス）を含め、最大の量のライセンスの使用を可能にする。
【００２２】
ＶＭ／ＶＮＦ又は機器は、様々な方法でクローン化されてよい。クローンの起動時に、管理者は、新しいＭＡＣアドレスを要求する又は元のＶＭ／ＶＮＦのＭＡＣアドレスを再使用するオプションを有する。上で開示された実施形態は、それらが、ＭＡＣアドレス、ＩＰアドレス、ホスト名、及び／又はＳＥＣ署名の何れかにおいて一致しないので、複数のクローンからの任意のライセンス更新要求を拒否することによって、複数のライセンスの悪用を防ぐ。クローンは、次に、新しいライセンスを要求してよく、任意のライセンスが利用可能である場合、新しいライセンスが発行されてよい。
【００２３】
ライセンスのなりすましを防止するために、ＶＭ／ＶＮＦが起動されるたびに、最初のスタートアップ時、新しいクライアントホストへのマイグレーション後、又は停止の後の再アクティブ化時に、ＶＭ／ＶＮＦは、ライセンスサーバに連絡しなければならない。ＳＧＸ及び／又はＴＥＥ能力を有するハードウェアに関して、上述のように、複数のメッセージは、ホストに固有の複数のキーによって署名される。複数のクローンは、元の要求されて発行された複数のライセンスキーと一致しない。
【００２４】
ＳＧＸ及び／又はＴＥＥ能力を有するハードウェアがない場合において、２つ又はそれより多いＶＭ／ＶＮＦが同じホスト名及びＭＡＣアドレスの組み合わせを提示する、又はサーバにおけるリフレッシュタイムスタンプが予期されるより早い場合、ライセンスリフレッシュは、「possible-clone」のメッセージコードで拒否される。 これは、サービスの拒否がサービスの複数のクローンをさらに拒否することから元のＶＭ／ＶＮＦを保護する。しかし、これは、また、新しいクライアントホストにマイグレートされた任意のＶＭ／ＶＮＦを拒否する。「possible-clone」メッセージを受信すると、図５の動作５００において上で示されるように、ＶＭ／ＶＮＦは、get-licenseメッセージを発行しなければならない。
【００２５】
図６は、計算ホスト６００の例を示す。いくつかの例において、図６に示されるように、計算ホスト６００は、処理コンポーネント６０２、他の複数のホストコンポーネント６０４、又は通信インターフェース６０６を含む。いくつかの例によれば、計算ホスト６００は、図１に関連付けられるクライアントホスト１００又はライセンスサーバ１０２、又は図３に関連付けられるプラットフォーム３１４及びライセンスサーバ３１０であってよい。計算ホスト６００は、構成可能な複数のコンピューティングリソースの共有プールから構成される別々のコンポーネント又は要素の組み合わせを含む構成論理サーバ又は単一の物理サーバの何れかであってよい。
【００２６】
いくつかの例によれば、処理コンポーネント６０２は、記憶媒体６０８に対する処理動作又はロジックを実行してよい。処理コンポーネント６０２は、様々なハードウェア要素、ソフトウェア要素、又は両方の組み合わせを含んでよい。ハードウェア要素の例は、デバイス、ロジックデバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサ回路、回路素子（例えば、トランジスタ、抵抗、コンデンサ、インダクタ等）、集積回路、特定用途向け集積回路（ＡＳＩＣ）、プログラマブルロジックデバイス（ＰＬＤ）デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、メモリユニット、ロジックゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等を含んでよい。ソフトウェア要素の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、デバイスドライバ、システムプログラム、ソフトウェア開発プログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、方法、プロシージャ、ソフトウェアインターフェース、アプリケーションプログラムインターフェース（ＡＰＩ）、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、又はこれらの任意の組み合わせを含んでよい。ある例がハードウェア要素及び／又はソフトウェア要素を用いて実装されるか否かを決定することは、所与の例に対して要求されるとおりに、要求される計算速度、電力レベル、耐熱性、処理サイクル配当量、入力データレート、出力データレート、メモリリソース、データバス速度、及び他の設計又は性能制約等の任意の数の要因に従って変わってよい。
【００２７】
いくつかの例において、他の複数のホストコンポーネント６０４は、例えば、１又は複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インターフェース、オシレータ、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入力／出力（Ｉ／Ｏ）コンポーネント（例えば、デジタルディスプレイ）、電源等の複数の共通コンピューティング要素を含んでよい。メモリユニットの例は、これらに限定されるものではないが、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、ダブルデータレートＤＲＡＭ（ＤＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ、強誘電体ポリマーメモリ、オボニックメモリ、相変化又は強誘電体メモリ等のポリマーメモリ、シリコン酸化物窒化物酸化物シリコン（ＳＯＮＯＳ）メモリ、磁気又は光学カード、Redundant Array of Independent Disk（ＲＡＩＤ）ドライブ等のデバイスのアレイ、ソリッドステートメモリデバイス（例えば、ＵＳＢメモリ）、ソリッドステートドライブ（ＳＳＤ）、及び情報を格納することに適した任意の他のタイプの記憶媒体等の１又は複数の高速メモリユニットの形態で、様々なタイプのコンピュータ可読及び機械可読記憶媒体を含んでよい。
【００２８】
いくつかの例において、通信インターフェース６０６は、通信インターフェースをサポートするためのロジック及び／又は機能を含んでよい。これらの例において、通信インターフェース６０６は、直接の又はネットワーク通信のリンクを通じて通信するための様々な通信プロトコル又は規格に従って動作する１又は複数の通信インターフェースを含んでよい。直接通信は、ＰＣＩｅ仕様書に関連付けられるもの等の１又は複数の工業規格（後継版及び変形版を含む）で説明される通信プロトコル又は規格の使用によって行われてよい。ネットワーク通信は、ＩＥＥＥによって公表された１又は複数のイーサネット（登録商標）規格で説明されたもののような通信プロトコル又は規格の使用によって行われてよい。例えば、そのようなイーサネット（登録商標）規格の１つは、ＩＥＥＥ８０２．３を含んでよい。ネットワーク通信は、また、オープンフローハードウェア抽象化ＡＰＩ仕様書等の１又は複数のオープンフロー仕様書に従って行われてよい。ネットワーク通信は、また、インフィニバンドアーキテクチャ仕様書又はＴＣＰ／ＩＰプロトコルに従って行われてよい。
【００２９】
上述のように、計算ホスト６００は、構成可能な複数のコンピューティングリソースの共有プールに対する構成される別々のコンポーネント又は要素で作成される単一のサーバ又は論理サーバで実装されてよい。従って、本明細書で説明される計算ホスト６００の機能及び／又は特定の構成は、物理又は論理サーバに対して適切に要求されるとおりに、計算ホスト６００の様々な実施形態において、含まれ又は省略されてよい。
【００３０】
計算ホスト６００のコンポーネント及び機能は、ディスクリート回路、特定用途向け集積回路（ＡＳＩＣ）、ロジックゲート、及び／又は単一のチップアーキテクチャの任意の組み合わせを用いて実装されてよい。さらに、計算ホスト６００の機能は、マイクロコントローラ、プログラマブルロジックアレイ、及び／又はマイクロプロセッサ、又は適切に組み合わせられた前述の任意の組み合わせを用いて実装されてよい。なお、ハードウェア、ファームウェア、及び／又はソフトウェア要素は、集合的に又は個別に、本明細書で「ロジック」又は「回路」と称されてよい。
【００３１】
図６のブロック図で示される例示的な計算ホスト６００は、多くの潜在的な実施例の１つの機能的な説明の例を表してよいことが理解されるべきである。従って、添付の図面に図示されたブロック機能の分割、省略、又は含有は、これらの機能を実装するためのハードウェアコンポーネント、回路、ソフトウェア、及び／又は要素が、実施形態において必ず分割、省略、又は含まれることを示唆しない。
【００３２】
少なくとも一例の１又は複数の態様は、マシンによって読み取られる場合に、本明細書で説明される技術を実行させるために、コンピューティングデバイス又はシステムが、マシン、コンピューティングデバイス、又はシステムにロジックを作成させるプロセッサ内で様々なロジックを表す少なくとも１つの機械可読媒体に格納される代表的な複数の命令によって実装されてよい。「ＩＰコア」として知られるそのような表現は、有形の機械可読媒体に格納され、ロジック又はプロセッサを実際に作成する製造マシンにロードされるために、様々なカスタマ又は製造業の設備に提供されてよい。
【００３３】
様々な例は、ハードウェア要素、ソフトウェア要素、又は両方の組み合わせを用いて実装されてよい。いくつかの例において、ハードウェア要素は、デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、回路素子（例えば、トランジスタ、抵抗、コンデンサ、インダクタ等）、集積回路、特定用途向け集積回路（ＡＳＩＣ）、プログラマブルロジックデバイス（ＰＬＤ）、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、メモリユニット、ロジックゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等を含んでよい。いくつかの例において、ソフトウェア要素は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、方法、プロシージャ、ソフトウェアインターフェース、アプリケーションプログラムインターフェース（ＡＰＩ）、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、又はこれらの任意の組み合わせを含んでよい。ある例がハードウェア要素及び／又はソフトウェア要素を用いて実装されるか否かを決定することは、所与の実施例に対して要求されるとおりに、要求される計算速度、電力レベル、耐熱性、処理サイクル配当量、入力データレート、出力データレート、メモリリソース、データバス速度、及び他の設計又は性能制約等の任意の数の要因に従って変わってよい。
【００３４】
いくつかの例は、図７に見られるように、製造物品又は少なくとも１つのコンピュータ可読媒体を含んでよい。図７は、様々な実施形態に従う本開示の態様を組み込むプログラミング命令を有する製造物品７００を示す。様々な実施形態において、製造物品は、様々な本開示の実施形態を実施するために使用されてよい。示されるように、製造物品７００は、命令７０４が本明細書で説明された複数の処理の任意の１つの実施形態又は実施形態の態様を実施するように構成されるコンピュータ可読非一時的記憶媒体７０２を含んでよい。記憶媒体７０２は、フラッシュメモリ、ダイナミックランダムアクセスメモリ、スタティックランダムアクセスメモリ、光ディスク、磁気ディスク等を含むがこれらに限定されない、当技術分野において既知の永続記憶媒体の広範囲を表してよい。命令７０４は、装置によるそれらの実行に応答して、装置が、本明細書で説明される様々な動作を実行することを可能にしてよい。一例として、本開示の実施形態に従って、記憶媒体７０２は、装置、例えば、図１に関連付けられるクライアントホスト１００又はライセンスサーバ１０２、又は図３に関連付けられるプラットフォーム３１４及びライセンスサーバ３１０に、図４の処理に示されるように、ライセンス付与機器のいくつかの態様を実施させるように構成される命令７０４を含んでよい。別の例として、本開示の実施形態に従って、記憶媒体７０２は、装置、例えば、図１に関連付けられるクライアントホスト１００又はライセンスサーバ１０２、又は図３に関連付けられるプラットフォーム３１４及びライセンスサーバ３１０に、図５の処理に示されるように、ライセンス付与機器のいくつかの態様を実施させるように構成される命令７０４を含んでよい。実施形態において、コンピュータ可読記憶媒体７０２は、１又は複数のコンピュータ可読非一時的記憶媒体を含んでよい。他の実施形態において、コンピュータ可読記憶媒体７０２は、一時的で、命令７０４で符号化された信号等であってよい。
【００３５】
コンピュータ可読媒体は、ロジックを格納するための非一時的記憶媒体を含んでよい。いくつかの例において、非一時的記憶媒体は、揮発性メモリ又は不揮発性メモリ、リムーバブルメモリ又はノンリムーバブルメモリ、消去可能又は消去不可能メモリ、書き込み可能又は再書き込み可能メモリ等を含む、電子データを格納することが可能である１又は複数のタイプのコンピュータ可読記憶媒体を含んでよい。いくつかの例において、ロジックは、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、方法、プロシージャ、ソフトウェアインターフェース、ＡＰＩ、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、又はこれらの任意の組み合わせ等の様々なソフトウェア要素を含んでよい。
【００３６】
いくつかの例によれば、コンピュータ可読媒体は、マシン、コンピューティングデバイス、又はシステムによって実行される場合に、マシン、コンピューティングデバイス、又はシステムに、説明される例に従う方法及び／又は動作を実行させる命令を格納又は維持するための非一時的記憶媒体を含んでよい。命令は、ソースコード、コンパイラ型コード、インタープリタ型コード、実行可能コード、スタティックコード、ダイナミックコード、及びその類のもの等の任意の好適なタイプのコードを含んでよい。命令は、マシン、コンピューティングデバイス、又はシステムに特定の機能を実行するように命令するために、予め定義されたコンピュータ言語、態様、又はシンタックスによって実装されてよい。命令は、任意の好適な高レベル、低レベル、オブジェクト指向、視覚的、コンパイラ型及び／又はインタープリタ型プログラミング言語を用いて実装されてよい。
【００３７】
いくつかの例は、それらの派生語と共に、「一例において」又は「ある例」という表現を用いて説明されてよい。これらの用語は、その例に関連して説明される特定の機能、構造、又は特性が、少なくとも一例で含まれるということを意味する。本明細書における様々な場所において「一例において」という語句の出現は、必ずしも全て同じ例を参照していない。
【００３８】
いくつかの例は、それらの派生語と共に、「結合」及び「接続」という表現を用いて説明されてよい。これらの用語は、必ずしも互いに同義語として意図されない。例えば、「接続」及び／又は「結合」という用語を用いる説明は、２つ又はそれより多い要素が互いに直接物理的に又は電気的に接触していることを示してよい。しかし、「結合」という用語は、また、２つ又はそれより多い要素が互いに直接接触していないがそれでも互いに協働又は作用することを意味してよい。
【００３９】
次の例は、本明細書で開示される技術の追加の例に関連する。
【００４０】
例１。マシン上の機器にライセンスを付与するマシン制御方法であって、固有識別子をライセンスサーバに送信する段階と、固有識別子に基づいてセキュアなチャネルを確立する段階と、セキュアなチャネルを通じて、機器をアクティブにするためのライセンスサーバからのライセンスを要求する段階と、セキュアなチャネルを通じて、ライセンスデータをライセンスサーバから受信する段階と、ライセンスが有効であるか否かを判断する段階と、ライセンスデータが有効であるという判断に応答して機器をアクティブにする段階とを備える方法。
【００４１】
例２。セキュアなチャネルは、固有識別子を生成するマシンに関連付けられるセキュリティデバイスを用いて確立される、例１のマシン制御方法。
【００４２】
例３。セキュリティデバイスは、ソフトウェアガード拡張ハードウェア又はトラステッドエグゼキューションエンジンを含む、例２のマシン制御方法。
【００４３】
例４。マシンに関連付けられるメモリにライセンスデータを格納する段階をさらに備える例１のマシン制御方法。
【００４４】
例５。ライセンスデータは、期限切れ時間と、マシンのＭＡＣアドレス、ＩＰアドレス、及びホスト名のうちの１つとを含む、例４のマシン制御方法。
【００４５】
例６。マシンの時間が期限切れ時間より後である場合に、機器を非アクティブにする段階をさらに備える例５のマシン制御方法。
【００４６】
例７。マシンに位置付けられるセキュアクロックに基づいてマシンの時間を判断する段階と、マシンの時間が期限切れ時間より後である場合に、機器を非アクティブにする段階とをさらに備える例５のマシン制御方法。
【００４７】
例８。予め定められた期間の後にライセンス更新を要求する段階と、ライセンス更新応答を受信する段階と、ライセンス更新が無効である場合に、機器を非アクティブにする段階とをさらに備える例１のマシン制御方法。
【００４８】
例９。システムによって実行されることに応答して、システムに、固有識別子をライセンスサーバに送信させ、固有識別子に基づいてセキュアなチャネルを確立させ、セキュアなチャネルを通じて、機器をアクティブにするためのライセンスサーバからのライセンスを要求させ、セキュアなチャネルを通じて、ライセンスデータをライセンスサーバから受信させ、ライセンスが有効であるか否かを判断させ、ライセンスデータが有効であるという判断に応答して機器をアクティブにさせる複数の命令を備える少なくとも１つの機械可読媒体。
【００４９】
例１０。セキュアなチャネルは、固有識別子を生成するマシンに関連付けられるセキュリティデバイスを用いて確立される、例９の少なくとも１つの機械可読媒体。
【００５０】
例１１。セキュリティデバイスは、ソフトウェアガード拡張ハードウェア又はトラステッドエグゼキューションエンジンを含む、例１０の少なくとも１つの機械可読媒体。
【００５１】
例１２。システムに、さらに、マシンに関連付けられるメモリにライセンスデータを格納させる命令を備える例９の少なくとも１つの機械可読媒体。
【００５２】
例１３。ライセンスデータは、期限切れ時間と、マシンのＭＡＣアドレス、ＩＰアドレス、及びホスト名のうちの１つとを含む、例１２の少なくとも１つの機械可読媒体。
【００５３】
例１４。システムに、さらに、マシンの時間が期限切れ時間より後である場合に、機器を非アクティブにさせる命令を備える例１３の少なくとも１つの機械可読媒体。
【００５４】
例１５。システムに、さらに、マシンに位置付けられるセキュアクロックに基づいてマシンの時間を判断させ、マシンの時間が期限切れ時間より後である場合に、機器を非アクティブにさせる命令を備える例１３の少なくとも１つの機械可読媒体。
【００５５】
例１６。システムに、さらに、予め定められた期間の後にライセンス更新を要求させ、ライセンス更新応答を受信させ、ライセンス更新が無効である場合に、機器を非アクティブにさせる命令を備える例９の少なくとも１つの機械可読媒体。
【００５６】
例１７。機器を動作させるマシンであって、固有識別子を生成するように構成されるセキュリティデバイスと、固有識別子をセキュリティデバイスから受信し、固有識別子をライセンスサーバに送信し、固有識別子に基づいてセキュアなチャネルを確立し、セキュアなチャネルを通じて、機器をアクティブにするためのライセンスサーバからのライセンスを要求し、セキュアなチャネルを通じて、ライセンスデータをライセンスサーバから受信し、ライセンスが有効であるか否かを判断し、ライセンスデータが有効であるという判断に応答して機器をアクティブにするように構成されるプロセッサとを備えるマシン。
【００５７】
例１８。セキュリティデバイスは、ソフトウェアガード拡張ハードウェア又はトラステッドエグゼキューションエンジンを含む、例１７のマシン。
【００５８】
例１９。ライセンスデータを格納するように構成されるメモリをさらに備える例１７のマシン。
【００５９】
例２０。ライセンスデータは、期限切れ時間と、当該マシンを動作させるマシンのＭＡＣアドレス、ＩＰアドレス、及びホスト名のうちの１つとを含む、例１７のマシン。
【００６０】
例２１。セキュアクロックをさらに備え、プロセッサは、マシンの時間をセキュアクロックから受信し、マシンの時間が期限切れ時間より後である場合、機器を非アクティブにするようにさらに構成される、例１７のマシン。
【００６１】
例２２。プロセッサは、ライセンス更新要求をマシンから受信し、ライセンスデータベースに格納されているライセンスデータに基づいてライセンス更新応答を判断し、ライセンス更新応答を送信するようにさらに構成される、例１７のマシン。
【００６２】
例２３。ライセンス更新応答は、新しいライセンスを含む、例２２のマシン。
【００６３】
例２４。ライセンス更新応答は、ライセンスが無効であることを示すメッセージを含む、例２２のマシン。
【００６４】
例２５。ライセンスサーバからのライセンス情報をマシンに提供するマシン制御方法であって、固有識別子をマシンに送信する段階と、固有識別子に基づいてセキュアなチャネルを確立する段階と、セキュアなチャネルを通じて、ライセンスの要求を受信する段階と、メタデータをマシンから受信する段階と、メタデータに基づいてライセンスデータを生成する段階と、ライセンスデータをマシンに送信する段階とを備える方法。
【００６５】
例２６。セキュアなチャネルは、固有識別子を生成するライセンスサーバに関連付けられるセキュリティデバイスを用いて確立される、例２５のマシン制御方法。
【００６６】
例２７。セキュリティデバイスは、ソフトウェアガード拡張ハードウェア又はトラステッドエグゼキューションエンジンを含む、例２６のマシン制御方法。
【００６７】
例２８。ライセンスデータベースにライセンスデータを格納する段階をさらに備える例２５のマシン制御方法。
【００６８】
例２９。ライセンスデータは、期限切れ時間及び受信されたメタデータを含む、例２５のマシン制御方法。
【００６９】
例３０。メタデータは、当該マシンを動作させるマシンのＭＡＣアドレス、ＩＰアドレス、及びホスト名を含む、例２９のマシン制御方法。
【００７０】
例３１。ライセンスデータベースに格納されているライセンスデータ、及び受信されたメタデータに基づいて、ライセンスが有効であるか否かを判断する段階をさらに備える例２８のマシン制御方法。
【００７１】
例３２。ライセンス更新要求をマシンから受信する段階と、ライセンスデータベースに格納されているライセンスデータの有効性に基づいて、ライセンス更新応答を判断する段階と、ライセンス更新応答を送信する段階とさらに備える例３１のマシン制御方法。
【００７２】
例３３。ライセンス更新応答は、新しいライセンスを含む、例３２のマシン制御方法。
【００７３】
例３４。ライセンス更新応答は、ライセンスが有効でないことを示すメッセージを含む、例３３のマシン制御方法。
【００７４】
例３５。システムによって実行されることに応答して、システムに、固有識別子をマシンに送信させ、固有識別子に基づいてセキュアなチャネルを確立させ、セキュアなチャネルを通じて、ライセンスの要求を受信させ、メタデータをマシンから受信させ、メタデータに基づいてライセンスデータを生成させ、ライセンスデータをマシンに送信させる複数の命令を備える少なくとも１つの機械可読媒体。
【００７５】
例３６。セキュアなチャネルは、固有識別子を生成するライセンスサーバに関連付けられるセキュリティデバイスを用いて確立される、例３５の少なくとも１つの機械可読媒体。
【００７６】
例３７。セキュリティデバイスは、ソフトウェアガード拡張ハードウェア又はトラステッドエグゼキューションエンジンを含む、例３６の少なくとも１つの機械可読媒体。
【００７７】
例３８。システムに、さらに、ライセンスデータベースにライセンスデータを格納させる命令を備える例３５の少なくとも１つの機械可読媒体。
【００７８】
例３９。ライセンスデータは、期限切れ時間及び受信されたメタデータを含む、例３５の少なくとも１つの機械可読媒体。
【００７９】
例４０。メタデータは、当該マシンを動作させるマシンのＭＡＣアドレス、ＩＰアドレス、及びホスト名を含む、例３９の少なくとも１つの機械可読媒体。
【００８０】
例４１。システムに、さらに、ライセンスデータベースに格納されているライセンス、及び受信されたメタデータに基づいて、ライセンスが有効であるか否かを判断させる命令を備える例３８の少なくとも１つの機械可読媒体。
【００８１】
例４２。システムに、さらに、ライセンス更新要求をマシンから受信させ、ライセンスデータベースに格納されているライセンスデータの有効性に基づいて、ライセンス更新応答を判断させ、ライセンス更新応答を送信させる命令を備える例４１の少なくとも１つの機械可読媒体。
【００８２】
例４３。ライセンス更新応答は、新しいライセンスを含む、例４２の少なくとも１つの機械可読媒体。
【００８３】
例４４。ライセンス更新応答は、ライセンスが有効でないことを示すメッセージを含む、例４２の少なくとも１つの機械可読媒体。
【００８４】
例４５。固有識別子を生成するように構成されるセキュリティデバイスと、固有識別子をマシンに送信し、固有識別子に基づいてセキュアなチャネルを確立し、セキュアなチャネルを通じて、ライセンスの要求を受信し、メタデータをマシンから受信し、メタデータに基づいてライセンスデータを生成し、ライセンスデータをマシンに送信するように構成されるプロセッサとを含むライセンスサーバ。
【００８５】
例４６。セキュリティデバイスは、ソフトウェアガード拡張ハードウェア又はトラステッドエグゼキューションエンジンを含む、例４５のライセンスサーバ。
【００８６】
例４７。システムに、さらに、ライセンスデータベースにライセンスデータを格納させる命令を備える、例４５のライセンスサーバ。
【００８７】
例４８。ライセンスデータは、期限切れ時間及び受信されたメタデータを含む、例４５のライセンスサーバ。
【００８８】
例４９。セキュアクロックをさらに備え、プロセッサは、ライセンスサーバのクロック及び期限切れ時間に基づいて、ライセンスが有効か否かを判断するようにさらに構成される、例４８のライセンスサーバ。
【００８９】
例５０。メタデータは、当該マシンを動作させるマシンのＭＡＣアドレス、ＩＰアドレス、及びホスト名を含む、例４８のライセンスサーバ。
【００９０】
例５１。プロセッサは、ライセンスデータベースに格納されているライセンス、及び受信されたメタデータに基づいて、ライセンスが有効か否かを判断するようにさらに構成される、例４７のライセンスサーバ。
【００９１】
例５２。プロセッサは、ライセンス更新要求をマシンから受信し、ライセンスデータベースに格納されているライセンスデータの有効性に基づいてライセンス更新応答を判断し、ライセンス更新応答を送信するようにさらに構成される、例５１のライセンスサーバ。
【００９２】
例５３。ライセンス更新応答は、新しいライセンスを含む、例５２のライセンスサーバ。
【００９３】
例５４。ライセンス更新応答は、ライセンスが有効でないことを示すメッセージを含む、例５２のライセンスサーバ。
【００９４】
例５５。機器にライセンスを付与するマシン制御方法であって、クライアントによってマシン上の機器の使用を要求する段階と、機器を用いるための要求に応答して、第１の固有識別子をライセンスサーバに送信する段階と、第１の固有識別子に応答して、第２の固有識別子をマシンに送信する段階と、第１の固有識別子及び第２の固有識別子に基づいて、マシンとライセンスサーバとの間のセキュアなチャネルを確立する段階と、機器をアクティブにするためのライセンスサーバからのライセンスを要求する段階と、確立されたセキュアなチャネルを通じて、ライセンスサーバとマシンとの間でライセンスデータを交換する段階と、ライセンスデータが有効であるか否かを判断する段階と、ライセンスデータが有効であるという判断に応答して機器をアクティブにする段階とを備える方法。
【００９５】
例５６。マシン及びライセンスサーバは、各々、セキュリティデバイスに関連付けられる、例５５のマシン制御方法。
【００９６】
例５７。各セキュリティデバイスは、ソフトウェアガード拡張ハードウェア又はトラステッドエグゼキューションエンジンを含む、例５６のマシン制御方法。
【００９７】
例５８。ライセンスサーバに関連付けられるライセンスデータベースにライセンスデータを格納する段階と、マシンにライセンスデータを格納する段階とをさらに備える例５５のマシン制御方法。
【００９８】
例５９。ライセンスデータは、期限切れ時間と、マシンの動作させるクライアントのＭＡＣアドレス、ＩＰアドレス、及びホスト名のうちの１つとを含む、例５８のマシン制御方法。
【００９９】
例６０。マシンの時間が期限切れ時間より後である場合に、機器を非アクティブにする段階をさらに備える例５９のマシン制御方法。
【０１００】
例６１。ライセンスデータベースに格納されているライセンスデータが、マシンに格納されているライセンスデータと一致しない場合に、機器を停止する段階をさらに備える例５９のマシン制御方法。
【０１０１】
例６２。ライセンスが無効であるという判断に応答して、ライセンスデータベースのライセンスデータを削除する段階をさらに備える例５９のマシン制御方法。
【０１０２】
例６３。予め定められた期間の後に、マシンによってライセンス更新を要求する段階と、ライセンス更新が無効である場合に、機器を非アクティブにする段階とをさらに備える例５５のマシン制御方法。
【０１０３】
例６４。システムによって実行されることに応答して、システムに、クライアントによってマシン上の機器の使用を要求させ、機器を用いるための要求に応答して、第１の固有識別子をライセンスサーバに送信させ、第１の固有識別子に応答して、第２の固有識別子をマシンに送信させ、第１の固有識別子及び第２の固有識別子に基づいて、マシンとライセンスサーバとの間のセキュアなチャネルを確立させ、機器をアクティブにするためのライセンスサーバからのライセンスを要求させ、確立されたセキュアなチャネルを通じて、ライセンスサーバとマシンとの間でライセンスデータを交換させ、ライセンスデータが有効であるか否かを判断させ、ライセンスデータが有効であるという判断に応答して機器をアクティブにさせる複数の命令を備える少なくとも１つの機械可読媒体。
【０１０４】
例６５。マシン及びライセンスサーバは、各々、セキュリティデバイスに関連付けられる、例６４の少なくとも１つの機械可読媒体。
【０１０５】
例６６。各セキュリティデバイスは、ソフトウェアガード拡張ハードウェア又はトラステッドエグゼキューションエンジンを含む、例６５の少なくとも１つの機械可読媒体。
【０１０６】
例６７。システムに、さらに、ライセンスサーバに関連付けられるライセンスデータベースにライセンスデータを格納させ、マシンにライセンスデータを格納させる命令をさらに備える例６４の少なくとも１つの機械可読媒体。
【０１０７】
例６８。ライセンスデータは、期限切れ時間と、当該マシンを動作させるクライアントのＭＡＣアドレス、ＩＰアドレス、及びホスト名のうちの１つとを含む、例６７の少なくとも１つの機械可読媒体。
【０１０８】
例６９。システムに、さらに、マシン時間が期限切れ時間より後である場合に、機器を非アクティブにさせる命令をさらに備える例６８の少なくとも１つの機械可読媒体。
【０１０９】
例７０。システムに、さらに、ライセンスデータベースに格納されているライセンスデータが、マシンに格納されているライセンスデータと一致しない場合に、機器を停止させる命令をさらに備える例６８の少なくとも１つの機械可読媒体。
【０１１０】
例７１。システムに、さらに、ライセンスが無効であるという判断に応答して、ライセンスデータベースのライセンスデータを削除させる命令をさらに備える例６４の少なくとも１つの機械可読媒体。
【０１１１】
例７２。システムに、さらに、予め定められた期間の後に、マシンによってライセンス更新を要求させ、ライセンス更新が無効である場合に、機器を非アクティブにさせる命令をさらに備える例６４の少なくとも１つの機械可読媒体。
【０１１２】
例７３。第１の固有識別子を生成するように構成される第１のセキュリティデバイスを有するマシンであって、ライセンス機器の使用の要求を受信するように構成されるマシンと、第２の固有識別子を生成するように構成される第２のセキュリティデバイスを有するライセンスサーバとを備え、マシン及びライセンスサーバは、被ライセンス付与機器に関連付けられるライセンスデータが有効であるか否かを判断するために、被ライセンス付与機器の使用の要求に応答して、マシンとライセンスサーバとの間にセキュアなチャネルを確立するように構成されるライセンス管理システム。
【０１１３】
例７４。セキュリティデバイスは、ソフトウェアガード拡張ハードウェア又はトラステッドエグゼキューションエンジンを含む、例７３のライセンス管理システム。
【０１１４】
例７５。ライセンスサーバに関連付けられる第１のメモリであって、ライセンスサーバに関連付けられるライセンスデータベースにライセンスデータを格納するように構成される第１のメモリと、マシンに関連付けられる第２のメモリであって、ライセンスデータを格納するように構成される第２のメモリとさらに備える例７３のライセンス管理システム。
【０１１５】
例７６。ライセンスデータは、期限切れ時間と、当該マシンを動作させるクライアントのＭＡＣアドレス、ＩＰアドレス、及びホスト名のうちの１つとを含む、例７５のライセンス管理システム。
【０１１６】
例７７。マシンは、クライアントの時間が期限切れ時間より後である場合に、機器を非アクティブにするように構成される、例７６のライセンス管理システム。
【０１１７】
例７８。マシンは、ライセンスデータベースに格納されているライセンスデータが、マシンに格納されているライセンスデータと一致しない場合に、機器を停止するように構成される、例７６のライセンス管理システム。
【０１１８】
例７９。ライセンスサーバは、ライセンスが無効である場合に、ライセンスデータベースのライセンスデータを削除するように構成される例７６のライセンス管理システム。
【０１１９】
例８０。マシンは、予め定められた期間の後に、ライセンス更新を要求し、ライセンス更新が無効である場合に、機器を非アクティブにするように構成される、例７３のライセンス管理システム。
【０１２０】
特定の実施形態が本明細書で示されて説明されているが、多種多様な代替及び／又は等価の実施例は、開示される技術の実施形態の範囲から逸脱することなく、示されて説明される特定の実施形態に代用されてよいことが、当業者によって理解されよう。本願は、本明細書で示されて説明される実施形態の任意の適応又は変化を網羅することが意図される。従って、開示される技術の実施形態は以下の請求項及びこれらの均等のものによってのみ限定されることが、明白に意図される。
［項目１］
クラウドインフラストラクチャにおける機器にライセンスを付与するマシン制御方法であって、
マシンとライセンスサーバとの間にセキュアなチャネルを確立する段階と、
前記マシンによって前記機器をアクティブにするための前記ライセンスサーバからのライセンスを要求する段階と、
確立された前記セキュアなチャネルを通じて、前記ライセンスサーバと前記マシンとの間でライセンスデータを交換する段階と、
前記ライセンスデータが有効であるか否かを判断する段階と、
前記ライセンスデータが有効であるという判断に応答して前記機器をアクティブにする段階と
を備えるマシン制御方法。
［項目２］
前記マシン及び前記ライセンスサーバは、各々、セキュリティデバイスに関連付けられる、項目１に記載のマシン制御方法。
［項目３］
前記セキュリティデバイスは、ソフトウェアガード拡張ハードウェアを含む、項目２に記載のマシン制御方法。
［項目４］
前記セキュリティデバイスは、トラステッドエグゼキューションエンジンを含む、項目２に記載のマシン制御方法。
［項目５］
前記セキュアなチャネルは、前記セキュリティデバイスを用いて確立される、項目２から４のいずれか一項に記載のマシン制御方法。
［項目６］
前記ライセンスサーバに関連付けられるライセンスデータベースに前記ライセンスデータを格納する段階と、
前記マシンに前記ライセンスデータを格納する段階と
をさらに備える項目１から５のいずれか一項に記載のマシン制御方法。
［項目７］
前記ライセンスデータは、期限切れ時間と、前記マシンを動作させるクライアントのＭＡＣアドレス、ＩＰアドレス、及びホスト名のうちの１つとを含む、項目６に記載のマシン制御方法。
［項目８］
クライアントの時間が前記期限切れ時間より後である場合に、前記機器を非アクティブにする段階
をさらに備える項目７に記載のマシン制御方法。
［項目９］
前記ライセンスデータベースに格納されている前記ライセンスデータが、前記マシンに格納されている前記ライセンスデータと一致しない場合に、前記機器を停止する段階
をさらに備える項目７に記載のマシン制御方法。
［項目１０］
前記ライセンスが無効であるという判断に応答して、前記ライセンスデータベースの前記ライセンスデータを削除する段階
をさらに備える項目７に記載のマシン制御方法。
［項目１１］
予め定められた期間の後に、前記マシンによってライセンス更新を要求する段階と、
前記ライセンス更新が無効である場合に、前記機器を非アクティブにする段階と
をさらに備える項目１から１０のいずれか一項に記載のマシン制御方法。
［項目１２］
前記マシンは、仮想マシン、ベアメタルマシン、又はコンテナである、項目１から１１のいずれか一項に記載のマシン制御方法。
［項目１３］
クラウドインフラストラクチャ上の被ライセンス付与機器を有するマシンにアクセスするように構成されるクライアントデバイスと、
前記マシンに関連付けられる第１のセキュリティユニットであって、第１の固有識別子を含む第１のセキュリティユニットと、
前記マシンと通信するように構成されるライセンスサーバと、
前記ライセンスサーバに関連付けられる第２のセキュリティユニットであって、第２の固有識別子を含む第２のセキュリティユニットと
を備え、
前記第１のセキュリティユニット及び前記第２のセキュリティユニットは、前記被ライセンス付与機器に関連付けられるライセンスデータが有効であるか否かを判断するために、前記マシンと前記ライセンスサーバとの間にセキュアなチャネルを確立するように構成されるライセンス管理システム。
［項目１４］
前記第１のセキュリティユニット及び前記第２のセキュリティユニットは、ソフトウェアガード拡張ハードウェアを含む、項目１３に記載のライセンス管理システム。
［項目１５］
前記第１のセキュリティユニット及び前記第２のセキュリティユニットは、トラステッドエグゼキューションエンジンを含む、項目１３に記載のライセンス管理システム。
［項目１６］
前記ライセンスサーバに関連付けられる第１のメモリであって、前記ライセンスサーバに関連付けられるライセンスデータベースに前記ライセンスデータを格納するように構成される第１のメモリと、
前記マシンに関連付けられる第２のメモリであって、前記ライセンスデータを格納するように構成される第２のメモリと
をさらに備える項目１３から１５のいずれか一項に記載のライセンス管理システム。
［項目１７］
前記ライセンスデータは、期限切れ時間と、前記マシンを動作させるクライアントのＭＡＣアドレス、ＩＰアドレス、及びホスト名のうちの１つとを含む、項目１６に記載のライセンス管理システム。
［項目１８］
前記マシンは、クライアントの時間が前記期限切れ時間より後である場合に、前記機器を非アクティブにするように構成される、項目１７に記載のライセンス管理システム。
［項目１９］
前記マシンは、前記ライセンスデータベースに格納されている前記ライセンスデータが、前記マシンに格納されている前記ライセンスデータと一致しない場合に、前記機器を停止するように構成される、項目１７に記載のライセンス管理システム。
［項目２０］
前記ライセンスサーバは、前記ライセンスが無効である場合に、前記ライセンスデータベースの前記ライセンスデータを削除するように構成される、項目１７に記載のライセンス管理システム。
［項目２１］
前記マシンは、予め定められた期間の後に、ライセンス更新を要求し、前記ライセンス更新が無効である場合に、前記機器を非アクティブにするように構成される、項目１３から２０のいずれか一項に記載のライセンス管理システム。
［項目２２］
前記マシンは、仮想マシン、ベアメタルマシン、又はコンテナである、項目１３から２１のいずれか一項に記載のライセンス管理システム。
［項目２３］
前記第１の固有識別子は、乱数生成部を用いて決定される、項目１３から２２のいずれか一項に記載のライセンス管理システム。
【図１】
2017152017.tif 000003
【図２】
2017152017.tif 000004
【図３】
2017152017.tif 000005
【図４】
2017152017.tif 000006
【図５】
2017152017.tif 000007
【図６】
2017152017.tif 000008
【図７】
2017152017.tif 000009