(57)【要約】【課題】携帯型記憶デバイスに記憶されたシンクライアントＯＳを容易に更新することが可能なシンクライアントシステム等を提供する。【解決手段】USBデバイス２０の所定領域には、シンクライアントＯＳの変更部分のパッチが記憶されている。このパッチは、更新対象のパッチファイルと、そのパッチファイルをインストールするためのパッチスクリプトファイルで構成されている。クライアント端末１０は、マウントされたUSBデバイス２０に記憶されているシンクライアントＯＳのイメージファイルを読み出して、RAMにファイルディレクトリを展開し、USBデバイス２０に記憶されているパッチを、RAMに展開されたファイルディレクトリ内に配置し、パッチスクリプトファイルを実行する。【選択図】図１
2012063809.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してシンクライアントサーバに接続されるクライアント端末において、
シンクライアントオペレーティングシステムのイメージファイルを、装着された携帯型記憶デバイスの第１の領域に記憶する第１の記憶手段と、
前記シンクライアントオペレーティングシステムの更新のためのパッチスクリプトファイル及び更新対象のパッチファイルを、前記携帯型記憶デバイスの第２の領域に記憶する第２の記憶手段と、
前記第１の領域に記憶されているシンクライアントオペレーティングシステムのイメージファイルを読み出して、揮発性メモリにファイルディレクトリを展開する展開手段と、
前記第２の領域に記憶されている前記パッチスクリプトファイル及び前記更新対象のパッチファイルを前記ファイルディレクトリ内に配置する配置手段と、
前記パッチスクリプトファイルを実行する実行手段と
を備えることを特徴とするクライアント端末。
【請求項２】
前記配置手段は、前記第２の領域に記憶されている前記パッチスクリプトファイルを、前記シンクライアントオペレーティングシステムの起動スクリプトファイルが配置される実行ディレクトリに配置し、
前記実行手段は、前記実行ディレクトリに配置されているスクリプトファイルを全て実行する
ことを特徴とする請求項１に記載のクライアント端末。
【請求項３】
前記第２の領域に記憶されている前記パッチスクリプトファイル及び前記更新対象のパッチファイルのデータ検証を行うデータ検証手段をさらに備え、
前記配置手段は、前記データ検証手段による検証が成功した前記パッチスクリプトファイル及び前記更新対象のパッチファイルのみを配置する
ことを特徴とする請求項１または請求項２に記載のクライアント端末。
【請求項４】
前記第２の領域に記憶されている前記パッチスクリプトファイル及び前記更新対象のパッチファイルは、暗号化されており、
前記パッチスクリプトファイル及び前記更新対象のパッチファイルを復号する復号手段をさらに備える
ことを特徴とする請求項１乃至請求項３のいずれかに記載のクライアント端末。
【請求項５】
ネットワークを介してシンクライアントサーバに対し、アプリケーションの実行を要求するクライアント端末のオペレーティングシステム更新方法において、
シンクライアントオペレーティングシステムのイメージファイルを、装着された携帯型記憶デバイスの第１の領域に記憶する第１の記憶ステップと、
前記シンクライアントオペレーティングシステムの更新のためのパッチスクリプトファイル及び更新対象のパッチファイルを、前記携帯型記憶デバイスの第２の領域に記憶する第２の記憶ステップと、
前記第１の領域に記憶されているシンクライアントオペレーティングシステムのイメージファイルを読み出して、揮発性メモリにファイルディレクトリを展開する展開ステップと、
前記第２の領域に記憶されている前記パッチスクリプトファイル及び前記更新対象のパッチファイルを前記ファイルディレクトリ内に配置する配置ステップと、
前記パッチスクリプトファイルを実行する実行ステップと
を含むことを特徴とするオペレーティングシステム更新方法。
【請求項６】
ネットワークを介してシンクライアントサーバに対し、アプリケーションの実行を要求するコンピュータにより読み取り可能な形式で記述されたプログラムであって、
シンクライアントオペレーティングシステムのイメージファイルを、装着された携帯型記憶デバイスの第１の領域に記憶する第１の記憶ステップと、
前記シンクライアントオペレーティングシステムの更新のためのパッチスクリプトファイル及び更新対象のパッチファイルを、前記携帯型記憶デバイスの第２の領域に記憶する第２の記憶ステップと、
前記第１の領域に記憶されているシンクライアントオペレーティングシステムのイメージファイルを読み出して、揮発性メモリにファイルディレクトリを展開する展開ステップと、
前記第２の領域に記憶されている前記パッチスクリプトファイル及び前記更新対象のパッチファイルを前記ファイルディレクトリ内に配置する配置ステップと、
前記パッチスクリプトファイルを実行する実行ステップと
を含む処理をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シンクライアント端末に関し、特に、携帯型記憶デバイスに記憶されたシンクライアントオペレーティングシステムを容易に更新することが可能なシンクライアント端末等に関するものである。
【背景技術】
【０００２】
近年、クライアント端末に必要最小限の機能のみを持たせ、アプリケーションの処理などの機能をサーバに集約させたシンクライアントシステムの導入が増えてきている。
【０００３】
また、専用のクライアント端末を利用しなくても、既存の端末を利用してシンクライアント環境を実現することも可能である。これは、例えば、シンクライアントシステム専用のシンクライアントＯＳ（Operating  System）やアプリケーションを格納したUSB（Universal  Serial  Bus）メモリのような携帯型記憶デバイスを既存の端末に装着した状態で端末を起動させることにより、既存の端末を専用のクライアント端末と同じ状態にすることができる。
【０００４】
このような、シンクライアントＯＳが格納されたUSBデバイスを利用して端末をシンクライアント化させ、シンクライアントサーバにリモートアクセスするシステムをUSBシンクライアントシステムと呼ぶ。
【０００５】
携帯型記憶デバイスに記憶される専用のシンクライアントＯＳは、最低限の機能のみ実装されており、また毎回同じＯＳイメージが起動されることを前提としている。従って、基本的に、携帯型記憶デバイス配布後にシンクライアントＯＳイメージを変更することはないが、機能の追加や脆弱性対策等の理由により、シンクライアントＯＳイメージを更新させたい場合がある。
【０００６】
そこで、例えば、特許文献１には、シンクライアントＯＳの更新処理を容易に行うようにすることができる技術が提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−０１０６２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
USBシンクライアントシステムやLinux（登録商標）ベースの組み込みシステムでは、シンクライアントの基本機能の改変防止や容量抑制、フラッシュメモリへの書き込み多発による劣化防止のため、squashfsやcloopファイルシステムといったリードオンリーな圧縮ファイルシステムが用いられることがある。
【０００９】
Squashfsは、Linux（登録商標）向けの圧縮された読込専用ファイルシステムである。cloopファイルシステムは、KNOPPIX（ＣＤ１枚で利用可能なLinux（登録商標）ディストリビューション）に採用されたファイルシステムであり、Cloopは、ファイルをハードディスクドライブのように扱う機能で、ファイルをファイルシステムとしてマウントできる仮想デバイス（ループバックデバイス）に、圧縮機能を追加したものである。
【００１０】
これらのファイルシステムは、上に述べたメリットがある反面、一旦システムを構成した後に個々のファイル単位での変更操作が想定されておらず、変更または更新したい場合には、以下の操作が必要となる。
１．圧縮されたファイルシステムの展開
２．変更作業の適用（ファイル追加・削除、編集など）
３．ファイルシステムの再圧縮
【００１１】
これらの操作によって、以下のような運用上の課題がある。
Ａ．システムに脆弱性が発見されたときやデバイスドライバの更新などの際に、ファイル単位の置き換えが必要となるが、これが出来ないため、たとえファイル一つの変更で済むような軽微な変更であってもシステム全体の再構成と同等の作業を要する。
Ｂ．特別な知識が必要となるため、エンドユーザ側での作業が困難となり、軽微な変更であっても製造側へのセンドバックとならざるを得ない。
Ｃ．顧客ごとのカスタマイズなど、システムのわずかな差異に関しても、それぞれファイルシステム全体を構成し直す必要があり、管理が大変となる。
【００１２】
また、特許文献１では、ＯＳ更新作業をファイル配布の観点から効率化を図っているが、ここでやり取りされるデータは圧縮ファイルシステム全体であり、容量が大きく、通信効率が低下する課題があった。
【００１３】
本発明は、前述した問題点に鑑みてなされたもので、その目的とすることは、携帯型記憶デバイスに記憶されたシンクライアントオペレーティングシステムを容易に更新することが可能なシンクライアント端末、オペレーティングシステム更新方法、およびプログラムを提供することである。
【課題を解決するための手段】
【００１４】
前述した目的を達成するために、第１の発明は、ネットワークを介してシンクライアントサーバに接続されるクライアント端末において、シンクライアントオペレーティングシステムのイメージファイルを、装着された携帯型記憶デバイスの第１の領域に記憶する第１の記憶手段と、前記シンクライアントオペレーティングシステムの更新のためのパッチスクリプトファイル及び更新対象のパッチファイルを、前記携帯型記憶デバイスの第２の領域に記憶する第２の記憶手段と、前記第１の領域に記憶されているシンクライアントオペレーティングシステムのイメージファイルを読み出して、揮発性メモリにファイルディレクトリを展開する展開手段と、前記第２の領域に記憶されている前記パッチスクリプトファイル及び前記パッチファイルを前記ファイルディレクトリ内に配置する配置手段と、前記パッチスクリプトファイルを実行する実行手段とを備えることを特徴とするクライアント端末である。
第１の発明によって、一度配布したUSBデバイスに記憶されているシンクライアントＯＳの更新の仕組みを容易に導入することが可能となる。
【００１５】
前記配置手段は、前記第２の領域に記憶されている前記パッチスクリプトファイルを、前記シンクライアントオペレーティングシステムの起動スクリプトファイルが配置される実行ディレクトリに配置し、前記実行手段は、前記実行ディレクトリに配置されているスクリプトファイルを全て実行する。
これにより、パッチスクリプトファイルを実行ディレクトリに配置し、実行ディレクトリに配置されているスクリプトファイルを実行するプログラムを作成するだけで、ＯＳ更新の仕組みを容易に導入することができる。
【００１６】
前記第２の領域に記憶されている前記パッチスクリプトファイル及び前記更新対象のパッチファイルのデータ検証を行うデータ検証手段をさらに備え、前記配置手段は、前記データ検証手段による検証が成功した前記パッチスクリプトファイル及び前記更新対象のパッチファイルのみを配置する。
これにより、不正なパッチが誤って適用されてしまうことを防止することができる。
【００１７】
前記第２の領域に記憶されている前記パッチスクリプトファイル及び前記更新対象のパッチファイルは、暗号化されており、前記パッチスクリプトファイル及び前記更新対象のパッチファイルを復号する復号手段をさらに備える。
これにより、パッチが不正に取得されたり、改竄されたりしてしまうことを防止することができる。
【００１８】
第２の発明は、ネットワークを介してシンクライアントサーバに対し、アプリケーションの実行を要求するクライアント端末のオペレーティングシステム更新方法において、シンクライアントオペレーティングシステムのイメージファイルを、装着された携帯型記憶デバイスの第１の領域に記憶する第１の記憶ステップと、前記シンクライアントオペレーティングシステムの更新のためのパッチスクリプトファイル及び更新対象のパッチファイルを、前記携帯型記憶デバイスの第２の領域に記憶する第２の記憶ステップと、前記第１の領域に記憶されているシンクライアントオペレーティングシステムのイメージファイルを読み出して、揮発性メモリにファイルディレクトリを展開する展開ステップと、前記第２の領域に記憶されている前記パッチスクリプトファイル及び前記更新対象のパッチファイルを前記ファイルディレクトリ内に配置する配置ステップと、前記パッチスクリプトファイルを実行する実行ステップとを含むことを特徴とするオペレーティングシステム更新方法である。
【００１９】
第３の発明は、ネットワークを介してシンクライアントサーバに対し、アプリケーションの実行を要求するコンピュータにより読み取り可能な形式で記述されたプログラムであって、シンクライアントオペレーティングシステムのイメージファイルを、装着された携帯型記憶デバイスの第１の領域に記憶する第１の記憶ステップと、前記シンクライアントオペレーティングシステムの更新のためのパッチスクリプトファイル及び更新対象のパッチファイルを、前記携帯型記憶デバイスの第２の領域に記憶する第２の記憶ステップと、前記第１の領域に記憶されているシンクライアントオペレーティングシステムのイメージファイルを読み出して、揮発性メモリにファイルディレクトリを展開する展開ステップと、前記第２の領域に記憶されている前記パッチスクリプトファイル及び前記更新対象のパッチファイルを前記ファイルディレクトリ内に配置する配置ステップと、前記パッチスクリプトファイルを実行する実行ステップとを含む処理をコンピュータに実行させるためのプログラムである。
【発明の効果】
【００２０】
本発明により、シンクライアントシステムにおいて、携帯型記憶デバイスに記憶されたシンクライアントオペレーティングシステムを容易に更新することが可能なシンクライアントシステム、オペレーティングシステム更新方法、およびプログラムを提供することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施の形態としてのUSBシンクライアントシステムの構成例を示す図である。
【図２】クライアント端末の構成例を示す図である。
【図３】USBデバイスの構成例を示す図である。
【図４】ＩＣカードの構成例を示す図である。
【図５】システム起動・パッチシーケンス処理を説明するフローチャートである。
【図６】RAMに展開されたファイルディレクトリ構成例を示す図である。
【発明を実施するための形態】
【００２２】
以下、図面に基づいて、本発明の実施形態を詳細に説明する。
【００２３】
［本発明の実施の形態］
図１は、本発明の実施の形態としての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デバイス２０の所定領域に記憶させる。
【００２７】
パッチとは、更新対象のパッチファイルと、そのパッチファイルをインストールするためのパッチスクリプトファイルで構成されている。パッチスクリプトファイルは、例えば、シェルスクリプト（実行形式のファイル）であり、下記に示すように、更新対象のパッチファイル名（コピー元、コピー先）、およびパッチファイルのコピーコマンドが記述されている。
cp /home/patch/fileA /・・・/fileA
【００２８】
また、パッチの内容から、システム内部処理が推測されるのを防ぐため、パッチは暗号化される。パッチの内容としては、デバイスドライバ（無線LAN（Local Area Network）機器などのドライバなど）、セキュリティ対策などが考えられる。デバイスドライバをパッチとして適用する理由は、出荷時のシンクライアントＯＳのイメージファイルのサイズを出来る限り小さくする為である。そして、USBデバイス２０からシンクライアントＯＳのイメージファイルをRAMに展開する時間を短くする為である。つまり、全メーカのデバイスドライバをUSBデバイス２０に入れると膨大なサイズとなってしまうが、利用するデバイスドライバが予め決まっている場合、そのデバイスドライバだけをパッチとして適用することで、ファイルサイズの小容量化および展開時間の短縮化を図ることができる。
【００２９】
さらに、不適切なパッチが誤って適用されるのを防ぐため、パッチに検証コードが付与される。そして、ＩＣカード３１等の耐タンパデバイスを用いて、上述の暗号化および検証コードに用いられる暗号鍵が格納される。耐タンパデバイスとは、タンパ（情報不正取得、改竄）に対して耐性のあるデバイス（装置、素子）のことである。
【００３０】
クライアント端末１０は、マウントされたUSBデバイス２０の所定領域に記憶されているシンクライアントＯＳの変更（更新）部分のパッチを取得し、パッチのデータ検証を行う。クライアント端末１０は、パッチのデータ検証に成功すると、そのパッチを適用してシンクライアントＯＳの起動処理を行う。
【００３１】
クライアント端末１０は、シンクライアントＯＳを起動した後、ネットワーク４０を介してVPNサーバ５０との認証を行う。クライアント端末１０は、VPNサーバ５０との認証に成功すると、ネットワーク４０およびVPNサーバ５０を介して完全性検証サーバ６０との認証を行う。
【００３２】
クライアント端末１０は、完全性検証サーバ６０との認証に成功すると、ネットワーク４０、VPNサーバ５０、および完全性検証サーバ６０を介してシンクライアントサーバ７０との認証を行う。クライアント端末１０は、シンクライアントサーバ７０との認証に成功すると、シンクライアントサーバ７０で管理されているアプリケーションを遠隔で実行させる。
【００３３】
USBデバイス２０は、クライアント端末１０と着脱可能になされており、クライアント端末１０で実行するためのシンクライアントＯＳ等を記憶する携帯型記憶デバイスである。本実施の形態では、携帯型記憶デバイスとしてUSBメモリを適用するが、これに限らず、他の記憶媒体を用いることも可能である。
【００３４】
ＩＣカードリーダ・ライタ３０は、ＩＣカード３１が装着（近接）されると、ＩＣカード３１に記憶されているデータを読み出して、クライアント端末１０に送信したり、クライアント端末１０から受信したデータを、ＩＣカード３１に書き込んだりする。ＩＣカード３１には、後述するプラットフォーム完全性検証に利用するデバイスＩＤ、デジタル署名コマンド、デジタル署名秘密鍵、ＭＡＣ鍵等が記憶されている。また、ＩＣカード３１には、パッチ復号のための復号鍵、検証コード検証のための検証鍵、デジタル署名のための署名鍵、およびPIN（Personal identification number）認証用のアプレット等が記憶されている。PINとは、利用者本人であることを識別するための暗証番号である。
尚、USBデバイス２０が、セキュアな記憶媒体（例えば、ＳＩＭカード、ＳＤカード等）とのインターフェイスを備える場合、ＩＣカード３１に記憶されているデータは、そのセキュアな記憶媒体に記憶させるようにしても良い。この場合、ＩＣカードリーダ・ライタ３０およびＩＣカード３１は不要となる。
【００３５】
ネットワーク４０は、公衆回線網、ローカルエリアネットワーク、またはインターネットなどのネットワーク、デジタル衛星放送といった、有線または無線のいずれのものでもよい。
【００３６】
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１１は、USBデバイス２０に記憶されている更新対象のパッチファイルおよびパッチスクリプトファイルを、RAM１３に展開されたファイルディレクトリ内に配置する配置手段としても機能し、そのパッチスクリプトファイルを実行する実行手段としても機能する。
【００４４】
さらにCPU１１は、入力部１６からの入力信号に基づいて各種の制御を行ったり、ROM１２や記憶部１８に記憶されたプログラムおよびデータを読み出してRAM１３にロードしたり、あるいはRAM１３から読み出されたプログラムのコマンドに基づいて、データ演算または加工などの一連の処理を実行する。
【００４５】
入力部１６は、クライアント端末１０の操作者が各種の操作を入力するキーボードやマウスなどの入力デバイスにより構成されており、操作者の操作に基づいて入力信号を生成し、入出力インターフェイス１４およびバス１５を介してCPU１１に送信する。
【００４６】
表示部１７は、例えば液晶ディスプレイであり、CPU１１からバス１５および入出力インターフェイス１４を介して受信した信号に基づいて、CPU１１の処理結果などを表示する。
【００４７】
記憶部１８は、半導体メモリや磁気ディスクなどで構成されており、CPU１１で実行されるプログラムやデータを記憶する。記憶部１８には、CPU１１が実行するプログラムとして、例えば、各サーバとの認証を行うための認証アプリケーション等が用意される。
【００４８】
通信部１９は、LANカードやモデムなどで構成されており、クライアント端末１０をローカルエリアネットワークやインターネットといった通信媒体であるネットワーク４０に接続することを可能にする。すなわち通信部１９は、通信媒体から受信したデータを、入出力インターフェイス１４およびバス１５を介して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）などがある。
【００５５】
パッチ格納用パーティション２１２は、シンクライアントＯＳ２１５の更新のためのパッチ（パッチスクリプトファイルおよび更新対象のパッチファイルを含む）を記憶する第２の記憶手段として機能する。
【００５６】
データ設定パーティション２１３は、リモートアクセス接続用ネットワーク設定ファイルが格納される領域である。リモートアクセス接続用ネットワーク設定ファイルは、暗号化されており、シンクライアントＯＳ２１５の起動時に復号される。
【００５７】
ＯＳ用パーティション２１４は、シンクライアントＯＳ２１５のイメージファイルを記憶する第１の記憶手段として機能する。シンクライアントＯＳ２１５のイメージファイルは、暗号化されており、シンクライアントＯＳ２１５の起動時に復号される。
【００５８】
シンクライアントＯＳ２１５には、接続・送受信機能２１５Ａ、ＯＳ更新用アプリケーション２１５Ｂ、計測ソフトウェア２１５Ｃ、およびＭＡＣ鍵２１５Ｄが含まれる。
【００５９】
接続・送受信機能２１５Ａは、各サーバに接続し、各サーバとデータの送受信を行う機能である。ＯＳ更新用アプリケーション２１５Ｂは、パッチ格納用パーティション２１２に格納されているパッチを適用してシンクライアントＯＳ２１５の更新を行うためのアプリケーションである。計測ソフトウェア２１５Ｃは、シンクライアントＯＳ２１５のイメージのハッシュ値を演算する機能を備えたコンピュータプログラムである。ＭＡＣ鍵２１５Ｄは、クライアント端末１０のプラットフォーム完全性検証で利用する暗号鍵としてハードコードされている。
【００６０】
図４は、ＩＣカード３１の構成例を示す図である。
ＩＣカード３１には、ＩＣカード３１を一意に識別することが可能な情報であるデバイスＩＤ３１１、デジタル署名コマンド３１２、デジタル署名秘密鍵３１３、ＭＡＣ鍵３１４、パッチ復号のための復号鍵３１５、検証コード検証のための検証鍵３１６、デジタル署名のための署名鍵３１７、およびPIN認証用のアプレット３１８等が格納されている。
【００６１】
デジタル署名秘密鍵３１３、ＭＡＣ鍵３１４は、クライアント端末１０のプラットフォーム完全性検証で利用する暗号鍵である。デジタル署名コマンド３１２は、ＭＡＣ鍵３１４を用いて、クライアント端末１０が生成する構成証明メッセージのＭＡＣを検証し、構成証明メッセージの検証に成功すると、デジタル署名秘密鍵３１３を用いて、構成証明メッセージのデジタル署名を生成するためのコマンドである。
【００６２】
復号鍵３１５、検証鍵３１６、およびPIN認証用のアプレット３１８は、システム起動・パッチ適用処理に用いられる。署名鍵３１７は、必要に応じて記憶され、例えば、更新サーバ８０からのパッチダウンロード処理に用いられる。
【００６３】
次に、図５のフローチャートを参照して、シンクライアントシステムのクライアント端末１０が実行する、システム起動・パッチ適用処理について説明する。この処理を開始するにあたり、USBデバイス２０のパッチ格納用パーティション２１２には、予め何らかの方法（ダウンロード、記憶媒体での配布、メール添付等）によってパッチが取得され、格納されているものとする。
【００６４】
ステップＳ１において、クライアント端末１０のCPU１１は、後段の起動処理のため、さまざまなデバイスを初期化し、RAM１３にファイルディレクトリを展開する。これにより、例えば、RAM１３には、図６に示すようなファイルディレクトリ構成が展開される。図６の例において、home-patchは、更新対象のパッチファイルが展開されるディレクトリであり、etc-scriptは、パッチスクリプトファイルが展開されるディレクトリである。
【００６５】
図５の説明に戻る。ユーザは、クライアント端末１０の入力部１６を用いて暗証番号を入力し、ＩＣカード３１に対し、パッチ復号および検証コード検証鍵取得のためのPIN認証を要求する。
【００６６】
ステップＳ２において、クライアント端末１０のCPU１１は、ユーザから入力された暗証番号から、ＩＣカードリーダ・ライタ３０を介してＩＣカード３１に対してPIN認証を要求する。ＩＣカード３１は、クライアント端末１０からの要求に応じて、PIN認証用のアプレット３１８を起動してPIN認証を行い、PIN認証の結果をクライアント端末１０に送信する。
【００６７】
ステップＳ３において、クライアント端末１０のCPU１１は、PIN認証に成功したか否かを判定し、PIN認証に成功したと判定した場合、ステップＳ４に進む。ステップＳ４において、クライアント端末１０のCPU１１は、ＩＣカードリーダ・ライタ３０を介してＩＣカード３１から復号鍵３１５および検証鍵３１６を取得する。この復号鍵３１５は、ユーザがファイルの中身をみることができないようにするための鍵であり、検証鍵３１６は、ユーザが勝手に置いたファイルを展開しないようにするための鍵である。
【００６８】
ステップＳ５において、クライアント端末１０のCPU１１は、USBデバイス２０のパッチ格納用パーティション２１２からパッチを取得する。ステップＳ６において、クライアント端末１０のCPU１１は、ステップＳ４の処理で取得した復号鍵３１５および検証鍵３１６を用いて、ステップＳ５の処理で取得したパッチの復号および検証コードの検証を行う。
【００６９】
ステップＳ７において、クライアント端末１０のCPU１１は、ステップＳ６の処理で検証に成功したパッチのみをファイルディレクトリにコピーする。すなわち、クライアント端末１０のCPU１１は、パッチに含まれる更新対象のパッチファイルを図６のhome-patchにコピーし、パッチスクリプトファイルを図６のetc-scriptにコピーする。ステップＳ８において、クライアント端末１０のCPU１１は、RAM１３の実行ディレクトリ（etc-script）のスクリプトファイルを順次実行する。この実行ディレクトリには、パッチスクリプトファイルだけでなく、シンクライアントＯＳの通常の起動スクリプトファイルも含まれる。
【００７０】
ステップＳ９において、クライアント端末１０のCPU１１は、全てのスクリプトを実行したか否かを判定し、まだ実行していないスクリプトがあると判定した場合、ステップＳ８に戻り、上述した処理を繰り返し実行する。
【００７１】
そして、ステップＳ８において、クライアント端末１０のCPU１１は、全てのスクリプトを実行したと判定した場合、または、ステップＳ３において、PIN認証に失敗したと判定した場合、処理を終了する。なお、全てのスクリプトが実行された場合には、システムが運用ランレベルに移行し、起動完了することになる。
【００７２】
［発明の実施の形態における効果］
１．以上のように、シンクライアントＯＳの起動時に変更部分のパッチを適用することで、一度配布したUSBデバイス２０に記憶されているシンクライアントＯＳ２１５の更新の仕組みを容易に導入することが可能となる。
【００７３】
２．パッチを暗号化し、かつ、パッチに検証コードを付与するようにしたので、パッチが不正に取得されたり、改竄されたりしてしまうことを防止することができる。
【００７４】
３．パッチのデータ検証を行い、データ検証に成功したパッチのみ適用するようにしたので、不正なパッチが誤って適用されてしまうことを防止することができる。
【００７５】
以上、添付図面を参照しながら、本発明に係るシンクライアントシステム等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【００７６】
１０………クライアント端末
１１………CPU
２０………USBデバイス
４０………ネットワーク
２１２………パッチ格納用パーティション
２１５………シンクライアントＯＳ
【図１】
2012063809.tif 000003
【図２】
2012063809.tif 000004
【図３】
2012063809.tif 000005
【図４】
2012063809.tif 000006
【図５】
2012063809.tif 000007
【図６】
2012063809.tif 000008