JP2018524843A - ハイブリッドクラウドサービスのためのパスワードの暗号化 - Google Patents

ハイブリッドクラウドサービスのためのパスワードの暗号化 Download PDF

Info

Publication number
JP2018524843A
JP2018524843A JP2017558535A JP2017558535A JP2018524843A JP 2018524843 A JP2018524843 A JP 2018524843A JP 2017558535 A JP2017558535 A JP 2017558535A JP 2017558535 A JP2017558535 A JP 2017558535A JP 2018524843 A JP2018524843 A JP 2018524843A
Authority
JP
Japan
Prior art keywords
user
cloud
hash
encryption key
computing device
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
JP2017558535A
Other languages
English (en)
Other versions
JP6539357B2 (ja
Inventor
シー. シングルトン,フォース,レオ
シー. シングルトン,フォース,レオ
クーパー,アンディ
Original Assignee
サイトリックス システムズ,インコーポレイテッド
サイトリックス システムズ,インコーポレイテッド
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 サイトリックス システムズ,インコーポレイテッド, サイトリックス システムズ,インコーポレイテッド filed Critical サイトリックス システムズ,インコーポレイテッド
Publication of JP2018524843A publication Critical patent/JP2018524843A/ja
Application granted granted Critical
Publication of JP6539357B2 publication Critical patent/JP6539357B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • 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
    • 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/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • 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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0827Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving distinctive intermediate devices or communication paths
    • 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/44Program or device authentication

Abstract

【課題】ハイブリッドクラウドサービスのためのパスワード暗号化を提供する。【解決手段】エンティティに内在するワークスペースクラウドコネクタは、外部クラウドサービスに送信されている、内部アプリケーションに関連付けられたユーザ信用情報をインターセプトする。ワークスペースクラウドコネクタは、暗号化キーを生成し、可逆暗号化方法を介してユーザ信用情報を暗号化する。ワークスペースクラウドコネクタは、(例えば、ハッシュ関数を使用して第1のハッシュを生成する)不可逆暗号化方法を使用して暗号化キーを暗号化する。ワークスペースクラウドコネクタは、第1の経路(例えば、外部クラウドサービス)を介して、暗号化されたユーザ信用情報及び第1のハッシュを仮想配信エージェントに送信する。これに応答して、ワークスペースクラウドコネクタは、仮想配信エージェントのアドレスを受信し、そのアドレスを使用して、第1の経路とは異なる第2の経路を介して仮想配信エージェントに暗号化キーを送る。【選択図】図7

Description

本開示の態様は、コンピュータのハードウェア及びソフトウェアに関する。特に、本開示の1つ以上の態様は、一般に、ハイブリッドクラウドサービスにおけるパスワード及び/または他の情報を保護するコンピュータハードウェア及びソフトウェアに関する。
情報セキュリティは、1人以上のユーザにクラウドサービスを提供する上で最も重要である。ハイブリッドクラウドサービスとは、あるエンティティのいくつかのリソースが外部的に管理され、かつ、クラウドサービスプロバイダのクラウド内に配置されている一方で、そのエンティティの他のリソースは、エンティティによって内部的に管理され、それ自体のサーバまたは他のコンピューティングデバイス内に配置された、クラウドコンピューティング環境である。場合によっては、ユーザ(例えば、エンティティの従業員)は、リモートの位置から、ユーザの信用情報(例えばパスワード)を必要とし、かつ、そのエンティティのコンピューティングデバイスの1つに配置されている、内部的に管理されるアプリケーションまたは他のリソースにアクセスすることが必要になる。このような場合、ユーザのパスワードは、クラウドサービスプロバイダによって提供される外部クラウドを介して、ユーザのリモートデバイスから内部アプリケーションまたはリソースに送信されてもよい。その結果、クラウドサービスプロバイダは、不都合なことに、ユーザの信用情報にアクセスし得ることになる。さらに、クラウドサービスプロバイダが間接的にユーザの信用情報をルーティングする場合、クラウドサービスプロバイダは時間内の任意の時点で何千もの通信を中継するため、意図しない受信者がユーザの信用情報を取得することもある。
クラウドサービス環境でユーザの信用情報を保護するための現在の解決策は、セキュリティアサーションマークアップ言語(SAML)、承認用オープン標準(OAuth)、及びIDのアサーションとアクセス制御要求を処理するOpenIDを含む。ただし、これらの各解決策では、ユーザの管理が冗長になり、ユーザの利便性が低下する。すなわち、ユーザは、内部アプリケーションまたはリソースへのアクセスを取得すると、そのユーザの信用情報を提供するよう重複して求められる。例えば、リモートサイト(例えば、ログインゲートウェイ)のユーザは、内部のアプリケーションまたはリソースのユーザ信用情報を請求されることがあり、内部的に管理されたアプリケーションに接続すると、内部のアプリケーションまたはリソースのユーザの信用情報を提供するように再度請求されることがあり、その結果、クラウドサービスプロバイダはアプリケーションのユーザ信用情報へのアクセスができないので、ユーザの利便性が低下することになる。
次に、本明細書に記載する様々な態様の単純化された概要を提示する。この概要は、広範な概観ではなく、かつ、重要もしくは重大な要素を特定すること、または特許請求の範囲を記述することを意図しない。次の概要は、以下に提供されるより詳細な説明の入門的な序文として単純化された形でいくつかの概念を提示するだけである。
本開示の態様は、ハイブリッドクラウドサービスコンピューティング環境において、ユーザ信用情報(例えば、ユーザパスワード)などの機密データを保護する、方法、コンピュータ可読媒体、装置、及びシステムに関する。例えば、エンティティに内在するワークスペースクラウドコネクタは、ログインゲートウェイから外部クラウドサービスに送信されているユーザID信用情報を受信またはインターセプトすることができる。ワークスペースクラウドコネクタは、暗号化/復号化キーを生成し、可逆暗号化方法(例えば、高度暗号化規格(AES)暗号化)を介し暗号化/復号化キーを使用してユーザID信用情報を暗号化することができる。加えて、ワークスペースクラウドコネクタは、不可逆暗号化方法を使用して暗号化/復号化キーを暗号化することができる。例えば、ワークスペースクラウドコネクタは、例えば、SHA−2などのセキュアハッシュアルゴリズム(SHA)を使用して、暗号化/復号化キーの第1のハッシュを生成することができる。ワークスペースクラウドコネクタは、暗号化されたパスワード、及び暗号化/復号化キーの第1のハッシュを、外部クラウドサービス(例えば、第1の経路)を介して仮想配信エージェントに送信することができる。これに応答して、ワークスペースクラウドコネクタは、宛先ゲートウェイ上に存在する仮想配信エージェントのアドレスを受信し、そのアドレスを使用して、ログインゲートウェイ及び/またはユーザデバイス(例えば、第2の経路)を介して仮想配信エージェントに暗号化/復号化キーを送信することができる。
外部クラウドサービスは、暗号化されたパスワード、及び暗号化/復号化キーの第1のハッシュを宛先ゲートウェイの仮想配信エージェントに送ることができる。仮想配信エージェントは、暗号化されたパスワード、及び暗号化/復号化キーの第1のハッシュをマッピングテーブルに格納することができる。仮想配信エージェントは、ユーザデバイスから暗号化/復号化キーを受信し、不可逆暗号化方法を用いて暗号化/復号化キーを暗号化(例えば、SHA−2を用いて暗号化/復号化キーの第2のハッシュを生成)し、かつ、第2のハッシュを第1のハッシュと比較する。それらが一致する場合、仮想配信エージェントは、暗号化/復号化キーを使用して暗号化されたパスワードを復号化して、内部アプリケーションまたはリソースで使用するためのパスワードを生成することができる。
1つ以上の実施形態では、システムは、内部クラウド内に、ゲートウェイ、そしてワークスペースクラウドコネクタを含むことができる。ゲートウェイは、ユーザデバイスからメッセージを受信するように構成され、かつ、外部クラウドに関連付けられたコンピューティングデバイスにメッセージを転送するように構成されてもよい。ワークスペースクラウドコネクタは、ゲートウェイに通信可能に接続され、外部クラウドに関連付けられたコンピューティングデバイスに転送されているメッセージのうちの第1のメッセージをインターセプトするように構成される。インターセプトは、内部アプリケーションのためのユーザID信用情報を含む第1のメッセージに基づくことができる。ワークスペースクラウドコネクタは、暗号化キーを生成し、暗号化キーを使用してユーザID信用情報を暗号化し、かつ、暗号化キーの第1のハッシュを生成するように構成することができる。ワークスペースクラウドコネクタは、外部クラウドに関連付けられたコンピューティングデバイスに、暗号化されたユーザID信用情報、及び暗号化キーの第1のハッシュを含む第2のメッセージを送信するように構成されてもよい。送信に応答して、ワークスペースクラウドコネクタは、外部クラウドに関連付けられたコンピューティングデバイスから仮想配信エージェントのルーティングアドレスを受信し、かつ、暗号化キー及び仮想配信エージェントのルーティングアドレスを含む第3のメッセージをユーザデバイスに送信することができる。
1つ以上の実施形態では、装置は、内部クラウド内に、プロセッサと、プロセッサによって実行されると、1つ以上のステップを実行するように装置を構成する命令を格納しているコンピュータ可読媒体を含むことができる。例えば、装置は、ユーザデバイスから、かつ、外部クラウドに関連付けられたコンピューティングに送られている第1のメッセージをインターセプトすることができる。インターセプトは、アプリケーションに関連付けられたユーザID信用情報を含む第1のメッセージに基づくことができる。装置は、暗号化キーを生成し、暗号化キーを使用してユーザID信用情報を暗号化し、かつ、暗号化キーの第1のハッシュを生成することができる。装置は、暗号化されたユーザID信用情報、及び暗号化キーの第1のハッシュを含む第2のメッセージを、外部クラウドに関連付けられたコンピューティングデバイスに送信することができる。この送信に応答して、装置は、仮想配信エージェントのルーティングアドレスを外部クラウドから受信し、かつ、暗号化キーと仮想配信エージェントのルーティングアドレスとを含む第3のメッセージをユーザデバイスに送信することができる。
1つ以上の実施形態では、コンピューティングデバイスは、内部クラウド内で、1つ以上のステップを含む方法を実行することができる。例えば、コンピューティングデバイスは、ユーザデバイスから、外部クラウドに関連付けられたコンピューティングデバイスに送られている第1のメッセージをインターセプトすることができる。インターセプトは、内部アプリケーションに関連付けられたユーザID信用情報を含む第1のメッセージに基づくことができる。コンピューティングデバイスは、ユーザID信用情報を抽出し、ランダムログオンチケットを生成し、ランダムログオンチケットを使用してユーザID信用情報を暗号化し、かつ、ランダムログオンチケットの第1のハッシュを生成することができる。コンピューティングデバイスは、暗号化されたユーザID信用情報、及びランダムログオンチケットの第1のハッシュを含む第2のメッセージを外部クラウドに関連付けられたコンピューティングデバイスに送信することができる。この送信に応答して、コンピューティングデバイスは、仮想配信エージェントのルーティングアドレスを外部クラウドに関連付けられたコンピューティングデバイスから受信し、かつ、ランダムログオンチケット及び仮想配信エージェントのルーティングアドレスを含む第3のメッセージをユーザデバイスに送信することができる。
これらの機能は、他の多くの機能とともに、以下でさらに詳細に説明される。
本開示は、例として示されていて、添付図面に限定されるものではなく、図面では、同様の参照数字は類似の要素を示す。
本明細書に記載する1つ以上の例示的な態様により使用され得る例示的なコンピュータシステムアーキテクチャを示す。 本明細書に記載する1つ以上の例示的な態様により使用され得る例示的なリモートアクセスシステムアーキテクチャを示す。 本明細書に記載する1つ以上の例示的な態様により使用され得る例示的な仮想化(ハイパーバイザー)システムアーキテクチャを示す。 本明細書に記載する1つ以上の例示的な態様により使用され得る例示的なクラウドベースのシステムアーキテクチャを示す。 例示的なエンタープライズモビリティ管理システムを示す。 別の例示的なエンタープライズモビリティ管理システムを示す。 本明細書に記載する1つ以上の例示的な態様を実現するために使用され得る例示的なシステムを示す。 本明細書に記載する1つ以上の例示的な態様によりユーザID信用情報をセキュアに送信するための例示的なメッセージフローを示す。 本明細書に記載する1つ以上の例示的な態様によりユーザID信用情報をセキュアに送信するための例示的なメッセージフローを示す。
様々な実施形態の次の説明では、上記で特定され本明細書の一部をなす添付図面が参照され、そこでは、本明細書に記載する態様を実施することができる様々な実施形態を例示する。本明細書に記載された範囲から逸脱することなく、他の実施形態を利用することができ、構造的及び機能的改変を行うことができることを理解されたい。様々な態様は、他の実施形態が可能であり、かつ、様々な異なる方法で実施または実行することが可能である。
以下でより詳細に記載する主題の一般的な序論として、本明細書で説明する態様は、ハイブリッドクラウドサービスのためのパスワード暗号化に関する。ワークスペースクラウドコネクタは、外部クラウド上でユーザのID信用情報のセキュアな転送をし易くし、その結果、外部クラウドがユーザのID信用情報の平文バージョンにアクセスできないようにすることができる。このようにして、ユーザのID信用情報のセキュリティが維持される。
本明細書で使用される表現及び用語は、説明目的のためのものであり、限定的であるとみなされるべきではないことを理解されたい。むしろ、本明細書で使用される、句及び用語には、最も広い解釈及び意味を与えられるべきである。「including」及び「comprising」ならびにその変形の使用は、それ以降に列挙された項目及びその同等物、ならびにそれらの付加項目及び同等物を含むことを意味する。「取り付けられた」、「接続された」、「結合された」、「配置された」、「係合された」等の用語の使用は、直接及び間接的な、取り付け、接続、結合、配置及び係合を包含することを意味する。
〈コンピューティングアーキテクチャ〉
コンピュータソフトウェア、ハードウェア、及びネットワークは、とりわけ、スタンドアロン、ネットワーク、リモートアクセス(別名、リモートデスクトップ)、仮想化、及び/またはクラウドベースの環境を含む様々な異なるシステム環境で利用することができる。図1は、スタンドアロン及び/またはネットワーク環境において本明細書に記載される1つ以上の例示的な態様を実現するために使用され得るシステムアーキテクチャ及びデータ処理装置の一例を示す。様々なネットワークノード103、105、107、及び109は、インターネットなどのワイドエリアネットワーク(WAN)101を介して相互接続されてもよい。私設イントラネット、企業ネットワーク、LAN、メトロポリタンエリアネットワーク(MAN)無線ネットワーク、パーソナルネットワーク(PAN)などを含む他のネットワークを使用してもよいし、代用されてもよい。ネットワーク101は、例示目的のものであり、構成要素がより少ない、または付加されたコンピュータネットワークと置き換えてもよい。ローカルエリアネットワーク(LAN)は、1つ以上の任意の既知のLANトポロジーを有することができ、イーサネット(登録商標)などの1つ以上の様々な異なるプロトコルを使用することができる。デバイス103、105、107、109及び他のデバイス(図示せず)は、ツイストペア線、同軸ケーブル、光ファイバ、電波または他の通信媒体を介して1つ以上のネットワークに接続されてもよい。
本明細書で使用され、図面に示されている用語「ネットワーク」は、リモートストレージデバイスが1つ以上の通信経路を介してともに結合されるシステムだけを指すのではなく、ときには、記憶能力を有するようなシステムに結合することができるスタンドアロンデバイスも指す。したがって、「ネットワーク」という用語には、「物理ネットワーク」だけでなく、全ての物理ネットワークに存在する単一のエンティティに起因するデータを含む「コンテンツネットワーク」も含まれる。
構成要素は、データサーバ103、ウェブサーバ105、及びクライアントコンピュータ107、109を含むことができる。データサーバ103は、本明細書に記載する1つ以上の例示的な態様を実行するためのデータベース、及び制御ソフトウェアの全体的なアクセス、制御及び管理を提供する。データサーバ103は、ユーザが、対話し、かつ、要求されたデータを取得するウェブサーバ105に接続してもよい。代わりに、データサーバ103は、ウェブサーバ自体として機能し、インターネットに直接接続されてもよい。データサーバ103は、直接もしくは間接的な接続を介して、または他の何らかのネットワークを介し、ネットワーク101(例えば、インターネット)を通じてウェブサーバ105に接続することができる。ユーザは、リモートコンピュータ107、109を使用して、例えばウェブブラウザを使用して、データサーバ103と対話し、ウェブサーバ105によってホストされる1つ以上の外部露出型ウェブサイトを介してデータサーバ103に接続することができる。クライアントコンピュータ107、109は、そこに格納されたデータにアクセスするためにデータサーバ103と協働して使用されてもよく、または他の目的のために使用されてもよい。例えば、ユーザは、クライアントデバイス107から、当技術分野で知られているように、インターネットブラウザを使用して、または(インターネットなどの)コンピュータネットワークを介してウェブサーバ105及び/またはデータサーバ103と通信するソフトウェアアプリケーションを実行することによって、ウェブサーバ105にアクセスしてもよい。
サーバとアプリケーションは、同じ物理マシン上で結合され、別個の仮想アドレスまたは論理アドレスを保持することも、別個の物理マシン上に存在することもある。図1は、使用可能なネットワークアーキテクチャの単なる一例を示しており、当業者であれば、使用される特定のネットワークアーキテクチャ及びデータ処理装置は、本明細書でさらに記載するように、多様化されてもよく、それらが提供する機能に二次的である、ということを理解するであろう。例えば、ウェブサーバ105とデータサーバ103によって提供されるサービスは、単一のサーバ上で組み合わせられてもよい。
各構成要素103、105、107、109は、任意のタイプの既知のコンピュータ、サーバ、またはデータ処理装置とすることができる。データサーバ103は、例えば、データサーバ103の全体的な動作を制御するプロセッサ111を含むことができる。データサーバ103は、さらに、ランダムアクセスメモリ(RAM)113、読み取り専用メモリ(ROM)115、ネットワークインターフェース117、入力/出力インターフェース119(例えば、キーボード、マウス、ディスプレイ、プリンタなど)、及びメモリ121を含むことができる。入力/出力(I/O)119は、データまたはファイルの読み取り、書き込み、表示、及び/または印刷のための様々なインターフェースユニット及びドライブを含むことができる。メモリ121は、さらに、データ処理装置103の全体的な動作を制御するためのオペレーティングシステムソフトウェア123、本明細書に記載する態様を実行するようにデータサーバ103に指示する制御論理125、及び本明細書に記載の態様と併せて使用されても使用されなくてもよい、二次的機能、サポート機能及び/または他の機能を提供する他のアプリケーションソフトウェア127を格納することができる。制御論理は、本明細書ではデータサーバソフトウェア125ということもある。データサーバソフトウェアの機能は、制御論理に符号化されたルールに基づいて自動的に行われ、システムに入力するユーザによって手動で行われる動作及び決定、及び/またはユーザ入力(例えば、質問、データ更新など)に基づく自動処理の組み合わせを指すことがある。
メモリ121は、本明細書に記載する1つ以上の態様の実行に使用されるデータを格納することもでき、第1のデータベース129及び第2のデータベース131を含む。いくつかの実施形態では、第1のデータベースは、(例えば、別個のテーブル、レポートなどとして)第2のデータベースを含むことができる。すなわち、情報は、システム設計に応じて、単一のデータベースに格納し、または異なる論理、仮想、または物理データベースに分離して格納することができる。デバイス105、107、109は、装置103に関して記載したのと類似の、または異なるアーキテクチャを有することができる。当業者であれば、本明細書に記載するデータ処理装置103(またはデバイス105、107、109)の機能を複数のデータ処理装置に分散させ、例えば、複数のコンピュータに処理負荷を分散し、地理的位置、ユーザーアクセスレベル、サービス品質(QoS)などに基づいてトランザクションを分離できることを理解するであろう。
1つ以上の態様は、本明細書に記載する1つ以上のコンピュータまたは他のデバイスによって実行される、1つ以上のプログラムモジュールなど、コンピュータ使用可能もしくは読み取り可能なデータ及び/またはコンピュータ実行可能命令で具体化されてもよい。一般に、プログラムモジュールは、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含み、コンピュータまたは他のデバイスのプロセッサによって実行されるときに、特定のタスクを実行し、または特定の抽象データタイプを実現する。モジュールは、実行のために後でコンパイルされるソースコードプログラミング言語で書かれてもよく、またはHyperText Markup Language(HTML)もしくはExtensible Markup Language(XML)など(これに限定されない)スクリプト言語で書かれてもよい。コンピュータ実行可能命令は、不揮発性記憶装置などのコンピュータ可読媒体に格納されてもよい。ハードディスク、CD−ROM、光記憶装置、磁気記憶装置、及び/またはそれらの任意の組み合わせを含む、任意の適切なコンピュータ可読記憶媒体を利用することができる。加えて、本明細書に記載するデータまたはイベントを表す様々な送信(非記憶)媒体は、金属線、光ファイバ及び/または無線伝送媒体(例えば、空気及び/または空間)などの信号伝達媒体を通じて進む電磁波の形態で送信元と送信先との間で転送されてもよい。本明細書に記載する様々な態様は、方法、データ処理システム、またはコンピュータプログラム製品として具体化されてもよい。したがって、様々な機能が、ソフトウェア、ファームウェア、及び/またはハードウェアもしくは、集積回路、フィールドプログラマブルゲートアレイ(FPGA)などのハードウェア同等物に、全体または一部として具体化することができる。本明細書に記載の1つ以上の態様をより効果的に実現するために、特定のデータ構造を使用することができ、このようなデータ構造は、本明細書に記載するコンピュータ実行可能命令及びコンピュータ使用可能データの範囲内であることが意図される。
図2を参照すると、本明細書に記載した1つ以上の態様がリモートアクセス環境において実現されている。図2は、本明細書に記載した1つ以上の例示的な態様に従って使用され得る例示的なコンピューティング環境200内の汎用コンピューティングデバイス201を含む例示的なシステムアーキテクチャを示す図である。汎用コンピューティングデバイス201は、クライアントアクセスデバイスに仮想マシンを提供するように構成された、単一のサーバまたは複数のサーバのデスクトップ仮想化システム(例えば、リモートアクセスまたはクラウドシステム)内のサーバ206aとして使用することができる。汎用コンピューティングデバイス201は、サーバ及びその関連する構成要素の全体的な動作を制御するプロセッサ203を有することができ、RAM205、ROM207、I/Oモジュール209、及びメモリ215を含む。
I/Oモジュール209は、汎用コンピューティングデバイス201のユーザが入力を提供することができるマウス、キーパッド、タッチスクリーン、スキャナ、光学式リーダ、及び/またはスタイラス(または他の入力デバイス)を含むことができ、かつ、オーディオ出力を提供するための1つ以上のスピーカと、テキスト出力、オーディオビジュアル出力、及び/またはグラフィカル出力を提供するビデオ表示デバイスをも含む。ソフトウェアは、メモリ215及び/または他の記憶装置に格納されて、本明細書に記載するような様々な機能を実行するために、汎用コンピューティングデバイス201を専用コンピューティングデバイスに構成するための命令をプロセッサ203に提供することができる。例えば、メモリ215は、オペレーティングシステム217、アプリケーションプログラム219、及び関連するデータベース221など、コンピューティングデバイス201によって使用されるソフトウェアを格納することができる。
コンピューティングデバイス201は、端末240(クライアントデバイスともいう)など1つ以上のリモートコンピュータへの接続をサポートするネットワーク環境で動作することができる。端末240は、汎用コンピューティングデバイス103または201に関して上述した要素の多くまたは全てを含む、パーソナルコンピュータ、モバイルデバイス、ラップトップコンピュータ、タブレット、またはサーバであってもよい。図2に示すネットワーク接続は、ローカルエリアネットワーク(LAN)225及びワイドエリアネットワーク(WAN)229を含むが、他のネットワークを含むこともできる。LANネットワーキング環境で使用される場合、コンピューティングデバイス201は、ネットワークインターフェースまたはアダプタ223を通じてLAN225に接続されてもよい。WANネットワーキング環境で使用される場合、コンピューティングデバイス201は、コンピュータネットワーク230(例えば、インターネット)などのWAN229を介して通信を確立するモデム227または他のワイドエリアネットワークインターフェースを含むことができる。示されたネットワーク接続は例示であり、コンピュータ間の通信リンクを確立する他の手段を使用することができることが理解されよう。コンピューティングデバイス201及び/または端末240は、バッテリ、スピーカ、及びアンテナなどの様々な他の構成要素(図示せず)を含む移動端末(例えば、移動電話、スマートフォン、携帯情報端末(PDA)、ノートブックなど)であってもよい。
本明細書に記載する態様は、複数の他の汎用または専用コンピューティングシステム環境または構成とともに動作することもできる。本明細書に記載する態様との使用に適している他のコンピューティングシステム、環境、及び/または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル民生用電子機器、ネットワークパーソナルコンピュータ(PC)、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれるが、これらに限定されない。
図2に示すように、1つ以上のクライアントデバイス240は、1つ以上のサーバ206a〜206n(包括的に、本明細書では「サーバ206」という)と通信することができる。一実施形態では、コンピューティング環境200は、サーバ206とクライアントマシン240との間に設置されたネットワークアプリアンスを含むことができる。ネットワークアプリアンスは、クライアント/サーバ接続を管理することができ、場合によっては、複数のバックエンドサーバ206の間にクライアント接続を負荷分散することができる。
クライアントマシン240は、いくつかの実施形態では、単一のクライアントマシン240または単一のグループのクライアントマシン240といわれる一方で、サーバ206は、単一のサーバ206または単一のグループのサーバ206といわれる。一実施形態では、単一のクライアントマシン240は複数のサーバ206と通信し、別の実施形態では単一のサーバ206が複数のクライアントマシン240と通信する。さらに別の実施形態では、単一のクライアントマシン240が単一のサーバ206と通信する。
いくつかの実施形態では、クライアントマシン240は、次の非網羅的な用語、すなわち、クライアントマシン、クライアント、クライアントコンピュータ、クライアントデバイス、クライアントコンピューティングデバイス、ローカルマシン、リモートマシン、クライアントノード、エンドポイント、またはエンドポイントノードのいずれか1つによって参照することができる。いくつかの実施形態では、サーバ206は、次の非網羅的な用語、すなわち、サーバ、ローカルマシン、リモートマシン、サーバファーム、またはホストコンピューティングデバイスのいずれか1つによって参照することができる。
一実施形態では、クライアントマシン240は仮想マシンであってもよい。仮想マシンは、任意の仮想マシンとすることができる一方で、いくつかの実施形態では、仮想マシンは、タイプ1またはタイプ2のハイパーバイザー、例えば、Citrix Systems、IBM、VMwareによって開発されたハイパーバイザー、または任意の他のハイパーバイザーによって管理される任意の仮想マシンとすることができる。いくつかの態様では、仮想マシンはハイパーバイザーによって管理される一方で、態様では仮想マシンはサーバ206で実行されるハイパーバイザー、またはクライアント240で実行されるハイパーバイザーによって管理されてもよい。
いくつかの実施形態は、サーバ206または他のリモートに配置されたマシンで、リモートで実行されるアプリケーションによって生成されたアプリケーション出力を表示するクライアントデバイス240を含む。これらの実施形態では、クライアントデバイス240は、仮想マシンレシーバプログラムまたはアプリケーションを実行して、アプリケーションウィンドウ、ブラウザ、または他の出力ウィンドウに出力を表示することができる。一実施例では、アプリケーションはデスクトップであり、他の実施例ではアプリケーションはデスクトップを生成または提示するアプリケーションである。デスクトップは、ローカル及び/またはリモートアプリケーションを統合することができるオペレーティングシステムのインスタンスのためのユーザインターフェースを提供するグラフィカルシェルを含むことができる。本明細書で使用されるアプリケーションとは、オペレーティングシステムのインスタンス(及び、必要に応じてデスクトップも)がロードされた後に実行されるプログラムである。
いくつかの実施形態では、サーバ206は、リモートプレゼンテーションプロトコルまたは他のプログラムを使用して、クライアントで実行されるシンクライアントまたはリモートディスプレイアプリケーションにデータを送り、サーバ206で実行されるアプリケーションによって生成されたディスプレイ出力を提示する。シンクライアントまたはリモートディスプレイプロトコルは、次のプロトコル、すなわち、Ft.Lauderdale,FloridaのCitrix Systems,Inc.によって開発されたIndependent Computing Architecture(ICA)protocol、またはRedmond,WashingtonのMicrosoft Corporationによって製造されたRemote Desktop Protocol(RDP)の非網羅的なリストのうちのいずれかであり得る。
リモートコンピューティング環境は複数のサーバ206a〜206nを含むことができ、その結果、サーバ206a〜206nは、例えばクラウドコンピューティング環境においてサーバファーム206に論理的にグループ化される。サーバファーム206は、論理的にグループ化された状態で地理的に分散されたサーバ206、または論理的にグループ化された状態で互いに近接して配置されたサーバ206を含む。いくつかの実施形態では、サーバファーム206内の地理的に分散されたサーバ206a〜206nは、異なる大陸、大陸の異なる地域、異なる国、異なる州、異なる都市、異なるキャンパス、異なる部屋、または前記の地理的位置の任意の組み合わせとして、異なる地理的領域を特徴付けることができる、WAN(ワイド)、MAN(メトロポリタン)、またはLAN(ローカル)を使用して通信することができる。いくつかの実施形態では、サーバファーム206は単一のエンティティとして管理される一方で、他の実施形態ではサーバファーム206は複数のサーバファームを含むことができる。
いくつかの実施形態では、サーバファームは、実質的に類似のタイプのオペレーティングシステムプラットフォーム(例えば、WINDOWS(登録商標)、UNIX(登録商標)、LINUX、iOS、ANDROID(登録商標)、SYMBIANなど)を実行するサーバ206を含むことができる。他の実施形態では、サーバファーム206は、第1のタイプのオペレーティングシステムプラットフォームを実行する第1のグループの1つ以上のサーバと、第2のタイプのオペレーティングシステムプラットフォームを実行する第2のグループの1つ以上のサーバとを含むことができる。
サーバ206は、必要に応じて、任意のタイプのサーバ、例えば、ファイルサーバ、アプリケーションサーバ、ウェブサーバ、プロキシサーバ、アプリアンス、ネットワークアプリアンス、ゲートウェイ、アプリケーションゲートウェイ、ゲートウェイサーバ、仮想化サーバ、デプロイメントサーバ、Secure Sockets Layer(SSL)VPNサーバ、ファイアウォール、ウェブサーバ、アプリケーションサーバもしくはマスタアプリケーションサーバ、アクティブディレクトリを実行するサーバ、またはファイアウォール機能、アプリケーション機能、もしくはロードバランシング機能を提供するアプリケーション加速プログラムを実行するサーバ、として構成することができる。他のサーバタイプも使用できる。
いくつかの実施形態は、クライアントマシン240からの要求を受信し、第2のサーバ106bにその要求を転送し、かつ、第2のサーバ106bからの応答に対してクライアントマシン240によって生成された要求に応答する、第1のサーバ106aを含む。第1のサーバ106aは、クライアントマシン240に利用可能なアプリケーションの目録だけでなく、アプリケーションの目録内で識別される、アプリケーションをホストするアプリケーションサーバ206に関連付けられたアドレス情報も取得することができる。次に、第1のサーバ106aは、ウェブインターフェースを使用してクライアントの要求に対する応答を提示し、かつ、クライアント240と直接通信して、識別されたアプリケーションへのアクセスをクライアント240に提供することができる。1つ以上のクライアント240及び/または1つ以上のサーバ206は、ネットワーク230、例えばネットワーク101を介してデータを送信することができる。
図2は、例示的なデスクトップ仮想化システムの高水準アーキテクチャを示す。図示のように、デスクトップ仮想化システムは、単一のサーバもしくは複数のサーバシステム、またはクラウドシステムであってもよく、仮想デスクトップ及び/または仮想アプリケーションを1つ以上のクライアントアクセスデバイス240に提供するように構成された少なくとも1つの仮想化サーバ206を含む。本明細書で使用されるように、デスクトップは、1つ以上のアプリケーションをホスト及び/または実行することができるグラフィック環境または空間を指す。デスクトップは、ローカル及び/またはリモートアプリケーションを統合することができるオペレーティングシステムのインスタンスのためのユーザインターフェースを提供するグラフィカルシェルを含むことができる。アプリケーションは、オペレーティングシステムのインスタンス(及び必要に応じてデスクトップも)がロードされた後に実行されるプログラムを含むことができる。オペレーティングシステムの各インスタンスは、物理的(例えば、デバイスごとに1つのオペレーティングシステム)であってもよいし、仮想的(例えば、単一のデバイス上で実行されるOSの多くのインスタンス)であってもよい。各アプリケーションは、ローカルデバイス上で実行されてもよいし、リモートに配置された(例えば、リモートされた)デバイス上で実行されてもよい。
さらに図3を参照すると、コンピュータデバイス301は、仮想化環境、例えば単一のサーバ、複数のサーバ、またはクラウドコンピューティング環境内の仮想化サーバとして構成することができる。図3に示す仮想化サーバ301は、図2に示したサーバ206の1つ以上の実施形態または他の既知のコンピューティングデバイスとして展開され、及び/または、図2に示したサーバ206の1つ以上の実施形態または他の既知のコンピューティングデバイスによって実現することができる。仮想化サーバ301には、1つ以上の物理ディスク304、1つ以上の物理デバイス306、1つ以上の物理プロセッサ308、及び1つ以上の物理メモリ316を含むことができるハードウェア層が含まれる。いくつかの実施形態では、ファームウェア312は、物理メモリ316のメモリ素子内に格納することができ、1つ以上の物理プロセッサ308によって実行することができる。仮想化サーバ301は、さらに、物理メモリ316のメモリ素子に格納され、1つ以上の物理プロセッサ308によって実行されるオペレーティングシステム314を含み得る。なお、さらに、ハイパーバイザー302は、物理メモリ316のメモリ素子に格納されてもよく、1つ以上の物理プロセッサ308によって実行され得る。
1つ以上の物理プロセッサ308での実行は、1つ以上の仮想マシン332A〜C(包括的に332)であってもよい。各仮想マシン332は、仮想ディスク326A〜C及び仮想プロセッサ328A〜Cを有することができる。いくつかの実施形態において、第1の仮想マシン332Aは、仮想プロセッサ328Aを使用して、ツールスタック324を含む制御プログラム320を実行することができる。制御プログラム320は、制御仮想マシン、Dom0、Domain0、またはシステム管理及び/または制御に使用される他の仮想マシンを指すことができる。いくつかの実施形態では、1つまたは複数の仮想マシン332B〜Cは、仮想プロセッサ328B〜Cを使用して、ゲストオペレーティングシステム330A〜Bを実行することができる。
仮想化サーバ301は、仮想化サーバ301と通信する1個以上のハードウェアを有するハードウェア層310を含むことができる。いくつかの実施形態では、ハードウェア層310は、1つ以上の物理ディスク304、1つ以上の物理デバイス306、1つ以上の物理プロセッサ308、及び1つ以上のメモリ216を含むことができる。物理構成要素304、306、308、及び316は、例えば、上記の構成要素のいずれかを含むことができる。物理デバイス306は、例えば、ネットワークインターフェースカード、ビデオカード、キーボード、マウス、入力装置、モニタ、ディスプレイ装置、スピーカ、光ドライブ、記憶装置、ユニバーサルシリアルバス接続、プリンタ、スキャナ、ネットワーク要素(例えば、ルータ、ファイアウォール、ネットワークアドレス変換器、ロードバランサ、仮想私設ネットワーク(VPN)ゲートウェイ、Dynamic Host Configuration Protocol(DHCP)ルータなど)、または仮想化サーバ301と接続または通信する任意のデバイスを含むことができる。ハードウェア層310内の物理メモリ316は、任意のタイプのメモリを含むことができる。物理メモリ316は、データを格納することができ、いくつかの実施形態では、1つ以上のプログラム、または実行可能命令のセットを格納することができる。図3は、ファームウェア312が仮想化サーバ301の物理メモリ316内に格納されている実施形態を示す。物理メモリ316に格納されたプログラムまたは実行可能命令は、仮想化サーバ301の1つ以上のプロセッサ308によって実行されることができる。
仮想化サーバ301は、ハイパーバイザー302も含むこともできる。いくつかの実施形態では、ハイパーバイザー302は、任意の数の仮想マシン332を作成及び管理するために、仮想化サーバ301のプロセッサ308によって実行されるプログラムであってもよい。ハイパーバイザー302は、仮想マシンモニタまたはプラットフォーム仮想化ソフトウェアといってもよい。いくつかの実施形態では、ハイパーバイザー302は、コンピューティングマシンで実行している仮想マシンを監視する実行可能命令及びハードウェアの任意の組み合わせとすることができる。ハイパーバイザー302は、タイプ2のハイパーバイザーであってもよく、このハイパーバイザーは、仮想化サーバ301で実行しているオペレーティングシステム314内で実行される。仮想マシンはハイパーバイザーの上のレベルで実行される。いくつかの実施形態では、タイプ2のハイパーバイザーは、ユーザのオペレーティングシステムのコンテキスト内で実行され、その結果、タイプ2のハイパーバイザーはユーザのオペレーティングシステムと対話する。他の実施形態では、仮想化環境内の1つ以上の仮想化サーバ201は、タイプ1のハイパーバイザー(図示せず)を代わりに含むことができる。タイプ1のハイパーバイザーは、ハードウェア層310内のハードウェア及びリソースに直接アクセスすることによって、仮想化サーバ301で実行することができる。すなわち、タイプ2のハイパーバイザー302は、図示されるように、ホストオペレーティングシステム314を通じてシステムリソースにアクセスするが、タイプ1のハイパーバイザーは、ホストオペレーティングシステム314なしで全てのシステムリソースに直接アクセスすることができる。タイプ1のハイパーバイザーは、仮想化サーバ301の1つ以上の物理プロセッサ308上で直接実行することができ、物理メモリ316に格納されたプログラムデータを含むことができる。
ハイパーバイザー302は、いくつかの実施形態では、システムリソースに直接アクセスするオペレーティングシステム330または制御プログラム320をシミュレートする任意の方法で、オペレーティングシステム330、または仮想マシン332上で実行している制御プログラム320に仮想リソースを提供することができる。システムリソースは、物理デバイス306、物理ディスク304、物理プロセッサ308、物理メモリ316、及び仮想化サーバ301のハードウェア層310に含まれる任意の他の構成要素を含むことができるが、これらに限定されない。ハイパーバイザー302は、仮想ハードウェアをエミュレートし、物理ハードウェアを分割し、物理ハードウェアを仮想化し、及び/またはコンピューティング環境へのアクセスを提供する仮想マシンを実行するために使用することができる。なお、他の実施形態では、ハイパーバイザー302は、仮想化サーバ301上で実行する仮想マシン332のプロセッサスケジューリング及びメモリ分割を制御する。ハイパーバイザー302は、Palo Alto,CaliforniaのVMWare,Inc.によって製造されたもの、オープンソースXen.org communityによってその開発が監督されているオープンソース製品XENハイパーバイザー、マイクロソフトが提供するHyperV、VirtualServer、または仮想PCハイパーバイザー、またはその他を含む。いくつかの実施形態では、仮想化サーバ301は、ゲストオペレーティングシステムが実行可能な仮想マシンプラットフォームを作成するハイパーバイザー302を実行する。これらの実施形態では、仮想化サーバ301は、ホストサーバといわれる。そのような仮想化サーバの一例は、Fort Lauderdale,FL.のCitrix Systems,Inc.によって提供されるXEN SERVERである。
ハイパーバイザー302は、ゲストオペレーティングシステム330が実行する1つ以上の仮想マシン332B〜C(包括的に332)を作成することができる。いくつかの実施形態では、ハイパーバイザー302は、仮想マシン画像をロードして、仮想マシン332を作成することができる。他の実施形態では、ハイパーバイザー302は、仮想マシン332内のゲストオペレーティングシステム330を実行することができる。さらに他の実施形態では、仮想マシン332は、ゲストオペレーティングシステム330を実行することができる。
ハイパーバイザー302は、仮想マシン332を作成することに加えて、少なくとも1つの仮想マシン332の実行を制御することができる。他の実施形態では、ハイパーバイザー302は、仮想化サーバ301によって提供される少なくとも1つのハードウェアリソース(例えば、ハードウェア層310内で利用可能な任意のハードウェアリソース)の抽象化を少なくとも1つの仮想マシン332に提示することができる。他の実施形態では、ハイパーバイザー302は、仮想マシン332が仮想化サーバ301内で利用可能な物理的プロセッサ308にアクセスする方法を制御することができる。物理プロセッサ308へのアクセスを制御することは、仮想マシン332がプロセッサ308にアクセスすべきか、及び物理プロセッサ能力が仮想マシン332にどのように提示されるかを決定することを含むことができる。
図3に示すように、仮想化サーバ301は、1つ以上の仮想マシン332をホストまたは実行することができる。仮想マシン332は、プロセッサ308によって実行されるときに、仮想マシン332が物理コンピューティングデバイスに非常に類似してプログラム及びプロセスを実行できるように、物理コンピュータの動作を模倣する実行可能命令のセットである。図3は、仮想化サーバ301が3つの仮想マシン332をホストする実施形態を示しているが、他の実施形態では、仮想化サーバ301は任意の数の仮想マシン332をホストすることができる。ハイパーバイザー302は、いくつかの実施形態では、各仮想マシン332に、その仮想マシン332に利用可能な物理ハードウェア、メモリ、プロセッサ及び他のシステムリソースの一意の仮想ビューを提供する。いくつかの実施形態では、一意の仮想ビューは、1つ以上の仮想マシン許可、1つ以上の仮想マシン識別子へのポリシーエンジンの適用、仮想マシンにアクセスするユーザ、仮想マシンで実行されるアプリケーション、仮想マシンによってアクセスされるネットワーク、または任意の他の所望の基準に基づくことができる。例えば、ハイパーバイザー302は、1つ以上のセキュアでない仮想マシン332、及び1つ以上のセキュアな仮想マシン332を作成することができる。セキュアでない仮想マシン332は、セキュアな仮想マシン332がアクセスすることを許可されている、リソース、ハードウェア、メモリロケーション、及びプログラムにアクセスすることを妨げられ得る。他の実施形態では、ハイパーバイザー302は、仮想マシン332に利用可能な物理ハードウェア、メモリ、プロセッサ及び他のシステムリソースの実質的に類似した仮想ビューを各仮想マシン332に提供することができる。
各仮想マシン332は、仮想ディスク326A〜C(包括的に326)及び仮想プロセッサ328A〜C(包括的に328)を含むことができる。いくつかの実施形態では、仮想ディスク326は、仮想化サーバ301の1つ以上の物理ディスク304、または仮想化サーバ301の1つ以上の物理ディスク304の一部の仮想化ビューである。物理ディスク304の仮想化ビューは、ハイパーバイザー302によって生成され、提供され、管理することができる。いくつかの実施形態では、ハイパーバイザー302は、各仮想マシン332に物理ディスク304の一意のビューを提供する。したがって、これらの実施形態では、各仮想マシン332に含まれる特定の仮想ディスク326は、他の仮想ディスク326と比較した場合に一意であり得る。
仮想プロセッサ328は、仮想化サーバ301の1つ以上の物理プロセッサ308の仮想化ビューであり得る。いくつかの実施形態では、物理プロセッサ308の仮想化ビューは、ハイパーバイザー302によって生成され、提供され、管理され得る。いくつかの実施形態では、仮想プロセッサ328は、少なくとも1つの物理プロセッサ308の同じ特性の実質的に全てを有する。他の実施形態では、仮想プロセッサ308は、仮想プロセッサ328の特性の少なくとも一部が対応する物理的プロセッサ308の特性と異なるように、物理プロセッサ308の改変されたビューを提供する。
さらに図4を参照すると、本明細書に記載するいくつかの態様がクラウドベースの環境において実現されている。図4は、クラウドコンピューティング環境(またはクラウドシステム)400の実施例を示す図である。図4に示すように、クライアントコンピュータ411〜414は、クラウド管理サーバ410と通信して、クラウドシステムのコンピューティングリソース(例えば、ホストサーバ403、ストレージリソース404、及びネットワークリソース405)にアクセスすることができる。
管理サーバ410は、1つ以上の物理サーバで実現されてもよい。管理サーバ410は、とりわけ、例えば、Ft.Lauderdale,FL,のCitrix Systems,Inc.によるCLOUDSTACK、またはOPENSTACKを実行することができる。管理サーバ410は、クラウドハードウェア及びソフトウェアリソース、例えば、ホストコンピュータ403、データストレージデバイス404、及びネットワーキングデバイス405を含む様々なコンピューティングリソースを管理することができる。クラウドハードウェア及びソフトウェアリソースには、私設及び/または公共構成要素が含まれている場合がある。例えば、クラウドは、1人以上の特定の顧客、またはクライアントコンピュータ411〜414によって、及び/または私設ネットワークを介して使用される私設クラウドとして構成されてもよい。他の実施形態では、公共クラウドまたは公共私設ハイブリッドクラウドは、オープンまたはハイブリッドネットワークを介して他の顧客によって使用されてもよい。
管理サーバ410は、クラウドオペレータ及びクラウド顧客がクラウドシステムと対話することができるユーザインターフェースを提供するように構成することができる。例えば、管理サーバ410は、アプリケーションプログラミングインタフェース(API)のセット、及び/または1つ以上のクラウドオペレータコンソールアプリケーション(例えば、ウェブベースのスタンドアロンアプリケーション)を、クラウドオペレータがクラウドリソースを管理し、仮想化層を設定し、顧客アカウントを管理し、かつ、その他のクラウド管理タスクを実行できるようにするためのユーザインターフェースとともに提供することができる。管理サーバ410は、また、APIのセット、及び/または1つ以上の顧客コンソールアプリケーションを、クライアントコンピュータ411〜414を介したエンドユーザからのクラウドコンピューティング要求、例えば、クラウド内の仮想マシンを作成、改変または破棄する要求を受信するように構成されたユーザインターフェースとともに含むことができる。クライアントコンピュータ411〜414は、インターネットまたは他の通信ネットワークを介して管理サーバ410に接続し、管理サーバ410によって管理される1つ以上のコンピューティングリソースへのアクセスを要求することができる。クライアント要求に応答して、管理サーバ410は、クライアント要求に基づきクラウドシステムのハードウェア層内の物理的リソースを選択し提供するように構成されたリソースマネージャを含むことができる。例えば、管理サーバ410及びクラウドシステムの付加的構成要素は、ネットワーク(例えば、インターネット)を介し、仮想マシン及びその動作環境(例えば、ハイパーバイザー、ストレージリソース、ネットワーク要素によって提供されるサービスなど)をクライアントコンピュータ411〜414において顧客に対して、提供、作成及び管理するように構成することができ、コンピューティングリソース、データストレージサービス、ネットワーキング能力、及びコンピュータプラットフォーム及びアプリケーションサポートを顧客に提供することができる。クラウドシステムは、セキュリティシステム、開発環境、ユーザインターフェースなどを含む様々な特定のサービスを提供するように構成することもできる。
特定のクライアント411〜414は、例えば、同じエンドユーザ、または同じ会社もしくは組織に所属する異なるユーザに代わって仮想マシンを作成する異なるクライアントコンピュータに関連することができる。他の例では、特定のクライアント411〜414は、異なる企業または組織に所属するユーザなどに無関係であってもよい。無関係なクライアントの場合、仮想マシンに関する情報または任意の1人のユーザの記憶は、他のユーザから隠すことができる。
ここで、クラウドコンピューティング環境の物理ハードウェア層を参照すると、可用性ゾーン401〜402(またはゾーン)は、物理コンピューティングリソースの併置されたセットを指すことができる。ゾーンは、コンピューティングリソースの全体的なクラウド内の他のゾーンから地理的に離れていてもよい。例えば、ゾーン401はCaliforniaに配置された第1のクラウドデータセンターであり、ゾーン402はFloridaに配置された第2のクラウドデータセンターであってもよい。管理サーバ410は、可用性ゾーンの1つに、または別個の場所に配置することができる。各ゾーンは、ゲートウェイを通じて、管理サーバ410のような、ゾーン外にあるデバイスとインターフェース接続する内部ネットワークを含むことができる。クラウドのエンドユーザ(例えば、クライアント411〜414)は、ゾーン間の区別を認識している、または認識していないことがある。例えば、エンドユーザは、指定された、メモリ量、処理能力、及びネットワーク能力を有する仮想マシンの作成を要求することができる。管理サーバ410は、ユーザの要求に応答し、かつ、仮想マシンがゾーン401またはゾーン402からのリソースを使用して作成されたかをユーザが知らずに仮想マシンを作成するためにリソースを割り当てることができる。他の例では、クラウドシステムは、エンドユーザが、特定のゾーンまたはゾーン内の特定のリソース403〜405に仮想マシン(または他のクラウドリソース)が割り当てられることを要求することを可能にすることができる。
この実施例では、各ゾーン401〜402は、様々な物理ハードウェア構成要素(またはコンピューティングリソース)403〜405、例えば、物理ホスティングリソース(または処理リソース)、物理ネットワークリソース、物理ストレージリソース、スイッチ、及び顧客にクラウドコンピューティングサービスを提供するために使用され得る付加的ハードウェアリソースの構成を含むことができる。クラウドゾーン401〜402内の物理ホスティングリソースは、仮想マシンインスタンスを作成してホストするように構成された、上述の仮想化サーバ301などの1つ以上のコンピュータサーバ403を含むことができる。クラウドゾーン401または402内の物理ネットワークリソースは、ファイアウォール、ネットワークアドレストランスレータ、ロードバランサ、仮想私設ネットワーク(VPN)ゲートウェイ、動的ホスト設定プロトコル(DHCP)ルータなどのような、クラウド顧客にネットワークサービスを提供するよう構成されたハードウェア及び/またはソフトウェアを備えた1つ以上のネットワーク要素405(例えば、ネットワークサービスプロバイダ)を含むことができる。クラウドゾーン401〜402内のストレージリソースは、ストレージディスク(例えば、ソリッドステートドライブ(SSD)、磁気ハードディスクなど)及び他のストレージデバイスを含むことができる。
図4に示した例示的なクラウドコンピューティング環境は、仮想マシンを作成及び管理し、かつ、クラウド内の物理リソースを使用して顧客に他のサービスを提供するように構成された、付加ハードウェア及び/ソフトウェアを有する(例えば、図1〜3に示したような)仮想化層を含むこともできる。仮想化層は、ネットワーク仮想化、ストレージ仮想化などを提供するための他の構成要素とともに、図3で上記したように、ハイパーバイザーを含むことができる。仮想化層は、物理リソース層とは別個の層であってもよいし、同じハードウェア及び/またはソフトウェアリソースの一部または全部を物理的リソース層と共有してもよい。例えば、仮想化層は、物理コンピューティングリソースとともに仮想化サーバ403の各々にインストールされたハイパーバイザーを含むことができる。代わりに、例えば、WINDOWS(登録商標) AZURE(Redmond WashingtonのMicrosoft Corporation)、AMAZON EC2(Seattle,WashingtonのAmazon.com.Inc.)、IBM BLUE CLOUD(Armonk,New YorkのIBM Corporation)などの既知のクラウドシステムを使用することができる。
〈エンタープライズモビリティ管理アーキテクチャ〉
図5は、BYOD環境において使用するエンタープライズモビリティ技術アーキテクチャ500を示す。このアーキテクチャにより、モバイルデバイス502のユーザは、モバイルデバイス502から企業リソースまたはパーソナルリソースにアクセスすることも、モバイルデバイス502をパーソナル用に使用することもできる。ユーザは、ユーザによって購入されたモバイルデバイス502、または企業によってユーザに提供されたモバイルデバイス502を使用して、そのような企業リソース504または企業サービス508にアクセスすることができる。ユーザは、業務用のみ、または業務及びパーソナル用にモバイルデバイス502を利用することができる。モバイルデバイスは、iOSオペレーティングシステム、及びAndroid(登録商標)オペレーティングシステムなどを実行することができる。企業は、実行するポリシーを選択して、モバイルデバイス504を管理することができる。ポリシーは、モバイルデバイスが、識別され、保護または保護検証され、かつ、企業リソースへの選択的または完全なアクセスが提供されるように、ファイアウォールまたはゲートウェイを通じて埋め込まれてもよい。ポリシーは、モバイルデバイス管理ポリシー、モバイルアプリケーション管理ポリシー、モバイルデータ管理ポリシー、またはモバイルデバイス、アプリケーション、及びデータ管理ポリシーのいくつかの組み合わせであってもよい。モバイルデバイス管理ポリシーのアプリケーションを通じて管理されるモバイルデバイス504は、登録デバイスということができる。
いくつかの実施形態では、モバイルデバイスのオペレーティングシステムは、管理区画510と非管理区画512とに分離することができる。管理区画510は、そこで実行されているアプリケーション及び管理区画に格納されたデータを保護するために、管理区画510に適用されるポリシーを有することができる。管理区画で実行されているアプリケーションは、セキュリティアプリケーションである可能性がある。他の実施形態では、全てのアプリケーションは、アプリケーションとは別個に受信された1つ以上のポリシーファイルのセットに従って実行され、ポリシーファイルのセットは、1つ以上のセキュリティパラメータ、機能、リソース制限、及び/または、そのアプリケーションがデバイスで実行されているときに使用されるモバイルデバイス管理システムによって実施される他のアクセス制御を定義する。それらそれぞれのポリシーファイルに従って動作することによって、各アプリケーションは、1つ以上の他のアプリケーション及び/またはリソースとの通信を許可または制限され、それによって仮想パーティションを作成することができる。したがって、本明細書で使用されるように、区画は、メモリの物理的に区画化された部分(物理区画)、メモリの論理的に区画化された部分(論理区画)、及び/または、本明細書に記載するように複数のアプリにわたる1つ以上のポリシー及び/またはポリシーファイルの実施の結果として作成される仮想区画(仮想区画)を指すことができる。別の言い方をすれば、管理されたアプリにポリシーを適用することで、それらのアプリは、他の管理されたアプリ及び信頼できる企業リソースとのみ通信できるように制限されるため、管理されないアプリ及びデバイスでは不可解な仮想区画が作成される可能性がある。
セキュアアプリケーションは、電子メールアプリケーション、ウェブ閲覧アプリケーション、ソフトウェア・アズ・ア・サービス(software−as−a−service:SaaS)アクセスアプリケーション、Windows(登録商標) Applicationアクセスアプリケーションなどであってもよい。セキュアアプリケーションは、セキュアネイティブアプリケーション514、セキュアアプリケーションランチャ518によって実行されるセキュアリモートアプリケーション522、セキュアアプリケーションランチャ518によって実行される仮想化アプリケーション526などであってもよい。セキュアネイティブアプリケーション514は、セキュアアプリケーションラッパー520によって覆い包むことができる。セキュアアプリケーションラッパー520は、セキュアネイティブアプリケーションがデバイスで実行されるときにモバイルデバイス502で実行される統合ポリシーを含むことができる。セキュアアプリケーションラッパー520は、セキュアネイティブアプリケーション514がセキュアネイティブアプリケーション514の実行時に要求されたタスクを完了するために必要とする可能性がある、企業でホストされているリソースに、モバイルデバイス502で実行されているセキュアネイティブアプリケーション514を指し示すメタデータを含むことができる。セキュアアプリケーションランチャ518によって実行されるセキュアリモートアプリケーション522は、セキュアアプリケーションランチャアプリケーション518内で実行されてもよい。セキュアアプリケーションランチャ518によって実行される仮想化アプリケーション526は、企業リソース504などにおいて、モバイルデバイス502のリソースを利用することができる。セキュアアプリケーションランチャ518によって実行される仮想化アプリケーション526によってモバイルデバイス502で使用されるリソースは、ユーザ対話リソース、処理リソースなどを含むことができる。ユーザ対話リソースは、キーボード入力、マウス入力、カメラ入力、触覚入力、音声入力、視覚入力、ジェスチャ入力などを収集し、送信するために使用されてもよい。処理リソースは、ユーザインターフェース、企業リソース504から受信したプロセスデータなどを提示するために使用することができる。セキュアアプリケーションランチャ518によって実行される仮想化アプリケーション526により企業リソース504で使用されるリソースは、ユーザインターフェース生成リソース、処理リソースなどを含むことができる。ユーザインターフェース生成リソースは、ユーザインターフェースをアセンブルし、ユーザインターフェースを改変し、ユーザインターフェースをリフレッシュするなどのために使用することができる。処理リソースは、情報の作成、情報の読み取り、情報の更新、情報の削除などに使用することができる。例えば、仮想化アプリケーションは、グラフィカルユーザインタフェース(GUI)に関連付けられたユーザ対話を記録し、サーバで動作しているアプリケーションへの入力としてユーザ対話データを使用するサーバアプリケーションにそれらを通信することができる。この構成では、企業は、アプリケーションに関連付けられたデータ、ファイルなどと同様に、サーバ側でアプリケーションを維持することを選択することができる。企業は、いくつかのアプリケーションをモバイルデバイスに展開するために保護することによって、本明細書の原理に従いそれらを「動員」することを選択することができるが、この手はずは、特定のアプリケーションに対して選択することもできる。例えば、いくつかのアプリケーションはモバイルデバイスで使用するために保護されている場合があるが、他のアプリケーションはモバイルデバイスでの展開のために準備されていないか、または適切でない場合があるので、企業は仮想化技術を通じて、準備されていないアプリケーションにモバイルユーザがアクセスできることを選択できる。別の例として、企業は、モバイルデバイスのためにアプリケーションをカスタマイズすることが非常に困難または望ましくない、大規模かつ複雑なデータセットを有する大規模で複雑なアプリケーション(例えば、物質資源計画アプリケーション)を有することがあり、その場合、企業は、仮想化技術を通じてアプリケーションへのアクセスを提供することを選択することができる。さらに別の例として、企業は、保護されたモバイル環境でさえも、あまりに敏感であると企業によってみなすことができる高度に保護されたデータ(例えば、人事データ、顧客データ、エンジニアリングデータ)を維持するアプリケーションを有することがあり、その場合、企業は、仮想化技術を使用して、そのようなアプリケーション及びデータへのモバイルアクセスを許可することを選択できる。企業は、サーバ側でより適切に動作しているとみなされるアプリケーションへのアクセスを可能にする仮想化アプリケーションばかりでなく、完全に保護されたアプリケーションと完全に機能するアプリケーションの両方をモバイルデバイスに提供することを選択することもできる。一実施形態では、仮想化アプリケーションは、セキュアな記憶場所の1つに移動電話のいくつかのデータ、ファイルなどを格納することができる。例えば、企業は、特定の情報を電話に保存し、他の情報は許可しないように選択することができる。
本明細書に記載するように、仮想化アプリケーションに関連して、モバイルデバイスは、GUIを提示し、次にGUIとのユーザ対話を記録するように設計された仮想化アプリケーションを有することができる。アプリケーションは、アプリケーションとユーザの対話としてサーバ側アプリケーションによって使用されるサーバ側にユーザ対話を通信することができる。それに応答して、サーバ側のアプリケーションは、新しいGUIをモバイルデバイスに送り返すことができる。例えば、新しいGUIは、静的ページ、動的ページ、アニメーションなどであってもよく、それにより、リモートに位置するリソースへのアクセスを提供する。
セキュアアプリケーションは、モバイルデバイスの管理区画510内のセキュアデータコンテナ528に格納されたデータにアクセスすることができる。セキュアデータコンテナに保護されたデータは、セキュアラップアプリケーション514、セキュアアプリケーションランチャ522よって実行されるアプリケーション、セキュアアプリケーションランチャ522によって実行される仮想化アプリケーション526などによってアクセスすることができる。セキュアデータコンテナ528に格納されるデータは、ファイル、データベースなどを含むことができる。セキュアデータコンテナ528に格納されるデータは、特定のセキュアアプリケーション530に限定されたデータ、セキュアアプリケーション532の間で共有されるデータなどを含むことができる。セキュアアプリケーションに限定されたデータは、セキュアな一般データ534及び高度にセキュアなデータ538を含むことができる。セキュアな一般データは、Advanced Encryption Standard(AES)128ビット暗号化などの強力な形式の暗号化を使用することができる一方で、高度にセキュアなデータ538は、AES256ビット暗号化などの非常に強力な暗号化形式を使用することができる。セキュアデータコンテナ528に格納されたデータは、デバイスマネージャ524からコマンドを受信すると、デバイスから削除され得る。セキュアアプリケーションは、デュアルモードオプション540を有することができる。デュアルモードオプション540は、アンセキュアモードまたは管理されないモードでセキュアアプリケーションを作動させるオプションをユーザに提示することができる。アンセキュアモードまたは管理されないモードでは、セキュアアプリケーションは、モバイルデバイス502の非管理区画512のアンセキュアデータコンテナ542に格納されたデータにアクセスすることができる。アンセキュアデータコンテナに格納されるデータは、パーソナルデータ544であってもよい。アンセキュアデータコンテナ542に格納されたデータは、モバイルデバイス502の非管理区画512で実行されているアンセキュアアプリケーション548によってアクセスされてもよい。アンセキュアデータコンテナ542に格納されたデータは、セキュアデータコンテナ528に格納されたデータがモバイルデバイス502から削除されたとき、モバイルデバイス502に残っていてもよい。企業は、ユーザによって所有、使用許諾、または制御されるパーソナルデータ、ファイル、及び/またはアプリケーション(パーソナルデータ)を残し、そうでなければ保存すると一方で、企業によって所有、使用許諾、または制御されたデータ、ファイル、及び/またはアプリケーション(企業データ)の選択したもの、または全てをモバイルデバイスから削除することを望む場合がある。この動作は、選択的ワイプという。本明細書に記載の態様に従って配置された企業データ及びパーソナルデータに対して、企業は選択的なワイプを実行することができる。
モバイルデバイスは、企業における企業リソース504及び企業サービス508、公共インターネット548などに接続することができる。モバイルデバイスは、仮想私設ネットワーク接続を通じて企業リソース504及び企業サービス508に接続することができる。microVPNまたはアプリケーション固有のVPNともいわれる仮想私設ネットワーク接続は、特定のアプリケーション550、特定のデバイス、モバイルデバイスの特定のセキュリティ領域など552に固有のものであってもよい。例えば、電話機のセキュア領域内のラップされたアプリケーションのそれぞれは、アプリケーション固有のVPNを通じて企業リソースにアクセスすることができ、その結果、VPNへのアクセスは、アプリケーションに関連付けられた属性に基づき、おそらくはユーザまたはデバイスの属性情報と組み合わせて許可される。仮想私設ネットワーク接続には、Microsoft Exchangeトラフィック、Microsoft Active Directoryトラフィック、HyperText Transfer Protocol(HTTP)トラフィック、HyperText Transfer Protocol Secure(HTTPS)トラフィック、アプリケーション管理トラフィックなどが含まれる。仮想私設ネットワーク接続は、シングルサインオン認証プロセス554をサポートし、使用可能にすることができる。シングルサインオンプロセスにより、ユーザは、認証サービス558によって検証される単一セットの認証信用情報を提供することができる。次いで、認証サービス558は、個々の企業リソース504に認証信用情報を提供することをユーザに要求することなく、複数の企業リソース504へのアクセスをユーザに許可することができる。
仮想私設ネットワーク接続は、アクセスゲートウェイ560によって、確立され管理されてもよい。アクセスゲートウェイ560は、企業リソース504のモバイルデバイス502への配信を管理し、促進し、改善するパフォーマンス向上機能を含むことができる。アクセスゲートウェイは、また、モバイルデバイス502から公共インターネット548へトラフィックを再ルーティングすることができ、モバイルデバイス502は公共インターネット548上で動作する、公然と利用可能な保護されていないアプリケーションにアクセスすることができる。モバイルデバイスは、転送ネットワーク562を介してアクセスゲートウェイに接続することができる。転送ネットワーク562は、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、ワイドエリアネットワーク、公共ネットワーク、私設ネットワークなどであってもよい。
企業リソース504は、電子メールサーバ、ファイル共有サーバ、SaaSアプリケーション、Webアプリケーションサーバ、Windows(登録商標)アプリケーションサーバなどを含むことができる。電子メールサーバは、Exchangeサーバ、Lotus Noteサーバなどを含むことができる。ファイル共有サーバは、ShareFileサーバなどを含むことができる。SaaSアプリケーションは、Salesforceなどを含むことができる。Windows(登録商標)アプリケーションサーバは、ローカルのWindows(登録商標)オペレーティングシステムで実行されることを意図したアプリケーションなどを提供するように構築された任意のアプリケーションサーバを含むことができる。企業リソース504は、構内ベースのリソース、クラウドベースのリソースなどであってもよい。企業リソース504は、モバイルデバイス502によって直接またはアクセスゲートウェイ560を通じてアクセスされてもよい。企業リソース504は、転送ネットワーク562を介しモバイルデバイス502によってアクセスされてもよい。転送ネットワーク562は、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、ワイドエリアネットワーク、公共ネットワーク、私設ネットワークなどであってもよい。
エンタープライズサービス508は、認証サービス558、脅威検出サービス564、デバイスマネージャサービス524、ファイル共有サービス568、ポリシーマネージャサービス570、ソーシャル統合サービス572、アプリケーションコントローラサービス574などを含むことができる。認証サービス558は、ユーザ認証サービス、デバイス認証サービス、アプリケーション認証サービス、データ認証サービスなどを含むことができる。認証サービス558は、信用情報を使用することができる。信用情報は、モバイルデバイス502、企業リソース504などによって格納されてもよい。モバイルデバイ502に格納された信用情報は、モバイルデバイスの暗号化された場所に格納されてもよく、信用情報は、認証時などに使用するため、モバイルデバイス502に一時的に格納されてもよい。脅威検出サービス564は、侵入検出サービス、不正アクセス試行検出サービスなどを含むことができる。不正アクセス試行検出サービスには、デバイス、アプリケーション、データなどへの不正アクセスが含まれる場合がある。デバイス管理サービス524は、構成、提供、セキュリティ、サポート、監視、報告、及び廃止などのサービスを含むことができる。ファイル共有サービス568は、ファイル管理サービス、ファイル記憶サービス、ファイル共同作業サービスなどを含むことができる。ポリシーマネージャサービス570は、デバイスポリシーマネージャサービス、アプリケーションポリシーマネージャサービス、データポリシーマネージャサービスなどを含むことができる。ソーシャル統合サービス572は、連絡先統合サービス、共同作業サービス、Facebook、Twitter、及びLikedInなどのソーシャルネットワークとの統合、などを含むことができる。アプリケーションコントローラサービス574は、管理サービス、提供サービス、展開サービス、割り当てサービス、失効サービス、ラッピングサービスなどを含むことができる。
企業モビリティ技術アーキテクチャ500は、アプリケーションストア578を含むことができる。アプリケーションストア578は、アンラップアプリケーション580、事前ラップアプリケーション582などを含むことができる。アプリケーションは、アプリケーションコントローラ574からアプリケーションストア578に投入されてもよい。アプリケーションストア578は、アクセスゲートウェイ560、公共インターネット548などを通じてモバイルデバイス502によってアクセスされてもよい。アプリケーションストアには、直感的で使いやすいユーザインターフェースが提供される場合がある。
ソフトウェア開発キット584は、本明細書で前記したように、アプリケーションをラッピングすることによってユーザによって選択されたアプリケーションを保護する能力をユーザに提供することができる。ソフトウェア開発キット584を使用してラップされたアプリケーションは、アプリケーションコントローラ574を使用してアプリケーションストア578にそれを入力することによって、モバイルデバイス502に利用可能にされ得る。
企業モビリティ技術アーキテクチャ500は、管理及び分析能力588を含むことができる。管理及び分析能力588は、リソースの使用方法、リソースの使用頻度などに関連する情報を提供することができる。リソースには、デバイス、アプリケーション、データなどが含まれる。リソースの使用方法は、どのデバイスがどのアプリケーションをダウンロードし、どのアプリケーションがどのデータにアクセスするかなどを含むことができる。リソースの使用頻度は、アプリケーションがダウンロードされた頻度、アプリケーションによって特定のデータのセットが何回アクセスされたかなどを含む。
図6は、別の例示的な企業モビリティ管理システム600である。図5を参照して上記したモビリティ管理システム500の構成要素のいくつかは、簡略化のため省略されている。図6に示すシステム600のアーキテクチャは、図5を参照して上記したシステム500のアーキテクチャと多くの点で類似しており、上述の付加的特徴を含むことができる。
この場合、左側は、クライアントエージェント604を有する登録されたモバイルデバイス602を表し、クライアントエージェント604は、(Access Gateway及びアプリケーションコントローラ機能を含む)ゲートウェイサーバ606と対話して、上記右側に示すように、Exchange、Sharepoint、公開キーインフラストラクチャ(PKI)Resources、Kerberos Resources、Certificate Inssuanceサービスなど様々な企業リソース608及びサービス609にアクセスする。特に図示していないが、モバイルデバイス602は、アプリケーションの選択及びダウンロードのために企業アプリケーションストア(StoreFront)と対話することもできる。
クライアントエージェント604は、High−Definition User Experience(HDX)/ICAディスプレイリモーティングプロトコルを使用してアクセスされるEnterpriseデータセンターでホストされるWindows(登録商標)アプリ/デスクトップのUI(ユーザインタ−フェース)仲介として機能する。クライアントエージェント604は、また、ネイティブiOSまたはAndroid(登録商標)アプリケーションなど、モバイルデバイス602上のネイティブアプリケーションのインストール及び管理をサポートする。例えば、上図に示す管理されたアプリケーション610(メール、ブラウザ、ラップされたアプリケーション)は、全て、デバイス上でローカルに実行されるネイティブアプリケーションである。クライアントエージェント604及びこのアーキテクチャのアプリケーション管理フレームワークは、接続及びSSO(シングルサインオン)などのポリシー駆動型管理能力及び機能を企業リソース/サービス608に提供するように動作する。クライアントエージェント604は、企業、通常はAccess Gateway(AG)に対するプライマリユーザ認証を他のゲートウェイサーバ構成要素へのSSOを用いて処理する。クライアントエージェント604は、ゲートウェイサーバ606からポリシーを取得して、モバイルデバイス602の管理されたアプリケーション610の挙動を制御する。
ネイティブアプリケーション610とクライアントエージェント604との間のSecureなプロセス間通信(IPC)リンク612は、クライアントエージェントが、各アプリケーションを「ラッピング」するアプリケーション管理フレームワーク614によって実施されるポリシーを供給できるようにする管理チャネルを表す。IPCチャネル612は、また、クライアントエージェント604が、企業リソース608への接続及びSSOの使用を可能にする信用情報及び認証情報を供給することができるようにする。最後に、IPCチャネル612は、アプリケーション管理フレームワーク614が、オンライン及びオフライン認証など、クライアントエージェント604によって実行されるユーザインターフェース機能を呼び出すことができるようにする。
クライアントエージェント604とゲートウェイサーバ606との間の通信は、本質的に、各ネイティブ管理されたアプリケーション610をラッピングするアプリケーション管理フレームワーク614からの管理チャネルの拡張である。アプリケーション管理フレームワーク614は、ポリシー情報をクライアントエージェント604に要求し、クライアントエージェント604は、それをゲートウェイサーバ606に要求する。アプリケーション管理フレームワーク614は、認証を要求し、クライアントエージェント604は、ゲートウェイサーバ606の(NetScaler Access Gatewayとしても知られる)ゲートウェイサービス部分にログインする。クライアントエージェント604は、ローカルデータ保管庫616の暗号化キーを導出するための入力資料を生成し得るゲートウェイサーバ606上のサポートサービスを呼び出し、または、以下でさらに十分に説明するように、PKI保護リソースへの直接認証を可能にするクライアント信用情報を提供することができる。
より詳細には、アプリケーション管理フレームワーク614は、各管理されたアプリケーション610を「ラップする」。これは、明示的な構築ステップ、または構築後の処理ステップを介して組み込むことができる。アプリケーション管理フレームワーク614は、アプリケーション610の最初の起動時にクライアントエージェント604と「ペアリング」して、セキュアIPCチャネルを初期化し、そのアプリケーションのポリシーを取得することができる。アプリケーション管理フレームワーク614は、クライアントエージェントのログイン依存性、及びローカルOSサービスの使用方法またはアプリケーション610との対話方法を制限するいくつかの包含ポリシーなど、ローカルに適用されるポリシーの関連部分を実施することができる。
アプリケーション管理フレームワーク614は、SecureIPCチャネル612を介してクライアントエージェント604によって提供されるサービスを使用して、認証及び内部ネットワークアクセスを容易にすることができる。私設及び共有データ保管庫616(コンテナ)のキー管理は、管理されたアプリケーション610とクライアントエージェント604との間の適切な対話によっても管理することができる。保管庫616は、オンライン認証後にのみ利用可能であってもよいし、ポリシーによって許可されている場合にオフライン認証後に利用可能であってもよい。保管庫616の第1の使用は、オンライン認証を必要とすることがあり、オフラインアクセスは、せいぜい、オンライン認証が再び必要とされる前のポリシーリフレッシュ期間までに制限され得る。
内部リソースへのネットワークアクセスは、個々の管理されたアプリケーション610からAccess Gateway606を通じて直接発生することがある。アプリケーション管理フレームワーク614は、各アプリケーション610に代わってネットワークアクセスを編成する役割を担う。クライアントエージェント604は、オンライン認証の後に得られる、適切な時間制限された第2の信用情報を提供することによって、これらのネットワーク接続を容易にすることができる。リバーススローププロトコル接続、及びエンド・ツー・エンドVPNスタイルのトンネル618など、複数のモードのネットワーク接続を使用することができる。
Mail and Browser管理アプリケーション610は、特別な状態を有し、かつ、任意のラップされたアプリケーションに対して一般に利用可能ではない可能性がある施設を利用することができる。例えば、Mailアプリケーションは、完全なAGログオンを必要とせずに長時間にわたってExchangeにアクセスできる特別なバックグラウンドネットワークアクセスメカニズムを使用する場合がある。Browserアプリケーションは、複数の私設データ保管庫を使用して、異なる種類のデータ保管庫を分離する場合がある。
このアーキテクチャは、様々な他のセキュリティ機能の組み込みをサポートする。例えば、(ゲートウェイサービスを含む)ゲートウェイサーバ606は、場合によってはアクティブディレクトリ(AD)パスワードを検証する必要がない。ADパスワードが、状況によっては、一部のユーザに対して認証要素として使用されるかは、企業の裁量に委ねられる。ユーザがオンラインまたはオフラインである(すなわち、ネットワークに接続されている、または接続されていない)場合、異なる認証方法を使用することができる。
ステップアップ認証は、ゲートウェイサーバ606が、強力な認証を必要とする高度に分類されたデータへのアクセスを許可された管理されたネイティブアプリケーション610を識別し、かつ、たとえそれが以前のより弱いレベルのログイン後にユーザによって再認証が要求されたとしても、適切な認証を実行した後にのみこれらのアプリケーションへのアクセスが許可されていることを確実にする機能である。
この解決策の別のセキュリティ機能は、モバイルデバイス602上のデータ保管庫616(コンテナ)の暗号化である。保管庫616は、ファイル、データベース、及び構成を含む全てのオンデバイスデータが保護されるように暗号化されてもよい。オンライン保管庫の場合、キーはサーバ(ゲートウェイサーバ606)に記憶され、オフライン保管庫の場合、キーのローカルコピーはユーザパスワードまたは生体検証によって保護されてもよい。データがデバイス602上でセキュアコンテナ616の中にローカルに格納されるとき、最小限のAES256暗号化アルゴリズムが利用されることが好ましい。
他のセキュアなコンテナの機能も実現することができる。例えば、アプリケーション610内で起こっている全てのセキュリティイベントが記録され、バックエンドに報告されるロギング機能が含まれてもよい。アプリケーション610が改ざんを検出した場合、関連付けられた暗号化キーがランダムデータで上書きされ、ユーザデータが破壊されたというヒントがファイルシステムに残らないなど、データ消去がサポートされてもよい。スクリーンショットの保護は、アプリケーションによってスクリーンショットにデータが格納されないようにする別の機能である。例えば、キーウィンドウの隠されたプロパティをYESに設定することができる。これにより、画面上に現在表示されているコンテンツを隠すことができるため、通常はコンテンツが存在する、空のスクリーンショットが表示されることになる。
例えば、コピーし、または外部アプリケーションに送信するなどして、データがアプリケーションコンテナの外部にローカルに転送されないようにすることで、ローカルなデータ転送を防止することができる。キーボードキャッシュ機能は、機密テキストフィールドのオートコレクト機能を無効にするように作動することがある。SSL信用情報の検証は、SSL信用情報をキーチェーンに格納する代わりに、アプリケーションが特にサーバのSSL信用情報を検証するように作動可能である。暗号化キー生成機能は、デバイス上のデータを暗号化するために使用されるキーが、ユーザによって供給されるパスフレーズまたは生体データ(オフラインアクセスが必要な場合)を使用して生成されるように使用することができる。オフラインアクセスが必要でない場合は、サーバ側でランダムに生成され、格納された別のキーと排他的論理和されてもよい。キー導出関数は、ユーザパスワードから生成されたキーが、その暗号ハッシュを作成するのではなく、KDF(キー導出関数、特にパスワードベースのキー導出関数2(PBKDF2))を使用するように作動することができる。前者は、ブルートフォース攻撃や辞書攻撃の影響を受けやすいキーとなる。
さらに、1つ以上の初期化ベクトルを暗号化方法に使用することができる。初期化ベクトルは、同じ暗号化されたデータの複数のコピーを生成し、異なる暗号文の出力をもたらし、再生攻撃と暗号解読攻撃の両方を防止する。これにより、また、データを暗号化するために使用された特定の初期化ベクトルがわからない場合に、盗まれた暗号化キーであっても、攻撃者が任意のデータを復号化することを防止する。さらに、認証及び復号化が使用されてもよく、ここで、アプリケーションデータは、ユーザがアプリケーション内で認証された後でのみ復号化される。別の機能は、メモリ内の機密データに関連し、必要なときにのみ(ディスクではなく)メモリに保存することができる。例えば、ログイン後にログイン信用情報はメモリから消去され、オブジェクトCのインスタンス変数内の暗号化キー及びその他のデータは、簡単に参照できるため保存されない。その代わりに、メモリを手動で割り当てることができる。
非活動タイムアウトを実現することができ、非活動のポリシー定義期間後にユーザセッションが終了する。
アプリケーション管理フレームワーク614からのデータ漏洩は、他の方法で防止することができる。例えば、アプリケーション610がバックグラウンドに置かれている場合、メモリは、所定の(設定可能な)時間が経過した後に消去されてもよい。バックグラウンドになると、アプリケーションの最後に表示された画面のスナップショットがとられ、フォアグランドプロセスが固定される。スクリーンショットに機密データが含まれている可能性があるため、消去するべきである。
別のセキュリティ機能は、1つ以上のアプリケーションへのアクセスにAD(アクティブディレクトリ)622パスワードを使用せずにOTP(ワンタイムパスワード)620を使用することに関する。場合によっては、自分のADパスワードを知らない(または知ることを許可されていない)ユーザもいるので、これらのユーザは、SecurIDのようなハードウェアOTPシステムを使用するなど、OTP620を使用して認証することができる(OTPは、EntrustまたはGemaltoなどの種々のベンダによっても提供され得る)。場合によっては、ユーザがユーザIDで認証した後、テキストがOTP620でユーザに送られる。場合によっては、これはオンラインでの使用のためにのみ実現することができ、プロンプトは単一のフィールドである。
オフラインパスワードは、オフライン使用が企業ポリシーを介して許可されているアプリケーション610のオフライン認証のために実現することができる。例えば、企業は、このようにアクセスされるStoreFrontを所望することができる。この場合、クライアントエージェント604は、ユーザにカスタムオフラインパスワードを設定するよう要求することができ、ADパスワードは使用されない。ゲートウェイサーバ606は、標準的なWindows(登録商標) Serverのパスワードの複雑な、しかし改変される可能性がある、要件に記載されているような、最小長、文字クラスの構成、及びパスワードのエイジに関して、パスワード標準を制御及び実現するためのポリシーを提供することができる。
別の機能は、(アプリケーション管理フレームワークのMicroVPN機能を介してPKI保護されたウェブリソースにアクセスする目的のための)第2の信用情報としての特定のアプリケーション610用クライアント側証明書の有効化に関する。例えば、アプリケーションは、そのような証明書を利用することができる。この場合、ActiveSyncプロトコルを使用する証明書ベースの認証がサポートされてもよく、クライアントエージェント604からの証明書は、ゲートウェイサーバ606によって取り出され、キーチェーン内で使用されてもよい。各々の管理されたアプリケーションは、ゲートウェイサーバ606で定義されたラベルによって識別される1つの関連クライアント証明書を有することができる。
ゲートウェイサーバ606は、Enterprise専用ウェブサービスと対話して、クライアント証明書の発行をサポートし、関連する管理されたアプリケーションが内部PKI保護リソースを認証できるようにすることができる。
クライアントエージェント604及びアプリケーション管理フレームワーク614は、内部PKI保護ネットワークリソースへの認証のためにクライアント証明書を取得及び使用することをサポートするように拡張することができる。様々なレベルのセキュリティ及び/または分離要件に一致するような、複数の証明書がサポートされてもよい。証明書は、(それらのアプリケーションがウェブサービススタイルの通信パターンを使用し、アプリケーション管理フレームワークがhttps要求を調停することが合理的である場合に)、Mail and Browserの管理されたアプリケーション、最終的には任意のラップされたアプリケーションによって使用され得る。
iOS上でのアプリケーション管理クライアント証明書のサポートは、各々の管理されたアプリケーションのiOSキーチェーンに、公開キー暗号化標準(PKCS)12BLOB(Binary Large Object)を各使用期間に移入することに依存する場合がある。アプリケーション管理フレームワークのクライアント証明書のサポートでは、私設のメモリ内キーストレージを用いたHTTPS実装が使用される。クライアント証明書は決してiOSキーチェーンには存在せず、強力に保護された、潜在的に「オンラインのみ」のデータ値の中を除き、永続化されない。
相互SSLは、モバイルデバイス602が企業に対して認証されることを要求することによって付加的なセキュリティを提供するように実現されてもよく、その逆も可能である。ゲートウェイサーバ606への認証のための仮想スマートカードを実装することもできる。
限定的な及び完全な、両方のKerberosサポートは付加的機能である。完全サポート機能は、ADパスワードまたは信頼できるクライアント証明書を使用して、Active Directory(AD)622に完全にKerberosログインし、Kerberosサービスチケットを取得して、HTTP Negotiate認証問題に応答する能力に関連している。限定的なサポート機能は、Citrix Access Gateway Enterprise Edition(AGEE)の制限付き委任に関連し、AGEEは、Kerberosプロトコル移行を呼び出すことをサポートしているため、HTTP Negotiate認証問題に対応し、Kerberosサービスチケット(制限付き委任の対象)を取得して使用できる。このメカニズムは、リバースウェブプロキシ(別名、企業仮想私設ネットワーク(CVPN))モードで、かつ、(httpsでなく)http接続がVPN及びMicroVPNモードでプロキシされている場合に作動する。
別の機能は、ジェイルブレークまたはルーティング検出時に自動的に発生し、管理コンソールからのプッシュされたコマンドとして発生し、かつ、アプリケーション610が実行されていなくてもリモートワイプ機能を含み得、アプリケーションコンテナのロッキング及びワイピングに関する。
ユーザが、障害が発生した場合に複数の異なる場所のいずれかからサービスを受けることを可能にする、企業アプリケーションストアとアプリケーションコントローラのマルチサイトアーキテクチャまたは構成がサポートされている場合がある。
場合によっては、管理されたアプリケーション610は、API(例えば、OpenSSL)を介して証明書及び秘密キーにアクセスすることが許可されてもよい。信頼され、管理された企業のアプリケーション610は、アプリケーションのクライアント証明書及び秘密キーを用いて特定の公開キー動作を実行することを許可されてもよい。アプリケーションがブラウザのように動作し、証明書へのアクセスが必要ない場合、アプリケーションが「誰ですか」に対して証明書を読み取る場合、アプリケーションが証明書を使用してセキュアなセッショントークンを構築する場合、及びアプリケーションが重要なデータ(例えば、取引ログ)のデジタル署名に、または一時的なデータ暗号化のために秘密キーを使用する場合など、様々な使用ケースが識別され、それに従って処理されることがある。
〈パスワード暗号化管理システム〉
図7は、本明細書に記載する1つ以上の例示的な態様を実施するために使用され得る例示的なシステムを示す。システム700は、エンティティのいくつかのリソースが外部で管理されて、クラウドサービスプロバイダのクラウド内に配置される一方で、そのエンティティの他のリソースは、そのエンティティによって内部的に管理されて、それ自体のサーバまたは他のコンピューティングデバイス内に配置される、ハイブリッドクラウドコンピューティング環境の形態であってもよい。本明細書で使用されるように、用語「内部」の変形は、エンティティ自体によって管理される、及び/またはエンティティによって制御され、外部クラウドサービスプロバイダによって制御されない1つ以上のコンピューティングデバイスに格納される、リソース及びアプリケーションを指すことができる。一例として、リソースは、エンティティに関連付けられ認証されたユーザによるリモートアクセスのために、エンティティの構内サーバに格納されてもよい。例えば、特定のソフトウェアアプリケーション(例えば、内部アプリケーション)は、雇用者によって制御及び管理されるサーバに格納されてもよく、1人以上のその従業員によってアクセスされてもよい。本明細書で使用されるように、用語「外部」の変形は、クラウドサービスプロバイダによって管理される、及び/または外部クラウドサービスプロバイダによって制御される1つ以上のコンピューティングデバイスに格納されるリソース及びアプリケーションを指すことができる。一例として、リソースは、エンティティに関連付けられた認証されたユーザによるアクセスのために、クラウドサービスプロバイダのクラウドベースのサーバに格納されてもよい。そのような実施例では、リソースは、エンティティに関連付けられてもよい。
ハイブリッドクラウドコンピューティング環境(例えば、ハイブリッドクラウドコンピューティング環境700)のユーザは、地理的にリモートな内部コンピューティングデバイスにインストールされた内部アプリケーションにアクセスを望む場合がある。一例として、ユーザは、Londonのオフィスを訪れている間に、Virginiaのそのユーザの業務用コンピュータにインストールされているアプリケーションにアクセスを望むことがある。ユーザは、外部クラウドサービスを介して内部アプリケーションと、接続、及び/または、そうでなければ通信することができる。場合によっては、ユーザは、内部アプリケーションへのアクセスを得るため、認証のため内部アプリケーションにユーザの信用情報(例えば、名前及びパスワード)を提供しなければならない。そのような場合、ユーザの信用情報は、可逆的に暗号化され、外部クラウドサービスを介して内部アプリケーションに送られ、暗号化信用情報は、以下でさらに詳細に説明するように、内部アプリケーションによって復号化され使用され得る。
ハイブリッドクラウドコンピューティング環境700は、公共ククラウドサービスを提供する外部クラウドサービスプロバイダ714を含むことができる。外部クラウドサービスプロバイダ714は、ユーザがインターネットを介してアクセスできるコンピューティングデバイス(図示せず)に格納されたアプリケーション及び/または他のリソースを含むことができる。外部クラウドサービスプロバイダ714は、また、特定の内部コンピューティングデバイスから、外部クラウドサービスプロバイダ714の一部ではないエンティティの異なる構内の別の内部コンピューティングデバイスに情報を転送することもできる。一例として、特定の地理的位置に配置された私設クラウドの一部であるコンピューティングデバイスは、外部クラウドを介して、別の地理的位置に配置され別の地理的位置に配置され、そのエンティティの私設クラウド(または、そのエンティティの異なる私設クラウドであり得る)の一部である、別のコンピューティングデバイスに情報を送ることができる。
ハイブリッドクラウドコンピューティング環境700は、パーソナルコンピュータ、ラップトップ、タブレット、スマートフォンなどであってもよいリモートコンピューティングデバイス702を含むことができ、またまた上述されたコンピューティングデバイスの1つ以上の構成要素を含むことができる。いくつかの例では、リモートコンピューティングデバイス702は、ユーザのパーソナルデバイスであってもよい(例えば、ユーザはリモートコンピューティングデバイス702を所有することができる)。このような場合、リモートコンピューティングデバイス702は、内部クラウドの一部ではないことがあり得るが、ユーザが認証された後に内部クラウドにログインし、及び/または他の方法でアクセスすることができる。他の例では、リモートコンピューティングデバイス702は、内部クラウド(例えば、雇用者が提供するラップトップ)を管理及び制御するエンティティによって所有されてもよい。このような場合、ユーザがエンティティの構内の端末にリモートコンピューティングデバイス702を接続するとき、リモートコンピューティングデバイス702は内部クラウドの一部になり得る。そうではなく、ユーザがエンティティの構内の外で(例えば、ユーザの家で)リモートコンピューティングデバイス702を使用するとき、リモートコンピューティングデバイス702は内部クラウドの一部でないことがあり得るが、ユーザが(例えば、仮想私設ネットワーク(VPN)接続を介して)認証された後に、内部クラウドにログインし、及び/または別の方法でアクセスすることができる。
リモートコンピューティングデバイス702は、リモートコンピューティングデバイス702にインストールされたクライアントソフトウェアであってもよいレシーバ704を含むことができる。レシーバ704は、リモートコンピューティングデバイス702が内部クラウドサービス及び/または外部クラウドサービスにアクセスすることを可能にする。一例として、リモートコンピューティングデバイス702は、レシーバ704を使用して、内部クラウド及び/または外部クラウドに格納されたアプリケーション、仮想デスクトップ及びデータにセキュアにアクセスすることができる。一実施例では、レシーバ704は、Ft.Lauderdale,FloridaのCitrix Systems,Inc.によって開発されたCitrix Receiverであってもよい。
ハイブリッドクラウドコンピューティング環境700は、全てのアプリケーションに対して統一されたフロントエンド(または、ユーザとバックエンドとの間のインタ−フェース)を提供できるゲートウェイ706を含むことができる。ゲートウェイ706は、レシーバ704を介してリモートコンピューティングデバイス702と通信し、リモートコンピューティングデバイス702を認証し、かつ、リモートデバイス702とのセキュアな接続を確立することができる。一例として、ゲートウェイ706及びレシーバ704は、セキュアな仮想私設ネットワーク接続を確立することができる。一実施例では、ゲートウェイ706は、Citrix Systems,Inc.によって開発されたNetScaler Gatewayであってもよい。
ゲートウェイ706は、リモートコンピューティングデバイス702及びレシーバ704をログインポータル708に接続することができる。ログインポータル708は、エンティティの内部及び/または外部のアプリケーション、デスクトップ及びリソースにアクセスするために、ユーザがユーザのID信用情報を入力する(例えば、ユーザ名及びパスワードなどのログイン情報を入力する)ためのウェブサイトであってもよい。ログインポータル708は、エンティティの内部ウェブサーバを介してリモートコンピューティングデバイス702に提供されてもよい。ログインポータル708は、外部ウェブサーバによって提供されないため、ユーザは、外部ウェブサーバ(例えば、外部クラウドサービスプロバイダ714)に、平文で(例えば暗号化されていないか、または難読化されていない形式で)自分のID信用情報を入力する必要はない。一実施例では、ログインポータル708は、Citrix Systems,Inc.によって開発されたCitrix StoreFrontであってもよい。
ハイブリッドクラウドコンピューティング環境700の内部クラウドは、第1のワークスペースクラウドコネクタ710aを含むことができ、第1のワークスペースクラウドコネクタ710aは、内部クラウドから外部クラウドに送られているメッセージをインターセプトすることができる。例えば、リモートコンピューティングデバイス702、レシーバ704、ゲートウェイ706、またはログインポータル708(例えば、ウェブサーバ)のうちの1つが、ユーザのID信用情報(例えば、パスワード)を含むメッセージを外部クラウドサービスプロバイダ714に送信しようとするとき、第1のワークスペースクラウドコネクタ710aはそのメッセージをインターセプトして、メッセージがまだ外部クラウドサービスプロバイダ714に送られないようにすることができる。1つ以上の構成では、第1のワークスペースクラウドコネクタ710aは、リモートコンピューティングデバイス702、レシーバ704、ゲートウェイ706、またはログインポータル708のうちの1つ以上から送信された各々(例えば、全てのメッセージ)をインターセプトするように構成されてもよい。1つ以上の他の構成では、第1のワークスペースクラウドコネクタ710aは、ユーザID信用情報を含むメッセージのみをインターセプトすることができる。そのような構成では、メッセージは、フラグ、例えば、そのメッセージがユーザID信用情報を含むことを示す、メッセージのヘッダを含み、そのため、第1のワークスペースクラウドコネクタ710aは、そのヘッダを有するメッセージは第1のワークスペースクラウドコネクタ710aがインターセプトするメッセージであると識別することができる。第1のワークスペースクラウドコネクタ710aは、メッセージからユーザのID信用情報を抽出して除去し、次に第1のワークスペースクラウドコネクタ710aによって生成された暗号化キーを使用して、そのメッセージを暗号化する。さらに、第1のワークスペースクラウドコネクタ710aは、以下にさらに詳述するように、暗号化キーのハッシュを生成し、ユーザの暗号化されたID信用情報及び暗号化キーのハッシュの両方を含むメッセージを外部クラウドサービスプロバイダ714(例えば、第1の経路)に送ることができる。加えて、第1のワークスペースクラウドコネクタ710aは、外部クラウドサービスプロバイダ714から仮想配信エージェント712のアドレスを受信すると、ログインポータル708及びゲートウェイ706(第2の経路)を介して仮想配信エージェント712に暗号化キーを送ることができ、これについても以下でさらに詳詳する。
ハイブリッドクラウドコンピューティング環境700の内部クラウドは、第2のワークスペースクラウドコネクタ710bを含み、第2のワークスペースクラウドコネクタ710bは、外部クラウドサービスプロバイダ714から受信したメッセージを仮想配信エージェント712に中継することができる。中継されたメッセージは、ユーザの暗号化されたID信用情及び暗号化キーのハッシュを含むことができる。仮想配信エージェント712は、中継されたメッセージと、リモートコンピューティングデバイス702から送信された、暗号化キーを含むメッセージとを受信した結果、暗号化キーを復号化すべきかを判定することができる。例えば、仮想配信エージェント712は、受信した暗号化キーのハッシュを生成し、生成されたハッシュを、中継されたメッセージで受信したハッシュと比較することができる。それらが一致する場合、仮想配信エージェント712は、暗号化キーを使用してユーザの暗号化されたID信用情報を復号化して、内部アプリケーションまたはリソースとともに使用するためのユーザのID信用情報を得ることができる。ワークスペースクラウドコネクタ710、仮想配信エージェント712、及びクラウドサービスプロバイダ714の各々は、互いに通信可能に接続された1つ以上のコンピューティングデバイス(図示せず)を介して提供されてもよい。
ゲートウェイ706、ログインポータル708、及び第1のワークスペースクラウドコネクタ710aは、それぞれ(例えば、全て)が内部構内地理的位置A(例えば上記の例に従えばLondonオフィス)に地理的に配置されてもよい。仮想配信エージェント712及び第2のワークスペースクラウドコネクタ710bは、異なる構内位置B(例えば上記の例に従えばVirginiaオフィス)に地理的に配置されてもよい。ゲートウェイ706、ログインポータル708、第1のワークスペースクラウドコネクタ710a、第2のワークスペースクラウドコネクタ710b、及び仮想配信エージェント712は、それぞれ(例えば、全て)がエンティティの同じ内部構内位置に地理的に配置されてもよい。そのような構成では、第1のワークスペースクラウドコネクタ710a及び第2のワークスペースクラウドコネクタ710bの機能及び特徴を組み合わせて、単一のワークスペースクラウドコネクタを形成することができる。
図8〜図9は、外部クラウドが、本明細書で説明する1つ以上の例示的な態様に従って信用情報にアクセスしないような方法で、外部クラウドを通じてユーザのID信用情報をユーザにセキュアに送信する例示的なメッセージフローを示す。1つ以上の実施形態では、図8〜図9に示すステップ、及び/またはその1つ以上のステップは、1つ以上のコンピューティングデバイスによって実行されてもよい。他の実施形態では、図8〜図9に示す方法、及び/またはその1つ以上のステップは、非一時的なコンピュータ可読メモリのようなコンピュータ可読媒体に格納されたコンピュータ実行可能命令に具体化することができる。いくつかの例では、図8〜9の1つ以上のステップは、異なる順序で実行されてもよい。いくつかの例では、図8〜9の1つ以上のステップは、省略されてもよいし、そうでなければ実行されなくてもよい。
図8〜9の例示的なメッセージフロー図におけるステップは、リモートコンピューティングデバイス702から外部クラウド714を通じて、内部コンピューティングデバイスの仮想配信エージェント712を介して実行される内部アプリケーションに、ユーザのID信用情報をセキュアに送信する方法を記載する。場合によっては、内部アプリケーションは、ユーザ名とパスワードなどの特定の形式のID信用情報のみを受け入れることができる。このような場合、OAuth及びSAML IDアサーションは、ユーザを認証するために、内部アプリケーションによって使用できないことがある。ユーザのログインゲートウェイ(例えば、ゲートウェイ706)は、仮想デスクトップインフラストラクチャ(VDI)が配置されているゲートウェイと同じでない可能性があるため、OAuthまたはSAMLを使用すると、内部アプリケーションが外部クラウドサービスによって使用されるOAuthまたはSAML識別アサーションを受け入れない可能性があるので、ユーザは、二度、すなわち、一度はゲートウェイにログインするために、次に内部アプリケーションにアクセスするために再度、ユーザのID信用情報を入力する。しかし、以下で詳細に説明するように、図8〜9のフロー図に記載するセキュアな送信方法を用いることによって、ユーザは、ログインゲートウェイにアクセスするために一度、信用情報を入力することができ、これらの信用情報は外部クラウドサービスを介して内部アプリケーションにセキュアに送信され得る。ユーザのID信用情報は、内部アプリケーションによって受け入れ可能な形式であるため、内部アプリケーションは、ユーザのID信用情報を認証及び/または別の方法で検証した後、ユーザにアクセスさせることができる。その結果、ユーザはID信用情報を一度入力することができる。すなわち、ID信用情報を重複して二度入力する必要がないため、ユーザのエクスペリエンスが向上する可能性がある。
メッセージフローは、リモートコンピューティングデバイス702がユーザからID信用情報を受信し、ユーザのID信用情報をログインポータル708に送信することができるステップ802で開始することができる。ユーザの信用情報は、1つ以上のユーザ名、パスワード、パーソナル識別番号(pin)、生体データ(例えば、指紋、顔写真、音声録音など)、または特定の内部アプリケーションまたはリソースにアクセスするための認証に使用される任意のデータであり得る。上記のLondon/Virginiaの例によると、ユーザ及びリモートコンピューティングデバイス702はエンティティのLondonオフィス内にあってもよく、VDIに関連付けられたゲートウェイはVirginiaオフィス内に配置されていてもよい。例えば、ユーザは、Londonオフィスにいる間に、Virginiaオフィスに配置されたユーザの業務用コンピュータにインストールされた内部アプリケーションにリモートでアクセスする必要があり得る。したがって、ユーザは、リモートコンピューティングデバイス702において、ログインポータル708への送信のために、内部アプリケーションのユーザのID信用情報を入力することができる。
ユーザ及びリモートコンピューティングデバイス702を認証した後、ステップ804で、ログインポータル408は、ユーザのID信用情報をエンティティ構内(例えば、エンティティの内部クラウドサービスの一部)に配置された第1のワークスペースクラウドコネクタ710aに送信することができる。いくつかの例では、ログインポータル708は、ユーザのID信用情報を外部クラウドサービスプロバイダ714に送信することを意図している場合がある。そのような場合、第1のワークスペースクラウドコネクタ710aは、ID信用情報を含むメッセージまたは送信を識別し、それらのメッセージまたは送信をインターセプトして、暗号化されていないID信用情報が外部クラウドサービスプロバイダ714に送られないようにしてもよい。第1のワークスペースクラウドコネクタ714は、ID信用情報のために各メッセージを検査/解析するか、またはメッセージがID信用情報を含むことを示すフラグを含むかを判定することによって、そのようなメッセージを識別することができる。いくつかの例では、ログインポータル708は、ユーザのID信用情報を第1のワークスペースクラウドコネクタ710aに送信することを意図しており、そのような情報を直接外部クラウドサービスプロバイダ714に送信することを意図していしない場合がある。そのような場合、第1のワークスペースクラウドコネクタ710aは、外部クラウドサービスプロバイダ714に直接送ることを意図したメッセージをインターセプトしないことがある。第1のワークスペースクラウドコネクタ710aがID信用情報を含むと識別する各メッセージまたは送信に対して、第1のワークスペースクラウドコネクタ710aは、ユーザのID信用情報を解析及び抽出して、それをメッセージから除去することができる。加えて、第1のワークスペースクラウドコネクタ710aは、メッセージが外部クラウドサービスプロバイダ714に送信されるのを防止/または他の方法で積極的にブロックすることができる。
ステップ806において、第1のワークスペースクラウドコネクタ710aは、ユーザのID信用情報を暗号化及び復号化する際に使用するための暗号化キーを生成することができる。キーは、ランダムキー生成器、擬似ランダムキー生成器、または任意の他のキー生成器を使用して生成することができる。一例として、暗号化キーは、セキュアにランダムな128ビットの独立コンピューティングアーキテクチャ(ICA)ログオンチケットであってもよい。ICAは、ユーザがクライアントとサーバ間のリンクを使用してデータを格納できる特定のファイルタイプであるため、ユーザはソフトウェアを実際にクライアントにインストールしなくても、リモートサーバに接続してソフトウェアアプリケーションを使用できる。
ステップ808において、第1のワークスペースクラウドコネクタ710aは、暗号化キーを使用してユーザのID信用情報を暗号化して、暗号化されたID信用情報を生成することができる。使用される暗号化メカニズムは、高度暗号化標準(AES)などの任意の可逆暗号化メカニズムとすることができる。可逆暗号化メカニズムを有することにより、仮想配信エージェント712は、後にさらに詳細に説明するように、生成された暗号化キーを使用して、暗号化されたID信用情報を後で復号化することができる。ステップ810において、第1のワークスペースクラウドコネクタ710aは、生成された暗号化キーをハッシュして、第1のハッシュ(例えば、ハッシュ1)を生成することができる。第1のハッシュは、ハッシュ値、ハッシュコード、またはハッシュサムの形式であってもよい。第1のハッシュは、例えばSHA−2などの任意のハッシュ関数、または一方向暗号化関数を使用して生成することができる。
ステップ812において、第1のワークスペースクラウドコネクタ710aは、インターセプトされたメッセージ内のユーザのID信用情報をユーザの暗号化ID信用情報、及び暗号化キーの第1のハッシュで置き換えることができ、かつ、そのメッセージを外部クラウドサービスプロバイダ714に送信することができる。いくつかの実施形態では、第1のクラウドコネクタ710aは、インターセプトされたメッセージを改変するのではなく、新しいメッセージを生成することができる。メッセージは、任意のプロトコルを介して送信されてもよい。一例として、メッセージは、Citrix Systems,Inc.によって開発されたCitrix NFuse XMLプロトコルを使用して、各々がCitrix Systems,Inc.によって開発された、外部クラウドサービスプロバイダのXenAppコントローラ及びXendesktopコントローラに送信されてもよい。
ステップ814において、外部クラウドサービスプロバイダ714は、ユーザの暗号化されたID信用情報、及び暗号化キーの第1のハッシュを含むメッセージを第2のワークスペースクラウドコネクタ710bに転送し、第2のワークスペースクラウドコネクタ710bはステップ816において、そのメッセージをエンティティの構内(例えば、内部クラウドサービス)に存在する仮想配信エージェント712に転送することができる。ユーザのID信用情報は暗号化されているので、外部クラウドサービスプロバイダ714は、暗号化されていないバージョンのユーザのID信用情報にアクセスすることができず、したがってセキュリティが維持される。加えて、ステップ814において、外部クラウドサービスプロバイダ714は、ユーザまたはリモートコンピューティングデバイス702の(例えば、受信メッセージに含まれる)1つ以上のルーティングポリシー、ロードバランシング、及び汎用識別子を使用して、複数の仮想配信エージェントのうちのいずれにメッセージをルーティングするかを決定する。
ステップ818において、仮想配信エージェント712は、ユーザの暗号化されたID信用情報への第1のハッシュのマッピングを生成することができる。例えば、仮想配信エージェント712は、第1のハッシュ及び暗号化されたパスワードを仮想配信エージェント712によってアクセス可能なデータベースのマッピングテーブルに格納することができる。仮想配信エージェント712は、複数のメッセージ(例えば、数百または数千のメッセージ)を受信している可能性があるため、マッピングテーブルを使用して第1のハッシュをユーザの暗号化されたID信用情報にマッピングすることは、適切な第1のハッシュ及び暗号化されたID信用情報が、以下にさらに詳細に説明するように、ハッシュを比較し、かつ、暗号化されたID信用情報を復号化する際に使用するのに識別されることを確実にするのに役立つ。
ステップ820において、仮想配信エージェント712のネットワークアドレス(本明細書ではVDAアドレスともいう)を含む肯定応答が第2のワークスペースクラウドコネクタ710bに送信され、ステップ822において、第2のワークスペースクラウドコネクタ710bは肯定応答を外部クラウドサービスプロバイダ714に転送することができる。ステップ824において、外部クラウドサービスプロバイダ714は、VDAアドレスを第1のワークスペースクラウドコネクタ710aに送信することができる。ステップ826において、第1のワークスペースクラウドコネクタ710aは、VDAアドレス及び暗号化キーをログインポータル708に送信することができ、ログインポータル708は、ステップ828において、VDAアドレス及び暗号化キーをリモートコンピューティングデバイス702に(例えば、ゲートウェイ706及びレシーバ704を介して)転送することができる。ステップ830において、リモートコンピューティングデバイス702は、VDAアドレスを使用して、仮想配信エージェント712に暗号化キーを送信することができる。送信は、レシーバ704及びゲートウェイ706を介して送られてもよい。暗号化キーは、ICAログオンチケットの形式であってもよい。すなわち、ICAログオンチケットの値またはフィールドは、暗号化キーとすることができる。他の例では、ICAチケットは、暗号化キーのための別個のフィールドを含むことができる。
ステップ832において、仮想配信エージェント712は、暗号化キーの第2のハッシュ(例えば、ハッシュ2)を生成するために暗号化キーをハッシュすることができる。第2のハッシュは、第1のハッシュと同じ形式(例えば、ハッシュ値、ハッシュコードまたはハッシュサム)であってもよく、ステップ810において第1のハッシュ(例えば、SHA−2)を生成するのに使用されたのと同じハッシュ関数を使用して生成されてもよい。ステップ834では、仮想配信エージェント712は、生成された第2のハッシュを使用して、マッチングが見つかるまで第1のハッシュをマッピングテーブルの各ハッシュと比較することにより、マッピングテーブルにおいて、第1のハッシュ及び第1のハッシュの対応する暗号化されたID信用情報をルックアップすることができる。第2のハッシュがテーブルに格納されたハッシュのいずれとも一致しない場合、仮想配信エージェント712は、内部アプリケーションへのアクセスを許可せず(例えば、アクセスをブロックし)、ユーザに表示するために拒否メッセージをリモートコンピューティングデバイス702に送ることができる。そうではなく、第2のハッシュがテーブルに格納されたハッシュの1つ(例えば、第1のハッシュ)と一致する場合、仮想配信エージェント712は、ステップ836において、第1のハッシュを使用して、テーブル内の第1のハッシュの対応する(例えば、マッピングされた)暗号化されたID信用情報を第1のハッシュを識別し、かつ、ステップ830で受信した暗号化キーを使用して、ユーザの暗号化されたID信用情報を復号化し、暗号化されていないバージョンのユーザのID信用情報(例えば、平文バージョンのユーザのユーザ名及びパスワード)を生成することができる。ステップ838において、仮想配信エージェント712は、ユーザセッションを作成するための認証用のユーザのID信用情報を内部アプリケーションに提供することができる。内部クラウド内のコンピューティングデバイス(例えば、上記の例に従えば、Virginiaオフィス内のユーザの業務用コンピュータ)に存在する内部アプリケーションは、ユーザのID信用情報を使用してユーザを認証し、認証に基づいて内部アプリケーションへのアクセスを許可または拒否することができる。
第2のハッシュをマッピングテーブルの各ハッシュと比較することによって第1のハッシュを識別するために第2のハッシュを使用するのではなく、加えて、または代わりに、特定の識別子(例えば、テーブル行識別子)を使用することができる。そのような場合、仮想配信エージェント712は、マッピングテーブルに第1のハッシュ、及び対応するID信用情報を格納するときに特定の識別子を生成して、仮想配信エージェント712に転送するためにリモートコンピューティングデバイス702に後方送信するVDAアドレスにその識別子を付加することができる。次に、仮想配信エージェント712は、第2のハッシュと比較するために第1のハッシュをルックアップするのにその識別子を使用することができる。
図8〜9の方法を使用する結果として、エンティティのLondonオフィス内のユーザは、外部クラウドサービスプロバイダを使用してVirginiaオフィス内の内部アプリケーションにセキュアにアクセスするのにリモートコンピューティングデバイス702を使用することができる。ユーザのID信用情報は、外部クラウドサービスプロバイダ714を使用している場合であっても、セキュアに内部アプリケーションに送信される。外部クラウドサービスプロバイダ714は、ユーザの暗号化されたID信用情報を受信することができるが、ユーザの暗号化されていない(例えば平文)バージョンのID信用情報はセキュリティを維持するために受信しないことがある。さらに、この方法は、特定の形式のID信用情報(例えば、ユーザ名及びパスワード)を使用する内部アプリケーションにアクセスするためにユーザがユーザのID信用情報を複数回入力する必要がなく、異なる形式(例えば、SAMLまたはOAuthのIDアサーション)のID信用情報を使用しない可能性があるので、ユーザの利便性を高める。加えて暗号化キーは、正しい仮想配信エージェントに送られるユーザのID信用情報とは完全に異なった、仮想配信エージェント712への経路をとるので、暗号化キーが間違った仮想配信エージェントに送信された場合、その仮想配信エージェントは、ユーザの暗号化されたID信用情報を復号化することができない可能性がある。同様に、ユーザの暗号化されたID信用情報が間違った仮想配信エージェントに送信された場合、その仮想配信エージェントはユーザの暗号化されたID信用情報を復号化できないことがある。
1つ以上の追加または代替の構成では、第1のワークスペースクラウドコネクタ710aは、ユーザのID信用情報をランダムに生成されたトークンで置き換え、第1のワークスペースクラウドコネクタ710aに格納された信用情報ウォレットにユーザのID信用情報を保持する。信用情報ウォレットは、各ワークスペースクラウドコネクタ(例えば、第2のワークスペースクラウドコネクタ710b)によって複製されてもよい。外部クラウドサービスプロバイダ714に送られるメッセージは、ユーザの暗号化されたID信用情報ではなく、トークンを含むことができる。第2のワークスペースクラウドコネクタ710bは、外部クラウドサービスプロバイダ714から受信したトークンを使用して、ユーザのID信用情報をルックアップし、ユーザのID信用情報を仮想配信エージェント712に提供することができる。その結果、ユーザの(暗号化された形式であっても)ID信用情報は、外部クラウドサービスプロバイダ714に送信されない可能性がある。
図8〜9に記載した上記の方法は、マルチユーザシステム内の任意のユーザによって外部クラウドに送られていることを意図された各メッセージに対して適用(例えば、繰り返)されてもよい。
主題は、構造的特徴及び/または方法論的動作に特有の言語で説明されているが、添付のクレームに規定した主題は、必ずしも上述の特定の特徴または動作に限定されないことを理解されたい。むしろ、上記の特定の特徴及び動作は、クレームを実施する例示的な形態として開示される。
関連出願
本出願は、PASSWORD ENCRYPTION FOR HYBRID SERVICESと題して2016年5月9日に出願された米国非仮特許出願第15/149,707号、及びPASSWORD ENCRYPTION FOR HYBRID CLOUD SERVICESと題して2015年5月10日に出願された米国仮特許出願第62/159,320号の優先権と、その利益を主張する。本先行出願は、その全体が参照により本明細書に組み込まれる。

Claims (20)

  1. ユーザデバイスからメッセージを受信するように構成され、かつ、前記メッセージを外部クラウドに関連付けられたコンピューティングデバイスに転送するように構成された、内部クラウド内のゲートウェイと、
    前記ゲートウェイに通信可能に結合されたワークスペースクラウドコネクタと、を備え、前記ワークスペースクラウドコネクタは、
    前記外部クラウドに関連付けられた前記コンピューティングデバイスに転送されている前記メッセージのうちの第1のメッセージをインターセプトし、前記インターセプトは内部アプリケーション用のユーザID信用情報を含む前記第1のメッセージに基づいて行われ、
    暗号化キーを生成し、
    前記暗号化キーを使用して前記ユーザID信用情報を暗号化し、
    前記暗号化キーの第1のハッシュを生成し、
    前記暗号化されたユーザID信用情報、及び前記暗号化キーの前記第1のハッシュを含む第2のメッセージを、前記外部クラウドに関連付けられた前記コンピューティングデバイスに送信し、
    前記暗号化されたユーザID信用情報、及び前記暗号化キーの前記第1のハッシュを含む前記第2のメッセージを、前記外部クラウドに関連付けられた前記コンピューティングデバイスに送信したことに応答して、前記外部クラウドに関連付けられた前記コンピューティングデバイスから仮想配信エージェントのルーティングアドレスを受信し、かつ、
    前記暗号化キー及び前記仮想配信エージェントの前記ルーティングアドレスを含む第3のメッセージを前記ユーザデバイスに送信するように構成される、システム。
  2. さらに、前記仮想配信エージェントを含み、該仮想配信エージェントは、
    前記暗号化されたユーザID信用情報、及び前記暗号化キーの前記第1のハッシュを含む前記第2のメッセージを、前記外部クラウドに関連付けられた前記コンピューティングデバイスから受信し、
    前記暗号化されたユーザID信用情報、及び前記暗号化キーの前記第1のハッシュをマップに格納し、かつ、
    前記仮想配信エージェントの前記ルーティングアドレスを、前記外部クラウドに関連付けられた前記コンピューティングデバイスに送るように構成される、請求項1に記載のシステム。
  3. 前記仮想配信エージェントは、さらに、
    前記ユーザデバイスから前記暗号化キーを受信し、
    前記暗号化キーの第2のハッシュを生成し、かつ、
    前記暗号化キーの前記第2のハッシュを使用して、前記マップに格納された前記暗号化キーの前記第1のハッシュを識別するように構成される、請求項2に記載のシステム。
  4. 前記仮想配信エージェントは、さらに、
    前記暗号化キーの前記第2のハッシュを、前記マップに格納された複数のハッシュの各々と比較することによって、前記暗号化キーの前記第2のハッシュを使用して、前記マップに格納された前記暗号化キーの前記第1のハッシュの識別を実行するように構成される、請求項3に記載のシステム。
  5. 前記仮想配信エージェントは、さらに、
    前記暗号化キーの前記第2のハッシュが、前記マップに格納された前記複数のハッシュのいずれのハッシュとも一致しないと判定されたことに応答して、前記内部アプリケーションへのアクセスを防止し、かつ、拒否メッセージを前記ユーザデバイスに送るように構成される、請求項4に記載のシステム。
  6. 前記仮想配信エージェントは、さらに、
    前記暗号化キーの前記第2のハッシュが前記暗号化キーの前記第1のハッシュと一致すると判定されたことに応答して、前記暗号化キーを使用して、前記暗号化されたユーザID信用情報を復号化し、かつ、前記ユーザID信用情報を前記内部アプリケーションに提供するように構成される、請求項4に記載のシステム。
  7. 前記内部アプリケーションは、特定の形式を有するユーザID信用情報を認証し、異なる形式を有するユーザID信用情報を認証しないように構成される、請求項1に記載のシステム。
  8. 前記特定の形式を有する前記ユーザID信用情報はユーザパスワードであり、前記異なる形式を有する前記ユーザID信用情報は、セキュリティアサーションマークアップ言語(SAML)アサーションまたは承認用オープン標準(OAuth)アサーションのうちの1つである、請求項7に記載のシステム。
  9. さらに、前記ユーザデバイスを備え、該ユーザデバイスは、さらに、
    前記暗号化キー及び前記仮想配信エージェントの前記ルーティングアドレスを含む前記第3のメッセージを前記ワークスペースクラウドコネクタから受信し、かつ、
    前記仮想配信エージェントの前記ルーティングアドレスを使用して前記暗号化キーを前記仮想配信エージェントに送信するように構成される、請求項1に記載のシステム。
  10. 前記外部クラウドに関連付けられた前記コンピューティングデバイスは、
    前記暗号化されたユーザID信用情報、及び前記暗号化キーの前記第1のハッシュを含む前記第2のメッセージを前記ワークスペースクラウドコネクタから受信し、
    前記暗号化されたユーザID信用情報、及び前記暗号化キーの前記第1のハッシュを含む前記第2のメッセージを複数の仮想配信エージェントのうちのいずれに送るかを決定し、かつ
    前記暗号化されたユーザID信用情報、及び前記暗号化キーの前記第1のハッシュを含む前記第2のメッセージを前記仮想配信エージェントに送るように構成される、請求項1に記載のシステム。
  11. 前記内部クラウドは第1のエンティティによって運営上管理され、前記外部クラウドは前記第1のエンティティとは異なる第2のエンティティによって運営上管理されている、請求項1に記載のシステム。
  12. 前記内部クラウドは、さらに、
    前記暗号化されたユーザID信用情報、及び前記暗号化キーの前記第1のハッシュを第1の経路を介して前記仮想配信エージェントに送信し、かつ、
    前記暗号化キーを前記第1の経路とは異なる第2経路を介して前記仮想配信エージェントに送信するように構成される、請求項1に記載のシステム。
  13. 内部クラウド内に、
    プロセッサと、
    命令を格納するコンピュータ可読媒体と、を備える装置であって、前記命令は、前記プロセッサによって実行されると、
    ユーザデバイスから、かつ外部クラウドに関連付けられたコンピューティングデバイスに送られている第1のメッセージを、アプリケーションに関連付けられたユーザID信用情報を含む前記第1のメッセージに基づいてインターセプトし、
    暗号化キーを生成し、
    前記暗号化キーを使用してユーザID信用情報を暗号化し、
    前記暗号化キーの第1のハッシュを生成し、
    前記暗号化されたユーザID信用情報、及び前記暗号化キーの前記第1のハッシュを含む第2のメッセージを、前記外部クラウドに関連付けられた前記コンピューティングデバイスに送信し、
    前記暗号化されたユーザID信用情報、及び前記暗号化キーの前記第1のハッシュを含む前記第2のメッセージを、前記外部クラウドに関連付けられた前記コンピューティングデバイスに送信したことに応答して、前記外部クラウドに関連付けられた前記コンピューティングデバイスから仮想配信エージェントのルーティングアドレスを受信し、かつ、
    前記暗号化キー及び前記仮想配信エージェントの前記ルーティングアドレスを含む第3のメッセージを前記ユーザデバイスに送信するように前記装置を構成する、装置。
  14. 前記暗号化キーはランダムログオンチケットである、請求項13に記載の装置。
  15. 前記内部クラウドは第1のエンティティによって運営上管理され、かつ、前記外部クラウドは前記第1のエンティティとは異なる第2のエンティティによって運営上管理される、請求項13に記載の装置。
  16. 前記命令は、前記プロセッサによって実行されると、さらに、
    前記外部クラウドに送られている各メッセージのユーザID信用情報を検査するように前記装置を構成する、請求項13に記載の装置。
  17. ユーザデバイスからの、かつ、外部クラウドに関連付けられたコンピューティングデバイスに送られている第1のメッセージを、内部クラウドに関連付けられたコンピューティングデバイスによってインターセプトすることであって、内部アプリケーションに関連付けられたユーザID信用情報を含む前記第1のメッセージに基づいて、インターセプトすることと、
    前記内部クラウドに関連付けられた前記コンピューティングデバイスによって、前記第1のメッセージに含まれる前記ユーザID信用情報を抽出することと、
    内部クラウドに関連付けられた前記コンピューティングデバイスによってランダムログオンチケットを生成することと、
    前記内部クラウドに関連付けられた前記コンピューティングデバイスによって、前記ランダムログオンチケットを使用して前記ユーザID信用情報を暗号化することと、
    前記内部クラウドに関連付けられた前記コンピューティングデバイスによって、前記ランダムログオンチケットの第1のハッシュを生成することと、
    前記内部クラウドに関連付けられた前記コンピューティングデバイスによって、かつ、前記外部クラウドに関連付けられた前記コンピューティングデバイスに、前記暗号化されたユーザID信用情報、及び前記ランダムログオンチケットの前記第1のハッシュを含む、第2のメッセージを送信することと、
    前記送信に応答して、前記内部クラウドに関連付けられた前記コンピューティングデバイスによって、かつ、前記外部クラウドに関連付けられた前記コンピューティングデバイスから、仮想配信エージェントのルーティングアドレスを受信することと、
    前記内部クラウドに関連付けられた前記コンピューティングデバイスから、かつ、前記ユーザデバイスに、前記ランダムログオンチケット、及び前記仮想配信エージェントの前記ルーティングアドレスを含む第3のメッセージを送信することと、を含む、方法。
  18. 前記ランダムログオンチケットは可逆暗号化技術を使用して暗号化される、請求項17に記載の方法。
  19. 前記内部クラウドは第1のエンティティによって運営上管理され、かつ、前記外部クラウドは前記第1のエンティティとは異なる第2のエンティティによって運営上管理される、請求項17に記載の方法。
  20. さらに、前記仮想配信エージェントによって、かつ、前記ユーザデバイスから前記ランダムログオンチケットを受信することと、
    前記仮想配信エージェントによって、前記ランダムログオンチケットの第2のハッシュを生成することと、
    前記仮想配信エージェントによって、前記ランダムログオンチケットの前記第1のハッシュと前記ランダムログオンチケットの前記第2のハッシュとを比較することと、
    前記ランダムログオンチケットの前記第1のハッシュが前記ランダムログオンチケットの前記第2のハッシュと一致すると判定したことに応答して、前記ランダムログオンチケットを使用して、前記暗号化されたユーザID信用情報を復号化し、前記ユーザID信用情報を前記内部アプリケーションに提供することと、をさらに含む、請求項17に記載の方法。
JP2017558535A 2015-05-10 2016-05-10 ハイブリッドクラウドサービスのためのパスワードの暗号化 Expired - Fee Related JP6539357B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562159320P 2015-05-10 2015-05-10
US62/159,320 2015-05-10
US15/149,707 2016-05-09
US15/149,707 US10432592B2 (en) 2015-05-10 2016-05-09 Password encryption for hybrid cloud services
PCT/US2016/031616 WO2016183066A1 (en) 2015-05-10 2016-05-10 Password encryption for hybrid cloud services

Publications (2)

Publication Number Publication Date
JP2018524843A true JP2018524843A (ja) 2018-08-30
JP6539357B2 JP6539357B2 (ja) 2019-07-03

Family

ID=57222032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017558535A Expired - Fee Related JP6539357B2 (ja) 2015-05-10 2016-05-10 ハイブリッドクラウドサービスのためのパスワードの暗号化

Country Status (4)

Country Link
US (2) US10432592B2 (ja)
EP (1) EP3295642B1 (ja)
JP (1) JP6539357B2 (ja)
WO (1) WO2016183066A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022043329A (ja) * 2019-09-24 2022-03-15 プライビット テクノロジー インク トンネルに基盤して端末のネットワーク接続を制御するためのシステム及びそれに関する方法
JP2022519803A (ja) * 2019-01-07 2022-03-25 シトリックス・システムズ・インコーポレイテッド 強化されている省電力および接続性を有した仮想配信エージェントリーシングを通じた仮想コンピューティングセッションを提供するコンピューターシステムおよび関係する方法
US11381557B2 (en) 2019-09-24 2022-07-05 Pribit Technology, Inc. Secure data transmission using a controlled node flow
US11652801B2 (en) 2019-09-24 2023-05-16 Pribit Technology, Inc. Network access control system and method therefor

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9703973B2 (en) 2015-04-28 2017-07-11 International Business Machines Corporation Customer load of field programmable gate arrays
US10339302B2 (en) * 2015-05-21 2019-07-02 Airwatch Llc Creating multiple workspaces in a device
US10878079B2 (en) 2016-05-11 2020-12-29 Oracle International Corporation Identity cloud service authorization model with dynamic roles and scopes
US10425386B2 (en) 2016-05-11 2019-09-24 Oracle International Corporation Policy enforcement point for a multi-tenant identity and data security management cloud service
US10454940B2 (en) 2016-05-11 2019-10-22 Oracle International Corporation Identity cloud service authorization model
US9838377B1 (en) 2016-05-11 2017-12-05 Oracle International Corporation Task segregation in a multi-tenant identity and data security management cloud service
US10341410B2 (en) 2016-05-11 2019-07-02 Oracle International Corporation Security tokens for a multi-tenant identity and data security management cloud service
US10673838B2 (en) * 2016-05-13 2020-06-02 MobileIron, Inc. Unified VPN and identity based authentication to cloud-based services
US10523660B1 (en) 2016-05-13 2019-12-31 MobileIron, Inc. Asserting a mobile identity to users and devices in an enterprise authentication system
US10826875B1 (en) * 2016-07-22 2020-11-03 Servicenow, Inc. System and method for securely communicating requests
US10255061B2 (en) 2016-08-05 2019-04-09 Oracle International Corporation Zero down time upgrade for a multi-tenant identity and data security management cloud service
US10585682B2 (en) 2016-08-05 2020-03-10 Oracle International Corporation Tenant self-service troubleshooting for a multi-tenant identity and data security management cloud service
US10735394B2 (en) 2016-08-05 2020-08-04 Oracle International Corporation Caching framework for a multi-tenant identity and data security management cloud service
US10516672B2 (en) 2016-08-05 2019-12-24 Oracle International Corporation Service discovery for a multi-tenant identity and data security management cloud service
US10530578B2 (en) * 2016-08-05 2020-01-07 Oracle International Corporation Key store service
US10505941B2 (en) 2016-08-05 2019-12-10 Oracle International Corporation Virtual directory system for LDAP to SCIM proxy service
US10681131B2 (en) * 2016-08-29 2020-06-09 Vmware, Inc. Source network address translation detection and dynamic tunnel creation
US10644937B2 (en) * 2016-09-13 2020-05-05 Oracle International Corporation Techniques for managing SCIM-compliant systems
US10567364B2 (en) 2016-09-16 2020-02-18 Oracle International Corporation Preserving LDAP hierarchy in a SCIM directory using special marker groups
US10791087B2 (en) 2016-09-16 2020-09-29 Oracle International Corporation SCIM to LDAP mapping using subtype attributes
US10387681B2 (en) * 2017-03-20 2019-08-20 Huawei Technologies Co., Ltd. Methods and apparatus for controlling access to secure computing resources
US11151253B1 (en) * 2017-05-18 2021-10-19 Wells Fargo Bank, N.A. Credentialing cloud-based applications
US20180375648A1 (en) * 2017-06-22 2018-12-27 Citrix Systems, Inc. Systems and methods for data encryption for cloud services
CN107330337B (zh) 2017-07-19 2022-05-24 腾讯科技(深圳)有限公司 混合云的数据存储方法、装置、相关设备及云系统
US10587703B2 (en) * 2017-08-18 2020-03-10 Citrix Systems, Inc. Providing communication connectivity between disparate network entities located in isolated communication networks through a centralized cloud service
US20190068533A1 (en) * 2017-08-28 2019-02-28 Microsoft Technology Licensing, Llc Acquiring attachments from data storage providers for use in electronic communications
US10986084B1 (en) * 2017-09-22 2021-04-20 Massachusetts Mutual Life Insurance Company Authentication data migration
US10834081B2 (en) 2017-10-19 2020-11-10 International Business Machines Corporation Secure access management for tools within a secure environment
US20190141022A1 (en) * 2017-11-07 2019-05-09 International Business Machines Corporation On-premise and off-premise communication
US10693849B2 (en) * 2017-11-15 2020-06-23 International Business Machines Corporation Sending message in multilayer system
US10819576B2 (en) * 2018-03-23 2020-10-27 Juniper Networks, Inc. Enforcing policies in cloud domains with different application nomenclatures
US11102140B2 (en) * 2018-05-07 2021-08-24 Bank Of America Corporation Abstraction layer to cloud services
US10673837B2 (en) * 2018-06-01 2020-06-02 Citrix Systems, Inc. Domain pass-through authentication in a hybrid cloud environment
US10754691B2 (en) * 2018-06-27 2020-08-25 International Business Machines Corporation Policy based requesting/approval system across multiple hybrid clouds
US11611541B2 (en) 2018-08-07 2023-03-21 Citrix Systems, Inc. Secure method to replicate on-premise secrets in a cloud environment
US11258756B2 (en) 2018-11-14 2022-02-22 Citrix Systems, Inc. Authenticating to a hybrid cloud using intranet connectivity as silent authentication factor
US11178218B2 (en) * 2019-01-02 2021-11-16 Citrix Systems, Inc. Bidirectional communication clusters
US11190514B2 (en) * 2019-06-17 2021-11-30 Microsoft Technology Licensing, Llc Client-server security enhancement using information accessed from access tokens
US11611549B2 (en) * 2019-10-03 2023-03-21 Fset Inc System and method of securing access to a secure remote server and database on a mobile device
CN111163164B (zh) * 2019-12-27 2022-09-13 山东乾云启创信息科技股份有限公司 一种基于鲲鹏芯片的云桌面安全传输方法及装置
US11438171B2 (en) * 2020-03-05 2022-09-06 Micron Technology, Inc. Virtualized authentication device
CA3143307A1 (en) 2020-06-10 2021-12-16 Citrix Systems, Inc. Provision of remote application action feed cards
CN113992353B (zh) * 2021-09-27 2024-01-09 北京达佳互联信息技术有限公司 登录凭证的处理方法、装置、电子设备及存储介质
US11936658B2 (en) 2021-11-15 2024-03-19 Bank Of America Corporation Intelligent assignment of a network resource
CN114140251B (zh) * 2022-01-29 2022-05-17 北京优品三悦科技发展有限公司 一种基于代理重加密的电子门票质押方法和系统
CN114726606B (zh) * 2022-03-31 2023-03-24 北京九州恒盛电力科技有限公司 一种用户认证方法、客户端、网关及认证服务器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11110354A (ja) * 1997-09-29 1999-04-23 Nissin Electric Co Ltd サーバ、および、そのプログラムを記録した記録媒体
JP2006033198A (ja) * 2004-07-13 2006-02-02 Fuji Xerox Co Ltd データ管理システム、データ管理方法及びそのためのプログラム
JP2011238289A (ja) * 2002-09-18 2011-11-24 Open Invention Network Llc ウェブサービス間のセキュリティ構成の動的ネゴシエーション
JP2013533535A (ja) * 2010-05-28 2013-08-22 アルカテル−ルーセント パケットネットワークにおけるアプリケーションレイヤ認証
US8863255B2 (en) * 2012-09-14 2014-10-14 Netflix, Inc. Security credential deployment in cloud environment

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050198379A1 (en) * 2001-06-13 2005-09-08 Citrix Systems, Inc. Automatically reconnecting a client across reliable and persistent communication sessions
WO2007121035A2 (en) * 2006-03-23 2007-10-25 Exegy Incorporated Method and system for high throughput blockwise independent encryption/decryption
US8214890B2 (en) * 2008-08-27 2012-07-03 Microsoft Corporation Login authentication using a trusted device
US8505083B2 (en) * 2010-09-30 2013-08-06 Microsoft Corporation Remote resources single sign on
US8819444B2 (en) * 2011-12-27 2014-08-26 Majid Shahbazi Methods for single signon (SSO) using decentralized password and credential management
US9160535B2 (en) * 2012-03-19 2015-10-13 Dell Inc Truly anonymous cloud key broker
US20140108558A1 (en) * 2012-10-12 2014-04-17 Citrix Systems, Inc. Application Management Framework for Secure Data Sharing in an Orchestration Framework for Connected Devices
WO2014062405A1 (en) * 2012-10-16 2014-04-24 Citrix Systems, Inc. Systems and methods for bridging between public and private clouds through multi-level api integration
US9930066B2 (en) * 2013-02-12 2018-03-27 Nicira, Inc. Infrastructure level LAN security
CN109617933B (zh) * 2013-09-20 2021-09-17 甲骨文国际公司 利用表单填充代理应用的基于网络的单点登录

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11110354A (ja) * 1997-09-29 1999-04-23 Nissin Electric Co Ltd サーバ、および、そのプログラムを記録した記録媒体
JP2011238289A (ja) * 2002-09-18 2011-11-24 Open Invention Network Llc ウェブサービス間のセキュリティ構成の動的ネゴシエーション
JP2006033198A (ja) * 2004-07-13 2006-02-02 Fuji Xerox Co Ltd データ管理システム、データ管理方法及びそのためのプログラム
JP2013533535A (ja) * 2010-05-28 2013-08-22 アルカテル−ルーセント パケットネットワークにおけるアプリケーションレイヤ認証
US8863255B2 (en) * 2012-09-14 2014-10-14 Netflix, Inc. Security credential deployment in cloud environment

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022519803A (ja) * 2019-01-07 2022-03-25 シトリックス・システムズ・インコーポレイテッド 強化されている省電力および接続性を有した仮想配信エージェントリーシングを通じた仮想コンピューティングセッションを提供するコンピューターシステムおよび関係する方法
JP7143532B2 (ja) 2019-01-07 2022-09-28 シトリックス・システムズ・インコーポレイテッド 強化されている省電力および接続性を有した仮想配信エージェントリーシングを通じた仮想コンピューティングセッションを提供するコンピューターシステムおよび関係する方法
JP2022043329A (ja) * 2019-09-24 2022-03-15 プライビット テクノロジー インク トンネルに基盤して端末のネットワーク接続を制御するためのシステム及びそれに関する方法
US11381557B2 (en) 2019-09-24 2022-07-05 Pribit Technology, Inc. Secure data transmission using a controlled node flow
JP7148187B2 (ja) 2019-09-24 2022-10-05 プライビット テクノロジー インク トンネルに基盤して端末のネットワーク接続を制御するためのシステム及びそれに関する方法
US11652801B2 (en) 2019-09-24 2023-05-16 Pribit Technology, Inc. Network access control system and method therefor

Also Published As

Publication number Publication date
WO2016183066A1 (en) 2016-11-17
EP3295642B1 (en) 2019-05-08
US20190349341A1 (en) 2019-11-14
US10432592B2 (en) 2019-10-01
US20160330177A1 (en) 2016-11-10
EP3295642A1 (en) 2018-03-21
JP6539357B2 (ja) 2019-07-03
US11722465B2 (en) 2023-08-08

Similar Documents

Publication Publication Date Title
US11722465B2 (en) Password encryption for hybrid cloud services
JP6731023B2 (ja) クライアントアプリケーションのためのセキュアなシングルサインオン及び条件付きアクセス
US11706205B2 (en) Extending single-sign-on to relying parties of federated logon providers
US10609560B2 (en) Using derived credentials for enrollment with enterprise mobile device management services
US11627120B2 (en) Dynamic crypto key management for mobility in a cloud environment
US11734635B2 (en) Deploying and implementing enterprise policies that control augmented reality computing functions
CN107566400B (zh) 用于确定应用的操作模式的方法
US11652613B2 (en) Secure information exchange in federated authentication
CN112789841A (zh) 在远程访问或基于云的网络环境中访问资源
US11431502B2 (en) Enhanced token transfer
US20220191288A1 (en) Native application integration for enhanced remote desktop experiences
JP2021535521A (ja) 仮想デスクトップでのローカルマップアカウント
US11366883B2 (en) Reflection based endpoint security test framework
US11829505B2 (en) High security one-time encryption

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190411

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: 20190509

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190607

R150 Certificate of patent or registration of utility model

Ref document number: 6539357

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees