JP2016524742A - プロキシを使用したリソースへの安全なアクセス - Google Patents

プロキシを使用したリソースへの安全なアクセス Download PDF

Info

Publication number
JP2016524742A
JP2016524742A JP2016512034A JP2016512034A JP2016524742A JP 2016524742 A JP2016524742 A JP 2016524742A JP 2016512034 A JP2016512034 A JP 2016512034A JP 2016512034 A JP2016512034 A JP 2016512034A JP 2016524742 A JP2016524742 A JP 2016524742A
Authority
JP
Japan
Prior art keywords
authentication
client device
proxy device
client
proxy
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
JP2016512034A
Other languages
English (en)
Other versions
JP6121049B2 (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 JP2016524742A publication Critical patent/JP2016524742A/ja
Application granted granted Critical
Publication of JP6121049B2 publication Critical patent/JP6121049B2/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
    • 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/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • 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/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】制約の少ない認証およびリソースへのアクセス方法を提供する。【解決手段】クライアントデバイス(205)はプロキシデバイス(710)に、企業リソース等のリソース(720)へのアクセスの要求を送信し、プロキシデバイス(710)はリソース(720)に関連付けられた1つ以上のサーバ(715)で認証を行う。認証中に、プロキシデバイス(710)はクライアントデバイス(705)によって制御された署名に対する要求を受信する。それに応答して、プロキシデバイス(710)はクライアントデバイス(705)に署名の要求を送信する。この要求は、認証セッション中に交換された(または交換される)認証情報のデータ構造を識別するコンテキスト情報も含んでいる。クライアントデバイス(705)がコンテキスト情報を確認すれば、クライアントデバイス(705)は要求された署名を送信する。【選択図】図7

Description

本明細書に説明する本発明の各態様は大略的に、クライアントデバイスがプロキシデバイスを使用して安全にリソースにアクセスするためのアプローチを提供する方法およびデバイスに関するものである。
従来、公衆ネットワークに接続されているクライアントデバイスは、仮想プライベートネットワーク(VPN)を使用してプライベートネットワークにつながっている。VPNにおいて、プロキシデバイスは、単純に透明なパイプとして機能し、クライアントデバイスとプライベートネットワークとの間に必要な接続を提供する。
従来のVPNには様々な問題が存在する。第一に、クライアントデバイスはプライベートネットワークのリソースに直接アクセスできるため、クライアントデバイスに対して大きな信用が課される。第二に、クライアントデバイスはリソースおよび/またはプライベートネットワークの通信プロトコルのために構成されなければならない。第三に、プロキシデバイスはクライアントデバイスの活動(activity)を制御または監視できない。
以下に、本明細書に説明する様々な発明の態様の簡単な概要を提示する。本概要は広範な全体像ではなく重要なもしくは欠かせない要素を特定すること、または特許請求の範囲を正確に説明することを意図していない。以下の概要は、以下に記載するより詳細な説明の導入として、単にいくつかの概念を簡単な形で提示するにすぎない。
上述の先行技術の制約を克服し、本明細書の読解によって明らかになるであろう他の制約を克服するために、本明細書に説明する本発明の態様は、プロキシデバイスでクライアントデバイスからリソースに対する要求を受信するステップと、プロキシデバイスからリソース管理デバイスへ、リソースに対する要求を送信するステップとを含む方法を実行するように構成されたシステム、装置、および/またはコンピュータ可読媒体を指向する。
プロキシデバイスとリソース管理デバイスとの間に認証セッションを開始してもよい。プロキシデバイスはクライアントデバイスに対して署名提供の要求を生成してもよく、クライアントデバイスに対する署名提供の要求は(1)プロキシデバイスとリソース管理デバイスとの間で事前に交換した認証情報および(2)プロキシデバイスからリソース管理デバイスへ送信されるべき認証情報のうち少なくとも1つのデータ構造を識別するコンテキスト情報を含んでいてもよい。プロキシデバイスは、クライアントデバイスがコンテキスト情報を検証した場合などに、クライアントデバイスから署名を受信してもよい。署名はクライアントデバイスにおいてスマートカードから提供されてもよい。プロキシデバイスは署名をリソース管理デバイスへ送信してもよい。
いくつかの実施形態では、方法はさらに、認証セッション開始後に、プロキシデバイスにおいてクライアントデバイスからクライアントデバイスが利用できるセキュリティ証明書のリストを受信するステップを含んでいてもよい。認証セッションのためのセキュリティ証明書を選択してもよい。さらに、クライアントデバイスに対する署名提供の要求は選択されたセキュリティ証明書の識別を含んでいてもよい。
方法はさらに、リソース管理デバイスへの署名の送信後に、プロキシデバイスにおいて署名に対応するセッション鍵を受信するステップを含んでいてもよい。プロキシデバイスはセッション鍵を使用してリソース管理デバイスから要求されたリソースを取得してもよい。プロキシデバイスは要求されたリソースをクライアントデバイスへ送信してもよい。
いくつかの態様では、認証セッションはSSL認証を含んでもよく、データ構造を識別するコンテキスト情報は認証セッション中にプロキシデバイスとリソース管理デバイスとの間で事前に交換されたSSL認証メッセージを含んでいてもよい。他の態様では、認証セッションはケルベロス認証を含んでもよく、データ構造を識別するコンテキスト情報はケルベロスデータ構造を識別する情報を含んでいてもよい。たとえば、ケルベロスデータ構造は抽象構文記法1を含んでいてもよい。さらに/あるいは(additionally or alternatively)、データ構造を識別するコンテキスト情報は、ケルベロス認証のために使用されるケルベロス・ドメイン、クライアントデバイスと関連付けられたケルベロス主体名、認証セッションのために使用される鍵配信センターの識別子、要求されたチケットの有効期間、および認証セッション中に設定されたケルベロスフラグのうちの少なくとも1つを含んでいてもよい。
いくつかの実施形態では、コンテキスト情報は認証セッションと関連付けられたタイムスタンプを識別してもよい。さらに/あるいは、コンテキスト情報は認証セッションのプロトコルタイプを識別してもよい。
ある態様においては、プロキシデバイスは、プロセッサと、プロセッサによって実行されるとプロキシデバイスに上記の方法のステップを実行させるコンピュータ実行可能な命令を格納するメモリとを含む。
システム、装置および/またはコンピュータ可読媒体は、クライアントデバイスからプロキシデバイスへ、リソースに対する要求を送信するステップを含む方法を実行するように構成されていてもよい。クライアントデバイスは、プロキシデバイスから、クライアントデバイスに対する署名提供の要求を受信してもよい。クライアントデバイスに対する署名提供の要求は、(1)プロキシデバイスと要求されたリソースと関連付けられたリソース管理デバイスとの間で事前に交換された認証情報および(2)プロキシデバイスによってリソース管理デバイスへ送信されるべき認証情報のうちの少なくとも1つのデータ構造を識別するコンテキスト情報を含んでいてもよい。
クライアントデバイスはデータ構造を検証してもよく、データ構造の検証に応答してクライアントデバイスはプロキシデバイスへセキュリティ証明書に対応する署名を送信してもよい。セキュリティ証明書はクライアントデバイスに接続されたスマートカードに格納されてもよい。
方法はさらに、要求に応答して、クライアントデバイスからプロキシデバイスへ、クライアントデバイスが利用可能な1つ以上のセキュリティ証明書を含むリストを送信するステップを含んでいてもよい。受信されたクライアントデバイスに対する署名提供の要求は、1つ以上のセキュリティ証明書を含むリストから選択されたセキュリティ証明書の識別を含んでいてもよい。
以上および追加の態様は、以下のさらに詳細に述べる開示によって十分理解されるであろう。
本発明の1つ以上の実施形態に従って使用されるコンピュータシステムのアーキテクチャを示す図である。 リモートアクセスシステムのアーキテクチャを示す図である。 仮想(ハイパーバイザー)システムのアーキテクチャを示す図である。 クラウドベースのシステムのアーキテクチャを示す図である。 企業モビリティ管理システムを示す図である。 別の企業モビリティ管理システムを示す図である。 クライアント、プロキシ、リソースおよび/または認証サービスを有するシステムを示す図である。 クライアントおよびプロキシの詳細を示す図である。 認証のためおよび/またはプロキシを使用してリソースへの安全なアクセスを提供するための方法の各ステップを示すフローチャートである。 認証のためおよび/またはプロキシを使用してリソースへの安全なアクセスを提供するための別の方法の各ステップを示すフローチャートである。 認証のためおよび/またはプロキシを使用してリソースへの安全なアクセスを提供するためのさらに別の方法の各ステップを示すフローチャートである。
本明細書で説明する態様およびその利点は、添付の図面を考慮して以下の説明を参照すると、より完全な理解が得られる。図面において、同じ参照番号は同じ特徴を示す。
上述のとおり特定され、本明細書の一部をなし、例示により本明細書で説明する本発明の各態様を実施するための様々な実施形態を、添付の図面を参照しながら説明する。本明細書で説明する範囲を逸脱することなく、他の実施形態を利用し、構造および機能に変更を加えてもよいことは理解されるべきである。本発明の各態様は他の実施形態が可能であり、様々な異なる方法で実施または実行することが可能である。
以下詳細に説明する主題の概要紹介として、本明細書で説明する実施の形態は、モバイルコンピューティングデバイスの管理対象モバイルアプリケーションを使用して、企業コンピューティングシステムのリソースへのリモートアクセスを制御することを指向する。
アクセスマネージャは、企業リソースへのアクセスを要求するモバイルアプリケーションが正確に特定され、モバイルコンピューティングデバイスへのインストール後に改変されていないかどうかを判定する検証プロセスを行う。このように、アクセスマネージャは企業リソースへのアクセスを要求するモバイルアプリケーションが信頼でき、その企業リソースを保護するために使用されるセキュリティメカニズムを回避しようとしていないことを保証する。その結果、企業に関連する個人は、自分の私用モバイルデバイスで企業リソースを有利に利用できる。
本明細書で使用される表現および用語は、説明目的であり、制限と見なしてはならないことは理解されるべきである。むしろ、本明細書で使用される表現および用語には、そのもっとも広い解釈および意味が与えられるべきである。「含み」および「備え」ならびにその変形の使用は、これ以降で挙げられるアイテムおよびその等価物ならびに追加アイテムおよびその等価物を包含することが意図されている。「取り付けられている」、「接続されている」、「連結されている」、「位置付けられている」、「係合されている」および同様な用語の使用は、直接的および間接的の両方の取り付け、接続、連結、位置付けおよび係合を含むことが意図されている。
〈コンピューティングアーキテクチャ〉
コンピュータのソフトウェア、ハードウェアおよびネットワークは、特に、スタンドアロン、ネットワーク化、リモートアクセス(別称、リモートデスクトップ)、仮想化および/またはクラウドベースの環境を含め、多様な異なるシステム環境で利用される。
図1は、本明細書で説明する1つ以上の態様を、スタンドアロンおよび/またはネットワーク環境で実装するために使用される、システムアーキテクチャならびにデータ処理装置の一実施例を示す。
様々なネットワークノード103,105,107および109は、インターネットなどの広域ネットワーク(WAN)101を介して相互接続されている。プライベートイントラネット、企業ネットワーク、LAN、メトロポリタンエリアネットワーク(MAN)、ワイヤレスネットワーク、パーソナルネットワーク(PAN)等を含む、他のネットワークもまた、または代わりに使用してもよい。ネットワーク101は例示目的であり、より少ないか、または追加のコンピュータネットワークと取り替えてもよい。ローカルエリアネットワーク(LAN)はあらゆる周知のLANトポロジーのうちの1つ以上を有しており、イーサーネットなどの多様な異なるプロトコルのうちの1つ以上を使用する。デバイス103,105,107,109および他のデバイス(図示せず)は、撚り対線、同軸ケーブル、光ファイバ、電波または他の通信媒体を介してネットワークのうちの1つ以上に接続している。
本明細書で使用し、図面に図示する用語「ネットワーク」とは、遠隔記憶装置が1つ以上の通信パスを介して互いに連結されているシステムだけではなく、記憶容量を有する当該システムにそのときどきで連結してもよいスタンドアロンデバイスのことも含む。そのため、「ネットワーク」とは、「物理的ネットワーク」だけでなく、すべての物理的ネットワークに常駐する(単一のエンティティに帰属する)データから構成される「コンテンツネットワーク」をも含む。
コンポーネントは、データサーバ103、ウェブサーバ105およびクライアントコンピュータ107,109を含んでいる。データサーバ103は、本明細書で説明する1つ以上の態様を行うために、データベースおよび制御ソフトウェアの全体的なアクセス、制御および管理(administration)を提供する。
データサーバ103はウェブサーバ105に接続されていてもよく、それによりユーザは必要なデータとやりとりし、必要なデータを取得する。あるいは、データサーバ103はウェブサーバ自体として作動してもよく、インターネットに直接接続してもよい。データサーバ103は、直接もしくは間接的な接続を介して、または何らかの他のネットワークを介して、ネットワーク101(たとえば、インターネット)経由でウェブサーバ105に接続されていてもよい。
ユーザはリモートコンピュータ107,109を使用して、たとえばウェブサーバ105がホストする1つ以上の外部に露出するウェブサイトを介してデータサーバ103に接続するためのウェブブラウザを使用して、データサーバ103とやりとりする。クライアントコンピュータ107,109はデータサーバ103とともに使用されて、そこに格納されているデータにアクセスしてもよく、または他の目的で使用されてもよい。たとえばユーザは、クライアントデバイス107から、当該技術分野で周知のインターネットブラウザを使用して、またはコンピュータネットワーク(インターネットなど)上でウェブサーバ105および/またはデータサーバ103と通信するソフトウェア・アプリケーションを実行することにより、ウェブサーバ105にアクセスしてもよい。
サーバおよびアプリケーションは同じ物理マシン上に組み合わされて、個別の仮想アドレスもしくは論理アドレスを保持してもよく、または個別の物理マシンに常駐していてもよい。
図1は、使用され得るネットワークアーキテクチャのほんの一実施例を示しており、当業者は、使用される特定のネットワークアーキテクチャおよびデータ処理装置を変更してもよいこと、ならびに、本明細書で詳細に説明するように、それが提供する機能に対して二次的なものであることを認識するであろう。たとえば、ウェブサーバ105およびデータサーバ103が提供するサービスは単一のサーバに結合されてもよい。
各コンポーネント103,105,107,109は、あらゆるタイプの周知のコンピュータ、サーバまたはデータ処理装置であってもよい。たとえば、データサーバ103はレートサーバ103のオペレーション全体を制御するプロセッサ111を含んでいてもよい。データサーバ103は、RAM113、ROM115、ネットワークインターフェース117、入出力インターフェース119(たとえば、キーボード、マウス、ディスプレイ、プリンタ等)およびメモリ121をさらに含んでいてもよい。
I/O119は、データまたはファイルを読み込み、書き込み、表示し、および/または印刷する多様なインターフェースユニットおよびドライブを含んでいてもよい。メモリ121はデータ処理装置103、本明細書で説明する態様を行うようデータサーバ103に指図する制御ロジック125、ならびに本明細書で説明する態様と合わせて使用してもしなくてもよい二次的、サポートおよび/または他の機能を提供する他のアプリケーションソフトウェア127のオペレーション全体を制御するオペレーティングシステム・ソフトウェア123をさらに格納していてもよい。
制御ロジックは本明細書ではデータサーバソフトウェア125ともいう。データサーバソフトウェアの機能は、制御ロジックに符号化され、システムに入力を提供するユーザによって手動で作成されるルールに基づいて自動的に行われるオペレーションもしくは決定、および/またはユーザ入力(たとえば、問合わせ、データのアップデート等)に基づく自動処理の組合せをいう。
メモリ121は、第1データベース129および第2データベース131を含め、本明細書で説明する1つ以上の態様の実施で使用されるデータも格納している。いくつかの実施形態では、第1データベースは第2データベースを含んでいてもよい(たとえば、個別のテーブル、レポート等として)。すなわち、情報は、システムの設計により、単一のデータベースに格納することができ、または別々の論理データベース、仮想データベースもしくは物理的データベースに分けることができる。デバイス105,107,109は、デバイス103に関して説明したのと同様なアーキテクチャを有してもよく、または異なるアーキテクチャを有していてもよい。当業者にはわかるように、本明細書で説明するデータ処理装置103(またはデバイス105,107,109)の機能を複数のデータ処理装置に分散して、たとえば、複数のコンピュータに処理ロードを分散し、地理的な場所、ユーザのアクセスレベル、サービスの質(QoS)等に基づいてトランザクションを分けてもよい。
1つ以上の態様は、1つ以上のプログラムモジュールなど、1つ以上のコンピュータまたは本明細書で説明される他のデバイスによって実行されるコンピュータで使用可能な、もしくは読取可能なデータおよび/またはコンピュータ実行可能命令に具現されてもよい。
一般に、プログラムモジュールは、コンピュータまたは他のデバイス内のプロセッサによって実行されるとき、特定のタスクを行うかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含んでいる。モジュールは実行のために後でコンパイルされるソースコードプログラミング言語で書き込んでもよく、またはHTMLもしくはXMLなどの(ただし、これだけに限定されない)スクリプト言語で書き込んでもよい。コンピュータ実行可能命令は、不揮発性記憶装置などのコンピュータ読取可能媒体に格納されていてもよい。ハードディスク、CD−ROM、光学記憶装置、磁気記憶装置、および/またはそのあらゆる組合せを含め、あらゆる適したコンピュータ読取可能記憶媒体を利用してもよい。さらに、本明細書で説明するデータまたはイベントを表す様々な伝送(非記憶)媒体は、金属ワイヤ、光ファイバ、ならびに/またはワイヤレス伝送媒体(たとえば、空気および/もしくは空間)など、信号伝達媒体を通して移動する電磁波の形で、送信元と宛先との間を転送してもよい。
本明細書で説明する様々な態様は、方法、データ処理システム、またはコンピュータプログラム製品として具現される。そのため、様々な機能は、集積回路、フィールドプログラマブル・ゲートアレイ(FPGA)等といった、ソフトウェア、ファームウェアおよび/またはハードウェアもしくはハードウェア等価物に全部または一部具現化されてもよい。本明細書で説明する1つ以上の態様をより効果的に実装するために特定のデータ構造を使用してもよく、当該データ構造は本明細書で説明されるコンピュータ実行可能命令およびコンピュータ使用可能データの範囲内に含まれる。
図2をさらに参照して、本明細書で説明する1つ以上の態様はリモートアクセス環境に実装されている。図2は、本明細書で説明する1つ以上の態様に従って使用されるコンピューティング環境200の汎用コンピューティングデバイス201を含むシステムアーキテクチャを示す。
汎用コンピューティングデバイス201は、クライアントアクセスデバイスに仮想マシンを提供するように構成されている単一サーバまたはマルチサーバのデスクトップ仮想化システム(たとえば、リモートアクセスもしくはクラウドシステム)内のサーバ206aとして使用されてもよい。汎用コンピューティングデバイス201は、ランダムアクセスメモリ(RAM)205、読取専用メモリ(ROM)207、入出力(I/O)モジュール209およびメモリ215を含め、サーバおよびその関連コンポーネントのオペレーション全体を制御するプロセッサ203を有していてもよい。
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は2つ以上のサーバ206と通信し、別の実施形態では単一サーバ206は2つ以上のクライアントマシン240と通信する。さらに別の実施形態では、単一クライアントマシン240は単一サーバ206と通信する。
クライアントマシン240は、いくつかの実施形態では、次の非網羅的な用語のうちのいずれか1つによって言及することができる。すなわち、クライアントマシン、クライアント、クライアントコンピュータ、クライアントデバイス、クライアントコンピューティングデバイス、ローカルマシン、リモートマシン、クライアントノード、エンドポイント、またはエンドポイントノード。サーバ206は、いくつかの実施形態では、次の非網羅的な用語のうちのいずれか1つによって言及してもよい。すなわち、サーバ、ローカルマシン、リモートマシン、サーバファーム、またはホストコンピューティングデバイス。
一実施形態では、クライアントマシン240は仮想マシンであってもよい。仮想マシンはあらゆる仮想マシンであってもよいが、いくつかの実施形態では、仮想マシンはタイプ1またはタイプ2のハイパーバイザ、たとえば、サイトリックス・システムズ、IBM、ヴイエムウェアによって開発されるハイパーバイザ、またはあらゆる他のハイパーバイザによって管理されるあらゆる仮想マシンであってもよい。いくつかの態様において、仮想マシンはハイパーバイザによって管理してもよいが、いくつかの態様では、仮想マシンはサーバ206上で実行するハイパーバイザまたはクライアント240上で実行するハイパーバイザによって管理してもよい。
いくつかの実施形態は、サーバ206または遠隔設置された他のマシン上で遠隔実行するアプリケーションによって生成されるアプリケーション出力を表示するクライアントデバイス240を含む。これらの実施形態では、クライアントデバイス240は仮想マシンのクライアントエージェントプログラムまたはアプリケーションを実行して、アプリケーションウインドウ、ブラウザ、または他の出力ウインドウに出力を表示してもよい。
ある実施例では、アプリケーションはデスクトップであるが、他の実施例では、アプリケーションはデスクトップを生成または提示するアプリケーションである。デスクトップは、ローカルおよび/またはリモート・アプリケーションを統合することのできるオペレーティングシステムのインスタンスにユーザインターフェースを提供するグラフィカルシェルを含んでいてもよい。本明細書で使用するアプリケーションとは、オペレーティングシステム(および、任意で、デスクトップも)のインスタンスがロードされた後に実行するプログラムである。
サーバ206は、いくつかの実施形態では、クライアント上で実行するシンクライアントまたはリモートディスプレイ・アプリケーションにデータを送信するリモートプレゼンテーション・プロトコルまたは他のプロトコルを使用して、サーバ206上で実行するアプリケーションによって生成されるディスプレイ出力を提示する。シンクライアントまたはリモートディスプレイ・プロトコルは、次の非網羅的なプロトコルリストのうちのいずれか1つとすることができる。すなわち、フロリダ州フォート・ローダーデールのサイトリックス・システムズ・インクが開発したインディペンデント・コンピューティング・アーキテクチャ(ICA)プロトコル、またはワシントン州レドモンドのマイクロソフト・コーポレーションが製造するリモートデスクトッププロトコル(RDP)。
リモートコンピューティング環境は、サーバ206a〜206nが、たとえばクラウドコンピューティング環境のサーバファーム206に論理的にまとめられるように、2つ以上のサーバ206a〜206nを含んでいてもよい。サーバファーム206は論理的にまとめられながらも地理的に分散しているサーバ206、または論理的にまとめられながらも互いに近接して配置されているサーバ206を含んでいてもよい。サーバファーム206内の地理的に分散したサーバ206a〜206nは、いくつかの実施形態では、WAN(広域)、MAN(メトロポリタン)、またはLAN(ローカル)を使用して通信することができ、異なる地理的地域は、異なる大陸、大陸の中の異なる地域、異なる国、異なる州、異なる都市、異なる大学、異なる部屋、または前述の地理的な場所のあらゆる組合せとして特徴付けることができる。いくつかの実施形態では、サーバファーム206は単一エンティティとして管理されてもよいが、他の実施形態では、サーバファーム206は複数のサーバファームを含むことができる。
いくつかの実施形態では、サーバファームは、実質的に同じようなタイプのオペレーティングシステムのプラットフォーム(例、WINDOWS(登録商標)、UNIX(登録商標)、LINUX(登録商標)、iOS、ANDROID(登録商標)、SYMBIAN等)を実行するサーバ206を含んでいてもよい。他の実施形態では、サーバファーム206は、第1タイプのオペレーティングシステムのプラットフォームを実行する1つ以上のサーバからなる第1グループと、第2タイプのオペレーティングシステムのプラットフォームを実行する1つ以上のサーバからなる第2グループとを含んでいてもよい。
サーバ206は、必要なあらゆるタイプのサーバとして、たとえば、ファイルサーバ、アプリケーションサーバ、ウェブサーバ、プロキシサーバ、アプライアンス、ネットワーク・アプライアンス、ゲートウェイ、アプリケーション・ゲートウェイ、ゲートウェイサーバ、仮想化サーバ、デプロイメントサーバ、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デバイスにつき1つのオペレーティングシステム)または仮想的(たとえば、単一デバイス上で稼動するOSの多くのインスタンス)であってもよい。各アプリケーションはローカルデバイス上で実行してもよく、または遠隔設置されたデバイス上で実行(たとえば、遠隔操作)してもよい。
図3をさらに参照すると、コンピュータデバイス301は、仮想化環境の仮想化サーバとして、たとえば、単一サーバ、マルチサーバ、またはクラウドコンピューティング環境として構成されていてもよい。
図3に図示する仮想化サーバ301は、図2に図示するサーバ206の1つ以上の実施形態もしくは他の周知のコンピューティングデバイスとしてデプロイ(deploy)することができ、および/またはそれにより実装することができる。
仮想化サーバ301に含まれるのが、1つ以上の物理的ディスク304、1つ以上の物理的デバイス306、1つ以上の物理的プロセッサ308および1つ以上の物理的メモリ316を含むことができるハードウェアレイヤである。いくつかの実施形態では、ファームウェア312を物理的メモリ316のメモリ素子内に格納することができ、物理的プロセッサ308のうちの1つ以上によって実行することができる。仮想化サーバ301はさらに物理的メモリ316のメモリ素子内に格納されて、物理的プロセッサ308のうちの1つ以上によって実行されてもよいオペレーティングシステム314をさらに含んでいてもよい。さらに、ハイパーバイザ302を物理的メモリ316のメモリ素子内に格納してもよく、物理的プロセッサ308のうちの1つ以上によって実行することができる。
物理的プロセッサ308のうちの1つ以上で実行することは、1つ以上の仮想マシン332A〜332C(総称的に332)であってもよい。各仮想マシン332は仮想ディスク326A〜326Cおよび仮想プロセッサ328A〜328Cを有していてもよい。いくつかの実施形態では、第1仮想マシン332Aは、仮想プロセッサ328Aを使用して、ツールスタック324を含む制御プログラム320を実行してもよい。制御プログラム320は制御仮想マシン、Dom0、ドメイン0、またはシステムの管理および/もしくは制御に使用される他の仮想マシンと称されることがある。いくつかの実施形態では、1つ以上の仮想マシン332B〜332Cは、仮想プロセッサ328B〜328Cを使用して、ゲストオペレーティングシステム330A〜330Bを実行することができる。
仮想化サーバ301は、仮想化サーバ301と通信する1つ以上のハードウェアを備えるハードウェアレイヤ310を含んでいてもよい。いくつかの実施形態では、ハードウェアレイヤ310は、1つ以上の物理的ディスク304、1つ以上の物理的デバイス306、1つ以上の物理的プロセッサ308、および1つ以上のメモリ216を含むことができる。物理的コンポーネント304,306,308および316は、たとえば、上述したコンポーネントのいずれを含んでいてもよい。
物理的デバイス306は、たとえば、ネットワーク・インターフェース・カード、ビデオカード、キーボード、マウス、入力デバイス、モニタ、ディスプレイデバイス、スピーカ、光学ドライブ、記憶装置、ユニバーサルシリアルバス接続、プリンタ、スキャナ、ネットワーク素子(たとえば、ルータ、ファイヤウォール、ネットワークアドレス変換器、ロードバランサ、仮想プライベートネットワーク(VPN)ゲートウェイ、ダイナミック・ホスト・コンフィギュレーション・プロトコル(DHCP)ルータ等)、または仮想化サーバ301に接続されているかもしくは仮想化サーバ301と通信するあらゆるデバイスを含んでいてもよい。ハードウェアレイヤ310の物理的メモリ316はあらゆるタイプのメモリを含んでいてもよい。物理的メモリ316はデータを格納してもよく、いくつかの実施形態では、1つ以上のプログラム、または実行可能命令のセットを格納してもよい。
図3は、仮想化サーバ301の物理的メモリ316内にファームウェア312が格納されている実施形態を示す。物理的メモリ316に格納されているプログラムまたは実行可能命令は、仮想化サーバ301の1つ以上のプロセッサ308によって実行することができる。
仮想化サーバ301はハイパーバイザ302も含んでいてもよい。いくつかの実施形態では、ハイパーバイザ302は仮想化サーバ301のプロセッサ308によって実行されて、あらゆる数の仮想マシン332を作成して管理するプログラムであってもよい。ハイパーバイザ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または仮想マシン332上で実行する制御プログラム320に、システムのリソースに直接アクセスできるオペレーティングシステム330または制御プログラム320をシミュレートするいずれの方法でも仮想リソースを提供することができる。
システムのリソースは、物理的デバイス306、物理的ディスク304、物理的プロセッサ308、物理的メモリ316および仮想化サーバ301のハードウェアレイヤ310に含まれているあらゆる他のコンポーネントを含むことができるが、これだけに限定されない。ハイパーバイザ302を使用して、仮想ハードウェアをエミュレートし、物理的ハードウェアを分割し、物理的ハードウェアを仮想化し、および/またはコンピューティング環境へのアクセスを提供する仮想マシンを実行してもよい。さらに他の実施形態では、ハイパーバイザ302は仮想化サーバ301上で実行する仮想マシン332のプロセッサのスケジューリングおよびメモリの分割を制御する。
ハイパーバイザ302はカリフォルニア州パロアルトのヴイエムウェア・インクが製造するもの、オープンソースのXen.orgコミュニティが開発を監督するオープンソース製品のXENハイパーバイザ、マイクロソフトが提供するHyperV、VirtualServerまたは仮想PCハイパーバイザ、または他のものを含んでいてもよい。いくつかの実施形態では、仮想化サーバ301は、その上でゲストオペレーティングシステムが実行してもよい仮想マシンプラットフォームを作成するハイパーバイザ302を実行する。これらの実施形態では、仮想化サーバ301はホストサーバと称されることがある。このような仮想化サーバの一例が、フロリダ州フォート・ローダーデールのサイトリックス・システムズ・インクが提供するXEN SERVERである。
ハイパーバイザ302は、その中でゲストオペレーティングシステム330が実行する1つ以上の仮想マシン332B〜332C(総称的に332)を作成してもよい。いくつかの実施形態では、ハイパーバイザ302は仮想マシンイメージをロードして、仮想マシン332を作成してもよい。他の実施形態では、ハイパーバイザ302は仮想マシン332内のゲストオペレーティングシステム330を実行してもよい。さらに他の実施形態では、仮想マシン332はゲストオペレーティングシステム330を実行してもよい。
仮想マシン332を作成することに加えて、ハイパーバイザ302は少なくとも1つの仮想マシン332の実行を制御してもよい。他の実施形態では、ハイパーバイザ302は少なくとも1つの仮想マシン332に、仮想化サーバ301が提供する少なくとも1つのハードウェアリソース(たとえば、ハードウェアレイヤ310内で利用できるあらゆるハードウェアリソース)の抽象化を提示してもよい。他の実施形態では、ハイパーバイザ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つ以上の仮想マシン識別子へのポリシーエンジンの適用、仮想マシンにアクセスするユーザ、仮想マシン上で実行するアプリケーション、仮想マシンによってアクセスされるネットワーク、または他の所望の基準に基づくことができる。たとえば、ハイパーバイザ302は1つ以上のセキュリティ保護されていない仮想マシン332と、1つ以上のセキュリティ保護された仮想マシン332とを作成してもよい。セキュリティ保護されていない仮想マシン332には、セキュリティ保護された仮想マシン332がアクセスを許可されるリソース、ハードウェア、メモリ場所およびプログラムを禁止してもよい。他の実施形態では、ハイパーバイザ302は各仮想マシン332に、仮想マシン332に利用できる物理的ハードウェア、メモリ、プロセッサおよび他のシステム・リソースの実質的に同様な仮想ビューを提供してもよい。
各仮想マシン332は仮想ディスク326A〜326C(総称的に326)と、仮想プロセッサ328A〜328C(総称的に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は、たとえば、特にフロリダ州フォート・ローダーデールのサイトリックス・システムズ・インクのCLOUDSTACK、またはOPENSTACKを稼動してもよい。管理サーバ410は、たとえば、ホストコンピュータ403、データ記憶装置404およびネットワーキングデバイス405など、クラウド・ハードウェアおよびソフトウェア・リソースを含め、様々なコンピューティングリソースを管理してもよい。クラウド・ハードウェアおよびソフトウェア・リソースは非公開および/または公開コンポーネントを含んでいてもよい。たとえば、クラウドは1つ以上の特定のカスタマもしくはクライアントコンピュータ411〜414によって、および/またはプライベートネットワーク上で使用されるプライベートクラウドとして構成していてもよい。他の実施形態では、パブリッククラウドまたはハイブリッドパブリック−プライベートクラウドが、オープンまたはハイブリッドネットワーク上で他のカスタマによって使用されてもよい。
管理サーバ410は、クラウドオペレータおよびクラウドカスタマがクラウドシステムとやりとりしてもよいユーザインターフェースを提供するように構成されていてもよい。たとえば、管理サーバ410はユーザインターフェースにAPIのセットおよび/または1つ以上のクラウドオペレータコンソール・アプリケーション(たとえば、ウェブベースのスタンドアロンアプリケーション)を提供して、クラウドオペレータがクラウドリソースを管理し、仮想化レイヤを構成し、カスタマアカウントを管理し、他のクラウド管理タスクを行うことができるようにしてもよい。
管理サーバ410は、クライアントコンピュータ411〜414を介してエンドユーザからのクラウドコンピューティング要求、たとえば、クラウド内で仮想マシンを作成、修正または破棄する要求を受信するように構成されているユーザインターフェースを備えるAPIのセットおよび/または1つ以上のカスタマコンソール・アプリケーションを含んでいてもよい。クライアントコンピュータ411〜414はインターネットまたは他の通信ネットワークを介して管理サーバ410に接続してもよく、管理サーバ410が管理するコンピューティングリソースのうちの1つ以上へのアクセスを要求してもよい。クライアントの要求に応答して、管理サーバ410は、クライアント要求に基づいて、クラウドシステムのハードウェアレイヤの物理的リソースを選択し、プロビジョニングするように構成されているリソース・マネージャを含んでいてもよい。たとえば、管理サーバ410およびクラウドシステムの追加コンポーネントは、カスタマに計算リソース、データストレージサービス、ネットワーク能力、ならびにコンピュータプラットフォームおよびアプリケーションサポートを提供しながら、ネットワーク(たとえば、インターネット)上で、クライアントコンピュータ411〜414のカスタマのために、仮想マシンおよびその動作環境(たとえば、ハイパーバイザ、ストレージリソース、ネットワーク素子が提供するサービス等)をプロビジョニングし、作成し、管理するように構成されていてもよい。クラウドシステムはまた、セキュリティシステム、開発環境、ユーザインターフェース等を含め、様々な特定のサービスを提供するように構成されていてもよい。
たとえば、一定のクライアント411〜414は、同じエンドユーザ、または同じ会社もしくは組織に属する異なるユーザの代わりに仮想マシンを作成する異なるクライアントコンピュータに関連付けられてもよい。他の実施例では、一定のクライアント411〜414は、異なる会社もしくは組織に属するユーザなどに関連付けられていなくてもよい。関連付けられていないクライアントに対して、いずれかのユーザの仮想マシンまたはストレージ上の情報を他のユーザから隠してもよい。
ここでクラウドコンピューティング環境の物理的ハードウェアレイヤを参照すると、可用性(availability)ゾーン401〜402(またはゾーン)は物理的コンピューティングリソースのひとまとまりのセットといえる。ゾーンはコンピューティングリソースのクラウド全体において他のゾーンとは地理的に分離していてもよい。たとえば、ゾーン401はカリフォルニア州に配置されている第1クラウド・データセンターであってもよく、ゾーン402はフロリダ州に配置されている第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(ワシントン州レドモンドのマイクロソフト・コーポレーション)、AMAZON EC2(ワシントン州シアトルのアマゾン・ドット・コム・インク)、IBM BLUE CLOUD(ニューヨーク州アーモンクのIBMコーポレーション)、または他のものなど、周知のクラウドシステムを使用してもよい。
〈企業モビリティ管理アーキテクチャ〉
図5は、BYOD環境で使用するための企業モビリティ技術アーキテクチャ500を示す。このアーキテクチャはモバイルデバイス502のユーザがモバイルデバイス502から企業リソースまたは個人リソースにアクセスすることと、モバイルデバイス502を個人利用に使用することと、の両方を可能にする。
ユーザは、当該企業リソース504または企業サービス508へのアクセスを、ユーザが購入したモバイルデバイス502を使用して行ってもよく、または企業がユーザに支給するモバイルデバイス502を使用して行ってもよい。ユーザはモバイルデバイス502をビジネス専用で利用しても、またはビジネスと個人兼用で利用してもよい。モバイルデバイスはiOSオペレーティングシステム、およびアンドロイド・オペレーティングシステム等を稼動してもよい。企業はモバイルデバイス504を管理するポリシーを実装することを選んでもよい。
ポリシーは、ファイヤウォールまたはゲートウェイにより、モバイルデバイスを特定し、セキュリティ保護もしくはセキュリティ検証し、企業リソースへの選択的アクセスもしくは完全なアクセスをモバイルデバイスに提供できるように埋め込んでもよい。ポリシーはモバイルデバイス管理ポリシー、モバイルアプリケーション管理ポリシー、モバイルデータ管理ポリシー、またはモバイルデバイス、アプリケーションおよびデータ管理ポリシーのなんらかの組合せとしてもよい。モバイルデバイス管理ポリシーの適用により管理されるモバイルデバイス504は登録デバイスということがある。
モバイルデバイスのオペレーティングシステムは、管理対象パーティション510と非管理対象パーティション512とに分離されていてもよい。管理対象パーティション510は管理対象パーティション上で稼動しているアプリケーションおよび管理対象パーティションに格納されているデータをセキュリティ保護された状態にする(secure)ために、ポリシーをそれに適用させてもよい。管理対象パーティション上で稼動しているアプリケーションはセキュリティ保護されたアプリケーションであってもよい。セキュリティ保護されたアプリケーションは、電子メール・アプリケーション、ウェブブラウザ・アプリケーション、サービスとしてのソフトウェア(SaaS)アクセス・アプリケーション、Windows(登録商標) Applicationアクセス・アプリケーション等であってもよい。セキュリティ保護されたアプリケーションは、セキュリティ保護されたネイティブアプリケーション514、セキュリティ保護されたアプリケーション・ランチャ518が実行するセキュリティ保護されたリモート・アプリケーション522、セキュリティ保護されたアプリケーション・ランチャ518が実行する仮想化アプリケーション526等であってもよい。
セキュリティ保護されたネイティブアプリケーション514はセキュリティ保護されたアプリケーション・ラッパー520によってラッピングしてもよい。セキュリティ保護されたアプリケーション・ラッパー520は、セキュリティ保護されたネイティブアプリケーションがデバイス上で実行されるときに、モバイルデバイス502上で実行される統合ポリシーを含んでいてもよい。セキュリティ保護されたアプリケーション・ラッパー520は、モバイルデバイス502上で稼動するセキュリティ保護されたネイティブアプリケーション514を、セキュリティ保護されたネイティブアプリケーション514の実行時に要求されるタスクを完了するようにセキュリティ保護されたネイティブアプリケーション514が要求してもよい企業でホストされるリソースに差し向けるメタデータを含んでいてもよい。セキュリティ保護されたアプリケーション・ランチャ518が実行するセキュリティ保護されたリモート・アプリケーション522は、セキュリティ保護されたアプリケーション・ランチャ・アプリケーション518内で実行してもよい。セキュリティ保護されたアプリケーション・ランチャ518が実行する仮想化アプリケーション526は、企業リソース504等で、モバイルデバイス502のリソースを利用してもよい。セキュリティ保護されたアプリケーション・ランチャ518が実行する仮想化アプリケーション526によってモバイルデバイス502で使用されるリソースは、ユーザ対話リソース、プロセッシングリソース等を含んでいてもよい。
ユーザ対話リソースは、キーボード入力、マウス入力、カメラ入力、触覚入力、オーディオ入力、ビジュアル入力、ジェスチャ入力等を収集して、伝送するために使用してもよい。プロセッシングリソースはユーザインターフェースを提示し、企業リソース504等から受信されるデータを処理するために使用してもよい。セキュリティ保護されたアプリケーション・ランチャ518が実行する仮想化アプリケーション526によって企業リソース504で使用されるリソースは、ユーザインターフェース生成リソース、プロセッシングリソース等を含んでいてもよい。ユーザインターフェース生成リソースは、ユーザインターフェースをアセンブルし、ユーザインターフェースを修正し、ユーザインターフェースをリフレッシュする等のために使用してもよい。
プロセッシングリソースは情報を作成し、情報を読み取り、情報を更新し、情報を削除する等のために使用してもよい。たとえば、仮想化アプリケーションはGUIに関連するユーザの対話を記録し、それをサーバ・アプリケーションに伝えてもよく、当該サーバ・アプリケーションはユーザ対話データをサーバで動作するアプリケーションへの入力として使用する。
この構成では、企業は、アプリケーションに関連するデータ、ファイル等と同様に、サーバ側のアプリケーションを維持する選択をしてもよい。企業はモバイルデバイスへのデプロイメントのためにそれをセキュリティ保護された状態にすることにより本明細書の原理に従っていくつかのアプリケーションを「モバイル化」する選択をしてもよいが、この構成は一定のアプリケーションのためにも選択してもよい。たとえば、いくつかのアプリケーションはモバイルデバイスで使用するためにセキュリティ保護された状態にしてもよいが、他のものはモバイルデバイスへのデプロイメントの準備がされていないかまたはデプロイメントに適切ではない可能性があるので、企業は仮想化技術により準備されていないアプリケーションへのアクセスをモバイルユーザに提供する選択をしてもよい。
別の実施例として、企業は大量の複雑なデータセットを有する大きく複雑なアプリケーション(たとえば、資材所要量計画アプリケーション)を有することがあり、当該モバイルデバイスのアプリケーションをカスタマイズするのは非常に難しく、またはその他望ましくないので、企業は仮想化技術によりアプリケーションへのアクセスを提供する選択をしてもよい。さらに別の実施例として、企業は、セキュリティ保護化したモバイル環境であっても扱いに非常に注意を要すると企業に見なされて、企業が当該アプリケーションおよびデータへのモバイルアクセスを許可するために仮想化技術を選択してもよい高セキュリティ保護化データ(たとえば、人事データ、顧客データ、エンジニアリングデータ)を維持するアプリケーションを有していてもよい。
企業はサーバ側でより適切に動作すると見なされるアプリケーションへのアクセスを許可するために、仮想化アプリケーションとともに、モバイルデバイス上の完全にセキュリティ保護化しかつ完全に機能するアプリケーションを提供する選択をしてもよい。実施形態では、仮想化アプリケーションは、携帯電話のセキュリティ保護された記憶場所のうちの1つに、いくつかのデータ、ファイル等を格納してもよい。たとえば、企業は一定の情報を電話に格納させるが、他の情報を許可しない選択をしてもよい。
本明細書で説明するように、仮想化アプリケーションに関連して、モバイルデバイスは、GUIを提示し、さらにGUIとのユーザの対話を記録するように設計されている仮想化アプリケーションを有していてもよい。アプリケーションは、アプリケーションとのユーザの対話として、サーバ側アプリケーションが使用するサーバ側とのユーザの対話を伝えてもよい。応答して、サーバ側のアプリケーションはモバイルデバイスに新たなGUIを送り戻してもよい。たとえば、新たなGUIは静的ページ、動的ページ、アニメーションまたは同様な他のものであってもよい。
管理対象パーティション上で稼働するアプリケーションは安定化されたアプリケーションであってもよい。安定化されたアプリケーションはデバイスマネージャ524によって管理されてもよい。デバイスマネージャ524は安定化されたアプリケーションを監視して、問題を検出して補修する技術が利用されない場合に安定化されていないアプリケーションをもたらすような問題検出および補修のための前記技術を利用してもよい。
セキュリティ保護されたアプリケーションは、モバイルデバイスの管理対象パーティション510のセキュリティ保護されたデータコンテナ528に格納されているデータにアクセスしてもよい。セキュリティ保護されたデータコンテナにセキュリティ保護化されているデータは、セキュリティ保護されたラッピングされたアプリケーション514、セキュリティ保護されたアプリケーション・ランチャ518が実行するアプリケーション、セキュリティ保護されたアプリケーション・ランチャ518が実行する仮想化アプリケーション526等によってアクセスしてもよい。
セキュリティ保護されたデータコンテナ528に格納されているデータはファイル、データベース等を含んでいてもよい。セキュリティ保護されたデータコンテナ528に格納されているデータはセキュリティ保護されたアプリケーション532の中で共有される特定のセキュリティ保護されたアプリケーション530等に制限されるデータを含んでいてもよい。セキュリティ保護されたアプリケーションに制限されるデータは、セキュリティ保護された一般データ534および高セキュリティ保護されたデータ538を含んでいてもよい。セキュリティ保護された一般データはAES 128ビット暗号化等の強力な暗号化方式を使用してもよいが、高セキュリティ保護されたデータ538はAES 256ビット暗号化などの非常に強力な暗号化方式を使用してもよい。セキュリティ保護されたデータコンテナ528に格納されているデータは、デバイスマネージャ524からのコマンドを受信すると、デバイスから削除してもよい。
セキュリティ保護されたアプリケーションはデュアルモードオプション540を有していてもよい。デュアルモードオプション540は、非セキュリティ保護化モードで、セキュリティ保護されたアプリケーションを動作させるオプションをユーザに提示してもよい。非セキュリティ保護化モードでは、セキュリティ保護されたアプリケーションはモバイルデバイス502の非管理対象パーティション512の非セキュリティ保護化データコンテナ542に格納されているデータにアクセスしてもよい。非セキュリティ保護化データコンテナに格納されているデータは個人データ544であってもよい。非セキュリティ保護化データコンテナ542に格納されているデータは、モバイルデバイス502の非管理対象パーティション512上で稼動している非セキュリティ保護化アプリケーション548によってアクセスしてもよい。
非セキュリティ保護化データコンテナ542に格納されているデータは、セキュリティ保護されたデータコンテナ528に格納されているデータがモバイルデバイス502から削除されるとき、モバイルデバイス502上に残してもよい。企業は、ユーザが所有、ライセンスもしくは制御する個人データ、ファイルおよび/もしくはアプリケーション(個人データ)を残しながら、またはその他存続させながら、企業が所有、ライセンスまたは制御する選択されたもしくはすべてのデータ、ファイル、および/またはアプリケーション(企業データ)をモバイルデバイスから削除したいことがある。この動作を選択的消去と称すことがある。本明細書で説明する態様に従って分類される企業データおよび個人データを用いて、企業は選択的消去を行ってもよい。
モバイルデバイスは企業の企業リソース504および企業サービス508と、公衆インターネット548等とに接続してもよい。モバイルデバイスは仮想プライベートネットワーク接続を介して企業リソース504および企業サービス508に接続してもよい。仮想プライベートネットワーク接続は、モバイルデバイスの特定のアプリケーション550、特定のデバイス、特定のセキュリティ保護化エリア等552に特定的なものにしてもよい。たとえば、電話のセキュリティ保護化エリア内にラッピングされたアプリケーションのそれぞれは、VPNへのアクセスが、おそらくユーザまたはデバイスの属性情報と合わせて、アプリケーションに関連する属性に基づいて付与されるように、アプリケーション特定VPN経由で企業リソースにアクセスしてもよい。
仮想プライベートネットワーク接続はMicrosoft Exchangeトラフィック、Microsoft Active Directoryトラフィック、HTTPトラフィック、HTTPSトラフィック、アプリケーション管理トラフィック等を伝送してもよい。仮想プライベートネットワーク接続はシングルサインオン認証プロセス554をサポートし、これを有効にしてもよい。シングルサインオンプロセスは、ユーザが、後で認証サービス558によって検証される単一セットの認証資格情報を提供できるようにしてもよい。その後、認証サービス558は、各個々の企業リソース504に認証資格情報を提供するようユーザに要求しなくても、ユーザに複数の企業リソース504へのアクセス権を付与してもよい。
仮想プライベートネットワーク接続は、アクセス・ゲートウェイ560によって確立されて、管理してもよい。アクセス・ゲートウェイ560は企業リソース504のモバイルデバイス502への配信を管理し、高速化しおよび改善するパフォーマンス向上特徴を含んでいてもよい。アクセス・ゲートウェイはモバイルデバイス502から公衆インターネット548にトラフィックを経路切替えしてもよく、モバイルデバイス502が公衆インターネット548で稼動している公開利用できる非セキュリティ保護化アプリケーションにアクセスすることを可能にする。モバイルデバイスは転送ネットワーク562を介してアクセス・ゲートウェイに接続してもよい。
転送ネットワーク562はワイヤードネットワーク、ワイヤレスネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、広域ネットワーク、パブリックネットワーク、プライベートネットワーク等でもよい。
企業リソース504は電子メールサーバ、ファイル共有サーバ、SaaSアプリケーション、ウェブアプリケーションサーバ、Windows(登録商標)アプリケーションサーバ等を含んでいてもよい。電子メールサーバはExchangeサーバ、Lotus Notesサーバ等を含んでいてもよい。ファイル共有サーバはShareFileサーバ等を含んでいてもよい。SaaSアプリケーションはSalesforce等を含んでいてもよい。Windows(登録商標)アプリケーションサーバはローカルなWindows(登録商標)オペレーティングシステム上で稼動するように意図されたアプリケーションを提供するために構築されているあらゆるアプリケーションサーバ等を含んでいてもよい。
企業リソース504はプレミスベースのリソース、クラウドベースのリソース等であってもよい。企業リソース504はモバイルデバイス502から直接、またはアクセス・ゲートウェイ560経由でアクセスしてもよい。企業リソース504はモバイルデバイス502から転送ネットワーク562を介してアクセスしてもよい。転送ネットワーク562はワイヤードネットワーク、ワイヤレスネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、広域ネットワーク、パブリックネットワーク、プライベートネットワーク等であってもよい。
企業サービス508は認証サービス558、脅威検出サービス564、デバイスマネージャサービス524、ファイル共有サービス568、ポリシーマネージャサービス570、ソーシャル統合サービス572、アプリケーションコントローラサービス574等を含んでいてもよい。
認証サービス558はユーザ認証サービス、デバイス認証サービス、アプリケーション認証サービス、データ認証サービス等を含んでいてもよい。認証サービス558は証明書を使用してもよい。証明書は企業リソース504等によりモバイルデバイス502に格納してもよい。モバイルデバイス502に格納されている証明書は、モバイルデバイスの暗号化された場所に格納してもよく、証明書は認証時点で使用する等のためにモバイルデバイス502に一時的に格納してもよい。脅威検出サービス564は侵入検出サービス、不正アクセス試行検出サービス等を含んでいてもよい。不正アクセス試行検出サービスはデバイス、アプリケーション、データ等への不正アクセスの試行を含んでいてもよい。
デバイス管理サービス524は構成サービス、プロビジョニングサービス、セキュリティサービス、サポートサービス、監視サービス、レポーティングサービスおよびデコミッショニングサービスを含んでいてもよい。ファイル共有サービス568はファイル管理サービス、ファイルストレージサービス、ファイルコラボレーションサービス等を含んでいてもよい。ポリシーマネージャサービス570はデバイスポリシーマネージャサービス、アプリケーションポリシーマネージャサービス、データポリシーマネージャサービス等を含んでいてもよい。
ソーシャル統合サービス572は連絡先統合サービス、コラボレーションサービス、Facebook、TwitterおよびLinkedInなどのソーシャル・ネットワークとの統合等を含んでいてもよい。アプリケーションコントローラサービス574は管理サービス、プロビジョニングサービス、デプロイメントサービス、割り当てサービス、失効サービス、ラッピングサービス等を含んでいてもよい。
企業モビリティ技術アーキテクチャ500は、アプリケーションストア578を含んでいてもよい。アプリケーションストア578はラッピングされていないアプリケーション580、予めラッピングされたアプリケーション582等を含んでいてもよい。アプリケーションはアプリケーションコントローラ574からアプリケーションストア578に配置してもよい。アプリケーションストア578はモバイルデバイス502からアクセス・ゲートウェイ560、公衆インターネット548等経由でアクセスしてもよい。アプリケーションストアには直観的に理解でき、使いやすいユーザインターフェースを備えてもよい。アプリケーションストア578はソフトウェア開発キット584へのアクセス権を提供してもよい。
ソフトウェア開発キット584は、本明細書で上述したようにアプリケーションをラッピングすることにより、ユーザが選択したアプリケーションをセキュリティ保護化する機能をユーザに提供してもよい。ソフトウェア開発キット584を用いてラッピングされたアプリケーションは、さらにアプリケーションコントローラ574を用いてアプリケーションストア578にそれを配置することにより、モバイルデバイス502に利用できるようにしてもよい。
企業モビリティ技術アーキテクチャ500は、管理解析機能588を含んでいてもよい。管理解析機能588はリソースの使用方法、リソースの使用頻度等に関連する情報を提供してもよい。リソースはデバイス、アプリケーション、データ等を含んでいてもよい。リソースの使用方法は、どのデバイスがどのアプリケーションをダウンロードするか、どのアプリケーションがどのデータにアクセスするか等を含んでいてもよい。リソースの使用頻度は、アプリケーションがダウンロードされた頻度、アプリケーションが特定のデータセットにアクセスした回数等を含んでいてもよい。
図6は、別の企業モビリティ管理システム600である。図5を参照して上述したモビリティ管理システム500の構成要素のうちのいくつかは、簡略化するために省略している。図6に図示するシステム600のアーキテクチャは、図5を参照して上述したシステム500のアーキテクチャと多くの点で類似しており、上述していない追加の特徴を含んでいる。
この場合、左側はクライアントエージェント604とともに登録モバイルデバイス602を表している。クライアントエージェント604は、遠隔またはモバイルデバイス上で稼働するエージェントを含んでいてもよい。クライアントエージェント604は、遠隔デバイスのためのクラウドリソースを含むゲートウェイサーバ606とやりとりしてもよい。ゲートウェイサーバ606は、右側に示すExchange、Sharepoint、PKIリソース、ケルベロスリソース、証明書発行サービスなどの様々な企業リソース608およびサービス609にアクセスするために使用してもよい。具体的には図示していないが、モバイルデバイス602はアプリケーションの選択とダウンロードのために、企業アプリケーションストア(StoreFront)とやりとりしてもよい。
クライアントエージェント604はEnterpriseデータセンターでホストされるWindows(登録商標)アプリ/デスクトップのUI(ユーザインターフェース)媒介装置として機能し、EnterpriseデータセンターはHDX/ICA表示リモーティングプロトコルを使用してアクセスされる。クライアントエージェント604は、ネイティブiOSまたはAndroidアプリケーションなどのモバイルデバイス602のネイティブアプリケーションのインストールおよび管理もサポートする。たとえば、上述の図面に図示する管理対象アプリケーション610(メール、ブラウザ、ラッピングされたアプリケーション)はすべてデバイス上でローカルに実行するネイティブアプリケーションである。
このアーキテクチャの、モバイル経験技術(MDX)などの、クライアントエージェント604およびモバイルアプリケーション管理プロトコル(以下「MAMP」と略す)は、企業リソース/サービス608との接続性およびSSO(シングルサインオン)などのポリシーによる管理の機能および特徴を提供するように機能する。クライアントエージェント604は企業への、ゲートウェイサーバ606のコンポーネントなどに対する、一次ユーザ認証を扱う。クライアントエージェント604はゲートウェイサーバ606からポリシーを取得して、モバイルデバイス602上のMAMP管理対象アプリケーション610の挙動を制御する。
ネイティブアプリケーション610とクライアントエージェント604とのセキュリティ保護されたIPCリンク612は管理チャネルを表し、これによりクライアントエージェントは各アプリケーションを「ラッピング」するMAMPフレームワーク614によって強制されるポリシーを供給することができる。モバイルデバイス602上のMAMP使用可能なアプリケーションは、直接的なリンクまたはラッピングプロセスによりMAMPを組み込んでもよい。したがって、MAMPは、モバイルデバイス602上のアプリケーションを管理するために使用してもよい。
簡略化のために、本明細書においてMAMPはアプリケーションを管理するためのプロトコルを説明するために使用する。しかし、サーバから情報を受け取ることができ、かつモバイルデバイス602またはモバイルアプリケーションに対する診断を行うことができるあらゆるエージェントを含むエージェントを、モバイルデバイス602上のアプリケーションを管理できるモバイルデバイスに提供するいかなるプロトコルでも使用してよい。
IPCチャネル612により、クライアントエージェント604はまた、企業リソース608との接続性およびSSOを有効にする資格情報および認証情報を供給することができる。最後に、IPCチャネル612により、MAMPフレームワーク614は、オンラインおよびオフラインによる認証など、クライアントエージェント604が実装するユーザインターフェース機能を呼び出すことができる。
クライアントエージェント604とゲートウェイサーバ606との通信は、本質的に、各ネイティブ管理対象アプリケーション610をラッピングするMAMPフレームワーク614からの管理チャネルの拡張である。MAMPフレームワーク614はクライアントエージェント604からのポリシー情報を要求し、これがさらにゲートウェイサーバ606からのポリシー情報を要求する。MAMPフレームワーク614は認証を要求し、クライアントエージェント604はゲートウェイサーバ606のゲートウェイサービス部(NetScaler Access Gatewayとしても知られる)にログインする。クライアントエージェント604はゲートウェイサーバ606上のサポートサービスも呼び出してもよく、それにより、以下詳細に説明するように、ローカルデータボルト616の暗号化鍵を導出するための入力成分を生成するか、または直接認証を可能にするクライアント証明書をPKI保護リソースに提供してもよい。
さらに詳しくは、MAMPフレームワーク614は各管理対象アプリケーション610を「ラッピング」する。これは明確なビルドステップ、またはビルド後処理ステップを介して組み込んでもよい。MAMPフレームワーク614は、セキュリティ保護IPCチャネルを初期化し、そのアプリケーションのポリシーを取得するために、アプリケーション610の最初の起動時にクライアントエージェント604と「ペア」にしてもよい。MAMPフレームワーク614は、クライアントエージェントのログイン・ディペンデンシーおよび、ローカルOSサービスをどのように使用してよいか、またはローカルOSサービスがアプリケーション610とどのようにやりとりしてよいかを制限する閉じ込めポリシーのうちのいくつかなど、ローカルに適用するポリシーの関連部分を強制してもよい。
MAMPフレームワーク614はセキュリティ保護IPCチャネル612上でクライアントエージェント604が提供するサービスを使用して、認証および内部ネットワークアクセスを促進してもよい。プライベート・共有データボルト(vaults)616(コンテナ)の鍵管理も、管理対象アプリケーション610とクライアントエージェント604との適切な対話により管理してもよい。ボルト616はオンライン認証後にのみ利用できてもよく、またはポリシーが許可する場合にはオフライン認証後に利用できるようにしてもよい。ボルト616の初めての使用にはオンライン認証を要求してもよく、オフラインアクセスは最大でもオンライン認証が再び要求される前のポリシーリフレッシュ期間に制限してもよい。
内部リソースへのネットワークアクセスは、個々の管理対象アプリケーション610からアクセス・ゲートウェイ606に直接行ってもよい。MAMPフレームワーク614は各アプリケーション610に代わってネットワークアクセスの統合を担う。クライアントエージェント604は、オンライン認証後に取得される適切な時間制限付きの二次資格情報を提供することにより、これらのネットワーク接続を促進してもよい。リバースウェブプロキシ接続およびエンドツーエンドVPN型トンネル618など、ネットワーク接続の複数のモードを使用してもよい。
メール・ブラウザ管理対象アプリケーション610は特別なステータスを有し、任意にラッピングされたアプリケーションには一般に利用できない可能性のあるファシリティを利用できるようにしてもよい。たとえば、メール・アプリケーションは、フルAGログオンを要求せずに、長時間Exchangeへのアクセスを可能にする特別なバックグラウンドネットワークアクセスメカニズムを使用してもよい。ブラウザ・アプリケーションは異なる種類のデータを分ける複数のプライベートデータボルトを使用してもよい。
このアーキテクチャは、様々な他のセキュリティ特徴の組み込みをサポートする。たとえば、ある場合にはゲートウェイサーバ606(そのゲートウェイ・サービスを含む)はADパスワードの妥当性検証をする必要がない。ある状況においてADパスワードをあるユーザの認証因子として使用するかどうかは、企業の裁量に任せることができる。ユーザがオンラインまたはオフラインである(つまり、ネットワークに接続されている場合または接続されていない場合)、異なる認証方法を使用してもよい。
ステップアップ認証は、ゲートウェイサーバ606が強力な認証が必要な極秘データへアクセスすることが認められている管理対象ネイティブアプリケーション610を識別し、以前の弱いレベルのログイン後にユーザにより再認証が要求されることになるとしても、これらのアプリケーションへのアクセスが適切な認証を行った後にのみ許可されることを確保してもよい。
このソリューションの別のセキュリティ特徴は、モバイルデバイス602でのデータボルト616(コンテナ)の暗号化である。ボルト616は、ファイル、データベースおよび構成を含むすべてのオンデバイスデータが保護されるように暗号化してもよい。オンラインボルトの場合、鍵はサーバ(ゲートウェイサーバ)に格納してもよく、オフラインボルトの場合、鍵のローカルコピーをユーザ・パスワードによって保護してもよい。セキュリティ保護されたコンテナ616でデータがデバイス602にローカルに格納される場合、最低でもAES256暗号化アルゴリズムを利用するのが好ましい。
他のセキュリティ保護されたコンテナの特徴も実装してもよい。たとえば、ロギング特徴を含めてもよく、アプリケーション610内で起こるすべてのセキュリティイベントを記録して、バックエンドに報告する。アプリケーション610が改ざんを検出する場合など、データ消去をサポートしてもよく、ユーザデータが破棄されたことの手がかりをファイルシステムに残さずに、関連暗号化鍵をランダムデータで上書きしてもよい。スクリーンショットの保護は別の特徴であり、アプリケーションはデータをスクリーンショットに格納させないようにしてもよい。たとえば、鍵ウインドウの隠しプロパティをYESに設定してもよい。これにより、どのようなコンテンツが現在スクリーンに表示されていてもそれを隠せるので、通常いずれかのコンテンツが常駐するスクリーンショットがブランクになる。
たとえば、データを外部のアプリケーションにコピーまたは送信するなど、アプリケーション・コンテナ外にローカルにデータを転送することを一切させないなどして、ローカルなデータ転送を防止してもよい。キーボードのキャッシュ特徴は扱いに注意を要するテキストフィールドのオートコレクト機能を使用不可にするように動作してもよい。SSL証明書の妥当性検証を使用可能にしてもよいので、キーチェーンに格納する代わりに、アプリケーションはサーバSSL証明書を特別に妥当性検証する。デバイスのデータを暗号化するために使用する鍵をユーザによって供給されるパスフレーズを使用して生成するように(オフラインアクセスが要求される場合)、暗号化鍵生成特徴を使用してもよい。オフラインアクセスが要求されない場合、サーバ側でランダムに生成し、格納される別の鍵を用いてXORをとってもよい。鍵導出関数は、ユーザ・パスワードから生成される鍵が、その暗号学的ハッシュを作成するのではなく、KDF(鍵導出関数、特にPBKDF2)を使用するように動作してもよい。前者では、鍵が総当たり攻撃または辞書攻撃を受けやすくなる。
さらに、暗号化方法に1つ以上の初期化ベクトルを使用してもよい。初期化ベクトルは同じ暗号化データの複数のコピーに異なる暗号文出力を生じ、再生および暗号解読攻撃の両方を防止する。これは攻撃者がデータの暗号化に使用する特定の初期化ベクトルが不明な場合に盗んだ暗号鍵を用いた場合であっても、データの解読を防止する。また、認証後の解読を使用してもよく、ユーザがアプリケーション内で認証された後でしかアプリケーションデータは解読されない。別の特徴はメモリ内の扱いに注意を要するデータに関係してもよく、それが必要なときにのみ、メモリ(ディスクではない)に保管されてもよい。たとえば、ログイン資格情報はログイン後にメモリから消去されて、オブジェクティブCインスタンス変数内の暗号化鍵および他のデータは、簡単に参照される可能性があるため格納されない。代わりに、これらのためにメモリを手動で割り当ててもよい。
ポリシーで定義した無活動期間の経過後に、ユーザのセッションを終了する無活動タイムアウトを実装してもよい。
MAMPフレームワーク614からのデータ漏えいは、他の方法で防止してもよい。たとえば、アプリケーション610がバックグラウンドに入る場合、所定(構成可能な)期間後にメモリをクリアにしてもよい。バックグラウンドに移るとき、アプリケーションの最後に表示されたスクリーンのスナップショットを取得して、フォアグラウンドに出すプロセスを迅速化してもよい。スクリーンショットは機密データを含むことがあり、そのためクリアにされるべきである。
別のセキュリティ特徴は、1つ以上のアプリケーションにアクセスするためにAD(アクティブディレクトリ)622のパスワードを使用せずに、OTP(ワンタイムパスワード)620の使用に関係する。ある場合には、あるユーザは自身のADパスワードを知らず(または知ることを許可されておらず)、そのためこれらユーザはSecurIDなどのハードウェアOTPシステムを使用するなど、OTP620を使用して認証してもよい(OTPは、エントラストまたはジェムアルトなど、異なるベンダによっても提供されてよい)。ある場合には、ユーザがユーザIDで認証した後、OTP620を用いてユーザにテキストが送信される。ある場合には、これはオンライン利用の場合のみ実施してもよく、プロンプトは単一フィールドである。
企業ポリシーによるオフライン使用が許可されるアプリケーション610については、オフライン認証のためにオフラインパスワードを実装してもよい。たとえば、企業はStoreFrontにこの方法でアクセスしてもらいたい可能性がある。この場合、クライアントエージェント604はユーザにカスタムオフラインパスワードの設定を要求してもよく、ADパスワードは使用されない。ゲートウェイサーバ606は、標準的なWindows(登録商標) Serverパスワードの複雑さの要件で記述されるなど、パスワードの最低長さ、文字種の組合せおよび有効期限に関するパスワード標準を制御し、強制するポリシーを提供してもよい。ただし、これらの要件は修正してもよい。
別の特徴は、二次資格情報として一定のアプリケーション610のクライアント側証明書の有効化に関する(MAMPのマイクロVPN特徴を介してPKI保護ウェブリソースにアクセスするため)。たとえば、@WorkMailなどのアプリケーションはこのような証明書を利用することがある。この場合、ActiveSyncプロトコルを使用した証明書による認証をサポートしてもよく、クライアントエージェント604からの証明書はゲートウェイサーバ606によって検索されて、キーチェーンで使用してもよい。各管理対象アプリケーションは、ゲートウェイサーバで定義されるラベルによって識別される1つの関連クライアント証明書を有していてもよい。
ゲートウェイサーバ606は企業専用ウェブサービスとやりとりして、該当の管理対象アプリケーションが内部PKI保護リソースに認証を行うことを可能にするクライアント証明書の発行をサポートしてもよい。
クライアントエージェント604およびMAMPフレームワーク614は、内部PKI保護ネットワークリソースに認証を行うために、クライアント証明書の取得および使用をサポートするように増強してもよい。様々なレベルのセキュリティおよび/または隔離の要求事項に応じるためなど、2つ以上の証明書をサポートしてもよい。証明書はメール・ブラウザ管理対象アプリケーション、および最終的には任意にラッピングされたアプリケーションが使用してもよい(ただし、MAMPフレームワークがhttps要求を仲介するのが合理的な場合、これらのアプリケーションはウェブサービス型の通信パターンを使用する)。
iOSのMAMPのクライアント証明書サポートは、各使用期間中、各管理対象アプリケーションのiOSキーチェーンへのPKCS 12 BLOB(バイナリ・ラージ・オブジェクト)のインポートに依拠してもよい。MAMPのクライアント証明書サポートは、プライベートメモリ内キーストレージとともにHTTPS実装を使用してもよい。クライアント証明書はiOSキーチェーンには絶対に存在することはなく、強力に保護されている「オンライン限定の」データ値を潜在的に除き、存続させない。
相互SSLも実装して、企業に対してモバイルデバイス602が認証され、かつその逆を要求することにより、追加のセキュリティを提供してもよい。ゲートウェイサーバ606に対する認証用の仮想スマートカードも実装してもよい。
限定およびフル両方のケルベロス(kerberos)サポートを追加の特徴としてもよい。フルサポート特徴は、ADパスワードまたは信頼できるクライアント証明書を使用したAD622へのフルケルベロスログインを行い、HTTP Negotiate認証チャレンジにレスポンスするためにケルベロスサービスチケットを取得する能力に関係する。限定サポート特徴はAGEEでの制約付き委任に関係し、当該AGEEサポートはケルベロスプロトコル遷移の呼び出しをサポートするので、HTTP Negotiate認証チャレンジにレスポンスしてケルベロスサービスチケット(制約付き委任を条件とする)を取得して使用することができる。このメカニズムはリバースウェブプロキシ(別名CVPN)モードで機能し、http(ただし、httpsではない)接続はVPNおよびマイクロVPNモードでプロキシされる。
別の特徴はアプリケーション・コンテナのロックおよび消去に関係し、これはジェイルブレイクまたはルート化検出時には自動的に行われ、管理コンソールからプッシュされるコマンドとして発生し、たとえアプリケーション610が稼動していないときでも、遠隔消去機能を含んでいてもよい。
障害のある場合に、いくつかの異なる場所のうちの1つからユーザがサービスを受けられるStoreFrontおよびApp Controllerのマルチサイト・アーキテクチャまたは構成をサポートしてもよい。
ある場合には、管理対象アプリケーション610には、API(たとえば、OpenSSL)を介して証明書および秘密鍵にアクセスが許可されてもよい。企業の信頼できる管理対象アプリケーション610は、アプリケーションのクライアント証明書および秘密鍵を用いて、特定の公開鍵オペレーションを行うことが認められてもよい。アプリケーションがブラウザのように挙動し、証明書アクセスが要求されない場合、アプリケーションが「who am I」証明書を読み取るとき、アプリケーションが証明書を使用してセキュリティ保護されたセッション・トークンを構築するとき、およびアプリケーションが重要なデータのデジタル署名のため(たとえば、トランザクションログ)または一時データ暗号化のために秘密鍵を使用するときなど、様々な使用のケースが識別され、それに応じて扱われてもよい。
〈プロキシを使用したリソースへの安全なアクセス〉
図7は、クライアントデバイス705、プロキシデバイス710、リソース720および/または認証サービス715を有するシステムを示す。図8は、クライアントデバイス705およびプロキシデバイス710の詳細図を示す。これらの構成要素は本明細書に説明する1つ以上の態様を実装してもよい。以下にさらなる実施例を用いてこれらの態様の簡単な説明を行う。
クライアントデバイス705はプロキシデバイス710を使用して1つ以上のリソース720および/または認証サービス715と通信してもよい。いくつかの態様では、クライアントデバイス705はリソース720および/または認証サービス715と直接通信するように構成されていない場合もある。たとえば、クライアントデバイス705およびリソース720は異なる認証および/または通信プロトコルを使用してもよい。プロキシデバイス710はこれらの異なるプロトコルの間で変換してもよい。さらに/あるいは、プロキシデバイス710は、以下の実施例で説明するように、さらなる利益を提供してもよい。
クライアントデバイス705はプロキシデバイス710に、ドキュメント、電子メール、サービス、ファイル等のリソース720に対する要求を送信してもよい。プロキシデバイス710はリソース720に要求を転送し、それに応答してプロキシデバイス710とリソース720との間の認証が開始されてもよい。
認証における1以上の時点で、リソース720はクライアント証明書等からの署名を要求してもよい。プロキシデバイス710はクライアント証明書への直接的なアクセスを有していない場合もあるので、プロキシデバイス710は、クライアントデバイス705がクライアント証明書へのアクセスを制御する場合などのように、クライアントデバイス705を認証プロセスに関連させてもよい。たとえば、プロキシデバイス710はクライアントデバイス705にクライアント証明書(またはそれに含まれる秘密鍵)を使用して認証メッセージに署名またはこれを解読するように、あるいは利用可能なセキュリティ証明書のリストまたは特定のセキュリティ証明書のユーザによる選択を返送するように要求してもよい。
プロキシデバイス710はクライアントデバイス705に、プロキシデバイス710とリソース/認証サーバとの間の認証セッションを識別するコンテキスト情報を提供してもよい。たとえば以下の実施例においてより詳細に説明するように、コンテキスト情報はプロキシデバイス710とリソース720との間および/またはプロキシデバイス710と認証サービス715との間で交換される(または交換されるべき)認証情報のデータ構造を識別してもよい。
クライアントデバイス705はコンテキスト情報を使用してプロキシデバイス710とリソース/認証サーバとの間の認証セッションを検証または別様に確認してもよい。コンテキスト情報が検証されると、クライアントデバイス705はプロキシデバイス710に要求された署名を提供し、プロキシデバイス710はリソース720および/または認証サービス715を用いた認証を完了してもよい。その後、プロキシデバイス710はクライアントデバイス705が要求するリソースを読み出して、それをクライアントデバイス705に提供してもよい。
クライアントデバイス705はエンドポイントデバイス、クライアントコンピュータ107または109、端末240、クライアントコンピュータ411〜414、モバイルデバイス502、モバイルデバイス602、またはその他のあらゆるデバイスを含んでいてもよい。たとえば、モバイルデバイスはスマートフォン、タブレット等を含んでよい。
1つ以上のアプリケーションがクライアントデバイス705上で稼働してもよい。アプリケーションは企業リソースなどの保護されたリソースへのアクセスを要求してもよく、そのアプリケーション(または他のアプリケーション)に含まれるモジュールがそれらの保護されたリソースへのアクセスを容易にしてもよい。
たとえば図8を参照すると、クライアントデバイス705上で稼働するアプリケーションはMAMPフレームワーク805にリソースに対する要求(たとえばHTTP要求)を送信してもよく、それによりプロキシデバイス710との通信を容易にしてもよい。いくつかの態様では、MAMPフレームワーク805はクライアントデバイス705上で特権的アプリケーションとして稼働してもよい。MAMPフレームワーク805は、上述のように、MAMPフレームワーク614によって提供される機能のすべてまたは一部を含んでよい。
クライアントデバイス705は、認証のために署名するのに用いてもよい1つ以上のクライアント証明書を格納する鍵ストア815へのアクセスを容易にするPKオペレーションSDKモジュール810も備えていてよい。たとえば、クライアントデバイス705は、クライアントデバイス705のユーザを表すクライアント証明書へのアクセスまたはその所有を許可してもよい。いくつかの態様では、証明書は企業が発行する証明書であってもよい。証明書は暗号化モジュールを有する物理的スマートカードに結合されていてもよい。すなわち、暗号機密がスマートカードに制限されていてもよい。
ユーザはスマートカードに保護された証明書へのクライアントデバイス705のアクセスを許可してもよい。あるいは、証明書は、鍵を保護するためにハードウェアおよび/またはソフトウェアモジュールを使用して、仮想スマートカードに結合されていてもよい。クライアントデバイス705および/またはクライアントデバイス705の取り外し可能なハードウェアモジュールは、プロビジョニング・プロセスによって証明書および秘密鍵の格納を許可されてもよい。クライアント証明書の秘密鍵を含むオペレーションを許可するためにクライアントデバイス705を使用してPINコードを入力するようにユーザに要求してもよい。クライアントデバイス705から分離した他の外部デバイス(たとえば、他のスマートフォン)は証明書を制御してもよく、クライアントデバイス705は外部デバイスによって制御される証明書にアクセスするためにカスタムリーダ・インターフェースを利用してもよい。
いくつかの実施形態では、クライアント証明書および/または秘密鍵がクライアントデバイス705または物理的スマートカードに制限されている場合がある。したがって、クライアントデバイス705は鍵の制御を維持してもよい。鍵を使用した認証が要求される場合、クライアントデバイス705は認証プロセスに含まれることを必要としてもよい。これによりクライアントデバイス705は、証明書秘密鍵を用いて実行されるオペレーションがクライアントデバイス705が意図するものであることが保証される。
いくつかの組織は特定のオペレーションに対する否認防止を得るためにスマートカードを使用してもよく、これにより組織が発行する証明書のすべての使用に対する権限をユーザに要求してもよい。たとえば、ドキュメントの署名は明らかなユーザの権限を要求してもよいが、一定のシステムに対する認証は明らかなユーザの権限を要求しない場合もある。そのような保証を提供するのに適した機構は、アクセスされるリソース、含まれるプロキシデバイス、およびクライアントデバイス705の動作方法の特性によって決められてもよい。
プロキシデバイス710はサーバ(たとえば、サーバ201、206、301、410)、コンピューティングデバイス、アクセス・ゲートウェイ560、ゲートウェイサーバ606、または他のあらゆるデバイスのうちの1つ以上を含んでよい。プロキシデバイス710はクライアントデバイス705と企業リソースまたは他のネットワークとの間の通信を容易にしてもよい。たとえば、クライアントデバイス705のユーザは認証を要求する企業リソースへのアクセスを希望してもよく、プロキシデバイス710がアクセスを仲介してもよい。クライアントデバイス705は、たとえばクライアントデバイス705がリソースに直接アクセスできない場合、プロキシデバイス710を使用してリソースにアクセスしてもよい。たとえば、クライアントデバイス705は企業リソースが利用するプロトコル用に構成されていない場合がある。いくつかの態様では、企業リソースは認証のためにPKINITを用いたケルベロスを実装してもよいが、クライアントデバイス705はPKINITを用いたケルベロスを実装していない場合がある。同様に、企業リソースはクライアント証明書の認証を用いたSSLを実装してもよいが、クライアントデバイス705はクライアント証明書の認証を用いたSSLを実装していない場合がある。代わりに、クライアントデバイス705およびプロキシデバイス710は、標準コンポーネントを有し周知の認証フレームワークに適合するプロトコルを用いて通信してもよい。
プロキシデバイス710は第一のリソースへのプロトコル(たとえば、ケルベロスまたはSSL)と第二のクライアントデバイス705への異なるプロトコル(たとえば、HTTPまたはHTTPS)との間の変換を行ってもよい。プロキシデバイス710を利用して、クライアントデバイスは企業リソースが使用する複雑なまたは異なるプロトコルを理解および操作する必要が無い場合がある。これらの実施例では、プロキシデバイス710はクライアントの役割を果たしてもよい。しかし、プロキシデバイス710はクライアント証明書の秘密鍵の制御を行わない場合がある。
プロキシデバイス710は、クライアントデバイス705がリソースへの直接的なアクセスを許可されていない場合、クライアントデバイス705のアクセス能力が限定されている場合、および/またはプロキシデバイス710が性能の改善または好ましいインターフェースの提供によってアクセスを向上している場合等の、他の状況におけるリソースへのアクセスを容易にするために使用されてもよい。
プロキシデバイス710はまた、セキュリティの増強を容易にしてもよい。たとえば、ケルベロスリソース認証はケルベロスKDC(たとえば、アクティブ・ディレクトリ・ドメイン・コントローラ)からのサービスチケットの取得を要求してもよい。しかし、KDC自体は、いくつかのクライアントデバイスに直接的にアクセス可能にするべきではない扱いに注意を要する企業リソースを含んでいてもよい。これらの場合、ケルベロス認証は信頼できるプロキシデバイス710の使用を要求してもよい。
他の実施例として、プロキシデバイス710は企業のDMZネットワークに配置された強固な通信ゲートウェイであってもよい。セキュリティをさらに向上させるために、プロキシデバイス710は、クライアントデバイス705と企業リソースとの間の端末相互間の通信の流れをプロキシデバイス710が存在しないかのように透明にするよりもむしろ、企業リソースにプロキシされている通信を検査できるようにしてもよい。すなわち、プロキシデバイス710はクライアントデバイス705がどのリソースを使用しているかおよびクライアントデバイス705が利用するプロトコルを認識していてもよい。
以下の実施例においてより詳細に述べるように、プロキシデバイス710はまた、クライアントデバイス705に、プロキシデバイス710と認証サービス715および/またはリソース720との間の認証セッションの1つ以上の態様を特定するコンテキスト情報を提供してもよい。クライアントデバイス705はこのコンテキスト情報を使用して、署名を要求するプロキシデバイス710によって提供されるデータに署名するべきか否かを判定してもよい。
図8を参照すると、プロキシデバイス710は、ハードウェアモジュールおよび/またはソフトウェアモジュールであってもよいパケットエンジン820を含んでいる。パケットエンジン820はクライアントデバイス705および/またはリソースとの通信を容易にしてもよい。プロキシデバイス710はセッションキャッシュ825も含んでよい。
以下の実施例においてより詳細に説明するように、セッションキャッシュ825は、プロキシデバイス710と1つ以上のリソースまたはリソースを格納するサーバとの間の通信を可能にするためのセッション鍵および/またはチケット(たとえば、ケルベロスセッション)を格納してもよい。プロキシデバイス710は、クライアントデバイス705から署名を取得する等、クライアントデバイス705を用いた認証を管理するように構成されたクライアント側の認証モジュール830を含んでいてもよい。ケルベロス認証のために、クライアント側の認証モジュール830は、ケルベロス認証プロトコル(たとえば、PKINITプロトコル)のクライアント側の公開鍵形態を実装するPKINITモジュール(なおデーモンと称されてもよい)を含んでいてもよい。たとえば、これはケルベロスのオープンソースの実装から利用可能なkinitコマンドラインプログラムである可能性がある。
プロキシデバイス710は、クライアント証明書秘密鍵にアクセスするための詳細を抽出するためにクライアント側の認証モジュール830が使用するライブラリモジュール835(たとえば、PKオペレーション・プロキシSDK835)も含んでいてよい。
ケルベロスに対して、スマートカードに結合されたクライアント証明書にアクセスするためのPKCS#11 API仕様を実施するPKオペレーション・プロキシSDK835を使用してもよい。PKオペレーション・プロキシSDK835はPKCS#11の部分を実装し、関連する証明書オペレーションをクライアントデバイス705に対してリモート処理ができる形態にパッケージ化してもよい。PKCS#11 APIを使用して、MIT等の標準ケルベロス実装を含んでよいケルベロス実装は修正する必要が無い。これにより、製品にセキュリティフィックスが行われた場合などに、ケルベロス製品の維持が容易になる。
パケットエンジン820、セッションキャッシュ825、クライアント側の認証モジュール830、およびPKオペレーション・プロキシSDK835はハードウェアおよび/またはソフトウェアモジュールを含んでもよく、それらが実行してもよいオペレーションを以下の実施例においてより詳細に説明する。いくつかの態様では、プロキシデバイス710は1つ以上のプロセッサと、プロセッサが実行すると、プロキシデバイス710に、パケットエンジン820、セッションキャッシュ825、クライアント側の認証モジュール830、およびPKオペレーション・プロキシSDK835を提供させ、および/またはパケットエンジン820、セッションキャッシュ825、クライアント側の認証モジュール830、およびPKオペレーション・プロキシSDK835のオペレーションを実行させるコンピュータ実行可能命令を格納するメモリとを含んでよい。
クライアントデバイス705およびプロキシデバイス710は、HTTPフレームワーク等の標準フレームワークを使用して通信してもよい。いくつかの態様においておよび以下の実施例で説明するように、クライアントデバイス705およびプロキシデバイス710は1つ以上の認証メッセージを交換してもよい。これらは、認証を要求するためのHTTP401コード等のHTTPステータスコードおよび/またはチャレンジ・レスポンス方式のメッセージを交換してもよい。
いくつかの実施形態では、401の認証チャレンジを受信するクライアントデバイス705がクライアントの非公開証明書の安全な交換をサポートしていない場合、クライアントデバイス705は401のメッセージをクライアントデバイス705が理解しない認証チャレンジとして認識してもよい。クライアントデバイス705は、クライアントデバイス705がクライアントの非公開証明書の安全な交換をサポートしていないためオペレーションが完了できなかったというメッセージをユーザに表示する等、適切なエラー処理行動で対応してもよい。公開鍵オペレーションのリモート処理をサポートするためのHTTPレベルの符号化は比較的単純であってよい。パケットエンジン820およびMAMPフレームワーク805はHTTPレベルの符号化を処理してもよい。
通信は、参照によりその全文が本明細書に組み込まれるRFC4559に記載されているHTTP Negotiate認証計画と同様の構造であってもよい。Base64の符号化されたブロブは、WWW−Authenticateおよび/またはAuthorizationヘッダを使用してクライアントデバイスとプロキシデバイスとの間で前後に交換してもよい。ブロブは、それぞれのPKオペレーションSDK(810,835)によって各デバイスで生成および処理してもよい。
いくつかの実施形態では、HTTPが認識するクライアントデバイス705とプロキシデバイス710との間の通信パス内のコンポーネントは認証プロセスと相互作用しない場合がある。たとえば、クライアントデバイス705とプロキシデバイス710との間のHTTPプロキシサーバは、プロキシデバイス710への接続は他のクライアントデバイスおよび/またはユーザからの要求の送信に再使用してはならないということを認識していてもよい。さらに、プロキシデバイス710から返送されたいかなるHTTPデータのキャッシングも、データが他のクライアントデバイスに送信されないように正確な範囲の制限を行わなければならない。
いくつかの態様では、クライアントデバイス705とプロキシデバイス710との間の認証は、ウェブ認証またはカスタム機構を用いたジェネリック・セキュリティ・サービス・アプリケーション・プログラム・インターフェース(GSSAPI)等の、標準の認証フレームワークを利用してもよい。オブジェクトはプロキシデバイス710からクライアントデバイス705へ送信されてもよい。クライアントデバイス705はオブジェクトを処理し、名前のチェックによる証明書パスの検証等の、標準の暗号化機構によってそれらの検証を行う。
クライアントデバイス705とプロキシデバイス710との間に専用通信チャネルを作成してもよい。たとえば、専用通信チャネルは証明書オペレーションの要求及び結果を中継するために使用してもよい。専用通信チャネルを利用して、クライアント705とプロキシデバイス710との間の標準SSLチャネルによって提供されるものを超えるさらなる暗号化保護を提供してもよい。これは、リモート処理される暗号化オペレーションの入出力の保護必要度を考慮すると、適切である場合がある。
いくつかの実施例では、クライアントデバイス705とプロキシデバイス710との間に、Diffie−Hellman鍵交換が発生する場合がある。この交換はクライアントデバイス705とプロキシデバイス710との間に相互認証を提供してもよい。いくつかの実施形態では、相互認証はクライアントデバイス705によるリソースへのアクセスの要求の前に既に確立されていてもよい。参照によりその全文が本明細書に組み込まれるRFC5929に説明されているように、チャネルの結合を使用して専用通信チャネルを外部SSLセッションに暗号でリンクしてもよい。
図8を簡潔に参照すると、PKオペレーションのペイロード等の、データ用の専用通信チャネルの設定にクライアントデバイス705とパケットエンジン820との間の複数の交換を利用してもよい。これは、PKオペレーションSDK810およびPKオペレーション・プロキシSDK835を除く全てに対して不透明であってよい。
専用通信チャネルを介してさらなる保護を提供する理由の一つは、実際問題として、SSLはプロキシデバイス710の前のオフロードデバイス等のネットワークのデバイスによって終了される場合があるということである。SSL接続に含まれるCPUの集中動作を加速するための専用のハードウェアの使用等により、SSL接続処理に対するオフロードデバイスの最適化を行ってもよい。ハードウェアモジュールはまた、連邦情報処理規格(たとえば、FIPS−140)等の、商業的に重要な暗号化処理規格に適合するために認証されてもよい。
さらなる保護を提供する他の理由は、検査デバイスは通信を解読するためにSSL証明書鍵へのアクセスを付与される場合があるということである。検査デバイスは、信頼できるネットワーク領域の外部へ秘密情報を送信する試み、あるいは信頼できないまたは承認されていないサーバと通信する試みを検出すること等によって、セキュリティポリシーに従うためにネットワークトラフィックを監視するように設計されたセキュリティデバイスを含んでいてもよい。これらの検査デバイスのいくつかは、検査プロセスが暗号化通信チャネルの使用によって阻止されないように、SSL接続のハンドシェイクの間、他のサーバに成り済ますように構成されていてもよい。
専用通信チャネルの使用によって、扱いに注意を要するデータのオフロードデバイスおよび/または検査デバイスへの不必要なおよび/または不適切な露出を阻止してもよい。したがって、クライアント証明書と同等のスマートカードの使用によって期待される否認防止特性を保護してもよい。たとえば、専用通信チャネルは署名されるデータに対する外部デバイスによる変更および/または解読されたデータの漏えいを阻止してもよい。
専用通信チャネルは複数の方法で実装してよい。たとえばおよび上述のように、標準HTTP認証プロトコル内で動作するカスタムGSSAPI機構を利用してよい。この実施態様はいくつかの非排他的な利益を提供する。
第一に、プロキシデバイス710はクライアントデバイス705に、リソースに対する認証および/または認証サーバは要求されたリソースへのアクセスを完了するように要求されるということを標準的な方法(たとえば、HTTP)で示してもよい。第二に、クライアントデバイス705とプロキシデバイス710との間で、必要であれば複数回、任意のバイナリプロトコルを伝送させてもよい。第三に、この実施態様によりセキュリティ保護された通信機構を標準的な方法(たとえば、GSSAPIレベルで)でデータの転送にネゴシエートおよび適用することができる。いくつかの実施態様では、標準HTTP認証プロトコル内で動作するカスタムGSSAPI機構は、GSSAPIのプラットフォーム実装をMICROSOFT NegoEx機構等の追加されるカスタム機構で使用可能にすることができる。
図7を参照すると、1つ以上の認証サービス715(または認証サービス715を稼働させるサーバ)が存在してもよい。認証サービス715は、ケルベロスまたはSSLを含む1つ以上のタイプの認証を実装してもよい。
本明細書で説明する態様は、クライアント証明書の秘密鍵オペレーションを含むあらゆる認証プロトコルに実装できる。たとえば、ケルベロスには、チケット付与チケットおよび/またはセッションチケットを含むチケットを発行するタスクを認証サーバに課してもよい。認証サーバは1つ以上のチャネルを介してプロキシデバイス710と通信してもよい。さらに、1つ以上のチャネルは、プロキシデバイス710と通信するためにクライアントデバイス705が使用する通信プロトコルとは異なる通信プロトコルを使用してもよい。いくつかの態様では、認証サービス715が、本明細書で説明する実施態様を実装しても、不変である場合がある。すなわち、認証サービス715は従来のインフラストラクチャ内に存在してもよい。認証サービス715は、たとえば、上述の認証サービス558を含んでいてもよい。
1つ以上のリソース720(またはリソース720を格納するサーバ)が存在してもよい。リソース720は、認証サーバがプロキシデバイス710と通信するために使用するような、1つ以上の同じまたは異なるプロトコルを使用してプロキシデバイス710と通信してもよい。いくつかの態様では、リソースは本明細書で説明する実施態様を実装しても、不変である場合がある。すなわち、リソースは従来のインフラストラクチャ内に存在してもよい。リソースについて限定しない実施例は、ファイルリソース、ウェブリソース、メールリソース、シェアポイントリソース等を含んでいてもよいが、これらには限定されない。これらのリソースは、構造クエリー言語(SQL)データベース、リモート・プロシージャ・コール(RPC)サーバ、分散型コンポーネント・オブジェクト・モジュール(DCOM)サーバ、シンプル・オブジェクト・アクセス・プロトコル(SOAP)ウェブサービス、表示状態転送(REST)ウェブサービス、および認証にGSSAPIまたは同様のセキュリティフレームワークを使用してよい他のプロプライエタリ・リソースを含んでいてもよい。
これらのリソースの1つ以上は、リソースと同じネットワーク上のまたは他の保護されたネットワーク内のコンピュータ等の内部デバイスが直接的にアクセスしてもよい。リソースは、上述の企業リソース504,508および/または608ならびに/もしくは企業サービス508および/または609を含んでいてもよい。さらに、リソースは図2に示すサーバ206等の1つ以上のサーバに格納されていてもよい。リソースは多層構成システムを通じてアクセスしてもよい。プロキシデバイス710は、次にバックエンドサーバと通信(および要求するユーザとして認証)してもよいフロントエンドサーバと通信してもよい。このタイプのシステムには制約のない権限を有するケルベロスを使用してもよく、プロキシデバイス710はフロントエンドサーバにユーザのために転送されたTGTを供給してもよい。
図9A〜図9Cは、認証および/またはプロキシを使用してリソースへの安全なアクセスを提供するための方法のステップのフローチャートである。
図9A〜図9Cは、クライアントデバイス705、プロキシデバイス710、認証サービス715、および/またはリソース720のうちの1つによって実行される各ステップを示している。しかし、方法のステップは、クライアントデバイス705、プロキシデバイス710、認証サービス715、リソース720、および/またはそれらの組み合わせのうちのいずれかによって実行してよい。上述のように、リソース720および認証サービス715は同じサーバ(またはサーバ群)によって提供されてもよい。あるいは、リソース720および認証サービス715は異なるサーバ(またはサーバ群)によって提供されてもよい。簡潔にするために、方法のステップのうちのいくつかは、図9A〜図9Cにおいて、単一のリソース/認証サービスエンティティ(たとえば、サーバまたはサーバ群)によって実行されるものとして示している。しかし、認証サービスは認証サーバ(または認証サーバ群)によって提供されてもよく、リソースは異なるサーバ(またはサーバ群)によって提供されてもよい。
ステップ902において、ユーザをクライアントデバイス705で認証する。たとえば、ユーザはクライアントデバイス705にログインするためにユーザ名および/またはパスワード等の視覚情報を提供してもよい。
ステップ904において、クライアントデバイス705はプロキシデバイス710を認証する。さらに/あるいは、ステップ906において、プロキシデバイス710はクライアントデバイス705を認証してもよい。すなわち、クライアントデバイス705およびプロキシデバイスは相互認証を実行してもよい。認証を実行するために、クライアントデバイス705はサーバ認証を有するSSLを使用してプロキシデバイス710に接続してもよい。プロキシデバイス710はクライアントデバイス705および/またはクライアントデバイス705のユーザにプロキシデバイス710へのアクセスを承認する前にプロキシデバイス710に対する認証を行うように要求してもよい。
いくつかの態様では、クライアントデバイス705はこの認証に企業のクライアント証明書を使用してもよい。企業のクライアント証明書は、以下の実施例でより詳細に説明するように、ドキュメントおよび/または認証メッセージに署名するためにクライアントデバイス705が使用するのと同じ証明書であってもよい。あるいは、企業のクライアント証明書は異なる証明書を含んでいてもよい。たとえば、クライアントデバイス705はそれぞれ異なる目的に使用する複数の証明書を備えていてもよい。物理的なスマートカードを使用する場合は、複数の証明書がそのスマートカードまたは異なるスマートカードに格納されていてもよい。
同様に、クライアントデバイス705は、プロキシデバイス710が周知の信頼できるエンティティでありかつプロキシを介した委託された認証によってユーザが認証されるリソースの識別を要求してもよいということを確立するために、プロキシデバイス710の認証を要求してもよい。クライアントデバイス705はまた、たとえばSSLハンドシェイクの一部としてデバイスが利用可能なクライアント証明書を使用して、あるいはたとえばHTTP上でSSL接続内の個別のユーザ認証プロトコルを稼働して、プロキシデバイス710に対してクライアントデバイス705のユーザを認証してもよい。リソース720はまた、リソース720へのアクセスをリソース・アクセス・プロトコルの使用等によってプロキシデバイス710が仲介していることを知ることを希望してもよい。したがって、クライアントデバイス705/ユーザ、プロキシデバイス710、およびリソース720の3つのエンティティのすべてに対して相互認証または識別を実行してもよい。
3つのエンティティのうちの1つ以上の認証および/または識別の後、クライアントデバイス705は、プロキシデバイス710によるアクセスは可能であるがクライアント証明書に基づくユーザ認証を要求するウェブリソース、(たとえば、ネットワークファイルサーバからの)企業リソース、または他のリソース等の1つ以上のリソースに対する要求をプロキシデバイス710に送信してもよい。リソースに対する要求はHTTP、HTTPS、またはクライアントデバイスがサポートする他のアクセスプロトコルを介してクライアントデバイス705が送信してもよい。プロキシデバイス710はクライアントデバイス705が使用するアクセスプロトコル(たとえば、HTTPまたはHTTPS)からリソースが使用するアクセスプロトコルへ変換またはブリッジしてもよい。変換後、プロキシデバイス710はステップ910においてリソースおよび/または認証サービスへの要求を転送するか、あるいは要求されたリソースへのアクセスを別様に試みてもよい。
ステップ912において、リソースはプロキシデバイス710からの認証を要求する。たとえば、リソースは実行する認証のタイプ(たとえば、SSL、ケルベロス等のドメインベースの認証)を表示してもよい。認証のタイプに基づいて、リソースは認証チャレンジ(たとえば、ケルベロス認証に対する401NegotiateメッセージまたはSSL認証に対するクライアント証明書チャレンジ)を送信してもよい。ケルベロス認証のために、PKINITプロトコルを使用してもよく、プロキシデバイス710はケルベロスのレルム(たとえば、MICROSOFTアクティブ・ディレクトリ・ドメイン)へのクライアント認証によって識別されたユーザを認証するためにPKINITプロトコル内でクライアントの役割を果たしてもよい。リソースサーバは、HTTP401Negotiate等のケルベロス認証チャレンジを生成してもよい。(たとえば、クライアント証明書を使用した)SSL認証のために、プロキシデバイス710はリソースに対してプロキシデバイス710がユーザのクライアント証明書および/または鍵にアクセスしたことを示してもよい。
プロキシデバイス710は、ケルベロス認証においてと同様に、特定のドメインを用いる代わりにリソースを用いて直接的に認証を行うことを試みてもよい。さらに/あるいは、プロキシデバイス710は、要求されたリソースへのアクセスを試みる前に認証が要求されることを認識してもよい。何れの場合も、プロキシはリソースとの関連する認証プロトコルの対話を決定して開始してよい。これらの対話は、リソースに信頼されている認証サービスを稼働する認証サーバ等のさらなるエンティティを含んでいてもよい。
ステップ914において、プロキシデバイス710は、リソース(またはリソースを有するサーバ)との安全な通信セッションを開始するために使用できるセッション鍵が利用可能であるかどうかを判定する。セッション鍵は、リソースまたは認証サービスとの以前の認証セッションに基づいてプロキシデバイス710によって事前に取得されてプロキシデバイスで格納(たとえば、キャッシュ)されていてもよい。ケルベロス認証に対して、セッション鍵はチケット付与チケット(TGT)またはその他の時間制限チケット等のケルベロスチケットで格納されてもよい。
図8を参照すると、ケルベロス認証のために、プロキシデバイス710のパケットエンジン820はそのケルベロス認証の応答ロジックを呼び出してもよく、これによりセッションキャッシュ825内にリソース(たとえば、ウェブリソース)のためのサービスチケットが既に存在するかどうかを確認する。いくつかの態様では、クライアント側の認証モジュール830は、この確認に応答して、クライアント証明書の認証が要求および/またはサポートされていることをプロキシデバイス710が認識している場合にPKINITを呼び出してもよい。SSL認証のために、セッション鍵を使用してSSLセッション等の事前のSSL接続を再開してもよい。セッション鍵(および/またはチケット)が利用可能であれば(ステップ914でYES)、以下の実施例でさらに詳しく説明するように、プロキシデバイス710はセッション鍵(および/またはチケット)を使用してステップ954(要求されたリソースを取得する)に進んでもよい。
最初の認証のために、セッションキャッシュは空であってもよい(たとえば、有効なセッション鍵および/またはチケットを格納していない)(ステップ914でNO)。したがって、プロキシデバイス710はリソースで認証を開始してもよい。
図8を参照すると、ケルベロス認証のために、パケットエンジン820はTGTを取得するためにクライアント側の認証モジュールへ内部PKINITコマンドを発行してもよい。認証のために、プロキシデバイス710は、それが、クライアントデバイス705によってアクセス可能なクライアント証明書に基づいて1つ以上のクライアント証明書および/または署名を必要としていると判定してもよい。これらの証明書および/または署名はプロキシデバイス710の直接的なアクセスが可能ではない場合がある。
図8を参照すると、クライアント側の認証モジュール830は、内部P11証明書取得コマンド等のコマンドをPKオペレーション・プロキシSDK835へ送信して、クライアントデバイス705から証明書を取得してもよい。クライアント側の認証モジュール830は、PKINITに適切なクライアント証明書を検索する方法として標準PKCS#11ライブラリ・インターフェース等の公開鍵暗号化基準(PKCS)をサポートする、ケルベロス・クライアントの実装を組み込んでもよい。PKオペレーション・プロキシSDK835はPKINIT特性をサポートするためにPKCS#11 API機能の関連サブセットを実装してもよい。
ステップ916において、プロキシデバイス710はクライアントデバイス705に対して、クライアントデバイス705が利用可能なおよび/またはこれにアクセス可能な証明書のリストの要求を送信する。要求はHTTPヘッダに符号化されてもよい。たとえば、要求は、認証が要求されていることを示しかつ認証のためにクライアントデバイス705にチャレンジしているHTTPの401ステータスコードに符号化されてもよい。
図8を参照すると、プロキシSDK835は、クライアントデバイス705に送信された証明書要求(たとえば、PKオペレーション要求)を取得しかつクライアントデバイス705がその要求に応答した場合に結果を受信するためにプロキシSDK835が使用してもよいパケットエンジン820へのカスタム・インターフェースを要求してもよい。証明書要求がリモート処理されることを必要とする場合は、プロキシSDK835は要求をバイナリ構造(必要に応じて暗号化/インテグリティ・ラッパを有する)に符号化して、パケットエンジン820に提示してもよい。パケットエンジン820はHTTP401に、WWW−Authenticationヘッダに符号化されたバイナリ構造を含む初期のHTTP要求に応答してクライアントデバイス705へ送信されるカスタム認証チャレンジで応答させてもよい。
いくつかの態様では、プロキシデバイス710がクライアントデバイス705からの証明書のリストに対する要求に応答する応答を受信しない場合もある。特に、クライアントデバイス705が証明書要求に応答する(たとえば、PKオペレーション)という保証はない。たとえば、クライアントデバイス705はクラッシュまたはその他により要求に応答できなくなる場合がある。さらに、クライアントデバイス705は(たとえば、鍵ストア815のロック解除のためにPINの入力をユーザに要求することによって)オペレーションに対するユーザの承諾を取得することを試みてもよいが、承諾を拒否される場合がある。
クライアントデバイス705がクライアント証明書のリストを返送しない状況に対処するために、プロキシデバイス710(プロキシSDK835コンポーネントなど)はタイムアウトを使用して最終的に証明書要求オペレーションを放棄してもよい。プロキシデバイス710はこれらの状況では適切なエラーコードを返送してもよい。PKINITログオンの間、PKINITログオンが成功、失敗または放棄されるか、もしくは時間切れになるまで、いくつかのPKオペレーションをデバイスに送信してもよい。
ステップ918において、クライアントデバイス705はプロキシデバイス710から証明書リストの要求を受信し、これに応答して、クライアントデバイス705が利用可能であるかまたは別様にアクセス可能な証明書を識別する。たとえば図8を参照すると、クライアントデバイス705のMAMPフレームワーク805は、プロキシデバイス710からのカスタム認証チャレンジを有するメッセージ(たとえば、HTTP401要求)を受信してもよい。これを証明書要求(たとえば、PKオペレーション「認証」プロトコル)であると認識すると、MAMPフレームワーク805は受信したヘッダフォーマットからメッセージを解読してメッセージのバイナリ構造をPKオペレーションSDK810へ転送する。PKオペレーションSDK810は利用可能なクライアント証明書を認識していてもよい。
上述のように、クライアント証明書は物理的なスマートカード、仮想スマートカード等の形態であってよい。PKオペレーションSDK810は要求を解読(あらゆる暗号化/インテグリティ・ラッパの処理を含む)し、それを適切な内部のハンドラに送信する。ハンドラは要求を処理し、利用可能な証明書のリストを生成する。証明書のリストは、たとえば、適切な鍵使用インジケータを有する証明書のみを含むように、要求されたオペレーションに対する関連性に従ってフィルタリングされてもよい。証明書のリストは残りの証明書が一つになるまでフィルタリングされてもよい。たとえば、オペレーションに使用するべき証明書を選別するために、クライアントデバイス705のユーザにUIを提示することによってリストをさらにフィルタリングしてもよい。リストはオペレーションの結果を示すバイナリ構造であってもよい。PKオペレーションSDK810は、未だバイナリ構造であってもよい証明書のリストをMAMPフレームワーク805に返送してもよく、あるいはリストが生成できない場合はエラー状態を通知してもよい。
図9Bを参照すると、ステップ924において、クライアントデバイス705はプロキシデバイス710に利用可能な証明書のリストを含むメッセージを送信してよい。いくつかの態様では、メッセージはHTTPまたはHTTPSメッセージとして送信されてもよい。たとえば、MAMPフレームワーク805はプロキシデバイスからの元のHTTP要求を再生してもよいが、利用可能な証明書のリストを含む要求に添付されているカスタムAuthorizationヘッダを使用してもよい。送信の前に、メッセージは暗号化/インテグリティ・ラッパにシールおよび/またはHTTPヘッダに適合するように符号化されてもよい。
ステップ926において、プロキシデバイス710はクライアントデバイス705からメッセージを受信する(および、必要であれば復号/解読してもよい)。図8を参照すると、パケットエンジン820は、クライアントデバイス705から受信したHTTP要求がプロキシデバイス810によって送信された元の証明書要求の再送であることを認識してもよい。パケットエンジン820はAuthorizationヘッダからのデータのバイナリ構造をクライアント側の認証モジュール830を介してプロキシSDK835に提示してもよい。プロキシSDK835はバイナリ構造(暗号化/インテグリティ・ラッパを含む)を解凍して、解凍したデータをクライアント側の認証モジュール830へ返送してもよい。
次に、プロキシデバイス710は、認証セッションに適した(すなわち、リソース/認証サーバでプロキシデバイス710を認証するための)証明書等の、リソース/認証サーバでプロキシデバイス710を認証するために使用する証明書を(証明書のリストから)選択してもよい。いくつかの実施形態では、ケルベロスおよびSSL規格によって、期待されるまたは要求される鍵使用を特定してもよい。たとえば、認証セッションがケルベロス認証を含む場合、プロキシデバイス710はケルベロスチケットを取得することを必要としてもよく、ケルベロスチケットの取得に適した証明書を選択することができる。ステップ924においてクライアントデバイス705が複数の証明書を返送した場合、プロキシデバイス710は、証明書のリストから選択するために入力することをユーザに求めてクライアントデバイスに選択要求を送信してもよい。
プロキシデバイス710およびリソースは認証セッションの間、メッセージの交換を続けてもよい。認証セッション中の1つ以上の時点で、プロキシデバイス710はクライアントデバイス705の、秘密鍵等の署名を用いた暗号化オペレーションの実行を要求されてもよい。秘密鍵はプロキシデバイス710が直接的に利用可能ではない場合がある。むしろ、秘密鍵はクライアントデバイス705の管理下に留まり、プロキシデバイス710が直接的に接触できない状態であってもよい。プロキシデバイス710は、署名(たとえば、秘密鍵)を取得するために専用の通信チャネルを介してクライアントデバイス705とやりとりしてもよい。
ステップ928において、プロキシデバイス710はクライアントデバイス705から選択された証明書に対応する署名に対する要求を生成する。プロキシデバイス710はまた、署名されるデータを生成してもよい。ケルベロス認証のために、このデータは選択された証明書を使用した認証サービス要求(AS_REQ)メッセージを含んでいてもよい。AS_REQメッセージは、クライアントデバイス705に送信される署名に対する要求に任意に添えられていてもよい。プロキシデバイス710は、クライアントデバイスが署名を提供する前に認証コンテキストの完全な詳細の確認を必要とする場合、クライアントデバイス705に未署名のAS_REQメッセージを送信してもよい。プロキシデバイス710は、クライアントデバイスとプロキシデバイスとの間の通信プロトコルおよび/またはケルベロス認証の実装がクライアントデバイス705へのAS_REQメッセージの送信をサポートしない場合、クライアントデバイス705にAS_REQメッセージを送信しない場合がある。以下の実施例で説明するように、プロキシデバイス710は、クライアントデバイス705が署名すると、署名されたAS_REQメッセージを認証サービス715および/またはリソース720に認証のために送信してもよい。
ステップ930において、プロキシデバイス710は署名の要求に含めるべき認証コンテキスト情報を決定する。いくつかの態様では、コンテキスト情報のサイズまたはフォーマットが限定されていない場合がある。たとえば、プロキシデバイス710はコンテキスト情報をバイナリ・ラージ・オブジェクト(BLOB)として送信してもよい。大略的に、コンテキスト情報はプロキシデバイス710とリソース/認証サーバとの間の認証セッションを識別する情報を含んでいてよい。以下の実施例でより詳細に説明するように、クライアントデバイス705はコンテキスト情報を使用してプロキシデバイス710とリソース/認証サーバとの間の認証セッションを検証または別様に確認してもよい。
ここで、コンテキスト情報の内容の実施例を提供する。コンテキスト情報はプロキシデバイス710とリソース/認証サーバとの間で事前に交換された認証情報のデータ構造を識別してもよい。たとえば、プロキシデバイス710およびリソースが既に認証メッセージを交換しておりかつ現時点が認証の途中である場合、コンテキスト情報は交換された認証メッセージの全てまたは一部を含んでいてよい。さらに/あるいは、コンテキスト情報は今後プロキシデバイス710によってリソース/認証サーバへ送信される認証情報のデータ構造を識別してもよい。たとえばケルベロス認証では、コンテキスト情報はプロキシデバイス710によってリソース/認証サーバへ送信されるAS_REQメッセージの一部または全てを含んでいてもよい。
コンテキスト情報は認証セッションと関連付けられているタイムスタンプ情報を含んでいてもよい。タイムスタンプはプロキシデバイス710によって判定される現在の時間を識別してもよい。ケルベロス/PKINITのために、認証サービス715および/またはリソース720は認証中のタイムスタンプの妥当性検証を行ってもよい。一般に、タイムスタンプは認証サービス715および/またはリソース720によって判定される現在の時間の合理的に厳格な許容差以内(たとえば、X秒以内)でなければならない。タイムスタンプは、認証サービス715および/またはリソース720でプロキシデバイス710を認証するために使用されるため、クライアントデバイス705による検証にも使用されてよい。
クライアントデバイス705とプロキシデバイス710はプロキシデバイス710と認証サービス715ほど時間的に密接に同期化されていない場合があるため、クライアントデバイス705はより大きな許容閾値(たとえば、X+Y秒)を使用してもよい。クライアントデバイス705は、認証セッションが最近(たとえば、直近の1分間、直近の1日の間等)行われたことを確認するためのタイムスタンプ情報を使用してもよい。
コンテキスト情報はプロキシデバイス710およびリソース/認証サーバによって使用される認証プロトコルのタイプを識別してもよい。たとえば、ケルベロス認証を使用する場合、コンテキスト情報は全体的にケルベロスを、またはケルベロスのPKINIT特性が使用されている場合はPKINIT/ケルベロスを識別してもよい。
一実施例として、「PKINITに署名」を使用してもよい。コンテキスト情報はまた、署名または特定のプロキシデバイス710の実装を要求するアプリケーションも識別してもよい。たとえば、「NetScalerでPKINITに署名」または「XenAppでPKINITに署名」を使用することができる。SSL認証を使用する場合、コンテキスト情報はSSLを識別してもよい。一実施例として、「SSL−クライアント−認証に署名」を使用してもよい。コンテキスト情報はまた、プロキシデバイス710がいずれのSSL認証オペレーションを実行しているのか(たとえば、オペレーション1、オペレーション2等)およびプロキシデバイス710がいずれのリソースで認証しているのかも識別してもよい。
コンテキスト情報はプロキシデバイス710がクライアントデバイス705によって提供される証明書のリストから選択した証明書を識別してもよい(たとえば、ステップ926)。選択された証明書を提供することにより、クライアントデバイス705はプロキシデバイス710およびリソースによって使用される認証プロトコルのタイプを把握できるようにしてもよい。
コンテキスト情報は、ケルベロスデータ構造またはSSLデータ構造等の認証セッションのデータ構造を識別してもよい。たとえば、ケルベロス認証セッションは、プロキシデバイス710がコンテキスト情報を介して識別してもよい抽象構文記法1(ASN.1)構造体を含んでいてもよい。特に、AS_REQの一部であってもよい、署名されるAuthPackはクライアントデバイス705が認識してもよいはっきり定義されたASN.1構造を有していてもよい。SSL認証のために、データ構造は証明書検証構造を含んでいてもよい。
コンテキスト情報はクライアントデバイス705が認証セッションを検証するために使用してもよい情報の特定の部分を含んでいてもよい。この情報の特定の部分はまた、認証セッションのデータ構造の識別に使用してもよい。たとえば、認証セッションがケルベロス認証を含む場合、コンテキスト情報はたとえば、ケルベロス認証と関連付けられたチェックサム、ケルベロス認証に使用されるケルベロス・ドメイン(たとえば、特定の認証サーバが処理するレルム)、クライアントデバイス705に関連付けられたケルベロスの主体名(たとえば、クライアントデバイス705に割り当てられたユーザネーム)、認証セッションに使用される鍵配信センター(KDC)の識別子、要求されたチケット(たとえば、TGTチケットまたはセッションチケット)の有効期間、および認証セッション中に(たとえば、プロキシデバイス710とリソース/認証サーバとの間でそれまでに交換された認証メッセージに基づいて)設定されたケルベロスフラグを含んでいてもよい。
クライアントデバイス705が検証してもよいフラグの一実施例は「転送可能」フラグであり、これは結果として得られたチケットを他のデバイスへ転送してもよいことを示してもよい。上述のように、クライアントデバイス705によって署名されてリソース/認証サーバへ送信されるAS_REQメッセージの一部または全体はクライアントデバイス705へ送信してもよい。
SSL認証については、情報の特定の一部だけではクライアントデバイス705がプロキシデバイス710とリソース/認証サービスとの間のSSL認証セッションの内容を識別するのに十分ではない場合がある。たとえば、SSL認証がプロキシデバイス710とリソースとの間を前後動したパケットの全シリーズのハッシュを生成するため、情報の特定の部分はクライアントデバイス705へのランダムデータに類似するであろう。
したがって、いくつかの実施形態において、SSL認証のためのコンテキスト情報は、クライアントデバイス705からの署名を要求する前にプロキシデバイス710とリソースとの間の全体(またはほぼ全体)の認証の交信を含んでいてもよい。すなわち、SSLオペレーション(たとえば、ハンドシェイク・メッセージ)は全てクライアントデバイス705に提供されてもよい。プロキシデバイス710は実行されたSSLオペレーションの累積ダイジェストを生成する。したがって、クライアントデバイス705は、クライアントデバイス705が検査を希望するハンドシェイクのあらゆる部分を検査してよく、これによりクライアントデバイス705はアクセスするリソースのアイデンティティの確認およびハンドシェイクが整形式であることの確認が可能になる。
いくつかの態様では、プロキシデバイス710は証明書オペレーションインターフェースを介してクライアントデバイス705にSSLハンドシェイクプロセス全体を委託してもよい。ハンドシェイクが完了すると、クライアントデバイス705は、クライアントとプロキシとの間の専用通信チャネルのための鍵交換で保護されたマスターシークレットを供給してもよい。
ステップ932において、クライアントデバイス705はプロキシデバイス710から署名の要求を受信してそれに含まれるコンテキスト情報を抽出する。たとえば、クライアントデバイス705は要求メッセージを復号および/または解読してもよい。コンテキスト情報の例は上述した。
ステップ934において、クライアントデバイス705はコンテキスト情報の検証を試みる。クライアントデバイス705はコンテキスト情報を使用してプロキシデバイス710とリソース/認証サーバとの間の認証セッションが有効であることを確認してもよい。たとえば、クライアントデバイス705はコンテキスト情報を使用してプロキシデバイス710がリソース/認証サーバと通信していることおよびそれらの間で発生する通信のタイプを判定してもよい。
クライアントデバイス705は、たとえば、アクセスするリソースが意図するものである、要求された暗号化オペレーションが期待されたプロトコルの一部である、ならびに暗号化オペレーションの結果がプロキシデバイス710とリソースとの間の特定のプロトコルの対話の一部としてのみ有利に使用されるまたは使用することができるという、クライアントデバイス705を満足させるのに十分な、リソース認証プロトコルまたはプロキシの認証コンテキストの関連する部分(または全体)を認識するようにしてもよい。たとえば、クライアントデバイス705は、クライアントデバイス705が署名するように要求されたデータ(たとえば、ケルベロス認証のためのAS_REQメッセージ)を検査して、そのデータ(または添付されたデータ)が期待された認証プロトコル(たとえば、ケルベロス、SSL等)の構造体によって使用される周知の構造に確実に対応するようにしてもよい。データはまた、クライアントデバイス705が検証できる特定のデータ要素を潜在的に含んでいてもよい。あるいはまたはさらに、クライアントデバイス705はクライアントデバイス705が署名を提供する前に、データ内に認識可能および/または検証可能な期待される構造を検索するようにしてもよい。
コンテキスト情報が検証できない場合は(ステップ934においてNO)、クライアントデバイス705はコンテキスト情報が検証できなかったことを示すメッセージを送信する。たとえば、クライアントデバイス705は要求された署名を含まない回答を送信してもよい。ケルベロス認証については、タイムスタンプがクライアントデバイス705によって設定された許容閾値外となる場合、検証は失敗の可能性がある。SSLおよびケルベロス認証のために、クライアントデバイス705は認証/リソースサーバの証明書に対して証明書チェーン検証を行ってもよいが、これは複数の理由のうちの何れかにより失敗する可能性がある。
ケルベロスに対する証明書チェーン検証は(AS_REQに対する回答であるAS_REPに対応する)別のPKオペレーション・ステップを要求してもよい。SSLについては、プロキシデバイス710とリソースとの間のSSL認証メッセージの関連する部分がクライアントデバイス705に送信される場合は、チェーン検証が可能である。
いくつかの態様では、クライアントデバイス705がプロキシデバイス710によって既に提供されているコンテキスト情報を基に検証できない場合は、クライアントデバイス705はプロキシデバイス710からのさらなるコンテキスト情報を要求してもよい。
プロキシデバイス710がさらなるコンテキスト情報を提供することを決定した場合、プロキシデバイス710はステップ930へ戻り、クライアントデバイスに提供するためのさらなるコンテキスト情報を探し出す。さらなるコンテキスト情報は異なるタイプのコンテキスト情報であってもよい。たとえば、プロキシデバイス710が選択した証明書を識別する情報を事前に送っていた場合、プロキシデバイス710はプロキシデバイス710とリソース/認証サーバとの間で交換された認証メッセージ(たとえば、ケルベロス認証セッション中に設定されたケルベロスフラグまたはSSL認証セッション中に交換されたハンドシェイク・メッセージ)からの特定の情報を提供してもよい。署名のないメッセージを送信する代わりに、クライアントデバイス705はプロキシデバイスの署名要求に応答しない場合がある。
ステップ938において、プロキシデバイス710は署名が利用可能ではないことを示すメッセージを生成して、そのメッセージをリソース/認証サーバへ送信する。ステップ970において、リソース/認証サーバはプロキシが認証されていないと判定してもよく、それに対応して認証セッションを終了してもよい。すなわち、リソース/認証サーバはプロキシにセッション鍵(またはケルベロスの場合はチケット)を提供しない場合がある。
コンテキスト情報は検証されてもよい(ステップ934においてYES)。ケルベロス認証については、たとえば受信したタイムスタンプがクライアントデバイスにおいて現在の時間の許容範囲内である場合および/または受信したAuthPack内のチェックサムがクライアントデバイスによって計算されたチェックサムと一致する場合(AS_REQがコンテキスト情報として供給された場合)、検証は成功する可能性がある。
コンテキスト情報が検証された場合、ステップ942において、クライアントデバイス705は、プロキシデバイス710がステップ926において選択した証明書を使用して、プロキシデバイス710が提供したデータに署名する。たとえば、ケルベロス認証については、(たとえば、ステップ930において)プロキシデバイス710がクライアントデバイス705に未署名のAS_REQメッセージを提供した場合、クライアントデバイス705はAS_REQメッセージに署名してもよい。上述のように、未署名のAS_REQメッセージの提供は任意である。あるいは、ケルベロスおよびSSL認証の両方については、プロキシデバイス710によって提供されたデータは、その上で署名が計算される一連のオクテット等の何らかのデータのチャンクを含んでいてもよい。
データに署名した後、ステップ944において、クライアントデバイス705は署名のあるメッセージおよび/または署名したデータをプロキシデバイス710に送信する。
ステップ946において、プロキシデバイス710はメッセージを受信して署名および/または署名したデータを抽出する。たとえば、以下にさらに詳細に説明するように、(他の一連のオクテットでもよい)署名はプロキシデバイスに返送され、リソースまたは認証サービスに送信されるのに適切な認証メッセージ内にプロキシデバイスによって挿入されてもよい。
図8を参照すると、パケットエンジン820はメッセージを受信してそのメッセージをプロキシSDK835へ転送してもよい。プロキシSDK835は署名をクライアント側の認証モジュール830に提供してもよい。
ステップ948において、プロキシデバイス710は署名を含む認証メッセージをリソース/認証サーバに送信する。認証メッセージは認証要求に応答して、ステップ912においてリソース/認証サーバが送信してもよい。概して、認証メッセージは、プロキシデバイス710がクライアントデバイス705によって要求されるリソースを取得するためのセッション鍵を取得するために使用してもよい。
たとえばケルベロス認証において、認証メッセージは、プロキシデバイス710がリソースとの安全な通信セッションのためのチケットを取得するために使用してもよいセッション鍵およびTGT等のチケットを取得するために使用するAS_REQメッセージを含んでいてもよい。プロキシデバイス710がクライアントデバイス705から署名したAS_REQメッセージを受信した場合、プロキシデバイス710はその署名されたAS_REQメッセージをリソース/認証サーバに転送してもよい。プロキシデバイス710が署名を別に受信した場合は、プロキシデバイス710はAS_REQメッセージを生成してそのAS_REQメッセージに署名を添付してもよい。いくつかの態様では、AS_REQメッセージは、参照によりその全文が本明細書に組み込まれるRFC4556に記載されているように、PA−PK−AS−REQフォーマットで符号化してもよい。
ステップ950において、リソース/認証サーバは認証メッセージを受信して、その認証メッセージが有効な署名を有するかどうかを判定する。署名が有効でない場合は、リソース/認証サーバは上述したステップ970(たとえば、プロキシデバイス710が認証されていないと判定するおよび/またはプロキシデバイス710との認証セッションを終了する)を実行してもよい。
ステップ952において、署名が有効であれば(ステップ950においてYES)、リソース/認証サーバはセッション鍵を生成および/またはプロキシデバイス710に送信する。ケルベロス認証において、リソース/認証サーバはまた、TGTまたはサービスチケット等のチケットをプロキシデバイス710に送信してもよい。セッション鍵および/またはチケットは、プロキシデバイス710および/またはクライアントデバイス705が解読できる別の鍵を使用してカプセル化されてもよい。いくつかの態様では、メッセージはケルベロスAS_REPメッセージとして送信されてもよい。
ステップ953において、プロキシデバイス710はセッション鍵および/またはチケットを受信して、そのセッション鍵および/またはチケットを格納(たとえば、キャッシュ)する。それらは後の使用のためにキャッシュされてもよい。たとえば、セッション鍵および/またはチケットは、後にクライアントデバイス705がさらなるリソースを要求する場合に使用してもよい。
図9Aを参照すると、プロキシデバイス710はセッション鍵がステップ914においてプロキシデバイス710がクライアントデバイス705のためにリソースの取得を必要とする次回に利用可能であると判定してもよい。
図8を参照すると、ケルベロス認証については、クライアント側の認証モジュール830は、TGTおよび/またはサービスチケットとそれらの対応するセッション鍵を用いたユーザセッションのためにケルベロス・チケット・キャッシュを追加してもよい。
いくつかの実施形態では、プロキシデバイス710はリソース/認証サーバから受信したセッション鍵および/またはチケットを有するメッセージを解読するための鍵を備えていない場合がある。その代わりに、たとえば、クライアントデバイス705がプロキシデバイス710を完全に信頼していない場合は、クライアントデバイス705は鍵へのアクセスを制御してもよい。これらの実施形態では、プロキシデバイス710およびクライアントデバイス705は、セッション鍵および/またはチケットを含むカプセル化されたメッセージを解読するために(たとえば、さらなる証明書オペレーションにおいて)任意でさらなるメッセージのセットを交換してもよい。この交換は、ステップ953においてプロキシデバイス710がセッション鍵および/またはチケットを解読して格納する代わりに行われてもよい。
たとえばケルベロス認証において、参照によりその全文が本明細書に組み込まれるRFC4556のセクション3.2.3.1に記載されているように、PKINITはDiffie−Hellman鍵交換を使用してTGTセッション鍵をラッピングするためのAS回答鍵をネゴシエートしてもよい。あるいは、RFC4556のセクション3.2.3.2に記載されているように、公開鍵暗号化がKDCによって利用されて、証明書の公開RSA鍵を用いてKDCが生成するAS回答鍵を暗号化してもよい。これによりプロキシデバイス710に、クライアントデバイス705に回答鍵を解読するように要求させてもよい。
これらの実施例では、クライアントデバイス705は、さらなるチケットを要求するためにTGTのあらゆる使用を制御できるようにする(および希望すればそれらのサービスチケットの使用も制御できるようにする)TGTセッション鍵などのそれが保護する回答鍵および他の鍵を保持することを選択してもよい。したがって、ステップ953においてセッション鍵および/またはチケットを格納するプロキシデバイス710の代わりに、クライアントデバイス705がセッション鍵および/またはチケットを格納してもよい。これは、クライアントデバイス705がプロキシデバイス710をある程度信頼しているが完全には信頼していない場合に適切となる可能性がある。
ここで、公開鍵暗号化の使用についてより詳細に説明する。AS回答鍵を返送するためにRSA公開鍵暗号化が使用される場合、プロキシデバイス710は、KRB−AS−REP回答メッセージのencKeyPackフィールド等のリソースから受信したセッション鍵および/またはチケットを用いて回答メッセージのデータフィールド内のサブストラクチャのクライアントデバイス705からの証明書の秘密鍵の解読を要求してもよい。参照によりその全文が本明細書に組み込まれるRFC3852のセクション5.1に規定されているように、クライアントデバイス705による解読の結果得られたブロブ(blob)はSignedData構造であってもよい。RFC4556のセクション3.2.3.2に規定されているように、SignedData構造はid−pkinit−rkeyDataのコンテントタイプおよびReplyKeyPack構造を含む内容フィールドを有していてもよい。SignedData上の署名フィールドは、クライアントデバイス705がKDCの識別を確認するための証明書パスの検証を実行することを許可するKDCの証明書を含んでいてもよい。したがって、RSA公開鍵交換が使用される場合、クライアントデバイス705はプロキシデバイス710が認証しているKDCの識別を完全に検証する能力を有していてもよい。Diffie−Hellman鍵交換を使用する場合は、プロキシデバイス710はKDCの証明書を参照してパスの確認を実行してもよい。プロキシデバイス710は鍵交換の完了にクライアントデバイス705を含むことを必要としなくてもよい。
あるいは、クライアントデバイス705はプロキシデバイス710に高い信頼を有し、セッション鍵および/またはチケットを含むメッセージの解読をプロキシデバイス710に許可してもよい。
これらの実施形態において、プロキシデバイスは、ステップ953に関して上述したように、メッセージを解読してセッション鍵および/またはチケットを格納してもよい。たとえば、プロキシデバイス710は、Diffie−Hellman鍵交換を制御して、(たとえば、TGTと関連付けられた)セッション鍵をさらなるクライアントデバイス705のサポート無しに復元することをプロキシデバイス710ができるようにしてもよい。この場合、プロキシデバイス710はTGTの完全な制御を実行できるため、クライアントデバイス705による制限のない委託の許可をプロキシデバイス710に付与してもよい。
さらに/あるいは、プロキシデバイスはセッション鍵および/またはチケットを取得するためにMicrosoft Active Directory環境を利用してもよい。Microsoft Active Directory環境において、プロキシデバイス710はドメインコントローラから(NTLMクレデンシャル等の)ユーザのパスワードハッシュを受信することをプロキシデバイス710に許可するPKINITプロセスの拡張子をサポートしてもよい。これにより、プロキシデバイス710はケルベロス認証チャレンジと共にNTLM認証チャレンジにも応答できるようになる。クライアントデバイスが(上述のように)TGTセッション鍵に対する制御を保持するためにAS回答鍵を保持しない限り、プロキシデバイス710とクライアントデバイス705との間のさらなる対話はNTLMパスワードハッシュの復元には全く必要とされない。これはTGTセッション鍵を伝達するために使用される同じAS回答鍵でNTLMパスワードハッシュを暗号化してもよいためである。
ステップ954において、プロキシデバイス710はセッション鍵を使用して要求されたリソースを取得する。ステップ956において、サーバまたは他のデータベースはセッション鍵に基づいて要求されたリソースを提供する。ケルベロス認証については、リソース/認証サーバはステップ952においてTGTおよび関連付けられたセッション鍵を提供していてもよい。この実施例では、プロキシデバイス710は、TGTを使用して要求されたリソースに対するさらなるケルベロスサービスチケットを取得することによってクライアントデバイス705のユーザに代わってインライン認証を実行してもよい。
図8を参照すると、クライアント側の認証モジュール830は、取得しているPKINITおよびケルベロスチケットがリソースに対するプロキシしたHTTP要求の再試行を引き継いだ場合、パケットエンジン820に信号を送ってもよい。これは、セッション鍵/チケットキャッシュが追加された場合に実行してもよい。パケットエンジン820は、リソース取得のためにサービスチケットおよびセッション鍵から生成された適切なケルベロスバイナリ構造(AP_REQ)を含むAuthorizationヘッダを添付してもよい。上述のように、クライアントデバイス705はプロキシデバイス710を完全に信頼していない場合もある。
これらの実施例では、クライアントデバイス705はTGTセッション鍵の所有を維持して、個々のリソースに対するサービスチケットを要求する際にクライアントデバイス705とやりとりするようにプロキシデバイス710に要求してもよい。このようにして、クライアントデバイス705はそれの代わりにプロキシデバイス710によってアクセスされたリソースの識別の可視性を確保することができる。
ステップ958において、プロキシデバイス710がリソースを取得すると、プロキシデバイス710はリソースをクライアントデバイス705に送信してもよい。ステップ960において、クライアントデバイス705は企業データまたはサービス等のデータまたはサービスにアクセスすること等によって要求されたリソースを受信してそれを希望通りに使用してもよい。上述のように、データまたはサービスはクライアントデバイス705上で保護するためにデータボルト616で暗号化してもよい。
いくつかの実施形態では、クライアントデバイス705は、(たとえば、プロキシデバイス710を介して)VPNトンネルまたはその他のタイプの通信チャネルを用いたSharepointなどのリソース720と通信してもよい。(たとえば、図9Aに示すステップ914において)リソース720からのリソース認証チャレンジを受信するプロキシデバイス710の代わりに、クライアントデバイス705はVPNトンネルを介してチャレンジを受信してもよい。クライアントデバイス705は、プロキシデバイス710が認証を支援できるようにするためにプロキシデバイス710との第二の並列会話を確立(または事前に確立されたチャネルを介してプロキシデバイスと通信)してもよい。これは、クライアントデバイス705がケルベロス認証等の特定のタイプの認証を実行する機能を有していない場合があるため、有利である。
第二の並列会話の間、クライアントデバイス705はプロキシデバイス710へのリソース認証チャレンジを提示してもよい。プロキシデバイス710はその後、認証サービス715(たとえば、ケルベロス認証の場合はKDC)と通信して、リソースにアクセスするためにクライアントデバイス705に必要とされるセッション鍵(およびケルベロス認証の場合はケルベロスチケット)を取得してもよい。この点で、クライアントデバイス705、プロキシデバイス710、および認証サービス715の間で実行されるステップは、たとえば、図9A〜図9Cを参照しながら上述した、ステップ914、ステップ916、ステップ918、ステップ924、ステップ926、ステップ928、ステップ930、ステップ932、ステップ934、ステップ936、ステップ938、ステップ970、ステップ942、ステップ944、ステップ946、ステップ948、ステップ950、ステップ952、および/または953のうちのいずれかを含んでいてもよい。
プロキシデバイス710が認証サービス715からセッション鍵および/またはチケットを受信した後、プロキシデバイス710はクライアントデバイスとプロキシデバイスとの間のセキュリティ保護された通信チャネルを介してクライアントデバイス705に鍵および/またはチケットを返信してもよい。クライアントデバイス705はここで、セッション鍵および/またはチケットを使用してリソース720から受信したリソース認証チャレンジに応答して要求されたリソースを取得してもよい。あるいは、プロキシデバイス710が鍵および/またはチケットをクライアントデバイス705に返送する代わりに、プロキシデバイス710はそれ自体が、リソース認証チャレンジへの応答を構成して、認証の応答をクライアントデバイス705に送信してもよい。クライアントデバイス705はこの応答をリソース720に転送して、要求されたリソースを取得してもよい。
図9A〜図9Cに示すステップは、電子メールまたは他のドキュメントタイプ等のドキュメントへの署名および/または証明書秘密鍵によって保護されているデータの解読に適用されてもよい。ドキュメントへの署名の実施例では、プロキシデバイス710はクライアントデバイス705に署名するドキュメントを本明細書で説明するコンテキスト情報として提供してもよい。
図9A〜図9Cに示すステップはまた、デスクトップおよび/またはアプリケーションの仮想化等の仮想化環境に適用してもよい。仮想化環境において、クライアントデバイス705は、図6に示すクライアントエージェント604または遠隔表示接続を確立するために使用される他の何らかのクライアントアプリケーション(たとえば、CITRIX ICA、CITRIX RDP等)等の仮想化アプリケーションを実行していてもよい。上述のように、クライアントデバイス705はこの状態でも、物理的または仮想のスマートカードに格納された鍵等のプライベート証明書を保護してもよい。
プロキシデバイス710は、図3に示す仮想化サーバ301等のアプリケーションまたはデスクトップ仮想化サーバを含むか、またはこれらの一部であってもよい。そのようなサーバはアプリケーションを実行してもよく、企業リソース等のリソースと通信してもよい。プロキシデバイス710とクライアントデバイス705との間の仮想化環境における通信は、CITRIX ICAプロトコルまたはCITRIX RDPプロトコル等の、表示のリモート処理プロトコルを介して操作してもよい。リソースは、上述の企業リソース504、508、および/または608ならびに/もしくは企業サービス508および/または608を含んでいてもよい。
いくつかの実施形態では、図9A〜図9Cに示すステップは仮想化環境に使用してもよい。あるいは、何らかの変更を加えてもよい。クライアントデバイス705とプロキシデバイス710との間のHTTP通信は、CITRIX ICAプロトコルまたはCITRIX RDPプロトコル等の、表示のリモート処理プロトコルを利用した通信に換えてもよい。PKOpプロキシSDK835は第三者のアプリケーションを含んでいてもよい。したがって、上述のPKオペレーション・プロキシSDK835によって実行されるステップは第三者のプリケーションによって実行されてもよい。いくつかの態様では、プロキシデバイス710はこれらのステップを実行するために第三者のアプリケーションを呼び出してもよい。
ここで、仮想化の実施形態を説明する。仮想化サーバがMicrosoft Windows(登録商標)等のOSを起動する標準的OSのケルベロスの実装を使用することができる。たとえば、ケルベロス・セキュリティ・サービス・プロバイダ(ケルベロスSSP)のAuthenticationパッケージ(SSP/AP)を使用してもよい。ケルベロスSSPには(これらに限定されないが)、LsaCallAuthenticationPackageおよびKERB_CERTIFICATE_LOGONを含む様々なプログラミング・インターフェースを利用できる。上述のPKINITケルベロス・ログオン・プロトコルを呼び出すために、顧客クレデンシャルプロバイダおよび顧客鍵格納プロバイダ(KSP)と共に、クライアント証明書と同等のスマートカードを使用してもよい。KSPは、AuthPack構造のチェックサム等の秘密鍵で署名できるPKINITの特定のプロトコル要素に公開されてもよい。さらに、ケルベロスSSPは、署名生成の最初のステップであるチェックサムの計算に使用されるHash API等の暗号に関するオペレーションを呼び出すためにOS APIを使用してもよい。ケルベロスSSPによって行われたHash APIコールの傍受により、署名が計算されるプロトコル要素を知ることができる。Hash APIコールは、ケルベロスSSPがPKINITを実行する信頼されたLSASSプロセスにロードされるカスタムSSPを使用することによって傍受することができる。
上述のように、署名する構成要素はRFC4556のセクション3.2.1に記載されているAuthPack構造を含んでいてもよい。さらに、プロトコル要素は、ASN.1バイナリ符号化ルールに従う構造等の何らかの整形式の構造を有していてもよい。さらに、構造は、現在の時間を表すタイムスタンプを含み、クライアントデバイス自体の現在の時間の認識に対する基本的な妥当性確認を実施することをクライアントデバイス705に許可してもよい。
実際に起こり得る時間差異を許容するために、クライアントデバイス705は、たとえば認証サーバ(たとえば、KDC)が許容するよりも広い時間差異の許容範囲を希望してもよい。たとえば、クライアントデバイス705は、KDCが許可する可能性のある5分間よりもむしろ、24時間以内のそれ自体の時間的価値である時間的価値を受け入れてもよい。
いくつかの実施形態では、KSPは、最終的にKSPを呼び出す証明書署名オペレーションを呼び出す前にケルベロスSSP内に準備されていてもよいKRB−REQ−BODYバイナリ構造を確実に配置してもよい。ケルベロスSSPへ戻るスタック等からこの構造が配置できる場合、その後AuthPackの完全な検証が可能となってよい。あるいは、ケルベロスSSPによって行われたOS Hash APIコールの傍受により、AuthPack構造の準備の一部としてKRB−REQ−BODYのチェックサムを計算するために、KRB−REQ−BODY構造は直接的に可視であってもよい。その後、構造のコピーをプロキシデバイス710によってPKオペレーションの要求の一部としてクライアントデバイス705に送信することができる。同様に、AuthPack構造は署名構造体の一部としてHash APIに対して可視であってもよい。
上述のように、クライアントデバイス705とプロキシデバイス710との間の専用通信チャネルはカスタムGSS−API機構を含んでいてもよい。仮想化の実施形態では、専用通信チャネルは表示のリモート処理プロトコル内の仮想チャネルの内側にあってもよい。たとえば、SSPI仮想チャネルを使用してもよい。いくつかの態様では、SSPIネゴシエーションが認証自体の完了に失敗した場合、表示のリモート処理プロトコルにサポートされている他の認証方法を代わりに使用することができる。
いくつかの実施形態では、本明細書で説明する態様をCITRIX XenAPPおよび/またはXenDesktopに適用してもよい。XenAPPおよびXenDesktopは、スマートカードリーダ・インターフェース(たとえば、PC/SC)をリモート処理するスマートカード仮想チャネルを使用してスマートカードのリモート処理をサポートしてもよい。本明細書で説明する態様は、Windows(登録商標)のログオンのためにPC/SCリモート処理を取り替えてもよい。セッションが確立されると、たとえばドキュメントに署名するためにスマートカードを使用するアプリケーションをサポートするためにスマートカードにアクセスしてもよい。これは、XA/XDによって使用されるスマートカードAPIフックを適切に構築して、それらをWindows(登録商標)のLogonプロセス(たとえば、winlogon.exe、logonui.exe等)に適用させないが、他のプロセスには通常適用させることによって達成してもよい。
クライアントデバイス705の観点から、リモート処理される証明書オペレーションはPKINITの特定の形態(たとえば、「sign−for−PKINIT−from−XenApp」)に関連付けられていてもよく、PKINITのために使用されるスマートカードのコンテキストは、必要であればアプリケーションがさらなるPINプロンプトをもたらすように終結時に即座に解放されてもよい。さらに/あるいは、スマートカードのコンテキストは、たとえば、プロキシデバイス710あるいは他のデバイスまたはサーバに対するクライアント証明書認証でSSLを実行するためにクライアントデバイス705によって、PKINIT要求の前に使用されていてもよい。このように、(このサービスを実行できる複数のデバイスから)リソースのアクセスオペレーションのために使用されるプロキシデバイス710を識別するブローカーサーバへのクライアントデバイス705による認証を可能にするためには単一のPINプロンプトで十分である。
選択されたプロキシデバイス710はその後、さらなるPINプロンプト無しに、かつクライアントデバイス705による明示的なPINキャッシングを要求することなく、PKINITを実行してもよい。アプリケーションまたはデスクトップ仮想化サーバへのドメインログインの場合は、遠隔のスマートカードの認証の従来の方法に対して顕著なパフォーマンスの改善が達成される可能性がある。さらに、これは仮想のスマートカードに対して完全なリーダおよびスマートカードインターフェースの実装を必要とせずに達成することができる。
上述の態様には様々な変更が可能である。
各エンティティ(クライアントデバイス705、プロキシデバイス710、認証サービス715、および/またはリソース720)は、他のエンティティのアクティビティを認識するようにしてもよい。たとえば、各エンティティは1つ以上の他のエンティティに対する識別子を提供されてもよい。識別子は、図9A〜図9Cに関して上述したメッセージ交換の何れかの間に提供されてもよい。たとえば、プロキシデバイス710はクライアントデバイス705を識別する情報を、プロキシデバイス710がリソース/認証サーバに送信した情報パケット内に注入してもよい。
プロキシデバイス710はまた、リソース/認証サーバを識別する情報を、プロキシデバイス710がクライアントデバイス705に送信した情報パケット内に注入してもよい。同様の方法で、クライアントデバイス705のタイプ(たとえば、PC、タブレット、スマートフォン等)を他のエンティティに提供してもよい。いくつかの態様では、参照によりその全文が本明細書に組み込まれるRFC6113に記載されているように、ケルベロスプロトコル・エクステンション(たとえば、MS−KILE)を活用して、エンティティの活動を他のエンティティが利用可能にしてもよい。リソース720に識別情報を提供することによって、何者がデータにアクセスしているかおよび/または何者がデータへのアクセスを制限しているかもリソース720が判定できるようにしてもよい。
ケルベロスの場合、いくつかの実施態様(たとえば、Windows(登録商標)サーバ2012の実装)ではネットワークサービス認証中に2つの認証対象のアイデンティティを提供することが可能である。プロキシデバイス710は、Microsoftケルベロスプロトコル・エクステンションのドキュメント[MS−KILE]およびRFC6113に記載されているように、それ自体のケルベロスアイデンティティ(たとえば、TGT)を使用してTGS交換を「防御」してもよい。この技術は、RFC6113に記載されているようにFASTと称される。
ユーザ/クライアントデバイス705およびプロキシデバイス710に対する複合アイデンティティを作成してもよい。Windows(登録商標)サーバ2012では、ACLがマシンのアイデンティティおよび他の要求を検査する機能を有する、Windows(登録商標) ACLフレームワークの上で稼働するリソースにこの複合アイデンティティを公開してもよい。Windows(登録商標)サーバ2012の実施態様を説明したが、当業者であれば、異なるオペレーティングシステムを使用したあらゆる他の実装を利用できることを認識するであろう。
プロキシデバイス710はクライアントデバイス705自体に関する情報の供給も行うために汎用型の要求機構を使用してもよく、この情報は(プロキシデバイス710に対するSSLによるデバイス証明書認証等の他の手段から認識できる場合は)そのデバイスのアイデンティティまたは他の関連する特性、たとえば、認証中またはクライアントデバイス705からプロキシデバイス710へのリソースアクセスのプロセス中に学習できるデバイスのタイプ、OS、バージョン、またはセキュリティ姿勢等を反映する。
上述の態様の別の変更例は、クライアント証明書を使用するオペレーションをユーザに通知するユーザ・エクスペリエンスの調整を含んでいてもよい。プロキシデバイス710がクライアントデバイス705に提供する情報はユーザに対して表示されてもよい。別の実施例では、この表示はクライアントデバイス705がログオンプロセスの途中であることを示してもよいし、これはクライアント証明書も利用してよい。
PINプロンプトも、クラス1リーダを使用してスマートカード等に対して表示してもよい。実行すべきオペレーションを忠実に表示するより詳細な表示をユーザに提供してもよい。たとえば、クライアント証明書を有するドキュメントへの署名については、ユーザのレビューのためにドキュメントを表示してもよい。実行すべき処理の適切な要約インジケータも表示してもよい。詳細な表示はクラス4等のスマートカードリーダのクラスの何れかに利用してもよい。いくつかの実施形態では、クライアントデバイス705はスマートカードリーダをシミュレート(または物理的なスマートカードとやりとりする場合はそのようなリーダーを使用してサポート)してもよい。
ユーザとの不必要なやりとり(interactions)を回避してもよい。たとえば、リモート処理される証明書オペレーションの範囲を適切に分類(たとえば、制限)してもよく、それにより同じグループ(たとえば、同じリソース認証プロトコルを使用するオペレーションのグループ)の一部である複数のオペレーションは、同じグループの一部であると認識されてもよく、論理グループを作成してもよい。
いくつかの態様では、1つの情報の表示またはプロンプトを同じグループ内でのオペレーションのためにユーザに表示してもよい。大略的には、この論理グループ分けは、従来の物理的なスマートカードの場合にスマートカードのコンテキストを取得および開放することに対応している。
構造的な特徴および/または方法論的な行為に特有の用語で主題を説明してきたが、添付の請求項で定義される主題は必ずしも上述した特有の特徴または行為に制限されるものではないことは理解されるべきである。むしろ、上述した特有の特徴および行為は以下の請求項の実施態様として説明されたものである。
関連出願の相互参照
本願は、2013年5月3日に出願された同じ発明の名称を有する米国特許出願第13/886,845号の優先権を主張する。

Claims (20)

  1. プロキシデバイスが、クライアントデバイスから、リソースに対する要求を受信し、
    前記プロキシデバイスからリソース管理デバイスへ、前記リソースに対する要求を送信し、
    前記プロキシデバイスと前記リソース管理デバイスとの間で認証セッションを開始し、
    前記プロキシデバイスによって前記クライアントデバイスに対する署名提供の要求を生成し、
    前記プロキシデバイスで前記クライアントデバイスから前記署名を受信し、
    前記プロキシデバイスから前記リソース管理デバイスへ前記署名を送信する、認証方法であって、
    前記クライアントデバイスに対する前記署名提供の要求は、(1)前記プロキシデバイスと前記リソース管理デバイスとの間で事前に交換された認証情報と、(2)前記プロキシデバイスによって前記リソース管理デバイスに送信されるべき認証情報とのうちの少なくとも1つのデータ構造を識別するコンテキスト情報を備える、方法。
  2. 前記認証セッションの開始後、前記プロキシデバイスで前記クライアントデバイスから前記クライアントデバイスが利用可能なセキュリティ証明書のリストを受信することと、
    前記認証セッションのためのセキュリティ証明書を選択することと、
    をさらに含み、
    前記クライアントデバイスへの前記署名提供の要求は、前記選択されたセキュリティ証明書の識別を備えている、請求項1に記載の方法。
  3. 前記署名を前記リソース管理デバイスに送信した後、前記プロキシデバイスで前記署名に対応するセッション鍵を受信することをさらに含む、請求項1に記載の方法。
  4. 前記プロキシデバイスによって、前記リソース管理デバイスから前記要求されたリソースを取得するために前記セッション鍵を使用することをさらに含む、請求項3に記載の方法。
  5. 前記プロキシデバイスから前記クライアントデバイスへ前記要求されたリソースを送信することをさらに含む、請求項4に記載の方法。
  6. 前記認証セッションはSSL認証を備え、前記データ構造を識別する前記コンテキスト情報は前記認証セッション中に前記プロキシデバイスと前記リソース管理デバイスとの間で事前に交換されたSSL認証メッセージを備えている、請求項1に記載の方法。
  7. 前記認証セッションはケルベロス認証を備え、前記データ構造を識別する前記コンテキスト情報はケルベロスデータ構造を識別する情報を備えている、請求項1に記載の方法。
  8. 前記ケルベロスデータ構造は抽象構文記法1を備えている、請求項1に記載の方法。
  9. 前記認証セッションはケルベロス認証を備え、前記データ構造を識別する前記コンテキスト情報は前記ケルベロス認証に使用するケルベロス・ドメイン、前記クライアントデバイスと関連付けられたケルベロス主体名、前記認証セッションに使用する鍵配信センターの識別子、要求されたチケットの有効期間、および前記認証セッション中に設定されたケルベロスフラグのうちの少なくとも1つを備えている、請求項1に記載の方法。
  10. 前記コンテキスト情報は前記認証セッションに関連付けられたタイムスタンプを識別する、請求項1に記載の方法。
  11. 前記コンテキスト情報は前記認証セッションのプロトコルタイプを識別する、請求項1に記載の方法。
  12. 前記署名は前記クライアントデバイスでスマートカードから提供される、請求項1に記載の方法。
  13. プロセッサと、コンピュータ実行可能な命令を格納するメモリとを備えるプロキシデバイスであって、
    前記命令が前記プロセッサによって実行されると、前記プロキシデバイスは、
    クライアントデバイスからリソースに対する要求を受信し、
    前記リソースに対する要求をリソース管理デバイスに送信し、
    前記プロキシデバイスと前記リソース管理デバイスとの間の認証セッションを開始し、
    (1)前記プロキシデバイスと前記リソース管理デバイスとの間で事前に交換された認証情報と(2)前記プロキシデバイスによって前記リソース管理デバイスに送信されるべき認証情報とのうちの少なくとも1つのデータ構造を識別するコンテキスト情報を含む、前記クライアントデバイスに対する署名提供の要求を生成し、
    前記クライアントデバイスから前記署名を受信し、
    前記リソース管理デバイスへ前記署名を送信する、プロキシデバイス。
  14. 前記メモリは、前記プロセッサによって実行されると、前記署名を前記リソース管理デバイスに送信した後に、前記署名に対応するセッション鍵を前記プロキシデバイスに受信させる、コンピュータ実行可能な命令を格納している、請求項13に記載のプロキシデバイス。
  15. 前記メモリは、前記プロセッサによって実行されると、前記リソース管理デバイスから前記要求されたリソースを取得するために前記セッション鍵を前記プロキシデバイスに使用させる、コンピュータ実行可能な命令を格納している、請求項14に記載のプロキシデバイス。
  16. 前記認証セッションはSSL認証を含み、前記データ構造を識別する前記コンテキスト情報は前記認証セッション中に前記プロキシデバイスと前記リソース管理デバイスとの間で事前に交換されたSSL認証メッセージを含む、請求項13に記載のプロキシデバイス。
  17. 前記認証セッションはケルベロス認証を含み、前記データ構造を識別する前記コンテキスト情報はケルベロスデータ構造を識別する情報を含む、請求項13に記載のプロキシデバイス。
  18. 認証方法であって、
    クライアントデバイスからプロキシデバイスへ、リソースに対する要求を送信し、
    前記クライアントデバイスで前記プロキシデバイスから、(1)前記プロキシデバイスと前記要求されたリソースに関連付けられたリソース管理デバイスとの間で事前に交換された認証情報と(2)前記プロキシデバイスによって前記リソース管理デバイスに送信されるべき認証情報とのうちの少なくとも1つのデータ構造を識別するコンテキスト情報を備える、前記クライアントデバイスに対する署名提供の要求を受信し、
    前記クライアントデバイスによって、前記データ構造を検証し、
    前記データ構造の検証に応答して、前記クライアントデバイスから前記プロキシデバイスへ、セキュリティ証明書に対応する署名を送信する、方法。
  19. 前記セキュリティ証明書は前記クライアントデバイスに接続されたスマートカードに格納される、請求項18に記載の方法。
  20. 要求に応答して、前記クライアントデバイスから前記プロキシデバイスへ、前記クライアントデバイスが利用可能な1つ以上のセキュリティ証明書を含むリストを送信することをさらに含み、
    前記クライアントデバイスに対する前記署名提供の前記受信された要求は前記1つ以上のセキュリティ証明書を含むリストから選択されたセキュリティ証明書の識別を備える、請求項18に記載の方法。
JP2016512034A 2013-05-03 2014-05-01 プロキシを使用したリソースへの安全なアクセス Active JP6121049B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/886,845 US9154488B2 (en) 2013-05-03 2013-05-03 Secured access to resources using a proxy
US13/886,845 2013-05-03
PCT/US2014/036312 WO2014179535A1 (en) 2013-05-03 2014-05-01 Secured access to resources using a proxy

Publications (2)

Publication Number Publication Date
JP2016524742A true JP2016524742A (ja) 2016-08-18
JP6121049B2 JP6121049B2 (ja) 2017-04-26

Family

ID=50942821

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016512034A Active JP6121049B2 (ja) 2013-05-03 2014-05-01 プロキシを使用したリソースへの安全なアクセス

Country Status (6)

Country Link
US (2) US9154488B2 (ja)
EP (1) EP2992658B1 (ja)
JP (1) JP6121049B2 (ja)
KR (1) KR101722631B1 (ja)
CN (1) CN105359486B (ja)
WO (1) WO2014179535A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020526806A (ja) * 2019-04-08 2020-08-31 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ブロックチェーンネットワークに基づいたデジタルチケットの転送
WO2022190315A1 (ja) * 2021-03-11 2022-09-15 株式会社日立製作所 計算機システム及びデータ処理方法

Families Citing this family (165)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9396325B2 (en) 2011-03-21 2016-07-19 Mocana Corporation Provisioning an app on a device and implementing a keystore
US9473485B2 (en) * 2011-03-21 2016-10-18 Blue Cedar Networks, Inc. Secure single sign-on for a group of wrapped applications on a computing device and runtime credential sharing
US9246839B2 (en) * 2013-01-02 2016-01-26 International Business Machines Corporation Extending organizational boundaries throughout a cloud architecture
KR101541591B1 (ko) * 2013-05-16 2015-08-03 삼성에스디에스 주식회사 Vdi 환경에서의 싱글 사인온 시스템 및 방법
US10410003B2 (en) * 2013-06-07 2019-09-10 Apple Inc. Multiple containers assigned to an application
US9305161B1 (en) * 2013-06-24 2016-04-05 Emc Corporation Password hardening system using password shares distributed across multiple servers
US9553867B2 (en) 2013-08-01 2017-01-24 Bitglass, Inc. Secure application access system
US9552492B2 (en) 2013-08-01 2017-01-24 Bitglass, Inc. Secure application access system
US10122714B2 (en) 2013-08-01 2018-11-06 Bitglass, Inc. Secure user credential access system
WO2015020355A1 (ko) * 2013-08-09 2015-02-12 주식회사 윌러스표준기술연구소 클라우드 기반의 데이터 제공 방법 및 제공 시스템
KR102142143B1 (ko) * 2013-08-20 2020-08-06 삼성전자주식회사 전자장치 공유시스템, 장치 및 방법
US10129242B2 (en) 2013-09-16 2018-11-13 Airwatch Llc Multi-persona devices and management
US9342331B2 (en) * 2013-10-21 2016-05-17 International Business Machines Corporation Secure virtualized mobile cellular device
US9262151B2 (en) * 2013-10-23 2016-02-16 Citirx Systems, Inc. Methods and systems for automatic configuration of algorithms in a system based on self aware algorithms
US9106620B2 (en) * 2013-11-14 2015-08-11 Comcast Cable Communications, Llc Trusted communication session and content delivery
US9918226B2 (en) * 2013-12-30 2018-03-13 Apple Inc. Spoofing protection for secure-element identifiers
WO2015112614A1 (en) 2014-01-21 2015-07-30 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
US9565198B2 (en) * 2014-01-31 2017-02-07 Microsoft Technology Licensing, Llc Tenant based signature validation
US10524122B2 (en) 2014-01-31 2019-12-31 Microsoft Technology Licensing, Llc Tenant based signature validation
US20160380992A1 (en) * 2014-02-11 2016-12-29 Google Inc. Authentication specific data
JP6266170B2 (ja) * 2014-05-14 2018-01-24 インファースペクト, エルエルシー 3層セキュリティおよび算出アーキテクチャ
US20160014077A1 (en) * 2014-07-10 2016-01-14 Aorato Ltd. System, Method and Process for Mitigating Advanced and Targeted Attacks with Authentication Error Injection
DE102014109682B4 (de) * 2014-07-10 2016-04-28 Bundesdruckerei Gmbh Mobiles Terminal zum Erfassen biometrischer Daten
WO2016018383A1 (en) 2014-07-31 2016-02-04 Hewlett-Packard Development Company Live migration of data
WO2016036347A1 (en) 2014-09-02 2016-03-10 Hewlett Packard Enterprise Development Lp Serializing access to fault tolerant memory
JP6748638B2 (ja) 2014-09-24 2020-09-02 オラクル・インターナショナル・コーポレイション マルチテナントアプリケーションサーバ環境においてパッチングをサポートするためのシステムおよび方法
US10318280B2 (en) 2014-09-24 2019-06-11 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US10348565B2 (en) * 2014-09-25 2019-07-09 Oracle International Corporation System and method for rule-based elasticity in a multitenant application server environment
US10841316B2 (en) 2014-09-30 2020-11-17 Citrix Systems, Inc. Dynamic access control to network resources using federated full domain logon
EP3770781B1 (en) 2014-09-30 2022-06-08 Citrix Systems, Inc. Fast smart card logon and federated full domain logon
WO2016064397A1 (en) 2014-10-23 2016-04-28 Hewlett Packard Enterprise Development Lp Admissions control of a device
WO2016064417A1 (en) 2014-10-24 2016-04-28 Hewlett Packard Enterprise Development Lp End-to-end negative acknowledgment
US10021084B2 (en) * 2014-10-28 2018-07-10 Open Text Sa Ulc Systems and methods for credentialing of non-local requestors in decoupled systems utilizing a domain local authenticator
WO2016068941A1 (en) 2014-10-30 2016-05-06 Hewlett Packard Enterprise Development Lp Secure transactions in a memory fabric
WO2016068942A1 (en) 2014-10-30 2016-05-06 Hewlett Packard Enterprise Development Lp Encryption for transactions in a memory fabric
CN104394123A (zh) * 2014-11-06 2015-03-04 成都卫士通信息产业股份有限公司 一种基于http协议的数据加密传输系统及方法
US10277578B2 (en) 2015-01-05 2019-04-30 Citrix Systems, Inc. Securing network activity managed by operating systems
US10250512B2 (en) 2015-01-21 2019-04-02 Oracle International Corporation System and method for traffic director support in a multitenant application server environment
WO2016123109A1 (en) * 2015-01-26 2016-08-04 Mobile Iron, Inc. Identity proxy to provide access control and single sign on
US10664369B2 (en) 2015-01-30 2020-05-26 Hewlett Packard Enterprise Development Lp Determine failed components in fault-tolerant memory
US10409681B2 (en) 2015-01-30 2019-09-10 Hewlett Packard Enterprise Development Lp Non-idempotent primitives in fault-tolerant memory
US10402287B2 (en) 2015-01-30 2019-09-03 Hewlett Packard Enterprise Development Lp Preventing data corruption and single point of failure in a fault-tolerant memory
US10402261B2 (en) 2015-03-31 2019-09-03 Hewlett Packard Enterprise Development Lp Preventing data corruption and single point of failure in fault-tolerant memory fabrics
CN104821949B (zh) * 2015-05-08 2018-01-26 杭州平民软件有限公司 基于签名的sql防篡改保护方法
US11115417B2 (en) 2015-05-19 2021-09-07 Microsoft Technology Licensing, Llc. Secured access control to cloud-based applications
US9692757B1 (en) * 2015-05-20 2017-06-27 Amazon Technologies, Inc. Enhanced authentication for secure communications
US10171447B2 (en) 2015-06-15 2019-01-01 Airwatch Llc Single sign-on for unmanaged mobile devices
US11057364B2 (en) * 2015-06-15 2021-07-06 Airwatch Llc Single sign-on for managed mobile devices
US10944738B2 (en) * 2015-06-15 2021-03-09 Airwatch, Llc. Single sign-on for managed mobile devices using kerberos
US10812464B2 (en) * 2015-06-15 2020-10-20 Airwatch Llc Single sign-on for managed mobile devices
US9843572B2 (en) * 2015-06-29 2017-12-12 Airwatch Llc Distributing an authentication key to an application installation
WO2017001342A1 (de) * 2015-06-30 2017-01-05 Fujitsu Technology Solutions Intellectual Property Gmbh Verfahren zum freischalten externer computersysteme in einer computernetz-infrastruktur, verteiltes rechnernetz mit einer solchen computernetz-infrastruktur sowie computerprogramm-produkt
US9736259B2 (en) 2015-06-30 2017-08-15 Iheartmedia Management Services, Inc. Platform-as-a-service with proxy-controlled request routing
US9787678B2 (en) * 2015-07-30 2017-10-10 Verizon Patent And Licensing Inc. Multifactor authentication for mail server access
US9934135B2 (en) * 2015-08-13 2018-04-03 Ca, Inc. Generic test automation for application programming interface applications
US9813413B2 (en) * 2015-08-15 2017-11-07 Microsoft Technology Licensing, Llc Domain joined virtual names on domainless servers
US10187376B2 (en) * 2015-08-28 2019-01-22 Texas Instruments Incorporated Authentication of networked devices having low computational capacity
US9749294B1 (en) * 2015-09-08 2017-08-29 Sprint Communications Company L.P. System and method of establishing trusted operability between networks in a network functions virtualization environment
US10482231B1 (en) * 2015-09-22 2019-11-19 Amazon Technologies, Inc. Context-based access controls
US10162978B2 (en) * 2015-09-22 2018-12-25 Mastercard International Incorporated Secure computer cluster with encryption
US10542115B1 (en) 2015-10-01 2020-01-21 Sprint Communications Company L.P. Securing communications in a network function virtualization (NFV) core network
US9762563B2 (en) 2015-10-14 2017-09-12 FullArmor Corporation Resource access system and method
US9509684B1 (en) * 2015-10-14 2016-11-29 FullArmor Corporation System and method for resource access with identity impersonation
US9450944B1 (en) * 2015-10-14 2016-09-20 FullArmor Corporation System and method for pass-through authentication
US9781016B1 (en) 2015-11-02 2017-10-03 Sprint Communications Company L.P. Dynamic addition of network function services
US10454917B2 (en) * 2015-11-05 2019-10-22 Red Hat, Inc. Enabling single sign-on authentication for accessing protected network services
NL2015772B1 (en) * 2015-11-11 2016-12-01 Consumer Health Entrepreneurs B V Controlled, secure exchange of privacy sensitive data units.
US10063554B2 (en) * 2015-11-30 2018-08-28 Microsoft Technology Licensing, Llc. Techniques for detecting unauthorized access to cloud applications based on velocity events
US10083365B2 (en) 2016-01-04 2018-09-25 Validic Optical reading of external segmented display
WO2017125265A1 (en) * 2016-01-19 2017-07-27 British Telecommunications Public Limited Company Authentication of data transmission devices
US10951652B1 (en) * 2016-01-21 2021-03-16 Amazon Technologies, Inc. Communication session resumption
US10944727B2 (en) * 2016-03-14 2021-03-09 Airwatch Llc System and method to secure the streaming of media to a valid client
US10171506B2 (en) * 2016-03-21 2019-01-01 Fortinet, Inc. Network security management via social media network
US10762559B2 (en) * 2016-04-15 2020-09-01 Adp, Llc Management of payroll lending within an enterprise system
EP3236405B1 (en) * 2016-04-21 2022-11-02 IDEMIA France Selecting an application on a card
US9887990B2 (en) 2016-04-25 2018-02-06 International Business Machines Corporation Protection of application passwords using a secure proxy
CN105897743A (zh) * 2016-05-26 2016-08-24 努比亚技术有限公司 一种跨域单点登录的方法及服务器
CN106210049B (zh) * 2016-07-12 2020-12-22 武汉Tcl集团工业研究院有限公司 一种基于消息队列的集群通信方法及系统
WO2018010146A1 (zh) * 2016-07-14 2018-01-18 华为技术有限公司 一种虚拟网络计算认证中应答的方法、装置、系统和代理服务器
US10826875B1 (en) * 2016-07-22 2020-11-03 Servicenow, Inc. System and method for securely communicating requests
US10498537B2 (en) * 2016-08-01 2019-12-03 Institute For Development And Research In Banking Technology (Drbt) System and method for providing secure collaborative software as a service (SaaS) attestation service for authentication in cloud computing
CN107770203B (zh) * 2016-08-15 2020-05-22 北京金山云网络技术有限公司 一种服务请求转发方法、装置及系统
US11177958B2 (en) 2016-09-13 2021-11-16 Silverfort Ltd. Protection of authentication tokens
US10193634B2 (en) 2016-09-19 2019-01-29 Hewlett Packard Enterprise Development Lp Optical driver circuits
US10250498B1 (en) 2016-10-03 2019-04-02 Sprint Communications Company L.P. Session aggregator brokering of data stream communication
US10462228B2 (en) * 2016-10-20 2019-10-29 Wyse Technology L.L.C. Providing access to a smartcard within a remote session
CN107993058A (zh) * 2016-10-27 2018-05-04 阿里巴巴集团控股有限公司 一种信息验证方法和系统及服务器
US10395027B2 (en) * 2016-12-09 2019-08-27 Vmware, Inc. Co-existence of management applications and multiple user device management
AU2017381403A1 (en) * 2016-12-19 2019-08-08 Xard Group Pty Ltd Digital transaction apparatus, system, and method with a virtual companion card
CN106991302A (zh) * 2016-12-31 2017-07-28 融捷科技(武汉)有限公司 基于供应链金融服务平台的公司权限托管系统
KR20180081998A (ko) * 2017-01-09 2018-07-18 한국전자통신연구원 모바일 클라우드를 위한 안전 실행 환경 제공 장치 및 방법
US10547597B2 (en) * 2017-01-24 2020-01-28 International Business Machines Corporation Secure network connections
US10587459B2 (en) * 2017-02-13 2020-03-10 Citrix Systems, Inc. Computer system providing cloud-based health monitoring features and related methods
US10560476B2 (en) * 2017-02-22 2020-02-11 International Business Machines Corporation Secure data storage system
US10484352B2 (en) 2017-03-31 2019-11-19 Microsoft Technology Licensing, Llc Data operations using a proxy encryption key
CN106911721B (zh) * 2017-04-24 2020-05-05 东莞中国科学院云计算产业技术创新与育成中心 基于云计算的创业登记数据处理平台
CN107257327B (zh) * 2017-05-25 2020-12-29 中央民族大学 一种高并发ssl会话管理方法
US10389342B2 (en) 2017-06-28 2019-08-20 Hewlett Packard Enterprise Development Lp Comparator
US10616193B2 (en) 2017-08-01 2020-04-07 Blackberry Limited Processing resource requests on a mobile device
US10348488B1 (en) 2017-08-25 2019-07-09 Sprint Communications Company L.P. Tiered distributed ledger technology (DLT) in a network function virtualization (NFV) core network
US10523658B2 (en) 2017-09-05 2019-12-31 Citrix Systems, Inc. Securing a data connection for communicating between two end-points
US10771579B2 (en) * 2017-09-25 2020-09-08 Verizon Patent And Licensing, Inc. Redirection of data flows from an end device
CN109600337B (zh) * 2017-09-30 2020-12-15 腾讯科技(深圳)有限公司 资源处理方法、装置、系统及计算机可读介质
US11153303B2 (en) * 2017-11-15 2021-10-19 Citrix Systems, Inc. Secure authentication of a device through attestation by another device
US10728245B2 (en) * 2017-12-07 2020-07-28 Ca, Inc. HTTP proxy authentication using custom headers
US10924508B2 (en) * 2017-12-21 2021-02-16 Sonicwall Inc. Providing access to data in a secure communication
US10958640B2 (en) 2018-02-08 2021-03-23 Citrix Systems, Inc. Fast smart card login
CN110351219A (zh) * 2018-04-02 2019-10-18 蓝盾信息安全技术有限公司 一种基于网闸系统的数据库安全访问技术
KR102086739B1 (ko) * 2018-06-27 2020-03-09 주식회사 수산아이앤티 보안 소켓 계층 복호화 장치에서 다양한 전자 서명 알고리즘을 지원하기 위한 전자 재서명 방법
CN112930668A (zh) 2018-09-11 2021-06-08 阿韦瓦软件有限责任公司 用于dmz代理客户端的安全配置推送的服务器和系统
US10771435B2 (en) 2018-11-20 2020-09-08 Netskope, Inc. Zero trust and zero knowledge application access system
CN109542587A (zh) * 2018-11-26 2019-03-29 郑州云海信息技术有限公司 一种虚拟机访问方法、装置和计算机设备
CN109769010B (zh) * 2018-12-04 2021-11-30 平安科技(深圳)有限公司 基于SDK访问CloudStack服务器的方法、装置、设备及存储介质
US11483295B2 (en) * 2018-12-05 2022-10-25 Citrix Systems, Inc. Method for securely negotiating end-to-end cryptographic context using inline messages through multiple proxies in cloud and customer environment
KR101958933B1 (ko) * 2018-12-18 2019-03-18 주식회사 웨어밸리 소켓 인젝션을 통한 데이터베이스 내의 정보 수집 방법 및 장치
US11082451B2 (en) * 2018-12-31 2021-08-03 Citrix Systems, Inc. Maintaining continuous network service
US11165575B2 (en) * 2019-01-02 2021-11-02 Citrix Systems, Inc. Tracking tainted connection agents
US11005821B2 (en) 2019-01-08 2021-05-11 Citrix Systems, Inc. Server for detecting a proxy device in a communications path and related methods
US11445002B2 (en) 2019-01-21 2022-09-13 Citrix Systems, Inc. Computing system with data transfer based upon device data flow characteristics and related methods
US11489817B2 (en) * 2019-01-21 2022-11-01 Citrix Systems, Inc. Computing system with gateway data transfer based upon device data flow characteristics and related methods
US11245685B2 (en) * 2019-01-23 2022-02-08 Mcafee, Llc Methods and apparatus to verify encrypted handshakes
CN109889422A (zh) * 2019-03-07 2019-06-14 江苏省人民医院 结合虚拟化桌面与ssl vpn实现远程放疗计划的方法
US11422912B2 (en) 2019-04-19 2022-08-23 Vmware, Inc. Accurate time estimates for operations performed on an SDDC
US11876798B2 (en) * 2019-05-20 2024-01-16 Citrix Systems, Inc. Virtual delivery appliance and system with remote authentication and related methods
US11424940B2 (en) * 2019-06-01 2022-08-23 Vmware, Inc. Standalone tool for certificate management
WO2021054780A1 (ko) * 2019-09-20 2021-03-25 삼성전자 주식회사 기기 간 번들 또는 프로파일 이동 시 기기 간 상호 인증 방법 및 장치
US11405393B2 (en) * 2019-09-25 2022-08-02 Microsoft Technology Licensing, Llc Calls to web services via service proxy
US11729160B2 (en) * 2019-10-16 2023-08-15 Nutanix, Inc. System and method for selecting authentication methods for secure transport layer communication
US11240045B2 (en) * 2019-10-30 2022-02-01 Red Hat, Inc. Detection and prevention of unauthorized execution of severless functions
CN112787986B (zh) * 2019-11-11 2023-04-07 千寻位置网络有限公司 多路径双向认证方法及装置
JP2021089469A (ja) * 2019-12-02 2021-06-10 富士フイルムビジネスイノベーション株式会社 情報処理装置およびプログラム
US20210273920A1 (en) * 2020-02-28 2021-09-02 Vmware, Inc. Secure certificate or key distribution for synchronous mobile device management (mdm) clients
US11516167B2 (en) 2020-03-05 2022-11-29 Snap Inc. Storing data based on device location
CN111444495B (zh) * 2020-05-20 2020-11-24 江苏易安联网络技术有限公司 一种基于容器实现单点登录的系统及方法
KR102175408B1 (ko) * 2020-06-03 2020-11-06 (주)케이스마텍 디지털키 서비스 방법 및 그 시스템
US11763015B2 (en) * 2020-07-14 2023-09-19 Sympatic, Inc. Securely processing shareable data utilizing a vault proxy
CN112035820B (zh) * 2020-07-22 2024-02-02 北京中安星云软件技术有限公司 一种用于Kerberos加密环境下的数据解析方法
US11824841B2 (en) * 2020-08-18 2023-11-21 T-Mobile Usa, Inc. Secure transport session resumption for constrained devices
CN111817860B (zh) * 2020-09-01 2021-02-23 苏州浪潮智能科技有限公司 一种通信认证方法、装置、设备及存储介质
US11436127B1 (en) 2020-09-10 2022-09-06 Cisco Technology, Inc. Automated validation and authentication of software modules
US11899805B2 (en) * 2020-09-11 2024-02-13 IDEMIA National Security Solutions LLC Limiting video surveillance collection to authorized uses
EP3982615A1 (en) * 2020-10-12 2022-04-13 Nokia Technologies Oy Authorization in communication networks
US20220141658A1 (en) * 2020-11-05 2022-05-05 Visa International Service Association One-time wireless authentication of an internet-of-things device
CN112511569B (zh) * 2021-02-07 2021-05-11 杭州筋斗腾云科技有限公司 网络资源访问请求的处理方法、系统及计算机设备
EP4044550A1 (en) * 2021-02-12 2022-08-17 Xertified AB A proxy and a communication system comprising said proxy
EP4047871A1 (en) * 2021-02-23 2022-08-24 Garantir LLC Advanced security control implementation of proxied cryptographic keys
US11223489B1 (en) * 2021-02-23 2022-01-11 Garantir LLC Advanced security control implementation of proxied cryptographic keys
CN112866297B (zh) * 2021-04-02 2023-02-24 中国工商银行股份有限公司 访问数据处理方法、装置及系统
US11218317B1 (en) 2021-05-28 2022-01-04 Garantir LLC Secure enclave implementation of proxied cryptographic keys
US11418329B1 (en) 2021-05-28 2022-08-16 Garantir LLC Shared secret implementation of proxied cryptographic keys
US20220417243A1 (en) * 2021-06-25 2022-12-29 Vmware, Inc. Passwordless access to virtual desktops
CN113709109B (zh) * 2021-07-27 2024-02-27 云南昆钢电子信息科技有限公司 一种基于云端与边缘端数据交换的安全系统和方法
TWI795892B (zh) * 2021-08-26 2023-03-11 新加坡商鴻運科股份有限公司 資源調度方法、伺服器及存儲介質
KR102461050B1 (ko) * 2021-08-26 2022-10-28 이수희 클라우드서버에서 수행되는 사용자단말기에 대한 통신 보안 방법
US11924299B2 (en) 2021-09-15 2024-03-05 Cisco Technology, Inc. QUIC and anycast proxy resiliency
US11936658B2 (en) 2021-11-15 2024-03-19 Bank Of America Corporation Intelligent assignment of a network resource
CN114285891B (zh) * 2021-12-15 2024-01-23 北京天融信网络安全技术有限公司 一种基于sslvpn的会话重建方法及系统
US20230254321A1 (en) * 2022-02-09 2023-08-10 Microsoft Technology Licensing, Llc Adaptive authorization with local route identifier
US11553058B1 (en) * 2022-02-09 2023-01-10 coretech It, UAB Sticky sessions in a proxy infrastructure
US11956270B2 (en) * 2022-02-11 2024-04-09 Oracle International Corporation Parallel network-based vulnerability scanning
KR102474989B1 (ko) * 2022-03-03 2022-12-07 농업협동조합중앙회 퍼블릭 클라우드 상의 가상 머신에 대한 보안 사용을 지원하는 서버 및 그 제어 방법
US20230336530A1 (en) * 2022-04-19 2023-10-19 Microsoft Technology Licensing, Llc Framework For Configurable Per-Service Security Settings In A Forward Proxy
KR102500080B1 (ko) * 2022-05-25 2023-02-16 오선화 공동 주택 단지에서의 앱 보안 처리 방법 및 시스템
CN115225378A (zh) * 2022-07-19 2022-10-21 中国银行股份有限公司 一种跨区域服务处理方法、装置、设备及介质
CN116248416B (zh) * 2023-05-11 2023-07-28 深圳竹云科技股份有限公司 一种身份认证的方法、装置、计算机设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008252567A (ja) * 2007-03-30 2008-10-16 Nec Corp 特定中継装置認証機能付き通信システム
JP2010512069A (ja) * 2006-12-01 2010-04-15 マイクロソフト コーポレーション 暗号証拠の再検証に基づく認証委任
JP2011151785A (ja) * 2009-12-25 2011-08-04 Canon It Solutions Inc 中継処理装置、中継処理方法及びプログラム
US20110202988A1 (en) * 2010-02-17 2011-08-18 Nokia Corporation Method and apparatus for providing an authentication context-based session
JP2013077900A (ja) * 2011-09-29 2013-04-25 Oki Electric Ind Co Ltd セキュリティ処理代行システム、通信装置、代行装置、通信プログラム及びセキュリティ処理代行プログラム

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993521B2 (en) * 2000-06-09 2006-01-31 Northrop Grumman Corporation System and method for arranging digital certificates on a hardware token
US6996841B2 (en) * 2001-04-19 2006-02-07 Microsoft Corporation Negotiating secure connections through a proxy server
JP4304362B2 (ja) * 2002-06-25 2009-07-29 日本電気株式会社 Pki対応の証明書確認処理方法及びその装置、並びにpki対応の証明書確認処理プログラム
US20050021526A1 (en) * 2002-07-11 2005-01-27 International Business Machines Corporation Method for ensuring the availability of a service proposed by a service provider
US7644275B2 (en) * 2003-04-15 2010-01-05 Microsoft Corporation Pass-thru for client authentication
GB0411861D0 (en) * 2004-05-27 2004-06-30 Koninkl Philips Electronics Nv Authentication of applications
US7430663B2 (en) * 2004-08-09 2008-09-30 Research In Motion Limited System and method for enabling bulk retrieval of certificates
US20090083537A1 (en) * 2005-08-10 2009-03-26 Riverbed Technology, Inc. Server configuration selection for ssl interception
US8220042B2 (en) * 2005-09-12 2012-07-10 Microsoft Corporation Creating secure interactive connections with remote resources
US8024785B2 (en) * 2006-01-16 2011-09-20 International Business Machines Corporation Method and data processing system for intercepting communication between a client and a service
US20070245414A1 (en) * 2006-04-14 2007-10-18 Microsoft Corporation Proxy Authentication and Indirect Certificate Chaining
US20070283143A1 (en) * 2006-06-06 2007-12-06 Kabushiki Kaisha Toshiba System and method for certificate-based client registration via a document processing device
CN101090351B (zh) * 2006-06-14 2010-04-21 华为技术有限公司 一种WiMAX网络中功能实体的迁移方法
US8214635B2 (en) 2006-11-28 2012-07-03 Cisco Technology, Inc. Transparent proxy of encrypted sessions
US8621561B2 (en) * 2008-01-04 2013-12-31 Microsoft Corporation Selective authorization based on authentication input attributes
US20110202989A1 (en) * 2010-02-18 2011-08-18 Nokia Corporation Method and apparatus for providing authentication session sharing
US8353019B2 (en) * 2010-03-26 2013-01-08 Canon Kabushiki Kaisha Security token destined for multiple or group of service providers
WO2011128183A2 (en) * 2010-04-13 2011-10-20 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for interworking with single sign-on authentication architecture
US8997196B2 (en) * 2010-06-14 2015-03-31 Microsoft Corporation Flexible end-point compliance and strong authentication for distributed hybrid enterprises
US9560036B2 (en) * 2010-07-08 2017-01-31 International Business Machines Corporation Cross-protocol federated single sign-on (F-SSO) for cloud enablement
CN102546570B (zh) * 2010-12-31 2014-12-24 国际商业机器公司 用于单点登录的处理方法和系统
US9660810B2 (en) * 2011-04-15 2017-05-23 Nokia Technologies Oy Method and apparatus for providing secret delegation
US9111086B2 (en) * 2011-04-18 2015-08-18 Sap Se Secure management of user rights during accessing of external systems
US8630989B2 (en) * 2011-05-27 2014-01-14 International Business Machines Corporation Systems and methods for information extraction using contextual pattern discovery
US9361443B2 (en) * 2011-08-15 2016-06-07 Bank Of America Corporation Method and apparatus for token-based combining of authentication methods
US8950002B2 (en) * 2011-08-15 2015-02-03 Bank Of America Corporation Method and apparatus for token-based access of related resources
US8572683B2 (en) * 2011-08-15 2013-10-29 Bank Of America Corporation Method and apparatus for token-based re-authentication
US8789162B2 (en) * 2011-08-15 2014-07-22 Bank Of America Corporation Method and apparatus for making token-based access decisions
US8806602B2 (en) * 2011-08-15 2014-08-12 Bank Of America Corporation Apparatus and method for performing end-to-end encryption
US8539558B2 (en) * 2011-08-15 2013-09-17 Bank Of America Corporation Method and apparatus for token-based token termination
US8695060B2 (en) * 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
JP5197843B1 (ja) * 2011-12-27 2013-05-15 株式会社東芝 認証連携システムおよびidプロバイダ装置
US8966268B2 (en) * 2011-12-30 2015-02-24 Vasco Data Security, Inc. Strong authentication token with visual output of PKI signatures
US8707405B2 (en) * 2012-01-11 2014-04-22 International Business Machines Corporation Refreshing group membership information for a user identifier associated with a security context
US8955041B2 (en) * 2012-02-17 2015-02-10 Kabushiki Kaisha Toshiba Authentication collaboration system, ID provider device, and program
US20130275282A1 (en) * 2012-04-17 2013-10-17 Microsoft Corporation Anonymous billing
US8935769B2 (en) * 2012-09-28 2015-01-13 Liveensure, Inc. Method for mobile security via multi-factor context authentication
US8893255B1 (en) * 2013-10-23 2014-11-18 Iboss, Inc. Device authentication using device-specific proxy addresses

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010512069A (ja) * 2006-12-01 2010-04-15 マイクロソフト コーポレーション 暗号証拠の再検証に基づく認証委任
JP2008252567A (ja) * 2007-03-30 2008-10-16 Nec Corp 特定中継装置認証機能付き通信システム
JP2011151785A (ja) * 2009-12-25 2011-08-04 Canon It Solutions Inc 中継処理装置、中継処理方法及びプログラム
US20110202988A1 (en) * 2010-02-17 2011-08-18 Nokia Corporation Method and apparatus for providing an authentication context-based session
JP2013077900A (ja) * 2011-09-29 2013-04-25 Oki Electric Ind Co Ltd セキュリティ処理代行システム、通信装置、代行装置、通信プログラム及びセキュリティ処理代行プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020526806A (ja) * 2019-04-08 2020-08-31 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ブロックチェーンネットワークに基づいたデジタルチケットの転送
US11341466B2 (en) 2019-04-08 2022-05-24 Advanced New Technologies Co., Ltd. Transferring digital tickets based on blockchain networks
WO2022190315A1 (ja) * 2021-03-11 2022-09-15 株式会社日立製作所 計算機システム及びデータ処理方法

Also Published As

Publication number Publication date
CN105359486B (zh) 2019-04-16
KR101722631B1 (ko) 2017-04-03
US9154488B2 (en) 2015-10-06
WO2014179535A9 (en) 2014-12-24
KR20160005113A (ko) 2016-01-13
JP6121049B2 (ja) 2017-04-26
US20150365412A1 (en) 2015-12-17
CN105359486A (zh) 2016-02-24
US20140331297A1 (en) 2014-11-06
US9509692B2 (en) 2016-11-29
EP2992658A1 (en) 2016-03-09
WO2014179535A1 (en) 2014-11-06
EP2992658B1 (en) 2020-03-11

Similar Documents

Publication Publication Date Title
JP6121049B2 (ja) プロキシを使用したリソースへの安全なアクセス
JP6731023B2 (ja) クライアントアプリケーションのためのセキュアなシングルサインオン及び条件付きアクセス
US11258780B2 (en) Securing a data connection for communicating between two end-points
US11153303B2 (en) Secure authentication of a device through attestation by another device
JP6687641B2 (ja) サーバまたは他の装置からのエントロピーに基づくクライアント装置の認証
JP6526181B2 (ja) スマートカードによるログオンおよび連携されたフルドメインログオン
JP6222592B2 (ja) モバイルアプリケーション管理のためのモバイルアプリケーションのアイデンティティの検証
JP6480435B2 (ja) モバイルデバイス管理型セキュリティのためのセキュリティ保護されたクライアントドライブマッピングおよびファイルストレージシステム
EP3750095A1 (en) Fast smart card logon
JP2018524843A (ja) ハイブリッドクラウドサービスのためのパスワードの暗号化

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170221

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170328

R150 Certificate of patent or registration of utility model

Ref document number: 6121049

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