シンクライアントシステム、完全性検証サーバ、プログラム、記憶媒体、シンクライアント通信中継方法
【課題】シンクライアントサーバに対する不正アクセスやウイルス感染等を完全に排除できるシンクライアントシステム等を提供する。
【解決手段】クライアント101のリモートアクセスクライアントアプリ213は完全性検証サーバ103にコネクション確立要求を出し(S907)、完全性検証サーバ103のCPUはシンクライアントサーバ105にコネクション要求を送信する(S911)。リモートアクセスクライアントアプリ213は完全性検証サーバ103にリモートアクセスリクエストを送信し(S917)、完全性検証サーバ103のCPUはシンクライアントサーバ105にリクエストを転送する(S921)。シンクライアントサーバ105はリプライを完全性検証サーバ103に送信し(S923)、完全性検証サーバ103のCPUはリモートアクセスクライアントアプリ213にリプライを転送する(S925)。
【解決手段】クライアント101のリモートアクセスクライアントアプリ213は完全性検証サーバ103にコネクション確立要求を出し(S907)、完全性検証サーバ103のCPUはシンクライアントサーバ105にコネクション要求を送信する(S911)。リモートアクセスクライアントアプリ213は完全性検証サーバ103にリモートアクセスリクエストを送信し(S917)、完全性検証サーバ103のCPUはシンクライアントサーバ105にリクエストを転送する(S921)。シンクライアントサーバ105はリプライを完全性検証サーバ103に送信し(S923)、完全性検証サーバ103のCPUはリモートアクセスクライアントアプリ213にリプライを転送する(S925)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機能をサーバに集約させたシンクライアントシステム等に関する。特に、シンクライアントとして利用されるクライアントの認証に関する。
【背景技術】
【0002】
近年、企業などにおいて、クライアントに必要最小限の機能のみを持たせ、機密情報等の情報資源の管理や、アプリケーションの処理などの機能をサーバに集約させたシンクライアントシステムの導入が増えてきている。
例えば、ネットワークに接続するコンピュータを検査する仕組みを備えた検疫ネットワークでは、クライアントとアプリケーションサーバ等の間で、検証サーバが存在する。
具体的には、検証サーバは、クライアントの環境がウイルスに感染していないか、最新のセキュリティパッチが適用されているか等のチェックを行い、問題がなければアプリケーションサーバ等にアクセスするためのIP(Internet Protocol)アドレスの割り当て等を実施する。その後、クライアントはアプリケーションサーバにアクセスできるようになる。
【0003】
また、USB(Universal Serial Bus)を利用したシンクライアントシステムにおけるクライアントの認証手法としては、クライアントとシンクライアントサーバの間に認証サーバを設置し、認証サーバにてクライアントのソフトウエアの構成等の完全性を検証するという仕組みが存在する。(特許文献1)
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−175923
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載のプラットフォーム完全性検証システムでは、認証成功後、クライアントからシンクライアントサーバに直接アクセスすることになる。このアクセス方法を許す場合、認証成功したクライアントとは別の端末が、認証成功の情報だけを不正に取得してシンクライアントサーバにアクセスする余地が残る。
さらに、シンクライアントサーバに完全性検証サーバの機能を持たせると、完全性検証が済んでいないコンピュータが直接シンクライアントサーバにアクセスすることになるので、ウイルス感染などの可能性があり、セキュリティ上の問題がある。
【0006】
本発明は、前述した問題点に鑑みてなされたもので、その目的は、シンクライアントサーバに対する不正アクセスやウイルス感染等を完全に排除できるシンクライアントシステム等を提供することである。
【課題を解決するための手段】
【0007】
前述した目的を達成するために、第1の発明は、クライアントと、ネットワークを介して前記クライアントと接続され、前記クライアントの完全性検証を行う完全性検証サーバと、ネットワークを介して前記完全性検証サーバと接続されるシンクライアントサーバとから、構成されるシンクライアントシステムであって、前記クライアントは、シンクライアントオペレーティングシステムを起動する起動手段と、前記シンクライアントサーバとのコネクションを要求する要求手段と、前記シンクライアントサーバに対するリクエストを前記完全性検証サーバに送信し、前記シンクライアントサーバからのリプライを前記完全性検証サーバから受信する通信手段と、を具備し、前記完全性検証サーバは、前記クライアントの要求に応じて、前記クライアントと前記シンクライアントサーバとのコネクションを確立する接続手段と、前記シンクライアントサーバに対するリクエストを前記クライアントから受信して前記シンクライアントサーバに送信し、前記シンクライアントサーバからリプライを受信して前記クライアントに送信する通信手段と、を具備することを特徴とするシンクライアントシステムである。第1の発明に係るシンクライアントシステムを使用することによって、クライアントとシンクライアントサーバ間のデータを監視し、シンクライアントサーバに対する不正アクセスやウイルス感染等を完全に排除できる。
【0008】
前記完全性検証サーバは、完全性検証済の前記クライアントを特定する情報を記憶する記憶手段、をさらに具備することが望ましい。これにより、完全性検証がなされていないクライアントとシンクライアントサーバ間のデータ送受信を回避できる。
【0009】
前記記憶手段は、前記クライアントからのアクセス時刻を記憶することが望ましい。これにより、完全性検証サーバは、前回アクセス時刻から所定時間経過したコネクションを切断することによりリソースを有効活用することができる。
【0010】
前記完全性検証サーバが具備する前記記憶手段は、さらに、前記クライアントに対応する前記シンクライアントサーバのIPアドレスを記憶することが望ましい。これにより、前記クライアントはシンクライアントサーバのIPアドレスを知らなくても接続することができる。
【0011】
第2の発明は、ネットワークを介してクライアントと、シンクライアントサーバとに接続された完全性検証サーバであって、前記クライアントの要求に応じて、前記クライアントと前記シンクライアントサーバとのコネクションを確立する接続手段と、前記シンクライアントサーバに対するリクエストを前記クライアントから受信して前記シンクライアントサーバに送信し、前記シンクライアントサーバからリプライを受信して前記クライアントに送信する通信手段と、を具備することを特徴とする完全性検証サーバである。第2の発明に係る完全性検証サーバを使用することによって、クライアントとシンクライアントサーバ間のデータを監視し、シンクライアントサーバに対する不正アクセスやウイルス感染等を完全に排除できる。
【0012】
第3の発明は、コンピュータを第2の発明の完全性検証サーバとして機能させるプログラムである。第3の発明に係るプログラムをコンピュータにインストールすることによって、第2の発明の完全性検証サーバを得ることができる。
【0013】
第4の発明は、コンピュータを第2の発明の完全性検証サーバとして機能させるプログラムを記録したコンピュータ読み取り可能な記憶媒体である。第4の発明に係る記憶媒体に記録されたプログラムをコンピュータにインストールすることによって、第2の発明の完全性検証サーバを得ることができる。
【0014】
第5の発明は、クライアントと、ネットワークを介して前記クライアントと接続され、前記クライアントの完全性検証を行う完全性検証サーバと、ネットワークを介して前記完全性検証サーバと接続されるシンクライアントサーバによるシンクライアント通信中継方法であって、前記クライアントは、シンクライアントオペレーティングシステムを起動する起動ステップと、前記シンクライアントサーバとのコネクションを要求する要求ステップと、を実行し、前記完全性検証サーバは、前記クライアントの要求に応じて、前記クライアントと前記シンクライアントサーバとのコネクションを確立する接続ステップ、を実行し、前記クライアントは、前記シンクライアントサーバに対するリクエストを前記完全性検証サーバに送信し、前記シンクライアントサーバからのリプライを前記完全性検証サーバから受信する通信ステップ、を実行し、前記完全性検証サーバは、前記シンクライアントサーバに対するリクエストを前記クライアントから受信して前記シンクライアントサーバに送信し、前記シンクライアントサーバからリプライを受信して前記クライアントに送信する通信ステップ、を実行することを特徴とするシンクライアント通信中継方法である。第5の発明に係るシンクライアント通信中継方法によって、クライアントとシンクライアントサーバ間のデータを監視し、シンクライアントサーバに対する不正アクセスやウイルス感染等を完全に排除できる。
【発明の効果】
【0015】
本発明により、クライアントとシンクライアントサーバの間のデータを監視し、シンクライアントサーバに対する不正アクセスやウイルス感染等を完全に排除できるシンクライアントシステム等を提供することができる。
【図面の簡単な説明】
【0016】
【図1】本発明の実施形態に係るシンクライアントシステムの全体構成図
【図2】USBデバイス107のブロック図
【図3】クライアント101のブロック図
【図4】SIM(Subscriber Identity Module)109のブロック図
【図5】完全性検証サーバ103のブロック図
【図6】シンクライアントサーバ105のブロック図
【図7】シンクライアントOS207の起動処理を示すフローチャート
【図8】完全性検証処理を示すフローチャート
【図9】リモートアクセス処理を示すシーケンス図
【図10】認証テーブル517の一例を示す図
【図11】IPアドレステーブル519の一例を示す図
【発明を実施するための形態】
【0017】
以下図面に基づいて、本発明の実施形態を詳細に説明する。
【0018】
図1から図6を参照しながら、本発明の実施形態に係るシンクライアントシステムの構成について説明する。図1は、本発明の実施形態に係るシンクライアントシステムの全体構成図である。
【0019】
図1に示すように、本発明の実施形態に係るシンクライアントシステムは、クライアント101と、完全性検証サーバ103が、外部ネットワーク111(例えば、インターネット等)を介して通信可能に接続されている。また、完全性検証サーバ103と、シンクライアントサーバ105が、内部ネットワーク113(例えば、LAN(Local Area Network)等)を介して通信可能に接続されている。尚、内部ネットワーク113は、高セキュリティのネットワークであれば、LANでなくても良い。
【0020】
クライアント101は、携帯型記憶デバイスであるUSBデバイス107が接続される。USBデバイス107は、セキュリティトークンであるSIM(Subscriber Identity Module)109が装着される。
セキュリティトークンとは、社員証などで普及しているICカード、SIM、USIM(Universal Subscriber Identity Module)などの、データを秘匿に記憶でき、さらに、演算機能を備えた携帯可能なデバイスを意味する。
【0021】
図2は、USBデバイス107のブロック図である。
USBデバイス107は、USBドライバやフラッシュメモリを外部記憶装置としてコンピュータに認識させる機能を備えたドライバチップ203と、データを記憶するためのフラッシュメモリ205を備えている。
フラッシュメモリ205には、クライアント101上で動作するシンクライアントOS(Operating System)207のイメージファイルが記憶されている。シンクライアントOS207には、完全性検証処理を実行するためのプログラムである完全性検証クライアントアプリ209と、完全性検証クライアントアプリ209が利用する暗号鍵としてのMAC(Message Authentication Code)鍵211と、シンクライアントサーバ105へのリモートアクセス処理を実行するためのプログラムであるリモートアクセスクライアントアプリ213とが含まれている。
【0022】
図3は、クライアント101のブロック図である。
クライアント101は、CPU(Central Processing Unit)301と、クライアント101のメインメモリであるRAM(Random Access Memory)303と、BIOS(Basic Input/Output System)が実装されるROM(Read Only Memory)307と、USB機器と通信するためのUSBインターフェース309と、ネットワーク通信するためのネットワークインターフェース311と、補助記憶装置として大容量のデータ記憶装置313を備える。RAM303には、装着されるUSBデバイス107に記憶されているシンクライアントOS207のイメージファイルが展開される。
【0023】
データ記憶装置313には、シンクライアントシステムのクライアントとして利用されない時にブートされるクライアントOS315が記憶されている。
【0024】
図4は、SIM109のブロック図である。
図4に示すように、SIM109は、CPU401と、RAM403と、CPUを動作させるコンピュータプログラムが実装されるROM405と、ISO/7816規格のUART(Universal Asynchronous Receiver Transmitter)409と、データが記憶される電気的に書き換え可能なメモリとしてのEEPROM(Electronically Erasable and Programmable Read Only Memory)411を備える。
【0025】
EEPROM411には、完全性検証処理で利用される暗号鍵として、デジタル署名秘密鍵413とMAC鍵415が記憶されている。
また、ROM405には、MAC鍵415を用いてクライアント101が生成する構成証明メッセージのMACを検証し、構成証明メッセージの検証に成功すると、デジタル署名秘密鍵413を用いて、構成証明メッセージのデジタル署名を生成する手段となるデジタル署名コマンド407が実装されている。
【0026】
図5は、完全性検証サーバ103のブロック図である。
図5に示すように、完全性検証サーバ103は、CPU501と、RAM503と、ROM505と、ネットワーク通信するためのネットワークインターフェース507と、補助記憶装置として大容量のデータ記憶装置509(例えば、ハードディスク)を備え、データ記憶装置509には、SIM109に記憶されているデジタル署名秘密鍵413と対になるデジタル署名公開鍵511と、シンクライアントOS207のハッシュ値の期待値513と、完全性検証を行う完全性検証サーバアプリ515と、認証済のクライアント101を特定する情報を保持する認証テーブル517と、シンクライアントサーバ105のIPアドレスを保持するIPテーブル519を備える。
【0027】
完全性検証サーバ103は、クライアント101から、構成証明メッセージとデジタル署名を受信すると、データ記憶装置509に記憶されているデジタル署名公開鍵511を用いて、定められたデジタル署名検証アルゴリズムに従い、構成証明メッセージのデジタル署名を検証することで、デジタル署名を生成したSIM109の正当性を検証する。
【0028】
完全性検証サーバ103は、構成証明メッセージのデジタル署名の検証に成功すると、シンクライアントOS207のハッシュ値の期待値513を参照し、構成証明メッセージに含まれるハッシュ値が正しい内容であるか確認することで、構成証明メッセージの正当性を検証する。
【0029】
なお、構成証明メッセージが乱数Rc及び乱数Rsを含んでいるとき、完全性検証サーバ103は、シンクライアントOS207のハッシュ値の期待値513に加え、RAM503に記憶している乱数Rc及び乱数Rsを参照して、構成証明メッセージの正当性を検証する。
【0030】
図6は、シンクライアントサーバ105のブロック図である。
シンクライアントサーバ105は、CPU601と、RAM603と、ROM605と、ネットワークインターフェース607と、データ記憶装置609を備える。
【0031】
続いて、図7から図11を参照しながら、本発明の実施の形態に係るシンクライアントシステムにおける処理の詳細について説明する。
図7は、シンクライアントOS207の起動処理を示すフローチャートである。
【0032】
USBデバイス107がクライアント101に装着されると、クライアント101のCPU301は、USBインターフェース309を利用して、USBデバイス107とデータをやり取りすることで、クライアント101に装着されたUSBデバイス107をマウントする(S701)。
【0033】
USBデバイス107をマウントすると、クライアント101のCPU301は、シンクライアントOS207のイメージファイルの読み出しをUSBデバイス107に要求し(S703)、USBデバイス107のドライバチップ203は、フラッシュメモリ205に記憶されたシンクライアントOS207のイメージファイルをクライアント101に送信する(S705)。
【0034】
USBデバイス107からシンクライアントOS207のイメージファイルが送信されると、クライアント101のCPU301は、USBデバイス107から受信したシンクライアントOS207のイメージファイルをRAM303に展開し、シンクライアントOS207を起動させる(S707)。
【0035】
シンクライアントOS207が起動すると、続いて、クライアント101のCPU301は、完全性検証クライアントアプリ209を起動させる(S709)。
【0036】
図8は、完全性検証処理を示すフローチャートである。
【0037】
クライアント101のCPU301は、完全性検証クライアントアプリ209を起動させ、乱数Rcを生成し、外部ネットワーク111を介して、乱数Rcを含む乱数生成要求メッセージを完全性検証サーバ103に送信する(S801)。なお、クライアント101のCPU301は、完全性検証処理が終了するまで、生成した乱数Rcをクライアント101のRAM303に保持しておく。
【0038】
完全性検証サーバ103のCPU501は、クライアント101から乱数Rcを受信すると、乱数Rsを生成し、乱数Rsをクライアント101に送信するとともに(S803)、完全性検証処理が終了するまで乱数Rc及び乱数RsをRAM503に保持しておく。
【0039】
クライアント101のCPU301は、完全性検証サーバ103から乱数Rsを受信すると、乱数RsをRAM303に保持した後、RAM303に展開されたシンクライアントOS207のイメージファイルすべてから、定められたアルゴリズムに従い、ハッシュ値を演算し(S805)、ハッシュ値、乱数Rc、乱数Rsが結合された構成証明メッセージを生成する(S807)。
【0040】
クライアント101のCPU301は、構成証明メッセージを生成すると、シンクライアントOS207に含まれているMAC鍵211を用い、定められた手順に従い、構成証明メッセージのMACを演算する。
クライアント101のCPU301は、構成証明メッセージのMACを演算すると、構成証明メッセージ及びMACをコマンドメッセージのデータに含めて、デジタル署名コマンドのコマンドメッセージをSIM109に送信することで、構成証明メッセージのデジタル署名の生成をSIM109に要求する(S809)。
【0041】
SIM109のCPU401は、構成証明メッセージおよびMACを含んだデジタル署名コマンド407のコマンドメッセージを受信すると、デジタル署名コマンド407を実行し、EEPROM411に記憶されているMAC鍵415を用いて、クライアント101と同じアルゴリズムで構成証明メッセージからMACを演算し、クライアント101から送信されたMACと演算したMACとが同一であるか検証する(S811)。
【0042】
SIM109のCPU401は、構成証明メッセージのMACの検証に成功もしくは失敗で処理を分岐させ(S813)、成功した時は、構成証明メッセージのデジタル署名を生成する処理を実行し(S815)、失敗した時は、MACの検証に失敗したことを示すエラーメッセージをクライアント101に返信して完全性検証処理を終了する。
【0043】
SIM109のCPU401は、定められたデジタル署名生成アルゴリズムに従い、構成証明メッセージのデジタル署名を生成し、生成したデジタル署名をクライアント101に返信する。
クライアント101のCPU301は、SIM109から、構成証明メッセージのデジタル署名を受信すると、外部ネットワーク111を介して構成証明メッセージとデジタル署名を完全性検証サーバ103に送信する(S817)。
【0044】
完全性検証サーバ103のCPU501は、構成証明メッセージとデジタル署名を受信すると、完全性検証サーバ103のデータ記憶装置509が記憶しているデジタル署名公開鍵511を用いて、定められたアルゴリズムに従い、構成証明メッセージのデジタル署名を検証することで、デジタル署名を生成したSIM109の正当性を検証する(S819)。
【0045】
完全性検証サーバ103のCPU501は、構成証明メッセージのデジタル署名の検証に成功すると、RAM503に保持されているRcおよびRs、ならびにデータ記憶装置509が記憶しているハッシュ値の期待値513を参照し、構成証明メッセージに含まれるRc、Rs及びハッシュ値が正しい値であるか確認することで構成証明メッセージの正当性を検証する。
【0046】
完全性検証サーバ103のCPU501は、構成証明メッセージの検証に成功もしくは失敗で処理を分岐し(S821)、成功した時は、完全性検証サーバ103のCPU501は、クライアント101のCPU301にシンクライアントサーバ105へのアクセスを許可する(S823)。失敗した時は、クライアント101からシンクライアントサーバ105への許可することなく、完全性検証処理を終了する。
【0047】
図9は、リモートアクセス処理を示すシーケンス図である。
以下では、便宜上、リモートアクセスアプリ213と完全性検証クライアントアプリ209を処理の主体として記述するが、現実に処理を行うハードウエアは、クライアント101のCPU301である。
【0048】
クライアント101の完全性検証クライアントアプリ209は、完全性検証サーバ103に対し、モード変更の要求を行う(S901)。完全性検証サーバ103のCPU501は、完全性検証モードから転送モードに切り替え、切り替え完了を完全性検証クライアントアプリ209に通知する(S903)。完全性検証クライアントアプリ209は、リモートアクセスクライアントアプリ213を起動する(S905)。リモートアクセスクライアントアプリ213は、起動後、完全性検証クライアントアプリ209にシンクライアントサーバ105とのコネクション確立処理を依頼する(S907)。
【0049】
ここで、図10を用いてコネクション確立処理について説明する。
図10は認証テーブル517の一例を示す。
完全性検証サーバ103のCPU501は、データ記憶装置509が記憶する認証テーブル517を用いて、コネクションの確立を行う。
【0050】
図10に示すように、認証テーブル517には、コネクションID1001と、前回アクセス時刻1003とが紐づけして記憶され、完全性検証サーバ103のデータ記憶装置509に保持される。完全性検証サーバ103のCPU501は、クライアント101の認証処理成功後に、コネクションID1001を、例えば、ユーザIDと乱数とを組み合わせて生成する。ユーザIDは、各クライアント101が持つユニークなIDで、例えば、SIM109内のユニークなIDでもよい。コネクションID1001は、完全性検証クライアントアプリ209から完全性検証サーバ103へのアクセス時に常に付与される。
完全性検証サーバ103のCPU501は、クライアント101の認証処理成功後に、完全性検証クライアントアプリ209にシンクライアントサーバ105へのアクセス許可を通知する際に、コネクションID1001を送信する。
完全性検証クライアントアプリ209は、以降の完全性検証サーバ103へのアクセス時に、コネクションID1001を付与する。
【0051】
前回アクセス時刻1003は、完全性検証クライアントアプリ209からのアクセス時に完全性検証サーバ103のCPU501によって取得され、アクセスしてきたクライアント101のコネクションID1001と紐づけされ認証テーブル517に保持される。
【0052】
完全性検証クライアントアプリ209は、シンクライアントサーバ105とのコネクション確立処理を依頼されると、完全性検証サーバ103に対し、シンクライアントサーバ105とのコネクション確立要求とコネクションID1001を送信する(S909)。完全性検証サーバ103のCPU501は、認証テーブル517を参照して、送信されたコネクションID1001の有無を確認し、一致するコネクションID1001が認証テーブル517にあれば、シンクライアントサーバ105に対し、コネクション確立の要求を行う(S911)。
【0053】
また、完全性検証サーバ103のCPU501は、シンクライアントサーバ105のIPアドレスをIPテーブル519に保持することにより、シンクライアントサーバ105に接続することができる。すなわち、クライアント101がシンクライアントサーバ105のIPアドレスを知らなくても、クライアント101は、シンクライアントサーバ105に接続することが可能となる。
図11にIPテーブル519の一例を示す。
【0054】
図11に示すように、IPテーブル519には、ユーザID1101と、シンクライアントサーバ105のIPアドレス1103とが紐づけして記憶され、完全性検証サーバ103のデータ記憶装置509に保持される。
完全性検証サーバ103のCPU501は、完全性検証クライアントアプリ209からのコネクション要求受信時、IPテーブル519を参照して、アクセスしてきたクライアント101のユーザID1101に紐づけされたIPアドレスを持つシンクライアントサーバ105にコネクション要求する。
【0055】
このとき、シンクライアントサーバ105のCPU601は、完全性検証サーバ103からのアクセスのみを受け付ける。すなわち、シンクライアントサーバ105のCPU601は、完全性検証サーバ103のIPアドレスを保持しており、そのIPアドレス以外からのアクセスは受け付けない。
【0056】
シンクライアントサーバ105のCPU601は、完全性検証サーバ103のIPアドレスからのアクセスであると判断した場合、完全性検証サーバ103とのコネクションを確立し、確立完了を完全性検証サーバ103に通知する(S913)。完全性検証サーバ103のCPU501は、完全性検証クライアントアプリ209にシンクライアントサーバ105とのコネクション確立を通知し(S915)、これ以降、完全性検証クライアントアプリ209は、リモートアクセスクライアントアプリ213からのリクエストを受け付ける。
【0057】
リモートアクセスクライアントアプリ213は、リモートアクセスのリクエストを完全性検証クライアントアプリ209に送信し、完全性検証クライアントアプリ209は、リクエストとコネクションID1001を完全性検証サーバ103に転送する(S919)。完全性検証サーバ103のCPU501は、認証テーブル517を参照して、受信したコネクションID1001が認証テーブル517に保持されているか確認する。保持されていれば、完全性検証サーバ103のCPU501は、認証済のクライアント101からのアクセスと判断して、当該コネクションID1001の前回アクセス時刻1003を更新し、IPテーブル519より当該クライアント101のユーザID1101に紐づけされたシンクライアントサーバ106のIPアドレス1103を取得し、リモートアクセスリクエストをシンクライアントサーバ105に転送する(S921)。受信したコネクションID1001が、認証テーブル517に保持されていなければ、完全性検証サーバ103のCPU501は、コネクションを確立せず、以降のリモートアクセス処理を行わない。
【0058】
シンクライアントサーバ105のCPU601は、リクエストに対応して完全性検証サーバ103にリプライ情報を送信する(S923)。リプライ情報とは、例えば、画面転送型シンクライアントシステムの場合、ビットマップディスプレイ情報の差分データのことである。
【0059】
完全性検証サーバ103のCPU501は、リプライ情報を完全性検証クライアントアプリ209に転送し(S924)、完全性検証クライアントアプリ209は、リモートアクセスクライアントアプリ213にリプライ情報を転送する(S925)。このように、リモートアクセスクライアントアプリ213と、シンクライアントサーバ105は直接通信するのではなく、完全性検証クライアントアプリ209と完全性検証サーバ103を中継して通信を行う。リモートアクセスクライアントアプリ213は、完全性検証クライアントアプリ209から受け取ったリプライ情報をもとに、クライアント101の画面表示を更新する。
【0060】
リモートアクセスクライアントアプリ213は、通信を終了する場合には、終了を完全性検証クライアントアプリ209に送信し(S927)、完全性検証クライアントアプリ209は、完全性検証サーバ103に終了を通知する(S929)。完全性検証サーバ103のCPU501は、認証テーブル517から当該コネクションID1001を削除するとともに、シンクライアントサーバ105にコネクション切断を通知し(S931)、これ以降、リモートアクセスクライアントアプリ213とシンクライアントサーバ105は通信を行うことができない。
【0061】
このように、認証処理完了後も、完全性検証サーバ103とシンクライアントサーバ105がコネクションを確立し続けるので、クライアント101とシンクライアントサーバ105との間のデータの送受信情報を監視することができる。
【0062】
また、完全性検証サーバ103のCPU501は、認証テーブル517を用いて、前回アクセス時刻1003から所定時間を経過したコネクションを切断する。このとき、完全性検証サーバ103のCPU501は、認証テーブル517から、前回アクセス時刻1003から所定時間を経過したコネクションID1001を削除する。
これにより、コネクションを接続しているが使用していないアイドル状態の場合、完全性検証サーバ103はコネクションを切断することができる。また、例えば、シンクライアントサーバ105の同時接続クライアント数が限定されている場合、コネクションはあるが使用されていないものは完全性検証サーバ103によって切断されるのでリソースを有効に活用できる。
【0063】
完全性検証サーバ103のCPU501は、例えば、クライアント101がアクセスするシンクライアントサーバ105が固定されている場合、予め生成されたIPテーブル519を保持しておく。一方、クライアント101がアクセスするシンクライアントサーバ105が固定されていない場合、完全性検証サーバ103のCPU501は、クライアント101からのアクセス時に、対応するシンクライアントサーバ105を選定してIPアドレス1103とクライアント101のユーザIDを紐づけしてIPテーブル519に保持しても良い。
【0064】
以上説明したように、本発明の実施の形態では、完全性検証サーバが完全性検証処理後も、クライアントとシンクライアントサーバとの間でコネクションを確立し続けて、データの送受信を監視する。これによって、シンクライアントサーバに対する不正アクセス、およびウイルス感染を完全に排除できる。
また、クライアントとシンクライアントサーバが直接接続する場合には、シンクライアントサーバ側の電源が落ちたり、ネットワークケーブルが抜けたりといったトラブルがあると、クライアントに対して特にメッセージもなく突然接続が終了してしまう可能性がある。しかし、本発明の実施形態のように、完全性検証サーバを経由することで、シンクライアントサーバ側にトラブルがあった場合でも、クライアントに完全性検証サーバがメッセージを送信することができる。
また、本発明の実施形態では、完全性検証クライアントアプリ209とリモートアクセスクライアントアプリ213を別々のアプリケーションとしたが、一つのアプリケーションとしてクライアント101に保持しても良い。
【0065】
以上、添付図面を参照しながら、本発明に係るシンクライアントシステムの好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【0066】
101………クライアント
103………完全性検証サーバ
105………シンクライアントサーバ
107………USBデバイス
109………SIM
【技術分野】
【0001】
本発明は、機能をサーバに集約させたシンクライアントシステム等に関する。特に、シンクライアントとして利用されるクライアントの認証に関する。
【背景技術】
【0002】
近年、企業などにおいて、クライアントに必要最小限の機能のみを持たせ、機密情報等の情報資源の管理や、アプリケーションの処理などの機能をサーバに集約させたシンクライアントシステムの導入が増えてきている。
例えば、ネットワークに接続するコンピュータを検査する仕組みを備えた検疫ネットワークでは、クライアントとアプリケーションサーバ等の間で、検証サーバが存在する。
具体的には、検証サーバは、クライアントの環境がウイルスに感染していないか、最新のセキュリティパッチが適用されているか等のチェックを行い、問題がなければアプリケーションサーバ等にアクセスするためのIP(Internet Protocol)アドレスの割り当て等を実施する。その後、クライアントはアプリケーションサーバにアクセスできるようになる。
【0003】
また、USB(Universal Serial Bus)を利用したシンクライアントシステムにおけるクライアントの認証手法としては、クライアントとシンクライアントサーバの間に認証サーバを設置し、認証サーバにてクライアントのソフトウエアの構成等の完全性を検証するという仕組みが存在する。(特許文献1)
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−175923
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載のプラットフォーム完全性検証システムでは、認証成功後、クライアントからシンクライアントサーバに直接アクセスすることになる。このアクセス方法を許す場合、認証成功したクライアントとは別の端末が、認証成功の情報だけを不正に取得してシンクライアントサーバにアクセスする余地が残る。
さらに、シンクライアントサーバに完全性検証サーバの機能を持たせると、完全性検証が済んでいないコンピュータが直接シンクライアントサーバにアクセスすることになるので、ウイルス感染などの可能性があり、セキュリティ上の問題がある。
【0006】
本発明は、前述した問題点に鑑みてなされたもので、その目的は、シンクライアントサーバに対する不正アクセスやウイルス感染等を完全に排除できるシンクライアントシステム等を提供することである。
【課題を解決するための手段】
【0007】
前述した目的を達成するために、第1の発明は、クライアントと、ネットワークを介して前記クライアントと接続され、前記クライアントの完全性検証を行う完全性検証サーバと、ネットワークを介して前記完全性検証サーバと接続されるシンクライアントサーバとから、構成されるシンクライアントシステムであって、前記クライアントは、シンクライアントオペレーティングシステムを起動する起動手段と、前記シンクライアントサーバとのコネクションを要求する要求手段と、前記シンクライアントサーバに対するリクエストを前記完全性検証サーバに送信し、前記シンクライアントサーバからのリプライを前記完全性検証サーバから受信する通信手段と、を具備し、前記完全性検証サーバは、前記クライアントの要求に応じて、前記クライアントと前記シンクライアントサーバとのコネクションを確立する接続手段と、前記シンクライアントサーバに対するリクエストを前記クライアントから受信して前記シンクライアントサーバに送信し、前記シンクライアントサーバからリプライを受信して前記クライアントに送信する通信手段と、を具備することを特徴とするシンクライアントシステムである。第1の発明に係るシンクライアントシステムを使用することによって、クライアントとシンクライアントサーバ間のデータを監視し、シンクライアントサーバに対する不正アクセスやウイルス感染等を完全に排除できる。
【0008】
前記完全性検証サーバは、完全性検証済の前記クライアントを特定する情報を記憶する記憶手段、をさらに具備することが望ましい。これにより、完全性検証がなされていないクライアントとシンクライアントサーバ間のデータ送受信を回避できる。
【0009】
前記記憶手段は、前記クライアントからのアクセス時刻を記憶することが望ましい。これにより、完全性検証サーバは、前回アクセス時刻から所定時間経過したコネクションを切断することによりリソースを有効活用することができる。
【0010】
前記完全性検証サーバが具備する前記記憶手段は、さらに、前記クライアントに対応する前記シンクライアントサーバのIPアドレスを記憶することが望ましい。これにより、前記クライアントはシンクライアントサーバのIPアドレスを知らなくても接続することができる。
【0011】
第2の発明は、ネットワークを介してクライアントと、シンクライアントサーバとに接続された完全性検証サーバであって、前記クライアントの要求に応じて、前記クライアントと前記シンクライアントサーバとのコネクションを確立する接続手段と、前記シンクライアントサーバに対するリクエストを前記クライアントから受信して前記シンクライアントサーバに送信し、前記シンクライアントサーバからリプライを受信して前記クライアントに送信する通信手段と、を具備することを特徴とする完全性検証サーバである。第2の発明に係る完全性検証サーバを使用することによって、クライアントとシンクライアントサーバ間のデータを監視し、シンクライアントサーバに対する不正アクセスやウイルス感染等を完全に排除できる。
【0012】
第3の発明は、コンピュータを第2の発明の完全性検証サーバとして機能させるプログラムである。第3の発明に係るプログラムをコンピュータにインストールすることによって、第2の発明の完全性検証サーバを得ることができる。
【0013】
第4の発明は、コンピュータを第2の発明の完全性検証サーバとして機能させるプログラムを記録したコンピュータ読み取り可能な記憶媒体である。第4の発明に係る記憶媒体に記録されたプログラムをコンピュータにインストールすることによって、第2の発明の完全性検証サーバを得ることができる。
【0014】
第5の発明は、クライアントと、ネットワークを介して前記クライアントと接続され、前記クライアントの完全性検証を行う完全性検証サーバと、ネットワークを介して前記完全性検証サーバと接続されるシンクライアントサーバによるシンクライアント通信中継方法であって、前記クライアントは、シンクライアントオペレーティングシステムを起動する起動ステップと、前記シンクライアントサーバとのコネクションを要求する要求ステップと、を実行し、前記完全性検証サーバは、前記クライアントの要求に応じて、前記クライアントと前記シンクライアントサーバとのコネクションを確立する接続ステップ、を実行し、前記クライアントは、前記シンクライアントサーバに対するリクエストを前記完全性検証サーバに送信し、前記シンクライアントサーバからのリプライを前記完全性検証サーバから受信する通信ステップ、を実行し、前記完全性検証サーバは、前記シンクライアントサーバに対するリクエストを前記クライアントから受信して前記シンクライアントサーバに送信し、前記シンクライアントサーバからリプライを受信して前記クライアントに送信する通信ステップ、を実行することを特徴とするシンクライアント通信中継方法である。第5の発明に係るシンクライアント通信中継方法によって、クライアントとシンクライアントサーバ間のデータを監視し、シンクライアントサーバに対する不正アクセスやウイルス感染等を完全に排除できる。
【発明の効果】
【0015】
本発明により、クライアントとシンクライアントサーバの間のデータを監視し、シンクライアントサーバに対する不正アクセスやウイルス感染等を完全に排除できるシンクライアントシステム等を提供することができる。
【図面の簡単な説明】
【0016】
【図1】本発明の実施形態に係るシンクライアントシステムの全体構成図
【図2】USBデバイス107のブロック図
【図3】クライアント101のブロック図
【図4】SIM(Subscriber Identity Module)109のブロック図
【図5】完全性検証サーバ103のブロック図
【図6】シンクライアントサーバ105のブロック図
【図7】シンクライアントOS207の起動処理を示すフローチャート
【図8】完全性検証処理を示すフローチャート
【図9】リモートアクセス処理を示すシーケンス図
【図10】認証テーブル517の一例を示す図
【図11】IPアドレステーブル519の一例を示す図
【発明を実施するための形態】
【0017】
以下図面に基づいて、本発明の実施形態を詳細に説明する。
【0018】
図1から図6を参照しながら、本発明の実施形態に係るシンクライアントシステムの構成について説明する。図1は、本発明の実施形態に係るシンクライアントシステムの全体構成図である。
【0019】
図1に示すように、本発明の実施形態に係るシンクライアントシステムは、クライアント101と、完全性検証サーバ103が、外部ネットワーク111(例えば、インターネット等)を介して通信可能に接続されている。また、完全性検証サーバ103と、シンクライアントサーバ105が、内部ネットワーク113(例えば、LAN(Local Area Network)等)を介して通信可能に接続されている。尚、内部ネットワーク113は、高セキュリティのネットワークであれば、LANでなくても良い。
【0020】
クライアント101は、携帯型記憶デバイスであるUSBデバイス107が接続される。USBデバイス107は、セキュリティトークンであるSIM(Subscriber Identity Module)109が装着される。
セキュリティトークンとは、社員証などで普及しているICカード、SIM、USIM(Universal Subscriber Identity Module)などの、データを秘匿に記憶でき、さらに、演算機能を備えた携帯可能なデバイスを意味する。
【0021】
図2は、USBデバイス107のブロック図である。
USBデバイス107は、USBドライバやフラッシュメモリを外部記憶装置としてコンピュータに認識させる機能を備えたドライバチップ203と、データを記憶するためのフラッシュメモリ205を備えている。
フラッシュメモリ205には、クライアント101上で動作するシンクライアントOS(Operating System)207のイメージファイルが記憶されている。シンクライアントOS207には、完全性検証処理を実行するためのプログラムである完全性検証クライアントアプリ209と、完全性検証クライアントアプリ209が利用する暗号鍵としてのMAC(Message Authentication Code)鍵211と、シンクライアントサーバ105へのリモートアクセス処理を実行するためのプログラムであるリモートアクセスクライアントアプリ213とが含まれている。
【0022】
図3は、クライアント101のブロック図である。
クライアント101は、CPU(Central Processing Unit)301と、クライアント101のメインメモリであるRAM(Random Access Memory)303と、BIOS(Basic Input/Output System)が実装されるROM(Read Only Memory)307と、USB機器と通信するためのUSBインターフェース309と、ネットワーク通信するためのネットワークインターフェース311と、補助記憶装置として大容量のデータ記憶装置313を備える。RAM303には、装着されるUSBデバイス107に記憶されているシンクライアントOS207のイメージファイルが展開される。
【0023】
データ記憶装置313には、シンクライアントシステムのクライアントとして利用されない時にブートされるクライアントOS315が記憶されている。
【0024】
図4は、SIM109のブロック図である。
図4に示すように、SIM109は、CPU401と、RAM403と、CPUを動作させるコンピュータプログラムが実装されるROM405と、ISO/7816規格のUART(Universal Asynchronous Receiver Transmitter)409と、データが記憶される電気的に書き換え可能なメモリとしてのEEPROM(Electronically Erasable and Programmable Read Only Memory)411を備える。
【0025】
EEPROM411には、完全性検証処理で利用される暗号鍵として、デジタル署名秘密鍵413とMAC鍵415が記憶されている。
また、ROM405には、MAC鍵415を用いてクライアント101が生成する構成証明メッセージのMACを検証し、構成証明メッセージの検証に成功すると、デジタル署名秘密鍵413を用いて、構成証明メッセージのデジタル署名を生成する手段となるデジタル署名コマンド407が実装されている。
【0026】
図5は、完全性検証サーバ103のブロック図である。
図5に示すように、完全性検証サーバ103は、CPU501と、RAM503と、ROM505と、ネットワーク通信するためのネットワークインターフェース507と、補助記憶装置として大容量のデータ記憶装置509(例えば、ハードディスク)を備え、データ記憶装置509には、SIM109に記憶されているデジタル署名秘密鍵413と対になるデジタル署名公開鍵511と、シンクライアントOS207のハッシュ値の期待値513と、完全性検証を行う完全性検証サーバアプリ515と、認証済のクライアント101を特定する情報を保持する認証テーブル517と、シンクライアントサーバ105のIPアドレスを保持するIPテーブル519を備える。
【0027】
完全性検証サーバ103は、クライアント101から、構成証明メッセージとデジタル署名を受信すると、データ記憶装置509に記憶されているデジタル署名公開鍵511を用いて、定められたデジタル署名検証アルゴリズムに従い、構成証明メッセージのデジタル署名を検証することで、デジタル署名を生成したSIM109の正当性を検証する。
【0028】
完全性検証サーバ103は、構成証明メッセージのデジタル署名の検証に成功すると、シンクライアントOS207のハッシュ値の期待値513を参照し、構成証明メッセージに含まれるハッシュ値が正しい内容であるか確認することで、構成証明メッセージの正当性を検証する。
【0029】
なお、構成証明メッセージが乱数Rc及び乱数Rsを含んでいるとき、完全性検証サーバ103は、シンクライアントOS207のハッシュ値の期待値513に加え、RAM503に記憶している乱数Rc及び乱数Rsを参照して、構成証明メッセージの正当性を検証する。
【0030】
図6は、シンクライアントサーバ105のブロック図である。
シンクライアントサーバ105は、CPU601と、RAM603と、ROM605と、ネットワークインターフェース607と、データ記憶装置609を備える。
【0031】
続いて、図7から図11を参照しながら、本発明の実施の形態に係るシンクライアントシステムにおける処理の詳細について説明する。
図7は、シンクライアントOS207の起動処理を示すフローチャートである。
【0032】
USBデバイス107がクライアント101に装着されると、クライアント101のCPU301は、USBインターフェース309を利用して、USBデバイス107とデータをやり取りすることで、クライアント101に装着されたUSBデバイス107をマウントする(S701)。
【0033】
USBデバイス107をマウントすると、クライアント101のCPU301は、シンクライアントOS207のイメージファイルの読み出しをUSBデバイス107に要求し(S703)、USBデバイス107のドライバチップ203は、フラッシュメモリ205に記憶されたシンクライアントOS207のイメージファイルをクライアント101に送信する(S705)。
【0034】
USBデバイス107からシンクライアントOS207のイメージファイルが送信されると、クライアント101のCPU301は、USBデバイス107から受信したシンクライアントOS207のイメージファイルをRAM303に展開し、シンクライアントOS207を起動させる(S707)。
【0035】
シンクライアントOS207が起動すると、続いて、クライアント101のCPU301は、完全性検証クライアントアプリ209を起動させる(S709)。
【0036】
図8は、完全性検証処理を示すフローチャートである。
【0037】
クライアント101のCPU301は、完全性検証クライアントアプリ209を起動させ、乱数Rcを生成し、外部ネットワーク111を介して、乱数Rcを含む乱数生成要求メッセージを完全性検証サーバ103に送信する(S801)。なお、クライアント101のCPU301は、完全性検証処理が終了するまで、生成した乱数Rcをクライアント101のRAM303に保持しておく。
【0038】
完全性検証サーバ103のCPU501は、クライアント101から乱数Rcを受信すると、乱数Rsを生成し、乱数Rsをクライアント101に送信するとともに(S803)、完全性検証処理が終了するまで乱数Rc及び乱数RsをRAM503に保持しておく。
【0039】
クライアント101のCPU301は、完全性検証サーバ103から乱数Rsを受信すると、乱数RsをRAM303に保持した後、RAM303に展開されたシンクライアントOS207のイメージファイルすべてから、定められたアルゴリズムに従い、ハッシュ値を演算し(S805)、ハッシュ値、乱数Rc、乱数Rsが結合された構成証明メッセージを生成する(S807)。
【0040】
クライアント101のCPU301は、構成証明メッセージを生成すると、シンクライアントOS207に含まれているMAC鍵211を用い、定められた手順に従い、構成証明メッセージのMACを演算する。
クライアント101のCPU301は、構成証明メッセージのMACを演算すると、構成証明メッセージ及びMACをコマンドメッセージのデータに含めて、デジタル署名コマンドのコマンドメッセージをSIM109に送信することで、構成証明メッセージのデジタル署名の生成をSIM109に要求する(S809)。
【0041】
SIM109のCPU401は、構成証明メッセージおよびMACを含んだデジタル署名コマンド407のコマンドメッセージを受信すると、デジタル署名コマンド407を実行し、EEPROM411に記憶されているMAC鍵415を用いて、クライアント101と同じアルゴリズムで構成証明メッセージからMACを演算し、クライアント101から送信されたMACと演算したMACとが同一であるか検証する(S811)。
【0042】
SIM109のCPU401は、構成証明メッセージのMACの検証に成功もしくは失敗で処理を分岐させ(S813)、成功した時は、構成証明メッセージのデジタル署名を生成する処理を実行し(S815)、失敗した時は、MACの検証に失敗したことを示すエラーメッセージをクライアント101に返信して完全性検証処理を終了する。
【0043】
SIM109のCPU401は、定められたデジタル署名生成アルゴリズムに従い、構成証明メッセージのデジタル署名を生成し、生成したデジタル署名をクライアント101に返信する。
クライアント101のCPU301は、SIM109から、構成証明メッセージのデジタル署名を受信すると、外部ネットワーク111を介して構成証明メッセージとデジタル署名を完全性検証サーバ103に送信する(S817)。
【0044】
完全性検証サーバ103のCPU501は、構成証明メッセージとデジタル署名を受信すると、完全性検証サーバ103のデータ記憶装置509が記憶しているデジタル署名公開鍵511を用いて、定められたアルゴリズムに従い、構成証明メッセージのデジタル署名を検証することで、デジタル署名を生成したSIM109の正当性を検証する(S819)。
【0045】
完全性検証サーバ103のCPU501は、構成証明メッセージのデジタル署名の検証に成功すると、RAM503に保持されているRcおよびRs、ならびにデータ記憶装置509が記憶しているハッシュ値の期待値513を参照し、構成証明メッセージに含まれるRc、Rs及びハッシュ値が正しい値であるか確認することで構成証明メッセージの正当性を検証する。
【0046】
完全性検証サーバ103のCPU501は、構成証明メッセージの検証に成功もしくは失敗で処理を分岐し(S821)、成功した時は、完全性検証サーバ103のCPU501は、クライアント101のCPU301にシンクライアントサーバ105へのアクセスを許可する(S823)。失敗した時は、クライアント101からシンクライアントサーバ105への許可することなく、完全性検証処理を終了する。
【0047】
図9は、リモートアクセス処理を示すシーケンス図である。
以下では、便宜上、リモートアクセスアプリ213と完全性検証クライアントアプリ209を処理の主体として記述するが、現実に処理を行うハードウエアは、クライアント101のCPU301である。
【0048】
クライアント101の完全性検証クライアントアプリ209は、完全性検証サーバ103に対し、モード変更の要求を行う(S901)。完全性検証サーバ103のCPU501は、完全性検証モードから転送モードに切り替え、切り替え完了を完全性検証クライアントアプリ209に通知する(S903)。完全性検証クライアントアプリ209は、リモートアクセスクライアントアプリ213を起動する(S905)。リモートアクセスクライアントアプリ213は、起動後、完全性検証クライアントアプリ209にシンクライアントサーバ105とのコネクション確立処理を依頼する(S907)。
【0049】
ここで、図10を用いてコネクション確立処理について説明する。
図10は認証テーブル517の一例を示す。
完全性検証サーバ103のCPU501は、データ記憶装置509が記憶する認証テーブル517を用いて、コネクションの確立を行う。
【0050】
図10に示すように、認証テーブル517には、コネクションID1001と、前回アクセス時刻1003とが紐づけして記憶され、完全性検証サーバ103のデータ記憶装置509に保持される。完全性検証サーバ103のCPU501は、クライアント101の認証処理成功後に、コネクションID1001を、例えば、ユーザIDと乱数とを組み合わせて生成する。ユーザIDは、各クライアント101が持つユニークなIDで、例えば、SIM109内のユニークなIDでもよい。コネクションID1001は、完全性検証クライアントアプリ209から完全性検証サーバ103へのアクセス時に常に付与される。
完全性検証サーバ103のCPU501は、クライアント101の認証処理成功後に、完全性検証クライアントアプリ209にシンクライアントサーバ105へのアクセス許可を通知する際に、コネクションID1001を送信する。
完全性検証クライアントアプリ209は、以降の完全性検証サーバ103へのアクセス時に、コネクションID1001を付与する。
【0051】
前回アクセス時刻1003は、完全性検証クライアントアプリ209からのアクセス時に完全性検証サーバ103のCPU501によって取得され、アクセスしてきたクライアント101のコネクションID1001と紐づけされ認証テーブル517に保持される。
【0052】
完全性検証クライアントアプリ209は、シンクライアントサーバ105とのコネクション確立処理を依頼されると、完全性検証サーバ103に対し、シンクライアントサーバ105とのコネクション確立要求とコネクションID1001を送信する(S909)。完全性検証サーバ103のCPU501は、認証テーブル517を参照して、送信されたコネクションID1001の有無を確認し、一致するコネクションID1001が認証テーブル517にあれば、シンクライアントサーバ105に対し、コネクション確立の要求を行う(S911)。
【0053】
また、完全性検証サーバ103のCPU501は、シンクライアントサーバ105のIPアドレスをIPテーブル519に保持することにより、シンクライアントサーバ105に接続することができる。すなわち、クライアント101がシンクライアントサーバ105のIPアドレスを知らなくても、クライアント101は、シンクライアントサーバ105に接続することが可能となる。
図11にIPテーブル519の一例を示す。
【0054】
図11に示すように、IPテーブル519には、ユーザID1101と、シンクライアントサーバ105のIPアドレス1103とが紐づけして記憶され、完全性検証サーバ103のデータ記憶装置509に保持される。
完全性検証サーバ103のCPU501は、完全性検証クライアントアプリ209からのコネクション要求受信時、IPテーブル519を参照して、アクセスしてきたクライアント101のユーザID1101に紐づけされたIPアドレスを持つシンクライアントサーバ105にコネクション要求する。
【0055】
このとき、シンクライアントサーバ105のCPU601は、完全性検証サーバ103からのアクセスのみを受け付ける。すなわち、シンクライアントサーバ105のCPU601は、完全性検証サーバ103のIPアドレスを保持しており、そのIPアドレス以外からのアクセスは受け付けない。
【0056】
シンクライアントサーバ105のCPU601は、完全性検証サーバ103のIPアドレスからのアクセスであると判断した場合、完全性検証サーバ103とのコネクションを確立し、確立完了を完全性検証サーバ103に通知する(S913)。完全性検証サーバ103のCPU501は、完全性検証クライアントアプリ209にシンクライアントサーバ105とのコネクション確立を通知し(S915)、これ以降、完全性検証クライアントアプリ209は、リモートアクセスクライアントアプリ213からのリクエストを受け付ける。
【0057】
リモートアクセスクライアントアプリ213は、リモートアクセスのリクエストを完全性検証クライアントアプリ209に送信し、完全性検証クライアントアプリ209は、リクエストとコネクションID1001を完全性検証サーバ103に転送する(S919)。完全性検証サーバ103のCPU501は、認証テーブル517を参照して、受信したコネクションID1001が認証テーブル517に保持されているか確認する。保持されていれば、完全性検証サーバ103のCPU501は、認証済のクライアント101からのアクセスと判断して、当該コネクションID1001の前回アクセス時刻1003を更新し、IPテーブル519より当該クライアント101のユーザID1101に紐づけされたシンクライアントサーバ106のIPアドレス1103を取得し、リモートアクセスリクエストをシンクライアントサーバ105に転送する(S921)。受信したコネクションID1001が、認証テーブル517に保持されていなければ、完全性検証サーバ103のCPU501は、コネクションを確立せず、以降のリモートアクセス処理を行わない。
【0058】
シンクライアントサーバ105のCPU601は、リクエストに対応して完全性検証サーバ103にリプライ情報を送信する(S923)。リプライ情報とは、例えば、画面転送型シンクライアントシステムの場合、ビットマップディスプレイ情報の差分データのことである。
【0059】
完全性検証サーバ103のCPU501は、リプライ情報を完全性検証クライアントアプリ209に転送し(S924)、完全性検証クライアントアプリ209は、リモートアクセスクライアントアプリ213にリプライ情報を転送する(S925)。このように、リモートアクセスクライアントアプリ213と、シンクライアントサーバ105は直接通信するのではなく、完全性検証クライアントアプリ209と完全性検証サーバ103を中継して通信を行う。リモートアクセスクライアントアプリ213は、完全性検証クライアントアプリ209から受け取ったリプライ情報をもとに、クライアント101の画面表示を更新する。
【0060】
リモートアクセスクライアントアプリ213は、通信を終了する場合には、終了を完全性検証クライアントアプリ209に送信し(S927)、完全性検証クライアントアプリ209は、完全性検証サーバ103に終了を通知する(S929)。完全性検証サーバ103のCPU501は、認証テーブル517から当該コネクションID1001を削除するとともに、シンクライアントサーバ105にコネクション切断を通知し(S931)、これ以降、リモートアクセスクライアントアプリ213とシンクライアントサーバ105は通信を行うことができない。
【0061】
このように、認証処理完了後も、完全性検証サーバ103とシンクライアントサーバ105がコネクションを確立し続けるので、クライアント101とシンクライアントサーバ105との間のデータの送受信情報を監視することができる。
【0062】
また、完全性検証サーバ103のCPU501は、認証テーブル517を用いて、前回アクセス時刻1003から所定時間を経過したコネクションを切断する。このとき、完全性検証サーバ103のCPU501は、認証テーブル517から、前回アクセス時刻1003から所定時間を経過したコネクションID1001を削除する。
これにより、コネクションを接続しているが使用していないアイドル状態の場合、完全性検証サーバ103はコネクションを切断することができる。また、例えば、シンクライアントサーバ105の同時接続クライアント数が限定されている場合、コネクションはあるが使用されていないものは完全性検証サーバ103によって切断されるのでリソースを有効に活用できる。
【0063】
完全性検証サーバ103のCPU501は、例えば、クライアント101がアクセスするシンクライアントサーバ105が固定されている場合、予め生成されたIPテーブル519を保持しておく。一方、クライアント101がアクセスするシンクライアントサーバ105が固定されていない場合、完全性検証サーバ103のCPU501は、クライアント101からのアクセス時に、対応するシンクライアントサーバ105を選定してIPアドレス1103とクライアント101のユーザIDを紐づけしてIPテーブル519に保持しても良い。
【0064】
以上説明したように、本発明の実施の形態では、完全性検証サーバが完全性検証処理後も、クライアントとシンクライアントサーバとの間でコネクションを確立し続けて、データの送受信を監視する。これによって、シンクライアントサーバに対する不正アクセス、およびウイルス感染を完全に排除できる。
また、クライアントとシンクライアントサーバが直接接続する場合には、シンクライアントサーバ側の電源が落ちたり、ネットワークケーブルが抜けたりといったトラブルがあると、クライアントに対して特にメッセージもなく突然接続が終了してしまう可能性がある。しかし、本発明の実施形態のように、完全性検証サーバを経由することで、シンクライアントサーバ側にトラブルがあった場合でも、クライアントに完全性検証サーバがメッセージを送信することができる。
また、本発明の実施形態では、完全性検証クライアントアプリ209とリモートアクセスクライアントアプリ213を別々のアプリケーションとしたが、一つのアプリケーションとしてクライアント101に保持しても良い。
【0065】
以上、添付図面を参照しながら、本発明に係るシンクライアントシステムの好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【0066】
101………クライアント
103………完全性検証サーバ
105………シンクライアントサーバ
107………USBデバイス
109………SIM
【特許請求の範囲】
【請求項1】
クライアントと、ネットワークを介して前記クライアントと接続され、前記クライアントの完全性検証を行う完全性検証サーバと、ネットワークを介して前記完全性検証サーバと接続されるシンクライアントサーバとから、構成されるシンクライアントシステムであって、
前記クライアントは、
シンクライアントオペレーティングシステムを起動する起動手段と、
前記シンクライアントサーバとのコネクションを要求する要求手段と、
前記シンクライアントサーバに対するリクエストを前記完全性検証サーバに送信し、前記シンクライアントサーバからのリプライを前記完全性検証サーバから受信する通信手段と、
を具備し、
前記完全性検証サーバは、
前記クライアントの要求に応じて、前記クライアントと前記シンクライアントサーバとのコネクションを確立する接続手段と、
前記シンクライアントサーバに対するリクエストを前記クライアントから受信して前記シンクライアントサーバに送信し、前記シンクライアントサーバからリプライを受信して前記クライアントに送信する通信手段と、
を具備することを特徴とするシンクライアントシステム。
【請求項2】
前記完全性検証サーバは、完全性検証済の前記クライアントを特定する情報を記憶する記憶手段、
をさらに具備することを特徴とする請求項1に記載のシンクライアントシステム。
【請求項3】
前記記憶手段は、前記クライアントからのアクセス時刻を記憶することを特徴とする請求項1に記載のシンクライアントシステム。
【請求項4】
前記完全性検証サーバが具備する前記記憶手段は、さらに、前記クライアントに対応する前記シンクライアントサーバのIPアドレスを記憶することを特徴とする請求項1に記載のシンクライアントシステム。
【請求項5】
ネットワークを介してクライアントと、シンクライアントサーバとに接続された完全性検証サーバであって、
前記クライアントの要求に応じて、前記クライアントと前記シンクライアントサーバとのコネクションを確立する接続手段と、
前記シンクライアントサーバに対するリクエストを前記クライアントから受信して前記シンクライアントサーバに送信し、前記シンクライアントサーバからリプライを受信して前記クライアントに送信する通信手段と、
を具備することを特徴とする完全性検証サーバ。
【請求項6】
コンピュータを請求項5に記載のサーバとして機能させるプログラム。
【請求項7】
コンピュータを請求項5に記載のサーバとして機能させるプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【請求項8】
クライアントと、ネットワークを介して前記クライアントと接続され、前記クライアントの完全性検証を行う完全性検証サーバと、ネットワークを介して前記完全性検証サーバと接続されるシンクライアントサーバによるシンクライアント通信中継方法であって、
前記クライアントは、
シンクライアントオペレーティングシステムを起動する起動ステップと、
前記シンクライアントサーバとのコネクションを要求する要求ステップと、
を実行し、
前記完全性検証サーバは、
前記クライアントの要求に応じて、前記クライアントと前記シンクライアントサーバとのコネクションを確立する接続ステップ、
を実行し、
前記クライアントは、
前記シンクライアントサーバに対するリクエストを前記完全性検証サーバに送信し、前記シンクライアントサーバからのリプライを前記完全性検証サーバから受信する通信ステップ、
を実行し、
前記完全性検証サーバは、
前記シンクライアントサーバに対するリクエストを前記クライアントから受信して前記シンクライアントサーバに送信し、前記シンクライアントサーバからリプライを受信して前記クライアントに送信する通信ステップ、
を実行することを特徴とするシンクライアント通信中継方法。
【請求項1】
クライアントと、ネットワークを介して前記クライアントと接続され、前記クライアントの完全性検証を行う完全性検証サーバと、ネットワークを介して前記完全性検証サーバと接続されるシンクライアントサーバとから、構成されるシンクライアントシステムであって、
前記クライアントは、
シンクライアントオペレーティングシステムを起動する起動手段と、
前記シンクライアントサーバとのコネクションを要求する要求手段と、
前記シンクライアントサーバに対するリクエストを前記完全性検証サーバに送信し、前記シンクライアントサーバからのリプライを前記完全性検証サーバから受信する通信手段と、
を具備し、
前記完全性検証サーバは、
前記クライアントの要求に応じて、前記クライアントと前記シンクライアントサーバとのコネクションを確立する接続手段と、
前記シンクライアントサーバに対するリクエストを前記クライアントから受信して前記シンクライアントサーバに送信し、前記シンクライアントサーバからリプライを受信して前記クライアントに送信する通信手段と、
を具備することを特徴とするシンクライアントシステム。
【請求項2】
前記完全性検証サーバは、完全性検証済の前記クライアントを特定する情報を記憶する記憶手段、
をさらに具備することを特徴とする請求項1に記載のシンクライアントシステム。
【請求項3】
前記記憶手段は、前記クライアントからのアクセス時刻を記憶することを特徴とする請求項1に記載のシンクライアントシステム。
【請求項4】
前記完全性検証サーバが具備する前記記憶手段は、さらに、前記クライアントに対応する前記シンクライアントサーバのIPアドレスを記憶することを特徴とする請求項1に記載のシンクライアントシステム。
【請求項5】
ネットワークを介してクライアントと、シンクライアントサーバとに接続された完全性検証サーバであって、
前記クライアントの要求に応じて、前記クライアントと前記シンクライアントサーバとのコネクションを確立する接続手段と、
前記シンクライアントサーバに対するリクエストを前記クライアントから受信して前記シンクライアントサーバに送信し、前記シンクライアントサーバからリプライを受信して前記クライアントに送信する通信手段と、
を具備することを特徴とする完全性検証サーバ。
【請求項6】
コンピュータを請求項5に記載のサーバとして機能させるプログラム。
【請求項7】
コンピュータを請求項5に記載のサーバとして機能させるプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【請求項8】
クライアントと、ネットワークを介して前記クライアントと接続され、前記クライアントの完全性検証を行う完全性検証サーバと、ネットワークを介して前記完全性検証サーバと接続されるシンクライアントサーバによるシンクライアント通信中継方法であって、
前記クライアントは、
シンクライアントオペレーティングシステムを起動する起動ステップと、
前記シンクライアントサーバとのコネクションを要求する要求ステップと、
を実行し、
前記完全性検証サーバは、
前記クライアントの要求に応じて、前記クライアントと前記シンクライアントサーバとのコネクションを確立する接続ステップ、
を実行し、
前記クライアントは、
前記シンクライアントサーバに対するリクエストを前記完全性検証サーバに送信し、前記シンクライアントサーバからのリプライを前記完全性検証サーバから受信する通信ステップ、
を実行し、
前記完全性検証サーバは、
前記シンクライアントサーバに対するリクエストを前記クライアントから受信して前記シンクライアントサーバに送信し、前記シンクライアントサーバからリプライを受信して前記クライアントに送信する通信ステップ、
を実行することを特徴とするシンクライアント通信中継方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2011−197912(P2011−197912A)
【公開日】平成23年10月6日(2011.10.6)
【国際特許分類】
【出願番号】特願2010−62813(P2010−62813)
【出願日】平成22年3月18日(2010.3.18)
【出願人】(000002897)大日本印刷株式会社 (14,506)
【Fターム(参考)】
【公開日】平成23年10月6日(2011.10.6)
【国際特許分類】
【出願日】平成22年3月18日(2010.3.18)
【出願人】(000002897)大日本印刷株式会社 (14,506)
【Fターム(参考)】
[ Back to top ]