(57)【要約】【課題】  ローカル端末上のサーバアプリケーションがリモート端末上のクライアントアプリケーションからのアクセスを制御可能にする。【解決手段】  ローカル端末２０上で動作するサーバアプリケーション４０は、リモート端末１０上で動作するクライアントアプリケーション３０0〜３０mから受信したリモート端末証明書とアプリケーション証明書を証明書認証部７０に渡す。証明書認証部７０は、これら２つの証明書を認証し、それらの認証結果と認証結果集合データベース８０をもとに認証結果をサーバアプリケーション４０に渡す。サーバアプリケーション４０は、その動作により、証明書認証部７０から取得した認証結果をもとにアクセス許可データベース９０からクライアントアプリケーション３０0〜３０mに許可する実行要求の集合を取得し、これを用いてクライアントアプリケーション３０0〜３０mからのアクセスを制御する。【選択図】  図１
2006260015.tif 000002
【特許請求の範囲】
【請求項１】
クライアントアプリケーションが動作するリモート端末と、前記クライアントアプリケーションからの接続を受付け可能なサーバアプリケーションが動作するローカル端末とを備え、
前記リモート端末は、
前記リモート端末の認証で用いるリモート端末証明書を管理するリモート端末証明書管理部と、
前記クライアントアプリケーションのアプリケーション識別子と、前記クライアントアプリケーションのハッシュ値を当該クライアントアプリケーション固有の秘密鍵で暗号化した暗号化ハッシュ値と、前記クライアントアプリケーション固有の秘密鍵に対応する公開鍵を含み前記クライアントアプリケーションに関連付けられたアプリケーション証明書との組みを予め保持するアプリケーション証明書データベースと、
前記クライアントアプリケーションが前記サーバアプリケーションに接続するときに、当該クライアントアプリケーションのアプリケーション識別子をキーとして前記アプリケーション証明書データベースから前記暗号化ハッシュ値と前記アプリケーション証明書を取得し、前記クライアントアプリケーションのハッシュ値が、前記アプリケーション証明書に含まれる前記公開鍵を用いて前記暗号化ハッシュ値から復号化したハッシュ値と等しいか否か調べるアプリケーション証明書管理部とを具備し、
前記ローカル端末は、
前記リモート端末証明書の認証結果と前記アプリケーション証明書の認証結果の集合との組みを予め保持する認証結果集合データベースと、
前記アプリケーション証明書の認証結果と前記クライアントアプリケーションに許可する実行要求の集合との組みを予め保持するアクセス許可データベースと、
前記サーバアプリケーションで前記クライアントアプリケーションからの接続を受け付けるときに、前記リモート端末から前記リモート端末証明書と前記アプリケーション証明書とを受け取り、前記リモート端末証明書と前記アプリケーション証明書とを認証し、前記リモート端末証明書の認証結果をキーとして前記認証結果集合データベースから前記アプリケーション証明書の認証結果の集合を取得し、当該認証結果の集合に前記アプリケーション証明書の認証結果が含まれるか否か調べる証明書認証部とを具備することを特徴とするアプリケーションアクセス制御システム。
【請求項２】
前記リモート端末は、前記クライアントアプリケーションの動作により、前記リモート端末証明書管理部から前記リモート端末証明書を取得し、前記アプリケーション証明書管理部から前記クライアントアプリケーションに対応するアプリケーション証明書を取得することを特徴とする請求項１記載のアプリケーションアクセス制御システム。
【請求項３】
前記リモート端末は、前記クライアントアプリケーションの動作により、前記サーバアプリケーションに前記リモート端末証明書と前記アプリケーション証明書を送信することを特徴とする請求項１または２記載のアプリケーションアクセス制御システム。
【請求項４】
前記ローカル端末は、前記サーバアプリケーションの動作により、前記証明書認証部により前記認証結果の集合に前記アプリケーション証明書の認証結果が含まれると調べられたときに、当該アプリケーション証明書の認証結果をもとに前記アクセス許可データベースから前記クライアントアプリケーションに許可する前記実行要求の集合を取得し、取得された前記実行要求の集合に含まれる実行要求のみを処理することを特徴とする請求項１乃至３のいずれか１項に記載のアプリケーションアクセス制御システム。
【請求項５】
前記ローカル端末は、前記リモート端末証明書と前記リモート端末証明書の認証結果をキーとして前記認証結果集合データベースから取得した認証結果の集合との組みと、前記アプリケーション証明書と前記アプリケーション証明書の認証結果との組みを保持する認証キャッシュ部をさらに具備することを特徴とする請求項１乃至４のいずれか１項に記載のアプリケーションアクセス制御システム。
【請求項６】
前記証明書認証部が、前記リモート端末証明書と前記リモート端末証明書の認証結果をキーとして前記認証結果集合データベースから取得した認証結果の集合との組みと、前記アプリケーション証明書と前記アプリケーション証明書の認証結果との組みを前記認証キャッシュ部に登録し、前記リモート端末証明書または前記アプリケーション証明書をキーとして前記認証キャッシュ部を検索し、前記認証キャッシュ部に登録されていないときのみ前記リモート端末証明書または前記アプリケーション証明書を認証することを特徴とする請求項５記載のアプリケーションアクセス制御システム。
【請求項７】
クライアントアプリケーションが動作するリモート端末との間で通信可能に接続され、前記クライアントアプリケーションからの接続を受付可能なサーバアプリケーションが動作するローカル端末であって、
前記リモート端末の認証で用いるリモート端末証明書の認証結果と、前記クライアントアプリケーションに対応するアプリケーション証明書の認証結果の集合との組みを予め保持する認証結果集合データベースと、
前記アプリケーション証明書の認証結果と、前記クライアントアプリケーションに許可する実行要求の集合との組みを予め保持するアクセス許可データベースと、
前記サーバアプリケーションで前記クライアントアプリケーションからの接続を受け付けるときに、前記リモート端末から前記リモート端末証明書と前記アプリケーション証明書とを受け取り、前記リモート端末証明書と前記アプリケーション証明書とを認証し、前記リモート端末証明書の認証結果をキーとして前記認証結果集合データベースから前記アプリケーション証明書の認証結果の集合を取得し、当該認証結果の集合に前記アプリケーション証明書の認証結果が含まれるか否か調べる証明書認証部とを具備することを特徴とするローカル端末。
【請求項８】
前記証明書認証部により前記認証結果の集合に前記アプリケーション証明書の認証結果が含まれると調べられたときに、前記サーバアプリケーションの動作により、当該アプリケーション証明書の認証結果をもとに前記アクセス許可データベースから前記クライアントアプリケーションに許可する前記実行要求の集合を取得し、取得された前記実行要求の集合に含まれる実行要求のみを処理することを特徴とする請求項７記載のローカル端末。
【請求項９】
サーバアプリケーションが動作するローカル端末との間で通信可能に接続され、前記サーバアプリケーションに接続し得るクライアントアプリケーションが動作するリモート端末であって、
前記リモート端末の認証に用いるリモート端末証明書を管理するリモート端末証明書管理部と、
前記クライアントアプリケーションのアプリケーション識別子と、前記クライアントアプリケーションのハッシュ値を当該クライアントアプリケーション固有の秘密鍵で暗号化した暗号化ハッシュ値と、前記クライアントアプリケーション固有の秘密鍵に対応する公開鍵を含み前記クライアントアプリケーションに関連付けられたアプリケーション証明書との組みを予め保持するアプリケーション証明書データベースと、
前記クライアントアプリケーションから前記サーバアプリケーションへの接続時に、前記アプリケーション識別子をキーとして前記アプリケーション証明書データベースから前記暗号化ハッシュ値と前記アプリケーション証明書とを取得し、取得された前記クライアントアプリケーションのハッシュ値が、前記アプリケーション証明書に含まれる前記公開鍵を用いて前記暗号化ハッシュ値から復号化したハッシュ値と等しいか否か調べるアプリケーション証明書管理部とを具備することを特徴とするリモート端末。
【請求項１０】
前記アプリケーション証明書管理部により前記クライアントアプリケーションのハッシュ値が前記復号化したハッシュ値と等しいと調べられたときに、前記クライアントアプリケーションの動作により、前記アプリケーション証明書を前記リモート端末証明書と共に前記サーバアプリケーションに送信することを特徴とする請求項９記載のリモート端末。
【請求項１１】
クライアントアプリケーションが動作するリモート端末と、前記クライアントアプリケーションからの接続を受付け可能なサーバアプリケーションが動作するローカル端末とを備えたアプリケーションアクセス制御システムの動作方法であって、
前記リモート端末が、前記リモート端末の認証で用いるリモート端末証明書をリモート端末証明書管理部により管理するステップと、
前記リモート端末が、前記クライアントアプリケーションのアプリケーション識別子と、前記クライアントアプリケーションのハッシュ値を当該クライアントアプリケーション固有の秘密鍵で暗号化した暗号化ハッシュ値と、前記クライアントアプリケーション固有の秘密鍵に対応する公開鍵を含み前記クライアントアプリケーションに関連付けられたアプリケーション証明書との組みをアプリケーション証明書データベースに予め保持するステップと、
前記ローカル端末が、前記リモート端末証明書の認証結果と前記アプリケーション証明書の認証結果の集合との組みを認証結果集合データベースに予め保持するステップと、
前記ローカル端末が、前記アプリケーション証明書の認証結果と前記クライアントアプリケーションに許可する実行要求の集合との組みをアクセス許可データベースに予め保持するステップと、
前記リモート端末が、前記クライアントアプリケーションから前記サーバアプリケーションへの接続時に、アプリケーション証明書管理部により、当該クライアントアプリケーションのアプリケーション識別子をキーとして前記アプリケーション証明書データベースから当該アプリケーション識別子に対応する前記暗号化ハッシュ値と前記アプリケーション証明書を取得し、前記クライアントアプリケーションのハッシュ値が、前記アプリケーション証明書に含まれる前記公開鍵を用いて前記暗号化ハッシュ値から復号化したハッシュ値と等しいか否か調べるステップと、
前記ローカル端末が、前記サーバアプリケーションで前記クライアントアプリケーションからの接続を受け付けるときに、証明書認証部により、前記リモート端末から前記リモート端末証明書と前記アプリケーション証明書とを受け取り、前記リモート端末証明書と前記アプリケーション証明書とを認証し、前記リモート端末証明書の認証結果をキーとして前記認証結果集合データベースから前記アプリケーション証明書の認証結果の集合を取得し、当該認証結果の集合に前記アプリケーション証明書の認証結果が含まれるか否か調べるステップとを具備することを特徴とするアプリケーションアクセス制御システムの動作方法。
【請求項１２】
前記リモート端末が、前記クライアントアプリケーションから前記サーバアプリケーションへの接続時に、前記クライアントアプリケーションの動作により、前記リモート端末証明書管理部から前記リモート端末証明書を取得すると共に、前記アプリケーション証明書管理部から前記クライアントアプリケーションに対応するアプリケーション証明書を取得するステップをさらに具備することを特徴とする請求項１１記載のアプリケーションアクセス制御システムの動作方法。
【請求項１３】
前記リモート端末が、前記クライアントアプリケーションから前記サーバアプリケーションへの接続時に、前記クライアントアプリケーションの動作により、前記サーバアプリケーションに前記リモート端末証明書と前記アプリケーション証明書を送信するステップをさらに具備することを特徴とする請求項１１または１２記載のアプリケーションアクセス制御システムの動作方法。
【請求項１４】
前記ローカル端末が、前記証明書認証部により前記アプリケーション証明書の認証結果の集合に前記アプリケーション証明書の認証結果が含まれると調べられたときに、前記サーバアプリケーションの動作により、当該アプリケーション証明書の認証結果をもとに前記アクセス許可データベースから前記クライアントアプリケーションに許可する前記実行要求の集合を取得し、取得された前記実行要求の集合に含まれる実行要求のみを処理することを特徴とする請求項１１乃至１３のいずれか１項に記載のアプリケーションアクセス制御システムの動作方法。
【請求項１５】
前記ローカル端末が、前記リモート端末証明書と前記リモート端末証明書の認証結果をキーとして前記認証結果集合データベースから取得した認証結果の集合との組みと、前記アプリケーション証明書と前記アプリケーション証明書の認証結果との組みを認証キャッシュ部に保持するステップをさらに具備することを特徴とする請求項１１乃至１４のいずれか１項に記載のアプリケーションアクセス制御システムの動作方法。
【請求項１６】
前記ローカル端末が、前記リモート端末証明書と前記リモート端末証明書の認証結果をキーとして前記認証結果集合データベースから取得した認証結果の集合との組みと、前記アプリケーション証明書と前記アプリケーション証明書の認証結果との組みを前記認証キャッシュ部に登録し、前記リモート端末証明書または前記アプリケーション証明書をキーとして前記認証キャッシュ部を検索し、前記認証キャッシュ部に登録されていないときのみ前記リモート端末証明書または前記アプリケーション証明書を認証するステップをさらに具備することを特徴とする請求項１５記載のアプリケーションアクセス制御システムの動作方法。
【請求項１７】
クライアントアプリケーションが動作するリモート端末との間で通信可能に接続され、前記クライアントアプリケーションからの接続を受付可能なサーバアプリケーションが動作するローカル端末の動作方法であって、
前記リモート端末の認証で用いるリモート端末証明書の認証結果と、前記クライアントアプリケーションに対応するアプリケーション証明書の認証結果の集合との組みを認証結果集合データベースに予め保持するステップと、
前記アプリケーション証明書の認証結果と、前記クライアントアプリケーションに許可する実行要求の集合との組みをアクセス許可データベースに予め保持するステップと、
前記サーバアプリケーションで前記クライアントアプリケーションからの接続を受け付けるときに、前記リモート端末から前記リモート端末証明書と前記アプリケーション証明書とを受け取り、前記リモート端末証明書と前記アプリケーション証明書とを認証し、前記リモート端末証明書の認証結果をキーとして前記認証結果集合データベースから前記アプリケーション証明書の認証結果の集合を取得し、当該認証結果の集合に前記アプリケーション証明書の認証結果が含まれるか否か調べるステップと、
前記認証結果の集合に前記アプリケーション証明書の認証結果が含まれると調べられたときに、前記サーバアプリケーションの動作により、当該アプリケーション証明書の認証結果をもとに前記アクセス許可データベースから前記クライアントアプリケーションに許可する前記実行要求の集合を取得し、取得された前記実行要求の集合に含まれる実行要求のみを処理するステップとを具備することを特徴とするローカル端末の動作方法。
【請求項１８】
サーバアプリケーションが動作するローカル端末との間で通信可能に接続され、前記サーバアプリケーションに接続し得るクライアントアプリケーションが動作するリモート端末の動作方法であって、
前記リモート端末の認証に用いるリモート端末証明書を管理するステップと、
前記クライアントアプリケーションのアプリケーション識別子と、前記クライアントアプリケーションのハッシュ値を当該クライアントアプリケーション固有の秘密鍵で暗号化した暗号化ハッシュ値と、前記クライアントアプリケーション固有の秘密鍵に対応する公開鍵を含み前記クライアントアプリケーションに関連付けられたアプリケーション証明書との組みをアプリケーション証明書データベースに予め保持するステップと、
前記クライアントアプリケーションから前記サーバアプリケーションへの接続時に、前記アプリケーション識別子をキーとして前記アプリケーション証明書データベースから前記暗号化ハッシュ値と前記アプリケーション証明書とを取得し、取得された前記クライアントアプリケーションのハッシュ値が、前記アプリケーション証明書に含まれる前記公開鍵を用いて前記暗号化ハッシュ値から復号化したハッシュ値と等しいか否か調べるステップと、
前記クライアントアプリケーションのハッシュ値が前記復号化したハッシュ値と等しいと調べられたときに、前記クライアントアプリケーションの動作により、前記アプリケーション証明書を前記リモート端末証明書と共に前記サーバアプリケーションに送信するステップとを具備することを特徴とするリモート端末の動作方法。
【請求項１９】
クライアントアプリケーションが動作するリモート端末との間で通信可能に接続され、前記クライアントアプリケーションからの接続を受付可能なサーバアプリケーションが動作するローカル端末の動作プログラムであって、
コンピュータに、
前記リモート端末の認証で用いるリモート端末証明書の認証結果と、前記クライアントアプリケーションに対応するアプリケーション証明書の認証結果の集合との組みを予め認証結果集合データベースに保持するステップと、
前記アプリケーション証明書の認証結果と、前記クライアントアプリケーションに許可する実行要求の集合との組みを予めアクセス許可データベースに保持するステップと、
前記サーバアプリケーションで前記クライアントアプリケーションからの接続を受け付けるときに、前記リモート端末から前記リモート端末証明書と前記アプリケーション証明書とを受け取り、前記リモート端末証明書と前記アプリケーション証明書とを認証し、前記リモート端末証明書の認証結果をキーとして前記認証結果集合データベースから前記アプリケーション証明書の認証結果の集合を取得し、当該認証結果の集合に前記アプリケーション証明書の認証結果が含まれるか否か調べるステップと、
前記認証結果の集合に前記アプリケーション証明書の認証結果が含まれると調べられたときに、前記サーバアプリケーションの動作により、当該アプリケーション証明書の認証結果をもとに前記アクセス許可データベースから前記クライアントアプリケーションに許可する前記実行要求の集合を取得し、取得された前記実行要求の集合に含まれる実行要求のみを処理するステップとを実行させることを特徴とするローカル端末の動作プログラム。
【請求項２０】
サーバアプリケーションが動作するローカル端末との間で通信可能に接続され、前記サーバアプリケーションに接続し得るクライアントアプリケーションが動作するリモート端末の動作プログラムであって、
コンピュータに、
前記リモート端末の認証に用いるリモート端末証明書を管理するステップと、
前記クライアントアプリケーションのアプリケーション識別子と、前記クライアントアプリケーションのハッシュ値を当該クライアントアプリケーション固有の秘密鍵で暗号化した暗号化ハッシュ値と、前記クライアントアプリケーション固有の秘密鍵に対応する公開鍵を含み前記クライアントアプリケーションに関連付けられたアプリケーション証明書との組みをアプリケーション証明書データベースに予め保持するステップと、
前記クライアントアプリケーションから前記サーバアプリケーションへの接続時に、前記アプリケーション識別子をキーとして前記アプリケーション証明書データベースから前記暗号化ハッシュ値と前記アプリケーション証明書とを取得し、取得された前記クライアントアプリケーションのハッシュ値が、前記アプリケーション証明書に含まれる前記公開鍵を用いて前記暗号化ハッシュ値から復号化したハッシュ値と等しいか否か調べるステップと、
前記クライアントアプリケーションのハッシュ値が前記復号化したハッシュ値と等しいと調べられたときに、前記クライアントアプリケーションの動作により、前記アプリケーション証明書を前記リモート端末証明書と共に前記サーバアプリケーションに送信するステップとを実行させることを特徴とするリモート端末の動作プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ローカル端末、リモート端末、これらを備えたアプリケーションアクセス制御システム、これらの動作方法、及び動作プログラムに関し、特にリモート端末上で動作するクライアントアプリケーションからローカル端末上で動作するサーバアプリケーションに対するアクセスを制御するシステムに関する。なお、本明細書で言う「アプリケーション」はソフトウェアから成り、メモリ上に配置され且つプロセッサにより実行されることでその機能が実現されるものを指す。
【背景技術】
【０００２】
従来技術として、互いに通信可能に接続されたリモート端末及ローカル端末を有し、リモート端末上で動作するクライアントアプリケーションがローカル端末上で動作するサーバアプリケーションに接続して動作するシステムがある。このシステムで用いられるアプリケーションアクセス制御の一例を図１７及び図１８を参照して説明する。
【０００３】
図１７は、従来のアプリケーションアクセス制御の一例を説明するものである。
【０００４】
図１７に示すシステムは、クライアントアプリケーション２が動作するリモート端末１と、サーバアプリケーション４が動作し且つアクセス許可データベース５を有するローカル端末３とから構成されている。このようなシステム構成で用いられる従来のアプリケーションアクセス制御は、次のように動作する。
【０００５】
まず、リモート端末１上で動作するクライアントアプリケーション２がローカル端末３上で動作するサーバアプリケーション４に接続するときを考える。このとき、ローカル端末３は、サーバアプリケーション４の動作により、リモート端末１の識別子（ＩＰアドレスなど）を取得し、その識別子をもとにサーバアプリケーション４が許可するクライアントアプリケーション２からの実行要求の集合をアクセス許可データベース５から取得する。
【０００６】
次いで、ローカル端末３は、サーバアプリケーション４の動作により、クライアントアプリケーション２から実行要求を受信したとき、その実行要求が先に求めた実行要求の集合に含まれている場合のみ、その実行要求を処理する。
【０００７】
図１８は、従来のアプリケーションアクセス制御のその他の例を説明するものである。
【０００８】
図１８に示すシステムは、クライアントアプリケーション２が動作し且つリモート端末証明書管理部６を有するリモート端末１と、サーバアプリケーション４が動作し且つ証明書認証部７及びアクセス許可データベース５を有するローカル端末３とから構成されている。このようなシステム構成で用いられる従来のアプリケーションアクセス制御は、次のように動作する。
【０００９】
まず、リモート端末１上で動作するクライアントアプリケーション２がローカル端末３上で動作するサーバアプリケーション４に接続するときを考える。このとき、リモート端末１は、クライアントアプリケーション２の動作により、リモート端末証明書管理部６からリモート端末１にただ１つ存在するリモート端末証明書を取得し、サーバアプリケーション４に送信する。
【００１０】
次いで、ローカル端末３は、サーバアプリケーション４の動作により、受信したリモート端末証明書を証明書認証部７に渡す。証明書認証部７は、リモート端末証明書を認証し、認証結果をサーバアプリケーション４に渡す。ローカル端末３は、サーバアプリケーション４の動作により、渡された認証結果をもとにサーバアプリケーション４が許可するクライアントアプリケーション２からの実行要求の集合をアクセス許可データベース５から取得する。
【００１１】
次いで、ローカル端末３は、サーバアプリケーション４の動作により、クライアントアプリケーション２から実行要求を受信したとき、その実行要求が先に求めた実行要求の集合に含まれている場合のみ、その実行要求を処理する。
【００１２】
なお、本発明に関連する先行技術文献としては、次のものがある。
【特許文献１】特開２００３−３３０５５７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、上述した従来のアプリケーションアクセス制御では、次のような問題点があった。
【００１４】
第１の問題点は、クライアントアプリケーションごとのアクセス制御ができないことである。その理由は、サーバアプリケーションが取得できる情報は、リモート端末の識別子、もしくは、リモート端末証明書のみであり、クライアントアプリケーションの情報を取得できないためである。
【００１５】
第２の問題点は、クライアントアプリケーションの認証をしていないということである。そのため、サーバアプリケーションは、クライアントアプリケーションの安全性を確認できない。
【００１６】
第３の問題点は、クライアントアプリケーションのアクセス制御がリモート端末に依存していることである。その理由は、リモート端末のＩＰアドレス、もしくは、リモート端末証明書によりアクセス制御を行うため、同一クライアントアプリケーションを別のリモート端末で動作させた場合、そのリモート端末のＩＰアドレス、もしくは、リモート端末証明書によりアクセス制御が行われるためである。そのため、クライアントアプリケーションに過剰なアクセス権を与えてしまう場合がある。
【００１７】
上記の先行技術文献は、上記のような問題点を解決することを必ずしも意図したものではない。
【００１８】
本発明の目的は、リモート端末上で動作するクライアントアプリケーションからローカル端末上で動作するサーバアプリケーションに対するアクセスを制御するアプリケーションアクセス制御システムを提供することにある。
【課題を解決するための手段】
【００１９】
上記目的を達成するため、本発明のアプリケーションアクセス制御システムは、クライアントアプリケーションが動作するリモート端末と、クライアントアプリケーションからの接続を受付け可能なサーバアプリケーションが動作するローカル端末とを備える。
【００２０】
リモート端末は、リモート端末証明書を管理するリモート端末証明書管理部と、クライアントアプリケーションに対応するアプリケーション証明書を管理するアプリケーション証明書管理部を備える。
【００２１】
ローカル端末は、リモート端末証明書とアプリケーション証明書の認証を行う証明書認証部と、リモート端末証明書の認証結果とアプリケーション証明書の認証結果集合との組みを保持する認証結果集合データベースと、アプリケーション証明書の認証結果とクライアントアプリケーションに許可する実行要求の集合との組みを保持するアクセス許可データベースと、クライアントアプリケーションのアプリケーション識別子とクライアントアプリケーションのハッシュ値をクライアントアプリケーション固有の秘密鍵で暗号化した暗号化ハッシュ値とクライアントアプリケーション固有の秘密鍵に対応する公開鍵を含むアプリケーション証明書との組みを格納するアプリケーション証明書データベースとを備える。
【００２２】
このような構成により、クライアントアプリケーションがサーバアプリケーションに接続するときに、リモート端末証明書とクライアントアプリケーションに関連付けられたアプリケーション証明書をサーバアプリケーションに送信し、リモート端末証明書の認証結果から特定されるクライアントアプリケーションが取りうる認証結果集合にアプリケーション証明書の認証結果が含まれるとき、そのアプリケーション証明書の認証結果をもとにクライアントアプリケーションに許可する実行要求の集合を特定し、その実行要求の集合に含まれる実行要求のみを処理する。
【発明の効果】
【００２３】
本発明によれば、次のような効果が得られる。
【００２４】
第１の効果は、サーバアプリケーションがクライアントアプリケーションのアクセスを制御可能になることである。その理由は、サーバアプリケーションが処理するクライアントアプリケーションからの実行要求の種類は、アプリケーション証明書の認証結果から定まる実行要求の集合に含まれる実行要求に限定されるからである。
【００２５】
第２の効果は、クライアントアプリケーションの認証が可能になることである。その理由は、クライアントアプリケーションとサーバアプリケーションとが接続されたときに、クライアントアプリケーションに関連付けられるアプリケーション証明書がローカル端末に送信されるため、そのアプリケーション証明書を用いた認証が可能になるからである。
【００２６】
第３の効果は、クライアントアプリケーションのアクセス制御とクライアントアプリケーションが動作するリモート端末とを分離できることである。その理由は、リモート端末の認証に用いるリモート端末証明書の認証結果は、クライアントアプリケーションが取りうる認証結果集合を定めるのみで、クライアントアプリケーションのアクセス制御はクライアントアプリケーションに関連付けられるアプリケーション証明書の認証結果により定まるからである。
【００２７】
第４の効果は、クライアントアプリケーションが動作するリモート端末をローカル端末が認めたリモート端末に限定できることである。その理由は、リモート端末の認証に用いるリモート端末証明書の認証結果により定まる認証結果集合に、クライアントアプリケーションに関連付けられるアプリケーション証明書の認証結果が含まれているときのみ接続を許可するからである。
【発明を実施するための最良の形態】
【００２８】
次に、本発明を実施するための最良の形態について、図面を参照して詳細に説明する。
（第１の実施形態）
図１を参照すると、本発明の第１の実施形態によるアプリケーションアクセス制御システムは、互いに通信可能に接続されるリモート端末１０と、ローカル端末２０とから構成されている。両端末１０、２０間の通信は、無線でも有線でもいずれでも適用可能である。
【００２９】
リモート端末１０は、クライアントアプリケーション３０0〜３０mが動作するもので、機能上、リモート端末証明書管理部５０と、アプリケーション証明書管理部６０と、アプリケーション証明書データベース１１０とを含む。これらは機能上の構成であり、ハードウェア構成上は、これら各部に対応する機能が実現可能なものであれば、いずれでも適用可能である。
【００３０】
例えば、リモート端末１０は、上記各機能に対応する制御プログラム及びデータベース等の制御データが格納されるメモリ等の記録媒体と、これら制御プログラムの命令を解読及び実行するプロセッサ（ＣＰＵ）と、プロセッサによる制御の元でローカル端末２０との間の通信を行う通信装置等の各種入出力装置とを有する構成でもよい。この場合、クライアントアプリケーション３０0〜３０mは、例えばこれらに対応するクライアントアプリケーションソフトウェアから成り、メモリ上に配置され且つプロセッサにより実行されることでそれぞれの機能が実現される。また、リモート端末証明書管理部５０及びアプリケーション証明書管理部６０は、例えばこれらに対応する制御プログラムから成り、メモリ上に配置され且つプロセッサにより実行されることでそれぞれの機能が実現される。
【００３１】
クライアントアプリケーション３０0〜３０mは、リモート端末１０上で動作し、サーバアプリケーション４０に接続する。また、リモート端末証明書管理部５０から取得したリモート端末証明書とアプリケーション証明書管理部６０から取得したクライアントアプリケーション３０0〜３０mに関連付けられたアプリケーション証明書をサーバアプリケーション４０に送信する。
【００３２】
リモート端末証明書管理部５０は、リモート端末１０のリモート端末証明書を管理し、クライアントアプリケーション３０0〜３０mからの求めに応じてリモート端末証明書を渡す。
【００３３】
アプリケーション証明書管理部６０は、要求元のクライアントアプリケーション３０y（0＜＝y＜＝m）のアプリケーション識別子をキーとしてアプリケーション証明書データベース１１０を検索し、暗号化ハッシュ値とアプリケーション証明書を取得する。次に、クライアントアプリケーション３０yのハッシュ値を計算し、アプリケーション証明書から取得した公開鍵を用いて復号した暗号化ハッシュ値の値と一致するか調べ、アプリケーション証明書をクライアントアプリケーション３０yに渡す。
【００３４】
アプリケーション証明書データベース１１０は、クライアントアプリケーション３０0〜３０mのアプリケーション識別子とクライアントアプリケーション３０0〜３０mのハッシュ値をクライアントアプリケーション３０0〜３０m固有の秘密鍵で暗号化した暗号化ハッシュ値とクライアントアプリケーション３０0〜３０m固有の秘密鍵に対応する公開鍵を含むアプリケーション証明書との組みを予め記憶している。
【００３５】
ローカル端末２０は、サーバアプリケーション４０が動作するもので、機能上、証明書認証部７０と、認証結果集合データベース８０と、アクセス許可データベース９０とを含む。これらは機能上の構成であり、ハードウェア構成上は、これら各部に対応する機能が実現可能なものであれば、いずれでも適用可能である。
【００３６】
例えば、リモート端末１０は、上記各機能に対応する動作プログラム及びデータベース等の制御データが格納されるメモリ等の記録媒体と、これら動作プログラムの命令を解読及び実行するプロセッサ（ＣＰＵ）と、プロセッサによる制御の元でリモート端末１０との間の通信を行う通信装置等の各種入出力装置とを有する構成でもよい。この場合、サーバアプリケーション４０は、例えばこれに対応するサーバアプリケーションソフトウェアから成り、メモリ上に配置され且つプロセッサにより実行されることでその機能が実現される。また、証明書認証部７０は、例えばこれに対応する制御プログラムから成り、メモリ上に配置され且つプロセッサにより実行されることでその機能が実現される。
【００３７】
サーバアプリケーション４０は、ローカル端末２０上で動作し、クライアントアプリケーション３０y（0＜＝y＜＝m）から接続される。また、クライアントアプリケーション３０yから受信したリモート端末証明書とアプリケーション証明書を証明書認証部７０に渡して認証結果を取得する。そして、クライアントアプリケーション３０yからの実行要求を受信したとき、認証結果をキーとしてアクセス許可データベース９０から実行要求の集合を取得し、その実行要求が実行要求の集合に含まれているときにその実行要求を処理する。
【００３８】
証明書認証部７０は、サーバアプリケーション４０から取得したリモート端末証明書を認証し、その認証結果をキーとして認証結果集合データベース８０から認証結果集合を取得する。次にサーバアプリケーション４０から取得したアプリケーション証明書を認証し、その認証結果が先に求めた認証結果集合に含まれるか調べ、含まれるときにその認証結果をサーバアプリケーション４０に渡す。
【００３９】
認証結果集合データベース８０は、リモート端末証明書の認証結果とアプリケーション証明書の認証結果集合との組みを予め記憶している。
【００４０】
アクセス許可データベース９０は、アプリケーション証明書の認証結果と実行要求の集合との組みを予め記憶している。
【００４１】
次に、図１〜図６を参照して、本実施形態の動作について詳細に説明する。
【００４２】
まず、図２において、リモート端末１０は、クライアントアプリケーション３０y（0＜＝y＜＝m）が起動すると、リモート端末証明書管理部５０からリモート端末証明書を取得する（ステップＡ１）。次に、リモート端末１０は、クライアントアプリケーション３０yのアプリケーション識別子をアプリケーション証明書管理部６０に渡し（ステップＡ２）、そのアプリケーション識別子をキーにしてアプリケーション証明書データベース１１０からそのクライアントアプリケーション３０yに関連付けられたアプリケーション証明書を取得し得るかどうか判断する（ステップＡ３）。
【００４３】
その結果、アプリケーション証明書を取得できず、アプリケーション証明書管理部６０から検証エラーを取得した場合（ステップＡ３：ＮＯ）、リモート端末１０は、処理を終了する（ステップＡ３）。一方、アプリケーション証明書を取得した場合（ステップＡ３：ＹＥＳ）、リモート端末１０は、クライアントアプリケーション３０yの動作により、サーバアプリケーション４０に接続し（ステップＡ４）、取得したリモート端末証明書とアプリケーション証明書をサーバアプリケーション４０に送信する（ステップＡ５）。その後、リモート端末１０は、サーバアプリケーション４０から認証成功、もしくは、認証エラーの結果を受信したかどうか判断する（ステップＳ６）、その結果を受信した場合（ステップＳ６：ＹＥＳ）、その結果が認証エラーかどうか判断する（ステップＳ７）。これにより、認証エラーの場合（ステップＡ７：ＹＥＳ）、接続を遮断し（ステップＡ８）、認証エラーでない、即ち認証成功の場合（ステップＡ７：ＮＯ）、接続を継続する。
【００４４】
次いで、図３において、アプリケーション証明書管理部６０は、クライアントアプリケーション３０yから取得したアプリケーション識別子をキーとしてアプリケーション証明書データベース１１０から暗号化ハッシュ値とアプリケーション証明書を取得する（ステップＢ１）。次に、暗号化ハッシュ値をアプリケーション証明書から取得した公開鍵を用いて復号し（ステップＢ２）、クライアントアプリケーション３０yからハッシュ値を計算し（ステップＢ３）、復号化されたハッシュ値とクライアントアプリケーション３０yから計算したハッシュ値とを比較する（ステップＢ４）。
【００４５】
その結果、両ハッシュ値が等しい場合（ステップＢ４：ＹＥＳ）、アプリケーション証明書をクライアントアプリケーション３０yに渡し（ステップＢ５）、ハッシュ値が異なる場合（ステップＢ４：ＮＯ）、検証エラーをクライアントアプリケーション３０yに渡す（ステップＢ６）。
【００４６】
次いで、図４において、ローカル端末２０は、サーバアプリケーション４０の動作により、クライアントアプリケーション３０yから受信したリモート端末証明書とアプリケーション証明書を証明書認証部７０に渡し（ステップＣ１）、証明書認証部７０から認証結果を取得したかどうか判断する（ステップＣ２）。
【００４７】
その結果、証明書認証部７０から認証結果を取得した場合（ステップＣ２：ＹＥＳ）、その認証結果をキーとしてアクセス許可データベース９０から実行要求の集合を取得する（ステップＣ４）。その後、クライアントアプリケーション３０yに認証成功を送信する（ステップＣ５）。
【００４８】
一方、証明書認証部７０から認証結果を取得できずに認証エラーを取得した場合（ステップＣ２：ＮＯ）、クライアントアプリケーション３０yに認証エラーを送信する（ステップＣ６）。
【００４９】
次いで、図５において、証明書認証部７０は、サーバアプリケーション４０から取得したリモート端末証明書を認証し（ステップＤ１）、その認証に成功したかどうか判断する（ステップＤ２）。その結果、認証に失敗した場合（ステップＤ２：ＮＯ）、認証エラーをサーバアプリケーション４０に渡す（ステップＤ９）。一方、認証に成功した場合（ステップＤ２：ＹＥＳ）、その認証結果をキーとして認証結果集合データベース８０から認証結果集合を検索し（ステップＤ３）、その認証結果集合が存在するかどうか判断する（ステップＤ４）。
【００５０】
その結果、認証結果と組みとなる認証結果集合が存在しない場合（ステップＳ４：ＮＯ）、認証エラーをサーバアプリケーション４０に渡す（ステップＤ９）。一方、認証結果と組みとなる認証結果集合を取得した場合（ステップＳ４：ＹＥＳ）、サーバアプリケーション４０から取得したアプリケーション証明書を認証し（ステップＤ５）、その認証に成功したかどうか判断する（ステップＤ６）。その結果、認証に失敗した場合（ステップＤ６：ＮＯ）、認証エラーをサーバアプリケーション４０に渡す（ステップＤ９）。一方、認証に成功した場合（ステップＤ６：ＹＥＳ）、その認証結果が先に求めた認証結果集合に含まれるか調べる（ステップＤ７）。
【００５１】
その結果、認証結果が先に求めた認証結果集合に含まれる場合（ステップＤ７：ＹＥＳ）、その認証結果をサーバアプリケーション４０に渡し（ステップＤ８）、認証結果が先に求めた認証結果集合に含まれない場合（ステップＤ７：ＮＯ）、認証エラーをサーバアプリケーション４０に渡す（ステップＤ９）。
【００５２】
その後、リモート端末１０上で動作するクライアントアプリケーション３０yがローカル端末２０上で動作するサーバアプリケーション４０に実行要求を送信した場合を考える。
【００５３】
この場合、図６において、ローカル端末２０は、サーバアプリケーション４０がクライアントアプリケーション３０yから実行要求を受信する（ステップＥ１）と、サーバアプリケーション４０の動作により、受信した実行要求が先にアクセス許可データベース９０から取得した実行要求の集合に含まれているか調べる（ステップＥ２）。その結果、含まれている場合（ステップＥ２：ＹＥＳ）、その実行要求を処理する（ステップＥ３）。
【００５４】
次に、本実施形態の効果について説明する。
【００５５】
本実施形態では、リモート端末証明書を用いてリモート端末を認証でき、アプリケーション証明書を用いてクライアントアプリケーションを認証できる。また、クライアントアプリケーションはローカル端末が認めるリモート端末上で動作しているときのみ、サーバアプリケーションに実行要求の処理を依頼できる。このとき、サーバアプリケーションで処理されるクライアントアプリケーションの実行要求を、ローカル端末側でアプリケーション証明書の認証結果をもとに制限できる。
【００５６】
なお、本実施形態では、１つのリモート端末と１つのローカル端末の場合について説明したが、リモート端末とローカル端末の数に制限はない。
（第２の実施形態）
次に、本発明の第２の実施形態について、図面を参照して詳細に説明する。
【００５７】
図７を参照すると、本実施形態によるアプリケーションアクセス制御システムは、ローカル端末２０が図１に示された上記第１の実施形態におけるサーバアプリケーション４０が複数のサーバアプリケーション４０0〜４０ｎに置換され、証明書認証部７０が証明書認証部１７０に置換され、認証キャッシュ部１００を新たに有する点で異なる。
【００５８】
ローカル端末２０上で動作するサーバアプリケーション４０が複数のサーバアプリケーション４０0〜４０ｎに置換されたことにより、リモート端末１０上で動作するクライアントアプリケーション３０y（0＜＝y＜＝m）は、同時にローカル端末２０上の複数のサーバアプリケーションに接続する場合がある。
【００５９】
認証キャッシュ部１００は、リモート端末証明書と認証結果集合との組み、および、アプリケーション証明書と認証結果との組みを保存する。
【００６０】
次に、本実施形態の動作を図面を参照して詳細に説明する。
【００６１】
図７のクライアントアプリケーション３０y（0＜＝y＜＝m）とアプリケーション証明書管理部６０の動作は、上記第１の実施形態のクライアントアプリケーション３０yとアプリケーション証明書管理部６０の動作と同一のため、説明は省略する。また、図７のサーバアプリケーション４０z（0＜＝z＜＝n）の動作は、上記第１の実施形態のサーバアプリケーション４０の動作と同一のため、説明は省略する。
【００６２】
上記第１の実施形態では、証明書認証部７０は、取得したリモート端末証明書とアプリケーション証明書を必ず認証しているが、本実施形態では、図８に示すように、証明書認証部１７０は、サーバアプリケーション４０z（0＜＝z＜＝n）から取得したリモート端末証明書をキーとして認証キャッシュ部１００から認証結果集合を検索し（ステップＦ１）、その認証結果集合が存在するかどうか判断する（ステップＦ２）。その結果、認証結果集合が存在しない場合（ステップＦ２：ＮＯ）、リモート端末証明書を認証し（ステップＦ３）、その認証が成功したかどうか判断する（ステップＦ４）。
【００６３】
その結果、認証に成功した場合（ステップＦ４：ＹＥＳ）、認証結果をキーとして認証結果集合データベース８０から認証結果集合を検索し（ステップＦ５）、その認証結果集合が存在するかどうか判断する（ステップＦ６）。その結果、認証結果と組みとなる認証結果集合が存在しない場合（ステップＦ６：ＮＯ）、認証エラーをサーバアプリケーション４０zに渡し（ステップＦ１５）、認証結果と組みとなる認証結果集合を取得した場合（ステップＦ６：ＹＥＳ）、リモート端末証明書と認証結果集合との組みを認証キャッシュ部１００に登録する（ステップＦ７）。
【００６４】
一方、認証に失敗した場合（ステップＦ４：ＮＯ）、認証エラーをサーバアプリケーション４０zに渡す（ステップＦ１５）。
【００６５】
次に、サーバアプリケーション４０から取得したアプリケーション証明書をキーとして認証キャッシュ部１００から認証結果を検索し（ステップＦ８）、その認証結果が存在するかどうか判断する（ステップＦ９）。その結果、認証結果が存在しない場合（ステップＦ９：ＮＯ）、アプリケーション証明書を認証し（ステップＦ１０）、その認証に成功したかどうか判断する（ステップＦ１１）。その結果、認証に失敗した場合（ステップＦ１１：ＮＯ）、認証エラーをサーバアプリケーション４０zに渡す（ステップＦ１５）。
【００６６】
一方、認証に成功した場合（ステップＦ１１：ＹＥＳ）、アプリケーション証明書と認証結果との組みを認証キャッシュ部１００に登録する（ステップのＦ１２）。そして、認証結果が先に求めた認証結果集合に含まれるかどうか調べる（ステップＦ１３）。その結果、含まれる場合（ステップＦ１３：ＹＥＳ）、その認証結果をサーバアプリケーション４０zに渡し（ステップＦ１４）、含まれない場合（ステップＦ１３：ＮＯ）、認証エラーをサーバアプリケーション４０zに渡す（ステップＦ１５）。
【００６７】
次に、本実施形態の効果について説明する。
【００６８】
本実施形態では、リモート端末証明書と認証結果集合との組み、および、アプリケーション証明書と認証結果との組みをキャッシュすることにより、以前に認証したリモート端末証明書やアプリケーション証明書を再度認証する必要がなくなる。これにより、リモート端末証明書やアプリケーション証明書の認証時間を削減できる。
【実施例１】
【００６９】
次に、本発明の第１の実施例を、図面を参照して説明する。かかる実施例は、本発明の第１の実施形態に対応するものである。
【００７０】
本実施例によるアプリケーションアクセス制御システムは、図９に示すようにローカル端末として携帯電話１１を、リモート端末としてLinux端末２１を、クライアントアプリケーションとしてＸクライアント０（３１0）、Ｘクライアント１（３１1）を、サーバアプリケーションとしてＸサーバ４１を備えている。
【００７１】
リモート端末証明書管理部５１は、Linux端末２１のリモート端末証明書０を管理する。
【００７２】
アプリケーション証明書データベース１１１は、図１０に示すように、Ｘクライアント０に対応付けられるアプリケーション証明書０とＸクライアント０（３１0）のファイルの絶対パス名（/usr/bin/xclient0）とそのファイルのハッシュ値をＸクライアント０（３１0）に固有の秘密鍵で暗号化した暗号化ハッシュ値０との組み、Ｘクライアント１（３１1）に対応付けられるアプリケーション証明書１とＸクライアント１（３１1）のファイルの絶対パス名（/usr/bin/xclient1）とそのファイルのハッシュ値をＸクライアント１（３１1）に固有の秘密鍵で暗号化した暗号化ハッシュ値１との組みを含む。
【００７３】
証明書認証部７１は、ルート証明書Ｃ０、ルート証明書Ｃ１、ルート証明書Ａ０、ルート証明書Ａ１を持ち、ルート証明書Ｃ０はリモート端末証明書０を、ルート証明書Ａ０はアプリケーション証明書０を、ルート証明書Ａ１はアプリケーション証明書１を認証可能とする。認証結果として、その証明書の認証に使用されたルート証明書を用いる。
【００７４】
認証結果集合データベース８１は、図１１に示すように、ルート証明書Ｃ０とルート証明書Ａ０との組み、ルート証明書Ｃ１と｛ルート証明書Ａ０、ルート証明書Ａ１｝との組みを含む。
【００７５】
アクセス許可データベース９１は、図１２に示すように、ルート証明書Ａ０と｛ウィンドウ作成、ウィンドウ削除、フォント設定｝との組み、ルート証明書Ａ１と｛フォント設定、描画色設定、線描画｝との組みを含む。
【００７６】
今、Ｘクライアント０（３１0）がＸサーバ４１に接続を試みたとする。
【００７７】
Ｘクライアント０（３１0）は、リモート端末証明書管理部５１からリモート端末証明書０を取得する。また、アプリケーション証明書管理部６１にＸクライアント０（３１0）の絶対パス名（/usr/bin/xclient0）を渡す。
【００７８】
アプリケーション証明書管理部６１は、絶対パス名（/usr/bin/xclient0）をキーとしてアプリケーション証明書データベース１１１を検索し、暗号化ハッシュ値０とアプリケーション証明書０を取得する。次に、Ｘクライアント０（３１0）のファイル（/usr/bin/xclient0）のハッシュ値を計算し、アプリケーション証明書０に含まれる公開鍵を用いて暗号化ハッシュ値０を復号したハッシュ値と比較する。ハッシュ値は一致するので、アプリケーション証明書０をＸクライアント０（３１0）に渡す。
【００７９】
Ｘクライアント０（３１0）は、アプリケーション証明書０を取得すると、Ｘサーバ４１に接続し、リモート端末証明書０とアプリケーション証明書０を送信する。
【００８０】
Ｘサーバ４１は、受信したリモート端末証明書０とアプリケーション証明書０を証明書認証部７１に渡す。
【００８１】
証明書認証部７１は、所有するルート証明書を用いてリモート端末証明書０を認証する。リモート端末証明書０はルート証明書Ｃ０で認証に成功するので、ルート証明書Ｃ０をキーとして認証結果集合データベース８１を検索し、認証結果集合として｛ルート証明書Ａ０｝を取得する。
【００８２】
次に、証明書認証部７１は、所有するルート証明書を用いてアプリケーション証明書０を認証する。アプリケーション証明書０はルート証明書Ａ０で認証に成功するので、ルート証明書Ａ０が先に求めた認証結果集合｛ルート証明書Ａ０｝に含まれるか調べる。ルート証明書Ａ０は含まれるので、認証結果としてルート証明書Ａ０をＸサーバ４１に渡す。
【００８３】
Ｘサーバ４１は、認証結果としてルート証明書Ａ０を取得すると、ルート証明書Ａ０をキーとしてアクセス許可データベース９１を検索し、実行要求の集合として｛ウィンドウ作成、ウィンドウ削除、フォント設定｝を取得する。その後、Ｘクライアント０（３１0）に認証成功を送信する。
【００８４】
その後、Ｘクライアント０（３１0）が「ウィンドウ作成」実行要求をＸサーバ４１に送信したとする。Ｘサーバ４１は、「ウィンドウ作成」実行要求が先に取得した実行要求の集合に含まれるか調べる。「ウィンドウ作成」実行要求は含まれるため、Ｘサーバ４１は、Ｘクライアント０（３１0）による「ウィンドウ作成」実行要求を処理する。
【００８５】
また、Ｘクライアント０（３１0）が「描画色設定」実行要求をＸサーバ４１に送信したとする。Ｘサーバ４１は、「描画色設定」実行要求が先に取得した実行要求の集合に含まれるか調べる。「描画色設定」実行要求は含まれないため、Ｘサーバ４１は、Ｘクライアント０（３１0）による「描画色設定」実行要求を処理しない。
【００８６】
次に、Ｘクライアント１（３１1）がＸサーバ４１に接続を試みたとする。
【００８７】
Ｘクライアント１（３１1）は、リモート端末証明書管理部５１からリモート端末証明書０を取得する。また、アプリケーション証明書管理部６１にＸクライアント１（３１1）の絶対パス名（/usr/bin/xclient1）を渡す。
【００８８】
アプリケーション証明書管理部６１は、絶対パス名（/usr/bin/xclient1）をキーとしてアプリケーション証明書データベース１１１を検索し、暗号化ハッシュ値１とアプリケーション証明書１を取得する。次に、Ｘクライアント１（３１1）のファイル（/usr/bin/xclient1）のハッシュ値を計算し、アプリケーション証明書１に含まれる公開鍵を用いて暗号化ハッシュ値１を復号したハッシュ値と比較する。ハッシュ値は一致するので、アプリケーション証明書１をＸクライアント１（３１1）に渡す。
【００８９】
Ｘクライアント１（３１1）は、アプリケーション証明書１を取得すると、Ｘサーバ４１に接続し、リモート端末証明書１とアプリケーション証明書１を送信する。
【００９０】
Ｘサーバ４１は、受信したリモート端末証明書０とアプリケーション証明書１を証明書認証部に渡す。
【００９１】
証明書認証部７１は、所有するルート証明書を用いてリモート端末証明書０を認証する。リモート端末証明書０はルート証明書Ｃ０で認証に成功するので、ルート証明書Ｃ０をキーとして認証結果集合データベースを検索し、認証結果集合として｛ルート証明書Ａ０｝を取得する。
【００９２】
次に、証明書認証部７１は、所有するルート証明書を用いてアプリケーション証明書１を認証する。アプリケーション証明書１は、ルート証明書Ａ１で認証に成功するので、ルート証明書Ａ１が先に求めた認証結果集合｛ルート証明書Ａ０｝に含まれるか調べる。ルート証明書Ａ０は含まれないので、認証結果として認証エラーをＸサーバ４１に渡す。
【００９３】
Ｘサーバ４１は、認証結果として認証エラーを取得すると、Ｘクライアント１（３１1）に認証エラーを送信する。
【００９４】
Ｘクライアント１（３１1）は、認証エラーを受信すると、接続を遮断する。
【実施例２】
【００９５】
次に、第２の実施例を説明する。かかる実施例は、本発明の第２の実施形態に対応するものである。
【００９６】
本実施例によるアプリケーションアクセス制御システムは、図１３に示すようにローカル端末として携帯電話２１を、リモート端末としてLinux端末１１を、クライアントアプリケーションとしてＸクライアント０（３１0）、Ｘクライアント１（３１1）を、サーバアプリケーションとしてＸサーバ４１0とサウンドサーバ（音楽サーバ）４１1を備えている。
【００９７】
リモート端末証明書管理部５１は、Linux端末１１のリモート端末証明書０を管理する。
【００９８】
アプリケーション証明書データベース１１１は、図１４に示すように、Ｘクライアント０（３１0）に対応付けられるアプリケーション証明書０とＸクライアント０（３１0）のファイルの絶対パス名（/usr/bin/xclient0）とそのファイルのハッシュ値をＸクライアント０（３１0）に固有の秘密鍵で暗号化した暗号化ハッシュ値０との組み、Ｘクライアント１（３１1）に対応付けられるアプリケーション証明書１とＸクライアント１（３１1）のファイルの絶対パス名（/usr/bin/xclient1）とそのファイルのハッシュ値をＸクライアント１（３１1）に固有の秘密鍵で暗号化した暗号化ハッシュ値１との組みを含む。
【００９９】
証明書認証部１７１は、ルート証明書Ｃ０、ルート証明書Ｃ１、ルート証明書Ａ０、ルート証明書Ａ１を持ち、ルート証明書Ｃ０はリモート端末証明書０を、ルート証明書Ａ０はアプリケーション証明書０を、ルート証明書Ａ１はアプリケーション証明書１を認証可能とする。認証結果として、その証明書の認証に使用されたルート証明書を用いる。
【０１００】
認証結果集合データベース８１は、図１５に示すように、ルート証明書Ｃ０とルート証明書Ａ０との組み、ルート証明書Ｃ１と｛ルート証明書Ａ０、ルート証明書Ａ１｝との組みを含む。
【０１０１】
アクセス許可データベース９１は、図１６に示すように、ルート証明書Ａ０と｛ウィンドウ作成、ウィンドウ削除、音楽再生、音楽停止｝との組み、ルート証明書Ａ１と｛フォント設定、描画色設定、線描画｝との組みを含む。
【０１０２】
認証キャッシュ部１０１は、空とする。
【０１０３】
今、Ｘクライアント０（３１0）がＸサーバ４１0に接続を試みたとする。
【０１０４】
Ｘクライアント０（３１0）は、リモート端末証明書管理部５１からリモート端末証明書０を取得する。また、アプリケーション証明書管理部６１にＸクライアント０（３１0）の絶対パス名（/usr/bin/xclient0）を渡す。
【０１０５】
アプリケーション証明書管理部６１は、絶対パス名（/usr/bin/xclient0）をキーとしてアプリケーション証明書データベース１１１を検索し、暗号化ハッシュ値０とアプリケーション証明書０を取得する。次に、Ｘクライアント０のファイル（/usr/bin/xclient0）のハッシュ値を計算し、アプリケーション証明書０に含まれる公開鍵を用いて暗号化ハッシュ値０を復号したハッシュ値と比較する。ハッシュ値は一致するので、アプリケーション証明書０をＸクライアント０（３１0）に渡す。
【０１０６】
Ｘクライアント０（３１0）は、アプリケーション証明書０を取得すると、Ｘサーバ４１0に接続し、リモート端末証明書０とアプリケーション証明書０を送信する。
【０１０７】
Ｘサーバ４１0は、受信したリモート端末証明書０とアプリケーション証明書０を証明書認証部に渡す。
【０１０８】
証明書認証部１７１は、リモート端末証明書０をキーとして認証キャッシュ部１０１から認証結果集合を検索する。認証結果集合は存在しないため、リモート端末証明書０を認証する。リモート端末証明書０は、ルート証明書Ｃ０で認証に成功するので、ルート証明書Ｃ０をキーとして認証結果集合データベース８１を検索し、認証結果集合として｛ルート証明書Ａ０｝を取得する。そして、リモート端末証明書０と｛ルート証明書Ａ０｝との組みを認証キャッシュ部１０１に登録する。
【０１０９】
次に、証明書認証部１７１は、アプリケーション証明書０をキーとして認証キャッシュ部から認証結果を検索する。認証結果は存在しないため、アプリケーション証明書０を認証する。アプリケーション証明書０はルート証明書Ａ０で認証に成功するので、アプリケーション証明書０とルート証明書Ａ０との組みを認証キャッシュ部１０１に登録する。
【０１１０】
そして、ルート証明書Ａ０が先に求めた認証結果集合｛ルート証明書Ａ０｝に含まれるか調べる。ルート証明書Ａ０は含まれるので、認証結果としてルート証明書Ａ０をＸサーバ４１0に渡す。
【０１１１】
Ｘサーバ４１0は、認証結果としてルート証明書Ａ０を取得すると、ルート証明書Ａ０をキーとしてアクセス許可データベース９１を検索し、実行要求の集合として｛ウィンドウ作成、ウィンドウ削除、音楽再生、音楽停止｝を取得する。その後、Ｘクライアント０（３１0）に認証成功を送信する。
【０１１２】
その後、さらにＸクライアント０（３１0）が音楽サーバ４１1に接続を試みたとする。
【０１１３】
Ｘクライアント０（３１0）は、リモート端末証明書管理部５１からリモート端末証明書０を取得する。また、アプリケーション証明書管理部６１にＸクライアント０（３１0）の絶対パス名（/usr/bin/xclient0）を渡す。
【０１１４】
アプリケーション証明書管理部６１は、絶対パス名（/usr/bin/xclient0）をキーとしてアプリケーション証明書データベース１１１を検索し、暗号化ハッシュ値０とアプリケーション証明書０を取得する。次に、Ｘクライアント０（３１0）のファイル（/usr/bin/xclient0）のハッシュ値を計算し、アプリケーション証明書０に含まれる公開鍵を用いて暗号化ハッシュ値０を復号したハッシュ値と比較する。ハッシュ値は一致するので、アプリケーション証明書０をＸクライアント０（３１0）に渡す。
【０１１５】
Ｘクライアント０（３１0）は、アプリケーション証明書０を取得すると、音楽サーバ４１1に接続し、リモート端末証明書０とアプリケーション証明書０を送信する。
【０１１６】
音楽サーバ４１1は、受信したリモート端末証明書０とアプリケーション証明書０を証明書認証部１７１に渡す。
【０１１７】
証明書認証部１７１は、リモート端末証明書０をキーとして認証キャッシュ部１０１から認証結果集合を検索する。認証結果集合として、｛ルート証明書Ａ０｝を取得する。
【０１１８】
次に、証明書認証部１７１は、アプリケーション証明書０をキーとして認証キャッシュ部１０１から認証結果を検索する。認証結果として、ルート証明書Ａ０を取得する。
【０１１９】
そして、認証結果のルート証明書Ａ０が認証結果集合｛ルート証明書Ａ０｝に含まれるか調べる。ルート証明書Ａ０は含まれるので、認証結果としてルート証明書Ａ０を音楽サーバ４１1に渡す。
【０１２０】
音楽サーバ４１1は、認証結果としてルート証明書Ａ０を取得すると、ルート証明書Ａ０をキーとしてアクセス許可データベース９１を検索し、実行要求の集合として｛ウィンドウ作成、ウィンドウ削除、音楽再生、音楽停止｝を取得する。その後、Ｘクライアント０（３１0）に認証成功を送信する。
【産業上の利用可能性】
【０１２１】
本発明によれば、ＸサーバとＸクライアントのようなクライアント・サーバ型で動作するアプリケーションの動作時に、クライアントアプリケーションとそのクライアントアプリケーションが動作する端末の安全性に基づいた、サーバ側におけるクライアントアプリケーションのアクセス制御を実現する用途に適用できる。
【図面の簡単な説明】
【０１２２】
【図１】本発明の第１の実施形態によるアプリケーションアクセス制御システムの構成を示すブロック図である。
【図２】図１に示すクライアントアプリケーションの動作を示す流れ図である。
【図３】図１に示すアプリケーション証明書管理部の動作を示す流れ図である。
【図４】図１に示すサーバアプリケーションの動作を示す流れ図である。
【図５】図１に示す証明書認証部の動作を示す流れ図である。
【図６】図１に示すサーバアプリケーションによるクライアントアプリケーションからの実行要求受付け時の動作を示す流れ図である。
【図７】本発明の第２の実施形態によるアプリケーションアクセス制御システムの構成を示すブロック図である。
【図８】図７に示す証明書認証部の動作を示す流れ図である。
【図９】本発明の第１の実施例によるアプリケーションアクセス制御システムの構成を示す図である。
【図１０】図９に示すアプリケーション証明書データベースのテーブル構成を示す図である。
【図１１】図９に示す認証結果集合データベースのテーブル構成を示す図である。
【図１２】図９に示すアクセス許可データベースのテーブル構成を示す図である。
【図１３】本発明の第２の実施例によるアプリケーションアクセス制御システムの構成を示す図である。
【図１４】図１３に示すアプリケーション証明書データベースのテーブル構成を示す図である。
【図１５】図１３に示す認証結果集合データベースのテーブル構成を示す図である。
【図１６】図１３に示すアクセス許可データベースのテーブル構成を示す図である。
【図１７】従来例のアプリケーションアクセス制御システムの構成を示すブロック図である。
【図１８】他の従来例のアプリケーションアクセス制御システムの構成を示すブロック図である。
【符号の説明】
【０１２３】
１０  リモート端末
１１  Linux端末
２０  ローカル端末
２１  携帯電話
３０0〜３０m  クライアントアプリケーション
３１0、３１1  Ｘクライアント０、１
４０、４０0〜４０n  サーバアプリケーション
４１、４１0  Ｘサーバ
４１1  サウンドサーバ（音楽サーバ）
９０、９１  アクセス許可データベース
５０、５１  リモート端末証明書管理部
７０、７１、１７０、１７１  証明書認証部
６０、６１  アプリケーション証明書管理部
８０、８１  認証結果集合データベース
１００、１０１  認証キャッシュ部
１１０、１１１  アプリケーション証明書データベース
【図１】
2006260015.tif 000003
【図２】
2006260015.tif 000004
【図３】
2006260015.tif 000005
【図４】
2006260015.tif 000006
【図５】
2006260015.tif 000007
【図６】
2006260015.tif 000008
【図７】
2006260015.tif 000009
【図８】
2006260015.tif 000010
【図９】
2006260015.tif 000011
【図１０】
2006260015.tif 000012
【図１１】
2006260015.tif 000013
【図１２】
2006260015.tif 000014
【図１３】
2006260015.tif 000015
【図１４】
2006260015.tif 000016
【図１５】
2006260015.tif 000017
【図１６】
2006260015.tif 000018
【図１７】
2006260015.tif 000019
【図１８】
2006260015.tif 000020