シンクライアントシステム、およびオペレーティングシステム更新方法
【課題】携帯型記憶デバイスに記憶されたシンクライアントOSを容易に更新することが可能なシンクライアントシステム等を提供する。
【解決手段】クライアント端末10は、ユーザによって、最新版シンクライアントOSをダウンロードすることが指示された場合、ネットワーク40およびVPNサーバ50を介して更新サーバ80にアクセスし、最新版シンクライアントOSのイメージファイルをダウンロードし、USBデバイス20の所定領域に一時的に保存する。クライアント端末10は、マウントされたUSBデバイス20の所定領域に最新版シンクライアントOSが一時的に保存されているか否かを判定し、最新版シンクライアントOSが一時的に保存されていると判定した場合には、最新版シンクライアントOSのデータ検証を行い、検証に成功すると、最新版シンクライアントOSの更新処理を行う。
【解決手段】クライアント端末10は、ユーザによって、最新版シンクライアントOSをダウンロードすることが指示された場合、ネットワーク40およびVPNサーバ50を介して更新サーバ80にアクセスし、最新版シンクライアントOSのイメージファイルをダウンロードし、USBデバイス20の所定領域に一時的に保存する。クライアント端末10は、マウントされたUSBデバイス20の所定領域に最新版シンクライアントOSが一時的に保存されているか否かを判定し、最新版シンクライアントOSが一時的に保存されていると判定した場合には、最新版シンクライアントOSのデータ検証を行い、検証に成功すると、最新版シンクライアントOSの更新処理を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シンクライアントシステムに関し、特に、携帯型記憶デバイスに記憶されたシンクライアントオペレーティングシステムを容易に更新することが可能なシンクライアントシステム等に関するものである。
【背景技術】
【0002】
近年、クライアント端末に必要最小限の機能のみを持たせ、アプリケーションの処理などの機能をサーバに集約させたシンクライアントシステムの導入が増えてきている。
【0003】
また、専用のクライアント端末を利用しなくても、既存の端末を利用してシンクライアント環境を実現することも可能である。これは、例えば、シンクライアントシステム専用のシンクライアントOS(Operating System)やアプリケーションを格納したUSB(Universal Serial Bus)メモリのような携帯型記憶デバイスを既存の端末に装着した状態で端末を起動させることにより、既存の端末を専用のクライアント端末と同じ状態にすることができる(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−146242号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
携帯型記憶デバイスに記憶される専用のシンクライアントOSは、最低限の機能のみ実装されており、また毎回同じOSイメージが起動されることを前提としている。従って、基本的に、携帯型記憶デバイス配布後にシンクライアントOSイメージを変更することはないが、機能の追加や脆弱性対策等の理由により、シンクライアントOSイメージを更新させたい場合がある。
【0006】
しかしながら、通常、セキュリティポリシーとして、シンクライアントOSの起動中、携帯型記憶デバイスやハードディスクにデータを記憶しないため、シンクライアントOSの起動中、更新モジュールをネットワーク経由にてダウンロードしても、それを記憶する場所がない課題があった。
【0007】
つまり、シンクライアントシステム上、リモートアクセス中にネットワークへ接続し、更新されたソフトウエアモジュールのみを取得し、インストールするといった使用方法は不可能である。
【0008】
また、一度配布した携帯型記憶デバイスを回収して、更新モジュールを入れ直す作業も、ユーザ数や管理者の負担を考慮すると現実的ではない。
【0009】
本発明は、前述した問題点に鑑みてなされたもので、その目的とすることは、携帯型記憶デバイスに記憶されたシンクライアントオペレーティングシステムを容易に更新することが可能なシンクライアントシステム、およびオペレーティングシステム更新方法を提供することである。
【課題を解決するための手段】
【0010】
前述した目的を達成するために、第1の発明は、クライアント端末、および、ネットワークを介して前記クライアント端末からの要求に応じてアプリケーションを実行するシンクライアントサーバからなるシンクライアントシステムにおいて、前記クライアント端末が、更新対象のシンクライアントオペレーティングシステムのイメージファイルを、装着された携帯型記憶デバイスの第1の領域に一時的に保存する一時保存手段と、前記第1の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在するか否かを判定する判定手段と、前記判定手段により前記第1の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在すると判定した場合、前記第1の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルのデータ検証を行うデータ検証手段と、前記データ検証手段による検証が成功した場合、前記第1の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して、前記携帯型記憶デバイスの第2の領域に記憶するように制御する記憶制御手段と、前記第2の領域に記憶されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して起動する起動手段とを備えることを特徴とするシンクライアントシステムである。第1の発明によって、一度配布したUSBデバイスに記憶されているシンクライアントOSのイメージファイルの更新処理を容易に行うことができる。また、イメージファイルの署名検証を行うようにしたので、安全に更新処理を行うことができる。
【0011】
前記記憶制御手段は、前記第2の領域に既にデータが存在する場合、前記シンクライアントオペレーティングシステムのイメージファイルを上書きする。
これにより、最新版のシンクライアントOSのみを確実に記憶することができ、誤って古いシンクライアントOSが起動されてしまうことを防止することができる。
【0012】
前記記憶制御手段が、前記シンクライアントオペレーティングシステムのイメージファイルを前記第1の領域から読み出して前記第2の領域に記憶した場合、前記第1の領域から前記シンクライアントオペレーティングシステムのイメージファイルを消去する消去手段をさらに備える。
これにより、正しく更新処理が行われてから、必要がなくなったデータを消去することができる。
【0013】
第2の発明は、クライアント端末、および、ネットワークを介して前記クライアント端末からの要求に応じてアプリケーションを実行するシンクライアントサーバからなるシンクライアントシステムのオペレーティングシステム更新方法において、前記クライアント端末が、更新対象のシンクライアントオペレーティングシステムのイメージファイルを、装着された携帯型記憶デバイスの第1の領域に一時的に保存する一時保存ステップと、前記第1の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在するか否かを判定する判定ステップと、前記判定ステップにより前記第1の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在すると判定した場合、前記第1の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルのデータ検証を行うデータ検証ステップと、前記データ検証ステップによる検証が成功した場合、前記第1の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して、前記携帯型記憶デバイスの第2の領域に記憶するように制御する記憶制御ステップと、前記第2の領域に記憶されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して起動する起動ステップとを含むことを特徴とするオペレーティングシステム更新方法である。
【発明の効果】
【0014】
本発明により、シンクライアントシステムにおいて、携帯型記憶デバイスに記憶されたシンクライアントオペレーティングシステムを容易に更新することが可能なシンクライアントシステム、およびオペレーティングシステム更新方法を提供することができる。
【図面の簡単な説明】
【0015】
【図1】本発明の実施の形態としてのUSBシンクライアントシステムの構成例を示す図である。
【図2】クライアント端末の構成例を示す図である。
【図3】USBデバイスの構成例を示す図である。
【図4】完全性検証サーバの機能構成例を示すブロック図である。
【図5】更新サーバの機能構成例を示すブロック図である。
【図6】最新版OSリストの情報例を示す図である。
【図7】最新版シンクライアントOSのダウンロード処理を説明するフローチャートである。
【図8】シンクライアントOSの更新処理を説明するフローチャートである。
【図9】図9のステップS25における通常のクライアント処理の詳細を説明するフローチャートである。
【図10】USBシンクライアントシステムの他の構成例を示す図である。
【発明を実施するための形態】
【0016】
以下、図面に基づいて、本発明の実施形態を詳細に説明する。
【0017】
[本発明の実施の形態]
図1は、本発明の実施の形態としてのUSB(Universal Serial Bus)シンクライアントシステムの構成例を示す図である。
【0018】
図1に示すように、USBシンクライアントシステムは、クライアント端末10、クライアント端末10と接続されるUSBデバイス20およびICカードリーダ・ライタ30、クライアント端末10とネットワーク40を介して接続されるVPN(Virtual Private Network)サーバ50、VPNサーバ50と接続される完全性検証サーバ60、完全性検証サーバ60と接続されるシンクライアントサーバ70、VPNサーバ50と接続される更新サーバ80とから構成される。なお、クライアント端末10の数は、任意であり、図1に示されるように1つに限られるものではない。
【0019】
USBシンクライアントシステムとは、シンクライアントOS(Operation System)が格納されたUSBデバイス20をクライアント端末10にマウント(装着)し、このクライアント端末10をシンクライアント化させてシンクライアントサーバ70にリモートアクセスするシステムのことである。シンクライアントOSとしては、例えば、Linux(登録商標)があるが、これに限定されるものではない。
【0020】
クライアント端末10は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、およびHDD(Hard Disc Drive)などを実装したコンピュータシステムである。クライアント端末10は、ユーザによって、最新版シンクライアントOSをダウンロードすることが指示された場合、ネットワーク40およびVPNサーバ50を介して更新サーバ80にアクセスし、最新版シンクライアントOSのイメージファイルをダウンロードし、USBデバイス20の所定領域に一時的に保存する。
【0021】
クライアント端末10は、マウントされたUSBデバイス20の所定領域に最新版シンクライアントOSが一時的に保存されているか否かを判定し、最新版シンクライアントOSが一時的に保存されていると判定した場合には、最新版シンクライアントOSのデータ検証を行い、検証に成功すると、最新版シンクライアントOSの更新処理を行う。
【0022】
クライアント端末10は、マウントされたUSBデバイス20の所定領域に最新版シンクライアントOSが保存されていないと判定した場合には、USBデバイス20に記憶されているシンクライアントOSを読み出して起動し、ネットワーク40を介してVPNサーバ50との認証を行う。クライアント端末10は、VPNサーバ50との認証に成功すると、ネットワーク40およびVPNサーバ50を介して完全性検証サーバ60との認証を行う。
【0023】
クライアント端末10は、完全性検証サーバ60との認証に成功すると、ネットワーク40、VPNサーバ50、および完全性検証サーバ60を介してシンクライアントサーバ70との認証を行う。クライアント端末10は、シンクライアントサーバ70との認証に成功すると、シンクライアントサーバ70で管理されているアプリケーションを遠隔で実行させる。
【0024】
USBデバイス20は、クライアント端末10と着脱可能になされており、クライアント端末10で実行するためのシンクライアントOS等を記憶する携帯型記憶デバイスである。本実施の形態では、携帯型記憶デバイスとしてUSBメモリを適用するが、これに限らず、他の記憶媒体を用いることも可能である。
【0025】
ICカードリーダ・ライタ30は、ICカード31が装着(近接)されると、ICカード31に記憶されているデータを読み出して、クライアント端末10に送信したり、クライアント端末10から受信したデータを、ICカード31に書き込んだりする。ICカード31には、署名鍵やPIN(Personal identification number)認証用のアプレット等が記憶されている。PINとは、利用者本人であることを識別するための暗証番号である。
【0026】
ネットワーク40は、公衆回線網、ローカルエリアネットワーク、またはインターネットなどのネットワーク、デジタル衛星放送といった、有線または無線のいずれのものでもよい。
【0027】
VPNサーバ50は、CPU、ROM、RAM、およびHDDなどを実装したコンピュータシステムであり、Ipsec(Security Architecture for Internet Protocol)またはSSL(Secure Sockets Layer)を利用して、ネットワーク40を介してクライアント端末10と送受信するデータを暗号化することで、VPNを構築するために設置される機器である。
【0028】
完全性検証サーバ60は、CPU、ROM、RAM、およびHDDなどを実装したコンピュータシステムであり、ハッシュ値を含む構成証明メッセージ等を用いて、プラットフォーム完全性を検証するための認証サーバである。プラットフォーム完全性検証とは、シンクライアントOSが改竄されてしまうと、個人データなどの機密データが漏洩する可能性があるため、クライアント端末10に展開されるシンクライアントOSが改竄されているか否かを検証することである。
【0029】
シンクライアントサーバ70は、CPU、ROM、RAM、およびHDDなどを実装したコンピュータシステムであり、さまざまなアプリケーションを一括管理し、クライアント端末10からの要求に応じて、アプリケーションを実行する。またシンクライアントサーバ70は、最新版シンクライアントOSのイメージファイルを保存しており、クライアント端末10からの要求に応じて、そのイメージファイルを転送する。
【0030】
なお、完全性検証サーバ60が行うプラットフォーム完全性を検証する機能をシンクライアントサーバ70に搭載するようにしてもよい。
【0031】
更新サーバ80は、CPU、ROM、RAM、およびHDDなどを実装したコンピュータシステムであり、最新版シンクライアントOSのイメージファイルを所有(記憶)しており、クライアント端末10からの要求に応じて、そのイメージファイルを転送する。
【0032】
図2は、図1に示すクライアント端末10の構成例を示す図である。このクライアント端末1は、CPU11、ROM12、RAM13、および入出力インターフェイス14が、バス15を介して接続されている。入出力インターフェイス14には、入力部16、表示部17、記憶部18、および通信部19が接続されている。また入出力インターフェイス14には、USBデバイス20やICカードリーダ・ライタ30が着脱可能になっている。
【0033】
CPU11は、入力部16からの入力信号に基づいてクライアント端末10を起動するためのブートプログラムをROM12から読み出して実行し、記憶部18に格納されている各種オペレーティングシステムを読み出す。またCPU11は、マウントされたUSBデバイス20に記憶されているシンクライアントOSのイメージファイルをRAM13に展開し、起動させるブート手段として機能する。
【0034】
さらにCPU11は、入力部16からの入力信号に基づいて各種の制御を行ったり、ROM12や記憶部18に記憶されたプログラムおよびデータを読み出してRAM13にロードしたり、あるいはRAM13から読み出されたプログラムのコマンドに基づいて、データ演算または加工などの一連の処理を実行する。
【0035】
入力部16は、クライアント端末10の操作者が各種の操作を入力するキーボードやマウスなどの入力デバイスにより構成されており、操作者の操作に基づいて入力信号を生成し、入出力インターフェイス14およびバス15を介してCPU11に送信する。
【0036】
表示部17は、例えば液晶ディスプレイであり、CPU11からバス15および入出力インターフェイス14を介して受信した信号に基づいて、CPU11の処理結果などを表示する。
【0037】
記憶部18は、半導体メモリや磁気ディスクなどで構成されており、CPU11で実行されるプログラムやデータを記憶する。記憶部18には、CPU11が実行するプログラムとして、例えば、各サーバとの認証を行うための認証アプリケーション等が用意される。
【0038】
通信部19は、LAN(Local Area Network)カードやモデムなどで構成されており、クライアント端末10をローカルエリアネットワークやインターネットといった通信媒体であるネットワーク40に接続することを可能にする。すなわち通信部19は、通信媒体から受信したデータを、入出力インターフェイス14およびバス15を介してCPU11に送信し、CPU11からバス15および入出力インターフェイス14を介して受信したデータを、ネットワーク40に送信する。
【0039】
USBデバイス20には、シンクライアントOSや起動プログラムが記憶されており、CPU11からの要求に応じて、それらの情報が、入出力インターフェイス14およびバス15を介してCPU11に送信される。
【0040】
ICカードリーダ・ライタ30は、ICカード31に記憶されているデータを読み出して、入出力インターフェイス14およびバス15を介してCPU11に送信したり、CPU11からバス15および入出力インターフェイス14を介して受信したデータを、ICカード31に書き込んだりする。
【0041】
図3は、USBデバイス20の構成例を示す図である。
【0042】
図3に示すように、USBデバイス20は、フラッシュメモリ部21およびセキュアメモリ部22から構成されている。
フラッシュメモリ部21は、起動用パーティション211、最新版OS保存用パーティション212、データ設定パーティション213、およびOS用パーティション214の領域から構成されている。またOS用パーティション214には、クライアント端末10上で動作するシンクライアントOS215のイメージ(バイトコード)が格納されている。
【0043】
起動用パーティション211は、初期RAMディスクやブートローダが格納される領域である。初期RAMディスクとは、クライアント端末10の起動時にクライアント端末10のRAM13上にロードされる暫定的なルートファイルシステムのイメージで、初期スクリプトを含む。初期スクリプトは、クライアント端末10のRAM13上に仮想的なハードディスク領域であるRAMディスク領域を作成し、マウントする機能を実現する。ブートローダとは、クライアント端末10の起動直後に実行され、特定の領域に配置されるOSを起動するための基本プログラムで、OSの基本機能を実装したソフトウェアであるカーネルおよび初期RAMイメージをクライアント端末10のRAM13にロードする機能を実現する。ルートファイルシステムには、例えば、Linux(登録商標)で主流のext3(third
extended file system)やext2(second
extended file system)などがある。
【0044】
最新版OS保存用パーティション212は、シンクライアントOS215の更新時に更新サーバ80よりダウンロードした署名付き最新版シンクライアントOSのイメージファイルを一時的に保存するためのFAT(File Allocation Table)領域である。この最新版OS保存用パーティション212は、更新対象のシンクライアントOS215のイメージファイルを一時的に保存する第1の領域として機能する。
【0045】
なお、最新版OS保存用パーティション212は、FATに限定されるものではなく、シンクライアントOS215が読み書き可能で、かつ、クライアント端末10の記憶部18にインストールされている通常のOS(シンクライアントOS215ではないOS)が読み書き可能な記憶領域であれば良い。例えば、Windows(登録商標)のファイルシステムであれば、FAT32、exFAT(Extended FAT)、NTFS(New Technology File System)がある。
【0046】
データ設定パーティション213は、リモートアクセス接続用ネットワーク設定ファイルが格納される領域である。リモートアクセス接続用ネットワーク設定ファイルは、暗号化されており、シンクライアントOS215の起動時に復号される。
【0047】
OS用パーティション214は、最新版OS保存用パーティション212に一時的に保存されているシンクライアントOS215のイメージファイルを読み出して記憶する第2の領域として機能する。シンクライアントOS215のイメージファイルは、暗号化されており、シンクライアントOS215の起動時に復号される。
【0048】
シンクライアントOS215には、接続・送受信機能215A、OS更新用アプリケーション215B、計測ソフトウェア215C、MAC鍵215Dが含まれる。
【0049】
接続・送受信機能215Aは、各サーバに接続し、各サーバとデータの送受信を行う機能である。OS更新用アプリケーション215Bは、シンクライアントOS215の更新を行うためのアプリケーションである。計測ソフトウェア215Cは、シンクライアントOS215のイメージのハッシュ値を演算する機能を備えたコンピュータプログラムである。MAC鍵215Dは、クライアント端末10のプラットフォーム完全性検証で利用する暗号鍵としてハードコードされている。
【0050】
セキュアメモリ部22には、USBデバイス20を一意に識別することが可能な情報であるデバイスID221、デジタル署名コマンド222、デジタル署名秘密鍵223、MAC鍵224が格納されている。
【0051】
デジタル署名秘密鍵223、MAC鍵224は、クライアント端末10のプラットフォーム完全性検証で利用する暗号鍵である。デジタル署名コマンド222は、MAC鍵224を用いて、クライアント端末10が生成する構成証明メッセージのMACを検証し、構成証明メッセージの検証に成功すると、デジタル署名秘密鍵223を用いて、構成証明メッセージのデジタル署名を生成するためのコマンドである。
【0052】
図4は、完全性検証サーバ60の機能構成例を示すブロック図である。図4に示す機能部のうちの少なくとも一部は、完全検証サーバ60のCPUにより検証プログラムが実行されることによって実現される。
【0053】
図4に示すように、完全性検証サーバ60は、デジタル署名検証部61、メッセージ検証部62、デジタル署名公開鍵記憶部63、およびハッシュ値の期待値記憶部64の機能を少なくとも有する。
【0054】
デジタル署名検証部61は、クライアント端末10が生成した構成証明メッセージおよびデジタル署名を受信すると作動し、デジタル署名公開鍵記憶部63に記憶されているデジタル署名公開鍵を用いて、定められたデジタル署名検証アルゴリズムに従い、構成証明メッセージのデジタル署名を検証することで、デジタル署名を生成したクライアント端末10の正当性を検証する。
【0055】
メッセージ検証部62は、デジタル署名検証部61が構成証明メッセージのデジタル署名の検証に成功すると作動し、シンクライアントOS215のハッシュ値の期待値記憶部64に記憶されているハッシュ値の期待値を参照し、構成証明メッセージに含まれるハッシュ値が正しい内容であるか否かを確認することで、構成証明メッセージの正当性を検証する。
【0056】
デジタル署名公開鍵記憶部63は、デジタル署名検証部61が構成証明メッセージのデジタル署名を検証する際に利用する、USBデバイス20に記憶されているデジタル署名秘密鍵223と対になるデジタル署名公開鍵を記憶する。ハッシュ値の期待値記憶部64は、シンクライアントOS215のハッシュ値の期待値を記憶する。
【0057】
図5は、更新サーバ80の機能構成例を示すブロック図である。図5に示す機能部のうちの少なくとも一部は、更新サーバ80のCPUによりOS管理アプリケーションが実行されることによって実現される。
【0058】
図5に示すように、更新サーバ80は、制御部81、最新版OS転送部82、および最新版OS記憶部83の機能を少なくとも有する。
【0059】
制御部81は、クライアント端末10からの要求に応じて、最新版OS転送部82や最新版OS記憶部83の処理を制御する。最新版OS転送部82は、制御部81の制御の下、最新版OS記憶部83に記憶されている情報の中から、クライアント端末10により転送要求された最新版シンクライアントOSのイメージファイルを読み出し、クライアント端末10に転送する。最新版OS記憶部83は、図6に示すような最新版OSリスト83Lに基づいて、最新版シンクライアントOSのイメージファイルを記憶している。図6に示す最新版OSリスト83Lの例では、最新版シンクライアントOS名、更新日時、およびファイルサイズが関連付けられている。
【0060】
次に、図7のフローチャートを参照して、シンクライアントシステムのクライアント端末10が実行する、最新版シンクライアントOSのダウンロード処理について説明する。
【0061】
まず、更新サーバ80の管理者から、最新版シンクライアントOSのリリースがアナウンスされた場合、ユーザは、最新版シンクライアントOSをダウンロードする必要がある。そこで、ユーザは、クライアント端末10にUSBデバイス20を装着し、入力部16を用いて、更新サーバ80のダウンロード用サイトのURL(Uniform Resource Locator)を入力し、最新版シンクライアントOSのダウンロードを指示する。なお、USBデバイス20は単なる外部記憶装置として機能し、USBデバイス20内のシンクライアントOS215は起動しない。
【0062】
ステップS1において、クライアント端末10のCPU11は、最新版シンクライアントOSのダウンロードが指示されたか否かを判定し、最新版シンクライアントOSのダウンロードが指示されるまで待機する。そして、ステップS1において、クライアント端末10のCPU11は、最新版シンクライアントOSのダウンロードが指示されたと判定した場合、ステップS2に進む。
【0063】
ステップS2において、クライアント端末10のCPU11は、通信部19、ネットワーク40、およびVPNサーバ50を介して更新サーバ80のダウンロード用サイトにアクセスし、署名付き最新版シンクライアントOSのイメージファイルMをダウンロードする。署名付き最新版シンクライアントOSのイメージファイルMは、次式(1)のように表すことができる。
M=[HASH(OSimage_new)]_Skey || OSimage_new ・・・(1)
【0064】
上記式(1)において、HASHは、署名作成に利用するハッシュ関数であり、[HASH(OSimage_new)]_Skeyは、sバイト長(固定長)の署名部分であり、OSimage_newは、最新版シンクライアントOSのイメージファイル部分である。なお、署名付き最新版シンクライアントOSのイメージファイルMの全体が暗号化されており、シンクライアントOS215のみがイメージファイルM全体を復号することができる。すなわち、イメージファイルMの復号鍵は、シンクライアントOS215のイメージファイルに含めておく。これは、悪意のあるユーザに対してシンクライアントOSの処理内容を解析させないように、ユーザにはイメージファイルMの内容を秘匿にする必要がある為である。イメージファイルMの暗号鍵は、署名鍵と同じでも良いし、別の鍵でも良い。
【0065】
ステップS2の処理によって、クライアント端末10の表示部17には、ダウンロード中を表わすメッセージ、および、ダウンロード完了後はダウンロード完了を表わすメッセージが表示される。ダウンロード完了後、ダウンロードファイル(最新版シンクライアントOSのイメージファイルM)のコピーを促すメッセージが表示され、ユーザは、そのメッセージに基づいて、ダウンロードファイルのコピーを指示する。
【0066】
ステップS3において、クライアント端末10のCPU11は、ダウンロードファイルのコピーが指示されたか否かを判定し、ダウンロードファイルのコピーが指示されるまで待機する。そして、ステップS3において、クライアント端末10のCPU11は、ダウンロードファイルのコピーが指示されたと判定した場合、ステップS4に進む。
【0067】
ステップS4において、クライアント端末10のCPU11は、ステップS2の処理でダウンロードした最新版シンクライアントOSのイメージファイルMを、USBデバイス20の最新版OS保存用パーティション212へコピーする。
【0068】
以上の処理によって、USBデバイス20の最新版OS保存用パーティション212には、ダウンロードした最新版シンクライアントOSのイメージファイルMがコピーされ、正しく更新処理が完了するまで、そこに一時的に保存される。
【0069】
次に、図8のフローチャートを参照して、クライアント端末10が実行する、シンクライアントOSの更新処理について説明する。
【0070】
ステップS11において、クライアント端末10のCPU11は、USBデバイス20がクライアント端末10に装着されると、入出力インターフェイス14を利用して、USBデバイス20とデータのやり取りすることで、クライアント端末10に装着されたUSBデバイス20をマウントする。
【0071】
ステップS12において、クライアント端末10のCPU11は、USBデバイス20のフラッシュメモリ部21のOS用パーティション214に記憶されているシンクライアントOS215のイメージファイルを読み出す。ステップS13において、クライアント端末10のCPU11は、ステップS12の処理で読み出したシンクライアントOS215のイメージファイルをRAM13に展開し、クライアント端末10上でシンクライアントOS215を起動させる。
【0072】
シンクライアントOS215が起動されると、ユーザは、クライアント端末10の入力部16を用いて暗証番号を入力し、ICカード31に対し、PIN認証を要求する。ステップS14において、クライアント端末10のCPU11は、ユーザから入力された暗証番号から、ICカードリーダ・ライタ30を介してICカード31に対してPIN認証を要求する。ICカード31は、クライアント端末10からの要求に応じて、PIN認証用のアプレットを起動してPIN認証を行い、PIN認証の結果をクライアント端末10に送信する。
【0073】
PIN認証に成功すると、ステップS15において、クライアント端末10のCPU11は、USBデバイス20のフラッシュメモリ部21の最新版OS保存用パーティション212内のデータ有無を確認する。ステップS16において、クライアント端末10のCPU11は、最新版OS保存用パーティション212に署名付き最新版シンクライアントOSのイメージファイルMがあるか否かを判定し、署名付き最新版シンクライアントOSのイメージファイルMがあると判定した場合、ステップS17に進む。
【0074】
ステップS17において、クライアント端末10のCPU11は、最新版OS保存用パーティション212内の署名付き最新版シンクライアントOSのイメージファイルMを復号する。ここで利用される復号鍵は、ステップS12において、RAM13に展開されている。ステップS18において、クライアント端末10のCPU11は、シンクライアントOS215のOS更新用アプリケーション215Bを起動し、ステップS19において、ICカードリーダ・ライタ30を介してICカード31から署名鍵Skeyを取得する。
【0075】
ステップS20において、クライアント端末10のCPU11は、HASH関数、およびステップS19の処理で取得した署名鍵Skeyを利用して、次式(2)および次式(3)に従って、署名付き最新版シンクライアントOSのイメージファイルMの値の署名検証を行う。
M ← M1+M2 ・・・(2)
[M1]_Skey ==
HASH(M2) ? ・・・(3)
【0076】
上記式(2)において、署名付き最新版シンクライアントOSのイメージファイルMの先頭からsバイト(固定長)がM1とされ、残りがM2とされる。上記式(3)によって署名付き最新版シンクライアントOSのイメージファイルMの値の署名検証が行われる。この検証によって、不正なユーザがM2の部分だけ変更しても、そのことを検知することができる。
【0077】
ステップS21において、クライアント端末10のCPU11は、ステップS20の処理により署名付き最新版シンクライアントOSのイメージファイルMの値の署名検証に成功したか否かを判定し、署名検証に成功したと判定した場合、ステップS22に進む。
【0078】
ステップS22において、クライアント端末10のCPU11は、最新版シンクライアントOSのイメージファイルM2(=OSimage_new)をUSBデバイス20のフラッシュメモリ部21のOS用パーティション214内にある既存のシンクライアントOS215のイメージファイルに上書きする。
【0079】
ステップS23において、クライアント端末10のCPU11は、USBデバイス20のフラッシュメモリ部21の最新版OS保存用パーティション212内の署名付き最新版シンクライアントOSのイメージファイルMを消去する。
【0080】
ステップS21において、クライアント端末10のCPU11は、ステップS20の処理により署名付き最新版シンクライアントOSのイメージファイルMの値の署名検証に失敗したと判定した場合、ステップS24に進む。
【0081】
ステップS24において、クライアント端末10のCPU11は、シンクライアントOS215を強制終了し、処理を終了する。
【0082】
また、ステップS16において、クライアント端末10のCPU11は、最新版OS保存用パーティション212に署名付き最新版シンクライアントOSのイメージファイルMがない(更新すべきデータが存在しない)と判定した場合、ステップS25に進み、通常のシンクライアント処理を行う。
【0083】
次に、図9のフローチャートを参照して、図9のステップS25における通常のクライアント処理の詳細について説明する。
【0084】
ステップS31において、クライアント端末10のCPU11は、シンクライアントOS215に含まれる計測ソフトウェア215Cを起動する。
【0085】
ステップS32において、クライアント端末10のCPU11は、ネットワーク40を介してVPNサーバ50に接続し、VPNサーバ50にユーザ名および認証データ(例えば、パスワード)を送信してユーザ認証を要求する。
【0086】
ステップS33において、VPNサーバ50は、ネットワーク40を介してクライアント端末10から送信されてきたユーザ名および認証データを用いて、クライアント端末10を利用するユーザを認証する。
【0087】
ステップS34において、VPNサーバ50は、ステップS33の処理でユーザ認証に成功したか否かを判定し、認証に成功したと判定した場合、ステップS35に進み、認証に成功したことを示すメッセージを、ネットワーク40を介してクライアント端末10に送信し、接続を許可する。
【0088】
ステップS34において、VPNサーバ50は、ステップS33の処理でユーザ認証に失敗したと判定した場合には、エラーメッセージを、ネットワーク40を介してクライアント端末10に送信し、処理を終了する。
【0089】
ステップS36において、クライアント端末10のCPU11は、シンクライアントOS215の接続・送受信機能215Aを用いて、ネットワーク40およびVPNサーバ50を介して完全性検証サーバ60に接続し、プラットフォーム完全性検証に利用する乱数Rcを生成し、乱数Rcを含む乱数生成要求メッセージを完全性検証サーバ60に送信する。なお、クライアント端末10のCPU11は、プラットフォーム完全性検証が終了するまで、生成した乱数Rcをクライアント端末10のRAM13に保持しておく。
【0090】
ステップS37において、完全性検証サーバ60のデジタル署名検証部61は、ネットワーク40およびVPNサーバ50を介してクライアント端末10から乱数Rcを受信すると、プラットフォーム完全性検証で利用する乱数Rsを生成し、乱数Rsをクライアント10に送信する。なお、完全性検証サーバ60のデジタル署名検証部61は、プラットフォーム完全性検証が終了するまで乱数Rcおよび乱数Rsを図示せぬRAMに保持する。
【0091】
ステップS38において、クライアント端末10のCPU11は、完全性検証サーバ60からVPNサーバ50およびネットワーク40を介して乱数Rsを受信すると、それをRAM13に保持した後、クライアント端末10のRAM13に展開されたシンクライアントOS215のイメージすべてから、定められたアルゴリズム(例えば、SHA1)に従いハッシュ値を演算し、ハッシュ値、乱数Rcおよび乱数Rsが結合された構成証明メッセージを生成する。そして、クライアント端末10のCPU11は、シンクライアントOS215にハードコードされているMAC鍵215Dを用いて、定められた手順(例えば、ISO/IEC 9797-1に準じた手順)に従って、ステップS38の処理で生成した構成証明メッセージのMACを演算する。
【0092】
ステップS39において、クライアント端末10のCPU11は、演算した構成証明メッセージおよびMACをコマンドメッセージのデータに含ませ、入出力インターフェイス14を介してUSBデバイス20に送信することで、構成証明メッセージのデジタル署名の生成をUSBデバイス20に要求する。
【0093】
ステップS40において、USBデバイス20は、構成証明メッセージおよびMACを含んだデジタル署名コマンドのコマンドメッセージを受信すると、デジタル署名コマンド222を作動させ、MAC鍵224を用い、クライアント端末10のCPU11と同じアルゴリズムで構成証明メッセージからMACを演算する。USBデバイス20のデジタル署名コマンド222は、クライアント端末10から送信されたMACと自身が演算したMACとが同一であるか検証することで、クライアント端末10で起動している計測ソフトウェア215Cを検証する。
【0094】
ステップS41において、USBデバイス20のデジタル署名コマンド222は、ステップS40の処理で構成証明メッセージのMACの検証に成功したか否かを判定し、検証に成功したと判定した場合、ステップS42に進む。ステップS42において、USBデバイス20のデジタル署名コマンド222は、デジタル署名秘密鍵223を用い、定められたデジタル署名生成アルゴリズム(例えば、PKCS#1など)に従い、構成証明メッセージのデジタル署名を生成し、クライアント端末10に返信する。
【0095】
ステップS41において、USBデバイス20のデジタル署名コマンド222は、ステップS40の処理で構成証明メッセージのMACの検証に失敗したと判定した場合、MACの検証に失敗したことを示すエラーメッセージをクライアント端末10に返信して、処理を終了する。
【0096】
ステップS43において、クライアント端末10のCPU11は、接続・送受信機能215Aを用いて、ステップS38の処理で生成した構成証明メッセージ、およびUSBデバイス20から返信されたデジタル署名を、ネットワーク40およびVPNサーバ50を介して完全性検証サーバ60に送信する。
【0097】
ステップS44において、完全性検証サーバ60は、構成証明メッセージとデジタル署名を受信するとデジタル署名検証部61が作動し、デジタル署名公開鍵記憶部63に記憶されているデジタル署名公開鍵を用いて、定められたアルゴリズムに従い、構成証明メッセージのデジタル署名を検証することで、デジタル署名を生成したUSBデバイス20の正当性を検証する。
【0098】
そして、構成証明メッセージのデジタル署名の検証に成功すると、完全性検証サーバ60のメッセージ検証部62が作動し、完全性検証サーバ60のRAMに保持されている乱数RcおよびRs、並びに、ハッシュ値の期待値記憶部64に記憶されているハッシュ値の期待値を参照し、構成証明メッセージに含まれる乱数Rc、Rsおよびハッシュ値が正しい値であるかを確認することで、構成証明メッセージの正当性を検証する。
【0099】
ステップS45において、完全性検証サーバ60のメッセージ検証部62は、構成証明メッセージの検証に成功したか否かを判定し、構成証明メッセージの検証に成功したと判定した場合、ステップS46に進み、認証に成功したことを示すメッセージを、VPNサーバ50およびネットワーク40を介してクライアント端末10に送信し、接続を許可する。
【0100】
ステップS45において、完全性検証サーバ60は、ステップS44の処理で構成証明メッセージの検証に失敗したと判定した場合には、エラーメッセージを、クライアント端末10に送信し、処理を終了する。
【0101】
ステップS47において、クライアント端末10のCPU11は、接続・送受信機能215Aを用いて、ネットワーク40、VPNサーバ50、および完全性検証サーバ60を介してシンクライアントサーバ70に接続し、シンクライアントサーバ70にユーザ名および認証データ(例えば、パスワード)を送信してユーザ認証を要求する。
【0102】
ステップS48において、シンクライアントサーバ70は、クライアント端末10からネットワーク40、VPNサーバ50、および完全性検証サーバ60を介して送信されてきたユーザ名および認証データを用いて、クライアント端末10を利用するユーザを認証する。
【0103】
ステップS49において、シンクライアントサーバ70は、ステップS48の処理でユーザ認証に成功したか否かを判定し、認証に成功したと判定した場合、ステップS50に進み、認証に成功したことを示すメッセージを、完全性検証サーバ60、VPNサーバ50、およびネットワーク40を介してクライアント端末10に送信し、接続を許可する。これにより、クライアント端末10のCPU11は、シンクライアントサーバ70へリモートアクセスすることができる。
【0104】
ステップS49において、シンクライアントサーバ70は、ステップS48の処理でユーザ認証に失敗したと判定した場合には、エラーメッセージをクライアント端末10に送信し、処理を終了する。
【0105】
[発明の実施の形態における効果]
1.以上のように、一度配布したUSBデバイス20に記憶されているシンクライアントOS215の更新処理を容易に行うことができる。
【0106】
2.ダウンロードした更新対象のシンクライアントOS215のイメージファイルを一時的に最新版OS保存用パーティション212に保存することで、更新処理に失敗した場合にも、再度、最新版OS保存用パーティション212から更新対象のシンクライアントOS215のイメージファイルを読み出して、更新処理を実行することができる。
【0107】
3.暗号化された更新対象のシンクライアントOS215のイメージファイルをダウンロードし、そのダウンロードしたイメージファイルの署名検証を行うようにしたので、安全に、シンクライアントOS215の更新処理を行うことができる。
【0108】
[変形例]
以上においては、シンクライアント環境にあるクライアント端末10で、USBデバイス20に記憶されているシンクライアントOS215の更新処理を行うようにしたが、これに限らず、最新版のシンクライアントOS215がダウンロードされたUSBデバイス20を外出先の外部端末に装着し、そこで更新処理を行うことも可能である。
【0109】
図10は、USBシンクライアントシステムの他の構成例を示す図である。図10の例の場合、企業の社内ネットワーク内にあるクライアント端末10が更新サーバ80にアクセスし、最新版のシンクライアントOS215をダウンロードしてUSBデバイス20に記憶する。そして、ユーザは、そのUSBデバイス20を外部端末100に装着し、そこで更新処理を行うようにするものである。図中、点線で囲まれた領域内は、社内ネットワークを表わしている。
【0110】
外部端末100は、社内ネットワークの外部に設置され、画面の出力表示やキーボード、マウスのような入力操作等の最低限の機能を有するパーソナルコンピュータのような端末で、ハードディスク等の記憶装置を保持してもよいし、保持しなくてもよい。外部端末100は、USBデバイス20からの起動を最優先するようにBIOS(Basic Input/Output System)が設定されている。
【0111】
DMZ(Demilitarized Zone)110は、通信ゲートウエイとなるプロキシサーバや外部公開向けのサーバ(いずれも不図示)、ゲートウエイ111等が配置される。ゲートウエイ111は、SSL(Secure Socekts Layer)−VPNゲートウエイで、外部端末100からのSSL−VPN接続要求を処理する。DMZ110の配置によって、外部端末100は、社内ネットワークに直接アクセスすることはできず、DMZ110を介して通信を行うことになる。
【0112】
ルータ120は、社内ネットワーク内にあるクライアント端末10と更新サーバ80とを接続する通信機器である。ルータ120は、DMZ110のゲートウエイ111を介してネットワーク40に接続されている。
【0113】
図10に示すような構成例においても、ユーザが、外部端末100にUSBデバイス20を装着し、図8のフローチャートを用いて上述したようにして、シンクライアントOS215の更新処理を行うことができる。
【0114】
そして、安全に更新処理が完了すると、ユーザは、外部端末100を再起動する。外部端末100のCPUは、USBデバイス20内に格納されているシンクライアントOS215をRAM上にロードし、シンクライアントOS215の接続・送受信機能215Aを用いて、ネットワーク40を介したクライアント端末10への安全な通信を確立する。そして、外部端末100のCPUは、ネットワーク40を介してクライアント端末10へのリモートアクセスを行う。
【0115】
以上のようにして、一度配布したUSBデバイス20に記憶されているシンクライアントOS215の更新処理を、外部端末でも容易に行うことができる。
【0116】
以上、添付図面を参照しながら、本発明に係るシンクライアントシステム等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【0117】
10………クライアント端末
11………CPU
20………USBデバイス
40………ネットワーク
60………完全性検証サーバ
70………シンクライアントサーバ
80………更新サーバ
215………シンクライアントOS
【技術分野】
【0001】
本発明は、シンクライアントシステムに関し、特に、携帯型記憶デバイスに記憶されたシンクライアントオペレーティングシステムを容易に更新することが可能なシンクライアントシステム等に関するものである。
【背景技術】
【0002】
近年、クライアント端末に必要最小限の機能のみを持たせ、アプリケーションの処理などの機能をサーバに集約させたシンクライアントシステムの導入が増えてきている。
【0003】
また、専用のクライアント端末を利用しなくても、既存の端末を利用してシンクライアント環境を実現することも可能である。これは、例えば、シンクライアントシステム専用のシンクライアントOS(Operating System)やアプリケーションを格納したUSB(Universal Serial Bus)メモリのような携帯型記憶デバイスを既存の端末に装着した状態で端末を起動させることにより、既存の端末を専用のクライアント端末と同じ状態にすることができる(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−146242号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
携帯型記憶デバイスに記憶される専用のシンクライアントOSは、最低限の機能のみ実装されており、また毎回同じOSイメージが起動されることを前提としている。従って、基本的に、携帯型記憶デバイス配布後にシンクライアントOSイメージを変更することはないが、機能の追加や脆弱性対策等の理由により、シンクライアントOSイメージを更新させたい場合がある。
【0006】
しかしながら、通常、セキュリティポリシーとして、シンクライアントOSの起動中、携帯型記憶デバイスやハードディスクにデータを記憶しないため、シンクライアントOSの起動中、更新モジュールをネットワーク経由にてダウンロードしても、それを記憶する場所がない課題があった。
【0007】
つまり、シンクライアントシステム上、リモートアクセス中にネットワークへ接続し、更新されたソフトウエアモジュールのみを取得し、インストールするといった使用方法は不可能である。
【0008】
また、一度配布した携帯型記憶デバイスを回収して、更新モジュールを入れ直す作業も、ユーザ数や管理者の負担を考慮すると現実的ではない。
【0009】
本発明は、前述した問題点に鑑みてなされたもので、その目的とすることは、携帯型記憶デバイスに記憶されたシンクライアントオペレーティングシステムを容易に更新することが可能なシンクライアントシステム、およびオペレーティングシステム更新方法を提供することである。
【課題を解決するための手段】
【0010】
前述した目的を達成するために、第1の発明は、クライアント端末、および、ネットワークを介して前記クライアント端末からの要求に応じてアプリケーションを実行するシンクライアントサーバからなるシンクライアントシステムにおいて、前記クライアント端末が、更新対象のシンクライアントオペレーティングシステムのイメージファイルを、装着された携帯型記憶デバイスの第1の領域に一時的に保存する一時保存手段と、前記第1の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在するか否かを判定する判定手段と、前記判定手段により前記第1の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在すると判定した場合、前記第1の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルのデータ検証を行うデータ検証手段と、前記データ検証手段による検証が成功した場合、前記第1の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して、前記携帯型記憶デバイスの第2の領域に記憶するように制御する記憶制御手段と、前記第2の領域に記憶されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して起動する起動手段とを備えることを特徴とするシンクライアントシステムである。第1の発明によって、一度配布したUSBデバイスに記憶されているシンクライアントOSのイメージファイルの更新処理を容易に行うことができる。また、イメージファイルの署名検証を行うようにしたので、安全に更新処理を行うことができる。
【0011】
前記記憶制御手段は、前記第2の領域に既にデータが存在する場合、前記シンクライアントオペレーティングシステムのイメージファイルを上書きする。
これにより、最新版のシンクライアントOSのみを確実に記憶することができ、誤って古いシンクライアントOSが起動されてしまうことを防止することができる。
【0012】
前記記憶制御手段が、前記シンクライアントオペレーティングシステムのイメージファイルを前記第1の領域から読み出して前記第2の領域に記憶した場合、前記第1の領域から前記シンクライアントオペレーティングシステムのイメージファイルを消去する消去手段をさらに備える。
これにより、正しく更新処理が行われてから、必要がなくなったデータを消去することができる。
【0013】
第2の発明は、クライアント端末、および、ネットワークを介して前記クライアント端末からの要求に応じてアプリケーションを実行するシンクライアントサーバからなるシンクライアントシステムのオペレーティングシステム更新方法において、前記クライアント端末が、更新対象のシンクライアントオペレーティングシステムのイメージファイルを、装着された携帯型記憶デバイスの第1の領域に一時的に保存する一時保存ステップと、前記第1の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在するか否かを判定する判定ステップと、前記判定ステップにより前記第1の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在すると判定した場合、前記第1の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルのデータ検証を行うデータ検証ステップと、前記データ検証ステップによる検証が成功した場合、前記第1の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して、前記携帯型記憶デバイスの第2の領域に記憶するように制御する記憶制御ステップと、前記第2の領域に記憶されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して起動する起動ステップとを含むことを特徴とするオペレーティングシステム更新方法である。
【発明の効果】
【0014】
本発明により、シンクライアントシステムにおいて、携帯型記憶デバイスに記憶されたシンクライアントオペレーティングシステムを容易に更新することが可能なシンクライアントシステム、およびオペレーティングシステム更新方法を提供することができる。
【図面の簡単な説明】
【0015】
【図1】本発明の実施の形態としてのUSBシンクライアントシステムの構成例を示す図である。
【図2】クライアント端末の構成例を示す図である。
【図3】USBデバイスの構成例を示す図である。
【図4】完全性検証サーバの機能構成例を示すブロック図である。
【図5】更新サーバの機能構成例を示すブロック図である。
【図6】最新版OSリストの情報例を示す図である。
【図7】最新版シンクライアントOSのダウンロード処理を説明するフローチャートである。
【図8】シンクライアントOSの更新処理を説明するフローチャートである。
【図9】図9のステップS25における通常のクライアント処理の詳細を説明するフローチャートである。
【図10】USBシンクライアントシステムの他の構成例を示す図である。
【発明を実施するための形態】
【0016】
以下、図面に基づいて、本発明の実施形態を詳細に説明する。
【0017】
[本発明の実施の形態]
図1は、本発明の実施の形態としてのUSB(Universal Serial Bus)シンクライアントシステムの構成例を示す図である。
【0018】
図1に示すように、USBシンクライアントシステムは、クライアント端末10、クライアント端末10と接続されるUSBデバイス20およびICカードリーダ・ライタ30、クライアント端末10とネットワーク40を介して接続されるVPN(Virtual Private Network)サーバ50、VPNサーバ50と接続される完全性検証サーバ60、完全性検証サーバ60と接続されるシンクライアントサーバ70、VPNサーバ50と接続される更新サーバ80とから構成される。なお、クライアント端末10の数は、任意であり、図1に示されるように1つに限られるものではない。
【0019】
USBシンクライアントシステムとは、シンクライアントOS(Operation System)が格納されたUSBデバイス20をクライアント端末10にマウント(装着)し、このクライアント端末10をシンクライアント化させてシンクライアントサーバ70にリモートアクセスするシステムのことである。シンクライアントOSとしては、例えば、Linux(登録商標)があるが、これに限定されるものではない。
【0020】
クライアント端末10は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、およびHDD(Hard Disc Drive)などを実装したコンピュータシステムである。クライアント端末10は、ユーザによって、最新版シンクライアントOSをダウンロードすることが指示された場合、ネットワーク40およびVPNサーバ50を介して更新サーバ80にアクセスし、最新版シンクライアントOSのイメージファイルをダウンロードし、USBデバイス20の所定領域に一時的に保存する。
【0021】
クライアント端末10は、マウントされたUSBデバイス20の所定領域に最新版シンクライアントOSが一時的に保存されているか否かを判定し、最新版シンクライアントOSが一時的に保存されていると判定した場合には、最新版シンクライアントOSのデータ検証を行い、検証に成功すると、最新版シンクライアントOSの更新処理を行う。
【0022】
クライアント端末10は、マウントされたUSBデバイス20の所定領域に最新版シンクライアントOSが保存されていないと判定した場合には、USBデバイス20に記憶されているシンクライアントOSを読み出して起動し、ネットワーク40を介してVPNサーバ50との認証を行う。クライアント端末10は、VPNサーバ50との認証に成功すると、ネットワーク40およびVPNサーバ50を介して完全性検証サーバ60との認証を行う。
【0023】
クライアント端末10は、完全性検証サーバ60との認証に成功すると、ネットワーク40、VPNサーバ50、および完全性検証サーバ60を介してシンクライアントサーバ70との認証を行う。クライアント端末10は、シンクライアントサーバ70との認証に成功すると、シンクライアントサーバ70で管理されているアプリケーションを遠隔で実行させる。
【0024】
USBデバイス20は、クライアント端末10と着脱可能になされており、クライアント端末10で実行するためのシンクライアントOS等を記憶する携帯型記憶デバイスである。本実施の形態では、携帯型記憶デバイスとしてUSBメモリを適用するが、これに限らず、他の記憶媒体を用いることも可能である。
【0025】
ICカードリーダ・ライタ30は、ICカード31が装着(近接)されると、ICカード31に記憶されているデータを読み出して、クライアント端末10に送信したり、クライアント端末10から受信したデータを、ICカード31に書き込んだりする。ICカード31には、署名鍵やPIN(Personal identification number)認証用のアプレット等が記憶されている。PINとは、利用者本人であることを識別するための暗証番号である。
【0026】
ネットワーク40は、公衆回線網、ローカルエリアネットワーク、またはインターネットなどのネットワーク、デジタル衛星放送といった、有線または無線のいずれのものでもよい。
【0027】
VPNサーバ50は、CPU、ROM、RAM、およびHDDなどを実装したコンピュータシステムであり、Ipsec(Security Architecture for Internet Protocol)またはSSL(Secure Sockets Layer)を利用して、ネットワーク40を介してクライアント端末10と送受信するデータを暗号化することで、VPNを構築するために設置される機器である。
【0028】
完全性検証サーバ60は、CPU、ROM、RAM、およびHDDなどを実装したコンピュータシステムであり、ハッシュ値を含む構成証明メッセージ等を用いて、プラットフォーム完全性を検証するための認証サーバである。プラットフォーム完全性検証とは、シンクライアントOSが改竄されてしまうと、個人データなどの機密データが漏洩する可能性があるため、クライアント端末10に展開されるシンクライアントOSが改竄されているか否かを検証することである。
【0029】
シンクライアントサーバ70は、CPU、ROM、RAM、およびHDDなどを実装したコンピュータシステムであり、さまざまなアプリケーションを一括管理し、クライアント端末10からの要求に応じて、アプリケーションを実行する。またシンクライアントサーバ70は、最新版シンクライアントOSのイメージファイルを保存しており、クライアント端末10からの要求に応じて、そのイメージファイルを転送する。
【0030】
なお、完全性検証サーバ60が行うプラットフォーム完全性を検証する機能をシンクライアントサーバ70に搭載するようにしてもよい。
【0031】
更新サーバ80は、CPU、ROM、RAM、およびHDDなどを実装したコンピュータシステムであり、最新版シンクライアントOSのイメージファイルを所有(記憶)しており、クライアント端末10からの要求に応じて、そのイメージファイルを転送する。
【0032】
図2は、図1に示すクライアント端末10の構成例を示す図である。このクライアント端末1は、CPU11、ROM12、RAM13、および入出力インターフェイス14が、バス15を介して接続されている。入出力インターフェイス14には、入力部16、表示部17、記憶部18、および通信部19が接続されている。また入出力インターフェイス14には、USBデバイス20やICカードリーダ・ライタ30が着脱可能になっている。
【0033】
CPU11は、入力部16からの入力信号に基づいてクライアント端末10を起動するためのブートプログラムをROM12から読み出して実行し、記憶部18に格納されている各種オペレーティングシステムを読み出す。またCPU11は、マウントされたUSBデバイス20に記憶されているシンクライアントOSのイメージファイルをRAM13に展開し、起動させるブート手段として機能する。
【0034】
さらにCPU11は、入力部16からの入力信号に基づいて各種の制御を行ったり、ROM12や記憶部18に記憶されたプログラムおよびデータを読み出してRAM13にロードしたり、あるいはRAM13から読み出されたプログラムのコマンドに基づいて、データ演算または加工などの一連の処理を実行する。
【0035】
入力部16は、クライアント端末10の操作者が各種の操作を入力するキーボードやマウスなどの入力デバイスにより構成されており、操作者の操作に基づいて入力信号を生成し、入出力インターフェイス14およびバス15を介してCPU11に送信する。
【0036】
表示部17は、例えば液晶ディスプレイであり、CPU11からバス15および入出力インターフェイス14を介して受信した信号に基づいて、CPU11の処理結果などを表示する。
【0037】
記憶部18は、半導体メモリや磁気ディスクなどで構成されており、CPU11で実行されるプログラムやデータを記憶する。記憶部18には、CPU11が実行するプログラムとして、例えば、各サーバとの認証を行うための認証アプリケーション等が用意される。
【0038】
通信部19は、LAN(Local Area Network)カードやモデムなどで構成されており、クライアント端末10をローカルエリアネットワークやインターネットといった通信媒体であるネットワーク40に接続することを可能にする。すなわち通信部19は、通信媒体から受信したデータを、入出力インターフェイス14およびバス15を介してCPU11に送信し、CPU11からバス15および入出力インターフェイス14を介して受信したデータを、ネットワーク40に送信する。
【0039】
USBデバイス20には、シンクライアントOSや起動プログラムが記憶されており、CPU11からの要求に応じて、それらの情報が、入出力インターフェイス14およびバス15を介してCPU11に送信される。
【0040】
ICカードリーダ・ライタ30は、ICカード31に記憶されているデータを読み出して、入出力インターフェイス14およびバス15を介してCPU11に送信したり、CPU11からバス15および入出力インターフェイス14を介して受信したデータを、ICカード31に書き込んだりする。
【0041】
図3は、USBデバイス20の構成例を示す図である。
【0042】
図3に示すように、USBデバイス20は、フラッシュメモリ部21およびセキュアメモリ部22から構成されている。
フラッシュメモリ部21は、起動用パーティション211、最新版OS保存用パーティション212、データ設定パーティション213、およびOS用パーティション214の領域から構成されている。またOS用パーティション214には、クライアント端末10上で動作するシンクライアントOS215のイメージ(バイトコード)が格納されている。
【0043】
起動用パーティション211は、初期RAMディスクやブートローダが格納される領域である。初期RAMディスクとは、クライアント端末10の起動時にクライアント端末10のRAM13上にロードされる暫定的なルートファイルシステムのイメージで、初期スクリプトを含む。初期スクリプトは、クライアント端末10のRAM13上に仮想的なハードディスク領域であるRAMディスク領域を作成し、マウントする機能を実現する。ブートローダとは、クライアント端末10の起動直後に実行され、特定の領域に配置されるOSを起動するための基本プログラムで、OSの基本機能を実装したソフトウェアであるカーネルおよび初期RAMイメージをクライアント端末10のRAM13にロードする機能を実現する。ルートファイルシステムには、例えば、Linux(登録商標)で主流のext3(third
extended file system)やext2(second
extended file system)などがある。
【0044】
最新版OS保存用パーティション212は、シンクライアントOS215の更新時に更新サーバ80よりダウンロードした署名付き最新版シンクライアントOSのイメージファイルを一時的に保存するためのFAT(File Allocation Table)領域である。この最新版OS保存用パーティション212は、更新対象のシンクライアントOS215のイメージファイルを一時的に保存する第1の領域として機能する。
【0045】
なお、最新版OS保存用パーティション212は、FATに限定されるものではなく、シンクライアントOS215が読み書き可能で、かつ、クライアント端末10の記憶部18にインストールされている通常のOS(シンクライアントOS215ではないOS)が読み書き可能な記憶領域であれば良い。例えば、Windows(登録商標)のファイルシステムであれば、FAT32、exFAT(Extended FAT)、NTFS(New Technology File System)がある。
【0046】
データ設定パーティション213は、リモートアクセス接続用ネットワーク設定ファイルが格納される領域である。リモートアクセス接続用ネットワーク設定ファイルは、暗号化されており、シンクライアントOS215の起動時に復号される。
【0047】
OS用パーティション214は、最新版OS保存用パーティション212に一時的に保存されているシンクライアントOS215のイメージファイルを読み出して記憶する第2の領域として機能する。シンクライアントOS215のイメージファイルは、暗号化されており、シンクライアントOS215の起動時に復号される。
【0048】
シンクライアントOS215には、接続・送受信機能215A、OS更新用アプリケーション215B、計測ソフトウェア215C、MAC鍵215Dが含まれる。
【0049】
接続・送受信機能215Aは、各サーバに接続し、各サーバとデータの送受信を行う機能である。OS更新用アプリケーション215Bは、シンクライアントOS215の更新を行うためのアプリケーションである。計測ソフトウェア215Cは、シンクライアントOS215のイメージのハッシュ値を演算する機能を備えたコンピュータプログラムである。MAC鍵215Dは、クライアント端末10のプラットフォーム完全性検証で利用する暗号鍵としてハードコードされている。
【0050】
セキュアメモリ部22には、USBデバイス20を一意に識別することが可能な情報であるデバイスID221、デジタル署名コマンド222、デジタル署名秘密鍵223、MAC鍵224が格納されている。
【0051】
デジタル署名秘密鍵223、MAC鍵224は、クライアント端末10のプラットフォーム完全性検証で利用する暗号鍵である。デジタル署名コマンド222は、MAC鍵224を用いて、クライアント端末10が生成する構成証明メッセージのMACを検証し、構成証明メッセージの検証に成功すると、デジタル署名秘密鍵223を用いて、構成証明メッセージのデジタル署名を生成するためのコマンドである。
【0052】
図4は、完全性検証サーバ60の機能構成例を示すブロック図である。図4に示す機能部のうちの少なくとも一部は、完全検証サーバ60のCPUにより検証プログラムが実行されることによって実現される。
【0053】
図4に示すように、完全性検証サーバ60は、デジタル署名検証部61、メッセージ検証部62、デジタル署名公開鍵記憶部63、およびハッシュ値の期待値記憶部64の機能を少なくとも有する。
【0054】
デジタル署名検証部61は、クライアント端末10が生成した構成証明メッセージおよびデジタル署名を受信すると作動し、デジタル署名公開鍵記憶部63に記憶されているデジタル署名公開鍵を用いて、定められたデジタル署名検証アルゴリズムに従い、構成証明メッセージのデジタル署名を検証することで、デジタル署名を生成したクライアント端末10の正当性を検証する。
【0055】
メッセージ検証部62は、デジタル署名検証部61が構成証明メッセージのデジタル署名の検証に成功すると作動し、シンクライアントOS215のハッシュ値の期待値記憶部64に記憶されているハッシュ値の期待値を参照し、構成証明メッセージに含まれるハッシュ値が正しい内容であるか否かを確認することで、構成証明メッセージの正当性を検証する。
【0056】
デジタル署名公開鍵記憶部63は、デジタル署名検証部61が構成証明メッセージのデジタル署名を検証する際に利用する、USBデバイス20に記憶されているデジタル署名秘密鍵223と対になるデジタル署名公開鍵を記憶する。ハッシュ値の期待値記憶部64は、シンクライアントOS215のハッシュ値の期待値を記憶する。
【0057】
図5は、更新サーバ80の機能構成例を示すブロック図である。図5に示す機能部のうちの少なくとも一部は、更新サーバ80のCPUによりOS管理アプリケーションが実行されることによって実現される。
【0058】
図5に示すように、更新サーバ80は、制御部81、最新版OS転送部82、および最新版OS記憶部83の機能を少なくとも有する。
【0059】
制御部81は、クライアント端末10からの要求に応じて、最新版OS転送部82や最新版OS記憶部83の処理を制御する。最新版OS転送部82は、制御部81の制御の下、最新版OS記憶部83に記憶されている情報の中から、クライアント端末10により転送要求された最新版シンクライアントOSのイメージファイルを読み出し、クライアント端末10に転送する。最新版OS記憶部83は、図6に示すような最新版OSリスト83Lに基づいて、最新版シンクライアントOSのイメージファイルを記憶している。図6に示す最新版OSリスト83Lの例では、最新版シンクライアントOS名、更新日時、およびファイルサイズが関連付けられている。
【0060】
次に、図7のフローチャートを参照して、シンクライアントシステムのクライアント端末10が実行する、最新版シンクライアントOSのダウンロード処理について説明する。
【0061】
まず、更新サーバ80の管理者から、最新版シンクライアントOSのリリースがアナウンスされた場合、ユーザは、最新版シンクライアントOSをダウンロードする必要がある。そこで、ユーザは、クライアント端末10にUSBデバイス20を装着し、入力部16を用いて、更新サーバ80のダウンロード用サイトのURL(Uniform Resource Locator)を入力し、最新版シンクライアントOSのダウンロードを指示する。なお、USBデバイス20は単なる外部記憶装置として機能し、USBデバイス20内のシンクライアントOS215は起動しない。
【0062】
ステップS1において、クライアント端末10のCPU11は、最新版シンクライアントOSのダウンロードが指示されたか否かを判定し、最新版シンクライアントOSのダウンロードが指示されるまで待機する。そして、ステップS1において、クライアント端末10のCPU11は、最新版シンクライアントOSのダウンロードが指示されたと判定した場合、ステップS2に進む。
【0063】
ステップS2において、クライアント端末10のCPU11は、通信部19、ネットワーク40、およびVPNサーバ50を介して更新サーバ80のダウンロード用サイトにアクセスし、署名付き最新版シンクライアントOSのイメージファイルMをダウンロードする。署名付き最新版シンクライアントOSのイメージファイルMは、次式(1)のように表すことができる。
M=[HASH(OSimage_new)]_Skey || OSimage_new ・・・(1)
【0064】
上記式(1)において、HASHは、署名作成に利用するハッシュ関数であり、[HASH(OSimage_new)]_Skeyは、sバイト長(固定長)の署名部分であり、OSimage_newは、最新版シンクライアントOSのイメージファイル部分である。なお、署名付き最新版シンクライアントOSのイメージファイルMの全体が暗号化されており、シンクライアントOS215のみがイメージファイルM全体を復号することができる。すなわち、イメージファイルMの復号鍵は、シンクライアントOS215のイメージファイルに含めておく。これは、悪意のあるユーザに対してシンクライアントOSの処理内容を解析させないように、ユーザにはイメージファイルMの内容を秘匿にする必要がある為である。イメージファイルMの暗号鍵は、署名鍵と同じでも良いし、別の鍵でも良い。
【0065】
ステップS2の処理によって、クライアント端末10の表示部17には、ダウンロード中を表わすメッセージ、および、ダウンロード完了後はダウンロード完了を表わすメッセージが表示される。ダウンロード完了後、ダウンロードファイル(最新版シンクライアントOSのイメージファイルM)のコピーを促すメッセージが表示され、ユーザは、そのメッセージに基づいて、ダウンロードファイルのコピーを指示する。
【0066】
ステップS3において、クライアント端末10のCPU11は、ダウンロードファイルのコピーが指示されたか否かを判定し、ダウンロードファイルのコピーが指示されるまで待機する。そして、ステップS3において、クライアント端末10のCPU11は、ダウンロードファイルのコピーが指示されたと判定した場合、ステップS4に進む。
【0067】
ステップS4において、クライアント端末10のCPU11は、ステップS2の処理でダウンロードした最新版シンクライアントOSのイメージファイルMを、USBデバイス20の最新版OS保存用パーティション212へコピーする。
【0068】
以上の処理によって、USBデバイス20の最新版OS保存用パーティション212には、ダウンロードした最新版シンクライアントOSのイメージファイルMがコピーされ、正しく更新処理が完了するまで、そこに一時的に保存される。
【0069】
次に、図8のフローチャートを参照して、クライアント端末10が実行する、シンクライアントOSの更新処理について説明する。
【0070】
ステップS11において、クライアント端末10のCPU11は、USBデバイス20がクライアント端末10に装着されると、入出力インターフェイス14を利用して、USBデバイス20とデータのやり取りすることで、クライアント端末10に装着されたUSBデバイス20をマウントする。
【0071】
ステップS12において、クライアント端末10のCPU11は、USBデバイス20のフラッシュメモリ部21のOS用パーティション214に記憶されているシンクライアントOS215のイメージファイルを読み出す。ステップS13において、クライアント端末10のCPU11は、ステップS12の処理で読み出したシンクライアントOS215のイメージファイルをRAM13に展開し、クライアント端末10上でシンクライアントOS215を起動させる。
【0072】
シンクライアントOS215が起動されると、ユーザは、クライアント端末10の入力部16を用いて暗証番号を入力し、ICカード31に対し、PIN認証を要求する。ステップS14において、クライアント端末10のCPU11は、ユーザから入力された暗証番号から、ICカードリーダ・ライタ30を介してICカード31に対してPIN認証を要求する。ICカード31は、クライアント端末10からの要求に応じて、PIN認証用のアプレットを起動してPIN認証を行い、PIN認証の結果をクライアント端末10に送信する。
【0073】
PIN認証に成功すると、ステップS15において、クライアント端末10のCPU11は、USBデバイス20のフラッシュメモリ部21の最新版OS保存用パーティション212内のデータ有無を確認する。ステップS16において、クライアント端末10のCPU11は、最新版OS保存用パーティション212に署名付き最新版シンクライアントOSのイメージファイルMがあるか否かを判定し、署名付き最新版シンクライアントOSのイメージファイルMがあると判定した場合、ステップS17に進む。
【0074】
ステップS17において、クライアント端末10のCPU11は、最新版OS保存用パーティション212内の署名付き最新版シンクライアントOSのイメージファイルMを復号する。ここで利用される復号鍵は、ステップS12において、RAM13に展開されている。ステップS18において、クライアント端末10のCPU11は、シンクライアントOS215のOS更新用アプリケーション215Bを起動し、ステップS19において、ICカードリーダ・ライタ30を介してICカード31から署名鍵Skeyを取得する。
【0075】
ステップS20において、クライアント端末10のCPU11は、HASH関数、およびステップS19の処理で取得した署名鍵Skeyを利用して、次式(2)および次式(3)に従って、署名付き最新版シンクライアントOSのイメージファイルMの値の署名検証を行う。
M ← M1+M2 ・・・(2)
[M1]_Skey ==
HASH(M2) ? ・・・(3)
【0076】
上記式(2)において、署名付き最新版シンクライアントOSのイメージファイルMの先頭からsバイト(固定長)がM1とされ、残りがM2とされる。上記式(3)によって署名付き最新版シンクライアントOSのイメージファイルMの値の署名検証が行われる。この検証によって、不正なユーザがM2の部分だけ変更しても、そのことを検知することができる。
【0077】
ステップS21において、クライアント端末10のCPU11は、ステップS20の処理により署名付き最新版シンクライアントOSのイメージファイルMの値の署名検証に成功したか否かを判定し、署名検証に成功したと判定した場合、ステップS22に進む。
【0078】
ステップS22において、クライアント端末10のCPU11は、最新版シンクライアントOSのイメージファイルM2(=OSimage_new)をUSBデバイス20のフラッシュメモリ部21のOS用パーティション214内にある既存のシンクライアントOS215のイメージファイルに上書きする。
【0079】
ステップS23において、クライアント端末10のCPU11は、USBデバイス20のフラッシュメモリ部21の最新版OS保存用パーティション212内の署名付き最新版シンクライアントOSのイメージファイルMを消去する。
【0080】
ステップS21において、クライアント端末10のCPU11は、ステップS20の処理により署名付き最新版シンクライアントOSのイメージファイルMの値の署名検証に失敗したと判定した場合、ステップS24に進む。
【0081】
ステップS24において、クライアント端末10のCPU11は、シンクライアントOS215を強制終了し、処理を終了する。
【0082】
また、ステップS16において、クライアント端末10のCPU11は、最新版OS保存用パーティション212に署名付き最新版シンクライアントOSのイメージファイルMがない(更新すべきデータが存在しない)と判定した場合、ステップS25に進み、通常のシンクライアント処理を行う。
【0083】
次に、図9のフローチャートを参照して、図9のステップS25における通常のクライアント処理の詳細について説明する。
【0084】
ステップS31において、クライアント端末10のCPU11は、シンクライアントOS215に含まれる計測ソフトウェア215Cを起動する。
【0085】
ステップS32において、クライアント端末10のCPU11は、ネットワーク40を介してVPNサーバ50に接続し、VPNサーバ50にユーザ名および認証データ(例えば、パスワード)を送信してユーザ認証を要求する。
【0086】
ステップS33において、VPNサーバ50は、ネットワーク40を介してクライアント端末10から送信されてきたユーザ名および認証データを用いて、クライアント端末10を利用するユーザを認証する。
【0087】
ステップS34において、VPNサーバ50は、ステップS33の処理でユーザ認証に成功したか否かを判定し、認証に成功したと判定した場合、ステップS35に進み、認証に成功したことを示すメッセージを、ネットワーク40を介してクライアント端末10に送信し、接続を許可する。
【0088】
ステップS34において、VPNサーバ50は、ステップS33の処理でユーザ認証に失敗したと判定した場合には、エラーメッセージを、ネットワーク40を介してクライアント端末10に送信し、処理を終了する。
【0089】
ステップS36において、クライアント端末10のCPU11は、シンクライアントOS215の接続・送受信機能215Aを用いて、ネットワーク40およびVPNサーバ50を介して完全性検証サーバ60に接続し、プラットフォーム完全性検証に利用する乱数Rcを生成し、乱数Rcを含む乱数生成要求メッセージを完全性検証サーバ60に送信する。なお、クライアント端末10のCPU11は、プラットフォーム完全性検証が終了するまで、生成した乱数Rcをクライアント端末10のRAM13に保持しておく。
【0090】
ステップS37において、完全性検証サーバ60のデジタル署名検証部61は、ネットワーク40およびVPNサーバ50を介してクライアント端末10から乱数Rcを受信すると、プラットフォーム完全性検証で利用する乱数Rsを生成し、乱数Rsをクライアント10に送信する。なお、完全性検証サーバ60のデジタル署名検証部61は、プラットフォーム完全性検証が終了するまで乱数Rcおよび乱数Rsを図示せぬRAMに保持する。
【0091】
ステップS38において、クライアント端末10のCPU11は、完全性検証サーバ60からVPNサーバ50およびネットワーク40を介して乱数Rsを受信すると、それをRAM13に保持した後、クライアント端末10のRAM13に展開されたシンクライアントOS215のイメージすべてから、定められたアルゴリズム(例えば、SHA1)に従いハッシュ値を演算し、ハッシュ値、乱数Rcおよび乱数Rsが結合された構成証明メッセージを生成する。そして、クライアント端末10のCPU11は、シンクライアントOS215にハードコードされているMAC鍵215Dを用いて、定められた手順(例えば、ISO/IEC 9797-1に準じた手順)に従って、ステップS38の処理で生成した構成証明メッセージのMACを演算する。
【0092】
ステップS39において、クライアント端末10のCPU11は、演算した構成証明メッセージおよびMACをコマンドメッセージのデータに含ませ、入出力インターフェイス14を介してUSBデバイス20に送信することで、構成証明メッセージのデジタル署名の生成をUSBデバイス20に要求する。
【0093】
ステップS40において、USBデバイス20は、構成証明メッセージおよびMACを含んだデジタル署名コマンドのコマンドメッセージを受信すると、デジタル署名コマンド222を作動させ、MAC鍵224を用い、クライアント端末10のCPU11と同じアルゴリズムで構成証明メッセージからMACを演算する。USBデバイス20のデジタル署名コマンド222は、クライアント端末10から送信されたMACと自身が演算したMACとが同一であるか検証することで、クライアント端末10で起動している計測ソフトウェア215Cを検証する。
【0094】
ステップS41において、USBデバイス20のデジタル署名コマンド222は、ステップS40の処理で構成証明メッセージのMACの検証に成功したか否かを判定し、検証に成功したと判定した場合、ステップS42に進む。ステップS42において、USBデバイス20のデジタル署名コマンド222は、デジタル署名秘密鍵223を用い、定められたデジタル署名生成アルゴリズム(例えば、PKCS#1など)に従い、構成証明メッセージのデジタル署名を生成し、クライアント端末10に返信する。
【0095】
ステップS41において、USBデバイス20のデジタル署名コマンド222は、ステップS40の処理で構成証明メッセージのMACの検証に失敗したと判定した場合、MACの検証に失敗したことを示すエラーメッセージをクライアント端末10に返信して、処理を終了する。
【0096】
ステップS43において、クライアント端末10のCPU11は、接続・送受信機能215Aを用いて、ステップS38の処理で生成した構成証明メッセージ、およびUSBデバイス20から返信されたデジタル署名を、ネットワーク40およびVPNサーバ50を介して完全性検証サーバ60に送信する。
【0097】
ステップS44において、完全性検証サーバ60は、構成証明メッセージとデジタル署名を受信するとデジタル署名検証部61が作動し、デジタル署名公開鍵記憶部63に記憶されているデジタル署名公開鍵を用いて、定められたアルゴリズムに従い、構成証明メッセージのデジタル署名を検証することで、デジタル署名を生成したUSBデバイス20の正当性を検証する。
【0098】
そして、構成証明メッセージのデジタル署名の検証に成功すると、完全性検証サーバ60のメッセージ検証部62が作動し、完全性検証サーバ60のRAMに保持されている乱数RcおよびRs、並びに、ハッシュ値の期待値記憶部64に記憶されているハッシュ値の期待値を参照し、構成証明メッセージに含まれる乱数Rc、Rsおよびハッシュ値が正しい値であるかを確認することで、構成証明メッセージの正当性を検証する。
【0099】
ステップS45において、完全性検証サーバ60のメッセージ検証部62は、構成証明メッセージの検証に成功したか否かを判定し、構成証明メッセージの検証に成功したと判定した場合、ステップS46に進み、認証に成功したことを示すメッセージを、VPNサーバ50およびネットワーク40を介してクライアント端末10に送信し、接続を許可する。
【0100】
ステップS45において、完全性検証サーバ60は、ステップS44の処理で構成証明メッセージの検証に失敗したと判定した場合には、エラーメッセージを、クライアント端末10に送信し、処理を終了する。
【0101】
ステップS47において、クライアント端末10のCPU11は、接続・送受信機能215Aを用いて、ネットワーク40、VPNサーバ50、および完全性検証サーバ60を介してシンクライアントサーバ70に接続し、シンクライアントサーバ70にユーザ名および認証データ(例えば、パスワード)を送信してユーザ認証を要求する。
【0102】
ステップS48において、シンクライアントサーバ70は、クライアント端末10からネットワーク40、VPNサーバ50、および完全性検証サーバ60を介して送信されてきたユーザ名および認証データを用いて、クライアント端末10を利用するユーザを認証する。
【0103】
ステップS49において、シンクライアントサーバ70は、ステップS48の処理でユーザ認証に成功したか否かを判定し、認証に成功したと判定した場合、ステップS50に進み、認証に成功したことを示すメッセージを、完全性検証サーバ60、VPNサーバ50、およびネットワーク40を介してクライアント端末10に送信し、接続を許可する。これにより、クライアント端末10のCPU11は、シンクライアントサーバ70へリモートアクセスすることができる。
【0104】
ステップS49において、シンクライアントサーバ70は、ステップS48の処理でユーザ認証に失敗したと判定した場合には、エラーメッセージをクライアント端末10に送信し、処理を終了する。
【0105】
[発明の実施の形態における効果]
1.以上のように、一度配布したUSBデバイス20に記憶されているシンクライアントOS215の更新処理を容易に行うことができる。
【0106】
2.ダウンロードした更新対象のシンクライアントOS215のイメージファイルを一時的に最新版OS保存用パーティション212に保存することで、更新処理に失敗した場合にも、再度、最新版OS保存用パーティション212から更新対象のシンクライアントOS215のイメージファイルを読み出して、更新処理を実行することができる。
【0107】
3.暗号化された更新対象のシンクライアントOS215のイメージファイルをダウンロードし、そのダウンロードしたイメージファイルの署名検証を行うようにしたので、安全に、シンクライアントOS215の更新処理を行うことができる。
【0108】
[変形例]
以上においては、シンクライアント環境にあるクライアント端末10で、USBデバイス20に記憶されているシンクライアントOS215の更新処理を行うようにしたが、これに限らず、最新版のシンクライアントOS215がダウンロードされたUSBデバイス20を外出先の外部端末に装着し、そこで更新処理を行うことも可能である。
【0109】
図10は、USBシンクライアントシステムの他の構成例を示す図である。図10の例の場合、企業の社内ネットワーク内にあるクライアント端末10が更新サーバ80にアクセスし、最新版のシンクライアントOS215をダウンロードしてUSBデバイス20に記憶する。そして、ユーザは、そのUSBデバイス20を外部端末100に装着し、そこで更新処理を行うようにするものである。図中、点線で囲まれた領域内は、社内ネットワークを表わしている。
【0110】
外部端末100は、社内ネットワークの外部に設置され、画面の出力表示やキーボード、マウスのような入力操作等の最低限の機能を有するパーソナルコンピュータのような端末で、ハードディスク等の記憶装置を保持してもよいし、保持しなくてもよい。外部端末100は、USBデバイス20からの起動を最優先するようにBIOS(Basic Input/Output System)が設定されている。
【0111】
DMZ(Demilitarized Zone)110は、通信ゲートウエイとなるプロキシサーバや外部公開向けのサーバ(いずれも不図示)、ゲートウエイ111等が配置される。ゲートウエイ111は、SSL(Secure Socekts Layer)−VPNゲートウエイで、外部端末100からのSSL−VPN接続要求を処理する。DMZ110の配置によって、外部端末100は、社内ネットワークに直接アクセスすることはできず、DMZ110を介して通信を行うことになる。
【0112】
ルータ120は、社内ネットワーク内にあるクライアント端末10と更新サーバ80とを接続する通信機器である。ルータ120は、DMZ110のゲートウエイ111を介してネットワーク40に接続されている。
【0113】
図10に示すような構成例においても、ユーザが、外部端末100にUSBデバイス20を装着し、図8のフローチャートを用いて上述したようにして、シンクライアントOS215の更新処理を行うことができる。
【0114】
そして、安全に更新処理が完了すると、ユーザは、外部端末100を再起動する。外部端末100のCPUは、USBデバイス20内に格納されているシンクライアントOS215をRAM上にロードし、シンクライアントOS215の接続・送受信機能215Aを用いて、ネットワーク40を介したクライアント端末10への安全な通信を確立する。そして、外部端末100のCPUは、ネットワーク40を介してクライアント端末10へのリモートアクセスを行う。
【0115】
以上のようにして、一度配布したUSBデバイス20に記憶されているシンクライアントOS215の更新処理を、外部端末でも容易に行うことができる。
【0116】
以上、添付図面を参照しながら、本発明に係るシンクライアントシステム等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【0117】
10………クライアント端末
11………CPU
20………USBデバイス
40………ネットワーク
60………完全性検証サーバ
70………シンクライアントサーバ
80………更新サーバ
215………シンクライアントOS
【特許請求の範囲】
【請求項1】
クライアント端末、および、ネットワークを介して前記クライアント端末からの要求に応じてアプリケーションを実行するシンクライアントサーバからなるシンクライアントシステムにおいて、
前記クライアント端末は、
更新対象のシンクライアントオペレーティングシステムのイメージファイルを、装着された携帯型記憶デバイスの第1の領域に一時的に保存する一時保存手段と、
前記第1の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在するか否かを判定する判定手段と、
前記判定手段により前記第1の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在すると判定した場合、前記第1の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルのデータ検証を行うデータ検証手段と、
前記データ検証手段による検証が成功した場合、前記第1の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して、前記携帯型記憶デバイスの第2の領域に記憶するように制御する記憶制御手段と、
前記第2の領域に記憶されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して起動する起動手段と
を備えることを特徴とするシンクライアントシステム。
【請求項2】
前記記憶制御手段は、前記第2の領域に既にデータが存在する場合、前記シンクライアントオペレーティングシステムのイメージファイルを上書きする
ことを特徴とする請求項1に記載のシンクライアントシステム。
【請求項3】
前記記憶制御手段が、前記シンクライアントオペレーティングシステムのイメージファイルを前記第1の領域から読み出して前記第2の領域に記憶した場合、前記第1の領域から前記シンクライアントオペレーティングシステムのイメージファイルを消去する消去手段をさらに備える
ことを特徴とする請求項1または請求項2に記載のシンクライアントシステム。
【請求項4】
クライアント端末、および、ネットワークを介して前記クライアント端末からの要求に応じてアプリケーションを実行するシンクライアントサーバからなるシンクライアントシステムのオペレーティングシステム更新方法において、
前記クライアント端末は、
更新対象のシンクライアントオペレーティングシステムのイメージファイルを、装着された携帯型記憶デバイスの第1の領域に一時的に保存する一時保存ステップと、
前記第1の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在するか否かを判定する判定ステップと、
前記判定ステップにより前記第1の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在すると判定した場合、前記第1の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルのデータ検証を行うデータ検証ステップと、
前記データ検証ステップによる検証が成功した場合、前記第1の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して、前記携帯型記憶デバイスの第2の領域に記憶するように制御する記憶制御ステップと、
前記第2の領域に記憶されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して起動する起動ステップと
を含むことを特徴とするオペレーティングシステム更新方法。
【請求項1】
クライアント端末、および、ネットワークを介して前記クライアント端末からの要求に応じてアプリケーションを実行するシンクライアントサーバからなるシンクライアントシステムにおいて、
前記クライアント端末は、
更新対象のシンクライアントオペレーティングシステムのイメージファイルを、装着された携帯型記憶デバイスの第1の領域に一時的に保存する一時保存手段と、
前記第1の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在するか否かを判定する判定手段と、
前記判定手段により前記第1の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在すると判定した場合、前記第1の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルのデータ検証を行うデータ検証手段と、
前記データ検証手段による検証が成功した場合、前記第1の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して、前記携帯型記憶デバイスの第2の領域に記憶するように制御する記憶制御手段と、
前記第2の領域に記憶されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して起動する起動手段と
を備えることを特徴とするシンクライアントシステム。
【請求項2】
前記記憶制御手段は、前記第2の領域に既にデータが存在する場合、前記シンクライアントオペレーティングシステムのイメージファイルを上書きする
ことを特徴とする請求項1に記載のシンクライアントシステム。
【請求項3】
前記記憶制御手段が、前記シンクライアントオペレーティングシステムのイメージファイルを前記第1の領域から読み出して前記第2の領域に記憶した場合、前記第1の領域から前記シンクライアントオペレーティングシステムのイメージファイルを消去する消去手段をさらに備える
ことを特徴とする請求項1または請求項2に記載のシンクライアントシステム。
【請求項4】
クライアント端末、および、ネットワークを介して前記クライアント端末からの要求に応じてアプリケーションを実行するシンクライアントサーバからなるシンクライアントシステムのオペレーティングシステム更新方法において、
前記クライアント端末は、
更新対象のシンクライアントオペレーティングシステムのイメージファイルを、装着された携帯型記憶デバイスの第1の領域に一時的に保存する一時保存ステップと、
前記第1の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在するか否かを判定する判定ステップと、
前記判定ステップにより前記第1の領域に前記シンクライアントオペレーティングシステムのイメージファイルが存在すると判定した場合、前記第1の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルのデータ検証を行うデータ検証ステップと、
前記データ検証ステップによる検証が成功した場合、前記第1の領域に一時的に保存されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して、前記携帯型記憶デバイスの第2の領域に記憶するように制御する記憶制御ステップと、
前記第2の領域に記憶されている前記シンクライアントオペレーティングシステムのイメージファイルを読み出して起動する起動ステップと
を含むことを特徴とするオペレーティングシステム更新方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【公開番号】特開2012−58803(P2012−58803A)
【公開日】平成24年3月22日(2012.3.22)
【国際特許分類】
【出願番号】特願2010−198562(P2010−198562)
【出願日】平成22年9月6日(2010.9.6)
【出願人】(000002897)大日本印刷株式会社 (14,506)
【Fターム(参考)】
【公開日】平成24年3月22日(2012.3.22)
【国際特許分類】
【出願日】平成22年9月6日(2010.9.6)
【出願人】(000002897)大日本印刷株式会社 (14,506)
【Fターム(参考)】
[ Back to top ]