(57)【要約】      （修正有）【課題】実行中にシンクライアントＯＳの改ざんの検出を可能とするシンクライアントシステム等を提供する。【解決手段】検証サーバ５は生成した乱数、開始アドレス、終了アドレスをクライアント端末９に送信する。クライアント端末９は、開始アドレス、終了アドレスの範囲のシンクライアントＯＳのハッシュ値を計算し、ＩＣカード１３はセッション鍵でハッシュ値を暗号化して署名結果を生成し、クライアント端末９に送信する。クライアント端末９は検証サーバ５に署名結果を送信し、検証サーバ５はシンクライアントＯＳイメージの開始アドレス、終了アドレスの範囲のハッシュ値を計算し、セッション鍵で暗号化して署名を作成し、クライアント端末９から受信した署名結果と一致するか判定する。一致する場合、クライアント端末９とシンクライアントサーバの間の通信を継続するが、一致しない場合は通信を切断する。【選択図】図８
2012212292.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの認証情報を格納する認証デバイスおよびシンクライアントＯＳのイメージを記憶する外部記憶装置を装着可能な端末と、前記端末とネットワークを介して接続されるサーバとからなるシンクライアントシステムであって、
前記端末は、
前記外部記憶装置から前記シンクライアントＯＳのイメージを前記端末の揮発性メモリに展開し、前記シンクライアントＯＳを起動する起動手段と、
前記端末の揮発性メモリに展開されている前記シンクライアントＯＳの一部に基づいて第１検証値を計算する第１計算手段と、
を具備し、
前記サーバは、
前記シンクライアントＯＳのイメージを保持する保持手段と、
前記保持手段に保持される前記シンクライアントＯＳのイメージの一部に基づいて第２検証値を計算する第２計算手段と、
前記第１検証値に基づく値と前記第２検証値に基づく値を比較し、一致しない場合、前記端末との接続を切断する検証手段と、
を具備することを特徴とするシンクライアントシステム。
【請求項２】
前記第１計算手段は、前記第１検証値として、前記端末の揮発性メモリに展開されている前記シンクライアントＯＳの一部のハッシュ値を計算し、
前記第２計算手段は、前記第２検証値として、前記保持手段に保持される前記シンクライアントＯＳの一部のハッシュ値を計算する、
ことを特徴とする請求項１に記載のシンクライアントシステム。
【請求項３】
前記第１計算手段は、前記第１検証値として、前記サーバによって無作為に指定される開始アドレス、終了アドレスの範囲に基づいて、前記端末の揮発性メモリに展開されている前記シンクライアントＯＳのハッシュ値を計算し、
前記第２計算手段は、前記第２検証値として、前記サーバによって無作為に指定される開始アドレス、終了アドレスの範囲に基づいて、前記保持手段に保持される前記シンクライアントＯＳの一部のハッシュ値を計算する
ことを特徴とする請求項２に記載のシンクライアントシステム。
【請求項４】
前記認証デバイスは、
前記第１検証値に署名して第１署名結果を生成する第１署名手段、
を具備し、
前記サーバは、
前記第２検証値に署名して第２署名結果を生成する第２署名手段、
を更に具備し、
前記検証手段は、前記第１署名結果と前記第２署名結果を比較し、一致しない場合、前記端末との接続を切断する
ことを特徴とする請求項１乃至請求項３のいずれかに記載のシンクライアントシステム。
【請求項５】
ユーザの認証情報を格納する認証デバイスおよびシンクライアントＯＳのイメージを記憶する外部記憶装置を装着可能な端末と、前記端末とネットワークを介して接続され、前記シンクライアントＯＳのイメージを保持する保持手段を具備するサーバとからなるシンクライアントシステムにおけるシンクライアントＯＳの検証方法であって、
前記端末が、前記外部記憶装置から前記シンクライアントＯＳのイメージを前記端末の揮発性メモリに展開し、前記シンクライアントＯＳを起動する起動ステップと、
前記端末が、前記端末の揮発性メモリに展開されている前記シンクライアントＯＳの一部に基づいて第１検証値を計算する第１計算ステップと、
前記サーバが、前記保持手段に保持される前記シンクライアントＯＳのイメージの一部に基づいて第２検証値を計算する第２計算ステップと、
前記サーバが、前記第１検証値に基づく値と前記第２検証値に基づく値を比較し、一致しない場合、前記端末との接続を切断する検証ステップと、
を含むことを特徴とするシンクライアントＯＳの検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザの認証情報を格納する認証デバイスおよびシンクライアントＯＳのイメージを記憶する外部記憶装置を装着した端末と、ネットワークを介して接続されるサーバからなるシンクライアントシステム等に関する。
【背景技術】
【０００２】
近年、企業等において、不揮発性の記憶装置（ハードディスクドライブなど）を持たない専用端末を社員等に配布し、アプリケーション、ファイル等のリソースをサーバ側において一元管理することによって、情報漏洩を防止するシンクライアントシステムが普及してきている。
【０００３】
また、専用端末に代えて、シンクライアントシステム専用のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を格納したＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリのような外部記憶装置を汎用のコンピュータに装着し、シンクライアントシステム専用のＯＳを起動させることによって、専用端末と同様の環境を実現することも行われている。この手法では、汎用のコンピュータを用意すれば良いことから、コストを抑えることができる。但し、この手法では、クライアント側の端末から社内ネットワークへの不正アクセスや情報漏えいを防止するため、シンクライアントＯＳが不正に改ざんされていないことが重要となる。
【０００４】
特許文献１には、ＵＳＢメモリに記憶したシンクライアントＯＳのイメージのハッシュ値を含む構成証明書メッセージを作成し、サーバによって構成証明書メッセージの検証が成功したときのみ、クライアント端末に対して社内ネットワークへのアクセスを許可する手法が開示されている。
【０００５】
【特許文献１】特開２００９−１７５９２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、特許文献１に記載のシンクライアントシステムでは、シンクライアントＯＳの完全性を検証するものであり、ＯＳの起動時やネットワークの接続時のような使用開始時に一度だけ行うことを前提としている。従って、検証後に改ざんされることを防止することはできない。例えば、汎用コンピュータのＲＡＭ（揮発性メモリ）に外部からアクセスできるエミュレータを利用し、実行中（＝シンクライアントＯＳがＲＡＭ（揮発性メモリ）に展開されている間）にシンクライアントＯＳが改ざんされる恐れがある。このような改ざんを防ぐ為、シンクライアントＯＳを実行中に、特許文献１に開示されている検証を繰り返し行い、改ざんを発見したときにネットワークを遮断するということも考えられる。しかし、シンクライアントＯＳ全体を対象として特許文献１に開示されている検証を行うと、処理時間がかかるため、実用的ではない。
【０００７】
本発明は、このような問題に鑑みてなされたもので、その目的とするところは、実行中にシンクライアントＯＳの改ざんの検出を可能とするシンクライアントシステム等を提供することである。
【課題を解決するための手段】
【０００８】
前述した目的を達成するために、第１の発明は、ユーザの認証情報を格納する認証デバイスおよびシンクライアントＯＳのイメージを記憶する外部記憶装置を装着可能な端末と、前記端末とネットワークを介して接続されるサーバとからなるシンクライアントシステムであって、前記端末は、前記外部記憶装置から前記シンクライアントＯＳのイメージを前記端末の揮発性メモリに展開し、前記シンクライアントＯＳを起動する起動手段と、前記端末の揮発性メモリに展開されている前記シンクライアントＯＳの一部に基づいて第１検証値を計算する第１計算手段と、を具備し、前記サーバは、前記シンクライアントＯＳのイメージを保持する保持手段と、前記保持手段に保持される前記シンクライアントＯＳのイメージの一部に基づいて第２検証値を計算する第２計算手段と、前記第１検証値に基づく値と前記第２検証値に基づく値を比較し、一致しない場合、前記端末との接続を切断する検証手段と、を具備することを特徴とするシンクライアントシステムである。
第１の発明によって、実行中にシンクライアントＯＳの改ざんを検出することができる。
【０００９】
前記第１計算手段は、前記第１検証値として、前記端末の揮発性メモリに展開されている前記シンクライアントＯＳの一部のハッシュ値を計算し、前記第２計算手段は、前記第２検証値として、前記保持手段に保持される前記シンクライアントＯＳの一部のハッシュ値を計算することが望ましい。
これによって、演算時間を短縮し、シンクライアントＯＳが実行する他の処理への影響を低減することができる。
【００１０】
また、前記第１計算手段は、前記第１検証値として、前記サーバによって無作為に指定される開始アドレス、終了アドレスの範囲に基づいて、前記端末の揮発性メモリに展開されている前記シンクライアントＯＳのハッシュ値を計算し、前記第２計算手段は、前記第２検証値として、前記サーバによって無作為に指定される開始アドレス、終了アドレスの範囲に基づいて、前記保持手段に保持される前記シンクライアントＯＳの一部のハッシュ値を計算することが望ましい。
これによって、シンクライアントＯＳのイメージのほぼ全体を順次検証でき、シンクライアントＯＳへの改ざんを早期に発見することが可能となる。更に、ハッシュ値の傍受による悪用も防止することができる。
【００１１】
また、前記認証デバイスは、前記第１検証値に署名して第１署名結果を生成する第１署名手段、を具備し、前記サーバは、前記第２検証値に署名して第２署名結果を生成する第２署名手段、を更に具備し、前記検証手段は、前記第１署名結果と前記第２署名結果を比較し、一致しない場合、前記端末との接続を切断することが望ましい。
これによって、耐タンパ性がある認証デバイスを用いれば、信頼性を更に向上することができる。
【００１２】
第２の発明は、ユーザの認証情報を格納する認証デバイスおよびシンクライアントＯＳのイメージを記憶する外部記憶装置を装着可能な端末と、前記端末とネットワークを介して接続され、前記シンクライアントＯＳのイメージを保持する保持手段を具備するサーバとからなるシンクライアントシステムにおけるシンクライアントＯＳの検証方法であって、前記端末が、前記外部記憶装置から前記シンクライアントＯＳのイメージを前記端末の揮発性メモリに展開し、前記シンクライアントＯＳを起動する起動ステップと、前記端末が、前記端末の揮発性メモリに展開されている前記シンクライアントＯＳの一部に基づいて第１検証値を計算する第１計算ステップと、前記サーバが、前記保持手段に保持される前記シンクライアントＯＳのイメージの一部に基づいて第２検証値を計算する第２計算ステップと、前記サーバが、前記第１検証値に基づく値と前記第２検証値に基づく値を比較し、一致しない場合、前記端末との接続を切断する検証ステップと、を含むことを特徴とするシンクライアントＯＳの検証方法である。
第２の発明によって、実行中にシンクライアントＯＳの改ざんを検出することができる。
【発明の効果】
【００１３】
本発明により、実行中にシンクライアントＯＳの改ざんの検出を可能とするシンクライアントシステム等を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】シンクライアントシステム１の概要を示す図
【図２】シンクライアントサーバ３、検証サーバ５、クライアント端末９を実現するコンピュータのハードウエア構成図
【図３】シンクライアントサーバ３の記憶装置２４の記憶内容を示す図
【図４】検証サーバ５の記憶装置２４の記憶内容を示す図
【図５】ＩＣカード１３の構成を示す図
【図６】ＵＳＢメモリ１５の構成を示す図
【図７】ＩＣカード１３の処理の流れを示すフローチャート
【図８】シンクライアントシステム１の処理の流れを示すフローチャート
【発明を実施するための形態】
【００１５】
本発明の実施の形態では、ユーザの認証情報を格納する認証デバイスをＩＣカード、シンクライアントＯＳのイメージを記憶する外部記憶装置をＵＳＢメモリとして説明する。ユーザは、通常、ユーザごとに配布されるＩＣカードを用いてシンクライアントシステムを利用する。
以下、図面に基づいて、本発明の実施形態を詳細に説明する。
【００１６】
図１は、シンクライアントシステム１の概要を示す図である。
シンクライアントシステム１は、シンクライアントサーバ３、検証サーバ５、クライアント端末９等から構成される。シンクライアントサーバ３は、検証サーバ５、ファイアウォール７、ネットワーク１７（インターネット等）を介してクライアント端末９とデータの送受信を行う。クライアント端末９には、ＩＣカードリーダライタ（Ｒ／Ｗ）１１とＵＳＢメモリ１５が装着される。
【００１７】
シンクライアントサーバ３は、企業等の社内ネットワーク内に設置される。シンクライアントサーバ３は、クライアント端末９によって利用されるアプリケーション、ファイル等を一元管理する。シンクライアントサーバ３は、複数存在してもよい。また、シンクライアントサーバ３は、セキュリティを確保できれば社外に設置されても良い。
【００１８】
検証サーバ５は、ファイアウォール７、通信ゲートウエイとなるプロキシサーバ（図示しない）や、外部公開向けのサーバ（図示しない）、クライアント端末９からのＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｅｋｔｓ  Ｌａｙｅｒ）−ＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）接続要求を処理するゲートウエイＳＳＬ−ＶＰＮゲートウエイ（図示しない）等を介して配置される。検証サーバ５は、クライアント端末９とシンクライアントサーバ３間の通信パケットを仲介し、クライアント端末９において実行されているシンクライアントＯＳの検証を行う。クライアント端末９は、シンクライアントサーバ３に対して直接アクセスすることはできない。
【００１９】
クライアント端末９は、社内ネットワークの内部または外部において利用される。クライアント端末９は、画面の出力表示やキーボード、マウスのような入力操作等の最低限の機能を有するパーソナルコンピュータのような端末であり、ハードディスク等の記憶装置を保持してもよいし、保持しなくてもよい。クライアント端末９のＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）は、電源投入時にＵＳＢメモリ１５からの起動を最優先するように設定されている。
【００２０】
ＵＳＢメモリ１５は、クライアント端末９においてシンクライアント環境を実現するための起動プログラム、シンクライアント用ファイルシステムを格納している。起動プログラムは、シンクライアント用ファイルシステムをクライアント端末９上にロード、実行するために必要となるプログラム、データの総称であり、ブートローダ、カーネル、初期ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）イメージ等を含む。
ユーザがクライアント端末９にＵＳＢメモリ１５を装着してクライアント端末９に電源を入れると、ＵＳＢメモリ１５内に格納されているシンクライアント用ファイルシステムがクライアント端末９のＲＡＭ（揮発性メモリ）上にロードされ、シンクライアントＯＳの起動プロセスが開始され、シンクライアント環境が実現される。
【００２１】
ＩＣカードＲ／Ｗ１１は、ＩＣカード１３の読み出し、書き込みを行う。尚、ＩＣカードＲ／Ｗ１１は必須ではない。ＩＣカードＲ／Ｗ１１に代えて、ＩＣカード１３が挿入可能であり、ＵＳＢメモリ１５の機能を備えた一体型のＵＳＢデバイスを使用してもよい。
ＩＣカード１３は、シンクライアントシステム１のセキュリティ向上のために利用する。ＩＣカード１３は、社員証のようなカードタイプでもよいし、ＳＩＭ（Ｓｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ）カードタイプでもよい。
シンクライアントＯＳの起動直後、あるいは、シンクライアントＯＳの実行中、クライアント端末９はＩＣカードＲ／Ｗ１１に挿入されているＩＣカード１３と通信し、シンクライアントＯＳの改ざん有無の検証処理を実行する。
【００２２】
ここで、シンクライアントシステム１の処理の概要を説明する。
検証サーバ５は、クライアント端末９におけるシンクライアントＯＳの実行中、定期的にクライアント端末９に対して、クライアント端末９のＲＡＭ（揮発性メモリ）に展開されているシンクライアントＯＳの一部のハッシュ値の計算を要求する。また、検証サーバ５は、自らの記憶装置に保持しているクライアントＯＳのイメージからハッシュ値を計算し、クライアント端末９から受信するハッシュ値と比較する。
ハッシュ値が一致した場合、シンクライアントＯＳは改ざんされていないと判定し、クライアント端末９、シンクライアントサーバ３間の通信処理を続ける。
一方、ハッシュ値が一致しない場合、シンクライアントＯＳが改ざんされたと判定し、クライアント端末９、シンクライアントサーバ３間の通信を切断する。
【００２３】
検証サーバ５は、シンクライアントＯＳ全体ではなく、例えば、ハッシュ値を計算する開始、終了アドレスを指定し、シンクライアントＯＳの一部のハッシュ値を計算するようにしても良い。これによって、演算時間を短縮し、他の処理に影響を与えないようにする。
【００２４】
また、検証サーバ５は、乱数を用いてハッシュ値を計算する範囲を毎回変更し、定期的にシンクライアントＯＳの検証を行うようにしても良い。これによって、シンクライアントＯＳのイメージの各部を順次検証すること可能となり、シンクライアントＯＳへの改ざんを早期に発見することが可能となる。更に、ハッシュ値傍受による悪用を防止することもできる。
【００２５】
図２は、シンクライアントサーバ３、検証サーバ５、クライアント端末９を実現するコンピュータのハードウエア構成図である。尚、図２のハードウエア構成は一例であり、用途、目的に応じて様々な構成を採ることが可能である。
【００２６】
図２に示すように、コンピュータは、ＣＰＵ２１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２２、ＲＡＭ２３、記憶装置２４、メディア入出力部２５、入力部２６、印刷部２７、表示部２８、通信部２９がバス３０を介して接続される。
【００２７】
ＣＰＵ２１は、ＲＯＭ２２、記憶装置２４、記録媒体等に格納されるプログラムをＲＡＭ２３上のワークメモリ領域に呼び出して実行し、バス３０を介して接続された各装置を駆動制御し、コンピュータが行う処理を実現する。
ＲＯＭ２２は、不揮発性メモリであり、コンピュータのブートプログラムやＢＩＯＳ等のプログラム、データ等を恒久的に保持している。
ＲＡＭ２３は、揮発性メモリであり、ＲＯＭ２２、記憶装置２４、記録媒体等からロードしたプログラム、データ等を一時的に保持するとともに、ＣＰＵ２１が各種処理を行う為に使用するワークエリアを備える。
【００２８】
記憶装置２４は、ＨＤＤ（ハードディスクドライブ）であり、ＣＰＵ２１が実行するプログラム、プログラム実行に必要なデータ、ＯＳ等が格納される。プログラムに関しては、ＯＳに相当する制御プログラムや、シンクライアントシステム１において実行されるアプリケーションプログラム、ファイル等が格納されている。
これらの各プログラムコードは、ＣＰＵ２１により必要に応じて読み出されてＲＡＭ２３に移され、各種の手段として実行される。
【００２９】
メディア入出力部２５（ドライブ装置）は、記録媒体のデータの入出力を行い、例えば、フロッピー（登録商標）ディスクドライブ、ＣＤドライブ（−ＲＯＭ、−Ｒ、−ＲＷ等）、ＤＶＤドライブ（−ＲＯＭ、−Ｒ、−ＲＷ等）、ＭＯドライブ等のメディア入出力装置を有する。
入力部２６は、データの入力を行い、例えば、キーボード、マウス等のポインティングデバイス、テンキー等の入力装置を有する。
入力部２６を介して、コンピュータに対して、操作指示、動作指示、データ入力等を行うことができる。
【００３０】
印刷部２７はプリンタであり、ユーザからの要求により必要な情報等の印刷を行う。
表示部２８は、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）モニタ、液晶パネル等のディスプレイ装置、ディスプレイ装置と連携してビデオ機能を実現するための論理回路等（ビデオアダプタ等）を有する。
通信部２９は、通信制御装置、通信ポート等を有し、他のコンピュータ間の通信を媒介する通信インタフェースであり、通信制御を行う。
バス３０は、各装置間の制御信号、データ信号等の授受を媒介する経路である。
【００３１】
図３は、シンクライアントサーバ３の記憶装置２４の記憶内容を示す図である。
シンクライアントサーバ３の記憶装置２４には、ＯＳ３１、通信ソフトウエア３２、シンクライアントシステム用ソフトウエア３３、シンクライアントシステム用ファイル３４等が記憶されている。
【００３２】
ＯＳ３１は、シンクライアントサーバ３全体を制御する為のプログラムである。
通信ソフトウエア３２は、シンクライアントサーバ３がネットワーク１７を介してクライアント端末９等と行う通信処理を実現する為のプログラムである。
シンクライアントシステム用ソフトウエア３３は、シンクライアントサーバ３においてクライアント端末９における入力操作に従った処理を実現する為のプログラムである。シンクライアントシステム用ソフトウエア３３の一例としては、文書作成アプリケーションがある。ユーザは、クライアント端末９から、シンクライアントサーバ３の文書作成アプリケーションを用いて、新規文書ファイルの作成、既に作成済みの文書ファイルの読み書きなどを行うことができる。
シンクライアントシステム用ファイル３４は、シンクライアントシステム用ソフトウエア３３によって利用されるファイルである。
【００３３】
図４は、検証サーバ５の記憶装置２４の記憶内容を示す図である。
検証サーバ５の記憶装置２４には、ＯＳ４１、検証ソフトウエア４２、署名ソフトウエア４３、乱数生成ソフトウエア４４、開始終了アドレス生成ソフトウエア４５、秘密鍵４６、シンクライアントＯＳイメージ４７等が記憶されている。
【００３４】
ＯＳ４１は、検証サーバ５全体を制御するためのプログラムである。
検証ソフトウエア４２は、開始終了アドレス生成ソフトウエア４５により生成された開始、終了アドレスの範囲のシンクライアントＯＳのハッシュ値を計算し、署名ソフトウエア４３により生成された署名と、クライアント端末９から受信する署名結果とを比較することにより、クライアント端末９のシンクライアントＯＳが改ざんされていないかを検証する為のプログラムである。検証に失敗した場合、クライアント端末９とシンクライアントサーバ３間の通信を切断する。検証ソフトウエア４２により実行されるハッシュ値の計算は、クライアント端末９で実行されるシンクライアントＯＳと同じである。
署名ソフトウエア４３は、乱数生成ソフトウエア４４により生成された乱数を秘密鍵４６で暗号化し、セッション鍵を生成し、セッション鍵で検証ソフトウエア４２によって生成されるハッシュ値を暗号化して署名を作成する為のプログラムである。
乱数生成ソフトウエア４４は、クライアント端末９および署名ソフトウエア４３に使用される乱数を生成する為のプログラムである。
【００３５】
開始終了アドレス生成ソフトウエア４５は、クライアント端末９および検証ソフトウエア４２によるハッシュ値の計算において用いる開始アドレス、終了アドレスを生成する為のプログラムである。
秘密鍵４６は、乱数を暗号化してセッション鍵を生成するために使用されるデータである。秘密鍵４６は、クライアント端末９で実行されるシンクライアントＯＳが保持する秘密鍵と同じである。
シンクライアントＯＳイメージ４７は、クライアント端末９で実行されるシンクライアントＯＳのデータである。
【００３６】
図５は、ＩＣカード１３の構成を示す図である。
ＩＣカード１３は、バスにより相互接続されたＣＰＵ５１、ＲＡＭ５２、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）５３、ＲＯＭ５５、通信Ｉ／Ｆ（インタフェース）５８等のハードウエアを有する。
ＣＰＵ５１は、ＲＯＭ５５等に格納されるプログラムをＲＡＭ５２上のワークメモリ領域に呼び出して実行し、ＩＣカード１３が行う処理を実現する。
ＲＡＭ５２は、揮発性メモリであり、ＲＯＭ５５等からロードしたプログラム、データ等を一時的に保持するとともに、ＣＰＵ５１が各種処理を行う為に使用するワークエリアを備える。
【００３７】
ＥＥＰＲＯＭ５３は、不揮発性メモリであり、ＩＣカード１３の所有者固有の識別情報等の情報や、シンクライアントＯＳの検証処理における暗号化で使用する秘密鍵５４等を有する。
秘密鍵５４は、検証サーバ５が記憶装置２４に保持する秘密鍵４６と同じである。
ＲＯＭ５５は、不揮発性メモリであり、ＩＣカード１３において実行されるプログラムやデータ等を恒久的に保持している。ＲＯＭ５５は、クライアント端末９からＩＣカードＲ／Ｗ１１を介して送信される署名コマンド５６、鍵生成コマンド５７等の処理内容をプログラムとして記憶している。
通信Ｉ／Ｆ５８は、ＩＣカード１３とＩＣカードＲ／Ｗ１１の間の通信を制御するためのインタフェースである。
【００３８】
図６は、ＵＳＢメモリ１５の構成を示す図である。
ＵＳＢメモリ１５は、ドライバチップ６１、フラッシュメモリ６２等のハードウエアを有する。
【００３９】
ドライバチップ６１は、フラッシュメモリ６２を外部記憶装置としてクライアント端末９に認識させる機能を有する。
フラッシュメモリ６２は、データを記憶するためのメモリであり、シンクライアントＯＳ６３等を有する。
【００４０】
シンクライアントＯＳ６３は、シンクライアントシステム１を実現する為のプログラムである。シンクライアントＯＳ６３は、クライアント端末９のＲＡＭ２３に展開され、クライアント端末９全体を制御する為のプログラムである。
クライアント端末９にＵＳＢメモリ１５が装着されて電源が投入されると、クライアント端末９のＣＰＵ２１は、ＲＡＭ２３内にシンクライアントＯＳ６３を展開して起動する。
【００４１】
シンクライアントＯＳ６３には、署名ソフトウエア６４と秘密鍵６５等が含まれている。従って、シンクライアントＯＳが起動されたクライアント端末９のＲＡＭ２３には、署名ソフトウエア６４、秘密鍵６５も展開されている。
【００４２】
署名ソフトウエア６４は、検証サーバ５により指示されたシンクライアントＯＳ６３の開始アドレスから終了アドレスまでのハッシュ値を計算し、ＩＣカードＲ／Ｗ１１を介してＩＣカード１３に署名コマンドの実行を指示する為のプログラムである。
【００４３】
図７は、ＩＣカード１３の処理の流れを示すフローチャートである。
ＩＣカード１３がＩＣカードＲ／Ｗ１１に挿入され、ＩＣカード１３に電源が供給されると（ステップＳ１０１）、ＩＣカード１３のＣＰＵ５１はクライアント端末９からのコマンド受信を待つ（ステップＳ１０２）。
【００４４】
クライアント端末９からのコマンドを受信すると、ＩＣカード１３のＣＰＵ５１は、受信したコマンドが鍵生成コマンドか判定する（ステップＳ１０３）。
鍵生成コマンドの場合（ステップＳ１０３のＹｅｓ）、ＩＣカード１３のＣＰＵ５１は、鍵生成コマンドの引数として受信した乱数を、ＥＥＰＲＯＭ５３に保持している秘密鍵５４を用いて暗号化してセッション鍵を生成し（ステップＳ１０４）、送信バッファに「ＯＫ」をセットする（ステップＳ１０５）。
一方、鍵生成コマンドではない場合（ステップＳ１０３のＮｏ）、ステップＳ１０６に進む。
【００４５】
ステップＳ１０６では、ＩＣカード１３のＣＰＵ５１は、受信したコマンドが署名コマンドか判定する（ステップＳ１０６）。
署名コマンドの場合（ステップＳ１０６のＹｅｓ）、ＩＣカード１３のＣＰＵ５１は、署名コマンドの引数として受信したハッシュ値に対してセッション鍵を用いて暗号化して署名データを生成し（ステップＳ１０７）、ハッシュ値を暗号化した署名データと「ＯＫ」を送信バッファにセットする（ステップＳ１０８）。
一方、署名コマンドではない場合（ステップＳ１０６のＮｏ）、ＩＣカード１３のＣＰＵ５１は、送信バッファに「ＮＧ」をセットする（ステップＳ１０９）。
そして、Ｓ１０５、Ｓ１０８及びＳ１０９のいずれであっても、ＩＣカード１３のＣＰＵ５１は、送信バッファの内容をＩＣカードＲ／Ｗ１１に送信し（ステップＳ１１０）、次のコマンド受信を待つ（ステップＳ１０２）。
【００４６】
以上の構成を前提として、シンクライアントシステム１の処理の詳細を説明する。
図８は、シンクライアントシステム１の処理の流れを示すフローチャートである。
【００４７】
ＩＣカード１３が挿入されているＩＣカードＲ／Ｗ１１と、ＵＳＢメモリ１５が装着されているクライアント端末９の電源が投入されると、クライアント端末９のＣＰＵ２１は、ＲＡＭ２３内にＵＳＢメモリ１５内のシンクライアントＯＳ６３を展開し、起動する。以降の処理については、クライアント端末９のＣＰＵ２１は、シンクライアントＯＳ６３に従って動作する。
【００４８】
クライアント端末９のＣＰＵ２１は、ネットワーク１７、検証サーバ５を経由して、シンクライアントサーバ３へのアクセスを試行する（ステップＳ２０１）。
【００４９】
検証サーバ５のＣＰＵ２１は、前回シンクライアントＯＳを検証してから一定時間経過しているかを判定し（ステップＳ２０２）、一定時間経過していない場合（ステップＳ２０２のＮｏ）、クライアント端末９からシンクライアントサーバ３へのパケットを中継し（ステップＳ２１９）、シンクライアントサーバ３からクライアント端末９へのパケットを中継する（ステップＳ２２０）。これによって、クライアント端末９とシンクライアントサーバ３の間の通信が継続される。
【００５０】
一方、クライアント端末９の起動時、あるいは、前回シンクライアントＯＳを検証してから一定時間経過している場合（ステップＳ２０２のＹｅｓ）、検証サーバ５のＣＰＵ２１は、乱数生成ソフトウエア４４に従って乱数を生成し、生成した乱数を秘密鍵４６で暗号化してセッション鍵を生成し、開始終了アドレス生成ソフトウエア４５に従って開始アドレス、終了アドレスを生成する（ステップＳ２０３）。次に、検証サーバ５のＣＰＵ２１は、生成した乱数、開始アドレス、終了アドレスをクライアント端末９に送信する（ステップＳ２０４）。
【００５１】
クライアント端末９のＣＰＵ２１は、検証サーバ５から受信した開始アドレス、終了アドレスの範囲のシンクライアントＯＳのハッシュ値を計算し（ステップＳ２０５）、検証サーバ５から受信した乱数を引数とする鍵生成コマンドを、ＩＣカードＲ／Ｗ１１を介してＩＣカード１３に送信する（ステップＳ２０６）。
【００５２】
ＩＣカード１３のＣＰＵ５１は、鍵生成コマンド５７を実行してセッション鍵を生成し（ステップＳ２０７）、ＩＣカードＲ／Ｗ１１を介してクライアント端末９にＯＫを送信する（ステップＳ２０８）。
【００５３】
クライアント端末９のＣＰＵ２１は、ＩＣカード１３からＯＫを受信すると（ステップＳ２０９）、計算したハッシュ値を引数とする署名コマンドを、ＩＣカードＲ／Ｗ１１を介してＩＣカード１３に送信する（ステップＳ２１０）。
【００５４】
ＩＣカード１３のＣＰＵ５１は、署名コマンド５６を実行してハッシュ値にたいしてセッション鍵を用いて署名し（ステップＳ２１１）、Ｉ／ＣカードＲ／Ｗ１１を介して署名結果をクライアント端末９に送信する（ステップＳ２１２）。
【００５５】
クライアント端末９のＣＰＵ２１は、ＩＣカード１３から署名結果を受信し（ステップＳ２１３）、受信した署名結果を検証サーバ５に送信する（ステップＳ２１４）。
【００５６】
検証サーバ５のＣＰＵ２１は、記憶装置２４に保持しているシンクライアントＯＳイメージ４７の開始アドレス、終了アドレスの範囲のハッシュ値を計算し、ハッシュ値をステップＳ２０３において生成したセッション鍵を用いて暗号化し、署名を作成する（ステップＳ２１５）。検証サーバ５のＣＰＵ２１は、作成した署名と、クライアント端末９から受信した署名結果が一致するか判定する（ステップＳ２１６）。
【００５７】
署名結果が一致する場合（ステップＳ２１６のＹｅｓ）、検証サーバ５のＣＰＵ２１はクライアント端末９にＯＫを送信し、検証時刻を現在時刻に更新する（ステップＳ２１８）。また、検証サーバ５のＣＰＵ２１は、クライアント端末９からシンクライアントサーバ３へのパケットを中継し（ステップＳ２１９）、シンクライアントサーバ３からクライアント端末９へのパケットを中継する（ステップＳ２２０）。これによって、クライアント端末９とシンクライアントサーバ３の間の通信が継続される。
【００５８】
一方、署名結果が一致しない場合（ステップＳ２１６のＮｏ）、検証サーバ５のＣＰＵ２１は、エラー値をクライアント端末９に送信し（ステップＳ２２１）、検証時刻をリセットし（ステップＳ２２２）、クライアント端末９とシンクライアントサーバ３の間の通信を切断する（ステップＳ２２３）。
【００５９】
以上説明したように、本発明のシンクライアントシステムでは、クライアント端末上で実行しているシンクライアントＯＳの一部のハッシュ値を計算し、検証サーバで保持しているシンクライアントＯＳイメージから計算したハッシュ値を定期的に比較する。これによって、シンクライアントＯＳが改ざんされていないかを検証することができる。
【００６０】
特に、シンクライアントＯＳ全体ではなく、一部のハッシュ値を計算することにより、演算時間を短縮し、シンクライアントＯＳが実行する他の処理への影響を低減することができる。
また、ハッシュ値を計算する範囲を指定する開始アドレス、終了アドレスを毎回ランダムに設定して検証を定期的に繰り返すことにより、シンクライアントＯＳのイメージのほぼ全体を順次検証でき、シンクライアントＯＳへの改ざんを早期に発見することが可能となる。更に、ハッシュ値の傍受による悪用も防止することができる。
【００６１】
以上、添付図面を参照しながら、本発明に係るシンクライアントシステム等の好適な実施形態について説明したが、本発明は係る例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【００６２】
１………シンクライアントシステム
３………シンクライアントサーバ
５………検証サーバ
７………ファイアウォール
９………クライアント端末
１１………ＩＣカードＲ／Ｗ
１３………ＩＣカード
１５………ＵＳＢメモリ
１７………ネットワーク
【図１】
2012212292.tif 000003
【図２】
2012212292.tif 000004
【図３】
2012212292.tif 000005
【図４】
2012212292.tif 000006
【図５】
2012212292.tif 000007
【図６】
2012212292.tif 000008
【図７】
2012212292.tif 000009
【図８】
2012212292.tif 000010