説明

シンクライアントシステム、シンクライアントOSの検証方法

【課題】実行中にシンクライアントOSの改ざんの検出を可能とするシンクライアントシステム等を提供する。
【解決手段】検証サーバ5は生成した乱数、開始アドレス、終了アドレスをクライアント端末9に送信する。クライアント端末9は、開始アドレス、終了アドレスの範囲のシンクライアントOSのハッシュ値を計算し、ICカード13はセッション鍵でハッシュ値を暗号化して署名結果を生成し、クライアント端末9に送信する。クライアント端末9は検証サーバ5に署名結果を送信し、検証サーバ5はシンクライアントOSイメージの開始アドレス、終了アドレスの範囲のハッシュ値を計算し、セッション鍵で暗号化して署名を作成し、クライアント端末9から受信した署名結果と一致するか判定する。一致する場合、クライアント端末9とシンクライアントサーバの間の通信を継続するが、一致しない場合は通信を切断する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザの認証情報を格納する認証デバイスおよびシンクライアントOSのイメージを記憶する外部記憶装置を装着した端末と、ネットワークを介して接続されるサーバからなるシンクライアントシステム等に関する。
【背景技術】
【0002】
近年、企業等において、不揮発性の記憶装置(ハードディスクドライブなど)を持たない専用端末を社員等に配布し、アプリケーション、ファイル等のリソースをサーバ側において一元管理することによって、情報漏洩を防止するシンクライアントシステムが普及してきている。
【0003】
また、専用端末に代えて、シンクライアントシステム専用のOS(Operating System)を格納したUSB(Universal Serial Bus)メモリのような外部記憶装置を汎用のコンピュータに装着し、シンクライアントシステム専用のOSを起動させることによって、専用端末と同様の環境を実現することも行われている。この手法では、汎用のコンピュータを用意すれば良いことから、コストを抑えることができる。但し、この手法では、クライアント側の端末から社内ネットワークへの不正アクセスや情報漏えいを防止するため、シンクライアントOSが不正に改ざんされていないことが重要となる。
【0004】
特許文献1には、USBメモリに記憶したシンクライアントOSのイメージのハッシュ値を含む構成証明書メッセージを作成し、サーバによって構成証明書メッセージの検証が成功したときのみ、クライアント端末に対して社内ネットワークへのアクセスを許可する手法が開示されている。
【0005】
【特許文献1】特開2009−175923号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、特許文献1に記載のシンクライアントシステムでは、シンクライアントOSの完全性を検証するものであり、OSの起動時やネットワークの接続時のような使用開始時に一度だけ行うことを前提としている。従って、検証後に改ざんされることを防止することはできない。例えば、汎用コンピュータのRAM(揮発性メモリ)に外部からアクセスできるエミュレータを利用し、実行中(=シンクライアントOSがRAM(揮発性メモリ)に展開されている間)にシンクライアントOSが改ざんされる恐れがある。このような改ざんを防ぐ為、シンクライアントOSを実行中に、特許文献1に開示されている検証を繰り返し行い、改ざんを発見したときにネットワークを遮断するということも考えられる。しかし、シンクライアントOS全体を対象として特許文献1に開示されている検証を行うと、処理時間がかかるため、実用的ではない。
【0007】
本発明は、このような問題に鑑みてなされたもので、その目的とするところは、実行中にシンクライアントOSの改ざんの検出を可能とするシンクライアントシステム等を提供することである。
【課題を解決するための手段】
【0008】
前述した目的を達成するために、第1の発明は、ユーザの認証情報を格納する認証デバイスおよびシンクライアントOSのイメージを記憶する外部記憶装置を装着可能な端末と、前記端末とネットワークを介して接続されるサーバとからなるシンクライアントシステムであって、前記端末は、前記外部記憶装置から前記シンクライアントOSのイメージを前記端末の揮発性メモリに展開し、前記シンクライアントOSを起動する起動手段と、前記端末の揮発性メモリに展開されている前記シンクライアントOSの一部に基づいて第1検証値を計算する第1計算手段と、を具備し、前記サーバは、前記シンクライアントOSのイメージを保持する保持手段と、前記保持手段に保持される前記シンクライアントOSのイメージの一部に基づいて第2検証値を計算する第2計算手段と、前記第1検証値に基づく値と前記第2検証値に基づく値を比較し、一致しない場合、前記端末との接続を切断する検証手段と、を具備することを特徴とするシンクライアントシステムである。
第1の発明によって、実行中にシンクライアントOSの改ざんを検出することができる。
【0009】
前記第1計算手段は、前記第1検証値として、前記端末の揮発性メモリに展開されている前記シンクライアントOSの一部のハッシュ値を計算し、前記第2計算手段は、前記第2検証値として、前記保持手段に保持される前記シンクライアントOSの一部のハッシュ値を計算することが望ましい。
これによって、演算時間を短縮し、シンクライアントOSが実行する他の処理への影響を低減することができる。
【0010】
また、前記第1計算手段は、前記第1検証値として、前記サーバによって無作為に指定される開始アドレス、終了アドレスの範囲に基づいて、前記端末の揮発性メモリに展開されている前記シンクライアントOSのハッシュ値を計算し、前記第2計算手段は、前記第2検証値として、前記サーバによって無作為に指定される開始アドレス、終了アドレスの範囲に基づいて、前記保持手段に保持される前記シンクライアントOSの一部のハッシュ値を計算することが望ましい。
これによって、シンクライアントOSのイメージのほぼ全体を順次検証でき、シンクライアントOSへの改ざんを早期に発見することが可能となる。更に、ハッシュ値の傍受による悪用も防止することができる。
【0011】
また、前記認証デバイスは、前記第1検証値に署名して第1署名結果を生成する第1署名手段、を具備し、前記サーバは、前記第2検証値に署名して第2署名結果を生成する第2署名手段、を更に具備し、前記検証手段は、前記第1署名結果と前記第2署名結果を比較し、一致しない場合、前記端末との接続を切断することが望ましい。
これによって、耐タンパ性がある認証デバイスを用いれば、信頼性を更に向上することができる。
【0012】
第2の発明は、ユーザの認証情報を格納する認証デバイスおよびシンクライアントOSのイメージを記憶する外部記憶装置を装着可能な端末と、前記端末とネットワークを介して接続され、前記シンクライアントOSのイメージを保持する保持手段を具備するサーバとからなるシンクライアントシステムにおけるシンクライアントOSの検証方法であって、前記端末が、前記外部記憶装置から前記シンクライアントOSのイメージを前記端末の揮発性メモリに展開し、前記シンクライアントOSを起動する起動ステップと、前記端末が、前記端末の揮発性メモリに展開されている前記シンクライアントOSの一部に基づいて第1検証値を計算する第1計算ステップと、前記サーバが、前記保持手段に保持される前記シンクライアントOSのイメージの一部に基づいて第2検証値を計算する第2計算ステップと、前記サーバが、前記第1検証値に基づく値と前記第2検証値に基づく値を比較し、一致しない場合、前記端末との接続を切断する検証ステップと、を含むことを特徴とするシンクライアントOSの検証方法である。
第2の発明によって、実行中にシンクライアントOSの改ざんを検出することができる。
【発明の効果】
【0013】
本発明により、実行中にシンクライアントOSの改ざんの検出を可能とするシンクライアントシステム等を提供することができる。
【図面の簡単な説明】
【0014】
【図1】シンクライアントシステム1の概要を示す図
【図2】シンクライアントサーバ3、検証サーバ5、クライアント端末9を実現するコンピュータのハードウエア構成図
【図3】シンクライアントサーバ3の記憶装置24の記憶内容を示す図
【図4】検証サーバ5の記憶装置24の記憶内容を示す図
【図5】ICカード13の構成を示す図
【図6】USBメモリ15の構成を示す図
【図7】ICカード13の処理の流れを示すフローチャート
【図8】シンクライアントシステム1の処理の流れを示すフローチャート
【発明を実施するための形態】
【0015】
本発明の実施の形態では、ユーザの認証情報を格納する認証デバイスをICカード、シンクライアントOSのイメージを記憶する外部記憶装置をUSBメモリとして説明する。ユーザは、通常、ユーザごとに配布されるICカードを用いてシンクライアントシステムを利用する。
以下、図面に基づいて、本発明の実施形態を詳細に説明する。
【0016】
図1は、シンクライアントシステム1の概要を示す図である。
シンクライアントシステム1は、シンクライアントサーバ3、検証サーバ5、クライアント端末9等から構成される。シンクライアントサーバ3は、検証サーバ5、ファイアウォール7、ネットワーク17(インターネット等)を介してクライアント端末9とデータの送受信を行う。クライアント端末9には、ICカードリーダライタ(R/W)11とUSBメモリ15が装着される。
【0017】
シンクライアントサーバ3は、企業等の社内ネットワーク内に設置される。シンクライアントサーバ3は、クライアント端末9によって利用されるアプリケーション、ファイル等を一元管理する。シンクライアントサーバ3は、複数存在してもよい。また、シンクライアントサーバ3は、セキュリティを確保できれば社外に設置されても良い。
【0018】
検証サーバ5は、ファイアウォール7、通信ゲートウエイとなるプロキシサーバ(図示しない)や、外部公開向けのサーバ(図示しない)、クライアント端末9からのSSL(Secure Socekts Layer)−VPN(Virtual Private Network)接続要求を処理するゲートウエイSSL−VPNゲートウエイ(図示しない)等を介して配置される。検証サーバ5は、クライアント端末9とシンクライアントサーバ3間の通信パケットを仲介し、クライアント端末9において実行されているシンクライアントOSの検証を行う。クライアント端末9は、シンクライアントサーバ3に対して直接アクセスすることはできない。
【0019】
クライアント端末9は、社内ネットワークの内部または外部において利用される。クライアント端末9は、画面の出力表示やキーボード、マウスのような入力操作等の最低限の機能を有するパーソナルコンピュータのような端末であり、ハードディスク等の記憶装置を保持してもよいし、保持しなくてもよい。クライアント端末9のBIOS(Basic Input/Output System)は、電源投入時にUSBメモリ15からの起動を最優先するように設定されている。
【0020】
USBメモリ15は、クライアント端末9においてシンクライアント環境を実現するための起動プログラム、シンクライアント用ファイルシステムを格納している。起動プログラムは、シンクライアント用ファイルシステムをクライアント端末9上にロード、実行するために必要となるプログラム、データの総称であり、ブートローダ、カーネル、初期RAM(Random Access Memory)イメージ等を含む。
ユーザがクライアント端末9にUSBメモリ15を装着してクライアント端末9に電源を入れると、USBメモリ15内に格納されているシンクライアント用ファイルシステムがクライアント端末9のRAM(揮発性メモリ)上にロードされ、シンクライアントOSの起動プロセスが開始され、シンクライアント環境が実現される。
【0021】
ICカードR/W11は、ICカード13の読み出し、書き込みを行う。尚、ICカードR/W11は必須ではない。ICカードR/W11に代えて、ICカード13が挿入可能であり、USBメモリ15の機能を備えた一体型のUSBデバイスを使用してもよい。
ICカード13は、シンクライアントシステム1のセキュリティ向上のために利用する。ICカード13は、社員証のようなカードタイプでもよいし、SIM(Subscriber Identity Module)カードタイプでもよい。
シンクライアントOSの起動直後、あるいは、シンクライアントOSの実行中、クライアント端末9はICカードR/W11に挿入されているICカード13と通信し、シンクライアントOSの改ざん有無の検証処理を実行する。
【0022】
ここで、シンクライアントシステム1の処理の概要を説明する。
検証サーバ5は、クライアント端末9におけるシンクライアントOSの実行中、定期的にクライアント端末9に対して、クライアント端末9のRAM(揮発性メモリ)に展開されているシンクライアントOSの一部のハッシュ値の計算を要求する。また、検証サーバ5は、自らの記憶装置に保持しているクライアントOSのイメージからハッシュ値を計算し、クライアント端末9から受信するハッシュ値と比較する。
ハッシュ値が一致した場合、シンクライアントOSは改ざんされていないと判定し、クライアント端末9、シンクライアントサーバ3間の通信処理を続ける。
一方、ハッシュ値が一致しない場合、シンクライアントOSが改ざんされたと判定し、クライアント端末9、シンクライアントサーバ3間の通信を切断する。
【0023】
検証サーバ5は、シンクライアントOS全体ではなく、例えば、ハッシュ値を計算する開始、終了アドレスを指定し、シンクライアントOSの一部のハッシュ値を計算するようにしても良い。これによって、演算時間を短縮し、他の処理に影響を与えないようにする。
【0024】
また、検証サーバ5は、乱数を用いてハッシュ値を計算する範囲を毎回変更し、定期的にシンクライアントOSの検証を行うようにしても良い。これによって、シンクライアントOSのイメージの各部を順次検証すること可能となり、シンクライアントOSへの改ざんを早期に発見することが可能となる。更に、ハッシュ値傍受による悪用を防止することもできる。
【0025】
図2は、シンクライアントサーバ3、検証サーバ5、クライアント端末9を実現するコンピュータのハードウエア構成図である。尚、図2のハードウエア構成は一例であり、用途、目的に応じて様々な構成を採ることが可能である。
【0026】
図2に示すように、コンピュータは、CPU21、ROM(Read Only Memory)22、RAM23、記憶装置24、メディア入出力部25、入力部26、印刷部27、表示部28、通信部29がバス30を介して接続される。
【0027】
CPU21は、ROM22、記憶装置24、記録媒体等に格納されるプログラムをRAM23上のワークメモリ領域に呼び出して実行し、バス30を介して接続された各装置を駆動制御し、コンピュータが行う処理を実現する。
ROM22は、不揮発性メモリであり、コンピュータのブートプログラムやBIOS等のプログラム、データ等を恒久的に保持している。
RAM23は、揮発性メモリであり、ROM22、記憶装置24、記録媒体等からロードしたプログラム、データ等を一時的に保持するとともに、CPU21が各種処理を行う為に使用するワークエリアを備える。
【0028】
記憶装置24は、HDD(ハードディスクドライブ)であり、CPU21が実行するプログラム、プログラム実行に必要なデータ、OS等が格納される。プログラムに関しては、OSに相当する制御プログラムや、シンクライアントシステム1において実行されるアプリケーションプログラム、ファイル等が格納されている。
これらの各プログラムコードは、CPU21により必要に応じて読み出されてRAM23に移され、各種の手段として実行される。
【0029】
メディア入出力部25(ドライブ装置)は、記録媒体のデータの入出力を行い、例えば、フロッピー(登録商標)ディスクドライブ、CDドライブ(−ROM、−R、−RW等)、DVDドライブ(−ROM、−R、−RW等)、MOドライブ等のメディア入出力装置を有する。
入力部26は、データの入力を行い、例えば、キーボード、マウス等のポインティングデバイス、テンキー等の入力装置を有する。
入力部26を介して、コンピュータに対して、操作指示、動作指示、データ入力等を行うことができる。
【0030】
印刷部27はプリンタであり、ユーザからの要求により必要な情報等の印刷を行う。
表示部28は、CRT(Cathode Ray Tube)モニタ、液晶パネル等のディスプレイ装置、ディスプレイ装置と連携してビデオ機能を実現するための論理回路等(ビデオアダプタ等)を有する。
通信部29は、通信制御装置、通信ポート等を有し、他のコンピュータ間の通信を媒介する通信インタフェースであり、通信制御を行う。
バス30は、各装置間の制御信号、データ信号等の授受を媒介する経路である。
【0031】
図3は、シンクライアントサーバ3の記憶装置24の記憶内容を示す図である。
シンクライアントサーバ3の記憶装置24には、OS31、通信ソフトウエア32、シンクライアントシステム用ソフトウエア33、シンクライアントシステム用ファイル34等が記憶されている。
【0032】
OS31は、シンクライアントサーバ3全体を制御する為のプログラムである。
通信ソフトウエア32は、シンクライアントサーバ3がネットワーク17を介してクライアント端末9等と行う通信処理を実現する為のプログラムである。
シンクライアントシステム用ソフトウエア33は、シンクライアントサーバ3においてクライアント端末9における入力操作に従った処理を実現する為のプログラムである。シンクライアントシステム用ソフトウエア33の一例としては、文書作成アプリケーションがある。ユーザは、クライアント端末9から、シンクライアントサーバ3の文書作成アプリケーションを用いて、新規文書ファイルの作成、既に作成済みの文書ファイルの読み書きなどを行うことができる。
シンクライアントシステム用ファイル34は、シンクライアントシステム用ソフトウエア33によって利用されるファイルである。
【0033】
図4は、検証サーバ5の記憶装置24の記憶内容を示す図である。
検証サーバ5の記憶装置24には、OS41、検証ソフトウエア42、署名ソフトウエア43、乱数生成ソフトウエア44、開始終了アドレス生成ソフトウエア45、秘密鍵46、シンクライアントOSイメージ47等が記憶されている。
【0034】
OS41は、検証サーバ5全体を制御するためのプログラムである。
検証ソフトウエア42は、開始終了アドレス生成ソフトウエア45により生成された開始、終了アドレスの範囲のシンクライアントOSのハッシュ値を計算し、署名ソフトウエア43により生成された署名と、クライアント端末9から受信する署名結果とを比較することにより、クライアント端末9のシンクライアントOSが改ざんされていないかを検証する為のプログラムである。検証に失敗した場合、クライアント端末9とシンクライアントサーバ3間の通信を切断する。検証ソフトウエア42により実行されるハッシュ値の計算は、クライアント端末9で実行されるシンクライアントOSと同じである。
署名ソフトウエア43は、乱数生成ソフトウエア44により生成された乱数を秘密鍵46で暗号化し、セッション鍵を生成し、セッション鍵で検証ソフトウエア42によって生成されるハッシュ値を暗号化して署名を作成する為のプログラムである。
乱数生成ソフトウエア44は、クライアント端末9および署名ソフトウエア43に使用される乱数を生成する為のプログラムである。
【0035】
開始終了アドレス生成ソフトウエア45は、クライアント端末9および検証ソフトウエア42によるハッシュ値の計算において用いる開始アドレス、終了アドレスを生成する為のプログラムである。
秘密鍵46は、乱数を暗号化してセッション鍵を生成するために使用されるデータである。秘密鍵46は、クライアント端末9で実行されるシンクライアントOSが保持する秘密鍵と同じである。
シンクライアントOSイメージ47は、クライアント端末9で実行されるシンクライアントOSのデータである。
【0036】
図5は、ICカード13の構成を示す図である。
ICカード13は、バスにより相互接続されたCPU51、RAM52、EEPROM(Electrically Erasable Programmable Read−Only Memory)53、ROM55、通信I/F(インタフェース)58等のハードウエアを有する。
CPU51は、ROM55等に格納されるプログラムをRAM52上のワークメモリ領域に呼び出して実行し、ICカード13が行う処理を実現する。
RAM52は、揮発性メモリであり、ROM55等からロードしたプログラム、データ等を一時的に保持するとともに、CPU51が各種処理を行う為に使用するワークエリアを備える。
【0037】
EEPROM53は、不揮発性メモリであり、ICカード13の所有者固有の識別情報等の情報や、シンクライアントOSの検証処理における暗号化で使用する秘密鍵54等を有する。
秘密鍵54は、検証サーバ5が記憶装置24に保持する秘密鍵46と同じである。
ROM55は、不揮発性メモリであり、ICカード13において実行されるプログラムやデータ等を恒久的に保持している。ROM55は、クライアント端末9からICカードR/W11を介して送信される署名コマンド56、鍵生成コマンド57等の処理内容をプログラムとして記憶している。
通信I/F58は、ICカード13とICカードR/W11の間の通信を制御するためのインタフェースである。
【0038】
図6は、USBメモリ15の構成を示す図である。
USBメモリ15は、ドライバチップ61、フラッシュメモリ62等のハードウエアを有する。
【0039】
ドライバチップ61は、フラッシュメモリ62を外部記憶装置としてクライアント端末9に認識させる機能を有する。
フラッシュメモリ62は、データを記憶するためのメモリであり、シンクライアントOS63等を有する。
【0040】
シンクライアントOS63は、シンクライアントシステム1を実現する為のプログラムである。シンクライアントOS63は、クライアント端末9のRAM23に展開され、クライアント端末9全体を制御する為のプログラムである。
クライアント端末9にUSBメモリ15が装着されて電源が投入されると、クライアント端末9のCPU21は、RAM23内にシンクライアントOS63を展開して起動する。
【0041】
シンクライアントOS63には、署名ソフトウエア64と秘密鍵65等が含まれている。従って、シンクライアントOSが起動されたクライアント端末9のRAM23には、署名ソフトウエア64、秘密鍵65も展開されている。
【0042】
署名ソフトウエア64は、検証サーバ5により指示されたシンクライアントOS63の開始アドレスから終了アドレスまでのハッシュ値を計算し、ICカードR/W11を介してICカード13に署名コマンドの実行を指示する為のプログラムである。
【0043】
図7は、ICカード13の処理の流れを示すフローチャートである。
ICカード13がICカードR/W11に挿入され、ICカード13に電源が供給されると(ステップS101)、ICカード13のCPU51はクライアント端末9からのコマンド受信を待つ(ステップS102)。
【0044】
クライアント端末9からのコマンドを受信すると、ICカード13のCPU51は、受信したコマンドが鍵生成コマンドか判定する(ステップS103)。
鍵生成コマンドの場合(ステップS103のYes)、ICカード13のCPU51は、鍵生成コマンドの引数として受信した乱数を、EEPROM53に保持している秘密鍵54を用いて暗号化してセッション鍵を生成し(ステップS104)、送信バッファに「OK」をセットする(ステップS105)。
一方、鍵生成コマンドではない場合(ステップS103のNo)、ステップS106に進む。
【0045】
ステップS106では、ICカード13のCPU51は、受信したコマンドが署名コマンドか判定する(ステップS106)。
署名コマンドの場合(ステップS106のYes)、ICカード13のCPU51は、署名コマンドの引数として受信したハッシュ値に対してセッション鍵を用いて暗号化して署名データを生成し(ステップS107)、ハッシュ値を暗号化した署名データと「OK」を送信バッファにセットする(ステップS108)。
一方、署名コマンドではない場合(ステップS106のNo)、ICカード13のCPU51は、送信バッファに「NG」をセットする(ステップS109)。
そして、S105、S108及びS109のいずれであっても、ICカード13のCPU51は、送信バッファの内容をICカードR/W11に送信し(ステップS110)、次のコマンド受信を待つ(ステップS102)。
【0046】
以上の構成を前提として、シンクライアントシステム1の処理の詳細を説明する。
図8は、シンクライアントシステム1の処理の流れを示すフローチャートである。
【0047】
ICカード13が挿入されているICカードR/W11と、USBメモリ15が装着されているクライアント端末9の電源が投入されると、クライアント端末9のCPU21は、RAM23内にUSBメモリ15内のシンクライアントOS63を展開し、起動する。以降の処理については、クライアント端末9のCPU21は、シンクライアントOS63に従って動作する。
【0048】
クライアント端末9のCPU21は、ネットワーク17、検証サーバ5を経由して、シンクライアントサーバ3へのアクセスを試行する(ステップS201)。
【0049】
検証サーバ5のCPU21は、前回シンクライアントOSを検証してから一定時間経過しているかを判定し(ステップS202)、一定時間経過していない場合(ステップS202のNo)、クライアント端末9からシンクライアントサーバ3へのパケットを中継し(ステップS219)、シンクライアントサーバ3からクライアント端末9へのパケットを中継する(ステップS220)。これによって、クライアント端末9とシンクライアントサーバ3の間の通信が継続される。
【0050】
一方、クライアント端末9の起動時、あるいは、前回シンクライアントOSを検証してから一定時間経過している場合(ステップS202のYes)、検証サーバ5のCPU21は、乱数生成ソフトウエア44に従って乱数を生成し、生成した乱数を秘密鍵46で暗号化してセッション鍵を生成し、開始終了アドレス生成ソフトウエア45に従って開始アドレス、終了アドレスを生成する(ステップS203)。次に、検証サーバ5のCPU21は、生成した乱数、開始アドレス、終了アドレスをクライアント端末9に送信する(ステップS204)。
【0051】
クライアント端末9のCPU21は、検証サーバ5から受信した開始アドレス、終了アドレスの範囲のシンクライアントOSのハッシュ値を計算し(ステップS205)、検証サーバ5から受信した乱数を引数とする鍵生成コマンドを、ICカードR/W11を介してICカード13に送信する(ステップS206)。
【0052】
ICカード13のCPU51は、鍵生成コマンド57を実行してセッション鍵を生成し(ステップS207)、ICカードR/W11を介してクライアント端末9にOKを送信する(ステップS208)。
【0053】
クライアント端末9のCPU21は、ICカード13からOKを受信すると(ステップS209)、計算したハッシュ値を引数とする署名コマンドを、ICカードR/W11を介してICカード13に送信する(ステップS210)。
【0054】
ICカード13のCPU51は、署名コマンド56を実行してハッシュ値にたいしてセッション鍵を用いて署名し(ステップS211)、I/CカードR/W11を介して署名結果をクライアント端末9に送信する(ステップS212)。
【0055】
クライアント端末9のCPU21は、ICカード13から署名結果を受信し(ステップS213)、受信した署名結果を検証サーバ5に送信する(ステップS214)。
【0056】
検証サーバ5のCPU21は、記憶装置24に保持しているシンクライアントOSイメージ47の開始アドレス、終了アドレスの範囲のハッシュ値を計算し、ハッシュ値をステップS203において生成したセッション鍵を用いて暗号化し、署名を作成する(ステップS215)。検証サーバ5のCPU21は、作成した署名と、クライアント端末9から受信した署名結果が一致するか判定する(ステップS216)。
【0057】
署名結果が一致する場合(ステップS216のYes)、検証サーバ5のCPU21はクライアント端末9にOKを送信し、検証時刻を現在時刻に更新する(ステップS218)。また、検証サーバ5のCPU21は、クライアント端末9からシンクライアントサーバ3へのパケットを中継し(ステップS219)、シンクライアントサーバ3からクライアント端末9へのパケットを中継する(ステップS220)。これによって、クライアント端末9とシンクライアントサーバ3の間の通信が継続される。
【0058】
一方、署名結果が一致しない場合(ステップS216のNo)、検証サーバ5のCPU21は、エラー値をクライアント端末9に送信し(ステップS221)、検証時刻をリセットし(ステップS222)、クライアント端末9とシンクライアントサーバ3の間の通信を切断する(ステップS223)。
【0059】
以上説明したように、本発明のシンクライアントシステムでは、クライアント端末上で実行しているシンクライアントOSの一部のハッシュ値を計算し、検証サーバで保持しているシンクライアントOSイメージから計算したハッシュ値を定期的に比較する。これによって、シンクライアントOSが改ざんされていないかを検証することができる。
【0060】
特に、シンクライアントOS全体ではなく、一部のハッシュ値を計算することにより、演算時間を短縮し、シンクライアントOSが実行する他の処理への影響を低減することができる。
また、ハッシュ値を計算する範囲を指定する開始アドレス、終了アドレスを毎回ランダムに設定して検証を定期的に繰り返すことにより、シンクライアントOSのイメージのほぼ全体を順次検証でき、シンクライアントOSへの改ざんを早期に発見することが可能となる。更に、ハッシュ値の傍受による悪用も防止することができる。
【0061】
以上、添付図面を参照しながら、本発明に係るシンクライアントシステム等の好適な実施形態について説明したが、本発明は係る例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【0062】
1………シンクライアントシステム
3………シンクライアントサーバ
5………検証サーバ
7………ファイアウォール
9………クライアント端末
11………ICカードR/W
13………ICカード
15………USBメモリ
17………ネットワーク

【特許請求の範囲】
【請求項1】
ユーザの認証情報を格納する認証デバイスおよびシンクライアントOSのイメージを記憶する外部記憶装置を装着可能な端末と、前記端末とネットワークを介して接続されるサーバとからなるシンクライアントシステムであって、
前記端末は、
前記外部記憶装置から前記シンクライアントOSのイメージを前記端末の揮発性メモリに展開し、前記シンクライアントOSを起動する起動手段と、
前記端末の揮発性メモリに展開されている前記シンクライアントOSの一部に基づいて第1検証値を計算する第1計算手段と、
を具備し、
前記サーバは、
前記シンクライアントOSのイメージを保持する保持手段と、
前記保持手段に保持される前記シンクライアントOSのイメージの一部に基づいて第2検証値を計算する第2計算手段と、
前記第1検証値に基づく値と前記第2検証値に基づく値を比較し、一致しない場合、前記端末との接続を切断する検証手段と、
を具備することを特徴とするシンクライアントシステム。
【請求項2】
前記第1計算手段は、前記第1検証値として、前記端末の揮発性メモリに展開されている前記シンクライアントOSの一部のハッシュ値を計算し、
前記第2計算手段は、前記第2検証値として、前記保持手段に保持される前記シンクライアントOSの一部のハッシュ値を計算する、
ことを特徴とする請求項1に記載のシンクライアントシステム。
【請求項3】
前記第1計算手段は、前記第1検証値として、前記サーバによって無作為に指定される開始アドレス、終了アドレスの範囲に基づいて、前記端末の揮発性メモリに展開されている前記シンクライアントOSのハッシュ値を計算し、
前記第2計算手段は、前記第2検証値として、前記サーバによって無作為に指定される開始アドレス、終了アドレスの範囲に基づいて、前記保持手段に保持される前記シンクライアントOSの一部のハッシュ値を計算する
ことを特徴とする請求項2に記載のシンクライアントシステム。
【請求項4】
前記認証デバイスは、
前記第1検証値に署名して第1署名結果を生成する第1署名手段、
を具備し、
前記サーバは、
前記第2検証値に署名して第2署名結果を生成する第2署名手段、
を更に具備し、
前記検証手段は、前記第1署名結果と前記第2署名結果を比較し、一致しない場合、前記端末との接続を切断する
ことを特徴とする請求項1乃至請求項3のいずれかに記載のシンクライアントシステム。
【請求項5】
ユーザの認証情報を格納する認証デバイスおよびシンクライアントOSのイメージを記憶する外部記憶装置を装着可能な端末と、前記端末とネットワークを介して接続され、前記シンクライアントOSのイメージを保持する保持手段を具備するサーバとからなるシンクライアントシステムにおけるシンクライアントOSの検証方法であって、
前記端末が、前記外部記憶装置から前記シンクライアントOSのイメージを前記端末の揮発性メモリに展開し、前記シンクライアントOSを起動する起動ステップと、
前記端末が、前記端末の揮発性メモリに展開されている前記シンクライアントOSの一部に基づいて第1検証値を計算する第1計算ステップと、
前記サーバが、前記保持手段に保持される前記シンクライアントOSのイメージの一部に基づいて第2検証値を計算する第2計算ステップと、
前記サーバが、前記第1検証値に基づく値と前記第2検証値に基づく値を比較し、一致しない場合、前記端末との接続を切断する検証ステップと、
を含むことを特徴とするシンクライアントOSの検証方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−212292(P2012−212292A)
【公開日】平成24年11月1日(2012.11.1)
【国際特許分類】
【出願番号】特願2011−77218(P2011−77218)
【出願日】平成23年3月31日(2011.3.31)
【出願人】(000002897)大日本印刷株式会社 (14,506)
【Fターム(参考)】