JP2013540323A - 動的アプリケーション環境において証明可能なアイデンティティのセキュアな展開 - Google Patents

動的アプリケーション環境において証明可能なアイデンティティのセキュアな展開 Download PDF

Info

Publication number
JP2013540323A
JP2013540323A JP2013532829A JP2013532829A JP2013540323A JP 2013540323 A JP2013540323 A JP 2013540323A JP 2013532829 A JP2013532829 A JP 2013532829A JP 2013532829 A JP2013532829 A JP 2013532829A JP 2013540323 A JP2013540323 A JP 2013540323A
Authority
JP
Japan
Prior art keywords
computer
identity
account
sending
token
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013532829A
Other languages
English (en)
Other versions
JP5934224B2 (ja
JP2013540323A5 (ja
Inventor
ジルカ イアン
テボスヤン カーレン
サンダース コーリー
エム.ムーア ジョージ
スリバスタバ モヒト
ユージーン ルシノビッチ マーク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2013540323A publication Critical patent/JP2013540323A/ja
Publication of JP2013540323A5 publication Critical patent/JP2013540323A5/ja
Application granted granted Critical
Publication of JP5934224B2 publication Critical patent/JP5934224B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • Multi Processors (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本発明は、動的環境における仮想マシン(VM)に対して証明可能なアイデンティティをセキュアに展開することに関する。実施形態において、ファブリックコントローラは、VMホストにVMを作成させ、そのVMをシークレットに送る。ファブリックコントローラは、セキュリティトークンサービスに、それと同じシークレット(または公開/秘密キーペアの秘密キーなどの第2のシークレット)を、VMのアカウントを作成する命令と一緒に送る。VMは、VMがそのシークレットを所有しているという証明をセキュリティトークンサービスに提供し、見返りにフルトークンを受信する。クライアントがその展開に接続するとき、クライアントは、自身が信頼するセキュリティトークンサービスから公開キーを受信し、VMからフルトークンを受信する。クライアントは、VMが有していると主張しているアイデンティティを有していると判定する公開キーを用いてフルトークンを認証する。

Description

一般に、コンピュータはセキュアに通信する。コンピュータは、証明可能なアイデンティティを有し、別のコンピュータは、最初のコンピュータが(例えば、特定企業のログインおよび許可サーバ)であると主張するコンピュータであるかを判定するのにそのアイデンティティを評価することができる。
企業または他の事業体が、仮想マシン(VM)から成るサーバファームを展開(deploy)することも一般的である。そのようなサーバファームでは、複数のVMが均一に構成され、リモートデスクトップまたはリモートアプリケーションなどの、クライアントにリソースを提供する。そのようなサーバファームを管理する過程で、VMは、破壊されて(再)作成され得る。VMは、例えば、ある周知のマシン状態にVMを再作成することによって、ある周知のマシン状態のドリフトを防ぐなどの、種々の理由で破壊され、その後再作成され得る。
VMが破壊されて作成されるこのような展開(deployment)では、各VMは、証明可能なアイデンティティを有することができる。VMの展開に対して証明可能なアイデンティティを確立するには多くの問題があり、その一部は、よく知られている。
従って、サーバファームのVMに対して証明可能なアイデンティティを確立する技術を提供することによって、従来技術が改善されるであろう。
従来技術が有し、且つ本発明によって削減または除去される1つの問題は、VMの証明可能なアイデンティティを確立するのに必要な時間の長さである。従来技術は、実行するのに比較的長い時間が必要である。この時間コストは、ひとたびマシンがセットアップされると、長期間稼動するであろう静的環境では大した問題にはならない。しかしながら、MICROSOFT Azureのクラウドコンピューティングプラットフォームなどの、VMの展開環境では、VMは、寿命が比較的短く、何度も再作成されるであろう。このような膨大な数の作成イベント、およびVMが作成された後の寿命が比較的短いことは、作成されたVMに対して証明可能なアイデンティティを確立する際にかかるこの比較的大きいコストが、VMの長い時間を占め、そしてVMが完全に機能している状態の時間がより短くなるであろうことを意味する。
本発明の一実施形態において、コントローラは、サーバファームのVMを管理する。このコントローラは、例えば、MICROSOFT Azureのクラウドコンピューティング環境の展開においてVMをモニタし、維持し、そして設定(provision)する、MICROSOFTのAzureファブリックコントローラであってよい。この展開は、サーバファームのクライアントに、クライアントがVMの証明可能なアイデンティティをサーバファーム内で確認するのに使用することができるトークンを提供するように構成されたセキュリティトークンサービスも備える。
一実施形態において、コントローラが新しいVMのインスタンスを展開するとき、コントローラは、VMがブートするイメージファイルに1つの暗号データ(「シークレット」)を注入する。他の実施形態では、個別に確立されたセキュリティネットワークチャネル経由などでシークレットと通信するか、またはVMがシークレットを生成し、そしてセキュアなネットワークチャネルを介してシークレットをコントローラに送信する、他の方法を実装できる。コントローラは、これと同じ暗号データ(または暗号データが秘密キーであり、もう1つの暗号データが公開キーである非対称キーのペアなどの、暗号データに対応する他の暗号データ)を、セキュリティトークンサービスがその新しいVMのクレームを生成するのに使用する他の情報と一緒に、セキュリティトークンサービスに送る。コントローラがその新しいVMのインスタンスを展開した後、その新しいVMは、そのVMがシークレットを所有するセキュリティトークンサービス証明をセキュリティプロトコル経由で送り、それに応答して、フルクレームトークン(full claim token)を受信する。
クライアントがサーバファームに接続するとき、クライアントは、接続するVMの証明可能なアイデンティティを確立しようと試みる。それを行うために、クライアントは、セキュリティトークンサービスがクレームに署名するのに使用する公開キーをセキュリティトークンサービスから読み出す。クライアントは、VMからフルクレームトークンも受信し、そしてセキュリティトークンサービスからの公開キー、およびVMからのフルクレームトークンを使用して、VMのアイデンティティが証明されたか否かを判定する。
本明細書に説明する実施形態例では、クライアントがサーバファームのVMに接続する状況を論じる。説明されているように、クライアントは、従来、サーバによって実行されると見なされている役割、つまりVMのアイデンティティを認証する役割を果たすものと考えてよい。その役割を逆にして、VMがクライアントのアイデンティティを認証する通信を行う実施形態もある。いずれの種類の実施形態においても、サーバファームのVMのセキュアで証明可能なアイデンティティを確立する発明を展開できる。
別の実施形態において、本発明は、コントローラが、単一のアプリケーションインスタンスをサーバファーム内(あるいはアプリケーションインスタンスが、例えば、地理的な制約のために移動する場合、異なるデータセンター内)の別のVMホストに再展開するときに実装される。アプリケーションインスタンスは、基礎となるオペレーティングシステムがセキュリティパッチング、または再ブート(rebooting)を経るために、または基礎となるハードウェアが不具合を起こす場合に頻繁に移動する恐れがある。従って、本発明は、空間および時間にわたって耐久性のあるセキュアで証明可能なアイデンティティを提供するので、たとえアプリケーションインスタンスが異なる物理的サーバに強制的に移動されても、セキュアで証明可能なアイデンティティは、変わらないままである。これが、セキュアで証明可能なアイデンティティが基礎となる物理的ハードウェアに縛られていた、従来技術に対する改善である。
サーバファームの仮想マシンに対して証明可能なアイデンティティを確立するシステム、方法、およびコンピュータ可読媒体について、添付図面を参照してさらに説明する。
本明細書に説明する技術を実施できる汎用コンピューティング環境の例を示す図である。 証明可能なアイデンティティを有する仮想マシン内で実施できるリモートプレゼンテーションセッションサーバの例を示す図である。 本明細書に説明する技術を実装することができる仮想マシンホストの例を示す図である。 本明細書に説明する技術を実装することができる仮想マシンホストの第2の例を示す図である。 本発明の実施形態の態様が実装されるサーバファームの例を示す図である。 本発明の実施形態の態様が実装されるサーバファームの別の例を示す図である。 本発明の実施形態の態様が実装されるサーバファームの別の例を示す図である。 サーバファームのVMに対して証明可能なアイデンティティを確立するサーバファームの動作手順の例を示す図である。 サーバファームのVMの証明可能なアイデンティティを検証するサーバファームのクライアントの動作手順の例を示す図である。
実施形態は、1または複数のコンピュータシステム上で実行できる。図1および以下の説明は、開示された発明の主題を実装できる、適切なコンピューティング環境の簡潔な概説を与えることを意図する。
説明全体に使用されるプロセッサという用語は、ハードウェア割り込みコントローラ、ネットワークアダプタ、グラフィックプロセッサ、ハードウェアベースのビデオ/オーディオコーデックなどの、ハードウェアコンポーネント、およびそのようなハードウェアを動作するのに使用されるファームウェアを含むことができる。プロセッサという用語は、マイクロプロセッサ、特定用途向け集積回路、および/または1または複数の論理プロセッサ、例えば、ファームウェアおよび/またはソフトウェアから読み取られる命令によって構成されたマルチコア汎用処理ユニットの1または複数のコアも含むことができる。論理プロセッサは、メモリ、例えば、RAM、ROM、ファームウェア、および/またはマスストレージからロードされる機能を実行する働きをする論理を実施する命令によって構成されることができる。
図1を参照すると、例示的な汎用コンピューティングシステムが示されている。汎用コンピューティングシステムは、少なくとも1つのプロセッサまたは処理ユニット21、システムメモリ22、およびシステムが動作状態の時に、システムメモリを含む種々のシステムコンポーネントを処理ユニット21に通信接続するシステムバス23を含むことができる。システムバス23は、種々のバスアーキテクチャのいずれかを使用したメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む、いくつかのタイプのバス構造のいずれであってもよい。システムメモリは、リードオンリーメモリ(ROM)24およびランダムアクセスメモリ(RAM)25を含むことができる。コンピュータ20内の要素間で、起動時などに情報を転送するのに役立つ基本ルーチンを包含する基本入力/出力システム26(BIOS)は、ROM24に記憶される。コンピュータ20は、ハードディスク(図示せず)の読み取りおよび書き込みを行うハードディスクドライブ27、リムーバブル磁気ディスク29の読み取りおよび書き込みを行う磁気ディスクドライブ28、およびCD ROMまたは他の光媒体などの、リムーバブル光ディスク31の読み取りおよび書き込みを行う光ディスクドライブ30をさらに含むことができる。ハードディスクドライブ27、磁気ディスクドライブ28、および光ディスクドライブ30は、図示したように、それぞれ、ハードディスクドライブインタフェース32、磁気ディスクドライブインタフェース33、光ディスクドライブインタフェース34によってシステムバス23に接続されている。ドライブおよびそれらに関連するコンピュータ可読媒体は、コンピュータ20のコンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータから成る不揮発性ストレージを提供する。本明細書に説明する例示的な環境は、ハードディスク、リムーバブル磁気ディスク29およびリムーバブル光ディスク31を用いるが、フラッシュメモリカード、デジタルビデオディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)などの、コンピュータによってアクセス可能であるデータを記憶することができる、他のタイプのコンピュータ可読媒体も例示的なオペレーティング環境に使用できることを当業者は理解されたい。一般に、そのようなコンピュータ可読記憶媒体をいくつかの実施形態に使用して、本開示の態様を実施するプロセッサ実行可能命令を記憶することができる。
コンピュータ可読命令を備えるいくつかのプログラムモジュールは、ハードディスク、磁気ディスク29、光ディスク31、ROM24またはRAM25などの、コンピュータ可読媒体上に記憶されてもよく、それらの可読媒体は、オペレーティングシステム35、1または複数のアプリケーションプログラム36、他のプログラムモジュール37およびプログラムデータ38を含んでもよい。処理ユニットによって実行されると、コンピュータ可読命令は、以下により詳細に説明するアクションが実行されるようにさせるか、または種々のプログラムモジュールがインスタンス化されるようにさせる。ユーザは、キーボード40およびポインティングデバイス42などの、入力デバイスを介してコマンドおよび情報をコンピュータ20に入力できる。他の入力デバイス(図示せず)は、マイクロフォン、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナなどを含むことができる。これらと他の入力デバイスは、システムバスに接続されているシリアルポートインタフェース46を介して処理ユニット21に接続されることが多いが、パラレルポート、ゲームポートまたはユニバーサルシリアルバス(USB)などの、他のインタフェースによって接続されてもよい。モニタ47、ディスプレイまたは他のタイプの表示デバイスも、ビデオアダプタ48などのインタフェース経由でシステムバス23に接続することができる。ディスプレイ47に加えて、コンピュータは、典型的には、スピーカおよびプリンタなどの、他の周辺出力デバイス(図示せず)を含む。図1の例示的なシステムは、ホストアダプタ55、小型計算システムインタフェース(SCSI)バス56、およびSCSIバス56に接続された外部ストレージデバイス62も含む。
コンピュータ20は、リモートコンピュータ49などの1または複数のリモートコンピュータへの論理接続を使用するネットワーク化された環境で動作できる。リモートコンピュータ49は、別のコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスまたは他の共通ネットワークノードであってよいし、図1にはメモリストレージデバイス50しか例示されていないが、典型的には、コンピュータ20に対して上記の要素うちの多くまたはすべてを含むことができる。図1に示した論理接続は、ローカルエリアネットワーク(LAN)51およびワイドエリアネットワーク(WAN)52を含むことができる。そのようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいて一般的である。
LANネットワーキング環境で使用される場合、コンピュータ20を、ネットワークインタフェースまたはアダプタ53を介してLAN51に接続することができる。WANネットワーキング環境で使用される場合、コンピュータ20は、典型的には、インターネットなどのワイドエリアネットワーク52を通じて通信を確立するモデム54または他の手段を含むことができる。内部または外部であってよいモデム54を、シリアルポートインタフェース46経由でシステムバス23に接続することができる。ネットワーク化環境において、コンピュータ20に対して示されたプログラムモジュール、またはその一部を、リモートメモリストレージデバイスに記憶できる。図示されたネットワーク接続は、例示的であり、コンピュータ間で通信リンクを確立する他の手段も使用されてよいことが理解されよう。さらに、本開示の様々な実施形態は、特に、コンピュータ化されたシステムに適合するように想定されているが、本明細書では、本開示をそのような実施形態に限定することを全く意図していない。
コンピュータ20のシステムメモリ22は、コンピュータ20によって実行されると、コンピュータ20が図5または図6の動作手順などの本発明を実装するようにさせる命令を備えることができる。
一般に、図2は、本発明の態様を含むように構成されることができるサーバ環境のハイレベルの概略を示す。サーバ204は、図1のコンピュータ20内で有効であり(effectuate)、システムメモリ22は、処理ユニット21によって実行されると、処理ユニット21が本発明を実装する動作を実行するようにさせる命令を備える。図に関しては、リモートプレゼンテーションセッションサーバを有効にするように構成された回路を含むことができるサーバ204が示され、他の実施形態において、サーバ204は、リモートプレゼンテーション接続をサポートするように構成された回路を含むことができる。示された例において、サーバ204は、セッション1からN(Nは、1よりも大きい整数)までのような、クライアントに接続する1または複数のセッションを生成するように構成されることができる。簡単に言えば、本発明の実施形態の例のセッションは、一般的に、サーバ204のカーネル214と対話するように構成された複数のサブシステム(例えば、ソフトウェアコード)によって有効にする動作環境を含むことができる。例えば、セッションは、デスクトップウィンドウなどのユーザインタフェースをインスタンス化するプロセス、ウィンドウ内のマウスの動きをトラックするサブシステム、アイコン上のマウスクリックを、プログラムなどのインスタンスを有効にするコマンドに変換するサブシステムを含むことができる。セッションは、例えば、サーバ204がクライアント201からネットワーク接続を通じて接続要求を受信するときに、サーバ204によってユーザごとに生成されることができる。一般に、接続要求は、例えば、サーバ204の回路によって有効にすることができるトランスポート論理210によって最初に対処されることができる。トランスポート論理210は、いくつかの実施形態において、接続メッセージを受信して、そのメッセージをエンジン212に転送するように構成されることができるネットワークアダプタ、ファームウェア、およびソフトウェアを含む。図2に示すように、トランスポート論理210は、いくつかの実施形態において、セッションごとにプロトコルスタックインスタンスを含むことができる。一般に、各プロトコルスタックインスタンスは、ユーザインタフェースの出力をクライアントに送り、そしてクライアントから受信されたユーザ入力を、そのセッションと関連付けられたセッションコア244に送るように構成されることができる。
引き続き図2の概説に関して、エンジン212は、本発明のいくつかの実施形態の例において、セッションの要求を処理し、セッションごとの機能性を判定し、物理的リソースのセットをセッションに割り当てることによってセッションを生成し、そしてセッションのプロトコルスタックインスタンスをインスタンス化するように構成されることができる。いくつかの実施形態において、エンジン212は、上述した動作手順のうちのいくつかを実装することができる特化した回路コンポーネントによって有効にすることができる。例えば、その回路は、いくつかの実施形態の例において、メモリ、およびエンジン212を有効にするコードを実行するように構成されたプロセッサを含むことができる。図2に示すように、いくつかの事例において、エンジン212は、接続要求を受信して、例えば、ライセンスが利用可能であることを判定することができ、そしてその要求に対するセッションが生成される。サーバ204が、リモートプレゼンテーション能力を含む、リモートコンピュータである状況において、エンジン212は、ライセンスを検査せずに接続要求に応答してセッションを生成するように構成されることができる。図2に示すように、セッションマネージャ216は、メッセージをエンジン212から受信するように構成されることができ、そのメッセージに応答して、セッションマネージャ216は、セッション識別子をテーブルに付加し、メモリをセッション識別子に割り当て、そしてシステム環境変数およびサブシステムプロセスのインスタンスをセッション識別子に割り当てられたメモリ内で生成することができる。
図2に示すように、セッションマネージャ216は、セッションコア244などのカーネルモード部を含むことができるランタイムサブシステム240などの環境サブシステムをインスタンス化することができる。例えば、環境サブシステムは、実施形態において、サービスのいくつかのサブセットをアプリケーションプログラムに顕在化(expose)し、そしてアクセスポイントをオペレーティングシステム214のカーネルに提供するように構成されている。実施形態の例において、ランタイムサブシステム240は、プロセスおよびスレッドの実行を制御することができ、セッションコア244は、スレッドおよびスレッドが実行されるスケジュール時間にメモリを割り当てる要求をカーネル214の管理部(executive)に送ることができる。実施形態において、セッションコア244は、グラフィック表示インタフェース(GDI)246、セキュリティシステム250、および入力サブシステム252を含むことができる。入力サブシステム252は、これらの実施形態において、クライアント201からセッションと関連付けられたプロトコルスタックインスタンス経由でユーザ入力を受信して、その入力を適切なセッションのセッションコア244に送信するように構成されることができる。ユーザ入力は、いくつかの実施形態において、絶対的および/または相対的なマウスの動きコマンド、マウス座標、マウスクリック、キーボード信号、ジョイスティックの動き信号などを示す信号を含む。ユーザ入力、例えば、アイコン上のマウスのダブルクリックは、セッションコア244によって受信されることができ、入力サブシステム252は、アイコンがそのダブルクリックと関連付けられた座標に位置していることを判定するように構成されることができる。入力サブシステム252は、その後、そのアイコンと関連付けられたアプリケーションのプロセスを実行することができるランタイムサブシステム240に通知を送るように構成されることができる。
クライアント201から入力を受信することに加え、描画コマンドが、アプリケーションおよび/またはデスクトップから受信されて、そしてGDI246によって処理されることができる。GDI246は、一般に、グラフィカルオブジェクト描画コマンドを生成することができるプロセスを含むことができる。GDI246は、この実施形態の例において、その出力をリモートプレゼンテーションサブシステム254に渡すように構成されることができ、そのシステムにおいてコマンドは、セッションにアタッチされる表示ドライバ用にフォーマットされる。ある実施形態の例において、1または複数の物理的表示を、例えば、リモートプレゼンテーションのセッション状況において、サーバ204にアタッチすることができる。このような実施形態の例において、リモートプレゼンテーションサブシステム254は、リモートコンピュータシステムの表示ドライバによってレンダリングされる描画コマンドを作成(mirror)し、そして作成された情報をセッションと関連付けられたスタックインスタンス経由でクライアント201に送信するように構成されることができる。別の実施形態の例において、サーバ204がリモートプレゼンテーションセッションサーバである場合、リモートプレゼンテーションサブシステム254は、サーバ204に物理的にアタッチされる表示と関連付けられなくてよい仮想表示ドライバを含むように構成されることができ、例えば、サーバ204は、ヘッドレスに稼動することもあり得る。リモートプレゼンテーションサブシステム254は、この実施形態において、1または複数の仮想表示の描画コマンドを受信し、そして描画コマンドをセッションと関連付けられたスタックインスタンス経由でクライアント201に送信するように構成されることができる。本発明の実施形態において、リモートプレゼンテーションサブシステム254は、各表示ドライバの表示解像度を判定するように構成されることができ、例えば、仮想表示と関連付けられた仮想表示ドライバの表示解像度または物理的表示と関連付けられた表示ドライバの表示解像度を判定し、そして関連するプロトコルスタックインスタンス経由でクライアント201にパケットを送ることができる。
いくつかの実施形態において、セッションマネージャ216は、セッションのログオンおよびログオフに対処するように構成されることができるセッションのセッション識別子と関連付けられたログオンプロセス(ログインプロセスと呼ばれることもある)のインスタンスを付加的にインスタンス化することができる。このような実施形態の例において、ログオンプロセスと関連付けられたグラフィカルユーザインタフェースを示す描画コマンドを、クライアント201に送信することができ、そこでのクライアント201のユーザは、アカウント識別子、例えば、ユーザ名/パスワードの組み合わせ、スマートカード識別子、および/または生体情報をログオン画面に入力することができる。その情報をサーバ204に送信し、そしてエンジン212およびセッションコア244のセキュリティサブシステム250に送ることができる。例えば、ある実施形態の例において、エンジン212は、ユーザアカウントがライセンスと関連付けられているかどうか判定するように構成されることができ、セキュリティサブシステム250は、セッションのセキュリティトークンを生成するように構成されることができる。
図3は、本発明の実施形態の態様を実装することができる仮想マシンホスト(VMHostまたはVMホストと呼ばれることもある)の例を示す。VMHostを図1に示したコンピュータ20などのコンピュータ上で実装することができ、VMHost上のVMは、図2のサーバオペレーティングシステム214などの、リモートプレゼンテーションセッションサーバを有効にするオペレーティングシステムを実行できる。
ハイパーバイザマイクロカーネル302は、システムメモリのゲストオペレーティングシステムのビューを制限することによってパーティションを強制することができる。ゲストメモリは、ハイパーバイザによって制御されているメモリのパーティションのビューである。ゲスト物理アドレスを、ハイパーバイザによって管理される、システム物理アドレス(SPA)、即ち、物理的コンピュータシステムのメモリによって支援(back)することができる。実施形態において、GPAおよびSPAをメモリブロック、即ち、メモリのうちの1または複数のページに配置することができる。ゲストが自身のページテーブルを使用してブロックに書き込む場合、そのデータは、実際には、ハイパーバイザによって使用されるシステム規模のページテーブルに従って異なるシステムアドレスを有するブロックに記憶される。
示された例において、親パーティションコンポーネント304は、いくつかのハイパーバイザの実装において「ドメイン0」と同様であると考えることもでき、仮想化層に提供するためにハイパーバイザマイクロカーネル302と対話することができる。この動作環境における親パーティション304は、「バックエンドドライバ」と呼ばれることもある仮想化サービスプロバイダ328(VSP)を使用することによって子パーティション1−N内で実行するゲストオペレーティングシステムにリソースを提供するように構成されることができる。大まかに言えば、VSP328は、仮想化サービスクライアント(VSC)(「フロントエンドドライバ」と呼ばれることもある)によってハードウェアリソースのインタフェースを多重化し、そして通信プロトコル経由で仮想化サービスクライアントと通信するのに使用されることができる。図に示すように、仮想化サービスクライアントは、ゲストオペレーティングシステムという状況において実行することができる。これらのドライバは、それらがゲストではなく、ハイパーバイザに供給され得るという点において、ゲスト内のその他のドライバとは異なる。
エミュレータ334(例えば、仮想化された統合デバイスエレクトロニクスデバイス(IDEデバイス)、仮想化されたビデオアダプタ、仮想化されたNICなど)は、親パーティション304内で稼動するように構成されることができ、ゲストオペレーティングシステム320および322に使用可能なリソースにアタッチされる。例えば、ゲストOSが仮想デバイスまたは仮想デバイス302にマップされたメモリのレジスタにタッチすると、マイクロカーネルハイパーバイザは、要求をインターセプトして、関連するエミューレタに書き込もうと試みるゲストOSに値を渡す。
各子パーティションは、ゲストオペレーティングシステム(320および322)がその上で実行するスレッドを管理してスケジュールすることができる、1または複数の仮想プロセッサ(330および332)を含むことができる。一般に、仮想プロセッサは、実行可能命令、および物理プロセッサの表現(representation)を特定のアーキテクチャに提供する関連した状態情報である。例えば、1つの仮想マシンは、INTELx86プロセッサの特性を有する仮想プロセッサを有することもあれば、一方で別の仮想プロセッサは、PowerPCプロセッサの特性を有することもある。この例における仮想プロセッサは、仮想プロセッサを有効にする命令が論理プロセッサによって支援されるように、コンピュータシステムの論理プロセッサにマップされることができる。従って、複数の論理プロセッサを含む実施形態において、例えば、他の論理プロセッサがハイパーバイザ命令を実行する間、仮想プロセッサは同時に論理プロセッサによって実行されることができる。パーティション内の仮想プロセッサとメモリの組み合わせを仮想マシンと見なすことができる。
ゲストオペレーティングシステムは、例えば、MICROSOFT WINDOWS(登録商標)オペレーティングシステムなどのオペレーティングシステムを任意に含むことができる。ゲストオペレーティングシステムは、ユーザ/カーネルモードの動作を含むことができ、スケジューラ、メモリマネージャなどを含むことができるカーネルを有することができる。一般的に言えば、カーネルモードは、少なくとも特権的プロセッサ命令へのアクセスを許可する実行モードを論理プロセッサ内に含むことができる。各ゲストオペレーティングシステムは、関連するファイルシステムを有することができ、そのファイルシステムに記憶されるターミナルサーバ、電子商取引サーバ、電子メールサーバなどのアプリケーション、およびゲストオペレーティングシステム自体に記憶されるアプリケーションを有することができる。ゲストオペレーティングシステムは、仮想プロセッサ上で実行するスレッドをスケジュールすることができ、そのようなアプリケーションのインスタンスを有効にすることができる。
図4は、本明細書に説明する技術を実装することができるVMHostの第2の例を示す図である。図4は、図3のコンポーネントと同様のコンポーネントを示す。しかしながら、この実施形態の例において、ハイパーバイザ338は、マイクロカーネルコンポーネント、および図3の仮想化サービスプロバイダ328およびデバイスドライバ324などの、親パーティションからのコンポーネントを含むことができ、一方で管理オペレーティングシステム336は、例えば、ハイパーバイザ338を構成するのに使用される構成ユーティリティを包含できる。このアーキテクチャにおいて、ハイパーバイザ338は、図3のハイパーバイザマイクロカーネル302と同じまたは同様の機能を実行することができる。しかしながら、このアーキテクチャにおいて、ハイパーバイザ338は、子パーティション内で実行するゲストオペレーティングシステムにリソースを提供するように構成されることができる。図4のハイパーバイザ338をスタンドアロンのソフトウェア製品、オペレーティングシステムの一部にすることができ、マザーボードのファームウェアに組み込むことができるし、またはハイパーバイザ338の一部を特定集積回路によって有効にすることができる。
図5は、本発明の実施形態の態様が実装される展開の例を示す図である。図5に示したホスト414は、図3または図4のVMホスト300の例を備えることができ、ホスト414は、図2のリモートプレゼンテーションセッションサーバ204などのリモートプレゼンテーションセッションサーバの機能を実行するVM408を備えることができる。展開400は、ファブリックコントローラ402、セキュリティトークンサービス404、ホスト層406、VM408−1から408−Nまで、およびVMイメージ410−1から410−Nまで、を備える。図示したように、VM408のインスタンスは3つあるが、システム内で本発明を実装するVM408のインスタンスはそれよりも多くまたは少なく存在する場合もあることが理解されよう。同様に、図示したように、VMイメージ410のインスタンスは3つあるが、システム内で本発明を実装するVMイメージ410のインスタンスはそれよりも多くまたは少なく存在する場合もあることが理解されよう。VM408のインスタンスは、均一に構成されている。即ち、インスタンスは、オペレーティングシステムの同じバージョンを実行し、且つあるアプリケーションを実行するように構成されている。展開400内に他のVMがあり、VM408で均一に構成されていない場合がある。図示したように、VM408の各インスタンスは、展開400にアクセスするクライアントコンピュータにリソースを提供するように構成されている。例えば、VM408のインスタンスは、リモートデスクトップまたはリモートアプリケーションをクライアントに提供するように構成され得る。VM408の各インスタンスは、関連付けられたVMイメージ410を有する(例えば、VM408−1は、関連付けられたVMイメージ410−aを有する)。VMに関連付けられたVMイメージは、VMを実行する際に使用される命令および/またはデータを出す(bear)記憶媒体を備える。例えば、VMイメージ410−1は、VM408−1を実行するゲストオペレーティングシステム(ゲストOS)を備えることができる。VMイメージ410は、VM408が実行されると、VM408が、関連付けられたVMイメージ410をマウントして、それに記憶された命令および/またはデータにアクセスするように構成することによってVM408と関連付られる。
VM408のインスタンスは、物理ホスト414のホスト層406によってホストされる。例えば、MICROSOFT Azure環境において、ホスト層406は、Azure VMHostのインスタンスを備えることができる。ホスト層406は、物理マシン上で実行し、VM408の複数のインスタンスが物理マシン上で同時に稼動できるように構成されている。ホスト層406は、VM408に仮想オペレーティングプラットフォームを提供して、VM408の実行(およびVM408内で実行するゲストオペレーティングシステム)をモニタする。
セキュリティトークンサービス404は、展開400内でVMおよび他のエンティティ(ファブリックコントローラ402など)のアカウントを作成および管理するように構成されている。つまり、セキュリティトークンサービス404は、展開400内で信頼の連鎖(a chain of trust)を拡張して、他のエンティティをその連鎖の一部にすることができる。セキュリティトークンサービス404自体は、クライアント412が、セキュリティトークンサーバ404によって発行されるセキュリティトークンをクライアントが認証するのを許可する情報で構成されているので、信頼されていると見なしてよい。例えば、クライアント412は、セキュリティトークンサービス404が、トークンに署名してそれをVM408に渡すのに使用する証明書で構成されることができる。代替として、クライアント412は、セキュリティトークンサービス404がトークンに署名して発行するのに使用される証明書のサブジェクト名を所有するように構成され得る。
VM408は、セキュリティトークンサービス404からトークンを要求できる。その要求において、VM408は、VM408がファブリックコントローラ402によって設定されたシークレットを所有しているという証明を提供することによって自身のアイデンティティをセキュリティトークンサービス404に証明する。セキュリティトークンサービス404は、ファブリックコントローラ402によって作成されたアカウント情報(VM408の公開キーなど)を使用してVM408のアイデンティティを認証する。セキュリティトークンサービス404は、その後、VM408にトークンを発行する。トークンは、セキュリティトークンサービス404の秘密キーを用いて署名される。VM408は、その後、トークンをクライアント412に送り、クライアント412は、クライアント412が備えているセキュリティトークンサービスの証明書に関する情報を使用して、そのトークンがセキュリティトークンサービス404によって署名されたことを認証する。トークンを認証すると、クライアント412は、VM408のトークンでアサートされたアイデンティティを検査することができる。
本発明を有効にする通信フローの例も図5に示す。通信フロー(1)において、セキュリティトークンサービス404は、自身の公開キーをクライアント412に送る。これは、セキュリティトークンサービス404がクライアント412からその公開キーの要求を受信することに応答して発生する場合もある。通信フロー(2)は、ホスト層406に命令して、VM408−1を作成し、そして(VHD410−1の位置にVM408−1を記憶して、そこでVM408−1がシークレットを探すように構成するなどによって)シークレットをVM408−1に渡すようにさせるファブリックコントローラ402を示している。通信フロー(3)は、ファブリックコントローラ402がそのシークレットをセキュリティトークンサービス404に送り、そしてセキュリティトークンサービス404に命令してVM408−1のアカウントを作成するようにさせることも示している。通信フロー(4)において、VM408−1は、自身がシークレットを持っているという証拠をセキュリティトークンサービス404に送る。これは、シークレット自体を備えてもよいが、攻撃者が通信フロー(4)に使用される通信リンクを調べまわる(snoop)ことが考えられ得る状況において、セキュリティトークンサービスシークレットを所有しているというある間接的証拠を備えたほうがよいであろう。例えば、シークレットが数字を備える場合、VM−1 408−1は、数値演算に入力する時にシークレットを使用し、その後、その数値演算からの出力(それがシークレットであるという証拠)をセキュリティトークンサービス404に送る。セキュリティトークンサービス404もシークレットを有し、入力時にシークレットを使用する同じ数値演算を実行し、その後、その計算結果をVM−1 408−1から受信した計算結果と比較することもできる。その計算結果が受信した計算結果と一致する場合、セキュリティトークンサービスは、VM−1 408−1がシークレット、従って展開の有効メンバを有していると判定し、そしてVM−1 408−1が自身のアイデンティティをクライアントに証明するのに使用することができるフルトークン(full token)を、VM−1 408−1に送ることができる。セキュリティトークンサービス404は、VM−1 408−1がセキュリティトークンサービス404の公開キーを用いてフルトークンを復号し、そしてフルトークンがセキュリティトークンサービス404によって生成されたこと、およびそのフルトークンが送信中に変更されなかったことを確認できるように、フルトークンを送る前に自身の秘密キーを用いてこのフルトークンに署名できる。通信フロー(5)は、VM−1 408−1のフルトークンを受信するクライアント412を示す。これは、例えば、クライアント412がVM−1 408−1のフルトークンの要求をVM−1 408−1に送ることに応答して発生する場合もある。別の実施形態において、VM−1 408−1は、自身のトークンを(展開のゲートウェアまたは接続ブローカなどの)周知の位置においてブロードキャストあるいは提供でき、クライアント412は、この位置からトークンを取得できる。
通信フロー(1)および通信フロー(5)の結果として、クライアント412は、セキュリティトークンサービス304の公開キーとVM−1 408−1のフルトークンとの両方を有することになる。そうなればクライアント412は、公開キーを用いてフルトークンを認証できる(および、その結果、VM−1 408−1は、自身が有していると主張するアイデンティティを有する)。例えば、入力時に公開キーおよびフルトークンを必要とする数値演算が、クライアント412が知っている出力と一致する周知の出力を算出する場合、その出力は、VM−1 408−1が、自身が有していると主張するアイデンティティを有するのであれば、一致するはずであり、クライアント412は、VM−1 408−1が、自身が有していると主張するアイデンティティを有すると判定することになる。
本発明を、図5のこのような通信フローに厳密に順守することなしに(図6の通信フローを実装することなどによって)有効にできることが理解されよう。例えば、本発明の実施形態において、クライアント412は、通信フロー(2)、(3)、(4)または(5)のうちのいずれかが発生するまで、セキュリティトークンサービス404から公開キーを受信(本明細書では通信フロー(1)として示されている)しなくてよい。本発明の別の実施形態において、通信フロー(3)(ファブリックコントローラ402がシークレットをセキュリティトークンサービス404に送る)は、通信フロー(2)(ファブリックコントローラ402がシークレットをVM408−1に送る)の前に、発生し得る。これらの例は、考えられる通信フローのすべてを列挙をしたものではない。
図6は、図5と同様の、本発明の実施形態の態様が実装される展開の別の例を示す。ファブリックコントローラ402b、セキュリティトークンサービス404b、ホスト層406b、VM408−1bから408−Nbまで、VHD410−1bから410−Nbまで、クライアント412b、およびホスト414bは、それぞれ、図5のファブリックコントローラ402、セキュリティトークンサービス404、ホスト層406、VM408−1から408−Nまで、VHD410−1から410−Nまで、クライアント412、およびホスト414と同様であってよい。
図6の実施形態と図5の実施形態との主な違いは、図6の実施形態において、セキュリティトークンサービス404bとVM408−1bとは、図5のように直接通信しないが、ファブリックコントローラ402bを中間に使用していることである。実施形態において、このことは、セキュリティトークンサービス404bが維持する通信リンクがより少なくなるため、有利になるであろう。セキュリティトークンサービス404とVM408とが直接通信して、VM408にフルトークンを提供する実施形態では、トークンが一定の時間のみ有効であるような場合、ファブリックコントローラ402bを介して間接的にトークンを送るのに費やされる時間が、時にはそのフルトークンが有効である時間を占めることもあるので、有利になるであろう。
図5の通信フローと同様に、図6の実施形態の通信フローは、必須ではなく、本発明を実装する他の実施形態もあり、その実施形態は、異なる通信フローを使用してよい。
図6に示すように、通信フロー1Bにおいて、クライアント412bは、セキュリティトークンサービス404bから公開キーを取得し、通信フロー4Bにおいて、クライアント412bは、VM−1b408−1bからフルトークンを取得する。これらの通信フロー1Bと通信フロー4Bとは、図5に説明したように、それぞれ、通信フロー1、通信フロー5と同様であってよい。
通信フロー2Bは、セキュリティトークンサービス404bに命令してVM−1b408−1bのアカウントを作成するようにさせて、そしてVM−1b408−1bからフルトークンを受信するファブリックコントローラ402bを示す。シークレットも作成されて判定される実施形態において、通信フロー2Bでは、セキュリティトークンサービス404bがシークレットを作成するまたは判定して、その後、そのシークレットをファブリックコントローラ402bに送るか、またはファブリックコントローラ402bがシークレットを作成するまたは判定して、その後、そのシークレットをセキュリティトークンサービス404bに送るいずれかを含む。
通信フロー3Bは、フルトークンをVM−1b408−1bに送るファブリックコントローラ402bを示す。シークレットも実施形態に使用される場合、通信フロー3Bは、シークレットをVM−1b408−1bに送るファブリックコントローラ402bを含む。VM−1b408−1bがフルトークンを有した後、VM−1b408−1bは、通信フロー4Bにおいてフルトークンをクライアント412bに送ることができる。通信フロー1Bと通信フロー4Bとの間で、クライアント412bは、セキュリティトークンサービス404bからの(通信フロー1B)公開キーとVM−1b408−1bからの(通信フロー4B)フルトークンとの両方を有する。クライアント412bは、その後、図5に関して説明したように、その公開キーおよびトークンを使用してVM−1b408−1bが主張したアイデンティティを認証できる。
図7は、図5および図6と同様の、本発明の実施形態の態様が実装される展開の別の例を示す。ファブリックコントローラ402c、セキュリティトークンサービス404c、ホスト層406c、VM408−1cから408−Ncまで、VHD410−1cから410−Ncまで、クライアント412c、およびホスト414cは、それぞれ、図5のファブリックコントローラ402、セキュリティトークンサービス404、ホスト層406、VM408−1から408−Nまで、VHD410−1から410−Nまで、クライアント412、およびホスト414と同様であってよい。
図7は、ファブリックコントローラ402cおよびセキュリティトークンサービス404cを備える、展開管理(deployment management)416cも示す。展開管理416cは、VMを設定すること、および認証のトークンをVMに提供することなどを含む、ホスト414cを含む展開の管理役割に対処する。
図7の実施形態と図5および図6の実施形態との主な違いは、図7の実施形態において、展開管理416cは、VM−1c408−1cを設定し、公開キーをクライアント412cに送り、そしてフルトークンをVM−1c408−1cに送るのに対し、例えば、図5では、それらのタスクは、ファブリックコントローラ402cとセキュリティトークンサービス404cとに分割されていた。このような実施形態は、単一のシステムまたはプロセスが自身でこれらのタスクに対処する場合に発生し得る。
図5の通信フローと同様に、図7の実施形態の通信フローは、必須ではなく、本発明を実装する他の実施形態もあり、その実施形態は、異なる通信フローを使用してよい。
図7に示すように、通信フロー1Cにおいて、クライアント412cは、展開管理416cから公開キーを取得する。これは、図5の通信フロー1においてクライアント412cがセキュリティトークンサービス404から公開キーを取得するやり方と同様の方法で発生し得る。図7にさらに示すように、通信フロー3Cにおいて、クライアント412cは、VM−1c408−1cからフルトークンを取得する。これは、図4Aの通信フロー5においてクライアント412cがVM−1 408−1からフルトークンを取得するやり方と同様の方法で発生し得る。
図7に示すように、通信フロー2Cにおいて、展開管理416cは、VM−1c408−1cを設定し(それを行わせる命令をホスト414cに送るなどによって設定する)、そしてさらに、この設定する(provisioning)動作の一部として、VM−1c408−1cが自身のアイデンティティをクライアント412cなどのクライアントに証明するのに使用できるフルトークンをVM−1c408−1cに送る。
通信フロー1C、2C、および3Cが発生した後、クライアント412cは、(通信フロー1Cにおいて取得される)展開管理416cからの公開キーと(通信フロー3Cにおいて取得される)VM−1c408−1cからのフルトークンとの両方を有する。クライアント412cは、その後、図5に関して説明したように、その公開キーおよびトークンを使用してVM−1c408−1cが主張したアイデンティティを認証できる。
図8は、展開したVMに対して証明可能なアイデンティティを確立する展開の動作手順の例を示し、例えば、図5から図7までに示したシステムに実装できる。図8の動作手順は、ファブリックコントローラ402などの、ファブリックコントローラによって実行される。図8の動作手順は、動作500から開始し、動作500は、動作502に進む。動作502は、第2のコンピュータ(セキュリティトークンサービス404など)上で第1のコンピュータ(VM−1 408−1など)のアカウントを作成することを示す。動作502は、図5の通信フロー(3)または図6の通信フロー(2B)と同様の方法で有効にできる。
第2のコンピュータ上で第1のコンピュータのアカウントを作成することが第4のコンピュータ(ファブリックコントローラ402など)によって実行され、そこでの第4のコンピュータが第2のコンピュータ上でアカウントおよび他のコンピュータのアカウントを作成する権限を有する実施形態において、動作502は、第4のコンピュータによって第2のコンピュータが命令されて、第1のコンピュータのアカウントを作成するようにさせることを含むことができる。例えば、図5において、ファブリックコントローラ402は、セキュリティトークンサービス404を用いたアカウントを有し、および他のコンピュータのアカウントを作成する能力を有する。
動作504は、第1のコンピュータが通信ネットワーク上で通信するように準備することを示す。設定すること(provisioning)は、ファブリックコントローラが、VMを作成することなどによって、第1のコンピュータ/VMが動作するように準備すること、およびファブリックコントローラの機能を遂行する適切なデータおよびソフトウェアで構成されることを備えることができる。
動作506は、第1のコンピュータに、第1のコンピュータのアイデンティティのアサーションを備えるフルトークンを送ることを示し、そのフルトークンは、第1のコンピュータのアカウントに基づくコンピュータである、第2のコンピュータによって作成される。そのトークンは、第1のコンピュータのアイデンティティのクレームを備えることができる。実施形態において、動作506は、第2のコンピュータ(セキュリティトークンサービス404)によって実行される。これは、図5の通信フロー(4)と同様であってよい。
実施形態において、動作506は、第2のコンピュータ上の第1のコンピュータのアカウントに記憶されたクレデンシャルに対応する第1のコンピュータからクレデンシャルを受信することに応答して、第2のコンピュータによってフルトークンを第1のコンピュータに送ることを備える。例えば、ファブリックコントローラ402が、VM−1 408−1を設定し、さらにセキュリティトークンサービス404を用いてVM−1 408−1のアカウントを作成する時、ファブリックコントローラは、VM−1 408−1とセキュリティトークンサービス404との両方にクレデンシャル(シークレットと呼ばれることもある)を送ることができる。その後、VM−1 408−1が、アカウントのフルトークンを受信するのを許可されていることをセキュリティトークンサービス404に証明したいと望む場合、VM−1 408−1は、クレデンシャルを(セキュリティトークンサービス404の公開キーを用いてクレデンシャルを符号化することなどによって)セキュリティトークンサービス404に提供できる。
動作508は、公開キーを第3のコンピュータ(クライアント412など)に送ることを示し、そこでの第3のコンピュータは、第1のコンピュータのフルトークンと公開キーとの組み合わせが、第1のコンピュータのアイデンティティと一致する結果を算出する判定に基づいて第1のコンピュータのアイデンティティを確認する。これは、図5の通信フロー(1)および(5)、図6の通信フロー(1B)および(4B)、または図7の通信フロー(1C)および(3C)を備えることができる。クライアント412が、セキュリティトークンサービス404の公開キーとVM−1 408−1からのフルトークンとの両方を取得する時、クライアント412は、第1のコンピュータのアイデンティティと一致するという周知の結果を算出する公開キーを用いてセキュアなトークンを処理することによって、VM−1 408−1のアイデンティティを認証できる。
実施形態において、動作508は、フルトークンが第2のコンピュータによって発行されたので、第3のコンピュータがそのフルトークンを信頼すると判定することを備え、第3のコンピュータは、第2のコンピュータのアイデンティティを認証している。第3のコンピュータは、第2のコンピュータのドメイン名サービス名(DNSを介して提供される名前など)が、第2のコンピュータの証明書の名前(SecureSocketsLayer−SSL−certificateなど)と一致すると判定することによって第2のコンピュータのアイデンティティを認証したかもしれない。クライアント412が信頼するフルトークンのすべては、クライアントが信頼するエンティティからVM−1 408−1まで拡張する信頼の連鎖に基づいてよい。この連鎖の最上は、ドメインネームシステム(DNS)であってよい。即ち、クライアント412がドメイン名tokenservice,contoso,comを有するコンピュータをDNSにクエリして、セキュリティトークンサービス404が対象になる場合、その情報は、正確である。クライアント412は、次に、セキュリティトークンサービス404によって提供された証明書(証明書オーソリティによる発行か、または自己発行のもの)が、DNSを介して取得されたセキュリティトークンサービスの名前と同じ名前を有していると認証できる。クライアント412は、次に、セキュリティトークンサービス404が、有するとアサートしているアイデンティティを有していることを信頼できる。この信頼の連鎖は、次にVM−1 408−1まで拡張し、そこでVM−1 408−1は、すでに信頼されているセキュリティトークンサービス404の公開キーを用いて認証され得るフルトークンをクライアント412に提示することができる。
動作510は、実施形態において、第2のコンピュータ上で第1のコンピュータのアカウントを作成することが第4のコンピュータによって実行されることであって、および第5のコンピュータ(ファブリックコントローラ402の第2のインスタンスなど)によって第6のコンピュータ(VM−2 408−2など)のアカウントを第2のコンピュータ上で作成することと、第5のコンピュータによって第6のコンピュータを設定することと、第6のコンピュータに、第2のコンピュータによって作成された第2のフルトークンを送ることをさらに備えることと、および公開キーを第3のコンピュータに送ることであって、第2の周知の結果を算出する公開キーを用いて第2のコンピュータによって提供されるフルトークンの処理に基づいて、第3のコンピュータが、第6のコンピュータのアイデンティティを確認するように、公開キーを第3のコンピュータに送ることを備えることを示す。複数のファブリックコントローラ402が展開内に共存し、各ファブリックコントローラは、セキュリティトークンサービス404と通信して、VM408の代わりに設定するフルトークンを取得する場合もあり得る。動作510において、第2のファブリックコントローラ402は、第2のVM(VM−2 408−2など)を設定して、セキュリティトークンサービス404からこの第2のVM408の第2のフルトークンを取得する。
動作512は、周知の結果を算出する公開キーを用いて第1のコンピュータによって提供されるフルトークンを処理することに基づいて、第7のコンピュータが、第1のコンピュータのアイデンティティを確認するように、公開キーを第7のコンピュータ(クライアント412の第2のインスタンスなど)に送ることを示す。複数のクライアントは、VM408によって提供された同じフルトークン、ならびにセキュリティトークンサービス404によって提供された同じフルトークンを使用して、VM(VM−1 408−1など)のアイデンティティを認証できる。
動作514は、第2のコンピュータ上で第8のコンピュータ(VM−N408−Nなど)のアカウントを作成することと、第8のコンピュータを設定することと、第8のコンピュータに、第2のコンピュータによって作成された第2のフルトークンを送ることと、および公開キーを第3のコンピュータに送ることであって、第2の周知の結果を算出する公開キーを用いて第8のコンピュータによって提供されるフルトークンの処理に基づいて、第3のコンピュータが、第8のコンピュータのアイデンティティを確認するように、公開キーを第3のコンピュータに送ることを備えることを示す。複数のVMがそれら自身のフルトークンで設定される場合、それらのトークンのそれぞれは、クライアントがセキュリティトークンサービス404の同じ公開キー使用することによって、認証され得る。動作514に示すように、単一のクライアント412は、セキュリティトークンサービス404からの1つの公開キーを使用して、2つのフルトークン、即ち、1つはVM−1 408−1のフルトークン、および1つはVM−N408−Nのフルトークンを認証する。
動作手順は、動作516で終了する。本発明の実施形態には、図8の動作をすべて実装しているのではない、またはそれらの動作(またはそれらの動作のサブセット)を図示されたものとは異なる順序で実装するものがあることが理解されよう。例えば、本発明の実施形態は、動作500、502、504、506、508、および516を実装してよいし、または本発明の実施形態は、動作502の前に動作504を実装してよい。
図8および図9に関して、図5から図7までの要素がすべて例に列挙されているわけではないことが理解されよう。例えば、図5のクライアント412がタスクを実行すると言われる場合、そのタスクは、図6のクライアント412bによって実行されてもよいし、図7のクライアント412cによって実行されてもよいことが理解されよう。
図9は、例えば、図5から図7までに示したシステムに実装され得る、展開したVMの証明可能なアイデンティティを検証する展開したクライアントの動作手順の例を示す。図9の動作手順は、例えば、図5のクライアント412によって実装されてよく、そこで図5のファブリックコントローラ402は、ファブリックコントローラ402の動作手順を実装する。図9の動作手順は、動作600から開始し、動作600は、動作602に進む。動作602は、トークンサービスから公開キーを取得することを示す。動作604は、図5の通信フロー(1)、図6の通信フロー(1B)、または図7の通信フロー(1C)と同様の方法で発生し得る。
動作604は、コンピュータからフルトークンを取得することを示し、フルトークンは、コンピュータのアイデンティティを示す。動作604は、図5の通信フロー(5)、図6の通信フロー(4B)、または図7の通信フロー(3C)と同様の方法で発生し得る。
動作606は、周知の結果を算出する公開キーを用いてフルトークンを処理することによってコンピュータのアイデンティティを認証することを示す。動作602におけるセキュリティトークンサービス404の公開キー、および動作604におけるVM−1 408−1のフルトークンを取得して、クライアント412は、公開キーとフルトークンとの両方を有することになり、そしてクライアント412が信頼するセキュリティトークンサービス404からの公開キーを使用して、フルトークン(従って、VM−1 408−1のアイデンティティ)を認証できる。
動作608は、セキュアな関係でコンピュータと通信することを示す。動作606において、クライアント412は、VM−1 408−1が自身をアサートしているVM−1 408−1のアイデンティティを認証した。セキュリティトークンサービス404を介してVM−1 408−1まで拡張している信頼の連鎖に基づいて、クライアント412は、VM−1 408−1を信頼でき、通信する時に(VM−1 408−1がクライアント412にリモートプレゼンテーションセッションを提供する場合など)この通信は、セキュアまたは信頼した関係において発生し得る。
図9の動作手順は、動作610で終了する。
本発明は、種々の図面に示したように、好適な態様と関連して説明されているが、本発明の範囲から逸脱せずに本発明の同じ機能を実行するために、他の同様の態様が使用されてもよいし、説明した態様に変更および付加がなされてもよいことを理解されたい。従って、本発明は、単一の態様に限定されるべきではなく、むしろ添付の特許請求の範囲に従って幅広く解釈されるものである。例えば、本明細書に説明した種々の手順は、ハードウェアまたはソフトウェア、または両方を組み合わせたものに実装されてよい。従って、開示された実施形態の方法および装置、またはそれらのある態様または一部は、フロッピー(登録商標)ディスケット、CD−ROM、ハードドライブ、またはその他のマシン可読記憶媒体などの、有形媒体に具体化されるプログラムコード(即ち、プログラム命令)の形をとってよい。そのプログラムコードがロードされ、そしてコンピュータなどのマシンによって実行されると、そのマシンは、開示された実施形態を実施するように構成された装置になる。本明細書に明示的に記載された特定の実装に加え、本明細書に開示された仕様を考慮することによって他の態様および実装も当業者には明らかであろう。仕様および例示された実装は、単に例と見なされることを意図する。

Claims (15)

  1. 第1のコンピュータに対して証明可能なアイデンティティを確立する方法であって、
    第2のコンピュータ上で前記第1のコンピュータのアカウントを作成するステップと、
    通信ネットワーク上で通信するように前記第1のコンピュータを構成するステップと、
    前記第1のコンピュータのアイデンティティのアサーションを備えるフルトークンを前記第1のコンピュータに送るステップであって、前記フルトークンは、前記第1のコンピュータの前記アカウントに基づいて前記第2のコンピュータによって作成されるステップと、
    公開キーを第3のコンピュータに送るステップであって、前記第3のコンピュータは、前記第1のコンピュータの前記フルトークンと、前記第1のコンピュータの前記アイデンティティと一致する結果を算出する前記公開キーとを組み合わせた判定に基づいて、前記第1のコンピュータの前記アイデンティティを確認するステップと
    を備えることを特徴とする方法。
  2. 前記第2のコンピュータ上で前記第1のコンピュータのアカウントを作成するステップは、第4のコンピュータによって実行され、前記第4のコンピュータは、前記第2のコンピュータ上のアカウントおよび前記第1のコンピュータのアカウントを作成するオーソリティを有し、
    前記第4のコンピュータによって前記第2のコンピュータが前記第1のコンピュータのアカウントを作成するように命令されるステップをさらに備えることを特徴とする請求項1に記載の方法。
  3. 前記第1のコンピュータに前記フルトークンを送るステップは、前記第2のコンピュータによって実行されることを特徴とする請求項2に記載の方法。
  4. 前記公開キーを第3のコンピュータに送るステップであって、前記第3のコンピュータは、前記第1のコンピュータの前記フルトークンと、前記第1のコンピュータの前記アイデンティティと一致する結果を算出する前記公開キーとを組み合わせた判定に基づいて、前記第1のコンピュータの前記アイデンティティを確認するステップは、
    前記フルトークンが前記第2のコンピュータによって発行されたので、前記第3のコンピュータが、前記フルトークンを信頼する判定を行うステップであって、前記第3のコンピュータは、ドメイン名システムを介して前記第2のコンピュータのアイデンティティを認証しているステップをさらに備えることを特徴とする請求項1に記載の方法。
  5. 前記第3のコンピュータは、前記第2のコンピュータのドメイン名サービス名が前記第2のコンピュータの証明書の名前と一致するという判定によって前記第2のコンピュータのアイデンティティを認証していることを特徴とする請求項1に記載の方法。
  6. 前記第2のコンピュータによって作成されたフルトークンを前記第1のコンピュータに送るステップは、
    前記第2のコンピュータ上の前記第1のコンピュータのアカウントに記憶されたクレデンシャルに対応するクレデンシャルを前記第1のコンピュータから受信することに応答して、前記第2のコンピュータによって、前記フルトークンを前記第1のコンピュータに送るステップを備えることを特徴とする請求項1に記載の方法。
  7. 前記第2のコンピュータ上で前記第1のコンピュータのアカウントを作成するステップは、第4のコンピュータによって実行され、
    第5のコンピュータによって、第6のコンピュータのアカウントを前記第2のコンピュータ上で作成するステップと、
    前記第5のコンピュータによって、前記第6のコンピュータが前記通信ネットワーク上で通信するように構成するステップと、
    前記第6のコンピュータのアイデンティティのアサーションを備える第2のフルトークンを、前記第6のコンピュータに送るステップであって、前記第2のフルトークンは、前記第2のコンピュータの前記アカウントに基づいて前記第2のコンピュータによって作成されるステップと
    をさらに備え、
    前記公開キーを前記第3のコンピュータに送るステップは、
    前記公開キーを前記第3のコンピュータに送るステップであって、前記第3のコンピュータは、前記第6のコンピュータの前記フルトークンと、前記第6のコンピュータの前記アイデンティティと一致する結果を算出する前記公開キーとを組み合わせた判定に基づいて、前記第6のコンピュータの前記アイデンティティを確認するステップを備えることを特徴とする請求項1に記載の方法。
  8. 前記公開キーを第7のコンピュータに送るステップであって、前記周知の結果を算出する前記公開キーを用いて前記第1のコンピュータによって提供される前記フルトークンの処理に基づいて、前記第7のコンピュータが、前記第1のコンピュータのアイデンティティを確認するようにするステップをさらに備えることを特徴とする請求項1に記載の方法。
  9. 前記第2のコンピュータ上で第8のコンピュータのアカウントを作成するステップと、
    前記通信ネットワーク上で通信するように前記第8のコンピュータを構成するステップと、
    前記第8のコンピュータのアイデンティティのアサーションを備える第2のフルトークンを前記第8のコンピュータに送るステップであって、前記フルトークンは、前記第8のコンピュータの前記アカウントに基づいて前記第2のコンピュータによって作成されるトークンであるステップと
    をさらに備え、
    前記公開キーを前記第3のコンピュータに送るステップは、
    前記公開キーを前記第3のコンピュータに送るステップであって、前記第3のコンピュータは、前記第8のコンピュータの前記第2のフルトークンと、前記第8のコンピュータの前記アイデンティティと一致する結果を算出する前記公開キーとを組み合わせた判定に基づいて、前記第8のコンピュータの前記アイデンティティを確認するステップを備えることを特徴とする請求項1に記載の方法。
  10. 第1のコンピュータに対して証明可能なアイデンティティを確立するシステムであって、
    少なくとも1つのプロセッサと、
    前記システムが動作しているときに前記少なくとも1つのプロセッサに通信接続された少なくとも1つのメモリであって、前記少なくとも1つのメモリは命令を備え、前記命令は、前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、
    第2のコンピュータ上で前記第1のコンピュータのアカウントを作成するステップと、
    前記第1のコンピュータが通信ネットワーク上で通信するように準備するステップと、
    前記第1のコンピュータのアイデンティティのアサーションを備えるフルトークンを前記第1のコンピュータに送るステップであって、前記フルトークンは、前記第1のコンピュータの前記アカウントに基づいて前記第2のコンピュータによって作成されるステップと、
    公開キーを第3のコンピュータに送るステップであって、前記第3のコンピュータは、前記第1のコンピュータの前記フルトークンと、前記第1のコンピュータの前記アイデンティティと一致する結果を算出する前記公開キーとを組み合わせた判定に基づいて、前記第1のコンピュータの前記アイデンティティを確認するステップと
    を備えた動作を実行させることを特徴とするシステム。
  11. 前記第2のコンピュータ上で前記第1のコンピュータのアカウントを作成するステップは、第4のコンピュータによって実行され、前記第4のコンピュータは、前記第2のコンピュータ上のアカウントおよび前記第1のコンピュータのアカウントを作成するオーソリティを有し、前記メモリは、前記少なくとも1つのプロセッサ上で実行されると、前記少なくとも1つのプロセッサに、
    前記第4のコンピュータによって、前記第2のコンピュータに前記第1のコンピュータのアカウントを作成するように命令するステップを備える動作を実行させるプロセッサ実行可能命令さらに備えることを特徴とする請求項10に記載のシステム。
  12. 前記第1のコンピュータに前記フルトークンを送るステップは、前記第2のコンピュータによって実行されることを特徴とする請求項11に記載のシステム。
  13. 前記第3のコンピュータは、前記第2のコンピュータのドメイン名サービス名が前記第2のコンピュータの証明書の名前と一致するという判定によって前記第2のコンピュータのアイデンティティを認証していることを特徴とする請求項10に記載のシステム。
  14. 前記証明書は、前記第3のコンピュータによって信頼された証明書オーソリティによって発行されたことを特徴とする請求項10に記載のシステム。
  15. 前記第2のコンピュータによって作成されたフルトークンを前記第1のコンピュータに送るステップは、
    前記第2のコンピュータ上の前記第1のコンピュータのアカウントに記憶されたクレデンシャルに対応するクレデンシャルを前記第1のコンピュータから受信することに応答して、前記第2のコンピュータによって前記フルトークンを前記第1のコンピュータに送るステップを備えることを特徴とする請求項10に記載のシステム。
JP2013532829A 2010-10-08 2011-09-23 動的アプリケーション環境において証明可能なアイデンティティのセキュアな展開 Active JP5934224B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/901,445 US8990562B2 (en) 2010-10-08 2010-10-08 Secure deployment of provable identity for dynamic application environments
US12/901,445 2010-10-08
PCT/US2011/053010 WO2012047555A2 (en) 2010-10-08 2011-09-23 Secure deployment of provable identity for dynamic application environments

Publications (3)

Publication Number Publication Date
JP2013540323A true JP2013540323A (ja) 2013-10-31
JP2013540323A5 JP2013540323A5 (ja) 2014-10-30
JP5934224B2 JP5934224B2 (ja) 2016-06-15

Family

ID=45885938

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013532829A Active JP5934224B2 (ja) 2010-10-08 2011-09-23 動的アプリケーション環境において証明可能なアイデンティティのセキュアな展開

Country Status (7)

Country Link
US (1) US8990562B2 (ja)
EP (1) EP2625645B1 (ja)
JP (1) JP5934224B2 (ja)
CN (1) CN102404117B (ja)
AU (1) AU2011312611B2 (ja)
CA (1) CA2813601A1 (ja)
WO (1) WO2012047555A2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135037B1 (en) * 2011-01-13 2015-09-15 Google Inc. Virtual network protocol
US9619662B1 (en) * 2011-01-13 2017-04-11 Google Inc. Virtual network pairs
CN103416020B (zh) * 2011-01-28 2015-12-23 加拿大皇家铸币厂 受控的安全域
US9361162B1 (en) * 2011-08-26 2016-06-07 Amazon Technologies, Inc. Executing threads of an application across multiple computing devices in a distributed virtual machine environment
US9992024B2 (en) * 2012-01-25 2018-06-05 Fujitsu Limited Establishing a chain of trust within a virtual machine
US9367360B2 (en) * 2012-01-30 2016-06-14 Microsoft Technology Licensing, Llc Deploying a hardware inventory as a cloud-computing stamp
US9917736B2 (en) 2012-01-30 2018-03-13 Microsoft Technology Licensing, Llc Automated standalone bootstrapping of hardware inventory
US8910161B2 (en) * 2012-07-13 2014-12-09 Vmware, Inc. Scan systems and methods of scanning virtual machines
EP3014507B1 (en) * 2013-06-27 2018-04-04 Intel Corporation Continuous multi-factor authentication
CN105282122B (zh) 2014-07-22 2019-07-12 中兴通讯股份有限公司 基于数字证书的信息安全实现方法及系统
CN104168292A (zh) * 2014-09-01 2014-11-26 宇龙计算机通信科技(深圳)有限公司 动态指令处理方法、动态指令处理装置和终端
US9912478B2 (en) 2015-12-14 2018-03-06 International Business Machines Corporation Authenticating features of virtual server system
US10228924B2 (en) * 2016-04-19 2019-03-12 International Business Machines Corporation Application deployment and monitoring in a cloud environment to satisfy integrity and geo-fencing constraints
US10031735B2 (en) 2016-09-30 2018-07-24 International Business Machines Corporation Secure deployment of applications in a cloud computing platform
CN109688098B (zh) * 2018-09-07 2022-05-20 平安科技(深圳)有限公司 数据的安全通信方法、装置、设备及计算机可读存储介质
US11586470B2 (en) * 2019-08-07 2023-02-21 International Business Machines Corporation Scalable workflow engine with a stateless orchestrator
WO2021195248A1 (en) * 2020-03-25 2021-09-30 Schlumberger Technology Corporation Integrated authentication system and method
US11762671B2 (en) * 2021-11-08 2023-09-19 Smashcut, Inc. Virtualization-based collaborative activity framework with predictive preloading of virtual machines

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005293151A (ja) * 2004-03-31 2005-10-20 Fujitsu Ltd 端末正当性保証システムおよび端末正当性保証方法
JP2007305052A (ja) * 2006-05-15 2007-11-22 Nippon Telegr & Teleph Corp <Ntt> 接続先顧客保護システム、その方法及びそのプログラム
JP2008171076A (ja) * 2007-01-09 2008-07-24 Vision Arts Kk ジョブ実行装置及びその制御方法
US20080244722A1 (en) * 2007-03-28 2008-10-02 Symantec Corporation Method and apparatus for accepting a digital identity of a user based on transitive trust among parties
JP2010165231A (ja) * 2009-01-16 2010-07-29 Panasonic Corp サーバ認証方法及びクライアント端末
JP2010218144A (ja) * 2009-03-16 2010-09-30 Canon Inc 情報処理システム及びその処理方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
EP1826979A1 (en) * 2006-02-27 2007-08-29 BRITISH TELECOMMUNICATIONS public limited company A system and method for establishing a secure group of entities in a computer network
US20080104393A1 (en) 2006-09-28 2008-05-01 Microsoft Corporation Cloud-based access control list
US8751815B2 (en) 2006-10-25 2014-06-10 Iovation Inc. Creating and verifying globally unique device-specific identifiers
US20080228865A1 (en) 2007-03-15 2008-09-18 Nazareno Brier Cruzada Electronic personal computing and videophone system consisting of a remote server system providing dynamic, subscription based virtual computing services & resources, a thin client hardware device connected to a television set and wireless keyboard & mouse, and a wireless mobile device (a Pocket PC Phone)
CN101022339A (zh) 2007-03-23 2007-08-22 郭传真 一种结合数字证书和印章的电子签章认证方法
US8418222B2 (en) 2008-03-05 2013-04-09 Microsoft Corporation Flexible scalable application authorization for cloud computing environments
US8108912B2 (en) 2008-05-29 2012-01-31 Red Hat, Inc. Systems and methods for management of secure data in cloud-based network
TW201007574A (en) 2008-08-13 2010-02-16 Inventec Corp Internet server system and method of constructing and starting a virtual machine
US9009329B2 (en) 2008-11-25 2015-04-14 Microsoft Technology Licensing, Llc Platform for enabling terminal services virtualization
US8959510B2 (en) * 2009-03-19 2015-02-17 Red Hat, Inc. Providing a trusted environment for provisioning a virtual machine
US20120054491A1 (en) * 2010-08-31 2012-03-01 Peter John Tippett Re-authentication in client-server communications

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005293151A (ja) * 2004-03-31 2005-10-20 Fujitsu Ltd 端末正当性保証システムおよび端末正当性保証方法
JP2007305052A (ja) * 2006-05-15 2007-11-22 Nippon Telegr & Teleph Corp <Ntt> 接続先顧客保護システム、その方法及びそのプログラム
JP2008171076A (ja) * 2007-01-09 2008-07-24 Vision Arts Kk ジョブ実行装置及びその制御方法
US20080244722A1 (en) * 2007-03-28 2008-10-02 Symantec Corporation Method and apparatus for accepting a digital identity of a user based on transitive trust among parties
JP2010165231A (ja) * 2009-01-16 2010-07-29 Panasonic Corp サーバ認証方法及びクライアント端末
JP2010218144A (ja) * 2009-03-16 2010-09-30 Canon Inc 情報処理システム及びその処理方法

Also Published As

Publication number Publication date
AU2011312611B2 (en) 2014-05-29
JP5934224B2 (ja) 2016-06-15
WO2012047555A3 (en) 2012-05-31
AU2011312611A1 (en) 2013-05-02
CN102404117A (zh) 2012-04-04
CN102404117B (zh) 2015-05-20
CA2813601A1 (en) 2012-04-12
US8990562B2 (en) 2015-03-24
WO2012047555A2 (en) 2012-04-12
EP2625645A2 (en) 2013-08-14
US20120089833A1 (en) 2012-04-12
EP2625645B1 (en) 2020-10-07
EP2625645A4 (en) 2017-05-03

Similar Documents

Publication Publication Date Title
JP5934224B2 (ja) 動的アプリケーション環境において証明可能なアイデンティティのセキュアな展開
US8505083B2 (en) Remote resources single sign on
US9830430B2 (en) Inherited product activation for virtual machines
US8607054B2 (en) Remote access to hosted virtual machines by enterprise users
US8849941B2 (en) Virtual desktop configuration and operation techniques
US8583920B1 (en) Secure administration of virtual machines
JP6092428B2 (ja) 特権付き動作を呼び出すためのセキュアインターフェイス
US20110246786A1 (en) Mechanism for Automatically Encrypting and Decrypting Virtual Disk Content Using a Single User Sign-On
CN107430669B (zh) 计算系统和方法
US11811749B2 (en) Authentication of plugins in a virtualized computing environment
US8813252B2 (en) Request based license mode selection
US9792426B1 (en) System and method for providing anonymous access to shared resources
US11457007B2 (en) Single sign-on from desktop to network
US10382456B2 (en) Remote computing system providing malicious file detection and mitigation features for virtual machines
Dyer et al. Security issues relating to inadequate authentication in MapReduce applications

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130703

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130717

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140908

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140908

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150522

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150826

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151125

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160407

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160506

R150 Certificate of patent or registration of utility model

Ref document number: 5934224

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250