プログラム情報提供システム、プログラム情報提供方法、プログラム情報提供方法に用いられる記録媒体
【課題】なりすまし、改ざん等を防止しつつプログラムを記録媒体にセキュアに追加・更新可能なプログラム情報提供システム、プログラム提供方法、及びプログラム提供方法に用いられる記録媒体を提供する。
【解決手段】ユーザによって管理されるユーザ端末10と、ユーザ端末10にて情報を読み出し及び書き込み可能な記録媒体16と、前記ユーザ端末にネットワークを介して接続されたサーバ20とを有するシステムを設ける。記録媒体16は、プログラムを書き込み可能なメモリセルアレイと、相互認証を行うプロセッサとを備える。プロセッサは、ユーザ端末10と相互認証処理を行い、その相互認証処理に成功し、ユーザ端末10を介してサーバ20と相互認証処理を行い、相互認証処理に成功した場合、サーバ20から送信されたプログラム情報をユーザ端末10にてメモリセルアレイに格納する。
【解決手段】ユーザによって管理されるユーザ端末10と、ユーザ端末10にて情報を読み出し及び書き込み可能な記録媒体16と、前記ユーザ端末にネットワークを介して接続されたサーバ20とを有するシステムを設ける。記録媒体16は、プログラムを書き込み可能なメモリセルアレイと、相互認証を行うプロセッサとを備える。プロセッサは、ユーザ端末10と相互認証処理を行い、その相互認証処理に成功し、ユーザ端末10を介してサーバ20と相互認証処理を行い、相互認証処理に成功した場合、サーバ20から送信されたプログラム情報をユーザ端末10にてメモリセルアレイに格納する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバから記録媒体にプログラム情報を提供するプログラム情報提供システム、プログラム情報提供方法、及びそのプログラム情報提供方法に用いられる記録媒体に関する。
【背景技術】
【0002】
近年、インターネット等の通信ネットワークに接続された通信端末により電子化したコンテンツ情報をダウンロードして、閲覧することが可能となっている。
【0003】
但し、コンテンツ情報は、容易に複製可能なため、著作権を無視する違法行為が生じ易い。このような違法行為からコンテンツ情報を保護する観点から、コンテンツ情報は、通常、暗号化鍵により、暗号化されて記録され、再生時に復号化される。この種のコンテンツ保護技術には、CPRM(Content Protection for Prerecorded Media)があり、例えばSDオーディオ(SD-Audio)、SDビデオ(SD-Video)、SDイー・パブリッシュ(SD-ePublish:SD電子出版)のように規格化された暗号化鍵方式を用いている(例えば、非特許文献1参照)。この非特許文献1で採用されている暗号化鍵方式は、タイトル鍵をメディア固有鍵で一重に暗号化する暗号化一重鍵方式である。一方、コンテンツ鍵がユーザ鍵及びメディア固有鍵で二重に暗号化された暗号化二重鍵方式が考えられている(例えば、特許文献1参照)。この種の暗号化二重鍵方式は、例えばMQbic(登録商標)に用いられている。
【0004】
つまり、上記のような暗号化によって、記録媒体をSRM(Secure Removable Media)として様々なDRM(Digital Rights Management)で利用しようという動きがある。ここで、記録媒体は、例えばSDカード等である。
【0005】
しかしながら、それぞれのDRMが記録媒体をSRMとして利用しようとしたとき、記録媒体に予め備えられた機能だけでは不足する場合がある。そこで、それぞれのDRMが要求する機能(プログラム情報)の追加、又は更新を可能とする記録媒体が望まれている。なお、記録媒体には、追加された機能を実行する環境が必要となる。
【0006】
しかし、記録媒体が、上記のような追加・更新機能(プログラム情報)をセキュアに受け入れることができなければ、次のような問題が生じる。すなわち、こうした機能の追加・更新が、正規のユーザになりすました不正なユーザの記録媒体に対して行われることが起こり得る(なりすまし)。そして、記録媒体のなりすましが行われると、正規の記録媒体は、不正なユーザにより行われたプログラム機能解析などを通じて、悪意を持った機能(プログラム情報)を追加されたり、データを改ざんされたり等の攻撃を受ける可能性が生じる。つまり、記録媒体が、セキュリティホールを自ら造り出す可能性がある。
【非特許文献1】4C エンティティ、LLC、[online]、インターネット<URL:http://www.4Centity.com/、平成18年2月13日検索>
【特許文献1】特開2007−13780号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
本発明は、なりすまし、改ざん等を防止しつつプログラム情報を記録媒体にセキュアに追加・更新可能なプログラム情報提供システム、プログラム情報提供方法、及びプログラム情報提供方法に用いられる記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の一態様に係るプログラム情報提供システムは、ユーザによって管理されるユーザ端末と、当該ユーザ端末の発行するコマンドを介して情報を読み出し及び書き込み可能な記録媒体と、前記ユーザ端末にネットワークを介して接続されたサーバとを有し、当該サーバから前記記録媒体にプログラム情報を提供するプログラム情報提供システムであって、前記記録媒体は、プログラム情報を書き込み可能な第1記憶部と、前記ユーザ端末と第1相互認証処理を行い、当該第1相互認証処理に成功した場合のみ、プログラム情報を前記第1記憶部に書き込むコマンドを実行することができる第1制御部を有し、前記ユーザ端末は、前記サーバと第2相互認証処理を行い、当該第2相互認証処理に成功した場合、前記サーバから送信されたプログラム情報を得て、プログラム情報を前記記録媒体の第1記憶部に書き込むコマンドを発行することを特徴とする。
【0009】
また、本発明の一態様に係るプログラム情報提供方法は、ユーザによって管理されるユーザ端末と、当該ユーザ端末の発行するコマンドを介して情報を読み出し及び書き込み可能な記録媒体と、前記ユーザ端末にネットワークを介して接続されたサーバとを有し、当該サーバから前記記録媒体にプログラム情報を提供するプログラム情報提供方法であって、前記記録媒体と前記ユーザ端末とに第1の相互認証処理を行わせる第1相互認証ステップと、当該第1相互認証ステップにて前記第1の相互認証処理に成功した場合、プログラム情報を前記第1記憶部に書き込むコマンドを実行するステップと、前記ユーザ端末を介して前記記録媒体と前記サーバとに第2の相互認証処理を行わせる第2相互認証ステップと、当該第2相互認証ステップにて前記第2の相互認証処理に成功した場合、前記サーバから送信されたプログラム情報を得るステップと、プログラム情報を前記記録媒体の第1記憶部に書き込むコマンドを発行するステップとを備えることを特徴とする。
【0010】
また、本発明の一態様に係る記録媒体は、プログラム情報を書き込み可能な第1記憶部と、ユーザによって管理されるユーザ端末と第1相互認証処理を行い、当該第1相互認証処理に成功した場合のみ、前記ユーザ端末を介して、前記ユーザ端末にネットワークを介して接続されたサーバと第2相互認証処理を行い、当該第2相互認証処理に成功した場合のみ、前記サーバから送信されたプログラム情報を前記第1記憶部に書き込む第1制御部とを備えることを特徴とする。
【発明の効果】
【0011】
本発明によれば、なりすまし、改ざん等を防止しつつプログラム情報を記録媒体にセキュアに追加・更新可能なプログラム情報提供システム、プログラム情報提供方法、及びプログラム情報提供方法に用いられる記録媒体を提供することができる。
【発明を実施するための最良の形態】
【0012】
以下、図面を参照して、本発明の一実施形態に係るプログラム情報提供システムを説明する。本明細書においては、例えば、情報Aにより暗号化された情報BをEnc(A:B)と表す。なお、以下詳細に説明するが、本発明の一実施形態に係るプログラム情報提供システムは、暗号化二重鍵方式を用いたものも含まれる。つまり、後述するプログラムPが、プログラム鍵情報Kp及びユーザ鍵情報Kuで二重に暗号化された方式である。
【0013】
[第1実施形態]
図1は、本発明の第1実施形態に係るプログラム情報提供システムの概略図である。図1に示すように、プログラム情報提供システムは、ユーザ端末10、記録媒体16、及びサーバ20を含む。ユーザ端末10は、インターネット等のネットワーク30を介してサーバ20と接続されている。このプログラム情報提供システムは、記録媒体16が、ユーザ端末10と、サーバ20との間で相互認証を行う点に特徴を有している。
【0014】
図2(a)に示すように、記録媒体16が、ユーザ端末10と相互認証処理を行う(第1相互認証処理)一方、ユーザ端末10がサーバ20と相互認証処理を行う(第2相互認証処理)から成り立つ。この結果、本実施形態のプログラム情報提供システムでは、記録媒体16が、ユーザ端末10と、サーバ20との間での相互認証を確立される。また、第1相互認証処理と第2相互認証処理の順序は、第1相互認証処理が先である必要はなく、逆に第2相互認証処理を先行させて、ユーザ端末10がサーバ20より、プログラム情報を受信して、これを一旦、ユーザ端末10の記憶部15に格納した後、第1相互認証処理を行い、記録媒体16にサーバ20から送信されたプログラム情報を格納させる順序でも良い。
【0015】
なお、図1においては、ユーザ端末10及びサーバ20は、各々一台ずつ配置した構成を記載しているが、本発明は、この構成に限定されるものではない。例えば、ユーザ端末10及びサーバ20を、それぞれ複数配置してもよい。また、ユーザ端末10は、パソコン以外に携帯電話等であってもよく、ユーザ個人所有のものに限らず、インターネットカフェ、コンビニエンスストア、ガソリンスタンド等に配置され公衆間で共用される端末であってもよい。
【0016】
ユーザ端末10は、表示制御部11、入出力(I/O)部12、RAM13、CPU等の制御部14、及びHDD(Hard Disc Drive)等の記憶部15から構成されている。なお、ユーザ端末10は、記録媒体16に情報を書き込み、そして記録媒体16から情報を読み出し可能に構成されている。
【0017】
制御部14は、記憶部15に格納されたプログラム情報に基づきプログラムを実行するものである。制御部14は、例えば記憶部15から基本プログラム141を読み出し、実行する。基本プログラム141は、記録媒体16との間で、相互認証、鍵交換及び暗号通信を行なうものであり、暗号/復号化機能をもっている。記憶部15は、装置(ユーザ端末)毎に第1相互認証処理に必要なデバイス鍵情報Kd1を格納している。また、サーバ20との第2相互認証に必要な共通秘密鍵情報Kcs、公開鍵情報Kpb、及び公開鍵情報Kpbと対になる秘密鍵情報Kscなどが格納されることもある。
【0018】
記録媒体16は、プロセッサ(制御部)161、プログラムメモリ162、メモリコントローラ163、及びメモリセルアレイ(記憶部)164から構成されている。
【0019】
プロセッサ161は、メモリセルアレイ164に格納されたコンテンツ情報等を読み出す、或いは、プログラムメモリ162に格納されたプログラム情報を読み出し、そのプログラム情報に基づきプログラムを実行するものである。プログラムメモリ162は、例えば、ランダムアクセス可能なNOR型のEEPROMであり、プログラム情報を格納しプロセッサ161からのコマンドに応じて、プログラム情報を読み出すものである。
【0020】
プログラムメモリ162には、記録媒体16の基本的な動作全般を制御する基本プログラム162a等が予め格納されている。基本プログラム162aは、記録媒体16の外部と相互認証、鍵交換及び暗号通信を行なうものであり、暗号/復号化機能をもっている。この基本プログラム162aは、プロセッサ161により実行される。プログラムメモリ162には、必要に応じてダウンロードされる各種プログラム情報Pが格納される。プログラム情報Pは、複数の情報(P1、P2、・・・、Pm)に分割され、以下では、適宜複数の情報(P1、P2、・・・、Pm)をまとめて「プログラム情報P」と称する。その他の例として、この基本プログラム162aのみをプログラムメモリ162に格納し、ダウンロードしたプログラム情報Pはメモリセルアレイ164に格納されるようにしてもよい。そして、ユーザ端末10に記録媒体16が装着されたときに、プログラムメモリ162に都度、そのプログラム情報Pを転送・格納しても良い。この他、ユーザデータ領域164dには、必要に応じてダウンロードされる各種プログラム情報Pが暗号鍵情報(プログラム鍵情報Kp)で暗号化されて格納される(Enc(Kp:P))。プログラム情報Pは、複数の情報(P1、P2、・・・、Pm)に分割され、それぞれが別のプログラム鍵(Kp1、Kp2、・・・、Kpn)で暗号化される。以下では、複数のプログラム鍵(Kp1、Kp2、・・・、Kpn)をまとめて「プログラム鍵情報Kp」と称する。
【0021】
メモリコントローラ163は、プロセッサ161からの命令に従い、メモリセルアレイ164に対する書込み/読み出し/消去等の制御を行う。例えば、メモリコントローラ163は、プロセッサ161より送られてくる書込み命令及びデータを読み取って、そのデータを書き込むべきメモリセルアレイ164のアドレスを決定するものである。メモリコントローラ163は、外部インタフェイス160を介して、プロセッサ161からのアクセスが後述するメモリセルアレイ164の保護領域164cのアクセスであるか否かを監視し、保護領域164c外のアクセスである場合は、そのアクセスを禁止する。この場合、例えば、コマンド実行結果は、領域外アクセスエラーとなる。つまり、メモリコントローラ163は、メモリセルアレイ164を複数の領域に用途毎に分割して管理を行う。
【0022】
メモリセルアレイ164は、例えば、NAND型のEEPROMであり、プログラム情報及びその他の情報を格納するものである。メモリセルアレイ164は、上述したように、複数の領域に用途毎に分割されている。分割された複数の領域は、システム領域(System Area)164a、秘匿領域(Hidden Area)164b、保護領域(Protected Area)164c、ユーザデータ領域(User Data Area)164dを含む。
【0023】
システム領域164aは、読取専用で記録媒体16の外部からアクセス可能な領域である。秘匿領域164bは、読取専用で記録媒体16が参照する領域であり、外部からのアクセスが一切不可となっている。保護領域164cは、相互認証処理に成功した場合に記録媒体16の外部から読出/書込可能な領域である。ユーザデータ領域164dは、記録媒体16の外部から自由に読出/書込可能な領域である。
【0024】
具体的に、システム領域164aには鍵管理情報MKB(Media Key Block)及びメディア識別子情報IDmが記憶されている。
【0025】
また、秘匿領域164bにはメディア固有鍵情報Kmuが記憶され、保護領域164cには暗号化ユーザ鍵Enc(Kmu:Ku)が記憶され、ユーザデータ領域164dにはコンテンツ情報等の各種情報がユーザ鍵Ku、コンテンツ鍵データ等により二重に暗号化され格納されている。ここで、ユーザ鍵情報Kuは、プログラム鍵情報Kpに対する暗号/復号化鍵として用いられ、複数個の暗号化プログラム鍵情報Enc(Ku:Kp1)、Enc(Ku:Kp2)、…に対しても、共通に使用され得る。
【0026】
サーバ20は、HDD等により構成された記憶部21、CPU等により構成された制御部22を含む。
【0027】
記憶部21は、プログラムデータベース211、アクセス鍵データベース212、プログラム情報対メディア識別子情報対応データベース213、プログラム鍵データベース214、及びユーザ鍵対メディア識別子情報対応データベース215を備える。プログラムデータベース211は、プログラム情報Pを格納している。アクセス鍵データベース212は、ユーザ端末10或いは記録媒体16をサーバ20がアクセスするためのアクセス鍵情報が格納される。アクセス鍵情報としてはデバイス鍵情報Kd、共通秘密鍵情報Kcs、公開鍵情報Kpb、その公開鍵情報Kpbと対になる秘密鍵情報Kscなどが格納される。プログラム情報対メディア識別子情報対応データベース213は、記録媒体の製造者、及びバージョンの違いにより対応するプログラム情報Pが異なる場合、適合するプログラム情報Pをサーバ20で選択させるための情報を格納している。サーバ20は記録媒体16のメディア識別子情報IDmに基づいて、プログラム情報対メディア識別子情報対応データベース213を参照して適合するプログラム情報を選択する。プログラム鍵データベース214は、プログラム鍵情報Kpを格納している。ユーザ鍵対メディア識別子情報対応データベース215は、メディア識別子情報IDmに対応したユーザ鍵情報Kuを格納している。実施例の変形として、プログラムデータベース211にプログラム情報Pをプログラム鍵情報Kpにより暗号化した暗号化プログラム情報Enc(Kp:P)を格納しても良い。
【0028】
制御部22は、基本プログラム221を実行するものである。基本プログラム221は、ユーザ端末10を介して、記録媒体16と相互認証、鍵交換及び暗号通信を行なうものであり、暗号/復号化機能を有している。
【0029】
次に、図3A及び図3Bを参照して、本発明の第1実施形態に係るプログラム情報提供システムの動作を説明する。
【0030】
図3Aに示すように、先ず、記録媒体16は、鍵管理情報MKBをユーザ端末10に送信する(ステップS101)。
【0031】
次に、ユーザ端末10は、受信した鍵管理情報MKBをデバイス鍵情報Kd1によりMKB処理し、メディア鍵情報Kmを生成する(ステップS102)。
【0032】
ここで、図5及び図6を参照して、ステップS102のMKB処理について説明する。図5に示すように、鍵管理情報MKBは、メディア鍵情報Kmをデバイス鍵行列情報KdMにより暗号化した情報である。デバイス鍵行列情報KdMは、行列要素、及びその行列要素に対応する複数の暗号化情報k11〜k34を有する情報である。
【0033】
そして、鍵管理情報MKBは、図6に示すようにデバイス鍵情報Kdにより復号化され、この復号の結果、メディア鍵情報Kmが生成される。デバイス鍵情報Kdは、行列要素の中から複数の暗号化情報を選択するベクトル情報、そのベクトル情報に対応して暗号化情報を復号化する復号化情報を有する情報である。例えば、図6(a)に示すように、デバイス鍵情報Kdは、ベクトル情報として、1行1列目、1行2列目、3行3列目、2行4列目という情報を有している。このベクトル情報に対応して、デバイス鍵情報Kdは、復号化情報k11、k12、k33、k24を有している。符号で表すと、Kd=(1,1,3,2)(k11,k12,k33,k24)となる。なお、上述したようにデバイス鍵情報Kdは、各装置によって異なる情報である。
【0034】
図6(a)に示すデバイス鍵情報KdによりMKB処理を行う場合、先ず、図6(b)に示すように鍵管理情報MKBの情報k11[Km]を、デバイス鍵情報Kdの復号化情報k11で復号化する。復号結果が、予め設定された無効情報でなければ、同様に、図6(c)〜図6(e)に示すように復号化を行う。図6(c)〜図6(e)の処理にて全ての復号結果が、無効情報でなければ、メディア鍵情報Kmが生成される。なお、図5及び図6に示すデバイス鍵行列情報KdM及び鍵管理情報MKBは、簡略化のため3行4列で示したが、実際にSDカードの場合にあっては、16行16列である。
【0035】
図3A,及び図3Bに戻って、説明を続ける。ステップS102に続き、記録媒体16は、メディア識別子情報IDmをユーザ端末10に送信する(ステップS103)。図7は記録媒体がSDメモリカードの場合のメディア識別子情報の詳細である。SDメモリカードの場合、メディア識別子情報はMedia Identifierと呼ばれる8バイトの情報から成り、0バイト目は製造者を識別する情報、1バイトから2バイト目はSDメモリカードのOEM先を表し、3バイト目はカードのバージョンを表すProduct Revision情報、4バイト目から7バイト目はSDメモリカードの製品シリアル番号である。この例で示すように、メディア識別子情報より、記録媒体の製造者、製品バージョンの特定が可能である。
【0036】
ユーザ端末10は、メディア鍵情報Kmとメディア識別子情報IDmとを共にハッシュ処理し、メディア固有鍵情報Kmuを生成する(ステップS104)。つまり、メディア固有鍵情報Kmuはメディア鍵情報Kmをメディア識別子情報IDmにより暗号化した情報であり(Kmu=Enc(IDm:Km))、ステップS104において、メディア鍵情報Kmは、メディア識別子情報IDmにより暗号化され、メディア固有鍵情報Kmuが生成される。ステップS104にて、記録媒体16及びユーザ端末10は、メディア固有鍵情報Kmuを互いに共有することとなる。
【0037】
そして、ユーザ端末10は、ステップS104にて生成したメディア固有鍵情報Kmuに基づき、一方、記録媒体16は、秘匿領域164bに格納したメディア固有鍵情報Kmuに基づき、ユーザ端末10と記録媒体16との間で相互認証処理を行う。相互認証処理が成功したと判断すると、ユーザ端末10及び記録媒体16は、セッション鍵情報(共通鍵情報)Ks1を生成する(ステップS105)。
【0038】
以上により、記録媒体16とユーザ端末10との間の相互認証処理(第1相互認証処理)が終了し、ユーザ端末10と記録媒体16とは、セッション鍵情報Ks1により暗号通信を行うことが可能となる。ここで、暗号通信とは、送信側でセッション鍵情報Ks1により暗号化した情報を送信し、受信側で受信した情報をセッション鍵情報Ks1により復号化する通信処理を意味する。セッション鍵情報Ks1はプログラム情報Pの暗号化やプログラム管理情報の暗号化などに使用することができる。
【0039】
続いて、ユーザ端末10とサーバ20との間の相互認証処理(第2相互認証処理)に移行する。ユーザ端末10とサーバ20との相互認証処理は共通秘密鍵方式を用いるか、公開鍵方式を用いる。共通秘密鍵方式の場合は、ユーザ端末10とサーバ20との間で、共通秘密鍵情報Kcsを共有する。或いは公開鍵情報Kpbに対応する秘密鍵情報Kscを用いる。この場合の暗号化は公開鍵情報Kpbを用い、復号化は秘密鍵情報Kscを用いる以外は処理ステップに違いはない。以下、共通秘密鍵方式を用いたユーザ端末10とサーバ20との間の相互認証処理について説明する。
【0040】
ユーザ端末10とサーバ20は、予め共通秘密鍵情報Kcsを共有している。共通秘密鍵情報Kcsに基づき、サーバ20とユーザ端末10との間で相互認証を行う。相互認証処理が成功したと判断すると、サーバ20及びユーザ端末10は、セッション鍵情報Ksaを生成する(ステップS106)。
【0041】
続いて、サーバ20は、プログラムデータベース211よりプログラム情報Pを読み出し、セッション鍵情報Ksaで暗号化した暗号化プログラム情報Enc(Ksa:P)を、ユーザ端末10に送信する(ステップS107)。この他、サーバ20はユーザ端末10を介して、読み出された記憶媒体16のメディア識別子IDmを受信し、プログラム情報対メディア識別子情報データベース213に基づき、ユーザ端末10に接続された記憶媒体16に適合したプログラム情報Pを選択してセッション鍵情報Ksaで暗号化した暗号化プログラム情報Enc(Ksa:P)を、ユーザ端末10に送信する(ステップS107)こともできる。
【0042】
次に、ユーザ端末10は、暗号化プログラム情報Enc(Ksa:P)を受信し、その受信した暗号化プログラム情報Enc(Ksa:P)をセッション鍵情報Ksaにより復号化し、プログラム情報Pを生成する(ステップS108)。更に、ユーザ端末10は、生成したプログラム情報Pを記録媒体16とのセッション鍵情報Ks1で再び、暗号化プログラム情報Enc(Ks1:P)を生成し、記録媒体16に送信する(ステップS109)。
【0043】
続いて、記録媒体16は、暗号化プログラム情報Enc(Ks1:P)を受信し、その受信した暗号化プログラム情報Enc(Ks1:P)をセッション鍵情報Ks1で復号化して、プログラム情報Pをプログラムメモリ162に格納する(ステップS110)。
【0044】
なお、ステップS106からステップS108までの処理はステップS101からステップS105までの処理に先立って行い、その後、ステップS101からステップS109、ステップS110の順に行っても良い。
【0045】
記録媒体16に格納されたプログラム情報Pは、その情報の正当性をチェックするための情報を含む(例えば、Hash値)。例えば、Hash値が正当でなければ、プログラムメモリ162にプログラム情報Pを格納しない。正当性のチェックまた、プログラム情報Pは、記録媒体16のみで実行可能な情報である。また、プログラム情報Pは、処理機能を識別するための情報を含む。
【0046】
記録媒体16とサーバ20との間の相互認証処理(第2相互認証処理)以下のその他の実施例について図4A〜図4Cを用いて説明する。図4A〜図4CのステップS201からステップS205までの処理(第1相互認証処理)は、図3A、図3BのステップS101からステップS105の処理と同じである。
【0047】
ステップS205の後、記録媒体16は、鍵管理情報MKBをユーザ端末10に送信し(ステップS206)、ユーザ端末10はこれを受信し、そのままサーバ20に送信する(ステップS207)。
【0048】
次に、サーバ20は、鍵管理情報MKBをユーザ端末10より受信し、受信した鍵管理情報MKBをデバイス鍵情報KdによりMKB処理し、メディア鍵情報Kmを生成する(ステップS208)。
【0049】
ステップS208に続き、記録媒体16は、メディア識別子情報IDmをユーザ端末10に送信し(ステップS209)、ユーザ端末10はこれを受信し、そのままサーバ20に送信する(ステップS210)。
【0050】
次に、サーバ20は、メディア識別子情報IDmをユーザ端末10より受信し、メディア鍵情報Kmとメディア識別子情報IDmとを共にハッシュ処理し、メディア固有鍵情報Kmuを生成する(ステップS211)。ステップS211が完了すると、記録媒体16及びサーバ20は、メディア固有鍵情報Kmuを互いに共有することとなる。
【0051】
そして、サーバ20は、ステップS121にて生成したメディア固有鍵情報Kmuに基づき、一方、記録媒体16は、秘匿領域164bに格納したメディア固有鍵情報Kmuに基づき、サーバ20とユーザ端末10との間で相互認証を行う(ステップS212)。相互認証処理が成功すれば、サーバ20はユーザ端末10が正当な端末と認識する。
【0052】
以上により、ユーザ端末10とサーバ20との間の相互認証処理(第2相互認証処理)が終了し、サーバ20と記録媒体16とは、ユーザ端末10を介し全ての認証がなされたことになる。これにより、サーバ20からのプログラム情報Pは記録媒体16になりすましなく格納することができる。本実施例ではセッション鍵情報Ksによる暗号通信とは別の方法を説明する。
【0053】
次に、サーバ20に送信されたメディア識別子情報IDmを用い、サーバ20はユーザ鍵対メディア識別子対応データベース213に基づき、記録媒体16に対応するユーザ鍵情報Kuを割り出し(ステップS213)、そのユーザ鍵情報Kuによりプログラム鍵情報Kpを暗号化して、暗号化プログラム鍵情報Enc(Ku:Kp)をユーザ端末10へ送信する(ステップS214)。サーバ20とユーザ端末16で用いる通信はサッション鍵情報Ksに基づく暗号通信を用いても良いが、暗号化プログラム鍵情報Enc(Ku:Kp)は相互認証処理の確立した記録媒体16固有の情報になっているため、通信の途中で盗み取られても他の記録媒体には使うことができないため、暗号通信を用いなくても本質的にセキュアである。
【0054】
次に、ユーザ端末10は、暗号化プログラム鍵情報Enc(Ku:Kp)を受信し、そのまま、暗号化プログラム鍵情報Enc(Ku:Kp)を記録媒体16に送信する(ステップS215)。記録媒体16は、受信した暗号化プログラム鍵情報Enc(Ku:Kp)をユーザデータ領域164dに格納する(ステップS216)。
【0055】
続いて、サーバ20は、プログラムデータベース211よりプログラム情報Pを読み出して、対応するプログラム鍵情報Kpで暗号化した暗号化プログラム情報Enc(Kp:P)を、ユーザ端末10に送信する(ステップS217)。或いはプログラムデータベース211に既に暗号化プログラム情報Enc(Kp:P)が格納されている場合はこれを読み出し、ユーザ端末10に送信する。サーバ20とユーザ端末16で用いる通信はセッション鍵情報Ksに基づく暗号通信を用いても良いが、暗号化プログラム情報Enc(Ku:Kp)自体が既に暗号化された情報であるから、通信の途中で盗み取られても復号化できないので、暗号通信を用いなくても本質的にセキュアである。
【0056】
次に、ユーザ端末10は、受信した暗号化プログラム情報Enc(Kp:P)を受信し、そのまま暗号化プログラム情報Enc(Kp:P)を記録媒体16に送信する(ステップS218)。続いて、記録媒体16は、受信した暗号化プログラム情報Enc(Kp:P)をメモリセルアレイ164のユーザデータ領域164dに格納する(ステップS219)。
【0057】
続いて、暗号化プログラム情報Enc(Ku:P)を記憶媒体16のプログラムメモリ162へ展開する方法について述べる。ユーザ端末10と記録媒体16は前述のステップS201からステップS205までの第1認証処理が完了しているので、記録媒体16の保護領域164cへのアクセスが可能となっている。ユーザ端末10は記録媒体16に対し、暗号化ユーザ鍵情報Enc(Kmu:Ku)の読み出しを指令する。記録媒体16は、保護領域164cから暗号化ユーザ鍵情報Enc(Kmu:Ku)をセッション鍵Ks1で暗号化した情報をユーザ端末10に送信する(ステップS220)。
【0058】
続いて、ユーザ端末10は受信した暗号化ユーザ鍵情報Enc(Kmu:Ku)をセッション鍵Ks1で暗号化した情報をセッション鍵Ks1で復号化して、暗号化ユーザ鍵情報Enc(Kmu:Ku)を得て、更に、共有しているメディア固有鍵情報Kmuで、暗号化ユーザ鍵情報Enc(Kmu:Ku)を復号化して、ユーザ鍵情報Kuを生成する(ステップS221)。
【0059】
次に、ユーザ端末10は、記録媒体16に対し、暗号化プログラム鍵情報Enc(Ku:Kp)の読み出しを指令する。記録媒体16は、ユーザデータ領域164dから暗号化プログラム鍵情報Enc(Ku:Kp)をユーザ端末10に送信する(ステップS222)。
【0060】
ユーザ端末10は、受信した暗号化プログラム鍵情報Enc(Ku:Kp)をユーザ鍵情報Kuで復号化して、プログラム鍵情報Kpを生成する(ステップS223)。続いて、ユーザ端末10は、記録媒体16に対し、暗号化プログラム情報Enc(Kpu:P)の読み出しを指令する。記録媒体16はユーザデータ領域164dから暗号化プログラム情報Enc(Kp:P)をユーザ端末10に送信する(ステップS224)。
【0061】
ユーザ端末10は、受信した暗号化プログラム情報Enc(Kp:P)をプログラム鍵情報Kpで復号化して、プログラム情報Pを生成する(ステップS225)。
【0062】
ユーザ端末10は、復号化したプログラム情報Pを記録媒体16のプログラムメモリ162に書き込むコマンドを発行し、プログラム情報Pをセッション鍵Ks1で暗号化した暗号化プログラム情報Enc(Ks1:P)を記録媒体16に送信する(ステップS226)。
【0063】
記録媒体16は、受信した暗号化プログラム情報Enc(Ks1:P)をセッション鍵Ks1で復号化して、プログラムメモリ162に格納する(ステップS227)。
【0064】
記録媒体16に格納されたプログラム情報Pは、その情報の正当性をチェックするための情報を含む(例えば、Hash値)。また、プログラム情報Pは、記録媒体16のみで実行可能な情報である。また、プログラム情報Pは、処理機能を識別するための情報を含む。
【0065】
以上説明した実施例は、ユーザデータ領域164cに暗号化プログラム鍵情報Enc(Ku:Kp)と暗号化プログラム情報Enc(Kp:P)が格納され、ステップS101(ステップS201)からステップS105(ステップS205)までの第1相互認証処理が完了すれば、いつでもプログラム情報Pをプログラムメモリ162に格納することができる。プログラムメモリ162において基本プログラム以外の領域がRAMで構成される場合、プログラム情報Pを毎回格納する必要があるが、そうした場合、サーバ20との通信を必要としないことに利点がある。またプログラム情報Pの一部Piのみを選択して、プログラムメモリ162に格納することもできる。
【0066】
次に、図7を参照して、図3に示したステップS105における相互認証処理の説明をする。ステップS105における相互認証処理は、いわゆるAKE(Authentication and Key Exchange)と呼ばれる処理である。先ず、相互認証処理において、ユーザ端末10は、第1乱数情報Ra1を送信するように要求する情報を記録媒体16に送信する(ステップS301)。
【0067】
続いて、記録媒体16は、第1乱数情報Ra1を生成し(ステップS302)、第1乱数情報Ra1をユーザ端末10に送信する(ステップS303)。
【0068】
次に、ユーザ端末10は、第1乱数情報Ra1を受信し(ステップS304)、第2乱数情報Ra2を生成し(ステップS305)、その第2乱数情報Ra2を記録媒体16に送信する(ステップS306)。
【0069】
続いて、記録媒体16は、第2乱数情報Ra2を受信し(ステップS307)、第2乱数情報Ra2を受信した旨を通知する第2乱数情報受信完了通知情報をユーザ端末10に送信する(ステップS308)。
【0070】
次に、ユーザ端末10は、第2応答情報Re2を送信するように要求する情報を記録媒体16に送信する(ステップS309)。
【0071】
続いて、記録媒体16は、第2乱数情報Ra2をメディア固有鍵情報Kmuにより暗号化した情報Enc(Kmu:Ra2)を第2応答情報Re2としてユーザ端末10に送信する(ステップS310)。
【0072】
次に、ユーザ端末10は、ユーザ端末10にて生成(図3、ステップS104)したメディア固有鍵情報Kmuにより、第2応答情報Re2(情報Enc(Kmu:Ra2))を復号化する(ステップS311)。そして、ユーザ端末10は、その復号結果が第2乱数情報Ra2と等しいか否かを判断する(ステップS312)。ここで、ユーザ端末10は、復号結果が第2乱数情報Ra2と等しくないと判断すると(ステップS312、N)、相互認証は失敗であると判断し、相互認証処理を終了する。一方、ユーザ端末10は、復号結果が第2乱数情報Ra2と等しいと判断すると(ステップS312、Y)、引き続き次の処理に移る。ユーザ端末10は、第1乱数情報Ra1をメディア固有鍵情報Kmuで暗号化した情報Enc(Kmu:Ra1)を第1応答情報Re1として記録媒体16に送信する(ステップS313)。
【0073】
続いて、記録媒体16は、秘匿領域164bに格納したメディア固有鍵情報Kmuにより、第1応答情報Re1(情報Enc(Kmu:Ra1))を復号化する(ステップS314)。そして、ユーザ端末10は、その復号結果が第1乱数情報Ra1と等しいか否かを判断する(ステップS315)。ここで、記録媒体16は、復号結果が第1乱数情報Ra1と等しくないと判断すると(ステップS315、N)、相互認証は失敗であると判断し、相互認証処理を終了する。一方、記録媒体16は、復号結果が第1乱数情報Ra1と等しいと判断すると(ステップS315、Y)、引き続き次の処理に移る。記録媒体16は、相互認証処理に成功した旨を通知する相互認証結果情報をユーザ端末10に送信する(ステップS316)。そして、記録媒体16は、セッション鍵情報Ksを生成する(ステップS317)。
【0074】
一方、ユーザ端末10は、相互認証結果情報を受信し(ステップS318)、セッション鍵情報Ksを生成する(ステップS319)。セッション鍵情報Ksは、第1乱数情報Ra1と第2乱数情報Ra2とメディア固有鍵情報Kmuを元に予め定められた方法に基づいて生成する。その他、セッション鍵情報Ksは、第1乱数情報Ra1とメディア固有鍵情報Kmuを元に生成しても良く、或いは第2乱数情報Ra2とメディア固有鍵情報Kmuを元に生成してもよい。なお、図3のステップS110における相互認証処理は、図6に示したステップS201〜ステップS219と同様の処理が、ユーザ端末10を介して、記録媒体16とサーバ20との間で行われる。即ち、先ず、記録媒体16とサーバ20との間で、第1乱数情報Ra1及び第2乱数情報Ra2を共有する。次に、その第1乱数情報Ra1或いは第2乱数情報Ra2をメディア固有鍵情報Kmuで暗号化し、その暗号化した応答情報を記録媒体16とサーバ20との間で送受信する。そして、応答情報をメディア固有鍵情報Kmuにより復号化した結果が、第1乱数情報Ra1及び第2乱数情報Ra2と等しければ、相互認証が成功したと判断され、セッション鍵情報が生成される。
【0075】
上記のように本発明の第1実施形態によるプログラム情報提供システムによれば、記録媒体16は、ユーザ端末10と相互認証処理をした後、更にサーバ20と相互認証処理を行い、相互認証処理が成功したと判断すると、追加プログラム情報を記録媒体16に送信し、記録媒体16のプログラムメモリ162に暗号化して格納することができる。したがって、本発明の第1実施形態によるプログラム情報提供システムは、なりすまし、改ざん等を防止しつつ、機能を追加・更新するプログラム情報を記録媒体16にセキュアに格納できる。
【0076】
[第2実施形態]
次に、図9を参照して、本発明の第2実施形態に係るプログラム情報提供システムについて説明する。図9は、第2実施形態に係るプログラム情報提供システムの概略図である。なお、第2実施形態において、第1実施形態と同様の構成には、同一符号を付し、その説明を省略する。
【0077】
図9に示すように、第2実施形態に係るプログラム情報提供システムは、第1実施形態と比較して、記録媒体16’の構成が異なる。
【0078】
記録媒体16’は、プログラムメモリ162に代わって、実行用プログラムメモリ162’を備えている。また、記録媒体16’は、メモリセルアレイ164’の保護領域164c’に暗号化ユーザ鍵Enc(Kmu:Ku)、暗号化プログラム鍵情報Enc(Ku:Kp)等を格納する領域に加え、暗号化プログラム情報Enc(Kp:P)を格納するプログラム格納領域164ca’を有する。
【0079】
実行用プログラムメモリ162’は、SRAM等の揮発性メモリにより構成されている。実行用プログラムメモリ162’は、基本プログラム162aをメモリセルアレイ164’から読み出し、一時的にその基本プログラム162aを格納する。或いは、プロセッサ161からの要求に応じて、プログラム格納領域164ca’から復号化後のプログラム情報Pを読み出し、一時的にそのプログラム情報Pを格納する。
【0080】
プログラム格納領域164ca’には、必要に応じてサーバ20からメモリコントローラ163を介して受信したプログラム情報Pが格納される。
【0081】
記録媒体16’とユーザ端末10及びサーバ20との間で相互認証処理に成功した場合、記録媒体16’においてプロセッサ161は、受信したプログラム情報Pを、メモリコントローラ163を介してプログラム格納領域164ca’に暗号化後、格納する。
【0082】
上記のような第2実施形態に係るプログラム情報提供システムによれば、第1実施形態と同様の効果を奏することができる。また、第2実施形態にかかる記録媒体16’は、第1実施形態のNOR型EEPROMにより構成されたプログラムメモリ162に代わって、SRAM等の揮発性メモリを有する実行用プログラムメモリ162’を備えている。したがって、第2実施形態に係る記録媒体16’は、第1実施形態の記録媒体16と比較して安価に製造することが可能である。
【0083】
[第3実施形態]
次に、図10を参照して、本発明の第3実施形態に係るプログラム情報提供システムについて説明する。図10は、第3実施形態に係るプログラム情報提供システムの概略図である。なお、第3実施形態において、第1及び第2実施形態と同様の構成には、同一符号を付し、その説明を省略する。
【0084】
図10に示すように、第3実施形態に係るプログラム情報提供システムは、第2実施形態と比較して、記録媒体16’’の構成が異なる。
【0085】
第3実施形態は、記録媒体16’’において、システム領域164a’’、及び保護領域164c’’の構成が第2実施形態と異なる。
【0086】
システム領域164a’’には、鍵管理情報MKB及びメディア識別子情報IDm、区画管理テーブルT1が記憶されている。ここで、区画管理テーブルT1は、保護領域164c’’において、サーバ20から受信したプログラム情報Pを格納するプログラム情報格納区画164cb’’をプログラム格納領域164ca’’に設定する情報を含む。
【0087】
保護領域164c’’は、暗号化ユーザ鍵情報Enc(Kmu:Ku)を格納する。また、保護領域164c’’には、プログラム格納領域164ca’’が設けられている。また、プログラム格納領域164ca’は、サーバ20より受信したプログラム情報Pを暗号化した後に、格納する複数のプロクラム情報格納区画164cb’’を有している。メモリセルアレイ164’’がNAND型EEPROMであれば、アクセス単位が512バイト、1024バイトなどが一般的であり、それに対応するようにプログラム情報格納区画164cb’’は、4096バイト等に設定される。上記構成は、例えば、2つのプログラム情報を記録媒体16’’に格納する場合、一方のプログラム情報を第1プログラム情報格納区画に格納し、他方のプログラム情報を第2のプログラム情報格納区画に格納するものである。
【0088】
記録媒体16’’とユーザ端末10及びサーバ20との間で相互認証処理に成功した場合、記録媒体16’’においてプロセッサ161は、システム領域164a’’から区画管理テーブルT1を読み出し、その区画管理テーブルT1に基づき、受信したプログラム情報Pを格納するプログラム情報格納区画164cb’’をメモリコントローラ163に通知する。メモリコントローラ163は、受信したプログラム情報Pを暗号化した後、通知されたプログラム情報格納区画164cb’’に格納するアドレスを指定する。
【0089】
上記第3実施形態に係るプログラム情報提供システムによれば、第2実施形態と同様の効果を得ることができる。
【0090】
以上、発明の一実施形態を説明したが、本発明はこれらに限定されるものではなく、発明の趣旨を逸脱しない範囲内において種々の変更、追加、置換等が可能である。上記一実施形態においては、一台のサーバ20にて、プログラム鍵情報Kp、暗号化プログラム情報Enc(Kp:P)、ユーザ鍵情報Kuをまとめて管理しているが、複数のサーバが、プログラム鍵情報Kp、暗号化プログラム情報Enc(Kp:P)、ユーザ鍵情報Kuを別々に管理する構成であってもよい。
【図面の簡単な説明】
【0091】
【図1】本発明の第1実施形態に係るプログラム情報提供システムの概略図である。
【図2】本発明の第1実施形態に係るプログラム情報提供システムの動作の概要を示す図である。
【図3A】本発明の第1実施形態に係るプログラム情報提供システムの動作を示すフローチャートである。
【図3B】本発明の第1実施形態に係るプログラム情報提供システムの動作を示すフローチャートである。
【図4A】本発明の第1実施形態に係るプログラム情報提供システムの動作を示すフローチャートである。
【図4B】本発明の第1実施形態に係るプログラム情報提供システムの動作を示すフローチャートである。
【図4C】本発明の第1実施形態に係るプログラム情報提供システムの動作を示すフローチャートである。
【図5】鍵管理情報MKBの説明図である。
【図6】図3のステップS102のMKB処理の説明図である。
【図7】メディア識別子情報IDmの説明図である。
【図8】図3のステップS105の相互認証処理を示すフローチャートである。
【図9】本発明の第2実施形態に係るプログラム情報提供システムの概略図である。
【図10】本発明の第3実施形態に係るプログラム情報提供システムの概略図である。
【符号の説明】
【0092】
10…ユーザ端末、11…表示制御部、12…I/O、13…RAM、14…制御部、141…基本プログラム、15…記憶部、16、16’、16’’…記録媒体、160…外部インタフェイス、161…プロセッサ、162…プログラムメモリ、162’ …実行用プログラムメモリ、163…メモリコントローラ、164、164’、164’’…メモリセルアレイ、20…サーバ、21…記憶部、211…プログラムデータベース、212…アクセス鍵データベース、213…プログラム情報対メディア識別子対応データベース、214…プログラム鍵データベース、215…ユーザ鍵対メディア識別子情報対応データベース、22…制御部、221…基本プログラム、30…ネットワーク。
【技術分野】
【0001】
本発明は、サーバから記録媒体にプログラム情報を提供するプログラム情報提供システム、プログラム情報提供方法、及びそのプログラム情報提供方法に用いられる記録媒体に関する。
【背景技術】
【0002】
近年、インターネット等の通信ネットワークに接続された通信端末により電子化したコンテンツ情報をダウンロードして、閲覧することが可能となっている。
【0003】
但し、コンテンツ情報は、容易に複製可能なため、著作権を無視する違法行為が生じ易い。このような違法行為からコンテンツ情報を保護する観点から、コンテンツ情報は、通常、暗号化鍵により、暗号化されて記録され、再生時に復号化される。この種のコンテンツ保護技術には、CPRM(Content Protection for Prerecorded Media)があり、例えばSDオーディオ(SD-Audio)、SDビデオ(SD-Video)、SDイー・パブリッシュ(SD-ePublish:SD電子出版)のように規格化された暗号化鍵方式を用いている(例えば、非特許文献1参照)。この非特許文献1で採用されている暗号化鍵方式は、タイトル鍵をメディア固有鍵で一重に暗号化する暗号化一重鍵方式である。一方、コンテンツ鍵がユーザ鍵及びメディア固有鍵で二重に暗号化された暗号化二重鍵方式が考えられている(例えば、特許文献1参照)。この種の暗号化二重鍵方式は、例えばMQbic(登録商標)に用いられている。
【0004】
つまり、上記のような暗号化によって、記録媒体をSRM(Secure Removable Media)として様々なDRM(Digital Rights Management)で利用しようという動きがある。ここで、記録媒体は、例えばSDカード等である。
【0005】
しかしながら、それぞれのDRMが記録媒体をSRMとして利用しようとしたとき、記録媒体に予め備えられた機能だけでは不足する場合がある。そこで、それぞれのDRMが要求する機能(プログラム情報)の追加、又は更新を可能とする記録媒体が望まれている。なお、記録媒体には、追加された機能を実行する環境が必要となる。
【0006】
しかし、記録媒体が、上記のような追加・更新機能(プログラム情報)をセキュアに受け入れることができなければ、次のような問題が生じる。すなわち、こうした機能の追加・更新が、正規のユーザになりすました不正なユーザの記録媒体に対して行われることが起こり得る(なりすまし)。そして、記録媒体のなりすましが行われると、正規の記録媒体は、不正なユーザにより行われたプログラム機能解析などを通じて、悪意を持った機能(プログラム情報)を追加されたり、データを改ざんされたり等の攻撃を受ける可能性が生じる。つまり、記録媒体が、セキュリティホールを自ら造り出す可能性がある。
【非特許文献1】4C エンティティ、LLC、[online]、インターネット<URL:http://www.4Centity.com/、平成18年2月13日検索>
【特許文献1】特開2007−13780号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
本発明は、なりすまし、改ざん等を防止しつつプログラム情報を記録媒体にセキュアに追加・更新可能なプログラム情報提供システム、プログラム情報提供方法、及びプログラム情報提供方法に用いられる記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の一態様に係るプログラム情報提供システムは、ユーザによって管理されるユーザ端末と、当該ユーザ端末の発行するコマンドを介して情報を読み出し及び書き込み可能な記録媒体と、前記ユーザ端末にネットワークを介して接続されたサーバとを有し、当該サーバから前記記録媒体にプログラム情報を提供するプログラム情報提供システムであって、前記記録媒体は、プログラム情報を書き込み可能な第1記憶部と、前記ユーザ端末と第1相互認証処理を行い、当該第1相互認証処理に成功した場合のみ、プログラム情報を前記第1記憶部に書き込むコマンドを実行することができる第1制御部を有し、前記ユーザ端末は、前記サーバと第2相互認証処理を行い、当該第2相互認証処理に成功した場合、前記サーバから送信されたプログラム情報を得て、プログラム情報を前記記録媒体の第1記憶部に書き込むコマンドを発行することを特徴とする。
【0009】
また、本発明の一態様に係るプログラム情報提供方法は、ユーザによって管理されるユーザ端末と、当該ユーザ端末の発行するコマンドを介して情報を読み出し及び書き込み可能な記録媒体と、前記ユーザ端末にネットワークを介して接続されたサーバとを有し、当該サーバから前記記録媒体にプログラム情報を提供するプログラム情報提供方法であって、前記記録媒体と前記ユーザ端末とに第1の相互認証処理を行わせる第1相互認証ステップと、当該第1相互認証ステップにて前記第1の相互認証処理に成功した場合、プログラム情報を前記第1記憶部に書き込むコマンドを実行するステップと、前記ユーザ端末を介して前記記録媒体と前記サーバとに第2の相互認証処理を行わせる第2相互認証ステップと、当該第2相互認証ステップにて前記第2の相互認証処理に成功した場合、前記サーバから送信されたプログラム情報を得るステップと、プログラム情報を前記記録媒体の第1記憶部に書き込むコマンドを発行するステップとを備えることを特徴とする。
【0010】
また、本発明の一態様に係る記録媒体は、プログラム情報を書き込み可能な第1記憶部と、ユーザによって管理されるユーザ端末と第1相互認証処理を行い、当該第1相互認証処理に成功した場合のみ、前記ユーザ端末を介して、前記ユーザ端末にネットワークを介して接続されたサーバと第2相互認証処理を行い、当該第2相互認証処理に成功した場合のみ、前記サーバから送信されたプログラム情報を前記第1記憶部に書き込む第1制御部とを備えることを特徴とする。
【発明の効果】
【0011】
本発明によれば、なりすまし、改ざん等を防止しつつプログラム情報を記録媒体にセキュアに追加・更新可能なプログラム情報提供システム、プログラム情報提供方法、及びプログラム情報提供方法に用いられる記録媒体を提供することができる。
【発明を実施するための最良の形態】
【0012】
以下、図面を参照して、本発明の一実施形態に係るプログラム情報提供システムを説明する。本明細書においては、例えば、情報Aにより暗号化された情報BをEnc(A:B)と表す。なお、以下詳細に説明するが、本発明の一実施形態に係るプログラム情報提供システムは、暗号化二重鍵方式を用いたものも含まれる。つまり、後述するプログラムPが、プログラム鍵情報Kp及びユーザ鍵情報Kuで二重に暗号化された方式である。
【0013】
[第1実施形態]
図1は、本発明の第1実施形態に係るプログラム情報提供システムの概略図である。図1に示すように、プログラム情報提供システムは、ユーザ端末10、記録媒体16、及びサーバ20を含む。ユーザ端末10は、インターネット等のネットワーク30を介してサーバ20と接続されている。このプログラム情報提供システムは、記録媒体16が、ユーザ端末10と、サーバ20との間で相互認証を行う点に特徴を有している。
【0014】
図2(a)に示すように、記録媒体16が、ユーザ端末10と相互認証処理を行う(第1相互認証処理)一方、ユーザ端末10がサーバ20と相互認証処理を行う(第2相互認証処理)から成り立つ。この結果、本実施形態のプログラム情報提供システムでは、記録媒体16が、ユーザ端末10と、サーバ20との間での相互認証を確立される。また、第1相互認証処理と第2相互認証処理の順序は、第1相互認証処理が先である必要はなく、逆に第2相互認証処理を先行させて、ユーザ端末10がサーバ20より、プログラム情報を受信して、これを一旦、ユーザ端末10の記憶部15に格納した後、第1相互認証処理を行い、記録媒体16にサーバ20から送信されたプログラム情報を格納させる順序でも良い。
【0015】
なお、図1においては、ユーザ端末10及びサーバ20は、各々一台ずつ配置した構成を記載しているが、本発明は、この構成に限定されるものではない。例えば、ユーザ端末10及びサーバ20を、それぞれ複数配置してもよい。また、ユーザ端末10は、パソコン以外に携帯電話等であってもよく、ユーザ個人所有のものに限らず、インターネットカフェ、コンビニエンスストア、ガソリンスタンド等に配置され公衆間で共用される端末であってもよい。
【0016】
ユーザ端末10は、表示制御部11、入出力(I/O)部12、RAM13、CPU等の制御部14、及びHDD(Hard Disc Drive)等の記憶部15から構成されている。なお、ユーザ端末10は、記録媒体16に情報を書き込み、そして記録媒体16から情報を読み出し可能に構成されている。
【0017】
制御部14は、記憶部15に格納されたプログラム情報に基づきプログラムを実行するものである。制御部14は、例えば記憶部15から基本プログラム141を読み出し、実行する。基本プログラム141は、記録媒体16との間で、相互認証、鍵交換及び暗号通信を行なうものであり、暗号/復号化機能をもっている。記憶部15は、装置(ユーザ端末)毎に第1相互認証処理に必要なデバイス鍵情報Kd1を格納している。また、サーバ20との第2相互認証に必要な共通秘密鍵情報Kcs、公開鍵情報Kpb、及び公開鍵情報Kpbと対になる秘密鍵情報Kscなどが格納されることもある。
【0018】
記録媒体16は、プロセッサ(制御部)161、プログラムメモリ162、メモリコントローラ163、及びメモリセルアレイ(記憶部)164から構成されている。
【0019】
プロセッサ161は、メモリセルアレイ164に格納されたコンテンツ情報等を読み出す、或いは、プログラムメモリ162に格納されたプログラム情報を読み出し、そのプログラム情報に基づきプログラムを実行するものである。プログラムメモリ162は、例えば、ランダムアクセス可能なNOR型のEEPROMであり、プログラム情報を格納しプロセッサ161からのコマンドに応じて、プログラム情報を読み出すものである。
【0020】
プログラムメモリ162には、記録媒体16の基本的な動作全般を制御する基本プログラム162a等が予め格納されている。基本プログラム162aは、記録媒体16の外部と相互認証、鍵交換及び暗号通信を行なうものであり、暗号/復号化機能をもっている。この基本プログラム162aは、プロセッサ161により実行される。プログラムメモリ162には、必要に応じてダウンロードされる各種プログラム情報Pが格納される。プログラム情報Pは、複数の情報(P1、P2、・・・、Pm)に分割され、以下では、適宜複数の情報(P1、P2、・・・、Pm)をまとめて「プログラム情報P」と称する。その他の例として、この基本プログラム162aのみをプログラムメモリ162に格納し、ダウンロードしたプログラム情報Pはメモリセルアレイ164に格納されるようにしてもよい。そして、ユーザ端末10に記録媒体16が装着されたときに、プログラムメモリ162に都度、そのプログラム情報Pを転送・格納しても良い。この他、ユーザデータ領域164dには、必要に応じてダウンロードされる各種プログラム情報Pが暗号鍵情報(プログラム鍵情報Kp)で暗号化されて格納される(Enc(Kp:P))。プログラム情報Pは、複数の情報(P1、P2、・・・、Pm)に分割され、それぞれが別のプログラム鍵(Kp1、Kp2、・・・、Kpn)で暗号化される。以下では、複数のプログラム鍵(Kp1、Kp2、・・・、Kpn)をまとめて「プログラム鍵情報Kp」と称する。
【0021】
メモリコントローラ163は、プロセッサ161からの命令に従い、メモリセルアレイ164に対する書込み/読み出し/消去等の制御を行う。例えば、メモリコントローラ163は、プロセッサ161より送られてくる書込み命令及びデータを読み取って、そのデータを書き込むべきメモリセルアレイ164のアドレスを決定するものである。メモリコントローラ163は、外部インタフェイス160を介して、プロセッサ161からのアクセスが後述するメモリセルアレイ164の保護領域164cのアクセスであるか否かを監視し、保護領域164c外のアクセスである場合は、そのアクセスを禁止する。この場合、例えば、コマンド実行結果は、領域外アクセスエラーとなる。つまり、メモリコントローラ163は、メモリセルアレイ164を複数の領域に用途毎に分割して管理を行う。
【0022】
メモリセルアレイ164は、例えば、NAND型のEEPROMであり、プログラム情報及びその他の情報を格納するものである。メモリセルアレイ164は、上述したように、複数の領域に用途毎に分割されている。分割された複数の領域は、システム領域(System Area)164a、秘匿領域(Hidden Area)164b、保護領域(Protected Area)164c、ユーザデータ領域(User Data Area)164dを含む。
【0023】
システム領域164aは、読取専用で記録媒体16の外部からアクセス可能な領域である。秘匿領域164bは、読取専用で記録媒体16が参照する領域であり、外部からのアクセスが一切不可となっている。保護領域164cは、相互認証処理に成功した場合に記録媒体16の外部から読出/書込可能な領域である。ユーザデータ領域164dは、記録媒体16の外部から自由に読出/書込可能な領域である。
【0024】
具体的に、システム領域164aには鍵管理情報MKB(Media Key Block)及びメディア識別子情報IDmが記憶されている。
【0025】
また、秘匿領域164bにはメディア固有鍵情報Kmuが記憶され、保護領域164cには暗号化ユーザ鍵Enc(Kmu:Ku)が記憶され、ユーザデータ領域164dにはコンテンツ情報等の各種情報がユーザ鍵Ku、コンテンツ鍵データ等により二重に暗号化され格納されている。ここで、ユーザ鍵情報Kuは、プログラム鍵情報Kpに対する暗号/復号化鍵として用いられ、複数個の暗号化プログラム鍵情報Enc(Ku:Kp1)、Enc(Ku:Kp2)、…に対しても、共通に使用され得る。
【0026】
サーバ20は、HDD等により構成された記憶部21、CPU等により構成された制御部22を含む。
【0027】
記憶部21は、プログラムデータベース211、アクセス鍵データベース212、プログラム情報対メディア識別子情報対応データベース213、プログラム鍵データベース214、及びユーザ鍵対メディア識別子情報対応データベース215を備える。プログラムデータベース211は、プログラム情報Pを格納している。アクセス鍵データベース212は、ユーザ端末10或いは記録媒体16をサーバ20がアクセスするためのアクセス鍵情報が格納される。アクセス鍵情報としてはデバイス鍵情報Kd、共通秘密鍵情報Kcs、公開鍵情報Kpb、その公開鍵情報Kpbと対になる秘密鍵情報Kscなどが格納される。プログラム情報対メディア識別子情報対応データベース213は、記録媒体の製造者、及びバージョンの違いにより対応するプログラム情報Pが異なる場合、適合するプログラム情報Pをサーバ20で選択させるための情報を格納している。サーバ20は記録媒体16のメディア識別子情報IDmに基づいて、プログラム情報対メディア識別子情報対応データベース213を参照して適合するプログラム情報を選択する。プログラム鍵データベース214は、プログラム鍵情報Kpを格納している。ユーザ鍵対メディア識別子情報対応データベース215は、メディア識別子情報IDmに対応したユーザ鍵情報Kuを格納している。実施例の変形として、プログラムデータベース211にプログラム情報Pをプログラム鍵情報Kpにより暗号化した暗号化プログラム情報Enc(Kp:P)を格納しても良い。
【0028】
制御部22は、基本プログラム221を実行するものである。基本プログラム221は、ユーザ端末10を介して、記録媒体16と相互認証、鍵交換及び暗号通信を行なうものであり、暗号/復号化機能を有している。
【0029】
次に、図3A及び図3Bを参照して、本発明の第1実施形態に係るプログラム情報提供システムの動作を説明する。
【0030】
図3Aに示すように、先ず、記録媒体16は、鍵管理情報MKBをユーザ端末10に送信する(ステップS101)。
【0031】
次に、ユーザ端末10は、受信した鍵管理情報MKBをデバイス鍵情報Kd1によりMKB処理し、メディア鍵情報Kmを生成する(ステップS102)。
【0032】
ここで、図5及び図6を参照して、ステップS102のMKB処理について説明する。図5に示すように、鍵管理情報MKBは、メディア鍵情報Kmをデバイス鍵行列情報KdMにより暗号化した情報である。デバイス鍵行列情報KdMは、行列要素、及びその行列要素に対応する複数の暗号化情報k11〜k34を有する情報である。
【0033】
そして、鍵管理情報MKBは、図6に示すようにデバイス鍵情報Kdにより復号化され、この復号の結果、メディア鍵情報Kmが生成される。デバイス鍵情報Kdは、行列要素の中から複数の暗号化情報を選択するベクトル情報、そのベクトル情報に対応して暗号化情報を復号化する復号化情報を有する情報である。例えば、図6(a)に示すように、デバイス鍵情報Kdは、ベクトル情報として、1行1列目、1行2列目、3行3列目、2行4列目という情報を有している。このベクトル情報に対応して、デバイス鍵情報Kdは、復号化情報k11、k12、k33、k24を有している。符号で表すと、Kd=(1,1,3,2)(k11,k12,k33,k24)となる。なお、上述したようにデバイス鍵情報Kdは、各装置によって異なる情報である。
【0034】
図6(a)に示すデバイス鍵情報KdによりMKB処理を行う場合、先ず、図6(b)に示すように鍵管理情報MKBの情報k11[Km]を、デバイス鍵情報Kdの復号化情報k11で復号化する。復号結果が、予め設定された無効情報でなければ、同様に、図6(c)〜図6(e)に示すように復号化を行う。図6(c)〜図6(e)の処理にて全ての復号結果が、無効情報でなければ、メディア鍵情報Kmが生成される。なお、図5及び図6に示すデバイス鍵行列情報KdM及び鍵管理情報MKBは、簡略化のため3行4列で示したが、実際にSDカードの場合にあっては、16行16列である。
【0035】
図3A,及び図3Bに戻って、説明を続ける。ステップS102に続き、記録媒体16は、メディア識別子情報IDmをユーザ端末10に送信する(ステップS103)。図7は記録媒体がSDメモリカードの場合のメディア識別子情報の詳細である。SDメモリカードの場合、メディア識別子情報はMedia Identifierと呼ばれる8バイトの情報から成り、0バイト目は製造者を識別する情報、1バイトから2バイト目はSDメモリカードのOEM先を表し、3バイト目はカードのバージョンを表すProduct Revision情報、4バイト目から7バイト目はSDメモリカードの製品シリアル番号である。この例で示すように、メディア識別子情報より、記録媒体の製造者、製品バージョンの特定が可能である。
【0036】
ユーザ端末10は、メディア鍵情報Kmとメディア識別子情報IDmとを共にハッシュ処理し、メディア固有鍵情報Kmuを生成する(ステップS104)。つまり、メディア固有鍵情報Kmuはメディア鍵情報Kmをメディア識別子情報IDmにより暗号化した情報であり(Kmu=Enc(IDm:Km))、ステップS104において、メディア鍵情報Kmは、メディア識別子情報IDmにより暗号化され、メディア固有鍵情報Kmuが生成される。ステップS104にて、記録媒体16及びユーザ端末10は、メディア固有鍵情報Kmuを互いに共有することとなる。
【0037】
そして、ユーザ端末10は、ステップS104にて生成したメディア固有鍵情報Kmuに基づき、一方、記録媒体16は、秘匿領域164bに格納したメディア固有鍵情報Kmuに基づき、ユーザ端末10と記録媒体16との間で相互認証処理を行う。相互認証処理が成功したと判断すると、ユーザ端末10及び記録媒体16は、セッション鍵情報(共通鍵情報)Ks1を生成する(ステップS105)。
【0038】
以上により、記録媒体16とユーザ端末10との間の相互認証処理(第1相互認証処理)が終了し、ユーザ端末10と記録媒体16とは、セッション鍵情報Ks1により暗号通信を行うことが可能となる。ここで、暗号通信とは、送信側でセッション鍵情報Ks1により暗号化した情報を送信し、受信側で受信した情報をセッション鍵情報Ks1により復号化する通信処理を意味する。セッション鍵情報Ks1はプログラム情報Pの暗号化やプログラム管理情報の暗号化などに使用することができる。
【0039】
続いて、ユーザ端末10とサーバ20との間の相互認証処理(第2相互認証処理)に移行する。ユーザ端末10とサーバ20との相互認証処理は共通秘密鍵方式を用いるか、公開鍵方式を用いる。共通秘密鍵方式の場合は、ユーザ端末10とサーバ20との間で、共通秘密鍵情報Kcsを共有する。或いは公開鍵情報Kpbに対応する秘密鍵情報Kscを用いる。この場合の暗号化は公開鍵情報Kpbを用い、復号化は秘密鍵情報Kscを用いる以外は処理ステップに違いはない。以下、共通秘密鍵方式を用いたユーザ端末10とサーバ20との間の相互認証処理について説明する。
【0040】
ユーザ端末10とサーバ20は、予め共通秘密鍵情報Kcsを共有している。共通秘密鍵情報Kcsに基づき、サーバ20とユーザ端末10との間で相互認証を行う。相互認証処理が成功したと判断すると、サーバ20及びユーザ端末10は、セッション鍵情報Ksaを生成する(ステップS106)。
【0041】
続いて、サーバ20は、プログラムデータベース211よりプログラム情報Pを読み出し、セッション鍵情報Ksaで暗号化した暗号化プログラム情報Enc(Ksa:P)を、ユーザ端末10に送信する(ステップS107)。この他、サーバ20はユーザ端末10を介して、読み出された記憶媒体16のメディア識別子IDmを受信し、プログラム情報対メディア識別子情報データベース213に基づき、ユーザ端末10に接続された記憶媒体16に適合したプログラム情報Pを選択してセッション鍵情報Ksaで暗号化した暗号化プログラム情報Enc(Ksa:P)を、ユーザ端末10に送信する(ステップS107)こともできる。
【0042】
次に、ユーザ端末10は、暗号化プログラム情報Enc(Ksa:P)を受信し、その受信した暗号化プログラム情報Enc(Ksa:P)をセッション鍵情報Ksaにより復号化し、プログラム情報Pを生成する(ステップS108)。更に、ユーザ端末10は、生成したプログラム情報Pを記録媒体16とのセッション鍵情報Ks1で再び、暗号化プログラム情報Enc(Ks1:P)を生成し、記録媒体16に送信する(ステップS109)。
【0043】
続いて、記録媒体16は、暗号化プログラム情報Enc(Ks1:P)を受信し、その受信した暗号化プログラム情報Enc(Ks1:P)をセッション鍵情報Ks1で復号化して、プログラム情報Pをプログラムメモリ162に格納する(ステップS110)。
【0044】
なお、ステップS106からステップS108までの処理はステップS101からステップS105までの処理に先立って行い、その後、ステップS101からステップS109、ステップS110の順に行っても良い。
【0045】
記録媒体16に格納されたプログラム情報Pは、その情報の正当性をチェックするための情報を含む(例えば、Hash値)。例えば、Hash値が正当でなければ、プログラムメモリ162にプログラム情報Pを格納しない。正当性のチェックまた、プログラム情報Pは、記録媒体16のみで実行可能な情報である。また、プログラム情報Pは、処理機能を識別するための情報を含む。
【0046】
記録媒体16とサーバ20との間の相互認証処理(第2相互認証処理)以下のその他の実施例について図4A〜図4Cを用いて説明する。図4A〜図4CのステップS201からステップS205までの処理(第1相互認証処理)は、図3A、図3BのステップS101からステップS105の処理と同じである。
【0047】
ステップS205の後、記録媒体16は、鍵管理情報MKBをユーザ端末10に送信し(ステップS206)、ユーザ端末10はこれを受信し、そのままサーバ20に送信する(ステップS207)。
【0048】
次に、サーバ20は、鍵管理情報MKBをユーザ端末10より受信し、受信した鍵管理情報MKBをデバイス鍵情報KdによりMKB処理し、メディア鍵情報Kmを生成する(ステップS208)。
【0049】
ステップS208に続き、記録媒体16は、メディア識別子情報IDmをユーザ端末10に送信し(ステップS209)、ユーザ端末10はこれを受信し、そのままサーバ20に送信する(ステップS210)。
【0050】
次に、サーバ20は、メディア識別子情報IDmをユーザ端末10より受信し、メディア鍵情報Kmとメディア識別子情報IDmとを共にハッシュ処理し、メディア固有鍵情報Kmuを生成する(ステップS211)。ステップS211が完了すると、記録媒体16及びサーバ20は、メディア固有鍵情報Kmuを互いに共有することとなる。
【0051】
そして、サーバ20は、ステップS121にて生成したメディア固有鍵情報Kmuに基づき、一方、記録媒体16は、秘匿領域164bに格納したメディア固有鍵情報Kmuに基づき、サーバ20とユーザ端末10との間で相互認証を行う(ステップS212)。相互認証処理が成功すれば、サーバ20はユーザ端末10が正当な端末と認識する。
【0052】
以上により、ユーザ端末10とサーバ20との間の相互認証処理(第2相互認証処理)が終了し、サーバ20と記録媒体16とは、ユーザ端末10を介し全ての認証がなされたことになる。これにより、サーバ20からのプログラム情報Pは記録媒体16になりすましなく格納することができる。本実施例ではセッション鍵情報Ksによる暗号通信とは別の方法を説明する。
【0053】
次に、サーバ20に送信されたメディア識別子情報IDmを用い、サーバ20はユーザ鍵対メディア識別子対応データベース213に基づき、記録媒体16に対応するユーザ鍵情報Kuを割り出し(ステップS213)、そのユーザ鍵情報Kuによりプログラム鍵情報Kpを暗号化して、暗号化プログラム鍵情報Enc(Ku:Kp)をユーザ端末10へ送信する(ステップS214)。サーバ20とユーザ端末16で用いる通信はサッション鍵情報Ksに基づく暗号通信を用いても良いが、暗号化プログラム鍵情報Enc(Ku:Kp)は相互認証処理の確立した記録媒体16固有の情報になっているため、通信の途中で盗み取られても他の記録媒体には使うことができないため、暗号通信を用いなくても本質的にセキュアである。
【0054】
次に、ユーザ端末10は、暗号化プログラム鍵情報Enc(Ku:Kp)を受信し、そのまま、暗号化プログラム鍵情報Enc(Ku:Kp)を記録媒体16に送信する(ステップS215)。記録媒体16は、受信した暗号化プログラム鍵情報Enc(Ku:Kp)をユーザデータ領域164dに格納する(ステップS216)。
【0055】
続いて、サーバ20は、プログラムデータベース211よりプログラム情報Pを読み出して、対応するプログラム鍵情報Kpで暗号化した暗号化プログラム情報Enc(Kp:P)を、ユーザ端末10に送信する(ステップS217)。或いはプログラムデータベース211に既に暗号化プログラム情報Enc(Kp:P)が格納されている場合はこれを読み出し、ユーザ端末10に送信する。サーバ20とユーザ端末16で用いる通信はセッション鍵情報Ksに基づく暗号通信を用いても良いが、暗号化プログラム情報Enc(Ku:Kp)自体が既に暗号化された情報であるから、通信の途中で盗み取られても復号化できないので、暗号通信を用いなくても本質的にセキュアである。
【0056】
次に、ユーザ端末10は、受信した暗号化プログラム情報Enc(Kp:P)を受信し、そのまま暗号化プログラム情報Enc(Kp:P)を記録媒体16に送信する(ステップS218)。続いて、記録媒体16は、受信した暗号化プログラム情報Enc(Kp:P)をメモリセルアレイ164のユーザデータ領域164dに格納する(ステップS219)。
【0057】
続いて、暗号化プログラム情報Enc(Ku:P)を記憶媒体16のプログラムメモリ162へ展開する方法について述べる。ユーザ端末10と記録媒体16は前述のステップS201からステップS205までの第1認証処理が完了しているので、記録媒体16の保護領域164cへのアクセスが可能となっている。ユーザ端末10は記録媒体16に対し、暗号化ユーザ鍵情報Enc(Kmu:Ku)の読み出しを指令する。記録媒体16は、保護領域164cから暗号化ユーザ鍵情報Enc(Kmu:Ku)をセッション鍵Ks1で暗号化した情報をユーザ端末10に送信する(ステップS220)。
【0058】
続いて、ユーザ端末10は受信した暗号化ユーザ鍵情報Enc(Kmu:Ku)をセッション鍵Ks1で暗号化した情報をセッション鍵Ks1で復号化して、暗号化ユーザ鍵情報Enc(Kmu:Ku)を得て、更に、共有しているメディア固有鍵情報Kmuで、暗号化ユーザ鍵情報Enc(Kmu:Ku)を復号化して、ユーザ鍵情報Kuを生成する(ステップS221)。
【0059】
次に、ユーザ端末10は、記録媒体16に対し、暗号化プログラム鍵情報Enc(Ku:Kp)の読み出しを指令する。記録媒体16は、ユーザデータ領域164dから暗号化プログラム鍵情報Enc(Ku:Kp)をユーザ端末10に送信する(ステップS222)。
【0060】
ユーザ端末10は、受信した暗号化プログラム鍵情報Enc(Ku:Kp)をユーザ鍵情報Kuで復号化して、プログラム鍵情報Kpを生成する(ステップS223)。続いて、ユーザ端末10は、記録媒体16に対し、暗号化プログラム情報Enc(Kpu:P)の読み出しを指令する。記録媒体16はユーザデータ領域164dから暗号化プログラム情報Enc(Kp:P)をユーザ端末10に送信する(ステップS224)。
【0061】
ユーザ端末10は、受信した暗号化プログラム情報Enc(Kp:P)をプログラム鍵情報Kpで復号化して、プログラム情報Pを生成する(ステップS225)。
【0062】
ユーザ端末10は、復号化したプログラム情報Pを記録媒体16のプログラムメモリ162に書き込むコマンドを発行し、プログラム情報Pをセッション鍵Ks1で暗号化した暗号化プログラム情報Enc(Ks1:P)を記録媒体16に送信する(ステップS226)。
【0063】
記録媒体16は、受信した暗号化プログラム情報Enc(Ks1:P)をセッション鍵Ks1で復号化して、プログラムメモリ162に格納する(ステップS227)。
【0064】
記録媒体16に格納されたプログラム情報Pは、その情報の正当性をチェックするための情報を含む(例えば、Hash値)。また、プログラム情報Pは、記録媒体16のみで実行可能な情報である。また、プログラム情報Pは、処理機能を識別するための情報を含む。
【0065】
以上説明した実施例は、ユーザデータ領域164cに暗号化プログラム鍵情報Enc(Ku:Kp)と暗号化プログラム情報Enc(Kp:P)が格納され、ステップS101(ステップS201)からステップS105(ステップS205)までの第1相互認証処理が完了すれば、いつでもプログラム情報Pをプログラムメモリ162に格納することができる。プログラムメモリ162において基本プログラム以外の領域がRAMで構成される場合、プログラム情報Pを毎回格納する必要があるが、そうした場合、サーバ20との通信を必要としないことに利点がある。またプログラム情報Pの一部Piのみを選択して、プログラムメモリ162に格納することもできる。
【0066】
次に、図7を参照して、図3に示したステップS105における相互認証処理の説明をする。ステップS105における相互認証処理は、いわゆるAKE(Authentication and Key Exchange)と呼ばれる処理である。先ず、相互認証処理において、ユーザ端末10は、第1乱数情報Ra1を送信するように要求する情報を記録媒体16に送信する(ステップS301)。
【0067】
続いて、記録媒体16は、第1乱数情報Ra1を生成し(ステップS302)、第1乱数情報Ra1をユーザ端末10に送信する(ステップS303)。
【0068】
次に、ユーザ端末10は、第1乱数情報Ra1を受信し(ステップS304)、第2乱数情報Ra2を生成し(ステップS305)、その第2乱数情報Ra2を記録媒体16に送信する(ステップS306)。
【0069】
続いて、記録媒体16は、第2乱数情報Ra2を受信し(ステップS307)、第2乱数情報Ra2を受信した旨を通知する第2乱数情報受信完了通知情報をユーザ端末10に送信する(ステップS308)。
【0070】
次に、ユーザ端末10は、第2応答情報Re2を送信するように要求する情報を記録媒体16に送信する(ステップS309)。
【0071】
続いて、記録媒体16は、第2乱数情報Ra2をメディア固有鍵情報Kmuにより暗号化した情報Enc(Kmu:Ra2)を第2応答情報Re2としてユーザ端末10に送信する(ステップS310)。
【0072】
次に、ユーザ端末10は、ユーザ端末10にて生成(図3、ステップS104)したメディア固有鍵情報Kmuにより、第2応答情報Re2(情報Enc(Kmu:Ra2))を復号化する(ステップS311)。そして、ユーザ端末10は、その復号結果が第2乱数情報Ra2と等しいか否かを判断する(ステップS312)。ここで、ユーザ端末10は、復号結果が第2乱数情報Ra2と等しくないと判断すると(ステップS312、N)、相互認証は失敗であると判断し、相互認証処理を終了する。一方、ユーザ端末10は、復号結果が第2乱数情報Ra2と等しいと判断すると(ステップS312、Y)、引き続き次の処理に移る。ユーザ端末10は、第1乱数情報Ra1をメディア固有鍵情報Kmuで暗号化した情報Enc(Kmu:Ra1)を第1応答情報Re1として記録媒体16に送信する(ステップS313)。
【0073】
続いて、記録媒体16は、秘匿領域164bに格納したメディア固有鍵情報Kmuにより、第1応答情報Re1(情報Enc(Kmu:Ra1))を復号化する(ステップS314)。そして、ユーザ端末10は、その復号結果が第1乱数情報Ra1と等しいか否かを判断する(ステップS315)。ここで、記録媒体16は、復号結果が第1乱数情報Ra1と等しくないと判断すると(ステップS315、N)、相互認証は失敗であると判断し、相互認証処理を終了する。一方、記録媒体16は、復号結果が第1乱数情報Ra1と等しいと判断すると(ステップS315、Y)、引き続き次の処理に移る。記録媒体16は、相互認証処理に成功した旨を通知する相互認証結果情報をユーザ端末10に送信する(ステップS316)。そして、記録媒体16は、セッション鍵情報Ksを生成する(ステップS317)。
【0074】
一方、ユーザ端末10は、相互認証結果情報を受信し(ステップS318)、セッション鍵情報Ksを生成する(ステップS319)。セッション鍵情報Ksは、第1乱数情報Ra1と第2乱数情報Ra2とメディア固有鍵情報Kmuを元に予め定められた方法に基づいて生成する。その他、セッション鍵情報Ksは、第1乱数情報Ra1とメディア固有鍵情報Kmuを元に生成しても良く、或いは第2乱数情報Ra2とメディア固有鍵情報Kmuを元に生成してもよい。なお、図3のステップS110における相互認証処理は、図6に示したステップS201〜ステップS219と同様の処理が、ユーザ端末10を介して、記録媒体16とサーバ20との間で行われる。即ち、先ず、記録媒体16とサーバ20との間で、第1乱数情報Ra1及び第2乱数情報Ra2を共有する。次に、その第1乱数情報Ra1或いは第2乱数情報Ra2をメディア固有鍵情報Kmuで暗号化し、その暗号化した応答情報を記録媒体16とサーバ20との間で送受信する。そして、応答情報をメディア固有鍵情報Kmuにより復号化した結果が、第1乱数情報Ra1及び第2乱数情報Ra2と等しければ、相互認証が成功したと判断され、セッション鍵情報が生成される。
【0075】
上記のように本発明の第1実施形態によるプログラム情報提供システムによれば、記録媒体16は、ユーザ端末10と相互認証処理をした後、更にサーバ20と相互認証処理を行い、相互認証処理が成功したと判断すると、追加プログラム情報を記録媒体16に送信し、記録媒体16のプログラムメモリ162に暗号化して格納することができる。したがって、本発明の第1実施形態によるプログラム情報提供システムは、なりすまし、改ざん等を防止しつつ、機能を追加・更新するプログラム情報を記録媒体16にセキュアに格納できる。
【0076】
[第2実施形態]
次に、図9を参照して、本発明の第2実施形態に係るプログラム情報提供システムについて説明する。図9は、第2実施形態に係るプログラム情報提供システムの概略図である。なお、第2実施形態において、第1実施形態と同様の構成には、同一符号を付し、その説明を省略する。
【0077】
図9に示すように、第2実施形態に係るプログラム情報提供システムは、第1実施形態と比較して、記録媒体16’の構成が異なる。
【0078】
記録媒体16’は、プログラムメモリ162に代わって、実行用プログラムメモリ162’を備えている。また、記録媒体16’は、メモリセルアレイ164’の保護領域164c’に暗号化ユーザ鍵Enc(Kmu:Ku)、暗号化プログラム鍵情報Enc(Ku:Kp)等を格納する領域に加え、暗号化プログラム情報Enc(Kp:P)を格納するプログラム格納領域164ca’を有する。
【0079】
実行用プログラムメモリ162’は、SRAM等の揮発性メモリにより構成されている。実行用プログラムメモリ162’は、基本プログラム162aをメモリセルアレイ164’から読み出し、一時的にその基本プログラム162aを格納する。或いは、プロセッサ161からの要求に応じて、プログラム格納領域164ca’から復号化後のプログラム情報Pを読み出し、一時的にそのプログラム情報Pを格納する。
【0080】
プログラム格納領域164ca’には、必要に応じてサーバ20からメモリコントローラ163を介して受信したプログラム情報Pが格納される。
【0081】
記録媒体16’とユーザ端末10及びサーバ20との間で相互認証処理に成功した場合、記録媒体16’においてプロセッサ161は、受信したプログラム情報Pを、メモリコントローラ163を介してプログラム格納領域164ca’に暗号化後、格納する。
【0082】
上記のような第2実施形態に係るプログラム情報提供システムによれば、第1実施形態と同様の効果を奏することができる。また、第2実施形態にかかる記録媒体16’は、第1実施形態のNOR型EEPROMにより構成されたプログラムメモリ162に代わって、SRAM等の揮発性メモリを有する実行用プログラムメモリ162’を備えている。したがって、第2実施形態に係る記録媒体16’は、第1実施形態の記録媒体16と比較して安価に製造することが可能である。
【0083】
[第3実施形態]
次に、図10を参照して、本発明の第3実施形態に係るプログラム情報提供システムについて説明する。図10は、第3実施形態に係るプログラム情報提供システムの概略図である。なお、第3実施形態において、第1及び第2実施形態と同様の構成には、同一符号を付し、その説明を省略する。
【0084】
図10に示すように、第3実施形態に係るプログラム情報提供システムは、第2実施形態と比較して、記録媒体16’’の構成が異なる。
【0085】
第3実施形態は、記録媒体16’’において、システム領域164a’’、及び保護領域164c’’の構成が第2実施形態と異なる。
【0086】
システム領域164a’’には、鍵管理情報MKB及びメディア識別子情報IDm、区画管理テーブルT1が記憶されている。ここで、区画管理テーブルT1は、保護領域164c’’において、サーバ20から受信したプログラム情報Pを格納するプログラム情報格納区画164cb’’をプログラム格納領域164ca’’に設定する情報を含む。
【0087】
保護領域164c’’は、暗号化ユーザ鍵情報Enc(Kmu:Ku)を格納する。また、保護領域164c’’には、プログラム格納領域164ca’’が設けられている。また、プログラム格納領域164ca’は、サーバ20より受信したプログラム情報Pを暗号化した後に、格納する複数のプロクラム情報格納区画164cb’’を有している。メモリセルアレイ164’’がNAND型EEPROMであれば、アクセス単位が512バイト、1024バイトなどが一般的であり、それに対応するようにプログラム情報格納区画164cb’’は、4096バイト等に設定される。上記構成は、例えば、2つのプログラム情報を記録媒体16’’に格納する場合、一方のプログラム情報を第1プログラム情報格納区画に格納し、他方のプログラム情報を第2のプログラム情報格納区画に格納するものである。
【0088】
記録媒体16’’とユーザ端末10及びサーバ20との間で相互認証処理に成功した場合、記録媒体16’’においてプロセッサ161は、システム領域164a’’から区画管理テーブルT1を読み出し、その区画管理テーブルT1に基づき、受信したプログラム情報Pを格納するプログラム情報格納区画164cb’’をメモリコントローラ163に通知する。メモリコントローラ163は、受信したプログラム情報Pを暗号化した後、通知されたプログラム情報格納区画164cb’’に格納するアドレスを指定する。
【0089】
上記第3実施形態に係るプログラム情報提供システムによれば、第2実施形態と同様の効果を得ることができる。
【0090】
以上、発明の一実施形態を説明したが、本発明はこれらに限定されるものではなく、発明の趣旨を逸脱しない範囲内において種々の変更、追加、置換等が可能である。上記一実施形態においては、一台のサーバ20にて、プログラム鍵情報Kp、暗号化プログラム情報Enc(Kp:P)、ユーザ鍵情報Kuをまとめて管理しているが、複数のサーバが、プログラム鍵情報Kp、暗号化プログラム情報Enc(Kp:P)、ユーザ鍵情報Kuを別々に管理する構成であってもよい。
【図面の簡単な説明】
【0091】
【図1】本発明の第1実施形態に係るプログラム情報提供システムの概略図である。
【図2】本発明の第1実施形態に係るプログラム情報提供システムの動作の概要を示す図である。
【図3A】本発明の第1実施形態に係るプログラム情報提供システムの動作を示すフローチャートである。
【図3B】本発明の第1実施形態に係るプログラム情報提供システムの動作を示すフローチャートである。
【図4A】本発明の第1実施形態に係るプログラム情報提供システムの動作を示すフローチャートである。
【図4B】本発明の第1実施形態に係るプログラム情報提供システムの動作を示すフローチャートである。
【図4C】本発明の第1実施形態に係るプログラム情報提供システムの動作を示すフローチャートである。
【図5】鍵管理情報MKBの説明図である。
【図6】図3のステップS102のMKB処理の説明図である。
【図7】メディア識別子情報IDmの説明図である。
【図8】図3のステップS105の相互認証処理を示すフローチャートである。
【図9】本発明の第2実施形態に係るプログラム情報提供システムの概略図である。
【図10】本発明の第3実施形態に係るプログラム情報提供システムの概略図である。
【符号の説明】
【0092】
10…ユーザ端末、11…表示制御部、12…I/O、13…RAM、14…制御部、141…基本プログラム、15…記憶部、16、16’、16’’…記録媒体、160…外部インタフェイス、161…プロセッサ、162…プログラムメモリ、162’ …実行用プログラムメモリ、163…メモリコントローラ、164、164’、164’’…メモリセルアレイ、20…サーバ、21…記憶部、211…プログラムデータベース、212…アクセス鍵データベース、213…プログラム情報対メディア識別子対応データベース、214…プログラム鍵データベース、215…ユーザ鍵対メディア識別子情報対応データベース、22…制御部、221…基本プログラム、30…ネットワーク。
【特許請求の範囲】
【請求項1】
ユーザによって管理されるユーザ端末と、当該ユーザ端末の発行するコマンドを介して情報を読み出し及び書き込み可能な記録媒体と、前記ユーザ端末にネットワークを介して接続されたサーバとを有し、当該サーバから前記記録媒体にプログラム情報を提供するプログラム情報提供システムであって、
前記記録媒体は、
プログラム情報を書き込み可能な第1記憶部と、
前記ユーザ端末と第1相互認証処理を行い、当該第1相互認証処理に成功した場合のみ、プログラム情報を前記第1記憶部に書き込むコマンドを実行することができる第1制御部を有し、
前記ユーザ端末は、
前記サーバと第2相互認証処理を行い、当該第2相互認証処理に成功した場合、前記サーバから送信されたプログラム情報を得て、プログラム情報を前記記録媒体の第1記憶部に書き込むコマンドを発行する
ことを特徴とするプログラム情報提供システム。
【請求項2】
前記記録媒体の前記第1記憶部は、
前記記録媒体固有のメディア識別子情報と、当該メディア識別子情報に基づき生成可能なメディア鍵情報を所定形式にて暗号化した鍵管理情報と、前記メディア鍵情報を前記メディア識別子情報により復号化して得られるメディア固有鍵情報とを格納し、
前記記録媒体の前記第1制御部は、
前記メディア固有鍵情報に基づき前記ユーザ端末と相互認証処理を行い、
前記ユーザ端末は、
デバイス鍵情報と前記サーバとの秘密鍵情報を格納する第2記憶部と、
前記記録媒体と前記相互認証処理を行う第2制御部と
を備え、
前記サーバは、
前記ユーザ端末との秘密鍵情報あるいは公開鍵情報を格納する第3記憶部と、
前記記録媒体と前記相互認証処理を行う第3制御部と
を備え、
前記ユーザ端末の前記第2制御部は、
前記デバイス鍵情報に基づき受信した前記鍵管理情報からメディア鍵情報を生成し、受信した前記メディア識別子情報に基づき前記生成したメディア鍵情報からメディア固有鍵情報を生成し、当該生成したメディア固有鍵情報を用いて前記記録媒体と前記相互認証処理を行い、
前記サーバの前記第3制御部は、
前記秘密鍵情報或いは公開鍵情報に基づき、前記ユーザ端末と前記相互認証処理を行う
ことを特徴とする請求項1記載のプログラム情報提供システム。
【請求項3】
前記鍵管理情報は、行列要素、及び当該行列要素に対応する複数の暗号化情報を有するデバイス鍵行列情報により、前記メディア鍵情報を暗号化した情報であり、
前記デバイス鍵情報は、前記行列要素の中から複数を指定するベクトル情報、当該ベクトル情報に対応して前記暗号化情報を復号化する復号化情報を有する情報であり、
前記ユーザ端末の前記第2制御部は、前記デバイス鍵情報を用いて、前記ベクトル情報により特定される前記鍵管理情報の全ての前記暗号化情報を復号化情報により復号化し、全ての復号化した情報が、所定の無効情報に一致しない場合に、前記メディア鍵情報を生成する
ことを特徴とする請求項2記載のプログラム情報提供システム。
【請求項4】
前記第1相互認証処理は、
前記ユーザ端末にて、前記記録媒体に第1乱数情報を要求し、
前記記録媒体にて前記第1乱数情報を生成し、当該第1乱数情報を前記ユーザ端末に送信し、
前記ユーザ端末にて、第2乱数情報を生成し、前記記録媒体に送信すると共に前記記録媒体に前記第2乱数情報に対する第2応答情報を要求し、
前記記録媒体にて、前記第2乱数情報を前記メディア固有鍵情報に基づき暗号化した情報を第2応答情報として前記ユーザ端末に送信し、
前記ユーザ端末にて、前記受信した第2応答情報を前記生成したメディア固有鍵情報に基づき復号化し、当該復号化した結果が、前記第2乱数情報と等しければ、前記記録媒体より得た第1乱数情報を、前記生成したメディア固有鍵情報に基づき暗号化した第1応答情報を前記記録媒体に送信し、
前記記録媒体にて、受信した前記第1応答情報を前記メディア固有鍵情報に基づき復号化し、当該復号化した結果が前記第1乱数情報と等しければ、相互認証処理に成功したとして、当該相互認証処理に成功したとする情報を前記ユーザ端末に送信する処理である
ことを特徴とする請求項2又は請求項3記載のプログラム情報提供システム。
【請求項5】
前記サーバの前記第3記憶部は、
プログラム情報と前記ユーザ端末との秘密鍵情報或いは公開鍵情報を格納し、
前記サーバの前記第3制御部は、
前記ユーザ端末との前記第2相互認証処理に成功した場合、第2共通鍵情報を生成し、前記プログラム情報を前記第2共通鍵情報により暗号化して第2共通鍵暗号化プログラム情報を生成し、前記ユーザ端末に送信し、
前記ユーザ端末の前記第2制御部は、
前記サーバから受信した前記第2共通鍵暗号化プログラム情報を、生成した前記第2共通鍵情報に基づき復号化してプログラム情報を復元し、
前記記録媒体との前記第1相互認証処理に成功した場合に生成された第1共通鍵情報により、プログラム情報を暗号化して第1共通鍵暗号化プログラム情報を生成し、当該第1共通鍵暗号化プログラム情報をプログラム書き込みコマンドとともに前記記録媒体に送信し、
前記記録媒体の前記第1制御部は、
前記第1相互認証処理に成功した場合のみ、前記ユーザ端末から発行されたプログラム書き込みコマンドを受け入れ、生成した前記第1共通鍵情報により、前記第1共通鍵暗号化プログラム情報を復号化してプログラム情報を生成し、当該プログラム情報を前記第1記憶部に書き込む
ことを特徴とする請求項2乃至請求項4のいずれか1項記載のプログラム情報提供システム。
【請求項6】
前記記録媒体の第1記憶部は、
メデイア識別子情報に前記記録媒体の製造者、バージョンに関する情報を付加して格納し、
前記ユーザ端末の第2制御部は、
前記記録媒体の前記第1記憶部から前記メディア識別子情報を読み出し、これを前記サーバに送信し、
前記サーバの前記第3記憶部は、
前記記録媒体の製造者、バージョンに対応した複数のプログラム情報を格納し、
前記サーバの前記第3制御部は、
前記ユーザ端末より受信したメディア識別子情報をもとに、前記記録媒体に適合したプログラム情報を選択し、送信する
ことを特徴とする請求項2乃至請求項4のいずれか1項記載のプログラム情報提供システム。
【請求項7】
前記共通鍵情報は、前記第1乱数情報、前記第2乱数情報、及び前記暗号化媒体固有鍵情報に基づき生成される
ことを特徴とする請求項6記載のプログラム情報提供システム。
【請求項8】
前記共通鍵情報は、前記第1乱数情報または前記第2乱数情報のいずれか一方、及び前記暗号化媒体固有鍵情報に基づき生成される
ことを特徴とする請求項6記載のプログラム情報提供システム。
【請求項9】
前記記録媒体へ送信されるプログラム情報は、
当該プログラム情報の正当性を確認するための情報を含む
ことを特徴とする請求項1乃至請求項8のいずれか1項記載のプログラム情報提供システム。
【請求項10】
前記記録媒体へ送信されるプログラム情報は、
当該プログラム情報を識別するための情報を含む
ことを特徴とする請求項1乃至請求項8のいずれか1項記載のプログラム情報提供システム。
【請求項11】
前記記録媒体の第1記憶部は、
当該第1記憶部内における、情報を格納可能な区画に関する区画管理テーブルを格納し、
前記記録媒体の第1制御部は、
前記サーバからの前記プログラム情報の送信に応じて、前記区画管理テーブルに基づき前記プログラム情報を前記第1記憶部に格納する
ことを特徴とする請求項1乃至請求項10のいずれか1項記載のプログラム情報提供システム。
【請求項12】
前記サーバの前記第3記憶部は、
プログラム鍵情報、前記プログラム鍵情報により前記プログラム情報を暗号化したプログラム鍵暗号化プログラム情報、及びユーザ毎に異なるユーザ鍵情報に前記メディア識別子情報を対応付けした対応情報を格納し、
前記サーバの前記第3制御部は、
前記ユーザ端末との前記第2相互認証処理に成功した場合、前記対応情報に基づき前記記録媒体のメディア識別子情報に対応するユーザ鍵情報により、前記プログラム鍵情報を暗号化したユーザ鍵暗号化プログラム鍵情報を生成し、当該ユーザ鍵暗号化プログラム鍵情報及び前記プログラム鍵暗号化プログラム情報を前記ユーザ端末に送信し、
前記ユーザ端末の前記第2制御部は、
前記サーバから受信した前記プログラム鍵暗号化プログラム情報及び前記ユーザ鍵暗号化プログラム鍵情報を前記記録媒体に送信し、
前記記録媒体との前記第1相互認証処理に成功した場合、前記第1共通鍵情報を生成し、前記プログラム鍵暗号化プログラム情報、前記ユーザ鍵暗号化プログラム鍵情報、及び前記ユーザ鍵情報を前記メディア固有鍵情報と前記第1共通鍵情報により暗号化した暗号化ユーザ鍵情報を前記記録媒体から受信し、
前記第1共通鍵情報と前記メディア固有鍵情報により前記暗号化ユーザ鍵情報を復号化してユーザ鍵情報を生成し、当該ユーザ鍵情報、前記プログラム鍵暗号化プログラム情報、前記ユーザ鍵暗号化プログラム鍵情報に基づき前記プログラム情報を生成し、前記第1共通鍵情報により前記プログラム情報を暗号化した第1共通鍵暗号化プログラム情報を前記記録媒体に送信し、
前記記録媒体の前記第1記憶部は、
前記ユーザ鍵情報を前記メディア固有鍵情報により暗号化した情報を予め格納し、前記ユーザ端末から受信した前記プログラム鍵暗号化プログラム情報及び前記ユーザ鍵暗号化プログラム鍵情報を格納し、
前記記録媒体の前記第1制御部は、
前記ユーザ端末との前記第1相互認証処理に成功した場合、前記第1共通鍵情報を生成し、前記暗号化ユーザ鍵情報、前記プログラム鍵暗号化プログラム情報及び前記ユーザ鍵暗号化プログラム鍵情報を、前記ユーザ端末に送信し、
前記ユーザ端末から受信した前記第1共通鍵暗号化プログラム情報を前記第1共通鍵情報により復号化して前記プログラム情報を生成し、当該プログラム情報を前記第1記憶部に格納する
ことを特徴とする請求項2乃至請求項5のいずれか1項記載のプログラム情報提供システム。
【請求項13】
ユーザによって管理されるユーザ端末と、当該ユーザ端末の発行するコマンドを介して情報を読み出し及び書き込み可能な記録媒体と、前記ユーザ端末にネットワークを介して接続されたサーバとを有し、当該サーバから前記記録媒体にプログラム情報を提供するプログラム情報提供方法であって、
前記記録媒体と前記ユーザ端末とに第1の相互認証処理を行わせる第1相互認証ステップと、
当該第1相互認証ステップにて前記第1の相互認証処理に成功した場合、
プログラム情報を前記第1記憶部に書き込むコマンドを実行するステップと、
前記ユーザ端末を介して前記記録媒体と前記サーバとに第2の相互認証処理を行わせる第2相互認証ステップと、
当該第2相互認証ステップにて前記第2の相互認証処理に成功した場合、前記サーバから送信されたプログラム情報を得るステップと、
プログラム情報を前記記録媒体の第1記憶部に書き込むコマンドを発行するステップと
を備えることを特徴とするプログラム情報提供方法。
【請求項14】
プログラム情報を書き込み可能な第1記憶部と、
ユーザによって管理されるユーザ端末と第1相互認証処理を行い、当該第1相互認証処理に成功した場合のみ、前記ユーザ端末を介して、前記ユーザ端末にネットワークを介して接続されたサーバと第2相互認証処理を行い、当該第2相互認証処理に成功した場合のみ、前記サーバから送信されたプログラム情報を前記第1記憶部に書き込む第1制御部と
を備えることを特徴とする記録媒体。
【請求項1】
ユーザによって管理されるユーザ端末と、当該ユーザ端末の発行するコマンドを介して情報を読み出し及び書き込み可能な記録媒体と、前記ユーザ端末にネットワークを介して接続されたサーバとを有し、当該サーバから前記記録媒体にプログラム情報を提供するプログラム情報提供システムであって、
前記記録媒体は、
プログラム情報を書き込み可能な第1記憶部と、
前記ユーザ端末と第1相互認証処理を行い、当該第1相互認証処理に成功した場合のみ、プログラム情報を前記第1記憶部に書き込むコマンドを実行することができる第1制御部を有し、
前記ユーザ端末は、
前記サーバと第2相互認証処理を行い、当該第2相互認証処理に成功した場合、前記サーバから送信されたプログラム情報を得て、プログラム情報を前記記録媒体の第1記憶部に書き込むコマンドを発行する
ことを特徴とするプログラム情報提供システム。
【請求項2】
前記記録媒体の前記第1記憶部は、
前記記録媒体固有のメディア識別子情報と、当該メディア識別子情報に基づき生成可能なメディア鍵情報を所定形式にて暗号化した鍵管理情報と、前記メディア鍵情報を前記メディア識別子情報により復号化して得られるメディア固有鍵情報とを格納し、
前記記録媒体の前記第1制御部は、
前記メディア固有鍵情報に基づき前記ユーザ端末と相互認証処理を行い、
前記ユーザ端末は、
デバイス鍵情報と前記サーバとの秘密鍵情報を格納する第2記憶部と、
前記記録媒体と前記相互認証処理を行う第2制御部と
を備え、
前記サーバは、
前記ユーザ端末との秘密鍵情報あるいは公開鍵情報を格納する第3記憶部と、
前記記録媒体と前記相互認証処理を行う第3制御部と
を備え、
前記ユーザ端末の前記第2制御部は、
前記デバイス鍵情報に基づき受信した前記鍵管理情報からメディア鍵情報を生成し、受信した前記メディア識別子情報に基づき前記生成したメディア鍵情報からメディア固有鍵情報を生成し、当該生成したメディア固有鍵情報を用いて前記記録媒体と前記相互認証処理を行い、
前記サーバの前記第3制御部は、
前記秘密鍵情報或いは公開鍵情報に基づき、前記ユーザ端末と前記相互認証処理を行う
ことを特徴とする請求項1記載のプログラム情報提供システム。
【請求項3】
前記鍵管理情報は、行列要素、及び当該行列要素に対応する複数の暗号化情報を有するデバイス鍵行列情報により、前記メディア鍵情報を暗号化した情報であり、
前記デバイス鍵情報は、前記行列要素の中から複数を指定するベクトル情報、当該ベクトル情報に対応して前記暗号化情報を復号化する復号化情報を有する情報であり、
前記ユーザ端末の前記第2制御部は、前記デバイス鍵情報を用いて、前記ベクトル情報により特定される前記鍵管理情報の全ての前記暗号化情報を復号化情報により復号化し、全ての復号化した情報が、所定の無効情報に一致しない場合に、前記メディア鍵情報を生成する
ことを特徴とする請求項2記載のプログラム情報提供システム。
【請求項4】
前記第1相互認証処理は、
前記ユーザ端末にて、前記記録媒体に第1乱数情報を要求し、
前記記録媒体にて前記第1乱数情報を生成し、当該第1乱数情報を前記ユーザ端末に送信し、
前記ユーザ端末にて、第2乱数情報を生成し、前記記録媒体に送信すると共に前記記録媒体に前記第2乱数情報に対する第2応答情報を要求し、
前記記録媒体にて、前記第2乱数情報を前記メディア固有鍵情報に基づき暗号化した情報を第2応答情報として前記ユーザ端末に送信し、
前記ユーザ端末にて、前記受信した第2応答情報を前記生成したメディア固有鍵情報に基づき復号化し、当該復号化した結果が、前記第2乱数情報と等しければ、前記記録媒体より得た第1乱数情報を、前記生成したメディア固有鍵情報に基づき暗号化した第1応答情報を前記記録媒体に送信し、
前記記録媒体にて、受信した前記第1応答情報を前記メディア固有鍵情報に基づき復号化し、当該復号化した結果が前記第1乱数情報と等しければ、相互認証処理に成功したとして、当該相互認証処理に成功したとする情報を前記ユーザ端末に送信する処理である
ことを特徴とする請求項2又は請求項3記載のプログラム情報提供システム。
【請求項5】
前記サーバの前記第3記憶部は、
プログラム情報と前記ユーザ端末との秘密鍵情報或いは公開鍵情報を格納し、
前記サーバの前記第3制御部は、
前記ユーザ端末との前記第2相互認証処理に成功した場合、第2共通鍵情報を生成し、前記プログラム情報を前記第2共通鍵情報により暗号化して第2共通鍵暗号化プログラム情報を生成し、前記ユーザ端末に送信し、
前記ユーザ端末の前記第2制御部は、
前記サーバから受信した前記第2共通鍵暗号化プログラム情報を、生成した前記第2共通鍵情報に基づき復号化してプログラム情報を復元し、
前記記録媒体との前記第1相互認証処理に成功した場合に生成された第1共通鍵情報により、プログラム情報を暗号化して第1共通鍵暗号化プログラム情報を生成し、当該第1共通鍵暗号化プログラム情報をプログラム書き込みコマンドとともに前記記録媒体に送信し、
前記記録媒体の前記第1制御部は、
前記第1相互認証処理に成功した場合のみ、前記ユーザ端末から発行されたプログラム書き込みコマンドを受け入れ、生成した前記第1共通鍵情報により、前記第1共通鍵暗号化プログラム情報を復号化してプログラム情報を生成し、当該プログラム情報を前記第1記憶部に書き込む
ことを特徴とする請求項2乃至請求項4のいずれか1項記載のプログラム情報提供システム。
【請求項6】
前記記録媒体の第1記憶部は、
メデイア識別子情報に前記記録媒体の製造者、バージョンに関する情報を付加して格納し、
前記ユーザ端末の第2制御部は、
前記記録媒体の前記第1記憶部から前記メディア識別子情報を読み出し、これを前記サーバに送信し、
前記サーバの前記第3記憶部は、
前記記録媒体の製造者、バージョンに対応した複数のプログラム情報を格納し、
前記サーバの前記第3制御部は、
前記ユーザ端末より受信したメディア識別子情報をもとに、前記記録媒体に適合したプログラム情報を選択し、送信する
ことを特徴とする請求項2乃至請求項4のいずれか1項記載のプログラム情報提供システム。
【請求項7】
前記共通鍵情報は、前記第1乱数情報、前記第2乱数情報、及び前記暗号化媒体固有鍵情報に基づき生成される
ことを特徴とする請求項6記載のプログラム情報提供システム。
【請求項8】
前記共通鍵情報は、前記第1乱数情報または前記第2乱数情報のいずれか一方、及び前記暗号化媒体固有鍵情報に基づき生成される
ことを特徴とする請求項6記載のプログラム情報提供システム。
【請求項9】
前記記録媒体へ送信されるプログラム情報は、
当該プログラム情報の正当性を確認するための情報を含む
ことを特徴とする請求項1乃至請求項8のいずれか1項記載のプログラム情報提供システム。
【請求項10】
前記記録媒体へ送信されるプログラム情報は、
当該プログラム情報を識別するための情報を含む
ことを特徴とする請求項1乃至請求項8のいずれか1項記載のプログラム情報提供システム。
【請求項11】
前記記録媒体の第1記憶部は、
当該第1記憶部内における、情報を格納可能な区画に関する区画管理テーブルを格納し、
前記記録媒体の第1制御部は、
前記サーバからの前記プログラム情報の送信に応じて、前記区画管理テーブルに基づき前記プログラム情報を前記第1記憶部に格納する
ことを特徴とする請求項1乃至請求項10のいずれか1項記載のプログラム情報提供システム。
【請求項12】
前記サーバの前記第3記憶部は、
プログラム鍵情報、前記プログラム鍵情報により前記プログラム情報を暗号化したプログラム鍵暗号化プログラム情報、及びユーザ毎に異なるユーザ鍵情報に前記メディア識別子情報を対応付けした対応情報を格納し、
前記サーバの前記第3制御部は、
前記ユーザ端末との前記第2相互認証処理に成功した場合、前記対応情報に基づき前記記録媒体のメディア識別子情報に対応するユーザ鍵情報により、前記プログラム鍵情報を暗号化したユーザ鍵暗号化プログラム鍵情報を生成し、当該ユーザ鍵暗号化プログラム鍵情報及び前記プログラム鍵暗号化プログラム情報を前記ユーザ端末に送信し、
前記ユーザ端末の前記第2制御部は、
前記サーバから受信した前記プログラム鍵暗号化プログラム情報及び前記ユーザ鍵暗号化プログラム鍵情報を前記記録媒体に送信し、
前記記録媒体との前記第1相互認証処理に成功した場合、前記第1共通鍵情報を生成し、前記プログラム鍵暗号化プログラム情報、前記ユーザ鍵暗号化プログラム鍵情報、及び前記ユーザ鍵情報を前記メディア固有鍵情報と前記第1共通鍵情報により暗号化した暗号化ユーザ鍵情報を前記記録媒体から受信し、
前記第1共通鍵情報と前記メディア固有鍵情報により前記暗号化ユーザ鍵情報を復号化してユーザ鍵情報を生成し、当該ユーザ鍵情報、前記プログラム鍵暗号化プログラム情報、前記ユーザ鍵暗号化プログラム鍵情報に基づき前記プログラム情報を生成し、前記第1共通鍵情報により前記プログラム情報を暗号化した第1共通鍵暗号化プログラム情報を前記記録媒体に送信し、
前記記録媒体の前記第1記憶部は、
前記ユーザ鍵情報を前記メディア固有鍵情報により暗号化した情報を予め格納し、前記ユーザ端末から受信した前記プログラム鍵暗号化プログラム情報及び前記ユーザ鍵暗号化プログラム鍵情報を格納し、
前記記録媒体の前記第1制御部は、
前記ユーザ端末との前記第1相互認証処理に成功した場合、前記第1共通鍵情報を生成し、前記暗号化ユーザ鍵情報、前記プログラム鍵暗号化プログラム情報及び前記ユーザ鍵暗号化プログラム鍵情報を、前記ユーザ端末に送信し、
前記ユーザ端末から受信した前記第1共通鍵暗号化プログラム情報を前記第1共通鍵情報により復号化して前記プログラム情報を生成し、当該プログラム情報を前記第1記憶部に格納する
ことを特徴とする請求項2乃至請求項5のいずれか1項記載のプログラム情報提供システム。
【請求項13】
ユーザによって管理されるユーザ端末と、当該ユーザ端末の発行するコマンドを介して情報を読み出し及び書き込み可能な記録媒体と、前記ユーザ端末にネットワークを介して接続されたサーバとを有し、当該サーバから前記記録媒体にプログラム情報を提供するプログラム情報提供方法であって、
前記記録媒体と前記ユーザ端末とに第1の相互認証処理を行わせる第1相互認証ステップと、
当該第1相互認証ステップにて前記第1の相互認証処理に成功した場合、
プログラム情報を前記第1記憶部に書き込むコマンドを実行するステップと、
前記ユーザ端末を介して前記記録媒体と前記サーバとに第2の相互認証処理を行わせる第2相互認証ステップと、
当該第2相互認証ステップにて前記第2の相互認証処理に成功した場合、前記サーバから送信されたプログラム情報を得るステップと、
プログラム情報を前記記録媒体の第1記憶部に書き込むコマンドを発行するステップと
を備えることを特徴とするプログラム情報提供方法。
【請求項14】
プログラム情報を書き込み可能な第1記憶部と、
ユーザによって管理されるユーザ端末と第1相互認証処理を行い、当該第1相互認証処理に成功した場合のみ、前記ユーザ端末を介して、前記ユーザ端末にネットワークを介して接続されたサーバと第2相互認証処理を行い、当該第2相互認証処理に成功した場合のみ、前記サーバから送信されたプログラム情報を前記第1記憶部に書き込む第1制御部と
を備えることを特徴とする記録媒体。
【図1】
【図2】
【図3A】
【図3B】
【図4A】
【図4B】
【図4C】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3A】
【図3B】
【図4A】
【図4B】
【図4C】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【公開番号】特開2008−269088(P2008−269088A)
【公開日】平成20年11月6日(2008.11.6)
【国際特許分類】
【出願番号】特願2007−108464(P2007−108464)
【出願日】平成19年4月17日(2007.4.17)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成20年11月6日(2008.11.6)
【国際特許分類】
【出願日】平成19年4月17日(2007.4.17)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]