JP2004005585A - Server apparatus and program management system - Google Patents

Server apparatus and program management system Download PDF

Info

Publication number
JP2004005585A
JP2004005585A JP2003111019A JP2003111019A JP2004005585A JP 2004005585 A JP2004005585 A JP 2004005585A JP 2003111019 A JP2003111019 A JP 2003111019A JP 2003111019 A JP2003111019 A JP 2003111019A JP 2004005585 A JP2004005585 A JP 2004005585A
Authority
JP
Japan
Prior art keywords
program
information
information processing
processing terminal
terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003111019A
Other languages
Japanese (ja)
Other versions
JP4675031B2 (en
Inventor
Takuji Maeda
前田 卓治
Yasushi Miura
三浦 康史
Katsumi Tokuda
徳田 克己
Shinji Inoue
井上 信治
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003111019A priority Critical patent/JP4675031B2/en
Publication of JP2004005585A publication Critical patent/JP2004005585A/en
Application granted granted Critical
Publication of JP4675031B2 publication Critical patent/JP4675031B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To exclude information processing terminals which acquire new intrinsic information and avoids expulsion in a server apparatus distributing programs to the information processing terminals. <P>SOLUTION: This server apparatus 120 comprises a CPU 121, a RAM 122, an encryption processing part 123 performing encryption and decoding processing, a communication processing part 124 performing a communication with an information processing terminal 100, a data storage part 125 storing information which must not be kept secret, a distribution information storage part 126 storing information on distributed programs, and an intrinsic information distribution history holding part 140 holding intrinsic information distribution history 600 for controlling the history of the intrinsic information to the program of a program which was distributed to the information processing terminal 100 before. <P>COPYRIGHT: (C)2004,JPO

Description

【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側で署名検証を行うことにより、ダウンロードデータの改ざん、すり替え、盗聴等を防止して、不正行為からダウンロードデータを守る安全な配布も可能となる。
【0019】
【特許文献1】
特開2000−339153号公報
【0020】
【特許文献2】
特開平7−295800号公報
【0021】
【特許文献3】
特公平6−87220号公報
【0022】
【非特許文献1】
「Applied Cryptography」Bruce Schneier,John Wiley & Sons,Inc(1996)
【0023】
【発明が解決しようとする課題】
しかしながら、上述したプログラム配布元において各ユーザ識別子に応じたプログラム暗号処理を行う方法においては、プログラム配布元にかかる処理の負担が大きくなるという問題が生じる。
【0024】
また、上述したプログラム配布装置がプログラム毎に情報処理装置の配布先を記憶して、コピー許可数とコピー数とによりプログラムを配布する方法は、プログラム配布装置はプログラムの配布要求毎に配布先の装置のIDを確認してコピー許可数に従ってプログラムを配布するものであり、プログラムの不正使用を防止するものではない。
【0025】
さらに、図21に示すサーバ装置2103がプログラムの固有情報を記載したCRLを用いて不正利用を図る情報処理端末2101の排除を行う方法においては、情報処理端末2101が不正にデータを取得しようと試み、サーバ装置2103のCRLにより不正端末としてデータ取得を排除される場合においても、情報処理端末2101の使用者が、別の固有情報のダウンロードをサーバ装置2102から行いプログラムの固有情報を新たな固有情報に更新することによりサーバ装置2103のCRLを用いた排除から回避することが可能となるという問題がある。
【0026】
本発明は以上のような課題に鑑みてなされたものであり、プログラム配布元であるサーバ装置において、固有情報を用いたリストにより排除された不正な情報処理端末が新規な固有情報を取得して排除を回避することを防止するサーバ装置を提供することを第1の目的とする。また、情報処理端末へのプログラム配信においてサーバ装置の処理負担を少なくすることをも目的とする。
【0027】
そして、サーバ装置と情報処理端末との間においてプログラムの配布を行うプログラム管理システムにおいても、不正な情報処理端末からの新規な固有情報の取得要求を排除して情報処理端末でのプログラムの不正使用を防ぐことが可能なプログラム管理システムを提供することを目的とする。
【0028】
【課題を解決するための手段】
前記課題を解決するために、本発明に係るサーバ装置は、外部から書き換えが行えない端末IDを保持する情報処理端末とネットワークを介して接続され前記情報処理端末で動作するプログラムを保持するサーバ装置であって、以前に配布したプログラムと端末IDとの関連を示すテーブルを保持するテーブル保持手段と、前記テーブルを参照して、前記情報処理端末から送信され前記端末IDを伴うプログラム取得要求に対するプログラムの配布の当否を判定する判定手段とを備えることを特徴とする。
【0029】
また、本発明に係るサーバ装置から情報処理端末に配布されるプログラムには、前記情報処理端末で動作するプログラム本体及び前記プログラム本体に使用される固有の情報であるプログラム固有情報が含まれ、前記判定手段は、前記プログラム取得要求に付与されている前記端末IDが前記テーブルに記録されている場合には、前記プログラム固有情報の配布を禁止して前記プログラム本体のみの配布を前記情報処理端末に行うと判定し、前記端末IDが前記テーブルに記載されていない場合には、前記端末IDと前記プログラム固有情報とを対応させて前記テーブルに追加すると共に、前記プログラム本体と前記プログラム固有情報とを前記情報処理端末に配布すると判定することを特徴とする。
【0030】
これらにより、サーバ装置は、情報処理端末が以前に配布したプログラムに対応するプログラム固有情報の新規取得を防止することが可能となり、新たなプログラム固有情報を取得して排除の回避を図る情報処理端末の不正行為を確実に防止することが可能となる。
【0031】
そして、前記課題を解決するために、本発明に係るプログラム管理システムは、外部から書き換えが行えない端末IDを保持する情報処理端末と、当該情報処理端末とネットワークを介して接続され前記情報処理端末で動作するプログラムを保持するサーバ装置とから構成されるプログラム管理システムであって、前記情報処理端末は、前記プログラムの取得を要求する場合には、前記端末IDを付与したプログラム取得要求を前記サーバ装置に送信し、前記サーバ装置は、前記プログラム取得要求を受信して、以前に配布したプログラムと端末IDとの関連を示すテーブルを保持するテーブル保持手段と、前記テーブルを参照して、前記情報処理端末から送信されて前記端末IDが付与されているプログラム取得要求に対するプログラムの配布の当否を判定する判定手段とを備えることを特徴とする。
【0032】
このように、本発明は、上述のようなサーバ装置として実現できるのみではなく、サーバ装置と情報処理端末との間のプログラム管理システムやサーバ装置が備える手段をステップとするプログラム配布方法としても実現できる。また、このプログラム配布方法をコンピュータ等で実現させるプログラムとして実現したり、当該プログラムをCD−ROM等の記録媒体や通信ネットワーク等の伝送媒体を介して流通させることができるのは言うまでもない。
【0033】
【発明の実施の形態】
以下、本発明の実施の形態に係るサーバ装置及びプログラム管理システムについて図面を用いて説明する。
【0034】
(実施の形態1)
図1は本発明の実施の形態1における情報処理端末100とサーバ装置120との構成図を示している。
【0035】
情報処理端末100は、サーバ装置120から取得した電子商取引やコンテンツ配信等に用いられるプログラムを使用する端末装置であり、CPU101、RAM102、プログラムやデータ等の暗号化及び復号化処理を行う暗号処理部103、サーバ装置120との通信を行う通信処理部104、プログラムを格納するプログラム格納部105、CA公開鍵など特に秘匿する必要がない情報を格納するデータ格納部106、及び秘密鍵など秘匿する必要がある情報を格納する秘匿情報格納部107から構成されている。
【0036】
プログラム格納部105は、CPU101で動作するプログラム116を格納する。
【0037】
データ格納部106は、情報処理端末100で使用されるデータのうち特に秘匿する必要がないものを格納すると共に、情報処理端末100に格納されているプログラムのIDやバージョン番号など格納プログラムの管理情報であるプログラム管理情報108及びCA公開鍵109を格納する。
【0038】
また、秘匿情報格納部107は、情報処理端末100内で秘匿する必要がある情報を格納しており、情報処理端末毎に異なる鍵である端末固有鍵110、情報処理端末毎に異なる公開鍵ペアの1つである端末秘密鍵111、プログラムが使用する固有鍵などのプログラム固有情報112、情報処理端末毎に異なる公開鍵ペアの他方である端末公開鍵証明書113を格納する。そして、端末公開鍵証明書113は情報処理端末100を一意に識別するIDである端末ID114、端末公開鍵証明書113に対し認証局が付加したCA署名115を含んでいる。
【0039】
一方、本発明に係るサーバ装置120は、情報処理端末100から要求されるプログラムを配布する装置であり、CPU121、RAM122、プログラムやデータなどの暗号化及び復号化処理を行う暗号処理部123、情報処理端末100との通信を行う通信処理部124、CA公開鍵など特に秘匿する必要がない情報を格納するデータ格納部125、情報処理端末100に配布するプログラムなどの情報を格納する配布情報格納部126、及び固有情報配布履歴保持部140とから構成されている。
【0040】
そして、本発明に係るサーバ装置120は、固有情報配布履歴保持部140を有することを特徴としている。この固有情報配布履歴保持部140は、情報処理端末100に配布したプログラムのプログラム固有情報の履歴を管理するための固有情報配布履歴600を保持している。
【0041】
データ格納部125は、サーバ装置120が使用する情報を格納する領域であり、公開鍵ペアの1つであるサーバ秘密鍵127、公開鍵ペアの他方であるサーバ公開鍵証明書128、及びCA公開鍵129を格納する。サーバ公開鍵証明書128は、サーバを一意に識別するIDであるサーバID130、サーバ公開鍵証明書に対しCAが付加したCA署名131を含んでいる。配布情報格納部126は、サーバ装置120が情報処理端末100に対して配布する情報を格納する領域であり、プログラムヘッダ300、プログラム310、固有情報ヘッダ400、及びプログラム固有情報420を格納する。尚、この配布情報であるプログラム全体の図は後述の図2に示す。
【0042】
配布情報格納部126に格納されているプログラムヘッダ300、プログラム310、固有情報ヘッダ400、及びプログラム固有情報420には第三者認証機関であるCA署名が付加されており、このCA署名により配布情報が正当な配布元から配布されるものであることを保証する。
【0043】
図2は、本実施の形態1に係るサーバ装置120から情報処理端末100側に送信されるプログラム全体200の構成図である。このプログラムの全体200はサーバ装置120の配布情報格納部126に格納される情報であり、本実施の形態1においては、プログラムヘッダ300、プログラム310、固有情報ヘッダ400及びプログラム固有情報420より構成される。また、本発明においては、プログラム全体200をプログラム310及びプログラム固有情報420に分離し、さらに、ヘッダ部とデータ部とに分離することを特徴としている。
【0044】
尚、本実施の形態に係るプログラム管理システムにおいては、情報処理端末100がプログラム310で使用するアプリケーションデータをサーバ装置120等から取得する場合においては、アプリケーションデータ取得要求にプログラム固有情報420を付与して送信する。このことにより、サーバ装置120等が有するプログラム固有情報420を用いたCRLにより不正な情報処理端末を排除することが可能となる。
【0045】
図3(a)及び(b)は、プログラムヘッダ300及びプログラム310に格納される情報の一例を示す図である。
【0046】
プログラムヘッダ300は、プログラム310に関する情報を格納するものであり、次の情報を含む。
【0047】
(1)プログラムヘッダ300が格納する情報がどのプログラム310に対応する情報かを示すプログラムID(301)。(2)対応するプログラム310のバージョン番号(302)。(3)対応するプログラム310のプログラムサイズ(303)。(4)対応するプログラム310のハッシュ値(304)。(5)前記(1)から(4)までの情報を含むプログラムヘッダ300全体に対するCA署名(305)。
【0048】
また、プログラム310には、プログラム310に対するCA署名(311)が付加されている。このように、プログラムヘッダ300及びプログラム310は共にCA署名305及び311を含むため、情報処理端末100においてプログラムヘッダ、プログラムが正当な配布元から配布されたものであることを検証することが可能である。
【0049】
図4(a)及び(b)は、固有情報ヘッダ400及びプログラム固有情報420に格納される情報の一例を示す図である。
【0050】
固有情報ヘッダ400は、プログラム固有情報420に関する情報を格納するものであり、次の情報を含む。
【0051】
(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)。
【0052】
固有情報サブヘッダ405は、さらに個々の固有情報を識別するためのIDであるプログラム固有情報サブID411、個々の固有情報のサイズ412から構成される。
【0053】
また、プログラム固有情報420は、複数のプログラム固有情報(421)と、プログラム固有情報全体に対するCA署名(422)を含む。このため、固有情報ヘッダ400、プログラム固有情報420は共にCA署名(406及び422)を含むため、情報処理端末100において固有情報ヘッダ400、プログラム固有情報420が正当な配布元から配布されたものであることを検証することが可能である。
【0054】
次に情報処理端末100とサーバ装置120との間で行われるプログラム更新システムにおける動作手順の例を、図5を用いて説明する。このプログラム更新システムにおいて、情報処理端末100は、まず、ヘッダ取得要求を行い、空き領域の確認を行う。また、サーバ装置120においては、固有情報配布履歴保持部140から固有情報配布履歴600を参照することにより、プログラムの不正使用を図る情報処理端末100を排除することが可能となる。
【0055】
最初に、情報処理端末100はサーバ装置120とSSLによる接続を行う(S501)。この際、サーバ装置120は情報処理端末100の端末IDの取得を行う。尚、SSLは、2点間でデータを安全に送受信するために、公開鍵暗号方式と秘密鍵暗号方式を併用して、データを暗号化して送受信する仕組みである。また、SSLではセッション鍵と呼ばれるそのセッションでのみ有効な鍵を共有するため、図5に示すS502以降の情報処理端末100とサーバ装置120間のデータ送受信は、すべてセッション鍵を用いた暗号化データにより行われるものとする。
【0056】
次に、情報処理端末100はサーバ装置120に対し、取得したいプログラム310のプログラムIDを指定してヘッダ取得要求を行う(S502)。この際、サーバ装置120は、固有情報配布履歴保持部140に保持されている固有情報配布履歴600により、端末IDとプログラム固有情報IDとの対応関係を確認する。つまり、情報処理端末100に対して、固有情報IDを既に配布したかどうかを確認する。そして、正規の情報処理端末からのヘッダ取得要求であると判断する場合においては、ヘッダ取得要求を受信したサーバ装置120は、配布情報格納部126に格納したプログラムヘッダ300を情報処理端末100に送信する(S503)。
【0057】
そして、サーバ装置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のダウンロード中にプログラムの取得不可となるような弊害を防止する。
【0058】
次に、サーバ装置120は配布情報格納部126に格納した固有情報ヘッダ400を情報処理端末100に送信する(S505)。
【0059】
そして、サーバ装置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)。
【0060】
そして、情報処理端末100は、プログラム310、プログラム固有情報420の取得が行えると判断した場合、サーバ装置120に対しプログラムIDを指定してプログラム取得要求を行う(S507)。
【0061】
そして、プログラム取得要求を受信したサーバ装置120は、配布情報格納部126に格納したプログラム310を情報処理端末100に送信する(S508)。サーバ装置120からプログラム310を受信した情報処理端末100は、データ格納部106に格納しているCA公開鍵109を用いて、プログラム310に含まれているCA署名を検証する(S509)。これにより、情報処理端末100はプログラム310が改ざんされていない、正当な配布元から配布された情報であることを検証する。取得データの正当性が検証できた場合、取得したプログラム310を秘匿情報格納部107に格納している端末固有鍵110で暗号化し、プログラム格納部105に格納する(S509)。その際、プログラム格納位置やプログラムID、バージョン番号などをプログラム管理情報108に格納し、プログラムの管理を行う。
【0062】
次に、プログラムの格納が完了した後、プログラム格納部105に格納したプログラム116を、端末固有鍵110を用いて復号し、ハッシュ値を算出する。算出した値とプログラムヘッダ300に格納されているハッシュ値の比較を行い、プログラムが正しく格納されていることを確認する(S510)。
【0063】
次に、情報処理端末100はサーバ装置120に対しプログラムIDを指定してプログラム固有情報取得要求を行う(S511)。
【0064】
そして、サーバ装置120は配布情報格納部126に格納したプログラム固有情報420を情報処理端末100に送信する(S512)。サーバ装置120からプログラム固有情報420を受信した情報処理端末100は、データ格納部106に格納しているCA公開鍵109を用いて、プログラム固有情報420に含まれているCA署名を検証する(S513)。これにより、情報処理端末100はプログラム固有情報が改ざんされていない、正当な配布元から配布された情報であることを検証する。取得データの正当性が検証できた場合、取得したプログラム固有情報を秘匿情報格納部107に格納する(S513)。
【0065】
最後に、情報処理端末100におけるプログラム、プログラム固有情報の格納が完了した後、情報処理端末100とサーバ装置120との間の通信を切断する(S514)。
【0066】
このように、本実施の形態1に係る情報処理端末100は、ヘッダ取得要求を行うことによりプログラム310を格納する空き容量が存在するか等の確認して、より安全にプログラムのダウンロードを行うことが可能となる。尚、この場合において、プログラム310及びプログラム固有情報420のハッシュ値を算出して、算出したハッシュ値と、プログラムヘッダ300及びプログラム固有情報ヘッダ400に格納されているハッシュ値とを比較することにより正当な配布情報であることを確認することも考え得る。
【0067】
図6は、固有情報配布履歴保持部140に保持される固有情報配布履歴600の情報格納の一例を示す図である。
【0068】
サーバ装置120は、以前に情報処理端末100に配布したプログラムに対応するプログラム固有情報420と当該情報処理端末100の端末IDとを記録したテーブルを固有情報配布履歴600とする。
【0069】
そして、サーバ装置120は、プログラム固有情報420を配布した情報処理端末100を識別するIDである端末ID601、及び配布したプログラム固有情報420を識別するIDであるプログラム固有情報ID602を固有情報配布履歴保持部140に格納する。また、必要に応じてプログラム固有情報420を最後に配布した日時を示す最終配布日付603を固有情報配布履歴600に格納する。
【0070】
図6においては、サーバ装置120は情報処理端末100に5つのプログラム固有情報420を配布済みであり、それぞれの端末ID601、プログラム固有情報ID602の組は、(端末ID,プログラム固有情報ID)=(0001,0001)、(0002,0002)、(0010,0003)、(0015,0004)、(0020,0005)となる。
【0071】
図7は、サーバ装置120におけるプログラム310の配布手順を示すフローチャートである。
【0072】
最初に、サーバ装置120は情報処理端末100からプログラム配布要求を受信する(S701)。次に、サーバ装置120は、受信したプログラム配布要求に含まれる情報処理端末100の端末IDを取得して(S702)、固有情報配布履歴600に対して取得した端末IDを検索し(S703)、固有情報配布履歴600に同じ端末IDが格納されているか否かの判定を行う(S704)。
【0073】
サーバ装置120は、固有情報配布履歴600に同じ端末IDが格納されていた場合には(S704のY)、情報処理端末100には既にプログラム固有情報420を配布済みであるため、プログラム310のみを送信し処理を終了する(S708)。
【0074】
また、サーバ装置120は、固有情報配布履歴600に同じ端末IDが格納されていない場合(S704でN)、情報処理端末100に対しては新たにプログラム固有情報420を割り当てて(S705)、この新たに割り当てたプログラム固有情報420に関し、端末ID601とプログラム固有情報ID602の対応を追加して固有情報配布履歴600を更新する(S706)。そして、サーバ装置120は、プログラム固有情報420を情報処理端末100に送信し、プログラム310を情報処理端末100に送信して処理を終了する(S708)。
【0075】
このように、サーバ装置120において固有情報配布履歴600を用いてプログラム固有情報を配布管理することにより、1つの情報処理端末100へ複数のプログラム固有情報420を配布することを確実に防止する。これにより、サーバ装置120は、既にCRL等によりプログラム固有情報420を用いて不正端末と認識され、排除されている情報処理端末100に対しては、新たなプログラム固有情報420を割り当てることはない。従って、新たなプログラム固有情報420を取得して排除の回避を図る情報処理端末100の不正行為を防止することが可能となる。
【0076】
図8は、本実施の形態1に係るサーバ装置120を用いたプログラム管理システムを示す全体図である。
【0077】
プログラム用のサーバ装置120aは、プログラム取得要求に対応するプログラムを情報処理端末100に送信する。サーバ装置120bは、情報処理端末100で動作するプログラムに用いるアプリケーションを情報処理端末100に送信する。尚、図8においては、情報処理端末100の保持するプログラムのプログラム固有情報を「0101」として、CRL800の排除からの回避を図るために新たなプログラム固有情報の不正取得を図る端末として説明を行う。また、プログラムの安全な配布を図るために、通信路はSSLを用いて暗号化通信路としている。
【0078】
情報処理端末100の利用者がアプリケーションデータを要求する際においては、情報処理端末100の保持するプログラムのプログラム固有情報「0101」を付与したアプリケーション取得要求をアプリケーションデータ用のサーバ装置120bに送信する。
【0079】
そして、サーバ装置120bは、プログラム固有情報を用いた不正プログラムの無効化リスト(CRL)800を有しており、情報処理端末100からの取得要求に付与されるプログラム固有情報「0101」がCRL800に記載されているためにアプリケーションデータの送信を行わないことで不正な情報処理端末の排除を行う。尚、CRLにプログラム固有情報が記載されていない場合においては、サーバ装置120bは、アプリケーションデータを情報処理端末100に送る。また、サーバ装置120a等からダウンロードするデータにCA署名を付加して、情報処理端末100で署名検証を行うことにより、ダウンロードデータの通信路上での改ざん、すり替え、盗聴等を防止する。
【0080】
プログラム固有情報「0101」がCRL800に記載された情報処理端末100のユーザは、新たな別のプログラム固有情報を得てCRLによる排除を回避するためにプログラム用のサーバ装置120aよりプログラム固有情報の取得要求を行う。
【0081】
このような場合において、本発明に係るサーバ装置120aは、固有情報配布履歴保持部140において、以前に配布したプログラムに関し、情報処理端末100の端末ID「0102」と、プログラム固有情報ID「0101」とを記録した固有情報配布履歴600を有している。
【0082】
そして、情報処理端末100から、新たなプログラム固有情報取得要求をサーバ装置120aに対して行う場合には、サーバ装置120aは、このプログラム固有情報取得要求に付与されている端末ID「0102」が固有情報配布履歴600に記載されているか否か判断して、記載されている場合においては、プログラム固有情報の配布を禁止してプログラム本体のみの配布を前記情報処理端末100に行う。尚、固有情報配布履歴600を参照して、プログラム固有情報取得要求に付与されている端末IDに対応するプログラム固有情報IDが記載されていない場合においては、端末IDとプログラム固有情報IDとを対応させて固有情報配布履歴600に追加すると共に、プログラムとプログラム固有情報とを情報処理端末100に配布する。
【0083】
尚、サーバ装置120aが情報処理端末100に再度配布をしないのは、プログラム固有情報のみであり、プログラムの本体は2回以上配布しても構わない。これは、プログラム固有情報がCRL800により無効化されているため、プログラム固有情報が更新されない限り、不正使用を図る情報処理端末100のユーザが新たなアプリケーションデータを取得することを排除しているためである。
【0084】
図9は、本実施の形態1に係るプログラムヘッダ900とプログラム910に含まれる別のデータ構造を示す図である。図9において、図3と異なる点は、プログラム910にCA署名311を付加しない点である。
【0085】
プログラムヘッダ900は、プログラム910に関する情報を格納するものであり、上述したプログラムヘッダ300と同様の情報であるプログラムID(901)、バージョン番号(902)、プログラムサイズ(903)、ハッシュ値(904)、CA署名(905)を含むものである。
【0086】
プログラムヘッダ900及びプログラム910の正当性検証を情報処理端末100において行う場合、第1に、プログラムヘッダ900をサーバ装置120から取得し、プログラムヘッダ900に付加されたCA署名905を検証する。これにより、情報処理端末100はプログラムヘッダ900が改ざんされていない、正当な配布元から配布された情報であることを検証する。
【0087】
次に、プログラム910のハッシュ値を算出する。算出したハッシュ値と、プログラムヘッダ900に格納されているプログラムのハッシュ値904を比較し、一致することを確認する。これにより、情報処理端末120はプログラム910が改ざんされていない正当な配布元から配布された情報であることを検証することが可能となる。
【0088】
このように、プログラム910の正当性検証にプログラムヘッダ900に格納されたプログラムのハッシュ値904を使用し、プログラムヘッダ900にのみCA署名905を付加することで、プログラム910のCA署名に必要とする情報を低減しながら、プログラムヘッダ900、プログラム910に署名を付加する場合と同様に正当性を検証することが可能となる。また、プログラムヘッダ900とプログラム910の組み合わせが不正に変更された場合、情報処理端末100において、プログラムのハッシュ値を算出することにより組み合わせの異常を検出することが可能となる。尚、プログラム910のCA署名を行わないことにより、プログラム910を認証局に渡してCA署名を行う必要がなくなる。
【0089】
次に、図10を用いて、固有情報ヘッダ1000とプログラム固有情報1020とに含まれる別のデータ構造を示す図である。図10において、図4と異なる点は、固有情報ヘッダ1000がプログラム固有情報ハッシュ値1005を有し、プログラム固有情報1020にCA署名422を付加しない点である。
【0090】
固有情報ヘッダ1000は、プログラム固有情報1020に関する情報を格納するものであり、上述した固有情報ヘッダ400に格納される情報と同様な情報であるプログラム固有情報ID1001、プログラムID1002、固有情報の数1003、プログラム固有情報全体のサイズ1004、プログラム固有情報全体のハッシュ値1005、固有情報サブヘッダ1006、及び固有情報ヘッダ全体に対するCA署名1007より構成される。
【0091】
従って、情報処理端末100は、プログラム固有情報1020のハッシュ値を算出して、算出したハッシュ値と、固有情報ヘッダ1000に格納されているプログラム固有情報のハッシュ値1005とを比較して一致することを確認することにより、プログラム固有情報1020が改ざんされていない、正当な配布元から配布された情報であることを検証することが可能となる。
【0092】
以上のように、本実施の形態1に係るサーバ装置120が固有情報配布履歴保持部140を有することにより、サーバ装置120は、情報処理端末100が以前に配布したプログラムに対応するプログラム固有情報の新規取得を防止することが可能となる。このため、新たなプログラム固有情報420を取得して排除の回避を図る情報処理端末100のハッキング等の不正行為を回避してセキュアなダウンロードを実現できる。
【0093】
また、情報処理端末100においてサーバ装置120から取得したプログラムを内部からのみアクセス可能なセキュアなフラッシュメモリ等に記録されている端末固有鍵110で暗号化することにより、従来のようにサーバ装置においてプログラムを情報処理端末の固有の鍵で暗号化する処理を必要としなくなり、サーバ装置120におけるプログラム暗号化処理の負担を軽減することが可能となる。尚、この場合、情報処理端末100において端末固有鍵110で暗号化した場合、正しく暗号化が行えたことを確認する必要がある。この点に関し本発明では、情報処理端末100は、プログラム格納後に端末固有鍵110で復号し、平文プログラムのハッシュ値による検証を行うことで、情報処理端末100毎に異なる端末固有鍵110による暗号化を意識することなく、プログラム格納の成否を判定することが可能となる。
【0094】
さらに、サーバ装置120は、プログラム全体をプログラム310及びプログラム固有情報420に分離して個別に作成している。従って、サーバ装置120は、各情報処理端末100で異なる情報となる容量の比較的小さなプログラム固有情報420を複数管理して、全情報処理端末100で共通な情報となる容量の大きなプログラム310は1つのみ管理することにより、サーバ装置120で管理する配布情報の容量を格段に低減され、ひいては、情報管理の負担を軽減することが可能となる。
【0095】
そして、サーバ装置120においては、固有情報ヘッダ1000にプログラム固有情報1020のハッシュ値1005を格納し、固有情報ヘッダ1000にのみCA署名1007を付加することで、プログラム910のCA署名に必要とする情報を低減しながら、固有情報ヘッダ1000、プログラム固有情報1020に署名を付加する場合と同様の効果を得ることが可能となる。また、固有情報ヘッダ1000とプログラム固有情報1020の組み合わせが不正に変更された場合、情報処理端末100において、プログラム固有情報1020のハッシュ値を算出することにより組み合わせの異常を検出することが可能となる。
【0096】
尚、本実施の形態1で示した固有情報配布履歴保持部140に保持される固有情報配布履歴600の形式は一例であり、最終配布日付603を削除してもよいし、他の情報を付加してもよい。また、本実施の形態1では固有情報配布履歴600に記載されている端末ID601に対してプログラム固有情報420の配布を拒否しているが、不正取得でない限りにおいては、当該端末ID601を有する情報処理端末100に対して既に配布済みのプログラム固有情報420を再度配布してもよい。
【0097】
そして、本実施の形態1に係るサーバ装置120では、情報処理端末100からの要求はプログラムの配布を伴うプログラム配布要求、又はプログラムの配布を伴わないプログラム固有情報配布要求のいずれかとできる。
【0098】
また、本実施の形態1では情報処理端末100とサーバ装置120間でSSLを用いた暗号化データの送受信を行っているが、2点間で安全にデータの送受信が行える方法であれば、SSLに限らず他のプロトコルを用いてもよい。
【0099】
そして、本実施の形態1ではデータ格納部106とプログラム格納部105を別にしているが、同一の格納部としてもよい。また、秘匿情報格納部107に端末公開鍵証明書113を格納しているが、データ格納部106に格納してもよい。
【0100】
また、本実施の形態1に係るサーバ装置120は、プログラムヘッダ300、固有情報ヘッダ400をプログラム310、プログラム固有情報420とは別に作成しているが、プログラム310とプログラムヘッダ300、プログラム固有情報420と固有情報ヘッダ400をそれぞれ一体の情報とし、サーバ装置120からの配布に先立ちヘッダ部分のみ切り出して情報処理端末100に送信してもよい。
【0101】
さらに、本実施の形態1ではプログラム310、プログラム固有情報420に対し配布時にセッション鍵による暗号化を行う例を示したが、セッション鍵とは異なる鍵でさらに暗号化し、その鍵をプログラムヘッダ300、固有情報ヘッダ400に含めて配布する構成としてもよい。
【0102】
そして、本実施の形態1でハッシュ値と記載している点は、ハッシュアルゴリズムとしてSHA−1、MD5などの既存のハッシュアルゴリズムを使用してもよいし、独自のアルゴリズムを用いてもよい。また、ハッシュアルゴリズムのかわりにチェックサムなどの方法を用いて改ざんの検出を行ってもよい。また、情報処理端末100毎に異なる情報を必要としないプログラムを配布する場合は、プログラム固有情報の配布を行う必要はない。
【0103】
(実施の形態2)
図11は、本発明の実施の形態2に係る情報処理端末1100とサーバ装置1120との構成図を示す。同図において、実施の形態1と異なる点は、サーバ装置1120がプログラム/固有情報対応表保持部1150を保持する点である。
【0104】
このプログラム/固有情報対応表保持部1150は、プログラム固有情報を一意に識別するプログラム固有情報IDと、プログラム固有情報を使用するプログラムを一意に特定するプログラムIDとの対応を示したプログラム/固有情報対応表1210を保持する記憶部である。
【0105】
図12(a)及び(b)は、本実施の形態2に係る固有情報配布履歴1200及びプログラム/固有情報対応表1210に含まれる情報の一例を示す図である。
【0106】
固有情報配布履歴保持部1140は、前述した実施の形態1の固有情報配布履歴600と異なり、配布したプログラム固有情報に対応するプログラムを識別するプログラムID1202が付加されている固有情報配布履歴1200を管理する。尚、固有情報配布履歴1200に格納される端末ID1201、プログラム固有情報ID1203、及び最終配布日付1204については前述した図6と同様のため詳細な説明は省略する。
【0107】
固有情報配布履歴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)となる。
【0108】
また、プログラム/固有情報対応表保持部1150は、プログラム/固有情報対応表1210に、サーバ装置1120が管理しているプログラムのプログラムID1211と、各プログラムが使用するプログラム固有情報を識別するプログラム固有情報ID1212との対応関係を格納する。
【0109】
図12の例では、サーバ装置1120はプログラムIDが0001のプログラムを管理しており、そのプログラムが使用するプログラム固有情報としてプログラム固有情報IDが0001から1000までのプログラム固有情報を管理している。同様にプログラムIDが0002のプログラムと、そのプログラムが使用するプログラム固有情報IDが1001から2000までのプログラム固有情報を管理している。また、プログラム/固有情報対応表1210には、情報処理端末1100に配布済みのプログラム固有情報の再配布を防止するために、次回のプログラム固有情報配布の開始時に、配布すべきプログラム固有情報である配布開始ID1213を格納する。
【0110】
図12の例では、プログラムIDが0001のプログラムに対し新たにプログラム固有情報を割り当てる場合、サーバ装置1120はプログラム固有情報ID0123のプログラム固有情報を割り当てることを示している。同様にプログラムIDが0002のプログラムに対し新たにプログラム固有情報を割り当てる場合、サーバ装置1120はプログラム固有情報ID1423のプログラム固有情報を割り当てることを示している。
【0111】
また、サーバ装置1120は、このプログラム/固有情報対応表1210を用いて、情報処理端末1100からのプログラムIDを指定したプログラム配布要求に対し、そのプログラムIDに対応したプログラム固有情報を配布することとなる。
【0112】
本発明の実施の形態2におけるプログラム配布手順について、図13を用いて説明する。図13は、サーバ装置1120におけるプログラムの配布手順を示すフローチャートである。
【0113】
第1に、サーバ装置1120は情報処理端末1100からプログラム配布要求を受信する(S1301)。このプログラム配布要求は、プログラムIDを指定するものである。
【0114】
次に、サーバ装置1120は、受信したプログラム配布要求から情報処理端末1100の端末ID及びプログラムIDを取得する(S1302)。そして、固有情報配布履歴1200に対して取得した端末ID、プログラムIDを検索し(S1303)、固有情報配布履歴1200に同じ端末IDかつ同じプログラムIDの履歴が格納されているか否か確認する(S1304)。
【0115】
固有情報配布履歴1200に同じ端末IDかつ同じプログラムIDの履歴が格納されていた場合には(S1304でY)、サーバ装置1120は、情報処理端末1100に既に指定プログラムに対するプログラム固有情報1135を配布済みであるため、プログラム1133のみを送信し処理を終了する(S1309)。
【0116】
固有情報配布履歴1200に同じ端末IDかつ同じプログラムIDの履歴が格納されていない場合には(S1304でN)、サーバ装置1120は、プログラム/固有情報対応表1210に格納されている配布開始IDの情報を元に情報処理端末1100へ新たにプログラム固有情報1135を割り当てる(S1305)。
【0117】
次に、サーバ装置1120は、新たに割り当てたプログラム固有情報1135に関し、プログラム/固有情報対応表保持部1150に格納されているプログラム/固有情報対応表1210を参照して、配布開始ID1213の値を更新する(S1306)。また、新たに割り当てたプログラム固有情報1135に関し、端末IDとプログラム固有情報IDの対応を固有情報配布履歴1200に追加する(S1307)。そして、サーバ装置1120は、プログラム固有情報1135を情報処理端末1100に送信し(S1308)、プログラム1133を送信し処理を終了する(S1309)。
【0118】
以上のように、本実施の形態2に係るサーバ装置1120は、固有情報配布履歴保持部1140とプログラム/固有情報対応表保持部1150とを有し、固有情報配布履歴1200とプログラム/固有情報対応表1210を用いてプログラム固有情報の配布管理を行うことにより、1つの情報処理端末1100で動作する同一プログラムに対して複数のプログラム固有情報1135を配布することを防ぐ。このため、新たなプログラム固有情報1135を取得して排除の回避を図る情報処理端末1100がプログラム固有情報1135を新規取得することを防止することが可能となる。
【0119】
また、本実施の形態2に係るサーバ装置1120は、ダウンロード対象のプログラムと、当該プログラムが動作する情報処理端末1100との対応をプログラム/固有情報対応表1210に格納してプログラム固有情報1135の配布をプログラム単位に管理することにより、プログラム毎にプログラム固有情報1135の配布可否を判定することが可能となる。このため、サーバ装置1120はプログラム/固有情報対応表1210を参照して、プログラムを動作対象でない情報処理端末1100に配布することを防止することが可能となる。
【0120】
尚、本実施の形態2ではデータ格納部1106とプログラム格納部1105を別にしているが、同一の格納部としてもよい。また、本実施の形態2で示した固有情報配布履歴1200の形式は一例であり、最終配布日付1204を削除してもよいし、他の情報を付加してもよい。同様にプログラム/固有情報対応表1210の形式も一例であり、配布開始ID1213を別の形式で管理してもよい。例えば、全プログラム固有情報IDを格納したテーブルを持ち、各プログラム固有情報IDに対して割り当て済みか否かを識別するフラグを設けることにより、プログラム固有情報1135の配布状態を管理してもよい。
【0121】
また、本実施の形態2では固有情報配布履歴1200に記載されている端末ID1201に対してプログラム固有情報1135の配布を拒否しているが、その情報処理端末1100に対して既に配布済みのプログラム固有情報1135を再度配布してもよい。また、本実施の形態2では情報処理端末1100からの要求はプログラムの配布を伴うプログラム配布要求、又はプログラムの配布が伴わないプログラム固有情報配布要求とできる。
【0122】
(実施の形態3)
図14は、本実施の形態3に係る情報処理端末1400とサーバ装置1420の構成図を示す。同図において、前述した実施の形態1及び実施の形態2と異なる点は、サーバ装置1420が配布回数情報保持部1440を有する点である。
【0123】
この配布回数情報保持部1440は、サーバ装置1420から同一の情報処理端末1400に対してプログラム固有情報1435を配布した回数を管理するための配布回数情報1500を保持するハードディスクである。
【0124】
図15は、本実施の形態3に係る配布回数情報1500の情報格納例を示す図である。
【0125】
配布回数情報1500には、プログラム固有情報1435を配布した情報処理端末1400を識別するIDである端末ID1501、配布した回数を示す回数カウンタ1502が格納される。同図の例では、端末IDが0001、0002の情報処理端末1400に対してプログラム固有情報1435を1回配布しており、端末IDが0003の情報処理端末1400に対してプログラム固有情報1435を配布していないことが示されている。
【0126】
図16は、サーバ装置1420におけるプログラムの配布手順を示すフローチャートである。
【0127】
まず、サーバ装置1420は情報処理端末1400からプログラム配布要求を受信する(S1601)。次に、サーバ装置1420は、S1601で受信したプログラム配布要求に含まれる情報処理端末1400の端末IDを取得する(S1602)。
【0128】
そして、サーバ装置1420は配布回数情報保持部1440に保持される配布回数情報1500を用いてS1602で取得した端末IDを検索し、回数カウンタの値を取得する(S1603)。また、取得した回数カウンタの値が規定値以上か否かを判定する(S1604)。
【0129】
そして、取得した回数カウンタの値が規定値以上であった場合(S1604でY)、サーバ装置1420は、情報処理端末1400に対しては既にプログラム固有情報1435を規定回数以上配布しているため、プログラム1433のみを送信し処理を終了する(S1608)。
【0130】
一方、取得した回数カウンタの値が規定値未満であった場合(S1604でN)、サーバ装置1420は情報処理端末1400へは新たにプログラム固有情報1435を割り当てる(S1605)。また、サーバ装置1420は配布回数情報保持部1440内に格納されている配布回数情報1500の回数カウンタの値を加算する(S1606)。そして、サーバ装置1420は、プログラム固有情報1435を情報処理端末1400に送信し(S1607)、プログラム1433を送信し処理を終了する(S1608)。
【0131】
このように、本実施の形態3に係るサーバ装置1420は、配布回数情報保持部1440を有し、配布回数情報1500を用いてプログラム固有情報1435の配布管理を行うことにより、1つの情報処理端末1400へ規定値以上のプログラム固有情報1435を配布することを防ぐことができる。特に、規定値を1に設定した場合、本発明の実施の形態1及び実施の形態2と同様に、サーバ装置1420は、プログラム固有情報1435が含む情報を用いて不正端末と認識され、排除されている情報処理端末1400に対し、新たにプログラム固有情報1435を割り当てることにより、不正端末が排除を回避することを防ぐことが可能となる。
【0132】
また、プログラム固有情報1435の配布回数を示す規定値を2以上とすることにより、ハードディスクが故障したような不正の目的でなくプログラムを再度購入するようなユーザに対してプログラム固有情報1435の再配布や新たな配布を正規に行うことが可能となる。
【0133】
尚、本実施の形態3ではデータ格納部1406とプログラム格納部1405を別にしているが、同一の格納部としてもよい。また、本実施の形態3で示した配布回数情報1500の形式は一例であり、他の情報を付加してもよい。また、本実施の形態3では情報処理端末1400からの要求はプログラムの配布を伴うプログラム配布要求、又はプログラムの配布要求を伴わないプログラム固有情報配布要求とできる。
【0134】
(実施の形態4)
図17は、本実施の形態4に係る情報処理端末1700とサーバ装置1720の構成図を示す。同図において、前述の実施の形態3と異なる点は、サーバ装置1720がプログラム/固有情報対応表保持部1750を保持する点である。このプログラム/固有情報対応表保持部1750は、図11において説明したプログラム/固有情報対応表保持部1150と同様の記憶部である。
【0135】
図18(a)及び(b)は、本実施の形態4に係る配布回数情報1800とプログラム/固有情報対応表1810に格納されるデータの一例を示す図である。
【0136】
配布回数情報1800は、配布したプログラムのプログラムID1801、プログラム固有情報1735を配布した情報処理端末1700の端末ID1802、プログラム固有情報を配布した回数を示す回数カウンタ1803を格納する。前記実施の形態3における配布回数情報1500と異なる点は、プログラム固有情報を使用するプログラムを識別するプログラムID1801が付加されている点である。
【0137】
配布回数情報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を配布していないことを示している。
【0138】
尚、プログラム/固有情報対応表1810は、前述した図12におけるプログラム/固有情報対応表1210と同様であり、詳細な説明は省略する。
【0139】
図19は、サーバ装置1720におけるプログラムの配布手順を示すフローチャートである。
【0140】
まず、サーバ装置1720は情報処理端末1700からプログラム配布要求を受信する(S1901)。このプログラム配布要求には、情報処理端末1700より取得の要求されるプログラムのプログラムIDを含む。次に、サーバ装置1720は、S1901で受信したプログラム配布要求に含まれる情報処理端末1700の端末ID、プログラムIDを取得する(S1902)。
【0141】
そして、サーバ装置1720は、配布回数情報1800に対してS1902で取得した端末ID、プログラムIDを検索し、回数カウンタの値を取得する(S1903)。次に、取得した回数カウンタの値が規定値以上か否かを判定する(S1904)。
【0142】
また、取得した回数カウンタの値が規定値以上であった場合(S1904でY)、サーバ装置1720は、情報処理端末1700へは既にプログラム固有情報1735を規定回数以上配布しているため、プログラム1733のみを送信し処理を終了する(S1909)。
【0143】
次に、取得した回数カウンタの値が規定値未満であった場合(S1904でN)、サーバ装置1720は、プログラム/固有情報対応表1810に格納されている配布開始IDの情報を元に情報処理端末1700へ新たにプログラム固有情報1735を割り当てる(S1905)。
【0144】
そして、サーバ装置1720は、S1905で新たに割り当てたプログラム固有情報1735に関し、プログラム/固有情報対応表1810に格納されている配布開始IDの値を更新する(S1906)。また、配布回数情報1800内に格納されている回数カウンタの値を加算し(S1907)、プログラム固有情報1735を情報処理端末1700に送信し(S1908)、プログラム1733を送信し処理を終了する(S1909)。
【0145】
以上のように、本実施の形態4に係るサーバ装置1720は、配布回数情報保持部1740とプログラム/固有情報対応表保持部1750とを有し、各保持部に保持される配布回数情報1800及びプログラム/固有情報対応表1810を用いてプログラム固有情報1735を配布管理することにより、1つの情報処理端末1700で動作する同一プログラムに対して規定値以上のプログラム固有情報1735を配布することを防いで、プログラム固有情報1735の不正使用を図る情報処理端末1700を排除することが可能となる。
【0146】
また、本実施の形態4では、サーバ装置1720は、プログラム固有情報の配布をプログラム単位に管理することにより、プログラム毎にプログラム固有情報1735の配布可否を判定することが可能となる。
【0147】
尚、本実施の形態4ではデータ格納部1706とプログラム格納部1705を別にしているが、同一の格納部としてもよい。また、本実施の形態4で示した配布回数情報1800の形式は一例であり、他の情報を付加してもよい。同様にプログラム/固有情報対応表1810の形式も一例であり、別の形式で管理してもよい。また、本実施の形態4では情報処理端末1700からの要求はプログラムの配布を伴うプログラム配布要求、又はプログラムの配布を伴わないプログラム固有情報配布要求とできる。
【0148】
【発明の効果】
以上のように、本発明に係るサーバ装置は、固有情報配布履歴保持部を有することにより、情報処理端末が以前に配布したプログラムに対応するプログラム固有情報の新規取得を防止することが可能となり、新たなプログラム固有情報を取得して排除の回避を図る情報処理端末の不正行為を確実に防止することが可能となる。
【0149】
また、本発明に係る情報処理端末は、サーバ装置から取得したプログラムを端末固有鍵で暗号化することにより、サーバ装置におけるプログラム暗号化処理の負担を軽減することが可能となる。さらに、本発明に係るサーバ装置は、プログラム全体をプログラム及びプログラム固有情報に分離して個別に作成しているため、サーバ装置は、各情報処理端末で異なる情報となる容量の比較的小さなプログラム固有情報を複数管理して、全情報処理端末で共通な情報となる容量の大きなプログラムは1つのみ管理して、サーバ装置で管理する配布情報の容量を低減することが可能となり、情報管理の負担を軽減することが可能となる。
【0150】
そして、本発明に係るサーバ装置から情報処理端末に配布されるプログラムの全体には、情報処理端末で動作するプログラム本体、プログラムヘッダ、プログラム固有情報、及び固有情報ヘッダが含まれるため、プログラムを構成する各情報にCA署名やハッシュ値を用いることにより、サーバ装置から情報処理端末に配布される情報の正当性を確認することが可能となる。
【図面の簡単な説明】
【図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】従来の情報処理端末とサーバ装置との間のプログラム管理システムの参考図である。
【符号の説明】
100 情報処理端末
105 プログラム格納部
106 データ格納部
107 秘匿情報格納部
120 サーバ装置
125 データ格納部
126 配布情報格納部
132 プログラムヘッダ
133 プログラム
134 固有情報ヘッダ
135 プログラム固有情報
140 固有情報配布履歴保持部
300 プログラムヘッダ
304 ハッシュ値
305 CA署名
310 プログラム
400 固有情報ヘッダ
420 プログラム固有情報
600 固有情報配布履歴
1150 プログラム/固有情報対応表保持部
1200 固有情報配布履歴
1210 プログラム/固有情報対応表
1440 配布回数情報保持部
1500 配布回数情報
1800 配布回数情報
1810 プログラム/固有情報対応表
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a server device that distributes a program that runs on an information processing terminal, and a program management system that includes the server device and the information processing terminal, and more particularly to a technique for eliminating an information processing terminal that attempts to use an unauthorized program.
[0002]
[Prior art]
Along with the development of networks in recent years, many electronic commerce systems (Electronic commerce systems) that perform commercial transactions via networks and content distribution systems that distribute contents such as movies and music have been announced. In these systems, it is possible to exchange not only valuable information data such as content usage rights and keys used for charging, but also the music player program and other programs between devices connected via a network. It is. In addition to the conventional PC, such program exchange is expected to be realized not only in a conventional PC but also in an embedded device such as a mobile phone.
[0003]
When a commercial system that involves charging, such as electronic shopping and content distribution services, is realized via a network, if the malicious user can rewrite the program illegally, it is free by operating the charging information. There is a risk of fraudulent activities such as purchasing goods and content. Therefore, when correcting or adding a defect by updating a program via a network, it is necessary to verify the validity of the program in order to prevent unauthorized use by a malicious user.
[0004]
As a method for verifying the validity of a conventional program, there is a method using an electronic signature (see, for example, Patent Document 1). In this method, an encrypted data exchange method using a pair of keys called a public key encryption method is used. FIG. 20 is an explanatory diagram relating to a program validity verification method using this electronic signature.
[0005]
The program issuer 2000 sends the public key 2001 to a certification authority (CA) 2010, which is a third party organization that confirms and guarantees the identity of the program issue. Thereafter, the certification authority 2010 confirms and examines the identity of the program issuer 2000. When the certificate authority 2010 determines that the program issuer 2000 can be trusted, it issues a certificate 2003 that is electronically signed with the CA private key 2012 to the public key 2001 of the program issuer 2000. The certificate 2003 includes information for identifying the identity of the public key holder, and the certificate authority 2010 guarantees the identity of the public key holder. Then, the certificate authority 2010 sends the public key certificate 2003 to the program issuer 2000.
[0006]
The program issuer 2000 electronically signs the program distributed to the user 2020 with its own private key 2002, and distributes the public key certificate 2003 and the signed program 2004.
[0007]
The user 2020 acquires the CA public key 2011 from the certificate authority 2010, and verifies the signature of the program issuer's public key certificate 2003 using the CA public key 2011. If the signature is verified correctly, the signature of the signed program 2004 is verified using the public key 2001 included in the public key certificate 2003. If the signature is verified correctly, it can be verified that the distributed program is a program distributed from the program issuer 2000 and has not been tampered with.
[0008]
Therefore, in this validity verification method, the validity of the program is guaranteed by adding the electronic signature of the program issuer 2000 to the program, and the user 2020 authenticates the acquired program 2021 from the program issuer 2000. You can verify that it was distributed.
[0009]
However, in the validity verification method shown in FIG. 20, the validity of the program at the time of distribution can be verified, but the validity of the program in the information processing terminal after distribution cannot be guaranteed. The public key cryptosystem, certificate, signature, and authentication mechanism are described in detail in various documents (for example, Non-Patent Document 1).
[0010]
As a method for solving this problem, there is a method in which a program distribution source encrypts and distributes the program using the user identifier of the program distribution destination, and the user decrypts and executes the program using the user identifier when used ( For example, see Patent Document 2). In this method, even if the program is illegally copied, the program cannot be decrypted and executed unless the user identifiers match, so that illegal copying and tampering can be prevented.
[0011]
In addition, as a program distribution device, the validity of distribution can be determined by the difference between the number of copies of the program and the number of permitted copies, and it is possible to physically prevent unrestricted distribution. A distribution device that physically respects a use contract related to copying is disclosed (for example, see Patent Document 3).
[0012]
In the present invention, the program distribution apparatus can be a program distribution apparatus that stores the distribution destination of the information processing apparatus for each program and distributes the program according to the number of permitted copies and the number of copies.
[0013]
On the other hand, when realizing a commercial system that involves charging such as electronic shopping or content distribution service using a network, a method for specifying the user is required to charge the user. As one of the methods, there is a case where unique information such as an ID and a key assigned to each user is included in the program or information distributed together with the program. In this case, by assigning unique information to each user and managing the unique information on the server device side of the program distribution source, it becomes possible to identify the user based on the unique information when the user performs an illegal act. .
[0014]
FIG. 21 is a reference diagram of a program management system between a conventional information processing terminal 2101 and server apparatuses 2102 and 2103. For the sake of explanation, FIG. 21 shows a server apparatus 2103 for application data and a server apparatus 2102 for programs separately.
[0015]
The information processing terminal 2101 obtains, for example, a music player program that can be downloaded and played back from the server apparatus 2102 that is the program distribution source, for example, by downloading desired music data. It is assumed that the music player program includes unique information “0101”. In order to distribute the program safely, the communication path is encrypted using SSL (Secure Socket Layer) to prevent hacking actions such as eavesdropping.
[0016]
When the user of the information processing terminal 2101 requests acquisition of music data or the like, the information processing terminal 2101 transmits a music data acquisition request to which the unique information “0101” is given to the application server device 2103. The server apparatus 2103 has a revocation list (CRL) for excluding information processing terminals on which an unauthorized music player program is executed, and makes a music data acquisition request from the information processing terminal 2101. Since the unique information “0101” transmitted together is described in the CRL, the music data is not transmitted to the information processing terminal 2101. If no specific information is described in the CRL, the requested music data is sent to the information processing terminal 2101.
[0017]
As described above, by identifying the unique information of the program possessed by the information processing terminal 2101 that uses the unauthorized program, it is possible to exclude the information processing terminal 2101 that attempts unauthorized use using the CRL.
[0018]
It is to be noted that electronic data is added to data downloaded from the server apparatus 2102 or the like to the information processing terminal 2101 and signature verification is performed on the information processing terminal 2101 side to prevent falsification, replacement, wiretapping, etc. of the downloaded data. Thus, safe distribution that protects download data from fraud is also possible.
[0019]
[Patent Document 1]
JP 2000-339153 A
[0020]
[Patent Document 2]
JP 7-295800 A
[0021]
[Patent Document 3]
Japanese Patent Publication No. 6-87220
[0022]
[Non-Patent Document 1]
"Applied Cryptography", Bruce Schneier, John Wiley & Sons, Inc (1996)
[0023]
[Problems to be solved by the invention]
However, in the above-described method of performing program encryption processing according to each user identifier at the program distributor, there is a problem that the processing burden on the program distributor increases.
[0024]
The above-described program distribution apparatus stores the distribution destination of the information processing apparatus for each program and distributes the program according to the number of permitted copies and the number of copies. The device ID is confirmed and the program is distributed according to the number of permitted copies, and this does not prevent unauthorized use of the program.
[0025]
Furthermore, in the method in which the server apparatus 2103 shown in FIG. 21 excludes the information processing terminal 2101 to be used illegally using the CRL in which the program specific information is described, the information processing terminal 2101 attempts to acquire data illegally. Even when data acquisition is excluded as an unauthorized terminal by the CRL of the server apparatus 2103, the user of the information processing terminal 2101 downloads another specific information from the server apparatus 2102 and sets the program specific information as new specific information. There is a problem that it is possible to avoid the exclusion using the CRL of the server apparatus 2103 by updating to.
[0026]
The present invention has been made in view of the above problems, and in a server device that is a program distribution source, an unauthorized information processing terminal excluded by a list using unique information acquires new unique information. A first object is to provide a server device that prevents the exclusion from being avoided. Another object of the present invention is to reduce the processing load on the server device in distributing programs to information processing terminals.
[0027]
Even in a program management system that distributes a program between a server device and an information processing terminal, an unauthorized use of the program on the information processing terminal by eliminating a request for acquisition of new unique information from an unauthorized information processing terminal It is an object of the present invention to provide a program management system capable of preventing the occurrence of a problem.
[0028]
[Means for Solving the Problems]
In order to solve the above problems, a server apparatus according to the present invention is a server apparatus that holds a program that is connected to an information processing terminal that holds a terminal ID that cannot be rewritten from the outside via a network and that operates on the information processing terminal. A table holding means for holding a table indicating a relationship between a previously distributed program and a terminal ID, and a program for a program acquisition request transmitted from the information processing terminal and associated with the terminal ID with reference to the table And determining means for determining whether the distribution is successful.
[0029]
Further, the program distributed to the information processing terminal from the server device according to the present invention includes a program main body that operates on the information processing terminal and program specific information that is specific information used for the program main body, When the terminal ID assigned to the program acquisition request is recorded in the table, the determination unit prohibits distribution of the program specific information and distributes only the program main body to the information processing terminal. If the terminal ID is not listed in the table, the terminal ID and the program specific information are associated with each other and added to the table, and the program body and the program specific information are It is determined to distribute to the information processing terminal.
[0030]
As a result, the server apparatus can prevent new acquisition of program specific information corresponding to a program previously distributed by the information processing terminal, and information processing terminal that acquires new program specific information and avoids exclusion It is possible to surely prevent illegal acts.
[0031]
In order to solve the above problems, a program management system according to the present invention includes an information processing terminal holding a terminal ID that cannot be rewritten from the outside, and the information processing terminal connected to the information processing terminal via a network. A program management system including a server device that holds a program that operates in the above-described case, wherein when the information processing terminal requests acquisition of the program, the server acquires a program acquisition request assigned with the terminal ID. And the server device receives the program acquisition request, stores table indicating a relationship between a previously distributed program and a terminal ID, and refers to the table to store the information. A program for a program acquisition request transmitted from a processing terminal and assigned with the terminal ID Characterized in that it comprises a judging means for judging propriety of the fabric.
[0032]
As described above, the present invention can be realized not only as the server device as described above, but also as a program distribution method in which the program management system between the server device and the information processing terminal and the means included in the server device are steps. it can. Needless to say, the program distribution method can be realized as a program that is realized by a computer or the like, or the program can be distributed via a recording medium such as a CD-ROM or a transmission medium such as a communication network.
[0033]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, a server device and a program management system according to an embodiment of the present invention will be described with reference to the drawings.
[0034]
(Embodiment 1)
FIG. 1 shows a configuration diagram of an information processing terminal 100 and a server device 120 according to Embodiment 1 of the present invention.
[0035]
The information processing terminal 100 is a terminal device that uses a program used for electronic commerce and content distribution acquired from the server device 120, and includes a CPU 101, a RAM 102, and an encryption processing unit that performs encryption and decryption processing of programs, data, and the like. 103, a communication processing unit 104 that communicates with the server device 120, a program storage unit 105 that stores a program, a data storage unit 106 that stores information that does not need to be kept secret such as a CA public key, and a secret key that needs to be kept secret The secret information storage unit 107 stores certain information.
[0036]
The program storage unit 105 stores a program 116 that runs on the CPU 101.
[0037]
The data storage unit 106 stores data used in the information processing terminal 100 that need not be concealed, and stores program management information such as the ID and version number of the program stored in the information processing terminal 100. The program management information 108 and the CA public key 109 are stored.
[0038]
The secret information storage unit 107 stores information that needs to be concealed within the information processing terminal 100, and includes a terminal unique key 110 that is a key that is different for each information processing terminal, and a public key pair that is different for each information processing terminal. A terminal private key 111, program unique information 112 such as a unique key used by the program, and a terminal public key certificate 113 which is the other public key pair for each information processing terminal. The terminal public key certificate 113 includes a terminal ID 114 that is an ID for uniquely identifying the information processing terminal 100 and a CA signature 115 added by the certificate authority to the terminal public key certificate 113.
[0039]
On the other hand, the server device 120 according to the present invention is a device that distributes a program requested from the information processing terminal 100, and includes a CPU 121, a RAM 122, an encryption processing unit 123 that performs encryption and decryption processing of programs and data, and information. A communication processing unit 124 that communicates with the processing terminal 100, a data storage unit 125 that stores information that does not need to be kept secret such as a CA public key, and a distribution information storage unit that stores information such as a program distributed to the information processing terminal 100 126 and a unique information distribution history holding unit 140.
[0040]
The server device 120 according to the present invention has a unique information distribution history holding unit 140. The unique information distribution history holding unit 140 holds a unique information distribution history 600 for managing the history of program unique information of a program distributed to the information processing terminal 100.
[0041]
The data storage unit 125 is an area for storing information used by the server device 120, and includes a server private key 127 that is one of public key pairs, a server public key certificate 128 that is the other public key pair, and a CA public key. A key 129 is stored. The server public key certificate 128 includes a server ID 130 that is an ID for uniquely identifying the server, and a CA signature 131 added by the CA to the server public key certificate. The distribution information storage unit 126 is an area for storing information distributed to the information processing terminal 100 by the server device 120, and stores the program header 300, the program 310, the unique information header 400, and the program unique information 420. A diagram of the entire program as distribution information is shown in FIG. 2 described later.
[0042]
The program header 300, the program 310, the unique information header 400, and the program unique information 420 stored in the distribution information storage unit 126 are added with a CA signature that is a third-party certification organization. Is distributed from a legitimate distributor.
[0043]
FIG. 2 is a configuration diagram of the entire program 200 transmitted from the server apparatus 120 according to the first embodiment to the information processing terminal 100 side. The entire program 200 is information stored in the distribution information storage unit 126 of the server device 120. In the first embodiment, the program 200 includes a program header 300, a program 310, a unique information header 400, and program unique information 420. The Further, the present invention is characterized in that the entire program 200 is separated into a program 310 and program specific information 420 and further separated into a header part and a data part.
[0044]
In the program management system according to the present embodiment, when the information processing terminal 100 acquires application data used in the program 310 from the server device 120 or the like, the program specific information 420 is added to the application data acquisition request. To send. This makes it possible to eliminate unauthorized information processing terminals by CRL using the program specific information 420 included in the server apparatus 120 or the like.
[0045]
FIGS. 3A and 3B are diagrams illustrating examples of information stored in the program header 300 and the program 310. FIG.
[0046]
The program header 300 stores information related to the program 310, and includes the following information.
[0047]
(1) A program ID (301) indicating which program 310 the information stored in the program header 300 corresponds to. (2) The version number (302) of the corresponding program 310. (3) Program size (303) of the corresponding program 310. (4) Hash value (304) of the corresponding program 310. (5) A CA signature (305) for the entire program header 300 including the information (1) to (4).
[0048]
Further, a CA signature (311) for the program 310 is added to the program 310. As described above, since both the program header 300 and the program 310 include the CA signatures 305 and 311, it is possible to verify that the program header and the program are distributed from a valid distribution source in the information processing terminal 100. is there.
[0049]
4A and 4B are diagrams illustrating examples of information stored in the unique information header 400 and the program unique information 420. FIG.
[0050]
The unique information header 400 stores information related to the program unique information 420, and includes the following information.
[0051]
(1) A program unique information ID (401) indicating which program unique information 420 the information stored in the unique information header 400 corresponds to. (2) The program ID (402) of the program 310 that uses the corresponding program specific information 420. (3) Number of unique information stored in corresponding program unique information 420 (403). (4) The size (404) of the corresponding program specific information 420 as a whole. (5) A unique information subheader (405) indicating information on individual unique information included in the corresponding program unique information 420. There are as many unique information subheaders 405 as the number of unique information (1 to n) included in the program unique information 420. (6) A CA signature (406) for the entire unique information header 400 including the information (1) to (5).
[0052]
The unique information subheader 405 further includes a program unique information sub ID 411 that is an ID for identifying individual unique information, and a size 412 of each unique information.
[0053]
The program specific information 420 includes a plurality of program specific information (421) and a CA signature (422) for the entire program specific information. For this reason, since the unique information header 400 and the program unique information 420 both include the CA signature (406 and 422), the unique information header 400 and the program unique information 420 are distributed from an authorized distribution source in the information processing terminal 100. It is possible to verify that there is.
[0054]
Next, an example of an operation procedure in the program update system performed between the information processing terminal 100 and the server apparatus 120 will be described with reference to FIG. In this program update system, the information processing terminal 100 first makes a header acquisition request and confirms a free area. Further, in the server device 120, by referring to the unique information distribution history 600 from the unique information distribution history holding unit 140, it is possible to eliminate the information processing terminal 100 that intends to illegally use the program.
[0055]
First, the information processing terminal 100 connects to the server apparatus 120 via SSL (S501). At this time, the server device 120 acquires the terminal ID of the information processing terminal 100. SSL is a mechanism for encrypting and transmitting / receiving data in combination with a public key encryption method and a secret key encryption method in order to securely transmit and receive data between two points. In SSL, since a key that is valid only in the session, called a session key, is shared, data transmission / reception between the information processing terminal 100 and the server apparatus 120 in S502 and subsequent steps shown in FIG. 5 is all encrypted data using the session key. Shall be performed.
[0056]
Next, the information processing terminal 100 makes a header acquisition request to the server apparatus 120 by designating the program ID of the program 310 to be acquired (S502). At this time, the server device 120 confirms the correspondence between the terminal ID and the program unique information ID based on the unique information distribution history 600 held in the unique information distribution history holding unit 140. That is, it is confirmed whether or not the unique information ID has already been distributed to the information processing terminal 100. When determining that the request is a header acquisition request from a legitimate information processing terminal, the server device 120 that has received the header acquisition request transmits the program header 300 stored in the distribution information storage unit 126 to the information processing terminal 100. (S503).
[0057]
The information processing terminal 100 that has received the program header 300 from the server device 120 verifies the CA signature included in the program header 300 using the CA public key 109 stored in the data storage unit 106 (S504). ). As a result, the information processing terminal 100 verifies that the program header 300 is information distributed from an authorized distribution source that has not been tampered with. Further, since the program header 300 stores information about the program such as the program ID 301, the version number 302, the size 303, and the hash value 304 of the program, the information processing terminal 100 stores the information and the data storage unit. 106, the program ID, version information, and free capacity information described in the program management information 108 stored in 106 are compared, and the update target program 310 is correctly distributed from the server device 120, or the program 310 is stored. It is confirmed whether a capacity exists (S504). For this reason, the information processing terminal 100 according to the first embodiment prevents an adverse effect such that the program cannot be acquired while the program 310 is being downloaded.
[0058]
Next, the server device 120 transmits the unique information header 400 stored in the distribution information storage unit 126 to the information processing terminal 100 (S505).
[0059]
Then, the information processing terminal 100 that has received the unique information header 400 from the server device 120 verifies the CA signature included in the unique information header 400 using the CA public key 109 stored in the data storage unit 106. (S506). As a result, the information processing terminal 100 verifies that the unique information header 400 has not been falsified and is information distributed from a valid distribution source. The unique information header 400 includes a program unique information ID 401 that uniquely identifies the program unique information 420, a program ID 402 of a program related to the program unique information, the number 403 of unique information included in the information distributed by the program unique information, and a size Since information related to the program specific information 420 such as 404 is stored, the information processing terminal 100, the program ID described in the program management information 108 stored in the data storage unit 106, and the free space The information is compared, and it is confirmed before downloading of the program 310 whether the program specific information 420 regarding the program 310 to be updated has been correctly distributed from the server device 120 and whether there is free space for storing the program specific information 420 (S506). .
[0060]
When the information processing terminal 100 determines that the program 310 and the program specific information 420 can be acquired, the information processing terminal 100 designates the program ID to the server device 120 and makes a program acquisition request (S507).
[0061]
Then, the server device 120 that has received the program acquisition request transmits the program 310 stored in the distribution information storage unit 126 to the information processing terminal 100 (S508). The information processing terminal 100 that has received the program 310 from the server apparatus 120 verifies the CA signature included in the program 310 using the CA public key 109 stored in the data storage unit 106 (S509). As a result, the information processing terminal 100 verifies that the program 310 has not been tampered with and has been distributed from an authorized distribution source. When the validity of the acquired data can be verified, the acquired program 310 is encrypted with the terminal unique key 110 stored in the confidential information storage unit 107 and stored in the program storage unit 105 (S509). At this time, the program storage location, program ID, version number, etc. are stored in the program management information 108 to manage the program.
[0062]
Next, after the storage of the program is completed, the program 116 stored in the program storage unit 105 is decrypted using the terminal unique key 110 to calculate a hash value. The calculated value is compared with the hash value stored in the program header 300 to confirm that the program is stored correctly (S510).
[0063]
Next, the information processing terminal 100 designates a program ID to the server apparatus 120 and makes a program specific information acquisition request (S511).
[0064]
Then, the server device 120 transmits the program specific information 420 stored in the distribution information storage unit 126 to the information processing terminal 100 (S512). The information processing terminal 100 that has received the program specific information 420 from the server device 120 verifies the CA signature included in the program specific information 420 using the CA public key 109 stored in the data storage unit 106 (S513). ). As a result, the information processing terminal 100 verifies that the program specific information has not been falsified and is information distributed from a valid distribution source. When the validity of the acquired data can be verified, the acquired program specific information is stored in the confidential information storage unit 107 (S513).
[0065]
Finally, after the storage of the program and program specific information in the information processing terminal 100 is completed, the communication between the information processing terminal 100 and the server device 120 is disconnected (S514).
[0066]
As described above, the information processing terminal 100 according to the first embodiment confirms whether there is a free capacity for storing the program 310 by making a header acquisition request, and more safely downloads the program. Is possible. In this case, the hash values of the program 310 and the program specific information 420 are calculated, and the calculated hash values are compared with the hash values stored in the program header 300 and the program specific information header 400. It may be possible to confirm that the distribution information is correct.
[0067]
FIG. 6 is a diagram illustrating an example of information storage of the unique information distribution history 600 held in the unique information distribution history holding unit 140.
[0068]
The server device 120 sets a table in which the program unique information 420 corresponding to the program previously distributed to the information processing terminal 100 and the terminal ID of the information processing terminal 100 are recorded as the unique information distribution history 600.
[0069]
Then, the server apparatus 120 holds a terminal ID 601 that is an ID for identifying the information processing terminal 100 that has distributed the program specific information 420 and a program specific information ID 602 that is an ID for identifying the distributed program specific information 420. Stored in the unit 140. Further, a final distribution date 603 indicating the date and time when the program specific information 420 was last distributed is stored in the specific information distribution history 600 as necessary.
[0070]
In FIG. 6, the server apparatus 120 has already distributed five pieces of program specific information 420 to the information processing terminal 100, and each set of terminal ID 601 and program specific information ID 602 is (terminal ID, program specific information ID) = ( 0001,0001), (0002,0002), (0010,0003), (0015,0004), (0020,0005).
[0071]
FIG. 7 is a flowchart showing a procedure for distributing the program 310 in the server apparatus 120.
[0072]
First, the server apparatus 120 receives a program distribution request from the information processing terminal 100 (S701). Next, the server apparatus 120 acquires the terminal ID of the information processing terminal 100 included in the received program distribution request (S702), searches the acquired terminal ID for the unique information distribution history 600 (S703), and It is determined whether or not the same terminal ID is stored in the unique information distribution history 600 (S704).
[0073]
If the same terminal ID is stored in the unique information distribution history 600 (Y in S704), the server device 120 has already distributed the program unique information 420 to the information processing terminal 100, and therefore only the program 310 is stored. The transmission is completed (S708).
[0074]
If the same terminal ID is not stored in the unique information distribution history 600 (N in S704), the server device 120 newly assigns the program unique information 420 to the information processing terminal 100 (S705). With respect to the newly assigned program unique information 420, the correspondence between the terminal ID 601 and the program unique information ID 602 is added to update the unique information distribution history 600 (S706). Then, the server device 120 transmits the program specific information 420 to the information processing terminal 100, transmits the program 310 to the information processing terminal 100, and ends the processing (S708).
[0075]
As described above, by distributing and managing the program specific information using the specific information distribution history 600 in the server device 120, it is possible to reliably prevent a plurality of program specific information 420 from being distributed to one information processing terminal 100. Thus, the server apparatus 120 does not assign new program specific information 420 to the information processing terminal 100 that has already been recognized as an unauthorized terminal using the program specific information 420 by CRL or the like and has been excluded. Therefore, it is possible to prevent an illegal act of the information processing terminal 100 that acquires new program specific information 420 and avoids exclusion.
[0076]
FIG. 8 is an overall view showing a program management system using the server apparatus 120 according to the first embodiment.
[0077]
The program server device 120 a transmits a program corresponding to the program acquisition request to the information processing terminal 100. The server device 120b transmits an application used for a program operating on the information processing terminal 100 to the information processing terminal 100. In FIG. 8, the program specific information of the program held by the information processing terminal 100 is set to “0101”, and the description will be made as a terminal that attempts to obtain new program specific information illegally in order to avoid the CRL 800 from being excluded. . In order to distribute the program safely, the communication path is an encrypted communication path using SSL.
[0078]
When the user of the information processing terminal 100 requests application data, the application acquisition request to which the program specific information “0101” of the program held by the information processing terminal 100 is added is transmitted to the application data server apparatus 120b.
[0079]
The server apparatus 120b has a malicious program revocation list (CRL) 800 using program specific information, and the program specific information “0101” given to the acquisition request from the information processing terminal 100 is stored in the CRL 800. Since it is described, unauthorized information processing terminals are excluded by not transmitting application data. When the program specific information is not described in the CRL, the server device 120b sends application data to the information processing terminal 100. Further, by adding a CA signature to data downloaded from the server device 120a and the like, and verifying the signature by the information processing terminal 100, falsification, replacement, wiretapping, and the like of the downloaded data on the communication path are prevented.
[0080]
The user of the information processing terminal 100 in which the program specific information “0101” is described in the CRL 800 obtains the program specific information from the server device 120a for the program in order to obtain another new program specific information and avoid the exclusion by the CRL. Make a request.
[0081]
In such a case, the server device 120a according to the present invention relates to the previously distributed program in the unique information distribution history holding unit 140, and the terminal ID “0102” of the information processing terminal 100 and the program unique information ID “0101”. Is recorded in the unique information distribution history 600.
[0082]
When a new program specific information acquisition request is made from the information processing terminal 100 to the server device 120a, the server device 120a has a unique terminal ID “0102” assigned to the program specific information acquisition request. It is determined whether or not it is described in the information distribution history 600. If it is described, distribution of the program specific information is prohibited and only the program main body is distributed to the information processing terminal 100. If the program unique information ID corresponding to the terminal ID assigned to the program unique information acquisition request is not described with reference to the unique information distribution history 600, the terminal ID is associated with the program unique information ID. The program and the program specific information are distributed to the information processing terminal 100 while being added to the specific information distribution history 600.
[0083]
The server apparatus 120a does not distribute the information to the information processing terminal 100 again, only the program specific information, and the main body of the program may be distributed twice or more. This is because the program specific information is invalidated by the CRL 800, and unless the program specific information is updated, it is excluded that the user of the information processing terminal 100 attempting unauthorized use acquires new application data. is there.
[0084]
FIG. 9 is a diagram showing another data structure included in the program header 900 and the program 910 according to the first embodiment. 9 is different from FIG. 3 in that the CA signature 311 is not added to the program 910.
[0085]
The program header 900 stores information related to the program 910. The program ID (901), version number (902), program size (903), and hash value (904) are the same information as the program header 300 described above. , CA signature (905).
[0086]
When verifying the validity of the program header 900 and the program 910 in the information processing terminal 100, first, the program header 900 is acquired from the server device 120, and the CA signature 905 added to the program header 900 is verified. As a result, the information processing terminal 100 verifies that the program header 900 has not been falsified and is information distributed from a valid distribution source.
[0087]
Next, the hash value of the program 910 is calculated. The calculated hash value is compared with the hash value 904 of the program stored in the program header 900 to confirm that they match. As a result, the information processing terminal 120 can verify that the program 910 is information distributed from a legitimate distribution source that has not been tampered with.
[0088]
In this way, the hash value 904 of the program stored in the program header 900 is used for the validity verification of the program 910, and the CA signature 905 is added only to the program header 900, which is necessary for the CA signature of the program 910. It is possible to verify the validity as in the case of adding signatures to the program header 900 and the program 910 while reducing the information. Further, when the combination of the program header 900 and the program 910 is illegally changed, the information processing terminal 100 can detect a combination abnormality by calculating a hash value of the program. By not performing the CA signature of the program 910, it is not necessary to pass the program 910 to the certificate authority and perform the CA signature.
[0089]
Next, FIG. 10 is a diagram showing another data structure included in the unique information header 1000 and the program unique information 1020. 10 differs from FIG. 4 in that the unique information header 1000 has a program unique information hash value 1005 and the CA signature 422 is not added to the program unique information 1020.
[0090]
The unique information header 1000 stores information related to the program unique information 1020. The program unique information ID 1001, the program ID 1002, the number of unique information 1003, which are information similar to the information stored in the unique information header 400 described above, It consists of the size 1004 of the entire program unique information, the hash value 1005 of the entire program unique information, the unique information subheader 1006, and the CA signature 1007 for the entire unique information header.
[0091]
Therefore, the information processing terminal 100 calculates the hash value of the program specific information 1020 and compares the calculated hash value with the hash value 1005 of the program specific information stored in the specific information header 1000 to match. By confirming the above, it is possible to verify that the program specific information 1020 is information that has not been falsified and has been distributed from a legitimate distribution source.
[0092]
As described above, the server apparatus 120 according to the first embodiment includes the unique information distribution history holding unit 140, so that the server apparatus 120 can store the program unique information corresponding to the program previously distributed by the information processing terminal 100. New acquisition can be prevented. For this reason, it is possible to avoid unauthorized acts such as hacking of the information processing terminal 100 that acquires new program specific information 420 and avoids exclusion, thereby realizing secure download.
[0093]
Further, by encrypting the program acquired from the server device 120 in the information processing terminal 100 with the terminal unique key 110 recorded in a secure flash memory or the like accessible only from the inside, the program in the server device as in the past Is not required to be encrypted with the unique key of the information processing terminal, and the burden of the program encryption processing in the server device 120 can be reduced. In this case, when encryption is performed with the terminal unique key 110 in the information processing terminal 100, it is necessary to confirm that the encryption has been correctly performed. In this regard, in the present invention, the information processing terminal 100 decrypts the program with the terminal unique key 110 after storing the program, and verifies with the hash value of the plaintext program, thereby encrypting with the terminal unique key 110 that is different for each information processing terminal 100. It is possible to determine the success or failure of program storage without being aware of the above.
[0094]
Further, the server device 120 creates the entire program separately by dividing it into a program 310 and program specific information 420. Therefore, the server apparatus 120 manages a plurality of program-specific information 420 having a relatively small capacity that is different information in each information processing terminal 100, and one program 310 having a large capacity that is information common to all the information processing terminals 100 is 1. By managing only one, the capacity of the distribution information managed by the server device 120 can be remarkably reduced, and as a result, the burden of information management can be reduced.
[0095]
The server device 120 stores the hash value 1005 of the program unique information 1020 in the unique information header 1000 and adds the CA signature 1007 only to the unique information header 1000, so that information necessary for the CA signature of the program 910 is obtained. It is possible to obtain the same effect as when a signature is added to the unique information header 1000 and the program unique information 1020. Further, when the combination of the unique information header 1000 and the program unique information 1020 is illegally changed, the information processing terminal 100 can detect an abnormality in the combination by calculating the hash value of the program unique information 1020. .
[0096]
The format of the unique information distribution history 600 held in the unique information distribution history holding unit 140 shown in the first embodiment is an example, and the final distribution date 603 may be deleted, or other information is added. May be. In the first embodiment, the distribution of the program specific information 420 is rejected for the terminal ID 601 described in the specific information distribution history 600. However, the information processing having the terminal ID 601 is not performed unless it is illegally acquired. The program specific information 420 that has already been distributed to the terminal 100 may be distributed again.
[0097]
In the server device 120 according to the first embodiment, the request from the information processing terminal 100 can be either a program distribution request accompanied by program distribution or a program specific information distribution request not accompanied by program distribution.
[0098]
In the first embodiment, encrypted data is transmitted / received using SSL between the information processing terminal 100 and the server device 120. However, if the method can safely transmit / receive data between two points, SSL can be used. However, other protocols may be used.
[0099]
In the first embodiment, the data storage unit 106 and the program storage unit 105 are separated, but the same storage unit may be used. Further, although the terminal public key certificate 113 is stored in the confidential information storage unit 107, it may be stored in the data storage unit 106.
[0100]
The server device 120 according to the first embodiment creates the program header 300 and the unique information header 400 separately from the program 310 and the program unique information 420. However, the program 310, the program header 300, and the program unique information 420 are created. The unique information header 400 may be integrated information, and only the header portion may be cut out and transmitted to the information processing terminal 100 prior to distribution from the server device 120.
[0101]
Furthermore, in the first embodiment, the program 310 and the program specific information 420 are encrypted with a session key at the time of distribution. However, the program is further encrypted with a key different from the session key, and the key is added to the program header 300, The unique information header 400 may be included in the distribution.
[0102]
The point described as the hash value in the first embodiment may use an existing hash algorithm such as SHA-1 or MD5 as a hash algorithm, or may use an original algorithm. Further, alteration detection may be performed using a method such as checksum instead of the hash algorithm. Further, when distributing a program that does not require different information for each information processing terminal 100, it is not necessary to distribute program specific information.
[0103]
(Embodiment 2)
FIG. 11 shows a configuration diagram of an information processing terminal 1100 and a server device 1120 according to Embodiment 2 of the present invention. In the figure, the difference from the first embodiment is that the server device 1120 holds a program / unique information correspondence table holding unit 1150.
[0104]
This program / unique information correspondence table holding unit 1150 is a program / unique information indicating a correspondence between a program unique information ID that uniquely identifies program unique information and a program ID that uniquely identifies a program that uses the program unique information. This is a storage unit that holds the correspondence table 1210.
[0105]
12A and 12B are diagrams showing examples of information included in the unique information distribution history 1200 and the program / unique information correspondence table 1210 according to the second embodiment.
[0106]
Unlike the unique information distribution history 600 of the first embodiment, the unique information distribution history holding unit 1140 manages the unique information distribution history 1200 to which a program ID 1202 for identifying a program corresponding to the distributed program unique information is added. To do. The terminal ID 1201, the program unique information ID 1203, and the final distribution date 1204 stored in the unique information distribution history 1200 are the same as those in FIG.
[0107]
In the example of the specific information distribution history 1200, the server apparatus 1120 has already distributed five program specific information IDs 1203 to the information processing terminal 1100, and each set of the terminal ID 1201, the program ID 1202, and the program specific information ID 1203 includes (terminal ID, (Program ID, program unique information ID) = (0001,0001,0001), (0002,0001,0002), (0010,0001,0003), (0015,0001,0004), (0020,0002,1001) .
[0108]
Further, the program / unique information correspondence table holding unit 1150 includes, in the program / unique information correspondence table 1210, program unique information for identifying the program ID 1211 of the program managed by the server device 1120 and the program unique information used by each program. The correspondence with ID 1212 is stored.
[0109]
In the example of FIG. 12, the server apparatus 1120 manages a program with a program ID of 0001, and manages program specific information with a program specific information ID of 0001 to 1000 as program specific information used by the program. Similarly, a program with program ID 0002 and program specific information with program specific information IDs 1001 to 2000 used by the program are managed. Further, the program / unique information correspondence table 1210 is program unique information to be distributed at the start of the next program unique information distribution in order to prevent redistribution of the program unique information distributed to the information processing terminal 1100. A distribution start ID 1213 is stored.
[0110]
In the example of FIG. 12, when new program specific information is assigned to a program with a program ID of 0001, the server apparatus 1120 indicates that program specific information with a program specific information ID 0123 is assigned. Similarly, when new program specific information is assigned to a program with program ID 0002, the server apparatus 1120 indicates that program specific information with program specific information ID 1423 is assigned.
[0111]
Further, the server device 1120 uses the program / unique information correspondence table 1210 to distribute the program unique information corresponding to the program ID in response to the program distribution request specifying the program ID from the information processing terminal 1100. Become.
[0112]
A program distribution procedure according to the second embodiment of the present invention will be described with reference to FIG. FIG. 13 is a flowchart showing a program distribution procedure in the server apparatus 1120.
[0113]
First, the server apparatus 1120 receives a program distribution request from the information processing terminal 1100 (S1301). This program distribution request specifies a program ID.
[0114]
Next, the server apparatus 1120 acquires the terminal ID and program ID of the information processing terminal 1100 from the received program distribution request (S1302). Then, the acquired terminal ID and program ID are searched for the unique information distribution history 1200 (S1303), and it is confirmed whether the history of the same terminal ID and the same program ID is stored in the unique information distribution history 1200 (S1304). ).
[0115]
When the history of the same terminal ID and the same program ID is stored in the unique information distribution history 1200 (Y in S1304), the server device 1120 has already distributed the program unique information 1135 for the specified program to the information processing terminal 1100. Therefore, only the program 1133 is transmitted and the process is terminated (S1309).
[0116]
If the unique information distribution history 1200 does not store the same terminal ID and the same program ID history (N in S1304), the server apparatus 1120 uses the distribution start ID stored in the program / unique information correspondence table 1210. Program specific information 1135 is newly assigned to the information processing terminal 1100 based on the information (S1305).
[0117]
Next, the server apparatus 1120 refers to the program / unique information correspondence table 1210 stored in the program / unique information correspondence table holding unit 1150 for the newly assigned program unique information 1135, and sets the value of the distribution start ID 1213. Update (S1306). Further, regarding the newly assigned program unique information 1135, the correspondence between the terminal ID and the program unique information ID is added to the unique information distribution history 1200 (S1307). Then, the server apparatus 1120 transmits the program specific information 1135 to the information processing terminal 1100 (S1308), transmits the program 1133, and ends the process (S1309).
[0118]
As described above, the server apparatus 1120 according to the second embodiment includes the unique information distribution history holding unit 1140 and the program / unique information correspondence table holding unit 1150, and the unique information distribution history 1200 and the program / unique information correspondence. By managing the distribution of program specific information using the table 1210, it is possible to prevent a plurality of program specific information 1135 from being distributed to the same program operating on one information processing terminal 1100. For this reason, it is possible to prevent the information processing terminal 1100 that acquires new program specific information 1135 and avoids exclusion from acquiring new program specific information 1135.
[0119]
The server apparatus 1120 according to the second embodiment stores the correspondence between the program to be downloaded and the information processing terminal 1100 on which the program operates in the program / unique information correspondence table 1210, and distributes the program unique information 1135. Is managed in units of programs, it is possible to determine whether or not the program specific information 1135 can be distributed for each program. Therefore, the server apparatus 1120 can prevent the program from being distributed to the information processing terminal 1100 that is not the operation target with reference to the program / unique information correspondence table 1210.
[0120]
In the second embodiment, the data storage unit 1106 and the program storage unit 1105 are separated, but they may be the same storage unit. The format of the unique information distribution history 1200 shown in the second embodiment is an example, and the final distribution date 1204 may be deleted or other information may be added. Similarly, the format of the program / unique information correspondence table 1210 is an example, and the distribution start ID 1213 may be managed in another format. For example, the distribution state of the program specific information 1135 may be managed by having a table storing all program specific information IDs and providing a flag for identifying whether each program specific information ID has been assigned.
[0121]
In the second embodiment, distribution of the program specific information 1135 is rejected to the terminal ID 1201 described in the specific information distribution history 1200, but the program specific already distributed to the information processing terminal 1100 is unique. Information 1135 may be distributed again. In the second embodiment, the request from the information processing terminal 1100 can be a program distribution request accompanied by program distribution or a program specific information distribution request not accompanied by program distribution.
[0122]
(Embodiment 3)
FIG. 14 shows a configuration diagram of an information processing terminal 1400 and a server device 1420 according to the third embodiment. In the figure, the difference from the first and second embodiments described above is that the server device 1420 has a distribution number information holding unit 1440.
[0123]
The distribution number information holding unit 1440 is a hard disk that holds distribution number information 1500 for managing the number of times the program specific information 1435 has been distributed from the server device 1420 to the same information processing terminal 1400.
[0124]
FIG. 15 is a diagram showing an example of information storage of distribution number information 1500 according to the third embodiment.
[0125]
The distribution number information 1500 stores a terminal ID 1501 that is an ID for identifying the information processing terminal 1400 to which the program specific information 1435 has been distributed, and a number counter 1502 that indicates the number of distributions. In the example of the figure, the program specific information 1435 is distributed once to the information processing terminals 1400 with the terminal IDs 0001 and 0002, and the program specific information 1435 is distributed to the information processing terminals 1400 with the terminal ID 0003. It has been shown not to.
[0126]
FIG. 16 is a flowchart showing a program distribution procedure in the server device 1420.
[0127]
First, the server device 1420 receives a program distribution request from the information processing terminal 1400 (S1601). Next, the server apparatus 1420 acquires the terminal ID of the information processing terminal 1400 included in the program distribution request received in S1601 (S1602).
[0128]
Then, the server device 1420 searches for the terminal ID acquired in S1602 using the distribution count information 1500 held in the distribution count information holding unit 1440, and acquires the value of the count counter (S1603). Further, it is determined whether or not the value of the acquired number counter is equal to or greater than a specified value (S1604).
[0129]
If the acquired count counter value is equal to or greater than the specified value (Y in S1604), the server device 1420 has already distributed the program specific information 1435 to the information processing terminal 1400 more than the specified number of times. Only the program 1433 is transmitted and the process is terminated (S1608).
[0130]
On the other hand, if the value of the acquired number counter is less than the specified value (N in S1604), the server device 1420 newly assigns program specific information 1435 to the information processing terminal 1400 (S1605). Also, the server device 1420 adds the value of the number counter of the distribution number information 1500 stored in the distribution number information holding unit 1440 (S1606). Then, the server device 1420 transmits the program specific information 1435 to the information processing terminal 1400 (S1607), transmits the program 1433, and ends the processing (S1608).
[0131]
As described above, the server device 1420 according to the third embodiment has the distribution number information holding unit 1440, and performs distribution management of the program specific information 1435 using the distribution number information 1500, thereby providing one information processing terminal. Distributing program specific information 1435 of a specified value or more to 1400 can be prevented. In particular, when the specified value is set to 1, the server device 1420 is recognized as an unauthorized terminal using information included in the program specific information 1435 and is excluded, as in the first and second embodiments of the present invention. By newly assigning the program specific information 1435 to the information processing terminal 1400, it is possible to prevent an unauthorized terminal from avoiding exclusion.
[0132]
Further, by setting the specified value indicating the number of distributions of the program specific information 1435 to 2 or more, the program specific information 1435 is redistributed to a user who purchases the program again without an illegal purpose such as a hard disk failure. And new distributions can be made legitimately.
[0133]
Although the data storage unit 1406 and the program storage unit 1405 are separated in the third embodiment, they may be the same storage unit. Further, the format of the distribution count information 1500 shown in the third embodiment is an example, and other information may be added. In the third embodiment, the request from the information processing terminal 1400 can be a program distribution request accompanied by a program distribution or a program specific information distribution request not accompanied by a program distribution request.
[0134]
(Embodiment 4)
FIG. 17 shows a configuration diagram of an information processing terminal 1700 and a server device 1720 according to the fourth embodiment. In the figure, the difference from the third embodiment is that the server device 1720 holds a program / unique information correspondence table holding unit 1750. The program / unique information correspondence table holding unit 1750 is a storage unit similar to the program / unique information correspondence table holding unit 1150 described with reference to FIG.
[0135]
18A and 18B are diagrams showing examples of data stored in the distribution count information 1800 and the program / unique information correspondence table 1810 according to the fourth embodiment.
[0136]
The distribution number information 1800 stores a program ID 1801 of the distributed program, a terminal ID 1802 of the information processing terminal 1700 that distributed the program specific information 1735, and a number counter 1803 indicating the number of times the program specific information has been distributed. The difference from the distribution number information 1500 in the third embodiment is that a program ID 1801 for identifying a program using program specific information is added.
[0137]
The distribution number information 1800 distributes the program specific information 1735 used by the program with the program ID 0001 once to the information processing terminals 1700 with the terminal IDs 0001 and 0002, and distributes the information to the information processing terminal 1700 with the terminal ID 0003. The program specific information 1735 is not distributed. Similarly, the program specific information 1735 used by the program with the program ID 0002 is distributed once to the information processing terminal 1700 with the terminal ID 0001, and is distributed to the information processing terminal 1700 with the terminal ID 0002 and 0003. On the other hand, the program specific information 1735 is not distributed.
[0138]
The program / unique information correspondence table 1810 is the same as the program / unique information correspondence table 1210 in FIG. 12 described above, and a detailed description thereof will be omitted.
[0139]
FIG. 19 is a flowchart showing a program distribution procedure in the server device 1720.
[0140]
First, the server apparatus 1720 receives a program distribution request from the information processing terminal 1700 (S1901). This program distribution request includes the program ID of the program requested to be acquired from the information processing terminal 1700. Next, the server apparatus 1720 acquires the terminal ID and program ID of the information processing terminal 1700 included in the program distribution request received in S1901 (S1902).
[0141]
Then, the server device 1720 searches the distribution number information 1800 for the terminal ID and program ID acquired in S1902, and acquires the value of the number counter (S1903). Next, it is determined whether or not the acquired number counter value is equal to or greater than a specified value (S1904).
[0142]
If the acquired count counter value is equal to or greater than the specified value (Y in S1904), the server apparatus 1720 has already distributed the program specific information 1735 to the information processing terminal 1700 more than the specified number of times. Is transmitted, and the process is terminated (S1909).
[0143]
Next, when the value of the acquired number counter is less than the specified value (N in S1904), the server apparatus 1720 performs information processing based on the distribution start ID information stored in the program / unique information correspondence table 1810. Program specific information 1735 is newly assigned to the terminal 1700 (S1905).
[0144]
Then, the server apparatus 1720 updates the value of the distribution start ID stored in the program / unique information correspondence table 1810 regarding the program unique information 1735 newly assigned in S1905 (S1906). Further, the value of the number counter stored in the distribution number information 1800 is added (S1907), the program specific information 1735 is transmitted to the information processing terminal 1700 (S1908), the program 1733 is transmitted, and the process is terminated (S1909). ).
[0145]
As described above, the server device 1720 according to the fourth embodiment has the distribution number information holding unit 1740 and the program / unique information correspondence table holding unit 1750, and the distribution number information 1800 and the distribution number information 1800 held in each holding unit. By distributing and managing the program specific information 1735 using the program / unique information correspondence table 1810, it is possible to prevent distribution of program specific information 1735 of a specified value or more to the same program operating on one information processing terminal 1700. Therefore, it is possible to eliminate the information processing terminal 1700 that attempts to illegally use the program specific information 1735.
[0146]
In the fourth embodiment, the server device 1720 can determine whether or not the program specific information 1735 can be distributed for each program by managing the distribution of the program specific information in units of programs.
[0147]
In the fourth embodiment, the data storage unit 1706 and the program storage unit 1705 are separated, but they may be the same storage unit. Further, the format of the distribution number information 1800 shown in the fourth embodiment is an example, and other information may be added. Similarly, the format of the program / unique information correspondence table 1810 is an example, and may be managed in another format. In the fourth embodiment, the request from the information processing terminal 1700 can be a program distribution request accompanied by program distribution or a program specific information distribution request not accompanied by program distribution.
[0148]
【The invention's effect】
As described above, the server device according to the present invention has the unique information distribution history holding unit, thereby making it possible to prevent new acquisition of program unique information corresponding to a program previously distributed by the information processing terminal, It is possible to reliably prevent an illegal action of an information processing terminal that acquires new program specific information and avoids exclusion.
[0149]
In addition, the information processing terminal according to the present invention can reduce the burden of the program encryption processing in the server device by encrypting the program acquired from the server device with the terminal unique key. Furthermore, since the server device according to the present invention separately creates the program as a whole and the program-specific information, the server device is unique to the program having a relatively small capacity that is different information in each information processing terminal. It is possible to manage a plurality of information and manage only one large-capacity program that becomes information common to all information processing terminals, thereby reducing the capacity of distribution information managed by the server device, and the burden of information management Can be reduced.
[0150]
The entire program distributed to the information processing terminal from the server device according to the present invention includes a program main body that operates on the information processing terminal, a program header, program unique information, and unique information header. By using a CA signature or a hash value for each piece of information, it is possible to confirm the validity of the information distributed from the server device to the information processing terminal.
[Brief description of the drawings]
FIG. 1 shows a configuration diagram of an information processing terminal and a server device in a first embodiment.
FIG. 2 is a configuration diagram of an entire program transmitted from the server apparatus according to the first embodiment to the information processing terminal side.
FIG. 3 is a diagram illustrating an example of information stored in a program header and a program.
FIG. 4 is a diagram illustrating an example of information stored in a unique information header and program unique information.
FIG. 5 is a diagram illustrating an operation procedure in a program update system performed between an information processing terminal and a server device.
FIG. 6 is a diagram illustrating an example of information storage of unique information distribution history held in a unique information distribution history holding unit.
FIG. 7 is a flowchart showing a program distribution procedure in the server apparatus.
FIG. 8 is an overall view showing a program management system using the server device according to the first embodiment.
FIG. 9 is a diagram showing a program header and another data structure included in the program according to the first embodiment.
FIG. 10 is a diagram showing another data structure included in the unique information header and the program unique information.
FIG. 11 shows a configuration diagram of an information processing terminal and a server device according to Embodiment 2 of the present invention.
FIG. 12 is a diagram showing an example of information included in a unique information distribution history and a program / unique information correspondence table according to the second embodiment.
FIG. 13 is a flowchart showing a program distribution procedure in the server apparatus.
FIG. 14 shows a configuration diagram of an information processing terminal and a server device according to the third embodiment.
FIG. 15 is a diagram showing an example of information storage of distribution count information according to the third embodiment.
FIG. 16 is a flowchart showing a program distribution procedure in the server apparatus.
FIG. 17 shows a configuration diagram of an information processing terminal and a server device according to the fourth embodiment.
FIG. 18 is a diagram showing an example of data stored in a distribution count information and program / unique information correspondence table according to the fourth embodiment.
FIG. 19 is a flowchart showing a program distribution procedure in the server apparatus.
FIG. 20 is an explanatory diagram relating to a program validity verification method using a conventional electronic signature.
FIG. 21 is a reference diagram of a program management system between a conventional information processing terminal and a server device.
[Explanation of symbols]
100 Information processing terminal
105 Program storage
106 Data storage unit
107 Secret information storage unit
120 server device
125 Data storage
126 Distribution information storage unit
132 Program header
133 program
134 Unique information header
135 Program specific information
140 Unique Information Distribution History Holding Unit
300 Program header
304 hash value
305 CA signature
310 program
400 Unique information header
420 Program specific information
600 Specific information distribution history
1150 Program / unique information correspondence table holding unit
1200 Unique information distribution history
1210 Program / specific information correspondence table
1440 Distribution number information holding unit
1500 Distribution count information
1800 Distribution count information
1810 Program / specific information correspondence table

Claims (17)

外部から書き換えが行えない端末IDを保持する情報処理端末とネットワークを介して接続され前記情報処理端末で動作するプログラムを保持するサーバ装置であって、
以前に配布したプログラムと端末IDとの関連を示すテーブルを保持するテーブル保持手段と、
前記テーブルを参照して、前記情報処理端末から送信され前記端末IDを伴うプログラム取得要求に対するプログラムの配布をするか否かを判定する判定手段とを備える
ことを特徴とするサーバ装置。
A server device that holds a program that is connected to an information processing terminal that holds a terminal ID that cannot be rewritten from the outside via a network and that operates on the information processing terminal,
Table holding means for holding a table indicating a relationship between a previously distributed program and a terminal ID;
A server apparatus comprising: a determination unit that refers to the table and determines whether to distribute a program in response to a program acquisition request transmitted from the information processing terminal and accompanied by the terminal ID.
前記プログラムには、前記情報処理端末で動作するプログラム本体、及び当該プログラム本体に使用される固有の情報であるプログラム固有情報が含まれ、
前記判定手段は、
前記プログラム取得要求に付与されている前記端末IDが前記テーブルに記録されている場合には、前記プログラム固有情報の配布を禁止して前記プログラム本体のみの配布を前記情報処理端末に行うと判定し、
前記端末IDが前記テーブルに記載されていない場合には、前記端末IDと前記プログラム固有情報とを対応させて前記テーブルに追加すると共に、前記プログラム本体と前記プログラム固有情報とを前記情報処理端末に配布すると判定する
ことを特徴とする請求項1記載のサーバ装置。
The program includes a program main body that operates on the information processing terminal, and program specific information that is specific information used for the program main body,
The determination means includes
When the terminal ID assigned to the program acquisition request is recorded in the table, it is determined that distribution of the program specific information is prohibited and only the program main body is distributed to the information processing terminal. ,
If the terminal ID is not described in the table, the terminal ID and the program specific information are associated with each other and added to the table, and the program body and the program specific information are added to the information processing terminal. The server device according to claim 1, wherein the server device is determined to be distributed.
前記判定手段は、
前記情報処理端末からの前記プログラム取得要求に対して、前記プログラム本体の配布は前記プログラム取得要求毎に行うと判定する一方、前記プログラム固有情報の配布は1回のみ行うと判定する
ことを特徴とする請求項2記載のサーバ装置。
The determination means includes
In response to the program acquisition request from the information processing terminal, it is determined that distribution of the program body is performed for each program acquisition request, while distribution of the program specific information is determined only once. The server device according to claim 2.
前記テーブル保持手段は、
前記端末IDと前記プログラム固有情報の配布回数とを示すテーブルを保持し、
前記判定手段は、
前記テーブルを参照して、前記情報処理端末より配布された前記プログラム取得要求に付与されている前記端末IDに対応する配布回数が規定値に達している場合においては、前記プログラム固有情報の配布を禁止して前記プログラム本体のみの配布を前記情報処理端末に行うと判定し、
前記テーブルを参照して、前記情報処理端末より配布された前記プログラム取得要求に付与されている前記端末IDに対応する配布回数が規定値に達していない場合においては、前記端末IDに対応させて前記テーブルに記載されている配布回数を更新すると共に、前記プログラム本体と前記プログラム固有情報とを前記情報処理端末に配布すると判定する
ことを特徴とする請求項1記載のサーバ装置。
The table holding means is
Holding a table indicating the terminal ID and the number of distributions of the program specific information;
The determination means includes
With reference to the table, when the number of distributions corresponding to the terminal ID assigned to the program acquisition request distributed from the information processing terminal has reached a specified value, the program specific information is distributed. Determining that distribution of only the program main body to the information processing terminal is prohibited,
Referring to the table, if the number of distributions corresponding to the terminal ID given to the program acquisition request distributed from the information processing terminal has not reached a prescribed value, The server apparatus according to claim 1, wherein the server device updates the number of distributions described in the table and determines to distribute the program body and the program specific information to the information processing terminal.
前記テーブル保持手段は、
前記情報処理端末からのプログラム取得要求に付与されている前記端末IDと、前記端末IDの情報処理端末に配布した前記プログラム本体を一意に特定するプログラム本体IDと、前記端末IDの情報処理端末にプログラム固有情報を配布した回数を示す配布回数との関連を示すテーブルを保持し、
前記判定手段は、
前記テーブルを参照して、前記情報処理端末より配布された前記プログラム取得要求に付与されている前記端末IDと前記プログラムIDとの両方に対応する配布回数が規定値に達している場合においては、前記プログラム固有情報の配布を禁止して前記プログラム本体のみの配布を前記情報処理端末に行うと判定し、前記テーブルを参照して、前記情報処理端末より配布された前記プログラム取得要求に付与されている前記端末ID及び前記プログラムIDに対応する配布回数が規定値に達していない場合においては、前記端末IDと前記プログラムIDとに対応させて前記テーブルに記載されている配布回数を更新すると共に、前記プログラム本体と前記プログラム固有情報とを前記情報処理端末に配布すると判定する
ことを特徴とする請求項4記載のサーバ装置。
The table holding means is
The terminal ID given to the program acquisition request from the information processing terminal, the program body ID uniquely identifying the program body distributed to the information processing terminal of the terminal ID, and the information processing terminal of the terminal ID Holds a table showing the relationship with the number of distributions indicating the number of times program-specific information has been distributed,
The determination means includes
With reference to the table, when the number of distributions corresponding to both the terminal ID and the program ID given to the program acquisition request distributed from the information processing terminal has reached a prescribed value, The distribution of the program specific information is prohibited and it is determined that only the program main body is distributed to the information processing terminal, and the table is referred to, and is given to the program acquisition request distributed from the information processing terminal. In the case where the number of distributions corresponding to the terminal ID and the program ID does not reach a specified value, the distribution number described in the table is updated in association with the terminal ID and the program ID, It is determined that the program main body and the program specific information are distributed to the information processing terminal. Motomeko 4 server device as claimed.
前記規定値は、前記サーバ装置から前記情報処理端末に配布するプログラム固有情報の配布回数を示す値である
ことを特徴とする請求項4又は請求項5記載のサーバ装置。
6. The server apparatus according to claim 4, wherein the specified value is a value indicating the number of distributions of program specific information distributed from the server apparatus to the information processing terminal.
前記テーブル保持手段は、
前記情報処理端末からのプログラム取得要求に付与されている前記端末IDと、前記端末IDの情報処理端末に配布した前記プログラム本体を一意に特定するプログラム本体IDと、前記端末IDの情報処理端末に配布したプログラム固有情報を一意に特定するプログラム固有情報IDとの関連を示すテーブルを保持し、
前記判定手段は、
前記テーブルを参照して、前記情報処理端末より送信された前記プログラム取得要求に付与されている前記端末IDと前記プログラムIDとの両方に対応するプログラム固有情報IDが記載されている場合においては、前記プログラム固有情報の配布を禁止して前記プログラム本体のみの配布を前記情報処理端末に行うと判定し、
前記テーブルを参照して、前記プログラム取得要求に付与されている前記端末IDと前記プログラムIDとの両方に対応するプログラム固有情報IDが記載されていない場合においては、前記端末IDと前記プログラム固有情報IDと前記プログラムIDとを対応させて前記テーブルに追加すると共に、前記プログラム本体と前記プログラム固有情報とを前記情報処理端末に配布すると判定する
ことを特徴とする請求項1記載のサーバ装置。
The table holding means is
The terminal ID given to the program acquisition request from the information processing terminal, the program body ID uniquely identifying the program body distributed to the information processing terminal of the terminal ID, and the information processing terminal of the terminal ID Holds a table indicating the relationship with the program unique information ID that uniquely identifies the distributed program unique information,
The determination means includes
In the case where the program specific information ID corresponding to both the terminal ID and the program ID given to the program acquisition request transmitted from the information processing terminal is described with reference to the table, It is determined that distribution of the program specific information is prohibited and only the program body is distributed to the information processing terminal,
If the program specific information ID corresponding to both the terminal ID and the program ID given to the program acquisition request is not described with reference to the table, the terminal ID and the program specific information 2. The server apparatus according to claim 1, wherein an ID and the program ID are associated with each other and added to the table, and the program body and the program specific information are determined to be distributed to the information processing terminal.
前記サーバ装置は、
前記情報処理端末毎に異なる情報となる前記プログラム固有情報を複数保持し、
前記情報処理端末で共通な前記プログラム本体を1つ保持する
ことを特徴とする請求項2記載のサーバ装置。
The server device
Holding a plurality of the program specific information, which is different information for each information processing terminal,
The server apparatus according to claim 2, wherein one of the program main bodies common to the information processing terminals is held.
前記テーブル保持手段は、
前記プログラム本体を一意に特定するプログラム本体IDと、前記プログラム本体が動作する前記情報処理端末の端末IDとの関連を示すテーブルを保持し、
前記判定手段は、
前記テーブルを参照して、前記情報処理端末より配布された前記プログラム取得要求に付与されている前記端末IDと前記プログラムIDとが対応して記載されている場合においては、前記プログラムの配布可能と判定し、
前記テーブルを参照して、前記プログラム取得要求に付与されている前記端末IDと前記プログラムIDとが対応して記載されていない場合においては、前記プログラム本体の配布不可と判定する
ことを特徴とする請求項2記載のサーバ装置。
The table holding means is
A table indicating a relationship between a program body ID for uniquely identifying the program body and a terminal ID of the information processing terminal on which the program body operates;
The determination means includes
With reference to the table, when the terminal ID and the program ID given to the program acquisition request distributed from the information processing terminal are described correspondingly, the program can be distributed. Judgment,
Referring to the table, when the terminal ID assigned to the program acquisition request and the program ID are not described correspondingly, it is determined that the program body cannot be distributed. The server device according to claim 2.
外部から書き換えが行えない端末IDを保持する情報処理端末と、当該情報処理端末とネットワークを介して接続され前記情報処理端末で動作するプログラムを保持するサーバ装置とから構成されるプログラム管理システムであって、
前記情報処理端末は、
前記プログラムの取得を要求する場合には、前記端末IDを付与したプログラム取得要求を前記サーバ装置に送信し、
前記サーバ装置は、
前記プログラム取得要求を受信して、以前に配布したプログラムと端末IDとの関連を示すテーブルを保持するテーブル保持手段と、
前記テーブルを参照して、前記情報処理端末から送信されて前記端末IDが付与されているプログラム取得要求に対するプログラムの配布をするか否かを判定する判定手段とを備える
ことを特徴とするプログラム管理システム。
A program management system comprising an information processing terminal that holds a terminal ID that cannot be rewritten from the outside, and a server device that is connected to the information processing terminal via a network and holds a program that operates on the information processing terminal. And
The information processing terminal
When requesting acquisition of the program, a program acquisition request with the terminal ID is transmitted to the server device,
The server device
A table holding unit that receives the program acquisition request and holds a table indicating a relationship between a previously distributed program and a terminal ID;
Program management comprising: determining means for determining whether to distribute a program in response to a program acquisition request transmitted from the information processing terminal and assigned with the terminal ID with reference to the table system.
前記情報処理端末は、外部から書き換えが行えないメモリ部に前記情報処理端末毎に異なる固有鍵を格納し、
前記サーバ装置から取得した前記プログラムを、前記固有鍵を用いて暗号化して前記情報処理端末内のメモリ部に格納する格納手段を備える
ことを特徴とする請求項10記載のプログラム管理システム。
The information processing terminal stores a unique key different for each information processing terminal in a memory unit that cannot be rewritten from the outside,
11. The program management system according to claim 10, further comprising storage means for encrypting the program acquired from the server device using the unique key and storing the encrypted program in a memory unit in the information processing terminal.
前記プログラムには、前記情報処理端末で動作するプログラム本体、当該プログラム本体に関する情報を格納するプログラムヘッダ、前記プログラム本体に使用される固有の情報であるプログラム固有情報、及び当該プログラム固有情報に関する情報を格納した固有情報ヘッダが含まれ、
前記情報処理端末は、
前記サーバ装置に取得を要求するプログラムに含まれる前記プログラムヘッダ及び前記固有情報ヘッダの取得を要求するヘッダ取得要求を行い、
前記サーバ装置は、
前記判定手段において前記プログラム本体の配布可能と判定される場合においては、前記プログラムヘッダ及び前記固有情報ヘッダを前記情報処理端末に配布し、
前記情報処理端末は、
前記プログラムヘッダ及び前記固有情報ヘッダに基づいて検証を行う検証手段を備え、当該検証手段での検証を行った後に前記プログラム取得要求を前記サーバ装置に送信する
ことを特徴とする請求項10記載のプログラム管理システム。
The program includes a program main body that operates on the information processing terminal, a program header that stores information about the program main body, program specific information that is unique information used for the program main body, and information about the program specific information. Contains the stored unique information header,
The information processing terminal
Performing a header acquisition request for requesting acquisition of the program header and the unique information header included in a program requesting acquisition to the server device;
The server device
When the determination means determines that the program body can be distributed, distributes the program header and the unique information header to the information processing terminal,
The information processing terminal
11. The verification unit according to claim 10, further comprising: a verification unit that performs verification based on the program header and the unique information header, and transmits the program acquisition request to the server device after verification by the verification unit. Program management system.
前記プログラムヘッダには、前記プログラムを一意に特定することが可能な認証子が含まれ、
前記情報処理端末は、前記固有鍵で暗号化され前記情報処理端末内のメモリ部に格納されているプログラムを前記固有鍵で復号し、前記認証子を用いて前記固有鍵での暗号化が正しく行われたことを検証する検証手段を備える
ことを特徴とする請求項12記載のプログラム管理システム。
The program header includes an authenticator that can uniquely identify the program,
The information processing terminal decrypts the program encrypted with the unique key and stored in the memory unit in the information processing terminal with the unique key, and the encryption with the unique key is correctly performed using the authenticator. 13. The program management system according to claim 12, further comprising verification means for verifying what has been done.
前記プログラム、前記プログラムヘッダ、前記プログラム固有情報、及び前記固有情報ヘッダには電子的な署名が付加されている
ことを特徴とする請求項12記載のプログラム管理システム。
13. The program management system according to claim 12, wherein an electronic signature is added to the program, the program header, the program unique information, and the unique information header.
前記プログラムヘッダには、前記プログラムを一意に特定することが可能な認証子が含まれ、前記固有情報ヘッダには、前記プログラム固有情報を一意に特定することが可能な認証子が含まれる
ことを特徴とする請求項12記載のプログラム管理システム。
The program header includes an authenticator capable of uniquely identifying the program, and the unique information header includes an authenticator capable of uniquely identifying the program specific information. The program management system according to claim 12, characterized in that:
外部から書き換えが行えない端末IDを保持する情報処理端末と、当該情報処理端末とネットワークを介して接続され前記情報処理端末で動作するプログラムを保持するサーバ装置とから構成されるプログラム配布方法であって、
前記情報処理端末は、
前記プログラムの取得を要求する場合には、前記端末IDを付与したプログラム取得要求を前記サーバ装置に送信するステップを有し、
前記サーバ装置は、
前記プログラム取得要求を受信して、以前に配布したプログラムと端末IDとの関連を示すテーブルを保持するテーブル保持ステップと、
前記テーブルを参照して、前記情報処理端末から送信されて前記端末IDが付与されているプログラム取得要求に対するプログラムの配布をするか否かを判定する判定ステップとを有する
ことを特徴とするプログラム配布方法。
A program distribution method comprising an information processing terminal that holds a terminal ID that cannot be rewritten from the outside, and a server device that is connected to the information processing terminal via a network and holds a program that operates on the information processing terminal. And
The information processing terminal
When requesting acquisition of the program, the method includes a step of transmitting a program acquisition request assigned with the terminal ID to the server device,
The server device
A table holding step for receiving a program acquisition request and holding a table indicating a relationship between a previously distributed program and a terminal ID;
A program distribution comprising: determining whether to distribute a program in response to a program acquisition request transmitted from the information processing terminal and assigned with the terminal ID with reference to the table Method.
外部から書き換えが行えない端末IDを保持する情報処理端末とネットワークを介して接続され前記情報処理端末で動作する配布プログラムを保持するサーバ装置で用いられるプログラムであって、
以前に配布した配布プログラムと端末IDとの関連を示すテーブルを保持するテーブル保持ステップと、
前記テーブルを参照して、前記情報処理端末から送信され前記端末IDを伴うプログラム取得要求に対する配布プログラムの配布をするか否かを判定する判定ステップとをコンピュータに実行させる
ことを特徴とするプログラム。
A program used in a server apparatus that holds a distribution program connected to an information processing terminal that holds a terminal ID that cannot be rewritten from the outside and operates on the information processing terminal,
A table holding step for holding a table indicating a relationship between a previously distributed distribution program and a terminal ID;
A program for causing a computer to execute a determination step of determining whether or not to distribute a distribution program in response to a program acquisition request transmitted from the information processing terminal and accompanied by the terminal ID with reference to the table.
JP2003111019A 2002-04-23 2003-04-16 Server apparatus and program management system Expired - Fee Related JP4675031B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003111019A JP4675031B2 (en) 2002-04-23 2003-04-16 Server apparatus and program management system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002120430 2002-04-23
JP2003111019A JP4675031B2 (en) 2002-04-23 2003-04-16 Server apparatus and program management system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009008249A Division JP2009116901A (en) 2002-04-23 2009-01-16 Method for updating, method for sending, servers and terminals

Publications (2)

Publication Number Publication Date
JP2004005585A true JP2004005585A (en) 2004-01-08
JP4675031B2 JP4675031B2 (en) 2011-04-20

Family

ID=30447318

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003111019A Expired - Fee Related JP4675031B2 (en) 2002-04-23 2003-04-16 Server apparatus and program management system

Country Status (1)

Country Link
JP (1) JP4675031B2 (en)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004318838A (en) * 2003-03-28 2004-11-11 Ricoh Co Ltd Software update device, software update system, software update method and program
JP2006107455A (en) * 2004-09-30 2006-04-20 Microsoft Corp Security state watcher
JP2006195826A (en) * 2005-01-14 2006-07-27 Toshiba Tec Corp Method for protecting software and office computer with function of protecting software
JP2009526333A (en) * 2006-02-10 2009-07-16 クゥアルコム・インコーポレイテッド Method and apparatus for safely booting from an external storage device
KR100924391B1 (en) 2009-04-17 2009-11-03 주식회사 로그 Apparatus and method for identifying user terminal
JP2010056816A (en) * 2008-08-28 2010-03-11 Hitachi Ltd Distribution system
JP2012104135A (en) * 2007-11-21 2012-05-31 Intel Corp Device, method and storage medium utilizing device identifier
JP5136554B2 (en) * 2007-06-25 2013-02-06 富士通株式会社 Firmware distribution apparatus, program, and method
US8402280B1 (en) 2009-10-15 2013-03-19 Nvidia Corporation System, method, and computer program product for buffering in association with audio/video digital rights management (DRM) processing
JP2014026663A (en) * 2013-09-18 2014-02-06 Ricoh Co Ltd Apparatus, management device, apparatus management system, and program
US8683213B2 (en) 2007-10-26 2014-03-25 Qualcomm Incorporated Progressive boot for a wireless device
US8868925B2 (en) 2008-12-09 2014-10-21 Nvidia Corporation Method and apparatus for the secure processing of confidential content within a virtual machine of a processor
JP2017111555A (en) * 2015-12-15 2017-06-22 富士通株式会社 Distribution history management program, distribution history management system and distribution history management method
JP2017153044A (en) * 2016-02-26 2017-08-31 キヤノン株式会社 Information processing apparatus, information processing system, information processing method, and program
JP2019144752A (en) * 2018-02-19 2019-08-29 株式会社デンソー Verification terminal
JP2020025243A (en) * 2018-08-08 2020-02-13 廣達電腦股▲ふん▼有限公司Quanta Computer Inc. Method and device for authenticating firmware configuration input file
WO2020195638A1 (en) * 2019-03-28 2020-10-01 オムロン株式会社 Controller system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07296508A (en) * 1994-04-28 1995-11-10 Toshiba Corp Medium information delivery system
JPH08190529A (en) * 1995-01-10 1996-07-23 Fujitsu Ltd Identifier management device and method for software circulation system
JPH10214297A (en) * 1996-11-28 1998-08-11 Fujitsu Ltd Closed-membership service system using internet, and method therefor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07296508A (en) * 1994-04-28 1995-11-10 Toshiba Corp Medium information delivery system
JPH08190529A (en) * 1995-01-10 1996-07-23 Fujitsu Ltd Identifier management device and method for software circulation system
JPH10214297A (en) * 1996-11-28 1998-08-11 Fujitsu Ltd Closed-membership service system using internet, and method therefor

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4597551B2 (en) * 2003-03-28 2010-12-15 株式会社リコー Software update device, software update system, software update method, and program
JP2004318838A (en) * 2003-03-28 2004-11-11 Ricoh Co Ltd Software update device, software update system, software update method and program
JP2006107455A (en) * 2004-09-30 2006-04-20 Microsoft Corp Security state watcher
JP2006195826A (en) * 2005-01-14 2006-07-27 Toshiba Tec Corp Method for protecting software and office computer with function of protecting software
JP4728650B2 (en) * 2005-01-14 2011-07-20 東芝テック株式会社 Software protection method and office computer having software protection function
JP2009526333A (en) * 2006-02-10 2009-07-16 クゥアルコム・インコーポレイテッド Method and apparatus for safely booting from an external storage device
US8291226B2 (en) 2006-02-10 2012-10-16 Qualcomm Incorporated Method and apparatus for securely booting from an external storage device
JP5136554B2 (en) * 2007-06-25 2013-02-06 富士通株式会社 Firmware distribution apparatus, program, and method
US8683213B2 (en) 2007-10-26 2014-03-25 Qualcomm Incorporated Progressive boot for a wireless device
JP2012104135A (en) * 2007-11-21 2012-05-31 Intel Corp Device, method and storage medium utilizing device identifier
JP2010056816A (en) * 2008-08-28 2010-03-11 Hitachi Ltd Distribution system
US8868925B2 (en) 2008-12-09 2014-10-21 Nvidia Corporation Method and apparatus for the secure processing of confidential content within a virtual machine of a processor
KR100924391B1 (en) 2009-04-17 2009-11-03 주식회사 로그 Apparatus and method for identifying user terminal
US8402280B1 (en) 2009-10-15 2013-03-19 Nvidia Corporation System, method, and computer program product for buffering in association with audio/video digital rights management (DRM) processing
JP2014026663A (en) * 2013-09-18 2014-02-06 Ricoh Co Ltd Apparatus, management device, apparatus management system, and program
JP2017111555A (en) * 2015-12-15 2017-06-22 富士通株式会社 Distribution history management program, distribution history management system and distribution history management method
JP2017153044A (en) * 2016-02-26 2017-08-31 キヤノン株式会社 Information processing apparatus, information processing system, information processing method, and program
JP2019144752A (en) * 2018-02-19 2019-08-29 株式会社デンソー Verification terminal
JP7013921B2 (en) 2018-02-19 2022-02-01 株式会社デンソー Verification terminal
JP2020025243A (en) * 2018-08-08 2020-02-13 廣達電腦股▲ふん▼有限公司Quanta Computer Inc. Method and device for authenticating firmware configuration input file
WO2020195638A1 (en) * 2019-03-28 2020-10-01 オムロン株式会社 Controller system
JP2020161048A (en) * 2019-03-28 2020-10-01 オムロン株式会社 Controller system
JP7318264B2 (en) 2019-03-28 2023-08-01 オムロン株式会社 controller system
US11768940B2 (en) 2019-03-28 2023-09-26 Omron Corporation Controller system

Also Published As

Publication number Publication date
JP4675031B2 (en) 2011-04-20

Similar Documents

Publication Publication Date Title
JP2009116901A (en) Method for updating, method for sending, servers and terminals
JP7364674B2 (en) Secure over-the-air firmware upgrades
US11128477B2 (en) Electronic certification system
JP4675031B2 (en) Server apparatus and program management system
US9424400B1 (en) Digital rights management system transfer of content and distribution
US8196186B2 (en) Security architecture for peer-to-peer storage system
JP5284989B2 (en) Software license renewal
US8458455B2 (en) Techniques for handling SSL certificate expiration and renewal
EP1942430B1 (en) Token Passing Technique for Media Playback Devices
US8930696B2 (en) System and method for exchanging secure information between secure removable media (SRM) devices
KR101985179B1 (en) Blockchain based id as a service
KR101452708B1 (en) CE device management server, method for issuing DRM key using CE device management server, and computer readable medium
WO2024031868A1 (en) Attribute encryption-based device security authentication method and related apparatus thereof
CN110611569A (en) Authentication method and related equipment
CN113365097B (en) Live broadcast information stream processing method, device and system, electronic equipment and storage medium
JP5012574B2 (en) Common key automatic sharing system and common key automatic sharing method
JP2004013560A (en) Authentication system, communication terminal, and server
JP2004140636A (en) System, server, and program for sign entrustment of electronic document
JP2007517289A (en) Digital signature protection for software
KR20140004703A (en) Controlled security domains
JP6524556B2 (en) Authentication key replication system
KR20200060193A (en) Integrated management server for secure binary patch deployment based on mutual authentication and operation method thereof
CN109981678B (en) Information synchronization method and device
CN115510401A (en) Software authorization implementation method in cloud scene
KR20100088063A (en) Method and terminal for receiving rights object for content on behalf of memory card

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090630

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100817

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101001

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110105

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110125

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140204

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4675031

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees