(57)【要約】      （修正有）【課題】シンクライアントサーバに対する不正アクセスやウイルス感染等を完全に排除できるシンクライアントシステム等を提供する。【解決手段】クライアント１０１のリモートアクセスクライアントアプリ２１３は完全性検証サーバ１０３にコネクション確立要求を出し（Ｓ９０７）、完全性検証サーバ１０３のＣＰＵはシンクライアントサーバ１０５にコネクション要求を送信する（Ｓ９１１）。リモートアクセスクライアントアプリ２１３は完全性検証サーバ１０３にリモートアクセスリクエストを送信し（Ｓ９１７）、完全性検証サーバ１０３のＣＰＵはシンクライアントサーバ１０５にリクエストを転送する（Ｓ９２１）。シンクライアントサーバ１０５はリプライを完全性検証サーバ１０３に送信し（Ｓ９２３）、完全性検証サーバ１０３のＣＰＵはリモートアクセスクライアントアプリ２１３にリプライを転送する（Ｓ９２５）。【選択図】図９
2011197912.tif 000002
【特許請求の範囲】
【請求項１】
クライアントと、ネットワークを介して前記クライアントと接続され、前記クライアントの完全性検証を行う完全性検証サーバと、ネットワークを介して前記完全性検証サーバと接続されるシンクライアントサーバとから、構成されるシンクライアントシステムであって、
前記クライアントは、
シンクライアントオペレーティングシステムを起動する起動手段と、
前記シンクライアントサーバとのコネクションを要求する要求手段と、
前記シンクライアントサーバに対するリクエストを前記完全性検証サーバに送信し、前記シンクライアントサーバからのリプライを前記完全性検証サーバから受信する通信手段と、
を具備し、
前記完全性検証サーバは、
前記クライアントの要求に応じて、前記クライアントと前記シンクライアントサーバとのコネクションを確立する接続手段と、
前記シンクライアントサーバに対するリクエストを前記クライアントから受信して前記シンクライアントサーバに送信し、前記シンクライアントサーバからリプライを受信して前記クライアントに送信する通信手段と、
を具備することを特徴とするシンクライアントシステム。
【請求項２】
前記完全性検証サーバは、完全性検証済の前記クライアントを特定する情報を記憶する記憶手段、
をさらに具備することを特徴とする請求項１に記載のシンクライアントシステム。
【請求項３】
前記記憶手段は、前記クライアントからのアクセス時刻を記憶することを特徴とする請求項１に記載のシンクライアントシステム。
【請求項４】
前記完全性検証サーバが具備する前記記憶手段は、さらに、前記クライアントに対応する前記シンクライアントサーバのＩＰアドレスを記憶することを特徴とする請求項１に記載のシンクライアントシステム。
【請求項５】
ネットワークを介してクライアントと、シンクライアントサーバとに接続された完全性検証サーバであって、
前記クライアントの要求に応じて、前記クライアントと前記シンクライアントサーバとのコネクションを確立する接続手段と、
前記シンクライアントサーバに対するリクエストを前記クライアントから受信して前記シンクライアントサーバに送信し、前記シンクライアントサーバからリプライを受信して前記クライアントに送信する通信手段と、
を具備することを特徴とする完全性検証サーバ。
【請求項６】
コンピュータを請求項５に記載のサーバとして機能させるプログラム。
【請求項７】
コンピュータを請求項５に記載のサーバとして機能させるプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【請求項８】
クライアントと、ネットワークを介して前記クライアントと接続され、前記クライアントの完全性検証を行う完全性検証サーバと、ネットワークを介して前記完全性検証サーバと接続されるシンクライアントサーバによるシンクライアント通信中継方法であって、
前記クライアントは、
シンクライアントオペレーティングシステムを起動する起動ステップと、
前記シンクライアントサーバとのコネクションを要求する要求ステップと、
を実行し、
前記完全性検証サーバは、
前記クライアントの要求に応じて、前記クライアントと前記シンクライアントサーバとのコネクションを確立する接続ステップ、
を実行し、
前記クライアントは、
前記シンクライアントサーバに対するリクエストを前記完全性検証サーバに送信し、前記シンクライアントサーバからのリプライを前記完全性検証サーバから受信する通信ステップ、
を実行し、
前記完全性検証サーバは、
前記シンクライアントサーバに対するリクエストを前記クライアントから受信して前記シンクライアントサーバに送信し、前記シンクライアントサーバからリプライを受信して前記クライアントに送信する通信ステップ、
を実行することを特徴とするシンクライアント通信中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機能をサーバに集約させたシンクライアントシステム等に関する。特に、シンクライアントとして利用されるクライアントの認証に関する。
【背景技術】
【０００２】
近年、企業などにおいて、クライアントに必要最小限の機能のみを持たせ、機密情報等の情報資源の管理や、アプリケーションの処理などの機能をサーバに集約させたシンクライアントシステムの導入が増えてきている。
例えば、ネットワークに接続するコンピュータを検査する仕組みを備えた検疫ネットワークでは、クライアントとアプリケーションサーバ等の間で、検証サーバが存在する。
具体的には、検証サーバは、クライアントの環境がウイルスに感染していないか、最新のセキュリティパッチが適用されているか等のチェックを行い、問題がなければアプリケーションサーバ等にアクセスするためのＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスの割り当て等を実施する。その後、クライアントはアプリケーションサーバにアクセスできるようになる。
【０００３】
また、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）を利用したシンクライアントシステムにおけるクライアントの認証手法としては、クライアントとシンクライアントサーバの間に認証サーバを設置し、認証サーバにてクライアントのソフトウエアの構成等の完全性を検証するという仕組みが存在する。（特許文献１）
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１７５９２３
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載のプラットフォーム完全性検証システムでは、認証成功後、クライアントからシンクライアントサーバに直接アクセスすることになる。このアクセス方法を許す場合、認証成功したクライアントとは別の端末が、認証成功の情報だけを不正に取得してシンクライアントサーバにアクセスする余地が残る。
さらに、シンクライアントサーバに完全性検証サーバの機能を持たせると、完全性検証が済んでいないコンピュータが直接シンクライアントサーバにアクセスすることになるので、ウイルス感染などの可能性があり、セキュリティ上の問題がある。
【０００６】
本発明は、前述した問題点に鑑みてなされたもので、その目的は、シンクライアントサーバに対する不正アクセスやウイルス感染等を完全に排除できるシンクライアントシステム等を提供することである。
【課題を解決するための手段】
【０００７】
前述した目的を達成するために、第１の発明は、クライアントと、ネットワークを介して前記クライアントと接続され、前記クライアントの完全性検証を行う完全性検証サーバと、ネットワークを介して前記完全性検証サーバと接続されるシンクライアントサーバとから、構成されるシンクライアントシステムであって、前記クライアントは、シンクライアントオペレーティングシステムを起動する起動手段と、前記シンクライアントサーバとのコネクションを要求する要求手段と、前記シンクライアントサーバに対するリクエストを前記完全性検証サーバに送信し、前記シンクライアントサーバからのリプライを前記完全性検証サーバから受信する通信手段と、を具備し、前記完全性検証サーバは、前記クライアントの要求に応じて、前記クライアントと前記シンクライアントサーバとのコネクションを確立する接続手段と、前記シンクライアントサーバに対するリクエストを前記クライアントから受信して前記シンクライアントサーバに送信し、前記シンクライアントサーバからリプライを受信して前記クライアントに送信する通信手段と、を具備することを特徴とするシンクライアントシステムである。第１の発明に係るシンクライアントシステムを使用することによって、クライアントとシンクライアントサーバ間のデータを監視し、シンクライアントサーバに対する不正アクセスやウイルス感染等を完全に排除できる。
【０００８】
前記完全性検証サーバは、完全性検証済の前記クライアントを特定する情報を記憶する記憶手段、をさらに具備することが望ましい。これにより、完全性検証がなされていないクライアントとシンクライアントサーバ間のデータ送受信を回避できる。
【０００９】
前記記憶手段は、前記クライアントからのアクセス時刻を記憶することが望ましい。これにより、完全性検証サーバは、前回アクセス時刻から所定時間経過したコネクションを切断することによりリソースを有効活用することができる。
【００１０】
前記完全性検証サーバが具備する前記記憶手段は、さらに、前記クライアントに対応する前記シンクライアントサーバのＩＰアドレスを記憶することが望ましい。これにより、前記クライアントはシンクライアントサーバのＩＰアドレスを知らなくても接続することができる。
【００１１】
第２の発明は、ネットワークを介してクライアントと、シンクライアントサーバとに接続された完全性検証サーバであって、前記クライアントの要求に応じて、前記クライアントと前記シンクライアントサーバとのコネクションを確立する接続手段と、前記シンクライアントサーバに対するリクエストを前記クライアントから受信して前記シンクライアントサーバに送信し、前記シンクライアントサーバからリプライを受信して前記クライアントに送信する通信手段と、を具備することを特徴とする完全性検証サーバである。第２の発明に係る完全性検証サーバを使用することによって、クライアントとシンクライアントサーバ間のデータを監視し、シンクライアントサーバに対する不正アクセスやウイルス感染等を完全に排除できる。
【００１２】
第３の発明は、コンピュータを第２の発明の完全性検証サーバとして機能させるプログラムである。第３の発明に係るプログラムをコンピュータにインストールすることによって、第２の発明の完全性検証サーバを得ることができる。
【００１３】
第４の発明は、コンピュータを第２の発明の完全性検証サーバとして機能させるプログラムを記録したコンピュータ読み取り可能な記憶媒体である。第４の発明に係る記憶媒体に記録されたプログラムをコンピュータにインストールすることによって、第２の発明の完全性検証サーバを得ることができる。
【００１４】
第５の発明は、クライアントと、ネットワークを介して前記クライアントと接続され、前記クライアントの完全性検証を行う完全性検証サーバと、ネットワークを介して前記完全性検証サーバと接続されるシンクライアントサーバによるシンクライアント通信中継方法であって、前記クライアントは、シンクライアントオペレーティングシステムを起動する起動ステップと、前記シンクライアントサーバとのコネクションを要求する要求ステップと、を実行し、前記完全性検証サーバは、前記クライアントの要求に応じて、前記クライアントと前記シンクライアントサーバとのコネクションを確立する接続ステップ、を実行し、前記クライアントは、前記シンクライアントサーバに対するリクエストを前記完全性検証サーバに送信し、前記シンクライアントサーバからのリプライを前記完全性検証サーバから受信する通信ステップ、を実行し、前記完全性検証サーバは、前記シンクライアントサーバに対するリクエストを前記クライアントから受信して前記シンクライアントサーバに送信し、前記シンクライアントサーバからリプライを受信して前記クライアントに送信する通信ステップ、を実行することを特徴とするシンクライアント通信中継方法である。第５の発明に係るシンクライアント通信中継方法によって、クライアントとシンクライアントサーバ間のデータを監視し、シンクライアントサーバに対する不正アクセスやウイルス感染等を完全に排除できる。
【発明の効果】
【００１５】
本発明により、クライアントとシンクライアントサーバの間のデータを監視し、シンクライアントサーバに対する不正アクセスやウイルス感染等を完全に排除できるシンクライアントシステム等を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に係るシンクライアントシステムの全体構成図
【図２】ＵＳＢデバイス１０７のブロック図
【図３】クライアント１０１のブロック図
【図４】ＳＩＭ（Ｓｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ）１０９のブロック図
【図５】完全性検証サーバ１０３のブロック図
【図６】シンクライアントサーバ１０５のブロック図
【図７】シンクライアントＯＳ２０７の起動処理を示すフローチャート
【図８】完全性検証処理を示すフローチャート
【図９】リモートアクセス処理を示すシーケンス図
【図１０】認証テーブル５１７の一例を示す図
【図１１】ＩＰアドレステーブル５１９の一例を示す図
【発明を実施するための形態】
【００１７】
以下図面に基づいて、本発明の実施形態を詳細に説明する。
【００１８】
図１から図６を参照しながら、本発明の実施形態に係るシンクライアントシステムの構成について説明する。図１は、本発明の実施形態に係るシンクライアントシステムの全体構成図である。
【００１９】
図１に示すように、本発明の実施形態に係るシンクライアントシステムは、クライアント１０１と、完全性検証サーバ１０３が、外部ネットワーク１１１（例えば、インターネット等）を介して通信可能に接続されている。また、完全性検証サーバ１０３と、シンクライアントサーバ１０５が、内部ネットワーク１１３（例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等）を介して通信可能に接続されている。尚、内部ネットワーク１１３は、高セキュリティのネットワークであれば、ＬＡＮでなくても良い。
【００２０】
クライアント１０１は、携帯型記憶デバイスであるＵＳＢデバイス１０７が接続される。ＵＳＢデバイス１０７は、セキュリティトークンであるＳＩＭ（Ｓｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ）１０９が装着される。
セキュリティトークンとは、社員証などで普及しているＩＣカード、ＳＩＭ、ＵＳＩＭ（Ｕｎｉｖｅｒｓａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ）などの、データを秘匿に記憶でき、さらに、演算機能を備えた携帯可能なデバイスを意味する。
【００２１】
図２は、ＵＳＢデバイス１０７のブロック図である。
ＵＳＢデバイス１０７は、ＵＳＢドライバやフラッシュメモリを外部記憶装置としてコンピュータに認識させる機能を備えたドライバチップ２０３と、データを記憶するためのフラッシュメモリ２０５を備えている。
フラッシュメモリ２０５には、クライアント１０１上で動作するシンクライアントＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）２０７のイメージファイルが記憶されている。シンクライアントＯＳ２０７には、完全性検証処理を実行するためのプログラムである完全性検証クライアントアプリ２０９と、完全性検証クライアントアプリ２０９が利用する暗号鍵としてのＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）鍵２１１と、シンクライアントサーバ１０５へのリモートアクセス処理を実行するためのプログラムであるリモートアクセスクライアントアプリ２１３とが含まれている。
【００２２】
図３は、クライアント１０１のブロック図である。
クライアント１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、クライアント１０１のメインメモリであるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）が実装されるＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０７と、ＵＳＢ機器と通信するためのＵＳＢインターフェース３０９と、ネットワーク通信するためのネットワークインターフェース３１１と、補助記憶装置として大容量のデータ記憶装置３１３を備える。ＲＡＭ３０３には、装着されるＵＳＢデバイス１０７に記憶されているシンクライアントＯＳ２０７のイメージファイルが展開される。
【００２３】
データ記憶装置３１３には、シンクライアントシステムのクライアントとして利用されない時にブートされるクライアントＯＳ３１５が記憶されている。
【００２４】
図４は、ＳＩＭ１０９のブロック図である。
図４に示すように、ＳＩＭ１０９は、ＣＰＵ４０１と、ＲＡＭ４０３と、ＣＰＵを動作させるコンピュータプログラムが実装されるＲＯＭ４０５と、ＩＳＯ／７８１６規格のＵＡＲＴ（Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ  Ｔｒａｎｓｍｉｔｔｅｒ）４０９と、データが記憶される電気的に書き換え可能なメモリとしてのＥＥＰＲＯＭ（Ｅｌｅｃｔｒｏｎｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）４１１を備える。
【００２５】
ＥＥＰＲＯＭ４１１には、完全性検証処理で利用される暗号鍵として、デジタル署名秘密鍵４１３とＭＡＣ鍵４１５が記憶されている。
また、ＲＯＭ４０５には、ＭＡＣ鍵４１５を用いてクライアント１０１が生成する構成証明メッセージのＭＡＣを検証し、構成証明メッセージの検証に成功すると、デジタル署名秘密鍵４１３を用いて、構成証明メッセージのデジタル署名を生成する手段となるデジタル署名コマンド４０７が実装されている。
【００２６】
図５は、完全性検証サーバ１０３のブロック図である。
図５に示すように、完全性検証サーバ１０３は、ＣＰＵ５０１と、ＲＡＭ５０３と、ＲＯＭ５０５と、ネットワーク通信するためのネットワークインターフェース５０７と、補助記憶装置として大容量のデータ記憶装置５０９（例えば、ハードディスク）を備え、データ記憶装置５０９には、ＳＩＭ１０９に記憶されているデジタル署名秘密鍵４１３と対になるデジタル署名公開鍵５１１と、シンクライアントＯＳ２０７のハッシュ値の期待値５１３と、完全性検証を行う完全性検証サーバアプリ５１５と、認証済のクライアント１０１を特定する情報を保持する認証テーブル５１７と、シンクライアントサーバ１０５のＩＰアドレスを保持するＩＰテーブル５１９を備える。
【００２７】
完全性検証サーバ１０３は、クライアント１０１から、構成証明メッセージとデジタル署名を受信すると、データ記憶装置５０９に記憶されているデジタル署名公開鍵５１１を用いて、定められたデジタル署名検証アルゴリズムに従い、構成証明メッセージのデジタル署名を検証することで、デジタル署名を生成したＳＩＭ１０９の正当性を検証する。
【００２８】
完全性検証サーバ１０３は、構成証明メッセージのデジタル署名の検証に成功すると、シンクライアントＯＳ２０７のハッシュ値の期待値５１３を参照し、構成証明メッセージに含まれるハッシュ値が正しい内容であるか確認することで、構成証明メッセージの正当性を検証する。
【００２９】
なお、構成証明メッセージが乱数Ｒｃ及び乱数Ｒｓを含んでいるとき、完全性検証サーバ１０３は、シンクライアントＯＳ２０７のハッシュ値の期待値５１３に加え、ＲＡＭ５０３に記憶している乱数Ｒｃ及び乱数Ｒｓを参照して、構成証明メッセージの正当性を検証する。
【００３０】
図６は、シンクライアントサーバ１０５のブロック図である。
シンクライアントサーバ１０５は、ＣＰＵ６０１と、ＲＡＭ６０３と、ＲＯＭ６０５と、ネットワークインターフェース６０７と、データ記憶装置６０９を備える。
【００３１】
続いて、図７から図１１を参照しながら、本発明の実施の形態に係るシンクライアントシステムにおける処理の詳細について説明する。
図７は、シンクライアントＯＳ２０７の起動処理を示すフローチャートである。
【００３２】
ＵＳＢデバイス１０７がクライアント１０１に装着されると、クライアント１０１のＣＰＵ３０１は、ＵＳＢインターフェース３０９を利用して、ＵＳＢデバイス１０７とデータをやり取りすることで、クライアント１０１に装着されたＵＳＢデバイス１０７をマウントする（Ｓ７０１）。
【００３３】
ＵＳＢデバイス１０７をマウントすると、クライアント１０１のＣＰＵ３０１は、シンクライアントＯＳ２０７のイメージファイルの読み出しをＵＳＢデバイス１０７に要求し（Ｓ７０３）、ＵＳＢデバイス１０７のドライバチップ２０３は、フラッシュメモリ２０５に記憶されたシンクライアントＯＳ２０７のイメージファイルをクライアント１０１に送信する（Ｓ７０５）。
【００３４】
ＵＳＢデバイス１０７からシンクライアントＯＳ２０７のイメージファイルが送信されると、クライアント１０１のＣＰＵ３０１は、ＵＳＢデバイス１０７から受信したシンクライアントＯＳ２０７のイメージファイルをＲＡＭ３０３に展開し、シンクライアントＯＳ２０７を起動させる（Ｓ７０７）。
【００３５】
シンクライアントＯＳ２０７が起動すると、続いて、クライアント１０１のＣＰＵ３０１は、完全性検証クライアントアプリ２０９を起動させる（Ｓ７０９）。
【００３６】
図８は、完全性検証処理を示すフローチャートである。
【００３７】
クライアント１０１のＣＰＵ３０１は、完全性検証クライアントアプリ２０９を起動させ、乱数Ｒｃを生成し、外部ネットワーク１１１を介して、乱数Ｒｃを含む乱数生成要求メッセージを完全性検証サーバ１０３に送信する（Ｓ８０１）。なお、クライアント１０１のＣＰＵ３０１は、完全性検証処理が終了するまで、生成した乱数Ｒｃをクライアント１０１のＲＡＭ３０３に保持しておく。
【００３８】
完全性検証サーバ１０３のＣＰＵ５０１は、クライアント１０１から乱数Ｒｃを受信すると、乱数Ｒｓを生成し、乱数Ｒｓをクライアント１０１に送信するとともに（Ｓ８０３）、完全性検証処理が終了するまで乱数Ｒｃ及び乱数ＲｓをＲＡＭ５０３に保持しておく。
【００３９】
クライアント１０１のＣＰＵ３０１は、完全性検証サーバ１０３から乱数Ｒｓを受信すると、乱数ＲｓをＲＡＭ３０３に保持した後、ＲＡＭ３０３に展開されたシンクライアントＯＳ２０７のイメージファイルすべてから、定められたアルゴリズムに従い、ハッシュ値を演算し（Ｓ８０５）、ハッシュ値、乱数Ｒｃ、乱数Ｒｓが結合された構成証明メッセージを生成する（Ｓ８０７）。
【００４０】
クライアント１０１のＣＰＵ３０１は、構成証明メッセージを生成すると、シンクライアントＯＳ２０７に含まれているＭＡＣ鍵２１１を用い、定められた手順に従い、構成証明メッセージのＭＡＣを演算する。
クライアント１０１のＣＰＵ３０１は、構成証明メッセージのＭＡＣを演算すると、構成証明メッセージ及びＭＡＣをコマンドメッセージのデータに含めて、デジタル署名コマンドのコマンドメッセージをＳＩＭ１０９に送信することで、構成証明メッセージのデジタル署名の生成をＳＩＭ１０９に要求する（Ｓ８０９）。
【００４１】
ＳＩＭ１０９のＣＰＵ４０１は、構成証明メッセージおよびＭＡＣを含んだデジタル署名コマンド４０７のコマンドメッセージを受信すると、デジタル署名コマンド４０７を実行し、ＥＥＰＲＯＭ４１１に記憶されているＭＡＣ鍵４１５を用いて、クライアント１０１と同じアルゴリズムで構成証明メッセージからＭＡＣを演算し、クライアント１０１から送信されたＭＡＣと演算したＭＡＣとが同一であるか検証する（Ｓ８１１）。
【００４２】
ＳＩＭ１０９のＣＰＵ４０１は、構成証明メッセージのＭＡＣの検証に成功もしくは失敗で処理を分岐させ（Ｓ８１３）、成功した時は、構成証明メッセージのデジタル署名を生成する処理を実行し（Ｓ８１５）、失敗した時は、ＭＡＣの検証に失敗したことを示すエラーメッセージをクライアント１０１に返信して完全性検証処理を終了する。
【００４３】
ＳＩＭ１０９のＣＰＵ４０１は、定められたデジタル署名生成アルゴリズムに従い、構成証明メッセージのデジタル署名を生成し、生成したデジタル署名をクライアント１０１に返信する。
クライアント１０１のＣＰＵ３０１は、ＳＩＭ１０９から、構成証明メッセージのデジタル署名を受信すると、外部ネットワーク１１１を介して構成証明メッセージとデジタル署名を完全性検証サーバ１０３に送信する（Ｓ８１７）。
【００４４】
完全性検証サーバ１０３のＣＰＵ５０１は、構成証明メッセージとデジタル署名を受信すると、完全性検証サーバ１０３のデータ記憶装置５０９が記憶しているデジタル署名公開鍵５１１を用いて、定められたアルゴリズムに従い、構成証明メッセージのデジタル署名を検証することで、デジタル署名を生成したＳＩＭ１０９の正当性を検証する（Ｓ８１９）。
【００４５】
完全性検証サーバ１０３のＣＰＵ５０１は、構成証明メッセージのデジタル署名の検証に成功すると、ＲＡＭ５０３に保持されているＲｃおよびＲｓ、ならびにデータ記憶装置５０９が記憶しているハッシュ値の期待値５１３を参照し、構成証明メッセージに含まれるＲｃ、Ｒｓ及びハッシュ値が正しい値であるか確認することで構成証明メッセージの正当性を検証する。
【００４６】
完全性検証サーバ１０３のＣＰＵ５０１は、構成証明メッセージの検証に成功もしくは失敗で処理を分岐し（Ｓ８２１）、成功した時は、完全性検証サーバ１０３のＣＰＵ５０１は、クライアント１０１のＣＰＵ３０１にシンクライアントサーバ１０５へのアクセスを許可する（Ｓ８２３）。失敗した時は、クライアント１０１からシンクライアントサーバ１０５への許可することなく、完全性検証処理を終了する。
【００４７】
図９は、リモートアクセス処理を示すシーケンス図である。
以下では、便宜上、リモートアクセスアプリ２１３と完全性検証クライアントアプリ２０９を処理の主体として記述するが、現実に処理を行うハードウエアは、クライアント１０１のＣＰＵ３０１である。
【００４８】
クライアント１０１の完全性検証クライアントアプリ２０９は、完全性検証サーバ１０３に対し、モード変更の要求を行う（Ｓ９０１）。完全性検証サーバ１０３のＣＰＵ５０１は、完全性検証モードから転送モードに切り替え、切り替え完了を完全性検証クライアントアプリ２０９に通知する（Ｓ９０３）。完全性検証クライアントアプリ２０９は、リモートアクセスクライアントアプリ２１３を起動する（Ｓ９０５）。リモートアクセスクライアントアプリ２１３は、起動後、完全性検証クライアントアプリ２０９にシンクライアントサーバ１０５とのコネクション確立処理を依頼する（Ｓ９０７）。
【００４９】
ここで、図１０を用いてコネクション確立処理について説明する。
図１０は認証テーブル５１７の一例を示す。
完全性検証サーバ１０３のＣＰＵ５０１は、データ記憶装置５０９が記憶する認証テーブル５１７を用いて、コネクションの確立を行う。
【００５０】
図１０に示すように、認証テーブル５１７には、コネクションＩＤ１００１と、前回アクセス時刻１００３とが紐づけして記憶され、完全性検証サーバ１０３のデータ記憶装置５０９に保持される。完全性検証サーバ１０３のＣＰＵ５０１は、クライアント１０１の認証処理成功後に、コネクションＩＤ１００１を、例えば、ユーザＩＤと乱数とを組み合わせて生成する。ユーザＩＤは、各クライアント１０１が持つユニークなＩＤで、例えば、ＳＩＭ１０９内のユニークなＩＤでもよい。コネクションＩＤ１００１は、完全性検証クライアントアプリ２０９から完全性検証サーバ１０３へのアクセス時に常に付与される。
完全性検証サーバ１０３のＣＰＵ５０１は、クライアント１０１の認証処理成功後に、完全性検証クライアントアプリ２０９にシンクライアントサーバ１０５へのアクセス許可を通知する際に、コネクションＩＤ１００１を送信する。
完全性検証クライアントアプリ２０９は、以降の完全性検証サーバ１０３へのアクセス時に、コネクションＩＤ１００１を付与する。
【００５１】
前回アクセス時刻１００３は、完全性検証クライアントアプリ２０９からのアクセス時に完全性検証サーバ１０３のＣＰＵ５０１によって取得され、アクセスしてきたクライアント１０１のコネクションＩＤ１００１と紐づけされ認証テーブル５１７に保持される。
【００５２】
完全性検証クライアントアプリ２０９は、シンクライアントサーバ１０５とのコネクション確立処理を依頼されると、完全性検証サーバ１０３に対し、シンクライアントサーバ１０５とのコネクション確立要求とコネクションＩＤ１００１を送信する（Ｓ９０９）。完全性検証サーバ１０３のＣＰＵ５０１は、認証テーブル５１７を参照して、送信されたコネクションＩＤ１００１の有無を確認し、一致するコネクションＩＤ１００１が認証テーブル５１７にあれば、シンクライアントサーバ１０５に対し、コネクション確立の要求を行う（Ｓ９１１）。
【００５３】
また、完全性検証サーバ１０３のＣＰＵ５０１は、シンクライアントサーバ１０５のＩＰアドレスをＩＰテーブル５１９に保持することにより、シンクライアントサーバ１０５に接続することができる。すなわち、クライアント１０１がシンクライアントサーバ１０５のＩＰアドレスを知らなくても、クライアント１０１は、シンクライアントサーバ１０５に接続することが可能となる。
図１１にＩＰテーブル５１９の一例を示す。
【００５４】
図１１に示すように、ＩＰテーブル５１９には、ユーザＩＤ１１０１と、シンクライアントサーバ１０５のＩＰアドレス１１０３とが紐づけして記憶され、完全性検証サーバ１０３のデータ記憶装置５０９に保持される。
完全性検証サーバ１０３のＣＰＵ５０１は、完全性検証クライアントアプリ２０９からのコネクション要求受信時、ＩＰテーブル５１９を参照して、アクセスしてきたクライアント１０１のユーザＩＤ１１０１に紐づけされたＩＰアドレスを持つシンクライアントサーバ１０５にコネクション要求する。
【００５５】
このとき、シンクライアントサーバ１０５のＣＰＵ６０１は、完全性検証サーバ１０３からのアクセスのみを受け付ける。すなわち、シンクライアントサーバ１０５のＣＰＵ６０１は、完全性検証サーバ１０３のＩＰアドレスを保持しており、そのＩＰアドレス以外からのアクセスは受け付けない。
【００５６】
シンクライアントサーバ１０５のＣＰＵ６０１は、完全性検証サーバ１０３のＩＰアドレスからのアクセスであると判断した場合、完全性検証サーバ１０３とのコネクションを確立し、確立完了を完全性検証サーバ１０３に通知する（Ｓ９１３）。完全性検証サーバ１０３のＣＰＵ５０１は、完全性検証クライアントアプリ２０９にシンクライアントサーバ１０５とのコネクション確立を通知し（Ｓ９１５）、これ以降、完全性検証クライアントアプリ２０９は、リモートアクセスクライアントアプリ２１３からのリクエストを受け付ける。
【００５７】
リモートアクセスクライアントアプリ２１３は、リモートアクセスのリクエストを完全性検証クライアントアプリ２０９に送信し、完全性検証クライアントアプリ２０９は、リクエストとコネクションＩＤ１００１を完全性検証サーバ１０３に転送する（Ｓ９１９）。完全性検証サーバ１０３のＣＰＵ５０１は、認証テーブル５１７を参照して、受信したコネクションＩＤ１００１が認証テーブル５１７に保持されているか確認する。保持されていれば、完全性検証サーバ１０３のＣＰＵ５０１は、認証済のクライアント１０１からのアクセスと判断して、当該コネクションＩＤ１００１の前回アクセス時刻１００３を更新し、ＩＰテーブル５１９より当該クライアント１０１のユーザＩＤ１１０１に紐づけされたシンクライアントサーバ１０６のＩＰアドレス１１０３を取得し、リモートアクセスリクエストをシンクライアントサーバ１０５に転送する（Ｓ９２１）。受信したコネクションＩＤ１００１が、認証テーブル５１７に保持されていなければ、完全性検証サーバ１０３のＣＰＵ５０１は、コネクションを確立せず、以降のリモートアクセス処理を行わない。
【００５８】
シンクライアントサーバ１０５のＣＰＵ６０１は、リクエストに対応して完全性検証サーバ１０３にリプライ情報を送信する（Ｓ９２３）。リプライ情報とは、例えば、画面転送型シンクライアントシステムの場合、ビットマップディスプレイ情報の差分データのことである。
【００５９】
完全性検証サーバ１０３のＣＰＵ５０１は、リプライ情報を完全性検証クライアントアプリ２０９に転送し（Ｓ９２４）、完全性検証クライアントアプリ２０９は、リモートアクセスクライアントアプリ２１３にリプライ情報を転送する（Ｓ９２５）。このように、リモートアクセスクライアントアプリ２１３と、シンクライアントサーバ１０５は直接通信するのではなく、完全性検証クライアントアプリ２０９と完全性検証サーバ１０３を中継して通信を行う。リモートアクセスクライアントアプリ２１３は、完全性検証クライアントアプリ２０９から受け取ったリプライ情報をもとに、クライアント１０１の画面表示を更新する。
【００６０】
リモートアクセスクライアントアプリ２１３は、通信を終了する場合には、終了を完全性検証クライアントアプリ２０９に送信し（Ｓ９２７）、完全性検証クライアントアプリ２０９は、完全性検証サーバ１０３に終了を通知する（Ｓ９２９）。完全性検証サーバ１０３のＣＰＵ５０１は、認証テーブル５１７から当該コネクションＩＤ１００１を削除するとともに、シンクライアントサーバ１０５にコネクション切断を通知し（Ｓ９３１）、これ以降、リモートアクセスクライアントアプリ２１３とシンクライアントサーバ１０５は通信を行うことができない。
【００６１】
このように、認証処理完了後も、完全性検証サーバ１０３とシンクライアントサーバ１０５がコネクションを確立し続けるので、クライアント１０１とシンクライアントサーバ１０５との間のデータの送受信情報を監視することができる。
【００６２】
また、完全性検証サーバ１０３のＣＰＵ５０１は、認証テーブル５１７を用いて、前回アクセス時刻１００３から所定時間を経過したコネクションを切断する。このとき、完全性検証サーバ１０３のＣＰＵ５０１は、認証テーブル５１７から、前回アクセス時刻１００３から所定時間を経過したコネクションＩＤ１００１を削除する。
これにより、コネクションを接続しているが使用していないアイドル状態の場合、完全性検証サーバ１０３はコネクションを切断することができる。また、例えば、シンクライアントサーバ１０５の同時接続クライアント数が限定されている場合、コネクションはあるが使用されていないものは完全性検証サーバ１０３によって切断されるのでリソースを有効に活用できる。
【００６３】
完全性検証サーバ１０３のＣＰＵ５０１は、例えば、クライアント１０１がアクセスするシンクライアントサーバ１０５が固定されている場合、予め生成されたＩＰテーブル５１９を保持しておく。一方、クライアント１０１がアクセスするシンクライアントサーバ１０５が固定されていない場合、完全性検証サーバ１０３のＣＰＵ５０１は、クライアント１０１からのアクセス時に、対応するシンクライアントサーバ１０５を選定してＩＰアドレス１１０３とクライアント１０１のユーザＩＤを紐づけしてＩＰテーブル５１９に保持しても良い。
【００６４】
以上説明したように、本発明の実施の形態では、完全性検証サーバが完全性検証処理後も、クライアントとシンクライアントサーバとの間でコネクションを確立し続けて、データの送受信を監視する。これによって、シンクライアントサーバに対する不正アクセス、およびウイルス感染を完全に排除できる。
また、クライアントとシンクライアントサーバが直接接続する場合には、シンクライアントサーバ側の電源が落ちたり、ネットワークケーブルが抜けたりといったトラブルがあると、クライアントに対して特にメッセージもなく突然接続が終了してしまう可能性がある。しかし、本発明の実施形態のように、完全性検証サーバを経由することで、シンクライアントサーバ側にトラブルがあった場合でも、クライアントに完全性検証サーバがメッセージを送信することができる。
また、本発明の実施形態では、完全性検証クライアントアプリ２０９とリモートアクセスクライアントアプリ２１３を別々のアプリケーションとしたが、一つのアプリケーションとしてクライアント１０１に保持しても良い。
【００６５】
以上、添付図面を参照しながら、本発明に係るシンクライアントシステムの好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【００６６】
１０１………クライアント
１０３………完全性検証サーバ
１０５………シンクライアントサーバ
１０７………ＵＳＢデバイス
１０９………ＳＩＭ
【図１】
2011197912.tif 000003
【図２】
2011197912.tif 000004
【図３】
2011197912.tif 000005
【図４】
2011197912.tif 000006
【図５】
2011197912.tif 000007
【図６】
2011197912.tif 000008
【図７】
2011197912.tif 000009
【図８】
2011197912.tif 000010
【図９】
2011197912.tif 000011
【図１０】
2011197912.tif 000012
【図１１】
2011197912.tif 000013