特許第6792647号(P6792647)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ シトリックス・システムズ・インコーポレイテッドの特許一覧

<>
  • 特許6792647-監査能力を備えた仮想スマートカード 図000002
  • 特許6792647-監査能力を備えた仮想スマートカード 図000003
  • 特許6792647-監査能力を備えた仮想スマートカード 図000004
  • 特許6792647-監査能力を備えた仮想スマートカード 図000005
  • 特許6792647-監査能力を備えた仮想スマートカード 図000006
  • 特許6792647-監査能力を備えた仮想スマートカード 図000007
  • 特許6792647-監査能力を備えた仮想スマートカード 図000008
  • 特許6792647-監査能力を備えた仮想スマートカード 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6792647
(24)【登録日】2020年11月10日
(45)【発行日】2020年11月25日
(54)【発明の名称】監査能力を備えた仮想スマートカード
(51)【国際特許分類】
   H04L 9/08 20060101AFI20201116BHJP
   G06F 21/31 20130101ALI20201116BHJP
   G06F 21/62 20130101ALI20201116BHJP
【FI】
   H04L9/00 601B
   H04L9/00 601F
   G06F21/31
   G06F21/62 318
【請求項の数】20
【全頁数】23
(21)【出願番号】特願2018-563664(P2018-563664)
(86)(22)【出願日】2017年4月14日
(65)【公表番号】特表2019-525519(P2019-525519A)
(43)【公表日】2019年9月5日
(86)【国際出願番号】US2017027620
(87)【国際公開番号】WO2018004784
(87)【国際公開日】20180104
【審査請求日】2020年3月6日
(31)【優先権主張番号】15/196,702
(32)【優先日】2016年6月29日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】508045099
【氏名又は名称】シトリックス・システムズ・インコーポレイテッド
【氏名又は名称原語表記】Citrix Systems,Inc.
(74)【代理人】
【識別番号】110002675
【氏名又は名称】特許業務法人ドライト国際特許事務所
(72)【発明者】
【氏名】デイビッド ロイド
(72)【発明者】
【氏名】アンドリュー イネス
【審査官】 行田 悦資
(56)【参考文献】
【文献】 特開2000−221881(JP,A)
【文献】 米国特許出願公開第2002/0184507(US,A1)
【文献】 特開2013−192125(JP,A)
【文献】 特表2005−502217(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
G06F 21/31
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
公開鍵インフラストラクチャ(PKI:public key infrastructure)スキームのコンテキストにおける秘密鍵の使用を制御するための方法であり、
クライアントコンピュータマシンにおけるシステムレベルエージェントが、仮想スマートカードサーバ(VSS:virtual smart card server)にユーザ認証情報を提供することにより、前記VSSに対してのみアクセス可能な安全なデータストア内の仮想スマートカードにそれぞれ割り当てられた複数の秘密鍵の検索を含む秘密鍵オペレーションを開始可能にし、
前記VSSからリモートされた前記クライアントコンピュータマシンにおけるシステムレベルエージェント、前記VSSにおける前記クライアントコンピュータマシンのマシン認証プロトコルを開始し、信頼されたコンピュータシステムとして前記VSSに対する前記クライアントコンピュータマシンを確立すること、
前記クライアントコンピュータマシンのユーザレベルエージェントで秘密鍵オペレーションの要求を受信したことに応答して、前記クライアントコンピュータマシンがユーザからユーザ認証情報を取得すること、
前記ユーザが前記ユーザ認証情報に基づいて認証されるに先だって前記ユーザレベルエージェントが、前記システムレベルエージェントと交渉前記VSSから前記秘密鍵オペレーションを許可するクッキーを取得すること、
前記ユーザレベルエージェントが、前記VSSへの秘密鍵オペレーションの要求を開始すること、
前記ユーザレベルエージェントによって開始された前記要求の一部として、前記ユーザ認証情報および前記クッキーを前記ユーザレベルエージェントが、前記VSSに通信すること、
前記要求に応答して、少なくとも前記ユーザに発行された前記仮想スマートカードの一つに割り当てられた秘密鍵を使用して、前記ユーザレベルエージェントによって要求された秘密鍵オペレーションを前記VSS選択的に実行することを含む、方法。
【請求項2】
前記VSSが、前記秘密鍵オペレーションの結果を、前記クライアントコンピュータマシンの前記ユーザレベルエージェントに通信することをさらに含む、請求項1に記載の方法。
【請求項3】
前記ユーザレベルエージェントが、前記秘密鍵オペレーションの結果を前記クライアントコンピュータマシン上で実行されるアプリケーションプログラムに提供することをさらに含む、請求項2に記載の方法。
【請求項4】
前記ユーザレベルエージェントが、前記クライアントコンピュータマシン上で実行されるアプリケーションプログラムから前記秘密鍵オペレーションの要求を受信することをさらに含む、請求項1に記載の方法。
【請求項5】
記クッキーが前記秘密鍵オペレーションの実行を可能にするために前記VSSにおいて一回だけ有効である請求項1に記載の方法。
【請求項6】
前記VSSにおいて実行される前記秘密鍵オペレーションが、前記VSSに通信された署名済みデータまたは復号済みデータの安全なハッシュを生成することを含む請求項1に記載の方法。
【請求項7】
前記ユーザ認証情報が、パスワード、ユーザバイオメトリックデータおよび物理的なスマートカードから得られるデータからなる群から選択される一つまたは複数の要素からなる、請求項1に記載の方法。
【請求項8】
前記方法は、バイオメトリックデータキャプチャデバイスおよびスマートカードリーダデバイスのうちの少なくとも一つによって、前記ユーザ認証情報をキャプチャすることをさらに含む、請求項7に記載の方法。
【請求項9】
前記ユーザレベルエージェント、前記システムレベルエージェントおよび前記VSSは、使用が要求されている特定の秘密鍵に従って決定された所定のセキュリティポリシーを選択的に適用することをさらに含む、請求項1に記載の方法。
【請求項10】
前記VSSが、前記秘密鍵オペレーションの実行を要求する各アクションに関する情報を、安全なデータログにおいて記録することをさらに含む、請求項1に記載の方法。
【請求項11】
公開鍵インフラストラクチャ(PKI:public key infrastructure)スキームのコンテキストにおける秘密鍵の使用を制御するための方法であり、
仮想スマートカードサーバ(VSS:virtual smart card server)が、信頼されたコンピュータシステムとして前記VSSからリモートされたクライアントコンピュータマシンを確立するための要求であって、予め定められたマシン認証プロトコルに従って前記クライアントコンピュータマシンにおけるシステムレベルエージェントによって開始される前記要求を前記VSSにおいて受信すること、
前記VSSが、前記クライアントコンピュータマシンのユーザが認証されるに先だってクッキーの要求を前記システムレベルエージェントから受信すること、
前記VSSが、要求されたクッキーを前記システムレベルエージェントに提供すること、
前記VSSが、ユーザレベルエージェントから、前記クッキーと前記ユーザから前記ユーザレベルエージェントによって取得された選択されたユーザ認証情報とが一部を構成する秘密鍵オペレーションのための要求を受信すること、
前記VSSが、前記要求に応答して、前記VSSのみにアクセス可能な安全なデータストアにストアされた秘密鍵であって少なくとも前記ユーザに発行された前記仮想スマートカードの一つに割り当てられた前記秘密鍵を検索することによって、前記ユーザレベルエージェントによって要求された前記秘密鍵オペレーションを選択的に実行することを含む、方法。
【請求項12】
複数の仮想スマートカードにそれぞれ関連付けられたコンテンツへのアクセスを制御する仮想スマートカードサーバ(VSS:virtual smart card server)を備える第1のコンピュータマシンと、
前記VSSから遠隔に配置された一または複数の第2のコンピュータマシンであって、おのおのが、信頼されるコンピュータシステムとして前記VSSにクライアントコンピュータマシンを確立するために、前記VSSにクライアントコンピュータマシンのマシン認証プロトコルを開始するシステムレベルエージェントを含むクライアントコンピュータシステムを備える、前記第2のコンピュータマシンと、
前記クライアントコンピュータマシンの少なくとも一つのアプリケーションプログラムによって開始される仮想スマートカードオペレーションの要求を受信する、前記クライアントコンピュータシステムにおけるユーザレベルエージェントと、
を含み、
前記ユーザレベルエージェントは前記要求に応答して、前記クライアントコンピュータシステムに、
前記クライアントコンピュータシステムのユーザから、前記仮想スマートカードオペレーションの使用を許可するのに必要なユーザ認証情報を取得させ、
前記ユーザが前記ユーザ認証情報に基づいて認証されるに先だって、前記システムレベルエージェントと交渉して、前記VSSからクッキーを取得し、
前記仮想スマートカードオペレーションを実行するための前記VSSへの要求を開始し、
前記要求の一部として前記ユーザ認証情報および前記クッキーを前記VSSに通信し、
前記VSSは、要求された仮想スマートカードオペレーションに適用可能なセキュリティポリシーが満たされる場合、仮想スマートカードオペレーションを選択的に実行することによって前記要求に応答する、仮想スマートカードシステム。
【請求項13】
前記VSSは、前記仮想スマートカードオペレーションの結果を前記ユーザレベルエージェントに通信するように構成される、請求項12に記載の仮想スマートカードシステム。
【請求項14】
前記ユーザレベルエージェントは、前記仮想スマートカードオペレーションの結果を、前記仮想スマートカードオペレーションの要求を開始した前記アプリケーションプログラムに提供するように構成される、請求項13に記載の仮想スマートカードシステム。
【請求項15】
前記VSSは、前記クッキーが前記VSSにおける単一の仮想スマートカードオペレーションに対してのみ有効であるように構成される、請求項12に記載の仮想スマートカードシステム。
【請求項16】
前記仮想スマートカードオペレーションは前記VSSで実行される秘密鍵オペレーションであり、前記VSSは前記VSSに通信された署名済みデータまたは復号済みデータの安全なハッシュを生成するように構成される、請求項12に記載の仮想スマートカードシステム。
【請求項17】
前記ユーザ認証情報は、パスワード、ユーザバイオメトリックデータおよび物理的なスマートカードから得られるデータからなる群から選択される一つまたは複数の要素からなる、請求項12に記載の仮想スマートカードシステム。
【請求項18】
前記クライアントコンピュータシステムは、バイオメトリックデータキャプチャデバイスおよびスマートカードリーダデバイスのうちの少なくとも一つを使用することによって、前記ユーザ認証情報をキャプチャするように構成される、請求項17に記載の仮想スマートカードシステム。
【請求項19】
前記ユーザレベルエージェント、前記システムレベルエージェントおよび前記VSSの各々は、使用が要求されている特定の仮想スマートカードに従って決定された所定のセキュリティポリシーを選択的に適用するように構成される、請求項12に記載の仮想スマートカードシステム。
【請求項20】
前記VSSは、仮想スマートカードオペレーションに対する各要求に関連する複数のイベントに関する情報をデータログに記録するように構成される、請求項12に記載の仮想スマートカードシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2016年6月29日に出願された米国特許出願第15/196,702号の利益を主張し、その出願はその全体が参照により本明細書に組み込まれる。
【0002】
本書は、認証、暗号化およびデータ記憶のための方法およびシステムに関する。より詳細には、本書がスマートカードを使用して一般に実施される企業レベルの機能を容易にするための方法およびシステムに関する。
【背景技術】
【0003】
スマートカードはポケットサイズのカードであり、内蔵された電子回路(例えば、内蔵メモリを備えた安全なマイクロコントローラー)を含み、直接的な物理的な接続または無線周波信号の手段によってリーダ装置によって読み取ることができる。スマートカードは、暗号化から認証までの範囲の多くの用途を有する。スマートカードは少量のデータを記憶する能力を有し、特定のオンカード処理機能を実行するように設計することができる。このような情報伝達を容易にするために、従来のスマートカードは、一般にスマートカードリーダと呼ばれるハードウェア要素と情報伝達するように設計されている。
【0004】
多くの企業は、金融取引や文書承認などの監査プロセスに厳しい要件を課している。どの従業員がどのステップをいつ許可したかを知る必要がある。同様に、従業員は彼らが承認している取引を完全に理解する必要があり、この目的のために彼らの資格認証の使用を制御することができなければならない。これらのプロセスを容易にするために、スマートカードは、認証および署名の目的で従業員に発行され得る。このようなシナリオでは、スマートカードが従来の公開鍵インフラストラクチャ(PKI:public key infrastructure)スキームに関連して使用するための秘密鍵を含むことができる。スマートカードは、個人識別番号(PIN:personal identification number)パスコードまたは指紋リーダと併せて使用され、ユーザを認証することができる。
【0005】
スマートカードの使用に代わるものとして、本明細書で説明される目的のためのデジタル証明書は、「ソフトウェア証明書」サポートを使用してエンドユーザに直接発行されている。このような実装では、PKIシステムで使用するための秘密鍵が、従来、ユーザのローミングプロファイルに格納されてきた。知られているように、ローミングユーザプロファイルはあるコンピュータオペレーティングシステムの特徴であり、それによって、ユーザは同じネットワーク上の任意のコンピュータにログオンし、その文書ならびに他のデータ(デジタル証明書および/または秘密鍵など)にアクセスすることができる。しかし、ユーザは秘密鍵を制御できず、ハッカーが鍵を「盗む」ことは非常に容易である。
【0006】
従来のスマートカードは、ローミングユーザプロファイルに関連付けられた証明書および秘密鍵を利用するシステムに優る特定の利点を提供する。例えば、スマートカードは、秘密鍵がコピーされないように保護する上でより優れたハードウェアベースのソリューションを容易にする。それでも、スマートカードは、紛失/窃盗の影響を受けやすく、ユーザのPINを推定できると、許可なしで使用することができる。一旦、スマートカードのようなトークンに対する物理的な制御が失われると、鍵が無許可の目的のために使用されないことをエンタープライズが保証することは困難である。例えば、そのような状況は、スマートカードが終了時に従業員によって返却されないシナリオにおいて生じ得る。
【0007】
従来のスマートカードを使用する際の別の課題は、特定の個人の資格認証が様々なトランザクションに関連していつどのように使用されたかを再構築または追跡するために必要とされる監査プロセスを妨げる可能性があることである。スマートカードを使用するシステムは監査を容易にするように設計することができるが、これらのシステムは独自仕様であるか、または異なるアプリケーションに組み込まれる傾向がある。したがって、監査を統一することができないかまたは幾つかのアプリケーションがすべての適切な情報をログに記録しないことがある。
【発明の概要】
【0008】
本発明の実施形態は、仮想スマートカードシステムに関する。システムは、仮想スマートカードサーバ(VSS:virtual smart card server)を備える第1のコンピュータマシンを含む。VSSは、複数の仮想スマートカードにそれぞれ関連付けられたコンテンツへのアクセスを制御する。一または複数の第2のコンピュータマシンがVSSから離れて配置される。第2のコンピュータマシンの各々は、システムレベルエージェントを含むクライアントコンピュータシステムである。システムレベルエージェントは、VSSにおいてクライアントコンピュータマシンのマシン認証プロトコルを開始して、信頼されるコンピュータシステムとしてVSSに対してクライアントコンピュータマシンを確立する。そのように確立されると、クライアントコンピュータシステムにおけるユーザレベルエージェントは、一つまたは複数の仮想スマートカードオペレーションに対する要求を受信する。例えば、要求は、クライアントコンピュータマシン上で実行されるアプリケーションプログラムによって開始されることができる。
【0009】
ユーザレベルエージェントはクライアントコンピュータシステムに特定のオペレーションを実行させるように、そのような各要求に応答する。これらは、クライアントコンピュータシステムのユーザから、仮想スマートカードオペレーションの使用を許可するのに必要なユーザ認証情報を取得することを含む。これらのオペレーションは、システムレベルエージェントと交渉して、VSSからクッキーを取得することをさらに含むことができる。その後、ユーザレベルエージェントは、特定の仮想スマートカードオペレーションを実行するためにVSSへの要求を開始する。この要求は、ユーザ認証情報およびクッキーをVSSに通信することを含む。VSSは、要求された仮想スマートカードオペレーションに適用可能なセキュリティポリシーが満たされることを条件として、仮想スマートカードオペレーションを選択的に実行するように各要求に応答するように構成される。特定の仮想スマートカードオペレーションが完了すると、VSSは、仮想スマートカードオペレーションの結果をユーザレベルエージェントに通信する。次に、ユーザレベルエージェントは、仮想スマートカードオペレーションの結果を、仮想スマートカードオペレーションの要求を開始したアプリケーションプログラムに提供する。VSSは後続の監査目的のために、仮想スマートカードオペレーションに対する各要求に関係する複数のイベントに適用される情報をデータログに記録するように構成される。
【0010】
幾つかの実施形態は、また、公開鍵インフラストラクチャ(PKI:public key infrastructure)スキームのコンテキストにおいて一つまたは複数の秘密鍵の使用を制御するための方法に関する。この方法は、VSSのみに可能な安全なデータストアに複数の秘密鍵を格納することを含むことができる。その後、VSSからリモートされたクライアントコンピュータマシンのシステムレベルエージェントを使用して、VSSでクライアントコンピュータマシンのマシン認証プロトコルを開始する。このプロセスは、信頼されるコンピュータシステムとしてVSSにクライアントコンピュータマシンを確立する。クライアントコンピュータマシンにおけるユーザレベルエージェントは、秘密鍵オペレーションのための一つまたは複数の要求を受信することができる。例えば、そのような要求は、クライアントコンピュータマシン上で実行するアプリケーションプログラムによって生成することができる。特定の要求に応答して、ユーザレベルエージェントはユーザからユーザ認証情報を取得し、システムレベルエージェントと交渉してVSSからクッキーを取得する。ユーザレベルエージェントはまた秘密鍵オペレーションのための要求をVSSに開始し、ユーザ認証情報およびクッキーをユーザレベルエージェントからVSSに通信する。その要求に応答して、VSSは、認証情報が適用されるセキュリティポリシーを満たす場合、ユーザに割り当てられた秘密鍵を使用して、ユーザレベルエージェントによって要求された秘密鍵オペレーションを選択的に実行する。
【0011】
実施形態は以下の図面を参照して説明され、図面において同様の符号は図面全体を通して同様のアイテムを表す。
【図面の簡単な説明】
【0012】
図1図1は、本明細書で説明される仮想スマートカードシステムの一実施形態を理解するのに有用なシステム図である。
図2図2は、安全なコンピュータシステムのあるコンポーネントを理解するのに有用なアーキテクチャ図である。
図3図3は、仮想スマートカードシステムの様々なコンポーネント間の特定の通信を理解するのに有用な図である。
図4A図4Aは、安全なコンピュータで仮想スマートカードにアクセスするための例示的な方法を示すフローチャートを含む。
図4B図4Bは、安全なコンピュータで仮想スマートカードにアクセスするための例示的な方法を示すフローチャートを含む。
図5A図5Aは、仮想スマートカードサーバにおいて仮想スマートカードへのアクセスを提供する例示的な方法を示すフローチャートを含む。
図5B図5Bは、仮想スマートカードサーバにおいて仮想スマートカードへのアクセスを提供する例示的な方法を示すフローチャートを含む。
図6図6は、例示的なコンピュータシステムの構成を理解するのに有用なハードウェアブロック図である。
【発明を実施するための形態】
【0013】
本明細書で全体的に説明し、添付の図面に示す実施形態の構成要素は、多種多様な異なる構成で配置および設計できることが容易に理解されよう。したがって、図面に表される様々な実施形態の以下のより詳細な説明は、本開示の範囲を限定することを意図するものではなく、様々な実施形態を単に代表するものである。実施形態の様々な観点が図面に示されているが、図面は特に示されていない限り、必ずしも一定の縮尺で描かれていない。
【0014】
スマートカードはポケットサイズのカードであり、内蔵された電子回路(例えば、内蔵メモリを備えた安全なマイクロコントローラー)を含み、直接的な物理的な接続または無線周波信号の手段によってリーダ装置によって読み取ることができる。いくつかのシナリオでは、スマートカードが公開鍵インフラストラクチャ(PKI:public key infrastructure)スキームに関連したデジタル証明書を含むことができる。この種の例示的なデジタル証明書は、X.509などの既知のPKI規格に従って発行されたデジタル証明書である。知られているように、そのようなデジタル証明書はエンティティの公開鍵を、その所有者(例えば、組織または人)に関する特定の属性に結びつけるために使用することができる。従来のスマートカードは、特定のユーザに割り当てられた秘密鍵に関する情報も含むことができる。スマートカード上のデジタル証明書および秘密鍵は個人(例えば、企業の従業員)によって様々な目的のために使用される。例えば、これらの要素はユーザが文書に署名しているか、またはトランザクションを承認しているときに、署名および認証の目的で使用することができる。また、それらは、他のアプリケーションの中でも、安全なドキュメント処理、および/または暗号通信のために使用されてもよい。
【0015】
しかし、スマートカードは、様々な制限および問題を抱える。カードは忘れられるか、紛失するか、または盗まれる可能性があり、そのようなシナリオでは、センターアドミニストレーターは、スマートカードが最終的にどこになり得るかに関して、限られた可視性のみを有する。また、スマートカードが紛失または盗難された場合、カードに格納された鍵情報は管理者によって無効にされることができるだけであり、リモートで削除することはできない。従来のスマートカードに関する別の問題は、従業員が朝自宅でスマートカードを離れるときに生じる。彼らに割り当てられたスマートカードがなければ、従業員は彼らの仕事を遂行することができないかもしれない。また、スマートカードは、通常、「グループ間で共有される」ことができない。各スマートカードは個人に割り当てられなければならず、例えば、突然のビジースケジュールを処理するために4人のチームを6人に拡張する必要がある場合、この目的のために2つの追加のスマートカードを準備し、次いで、ビジー期間が完了すると準備を解除する必要がある。最後に、スマートカードを使用するコンピュータシステムはある種の監査機能を容易にすることができるが、スマートカードが使用された時および場所を判定するためにセンターアドミニストレーターが監査を実行することはしばしば非常に困難である。
【0016】
したがって、本明細書では、一つまたは複数のユーザのそれぞれによる一つまたは複数の仮想スマートカードのそれぞれの使用を容易にするための方法およびシステムが開示される。本明細書に記載される実施形態は従来のスマートカードに関連する多くの制限を克服し、その利益の全てを保持する。ユーザは、安全なコンピュータシステムに対して彼らの身元を認証することができる。その後、(ユーザが使用するための何らかの権限を有する)適切な証明書および秘密鍵が、リモート中央サーバ上で安全に生成またはアクセスされ得る。
【0017】
リモート中央サーバは、サーバがユーザのための様々なタイプの証明書を生成することができるように、認証局へのアクセスを有利に有することができる集中化された仮想スマートカードサーバである。知られているように、認証局はエンティティの識別を検証し、エンティティのデジタル証明書にデジタル署名することによってそのような識別を証明する組織である。すべての証明書および秘密鍵は攻撃者が秘密鍵にアクセスすることが極めて困難になるように、場合によっては「ハードウェアセキュリティモジュール」を使用して鍵を管理して、仮想スマートカードサーバ上に安全に格納される。いくつかの実施形態では、サーバがサーバ上で物理的セキュリティを維持するために、安全な場所に保持することができる。各ユーザは、特定の仮想スマートカードの使用を許可するように設定された事前に設定されたポリシーに従って、サーバによって認証される。認証メカニズムは、ユーザ名/パスワード、セキュリティアサーションマークアップ言語(Security Assertion Markup Language:SAML)認証、バイオメトリックまたは任意の他の適切な方法であり得る。異なる認証要件またはセキュリティプロトコルは、その特定のユーザのためにサーバ上に格納され得るいくつかの異なる仮想スマートカードのそれぞれへのユーザアクセスのために定義され得る。
【0018】
特定の個人に割り当てられた仮想スマートカードの一つが使用される場合、注意深く制御されたインフォームドコンセントおよび認証プロンプトが、安全なコンピュータシステムでユーザに表示される。プロンプトはユーザが何らかの目的のために(例えば、特定のトランザクションまたはプロセスを承認するために)仮想スマートカードのうちの一つを利用する必要があるときはいつでも、表示され得る。仮想スマートカードサーバは、特定の仮想スマートカードの使用に適用されるセキュリティポリシーに適切なレベルであれば何でも、ユーザを認証する。これは、以下のような、すなわちユーザ名、アプリケーションが使用されている場所、時間など情報を潜在的に含む。認証ポリシーによって要求される場合、サーバは「存在証明」認証を要求することもでき、したがって、エンドユーザは、チャレンジに応答する(パスワードを入力する、スマートカードを挿入する、指紋リーダを使用する)必要があり得る。
【0019】
ユーザが安全なコンピュータシステムに対して認証されると、適切な証明書(すなわち、仮想スマートカード)が、標準的なコンピュータオペレーティングシステム(APIs)を使用することによって、ユーザがアクセスできるアプリケーションに公開される。標準的なオペレーティングシステムAPIsの使用は、アプリケーションの最も広い選択との互換性を促進する。スマートカードが実際に使用される場合(例えば、ユーザがトランザクションまたはプロセスを承認する必要がある場合)、注意深く制御されたインフォームドコンセントおよび認証プロンプトがユーザに表示される。
【0020】
より大きなセキュリティを保証するために、ユーザの秘密鍵(ユーザの仮想スマートカードに関連付けられる)は、リモート中央サーバから決して離れないことが有利である。したがって、たとえユーザが様々な秘密鍵を使用することを許可されたとしても、ユーザは、それらの秘密鍵への直接アクセスを決して許可されない。ユーザに利用可能な各秘密鍵の各使用は、集中化された仮想スマートカードサーバに委任される。したがって、中央サーバは、各秘密鍵の使用毎に安全な監査ログを作成することができる。さらに、異常が検出された場合(例えば、悪意のある従業員が終了した場合)、リモート中央サーバは、管理者からのコマンドに応答して、そのようなユーザに割り当てられた秘密鍵へのアクセスを直ちに終了することができる。この効力発生に遅れはない。
【0021】
図1は、本明細書で説明する仮想スマートカードシステムの一実施形態を理解するのに有用なシステム図である。便宜上、本明細書で説明される特定の実施形態は秘密鍵情報(例えば、PKIスキームのコンテキストで使用され得る秘密鍵情報)を備える一つまたは複数の仮想スマートカードのコンテキストで開示される。しかし、本明細書に記載される仮想スマートカードシステムはこの点において限定されず、代わりに、従来の物理的スマートカードにおいて提供され得る任意のコンテンツまたは機能に関連して使用され得ることが理解されるべきである。
【0022】
図1のシステムは、認証局(CA)104、安全なデータストア103およびメインデータストア105へのアクセスを有する仮想スマートカードサーバ(VSS)102を含む。一つまたは複数の安全なコンピュータシステム106−106は、コンピュータデータネットワーク108を使用してVSSと通信する。VSS102は、クライアントの安全なコンピュータシステム106−106に仮想スマートカードサービスを提供するコンピュータプログラムおよび関連するコンピュータハードウェアを備えることができる。
【0023】
安全なデータストア103は、個々のユーザに割り当てられた、または発行された一つまたは複数の秘密鍵に関する秘密鍵データ114を含むことができる。いくつかの実施形態では、安全なデータストア103がデジタル鍵を記憶するように特に設計されたハードウェアセキュリティモジュール(Hardware Security Module:HSM)とすることができる。したがって、安全なデータストア103は、VSSに接続するプラグインカードまたは外部デバイスとすることができる。
【0024】
メインデータストア105は、秘密鍵の使用を許可するかどうかを決定するときにVSSによって課せられる条件および要件を定義する一つまたは複数のVSSセキュリティポリシー110を含むことができる。メインデータストアは、ユーザ認証データ112、デジタル証明書116、およびトランザクションログ118も含むことができる。トランザクションログ118はVSSによって使用されて、後続の監査目的のために、本明細書で説明するように、秘密鍵動作を伴うトランザクションを記録する。
【0025】
コンピュータデータネットワーク108は、本明細書で説明する仮想スマートカードシステムを実装するのに必要なファイル、データおよび他のタイプの情報の通信を容易にするのに適している。コンピュータネットワーク108は、また、VSS102で利用可能な特定のコンピュータリソースを安全なコンピュータシステム106−106と共有することを容易にすることができる。この目的のために使用することができる例示的なネットワークは、任意の既知の通信プロトコルに従って動作するパケットデータネットワークを含むことができる。そのようなネットワークの組織的範囲は、イントラネット、エクストラネットおよびインターネットのうちの一つまたは複数を含むことができる。
【0026】
ここで図2を参照すると、安全なコンピュータシステム106の特定のコンポーネントを把握するのに役立つアーキテクチャ図が示されている。安全なコンピュータシステムはコンピュータハードウェアコンポーネント214(例えば、中央処理装置またはCPU)、メインメモリ216および特定のネットワークインターフェースデバイス218を備え、本明細書で説明するネットワーク通信を容易にすることができる。安全なコンピュータシステムは、安全なコンピュータシステム上で利用可能なハードウェアおよびソフトウェアリソースを管理するためのオペレーティングシステム212も含むことができる。オペレーティングシステム212は、アプリケーションプログラム202が使用できる事前コンパイルされたルーチンまたは機能のライブラリ208へのアクセスを容易にすることができる。ライブラリ内で提供される様々な機能およびルーチンは、一つまたは複数のアプリケーションプログラミングインターフェース(API:application programming interface)210を使用してアプリケーションに公開することができる。
【0027】
セキュリティ保護されたコンピュータシステム106は、システムレベルエージェント204およびユーザレベルエージェント206をさらに含む。システムレベルエージェント204およびユーザレベルエージェント206は本明細書で説明する仮想スマートカードの使用を容易にするために、安全なコンピュータシステムにおいてある種のセキュリティおよび認証関連機能を実行するコンピュータプログラムである。これらのエージェントの各々は、VSS102との特定の通信にも関与する。システムレベルエージェント204は主に、安全なコンピュータシステム106に関する認証オペレーションに関与する。ユーザレベルエージェントは主に安全なコンピュータシステム106のユーザに関する認証に関与する。システムレベルエージェントは、安全なコンピュータシステムの起動プロセス中にインスタンス化される。ユーザレベルエージェント206は、安全なコンピュータシステム106にログインしたユーザ毎に有利にインスタンス化される。ユーザに対してインスタンス化されるユーザレベルエージェント206は、そのユーザに代わって動作するようにシステムレベルエージェント204によって信頼される。
【0028】
メインメモリ216は本明細書で説明するように、一つまたは複数の仮想スマートカード(例えば、秘密鍵情報を含む仮想スマートカード)の使用を許可するために適用されるセキュリティポリシーを制御するように構成された一つのまたは複数の定義されたセキュリティポリシーを含むことができる。例えば、メインメモリは、各仮想スマートカードの使用のためにシステムレベルエージェント204によって適用されるセキュリティポリシーを定義する複数のシステムレベルエージェント(system level agent:SLA)セキュリティポリシー220を含むことができる。同様に、メインメモリは、各仮想スマートカードの使用のためにユーザレベルエージェント206によって適用されるセキュリティポリシーを定義する複数のユーザレベルエージェントセキュリティポリシー222を含むことができる。
【0029】
一態様によれば、ユーザレベルエージェント206は、VSS102に対して直接ユーザを認証する。しかし、そのたびに、一回使用のクッキーを取得するためにシステムレベルエージェント204と最初に交渉しなければならない。システムレベルエージェント204はVSS102から一回使用のクッキーを取得することによって応答し、それをユーザレベルエージェント206に提供する。したがって、VSS、システムレベルエージェント204、およびユーザレベルエージェント206はすべて、どの認証または秘密鍵アクションが実行されているかを知っている。これらのエンティティのオペレーションは以下でさらに詳細に説明され、それらの目的は議論が進むにつれてより明らかになるのであろう。
【0030】
次に図3を参照すると、仮想スマートカードシステムの様々なコンポーネント間のある種の相互作用を理解するのに有用なコミュニケーションダイアグラムが示されている。これらの対話はVSS102と、システムレベルエージェント204およびユーザレベルエージェント206を含む安全なコンピュータシステム(例えば、安全なコンピュータシステム106)を含む様々なエンティティとの間の通信を含むことができる。これらの相互作用のいくつかは、図4A−4Bおよび図5A−5Bに関連してさらに詳細に説明される。より明確にするために、単一の仮想スマートカードのみの使用が、図3に示される通信において説明される。さらに、ユーザは安全なコンピュータシステムにログオンした特定のセッション中に、VSS102から一つまたは複数の許可された仮想スマートカードに同様にアクセスすることができることを理解されたい。これらの異なる仮想スマートカードの各々は異なる目的を有することができ、いくつかの実施形態では、異なるセキュリティポリシーに従ってアクセスすることができる。
【0031】
通信セッション300は、システムレベルエージェント204がステップ302で通信して、VSSへの安全なコンピュータクライアント認証を開始したときに開始することができる。このプロセスは、適切な認証プロトコルを使用して、安全なコンピュータシステム106をVSSに対して識別することを含むことができる。このプロセスは、認証が肯定応答または完了したことを示すために、VSSからシステムレベルエージェントへの通信303を含み得る。通信303は、また、利用可能なスマートカードおよび適切な使用ポリシーのリストを備えることができる。スマートカードおよび適切な使用ポリシーのこのリストは、その後、後の使用のために安全なコンピュータシステムにおいてシステムレベルエージェント204によって格納される。
【0032】
本明細書に記載される目的のために使用され得る例示的な機械認証プロトコルは、よく知られているKerberos識別プロトコルを含み得、それによって、安全なコンピュータシステム106nおよびVSS102の両方がそれぞれ、他方の同一性を検証する。あるいは、従来のトランスポート層セキュリティ(Transport Layer Security:TLS)クライアント認証プロトコルをこの目的のために使用することができる。このステップでマシン認証に使用される正確なプロセスは安全なコンピュータシステムおよびVSS102の各々が他のマシンのアイデンティティを認証することができる限り、重要ではない。したがって、現在知られているかまたは将来知られている任意の適切な機械認証プロセスを使用することができる。使用される特定の認証プロトコルに応じて、他のコンピュータシステムとの追加の通信を機械認証プロセスに関与させることができることを理解されたい。例えば、そのような通信は、信頼できる権威サーバへの通信を含むことができる。明瞭にするために、これらの付加的なステップは、図3では意図的に省略されている。
【0033】
機械認証プロセスが303で完了すると、VSSはその後、特定のシステムレベルエージェント204からの要求を信頼し、受け入れる。ユーザが安全なシステムコンピュータ106にログオンすると、システムレベルエージェント204は、ユーザが到着したことをVSS102に通知する(304)。これは、VSSが適切な仮想スマートカードがそのユーザによる使用のために利用可能であることを確実にすることを可能にする。システムレベルエージェントはまたそのユーザのためのユーザレベルエージェント206をインスタンス化する。この時点で、ユーザは、一つまたは複数のアプリケーションプログラム202を使用して処理動作を開始することができる。
【0034】
ある時点で、これらの処理オペレーションはある秘密鍵オペレーション(例えば、物理的なスマートカードに格納された秘密鍵の使用によって従来取り扱われている秘密鍵オペレーション)を必要とする可能性があり、例示的な秘密鍵オペレーションは、認証オペレーション、署名オペレーション、プロセス承認オペレーションおよび/または暗号オペレーションを含むことができる。一つまたは複数のそのようなオペレーションは、PKIシナリオのコンテキストにおける秘密鍵の使用を含むことができる。このようなイベントがアプリケーションプログラム202の一つに関連して発生すると、アプリケーションプログラムは秘密鍵オペレーションの要求306を開始する。例えば、そのようなオペレーションを開始するために、アプリケーションは、安全なコンピュータシステム106n上で利用可能な一つまたは複数のスタンダードオペレーティングシステムAPI’s210に要求を通信することができる。
【0035】
これに応答して、ユーザレベルエージェント206は、308において、本明細書で開示されるような特定の仮想スマートカードの使用に関するユーザの同意を要求する一つまたは複数のユーザプロンプトを表示する。これらの同意プロンプトは、ユーザ認証310を含むアクションを含むことができる。システム内の各ユーザは、それらに割り当てられた一つまたは複数の仮想スマートカードのうちの特定の一つ使用するために定義された構成されたポリシーに従って認証される。この点に関して、特定のユーザに割り当てられた異なる仮想スマートカードは、異なるセキュリティポリシーを添付することができることに留意されたい。したがって、特定のインスタンスにおけるユーザ認証メカニズムは、特定の仮想スマートカードの使用のために適所にあるセキュリティポリシーに適切であり得る、ユーザ名/パスワードの組み合わせ、SAML認証、またはバイオメトリック認証のうちの一つまたは複数を含み得る。いくつかのシナリオでは、物理的なスマートカードをこの認証プロセスの一部として使用することもできる。したがって、ユーザは、310で認証情報を提供することによってプロンプトに応答する。
【0036】
最終的に、ユーザレベルエージェント206は306において特定のアプリケーションプログラムによって要求された秘密鍵オペレーションを実行するために、VSSと通信する必要がある。しかし、そのようにする前に、サービスレベルエージェント(SLA)204と交渉して(312)、一回使用のクッキーを受信しなければならない。一回使用のクッキーは暗号化され得る小さなデータファイル(例えば、テキストファイル)から構成され得る。一回使用のクッキー(その名前が意味する)は、単一の秘密鍵オペレーションのみを許可するために有効である。これらのオペレーションはユーザレベルエージェントが仮想スマートカードトランザクションに従事しているときに、システムレベルエージェント204が常に認識されることを保証する。システムレベルエージェント204は、ユーザレベルエージェント206が仮想スマートカードを使用する許可を求めたことをVSS102に知らせることによってユーザレベルエージェント206に応答する(314)。このアクションはVSSにトランザクションを警告し、VSSが316でシステムレベルエージェント204に一回使用のクッキーを提供することになる。システムレベルエージェントはこの一回使用のクッキーを受信し、それを318でユーザレベルエージェント206に提供する。
【0037】
この時点で、ユーザレベルエージェントは、VSSからの秘密鍵オペレーションを要求するのに必要な要素のすべてを有する。それは、310で受信されたユーザ認証情報を有し、VSSから秘密鍵オペレーションを取得することを可能にする、必要とされる一回使用のクッキーを有する。したがって、ユーザレベルエージェント206は、320において、秘密鍵オペレーションの要求を開始する。この要求は、310で取得された一回使用のクッキーおよびユーザ認証データを含む情報を含むことができる。VSS102はこの情報を受信し、それを評価して、要求された秘密鍵オペレーションを実行すべきかどうかを判定する。その場合、VSSはそのような秘密鍵オペレーションを実行し、その結果をユーザレベルエージェント206に通信する(322)。例えば、結果は、秘密鍵を使用して復号化された署名付き文書および/またはデータの安全なハッシュを含むことができる。これらの結果がユーザレベルエージェントで受信されると、324において、秘密鍵オペレーションの要求を開始したアプリケーションプログラム202にこれらの結果が提供される。
【0038】
次に図4Aおよび図4Bを参照すると、安全なコンピュータ106nにおける仮想スマートカードシステムの例示的な方法を示すフローチャートが提供されている。プロセスは402で始まり、404に進み、システムレベルエージェントによって安全なコンピュータシステムがVSSに対して認証される。このステップは、安全なコンピュータシステムにインストールされている様々なアプリケーションプログラムが使用できるようにすべき使用可能なスマートカードのリストを、安全なコンピュータシステムのVSSから受信することも含むことができる。この情報は、安全なコンピュータシステムに格納され、ユーザレベルエージェント206によってアクセスされることができる。ユーザが安全なコンピュータシステムにログインすると(406:Yes)、システムレベルエージェントに通知される。システムレベルエージェントは、408において、ユーザが到着したことをVSSに通知する。さらに、システムレベルエージェントは、410において、ユーザレベルエージェントをインスタンス化する。その後、ユーザは、安全なコンピュータシステムで利用可能な一つまたは複数のアプリケーションプログラムを利用することができる。
【0039】
ある時点で、コンピュータシステム上で使用中のアプリケーションプログラムは、秘密鍵オペレーション(412:Yes)を必要とすることがある。このとき、秘密鍵オペレーションの要求は、ユーザレベルエージェントに向けられる。このプロセスをよりよく理解するために、よく知られた或るオペレーティングシステム(例えば、Windowsベースのオペレーティングシステム)では、公開鍵および証明書が秘密鍵を参照しながら「ユーザの証明書ストア」内に配置されることに留意されたい。同様に、安全なコンピュータシステム内のスマートカードデータベースは、証明書およびカードを参照するスマートカードリーダおよび「既知の」スマートカードのリストを含む。ユーザレベルエージェントは、秘密鍵のロケーションが「最新の状態に保たれる」ことを確実にする(これはスマートカードをオンザフライで切り替えることが必要になった場合に定期的に生じる)。また、いくつかのスマートカードは特定の場所(例えば、「オフィスでのみ」)でのみ使用できるように制限され、コーヒーショップでラップトップから作業する場合、ユーザはこのようなスマートカードの使用を妨げられる。本明細書で説明する実施形態ではアプリケーションプログラムがスマートカードデータベースおよび証明書ストアを通常通り使用するが、格納された「参照先」のリストによって、ユーザレベルエージェント206が秘密鍵へのアクセスを得る目的で呼び出される。
【0040】
412において、ユーザレベルエージェントが秘密鍵オペレーションの要求を受信すると、414において、ユーザレベルエージェントはプロンプト(例えば、ユーザ表示画面に表示されたプロンプト)を開始し、ユーザに秘密鍵オペレーションの実行に同意するように要求する。この要求は、特定のユーザ証明書の要求も含むことができる。例えば、ユーザは、チャレンジに応答する(パスワードを入力する、スマートカードを挿入する、指紋リーダを使用する)必要があるかもしれない。本明細書で説明されるユーザレベルエージェントは、有利には仮想スマートカードの特定の「ユーザビリティ」機能を管理する役割を果たす。例えば、ユーザは、特定のアプリケーションに対して仮想スマートカードを使用するように一回だけ、または場合によっては5分毎に一回だけプロンプトされるべきであると決定されてもよい。
【0041】
必要な同意および必要な資格証明データがいったん得られると、ユーザレベルエージェントは、システムレベルエージェントと交渉して(416)、一回使用のクッキーを得る。また、このプロセスは、ユーザが秘密鍵オペレーションの要求に関与していることをシステムレベルエージェントに通知する役割も果たす。システムレベルエージェントはまたプライベートマシンにおけるオペレーションのロギングおよび監査を担当する。したがって、システムレベルエージェントは、ユーザが秘密鍵オペレーションの要求を開始するたびに適切なログ入力を行うことができる。これは、後に、VSSに保持された中央レコードに対してクロスチェックすることができる。
【0042】
418において、システムレベルエージェントはユーザが秘密鍵オペレーションを許可したことをVSSに通知し、VSSは、420において、必要とされる一回使用のクッキーを提供することによって応答する。システムレベルエージェントは422において、一回使用のクッキーをユーザレベルエージェントに通信し、それにより、ユーザレベルエージェントがVSSから直接秘密鍵オペレーションを求めることを可能にする。より詳細には424において、ユーザレベルエージェントは必要な認証データ、一回使用のクッキーおよび秘密鍵要求データをVSSに通信する。ユーザの資格証明(例えば、パスワード、バイオメトリックスキャンデータ)に加えて、認証データは、以下のような、すなわち、ユーザ名、認証オペレーションが要求されている場所、認証要求の時刻、どのアプリケーションプログラムが要求を開始したかなどの情報を含むことができる。秘密鍵オペレーションがVSSで承認された場合、ユーザレベルエージェントは、426で、VSSから秘密鍵オペレーション応答を引き続き受信する。次いで、428において、ユーザレベルエージェントは、要求を開始したアプリケーションが秘密鍵応答データを利用可能にする。その後、プロセスは430で終了するか、または続行することができる。
【0043】
以下、VSSの動作を図5Aおよび5Bを参照して説明する。プロセスは502で開始し、504に進み、VSSはコンピュータシステム認証プロセスに参加するために、リモートコンピュータのシステムレベルエージェントによって開始された要求を受信する。プロセスは506に進み、VSSはクライアントコンピュータシステムとの認証プロセスに従事する。この目的のために使用することができる例示的な機械認証プロトコルは、よく知られているKerberos識別プロトコルまたは従来のトランスポート層セキュリティ(Transport Layer Security:TLS)クライアント認証プロトコルを含むことができる。508において、認証プロセスが成功したかどうかに関する判定が行われる。そうである場合(508:はい)、プロセスは512に進み、リモートクライアントコンピュータは、その後、信頼されるコンピュータシステムとしてVSSにリストされる。認証プロセスが失敗した場合、認証要求は510で拒否され、プロセスは次の要求を処理するために504に戻る。
【0044】
次の時点で、VSSは、リモートクライアントコンピュータシステムのシステムレベルエージェントから新しいユーザ通知を受信することができる(514)。そのような通知が受信されると、VSSは、秘密鍵オペレーションのために特定のユーザの仮想スマートカードを準備することができる(516)。例えば、これらの動作は、ユーザの仮想スマートカードのうちの一つまたはそれ以上に関連付けられた秘密鍵データ114を安全なデータベースから検索することを含むことができる。一般に、秘密鍵データは、安全なデータストア103に記憶される。あるいは、秘密鍵が暗号化されてメインデータストア105に格納されてもよく、その場合、秘密鍵はそれが使用されるときに、安全なデータストア103にインポートされ得る。ユーザが以前にシステムを使用しなかった場合、VSSは、「証明書プロビジョニング」を実行する権限を与えられ得る。これは、スマートカードをユーザに発行する際にシステム管理者が実行するステップの自動バージョンである。事実上、VSSは、システム管理者と同様に信頼され、特定のユーザグループのための新しいスマートカードおよび証明書を登録する。これは、登録オーソリティとしてVSSを中央認証オーソリティに統合することによって行われる。
【0045】
VSSは、ユーザの存在の発生またはリモートクライアントコンピューティングシステムにおけるログインをトランザクションログ118に記録することもできる。その後、VSSは、518において、リモートクライアントコンピュータシステムで実行されるシステムレベルエージェントから秘密鍵要求が受信されるのを待つ間、他のアクションを実行することができる。システムレベルエージェントからの秘密鍵要求は、ユーザが秘密鍵オペレーションを実行しようと試みているかまたは実行しようとしていることの指示として働く。要求が受信された場合(518:Yes)、VSSは、一回使用のクッキーを生成する。次いで、このクッキーは、520で、要求を開始したリモートクライアントコンピュータシステムのシステムレベルエージェントに通信される。VSSは、監査目的でクッキーの生成および配信イベントを記録することもできる。
【0046】
VSSは、本明細書で説明される特定のイベントに関してロギング動作を実行することに限定されないことに留意されたい。その代わりに、VSSは、仮想スマートカード使用の監査およびロギングに関して関連があるとみなされ得る多種多様なイベントおよびデータをログすることができる。例えば、VSSは使用されている特定の仮想スマートカード、実行されている仮想スマートカードオペレーション(例えば、署名または解読)、安全なコンピュータシステムにおいて仮想スマートカードを使用している特定のアプリケーションプログラム、仮想スマートカードを使用する要求を許可したユーザ、許可が発生した安全なコンピュータシステム、およびユーザが最初にログインした位置を記録することができる。
【0047】
プロセスは522に進み、VSSは、リモートクライアントコンピュータのユーザレベルエージェントから秘密鍵オペレーション要求を受信するのを待つ。VSSは、そのような要求を待つ間、他の動作を実行することができる。秘密鍵オペレーション要求が受信された場合(522:Yes)、プロセスは524に進み、提供された認証情報がVSSによって評価される。この評価プロセスは、ユーザ認証情報を、安全なデータベースに含まれるユーザ認証データ112と比較することを含むことができる。VSSは、将来の監査の目的で、評価イベントをトランザクションログ118に記録することもできる。
【0048】
VSSは、異なる仮想スマートカードを使用する権限を制御するために選択的に適用することができるセキュリティポリシー110の一つまたは複数のセットを有することができる。ユーザ証明書が受け入れられない場合(526:No)、秘密鍵オペレーション要求は拒否され、イベントが528で記録される。そのようなシナリオでは、プロセスはユーザ認証データが受信されるのを待つために、オプションとして522に戻ることができる。しかし、ユーザ証明書が受け入れられた場合(526:はい)、VSSは、530において、リモートクライアントコンピュータシステムにおけるユーザレベルエージェントによって要求された特定の秘密鍵オペレーションを実行することができる。VSSで実行されるこれらの秘密鍵オペレーションは例えば、VSSに通信された署名済みまたは解読済みデータの安全なハッシュを生成することを含むことができる。
【0049】
その後、プロセスはステップ532に進み、秘密鍵オペレーションの結果(例えば、署名されたデータまたは解読されたデータの安全なハッシュ)が、リモートクライアントコンピュータシステムのユーザレベルエージェントに通信される。このイベントは、将来の監査目的のためにVSSによってログ記録することもできる。このプロセスは、その後、534で終了するか、または続行することができる。
【0050】
ほとんどの従来のスマートカードは、RSAまたは楕円曲線秘密鍵のためにハードコードされている。したがって、本明細書で説明される方法およびシステムは秘密鍵を使用する署名および認証を容易にするために(すなわち、VSSサーバで秘密鍵オペレーションを実行することによって)使用することができる。しかし、当然のことながら、実施形態はこの点に関して限定されない。従来のスマートカードには、利用可能な限られたメモリ内に収まる任意のプログラムをロードすることができる。最も進歩したタイプの従来のスマートカードは、カード上で指紋照合または虹彩スキャンアルゴリズムを実行することができる。したがって、本明細書で開示される様々な実施形態では、そのような動作の態様が代わりに、VSSにおける仮想スマートカードによって実行することができる。実際、本明細書に記載される仮想スマートカードは物理的スマートカードが可能な任意の機能を提供するために使用することができるが、コストは大幅に低減される。
【0051】
さらに、図3−5に関して開示されているプロセスは、ユーザがリモートクライアントコンピュータシステムに既にログインしている場合に、一つまたは複数の仮想スマートカードを使用するというコンテキストで説明したことに留意されたい。しかし、本明細書で説明する方法およびシステムは、ログインプロセスにも拡張できることを理解されたい。例えば、安全なクライアントコンピュータに接続されたカスタムデバイスは、バイオメトリックスキャンおよびパスワードプロンプトを使用することができる。この組み合わせはほとんどのオペレーティングシステムにとって異常な認証オプションであるが、本明細書で説明する実施形態はこのプロセスを標準的なスマートカードログオンのように見せることができる。
【0052】
本明細書で説明するシステムおよび方法ではユーザが一つまたは複数の仮想スマートカードに関連付けられた一つまたは複数の秘密鍵を使用することは許可されるが、そのような情報への直接アクセスは決して許可されない。一つまたは複数の秘密鍵の各使用は、VSSに委任される。したがって、VSSは、特定の仮想スマートカードに関連付けられた各秘密鍵のあらゆる使用の安全な監査ログを作成することができる。さらに、必要が生じた場合、管理者は、一つまたは複数の仮想スマートカード/秘密鍵への特定のユーザのアクセスを終了するようにVSSに直ちに指示することができる。従業員から物理的なスマートカードを収集する必要はなく、スマートカードを使用する能力を無効にする際の遅延もない。新しい(または一時的な)スマートカードがユーザに発行される必要がある場合、プロセスはVSS管理者によって直ちに実行され、仮想スマートカードはユーザによって直ちに仮想的にアクセスされることができる。
【0053】
本明細書で説明されるシステムのさらなる利点に関しては、システムレベルエージェント、ユーザレベルエージェント、およびVSSは、ユーザがアクセスを許可される各仮想スマートカードの使用に合わせて調整された異なる柔軟なセキュリティポリシーのセットをそれぞれ適用できることである。システムレベルエージェント、ユーザレベルエージェント、およびVSSの各々で適用されるこれらのポリシーは、プロセスに関与する他のエンティティの各々によって適用されるポリシーとは独立して、選択的に適用することができる。
【0054】
また、仮想スマートカードを使用するときに必要とされる実際の物理的トークンがないので、エンドユーザがそのようなトークンを失ったり、忘れたりする機会がない。したがって、特定のトランザクションを許可する証明書は、ユーザのアイデンティティから分離される。この利点をよりよく理解するために、セキュリティ監査人のグループを含む例示的な使用事例を考える。監査人は、書類の見直しのために交替勤務をしていると仮定する。そのようなシナリオでは、当局が各監査員に独自のカードを与える必要があるか、または交代の終わりに次の監査員に物理的に渡される一つのカードを共有する必要がある。これらのシステムのいずれも特に満足できるものではない。多くのスマートカードの存在は、紛失または誤用の可能性を増大させる手段となる。しかし、一つのスマートカードを共有することは、特に2人の人が同時に働くか、または異なる場所で働く場合に問題がある。多数のユーザが同じVSSにアクセスすることができるので、VSSは、同じスマートカードを多数のユーザに同時に提供することができる。同様に、電話などのいくつかのモバイルデバイスに対する重大な制限である、特定のベンダーのスマートカードリーダーハードウェアの必要性はもはやない。ハードウェアを必要としないことは、そのようなシステムの購入および所有のコストも低減する。
【0055】
最後に、個々の所有権のあるスマートカードベンダーによって提供されるソフトウェアから離れることによって、本明細書で説明される仮想スマートカードソリューションは、ユーザが見るプロンプトのカスタマイズ、およびより柔軟な認証オプションを可能にする。プロンプトおよび認証オプションは、スマートカード製造業者によって供給されるスマートカードミドルウェアドライバのバージョンとは無関係になる。特に、どのアプリケーションが、どの識別証明およびどのくらいの頻度でユーザにプロンプトを出すかについての制御が提供される。対照的に、ハードウェアソリューションは、次のような制限的なハードコード化要求を有する傾向がある。「ユーザが4桁のPINを入力する限り、ユーザがアクションを実行するたびに繰り返し、任意のコンピュータ上の任意のアプリケーションがこれを使用することができる。」
【0056】
本明細書に開示される本発明の構成の実施形態は、一つのコンピュータシステムにおいて実現することができる。代替される実施形態は、いくつかの相互接続されたコンピュータシステムで実現することができる。本明細書に記載の方法を実行するように適合された任意の種類のコンピュータシステムまたは他の装置が適している。ハードウェアとソフトウェアの典型的な組み合わせは、汎用コンピュータシステムであり得る。汎用コンピュータシステムは、本明細書で説明する方法を実行するようにコンピュータシステムを制御することができるコンピュータプログラムを有することができる。
【0057】
次に図6を参照すると、例示的なコンピュータシステム600を備えるマシンの構成を理解するのに有用なハードウェアブロック図が示されている。マシンは本明細書で論じられる方法のうちの任意の一つまたはそれ以上を実行させるために使用される命令のセットをコンピュータシステムに含むことができる。ネットワーク化された配備では、マシンがサーバまたはクライアントマシンとして機能することができる。一つまたは複数の実施形態では、例示的なコンピュータシステム600が安全なコンピュータシステム106−106のそれぞれおよび/またはVSS102に対応することができる。いくつかの実施形態では、コンピュータ600がスタンドアロンデバイスとして独立して動作することができる。しかし、複数の実施形態はこの点に関して限定されず、他のシナリオではコンピュータシステムが分散環境内の他のマシンに動作可能に接続(ネットワーク化)して、本明細書で説明する特定の動作を容易にすることができる。したがって、単一のマシンのみが示されているが、本発明の実施形態は本明細書で説明されるような命令の一つまたは複数のセットを個々にまたは共同で実行するマシンの任意の集合を含むとみなすことができることを理解されたい。
【0058】
コンピュータシステム600は、プロセッサ602(例えば中央処理部やCPU)、メインメモリ604、スタティックメモリ606、機械可読媒体620からなるドライブユニット608、入力/出力デバイス610、ディスプレイユニット612(液晶LCD)、固体ディスプレイ、ブラウン管(CRT)、ネットワークインターフェースデバイス614で構成されている。これらの様々なコンポーネント間の通信は、データバス618によって容易にすることができる。一つまたは複数の命令セット624は、メインメモリ604、スタティックメモリ606およびドライブユニット608のうちの一つまたは複数に完全にまたは部分的に格納することができる。また、命令はコンピュータシステムによるプロセッサ602の実行中に、プロセッサ602内にあるようにすることもできる。
【0059】
入力/出力デバイス610はキーボード、マウス、マルチタッチ表面(例えば、タッチスクリーン)、マイクロフォン、カメラなどを含むことができる。安全なコンピュータシステム106−106では、入力/出力デバイスがユーザの生態情報をキャプチャするのに適した一つまたは複数のバイオメトリックキャプチャデバイスをさらに含むことができる。このようなユーザ生体情報は、ユーザ認証情報を含むことができる。このような情報は安全なコンピュータシステムに対するユーザによる最初のログインを容易にするために、安全なコンピュータシステム106−106によって使用され得る。あるいは、このような情報がVSSに対するユーザの認証のために使用され得る。例えば、ユーザ生体情報は、秘密鍵オペレーションの要求の一部としてユーザを認証するためにVSSに通信され得る。同様に、そのようなシナリオにおける入力/出力デバイス610は、ユーザによって提示される物理的なスマートカードに含まれる情報を読み取ることができる物理的なスマートカードリーダを含むことができる。スマートカードに含まれる情報は秘密鍵オペレーションが要求されたときに、安全なコンピュータへのユーザログインを円滑にするために、および/またはユーザ認証情報として用いることができる。
【0060】
ネットワークインターフェースデバイス614はデータネットワーク616によって利用されるネットワーク通信プロトコルに従って有線または無線ネットワークデータ通信を容易にするために、ハードウェアコンポーネントおよびソフトウェアまたはファームウェアを備えることができる。
【0061】
ドライブユニット608は機械可読媒体620を備えることができ、機械可読媒体620には、本明細書で説明する方法および機能のうちの一つまたは複数を容易にするために使用される一つまたは複数の命令セット624(たとえば、ソフトウェア)が格納される。「機械可読媒体」という用語は、本開示の方法論のうちの任意の一つまたは複数を容易にする命令またはデータ構造を記憶することができる任意の有形媒体を含むと理解されたい。例示的な機械可読媒体は、磁気媒体、固体メモリ、光媒体などを含むことができる。より詳細には、本明細書で説明する有形媒体が磁気ディスク、光磁気ディスク、CD−ROMディスクおよびDVD−ROMディスク、半導体メモリデバイス、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)およびフラッシュメモリデバイスを含むことができる。本明細書に記載されるような有形の媒体は伝播する信号を含まない限り、非一時的な媒体である。
【0062】
本明細書で参照されるコンピュータシステムは、サーバコンピュータ、クライアントユーザコンピュータ、パーソナルコンピュータ(PC)、タブレットPC、ラップトップコンピュータ、デスクトップコンピュータ、制御システム、ネットワークルータ、スイッチまたはブリッジ、またはそのデバイスによってとられるべき動作を指定する命令のセット(シーケンシャルまたはその他)を実行することができる任意の他のデバイスを含む、様々なタイプのコンピューティングシステムおよびデバイスを備えることができる。さらに、単一のコンピュータが示されているが、「コンピュータシステム」という語句は本明細書で論じられる方法のうちの任意の一つまたは複数を実行するための命令のセット(または複数のセット)を個々にまたは共同で実行するコンピューティングデバイスの任意の集合を含むと理解されるべきである。
【0063】
したがって、コンピュータシステム600は、様々な実施形態に関連して使用することができるコンピュータシステムの一つの可能な例であることを理解されるべきである。しかし、本発明は、この点に関して限定されず、任意の他の適切なコンピュータシステムアーキテクチャも、限定なしに使用することができる。特定用途向け集積回路、プログラマブル論理アレイ、および他のハードウェアデバイスを含むが、これらに限定されない、専用ハードウェア実装を、同様に、本明細書で説明される方法を実装するように構築することができる。様々な実施形態の装置およびシステムを含むことができるアプリケーションは、様々な電子システムおよびコンピュータシステムを広く含む。いくつかの実施形態は、モジュール間およびモジュールを介して通信される関連する制御信号およびデータ信号に関する2つ以上の特定の相互接続されたハードウェアモジュールまたはデバイスまたは特定用途向け集積回路の一部として、機能を実装することができる。したがって、例示的なシステムは、ソフトウェア、ファームウェアおよびハードウェア実装に適用可能である。
【0064】
さらに、実施形態は有形のコンピュータ使用可能記憶媒体(例えば、ハードディスクまたはCD−ROM)上のコンピュータプログラム製品の形態をとることができることを理解されたい。コンピュータ使用可能記憶媒体は、媒体内に具現化されたコンピュータ使用可能プログラムコードを有することができる。本明細書で使用されるコンピュータプログラム製品という用語は、本明細書で説明される方法の実施を可能にするすべての特徴を備えるデバイスを指す。コンピュータプログラム、ソフトウェアアプリケーション、コンピュータソフトウェアルーチンおよび/または本コンテキストにおけるこれらの用語の他の変形は情報処理能力を有するシステムに、直接または次の、すなわち、a)別の言語、コード、または表記への変換、またはb)異なる材料形式での複製のいずれかまたは両方の後に、特定の機能を実行させることを意図した命令セットの、任意の言語、コード、または表記による任意の表現を意味する。
【0065】
本発明は、本発明の思想及び基本的特徴から逸脱することなく、他の特定の形で具体化され得る。説明した実施形態は、あらゆる点で例示的なものにすぎず、限定的なものではないとみなすべきである。したがって、本発明の範囲は、この詳細な説明ではなく、添付の特許請求の範囲によって示される。特許請求の範囲と等価の意味および範囲内にある全ての変更は、その範囲内で含まれるものとする。
【0066】
本明細書全体を通して、特徴、利点または類似の言葉への参照は本発明で実現され得る特徴および利点の全てが、本発明の任意の単一の実施形態にあるべきまたはあることを意味しない。むしろ、特徴および利点を参照する言葉は、一実施形態に関連して説明された特定の特徴、利点または特性が本発明の少なくとも一つの実施形態に含まれることを意味すると理解される。したがって、本明細書全体にわたる特徴および利点ならびに類似の言葉の議論は必ずしもそうとは限らないが、同じ実施形態を参照することができる。
【0067】
さらに、本発明の記載された特徴、利点および特徴は、一つ以上の実施形態において任意の適切な様式で組み合わされ得る。当業者は、本明細書の説明に照らして、特定の実施形態の特定の特徴または利点のうちの一つまたは複数なしに本発明を実施できることを認識するのであろう。他の例では、追加の特徴および利点が本発明のすべての実施形態に存在しなくてもよい特定の実施形態において認識されてもよい。
【0068】
本明細書全体を通して、「一実施形態」、「実施形態」または類似の言葉への参照は、示された実施形態に関連して記載された特定の機能、構成または特徴が少なくとも一つの実施形態に含まれることを手段する。したがって、本明細書全体にわたる「一実施形態では」、「一実施形態では」、および類似の言葉は必ずしもそうとは限らないが、すべてが同じ実施形態を指す場合がある。
【0069】
本明細書で使用されるように、単数形「a」、「an」、および「the」は文脈が明確に別段の指示をしない限り、複数の参照を含む。別途定義しない限り、本明細書で使用するすべての技術的および科学的用語は、当業者によって一般に理解されるのと同じ意味を有する。本明細書で使用されるように、「備える」という語は「含むが、これに限定されない」を手段する。
【0070】
当業者は、図6に示すコンピュータシステムアーキテクチャがコンピュータシステムの一つの可能な例であることを理解するのであろう。しかし、本発明は、この点に関して限定されず、任意の他の適切なコンピュータシステムアーキテクチャも限定なしに使用することができる。特定用途向け集積回路、プログラマブル論理アレイ、および他のハードウェアデバイスを含むが、これらに限定されない、専用ハードウェア実装を、同様に、本明細書で説明される方法を実装するように構築することができる。様々な実施形態の装置およびシステムを含むことができるアプリケーションは、様々な電子システムおよびコンピュータシステムを広く含む。いくつかの実施形態は、モジュール間およびモジュールを介して通信される関連する制御信号およびデータ信号に関する2つ以上の特定の相互接続されたハードウェアモジュールまたはデバイスまたは特定用途向け集積回路の一部として、機能を実装することができる。したがって、例示的なシステムは、ソフトウェア、ファームウェアおよびハードウェア実装に適用可能である。
【0071】
本発明の様々な実施形態によれば、本明細書で説明される方法は、ソフトウェアプログラムとして機械可読記憶媒体に格納され、コンピュータプロセッサ上で動作するように構成される。さらに、ソフトウェア実装は分散処理、コンポーネント/オブジェクト分散処理、並列処理、仮想マシン処理を含むことができるが、これらに限定されず、これらもまた、本明細書で説明される方法を実装するように構築することができる。本発明の様々な実施形態では、ネットワーク環境に接続されたネットワークインターフェースデバイス614が命令624を使用してネットワーク上で通信する。
【0072】
機械可読記憶媒体620は例示的な実施形態では単一の記憶媒体として示されているが、「機械可読記憶媒体」という用語は一つまたは複数の命令セットを記憶する単一の媒体または複数の媒体(例えば、集中型または分散型データベース、ならびに/または関連するキャッシュおよびサーバ)を含むと解釈されるべきである。用語「機械可読記憶媒体」はまた、機械による実行のための命令のセットを記憶し、符号化し、または運搬することができ、機械に本開示の方法論のうちの任意の一つまたは複数を実行させる任意の有形媒体を含むと解釈されるべきである。
【0073】
したがって、「機械可読記憶媒体」という用語は限定しないが、一つまたは複数の読み取り専用(不揮発性)メモリ、ランダムアクセスメモリ、または他の書き換え可能(揮発性)メモリを収容するメモリカードまたは他のパッケージなどの固体メモリ、ディスクまたはテープなどの光磁気媒体または光媒体を含むと解釈されるべきである。したがって、本開示は本明細書で列挙される機械可読媒体のうちの任意の一つまたは複数を含み、本明細書のソフトウェア実装が格納される、認識された均等物および後続の媒体を含むとみなされる。
【0074】
本発明を一つまたは複数の実施に関して例示および説明したが、本明細書および添付の図面を読んで理解すれば、同等の変更および修正が当業者に思い浮かぶことができる。さらに、本発明の特定の特徴はいくつかの実装のうちの一つのみに関して開示されている可能性があるが、そのような特徴は任意の所与のまたは特定の用途に対して所望され得、有利であり得るように、他の実装の一つまたは複数の他の特徴と組み合わされ得る。したがって、本発明の広さおよび範囲は、上述の実施形態のいずれによっても限定されるべきではない。むしろ、本発明の範囲は、以下の特許請求の範囲およびそれらの均等物に従って定義されるべきである。
図1
図2
図3
図4A
図4B
図5A
図5B
図6