説明

更新方法、送信方法、サーバ及び端末

【課題】プログラムの取得不可となる弊害を防ぐことができる更新方法を提供する。
【解決手段】更新方法は、サーバ装置120が情報処理端末100から、更新が要求されたプログラムの識別情報を受信する受信ステップと、サーバ装置120が、プログラムの識別情報を参照して、更新が要求されたプログラムに対応するプログラムを情報処理端末100へ送信するか否かを決定する決定ステップと、送信すると決定した場合に、サーバ装置120が、プログラムのサイズの情報を情報処理端末100へ送信し、情報処理端末100が、そのサイズの情報に基づいてプログラムを記録可能であるかを否か判断し、プログラムを記録可能であると判断した場合に、サーバ装置120がプログラムを情報処理端末100へ送信する送信ステップと、情報処理端末100が、受信したプログラムを格納手段に格納する更新ステップとを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理端末で動作するプログラムの配布を行うサーバ装置、及びサーバ装置と情報処理端末からなるプログラム管理システムに関し、特に不正なプログラムの使用を図る情報処理端末の排除における技術に関する。
【背景技術】
【0002】
近年のネットワークの発展に伴い、ネットワークを経由して商取引を行う電子商取引システム(Electronic commerce system)、映画、音楽等のコンテンツの配信を行うコンテンツ配信システムが多く発表されている。これらのシステムにおいては、ネットワークを介して接続される機器間で、コンテンツの利用権利、課金に使用する鍵等の価値ある情報データのみでなく、音楽プレーヤプログラム等のプログラム自体を交換することも可能である。また、このようなプログラムの交換は、従来のPC以外にも携帯電話等の組込み機器においても実現されることが予測される。
【0003】
そして、電子ショッピングやコンテンツ配信サービスなど、課金を伴う商用システムをネットワークを介して実現する場合においては、悪意のあるユーザが不正にプログラムを書き換えることが可能であれば、課金情報の操作により無料で商品やコンテンツを購入するなどの不正行為が行われる危険性がある。そのため、ネットワーク経由のプログラム更新による不具合修正や追加を行う場合、悪意のあるユーザの不正使用を防止するために、プログラムの正当性を検証する必要がある。
【0004】
従来プログラムの正当性を検証する方法としては、電子的な署名を用いる方法が存在する(例えば特許文献1参照)。この方法では、公開鍵暗号方式と呼ばれる2つの対となる鍵の組を用いた暗号化データ交換方式を利用する。図20は、この電子的な署名を用いたプログラムの正当性検証方法に関する説明図である。
【0005】
プログラム発行者2000は、プログラム発行の身元を確認し、保証する第三者機関である認証局(CA:Certification Authority)2010に公開鍵2001を送付する。その後、認証局2010は、プログラム発行者2000の身元を確認、審査する。認証局2010がプログラム発行者2000を信頼できると判断した場合、プログラム発行者2000の公開鍵2001に対しCA秘密鍵2012で電子的な署名を行った証明書2003を発行する。証明書2003は公開鍵保有者の身元を識別する情報を含み、認証局2010が公開鍵保有者の身元を保証するものである。そして、認証局2010は、プログラム発行者2000に公開鍵証明書2003を送付する。
【0006】
プログラム発行者2000は、ユーザ2020に配布するプログラムに対し、自己の秘密鍵2002で電子的な署名を行い、公開鍵証明書2003、及び署名付きプログラム2004を配布する。
【0007】
ユーザ2020は、認証局2010からCA公開鍵2011を取得し、CA公開鍵2011を用いてプログラム発行者の公開鍵証明書2003の署名を検証する。署名の検証が正しく行われた場合、公開鍵証明書2003に含まれる公開鍵2001を用いて署名付きプログラム2004の署名を検証する。この署名の検証が正しく行われた場合、配布されたプログラムがプログラム発行者2000から配布されたプログラムであり、改ざんされていないことを検証できる。
【0008】
従って、この正当性検証方式においては、プログラムにプログラム発行者2000の電子的な署名を付加することによりプログラムの正当性を保証して、ユーザ2020は取得したプログラム2021がプログラム発行者2000から正当に配布されたものであることを検証できる。
【0009】
しかし、図20に示す正当性検証方式においては、配布時におけるプログラムの正当性検証は行えるが、配布後の情報処理端末におけるプログラムに関して正当性を保証することはできない。尚、公開鍵暗号方式及び証明書、署名、認証の仕組みに関しては、種々の文献(例えば、非特許文献1)に詳細が記されている。
【0010】
この問題点を解決する方法として、プログラム配布先のユーザ識別子を用いてプログラム配布元でプログラムを暗号化して配布し、ユーザは使用時にユーザ識別子を用いてプログラムを復号化して実行する方法がある(例えば、特許文献2参照)。この方法では、万が一プログラムが不正にコピーされたとしても、ユーザ識別子が一致しなければプログラムを復号し実行することができないため、不正コピー、不正改ざんを防止することが可能となる。
【0011】
また、プログラムの配布装置としては、プログラムの配布に当たって配布の妥当性をプログラムのコピー数とコピー許可数の差により判定して、無制限な配布が行われることを物理的に防ぐことができ、プログラムコピーに関する使用契約を物理的に尊守させる配布装置が開示されている(例えば特許文献3参照)。
【0012】
この発明においては、プログラム配布装置は、プログラム毎に情報処理装置の配布先を記憶して、コピー許可数とコピー数とによりプログラムを配布するプログラム配布装置とすることが可能となる。
【0013】
一方、ネットワークを用いた電子ショッピングやコンテンツ配信サービス等の課金を伴う商用システムを実現する場合、ユーザに対する課金を行うため、ユーザを特定する方法が必要となる。この方法の1つとして、プログラムあるいはプログラムと共に配布する情報の中に、ユーザ毎に割り当てるIDや鍵などの固有情報を含ませる場合がある。この場合、ユーザ毎に固有情報を割り当て、プログラム配布元のサーバ装置側において固有情報を管理することで、ユーザが不正行為を行った際において固有情報を元にユーザを特定することが可能となる。
【0014】
図21は、従来の情報処理端末2101とサーバ装置2102及び2103との間のプログラム管理システムの参考図である。尚、図21においては説明のためにアプリケーションデータ用のサーバ装置2103及びプログラム用のサーバ装置2102に分けて示す。
【0015】
情報処理端末2101は、プログラム配布元となるサーバ装置2102から、例えば好みの音楽データをダウンロードして再生可能な音楽プレーヤプログラムを取得する。この音楽プレーヤプログラムには固有情報「0101」が含まれるとする。尚、プログラムの安全な配布を図るために、通信路はSSL(Secure Socket Layer)を用いて暗号化し、盗聴等のハッキング行為を防止する。
【0016】
情報処理端末2101の利用者が音楽データ等の取得を要求する際においては、情報処理端末2101から前記固有情報「0101」が付与された音楽データ取得要求をアプリケーション用のサーバ装置2103に送信する。そして、サーバ装置2103は、不正な音楽プレーヤプログラムが実行される情報処理端末を排除するための無効化リスト(CRL:certificate revocation list)を有しており、情報処理端末2101から音楽データ取得要求に合わせて送信される固有情報「0101」がCRLに記載されているため情報処理端末2101に音楽データの送信を行わない。尚、CRLに固有情報が記載されていない場合においては要求される音楽データを情報処理端末2101に送る。
【0017】
このように、不正なプログラム使用を行っている情報処理端末2101の有するプログラムの固有情報を特定すれば、CRLを用いて不正使用を図る情報処理端末2101を排除することが可能となる。
【0018】
尚、サーバ装置2102等から情報処理端末2101にダウンロードされるデータに電子的な署名を付加して、情報処理端末2101側で署名検証を行うことにより、ダウンロードデータの改ざん、すり替え、盗聴等を防止して、不正行為からダウンロードデータを守る安全な配布も可能となる。
【特許文献1】特開2000−339153号公報
【特許文献2】特開平7−295800号公報
【特許文献3】特公平6−87220号公報
【非特許文献1】「Applied Cryptography」Bruce Schneier,John Wiley & Sons,Inc(1996)
【発明の開示】
【発明が解決しようとする課題】
【0019】
しかしながら、上述したプログラム配布元において各ユーザ識別子に応じたプログラム暗号処理を行う方法においては、プログラム配布元にかかる処理の負担が大きくなるという問題が生じる。
【0020】
また、上述したプログラム配布装置がプログラム毎に情報処理装置の配布先を記憶して、コピー許可数とコピー数とによりプログラムを配布する方法は、プログラム配布装置はプログラムの配布要求毎に配布先の装置のIDを確認してコピー許可数に従ってプログラムを配布するものであり、プログラムの不正使用を防止するものではない。
【0021】
さらに、図21に示すサーバ装置2103がプログラムの固有情報を記載したCRLを用いて不正利用を図る情報処理端末2101の排除を行う方法においては、情報処理端末2101が不正にデータを取得しようと試み、サーバ装置2103のCRLにより不正端末としてデータ取得を排除される場合においても、情報処理端末2101の使用者が、別の固有情報のダウンロードをサーバ装置2102から行いプログラムの固有情報を新たな固有情報に更新することによりサーバ装置2103のCRLを用いた排除から回避することが可能となるという問題がある。
【0022】
本発明は以上のような課題に鑑みてなされたものであり、プログラム配布元であるサーバ装置において、固有情報を用いたリストにより排除された不正な情報処理端末が新規な固有情報を取得して排除を回避することを防止するサーバ装置を提供することを第1の目的とする。また、情報処理端末へのプログラム配信においてサーバ装置の処理負担を少なくすることをも目的とする。
【0023】
そして、サーバ装置と情報処理端末との間においてプログラムの配布を行うプログラム管理システムにおいても、不正な情報処理端末からの新規な固有情報の取得要求を排除して情報処理端末でのプログラムの不正使用を防ぐことが可能なプログラム管理システムを提供することを目的とする。さらに、プログラムの取得不可となる弊害を防ぐことができるプログラムの更新方法、送信方法、サーバ(サーバ装置)及び端末(情報処理端末)を提供することを目的とする。
【課題を解決するための手段】
【0024】
前記課題を解決するために、本発明に係る更新方法は、端末に格納されたプログラムをサーバを用いて更新する更新方法であって、サーバが端末から、更新が要求されたプログラムの識別情報を受信する受信ステップと、前記サーバが、前記プログラムの識別情報を参照して、前記更新が要求されたプログラムに対応するプログラムを前記端末へ送信するか否かを決定する決定ステップと、前記プログラムを前記端末へ送信すると決定した場合に、前記サーバが、前記プログラムを送信する前に前記プログラムのサイズの情報を前記端末へ送信し、前記端末が、受信したサイズの情報に基づいて前記端末の空き領域に前記プログラムを記録可能であるかを否か判断し、前記端末が前記端末の空き領域に前記プログラムを記録可能であると判断した場合に、前記サーバが前記プログラムを前記端末へ送信する送信ステップと、前記端末が、前記サーバから受信した前記プログラムを前記空き領域に格納する更新ステップとを含むことを特徴とする。
【0025】
また、本発明に係る送信方法は、サーバで用いられる送信方法であって、端末から、更新が要求されたプログラムの識別情報を受信する受信ステップと、前記プログラムの識別情報を参照して、前記更新が要求されたプログラムに対応するプログラムを前記端末へ送信するか否かを決定する決定ステップと、前記プログラムを前記端末へ送信すると決定した場合に、前記プログラムを送信する前に前記プログラムのサイズの情報を前記端末へ送信し、前記端末が、前記サイズの情報に基づいて、前記端末の空き領域に前記プログラムを記録可能であると判断した場合に前記プログラムを前記端末へ送信する送信ステップとを含むことを特徴とする。
【0026】
また、本発明に係るサーバは、端末から、更新が要求されたプログラムの識別情報を受信する受信手段と、前記プログラムの識別情報を参照して、前記更新が要求されたプログラムに対応するプログラムを前記端末へ送信するか否かを決定する決定手段と、前記プログラムを前記端末へ送信すると決定した場合に、前記プログラムを送信する前に前記プログラムのサイズの情報を前記端末へ送信し、前記端末が、前記サイズの情報に基づいて、前記端末の空き領域に前記プログラムを記録可能であると判断した場合に前記プログラムを前記端末へ送信する送信手段とを備えることを特徴とする。
【0027】
また、本発明に係る端末は、プログラムを格納する格納手段と、サーバへ、更新が要求されたプログラムの識別情報を送信する送信手段と、前記サーバが前記更新が要求されたプログラムに対応するプログラムを前記端末へ送信すると決定した場合に、前記プログラムを受信する前に前記プログラムのサイズの情報を前記サーバから受信し、受信したサイズの情報に基づいて前記格納手段に前記プログラムを記録可能であるかを否か判断する判断手段と、前記プログラムを記録可能であると判断した場合に、前記サーバから前記プログラムを受信し、受信した前記プログラムを前記格納手段に格納する更新手段とを備えることを特徴とする。
【0028】
また、前記課題を解決するために、本発明に係るサーバ装置は、外部から書き換えが行えない端末IDを保持する情報処理端末とネットワークを介して接続され前記情報処理端末で動作するプログラムを保持するサーバ装置であって、以前に配布したプログラムと端末IDとの関連を示すテーブルを保持するテーブル保持手段と、前記テーブルを参照して、前記情報処理端末から送信され前記端末IDを伴うプログラム取得要求に対するプログラムの配布の当否を判定する判定手段とを備えることを特徴とする。
【0029】
また、本発明に係るサーバ装置から情報処理端末に配布されるプログラムには、前記情報処理端末で動作するプログラム本体及び前記プログラム本体に使用される固有の情報であるプログラム固有情報が含まれ、前記判定手段は、前記プログラム取得要求に付与されている前記端末IDが前記テーブルに記録されている場合には、前記プログラム固有情報の配布を禁止して前記プログラム本体のみの配布を前記情報処理端末に行うと判定し、前記端末IDが前記テーブルに記載されていない場合には、前記端末IDと前記プログラム固有情報とを対応させて前記テーブルに追加すると共に、前記プログラム本体と前記プログラム固有情報とを前記情報処理端末に配布すると判定することを特徴とする。
【0030】
これらにより、サーバ装置は、情報処理端末が以前に配布したプログラムに対応するプログラム固有情報の新規取得を防止することが可能となり、新たなプログラム固有情報を取得して排除の回避を図る情報処理端末の不正行為を確実に防止することが可能となる。
【0031】
そして、前記課題を解決するために、本発明に係るプログラム管理システムは、外部から書き換えが行えない端末IDを保持する情報処理端末と、当該情報処理端末とネットワークを介して接続され前記情報処理端末で動作するプログラムを保持するサーバ装置とから構成されるプログラム管理システムであって、前記情報処理端末は、前記プログラムの取得を要求する場合には、前記端末IDを付与したプログラム取得要求を前記サーバ装置に送信し、前記サーバ装置は、前記プログラム取得要求を受信して、以前に配布したプログラムと端末IDとの関連を示すテーブルを保持するテーブル保持手段と、前記テーブルを参照して、前記情報処理端末から送信されて前記端末IDが付与されているプログラム取得要求に対するプログラムの配布の当否を判定する判定手段とを備えることを特徴とする。
【0032】
このように、本発明は、上述のようなサーバ装置として実現できるのみではなく、サーバ装置と情報処理端末との間のプログラム管理システムやサーバ装置が備える手段をステップとするプログラム配布方法としても実現できる。また、このプログラム配布方法をコンピュータ等で実現させるプログラムとして実現したり、当該プログラムをCD−ROM等の記録媒体や通信ネットワーク等の伝送媒体を介して流通させることができるのは言うまでもない。
【発明の効果】
【0033】
本発明に係る更新方法、送信方法、サーバ及び端末では、プログラムの取得不可となる弊害を防ぐことができる。
【0034】
また、本発明に係るサーバ装置は、固有情報配布履歴保持部を有することにより、情報処理端末が以前に配布したプログラムに対応するプログラム固有情報の新規取得を防止することが可能となり、新たなプログラム固有情報を取得して排除の回避を図る情報処理端末の不正行為を確実に防止することが可能となる。
【0035】
また、本発明に係る情報処理端末は、サーバ装置から取得したプログラムを端末固有鍵で暗号化することにより、サーバ装置におけるプログラム暗号化処理の負担を軽減することが可能となる。さらに、本発明に係るサーバ装置は、プログラム全体をプログラム及びプログラム固有情報に分離して個別に作成しているため、サーバ装置は、各情報処理端末で異なる情報となる容量の比較的小さなプログラム固有情報を複数管理して、全情報処理端末で共通な情報となる容量の大きなプログラムは1つのみ管理して、サーバ装置で管理する配布情報の容量を低減することが可能となり、情報管理の負担を軽減することが可能となる。
【0036】
そして、本発明に係るサーバ装置から情報処理端末に配布されるプログラムの全体には、情報処理端末で動作するプログラム本体、プログラムヘッダ、プログラム固有情報、及び固有情報ヘッダが含まれるため、プログラムを構成する各情報にCA署名やハッシュ値を用いることにより、サーバ装置から情報処理端末に配布される情報の正当性を確認することが可能となる。
【発明を実施するための最良の形態】
【0037】
以下、本発明の実施の形態に係るサーバ装置及びプログラム管理システムについて図面を用いて説明する。
【0038】
(実施の形態1)
図1は本発明の実施の形態1における情報処理端末100とサーバ装置120との構成図を示している。
【0039】
情報処理端末100は、サーバ装置120から取得した電子商取引やコンテンツ配信等に用いられるプログラムを使用する端末装置であり、CPU101、RAM102、プログラムやデータ等の暗号化及び復号化処理を行う暗号処理部103、サーバ装置120との通信を行う通信処理部104、プログラムを格納するプログラム格納部105、CA公開鍵など特に秘匿する必要がない情報を格納するデータ格納部106、及び秘密鍵など秘匿する必要がある情報を格納する秘匿情報格納部107から構成されている。
【0040】
プログラム格納部105は、CPU101で動作するプログラム116を格納する。
データ格納部106は、情報処理端末100で使用されるデータのうち特に秘匿する必要がないものを格納すると共に、情報処理端末100に格納されているプログラムのIDやバージョン番号など格納プログラムの管理情報であるプログラム管理情報108及びCA公開鍵109を格納する。
【0041】
また、秘匿情報格納部107は、情報処理端末100内で秘匿する必要がある情報を格納しており、情報処理端末毎に異なる鍵である端末固有鍵110、情報処理端末毎に異なる公開鍵ペアの1つである端末秘密鍵111、プログラムが使用する固有鍵などのプログラム固有情報112、情報処理端末毎に異なる公開鍵ペアの他方である端末公開鍵証明書113を格納する。そして、端末公開鍵証明書113は情報処理端末100を一意に識別するIDである端末ID114、端末公開鍵証明書113に対し認証局が付加したCA署名115を含んでいる。
【0042】
一方、本発明に係るサーバ装置120は、情報処理端末100から要求されるプログラムを配布する装置であり、CPU121、RAM122、プログラムやデータなどの暗号化及び復号化処理を行う暗号処理部123、情報処理端末100との通信を行う通信処理部124、CA公開鍵など特に秘匿する必要がない情報を格納するデータ格納部125、情報処理端末100に配布するプログラムなどの情報を格納する配布情報格納部126、及び固有情報配布履歴保持部140とから構成されている。
【0043】
そして、本発明に係るサーバ装置120は、固有情報配布履歴保持部140を有することを特徴としている。この固有情報配布履歴保持部140は、情報処理端末100に配布したプログラムのプログラム固有情報の履歴を管理するための固有情報配布履歴600を保持している。
【0044】
データ格納部125は、サーバ装置120が使用する情報を格納する領域であり、公開鍵ペアの1つであるサーバ秘密鍵127、公開鍵ペアの他方であるサーバ公開鍵証明書128、及びCA公開鍵129を格納する。サーバ公開鍵証明書128は、サーバを一意に識別するIDであるサーバID130、サーバ公開鍵証明書に対しCAが付加したCA署名131を含んでいる。配布情報格納部126は、サーバ装置120が情報処理端末100に対して配布する情報を格納する領域であり、プログラムヘッダ300、プログラム310、固有情報ヘッダ400、及びプログラム固有情報420を格納する。尚、この配布情報であるプログラム全体の図は後述の図2に示す。
【0045】
配布情報格納部126に格納されているプログラムヘッダ300、プログラム310、固有情報ヘッダ400、及びプログラム固有情報420には第三者認証機関であるCA署名が付加されており、このCA署名により配布情報が正当な配布元から配布されるものであることを保証する。
【0046】
図2は、本実施の形態1に係るサーバ装置120から情報処理端末100側に送信されるプログラム全体200の構成図である。このプログラムの全体200はサーバ装置120の配布情報格納部126に格納される情報であり、本実施の形態1においては、プログラムヘッダ300、プログラム310、固有情報ヘッダ400及びプログラム固有情報420より構成される。また、本発明においては、プログラム全体200をプログラム310及びプログラム固有情報420に分離し、さらに、ヘッダ部とデータ部とに分離することを特徴としている。
【0047】
尚、本実施の形態に係るプログラム管理システムにおいては、情報処理端末100がプログラム310で使用するアプリケーションデータをサーバ装置120等から取得する場合においては、アプリケーションデータ取得要求にプログラム固有情報420を付与して送信する。このことにより、サーバ装置120等が有するプログラム固有情報420を用いたCRLにより不正な情報処理端末を排除することが可能となる。
【0048】
図3(a)及び(b)は、プログラムヘッダ300及びプログラム310に格納される情報の一例を示す図である。
【0049】
プログラムヘッダ300は、プログラム310に関する情報を格納するものであり、次の情報を含む。
【0050】
(1)プログラムヘッダ300が格納する情報がどのプログラム310に対応する情報かを示すプログラムID(301)。(2)対応するプログラム310のバージョン番号(302)。(3)対応するプログラム310のプログラムサイズ(303)。(4)対応するプログラム310のハッシュ値(304)。(5)前記(1)から(4)までの情報を含むプログラムヘッダ300全体に対するCA署名(305)。
【0051】
また、プログラム310には、プログラム310に対するCA署名(311)が付加されている。このように、プログラムヘッダ300及びプログラム310は共にCA署名305及び311を含むため、情報処理端末100においてプログラムヘッダ、プログラムが正当な配布元から配布されたものであることを検証することが可能である。
【0052】
図4(a)及び(b)は、固有情報ヘッダ400及びプログラム固有情報420に格納される情報の一例を示す図である。
【0053】
固有情報ヘッダ400は、プログラム固有情報420に関する情報を格納するものであり、次の情報を含む。
【0054】
(1)固有情報ヘッダ400が格納する情報がどのプログラム固有情報420に対応した情報かを示すプログラム固有情報ID(401)。(2)対応するプログラム固有情報420を使用するプログラム310のプログラムID(402)。(3)対応するプログラム固有情報420が格納する固有情報の数(403)。(4)対応するプログラム固有情報420全体のサイズ(404)。(5)対応するプログラム固有情報420に含まれる個々の固有情報に関する情報を示す固有情報サブヘッダ(405)。固有情報サブヘッダ405はプログラム固有情報420に含まれる個々の固有情報の数(1〜n)だけ存在する。(6)前記(1)から(5)までの情報を含む固有情報ヘッダ400全体に対するCA署名(406)。
【0055】
固有情報サブヘッダ405は、さらに個々の固有情報を識別するためのIDであるプログラム固有情報サブID411、個々の固有情報のサイズ412から構成される。
【0056】
また、プログラム固有情報420は、複数のプログラム固有情報(421)と、プログラム固有情報全体に対するCA署名(422)を含む。このため、固有情報ヘッダ400、プログラム固有情報420は共にCA署名(406及び422)を含むため、情報処理端末100において固有情報ヘッダ400、プログラム固有情報420が正当な配布元から配布されたものであることを検証することが可能である。
【0057】
次に情報処理端末100とサーバ装置120との間で行われるプログラム更新システムにおける動作手順の例を、図5を用いて説明する。このプログラム更新システムにおいて、情報処理端末100は、まず、ヘッダ取得要求を行い、空き領域の確認を行う。また、サーバ装置120においては、固有情報配布履歴保持部140から固有情報配布履歴600を参照することにより、プログラムの不正使用を図る情報処理端末100を排除することが可能となる。
【0058】
最初に、情報処理端末100はサーバ装置120とSSLによる接続を行う(S501)。この際、サーバ装置120は情報処理端末100の端末IDの取得を行う。尚、SSLは、2点間でデータを安全に送受信するために、公開鍵暗号方式と秘密鍵暗号方式を併用して、データを暗号化して送受信する仕組みである。また、SSLではセッション鍵と呼ばれるそのセッションでのみ有効な鍵を共有するため、図5に示すS502以降の情報処理端末100とサーバ装置120間のデータ送受信は、すべてセッション鍵を用いた暗号化データにより行われるものとする。
【0059】
次に、情報処理端末100はサーバ装置120に対し、取得したいプログラム310のプログラムIDを指定してヘッダ取得要求を行う(S502)。この際、サーバ装置120は、固有情報配布履歴保持部140に保持されている固有情報配布履歴600により、端末IDとプログラム固有情報IDとの対応関係を確認する。つまり、情報処理端末100に対して、固有情報IDを既に配布したかどうかを確認する。そして、正規の情報処理端末からのヘッダ取得要求であると判断する場合においては、ヘッダ取得要求を受信したサーバ装置120は、配布情報格納部126に格納したプログラムヘッダ300を情報処理端末100に送信する(S503)。
【0060】
そして、サーバ装置120からプログラムヘッダ300を受信した情報処理端末100は、データ格納部106に格納しているCA公開鍵109を用いて、プログラムヘッダ300に含まれているCA署名を検証する(S504)。これにより、情報処理端末100はプログラムヘッダ300が改ざんされていない正当な配布元から配布された情報であることを検証する。また、プログラムヘッダ300には、プログラムのプログラムID301、バージョン番号302、サイズ303、プログラムのハッシュ値304などプログラムに関する情報が格納されているため、情報処理端末100は、これらの情報と、データ格納部106に格納されているプログラム管理情報108内に記載されているプログラムID、バージョン情報、空き容量情報を比較し、更新対象のプログラム310が正しくサーバ装置120から配布されたか、プログラム310を格納する空き容量が存在するか確認する(S504)。このため、本実施の形態1に係る情報処理端末100はプログラム310のダウンロード中にプログラムの取得不可となるような弊害を防止する。
【0061】
次に、サーバ装置120は配布情報格納部126に格納した固有情報ヘッダ400を情報処理端末100に送信する(S505)。
【0062】
そして、サーバ装置120から固有情報ヘッダ400を受信した情報処理端末100は、データ格納部106に格納しているCA公開鍵109を用いて、固有情報ヘッダ400に含まれているCA署名を検証する(S506)。これにより、情報処理端末100は固有情報ヘッダ400が改ざんされていない、正当な配布元から配布された情報であることを検証する。固有情報ヘッダ400には、プログラム固有情報420を一意に識別するプログラム固有情報ID401、プログラム固有情報に関連するプログラムのプログラムID402、プログラム固有情報で配布される情報に含まれる固有情報の数403、サイズ404などプログラム固有情報420に関する情報が格納されているため、情報処理端末100は、これらの情報と、データ格納部106に格納されているプログラム管理情報108内に記載されているプログラムID、空き容量情報を比較し、更新対象のプログラム310に関するプログラム固有情報420が正しくサーバ装置120から配布されたか、プログラム固有情報420を格納する空き容量が存在するかプログラム310のダウンロードの前に確認する(S506)。
【0063】
そして、情報処理端末100は、プログラム310、プログラム固有情報420の取得が行えると判断した場合、サーバ装置120に対しプログラムIDを指定してプログラム取得要求を行う(S507)。
【0064】
そして、プログラム取得要求を受信したサーバ装置120は、配布情報格納部126に格納したプログラム310を情報処理端末100に送信する(S508)。サーバ装置120からプログラム310を受信した情報処理端末100は、データ格納部106に格納しているCA公開鍵109を用いて、プログラム310に含まれているCA署名を検証する(S509)。これにより、情報処理端末100はプログラム310が改ざんされていない、正当な配布元から配布された情報であることを検証する。取得データの正当性が検証できた場合、取得したプログラム310を秘匿情報格納部107に格納している端末固有鍵110で暗号化し、プログラム格納部105に格納する(S509)。その際、プログラム格納位置やプログラムID、バージョン番号などをプログラム管理情報108に格納し、プログラムの管理を行う。
【0065】
次に、プログラムの格納が完了した後、プログラム格納部105に格納したプログラム116を、端末固有鍵110を用いて復号し、ハッシュ値を算出する。算出した値とプログラムヘッダ300に格納されているハッシュ値の比較を行い、プログラムが正しく格納されていることを確認する(S510)。
【0066】
次に、情報処理端末100はサーバ装置120に対しプログラムIDを指定してプログラム固有情報取得要求を行う(S511)。
【0067】
そして、サーバ装置120は配布情報格納部126に格納したプログラム固有情報420を情報処理端末100に送信する(S512)。サーバ装置120からプログラム固有情報420を受信した情報処理端末100は、データ格納部106に格納しているCA公開鍵109を用いて、プログラム固有情報420に含まれているCA署名を検証する(S513)。これにより、情報処理端末100はプログラム固有情報が改ざんされていない、正当な配布元から配布された情報であることを検証する。取得データの正当性が検証できた場合、取得したプログラム固有情報を秘匿情報格納部107に格納する(S513)。
【0068】
最後に、情報処理端末100におけるプログラム、プログラム固有情報の格納が完了した後、情報処理端末100とサーバ装置120との間の通信を切断する(S514)。
【0069】
このように、本実施の形態1に係る情報処理端末100は、ヘッダ取得要求を行うことによりプログラム310を格納する空き容量が存在するか等の確認して、より安全にプログラムのダウンロードを行うことが可能となる。尚、この場合において、プログラム310及びプログラム固有情報420のハッシュ値を算出して、算出したハッシュ値と、プログラムヘッダ300及びプログラム固有情報ヘッダ400に格納されているハッシュ値とを比較することにより正当な配布情報であることを確認することも考え得る。
【0070】
図6は、固有情報配布履歴保持部140に保持される固有情報配布履歴600の情報格納の一例を示す図である。
【0071】
サーバ装置120は、以前に情報処理端末100に配布したプログラムに対応するプログラム固有情報420と当該情報処理端末100の端末IDとを記録したテーブルを固有情報配布履歴600とする。
【0072】
そして、サーバ装置120は、プログラム固有情報420を配布した情報処理端末100を識別するIDである端末ID601、及び配布したプログラム固有情報420を識別するIDであるプログラム固有情報ID602を固有情報配布履歴保持部140に格納する。また、必要に応じてプログラム固有情報420を最後に配布した日時を示す最終配布日付603を固有情報配布履歴600に格納する。
【0073】
図6においては、サーバ装置120は情報処理端末100に5つのプログラム固有情報420を配布済みであり、それぞれの端末ID601、プログラム固有情報ID602の組は、(端末ID,プログラム固有情報ID)=(0001,0001)、(0002,0002)、(0010,0003)、(0015,0004)、(0020,0005)となる。
【0074】
図7は、サーバ装置120におけるプログラム310の配布手順を示すフローチャートである。
【0075】
最初に、サーバ装置120は情報処理端末100からプログラム配布要求を受信する(S701)。次に、サーバ装置120は、受信したプログラム配布要求に含まれる情報処理端末100の端末IDを取得して(S702)、固有情報配布履歴600に対して取得した端末IDを検索し(S703)、固有情報配布履歴600に同じ端末IDが格納されているか否かの判定を行う(S704)。
【0076】
サーバ装置120は、固有情報配布履歴600に同じ端末IDが格納されていた場合には(S704のY)、情報処理端末100には既にプログラム固有情報420を配布済みであるため、プログラム310のみを送信し処理を終了する(S708)。
【0077】
また、サーバ装置120は、固有情報配布履歴600に同じ端末IDが格納されていない場合(S704でN)、情報処理端末100に対しては新たにプログラム固有情報420を割り当てて(S705)、この新たに割り当てたプログラム固有情報420に関し、端末ID601とプログラム固有情報ID602の対応を追加して固有情報配布履歴600を更新する(S706)。そして、サーバ装置120は、プログラム固有情報420を情報処理端末100に送信し、プログラム310を情報処理端末100に送信して処理を終了する(S708)。
【0078】
このように、サーバ装置120において固有情報配布履歴600を用いてプログラム固有情報を配布管理することにより、1つの情報処理端末100へ複数のプログラム固有情報420を配布することを確実に防止する。これにより、サーバ装置120は、既にCRL等によりプログラム固有情報420を用いて不正端末と認識され、排除されている情報処理端末100に対しては、新たなプログラム固有情報420を割り当てることはない。従って、新たなプログラム固有情報420を取得して排除の回避を図る情報処理端末100の不正行為を防止することが可能となる。
【0079】
図8は、本実施の形態1に係るサーバ装置120を用いたプログラム管理システムを示す全体図である。
【0080】
プログラム用のサーバ装置120aは、プログラム取得要求に対応するプログラムを情報処理端末100に送信する。サーバ装置120bは、情報処理端末100で動作するプログラムに用いるアプリケーションを情報処理端末100に送信する。尚、図8においては、情報処理端末100の保持するプログラムのプログラム固有情報を「0101」として、CRL800の排除からの回避を図るために新たなプログラム固有情報の不正取得を図る端末として説明を行う。また、プログラムの安全な配布を図るために、通信路はSSLを用いて暗号化通信路としている。
【0081】
情報処理端末100の利用者がアプリケーションデータを要求する際においては、情報処理端末100の保持するプログラムのプログラム固有情報「0101」を付与したアプリケーション取得要求をアプリケーションデータ用のサーバ装置120bに送信する。
【0082】
そして、サーバ装置120bは、プログラム固有情報を用いた不正プログラムの無効化リスト(CRL)800を有しており、情報処理端末100からの取得要求に付与されるプログラム固有情報「0101」がCRL800に記載されているためにアプリケーションデータの送信を行わないことで不正な情報処理端末の排除を行う。尚、CRLにプログラム固有情報が記載されていない場合においては、サーバ装置120bは、アプリケーションデータを情報処理端末100に送る。また、サーバ装置120a等からダウンロードするデータにCA署名を付加して、情報処理端末100で署名検証を行うことにより、ダウンロードデータの通信路上での改ざん、すり替え、盗聴等を防止する。
【0083】
プログラム固有情報「0101」がCRL800に記載された情報処理端末100のユーザは、新たな別のプログラム固有情報を得てCRLによる排除を回避するためにプログラム用のサーバ装置120aよりプログラム固有情報の取得要求を行う。
【0084】
このような場合において、本発明に係るサーバ装置120aは、固有情報配布履歴保持部140において、以前に配布したプログラムに関し、情報処理端末100の端末ID「0102」と、プログラム固有情報ID「0101」とを記録した固有情報配布履歴600を有している。
【0085】
そして、情報処理端末100から、新たなプログラム固有情報取得要求をサーバ装置120aに対して行う場合には、サーバ装置120aは、このプログラム固有情報取得要求に付与されている端末ID「0102」が固有情報配布履歴600に記載されているか否か判断して、記載されている場合においては、プログラム固有情報の配布を禁止してプログラム本体のみの配布を前記情報処理端末100に行う。尚、固有情報配布履歴600を参照して、プログラム固有情報取得要求に付与されている端末IDに対応するプログラム固有情報IDが記載されていない場合においては、端末IDとプログラム固有情報IDとを対応させて固有情報配布履歴600に追加すると共に、プログラムとプログラム固有情報とを情報処理端末100に配布する。
【0086】
尚、サーバ装置120aが情報処理端末100に再度配布をしないのは、プログラム固有情報のみであり、プログラムの本体は2回以上配布しても構わない。これは、プログラム固有情報がCRL800により無効化されているため、プログラム固有情報が更新されない限り、不正使用を図る情報処理端末100のユーザが新たなアプリケーションデータを取得することを排除しているためである。
【0087】
図9は、本実施の形態1に係るプログラムヘッダ900とプログラム910に含まれる別のデータ構造を示す図である。図9において、図3と異なる点は、プログラム910にCA署名311を付加しない点である。
【0088】
プログラムヘッダ900は、プログラム910に関する情報を格納するものであり、上述したプログラムヘッダ300と同様の情報であるプログラムID(901)、バージョン番号(902)、プログラムサイズ(903)、ハッシュ値(904)、CA署名(905)を含むものである。
【0089】
プログラムヘッダ900及びプログラム910の正当性検証を情報処理端末100において行う場合、第1に、プログラムヘッダ900をサーバ装置120から取得し、プログラムヘッダ900に付加されたCA署名905を検証する。これにより、情報処理端末100はプログラムヘッダ900が改ざんされていない、正当な配布元から配布された情報であることを検証する。
【0090】
次に、プログラム910のハッシュ値を算出する。算出したハッシュ値と、プログラムヘッダ900に格納されているプログラムのハッシュ値904を比較し、一致することを確認する。これにより、情報処理端末120はプログラム910が改ざんされていない正当な配布元から配布された情報であることを検証することが可能となる。
【0091】
このように、プログラム910の正当性検証にプログラムヘッダ900に格納されたプログラムのハッシュ値904を使用し、プログラムヘッダ900にのみCA署名905を付加することで、プログラム910のCA署名に必要とする情報を低減しながら、プログラムヘッダ900、プログラム910に署名を付加する場合と同様に正当性を検証することが可能となる。また、プログラムヘッダ900とプログラム910の組み合わせが不正に変更された場合、情報処理端末100において、プログラムのハッシュ値を算出することにより組み合わせの異常を検出することが可能となる。尚、プログラム910のCA署名を行わないことにより、プログラム910を認証局に渡してCA署名を行う必要がなくなる。
【0092】
次に、図10を用いて、固有情報ヘッダ1000とプログラム固有情報1020とに含まれる別のデータ構造を示す図である。図10において、図4と異なる点は、固有情報ヘッダ1000がプログラム固有情報ハッシュ値1005を有し、プログラム固有情報1020にCA署名422を付加しない点である。
【0093】
固有情報ヘッダ1000は、プログラム固有情報1020に関する情報を格納するものであり、上述した固有情報ヘッダ400に格納される情報と同様な情報であるプログラム固有情報ID1001、プログラムID1002、固有情報の数1003、プログラム固有情報全体のサイズ1004、プログラム固有情報全体のハッシュ値1005、固有情報サブヘッダ1006、及び固有情報ヘッダ全体に対するCA署名1007より構成される。
【0094】
従って、情報処理端末100は、プログラム固有情報1020のハッシュ値を算出して、算出したハッシュ値と、固有情報ヘッダ1000に格納されているプログラム固有情報のハッシュ値1005とを比較して一致することを確認することにより、プログラム固有情報1020が改ざんされていない、正当な配布元から配布された情報であることを検証することが可能となる。
【0095】
以上のように、本実施の形態1に係るサーバ装置120が固有情報配布履歴保持部140を有することにより、サーバ装置120は、情報処理端末100が以前に配布したプログラムに対応するプログラム固有情報の新規取得を防止することが可能となる。このため、新たなプログラム固有情報420を取得して排除の回避を図る情報処理端末100のハッキング等の不正行為を回避してセキュアなダウンロードを実現できる。
【0096】
また、情報処理端末100においてサーバ装置120から取得したプログラムを内部からのみアクセス可能なセキュアなフラッシュメモリ等に記録されている端末固有鍵110で暗号化することにより、従来のようにサーバ装置においてプログラムを情報処理端末の固有の鍵で暗号化する処理を必要としなくなり、サーバ装置120におけるプログラム暗号化処理の負担を軽減することが可能となる。尚、この場合、情報処理端末100において端末固有鍵110で暗号化した場合、正しく暗号化が行えたことを確認する必要がある。この点に関し本発明では、情報処理端末100は、プログラム格納後に端末固有鍵110で復号し、平文プログラムのハッシュ値による検証を行うことで、情報処理端末100毎に異なる端末固有鍵110による暗号化を意識することなく、プログラム格納の成否を判定することが可能となる。
【0097】
さらに、サーバ装置120は、プログラム全体をプログラム310及びプログラム固有情報420に分離して個別に作成している。従って、サーバ装置120は、各情報処理端末100で異なる情報となる容量の比較的小さなプログラム固有情報420を複数管理して、全情報処理端末100で共通な情報となる容量の大きなプログラム310は1つのみ管理することにより、サーバ装置120で管理する配布情報の容量を格段に低減され、ひいては、情報管理の負担を軽減することが可能となる。
【0098】
そして、サーバ装置120においては、固有情報ヘッダ1000にプログラム固有情報1020のハッシュ値1005を格納し、固有情報ヘッダ1000にのみCA署名1007を付加することで、プログラム910のCA署名に必要とする情報を低減しながら、固有情報ヘッダ1000、プログラム固有情報1020に署名を付加する場合と同様の効果を得ることが可能となる。また、固有情報ヘッダ1000とプログラム固有情報1020の組み合わせが不正に変更された場合、情報処理端末100において、プログラム固有情報1020のハッシュ値を算出することにより組み合わせの異常を検出することが可能となる。
【0099】
尚、本実施の形態1で示した固有情報配布履歴保持部140に保持される固有情報配布履歴600の形式は一例であり、最終配布日付603を削除してもよいし、他の情報を付加してもよい。また、本実施の形態1では固有情報配布履歴600に記載されている端末ID601に対してプログラム固有情報420の配布を拒否しているが、不正取得でない限りにおいては、当該端末ID601を有する情報処理端末100に対して既に配布済みのプログラム固有情報420を再度配布してもよい。
【0100】
そして、本実施の形態1に係るサーバ装置120では、情報処理端末100からの要求はプログラムの配布を伴うプログラム配布要求、又はプログラムの配布を伴わないプログラム固有情報配布要求のいずれかとできる。
【0101】
また、本実施の形態1では情報処理端末100とサーバ装置120間でSSLを用いた暗号化データの送受信を行っているが、2点間で安全にデータの送受信が行える方法であれば、SSLに限らず他のプロトコルを用いてもよい。
【0102】
そして、本実施の形態1ではデータ格納部106とプログラム格納部105を別にしているが、同一の格納部としてもよい。また、秘匿情報格納部107に端末公開鍵証明書113を格納しているが、データ格納部106に格納してもよい。
【0103】
また、本実施の形態1に係るサーバ装置120は、プログラムヘッダ300、固有情報ヘッダ400をプログラム310、プログラム固有情報420とは別に作成しているが、プログラム310とプログラムヘッダ300、プログラム固有情報420と固有情報ヘッダ400をそれぞれ一体の情報とし、サーバ装置120からの配布に先立ちヘッダ部分のみ切り出して情報処理端末100に送信してもよい。
【0104】
さらに、本実施の形態1ではプログラム310、プログラム固有情報420に対し配布時にセッション鍵による暗号化を行う例を示したが、セッション鍵とは異なる鍵でさらに暗号化し、その鍵をプログラムヘッダ300、固有情報ヘッダ400に含めて配布する構成としてもよい。
【0105】
そして、本実施の形態1でハッシュ値と記載している点は、ハッシュアルゴリズムとしてSHA−1、MD5などの既存のハッシュアルゴリズムを使用してもよいし、独自のアルゴリズムを用いてもよい。また、ハッシュアルゴリズムのかわりにチェックサムなどの方法を用いて改ざんの検出を行ってもよい。また、情報処理端末100毎に異なる情報を必要としないプログラムを配布する場合は、プログラム固有情報の配布を行う必要はない。
【0106】
(実施の形態2)
図11は、本発明の実施の形態2に係る情報処理端末1100とサーバ装置1120との構成図を示す。同図において、実施の形態1と異なる点は、サーバ装置1120がプログラム/固有情報対応表保持部1150を保持する点である。
【0107】
このプログラム/固有情報対応表保持部1150は、プログラム固有情報を一意に識別するプログラム固有情報IDと、プログラム固有情報を使用するプログラムを一意に特定するプログラムIDとの対応を示したプログラム/固有情報対応表1210を保持する記憶部である。
【0108】
図12(a)及び(b)は、本実施の形態2に係る固有情報配布履歴1200及びプログラム/固有情報対応表1210に含まれる情報の一例を示す図である。
【0109】
固有情報配布履歴保持部1140は、前述した実施の形態1の固有情報配布履歴600と異なり、配布したプログラム固有情報に対応するプログラムを識別するプログラムID1202が付加されている固有情報配布履歴1200を管理する。尚、固有情報配布履歴1200に格納される端末ID1201、プログラム固有情報ID1203、及び最終配布日付1204については前述した図6と同様のため詳細な説明は省略する。
【0110】
固有情報配布履歴1200の例では、サーバ装置1120は情報処理端末1100に5つのプログラム固有情報ID1203を配布済みであり、それぞれの端末ID1201、プログラムID1202、プログラム固有情報ID1203の組は、(端末ID,プログラムID,プログラム固有情報ID)=(0001,0001,0001)、(0002,0001,0002)、(0010,0001,0003)、(0015,0001,0004)、(0020,0002,1001)となる。
【0111】
また、プログラム/固有情報対応表保持部1150は、プログラム/固有情報対応表1210に、サーバ装置1120が管理しているプログラムのプログラムID1211と、各プログラムが使用するプログラム固有情報を識別するプログラム固有情報ID1212との対応関係を格納する。
【0112】
図12の例では、サーバ装置1120はプログラムIDが0001のプログラムを管理しており、そのプログラムが使用するプログラム固有情報としてプログラム固有情報IDが0001から1000までのプログラム固有情報を管理している。同様にプログラムIDが0002のプログラムと、そのプログラムが使用するプログラム固有情報IDが1001から2000までのプログラム固有情報を管理している。また、プログラム/固有情報対応表1210には、情報処理端末1100に配布済みのプログラム固有情報の再配布を防止するために、次回のプログラム固有情報配布の開始時に、配布すべきプログラム固有情報である配布開始ID1213を格納する。
【0113】
図12の例では、プログラムIDが0001のプログラムに対し新たにプログラム固有情報を割り当てる場合、サーバ装置1120はプログラム固有情報ID0123のプログラム固有情報を割り当てることを示している。同様にプログラムIDが0002のプログラムに対し新たにプログラム固有情報を割り当てる場合、サーバ装置1120はプログラム固有情報ID1423のプログラム固有情報を割り当てることを示している。
【0114】
また、サーバ装置1120は、このプログラム/固有情報対応表1210を用いて、情報処理端末1100からのプログラムIDを指定したプログラム配布要求に対し、そのプログラムIDに対応したプログラム固有情報を配布することとなる。
【0115】
本発明の実施の形態2におけるプログラム配布手順について、図13を用いて説明する。図13は、サーバ装置1120におけるプログラムの配布手順を示すフローチャートである。
【0116】
第1に、サーバ装置1120は情報処理端末1100からプログラム配布要求を受信する(S1301)。このプログラム配布要求は、プログラムIDを指定するものである。
【0117】
次に、サーバ装置1120は、受信したプログラム配布要求から情報処理端末1100の端末ID及びプログラムIDを取得する(S1302)。そして、固有情報配布履歴1200に対して取得した端末ID、プログラムIDを検索し(S1303)、固有情報配布履歴1200に同じ端末IDかつ同じプログラムIDの履歴が格納されているか否か確認する(S1304)。
【0118】
固有情報配布履歴1200に同じ端末IDかつ同じプログラムIDの履歴が格納されていた場合には(S1304でY)、サーバ装置1120は、情報処理端末1100に既に指定プログラムに対するプログラム固有情報1135を配布済みであるため、プログラム1133のみを送信し処理を終了する(S1309)。
【0119】
固有情報配布履歴1200に同じ端末IDかつ同じプログラムIDの履歴が格納されていない場合には(S1304でN)、サーバ装置1120は、プログラム/固有情報対応表1210に格納されている配布開始IDの情報を元に情報処理端末1100へ新たにプログラム固有情報1135を割り当てる(S1305)。
【0120】
次に、サーバ装置1120は、新たに割り当てたプログラム固有情報1135に関し、プログラム/固有情報対応表保持部1150に格納されているプログラム/固有情報対応表1210を参照して、配布開始ID1213の値を更新する(S1306)。また、新たに割り当てたプログラム固有情報1135に関し、端末IDとプログラム固有情報IDの対応を固有情報配布履歴1200に追加する(S1307)。そして、サーバ装置1120は、プログラム固有情報1135を情報処理端末1100に送信し(S1308)、プログラム1133を送信し処理を終了する(S1309)。
【0121】
以上のように、本実施の形態2に係るサーバ装置1120は、固有情報配布履歴保持部1140とプログラム/固有情報対応表保持部1150とを有し、固有情報配布履歴1200とプログラム/固有情報対応表1210を用いてプログラム固有情報の配布管理を行うことにより、1つの情報処理端末1100で動作する同一プログラムに対して複数のプログラム固有情報1135を配布することを防ぐ。このため、新たなプログラム固有情報1135を取得して排除の回避を図る情報処理端末1100がプログラム固有情報1135を新規取得することを防止することが可能となる。
【0122】
また、本実施の形態2に係るサーバ装置1120は、ダウンロード対象のプログラムと、当該プログラムが動作する情報処理端末1100との対応をプログラム/固有情報対応表1210に格納してプログラム固有情報1135の配布をプログラム単位に管理することにより、プログラム毎にプログラム固有情報1135の配布可否を判定することが可能となる。このため、サーバ装置1120はプログラム/固有情報対応表1210を参照して、プログラムを動作対象でない情報処理端末1100に配布することを防止することが可能となる。
【0123】
尚、本実施の形態2ではデータ格納部1106とプログラム格納部1105を別にしているが、同一の格納部としてもよい。また、本実施の形態2で示した固有情報配布履歴1200の形式は一例であり、最終配布日付1204を削除してもよいし、他の情報を付加してもよい。同様にプログラム/固有情報対応表1210の形式も一例であり、配布開始ID1213を別の形式で管理してもよい。例えば、全プログラム固有情報IDを格納したテーブルを持ち、各プログラム固有情報IDに対して割り当て済みか否かを識別するフラグを設けることにより、プログラム固有情報1135の配布状態を管理してもよい。
【0124】
また、本実施の形態2では固有情報配布履歴1200に記載されている端末ID1201に対してプログラム固有情報1135の配布を拒否しているが、その情報処理端末1100に対して既に配布済みのプログラム固有情報1135を再度配布してもよい。また、本実施の形態2では情報処理端末1100からの要求はプログラムの配布を伴うプログラム配布要求、又はプログラムの配布が伴わないプログラム固有情報配布要求とできる。
【0125】
(実施の形態3)
図14は、本実施の形態3に係る情報処理端末1400とサーバ装置1420の構成図を示す。同図において、前述した実施の形態1及び実施の形態2と異なる点は、サーバ装置1420が配布回数情報保持部1440を有する点である。
【0126】
この配布回数情報保持部1440は、サーバ装置1420から同一の情報処理端末1400に対してプログラム固有情報1435を配布した回数を管理するための配布回数情報1500を保持するハードディスクである。
【0127】
図15は、本実施の形態3に係る配布回数情報1500の情報格納例を示す図である。
配布回数情報1500には、プログラム固有情報1435を配布した情報処理端末1400を識別するIDである端末ID1501、配布した回数を示す回数カウンタ1502が格納される。同図の例では、端末IDが0001、0002の情報処理端末1400に対してプログラム固有情報1435を1回配布しており、端末IDが0003の情報処理端末1400に対してプログラム固有情報1435を配布していないことが示されている。
【0128】
図16は、サーバ装置1420におけるプログラムの配布手順を示すフローチャートである。
【0129】
まず、サーバ装置1420は情報処理端末1400からプログラム配布要求を受信する(S1601)。次に、サーバ装置1420は、S1601で受信したプログラム配布要求に含まれる情報処理端末1400の端末IDを取得する(S1602)。
【0130】
そして、サーバ装置1420は配布回数情報保持部1440に保持される配布回数情報1500を用いてS1602で取得した端末IDを検索し、回数カウンタの値を取得する(S1603)。また、取得した回数カウンタの値が規定値以上か否かを判定する(S1604)。
【0131】
そして、取得した回数カウンタの値が規定値以上であった場合(S1604でY)、サーバ装置1420は、情報処理端末1400に対しては既にプログラム固有情報1435を規定回数以上配布しているため、プログラム1433のみを送信し処理を終了する(S1608)。
【0132】
一方、取得した回数カウンタの値が規定値未満であった場合(S1604でN)、サーバ装置1420は情報処理端末1400へは新たにプログラム固有情報1435を割り当てる(S1605)。また、サーバ装置1420は配布回数情報保持部1440内に格納されている配布回数情報1500の回数カウンタの値を加算する(S1606)。そして、サーバ装置1420は、プログラム固有情報1435を情報処理端末1400に送信し(S1607)、プログラム1433を送信し処理を終了する(S1608)。
【0133】
このように、本実施の形態3に係るサーバ装置1420は、配布回数情報保持部1440を有し、配布回数情報1500を用いてプログラム固有情報1435の配布管理を行うことにより、1つの情報処理端末1400へ規定値以上のプログラム固有情報1435を配布することを防ぐことができる。特に、規定値を1に設定した場合、本発明の実施の形態1及び実施の形態2と同様に、サーバ装置1420は、プログラム固有情報1435が含む情報を用いて不正端末と認識され、排除されている情報処理端末1400に対し、新たにプログラム固有情報1435を割り当てることにより、不正端末が排除を回避することを防ぐことが可能となる。
【0134】
また、プログラム固有情報1435の配布回数を示す規定値を2以上とすることにより、ハードディスクが故障したような不正の目的でなくプログラムを再度購入するようなユーザに対してプログラム固有情報1435の再配布や新たな配布を正規に行うことが可能となる。
【0135】
尚、本実施の形態3ではデータ格納部1406とプログラム格納部1405を別にしているが、同一の格納部としてもよい。また、本実施の形態3で示した配布回数情報1500の形式は一例であり、他の情報を付加してもよい。また、本実施の形態3では情報処理端末1400からの要求はプログラムの配布を伴うプログラム配布要求、又はプログラムの配布要求を伴わないプログラム固有情報配布要求とできる。
【0136】
(実施の形態4)
図17は、本実施の形態4に係る情報処理端末1700とサーバ装置1720の構成図を示す。同図において、前述の実施の形態3と異なる点は、サーバ装置1720がプログラム/固有情報対応表保持部1750を保持する点である。このプログラム/固有情報対応表保持部1750は、図11において説明したプログラム/固有情報対応表保持部1150と同様の記憶部である。
【0137】
図18(a)及び(b)は、本実施の形態4に係る配布回数情報1800とプログラム/固有情報対応表1810に格納されるデータの一例を示す図である。
【0138】
配布回数情報1800は、配布したプログラムのプログラムID1801、プログラム固有情報1735を配布した情報処理端末1700の端末ID1802、プログラム固有情報を配布した回数を示す回数カウンタ1803を格納する。前記実施の形態3における配布回数情報1500と異なる点は、プログラム固有情報を使用するプログラムを識別するプログラムID1801が付加されている点である。
【0139】
配布回数情報1800は、プログラムIDが0001のプログラムが使用するプログラム固有情報1735を、端末IDが0001、0002の情報処理端末1700に対して1回配布し、端末IDが0003の情報処理端末1700に対してプログラム固有情報1735を配布していないことを示す。また同様に、プログラムIDが0002のプログラムが使用するプログラム固有情報1735を、端末IDが0001の情報処理端末1700に対して1回配布しており、端末IDが0002、0003の情報処理端末1700に対してプログラム固有情報1735を配布していないことを示している。
【0140】
尚、プログラム/固有情報対応表1810は、前述した図12におけるプログラム/固有情報対応表1210と同様であり、詳細な説明は省略する。
【0141】
図19は、サーバ装置1720におけるプログラムの配布手順を示すフローチャートである。
【0142】
まず、サーバ装置1720は情報処理端末1700からプログラム配布要求を受信する(S1901)。このプログラム配布要求には、情報処理端末1700より取得の要求されるプログラムのプログラムIDを含む。次に、サーバ装置1720は、S1901で受信したプログラム配布要求に含まれる情報処理端末1700の端末ID、プログラムIDを取得する(S1902)。
【0143】
そして、サーバ装置1720は、配布回数情報1800に対してS1902で取得した端末ID、プログラムIDを検索し、回数カウンタの値を取得する(S1903)。次に、取得した回数カウンタの値が規定値以上か否かを判定する(S1904)。
【0144】
また、取得した回数カウンタの値が規定値以上であった場合(S1904でY)、サーバ装置1720は、情報処理端末1700へは既にプログラム固有情報1735を規定回数以上配布しているため、プログラム1733のみを送信し処理を終了する(S1909)。
【0145】
次に、取得した回数カウンタの値が規定値未満であった場合(S1904でN)、サーバ装置1720は、プログラム/固有情報対応表1810に格納されている配布開始IDの情報を元に情報処理端末1700へ新たにプログラム固有情報1735を割り当てる(S1905)。
【0146】
そして、サーバ装置1720は、S1905で新たに割り当てたプログラム固有情報1735に関し、プログラム/固有情報対応表1810に格納されている配布開始IDの値を更新する(S1906)。また、配布回数情報1800内に格納されている回数カウンタの値を加算し(S1907)、プログラム固有情報1735を情報処理端末1700に送信し(S1908)、プログラム1733を送信し処理を終了する(S1909)。
【0147】
以上のように、本実施の形態4に係るサーバ装置1720は、配布回数情報保持部1740とプログラム/固有情報対応表保持部1750とを有し、各保持部に保持される配布回数情報1800及びプログラム/固有情報対応表1810を用いてプログラム固有情報1735を配布管理することにより、1つの情報処理端末1700で動作する同一プログラムに対して規定値以上のプログラム固有情報1735を配布することを防いで、プログラム固有情報1735の不正使用を図る情報処理端末1700を排除することが可能となる。
【0148】
また、本実施の形態4では、サーバ装置1720は、プログラム固有情報の配布をプログラム単位に管理することにより、プログラム毎にプログラム固有情報1735の配布可否を判定することが可能となる。
【0149】
尚、本実施の形態4ではデータ格納部1706とプログラム格納部1705を別にしているが、同一の格納部としてもよい。また、本実施の形態4で示した配布回数情報1800の形式は一例であり、他の情報を付加してもよい。同様にプログラム/固有情報対応表1810の形式も一例であり、別の形式で管理してもよい。また、本実施の形態4では情報処理端末1700からの要求はプログラムの配布を伴うプログラム配布要求、又はプログラムの配布を伴わないプログラム固有情報配布要求とできる。
【産業上の利用可能性】
【0150】
本発明の更新方法は、サーバおよび端末などに適用することができる。
【図面の簡単な説明】
【0151】
【図1】実施の形態1における情報処理端末とサーバ装置との構成図である。
【図2】本実施の形態1に係るサーバ装置から情報処理端末側に送信されるプログラム全体の構成図である。
【図3】プログラムヘッダ及びプログラムに格納される情報の一例を示す図である。
【図4】固有情報ヘッダ及びプログラム固有情報に格納される情報の一例を示す図である。
【図5】情報処理端末とサーバ装置と間で行われるプログラム更新システムにおける動作手順を示す図である。
【図6】固有情報配布履歴保持部に保持される固有情報配布履歴の情報格納の一例を示す図である。
【図7】サーバ装置におけるプログラムの配布手順を示すフローチャートである。
【図8】本実施の形態1に係るサーバ装置を用いたプログラム管理システムを示す全体図である。
【図9】本実施の形態1に係るプログラムヘッダとプログラムに含まれる別のデータ構造を示す図である。
【図10】固有情報ヘッダとプログラム固有情報とに含まれる別のデータ構造を示す図である。
【図11】本発明の実施の形態2に係る情報処理端末とサーバ装置との構成図を示す。
【図12】本実施の形態2に係る固有情報配布履歴及びプログラム/固有情報対応表に含まれる情報の一例を示す図である。
【図13】サーバ装置におけるプログラムの配布手順を示すフローチャートである。
【図14】本実施の形態3に係る情報処理端末とサーバ装置の構成図である。
【図15】本実施の形態3に係る配布回数情報の情報格納例を示す図である。
【図16】サーバ装置におけるプログラムの配布手順を示すフローチャートである。
【図17】本実施の形態4に係る情報処理端末とサーバ装置の構成図である。
【図18】本実施の形態4に係る配布回数情報とプログラム/固有情報対応表に格納されるデータの一例を示す図である。
【図19】サーバ装置におけるプログラムの配布手順を示すフローチャートである。
【図20】従来の電子的な署名を用いたプログラムの正当性検証方法に関する説明図である。
【図21】従来の情報処理端末とサーバ装置との間のプログラム管理システムの参考図である。

【特許請求の範囲】
【請求項1】
端末に格納されたプログラムをサーバを用いて更新する更新方法であって、
サーバが端末から、更新が要求されたプログラムの識別情報を受信する受信ステップと、
前記サーバが、前記プログラムの識別情報を参照して、前記更新が要求されたプログラムに対応するプログラムを前記端末へ送信するか否かを決定する決定ステップと、
前記プログラムを前記端末へ送信すると決定した場合に、
前記サーバが、前記プログラムを送信する前に前記プログラムのサイズの情報を前記端末へ送信し、
前記端末が、受信したサイズの情報に基づいて前記端末の空き領域に前記プログラムを記録可能であるかを否か判断し、
前記端末が前記端末の空き領域に前記プログラムを記録可能であると判断した場合に、前記サーバが前記プログラムを前記端末へ送信する送信ステップと、
前記端末が、前記サーバから受信した前記プログラムを前記空き領域に格納する更新ステップと
を含むことを特徴とする更新方法。
【請求項2】
サーバで用いられる送信方法であって、
端末から、更新が要求されたプログラムの識別情報を受信する受信ステップと、
前記プログラムの識別情報を参照して、前記更新が要求されたプログラムに対応するプログラムを前記端末へ送信するか否かを決定する決定ステップと、
前記プログラムを前記端末へ送信すると決定した場合に、
前記プログラムを送信する前に前記プログラムのサイズの情報を前記端末へ送信し、
前記端末が、前記サイズの情報に基づいて、前記端末の空き領域に前記プログラムを記録可能であると判断した場合に前記プログラムを前記端末へ送信する送信ステップと
を含むことを特徴とする送信方法。
【請求項3】
プログラムを格納する格納手段を備えた端末で用いられる更新方法であって、
サーバへ、更新が要求されたプログラムの識別情報を送信する送信ステップと、
前記サーバが前記更新が要求されたプログラムに対応するプログラムを前記端末へ送信すると決定した場合に、前記プログラムを受信する前に前記プログラムのサイズの情報を前記サーバから受信し、受信したサイズの情報に基づいて前記格納手段に前記プログラムを記録可能であるかを否か判断する判断ステップと、
前記プログラムを記録可能であると判断した場合に、前記サーバから前記プログラムを受信し、受信した前記プログラムを前記格納手段に格納する更新ステップと
を含むことを特徴とする更新方法。
【請求項4】
前記端末は、更に、前記端末に固有の鍵である固有鍵を保持する保持手段を備え、
前記更新ステップは、前記プログラムに前記固有鍵を用いた暗号処理を施すことで変換データを生成し、
前記変換データを前記格納手段に格納する
ことを特徴とする請求項3記載の更新方法。
【請求項5】
前記プログラムは、前記端末と前記サーバとが共有する鍵である共有鍵を用いて暗号化された状態で前記サーバから送信され、
前記更新ステップは、更に、暗号化された前記プログラムを前記共有鍵を用いて復号する
ことを特徴とする請求項4記載の更新方法。
【請求項6】
端末から、更新が要求されたプログラムの識別情報を受信する受信手段と、
前記プログラムの識別情報を参照して、前記更新が要求されたプログラムに対応するプログラムを前記端末へ送信するか否かを決定する決定手段と、
前記プログラムを前記端末へ送信すると決定した場合に、
前記プログラムを送信する前に前記プログラムのサイズの情報を前記端末へ送信し、
前記端末が、前記サイズの情報に基づいて、前記端末の空き領域に前記プログラムを記録可能であると判断した場合に前記プログラムを前記端末へ送信する送信手段と
を備えることを特徴とするサーバ。
【請求項7】
プログラムを格納する格納手段と、
サーバへ、更新が要求されたプログラムの識別情報を送信する送信手段と、
前記サーバが前記更新が要求されたプログラムに対応するプログラムを前記端末へ送信すると決定した場合に、前記プログラムを受信する前に前記プログラムのサイズの情報を前記サーバから受信し、受信したサイズの情報に基づいて前記格納手段に前記プログラムを記録可能であるかを否か判断する判断手段と、
前記プログラムを記録可能であると判断した場合に、前記サーバから前記プログラムを受信し、受信した前記プログラムを前記格納手段に格納する更新手段と
を備えることを特徴とする端末。
【請求項8】
前記端末は、更に、前記端末に固有の鍵である固有鍵を保持する保持手段を備え、
前記更新手段は、前記プログラムに前記固有鍵を用いた暗号処理を施すことで変換データを生成し、
前記変換データを前記格納手段に格納する
ことを特徴とする請求項7記載の端末。
【請求項9】
前記プログラムは、前記端末と前記サーバとが共有する鍵である共有鍵を用いて暗号化された状態で前記サーバから送信され、
前記更新手段は、更に、暗号化された前記プログラムを前記共有鍵を用いて復号する
ことを特徴とする請求項8記載の端末。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate


【公開番号】特開2009−116901(P2009−116901A)
【公開日】平成21年5月28日(2009.5.28)
【国際特許分類】
【出願番号】特願2009−8249(P2009−8249)
【出願日】平成21年1月16日(2009.1.16)
【分割の表示】特願2003−111019(P2003−111019)の分割
【原出願日】平成15年4月16日(2003.4.16)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】