(57)【要約】【課題】携帯型記憶デバイスに記憶されたシンクライアントＯＳを容易に更新することが可能なシンクライアントシステム等を提供する。【解決手段】クライアント端末１０は、ユーザによって、最新版シンクライアントＯＳをダウンロードすることが指示された場合、ネットワーク４０およびVPNサーバ５０を介して更新サーバ８０にアクセスし、最新版シンクライアントＯＳのイメージファイルをダウンロードし、USBデバイス２０の所定領域に一時的に保存する。クライアント端末１０は、マウントされたUSBデバイス２０の所定領域に最新版シンクライアントＯＳが一時的に保存されているか否かを判定し、最新版シンクライアントＯＳが一時的に保存されていると判定した場合には、最新版シンクライアントＯＳのデータ検証を行い、検証に成功すると、最新版シンクライアントＯＳの更新処理を行う。【選択図】図１
2012058803.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末、および、ネットワークを介して前記クライアント端末からの要求に応じてアプリケーションを実行するシンクライアントサーバからなるシンクライアントシステムにおいて、
前記クライアント端末は、
更新対象のシンクライアントオペレーティングシステムのイメージファイルを、装着された携帯型記憶デバイスの第１の領域に一時的に保存する一時保存手段と、
前記第１の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在するか否かを判定する判定手段と、
前記判定手段により前記第１の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在すると判定した場合、前記第１の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルのデータ検証を行うデータ検証手段と、
前記データ検証手段による検証が成功した場合、前記第１の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して、前記携帯型記憶デバイスの第２の領域に記憶するように制御する記憶制御手段と、
前記第２の領域に記憶されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して起動する起動手段と
を備えることを特徴とするシンクライアントシステム。
【請求項２】
前記記憶制御手段は、前記第２の領域に既にデータが存在する場合、前記シンクライアントオペレーティングシステムのイメージファイルを上書きする
ことを特徴とする請求項１に記載のシンクライアントシステム。
【請求項３】
前記記憶制御手段が、前記シンクライアントオペレーティングシステムのイメージファイルを前記第１の領域から読み出して前記第２の領域に記憶した場合、前記第１の領域から前記シンクライアントオペレーティングシステムのイメージファイルを消去する消去手段をさらに備える
ことを特徴とする請求項１または請求項２に記載のシンクライアントシステム。
【請求項４】
クライアント端末、および、ネットワークを介して前記クライアント端末からの要求に応じてアプリケーションを実行するシンクライアントサーバからなるシンクライアントシステムのオペレーティングシステム更新方法において、
前記クライアント端末は、
更新対象のシンクライアントオペレーティングシステムのイメージファイルを、装着された携帯型記憶デバイスの第１の領域に一時的に保存する一時保存ステップと、
前記第１の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在するか否かを判定する判定ステップと、
前記判定ステップにより前記第１の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在すると判定した場合、前記第１の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルのデータ検証を行うデータ検証ステップと、
前記データ検証ステップによる検証が成功した場合、前記第１の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して、前記携帯型記憶デバイスの第２の領域に記憶するように制御する記憶制御ステップと、
前記第２の領域に記憶されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して起動する起動ステップと
を含むことを特徴とするオペレーティングシステム更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シンクライアントシステムに関し、特に、携帯型記憶デバイスに記憶されたシンクライアントオペレーティングシステムを容易に更新することが可能なシンクライアントシステム等に関するものである。
【背景技術】
【０００２】
近年、クライアント端末に必要最小限の機能のみを持たせ、アプリケーションの処理などの機能をサーバに集約させたシンクライアントシステムの導入が増えてきている。
【０００３】
また、専用のクライアント端末を利用しなくても、既存の端末を利用してシンクライアント環境を実現することも可能である。これは、例えば、シンクライアントシステム専用のシンクライアントＯＳ（Operating  System）やアプリケーションを格納したUSB（Universal  Serial  Bus）メモリのような携帯型記憶デバイスを既存の端末に装着した状態で端末を起動させることにより、既存の端末を専用のクライアント端末と同じ状態にすることができる（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１４６２４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
携帯型記憶デバイスに記憶される専用のシンクライアントＯＳは、最低限の機能のみ実装されており、また毎回同じＯＳイメージが起動されることを前提としている。従って、基本的に、携帯型記憶デバイス配布後にシンクライアントＯＳイメージを変更することはないが、機能の追加や脆弱性対策等の理由により、シンクライアントＯＳイメージを更新させたい場合がある。
【０００６】
しかしながら、通常、セキュリティポリシーとして、シンクライアントＯＳの起動中、携帯型記憶デバイスやハードディスクにデータを記憶しないため、シンクライアントＯＳの起動中、更新モジュールをネットワーク経由にてダウンロードしても、それを記憶する場所がない課題があった。
【０００７】
つまり、シンクライアントシステム上、リモートアクセス中にネットワークへ接続し、更新されたソフトウエアモジュールのみを取得し、インストールするといった使用方法は不可能である。
【０００８】
また、一度配布した携帯型記憶デバイスを回収して、更新モジュールを入れ直す作業も、ユーザ数や管理者の負担を考慮すると現実的ではない。
【０００９】
本発明は、前述した問題点に鑑みてなされたもので、その目的とすることは、携帯型記憶デバイスに記憶されたシンクライアントオペレーティングシステムを容易に更新することが可能なシンクライアントシステム、およびオペレーティングシステム更新方法を提供することである。
【課題を解決するための手段】
【００１０】
前述した目的を達成するために、第１の発明は、クライアント端末、および、ネットワークを介して前記クライアント端末からの要求に応じてアプリケーションを実行するシンクライアントサーバからなるシンクライアントシステムにおいて、前記クライアント端末が、更新対象のシンクライアントオペレーティングシステムのイメージファイルを、装着された携帯型記憶デバイスの第１の領域に一時的に保存する一時保存手段と、前記第１の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在するか否かを判定する判定手段と、前記判定手段により前記第１の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在すると判定した場合、前記第１の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルのデータ検証を行うデータ検証手段と、前記データ検証手段による検証が成功した場合、前記第１の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して、前記携帯型記憶デバイスの第２の領域に記憶するように制御する記憶制御手段と、前記第２の領域に記憶されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して起動する起動手段とを備えることを特徴とするシンクライアントシステムである。第１の発明によって、一度配布したUSBデバイスに記憶されているシンクライアントＯＳのイメージファイルの更新処理を容易に行うことができる。また、イメージファイルの署名検証を行うようにしたので、安全に更新処理を行うことができる。
【００１１】
前記記憶制御手段は、前記第２の領域に既にデータが存在する場合、前記シンクライアントオペレーティングシステムのイメージファイルを上書きする。
これにより、最新版のシンクライアントＯＳのみを確実に記憶することができ、誤って古いシンクライアントＯＳが起動されてしまうことを防止することができる。
【００１２】
前記記憶制御手段が、前記シンクライアントオペレーティングシステムのイメージファイルを前記第１の領域から読み出して前記第２の領域に記憶した場合、前記第１の領域から前記シンクライアントオペレーティングシステムのイメージファイルを消去する消去手段をさらに備える。
これにより、正しく更新処理が行われてから、必要がなくなったデータを消去することができる。
【００１３】
第２の発明は、クライアント端末、および、ネットワークを介して前記クライアント端末からの要求に応じてアプリケーションを実行するシンクライアントサーバからなるシンクライアントシステムのオペレーティングシステム更新方法において、前記クライアント端末が、更新対象のシンクライアントオペレーティングシステムのイメージファイルを、装着された携帯型記憶デバイスの第１の領域に一時的に保存する一時保存ステップと、前記第１の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在するか否かを判定する判定ステップと、前記判定ステップにより前記第１の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在すると判定した場合、前記第１の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルのデータ検証を行うデータ検証ステップと、前記データ検証ステップによる検証が成功した場合、前記第１の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して、前記携帯型記憶デバイスの第２の領域に記憶するように制御する記憶制御ステップと、前記第２の領域に記憶されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して起動する起動ステップとを含むことを特徴とするオペレーティングシステム更新方法である。
【発明の効果】
【００１４】
本発明により、シンクライアントシステムにおいて、携帯型記憶デバイスに記憶されたシンクライアントオペレーティングシステムを容易に更新することが可能なシンクライアントシステム、およびオペレーティングシステム更新方法を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態としてのUSBシンクライアントシステムの構成例を示す図である。
【図２】クライアント端末の構成例を示す図である。
【図３】USBデバイスの構成例を示す図である。
【図４】完全性検証サーバの機能構成例を示すブロック図である。
【図５】更新サーバの機能構成例を示すブロック図である。
【図６】最新版ＯＳリストの情報例を示す図である。
【図７】最新版シンクライアントＯＳのダウンロード処理を説明するフローチャートである。
【図８】シンクライアントＯＳの更新処理を説明するフローチャートである。
【図９】図９のステップＳ２５における通常のクライアント処理の詳細を説明するフローチャートである。
【図１０】USBシンクライアントシステムの他の構成例を示す図である。
【発明を実施するための形態】
【００１６】
以下、図面に基づいて、本発明の実施形態を詳細に説明する。
【００１７】
［本発明の実施の形態］
図１は、本発明の実施の形態としてのUSB（Universal Serial Bus）シンクライアントシステムの構成例を示す図である。
【００１８】
図１に示すように、USBシンクライアントシステムは、クライアント端末１０、クライアント端末１０と接続されるUSBデバイス２０およびＩＣカードリーダ・ライタ３０、クライアント端末１０とネットワーク４０を介して接続されるVPN（Virtual Private Network）サーバ５０、VPNサーバ５０と接続される完全性検証サーバ６０、完全性検証サーバ６０と接続されるシンクライアントサーバ７０、VPNサーバ５０と接続される更新サーバ８０とから構成される。なお、クライアント端末１０の数は、任意であり、図１に示されるように１つに限られるものではない。
【００１９】
USBシンクライアントシステムとは、シンクライアントＯＳ（Operation System）が格納されたUSBデバイス２０をクライアント端末１０にマウント（装着）し、このクライアント端末１０をシンクライアント化させてシンクライアントサーバ７０にリモートアクセスするシステムのことである。シンクライアントＯＳとしては、例えば、Linux（登録商標）があるが、これに限定されるものではない。
【００２０】
クライアント端末１０は、CPU（Central Processing Unit）、ROM（Read Only Memory）、RAM（Random Access Memory）、およびHDD（Hard Disc Drive）などを実装したコンピュータシステムである。クライアント端末１０は、ユーザによって、最新版シンクライアントＯＳをダウンロードすることが指示された場合、ネットワーク４０およびVPNサーバ５０を介して更新サーバ８０にアクセスし、最新版シンクライアントＯＳのイメージファイルをダウンロードし、USBデバイス２０の所定領域に一時的に保存する。
【００２１】
クライアント端末１０は、マウントされたUSBデバイス２０の所定領域に最新版シンクライアントＯＳが一時的に保存されているか否かを判定し、最新版シンクライアントＯＳが一時的に保存されていると判定した場合には、最新版シンクライアントＯＳのデータ検証を行い、検証に成功すると、最新版シンクライアントＯＳの更新処理を行う。
【００２２】
クライアント端末１０は、マウントされたUSBデバイス２０の所定領域に最新版シンクライアントＯＳが保存されていないと判定した場合には、USBデバイス２０に記憶されているシンクライアントＯＳを読み出して起動し、ネットワーク４０を介してVPNサーバ５０との認証を行う。クライアント端末１０は、VPNサーバ５０との認証に成功すると、ネットワーク４０およびVPNサーバ５０を介して完全性検証サーバ６０との認証を行う。
【００２３】
クライアント端末１０は、完全性検証サーバ６０との認証に成功すると、ネットワーク４０、VPNサーバ５０、および完全性検証サーバ６０を介してシンクライアントサーバ７０との認証を行う。クライアント端末１０は、シンクライアントサーバ７０との認証に成功すると、シンクライアントサーバ７０で管理されているアプリケーションを遠隔で実行させる。
【００２４】
USBデバイス２０は、クライアント端末１０と着脱可能になされており、クライアント端末１０で実行するためのシンクライアントＯＳ等を記憶する携帯型記憶デバイスである。本実施の形態では、携帯型記憶デバイスとしてUSBメモリを適用するが、これに限らず、他の記憶媒体を用いることも可能である。
【００２５】
ＩＣカードリーダ・ライタ３０は、ＩＣカード３１が装着（近接）されると、ＩＣカード３１に記憶されているデータを読み出して、クライアント端末１０に送信したり、クライアント端末１０から受信したデータを、ＩＣカード３１に書き込んだりする。ＩＣカード３１には、署名鍵やPIN（Personal identification number）認証用のアプレット等が記憶されている。PINとは、利用者本人であることを識別するための暗証番号である。
【００２６】
ネットワーク４０は、公衆回線網、ローカルエリアネットワーク、またはインターネットなどのネットワーク、デジタル衛星放送といった、有線または無線のいずれのものでもよい。
【００２７】
VPNサーバ５０は、CPU、ROM、RAM、およびHDDなどを実装したコンピュータシステムであり、Ipsec（Security Architecture for Internet Protocol）またはSSL（Secure Sockets Layer）を利用して、ネットワーク４０を介してクライアント端末１０と送受信するデータを暗号化することで、VPNを構築するために設置される機器である。
【００２８】
完全性検証サーバ６０は、CPU、ROM、RAM、およびHDDなどを実装したコンピュータシステムであり、ハッシュ値を含む構成証明メッセージ等を用いて、プラットフォーム完全性を検証するための認証サーバである。プラットフォーム完全性検証とは、シンクライアントＯＳが改竄されてしまうと、個人データなどの機密データが漏洩する可能性があるため、クライアント端末１０に展開されるシンクライアントＯＳが改竄されているか否かを検証することである。
【００２９】
シンクライアントサーバ７０は、CPU、ROM、RAM、およびHDDなどを実装したコンピュータシステムであり、さまざまなアプリケーションを一括管理し、クライアント端末１０からの要求に応じて、アプリケーションを実行する。またシンクライアントサーバ７０は、最新版シンクライアントＯＳのイメージファイルを保存しており、クライアント端末１０からの要求に応じて、そのイメージファイルを転送する。
【００３０】
なお、完全性検証サーバ６０が行うプラットフォーム完全性を検証する機能をシンクライアントサーバ７０に搭載するようにしてもよい。
【００３１】
更新サーバ８０は、CPU、ROM、RAM、およびHDDなどを実装したコンピュータシステムであり、最新版シンクライアントＯＳのイメージファイルを所有（記憶）しており、クライアント端末１０からの要求に応じて、そのイメージファイルを転送する。
【００３２】
図２は、図１に示すクライアント端末１０の構成例を示す図である。このクライアント端末１は、CPU１１、ROM１２、RAM１３、および入出力インターフェイス１４が、バス１５を介して接続されている。入出力インターフェイス１４には、入力部１６、表示部１７、記憶部１８、および通信部１９が接続されている。また入出力インターフェイス１４には、USBデバイス２０やＩＣカードリーダ・ライタ３０が着脱可能になっている。
【００３３】
CPU１１は、入力部１６からの入力信号に基づいてクライアント端末１０を起動するためのブートプログラムをROM１２から読み出して実行し、記憶部１８に格納されている各種オペレーティングシステムを読み出す。またCPU１１は、マウントされたUSBデバイス２０に記憶されているシンクライアントＯＳのイメージファイルをRAM１３に展開し、起動させるブート手段として機能する。
【００３４】
さらにCPU１１は、入力部１６からの入力信号に基づいて各種の制御を行ったり、ROM１２や記憶部１８に記憶されたプログラムおよびデータを読み出してRAM１３にロードしたり、あるいはRAM１３から読み出されたプログラムのコマンドに基づいて、データ演算または加工などの一連の処理を実行する。
【００３５】
入力部１６は、クライアント端末１０の操作者が各種の操作を入力するキーボードやマウスなどの入力デバイスにより構成されており、操作者の操作に基づいて入力信号を生成し、入出力インターフェイス１４およびバス１５を介してCPU１１に送信する。
【００３６】
表示部１７は、例えば液晶ディスプレイであり、CPU１１からバス１５および入出力インターフェイス１４を介して受信した信号に基づいて、CPU１１の処理結果などを表示する。
【００３７】
記憶部１８は、半導体メモリや磁気ディスクなどで構成されており、CPU１１で実行されるプログラムやデータを記憶する。記憶部１８には、CPU１１が実行するプログラムとして、例えば、各サーバとの認証を行うための認証アプリケーション等が用意される。
【００３８】
通信部１９は、LAN（Local Area Network）カードやモデムなどで構成されており、クライアント端末１０をローカルエリアネットワークやインターネットといった通信媒体であるネットワーク４０に接続することを可能にする。すなわち通信部１９は、通信媒体から受信したデータを、入出力インターフェイス１４およびバス１５を介してCPU１１に送信し、CPU１１からバス１５および入出力インターフェイス１４を介して受信したデータを、ネットワーク４０に送信する。
【００３９】
USBデバイス２０には、シンクライアントＯＳや起動プログラムが記憶されており、CPU１１からの要求に応じて、それらの情報が、入出力インターフェイス１４およびバス１５を介してCPU１１に送信される。
【００４０】
ＩＣカードリーダ・ライタ３０は、ＩＣカード３１に記憶されているデータを読み出して、入出力インターフェイス１４およびバス１５を介してCPU１１に送信したり、CPU１１からバス１５および入出力インターフェイス１４を介して受信したデータを、ＩＣカード３１に書き込んだりする。
【００４１】
図３は、USBデバイス２０の構成例を示す図である。
【００４２】
図３に示すように、USBデバイス２０は、フラッシュメモリ部２１およびセキュアメモリ部２２から構成されている。
フラッシュメモリ部２１は、起動用パーティション２１１、最新版ＯＳ保存用パーティション２１２、データ設定パーティション２１３、およびＯＳ用パーティション２１４の領域から構成されている。またＯＳ用パーティション２１４には、クライアント端末１０上で動作するシンクライアントＯＳ２１５のイメージ（バイトコード）が格納されている。
【００４３】
起動用パーティション２１１は、初期RAMディスクやブートローダが格納される領域である。初期RAMディスクとは、クライアント端末１０の起動時にクライアント端末１０のRAM１３上にロードされる暫定的なルートファイルシステムのイメージで、初期スクリプトを含む。初期スクリプトは、クライアント端末１０のRAM１３上に仮想的なハードディスク領域であるRAMディスク領域を作成し、マウントする機能を実現する。ブートローダとは、クライアント端末１０の起動直後に実行され、特定の領域に配置されるＯＳを起動するための基本プログラムで、ＯＳの基本機能を実装したソフトウェアであるカーネルおよび初期RAMイメージをクライアント端末１０のRAM１３にロードする機能を実現する。ルートファイルシステムには、例えば、Linux（登録商標）で主流のext3（third
extended file system）やext2（second
extended file system）などがある。
【００４４】
最新版ＯＳ保存用パーティション２１２は、シンクライアントＯＳ２１５の更新時に更新サーバ８０よりダウンロードした署名付き最新版シンクライアントＯＳのイメージファイルを一時的に保存するためのFAT（File Allocation Table）領域である。この最新版ＯＳ保存用パーティション２１２は、更新対象のシンクライアントＯＳ２１５のイメージファイルを一時的に保存する第１の領域として機能する。
【００４５】
なお、最新版ＯＳ保存用パーティション２１２は、FATに限定されるものではなく、シンクライアントＯＳ２１５が読み書き可能で、かつ、クライアント端末１０の記憶部１８にインストールされている通常のＯＳ（シンクライアントＯＳ２１５ではないＯＳ）が読み書き可能な記憶領域であれば良い。例えば、Windows（登録商標）のファイルシステムであれば、FAT３２、exFAT（Extended FAT）、NTFS（New Technology File System）がある。
【００４６】
データ設定パーティション２１３は、リモートアクセス接続用ネットワーク設定ファイルが格納される領域である。リモートアクセス接続用ネットワーク設定ファイルは、暗号化されており、シンクライアントＯＳ２１５の起動時に復号される。
【００４７】
ＯＳ用パーティション２１４は、最新版ＯＳ保存用パーティション２１２に一時的に保存されているシンクライアントＯＳ２１５のイメージファイルを読み出して記憶する第２の領域として機能する。シンクライアントＯＳ２１５のイメージファイルは、暗号化されており、シンクライアントＯＳ２１５の起動時に復号される。
【００４８】
シンクライアントＯＳ２１５には、接続・送受信機能２１５Ａ、ＯＳ更新用アプリケーション２１５Ｂ、計測ソフトウェア２１５Ｃ、ＭＡＣ鍵２１５Ｄが含まれる。
【００４９】
接続・送受信機能２１５Ａは、各サーバに接続し、各サーバとデータの送受信を行う機能である。ＯＳ更新用アプリケーション２１５Ｂは、シンクライアントＯＳ２１５の更新を行うためのアプリケーションである。計測ソフトウェア２１５Ｃは、シンクライアントＯＳ２１５のイメージのハッシュ値を演算する機能を備えたコンピュータプログラムである。ＭＡＣ鍵２１５Ｄは、クライアント端末１０のプラットフォーム完全性検証で利用する暗号鍵としてハードコードされている。
【００５０】
セキュアメモリ部２２には、USBデバイス２０を一意に識別することが可能な情報であるデバイスＩＤ２２１、デジタル署名コマンド２２２、デジタル署名秘密鍵２２３、ＭＡＣ鍵２２４が格納されている。
【００５１】
デジタル署名秘密鍵２２３、ＭＡＣ鍵２２４は、クライアント端末１０のプラットフォーム完全性検証で利用する暗号鍵である。デジタル署名コマンド２２２は、ＭＡＣ鍵２２４を用いて、クライアント端末１０が生成する構成証明メッセージのＭＡＣを検証し、構成証明メッセージの検証に成功すると、デジタル署名秘密鍵２２３を用いて、構成証明メッセージのデジタル署名を生成するためのコマンドである。
【００５２】
図４は、完全性検証サーバ６０の機能構成例を示すブロック図である。図４に示す機能部のうちの少なくとも一部は、完全検証サーバ６０のCPUにより検証プログラムが実行されることによって実現される。
【００５３】
図４に示すように、完全性検証サーバ６０は、デジタル署名検証部６１、メッセージ検証部６２、デジタル署名公開鍵記憶部６３、およびハッシュ値の期待値記憶部６４の機能を少なくとも有する。
【００５４】
デジタル署名検証部６１は、クライアント端末１０が生成した構成証明メッセージおよびデジタル署名を受信すると作動し、デジタル署名公開鍵記憶部６３に記憶されているデジタル署名公開鍵を用いて、定められたデジタル署名検証アルゴリズムに従い、構成証明メッセージのデジタル署名を検証することで、デジタル署名を生成したクライアント端末１０の正当性を検証する。
【００５５】
メッセージ検証部６２は、デジタル署名検証部６１が構成証明メッセージのデジタル署名の検証に成功すると作動し、シンクライアントＯＳ２１５のハッシュ値の期待値記憶部６４に記憶されているハッシュ値の期待値を参照し、構成証明メッセージに含まれるハッシュ値が正しい内容であるか否かを確認することで、構成証明メッセージの正当性を検証する。
【００５６】
デジタル署名公開鍵記憶部６３は、デジタル署名検証部６１が構成証明メッセージのデジタル署名を検証する際に利用する、USBデバイス２０に記憶されているデジタル署名秘密鍵２２３と対になるデジタル署名公開鍵を記憶する。ハッシュ値の期待値記憶部６４は、シンクライアントＯＳ２１５のハッシュ値の期待値を記憶する。
【００５７】
図５は、更新サーバ８０の機能構成例を示すブロック図である。図５に示す機能部のうちの少なくとも一部は、更新サーバ８０のCPUによりＯＳ管理アプリケーションが実行されることによって実現される。
【００５８】
図５に示すように、更新サーバ８０は、制御部８１、最新版ＯＳ転送部８２、および最新版ＯＳ記憶部８３の機能を少なくとも有する。
【００５９】
制御部８１は、クライアント端末１０からの要求に応じて、最新版ＯＳ転送部８２や最新版ＯＳ記憶部８３の処理を制御する。最新版ＯＳ転送部８２は、制御部８１の制御の下、最新版ＯＳ記憶部８３に記憶されている情報の中から、クライアント端末１０により転送要求された最新版シンクライアントＯＳのイメージファイルを読み出し、クライアント端末１０に転送する。最新版ＯＳ記憶部８３は、図６に示すような最新版ＯＳリスト８３Ｌに基づいて、最新版シンクライアントＯＳのイメージファイルを記憶している。図６に示す最新版ＯＳリスト８３Ｌの例では、最新版シンクライアントＯＳ名、更新日時、およびファイルサイズが関連付けられている。
【００６０】
次に、図７のフローチャートを参照して、シンクライアントシステムのクライアント端末１０が実行する、最新版シンクライアントＯＳのダウンロード処理について説明する。
【００６１】
まず、更新サーバ８０の管理者から、最新版シンクライアントＯＳのリリースがアナウンスされた場合、ユーザは、最新版シンクライアントＯＳをダウンロードする必要がある。そこで、ユーザは、クライアント端末１０にUSBデバイス２０を装着し、入力部１６を用いて、更新サーバ８０のダウンロード用サイトのURL（Uniform Resource Locator）を入力し、最新版シンクライアントＯＳのダウンロードを指示する。なお、USBデバイス２０は単なる外部記憶装置として機能し、USBデバイス２０内のシンクライアントＯＳ２１５は起動しない。
【００６２】
ステップＳ１において、クライアント端末１０のCPU１１は、最新版シンクライアントＯＳのダウンロードが指示されたか否かを判定し、最新版シンクライアントＯＳのダウンロードが指示されるまで待機する。そして、ステップＳ１において、クライアント端末１０のCPU１１は、最新版シンクライアントＯＳのダウンロードが指示されたと判定した場合、ステップＳ２に進む。
【００６３】
ステップＳ２において、クライアント端末１０のCPU１１は、通信部１９、ネットワーク４０、およびVPNサーバ５０を介して更新サーバ８０のダウンロード用サイトにアクセスし、署名付き最新版シンクライアントＯＳのイメージファイルＭをダウンロードする。署名付き最新版シンクライアントＯＳのイメージファイルＭは、次式（１）のように表すことができる。
Ｍ＝［HASH（OSimage_new）］_Skey ｜｜ OSimage_new        ・・・（１）
【００６４】
上記式（１）において、HASHは、署名作成に利用するハッシュ関数であり、［HASH（OSimage_new）］_Skeyは、ｓバイト長（固定長）の署名部分であり、OSimage_newは、最新版シンクライアントＯＳのイメージファイル部分である。なお、署名付き最新版シンクライアントＯＳのイメージファイルＭの全体が暗号化されており、シンクライアントＯＳ２１５のみがイメージファイルＭ全体を復号することができる。すなわち、イメージファイルＭの復号鍵は、シンクライアントＯＳ２１５のイメージファイルに含めておく。これは、悪意のあるユーザに対してシンクライアントＯＳの処理内容を解析させないように、ユーザにはイメージファイルＭの内容を秘匿にする必要がある為である。イメージファイルＭの暗号鍵は、署名鍵と同じでも良いし、別の鍵でも良い。
【００６５】
ステップＳ２の処理によって、クライアント端末１０の表示部１７には、ダウンロード中を表わすメッセージ、および、ダウンロード完了後はダウンロード完了を表わすメッセージが表示される。ダウンロード完了後、ダウンロードファイル（最新版シンクライアントＯＳのイメージファイルＭ）のコピーを促すメッセージが表示され、ユーザは、そのメッセージに基づいて、ダウンロードファイルのコピーを指示する。
【００６６】
ステップＳ３において、クライアント端末１０のCPU１１は、ダウンロードファイルのコピーが指示されたか否かを判定し、ダウンロードファイルのコピーが指示されるまで待機する。そして、ステップＳ３において、クライアント端末１０のCPU１１は、ダウンロードファイルのコピーが指示されたと判定した場合、ステップＳ４に進む。
【００６７】
ステップＳ４において、クライアント端末１０のCPU１１は、ステップＳ２の処理でダウンロードした最新版シンクライアントＯＳのイメージファイルＭを、USBデバイス２０の最新版ＯＳ保存用パーティション２１２へコピーする。
【００６８】
以上の処理によって、USBデバイス２０の最新版ＯＳ保存用パーティション２１２には、ダウンロードした最新版シンクライアントＯＳのイメージファイルＭがコピーされ、正しく更新処理が完了するまで、そこに一時的に保存される。
【００６９】
次に、図８のフローチャートを参照して、クライアント端末１０が実行する、シンクライアントＯＳの更新処理について説明する。
【００７０】
ステップＳ１１において、クライアント端末１０のCPU１１は、USBデバイス２０がクライアント端末１０に装着されると、入出力インターフェイス１４を利用して、USBデバイス２０とデータのやり取りすることで、クライアント端末１０に装着されたUSBデバイス２０をマウントする。
【００７１】
ステップＳ１２において、クライアント端末１０のCPU１１は、USBデバイス２０のフラッシュメモリ部２１のＯＳ用パーティション２１４に記憶されているシンクライアントＯＳ２１５のイメージファイルを読み出す。ステップＳ１３において、クライアント端末１０のCPU１１は、ステップＳ１２の処理で読み出したシンクライアントＯＳ２１５のイメージファイルをRAM１３に展開し、クライアント端末１０上でシンクライアントＯＳ２１５を起動させる。
【００７２】
シンクライアントＯＳ２１５が起動されると、ユーザは、クライアント端末１０の入力部１６を用いて暗証番号を入力し、ＩＣカード３１に対し、PIN認証を要求する。ステップＳ１４において、クライアント端末１０のCPU１１は、ユーザから入力された暗証番号から、ＩＣカードリーダ・ライタ３０を介してＩＣカード３１に対してPIN認証を要求する。ＩＣカード３１は、クライアント端末１０からの要求に応じて、PIN認証用のアプレットを起動してPIN認証を行い、PIN認証の結果をクライアント端末１０に送信する。
【００７３】
PIN認証に成功すると、ステップＳ１５において、クライアント端末１０のCPU１１は、USBデバイス２０のフラッシュメモリ部２１の最新版ＯＳ保存用パーティション２１２内のデータ有無を確認する。ステップＳ１６において、クライアント端末１０のCPU１１は、最新版ＯＳ保存用パーティション２１２に署名付き最新版シンクライアントＯＳのイメージファイルＭがあるか否かを判定し、署名付き最新版シンクライアントＯＳのイメージファイルＭがあると判定した場合、ステップＳ１７に進む。
【００７４】
ステップＳ１７において、クライアント端末１０のCPU１１は、最新版ＯＳ保存用パーティション２１２内の署名付き最新版シンクライアントＯＳのイメージファイルＭを復号する。ここで利用される復号鍵は、ステップＳ１２において、ＲＡＭ１３に展開されている。ステップＳ１８において、クライアント端末１０のCPU１１は、シンクライアントＯＳ２１５のＯＳ更新用アプリケーション２１５Ｂを起動し、ステップＳ１９において、ＩＣカードリーダ・ライタ３０を介してＩＣカード３１から署名鍵Skeyを取得する。
【００７５】
ステップＳ２０において、クライアント端末１０のCPU１１は、HASH関数、およびステップＳ１９の処理で取得した署名鍵Skeyを利用して、次式（２）および次式（３）に従って、署名付き最新版シンクライアントＯＳのイメージファイルＭの値の署名検証を行う。
Ｍ  ←  Ｍ１＋Ｍ２                    ・・・（２）
［Ｍ１］_Skey ＝＝
HASH（Ｍ２） ？        ・・・（３）
【００７６】
上記式（２）において、署名付き最新版シンクライアントＯＳのイメージファイルＭの先頭からｓバイト（固定長）がＭ１とされ、残りがＭ２とされる。上記式（３）によって署名付き最新版シンクライアントＯＳのイメージファイルＭの値の署名検証が行われる。この検証によって、不正なユーザがＭ２の部分だけ変更しても、そのことを検知することができる。
【００７７】
ステップＳ２１において、クライアント端末１０のCPU１１は、ステップＳ２０の処理により署名付き最新版シンクライアントＯＳのイメージファイルＭの値の署名検証に成功したか否かを判定し、署名検証に成功したと判定した場合、ステップＳ２２に進む。
【００７８】
ステップＳ２２において、クライアント端末１０のCPU１１は、最新版シンクライアントＯＳのイメージファイルＭ２（＝OSimage_new）をUSBデバイス２０のフラッシュメモリ部２１のＯＳ用パーティション２１４内にある既存のシンクライアントＯＳ２１５のイメージファイルに上書きする。
【００７９】
ステップＳ２３において、クライアント端末１０のCPU１１は、USBデバイス２０のフラッシュメモリ部２１の最新版ＯＳ保存用パーティション２１２内の署名付き最新版シンクライアントＯＳのイメージファイルＭを消去する。
【００８０】
ステップＳ２１において、クライアント端末１０のCPU１１は、ステップＳ２０の処理により署名付き最新版シンクライアントＯＳのイメージファイルＭの値の署名検証に失敗したと判定した場合、ステップＳ２４に進む。
【００８１】
ステップＳ２４において、クライアント端末１０のCPU１１は、シンクライアントＯＳ２１５を強制終了し、処理を終了する。
【００８２】
また、ステップＳ１６において、クライアント端末１０のCPU１１は、最新版ＯＳ保存用パーティション２１２に署名付き最新版シンクライアントＯＳのイメージファイルＭがない（更新すべきデータが存在しない）と判定した場合、ステップＳ２５に進み、通常のシンクライアント処理を行う。
【００８３】
次に、図９のフローチャートを参照して、図９のステップＳ２５における通常のクライアント処理の詳細について説明する。
【００８４】
ステップＳ３１において、クライアント端末１０のCPU１１は、シンクライアントＯＳ２１５に含まれる計測ソフトウェア２１５Ｃを起動する。
【００８５】
ステップＳ３２において、クライアント端末１０のCPU１１は、ネットワーク４０を介してVPNサーバ５０に接続し、VPNサーバ５０にユーザ名および認証データ（例えば、パスワード）を送信してユーザ認証を要求する。
【００８６】
ステップＳ３３において、VPNサーバ５０は、ネットワーク４０を介してクライアント端末１０から送信されてきたユーザ名および認証データを用いて、クライアント端末１０を利用するユーザを認証する。
【００８７】
ステップＳ３４において、VPNサーバ５０は、ステップＳ３３の処理でユーザ認証に成功したか否かを判定し、認証に成功したと判定した場合、ステップＳ３５に進み、認証に成功したことを示すメッセージを、ネットワーク４０を介してクライアント端末１０に送信し、接続を許可する。
【００８８】
ステップＳ３４において、VPNサーバ５０は、ステップＳ３３の処理でユーザ認証に失敗したと判定した場合には、エラーメッセージを、ネットワーク４０を介してクライアント端末１０に送信し、処理を終了する。
【００８９】
ステップＳ３６において、クライアント端末１０のCPU１１は、シンクライアントＯＳ２１５の接続・送受信機能２１５Ａを用いて、ネットワーク４０およびVPNサーバ５０を介して完全性検証サーバ６０に接続し、プラットフォーム完全性検証に利用する乱数Ｒｃを生成し、乱数Ｒｃを含む乱数生成要求メッセージを完全性検証サーバ６０に送信する。なお、クライアント端末１０のCPU１１は、プラットフォーム完全性検証が終了するまで、生成した乱数Ｒｃをクライアント端末１０のRAM１３に保持しておく。
【００９０】
ステップＳ３７において、完全性検証サーバ６０のデジタル署名検証部６１は、ネットワーク４０およびVPNサーバ５０を介してクライアント端末１０から乱数Ｒｃを受信すると、プラットフォーム完全性検証で利用する乱数Ｒｓを生成し、乱数Ｒｓをクライアント１０に送信する。なお、完全性検証サーバ６０のデジタル署名検証部６１は、プラットフォーム完全性検証が終了するまで乱数Ｒｃおよび乱数Ｒｓを図示せぬRAMに保持する。
【００９１】
ステップＳ３８において、クライアント端末１０のCPU１１は、完全性検証サーバ６０からVPNサーバ５０およびネットワーク４０を介して乱数Ｒｓを受信すると、それをRAM１３に保持した後、クライアント端末１０のRAM１３に展開されたシンクライアントＯＳ２１５のイメージすべてから、定められたアルゴリズム（例えば、ＳＨＡ１）に従いハッシュ値を演算し、ハッシュ値、乱数Ｒｃおよび乱数Ｒｓが結合された構成証明メッセージを生成する。そして、クライアント端末１０のCPU１１は、シンクライアントＯＳ２１５にハードコードされているＭＡＣ鍵２１５Ｄを用いて、定められた手順（例えば、ISO/IEC 9797-1に準じた手順）に従って、ステップＳ３８の処理で生成した構成証明メッセージのＭＡＣを演算する。
【００９２】
ステップＳ３９において、クライアント端末１０のCPU１１は、演算した構成証明メッセージおよびＭＡＣをコマンドメッセージのデータに含ませ、入出力インターフェイス１４を介してUSBデバイス２０に送信することで、構成証明メッセージのデジタル署名の生成をUSBデバイス２０に要求する。
【００９３】
ステップＳ４０において、USBデバイス２０は、構成証明メッセージおよびＭＡＣを含んだデジタル署名コマンドのコマンドメッセージを受信すると、デジタル署名コマンド２２２を作動させ、ＭＡＣ鍵２２４を用い、クライアント端末１０のCPU１１と同じアルゴリズムで構成証明メッセージからＭＡＣを演算する。USBデバイス２０のデジタル署名コマンド２２２は、クライアント端末１０から送信されたＭＡＣと自身が演算したＭＡＣとが同一であるか検証することで、クライアント端末１０で起動している計測ソフトウェア２１５Ｃを検証する。
【００９４】
ステップＳ４１において、USBデバイス２０のデジタル署名コマンド２２２は、ステップＳ４０の処理で構成証明メッセージのＭＡＣの検証に成功したか否かを判定し、検証に成功したと判定した場合、ステップＳ４２に進む。ステップＳ４２において、USBデバイス２０のデジタル署名コマンド２２２は、デジタル署名秘密鍵２２３を用い、定められたデジタル署名生成アルゴリズム（例えば、PKCS#1など）に従い、構成証明メッセージのデジタル署名を生成し、クライアント端末１０に返信する。
【００９５】
ステップＳ４１において、USBデバイス２０のデジタル署名コマンド２２２は、ステップＳ４０の処理で構成証明メッセージのＭＡＣの検証に失敗したと判定した場合、ＭＡＣの検証に失敗したことを示すエラーメッセージをクライアント端末１０に返信して、処理を終了する。
【００９６】
ステップＳ４３において、クライアント端末１０のCPU１１は、接続・送受信機能２１５Ａを用いて、ステップＳ３８の処理で生成した構成証明メッセージ、およびUSBデバイス２０から返信されたデジタル署名を、ネットワーク４０およびVPNサーバ５０を介して完全性検証サーバ６０に送信する。
【００９７】
ステップＳ４４において、完全性検証サーバ６０は、構成証明メッセージとデジタル署名を受信するとデジタル署名検証部６１が作動し、デジタル署名公開鍵記憶部６３に記憶されているデジタル署名公開鍵を用いて、定められたアルゴリズムに従い、構成証明メッセージのデジタル署名を検証することで、デジタル署名を生成したUSBデバイス２０の正当性を検証する。
【００９８】
そして、構成証明メッセージのデジタル署名の検証に成功すると、完全性検証サーバ６０のメッセージ検証部６２が作動し、完全性検証サーバ６０のRAMに保持されている乱数ＲｃおよびＲｓ、並びに、ハッシュ値の期待値記憶部６４に記憶されているハッシュ値の期待値を参照し、構成証明メッセージに含まれる乱数Ｒｃ、Ｒｓおよびハッシュ値が正しい値であるかを確認することで、構成証明メッセージの正当性を検証する。
【００９９】
ステップＳ４５において、完全性検証サーバ６０のメッセージ検証部６２は、構成証明メッセージの検証に成功したか否かを判定し、構成証明メッセージの検証に成功したと判定した場合、ステップＳ４６に進み、認証に成功したことを示すメッセージを、VPNサーバ５０およびネットワーク４０を介してクライアント端末１０に送信し、接続を許可する。
【０１００】
ステップＳ４５において、完全性検証サーバ６０は、ステップＳ４４の処理で構成証明メッセージの検証に失敗したと判定した場合には、エラーメッセージを、クライアント端末１０に送信し、処理を終了する。
【０１０１】
ステップＳ４７において、クライアント端末１０のCPU１１は、接続・送受信機能２１５Ａを用いて、ネットワーク４０、VPNサーバ５０、および完全性検証サーバ６０を介してシンクライアントサーバ７０に接続し、シンクライアントサーバ７０にユーザ名および認証データ（例えば、パスワード）を送信してユーザ認証を要求する。
【０１０２】
ステップＳ４８において、シンクライアントサーバ７０は、クライアント端末１０からネットワーク４０、VPNサーバ５０、および完全性検証サーバ６０を介して送信されてきたユーザ名および認証データを用いて、クライアント端末１０を利用するユーザを認証する。
【０１０３】
ステップＳ４９において、シンクライアントサーバ７０は、ステップＳ４８の処理でユーザ認証に成功したか否かを判定し、認証に成功したと判定した場合、ステップＳ５０に進み、認証に成功したことを示すメッセージを、完全性検証サーバ６０、VPNサーバ５０、およびネットワーク４０を介してクライアント端末１０に送信し、接続を許可する。これにより、クライアント端末１０のCPU１１は、シンクライアントサーバ７０へリモートアクセスすることができる。
【０１０４】
ステップＳ４９において、シンクライアントサーバ７０は、ステップＳ４８の処理でユーザ認証に失敗したと判定した場合には、エラーメッセージをクライアント端末１０に送信し、処理を終了する。
【０１０５】
［発明の実施の形態における効果］
１．以上のように、一度配布したUSBデバイス２０に記憶されているシンクライアントＯＳ２１５の更新処理を容易に行うことができる。
【０１０６】
２．ダウンロードした更新対象のシンクライアントＯＳ２１５のイメージファイルを一時的に最新版ＯＳ保存用パーティション２１２に保存することで、更新処理に失敗した場合にも、再度、最新版ＯＳ保存用パーティション２１２から更新対象のシンクライアントＯＳ２１５のイメージファイルを読み出して、更新処理を実行することができる。
【０１０７】
３．暗号化された更新対象のシンクライアントＯＳ２１５のイメージファイルをダウンロードし、そのダウンロードしたイメージファイルの署名検証を行うようにしたので、安全に、シンクライアントＯＳ２１５の更新処理を行うことができる。
【０１０８】
［変形例］
以上においては、シンクライアント環境にあるクライアント端末１０で、USBデバイス２０に記憶されているシンクライアントＯＳ２１５の更新処理を行うようにしたが、これに限らず、最新版のシンクライアントＯＳ２１５がダウンロードされたUSBデバイス２０を外出先の外部端末に装着し、そこで更新処理を行うことも可能である。
【０１０９】
図１０は、USBシンクライアントシステムの他の構成例を示す図である。図１０の例の場合、企業の社内ネットワーク内にあるクライアント端末１０が更新サーバ８０にアクセスし、最新版のシンクライアントＯＳ２１５をダウンロードしてUSBデバイス２０に記憶する。そして、ユーザは、そのUSBデバイス２０を外部端末１００に装着し、そこで更新処理を行うようにするものである。図中、点線で囲まれた領域内は、社内ネットワークを表わしている。
【０１１０】
外部端末１００は、社内ネットワークの外部に設置され、画面の出力表示やキーボード、マウスのような入力操作等の最低限の機能を有するパーソナルコンピュータのような端末で、ハードディスク等の記憶装置を保持してもよいし、保持しなくてもよい。外部端末１００は、USBデバイス２０からの起動を最優先するようにBIOS（Basic Input／Output System）が設定されている。
【０１１１】
DMZ（Demilitarized Zone）１１０は、通信ゲートウエイとなるプロキシサーバや外部公開向けのサーバ（いずれも不図示）、ゲートウエイ１１１等が配置される。ゲートウエイ１１１は、SSL（Secure Socekts Layer）−VPNゲートウエイで、外部端末１００からのSSL−VPN接続要求を処理する。DMZ１１０の配置によって、外部端末１００は、社内ネットワークに直接アクセスすることはできず、DMZ１１０を介して通信を行うことになる。
【０１１２】
ルータ１２０は、社内ネットワーク内にあるクライアント端末１０と更新サーバ８０とを接続する通信機器である。ルータ１２０は、DMZ１１０のゲートウエイ１１１を介してネットワーク４０に接続されている。
【０１１３】
図１０に示すような構成例においても、ユーザが、外部端末１００にUSBデバイス２０を装着し、図８のフローチャートを用いて上述したようにして、シンクライアントＯＳ２１５の更新処理を行うことができる。
【０１１４】
そして、安全に更新処理が完了すると、ユーザは、外部端末１００を再起動する。外部端末１００のCPUは、USBデバイス２０内に格納されているシンクライアントＯＳ２１５をRAM上にロードし、シンクライアントＯＳ２１５の接続・送受信機能２１５Ａを用いて、ネットワーク４０を介したクライアント端末１０への安全な通信を確立する。そして、外部端末１００のCPUは、ネットワーク４０を介してクライアント端末１０へのリモートアクセスを行う。
【０１１５】
以上のようにして、一度配布したUSBデバイス２０に記憶されているシンクライアントＯＳ２１５の更新処理を、外部端末でも容易に行うことができる。
【０１１６】
以上、添付図面を参照しながら、本発明に係るシンクライアントシステム等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０１１７】
１０………クライアント端末
１１………CPU
２０………USBデバイス
４０………ネットワーク
６０………完全性検証サーバ
７０………シンクライアントサーバ
８０………更新サーバ
２１５………シンクライアントＯＳ
【図１】
2012058803.tif 000003
【図２】
2012058803.tif 000004
【図３】
2012058803.tif 000005
【図４】
2012058803.tif 000006
【図５】
2012058803.tif 000007
【図６】
2012058803.tif 000008
【図７】
2012058803.tif 000009
【図８】
2012058803.tif 000010
【図９】
2012058803.tif 000011
【図１０】
2012058803.tif 000012