JP6526181B2 - スマートカードによるログオンおよび連携されたフルドメインログオン - Google Patents

スマートカードによるログオンおよび連携されたフルドメインログオン Download PDF

Info

Publication number
JP6526181B2
JP6526181B2 JP2017515810A JP2017515810A JP6526181B2 JP 6526181 B2 JP6526181 B2 JP 6526181B2 JP 2017515810 A JP2017515810 A JP 2017515810A JP 2017515810 A JP2017515810 A JP 2017515810A JP 6526181 B2 JP6526181 B2 JP 6526181B2
Authority
JP
Japan
Prior art keywords
smart card
client device
server
certificate
request
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.)
Expired - Fee Related
Application number
JP2017515810A
Other languages
English (en)
Other versions
JP2017535843A (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 JP2017535843A publication Critical patent/JP2017535843A/ja
Application granted granted Critical
Publication of JP6526181B2 publication Critical patent/JP6526181B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/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/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • 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/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Description

本明細書に説明する発明の態様は概して、スマートカードを使用してリモートコンピューティング環境へとクライアントをログオン(logon)させること、および/または、クライアントにフルドメインの特権(full domain privileges)を与えることに関するものである。
伝統的に、スマートカード認証には、サーバ(認証)デバイスとクライアントデバイスとの間の数多くのやりとり(interaction)が伴う。リモートコンピューティング環境においては、サーバとクライアントとの間の接続における遅延(latency)のいかなる増大によっても、その数多くのやりとりが大幅に低速化する。さらに、リモートコンピューティングセッションにログオンしようとするクライアントデバイスには、フルドメインの特権が与えられないかもしれない。
以下に、本明細書に説明する様々な発明の態様の簡単な概要を提示する。本概要は広範な全体像ではなく重要なもしくは欠かせない要素を特定すること、または特許請求の範囲を正確に説明することを意図していない。以下の概要は、以下に記載するより詳細な説明の導入として、単にいくつかの概念を簡単な形で提示するにすぎない。
上述した先行技術の限界を克服し、本明細書の読解において明らかになるであろう他の限界を克服するために、本明細書に説明する発明の態様は、より高速かつより効率的な、スマートカードを用いる等によるログオンのための、および、リモートコンピューティング環境においてフルドメインアクセスをクライアントデバイスに与えるための方法およびシステムを指向する。
高速スマートカードログオンは、レイテンシを低減し、セキュリティを向上させるために使用されてもよい。たとえば、システムは、認証のために使用されるサーバデバイスとクライアントデバイスとの間の動作(たとえば、インタラクション)の数を低減させるであろう。これらの動作は、スマートカードからのユーザ証明書の取りこみ(fetch)またはデータの署名を含んでいてもよい。
高速スマートカードログオンはまた、PIN(または他の資格情報)のネットワークを介した送信を任意に回避することにより、セキュリティを向上させるであろうし、また、PINキャッシングに頼ることなく、実際のリモートコンピューティング環境ログオンへの、スマートカードを使用した、認証イベント(たとえば、セキュア・ソケット・レイヤー(SSL)またはトランスポート・レイヤー・セキュリティ(TLS)認証)からのシングル・サイン・オンを可能とする。
高速スマートカードログオンを実装するために使用されるコンポーネントはまた、連携された(federated)フルドメインログオンを実装するために使用されてもよい。仮想スマートカード資格情報が、それは一日限りのものであってもよいが、外部認証イベントの受諾に基づいて発行されてもよい。外部認証イベントには、例えばセキュリティアサーションマークアップ言語(SAML)アイデンティティプロバイダにおけるログオン、TLSまたはSSLを介したスマートカード認証、および、バイオメトリクスまたはADパスワードなしのワンタイムパスワード(OTP)等の代替的認証資格情報が含まれる。さらに、高速スマートカードログオンからの証明書動作インターセプトコンポーネントを、PC/SCのAPIレベルでスマートカードを完全にエミュレートすることなく、仮想スマートカードとのインタラクションを可能にするために使用してもよい。仮想スマートカードを、リモートコンピューティング環境上または高度に保護されているであろう別個のサーバ上にローカルに作成してもよい。
以上および追加の態様は、以下のさらに詳細に述べる開示によって十分理解されるであろう。
本明細書で説明する態様およびその利点は、添付の図面を考慮して以下の説明を参照すると、より完全な理解が得られる。図面において、同じ参照番号は同じ特徴を示す。
本発明の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つ以上の例示的な態様を行うために、データベースおよび制御ソフトウェアの全体的なアクセス、制御および管理を提供する。データサーバ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は、ランダムアクセスメモリ(RAM)113、読取専用メモリ(ROM)115、ネットワークインターフェース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は、RAM205、ROM207、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つ以上のメモリ316を含むことができる。物理的コンポーネント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つ以上の仮想化サーバ301は、代わりにタイプ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は管理対象パーティション上で稼動しているアプリケーションおよび管理対象パーティションに格納されているデータをセキュリティ保護にするために、ポリシーをそれに適用させてもよい。管理対象パーティション上で稼動しているアプリケーションはセキュリティ保護されたアプリケーションであってもよい。他の実施形態では、すべてのアプリケーションは、アプリケーションから別個に受信された1つ以上のポリシーファイルのセットに従って実行することができ、そしてこれは、1つ以上のセキュリティパラメータ、機能、リソース制約、および/または、そのアプリケーションがデバイス上で実行される際のモバイルデバイス管理システムによって実施される他のアクセス制御を定義する。それぞれのポリシーファイル(複数可)に従って動作することにより、各アプリケーションについて、1つ以上の他のアプリケーションおよび/もしくはリソースとの通信を許可または制限することができ、それによって仮想パーティションを作成する。したがって、本明細書で使用する場合、パーティションとは、メモリの物理分割部分(物理パーティション)、メモリの論理分割部分(論理パーティション)、ならびに/または、本明細書に記載されているように複数のアプリに亘る1つ以上のポリシーおよび/もしくはポリシーファイルの実施結果として作成された仮想パーティション(仮想パーティション)を指す。別の言い方をすれば、管理対象アプリにポリシーを実施することにより、それらのアプリは、他の管理対象アプリおよび信頼できる企業リソースとのみ通信することができるよう制限され、それによって非管理対象アプリおよびデバイスが入り込めない仮想パーティションを作成することができる。
セキュリティ保護されたアプリケーションは、電子メール・アプリケーション、ウェブブラウザ・アプリケーション、サース(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は静的ページ、動的ページ、アニメーションまたは同様な他のものであってもよく、それによって遠隔設置されたリソースにアクセスを提供する。
セキュリティ保護されたアプリケーションは、モバイルデバイスの管理対象パーティション510のセキュリティ保護されたデータコンテナ528に格納されているデータにアクセスしてもよい。セキュリティ保護されたデータコンテナにセキュリティ保護化されているデータは、セキュリティ保護されラッピングされたアプリケーション514、セキュリティ保護されたアプリケーション・ランチャ522が実行するアプリケーション、セキュリティ保護されたアプリケーション・ランチャ522が実行する仮想化アプリケーション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に接続してもよい。仮想プライベートネットワーク接続は、マイクロVPNまたはアプリケーション特有のVPNとも称されるが、モバイルデバイスの特定のアプリケーション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は、右側に示すExchange、Sharepoint、公開鍵インフラストラクチャ(PKI)リソース、ケルベロスリソース、証明書発行サービス等の様々な企業リソース608およびサービス609にアクセスするために、ゲートウェイサーバ606(アクセス・ゲートウェイおよびアプリケーション制御機能を含む)とインタラクトする。具体的には図示していないが、モバイルデバイス602はまた、アプリケーションの選択およびダウンロードのために、企業アプリケーションストア(Store Front)とインタラクトしてもよい。
クライアントエージェント604は企業のデータセンターでホストされるWindows(登録商標)アプリ/デスクトップのUI(ユーザインターフェース)媒介装置として機能し、企業のデータセンターは、高品位ユーザエクスペリエンス(HDX)/ICA表示リモーティングプロトコルを使用してアクセスされる。クライアントエージェント604は、ネイティブiOSまたはAndroidアプリケーション等のモバイルデバイス602のネイティブアプリケーションのインストールおよび管理もサポートする。たとえば、上述の図面に図示する管理対象アプリケーション610(メール、ブラウザ、ラッピングされたアプリケーション)はすべてデバイス上でローカルに実行されるネイティブアプリケーションである。このアーキテクチャの、クライアントエージェント604およびアプリケーション管理フレームワークは、企業リソース/サービス608との接続性およびSSO(シングル・サイン・オン)などのポリシーによる管理の機能および特徴を提供するように機能する。クライアントエージェント604は企業に対する、通常は他のゲートウェイサーバのコンポーネントへのSSOとのアクセス・ゲートウェイ(AG)に対する、一次ユーザ認証を扱う。クライアントエージェント604はゲートウェイサーバ606からポリシーを取得して、モバイルデバイス602上の管理対象アプリケーション610の挙動を制御する。
ネイティブアプリケーション610とクライアントエージェント604とのセキュリティ保護されたインタープロセス通信(IPC)リンク612は管理チャネルを表し、これによりクライアントエージェントは各アプリケーションを「ラッピング」するアプリケーション管理フレームワーク614によって実施されるポリシーを供給することができる。IPCチャネル612により、クライアントエージェント604はまた、企業リソース608との接続性およびSSOを有効にする資格情報および認証情報を供給することができる。最後に、IPCチャネル612により、アプリケーション管理フレームワーク614は、オンラインおよびオフラインによる認証等、クライアントエージェント604が実装するユーザインターフェース機能を呼び出すことができる。
クライアントエージェント604とゲートウェイサーバ606との通信は、本質的に、各ネイティブ管理対象アプリケーション610をラッピングするアプリケーション管理フレームワーク614からの管理チャネルの拡張である。アプリケーション管理フレームワーク614はクライアントエージェント604からのポリシー情報を要求し、これがさらにゲートウェイサーバ606からのポリシー情報を要求する。アプリケーション管理フレームワーク614は認証を要求し、クライアントエージェント604は、(NetScaler Access Gatewayとしても知られる)ゲートウェイサーバ606のゲートウェイサービス部にログインする。クライアントエージェント604はゲートウェイサーバ606上のサポートサービスも呼び出してもよく、それにより、以下詳細に説明するように、ローカルデータボルト616の暗号化鍵を導出するための入力成分を生成するか、または直接認証を可能にするクライアント証明書をPKI保護リソースに提供してもよい。
さらに詳しくは、アプリケーション管理フレームワーク614は各管理対象アプリケーション610を「ラッピング」する。これは明確なビルドステップ、またはビルド後処理ステップを介して組み込んでもよい。アプリケーション管理フレームワーク614は、セキュリティ保護されたIPCチャネルを初期化し、そのアプリケーションのポリシーを取得するために、アプリケーション610の最初のローンチ時にクライアントエージェント604と「ペア」にしてもよい。アプリケーション管理フレームワーク614は、クライアントエージェントのログイン・ディペンデンシーおよび、ローカルOSサービスをどのように使用してよいか、またはローカルOSサービスがアプリケーション610とどのようにインタラクトしてよいかを制限する閉じ込めポリシーのうちのいくつかなど、ローカルに適用するポリシーの関連部分を実施してもよい。
アプリケーション管理フレームワーク614はセキュリティ保護されたIPCチャネル612上でクライアントエージェント604が提供するサービスを使用して、認証および内部ネットワークアクセスを促進してもよい。プライベート・共有データボルト616(コンテナ)の鍵管理も、管理対象アプリケーション610とクライアントエージェント604との適切なインタラクションにより管理してもよい。ボルト616はオンライン認証後にのみ利用できてもよく、またはポリシーが許可する場合にはオフライン認証後に利用できるようにしてもよい。ボルト616の初めての使用にはオンライン認証を要求してもよく、オフラインアクセスは最大でもオンライン認証が再び要求される前のポリシーリフレッシュ期間に制限してもよい。
内部リソースへのネットワークアクセスは、個々の管理対象アプリケーション610からアクセス・ゲートウェイ606を介して直接、行ってもよい。アプリケーション管理フレームワーク614は各アプリケーション610に代わってネットワークアクセスの指揮を担う。クライアントエージェント604は、オンライン認証後に取得される適切な時間制限付きの二次資格情報を提供することにより、これらのネットワーク接続を促進してもよい。リバースウェブプロキシ接続およびエンドツーエンドVPN型トンネル618など、ネットワーク接続の複数のモードを使用してもよい。
メール・ブラウザ管理対象アプリケーション610は特別なステータスを有し、任意にラッピングされたアプリケーションには一般に利用できない可能性のある機能を利用できるようにしてもよい。たとえば、メール・アプリケーションは、フルAGログオンを要求せずに、Exchangeへのアクセスを長時間可能にする特別なバックグラウンドネットワークアクセス機構を使用してもよい。ブラウザ・アプリケーションは異なる種類のデータを分ける複数のプライベートデータボルトを使用してもよい。
このアーキテクチャは、様々な他のセキュリティ特徴の組み込みをサポートする。たとえば、ある場合にはゲートウェイサーバ606(そのゲートウェイサービスを含む)は、アクティブディレクトリ(AD)パスワードの妥当性検証をする必要がないかもしれない。ある状況においてADパスワードをあるユーザの認証因子として使用するかどうかは、企業の裁量に任せることができる。ユーザがオンラインまたはオフラインである(たとえば、ネットワークに接続されている、または接続されていない)場合、異なる認証方法を使用してもよい。
ステップアップ認証は、ゲートウェイサーバ606が強力な認証を使って極秘データへアクセスすることが認められている管理対象ネイティブアプリケーション610を識別し、以前の弱いレベルのログイン後にユーザから再認証が要求されることになるとしても、これらのアプリケーションへのアクセスが適切な認証を行った後にのみ許可されることを確保してもよい。
このソリューションの別のセキュリティ特徴は、モバイルデバイス602でのデータボルト(data vaults)616(コンテナ)の暗号化である。ボルト616は、ファイル、データベースおよび構成を含むすべてのオンデバイスデータが保護されるように暗号化してもよい。オンラインボルトの場合、鍵はサーバ(ゲートウェイサーバ606)に格納してもよく、オフラインボルトの場合、鍵のローカルコピーをユーザ・パスワードまたは生体認証によって保護してもよい。セキュリティ保護されたコンテナ616でデータがデバイス602にローカルに格納される場合、最低でもAES256暗号化アルゴリズムを利用するのが好ましい。
他のセキュリティ保護されたコンテナの特徴も実装してもよい。たとえば、ロギング特徴を含めてもよく、アプリケーション610内で起こるすべてのセキュリティイベントを記録して、バックエンドに報告する。アプリケーション610が改ざんを検出する場合など、データ消去をサポートしてもよく、ユーザデータが破棄されたことの手がかりをファイルシステムに残さずに、関連暗号化鍵をランダムデータで上書きしてもよい。スクリーンショットの保護は別の特徴であり、アプリケーションはデータをスクリーンショットに格納させないようにしてもよい。たとえば、鍵ウインドウの隠しプロパティをYESに設定してもよい。これにより、どのようなコンテンツが現在スクリーンに表示されていてもそれを隠せるので、通常いずれかのコンテンツが常駐するスクリーンショットがブランクになる。
たとえば、データを外部のアプリケーションにコピーまたは送信するなど、アプリケーション・コンテナ外にローカルにデータを転送することを一切させないなどして、ローカルなデータ転送を防止してもよい。キーボードのキャッシュ特徴は扱いに注意を要するテキストフィールドのオートコレクト機能を使用不可にするように動作してもよい。SSL証明書の妥当性検証を使用可能にしてもよいので、キーチェーンに格納する代わりに、アプリケーションはサーバSSL証明書を特別に妥当性検証する。デバイスのデータを暗号化するために使用する鍵をユーザによって供給されるパスフレーズまたは生体データを使用して生成するように(オフラインアクセスが要求される場合)、暗号化鍵生成特徴を使用してもよい。オフラインアクセスが要求されない場合、サーバ側でランダムに生成し、格納される別の鍵を用いてXORをとってもよい。鍵導出関数は、ユーザ・パスワードから生成される鍵が、その暗号学的ハッシュを作成するのではなく、KDF(鍵導出関数、特にパスワードベース鍵導出関数2(PBKDF2))を使用するように動作してもよい。前者では、鍵が総当たり攻撃または辞書攻撃を受けやすくなる。
さらに、暗号化方法に1つ以上の初期化ベクトルを使用してもよい。初期化ベクトルは同じ暗号化データの複数のコピーに異なる暗号文出力を生じ、再生および暗号解読攻撃の両方を防止する。これは攻撃者がデータの暗号化に使用する特定の初期化ベクトルが不明な場合に盗んだ暗号鍵を用いた場合であっても、データの解読を防止する。また、認証後の解読を使用してもよく、ユーザがアプリケーション内で認証された後でしかアプリケーションデータは解読されない。別の特徴はメモリ内の扱いに注意を要するデータに関係してもよく、それが必要なときにのみ、メモリ(ディスクではない)に保管されてもよい。たとえば、ログイン資格情報はログイン後にメモリから消去されて、オブジェクティブCインスタンス変数内の暗号化鍵および他のデータは、簡単に参照される可能性があるため格納されない。代わりに、これらのためにメモリを手動で割り当ててもよい。
ポリシーで定義した無活動期間の経過後に、ユーザのセッションを終了する無活動タイムアウトを実装してもよい。
アプリケーション管理フレームワーク614からのデータ漏えいは、他の方法で阻止してもよい。たとえば、アプリケーション610がバックグラウンドに入る場合、所定(構成可能な)期間後にメモリをクリアにしてもよい。バックグラウンドに移るとき、アプリケーションの最後に表示されたスクリーンのスナップショットを取得して、フォアグラウンドに出すプロセスを迅速化してもよい。スクリーンショットは機密データを含むことがあり、そのためクリアにされるべきである。
別のセキュリティ特徴は、1つ以上のアプリケーションにアクセスするためにAD(アクティブディレクトリ)622のパスワードを使用しない、OTP(ワンタイムパスワード)620の使用に関係する。ある場合には、あるユーザは自身のディレクトリサービスのADパスワードを知らず(または知ることを許可されておらず)、そのためこれらユーザはSecurIDなどのハードウェアOTPシステムを使用するなど、OTP620を使用して認証してもよい(OTPは、エントラストまたはジェムアルトなど、異なるベンダによっても提供されてよい)。ある場合には、ユーザがユーザIDで認証した後、OTP620を用いてユーザにテキストが送信される。ある場合には、これはオンライン利用の場合のみ実施してもよく、プロンプトは単一フィールドである。
企業ポリシーによりオフライン使用が許可されるアプリケーション610については、オフライン認証のためにオフラインパスワードを実装してもよい。たとえば、企業はstore frontにこの方法でアクセスしてもらいたい可能性がある。この場合、クライアントエージェント604はユーザにカスタムオフラインパスワードの設定を要求してもよく、ADパスワードは使用されない。ゲートウェイサーバ606は、標準的なWindows(登録商標) Serverパスワードの複雑さの要件で記述されるなど、パスワードの最低長さ、文字種の組合せおよび有効期限に関するパスワード標準を制御し、実施するポリシーを提供してもよい。ただし、これらの要件は修正してもよい。
別の特徴は、二次資格情報として一定のアプリケーション610のクライアント側証明書の有効化に関する(アプリケーション管理フレームワークのマイクロVPN特徴を介してPKI保護ウェブリソースにアクセスするため)。たとえば、アプリケーションはこのような証明書を利用することがある。この場合、ActiveSyncプロトコルを使用した証明書による認証をサポートしてもよく、クライアントエージェント604からの証明書はゲートウェイサーバ606によって検索されて、キーチェーンで使用してもよい。各管理対象アプリケーションは、ゲートウェイサーバ606で定義されるラベルによって識別される1つの関連クライアント証明書を有していてもよい。
ゲートウェイサーバ606は企業専用ウェブサービスと対話して、該当の管理対象アプリケーションが内部PKI保護リソースに認証を行うことを可能にするクライアント証明書の発行をサポートしてもよい。
クライアントエージェント604およびアプリケーション管理フレームワーク614は、内部PKI保護ネットワークリソースに認証を行うために、クライアント証明書の取得および使用をサポートするように増強してもよい。様々なレベルのセキュリティおよび/または隔離の要求事項に応じるためなど、2つ以上の証明書をサポートしてもよい。証明書はメール・ブラウザ管理対象アプリケーション、および最終的には任意にラッピングされたアプリケーションが使用してもよい(ただし、アプリケーション管理フレームワークがhttps要求を仲介するのが合理的な場合、これらのアプリケーションはウェブサービス型の通信パターンを使用する)。
iOSのアプリケーション管理クライアント証明書サポートは、各使用期間中、各管理対象アプリケーションのiOSキーチェーンへのパブリック−キー・クリプトグラフィ・スタンダード(PKCS)12 BLOB(バイナリ・ラージ・オブジェクト)のインポートに依拠してもよい。アプリケーション管理フレームワークのクライアント証明書サポートは、プライベートメモリ内キーストレージとともにHTTPS実装を使用してもよい。クライアント証明書はiOSキーチェーンには決して存在してはならず、強力に保護されている「オンライン限定の」データ値を潜在的に除き、存続させてはならない。
相互SSLも実装して、企業に対してモバイルデバイス602が認証されること、およびその逆を要求することにより、追加のセキュリティを提供してもよい。ゲートウェイサーバ606に対する認証用の仮想スマートカードも実装してもよい。
限定およびフル両方のケルベロスサポートを追加の特徴としてもよい。フルサポート特徴は、ディレクトリサービスのパスワードまたは信頼できるクライアント証明書を使用したアクティブディレクトリ(AD)622へのフルケルベロスログインを行い、HTTP Negotiate認証チャレンジにレスポンスするためにケルベロスサービスチケットを取得する能力に関係する。限定サポート特徴はサイトリックス・アクセス・ゲートウェイ・エンタープライズ・エディション(AGEE)での制約付き委任に関係し、当該AGEEサポートはケルベロスプロトコル遷移の呼び出しをサポートするので、HTTP Negotiate認証チャレンジにレスポンスしてケルベロスサービスチケット(制約付き委任を条件とする)を取得して使用することができる。この機構はリバースウェブプロキシ(別名、企業仮想プライベートネットワーク(CVPN)モードで機能し、http(ただし、httpsではない)接続はVPNおよびマイクロVPNモードでプロキシされる。
別の特徴はアプリケーション・コンテナのロックおよび消去に関係し、これはジェイルブレイクまたはルート化検出時には自動的に行われ、管理コンソールからプッシュされるコマンドとして発生し、たとえアプリケーション610が稼動していないときでも、遠隔消去機能を含んでいてもよい。
障害のある場合に、いくつかの異なる場所のうちの1つからユーザがサービスを受けられる企業アプリケーションストアおよびアプリケーションコントローラのマルチサイト・アーキテクチャまたは構成をサポートしてもよい。
ある場合には、管理対象アプリケーション610には、API(たとえば、OpenSSL)を介して証明書および秘密鍵にアクセスが許可されてもよい。企業の信頼できる管理対象アプリケーション610は、アプリケーションのクライアント証明書および秘密鍵を用いて、特定の公開鍵オペレーションを行うことが認められてもよい。アプリケーションがブラウザのように挙動し、証明書アクセスが要求されない場合、アプリケーションが「who am I」証明書を読み取るとき、アプリケーションが証明書を使用してセキュリティ保護されたセッション・トークンを構築するとき、およびアプリケーションが重要なデータのデジタル署名のため(たとえば、トランザクションログ)または一時データ暗号化のために秘密鍵を使用するときなど、様々な使用のケースが識別され、それに応じて扱われてもよい。
〈スマートカードログインの例示的な実施形態〉
高速スマートカードログオンは、スマートカードを使用した、インタラクティブサーバ(たとえば、MICROSOFT仮想デスクトップ・インフラストラクチャ(VDI)/リモートデスクトップサービス(RDS)サーバなど)のようなサーバへのユーザまたはクライアントデバイスの認証のために使用してもよく、一方で、レイテンシを低減し、セキュリティを向上させることができる。たとえば、システムは、認証のために使用されるサーバデバイスとクライアントデバイスとの間の動作(たとえば、インタラクション)の数を低減させるであろう。これらの動作は、スマートカードからのユーザ証明書のフェッチまたはデータの署名を含んでいてもよい。したがって、PC/SCログオンを遅くさせるスマートカードネットワークチャターを低減させるであろう。高速スマートカードログオンはまた、PIN(または他の資格情報)のネットワークを介した送信を任意に回避することにより、セキュリティを向上させるであろうし、また、PINキャッシングに頼ることなく、実際のインタラクティブサーバログオンへの、スマートカードを使用した、認証イベント(たとえば、セキュア・ソケット・レイヤー(SSL)またはトランスポート・レイヤー・セキュリティ(TLS)認証)からのシングル・サイン・オンを可能とする。
図7は、本明細書に記載の1つ以上の例示的な態様に従ったスマートカードログオンのためのシステムを示している。前述したように、図7に示すクライアントデバイス701は、認証のために、図7にさらに示すサーバ721とインタラクトし、サーバ721についてリモートアプリケーションサービスを提供する。たとえば、クライアントデバイス701は、サーバ721または他のサーバ上でリモートに実行されるアプリケーションによって生成されたアプリケーション出力を表示するために使用される仮想マシンプログラムまたはアプリケーションなどの、クライアントエージェント703を含んでもよい。
クライアントデバイス701は、アプリケーションがデータを暗号化または署名するのを可能にする暗号化アプリケーション・プログラミング・インターフェース709(CAPI)、暗号化サービスプロバイダ711(CSP)、およびミニドライバ713を含んでもよい。いくつかの実施形態では、CAPI 709、CSP 711、およびミニドライバ713は、スマートカードログオン中にクライアントデバイス701により使用されないかもしれない。
サーバ721は、仮想化エージェント(または仮想エージェント)723を含んでもよい。サーバ721はまた、資格情報プロバイダ725、ケルベロスモジュール727、CAPI 729、CSP 731、およびミニドライバ737を含んでもよい。サーバ721は、これらのコンポーネントを使用してクライアントデバイス701を認証し、および/または、クライアントデバイス701についてデータに署名してもよい。クライアントデバイス701およびサーバ721のそれぞれは、スマートカードの統合のために使用される低レベルのパーソナルコンピュータ/スマートカード(PC/SC)層715または739も含んでもよい。
スマートカード717は、図7に示すように、クライアントデバイス701に物理的に接続されていてもよい。以下にさらに詳細に記載されるように、クライアントデバイス701は、付加的または代替的に、仮想スマートカードを使用してもよい。
いくつかの態様では、ユーザは、認証のための個人識別番号(PIN)または他の資格情報の入力を促される場合がある。クライアントエージェント703は、PINをキャプチャし、任意にPINを格納し、サーバ721における仮想エージェント723にネットワーク接続を介してPINを送信してもよい。サーバ721におけるCAPI 729は、サードパーティまたはパブリックのAPIを含んでもよい。さらに、スマートカード認証のためのドライバは、サーバ側であってもよく、これはオペレーティングシステムとの互換性を可能にしてもよい。サーバ側の暗号化サービスプロバイダ731は、クライアントデバイス701から受信したPINを格納(たとえば、キャッシュ)してもよい。認証処理中に、サーバ721は、PC/SC層739を介してクライアントデバイス701にPINを送信し戻して、クライアントデバイス701においてスマートカード717から1つ以上の証明書などの資格情報を得てもよい。PC/SC層715および739でのスマートカードインタラクションの間に、クライアントデバイス701およびサーバ721は、約500回のラウンドトリップ要求などのように数百回、インタラクトしてもよい。
高速スマートカードログインのための第二の方法は、以下に説明するように、スマートカード認証中にクライアントデバイス701およびサーバ721がインタラクトする回数を、1回、2回、または3回のインタラクションなどのように低減するであろう。
図8は、本明細書に記載の1つ以上の例示的な態様に従った高速スマートカードログオンのためのシステムを示している。高速スマートカードログオンは、PC/SCレベル815および839ではなく、より高い通信レベルでのクライアントデバイス801およびサーバ821間のインタラクション(たとえば、クライアント証明書つきのドメインログオン)を伴っている。これにより、クライアントデバイス801およびサーバ821間のインタラクションの数、ならびに/または、クライアントデバイス801およびサーバ821間で交換されるデータの量(たとえば、ボリューム)が低減されるであろう。
先に図7に関連して論じたように、クライアントデバイスは、クライアントエージェント803、CAPI 809、CSP 811(たとえば、図8に示すCSP2)、ミニドライバ813、およびPC/SC 815を含んでいてもよい。しかし、クライアントデバイスは、サーバのCAPI 829、CSP 831、およびミニドライバ837に頼るのではなく、スマートカード認証のための独自のCAPI 809、CSP2 811、およびミニドライバ813を使用してもよい。スマートカード817は、バイオメトリックスマートカード(または任意の他のスマートカード)であってもよく、またクライアントデバイス801に物理的に接続されていてもよい。スマートカード817は、証明書などの資格情報を格納していてもよい。
クライアントエージェント803は、仮想エージェント823への表示リモート接続を介して、サーバ821の仮想エージェント823とのネゴシエーションセッションを確立する。ネゴシエーションセッション中に、サーバ821(たとえば、サーバ821の仮想エージェント823)は、従来のスマートカードログオンまたは高速スマートカードログオンを実行するかどうかを決定してもよい。上述したように、高速スマートカードログオンは、サーバ821およびクライアントデバイス801間のより少ないインタラクションを伴うであろう。クライアントデバイス801およびサーバ821は、ネゴシエーションセッション中に互いにその機能を通知してもよい。
仮想エージェント823はまた、クライアントエージェント803が自動ログオン資格情報つきの仮想エージェント823を提供したかどうかを決定してもよい。ブローカリングステップの間に、クライアントデバイス801は、別の(たとえば、認証)サーバで認証しているかもしれず、ユーザはパスワード、PIN、バイオメトリクス、または他の資格情報を提供しているかもしれない。スマートカード817は、ブローカリングステップ中で使用されているかもしれず、第一のサーバとの認証が成功した場合、スマートカード817のロックが解除されているかもしれない。
ブローカリングステップおよびスマートカードロック解除ステップは、クライアントエージェント803および仮想エージェント823間のネゴシエーションセッションの前に発生するかもしれず、または、クライアントエージェント803および仮想エージェント823間のネゴシエーションセッション中に発生するかもしれない。したがって、仮想エージェント823は、自動ログオン資格情報がクライアントエージェント803によって提供されたことを、ネゴシエーションセッション中に決定してもよい。
いくつかの態様では、自動ログオン資格情報が提供された場合など、クライアントにおける将来のPIN(または他の資格情報)プロンプトが有益にブロックされるかもしれない場合は、仮想エージェント823は、高速スマートカードログオンを使用するように決定してもよい。そうでなければ、仮想エージェント823は、従来のスマートカードログオン(たとえば、PC/SC層を介したスマートカード認証)を使用することを決定してもよい。
サーバ821は、どのログオンスキームを使用するかを決定するために、1つ以上の他の要因を考慮してもよい。たとえば、サーバ821は、クライアントデバイス801が高速スマートカードログオン(たとえば、スマートカード認証)を使用することを好むことを(たとえば、ネゴシエーションセッション中に)クライアントデバイス801が指示している場合、高速スマートカードログオンを使用することを決定してもよい。サーバ821はまた、高速スマートカードログオンを行うことが可能であるかどうかを決定してもよい。
いくつかの態様では、サーバ821は、PINのユーザプロンプトの数に基づいて、高速スマートカードログオンを実行するかどうかを決定してもよい。たとえば、サーバ821は、1つまたは少数のユーザPINプロンプトが発生する場合(たとえば、ブローカリングステップ中に一度、または、ブローカリングステップおよびネゴシエーションステップ中に一度)、高速スマートカードログオンを使用することを決定してもよい。PINプロンプトの任意の他の閾値数を使用してもよい。そうでなければ、サーバ821は、高速スマートカードログオンスキームを使用しないことを決定してもよい。
ユーザがPINまたは他の資格情報(たとえば、バイオメトリック)を提供した後、クライアントデバイス801のCSP 811は、PIN、バイオメトリック、または他の資格情報を格納(たとえば、キャッシュ)してもよく、または別様に、ロック解除されたスマートカードをクライアントデバイス801によるさらなる使用のために保持してもよい。CSP2 811でPINまたはバイオメトリックを格納することにより、クライアントデバイス801は、図7に示すように、証明書を取得するためにサーバ821のCSP 831がスマートカード817と通信するのではなく、セキュリティ証明書を取得するためにスマートカード817と直接、通信してもよい。したがって、セキュアであるか、またはそうではないネットワークを介したクライアントデバイス801およびサーバ821間の(時には複数回の)送信が行われるのではなく、PINまたはバイオメトリックは、クライアントデバイス801上に残ってもよい。
代替の実施形態では、クライアントエージェント803は、サーバ821にPINまたはバイオメトリックを送信してもよい。サーバ821は、以下にさらに詳細に説明するように、たとえばCSP 833でPINまたはバイオメトリックを格納してもよい。バイオメトリクス(たとえば、指紋)の実施例では、指紋や他のバイオメトリクスに使用される大量のデータに起因して、(他のスマートカード認証スキームに比較して)スマートカード認証を大幅に高速化することができる。
クライアントデバイス801はまた、スマートカード817を用いてなど、証明書動作を処理するように構成された秘密鍵動作(PKOperation)SDKモジュール807を含んでもよい。PKOperation SDK 807の機能は、その全体が参照により本明細書に組み込まれる、同時係属中の米国非仮特許出願第13/886,845号に記載されている。
具体的には、クライアントデバイス801のPKOperation SDKモジュール807は、認証目的での署名に使用されてもよい対応秘密鍵を有する1つ以上のクライアント証明書を格納する鍵ストアへのアクセスを容易にしてもよい。たとえば、クライアントデバイス801は、クライアントデバイス801のユーザを表すクライアント証明書へのアクセスを許可してもよく、または、それを所持していてもよい。いくつかの態様において、証明書は、企業が発行した証明書であってもよい。証明書は、暗号化モジュールを有する物理スマートカードに結合されていてもよい。換言すれば、暗号秘密は、スマートカードに閉じ込められていてもよい。ユーザは、スマートカードで保護された証明書にアクセスするためのクライアントデバイス801を許可してもよい。
あるいは、証明書を、派生資格情報(たとえば、仮想スマートカード)に結合してもよく、これは、鍵を保護するためのハードウェアおよび/またはソフトウェアモジュールを使用してもよい。派生資格情報内の証明書は、クライアントデバイス801に格納されてもよく、また、物理スマートカード817上の証明書と同様にアクセスされてもよい。派生資格情報からの証明書は、クライアントデバイス801において信頼できる環境に格納されてもよい。
クライアントデバイス801および/またはクライアントデバイスのリムーバブルハードウェアモジュールを、証明書および秘密鍵を格納するためのプロビジョニングプロセスによって許可してもよい。クライアント証明書の秘密鍵を伴う動作を許可するために、クライアントデバイス801を使用して、PINまたは他の資格情報(たとえば、バイオメトリック)を入力するように、ユーザは要求されてもよい。クライアントデバイス801(たとえば、スマートフォン)とは別個の別の外部デバイスが、証明書を制御してもよいし、また、クライアントデバイス801は、外部デバイスによって制御される証明書にアクセスするためにカスタムリーダインターフェースを利用してもよい。
サーバ821に着目すると、サーバ821は、図7に関して上記に説明したように、仮想エージェント823およびCAPI 829を含んでいる。サーバ821はCSP 831を含んでもよいが、スマートカード認証のためにCSP 831を利用しないかもしれない。むしろ、クライアント側CSP 811を代わりに利用してもよい。サーバ821はまた、スマートカードログオンを開始するように構成された資格情報プロバイダ825(または資格情報プロバイダフィルタ)を含む1つ以上の資格情報プロバイダを含んでもよい。仮想エージェント823は、資格情報プロバイダ825などの、高速スマートカードログオンに使用する資格情報プロバイダを選択してもよい。ケルベロス認証が利用される場合は、資格情報プロバイダ825は、信頼できるサードパーティデバイス827(たとえば、ケルベロスモジュール)と通信してもよく、これは以下の実施例でさらに詳細に説明する。
サーバ821は、暗号化サービスプロバイダCSP 831、および/または、示されてはいないが(任意に)キーストレージプロバイダ(KSP)を含んでもよい。換言すれば、CSP 831は、KSPによって置換されていてもよい。KSPは、CSP 831によってサポートされていないかもしれない代替のスマートカードのアルゴリズムをサポートするために使用されてもよい。同様に、クライアントデバイス801上のCSP 811は、KSPによって置換されていてもよい。CSP(および/またはKSP)は、証明書動作をインターセプトするように構成されていてもよい。資格情報プロバイダ825は、CSP 831などの高速スマートカードログオンに使用するCSPを選択してもよい。サーバ821におけるCSP 831(および/またはKSP)は、リモーティングチャネル836を介してクライアントデバイス801におけるPKOperation SDK 807と通信してもよい。たとえば、クライアントデバイス801およびサーバ821間の仮想チャネル836は、クライアントデバイス801の仮想チャネルドライバ805とサーバ821の仮想チャネルドライバ835とによって確立されてもよい。
スマートカード817からの証明書の要求またはデータ署名の要求などのクライアントデバイス801を使用する動作は、サーバ821におけるCSP 831(および/またはKSP)からクライアントデバイス801におけるPKOperation SDK 807へと(たとえば、仮想チャネル836を介して)送信されてもよい。(たとえば、PC/SCトンネル838ではなく仮想チャネル836を介して)より高いレベルで通信することにより、図8に示すサーバおよびクライアントデバイスのペアは、図7に示すサーバおよびクライアントデバイスのペアよりも少ない回数でならびに/または少ない情報を相互に通信し、潜在的なレイテンシを低減するであろう。
サーバ821はまた、クライアントデバイス801(またはスマートカード817)と通信することのないサーバ側の認証動作のために、サードパーティCSPなどのCSP 833を含んでもよい。前述したように、サーバ821はまた、ミニドライバ837およびPC/SCフック839を含んでいてもよい。いくつかの態様において、ミニドライバ837およびPC/SC 839は、クライアントデバイスの認証に使用されないかもしれない。他の態様では、PC/SC 839は、別の仮想チャネル838を介してクライアントデバイス801におけるPC/SC 815と通信してもよい。
ケルベロスを介したスマートカード817を使用する認証のための一般的な動作についてさらに詳細に説明する。サーバの資格情報プロバイダ825は、スマートカードクラスユーザ証明書を使用して、アクティブディレクトリログオンなどの、ログオンをトリガするためのKERB_CERTIFICATE_LOGON構造を使用してもよい。サーバの資格情報プロバイダ825はKERB_CERTIFICATE_LOGON構造を使用してもよい。KERB_CERTIFICATE_LOGON構造は、以下を含んでもよい。
Figure 0006526181
さらに、KERB_CERTIFICATE_LOGON構造内で記載されているように、「CspData」は、KERB_SMARTCARD_CSP_INFO構造へのポインタをコンプロマイズしてもよい。KERB_SMARTCARD_CSP_INFO構造は、以下を含んでもよい。
Figure 0006526181
構造は、サーバの資格情報プロバイダ825によって生成されてもよい。特に、構造は、たとえば、CSP 831および/またはKSPの名前を識別してもよい。
参照により本明細書に組み込まれる米国特許出願第13/886,845号にさらに詳細に記載されているように、ケルベロスリソース認証は、ケルベロスのKDC(たとえば、アクティブディレクトリドメインコントローラ)からサービスチケットを取得することを含んでもよい。たとえば、サーバ821でのケルベロス認証パッケージは、アクティブディレクトリログオンを実行するためにコメント要求(RFC)4556に記載されているような、ケルベロスにおける初期認証用公開鍵暗号(PKINIT)プロトコルを使用してもよい。
サーバの資格情報プロバイダ825、ケルベロスモジュール827、またはスマートカードを使用する別のアプリケーションによる情報の処理中に、サーバ821側のCSP 831および/またはKSPは、資格情報プロバイダ825およびケルベロスモジュール827によって行われる、関連する証明書動作をインターセプトし、クライアントデバイス801へとそれらの動作をリモートしてもよい(たとえば、クライアントデバイス801でのPKOperation SDK 807)。たとえば、CSP 831および/またはKSPが証明書要求もしくはデータ署名処理を検出した場合、CSP 831および/またはKSPは、認証データをパッケージ化し、証明書および/または署名についてクライアントデバイス801に要求を送ってもよい。そうでなければ、クライアント情報を使用しない動作は、一般的に、クライアントデバイス801を介さずに(たとえば、サードパーティCSP 833を介して)サーバ821で行ってもよく、クライアントデバイス801およびサーバ821間で交換されるデータの量と、クライアントデバイス801およびサーバ821がインタラクトする回数とを減らす。
クライアントデバイス801にリモートされる例示的な動作として、スマートカード817上の証明書をリスト化(たとえば、列挙)する要求、証明書の要求、スマートカード817の秘密鍵を使用する署名動作、および、スマートカード817の秘密鍵を使用する復号化動作が挙げられるが、これらに限定されない。クライアントデバイス801に送信(たとえば、リモート)されないかもしれない(たとえば、サードパーティCSP 833によって、またはそうでなければサーバ821で行われてもよい)例示的な動作として、コンテキストおよびハンドル管理、パラメータ収集およびハンドリング、乱数生成、共通鍵生成および派生、バルク暗号化および復号化、メッセージダイジェストを生成するためのデータハッシング、セッション鍵のラッピング、署名検証、および特定の他の動作を含むが、これらに限定されない。
CSP 831および/またはKSPはまた、クライアント801がデータの署名もしくは復号化を行うために、または、クライアント801に伴う任意の他の動作のために、証明書のその要求とともにクライアントデバイス801に、PKINITコンテキスト情報などのコンテキスト情報を供給してもよい。コンテキスト情報の供給は、その全体が参照により本明細書に組み込まれる米国特許出願第13/886,845号にさらに詳細に説明されている。コンテキスト情報を供給すると、(仮想チャネルドライバ805および835を介して確立された)サーバ821およびクライアントデバイス801間のリモーティングチャネル836の誤用から保護されるであろう。
例示的な署名動作について説明する。ケルベロスモジュール827は、たとえば、クライアントデバイスの署名が所望されていることを示すために、ログオン時にCSP 831へ呼び出しを行ってもよい。たとえば、米国特許出願第13/886,845号にさらに詳細に説明されているように、ケルベロスモジュール827は、PKINIT中に署名されるべきAuthPackに署名する呼び出しを行ってもよい:
Figure 0006526181
スマートカード817の秘密鍵はAuthPack構造に署名するために、クライアントデバイス801によって使用されてもよい。署名は、RFC 5652に記載された暗号メッセージ構文(CMS)を用いて行ってもよい。特に、RFC 5652に記載されているように、AuthPackを、SignedDataエンベロープ内に配置してもよい。したがって、RFC 4556および5652で定義され、その記載が参照により本明細書に組み込まれる米国特許出願第13/886,845号にさらに詳細に説明されるように、整形されたASN.1構造を、ハッシュ機能呼び出しに渡される生データが有してもよいため、署名動作はCSPレベルで認識可能であってもよい。
いくつかの態様では、クライアントデバイス801にリモートされる動作(たとえば、署名および復号化)は、プロトコルコンテキスト(たとえば、ASN.1または他の認識可能な構造)を示していないかもしれない。したがって、これらの動作は、これらの動作を生じるプロトコルコンテキストの証明を提供せずに提供されてもよい。
上記で説明したように、クライアントデバイス801は、認証プロセス中にサーバ821から1つ以上の要求を受け取ってもよい。クライアントデバイス801上のプロセスを、1つ以上のプロセス間通信(IPC)機構を介して通信してもよい。さらに、各プロセスは第一のプロセスを他のどのプロセスが呼び出しているかを決定してもよく、これは、認証中に過剰なPINプロンプト(または他の資格情報プロンプト)を防止すべきかどうかを決定するために使用されてもよい。プロセスがすでにスマートカード817のロックを解除している場合、ユーザが再度PINを提供する必要がないように、1つ以上のその後のPINプロンプトがブロックされてもよい。しかし、プロセスがスマートカード817を使用していない場合は、ユーザはPINの入力を促されてもよい。クライアントエージェント803は、それが論理的に(ユーザの観点から)1つのアプリケーションを備えているとしても、複数のプロセスで構成されてもよい。これらのプロセスの1つが、ブローカリング中の以前の認証であるため、スマートカードの使用を許可されるかもしれず(そして他は許可されないかもしれず)、したがって、クライアントデバイス801は、より多くのPINプロンプトを回避するために、クライアントエージェントのログオンステップからのこれらの追加のスマートカード動作を、第一のプロセスにルーティングし戻してもよい。
一方、追加のPINプロンプトはいくつかの状況で発生することがある。クライアントデバイス801がユーザのPIN(または他の資格情報)について再びユーザに入力を促すかどうかは、スマートカードのPINをどのプロセスが呼び出しているかに依存してもよい。いくつかの態様では、ユーザが、スマートカードを使用したい各アプリケーションを許可してもよい。これは、オペレーティングシステムおよびCSPによって実装されてもよく、それにより、ロック解除されたスマートカードは、PINプロンプトを引き起こした、したがってユーザ許可を取得した第一のプロセスとは異なる目的であるかもしれないもののための他のプロセスによっては必ずしも利用可能ではない。いくつかの場合では、スマートカード自体はPINプロンプトを強制する内部ポリシーを有していてもよい。
いくつかの態様において、先に説明した認証方法は、CSP(たとえば、CSP 831)および/またはKSP上で実装されてもよい。CSPまたはKSPを使用する場合は、ハッシュ機能が使用されないかもしれない。一般的には、CSP機能の多くは、CpSignHashおよびCpDecryptなどの、クライアントデバイス801を用いる動作以外は、標準的なCSP(たとえば、サードパーティCSP 833)に委任することができる。いくつかの実施形態では、ケルベロスモジュール827がまた、ユーザ証明書をフェッチしてAS−REQパケットに入れた場合、ケルベロスモジュール827は、ユーザ証明書を読むためにCryptGetKeyParamを呼び出してもよい。したがって、CryptGetKeyParamは、クライアントデバイス801からユーザ証明書を要求するCSP 831をトリガしてもよい。
クライアントデバイス801へとリモートされる動作(たとえば、1つ、2つ、3つ、または4つの動作)を行った後、ケルベロスシステム827は、ドメインコントローラへのその認証を完了させ、基本オペレーティングシステムのログオンを完了してもよい。
サーバ821は、スマートカードの取り外しポリシーをサポートしてもよい。いくつかの態様では、クライアント側のPC/SC 815とサーバ側のPC/SC 839との間に別の仮想チャネル838が存在してもよい。サーバ821は、この仮想チャネル838を使用してスマートカード層を見ることができ、そのために、スマートカード817が取り外されたときを決定することができる。この実施例では、資格情報プロバイダ825は、正しいスマートカードリーダ名がKERB_SMARTCARD_CSP_INFOなどのデータフィールドでリスト化されていることを確認してもよく、それにより、それはPC/SC仮想チャネル838によって公開された情報と一致する。
他の態様では、PC/SC仮想チャネル838は、使用されないかもしれない。その代わりに、サーバ821は、サーバ側のCSP 831とクライアント側のPKOp 807との間の仮想チャネル836を使用して、スマートカード817の状態を決定してもよい。たとえば、クライアントデバイス801は、スマートカード817の状態を決定してもよく、状態は、仮想チャネル836を介してCSP831へとPKOp 807によって送信されてもよい。
サーバ821は、スマートカード817の状態をエミュレートする仮想スマートカードリーダ(図示せず)を生成して格納してもよい。サーバ821は、サーバ821における仮想スマートカードリーダの状態を決定することによって、スマートカード817の状態を決定してもよい。サーバ821は、スマートカードが取り外されたと決定した後、様々なアクションを実行することができる。たとえば、サーバ821は、ユーザが自身のアクセス端末から離れる場合、セッションをロックしてそれをセキュアにしたままにしてもよい。これにより、ユーザは自身のカードを自身で携帯する以外、何らの行動をする必要もない。
図9は、本明細書に記載の1つ以上の例示的な態様に従った高速スマートカードログオンのための別の例示的なシステムを示している。図9に示すシステムは、図8に示されたシステムの拡張を含み、補助的なサードパーティ(たとえば、ベンダー)CSP機能をサポートしてもよい。
図8に示すコンポーネントに加えて、図9の実施例におけるサーバ821は、サードパーティCSPである、CSP 932を含んでもよい。いくつかの態様では、CSP 932は、図7に示すCSP 731であってもよい。両方のCSPは、ユーザのPINまたはバイオメトリックを格納してもよい。この実施例では、クライアントデバイス801は、サーバ821へとPIN(または他の資格情報)を送信してもよい。PIN(または他の資格情報)を、たとえば、ディフィー・ヘルマンなどの、クライアントデバイス801およびサーバ821間の鍵ネゴシエーションにより、送信中に保護してもよい。鍵ネゴシエーションは、TLSなどの任意の下位レベルのトランスポートセキュリティ機構に加えて、PKOp仮想チャネルの内部で発生してもよい。PIN(または他の資格情報)を受信すると、CSP 932はPINを格納(たとえば、キャッシュ)してもよい。PINを格納することにより、CSP 932は、ログオン後のアプリケーション使用のために(たとえば、インタラクティブサーバセッションで実行中のアプリケーションおよび/または他の同様の機能のために)、スマートカード817のロックを解除してもよい。仮想セッション内の典型的なアプリケーションは、ウェブブラウザ、生産性ソフトウェア、電子メールクライアント等を含んでもよい。さらに、CSP 932は直接、ログオン中に使用されないかもしれず、よって、CSP 932でのPINの格納は、ログオン性能(たとえば、速度、レイテンシ、セキュリティ等)にほとんど、またはまったく影響を与えないであろう。CSP 932でのPINの格納は、インタラクティブサーバセッションで実行されているアプリケーションのシングル・サイン・オンのために使用されてもよい。たとえば、アプリケーションが、ユーザをサインオンさせるために、CSP 932からPINに直接、アクセスしてもよい。
いくつかの実施形態では、ウェブブラウザなどのインタラクティブサーバセッションで実行中のアプリケーション、文書の署名を利用するアプリケーション、または他のアプリケーションは、ログオン用のスマートカード資格情報にアクセスしてもよい。本明細書で説明される動作は、スマートカード資格情報にアクセスするアプリケーションのために使用されてもよい。これらの実施例では、サーバ側のケルベロスコンポーネント827は、スマートカードへのアクセスを要求するアプリケーションに置換してもよく、上記のように、スマートカード資格情報にアクセスするための動作が行われてもよい。さらに、仮想チャネル836を使用して得られたユーザ証明書を、WINDOWS(登録商標)または他のOS証明書ストアなどの、ユーザセッションのための証明書ストアに伝達してもよい。OSは、PC/SCのAPIを使用するバックグラウンドプロセスとして、通常のスマートカードログオンのために、この動作を実行してもよい。したがって、証明書を、カードについての通常のCSP(たとえば、図9に示すCSP 932)ではなく、CSP 831にリンクさせてもよい。
サーバ側のケルベロスコンポーネント827が、スマートカードへのアクセスを要求しているアプリケーションで置換されている場合、CSP 831(およびPKOp SDK、および他のコンポーネント)は、アプリケーションごとのユーザ許可が所望されていれば、サーバ側での異なるアプリケーション間で区別することができる。異なるサーバ側アプリケーションがカードを使用することを試みる場合があるのでPINプロンプトが自動的に行われないかもしれず、秘密鍵の動作は既に許可されているクライアント側のプロセスにフローバックされてもよい。したがって、CSP 831は、サーバ821によって使用されるPINプロンプトポリシーを示してもよく、それにより、秘密鍵動作はクライアント801によって実行されてもよい。いくつかの場合では、これは、サーバ側CAPI 829によりサポートされているスマートカード動作の概念を公開することによって発生する可能性があり、それにより、動作を、クライアント801上のCAPI 809にミラーリングすることができる。
いくつかの実施形態では、スマートカードはまだロック解除されていないかもしれず、インタラクティブPINプロンプトを使用してもよい。これらの実施形態では、PINプロンプトは、クライアント801ではなく、サーバ821によって取り扱われてもよい。サーバ821上でのPINの収集は、クライアント801上でのPINの収集よりも安全性が低くなるかもしれない。しかし、コアセキュリティシステム(たとえば、WINDOWS(登録商標)上のLSA)が、ユーザの入力を待つ際にブロックされないかもしれず、そうでなければブロックされるかもしれないため、サーバ実装は、この場合にはより容易かもしれない。
(PC/SCではなく)PKOpリモーティングの速度の利点は、前述のように、これらの実施形態に存在するであろう。簡単な例として、このモードは、それがスマートカードの除去によってロックされたが、セッションは切断されなかった場合、リモートセッションのロックを解除するために使用されてもよい。ユーザがスマートカードを再挿入すると、スマートカードの挿入を(たとえば、PC/SCまたはPKOp仮想チャネルを介して)信号で通知してもよく、また、ユーザがカードのロックを解除するためにPINを入力するよう促されてもよい。
図10は、本明細書に記載の1つ以上の例示的な態様に従った高速スマートカードログオンのためのさらに別の例示的なシステムを示している。クライアントデバイス1001は、前述したように、クライアントエージェント1003を含んでもよい。クライアントデバイス1001は、1つ以上の仮想チャネル1005を介してサーバ1021と通信してもよい。クライアントデバイス1001はまた、認証マネージャ1008を含んでもよく、これは、図8を参照して上述したクライアントデバイスのCAPI、CSP2、および/またはミニドライバモジュールのうちの1つ以上を含んでもよい。
認証マネージャ1008は、図7および図8に示す(そして先述した)PKOperation SDKを実装するクライアントエージェント1003内のモジュールであってもよい。クライアントデバイスのオペレーティングシステムに応じて、認証マネージャ1008は、オペレーティングシステムが提供するCAPIを使用するか、または独自のCAPIを含んでもよい。認証マネージャ1008は、セキュリティ保護されたPINキャッシングサービスおよび/またはデバイスなどの、スマートカード1017および/またはシングル・サイン・オン・デバイス1019と通信してもよい。認証マネージャ1008は、認証中にユーザによって提供されたPINまたは他の資格情報を格納してもよい。高速スマートカードログオンは、クライアントデバイス1001が新たな認証フォーカススマートカード証明書サービスにアクセスするために認証マネージャと通信するための新たなIPCチャネルに依存してもよい。
サーバ1021は、クライアントデバイス1001およびサーバ1021間の仮想チャネル1005とインターフェースしてもよいブローカーエージェントサービス1035を含んでもよい。たとえば、ブローカーエージェントサービス1035は、図8に示す仮想チャネルドライバ835を含んでもよい。ブローカーエージェントサービス1035は、認証を容易にするであろう。サーバ1021は、以前に図8を参照して説明したように、暗号化サービスプロバイダのCSP 1031および資格情報プロバイダ1025(たとえば、証明書資格情報プロバイダ)を含んでもよい。サーバ1021はまた、資格情報プロバイダマネージャ1024を含んでもよく、これは、前述の仮想エージェント823を含んでもよい。資格情報プロバイダマネージャ1024は、認証のためにスマートカードログイン(たとえば、図7に示す実施形態)または高速スマートカードログイン(たとえば、図8に示す実施形態)を使用するかどうかを決定するために使用されてもよい。
図10に示すコンポーネントによって実施されてもよい認証ステップについて説明する。まず、クライアントデバイス1001およびサーバ1021間の仮想チャネル1005を確立してもよい。クライアントデバイス1001は、クライアントエージェント1003を介してなど、使用する資格情報プロバイダ1025を決定するために、資格情報プロバイダマネージャ1024を介してなど、サーバ1021とネゴシエートしてもよい。
いくつかの実施例において、サーバ1021は、複数の資格情報プロバイダ1025を有してもよく、および/または、そうでなければ、複数の資格情報プロバイダとインタラクトしてもよい。さらに、クライアントエージェント1003は、スマートカードログインまたは高速スマートカードログインを使用するかどうかを決定するために資格情報プロバイダマネージャ1024とネゴシエートしてもよい。クライアントエージェント1003は、クライアントデバイス1001がスマートカードまたは他の資格情報を使用して認証することを希望することをサーバ1021に通知してもよい。
サーバ1021上の資格情報プロバイダマネージャ1024が、高速スマートカードログオンを使用(たとえば、有効化)すべきであると検出した場合、資格情報プロバイダ1025をトリガしてもよい。つまり、資格情報プロバイダマネージャ1024は、特定の資格情報プロバイダ1025にスマートカードログイン手順を実行することを通知してもよい。このトリガは、CSP 1031で見つかった証明書を使用して認証するようにドメインログオンプロセス(たとえば、WinLogon.exe)に通知してもよい。CSP 1031は、証明書の取得および署名動作などのクライアントデバイス1001を伴う動作を、クライアント1001に指示し、一方で、サーバ1021上でローカルに他の暗号機能を実行してもよい。
以前に図8を参照して説明したように、資格情報プロバイダ1025は、認証用にケルベロスモジュールと通信してもよい。資格情報プロバイダ1025およびケルベロスモジュール間の動作中、CSP 1031は、証明書動作および/または署名動作(またはクライアントデバイス1001に格納された情報を使用する他の動作)を実行するために呼び出されてもよい。CSP 1031は、所望のクライアントまたはユーザ情報を取得するために、サーバ側のブローカーエージェントサービス1035とクライアント側の仮想チャネル1005とを介してクライアントデバイス1001で認証マネージャ1008と通信してもよい。
クライアントデバイス1001が情報の要求を受信した後、証明書の選択およびPINの要求を含むユーザインターフェースのインタラクションを、クライアントデバイス1001上の認証マネージャサービス1008が取り扱ってもよい。スマートカードログオンが有効になっている場合、既存のスマートカードの仮想チャネル(たとえば、PC/SC)ではなく、(前述したような)仮想チャネルを使用してもよい。いくつかの態様では、クライアントデバイス1001は、サーバ1021によって要求された動作を実行するために、(たとえば、証明書を選択する、PINまたはバイオメトリックを入力する等)インタラクティブにユーザの入力を促してもよい。たとえば、資格情報プロバイダがトリガされる前に、ユーザインタラクションステップは、クライアントエージェント接続中の初期に発生してもよい。
以下の動作またはコマンドは、スマートカードログインまたは高速スマートカードログインの間で選択するために使用されてもよい。
Figure 0006526181

ログオンシーケンスにおけるステップは、クライアントデバイス1001上の認証マネージャサービス1008によって制御してもよく、これは、グラフィカルユーザインターフェース(GUI)を介して情報の入力をユーザに促すかどうかを決定してもよい。起動時に、クライアントエージェント1003は、高速スマートカード仮想チャネルを有効化するかどうかを決定することに進んでもよい仮想チャネルをロードしてもよい。POLICY_VIRTUAL_CHANNEL_DISABLEDが偽で、ICAFILE_DISABLE_CTRL_ALT_DELが真で、認証マネージャサービスIsCertificateLogonEnabled()が真である場合に、高速スマートカード仮想チャネルを有効化してもよい。POLICY_VIRTUAL_CHANNEL_DISABLEDが偽で、スマートカードデバイスが検出された場合、IsCertificateLogonEnabled()は真であろう。
サーバ1021における資格情報プロバイダマネージャ1024はまた、活性化ステップを実行してもよい。たとえば、ICAFILE_DISABLE_CTRL_ALT_DELが真の場合、資格情報プロバイダマネージャ1024は、スマートカードログオンを試みてもよい。この点で、資格情報プロバイダマネージャ1024は、POLICY_VIRTUAL_CHANNEL_DISABLEDが偽であり、仮想チャネルがクライアントデバイス1001により有効化され、資格情報プロバイダマネージャ1024が仮想チャネルGetCertificate()の呼び出しを介してログオン証明書を取得することができている(たとえば、クライアントデバイス1001が証明書を取得する)場合、高速スマートカード認証仮想チャネルを使用することを試みてもよい。そうでなければ、(高速スマートカードログオンではなく、スマートカードログオンを有効にするための)既存のスマートカード仮想チャネルが活性化されてもよい。
クライアントデバイスコンポーネントは、GetCertificate()の呼び出しに応答してもよい。仮想チャネルが有効になっていたと仮定すると、GetCertificate()要求は、クライアントデバイスの認証マネージャサービス1008に直接、サーバ1021から渡されてもよい。POLICY_VIRTUAL_CHANNEL_DISABLEDが偽であり、スマートカードデバイスが存在し、証明書が適切なフォーマットを有する(たとえば、証明書の種類のポリシーを満たす)ことを確認した後、認証マネージャサービス1008は、サーバ1021に証明書を返してもよい。必要であれば、スマートカードが検出されなかった場合および/または適切なフォーマットの利用可能な複数の証明書が存在する場合、認証マネージャサービス1008は、スマートカード1017を挿入するか、または証明書を選択するようにユーザに促してもよい。
サーバ1021における資格情報プロバイダ1025およびCSP 1031は、様々なステップを実行してもよい。資格情報プロバイダマネージャ1024が証明書を受信した場合、それは、資格情報プロバイダ1025を起動し、資格情報プロバイダ1025へと暗号的にランダムなCSPアクセスチケットを送信してもよい。CSP 1031は、ブローカーエージェントサービス1035のローカル認証サービスによって提供された証明書機能を使用してインタラクティブログオンを行ってもよい。たとえば、ローカル認証サービス1035は、CSPの呼び出し元が、SignHash()または他の動作を実行する仮想チャネルを使用する前に、アクセスチケットを知っていたことを検証してもよい。
クライアントデバイスコンポーネントは、SignHash()動作に応答してもよい。仮想チャネルが有効になっていたと仮定すると、SignHash()要求を、クライアントデバイス1001の認証マネージャサービス1008に直接、渡してもよい。POLICY_VIRTUAL_CHANNEL_DISABLEDが偽であり、証明書がユーザによって選択されており、PINがシングル・サイン・オン・サービスから入手可能である、または、以前のスマートカードセッションが存在する(たとえば、ユーザが別のサービスに認証されたときの以前のステップから)、または、スマートカード1017のロックを解除するために使用された、正しいPINまたは指紋や他のバイオメトリックなどの他の資格情報をユーザが供給する場合は、認証マネージャサービス1008は、ハッシュに署名してもよい。
〈連携されたログオンの例示的な実施形態〉
前述の高速スマートカードログオンを実装するために使用されるコンポーネントはまた、連携されたフルドメイン(たとえば、アクティブディレクトリ(AD))ログオンを実装するために使用されてもよい。フルドメインログオン後、セッションはフルネットワーク資格情報を有してもよい(たとえば、ケルベロスチケット認可チケット(TGT)およびチャレンジ/レスポンスのパスワードハッシュ(たとえば、NTLMパスワードハッシュ))。たとえば、ユーザは、SAML認証トークンを提供することにより、アクティブディレクトリのユーザアカウントとして、仮想デスクトップセッション、物理PC、またはリモートデスクトップサーバセッションに認証してもよい。
以下の実施例でさらに詳細に説明するように、ユーザは、適切である任意の資格情報の種類および/または認証プロトコルを使用して、アイデンティティプロバイダ(IdP)など、外部コンポーネント/サービス/デバイスを認証してもよい。この認証は、外部認証イベントと呼ばれてもよい。外部認証イベントの例として、セキュリティアサーションマークアップ言語(SAML)アイデンティティプロバイダにおけるログオン、TLSまたはSSLを介したスマートカード認証、および、バイオメトリクスまたはADパスワードなしのワンタイムパスワード(OTP)などの代替認証資格情報が挙げられる。
IdPによる認証後、名付けられた信頼パーティ(RP)またはサービスプロバイダにIdPが確認トークン(たとえば、SAMLトークン)を発行してもよく、これを、ユーザからのサービスアクセス要求を処理するために使用してもよい。RPは、すべての認証の詳細を知っていること、または直接の資格情報とのインタラクトを必要とせずに、要求元ユーザのアイデンティティの満足のためにIdPからのフレッシュSAMLトークンを使用してもよい。SAMLトークンの代わりに、IdPがユーザのアイデンティティを確認したことを(後述の)資格情報マッピングサービスが保証される限り、他のトークンフォーマットまたはアイデンティティ確認機構を使用してもよい。仮想スマートカードの資格情報(短期間ログオン証明書とも呼ばれる)を、外部認証イベントの受諾(たとえば、IdPによる認証)に基づいて発行してもよい。
上記の高速スマートカードログオンからの証明書動作インターセプトコンポーネントを、PC/SCのAPIレベルにおけるスマートカードを完全にエミュレートすることなく、仮想スマートカードとのインタラクションを可能にするために使用してもよい。仮想スマートカードを、リモートコンピューティング環境(たとえば、認証サーバ)においてローカルに、および/または、資格情報マッピングサービスをホストするサーバなどの、高度に保護された別個のサーバにおいて、IdPにて作成してもよい。
様々な連携(federation)シナリオが存在する。たとえば、外部ユーザの伝統的な連携はビジネスツービジネスであってもよい(たとえば、サプライチェーン、共同開発などのパートナー)。コンシューマツービジネスはたとえば、市民、退職者、退役軍人等を含んでもよい。クラウドサービスは、クラウドデスクトップが企業リソースにアクセスするために使用されるソフトウェアアズアサービス(SaaS)製品および/またはデータアズアサービス(DaaS)にアクセスするための、企業制御ユーザ認証を含んでいてもよい。次世代の企業セキュリティモデルは、デバイスからのSaaSおよびオンプレムリソース用の、ユーザ認証のための中心点として、アイデンティティプロバイダ(IdP)を含んでもよい。IdP自身が、アイデンティティアズアサービス(IDaaS)などの、オンプレムまたはクラウドサービスであってもよい。
図11は、本明細書に記載の1つ以上の例示的な態様に従った連携されたログオン用の例示的なシステムを示している。図12A〜図12Cに示された例示的なシステムで使用されるように、図11に示すシステムは、資格情報マッパーを使用しないかもしれない。
図12Aは、本明細書に記載の1つ以上の例示的な態様に従った連携されたログオン用の別の例示的なシステムを示している。いくつかの態様では、スマートカードは、この連携されたログオンの場合に使用されないかもしれない。その代わりに、証明書が認証に使用されてもよく、リソースシステム1221(たとえば、顧客の構内の)は、証明書がスマートカード証明書であると考えてもよい。
システム1221は、セットアップフェーズを開始する。アプリケーションストア1225は、信頼できるデバイスを含んでおり、資格情報マッパー1229から、ユーザのドメイン(たとえば、ADまたはディレクトリサービス1241)ログオン資格情報を要求するために使用される。資格情報は、短命のスマートカードのクラス証明書(たとえば、仮想スマートカード証明書)を含んでもよい。資格情報マッパー1229は、ADユーザのための短命スマートカードクラス証明書を要求するために、サードパーティ証明書サービス(たとえば、MICROSOFT証明書サービス)などの、証明書サービス1231によって信頼されてもよい。資格情報マッパー1229は、ユーザのために仮想スマートカードを作成するために使用されてもよい。資格情報マッパー1229は、証明書サービス1231から証明書を要求してもよく、証明書サービス1231は、資格情報マッパー1229に、ユーザについてのスマートカードクラス証明書を返してもよい。仮想スマートカードを、資格情報マッパー1229で格納(たとえば、キャッシュ)してもよい。
カスタムテンプレートを、制御を提供するために使用してもよい。発行インフラストラクチャの制御を提供する(たとえば、スマートカードのクラス証明書を要求するために、信頼されているサーバを制限または特定する)のと同様、カスタムテンプレートはまた、特別なマーカーを発行証明書に含ませることができ、これにより特別なグループメンバーシップがログオントークンおよびケルベロスチケットに挿入されることになる。
いくつかの態様では、複数のマーカーを証明書に配置してもよく、その各々がそれ自身のグループメンバーシップを選択する。これは、異なるグループへの認証およびサービスプロバイダアクセス要求の完全な状況を構成する異なる属性をマップするための柔軟性を提供することになり、所望のリソースアクセス制御ポリシーの表現をより簡単にする。これらのマーカーによって、たとえば、WINDOWS(登録商標)ベースのインフラストラクチャおよびサービスが、現実のスマートカードまたはパスワードを使用するのではなく、この特定の機構によってユーザがADに認証されていることを認識することができるであろう。
異なるテンプレートを、SAMLトークンの属性、または認証保証の真のレベルの他の指示に基づいて資格情報マッピングサービス1229によって使用してもよい。追加または代替の認証状況が、認証保証レベル以外の関心対象であってもよい。たとえば、ユーザの地理的位置またはサービスプロバイダにアクセスするために使用される接続経路(たとえば、境界の内側対外側)が、関心対象であってもよい。証明書テンプレートを、これらの利用可能な属性および状況指標のいくつかまたはすべてからのマッピングに基づいて選択してもよい。さらに、またはあるいは、カスタムステートメントまたは属性を、たとえば、認証局に資格情報マッパーサービス1229によって送信された証明書署名要求を介して、資格情報マッピングサービス1229によって証明書に加えてもよい。これらは、セキュリティグループにマッピングされていないかもしれないが、直接、クライアント証明書認証を使用するウェブアプリケーションなどのアプリケーションで検査することができる。
ディレクトリサービス1241は、ユーザログオン用のスマートカードのクラス証明書を発行する証明書サービス1231を信頼してもよい。この信頼ステップは、たとえば、アクティブディレクトリログオンに使用する仮想スマートカード証明書を有効化してもよい。信頼ファブリックが、サービスツーサービスのアイデンティティおよびセキュリティ保護された通信を確立するのに適切であってもよい。任意に、資格情報マッパー1229は、アイデンティティプロバイダ(IdP)1213によって発行されたSAMLトークンをクロスチェックしてもよい。
システムは、ランタイムフェーズを開始してもよい。クライアントエージェント1201内のウェブビュー1203を、IdPのログオンを取り扱うために使用してもよい。クライアントエージェント1201は、ログオンのためにIdP 1213に資格情報を送信してもよい。ウェブビュー1203はまた、ゲートウェイサーバ1223またはアプリケーションストア1225にSAMLログオンするための標準的なセキュリティアサーションマークアップ言語(SAML)プロトコルをサポートしてもよい。ゲートウェイサーバ1223は、企業リソースおよび/もしくはクラウドリソースへのアクセスを提供するサーバまたは他のリソースであってもよい。ログオンプロセス中に、IdP 1213は、クライアントエージェント1201へアイデンティティ確認トークン(たとえば、SAMLトークン)を送り戻してもよい。SAMLトークンを、それがアイデンティティシステム1211で認証されたことの証明としてクライアントエージェント1201によって使用することができ、アイデンティティシステム1211は、リソースシステム1221の外部パートナーを含んでもよい。
ウェブフォームを含むHTMLページを含んでいてもよいログオンページ1215は、ユーザから、または潜在的にブラウザもしくはクライアントエージェント自体から認証資格情報を収集するために使用されてもよい。これらの資格情報は、ユーザ名およびパスワードフォームから洗練されたリスクベース認証システムにまで亘ることができる。IdP 1213は、任意の適切な認証方法(複数可)で正規ユーザを認証するために、これらのログオンページ1215を使用してもよい。
ディレクトリ1217は、アイデンティティストアもしくはアカウントデータベースまたはIdP 1215をサポートしている他のディレクトリを含んでもよい。たとえば、ディレクトリ1217は別の会社のネットワークでのアクティブディレクトリのインスタンスであってもよく、または別のベンダーのLDAPディレクトリ製品を使用してもよい。
DirSync 1219は、リソースシステム1221(これは、仮想化サーバ1237を介して公開されていてもよい)でホストされているアプリケーションおよびデスクトップへのアクセスを許可されるディレクトリ1217内の正当で許可された各ユーザのためにディレクトリサービス1241におけるシャドウアカウントが存在することを保証する機構または機構のセットを含んでもよい。
DirSync 1219機構の例としては、許可されたユーザ名および他の関連アイデンティティまたは許可情報のリストを伴うスプレッドシートの電子メール送信またはアップロードなどの手動手順を挙げられる。他の例としては、(おそらくはディレクトリの識別部分での)一部またはすべてのアカウントについてのディレクトリ1217を照会するバッチジョブを、定期的にスケジュールし、または恒久的に繰り返し、ディレクトリサーバ1241にそれらを送信することが挙げられる。他の例として、ディレクトリ1217の変更を監視し、それらの変更が発生したとき、または、スケジュールに従ってのいずれかで、それらの変更を送信することが挙げられる。別の機構としては、暗黙的であり、すなわち、ユーザアイデンティティがリソースシステム1221に提示されていることをフェデレーショントークン(federation token)が引用するときに、ディレクトリ1217における新たな許可ユーザの存在を暗示してもよい。
いくつかの態様では、証明鍵バインディングを使用してもよい。SAMLトークン証明鍵は、フルドメインログオンを可能にするために作成された仮想スマートカードにリンクされてもよい。この証明鍵(または関連する証明鍵)を、実際に仮想スマートカードを使用するためにリモートコンピューティング環境によって使用してもよい。クライアントエージェント1201は、IdP 1213により発行されたSAMLトークンにバインドされている証明鍵をネゴシエートしてもよい。
いくつかの態様では、パスワードが(以下でさらに詳細に説明する)ゲートウェイサーバ1223またはアプリケーションストア1225ログオンプロセス中に直接、利用できない場合でも、SAMLトークンまたは他の信頼ログオン資格情報を、対応するADユーザパスワードにマッピングしてもよい。たとえば、パスワードは、そのログオン中のIdP 1213によってキャプチャされてもよく、ゲートウェイサーバ1223またはアプリケーションストア1225に、信頼バックチャネルを介して中継されてもよい。他の態様では、パスワードボールトまたはパスワード制御サービスは、パスワードをゲートウェイサーバ1223またはアプリケーションストア1225に返してもよい。別の実施例では、資格情報マッパー1229は、それ自体が特定のユーザアカウントのパスワードを制御してもよい。これらのパスワードは、ユーザが選択したパスワードではないかもしれず、したがって、ユーザごとのソルトを使用して、それらをマスター鍵から導出することができる。この実施例では、データベースまたはパスワードボールトが使用されないかもしれない。
フルドメインログオンが要求される場合には、クライアントエージェント1201は、ゲートウェイサーバ1223および/またはアプリケーションストア1225にSAMLトークンを送信してもよい。ゲートウェイサーバ1223および/またはアプリケーションストア1225は、クライアント1201がアイデンティティシステム1211で認証されていることを確認するために、(たとえば、バックチャネルを介して)SAMLトークンを送信することによるなど、IdP 1213と通信してもよい。SAMLトークンが有効期間などの時間を含む場合、IdP 1213は、現在時刻が有効期間内であることを検証してもよい。さらに、またはあるいは、信頼パーティ(コンポーネント)は、ローカルに保存されている(たとえば、信頼できる)IdPの署名証明書のコピーを使用してそれが含まれているデジタル署名をチェックすることにより、SAMLトークンをローカルに検証してもよい。
アプリケーションストア1225、デリバリーコントローラ1235および/または仮想化デバイス1237は、仮想化デバイス1237上でのログオンプロセスを駆動するために使用してもよい資格情報プラグイン1239にアプリケーションストア1225が提供するカスタムログオンデータを安全に運んでもよい。アプリケーションストアは、ログオンデータプロバイダなどの認証拡張1227を含んでいてもよく、これは、本明細書に記載のように、仮想スマートカード参照、仮想スマートカードにアクセスするための仮想化デバイス1237のための一致資格情報プラグイン、および、仮想スマートカードを実装するためのサポートサービスインフラストラクチャ(たとえば、資格情報マッパー1229)を取得するために使用することができる。
クライアント1201が認証されていることが検証されると、ゲートウェイ1223、アプリケーションストア1225および/またはデリバリーコントローラ1235(たとえば、デスクトップデリバリーコントローラ)は、指定仮想化マシン上でのADログオン用の時間制限付き(たとえば、一時的)スマートカードクラス証明書を取得するために資格情報マッパー1229を許可してもよい。換言すれば、一時的証明書は、スマートカード(たとえば、スマートカード内の1つ以上の証明書)をエミュレートするために作成されてもよい。時間制限付き証明書は、数分、数時間、数日、またはより短いもしくはより長い期間で有効であってもよい。許可ステップをサポートするために、ストア1225/コントローラ1235は、資格情報マッピングサービス1229によって再び検証すべきその有効性のために、IdP 1213からのオリジナルSAMLトークンを提示してもよい。たとえば、資格情報マッパー1229は、SAMLトークンを検証するためにIdP 1213と通信してもよい。このステップはまた、SAMLトークンから仮想スマートカードへのバインドする証明鍵の転送、または新しい証明鍵のネゴシエーションを容易にすることができる。
ログオンチケットが発行されて、リモートディスプレイプロトコル(たとえば、クライアントエージェント)ファイルに進んでもよい。ログオンチケットアプローチでは、クライアントエージェント1201に送られたログオンチケットはまた、資格情報マッピングサービス1229に保持された仮想スマートカードの秘密鍵を最初に暗号化するために使用されてもよい。加えて、または代替的に、クライアントエージェント1201によって保持された証明鍵を、短命の証明書にリンク(たとえば、バインド)してもよい。任意で、資格情報マッパー1229に、クライアント1201による有効なログオンの証拠として、オリジナルのIdPの認証トークンを提示してもよい。ログオンチケットを、資格情報マッパー1229によって提供される仮想スマートカードへのセキュリティ保護された参照を暗号化するために追加的または代替的に使用してもよい。この実施例では、仮想スマートカードは、仮想スマートカードを使用するようにデリバリーコントローラ1235によって許可されている仮想化エージェント1237によって回収のみされるかもしれない。暗号化仮想スマートカードの参照は、アプリケーションストア1225からデリバリーコントローラ1235に、そして仮想化エージェント1237に送信されてもよい一方、ログオンチケットはクライアントエージェント1201に送られる。これにより、仮想スマートカードが、仮想化エージェント1237が知られる前に作成されること、または、複数の仮想化エージェントに別個にログオンするために使用されることが可能となる。
仮想化エージェント1237は、資格情報マッピングサービス1229にログオンチケット(またはログオンチケットを使用して復号されたセキュリティ保護された仮想スマートカード参照)を提示してもよく、MICROSOFT ADなどのディレクトリサービス1241へのクライアントデバイス1201のログオンのためのスマートカードクラス証明書を使用してもよい。資格情報プラグイン1239(たとえば、ログオンフック)は、上述の高速スマートカードログオンアプローチに非常に類似していてもまたは同一であってもよい。資格情報プラグイン1239は、サーバ側仮想エージェント823、資格情報プロバイダ825、および/または図8を参照して説明したCSP 831を含んでもよい。
資格情報マッパー1229は、証明書サービス1231とインタラクトしてもよく、これは、対応する秘密鍵とともにスマートカードのクラスユーザ認証証明書を取得するためのWINDOWS(登録商標)証明書サービスなどの証明機関を含んでもよい。つまり、資格情報マッパー1229を、ユーザのための登録機関(たとえば、MICROSOFTエンロールメントエージェント)として使用してもよい。証明書サービス1231に要求を送信するときに、資格情報マッパー1229は、認証証明書として使用するための登録機関の証明書を有していてもよい。資格情報を初めて取得するためのブートストラッププロセスが存在してもよく、その後、手動ステップを最小化するために、必要に応じて更新が自動的に発生してもよい。
スマートカードのクラス証明書を、関連するユーザアカウントのインタラクティブログオン資格情報などのディレクトリサービス1241(たとえば、ADドメイン)によって信頼してもよい。つまり、証明書を、仮想スマートカード、たとえば、スマートカードクラスユーザ証明書として、処理してもよい。証明書は、資格情報マッパーサーバ1229上の鍵ストアで保持された対応する秘密鍵で、たとえばケルベロスを介してADログオンのための適切な鍵使用を有してもよい。ハードウェアベースの鍵の保護を、信頼プラットフォーム(たとえば、WINDOWS(登録商標)信頼プラットフォームモジュール(TPM))および/またはハードウェアセキュリティモジュール(HSM)を介してなど、秘密鍵上で使用してもよい。ハードウェアベースの鍵の保護も、有益にログオンレイテンシを減少させるために使用してもよい。
アプリケーションストア1225の認証拡張1227は、ユーザの仮想スマートカードを準備するために、アプリケーションストア1225ローンチシーケンス中(および任意にアプリケーションストア1225ログオンシーケンス中)に資格情報マッパー1229とインタラクトしてもよい。ユーザの仮想スマートカードは、たとえば、各ローンチもしくは再接続イベントのために、オンデマンドで作成されてもよく、または、様々なセキュリティポリシーおよびパフォーマンスニーズに応じて、一定の期間のために再利用されてもよい。仮想スマートカードは、事前に作成されてもよく、特に、上記のように秘密鍵のハードウェア保護が存在する場合は物理スマートカードに使用されるものに近い寿命を有していてもよい。
仮想化サーバ1237の資格情報プラグイン1239は、ログオン中に仮想スマートカードを使用するための関連するオペレーティングシステム呼び出しをインターセプトしてもよく、それにより、特定の動作を、暗号化APIおよびプロバイダを使用してそれらが実行される資格情報マッパーサーバ1229にリダイレクトしてもよい。
図12Bは、本明細書に記載の1つ以上の例示的な態様に従った連携されたログオンのためのさらに別の例示的なシステムを示す。図12Bに示す認証システムは、図12Aを参照して説明した認証システムと類似している。しかし、アイデンティティ確認(たとえば、SAMLトークン)を使用する代わりに、クライアントエージェント1201は、ワンタイムパスワード(OTP)または実際のスマートカード資格情報を、ゲートウェイサーバ1223などのリソースシステム1221内の1つ以上のコンポーネントに送信している。ゲートウェイサーバ1223は、以下でさらに詳細に説明するように、ベンダー認証サービス1251を用いてクライアントまたはユーザを認証してもよい。さらに、以下でも説明するように、ゲートウェイサーバ1223は、RADIUSまたはRESTプロトコルを使用して認証サービス1251と通信してもよい。
図12Cは、本明細書に記載の1つ以上の例示的な態様に従った連携されたログインのための別の例示的なシステムを示す。図12Cに関連して説明したコンポーネントは、ユーザセッション(たとえば、仮想デスクトップセッション)を開始するために、仮想スマートカードを作成して使用するために使用される。ユーザアカウントを保持するADドメインは、証明書サービス1231などの認証局(CA)によって発行されたスマートカードのクラスユーザ証明書がフルADドメインログオンに使用されるのを可能にするために正しいフォームのあらかじめ確立された信頼を有していてもよい。最初に、いくつかの展開ステップが実行されてもよい(図示せず)。たとえば、システムは、資格情報マッパー1229を展開し、図12Cに示されたコンポーネント間の信頼を確立するための(手動ステップでもよい)ステップを実行してもよい。
資格情報マッパー1229は、CAへの登録機関(たとえば、登録エージェント)を含んでもよい。資格情報マッパー1229は、組織のCA管理者(たとえば、セキュリティ担当者)による手動承認を使用したブートストラップ証明書テンプレートを使用して、CAによって発行されたクライアント証明書などの独自の資格情報を要求してもよい。最初の証明書が発行されると、第二の証明書テンプレートは、RA証明書のロールオーバが自動的に取り扱われることを可能としてもよい。現在の証明書の有効期限が近づくと、ロールオーバは、新しい証明書の発行を含んでもよい。
第二の証明書テンプレートはまた、資格情報マッパー1229の1つのインスタンスが、グループに参加し、資格情報マッパー1229の別のインスタンスをホストするために、別のサーバを許可することを可能にしてもよい。セットアップおよび継続的メンテナンスの運用負担を最小限に抑えながら、これをスケールアウトおよび冗長性のために使用してもよい。この特徴のユーザが、高可用性を維持しながら、このような証明書ベースの展開の運用および維持を行う専門家ではない場合、これは有益であろう。
実施例の流れを図12Cを参照して説明する。クライアントエージェント1201(またはブラウザ)は、ゲートウェイサーバ1223にログオンする。いくつかの態様では、ワンタイムパスワード(OTP)をADパスワードの代わりに使用してもよい。ユーザにOTPを発行してもよい。SAMLトークン、スマートカードの資格情報、チャレンジ/レスポンスの資格情報、ケルベロス証明書、バイオメトリクス、PINなどの他の認証資格情報を、OTPの代わりに代替的に用いてもよい。
ステップ1270では、クライアントエージェント1201(またはクライアントデバイスのブラウザ)は、ゲートウェイサーバ1223にOTPを送る。ADパスワードを使用していないため、ゲートウェイサーバ1223は、アプリケーションストア1225へのサインオンに(たとえば、シングル・サイン・オンで)パスワードを使用できないかもしれない。その代わりに、ステップ1272で、ゲートウェイサーバ1223は、ベンダー認証サービス1251を介してユーザを認証してもよい。たとえば、ゲートウェイサーバ1223は、リモート認証ダイヤルインユーザサービス(RADIUS)ネットワークプロトコル、ライトウェイトディレクトリアクセスプロトコル(LDAP)、レプレゼンテーショナルステートトランスファー(REST)ネットワークプロトコル、または、OTPに基づいてユーザを認証するためのネットワークプロトコルの任意の他のタイプを使用してもよい。ゲートウェイサーバ1223は、たとえば、RADIUS、LDAP、またはRESTなどのトランスポートプロトコルの一部として暗号化された平文のユーザ資格情報を送信してもよい。認証サービス1251は、平文の資格情報を回復し、それらを検証してもよい。認証サービス1251は、資格情報が有効であるかどうかを折り返し報告し、正規のユーザ名およびグループIDなどの余分なアイデンティティ情報を潜在的に供給してもよい。
ステップ1274では、ゲートウェイサーバ1223は、シングル・サイン・オン・プロトコルを介して、アプリケーションストア1225へユーザのアイデンティティ(たとえば、ADアイデンティティ)を送信する。ゲートウェイサーバ1223はまた、アプリケーションストア1225へセキュリティコンテキスト情報を送信してもよい。ステップ1274で送信された例示的な情報は、認証方法、クライアントデバイス上で実行されるスキャンを識別する情報、および/またはクライアントデバイスの位置を含む。いくつかのステップは、ゲートウェイサーバ1223によって開始されたSSOセッション中に行われてもよい。
ステップ1276では、アプリケーションストア1225は、一致するユーザ証明書および秘密鍵がWindows(登録商標)ADログオンを有効化するために利用可能であることを保証するために、資格情報マッパー1229(たとえば、ユーザ資格情報サービス)にコンタクトする。アプリケーションストア1225へのゲートウェイサーバ1223により渡されたセキュリティコンテキスト情報の一部またはすべてを、ユーザ証明書に組み込むために資格情報マッパー1229に送信してもよい。コンテキスト情報は、凝縮された、膨張された、またはマップされたフォームで送信されてもよい。
アプリケーションストア1225は、どのセキュリティコンテキスト情報を資格情報マッパー1229に渡すかを制御してもよい。渡すことができる別の情報は、セキュリティグループ(たとえば、WINDOWS(登録商標)セキュリティグループ)に関連付けられている役割ラベルを含んでもよい。役割ラベルは生のセキュリティコンテキスト情報に基づいて選択されてもよく、顧客のセキュリティポリシー決定であってもよい。ユーザを、セキュリティグループに追加してもよい。
アプリケーションストア1225はまた、ケルベロスまたはデバイス証明書を使用することによってなど、資格情報マッパー1229へと認証してもよい。それがマシンレベル認証を使用する場合は、資格情報マッパー1229は、ログオン(たとえば、ユーザの偽装)について(たとえば、信頼できるマシンの異なるセットにより)後で使用することができる資格情報ハンドルを要求するために信頼できるマシンのホワイトリストを実装してもよい。あるいは、アプリケーションストア1225は、ケルベロス制約付き委任(KCD)およびプロトコル遷移を使用して、直ちにユーザを偽装し、資格情報マッパー1229へのケルベロスユーザ認証を実行してもよい。これにより、ホワイトリストをKCDのための標準的なAD制御を使用して管理することができる。これはまた、ユーザ偽装から除外することができる、管理者などの特定のセンシティブなユーザアカウントをブラックリストに登録する機構を提供してもよい。
ステップ1278では、資格情報マッパー1229は、資格情報マッパー1229が特定のユーザのための証明書を要求することを可能にする事前に確立された権限に基づいて証明書サービス1231(CA)への登録機関(たとえば、登録エージェント)として作用することができる。アプリケーションストア1225が提供する役割ラベルを使用して、資格情報マッパー1229は、特定のセッション用の証明書を取得するために使用するCAと証明書テンプレートとの組み合わせを決定してもよい。顧客は、これらの証明書に基づくユーザセッションをWINDOWS(登録商標)セキュリティグループなどの特定のセキュリティグループに所属させるために、ADおよび企業証明書サービス(たとえば、WINDOWS(登録商標) SERVER2008)の認証機構保証機能を使用することができる。これにより、仮想化セッション1237が標準のWINDOWS(登録商標)アクセス制御リスト(ACL)を使用して、ネットワークリソースへのアクセスを許可または拒否されることを可能にしてもよい。ACLは、受託者を識別し、受託者に対するアクセス権を指定するために使用されるアクセス制御エントリ(ACE)をリスト化してもよい。
資格情報マッパー1229は、証明書サービス1231にそのサービスアイデンティティを証明するために、展開中にプロビジョニングされたそのRA証明書を使用する。これは、要求された証明書テンプレートへのアクセスを許可または拒否するために証明書サービス1213によって使用されてもよく、これにより、証明書発行要求1278を許可または拒否する。WINDOWS(登録商標)企業証明書サービスにより、証明書テンプレート上のACLおよび登録エージェントが、どのエンティティが証明書を発行することができるかやどの対象かについて制限することができるのを可能にしてもよい。
ステップ1280では、資格情報マッパー1229がセッションのための適切なユーザ証明書を作成または配置すると、資格情報マッパー1229は、後で証明書資格情報にアクセスするために仮想化マシンが使用できるアプリケーションストア1225へのセキュリティ保護されたハンドルを返す。返されたハンドルは、OAuthトークンと同様であってもよい。たとえば、ハンドルは、後で別のマシンからのネットワークアクセスを可能にするために、サーバのアイデンティティタグなどの他の情報と組み合わされた安全な乱数を含んでいてもよい。ハンドルは、純粋にベアラー所持トークンとして使用できないかもしれない。むしろ、(たとえば、ケルベロスまたはマシン証明書を使用して)そのアイデンティティを独立して証明することができるマシンによって提示され、許可マシンのホワイトリストにある場合は、トークンを使用してもよい。
ステップ1282では、アプリケーションストア1225がユーザのパスワードをキャッシュする方法と同様に、アプリケーションストア1225は、資格情報ハンドルをキャッシュする。そのサイズおよび他の考慮事項に応じて、ハンドルを、クライアントエージェント1201または他のコンポーネントによってキャッシュされるアプリケーションストア1225認証サービスにより発行されたSAML認証トークンに逐語的に配置してもよい。あるいは、ハンドルを、後のハンドル要求の処理時のアクセスのためにアプリケーションストアサーバ1225上に維持された資格情報ホルダーまたはボールト内に配置することができる。アプリケーションストア1225ログオンプロセスは、この段階で完了してもよい。
ステップ1284において、リソースローンチ要求を、ゲートウェイサーバ1223および/またはアプリケーションストア1225によってログオンした後に行う。資格情報ハンドルを、直接的または間接的のいずれかで、アプリケーションストア1225のSAML認証トークンから回収してもよい。ローンチ処理の一部として、ハンドルを、後に行われる表示リモート接続の準備のために、ユーザのセッション(たとえば、WINDOWS(登録商標)セッションなどの仮想化セッション1237)をホストするであろうマシンにデスクトップコントローラコンポーネント1261を介してトランスポートしてもよい。たとえば、ハンドルを、リモートアプリケーションまたはデスクトップコントローラ1261を使用して、仮想化セッション1237に渡すことができる。セッションは、仮想デスクトップまたは仮想アプリケーションセッションを含んでいてもよいし、ホスト1237は、一度に1つのユーザセッションに専用であってもよく、または、(たとえば、リモートデスクトップサービスを使用して)複数の独立したユーザセッションを可能としてもよい。これが再接続イベントである場合は、ユーザセッションがすでに存在してもよく、または、これが初めてのローンチイベントである場合には、ユーザセッションが作成されようとしているかもしれない。
セッションホスト1239は、ハンドルを受信し、表示リモート接続を待つ間、一時的にハンドルをキャッシュしてもよい。ハンドルはまた、ハンドルを開示するリスクを最小限に抑えるために、送信およびキャッシングステップの前に暗号化されてもよい。ハンドルを復号するための鍵は、ログオンチケットの形で、通常のクライアントエージェントのローンチファイルの一部としてクライアントエージェント1201に送信されてもよい。
ステップ1286では、クライアントエージェントのエンジンを、アプリケーションストア1225から受信したクライアントエージェントのローンチファイルを使用して起動する。クライアントエージェント1201は、クライアントエージェントセッションネゴシエーションの一部としてセッションホスト1237にログオンチケットを提示してもよい。図示していないが、クライアントエージェントの接続は、別個の許可チケットを伴いつつ、ゲートウェイサーバ1223を介してプロキシされてもよい。
ステップ1288において、復号鍵を導出するためにログオンチケットを使用して、資格情報マッパー1229によって実行される資格情報動作を要求するために、資格情報ハンドルを回収して使用する。ユーザ証明書自体を取得する動作などの、リモートにスマートカードログオンを実行するために、要求された動作を使用してもよく、それにより、1つ以上の署名動作を実行する、および/または、ケルベロスセッション鍵をアンラップするための1つ以上の復号化動作を実行する。
インタラクションの別の形態は、仮想化エージェント1237に直接、短命仮想スマートカードを作成すること(たとえば、ジャストインタイム)であってもよい。この実施例では、CSPは、通常の証明書取得要求の代わりに、鍵のペアを作成し、資格情報マッパー1229への公開鍵の証明書署名要求を送信してもよい。この要求を、証明書ハンドルを使用し、マシン認証を使用して作成してもよい。
資格情報マッパー1229は、前述したように、役割や他のセキュリティコンテキスト情報に基づいてユーザの証明書を要求する。証明書を、仮想化エージェント1237に返してもよいが、鍵がローカルに存在するときに残りの仮想スマートカード動作がローカルで実行されてもよい。
資格情報マッパー1229を、鍵のペアを作成しないように修正する。その代わりに、資格情報マッパー1229は、ユーザ証明書(たとえば、ユーザアイデンティティ、役割、または他のセキュリティコンテキスト情報)を取得するための関連情報を覚えていてもよい。資格情報ハンドルは、その情報を用いてすでに調製された仮想スマートカードではなく、この情報への参照であってもよい。
高速スマートカードログインの場合と同様に、CSPは、仮想化エージェント1237上の別のCSP(たとえば、標準CSP)に多くまたはほとんどの動作を委任してもよい。フル連携されたログオンの場合、標準的なCSPは、強力な鍵の保護または加速機能を提供するために、TPMまたは他のHSMを活用することができるCSPを含んでいてもよい。鍵を、セッション中の使用のために利用可能に維持してもよい。鍵は、ログオンに使用するのに十分な長さでメモリに保持され、その後、破棄される。前述の実施例では、暗号化動作は仮想化エージェント1237に亘って分散されていてもよく、資格情報マッパー1229の負荷を軽減する。
セッションホストマシン(たとえば、仮想化セッション1237)は、たとえば、ケルベロスまたはデバイス証明書を使用して、資格情報マッパー1229へ認証してもよい。資格情報マッパー1229は、ユーザログオン(たとえば、ユーザの偽装)を達成するために、このように資格情報ハンドルを使用するように信頼されているマシンのホワイトリストを実装してもよい。
図13は、本明細書に記載の1つ以上の例示的な態様に従って、アプリケーションストア1225、資格情報マッパー1229および仮想化エージェント1237の間の例示的なインタラクションを示している。この実施例では、先に述べた高速スマートカードログオン用のコンポーネントを、連携されたフルドメインログオンを実装するために再使用する。たとえば、資格情報マッパー1229は、前述のように、スマートカード1290が短命であって、SAMLトークンまたは他の信頼アイデンティティ確認に基づいて発行されてもよいことを除いて、ネットワーク仮想スマートカードのように作用してもよい。さらに、ワンショットログオンチケット(または前述したような証明鍵)を、リモートディスプレイプロトコル接続にリモートセッションローンチ要求をリンクさせるために、ブローカーまたは資格情報マッパー1229によって生成してもよい。
証明鍵を使用する複数の方法が存在し、そのいくつかは上述した。別の方法では、クライアントエージェントは、IdPへの認証中にSAML認証トークンにリンクされている証明鍵を有していてもよい。この証明鍵はまた、仮想スマートカード証明書にリンクされていてもよく、この証明鍵を伴うクライアントエージェントと仮想化エージェントとの間のインタラクションは、仮想スマートカードを使用できる前に行ってもよい。仮想化エージェントは、クライアントエージェントが(たとえば、仮想スマートカードを使用するための前提条件として)証明鍵を所有するかどうかを確立してもよい。あるいは、仮想化エージェントは、クライアントエージェントと資格情報マッパーとの間の間接的なインタラクションを仲介してもよい。仲介を、仮想スマートカード動作を許可する前に証明鍵の所有を証明するために用いてもよいし、または、潜在的に仮想スマートカードの秘密鍵を復号化するために使用することもできる。
アプリケーションストア1225は、1つ以上のローンチ要求のカスタムログオンデータを取得するために認証サービス1227(たとえば、ログオンデータプロバイダ拡張)を呼び出してもよい。ステップ1305では、認証サービス1227は、資格情報マッパー1229からログオンデータを取得する。資格情報マッパー1229との最初のインタラクションはまた、ローンチ時に遅延を最小限に抑えるのを援助するためのアプリケーションストア1225のログオン時に発生してもよい。資格情報マッパー1229からのログオンデータは、資格情報マッパー1229によって制御される仮想スマートカード1290への参照を含んでもよい。アプリケーションストア1225は、資格情報マッパー1229からログオンデータを受信してもよい。
ステップ1310では、アプリケーションストア1225は、ログオンデータを暗号化し、デリバリーコントローラ1235に暗号化されたデータを送信する。たとえば、クライアントログオンステップの間に、ステップ1310を実行してもよい。いくつかの態様では、デリバリーコントローラ1235に送信された暗号化ログオンデータは非署名であってもよい。
ステップ1315において、デリバリーコントローラ1235は、仮想化エージェント1237に暗号化されたログオンデータを送信する。たとえば、セッション準備中に、暗号化されたユーザ名およびパスワードが標準のローンチ要求中に渡されるのと同様に、ステップ1315を実行してもよい。アプリケーションストア1225は、ログオンチケットとしてクライアントエージェントファイル内で導出することができる暗号化鍵またはランダム値を置くことができる。
仮想化エージェント1237は、資格情報プラグイン1239(たとえば、図12A〜図12Cで示される)を含んでもよく、資格情報プラグイン1239は、仮想化エージェント1237にあらかじめ登録されていてもよい。資格情報プラグイン1239を、特定の資格情報タイプに関連付けてもよく、資格情報タイプを、仮想化エージェント1237に送信されたログオンデータとともにアプリケーションストア1225によって宣言してもよい。
先に説明したように、KCDをログオンするために使用してもよい。KCDの実装では、アプリケーションストア1225からのカスタムログオンデータは、アプリケーションストア1225が発行したトークンまたはチケットを提示するアプリケーションストア1225へ(または資格情報マッパー1229へ)認証されたコンタクトを返すように、異なる仮想化エージェント1237の資格情報プラグインを指示してもよい。
アプリケーションストア1225はその後、KCDを使用して、ジャストインタイムで仮想化エージェント1237にユーザアイデンティティを委任してもよい。この実装は、デリバリーコントローラ1235へのXMLインターフェースおよび仮想化エージェント1237へのブローカリングプロトコルインターフェースを介してフルケルベロス委任チェーンの構築を回避してもよい。仮想化エージェントの資格情報プラグインは、KCDからのネットワークログオントークンをフルインタラクティブログオントークンに変換するための認証パッケージを、その後に伴ってもよい。
クライアントとの接続がなされ、ログオンチケットが提示されている場合、仮想化エージェント1237は、自動ログオン処理を実行してもよい。たとえば、仮想化エージェント1237は、資格情報プロバイダ1292に信号を送ってもよく、これは、たとえば、ワークステーションセッションのために登録されてもよい。資格情報プロバイダの代わりに、資格情報プロバイダフィルタを、リモートデスクトップセッションの場合のように使用してもよい。ステップ1315で受信された暗号化ログオンデータを復号し、検査して、資格情報タイプを決定してもよい。資格情報タイプはカスタム資格情報タイプであってもよいため、復号化データを、登録された資格情報プラグインに渡してもよい。資格情報プラグインは、WINDOWS(登録商標)ログオンシステム(または任意の他のOSログオンシステム)により使用される適切なシリアル化資格情報構造を生成してもよい。シリアル化資格情報は、処理のために資格情報プロバイダ1292(またはフィルタ)から返されてもよい。
資格情報プラグイン1239は、前述のように、KERB_CERTIFICATE_LOGON構造を生成してもよい。KERB_CERTIFICATE_LOGON構造は、スマートカードドメインログオンが実行されることをオペレーティングシステムに知らせてもよい。先に説明したように、データ構造は、スマートカードとのインタラクションのために使用されるドライバ(たとえば、CSP 1294などのCSPまたはKSP)への参照を含んでもよい。ステップ1320では、CSP 1294はその後、仮想スマートカードが存在する資格情報マッパー1229に関連する動作をリダイレクトしてもよい。
特定の仮想スマートカードを使用するための仮想化エージェント1237用の許可を、二倍としてもよい。第一に、仮想化エージェント1237が、資格情報マッパー1229に信頼されているホストのホワイトリストにあることを確認してもよい。第二に、仮想化エージェント1237がセッションの準備中にデリバリーコントローラ1235からの参照を受信したことを確認してもよい。アプリケーションストア1225およびデリバリーコントローラ1235間のリソースローンチインタラクションの性質のため、アプリケーションストア1225(およびしたがって、資格情報マッパー1229)は、それが仮想スマートカード参照を取得する際にデリバリーコントローラ1235により選択されるであろう仮想化ホスト1237のアイデンティティを知らないかもしれない。したがって、仮想スマートカード参照は、任意の信頼された仮想化ホストによって使用可能であるように選択されてもよい。任意の信頼できる仮想化エージェントホストは、ローカルに仮想スマートカードを作成するために、資格情報参照を使用することができる。
図14は、本明細書に記載の1つ以上の例示的な態様に従った連携されたログオン用のさらに別の例示的なシステムを示している。仮想化展開の観点から、図14(およびまた先に述べた図12A〜図12C)に示されたコンポーネントにより実行されるステップは、SAMLを介した参照チケットなどの従来のチケットログオンモデルに類似したモデルであってもよい。
前述したように、クライアントデバイス1401は、アイデンティティプロバイダからSAML認証トークンを受信する。フルドメインアクセスを行う目的で、クライアントデバイス1401は、認証用のアプリケーションストア1411にSAMLトークンを送信する。アプリケーションストア1411は、サーバ1421におけるブローカーエージェントサービス1423および/またはデリバリーコントローラにSAMLトークン(たとえば、ユーザの平文のパスワードではなく)を送信してもよく、これは参照チケットを要求するために使用されてもよい。SAMLトークンは、クライアント1401により送信されたSAMLトークンと同じであってもよく、または、サードパーティIdPによって修飾されていてもよい。サーバ1421が(たとえば、資格情報マッピングサービス1425でSAMLトークンを検証するデリバリーコントローラによって)SAMLトークンが受諾可能であると決定した場合、サーバ1421は、(一時的であってもよい)ユーザのチケットを作成し、作成チケットを参照または識別する参照チケットを返す。たとえば、資格情報マッピングサービス1425は、認証局(CA)1431へのPKCS10要求を生成および送信し、この段階でCA 1431から証明書を取得してもよい。チケットは、資格情報マッピングサービス1425でのように、サーバ1421に格納されてもよい。サーバ1421は、アプリケーションストア1411に参照チケットを送信してもよく、アプリケーションストア1411は、セルフサービスプラグイン1403を介してクライアント1401に参照チケットを送信してもよい。一方、SAMLアサーションが資格情報マッピングサービス1425により拒否された場合に、「アクセス拒否」エラーコードがその代わりにアプリケーションストア1411に返されてもよい。
クライアントデバイス1401は、フルドメインログオンのための参照チケットを償還してもよい。たとえば、クライアントエージェント1405は、セルフサービスプラグインから参照チケットを受信し、任意に参照チケットを格納し、トランスポート(たとえば、リモーティング)プロトコルを使用して仮想化マシン1441へ参照チケットを送信してもよい。仮想化マシン1441は、サーバ1421における(たとえば、DDC)デリバリーコントローラなど(図示せず)、サーバ1421に参照チケットを送信する。チケットを、CITRIX接続ブローカリングプロトコル(CBP)などのブローカープロトコルによって送信してもよい。仮想化マシン1441は、仮想化マシン1441がブローカーに参照チケットを送信したあとまで参照チケットがSAMLアサーションログインを表すかどうか知らないかもしれない。ブローカーからの応答は、平文パスワードまたは公開鍵PKCS7認証証明書チェーンを含む新しい応答構造のいずれかであってもよい。
参照チケットを受信した後、デリバリーコントローラは、チケットが平文パスワード認証処理ではなく資格情報マッピングサービス1425の認証プロセスのために使用されていることを、(参照チケットに含まれる情報に基づいて)決定してもよい。したがって、仮想化マシン1441に平文のパスワードを返すのではなく、デリバリーコントローラは、資格情報マッピングサービス1425によって以前に生成および/または格納されているログオン証明書を返してもよい。
先に図12A〜図12Cを参照して説明したように、サーバ1421におけるコンポーネントは、参照チケットが(たとえば、特定の期間内に償還されるように)正確かつタイムリーであることを検証する。ブローカーはSAMLアサーションを表す有効な参照チケットを受信すると、それは、仮想化マシン1441および資格情報マッピングサービス1425間のプロキシとして作用してもよい。
証明書が提供されると、クライアント1401には、ブローカープロトコル上の秘密鍵署名動作へのアクセスが与えられる。仮想化マシン1441は、ADスマートカード認証を使用して、ユーザをログインさせてもよい。第一の通信パケットは、公開PKCS7証明書チェーンの要求であってもよい。仮想化マシンからの後続の要求は、秘密鍵署名動作のためのものであってもよい。
種々のセキュリティポリシーを使用することができる。資格情報マッピングサービス1425には、認証局1431(たとえば、MICROSOFT認証局)への特権アクセスを付与してもよい。認証局1431は、ユーザに証明書を発行してもよい。認証局1431によって資格情報マッピングサービス1425上に配置された任意の制限に加えて、セキュリティポリシーのクラスは、資格情報マッピングサービス管理者によって構成されてもよい。
第一に、どのユーザがログインすることができるかを制御してもよい。アクセス制御リスト(ACL)は、誰が資格情報マッピングサービス1425を使用して認証を許可することができるかおよびできないかを指定してもよい。たとえば、ドメイン管理者グループのメンバーの誰もがこのようにアクセスを許可されないことを決定してもよい。
第二に、どの仮想化マシンがチケットを償還してよいかを制限してもよい。ブローカーの要求時に、チケットは、名付けられた仮想化マシン(たとえば、ケルベロスドメインアカウントまたは信頼エリアRID)により償還可能であってもよい。資格情報マッピングサービス1425は、仮想化マシンのリストを制限することができる場合がある。たとえば、1つの仮想化マシンカタログが本明細書に説明された機構を使用して認証を許可されるべきであると決定されてもよい。
第三に、証明書の有効期間が使用されてもよい。証明書は、何分であるかなどの短い期間の使用のために利用可能であってもよい。これは、認証局1431を介して制御可能であってもよい。より長寿命の証明書が望ましい場合は、失効システムを、たとえばユーザのログオフによって、トリガまたは実装してもよい。あるいは、より長寿命のネットワーク仮想スマートカードを利用してもよい。ネットワーク仮想スマートカードは、たとえば仮想スマートカード秘密鍵を暗号化するためのハードウェアセキュリティモジュールまたはトラステッドプラットフォームモジュール(TPM)を使用することにより、より高いセキュリティレベルへと保護されていてもよい。あるいは、各秘密鍵を、特定のクライアントエージェントによって保持された永続的な証明鍵にリンクさせてもよい。仮想スマートカードは、ログオフ時に取り消されないかもしれないが、資格情報マッピングサービス1425によって永続的に格納されることができる。したがって、資格情報マッピングサービス1425に格納されている仮想スマートカードを、それらは資格情報マッピングサービス1425(特定の仮想化ホストではなく)に格納されるため、長期間(たとえば、ドメインログオンのためだけではないセッションの間)に亘って再利用することができ、これにより、仮想スマートカードのより強力な保護および他のパフォーマンス上の利点が提供されるであろう。
第四に、証明書のキャッシングおよび再検証を制御してもよい。証明書を、初期認証およびその後のデスクトップロック解除動作の両方に使用してもよい。デフォルトでは、証明書をある期間だけキャッシュしてもよいが、新たなSAMLトークンを提出することによって新しい証明書が生成されるポリシーを構成することを、管理者は望むであろう。
第五に、SAMLアサーションの検証を実装してもよい。SAMLトークンの検証上の標準制御が提供されてもよい。Windows(登録商標)のUPNを主張するSAMLトークンを最初に許可してもよく、これは、サードパーティIdPの特別な構成を必要とするかもしれない。
種々の他のセキュリティ制御が、本明細書に記載のコンポーネントのために構成されてもよい。たとえば、各ユーザドメインについてのディレクトリサービス(たとえば、AD)管理者などの管理者が、手動で関連するCAの信頼を構成してもよい。たとえば、管理者は、ADにおけるMICROSOFT NTAuth証明書ストアなどの保護されたデータストアに、ルートまたは下位ルート証明書などの証明書をインポートしてもよい。これらの証明書をインポートすると、関連するCAがスマートカードまたはドメインコントローラの種類の証明書を発行するのに信頼されていることを示すであろう。WINDOWS(登録商標)証明書サービスを企業CAとして展開している場合、証明書のインポートを自動的に実行してもよい。
CA管理者はまた、たとえば、3つの証明書テンプレートをインポートまたは作成してもよい。第一のテンプレートは、データセンターサーバの最初の信頼をブートストラップするために使用されてもよく、これは仮想化コンポーネントおよびサービスを提供してもよい。第二のテンプレートは、データセンターサーバの資格情報の自動証明書更新、および、クラスタに参加する新たなデータセンターサーバの資格情報の発行を可能にするために使用されてもよい。第三のテンプレートは、ユーザのためのスマートカードログオン証明書を発行するために使用されてもよい。CAは、どのデータセンターサーバがテンプレートを使用することができるかを決定するアクセス制御を有してもよい。
別のセキュリティ制御は、データセンターサーバからの証明書要求の信頼をブートストラップするための、CA管理者による手動承認を含んでもよい。さらに別のセキュリティ制御は、仮想スマートカードの作成を要求するために許可されているアプリケーションストアサーバ、および、ログオンのための仮想スマートカードの使用を許可されている仮想化マシンを識別するためのセキュリティ制御のセットを実装するデータセンターサーバ自体を含んでもよい。それはまた、このように偽装することができるユーザの組を識別または制限するための制御を有していてもよい。
〈資格情報マッピングサービスの例示的な実施形態〉
先に論じた資格情報マッピングサービスの実施形態は、様々な方法で実装してもよい。1つの目標は、ユーザが簡単かつ迅速に証明書を使用してアクティブディレクトリユーザアカウントにログオンすることができるシステムである。
1つの態様において、本明細書に記載のリモートサービスは、クライアントデバイス上のクライアントエージェントに配置されていてもよい。これらの態様では、クライアントエージェントは直接、認証ステップを実行するためにユーザのスマートカードを使用してもよい。先に論じたように、これは、新しい仮想チャネルを使用してもよい。
別の態様では、リモートサービスは、前述したように、資格情報マッピングサービスを含んでいてもよい。このサービスを、企業MICROSOFT証明機関などの認証局を使用してオンザフライでスマートカード証明書を発行および格納するために使用してもよい。あるいは、証明書は、事前に作成されてもよい。認証局と組み合わせた資格情報マッピングサービスを、認証ポリシーの様々な態様を実施するために使用してもよい。
図15は、本明細書に記載の1つ以上の例示的な態様に従った資格情報マッピングサービスを提供するための例示的なシステムを示している。サードパーティIdP 1551は、フェデレーション(連携)サーバ1553にアイデンティティ確認トークン(たとえば、SAMLトークン)を送ってもよい。フェデレーションサーバ1553は、アプリケーションストア1511にトークンを送ってもよく、これは、デリバリーコントローラ1513にトークンを転送してもよい。資格情報マッピングサービス1525は、保護された接続を介して具体的に登録されたデリバリーコントローラ1513からSAMLトークンを受諾してもよい。構成されたポリシーによって認証が許可されている場合は、それは、クライアントエージェント1505に渡されてもよい一回使用セキュアランダムチケットを返してもよい。クライアントエージェント1505は、仮想化マシン1541にチケットを提示してもよいし、また、仮想化マシンがチケットに遭遇したときには、それが(たとえば、信頼された接続を介して)資格情報マッピングサービス1525にそれを提示してもよい。これは、資格情報マッピングサービス1525で実行しているリモート暗号化動作プロトコルサーバへのログオンシステムアクセスを可能にしてもよい。資格情報マッピングサービス1525は、秘密鍵を生成し、認証の暗号化態様を実行するためにSAMLトークンで識別されるユーザのための一時的スマートカード証明書を登録してもよい。いくつかの態様では、生成された秘密鍵が、セキュアランダムチケットに由来または関連する鍵を用いてラップされてもよい。
アクティブディレクトリアカウントへの明示的な認証が望まれる場合には、個別の高特権サービスがインストールされてもよい。このサービスは、ドメイン管理者によって構成されてもよい。ドメイン管理者(または同等者)の資格情報は、資格情報マッピングサービス1525によって使用されるドメインの認証局1531を構成するために使用されてもよい。これは一回実行されるかもしれず、管理者のコンソールから自動的に行われてもよい。
資格情報マッピングサービス1525を構成する場合、認証局1531を、ドメインで利用可能なすべてのCAのリストから選択してもよい。ドメイン管理者(または同等者)の資格情報を、資格情報マッピングサービス1525が選択したCA 1531にアクセスするのを許可するために使用してもよい。ドメイン管理者(または同等者)は、選択されたCAの管理コンソールを使用して資格情報マッピングサービス1525の許可を認めてもよい。セキュリティ上の理由から、本明細書で説明される動作は、各資格情報マッピングサービスについて行われてもよい。
資格情報マッピングサービス1525は、ランタイム構成のための3つの基本的なリストを有していてもよく、それは、資格情報がマッピングされることを要求することができるマシンのリスト、マップすることができるユーザアカウント(たとえば、グループ)のリスト、および、マップされた資格情報に基づいてADログオンを実行することができるマシンのリストである。したがって、セキュリティ決定は、以下の形態を有することができる。すなわち、アプリケーションストアAは、アクティブディレクトリアカウントC上にSAMLアサーションBをマッピングしてもよい。ログオンは次に、仮想化サーバD上で行われてもよい。
様々な利点が、本明細書に開示された概念に基づいて利用可能となる。まず、「スマートカードからの証明書取得」および「秘密鍵実行」動作などのいくつかの動作は、(たとえば、クライアントデバイス上での)サーバおよびスマートカード間のラウンドトリップ通信を利用してもよい。したがって、ログオンプロセスが著しく速くなるであろう。さらに、互換性のあるスマートカードドライバがサーバにインストールされていない場合でも、スマートカードログオンが成功するであろう。
別の利点は、ワンタイムパスワードが現実のアクティブディレクトリアカウントへのアクセスを提供するであろうということである。匿名ログオンはまた、一時的にフルADアカウントにマッピングされることができる。サードパーティ認証ソリューションを、簡単に仮想化マシンにマッピングすることができる。
高速スマートカードログオン特徴について、WINDOWS(登録商標) PKINITログオンシステムとの統合があってもよい。資格情報プロバイダパッケージを、この認証システムと相互運用するためのサーバマシンへインストールしてもよい。これは、すでにいくつかのシステムに含まれる資格情報プロバイダへの拡張を備えていてもよい。このパッケージの新機能は、CSPを使用してPKINITでログインするようにWINDOWS(登録商標)を指示することであってもよい。CSPは、最終的に実際のログオン証明書を提供し、関連する秘密鍵動作を行うリモートプロセスと通信してもよい。仮想チャネルは、CSPとクライアント上で実行されている既存の認証マネージャプログラムとの間のコンジットとして作用してもよい。3つのトランザクション(または動作)は、「スマートカードユーザ証明書の取得」、「秘密鍵署名の実行」および「秘密鍵による復号化」を含む。認証マネージャは、PKOp要求を満たすために直接、ローカルスマートカードを使用してもよく、これは、仮想化マシンにユーザをログインさせてもよい。認証マネージャは、すでにアプリケーションストアにログインするためのスマートカードのロックを解除しているであろうため、これはまた、SSO機能を提供するであろう。
いくつかの追加の態様では、仮想チャネルを介してクライアントにPKOp要求を渡すのではなく、要求が資格情報マッピングサービス(CMS)に向けられてもよい。CMSサーバはログオンを許可しPKOpを行ってもよい。別個のサーバにインストールされた信頼サービスは、許可チェックを実行した後、適切なユーザをログインさせるために、CSPからのPKOp要求をサービスしてもよい。それはデリバリーコントローラとの別個のセキュリティ保護された通信路を有しているので、CMSは、それが期待するログオン要求を許可してもよい。CSPによって提示された「シングルユースチケット」は、これを達成するための1つの機構であってもよい。CMSは、自動的にスマートカード証明書を登録してもよい。ユーザログオンを実行するには、CMSは、内部で自動的にスマートカード証明書要求を生成し、それらをMICROSOFT認証局またはサードパーティCAによって発行させる。CSPからのPKOp要求は、これらの証明書に基づいてサービスされてもよい。CMSはさらに、シングルユースチケット由来の鍵ラッピング鍵での暗号化を使用して、または、ハードウェアセキュリティモジュールまたはトラステッドプラットフォームモジュール、または他の同様の手段を使用して、証明書の秘密鍵を保護してもよい。
一般的なセキュリティ要件が存在してもよい。秘密鍵は保護され、PKINIT要求に署名するために使用されてもよい。PKOp秘密鍵署名要求をサービスするたびに、サーバは、それが署名しているデータが適切なケルベロスプロトコルデータに対応するASN−1構造であることを検査することにより、それがケルベロスログオンを実際に実行していることを保証してもよい。他のデータ構造に秘密鍵動作を実行しようとする試みは、拒否されてもよい。復号化動作のために、復号化されたデータを、ケルベロスプロトコルの動作に対応する期待ASN−1構造を有することを確認するためにサーバに返される前に検査してもよい。秘密鍵は、生成されないか、または仮想化マシン上に格納されないかもしれない。PKOpプロトコルは、秘密鍵がユーザがログインしているマシン上に存在している必要はないことを保証してもよい。秘密鍵は、クライアントマシン上のスマートカード内または分離可能なCMSサーバ内に存在してもよい。
いくつかの実施形態では、ユーザはリモートセッション(たとえば、リモートアプリケーションまたはデスクトップセッション)に再接続してもよい。再接続は、別の認証方法および/またはオリジナルローンチと異なるセキュリティコンテキストを使用してもよい。再接続時には、クレームを、位置およびデバイスなどの新しい認証方法、保証レベルならびに/または他のセキュリティコンテキスト情報を反映するように更新することができる。この更新は、(セキュリティグループのメンバーシップが追跡される)ケルベロスチケットに、および、セッション証明書自体に、情報を反映することに加えて行ってもよく、これを、上記のように、TLSクライアント認証に使用して、他のサーバで検査することができる。いくつかの態様では、新しい証明書を、上記の証明書事前作成またはキャッシングモデルの使用ではなく、それぞれのローンチまたは再接続のために生成してもよい。
ローンチと同様に、通常の(たとえば、WINDOWS(登録商標)または他のOS)の認証プロセスは、前述のように、再接続のために生じてもよい。OSレベルでは、この認証(たとえば、現在のログオンセッションユーザの再認証)は、正しいユーザが存在するためセッションをロック解除してもよいことを確認するために使用されてもよい。ユーザが正しいユーザであることが確認された後、ユーザがユーザのアプリケーションを視認および使用できるように、既存のセッションをアクセス可能にしてもよい。しかし、(再接続動作中にこの活動を指揮してもよい)仮想化エージェントを、(セッションをローンチするためのオリジナルの認証に基づく)セッションのためのケルベロスチケット情報が廃棄されて、再認証中に得られた新しいケルベロスチケットで置換されるよう構成してもよい。OS内の既存のAPIを、このようにケルベロスチケットを破棄および置換するために使用してもよい。たとえば、WINDOWS(登録商標)コマンドklist.exeを使用してもよい。更新された情報はまた、ファイル共有アクセスを管理するサービスなどの、特別な方法で動作するOSの特定の部分に伝播されてもよい。
あるいは、オリジナルのセッション証明書が新しい証明書に置換されてもよい。セッション証明書は、先に述べたログオン証明書を含んでもよいが、セッション中に使用するために十分な長さの寿命であり、それがアプリケーションにアクセスできるように、OSの証明書ストアに伝播される。以前の証明書に基づいた任意のアプリケーションレベルTLS接続状態をクリーンアップするには、ブラウザを、たとえば、新しい証明書を正しくピックアップするために再起動してもよい。あるいは、属性権限モデルを使用してもよい。たとえば、セッション証明書は、実際のセキュリティコンテキスト情報を含んでいないかもしれないが、むしろ、前述したように、資格情報マッパーサービスなどの情報を知っているサービスへの(たとえば、適切なセッション参照を用いた)ポインタを含むかもしれない。TLSクライアント認証を使用するウェブサイトは、真の情報を学ぶために、この属性サービスを照会してもよい。
関連出願の相互参照
本願は、2014年9月30日に出願され、「高速スマートカードログオンおよび連携されたフルドメインログオン」と題する、米国仮特許出願第62/057,344号の優先権を主張する。上記出願は、その全体が参照として本願に組み込まれる。
本発明の精神および範囲は、添付する特許請求の範囲の中に存在するが、本願の出願時に特許請求の範囲として存在し、その一部は補正により削除された、以下の[予備的な特許請求の範囲]の中にも潜在する。この[予備的な特許請求の範囲]の記載事項は、本願明細書の開示に含まれるものとする。
[予備的な特許請求の範囲]
[予備請求項1]・・・
[請求項21]
サーバデバイスの資格情報マッパーにおいて証明書を格納することと、
前記サーバデバイスにより、前記資格情報マッパーに格納されている前記証明書にトークンを対応させることと、
前記サーバデバイスにおいてクライアントデバイスから前記トークンを受信することと、
前記クライアントデバイスが前記クライアントデバイスから受信した前記トークンに基づいてアイデンティティ提供デバイスで認証したか否かを、前記サーバデバイスにおいて決定することと、
前記クライアントデバイスが前記アイデンティティ提供デバイスで認証したことの決定に応答して、前記クライアントデバイスがドメインへアクセスすることを許可するための一時的証明書を提供することと、を含む、方法。
[請求項22]
前記クライアントデバイスが前記アイデンティティ提供デバイスで認証したか否かを決定することは、
前記サーバデバイスにより前記アイデンティティ提供デバイスへと、前記クライアントデバイスから受信した前記トークンからの情報を送信することと、
前記アイデンティティ提供デバイスから、前記クライアントデバイスが前記アイデンティティ提供デバイスで認証したことの確認を受信することと
を含む、請求項21に記載の方法。
[請求項23]
前記クライアントデバイスが前記アイデンティティ提供デバイスで認証したか否かを決定することは、
前記サーバデバイスの前記資格情報マッパーにより、前記クライアントデバイスから受信した前記トークンが前記アイデンティティ提供デバイスにより発行されたトークンに対応するか否かを決定することと、
前記サーバデバイスのゲートウェイサービスにより、前記クライアントデバイスから受信した前記トークンが前記アイデンティティ提供デバイスにより発行された前記トークンに対応するか否かを決定することと、
前記サーバデバイスのアプリケーションストアにより、前記クライアントデバイスから受信した前記トークンが前記アイデンティティ提供デバイスにより発行された前記トークンに対応するか否かを決定することと
のうちの1つ以上を実行することを含む、請求項21に記載の方法。
[請求項24]
前記クライアントデバイスにおいて前記一時的証明書を証明鍵にリンクさせることをさらに含み、前記一時的証明書の前記提供は、前記クライアントデバイスが前記証明鍵を有することの決定に応答して前記一時的証明書を提供することを含む、
請求項21に記載の方法。
[請求項25]
前記一時的証明書を提供する前に、前記クライアントデバイスが前記トークンに基づいて前記アイデンティティ提供デバイスで認証したことの決定に応答して、前記資格情報マッパーに格納された前記証明書に基づいて前記一時的証明書を生成すること
をさらに含む、請求項21に記載の方法。
[請求項26]
前記一時的証明書は、時間制限付き証明書を含む、
請求項21に記載の方法。
[請求項27]
前記一時的証明書は、スマートカードのクラス証明書を含む、
請求項21に記載の方法。
[請求項28]
プロセッサとメモリとを含む装置であって、前記メモリは、
前記プロセッサによって実行されると、前記装置に、
前記装置の資格情報マッパーにおいて証明書を格納することと、
前記資格情報マッパーに格納されている前記証明書にトークンを対応させることと、
クライアントデバイスから前記トークンを受信することと、
前記クライアントデバイスが前記クライアントデバイスから受信した前記トークンに基づいてアイデンティティ提供デバイスで認証したか否かを決定することと、
前記クライアントデバイスが前記アイデンティティ提供デバイスで認証したことの決定に応答して、前記クライアントデバイスがドメインへアクセスすることを許可するための一時的証明書を提供することと
を行わせるコンピュータ実行可能命令を格納している、装置。
[請求項29]
前記クライアントデバイスが前記アイデンティティ提供デバイスで認証したか否かを決定することは、
前記アイデンティティ提供デバイスへと、前記クライアントデバイスから受信した前記トークンからの情報を送信することと、
前記アイデンティティ提供デバイスから、前記クライアントデバイスが前記アイデンティティ提供デバイスで認証したことの確認を受信することと
を含む、請求項28に記載の装置。
[請求項30]
前記クライアントデバイスが前記アイデンティティ提供デバイスで認証したか否かを決定することは、
前記装置の前記資格情報マッパーにより、前記クライアントデバイスから受信した前記トークンが前記アイデンティティ提供デバイスにより発行されたトークンに対応するか否かを決定することと、
前記装置のゲートウェイサービスにより、前記クライアントデバイスから受信した前記トークンが前記アイデンティティ提供デバイスにより発行された前記トークンに対応するか否かを決定することと、
前記サーバデバイスのアプリケーションストアにより、前記クライアントデバイスから受信した前記トークンが前記アイデンティティ提供デバイスにより発行された前記トークンに対応するか否かを決定することと
のうちの1つ以上を実行することを含む、請求項28に記載の装置。
[請求項31]
前記メモリは、前記プロセッサによって実行されると、前記装置に、
前記クライアントデバイスにおいて前記一時的証明書を証明鍵にリンクさせることであって、前記一時的証明書の前記提供は、前記クライアントデバイスが前記証明鍵を有することの決定に応答して前記一時的証明書を提供することを含むこと
を行わせるコンピュータ実行可能命令を格納している、
請求項28に記載の装置。
[請求項32]
前記メモリは、前記プロセッサによって実行されると、前記装置に、
前記一時的証明書を提供する前に、前記クライアントデバイスが前記トークンに基づいて前記アイデンティティ提供デバイスで認証したことの決定に応答して、前記資格情報マッパーに格納された前記証明書に基づいて前記一時的証明書を生成すること
を行わせるコンピュータ実行可能命令を格納している、
請求項28に記載の装置。
[請求項33]
前記一時的証明書は、時間制限付き証明書を含む、
請求項28に記載の装置。
[請求項34]
前記一時的証明書は、スマートカードのクラス証明書を含む、
請求項28に記載の装置。
[請求項35]
クライアントデバイスによってアイデンティティ提供デバイスへと、前記アイデンティティ提供デバイスで前記クライアントデバイスを認証するための資格情報を送信することと、
前記クライアントデバイスにおいて前記アイデンティティ提供デバイスから、前記クライアントデバイスが前記アイデンティティ提供デバイスで認証されたことを示すトークンを受信することと、
前記クライアントデバイスによってサーバデバイスへと、前記トークンを送信することと、 前記クライアントデバイスが前記トークンに基づいてドメインへのアクセスを許可されたことの前記サーバデバイスからの指示を前記クライアントデバイスが受信することに応答して、前記ドメインにアクセスするための一時的証明書を使用することと
を含む、方法。
[請求項36]
前記サーバデバイスは、前記クライアントデバイスが前記アイデンティティ提供デバイスで認証されたか否かを決定するために前記トークンを使用する、
請求項35に記載の方法。
[請求項37]
前記トークンは、前記サーバデバイスの資格情報マッパーにおいて格納された証明書にリンクされている、
請求項35に記載の方法。
[請求項38]
前記一時的証明書は、前記資格情報マッパーにおいて格納された前記証明書に基づいて生成される、
請求項37に記載の方法。
[請求項39]
前記一時的証明書は、時間制限付き証明書を含む、
請求項35に記載の方法。
[請求項40]
前記一時的証明書は、スマートカードのクラスの証明書を含む、
請求項35に記載の方法。

Claims (20)

  1. サーバデバイスにおいて、クライアントデバイスから、前記クライアントデバイスにあるスマートカードに基づいて前記クライアントデバイスの認証を求める要求を受信するステップと、
    前記要求の受信に応答して、前記クライアントデバイスについての認証セッションを開始するステップと、
    前記認証セッション中に、前記認証セッション中の動作が、前記クライアントデバイスにある前記スマートカードによって提供される署名、証明書、証明書のリスト、および、復号化動作のうちの少なくとも1つを使用することを決定するステップと、
    前記決定に応答して、前記サーバデバイスから前記クライアントデバイスへ、前記サーバデバイスと前記クライアントデバイスとの間の仮想チャネルを介して、前記署名、前記証明書、前記証明書のリスト、および、前記復号化動作のうちの少なくとも1つについての要求を送信するステップとを含み、
    前記仮想チャネルは、前記サーバデバイスと前記クライアントデバイスとの間でのパーソナルコンピュータ/スマートカード(PC/SC)層の接続よりも高いレベルのチャネルである、方法。
  2. 前記クライアントデバイスを認証するための前記要求を受信した後、前記サーバデバイスにおける資格情報プロバイダによって、前記認証セッション中に1つ以上の暗号化動作を実行するための前記サーバデバイスにおけるキーストレージプロバイダを選択することをさらに含む、請求項1に記載の方法。
  3. 前記クライアントデバイスを認証するための前記要求を受信した後、前記サーバデバイスにおける資格情報プロバイダによって、前記認証セッション中に1つ以上の暗号化動作を実行するための前記サーバデバイスにおける暗号化サービスプロバイダを選択することをさらに含む、請求項1に記載の方法。
  4. 前記決定するステップは、前記クライアントデバイスにある前記スマートカードによって提供される、前記署名、前記証明書、前記証明書のリスト、および、前記復号化動作のうちの少なくとも1つを使用する前記認証セッション中の前記動作をインターセプトする前記暗号化サービスプロバイダを含み、
    前記要求を送信するステップは、前記動作のインターセプトに応答して前記要求を送信する前記暗号化サービスプロバイダを含む、
    請求項3に記載の方法。
  5. 前記認証セッション中の動作が前記クライアントデバイスにある前記スマートカードを使用しないことの決定に応答して、前記暗号化サービスプロバイダによって、前記スマートカードを使用しない前記動作を第二の暗号化サービスプロバイダが実行することを要求するステップをさらに含む、請求項4に記載の方法。
  6. 前記要求を送信するステップは、サーバデバイスにおいて、前記要求を送信する暗号化サービスプロバイダを含む、請求項1に記載の方法。
  7. 前記クライアントデバイスにある前記スマートカードが取り外されたことを、前記仮想チャネルまたは前記PC/SC層の接続を介して前記サーバデバイスにより受信された通信を介して決定するステップをさらに含む、請求項1に記載の方法。
  8. 前記決定するステップは、前記認証セッション中の前記動作が前記クライアントデバイスにある前記スマートカードによって提供される前記署名を使用することを決定することを含み、
    前記要求を送信するステップは、前記クライアントデバイスが前記スマートカードの秘密鍵を用いて署名動作を実行することの要求の送信を含む、請求項1に記載の方法。
  9. 前記決定するステップは、前記認証セッション中の前記動作が前記クライアントデバイスにおいて前記スマートカードによって提供される前記復号化動作を使用することを決定することを含み、
    前記要求を送信するステップは、前記クライアントデバイスが前記スマートカードの秘密鍵を用いて前記復号化動作を実行することの要求の送信を含む、請求項1に記載の方法。
  10. 前記スマートカードは、物理スマートカードおよび仮想スマートカードのうちの1つ以上を含む、請求項1に記載の方法。
  11. 前記サーバデバイスにおいて前記クライアントデバイスから、前記スマートカードに対応するPINを受信することと、
    前記サーバデバイスにおける暗号化サービスプロバイダにおいて、前記PINを格納することとをさらに含む、請求項1に記載の方法。
  12. プロセッサとメモリとを含む装置であって、前記メモリは、
    前記プロセッサによって実行されると、前記装置に、
    クライアントデバイスから、前記クライアントデバイスにあるスマートカードに基づいて前記クライアントデバイスの認証を求める要求を受信することと、
    前記要求の受信に応答して、前記クライアントデバイスについての認証セッションを開始することと、
    前記クライアントデバイスについての前記認証セッション中に、前記認証セッション中の動作が、前記クライアントデバイスにある前記スマートカードによって提供される、署名、証明書、証明書のリスト、および、復号化動作のうちの少なくとも1つを使用することを決定することと、
    前記決定に応答して、前記クライアントデバイスへ、前記サーバデバイスと前記クライアントデバイスとの間の仮想チャネルを介して、前記署名、前記証明書、前記証明書のリスト、および、前記復号化動作のうちの少なくとも1つについての要求を送信することと
    を行わせるコンピュータ実行可能命令を格納しており、
    前記仮想チャネルは、前記サーバデバイスと前記クライアントデバイスとの間でのパーソナルコンピュータ/スマートカード(PC/SC)層の接続よりも高いレベルのチャネルである、装置。
  13. 前記メモリは、前記プロセッサによって実行されると、前記装置に、
    前記クライアントデバイスを認証するための前記要求を受信した後、前記装置における資格情報プロバイダによって、前記認証セッション中に1つ以上の暗号化動作を実行するための前記装置におけるサービスプロバイダを選択することを行わせるコンピュータ実行可能命令を格納している、
    請求項12に記載の装置。
  14. 前記決定することは、前記クライアントデバイスにある前記スマートカードによって提供される、前記署名、前記証明書、前記証明書のリスト、および、前記復号化動作のうちの少なくとも1つを使用する前記認証セッション中の前記動作をインターセプトする前記サービスプロバイダを含み、
    前記要求を送信することは、前記動作のインターセプトに応答して前記要求を送信する前記サービスプロバイダを含む、
    請求項13に記載の装置。
  15. 前記メモリは、前記プロセッサによって実行されると、前記装置に、
    前記認証セッション中の動作が前記クライアントデバイスにある前記スマートカードを使用しないことの決定に応答して、前記サービスプロバイダによって、前記スマートカードを使用しない前記動作を第二のサービスプロバイダが実行することを要求すること
    を行わせるコンピュータ実行可能命令を格納している、
    請求項14に記載の装置。
  16. 前記要求を送信すること、前記要求を送信するサービスプロバイダを、装置内に含む、請求項12に記載の装置。
  17. 前記スマートカードは、物理スマートカードおよび仮想スマートカードのうちの1つ以上を含む、請求項12に記載の装置。
  18. クライアントデバイスからサーバデバイスへと、前記クライアントデバイスにあるスマートカードに基づいて前記クライアントデバイスの認証を求める要求を送信するステップと、
    前記要求に応答して、前記クライアントデバイスについての認証セッション中に複数の動作を実行するステップと、
    前記クライアントデバイスについての前記認証セッション中に、前記サーバデバイスと前記クライアントデバイスとの間の仮想チャネルを介して、前記クライアントデバイスにある前記スマートカードによって提供される、署名、証明書、証明書のリスト、および、復号化動作のうちの少なくとも1つについての要求を受信するステップとを含み、前記仮想チャネルは、前記サーバデバイスと前記クライアントデバイスとの間でのパーソナルコンピュータ/スマートカード(PC/SC)層の接続よりも高いレベルのチャネルである、方法。
  19. 前記スマートカードは、物理スマートカードおよび仮想スマートカードのうちの1つ以上を含む、請求項18に記載の方法。
  20. 前記サーバデバイスへと前記クライアントデバイスにより、前記PC/SC層の接続よりも高いレベルでの前記仮想チャネルを介してリモートされた動作を送信することにより前記サーバデバイスが前記クライアントデバイスを認証することの指示を送信するステップをさらに含む、請求項18に記載の方法。
JP2017515810A 2014-09-30 2015-09-30 スマートカードによるログオンおよび連携されたフルドメインログオン Expired - Fee Related JP6526181B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462057344P 2014-09-30 2014-09-30
US62/057,344 2014-09-30
PCT/US2015/053118 WO2016054149A1 (en) 2014-09-30 2015-09-30 Fast smart card logon and federated full domain logon

Publications (2)

Publication Number Publication Date
JP2017535843A JP2017535843A (ja) 2017-11-30
JP6526181B2 true JP6526181B2 (ja) 2019-06-05

Family

ID=54292946

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017515810A Expired - Fee Related JP6526181B2 (ja) 2014-09-30 2015-09-30 スマートカードによるログオンおよび連携されたフルドメインログオン

Country Status (5)

Country Link
US (2) US10122703B2 (ja)
EP (2) EP3770781B1 (ja)
JP (1) JP6526181B2 (ja)
KR (1) KR102036758B1 (ja)
WO (1) WO2016054149A1 (ja)

Families Citing this family (126)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103975332B (zh) * 2011-12-08 2018-08-14 英特尔公司 用于使用基于硬件的信任根以对等方式进行基于策略的内容共享的方法和装置
US9166962B2 (en) * 2012-11-14 2015-10-20 Blackberry Limited Mobile communications device providing heuristic security authentication features and related methods
US10270748B2 (en) 2013-03-22 2019-04-23 Nok Nok Labs, Inc. Advanced authentication techniques and applications
US10841316B2 (en) 2014-09-30 2020-11-17 Citrix Systems, Inc. Dynamic access control to network resources using federated full domain logon
US9942200B1 (en) * 2014-12-02 2018-04-10 Trend Micro Inc. End user authentication using a virtual private network
US10460313B1 (en) * 2014-12-15 2019-10-29 United Services Automobile Association (Usaa) Systems and methods of integrated identity verification
US9736165B2 (en) 2015-05-29 2017-08-15 At&T Intellectual Property I, L.P. Centralized authentication for granting access to online services
US9843572B2 (en) * 2015-06-29 2017-12-12 Airwatch Llc Distributing an authentication key to an application installation
US9825938B2 (en) * 2015-10-13 2017-11-21 Cloudpath Networks, Inc. System and method for managing certificate based secure network access with a certificate having a buffer period prior to expiration
KR20180066148A (ko) * 2015-10-21 2018-06-18 후아웨이 테크놀러지 컴퍼니 리미티드 네트워크 기능 가상화 아키텍처에서의 인증서 관리 방법 및 디바이스
US10218698B2 (en) * 2015-10-29 2019-02-26 Verizon Patent And Licensing Inc. Using a mobile device number (MDN) service in multifactor authentication
US10581617B2 (en) * 2015-12-23 2020-03-03 Mcafee, Llc Method and apparatus for hardware based file/document expiry timer enforcement
US10439954B1 (en) * 2015-12-28 2019-10-08 EMC IP Holding Company LLC Virtual-enterprise cloud computing system
US10817593B1 (en) * 2015-12-29 2020-10-27 Wells Fargo Bank, N.A. User information gathering and distribution system
US10581823B2 (en) * 2016-03-21 2020-03-03 Vmware, Inc. Web client plugin manager in vCenter managed object browser
US10050957B1 (en) * 2016-04-08 2018-08-14 Parallels International Gmbh Smart card redirection
US10142323B2 (en) * 2016-04-11 2018-11-27 Huawei Technologies Co., Ltd. Activation of mobile devices in enterprise mobile management
US10673838B2 (en) * 2016-05-13 2020-06-02 MobileIron, Inc. Unified VPN and identity based authentication to cloud-based services
US10523660B1 (en) 2016-05-13 2019-12-31 MobileIron, Inc. Asserting a mobile identity to users and devices in an enterprise authentication system
US10362021B2 (en) * 2016-05-31 2019-07-23 Airwatch Llc Device authentication based upon tunnel client network requests
US10171445B2 (en) * 2016-06-30 2019-01-01 International Business Machines Corporation Secure virtualized servers
US10356087B1 (en) * 2016-08-26 2019-07-16 Intelligent Waves Llc System, method and computer program product for credential provisioning in a mobile device platform
US10321313B2 (en) 2016-09-09 2019-06-11 Dell Products L.P. Enabling remote access to a service controller having a factory-installed unique default password
US10462228B2 (en) * 2016-10-20 2019-10-29 Wyse Technology L.L.C. Providing access to a smartcard within a remote session
US10333930B2 (en) * 2016-11-14 2019-06-25 General Electric Company System and method for transparent multi-factor authentication and security posture checking
US10764263B2 (en) 2016-11-28 2020-09-01 Ssh Communications Security Oyj Authentication of users in a computer network
US10951421B2 (en) 2016-11-28 2021-03-16 Ssh Communications Security Oyj Accessing hosts in a computer network
US10523445B2 (en) 2016-11-28 2019-12-31 Ssh Communications Security Oyj Accessing hosts in a hybrid computer network
US20190327093A1 (en) * 2016-11-29 2019-10-24 Habraken Holdings Llc Cloud-implemented physical token based security
EP3866491A1 (en) * 2016-12-08 2021-08-18 GN Hearing A/S Fitting devices, server devices and methods of remote configuration of a hearing device
CN108234409B (zh) * 2016-12-15 2020-11-27 腾讯科技(深圳)有限公司 身份验证方法与装置
US11089028B1 (en) * 2016-12-21 2021-08-10 Amazon Technologies, Inc. Tokenization federation service
US10860342B2 (en) * 2017-01-30 2020-12-08 Citrix Systems, Inc. Computer system providing cloud-based session prelaunch features and related methods
US10666644B2 (en) * 2017-02-08 2020-05-26 Revbits, LLC Enterprise key and password management system
US10397006B2 (en) * 2017-02-13 2019-08-27 Amazon Technologies, Inc. Network security with surrogate digital certificates
US11115403B2 (en) 2017-02-21 2021-09-07 Baldev Krishan Multi-level user device authentication system for internet of things (IOT)
US10560476B2 (en) * 2017-02-22 2020-02-11 International Business Machines Corporation Secure data storage system
CN106685998B (zh) * 2017-02-24 2020-02-07 浙江仟和网络科技有限公司 一种基于cas统一认证服务中间件的sso认证方法
US10791119B1 (en) * 2017-03-14 2020-09-29 F5 Networks, Inc. Methods for temporal password injection and devices thereof
US10491588B2 (en) * 2017-03-23 2019-11-26 Baldev Krishan Local and remote access apparatus and system for password storage and management
US10250723B2 (en) * 2017-04-13 2019-04-02 BlueTalon, Inc. Protocol-level identity mapping
US10645078B2 (en) * 2017-05-01 2020-05-05 Microsoft Technology Licensing, Llc Smart card thumb print authentication
CN108881130B (zh) * 2017-05-16 2021-07-30 中国移动通信集团重庆有限公司 会话控制信息的安全控制方法和装置
US11544356B2 (en) * 2017-06-19 2023-01-03 Citrix Systems, Inc. Systems and methods for dynamic flexible authentication in a cloud service
WO2018236420A1 (en) * 2017-06-20 2018-12-27 Google Llc CLOUD EQUIPMENT SECURITY MODULES FOR CRYPTOGRAPHIC EXTERNALIZATION OPERATIONS
US10805284B2 (en) 2017-07-12 2020-10-13 Logmein, Inc. Federated login for password vault
GB2565282B (en) * 2017-08-02 2021-12-22 Vnc Automotive Ltd Remote control of a computing device
US11240240B1 (en) * 2017-08-09 2022-02-01 Sailpoint Technologies, Inc. Identity defined secure connect
US11303633B1 (en) 2017-08-09 2022-04-12 Sailpoint Technologies, Inc. Identity security gateway agent
US11240207B2 (en) 2017-08-11 2022-02-01 L3 Technologies, Inc. Network isolation
US10721222B2 (en) * 2017-08-17 2020-07-21 Citrix Systems, Inc. Extending single-sign-on to relying parties of federated logon providers
US11601467B2 (en) 2017-08-24 2023-03-07 L3 Technologies, Inc. Service provider advanced threat protection
JP2019062284A (ja) * 2017-09-25 2019-04-18 株式会社野村総合研究所 情報処理装置および情報処理方法
US11178104B2 (en) 2017-09-26 2021-11-16 L3 Technologies, Inc. Network isolation with cloud networks
US9948612B1 (en) * 2017-09-27 2018-04-17 Citrix Systems, Inc. Secure single sign on and conditional access for client applications
US11223601B2 (en) 2017-09-28 2022-01-11 L3 Technologies, Inc. Network isolation for collaboration software
US11184323B2 (en) 2017-09-28 2021-11-23 L3 Technologies, Inc Threat isolation using a plurality of containers
US11552987B2 (en) 2017-09-28 2023-01-10 L3 Technologies, Inc. Systems and methods for command and control protection
US11336619B2 (en) 2017-09-28 2022-05-17 L3 Technologies, Inc. Host process and memory separation
US11374906B2 (en) 2017-09-28 2022-06-28 L3 Technologies, Inc. Data exfiltration system and methods
US10931669B2 (en) * 2017-09-28 2021-02-23 L3 Technologies, Inc. Endpoint protection and authentication
US10834081B2 (en) * 2017-10-19 2020-11-10 International Business Machines Corporation Secure access management for tools within a secure environment
US11120125B2 (en) 2017-10-23 2021-09-14 L3 Technologies, Inc. Configurable internet isolation and security for laptops and similar devices
US11170096B2 (en) 2017-10-23 2021-11-09 L3 Technologies, Inc. Configurable internet isolation and security for mobile devices
US11550898B2 (en) 2017-10-23 2023-01-10 L3 Technologies, Inc. Browser application implementing sandbox based internet isolation
US11868995B2 (en) 2017-11-27 2024-01-09 Nok Nok Labs, Inc. Extending a secure key storage for transaction confirmation and cryptocurrency
US20190182242A1 (en) * 2017-12-11 2019-06-13 Cyberark Software Ltd. Authentication in integrated system environment
US11095638B2 (en) * 2017-12-11 2021-08-17 Ssh Communications Security Oyj Access security in computer networks
FR3076363B1 (fr) * 2017-12-30 2020-01-24 Imprimerie Nationale Procede d'authentification a l'aide d'un terminal mobile utilisant une cle et un certificat stockes sur un support externe
US11831409B2 (en) * 2018-01-12 2023-11-28 Nok Nok Labs, Inc. System and method for binding verifiable claims
US10931667B2 (en) * 2018-01-17 2021-02-23 Baldev Krishan Method and system for performing user authentication
US11070551B2 (en) * 2018-01-18 2021-07-20 Dell Products L.P. System and method for remote access to a personal computer as a service using a remote desktop protocol and windows hello support
US11463426B1 (en) 2018-01-25 2022-10-04 Sailpoint Technologies, Inc. Vaultless authentication
US10824744B2 (en) 2018-02-08 2020-11-03 Cisco Technology, Inc. Secure client-server communication
US10958640B2 (en) * 2018-02-08 2021-03-23 Citrix Systems, Inc. Fast smart card login
US10733329B1 (en) * 2018-04-20 2020-08-04 Automation Anywhere, Inc. Robotic process automation system and method with secure credential vault
EP3782058B1 (en) * 2018-04-20 2024-03-20 Vishal Gupta Decentralized document and entity verification engine
WO2019212579A1 (en) 2018-04-30 2019-11-07 Google Llc Managing enclave creation through a uniform enclave interface
WO2019212580A1 (en) * 2018-04-30 2019-11-07 Google Llc Enclave interactions
US11921905B2 (en) 2018-04-30 2024-03-05 Google Llc Secure collaboration between processors and processing accelerators in enclaves
US10887287B2 (en) 2018-05-11 2021-01-05 Citrix Systems, Inc. Connecting client devices to anonymous sessions via helpers
US11245683B2 (en) * 2018-07-06 2022-02-08 Citrix Systems, Inc. Single-sign-on for third party mobile applications
US11785114B1 (en) * 2018-07-20 2023-10-10 Verisign, Inc. Caching proxy for a digital object architecture
KR102553145B1 (ko) * 2018-07-24 2023-07-07 삼성전자주식회사 디지털 키를 처리 및 인증하는 보안 요소 및 그 동작 방법
US11429753B2 (en) 2018-09-27 2022-08-30 Citrix Systems, Inc. Encryption of keyboard data to avoid being read by endpoint-hosted keylogger applications
CN109450872A (zh) * 2018-10-23 2019-03-08 中国联合网络通信集团有限公司 用户身份认证方法、系统、存储介质及电子设备
CN109617858B (zh) * 2018-11-05 2020-04-24 视联动力信息技术股份有限公司 一种流媒体链路的加密方法和装置
US10938846B1 (en) 2018-11-20 2021-03-02 Trend Micro Incorporated Anomalous logon detector for protecting servers of a computer network
US11036838B2 (en) 2018-12-05 2021-06-15 Bank Of America Corporation Processing authentication requests to secured information systems using machine-learned user-account behavior profiles
US11048793B2 (en) 2018-12-05 2021-06-29 Bank Of America Corporation Dynamically generating activity prompts to build and refine machine learning authentication models
US11159510B2 (en) * 2018-12-05 2021-10-26 Bank Of America Corporation Utilizing federated user identifiers to enable secure information sharing
US11113370B2 (en) 2018-12-05 2021-09-07 Bank Of America Corporation Processing authentication requests to secured information systems using machine-learned user-account behavior profiles
US11120109B2 (en) 2018-12-05 2021-09-14 Bank Of America Corporation Processing authentication requests to secured information systems based on machine-learned event profiles
US11176230B2 (en) 2018-12-05 2021-11-16 Bank Of America Corporation Processing authentication requests to secured information systems based on user behavior profiles
US11323431B2 (en) * 2019-01-31 2022-05-03 Citrix Systems, Inc. Secure sign-on using personal authentication tag
US11146961B2 (en) * 2019-03-04 2021-10-12 Jpmorgan Chase Bank, N.A. Third party certificate management for native mobile apps and internet of things apps
US11792024B2 (en) 2019-03-29 2023-10-17 Nok Nok Labs, Inc. System and method for efficient challenge-response authentication
US20220200973A1 (en) * 2019-04-15 2022-06-23 Bear System, LLC Blockchain schema for secure data transmission
US11483143B2 (en) * 2019-04-15 2022-10-25 Smart Security Systems, Llc Enhanced monitoring and protection of enterprise data
CN111835688B (zh) * 2019-04-22 2021-07-30 中国科学院声学研究所 一种基于ssl/tls协议的流量快速转发方法及系统
US11949677B2 (en) * 2019-04-23 2024-04-02 Microsoft Technology Licensing, Llc Resource access based on audio signal
US11469894B2 (en) 2019-05-20 2022-10-11 Citrix Systems, Inc. Computing system and methods providing session access based upon authentication token with different authentication credentials
US11876798B2 (en) * 2019-05-20 2024-01-16 Citrix Systems, Inc. Virtual delivery appliance and system with remote authentication and related methods
US11362943B2 (en) 2019-05-20 2022-06-14 Citrix Systems, Inc. System and method for validating virtual session requests
EP3973681A4 (en) * 2019-05-23 2022-12-21 Citrix Systems, Inc. SECURE WEB APPLICATION DELIVERY PLATFORM
US11652801B2 (en) 2019-09-24 2023-05-16 Pribit Technology, Inc. Network access control system and method therefor
KR102119257B1 (ko) * 2019-09-24 2020-06-26 프라이빗테크놀로지 주식회사 터널에 기반하여 단말의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
US11381557B2 (en) 2019-09-24 2022-07-05 Pribit Technology, Inc. Secure data transmission using a controlled node flow
US11611549B2 (en) * 2019-10-03 2023-03-21 Fset Inc System and method of securing access to a secure remote server and database on a mobile device
US11432149B1 (en) 2019-10-10 2022-08-30 Wells Fargo Bank, N.A. Self-sovereign identification via digital credentials for selected identity attributes
US11729160B2 (en) * 2019-10-16 2023-08-15 Nutanix, Inc. System and method for selecting authentication methods for secure transport layer communication
US20210136114A1 (en) * 2019-10-31 2021-05-06 Microsoft Technology Licensing, Llc Instant policy enforcement
WO2021107178A1 (ko) * 2019-11-27 2021-06-03 (주)이스톰 로그인 계정 정보 관리 방법
US11907356B2 (en) * 2020-01-09 2024-02-20 Arris Enterprises Llc System, method, and computer-readable recording medium of creating, accessing, and recovering a user account with single sign on password hidden authentication
US10986504B1 (en) 2020-03-24 2021-04-20 Appbrilliance, Inc. System architecture for accessing secure data from a mobile device in communication with a remote server
US20230138622A1 (en) * 2020-05-11 2023-05-04 Acxiom Llc Emergency Access Control for Cross-Platform Computing Environment
US20220038502A1 (en) * 2020-07-30 2022-02-03 9287-2621 Québec inc. Method and system for processing authentication requests
CN112153032A (zh) * 2020-09-15 2020-12-29 腾讯科技(深圳)有限公司 一种信息处理方法、装置、计算机可读存储介质及系统
US10965665B1 (en) 2020-09-16 2021-03-30 Sailpoint Technologies, Inc Passwordless privilege access
US11777941B2 (en) * 2020-09-30 2023-10-03 Mideye Ab Methods and authentication server for authentication of users requesting access to a restricted data resource using authorized approvers
KR102557946B1 (ko) * 2020-11-23 2023-07-19 주식회사 국민은행 수탁업무 보안 관리 시스템 및 방법
US20220173890A1 (en) 2020-11-30 2022-06-02 Citrix Systems, Inc. Smart card and associated methods for initiating virtual sessions at kiosk device
US20220377060A1 (en) * 2021-05-19 2022-11-24 Microsoft Technology Licensing, Llc Maintaining and recovering secure cloud connections
US11936658B2 (en) 2021-11-15 2024-03-19 Bank Of America Corporation Intelligent assignment of a network resource
US11971974B2 (en) * 2021-12-10 2024-04-30 Konica Minolta Business Solutions U.S.A., Inc. Method and system for mapping a virtual smart card to a plurality of users
EP4235324A1 (de) * 2022-02-24 2023-08-30 Schneider Electric Industries SAS Verfahren zur steuerung einer industriellen anlage

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6327578B1 (en) 1998-12-29 2001-12-04 International Business Machines Corporation Four-party credit/debit payment protocol
US7343351B1 (en) * 1999-08-31 2008-03-11 American Express Travel Related Services Company, Inc. Methods and apparatus for conducting electronic transactions
US7526560B1 (en) * 2000-03-30 2009-04-28 Oracle International Corporation Method and apparatus for sharing a secure connection between a client and multiple server nodes
CA2305249A1 (en) * 2000-04-14 2001-10-14 Branko Sarcanin Virtual safe
US6993521B2 (en) 2000-06-09 2006-01-31 Northrop Grumman Corporation System and method for arranging digital certificates on a hardware token
JP2003150553A (ja) 2001-11-14 2003-05-23 Nippon Telegr & Teleph Corp <Ntt> 複数のアカウントを用いた認証方法及び装置並びに処理プログラム
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
US20060005237A1 (en) * 2003-01-30 2006-01-05 Hiroshi Kobata Securing computer network communication using a proxy server
US7644275B2 (en) 2003-04-15 2010-01-05 Microsoft Corporation Pass-thru for client authentication
KR100524049B1 (ko) * 2003-05-12 2005-10-27 박봉주 서버와 클라이언트간의 인증시스템과 그 방법
US20050154889A1 (en) * 2004-01-08 2005-07-14 International Business Machines Corporation Method and system for a flexible lightweight public-key-based mechanism for the GSS protocol
JP3918827B2 (ja) 2004-01-21 2007-05-23 株式会社日立製作所 セキュアリモートアクセスシステム
GB0411861D0 (en) 2004-05-27 2004-06-30 Koninkl Philips Electronics Nv Authentication of applications
GB2415580B (en) * 2004-06-24 2006-08-16 Toshiba Res Europ Ltd Network node security analysis method
US7430663B2 (en) 2004-08-09 2008-09-30 Research In Motion Limited System and method for enabling bulk retrieval of certificates
US7591008B2 (en) * 2005-06-30 2009-09-15 Microsoft Corporation Client authentication using multiple user 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
US20090037728A1 (en) 2006-02-28 2009-02-05 Matsushita Electric Industrial Co., Ltd. Authentication System, CE Device, Mobile Terminal, Key Certificate Issuing Station, And Key Certificate Acquisition Method
US20070245414A1 (en) 2006-04-14 2007-10-18 Microsoft Corporation Proxy Authentication and Indirect Certificate Chaining
JP4867482B2 (ja) * 2006-06-06 2012-02-01 富士ゼロックス株式会社 制御プログラムおよび通信システム
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网络中功能实体的迁移方法
US20100242102A1 (en) 2006-06-27 2010-09-23 Microsoft Corporation Biometric credential verification framework
US8341411B2 (en) * 2006-08-16 2012-12-25 Research In Motion Limited Enabling use of a certificate stored in a smart card
US8214635B2 (en) 2006-11-28 2012-07-03 Cisco Technology, Inc. Transparent proxy of encrypted sessions
CA2569355C (en) * 2006-11-29 2014-10-14 Diversinet Corp. System and method for handling permits for user authentication tokens
US20090037729A1 (en) * 2007-08-03 2009-02-05 Lawrence Smith Authentication factors with public-key infrastructure
US7748609B2 (en) * 2007-08-31 2010-07-06 Gemalto Inc. System and method for browser based access to smart cards
US8386776B2 (en) * 2007-09-25 2013-02-26 Nec Corporation Certificate generating/distributing system, certificate generating/distributing method and certificate generating/distributing program
US20090113543A1 (en) * 2007-10-25 2009-04-30 Research In Motion Limited Authentication certificate management for access to a wireless communication device
US10594695B2 (en) * 2007-12-10 2020-03-17 Nokia Technologies Oy Authentication arrangement
US8621561B2 (en) 2008-01-04 2013-12-31 Microsoft Corporation Selective authorization based on authentication input attributes
JP5276346B2 (ja) 2008-03-31 2013-08-28 株式会社エヌ・ティ・ティ・データ 認証サーバ、認証方法、及びそのプログラム
WO2010094125A1 (en) * 2009-02-19 2010-08-26 Securekey Technologies Inc. System and methods for online authentication
US8639922B2 (en) * 2009-06-01 2014-01-28 Dhananjay S. Phatak System, method, and apparata for secure communications using an electrical grid network
JP5315137B2 (ja) 2009-06-11 2013-10-16 株式会社エヌ・ティ・ティ・データ 認証システム、認証方法、読取装置およびプログラム
US8850554B2 (en) * 2010-02-17 2014-09-30 Nokia Corporation Method and apparatus for providing an authentication context-based session
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
AU2011245059A1 (en) 2010-04-30 2012-11-08 Kl Data Security Pty Ltd Method and system for enabling computer access
US8997196B2 (en) 2010-06-14 2015-03-31 Microsoft Corporation Flexible end-point compliance and strong authentication for distributed hybrid enterprises
DE102010030590A1 (de) * 2010-06-28 2011-12-29 Bundesdruckerei Gmbh Verfahren zur Erzeugung eines Zertifikats
CN101938520B (zh) * 2010-09-07 2015-01-28 中兴通讯股份有限公司 一种基于移动终端签名的远程支付系统及方法
FR2969879A1 (fr) * 2010-12-23 2012-06-29 France Telecom Acces anonyme a un service au moyen de certificats agreges
CN102546570B (zh) 2010-12-31 2014-12-24 国际商业机器公司 用于单点登录的处理方法和系统
WO2012140477A1 (en) 2011-04-15 2012-10-18 Nokia Corporation 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
US8806602B2 (en) 2011-08-15 2014-08-12 Bank Of America Corporation Apparatus and method for performing end-to-end encryption
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
US9361443B2 (en) 2011-08-15 2016-06-07 Bank Of America Corporation Method and apparatus for token-based combining of authentication methods
US8539558B2 (en) 2011-08-15 2013-09-17 Bank Of America Corporation Method and apparatus for token-based token termination
US8950002B2 (en) 2011-08-15 2015-02-03 Bank Of America Corporation Method and apparatus for token-based access of related resources
US8688847B2 (en) 2011-08-30 2014-04-01 Qatar Foundation System and method for network connection adaptation
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
US20130185567A1 (en) 2012-01-13 2013-07-18 Greg Salyards Method or process for securing computers or mobile computer devices with a contact or dual-interface smart card
US9491620B2 (en) * 2012-02-10 2016-11-08 Qualcomm Incorporated Enabling secure access to a discovered location server for a mobile device
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
WO2014120183A1 (en) 2013-01-31 2014-08-07 Hewlett-Packard Development Company, L.P. Synchronization of security-related data
US9154488B2 (en) 2013-05-03 2015-10-06 Citrix Systems, Inc. Secured access to resources using a proxy

Also Published As

Publication number Publication date
US10122703B2 (en) 2018-11-06
JP2017535843A (ja) 2017-11-30
KR102036758B1 (ko) 2019-10-28
EP3201816A1 (en) 2017-08-09
KR20170062529A (ko) 2017-06-07
EP3770781A1 (en) 2021-01-27
EP3201816B1 (en) 2022-09-07
US20160094543A1 (en) 2016-03-31
WO2016054149A1 (en) 2016-04-07
EP3770781B1 (en) 2022-06-08
US20160094546A1 (en) 2016-03-31
US10021088B2 (en) 2018-07-10

Similar Documents

Publication Publication Date Title
US11695757B2 (en) Fast smart card login
US11641361B2 (en) Dynamic access control to network resources using federated full domain logon
JP6526181B2 (ja) スマートカードによるログオンおよび連携されたフルドメインログオン
US11997083B2 (en) Secure authentication of a device through attestation by another device
JP6731023B2 (ja) クライアントアプリケーションのためのセキュアなシングルサインオン及び条件付きアクセス
JP6121049B2 (ja) プロキシを使用したリソースへの安全なアクセス
JP6335280B2 (ja) 企業システムにおけるユーザおよびデバイスの認証
JP6222592B2 (ja) モバイルアプリケーション管理のためのモバイルアプリケーションのアイデンティティの検証
CN113316783A (zh) 使用活动目录和一次性口令令牌组合的双因素身份认证

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180726

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20181025

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181130

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190507

R150 Certificate of patent or registration of utility model

Ref document number: 6526181

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees