(57)【特許請求の範囲】
【請求項１】
ユーザの認証を行う場合、対向装置に接続要求を行って、前記ユーザの生体情報に関するコマンドを発行し、前記対向装置から送信された前記生体情報にもとづいて認証を行う認証部を備えるサーバ装置と、
前記コマンドにもとづいて、自装置に接続されている生体認証装置を介して前記生体情報を取得して、前記生体情報を前記認証部に送信する生体認証処理部と、前記生体認証処理部を、仮想ＯＳ（Operating System）環境上で搭載されている仮想通信インタフェースを使用する仮想デバイスとして前記認証部に疑似的に見せて、前記仮想通信インタフェースにもとづいて前記認証部と前記生体認証処理部との通信を行う通信インタフェース部と、を備える情報処理装置と、
を有し、
前記生体認証処理部は、
前記コマンドが前記生体認証装置の種別の取得を要求する内容である場合、使用可能な前記生体認証装置の種別を応答メッセージとして前記認証部に送信し、
前記コマンドが前記生体情報の取得を要求する内容である場合、前記生体情報と、前記ユーザの識別子とを応答メッセージとして前記認証部に送信する、
情報処理システム。
【請求項２】
前記仮想デバイスは、実デバイスが仮想化されたデバイスであり、
前記通信インタフェース部は、前記仮想通信インタフェースとして仮想シリアルバスインタフェースを有し、前記実デバイスをドライブするために既搭載されているドライバによって実行される請求項１記載の情報処理システム。
【請求項３】
ユーザの認証を行う場合、対向装置に接続要求を行って、前記ユーザの生体情報に関するコマンドを発行し、前記対向装置から送信された前記生体情報にもとづいて認証を行う認証部を備えるサーバ装置と、
前記コマンドにもとづいて、自装置に接続されている生体認証装置を介して前記生体情報を取得して、前記生体情報を前記認証部に送信する生体認証処理部と、前記生体認証処理部を、仮想ＯＳ（Operating System）環境上で搭載されている仮想通信インタフェースを使用する仮想デバイスとして前記認証部に疑似的に見せて、前記仮想通信インタフェースにもとづいて前記認証部と前記生体認証処理部との通信を行う通信インタフェース部と、を備える情報処理装置と、
を有し、
前記生体認証処理部は、前記仮想デバイスが前記情報処理装置内に複数含まれる場合、前記生体情報を取得可能とする前記仮想デバイスに対して特定文字列をデバイス識別子として設定し、前記認証部は、前記デバイス識別子を指定して前記コマンドを発行する、
情報処理システム。
【請求項４】
ユーザの生体情報にもとづいて認証を行う対向装置から送信されたコマンドにもとづいて、自装置に接続されている生体認証装置を介して生体情報を取得して、前記生体情報を前記対向装置に送信する生体認証処理部と、
前記生体認証処理部を、仮想ＯＳ（Operating System）環境上で搭載されている仮想通信インタフェースを使用する仮想デバイスとして前記対向装置に疑似的に見せて、前記仮想通信インタフェースにもとづいて前記対向装置と前記生体認証処理部との通信を行う通信インタフェース部と、
を備え、
前記生体認証処理部は、
前記コマンドが前記生体認証装置の種別の取得を要求する内容である場合、使用可能な前記生体認証装置の種別を応答メッセージとして前記対向装置に送信し、
前記コマンドが前記生体情報の取得を要求する内容である場合、前記生体情報と、前記ユーザの識別子とを応答メッセージとして前記対向装置に送信する、
情報処理装置。
【請求項５】
ユーザの生体情報にもとづいて認証を行う対向装置から送信されたコマンドにもとづいて、自装置に接続されている生体認証装置を介して生体情報を取得して、前記生体情報を前記対向装置に送信する生体認証処理部と、
前記生体認証処理部を、仮想ＯＳ（Operating System）環境上で搭載されている仮想通信インタフェースを使用する仮想デバイスとして前記対向装置に疑似的に見せて、前記仮想通信インタフェースにもとづいて前記対向装置と前記生体認証処理部との通信を行う通信インタフェース部と、
を備え、
前記生体認証処理部は、前記仮想デバイスが前記自装置内に複数含まれる場合、前記生体情報を取得可能とする前記仮想デバイスに対して特定文字列をデバイス識別子として設定し、前記対向装置により前記デバイス識別子が指定された前記コマンドを受信する、
情報処理装置。
【請求項６】
コンピュータに、
ユーザの生体情報にもとづいて認証を行う対向装置から送信されたコマンドにもとづいて、自装置に接続されている生体認証装置を介して生体情報を取得して、前記生体情報を前記対向装置に送信する生体認証処理を行い、
前記生体認証処理の機能部を、仮想ＯＳ（Operating System）環境上で搭載されている仮想通信インタフェースを使用する仮想デバイスとして前記対向装置に疑似的に見せて、前記仮想通信インタフェースにもとづいて前記対向装置と前記生体認証処理の機能部との通信を行い、
前記コマンドが前記生体認証装置の種別の取得を要求する内容である場合、使用可能な前記生体認証装置の種別を応答メッセージとして前記対向装置に送信し、
前記コマンドが前記生体情報の取得を要求する内容である場合、前記生体情報と、前記ユーザの識別子とを応答メッセージとして前記対向装置に送信する、
処理を実行させるプログラム。
【請求項７】
コンピュータに、
ユーザの生体情報にもとづいて認証を行う対向装置から送信されたコマンドにもとづいて、自装置に接続されている生体認証装置を介して生体情報を取得して、前記生体情報を前記対向装置に送信する生体認証処理を行い、
前記生体認証処理の機能部を、仮想ＯＳ（Operating System）環境上で搭載されている仮想通信インタフェースを使用する仮想デバイスとして前記対向装置に疑似的に見せて、前記仮想通信インタフェースにもとづいて前記対向装置と前記生体認証処理の機能部との通信を行い、
前記仮想デバイスが前記自装置内に複数含まれる場合、前記生体情報を取得可能とする前記仮想デバイスに対して特定文字列をデバイス識別子として設定し、前記対向装置により前記デバイス識別子が指定された前記コマンドを受信する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置およびプログラムに関する。
【背景技術】
【０００２】
近年、仮想ＰＣ（Personal Computer）サーバと、シンクライアント（Thin Client）機能を有するクライアント端末とによって構築される仮想ＯＳ（Operating System）環境が注目されている。
【０００３】
仮想ＯＳ環境では、仮想化したＰＣの機能を仮想ＰＣサーバ上で動作させ、仮想ＰＣサーバで行われた処理結果の画面をクライアント端末に表示させて、あたかもクライアント端末内で処理を行っているかのように見せる。
【０００４】
また、仮想ＯＳ環境では、クライアント端末で行われる処理は最小限に留め、ソフトウェアの実行等の主な処理は仮想ＰＣサーバで行われる。これにより、仮想ＰＣサーバ側でデータ処理や記憶管理が行われることから、リソースの有効活用が可能になり、さらに情報漏洩のリスク低減が可能になる。
【０００５】
一方、ユーザがクライアント端末から仮想ＰＣサーバへログオンする際はユーザ認証が行われ、正しいユーザと判定された場合のみログオンが可能になって、以後仮想ＰＣサーバが使用できるようになる。
【０００６】
ユーザ認証には、パスワードの使用が一般的に普及しているが、セキュリティを強化するために、人間の身体的特徴（指紋、虹彩、静脈等）を使用した生体認証が用いられる場合がある。
【０００７】
仮想ＰＣサーバとクライアント端末間で、生体認証の情報を相互通信するための通信プロトコルには、例えば、ＶＭｗａｒｅ（登録商標）による仮想ＯＳ環境下のＳＤＫ（Software Development Kit）を使用したＰＣｏＩＰ（PC over Internet Protocol）がある。また、Ｘｅｎ（登録商標）による仮想ＯＳ環境下のＳＤＫを使用したＩＣＡ（Independent Computing Architecture）がある。
【０００８】
関連技術としては、例えば、仮想デスクトップ環境下でユーザから読み取った生体情報により生体認証を行い、生体認証が成功した場合、受信したユーザ情報により、基幹システムのメンテナンス接続を行う技術が提案されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１７−０２７２４７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上記のような仮想ＯＳ環境固有の通信プロトコルを使用した生体認証では、生体認証に要する最小限のデータを流すことができるので、生体認証速度を高速化し、またネットワーク上の他の端末機器等への影響を低減することができる。
【００１１】
しかし、仮想ＯＳ環境固有の通信プロトコルにもとづく生体認証では、仮想ＯＳ環境を設計・開発しているベンダに依存しているため、仮想ＯＳ環境のサーバやクライアント端末のソフトウェアが改版される度に仕様が変更される可能性があり、その都度正しく動作するかの評価や、仕様変更時の修正が求められる。さらに該通信プロトコルがベンダ側で廃止された場合、この方法自体を利用できなくなるリスクもある。
【００１２】
１つの側面では、本発明は、仮想ＯＳ環境の固有の通信プロトコルに非依存の生体認証の実行を可能にした情報処理システム、情報処理装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、情報処理システムが提供される。情報処理システムは、サーバ装置と、情報処理装置を有する。サーバ装置は、ユーザの認証を行う場合、対向装置に接続要求を行って、ユーザの生体情報に関するコマンドを発行し、対向装置から送信された生体情報にもとづいて認証を行う認証部を備える。情報処理装置は、コマンドにもとづいて、自装置に接続されている生体認証装置を介して生体情報を取得して、生体情報を認証部に送信する生体認証処理部と、生体認証処理部を、仮想ＯＳ環境上で搭載されている仮想通信インタフェースを使用する仮想デバイスとして認証部に疑似的に見せて、仮想通信インタフェースにもとづいて認証部と生体認証処理部との通信を行う通信インタフェース部とを備える。生体認証処理部は、コマンドが生体認証装置の種別の取得を要求する内容である場合、使用可能な生体認証装置の種別を応答メッセージとして認証部に送信し、コマンドが生体情報の取得を要求する内容である場合、生体情報と、ユーザの識別子とを応答メッセージとして認証部に送信する。
【００１４】
また、上記課題を解決するために、上記情報処理システムと同様の制御を実行する情報処理装置が提供される。
さらに、上記課題を解決するために、コンピュータに上記情報処理システムと同様の制御を実行させるプログラムが提供される。
【発明の効果】
【００１５】
１側面によれば、仮想ＯＳ環境の固有の通信プロトコルに非依存の生体認証を実行することが可能になる。
【図面の簡単な説明】
【００１６】
【図１】第１の実施の形態の情報処理システムの一例を説明するための図である。
【図２】第２の実施の形態の情報処理システムの構成の一例を示す図である。
【図３】クライアント端末のハードウェア構成の一例を示す図である。
【図４】認証エージェント部の動作の一例を示すフローチャートである。
【図５】端末認証処理部の動作の一例を示すフローチャートである。
【図６】生体認証ＵＳＢデバイスの選択処理の一例を示すフローチャートである。
【図７】生体認証装置一覧取得コマンドおよび応答メッセージのフォーマットの一例を示す図である。
【図８】生体情報取得コマンドおよび応答メッセージのフォーマットの一例を示す図である。
【図９】情報処理システムの動作シーケンスの一例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本実施の形態について図面を参照して説明する。
［第１の実施の形態］
図１は第１の実施の形態の情報処理システムの一例を説明するための図である。情報処理システム１−１は、情報処理装置１とサーバ装置２を有し、情報処理装置１とサーバ装置２はネットワーク４を介して接続される。また、情報処理装置１には、生体認証装置３が接続される。生体認証装置３は、例えば、ユーザの指紋、虹彩、または手のひらの静脈パターン等を、生体情報として読み取るための装置である。
【００１８】
情報処理装置１は、生体認証処理部１ａおよび通信インタフェース部１ｂを含み、サーバ装置２は、認証部２ａを含む。
認証部２ａは、ユーザの認証を行う場合、対向装置である情報処理装置１に接続要求を行って、ユーザの生体情報に関するコマンドを発行する。また、認証部２ａは、情報処理装置１から送信された生体情報にもとづいて認証を行う。
【００１９】
生体認証処理部１ａは、サーバ装置２からのコマンドにもとづいて、自装置に接続されている生体認証装置３を介して生体情報を取得して、生体情報を認証部２ａに送信する。
通信インタフェース部１ｂは、生体認証処理部１ａを、仮想ＯＳ環境上で搭載されている仮想通信インタフェースを使用する仮想デバイスとして認証部２ａに疑似的に見せる。そして、仮想通信インタフェースにもとづいて認証部２ａと生体認証処理部１ａとの通信を行う。
【００２０】
図１に示す例を用いて動作の流れを説明する。
〔ステップＳ１〕認証部２ａは、ユーザの認証を行う場合、仮想ＯＳ環境上で情報処理装置１に搭載されている仮想通信インタフェースを使用する仮想デバイスに向けて接続要求を行って、ユーザの生体情報に関するコマンドを発行する。
【００２１】
〔ステップＳ２〕生体認証処理部１ａは、通信インタフェース部１ｂを介して、仮想デバイスに向けて送信されたコマンドを受信する。
〔ステップＳ３〕生体認証処理部１ａは、情報処理装置１に接続されている生体認証装置３に生体情報を要求し、ユーザの生体情報を取得する。
〔ステップＳ４〕生体認証処理部１ａは、通信インタフェース部１ｂを介して、生体情報を含む応答メッセージを認証部２ａに送信する。
【００２２】
ここで、上記の仮想通信インタフェースとしては、例えば、仮想シリアルバスインタフェースである仮想ＵＳＢ（Universal Serial Bus）が適用できる。また、仮想ＵＳＢを使用する仮想デバイスとしては、例えば、実デバイスが仮想化されたキーボード等のヒューマンインタフェースデバイス等が適用できる。
【００２３】
この場合、通信インタフェース部１ｂは、生体認証処理部１ａを、仮想ＵＳＢを使用する仮想デバイスであるキーボードとして認証部２ａに疑似的に見せることになる。
よって、認証部２ａでは、生体情報を取得する場合、情報処理装置１内の仮想化されたキーボードに向けてコマンドを発行することになるが、仮想化されたキーボードには実体はなく、情報処理装置１内で生体認証処理を行う実体は、生体認証処理部１ａとなる。
【００２４】
通信インタフェース部１ｂでは、仮想ＵＳＢの通信路を通じてコマンドを受信し、受信したコマンドを生体認証処理部１ａに転送する。また、通信インタフェース部１ｂは、仮想ＵＳＢの通信路を通じて生体認証処理部１ａからのコマンドに対する応答メッセージ（生体情報を含む）を認証部２ａに送信する。
【００２５】
このような構成により、情報処理装置１とサーバ装置２間において、仮想ＯＳ環境上で搭載されている仮想通信インタフェースを使用して、生体情報の通信を行う。これにより、従来のような仮想ＯＳ環境固有の通信プロトコル（ＰＣｏＩＰ、ＩＣＡ等）は不要となるため、当該通信プロトコルの仕様変更や廃止の影響を受けることなく、標準で提供されている機能を用いて生体認証の通信を効率よく行うことが可能になる。
【００２６】
［第２の実施の形態］
次に仮想通信インタフェースとして仮想ＵＳＢを使用した第２の実施の形態について説明する。図２は第２の実施の形態の情報処理システムの構成の一例を示す図である。情報処理システム１−２は、仮想ＰＣサーバ２０と、仮想ＰＣサーバ２０の対向装置であるクライアント端末１０とを備える。クライアント端末１０と仮想ＰＣサーバ２０は、ネットワーク４を介して接続される。クライアント端末１０と仮想ＰＣサーバ２０との間の生体情報に関する通信は、ネットワーク４において仮想ＵＳＢが使用される。
【００２７】
クライアント端末１０には、キーボードやマウス等の入力装置１０ａと、ディスプレイ等の出力装置１０ｂが接続される。さらに、クライアント端末１０には、生体認証装置３が接続される。
【００２８】
仮想ＰＣサーバ２０は、仮想ＰＣ２０ａと、ホストＯＳ２２を含む。仮想ＰＣ２０ａは、通常はクライアント端末１０で行っている処理を自サーバ上の仮想化されたＰＣで実行するもので、クライアント端末１０には処理結果の画面を転送する。ホストＯＳ２２は、仮想ＰＣサーバ２０に基本性能としてインストールされているＯＳであり、ネットワークインタフェース制御等を行う。
【００２９】
仮想ＰＣ２０ａは、認証エージェント部２１を含む。認証エージェント部２１は、図１の認証部２ａの機能を有する。また、クライアント端末１０は、端末認証処理部１１と生体認証ＵＳＢデバイスドライバ１２を含む。端末認証処理部１１は、図１の生体認証処理部１ａの機能を有し、生体認証ＵＳＢデバイスドライバ１２は、図１の通信インタフェース部１ｂの機能を有する。
【００３０】
認証エージェント部２１は、クライアント端末１０に対して接続要求を行って、生体情報に関するコマンドをクライアント端末１０に送信し、コマンド結果である生体情報を受信すると、生体情報にもとづいて、ユーザ認証を行う。
【００３１】
端末認証処理部１１は、仮想ＰＣサーバ２０からのコマンドにもとづいて、生体認証装置３を駆動してユーザの生体情報を取得し、生体情報を認証エージェント部２１に送信する。生体認証ＵＳＢデバイスドライバ１２は、仮想ＵＳＢを使って、認証エージェント部２１と端末認証処理部１１との通信インタフェースを行う。
【００３２】
ここで、仮想ＰＣサーバ２０とクライアント端末１０の間の通信インタフェースには、仮想ＯＳ環境固有の通信プロトコルではなく、本システムにおいて仮想ＵＳＢが使用される。仮想ＵＳＢ自体は、仮想ＯＳ環境に使用される機器に標準で搭載されているものである。
【００３３】
したがって、認証エージェント部２１と端末認証処理部１１間の通信、例えば、認証要求や認証結果等の情報の送受信は、生体認証ＵＳＢデバイスドライバ１２を経由し、仮想ＵＳＢの通信を用いて行われる。
【００３４】
またこの場合、生体認証ＵＳＢデバイスドライバ１２は、端末認証処理部１１を、仮想ＵＳＢを使用する仮想デバイスである生体認証ＵＳＢデバイスとして認証エージェント部２１に疑似的に見せる。
【００３５】
よって、認証エージェント部２１では、生体情報を取得する場合、クライアント端末１０内の生体認証ＵＳＢデバイスに向けてコマンドを発行することになるが、生体認証ＵＳＢデバイスには実体はなく、クライアント端末１０内で生体認証処理を行う実体は、端末認証処理部１１となる。
【００３６】
生体認証ＵＳＢデバイスドライバ１２では、仮想ＵＳＢの通信路を通じてコマンドを受信し、受信したコマンドを端末認証処理部１１に転送する。また、生体認証ＵＳＢデバイスドライバ１２では、仮想ＵＳＢの通信路を通じて端末認証処理部１１からのコマンドに対する応答メッセージ（生体情報を含む）を認証エージェント部２１に送信する。
【００３７】
なお、生体認証ＵＳＢデバイスは、実デバイスが仮想化されたデバイスであって、生体認証ＵＳＢデバイスドライバ１２は、その実デバイスをドライブするために既搭載されているドライバによって動作が実行される。このように、既搭載されているドライバを使用するので、大幅な変更が不要であり、作業効率の向上が図ることができる。
【００３８】
例えば、生体認証ＵＳＢデバイスドライバ１２は、汎用ＵＳＢストレージ（ＵＳＢメモリ等）、スマートカード（ＩＣカード）、ヒューマンインタフェースデバイス（キーボード、マウス等）のような実デバイスのドライバである。また、これらの実デバイスは、仮想デバイスになりうる。
【００３９】
なお、それぞれの生体認証ＵＳＢデバイス毎に、ＵＳＢ通信で送受信するための仕様が定められているので、その仕様にしたがって、データを送受信するように生体認証ＵＳＢデバイスドライバ１２の機能が設定される。
【００４０】
＜ハードウェア＞
図３はクライアント端末のハードウェア構成の一例を示す図である。クライアント端末１０は、プロセッサ（コンピュータ）１０１によって装置全体が制御されている。プロセッサ１０１は、端末認証処理部１１および生体認証ＵＳＢデバイスドライバ１２の機能を実現する。
【００４１】
プロセッサ１０１には、バス１０９を介してメモリ１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。
プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、またはＤＳＰ（Digital Signal Processor）である。プロセッサ１０１の機能の少なくとも一部を、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現してもよい。
【００４２】
メモリ１０２は、クライアント端末１０の主記憶装置として使用される。メモリ１０２には、プロセッサ１０１に実行させるＯＳのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。メモリ１０２としては、例えばＲＡＭ（Random Access Memory）などの揮発性の半導体記憶装置が使用される。
【００４３】
バス１０９に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、機器接続インタフェース１０７およびネットワークインタフェース１０８がある。
【００４４】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、クライアント端末１０の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお補助記憶装置としては、フラッシュメモリなどの不揮発性の半導体記憶装置を使用することもできる。
【００４５】
グラフィック処理装置１０４には、モニタ２０１が接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令に従って、画像をモニタ２０１の画面に表示させる。モニタ２０１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００４６】
入力インタフェース１０５には、キーボード２０２とマウス２０３とが接続されている。入力インタフェース１０５は、キーボード２０２やマウス２０３から送られてくる信号をプロセッサ１０１に送信する。
【００４７】
なお、マウス２０３はポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００４８】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク２０４に記録されたデータの読み取りを行う。光ディスク２０４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２０４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（Re Writable）などがある。
【００４９】
機器接続インタフェース１０７は、クライアント端末１０に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース１０７には、メモリ装置２０５やメモリリーダライタ２０６を接続することができる。また、生体認証装置３が接続される。
【００５０】
メモリ装置２０５は、機器接続インタフェース１０７との通信機能を搭載した記録媒体である。メモリリーダライタ２０６は、メモリカード２０７へのデータの書き込み、またはメモリカード２０７からのデータの読み出しを行う装置である。メモリカード２０７は、カード型の記録媒体である。
【００５１】
ネットワークインタフェース１０８は、ネットワーク４（無線ＬＡＮを含む）に接続されている。ネットワークインタフェース１０８は、ネットワーク４を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００５２】
以上のようなハードウェア構成によって、本発明の処理機能を実現することができる。なお、仮想ＰＣサーバ２０も、図３に示したクライアント端末１０と同様のハードウェアにより実現することができる。
【００５３】
クライアント端末１０は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、本発明の処理機能を実現する。クライアント端末１０に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。
【００５４】
例えば、クライアント端末１０に実行させるプログラムをＨＤＤ１０３に格納しておくことができる。プロセッサ１０１は、ＨＤＤ１０３内のプログラムの少なくとも一部をメモリ１０２にロードし、プログラムを実行する。またクライアント端末１０に実行させるプログラムを、光ディスク２０４、メモリ装置２０５、メモリカード２０７などの可搬型記録媒体に記録しておくこともできる。
【００５５】
可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１０１からの制御により、ＨＤＤ１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００５６】
＜認証エージェント部２１の動作＞
図４は認証エージェント部の動作の一例を示すフローチャートである。
〔ステップＳ１１〕認証エージェント部２１は、クライアント端末１０内の生体認証ＵＳＢデバイスドライバ１２に接続する。
【００５７】
〔ステップＳ１２〕認証エージェント部２１は、生体認証ＵＳＢデバイスに向けて生体情報取得コマンドを送信する。生体情報取得コマンドは、クライアント端末１０に対して生体情報の取得要求を行うコマンドである。
【００５８】
〔ステップＳ１３〕認証エージェント部２１は、生体認証ＵＳＢデバイスドライバ１２を介して送信される生体情報取得コマンドの結果の受信待ちを行う。
〔ステップＳ１３ａ〕認証エージェント部２１は、生体情報取得コマンドの結果を受信した場合は、ステップＳ１４へ処理が進み、未受信の場合はステップＳ１３の処理に戻る。
【００５９】
〔ステップＳ１４〕認証エージェント部２１は、生体認証ＵＳＢデバイスドライバ１２を介して送信された生体情報を使用してユーザ認証処理を行う。
【００６０】
＜端末認証処理部１１の動作＞
図５は端末認証処理部の動作の一例を示すフローチャートである。
〔ステップＳ２１〕端末認証処理部１１は、仮想ＰＣサーバ２０から送信される生体認証関連のコマンドの受信待ちを行う。生体認証関連のコマンドとしては、生体認証装置一覧コマンドまたは生体情報取得コマンドがある。
【００６１】
生体認証装置一覧取得コマンドは、認証エージェント部２１でユーザ認証が可能な生体情報であって、クライアント端末１０側でどのような生体認証装置３が使用されるかの一覧を取得要求するためのコマンドである。
なお、仮想ＰＣサーバ２０から送信される生体認証関連のコマンドは、生体認証ＵＳＢデバイスのドライバである生体認証ＵＳＢデバイスドライバ１２を経由して端末認証処理部１１で受信される。
【００６２】
〔ステップＳ２１ａ〕端末認証処理部１１は、生体認証装置一覧取得コマンドを受信した場合はステップＳ２２へ処理が進み、生体情報取得コマンドを受信した場合はステップＳ２６の処理へ進む。なお、いずれのコマンドも未受信の場合はステップＳ２１へ処理が戻る。
【００６３】
〔ステップＳ２２〕端末認証処理部１１は、生体認証装置３として指紋認証装置が使用可能かチェックする。
〔ステップＳ２３〕端末認証処理部１１は、生体認証装置３として虹彩認証装置が使用可能かチェックする。
【００６４】
〔ステップＳ２４〕端末認証処理部１１は、生体認証装置３として静脈認証装置が使用可能かチェックする。
〔ステップＳ２５〕端末認証処理部１１は、ステップＳ２２からステップＳ２４のチェック処理で使用可能と判定した生体認証装置３の一覧を、生体認証ＵＳＢデバイスドライバ１２経由で認証エージェント部２１に送信する。ステップＳ２１の処理に戻る。
【００６５】
〔ステップＳ２６〕端末認証処理部１１は、生体認証装置３から生体情報を取得する。
〔ステップＳ２７〕端末認証処理部１１は、取得した生体情報を加工する。例えば、手のひら静脈の場合、カメラで撮影した画像データではなく、静脈の特徴のみを抽出したデータに加工する。
〔ステップＳ２８〕端末認証処理部１１は、加工後の生体情報と、ユーザが入力したユーザ識別子とを、生体認証ＵＳＢデバイスドライバ１２経由で認証エージェント部２１に送信する。ステップＳ２１の処理に戻る。
【００６６】
＜生体認証ＵＳＢデバイスの選択＞
図６は生体認証ＵＳＢデバイスの選択処理の一例を示すフローチャートである。
〔ステップＳ３１〕認証エージェント部２１は、接続できる生体認証ＵＳＢデバイスの一覧を取得する。例えば、自身の記憶部に登録されているテーブル等から、接続できる生体認証ＵＳＢデバイスの一覧を取得する。
〔ステップＳ３２〕認証エージェント部２１は、取得した一覧の中で、デバイスＩＤの先頭が特定文字列となるものを探索する。例えば、vbiodev＃＃＃（＃＃＃は３桁の数字を０から９９９まで順次増やしたもの）となる特定文字列が記されたデバイスＩＤを探索する。
〔ステップＳ３２ａ〕認証エージェント部２１は、特定文字列を検出できた場合はステップＳ３３の処理に進み、特定文字列を検出できなかった場合はステップＳ３５の処理に進む。
【００６７】
〔ステップＳ３３〕認証エージェント部２１は、検出した特定文字列に対応する生体認証ＵＳＢデバイスに接続要求を行う。
〔ステップＳ３４〕認証エージェント部２１は、特定文字列に対応する生体認証ＵＳＢデバイスに接続できたか否かを判定する。接続できた場合はデバイス選択処理を正常終了し、接続できなかった場合はステップＳ３２の処理に戻る。
〔ステップＳ３５〕認証エージェント部２１は、接続できるデバイスを１つも検出できなかったためエラーを表示して異常終了する。
このように、生体情報を取得可能とする仮想デバイスに対して特定文字列をデバイス識別子として設定することにより、認証エージェント部２１は、複数ある仮想デバイスの中から所望の仮想デバイスを効率よく指定することができる。
【００６８】
＜コマンド・応答メッセージのフォーマット＞
図７は生体認証装置一覧取得コマンドおよび応答メッセージのフォーマットの一例を示す図である。生体認証装置一覧取得コマンドＣ１０は、ヘッダ部を有する。ヘッダ部は、コマンド識別子ｃ１１を含む。
【００６９】
コマンド識別子ｃ１１は、当該コマンドが生体認証装置一覧取得コマンドＣ１０であることを示す識別子である。なお、生体認証装置一覧取得コマンドＣ１０は、データ部を有していないので、データ部の長さ＝０である情報ｃ１２がヘッダ部内に付加されている。
【００７０】
生体認証装置一覧取得コマンドＣ１０に対する応答メッセージＭ１０は、ヘッダ部およびデータ部を有する。ヘッダ部は、応答メッセージ識別子ｍ１１およびデータ部の長さｍ１２を含み、データ部は、生体認証装置識別子一覧ｍ１３を含む。
【００７１】
応答メッセージ識別子ｍ１１は、当該メッセージが生体認証装置一覧取得コマンドＣ１０に対する応答メッセージである旨を示す識別子である。データ部の長さｍ１２は、データ部に挿入されたデータの長さである。生体認証装置識別子一覧ｍ１３は、クライアント端末１０に接続されて使用可能な生体認証装置３の識別子である。
このように、生体認証装置一覧取得コマンドおよび応答メッセージを、クライアント端末１０と仮想ＰＣサーバ２０間で通信することにより、クライアント端末１０側で使用可能な生体認証装置の種類を仮想ＰＣサーバ２０に効率よく通知することができる。
【００７２】
図８は生体情報取得コマンドおよび応答メッセージのフォーマットの一例を示す図である。生体情報取得コマンドＣ２０は、ヘッダ部およびデータ部を有する。ヘッダ部は、コマンド識別子ｃ２１およびデータ部の長さｃ２２を含み、データ部は、生体認証装置識別子ｃ２３を含む。
【００７３】
コマンド識別子ｃ２１は、当該コマンドが生体情報取得コマンドＣ２０である旨を示す識別子である。データ部の長さｃ２２は、データ部に挿入されたデータの長さである。生体認証装置識別子ｃ２３は、クライアント端末１０で使用する生体認証装置３の識別子である。
【００７４】
生体情報取得コマンドＣ２０に対する応答メッセージＭ２０は、ヘッダ部およびデータ部を有する。ヘッダ部は、応答メッセージ識別子ｍ２１およびデータ部の長さｍ２２を含み、データ部は、加工した生体情報ｍ２３およびユーザ識別子ｍ２４を含む。
【００７５】
応答メッセージ識別子ｍ２１は、当該メッセージが生体情報取得コマンドＣ２０に対する応答メッセージである旨を示す識別子である。データ部の長さｍ２２は、データ部に挿入されたデータの長さである。加工した生体情報ｍ２３は、加工後の生体情報である。ユーザ識別子ｍ２４は、ユーザによってクライアント端末１０に入力されたユーザの識別子である。
このように、生体情報取得コマンドおよび応答メッセージを、クライアント端末１０と仮想ＰＣサーバ２０間で通信することにより、クライアント端末１０側で取得した生体情報を仮想ＰＣサーバ２０が効率よく取得することができる。
【００７６】
＜動作シーケンス＞
図９は情報処理システムの動作シーケンスの一例を示す図である。
〔ステップＳ４１〕認証エージェント部２１は、生体認証ＵＳＢデバイスの選択処理を行う。
【００７７】
〔ステップＳ４１ａ〕認証エージェント部２１は、生体認証ＵＳＢデバイスに向けて接続要求を行う（この接続要求は生体認証ＵＳＢデバイスドライバ１２に送信される）。
例えば、生体認証ＵＳＢデバイスをキーボードとし、生体認証ＵＳＢデバイスドライバ１２を、キーボードドライバとして作成したものとする。この場合、認証エージェント部２１は、生体認証ＵＳＢデバイスドライバ１２によって見えているキーボードに向けて接続要求を行う。
〔ステップＳ４１ｂ〕生体認証ＵＳＢデバイスドライバ１２は、接続の成功後、成功メッセージを認証エージェント部２１に送信する。
【００７８】
〔ステップＳ４２〕認証エージェント部２１は、生体情報取得コマンドを発行する。
例えば、認証エージェント部２１は、キーボードに向けて生体情報取得コマンドを送信する。生体情報取得コマンドは、生体認証ＵＳＢデバイスドライバ１２を介して、生体認証ＵＳＢデバイスであるキーボードに向けて送信されるが、実際は、クライアント端末１０の端末認証処理部１１が受信することになる。
【００７９】
〔ステップＳ４３〕端末認証処理部１１は、ユーザ識別子の入力受付を行う。
〔ステップＳ４４ａ〕端末認証処理部１１は、生体情報取得要求を生体認証装置３に送信する。
〔ステップＳ４４ｂ〕生体認証装置３は、ユーザの生体情報を読み取る。
〔ステップＳ４４ｃ〕生体認証装置３は、読み取った生体情報を端末認証処理部１１に送信する。
【００８０】
〔ステップＳ４５〕端末認証処理部１１は、生体情報を加工する。
〔ステップＳ４６〕端末認証処理部１１は、生体情報取得コマンドに対する応答メッセージ（生体情報およびユーザ識別子を含む）を発行する。当該応答メッセージは、生体認証ＵＳＢデバイスドライバ１２を介して認証エージェント部２１に送信される。
〔ステップＳ４７〕認証エージェント部２１は、受信した生体情報にもとづいて、ユーザ認証を行う。
【００８１】
このように情報処理システム１−２では、端末認証処理部１１を疑似的に仮想デバイスとして認証エージェント部２１に見せて、認証エージェント部２１と端末認証処理部１１との仮想通信インタフェースを行って生体認証処理を行う。
【００８２】
これにより、仮想ＯＳ環境の固有の通信プロトコルに非依存の生体認証を実行することが可能になる。また本発明においても、生体認証に要する最小限のデータを流すことができるので、生体認証速度を高速化し、さらにネットワーク上の他の端末機器等への影響を低減できる。
【００８３】
上記で説明した本発明の情報処理システム１−１、１−２の処理機能は、コンピュータによって実現することができる。この場合、情報処理システム１−１、１−２が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【００８４】
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ等がある。光ディスクには、ＣＤ−ＲＯＭ／ＲＷ等がある。光磁気記録媒体には、ＭＯ（Magneto Optical disk）等がある。
【００８５】
プログラムを流通させる場合、例えば、そのプログラムが記録されたＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００８６】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。
【００８７】
また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤ等の電子回路で実現することもできる。
【００８８】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【００８９】
１−１  情報処理システム
１  情報処理装置
１ａ  生体認証処理部
１ｂ  通信インタフェース部
２  サーバ装置
２ａ  認証部
３  生体認証装置
４  ネットワーク
【図１】
0006860796.tif 000002
【図２】
0006860796.tif 000003
【図３】
0006860796.tif 000004
【図４】
0006860796.tif 000005
【図５】
0006860796.tif 000006
【図６】
0006860796.tif 000007
【図７】
0006860796.tif 000008
【図８】
0006860796.tif 000009
【図９】
0006860796.tif 000010