説明

記憶装置および情報処理装置

【課題】秘匿領域の情報を書き換えられることを抑止する。
【解決手段】記憶装置は、データ記憶部と受信部と選択部と認証部とを備える。データ記憶部は、読出認証情報を用いて認証された場合に読出し可能となり、書込認証情報を用いて認証された場合に書込み可能となる秘匿領域を含む。受信部は、秘匿領域へのデータの書込要求と、秘匿領域からのデータの読出要求と、のいずれかのアクセス要求を受信する。選択部は、アクセス要求が書込要求の場合に書込認証情報を選択し、アクセス要求が読出要求の場合に読出認証情報を選択する。認証部は、選択された書込認証情報および読出認証情報のいずれかを用いて秘匿領域へのアクセスを認証する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、著作権保護が求められるコンテンツデータなどを記憶する記憶装置および当該記憶装置を備える情報処理装置に関する。
【背景技術】
【0002】
例えば、SDカードやiVDRのような著作権保護機能付きのデータ(コンテンツデータ)を格納する記憶装置、および、記憶装置にアクセスしてコンテンツデータを利用するアクセス装置を有するコンテンツ利用端末に対するコンテンツ配信システムを考える。コンテンツ利用端末のアクセス装置が記憶装置の秘匿領域にデータを正しく書き込んだり、秘匿領域からデータを正しく読み出したりするには、当該アクセス装置が記憶装置から認証される必要がある。アクセス装置が記憶装置から認証されるためには、当該アクセス装置が認証情報を保持していることが必要である。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】4C Entity,LLC. "CPRM Specification,SD Memory Card Book,Common Part",Revision 0.961,May. 3,2007.
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来技術においては、アクセス装置から認証情報を不正に取得することによって、秘匿領域の情報を書き換えられるという問題があった。
【課題を解決するための手段】
【0005】
実施形態の記憶装置は、データ記憶部と受信部と選択部と認証部とを備える。データ記憶部は、読出認証情報を用いて認証された場合に読出し可能となり、書込認証情報を用いて認証された場合に書込み可能となる秘匿領域を含む。受信部は、秘匿領域へのデータの書込要求と、秘匿領域からのデータの読出要求と、のいずれかのアクセス要求を受信する。選択部は、アクセス要求が書込要求の場合に書込認証情報を選択し、アクセス要求が読出要求の場合に読出認証情報を選択する。認証部は、選択された書込認証情報および読出認証情報のいずれかを用いて秘匿領域へのアクセスを認証する。
【図面の簡単な説明】
【0006】
【図1】図1は、第1の実施形態にかかるコンテンツ配信システムの構成例を示す図である。
【図2】図2は、書込みと読出しとで同一の認証情報を用いるコンテンツ配信システムの構成例を示す図である。
【図3】図3は、書込みと読出しとで同一の認証情報を用いるコンテンツ配信システムの別の構成例を示す図である。
【図4】図4は、第1の実施形態にかかるコンテンツ配信システムの各装置の詳細な機能構成の一例を示すブロック図である。
【図5】図5は、書込みコマンドのフォーマットの一例を示す図である。
【図6】図6は、読出しコマンドのフォーマットの一例を示す図である。
【図7】図7は、認証情報記憶部に記憶される認証情報のデータ構造の一例を示す図である。
【図8】図8は、第1の実施形態におけるアクセス処理の全体の流れを示すフローチャートである。
【図9】図9は、第2の実施形態にかかるコンテンツ配信システムの各装置の詳細な機能構成の一例を示すブロック図である。
【図10】図10は、認証情報記憶部に記憶される認証情報のデータ構造の一例を示す図である。
【図11】図11は、書込みコマンドの一例を示す図である。
【図12】図12は、読出しコマンドの一例を示す図である。
【図13】図13は、第3の実施形態にかかるコンテンツ配信システムの構成例を示すブロック図である。
【図14】図14は、初期化コマンドのフォーマットの一例を示すである。
【図15】図15は、更新コマンドのフォーマットの一例を示すである。
【図16】図16は、更新情報のデータ構造の一例を示す図である。
【図17】図17は、認証情報記憶部に記憶される認証情報の一例を示す図である。
【図18】図18は、認証情報記憶部に記憶される認証情報の一例を示す図である。
【図19】図19は、第4の実施形態にかかるコンテンツ配信システムの構成例を示すブロック図である。
【図20】図20は、更新コマンドのフォーマットの一例を示すである。
【図21】図21は、更新情報のデータ構造の一例を示す図である。
【図22】図22は、認証情報記憶部に記憶される認証情報の一例を示す図である。
【図23】図23は、第1〜第4の実施形態にかかる装置のハードウェア構成を示す説明図である。
【発明を実施するための形態】
【0007】
以下に添付図面を参照して、この発明にかかる記憶装置および情報処理装置の好適な実施形態を詳細に説明する。
【0008】
(第1の実施形態)
図1は、第1の実施形態にかかるコンテンツ配信システムの構成例を示す図である。図1に示すようにコンテンツ配信システムは、サーバ10と、情報処理装置としてのコンテンツ利用端末20とがインターネットなどのネットワーク30で接続された構成となっている。コンテンツ利用端末20は、記憶装置100とアクセス装置200とを備えている。アクセス装置200は、記憶装置100との間の認証に用いる認証情報を格納している。記憶装置100は、認証情報を用いて認証された場合にアクセス可能となる秘匿領域を含んでいる。
【0009】
なお、記憶装置100は、SDカードやiVDRに限られず、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶媒体により構成することができる。
【0010】
コンテンツ配信システムでは、例えば、コンテンツ利用端末20のバインディングIDが記憶装置100の秘匿領域に格納されている。バインディングIDとは、タイトル鍵(配信された暗号化コンテンツを復号するための鍵)の暗号化に用いられるIDである。具体的には、例えば、タイトル鍵KTを記憶装置100に保存する場合、KTb=AE(AG(K0,IDb),KT)という形で保存する。ここで、AEは暗号化関数、AGは一方向性関数を表す。また、K0はマスター鍵であり、IDbはバインディングIDである。
【0011】
KTbを、IDbとは異なるバインディングID(例えばIDb’とする)を有する他のコンテンツ利用端末(コンテンツ利用端末20’とする)の記憶装置(記憶装置100’とする)にコピーしても、KTbを復号してKTを得ることはできない。コンテンツ利用端末20’は記憶装置100’の秘匿領域からIDb’を読出すが、AD(AG(K0,IDb’),KTb)を計算してもKTは得られない。すなわち、タイトル鍵KTbはIDbというバインディングIDを有するコンテンツ利用端末20でのみ利用可能である。このことを称して、タイトル鍵KTbはIDbにバインドされているということがある。
【0012】
コンテンツ配信システムは、複数のコンテンツ利用端末20に対して共通のバインディングIDを用いることがある。その場合、例えば、コンテンツ利用端末20を識別する端末IDとバインディングIDとを、コンテンツ利用端末20が具備する記憶装置100の秘匿領域に格納する。例えば、端末IDとしてTIDxを有するコンテンツ利用端末20では、(UIDa,TIDx,IDb)の組みを記憶装置100の秘匿領域に格納している。ここで、UIDaはコンテンツ利用端末20を所有する利用者のユーザーIDである。これらのデータの一部、例えば端末IDは、当該コンテンツ利用端末20の出荷時に書き込まれている。また、ユーザーIDとバインディングIDとは、コンテンツ配信システムのサーバによって書き込まれる。
【0013】
同一ユーザーが所有するコンテンツ利用端末20(その端末IDをTIDyとする)は、内部に備える記憶装置100の秘匿領域に(UIDa,TIDy,IDb)を格納する。これにより、TIDxという端末IDを有するコンテンツ利用端末20とTIDyという端末IDを有するコンテンツ利用端末20の間で、コンテンツの共有が可能となる。すなわち、IDbにバインドされているタイトル鍵は、二つのコンテンツ利用端末20で利用可能である。
【0014】
前述のように、認証情報を保持しているコンテンツ利用端末20は、記憶装置100の秘匿領域からデータを読み出すことができる。しかし、コンテンツの不正利用を意図する攻撃者は、アクセス装置200を解析することによって、認証情報を不正に読み出すことがある。コンテンツ利用端末20はユーザーの手元に存在するため、この種の攻撃を受け易い。
【0015】
攻撃者が認証情報を入手した場合、バインディングIDを書き換えたり、ユーザーIDを書き換えたりすることが可能になる。例えば先の例で、攻撃者が、コンテンツ利用端末20の記憶装置100の秘匿領域から(UIDa,TIDx,IDb)という、ユーザーID、端末ID、バインディングIDの組を不正に読み出し、この組を別のコンテンツ利用端末20’の記憶装置100の秘匿領域に書き込んだとする。この場合、コンテンツ利用端末20’は、コンテンツ利用端末20にバインドされたコンテンツを利用可能になる。さらに、コンテンツ利用端末20’は、サーバに対して、コンテンツ利用端末20と区別がつかない。
【0016】
ここで、書込みと読出しとで同一の認証情報を用いる構成例について説明する。図2は、書込みと読出しとで同一の認証情報を用いるコンテンツ配信システムの構成例を示す図である。
【0017】
この例のコンテンツ配信システムは、サーバ50と、記憶装置60と、アクセス装置70とを備えている。なお、記憶装置60とアクセス装置70とは、上述のように例えば同一のコンテンツ利用端末内に含むように構成することができる。
【0018】
サーバ50は、サーバ50に割り当てられたデバイス鍵51と、MKB処理部52と、認証処理部53と、データ54と、暗号化部55とを備えている。MKB処理部52は、MKB(Media Key Block)をデバイス鍵51を用いて処理することによりメディア鍵KMを導出するMKB処理を実行する。この構成例では、MKB処理によって得られるメディア鍵KMが認証情報である。
【0019】
認証処理部53は、認証情報を用いて、記憶装置60との間の認証処理を行う。例えば、認証処理部53は、メディア鍵KMを用いた鍵交換手続き(以下、鍵交換KE(Key Exchange)という)により、サーバ50と記憶装置60との相互認証を行う。
【0020】
データ54は、秘匿領域66bに書き込むコンテンツデータ等のデータである。暗号化部55は、鍵交換KEにより作成された共通鍵によりデータ54を暗号化する。
【0021】
アクセス装置70は、アクセス装置70に割り当てられたデバイス鍵71と、MKB処理部72と、認証処理部73と、データ74と、復号部75とを備えている。MKB処理部72および認証処理部73は、それぞれサーバ50のMKB処理部52および認証処理部53と同様の機能を備える。復号部75は、鍵交換KEにより作成された共通鍵により暗号化されたデータを復号する。
【0022】
記憶装置60は、MKB処理で用いられるMKB61と、メディア鍵であるKM62と、認証部63と、復号部64と、暗号化部65と、秘匿領域66bにデータ67を記憶するデータ記憶部66aとを備えている。
【0023】
認証部63は、認証情報を用いて秘匿領域66bへのアクセスを認証する。例えば、認証部63は、サーバ50の認証処理部53およびアクセス装置70の認証処理部73との間で、メディア鍵KMを用いた鍵交換KE等により認証を行う。
【0024】
記憶装置60とサーバ50との間の鍵交換KEでは、記憶装置60とサーバ50との間で共有される認証情報であるメディア鍵KMと、記憶装置60とサーバ50との間でやり取りされる乱数を用いて、共通鍵KT1が作成される。また、記憶装置60とアクセス装置70との間の鍵交換KEでは、記憶装置60とアクセス装置70との間で共有される認証情報であるメディアKMと、記憶装置60とアクセス装置70との間でやり取りされる乱数を用いて、共通鍵KT2が作成される。
【0025】
共通鍵KT1は書き込みの際の暗号化および復号に利用され、共通鍵KT2は読出しの際の暗号化および復号に利用される。共通鍵KT1と共通鍵KT2は、いずれもメディア鍵KMを用いて作られる情報である。同一の秘匿領域66bに読み書きするための認証情報であるメディア鍵KMは同一である。攻撃者が、アクセス装置70を解析し、不正にメディア鍵KMを取得したとする。その場合、攻撃者はサーバ50側の鍵交換KEと同じ手続きによって秘匿領域66bにデータを書き込むことが可能となる。
【0026】
図3は、書込みと読出しとで同一の認証情報を用いるコンテンツ配信システムの別の構成例を示す図である。なお、図3は、秘密鍵と秘密鍵に対応する公開鍵を認証情報として用いる例である。
【0027】
この例のコンテンツ配信システムは、サーバ50−2と、記憶装置60−2と、アクセス装置70−2とを備えている。なお、図2と同様の機能を備える構成部は同一の符号を付し説明を省略する。
【0028】
サーバ50−2は、秘密鍵であるKS56と、復号部57と、認証処理部53bと、データ54と、暗号化部55とを備えている。復号部57は、KS56を用いて記憶装置60−2で暗号化された乱数R1を復号する。認証処理部53bは、メディア鍵KMの代わりに乱数R1を用いて記憶装置60−2との間の認証処理を行う。
【0029】
アクセス装置70−2は、KS56と、復号部77と、認証処理部73bと、データ74と、復号部75とを備えている。復号部77は、KS56を用いて記憶装置60−2で暗号化された乱数R2を復号する。認証処理部73bは、メディア鍵KMの代わりに乱数R2を用いて記憶装置60−2との間の認証処理を行う。
【0030】
記憶装置60−2は、秘密鍵(KS56)に対応する公開鍵であるKP81と、乱数発生部82と、暗号化部83、84と、認証部63bと、復号部64と、暗号化部65と、データ記憶部66aとを備えている。乱数発生部82は、認証に用いる乱数R1、R2を発生する。暗号化部83、84は、乱数R1、R2を暗号化する。なお、図3では暗号化部83、84を分けて記載しているが、1つの暗号化部により構成してもよい。認証部63bは、乱数R1またはR2を用いて秘匿領域66bへのアクセスを認証する。
【0031】
このように、記憶装置60−2は公開鍵(KP81)を保持している。書き込みの際は、記憶装置60−2が乱数R1を発生し、KP81で乱数R1を暗号化してサーバ50−2に送る。サーバ50−2は、暗号化された乱数R1を秘密鍵であるKS56で復号した乱数R1を得て、鍵交換KEに利用する。記憶装置60−2でも同じ乱数R1を鍵交換KEに利用するため、同一の共通鍵KT1が得られる。読出しの際の手続きも同様である。同一の秘匿領域66bに読み書きするための認証情報KSは同一である。攻撃者が、アクセス装置70−2を解析し、不正にKS56を取得したとする。その場合、攻撃者はサーバ50−2側の鍵交換KEと同じ手続きによって秘匿領域66bにデータを書き込むことが可能となる。
【0032】
そこで、第1の実施形態にかかる記憶装置100は、秘匿領域66bに対する書込みを許諾する認証情報(書込認証情報)と、秘匿領域66bからの読出しのみ許諾する認証情報(読出認証情報)とを区別して格納する。秘匿領域66bへの書込みコマンドを受信した場合、記憶装置100は、書込認証情報を選択してコマンドの送信元との間で認証を行う。秘匿領域66bからのデータの読出しコマンドを受信した場合、記憶装置100は、読出認証情報を選択してコマンドの送信元との間で認証を行う。これにより、記憶装置100の秘匿領域66bには、書込認証情報を保持する装置(例えばサーバ10)のみがデータを書き込むことが可能となる。
【0033】
記憶装置100のデータを利用するアクセス装置200は、一般にユーザーの手元に存在するため、不正なプログラムの解析などによる攻撃を受け易い。しかし、アクセス装置200は、読出認証情報しか保持していないため、仮にアクセス装置200が解析されて読出認証情報が不正に読み取られたとしても、秘匿領域66bのデータを改ざんすることはできない。
【0034】
図4は、第1の実施形態にかかるコンテンツ配信システムの各装置(サーバ10、記憶装置100、アクセス装置200)の詳細な機能構成の一例を示すブロック図である。なお、図2と同様の機能を備える構成部は同一の符号を付し説明を省略する。
【0035】
サーバ10は、コマンド生成部11と、デバイス鍵51と、MKB処理部52と、認証処理部53と、データ54と、暗号化部55とを備えている。コマンド生成部11は、秘匿領域66bに対するアクセスを要求するコマンドを生成する。例えば、コマンド生成部11は、秘匿領域66bに対する書込みを要求する書込みコマンドを生成する。
【0036】
図5は、書込みコマンドのフォーマットの一例を示す図である。図5の例では、書込みコマンドのサイズは512バイトである。最初の1バイト(アドレス=0)は、コマンドが書込みコマンドであることを表すコマンド番号であり、ここでは「0xF0」である。2バイト目は、書き込みコマンドでは常に「0x00」である。3バイト目〜6バイト目は、データを書込む先(秘匿領域66b内)のセクター番号である。セクターとはデータの書き込み単位の一例であり、例えば1セクターは512バイトである。セクター番号は、セクターを識別する番号である。1セクターは512バイトに限られるものではないし、セクター以外の任意の単位をデータの書き込み単位とすることができる。
【0037】
書込みコマンドの7バイト目以降は、「0」でなければならない。書込みコマンドに続いて、512バイトの書込みデータが送られる。記憶装置100は、書込みデータを、秘匿領域66b内の書込み先セクター番号で指定されたセクターに記録する。
【0038】
図4に戻り、アクセス装置200は、コマンド生成部201と、コマンド送信部202と、MKB処理部72と、認証処理部73と、データ74と、復号部75とを備えている。コマンド生成部201は、秘匿領域66bからのデータの読出しを要求する読出しコマンドを生成する。コマンド送信部202は、生成された読出しコマンドを記憶装置100に送信する。
【0039】
図6は、読出しコマンドのフォーマットの一例を示す図である。図6の例では、読出しコマンドのサイズは512バイトである。最初の1バイトは、コマンドが読出しコマンドであることを表すコマンド番号である。ここでは「0x0F」である。2バイト目は、コマンドの送信元の装置を識別するための情報である。例えば2バイト目はアクセス装置200が発行する読出しコマンドでは「0xFF」であり、サーバが発行する読出しコマンドでは「0x0F」である。3バイト目〜6バイト目は、データを読み出す先(秘匿領域66b内)のセクター番号である。読出しコマンドの7バイト目以降は「0」でなければならない。読出しコマンドに続いて、512バイトの読出しデータが記憶装置100から読み出される。記憶装置100は、読出しデータを、秘匿領域内の読出し先セクター番号で指定されたセクターから読み出す。
【0040】
図4に戻り、記憶装置100は、コマンド受信部101と、認証情報選択部102と、認証情報記憶部103と、導出部104と、MKB61bと、認証部63と、復号部64と、暗号化部65と、データ記憶部66aとを備えている。
【0041】
コマンド受信部101は、サーバ10およびアクセス装置200から送信されたアクセス要求のコマンドを受信する。コマンドは、少なくとも書込みコマンドと読出しコマンドとを含む。
【0042】
認証情報記憶部103は、認証情報を記憶する不揮発性メモリなどの記憶部である。図7は、認証情報記憶部103に記憶される認証情報のデータ構造の一例を示す図である。認証情報記憶部103は、認証情報と、認証情報の属性とを対応づけて記憶する。属性は、認証情報が書込認証情報であるか、読出認証情報であるかを示す情報(フラグ)である。図7の例では、2バイトの数値である「0x0101」および「0x0000」が、それぞれ書込認証情報および読出認証情報であることを示す属性である。
【0043】
認証情報は、メディア鍵などの認証情報のデータ自体を記憶してもよいし、メディア鍵を導出するための関数のポインタなどを記憶してもよい。図7では、最初の16バイトに書込認証情報を導出するための関数fのポインタが設定された例が示されている。なお、本実施形態では、関数fは導出部104を呼び出す関数である。図7の例では、18バイト目から、読出認証情報であるメディア鍵KM2のデータが書き込まれており、次の2バイトは読出認証情報であることを示す属性の数値(0x0000)である。
【0044】
なお、認証情報選択部102が認証情報を記憶するように構成してもよい。例えば、認証情報記憶部103を認証情報選択部102の内部に備えてもよい。
【0045】
図4に戻り、認証情報選択部102は、受信されたコマンドが書込みコマンドの場合に、認証に用いる認証情報として書込認証情報を選択する。また、認証情報選択部102は、受信されたコマンドが読出しコマンドの場合に、認証に用いる認証情報として読出認証情報を選択する。例えば、認証情報選択部102は、コマンドの最初の1バイトが「0xF0」か「0x0F」かにより、受信したコマンドが書込みコマンドであるか読出しコマンドであるかを認識する。認証情報選択部102は、認証情報記憶部103を参照し、認識したコマンドの種別に対応する属性の認証情報を選択する。
【0046】
導出部104は、MKB61aと、デバイス鍵104aと、MKB処理部104bとを備えている。MKB処理部104bは、デバイス鍵104aを用いてMKB61aをMKB処理し、書込認証情報であるメディア鍵KM1を導出する。導出部104は、導出したメディア鍵KM1を、鍵交換KEを行う認証部63に引き渡す。
【0047】
MKB61aは読み書き許諾用MKBであり、MKB61bは読出し許諾用MKBである。MKB61aおよびMKB61bは、デバイス鍵で処理された場合、それぞれ互いに異なるメディア鍵KM1およびKM2を生成する。本実施形態では、メディア鍵KM1が書込認証情報であり、メディア鍵KM2が読出認証情報である。本実施形態で、記憶装置100はKM1を内部に保持しておらず、デバイス鍵を用いて導出するようになっている。
【0048】
なお、メディア鍵KM1を導出する導出部104を備える代わりに、認証情報記憶部103にメディア鍵KM1を記憶するように構成してもよい。また、メディア鍵KM2を導出部104と同様の処理により導出するように構成してもよい。
【0049】
次に、このように構成された第1の実施形態にかかる記憶装置100による秘匿領域66bへのアクセス処理について図8を用いて説明する。図8は、第1の実施形態におけるアクセス処理の全体の流れを示すフローチャートである。
【0050】
まず、コマンド受信部101が、サーバ10またはアクセス装置200から送信されたコマンドを受信する(ステップS101)。認証情報選択部102は、受信されたコマンドが書込みコマンドであるか否かを判断する(ステップS102)。図5および図6のような形式のコマンドを用いる場合、認証情報選択部102は、コマンドの最初の1バイトが「0xF0」である場合に、書込みコマンドであると判断する。
【0051】
受信されたコマンドが書込みコマンドでない場合(ステップS102:No)、認証情報選択部102は、さらにコマンドがサーバ10から送信されたか否かを判断する(ステップS103)。例えば、認証情報選択部102は、コマンドの2バイト目が「0x0F」である場合に、サーバ10から送信されたコマンド(読出しコマンド)であると判断する。
【0052】
コマンドがサーバ10から送信されていないと判断した場合(ステップS103:No)、すなわち、アクセス装置200からコマンドが送信された場合、認証情報選択部102は、認証情報として読出認証情報を選択する(ステップS104)。次に、認証部63は、選択された読出認証情報を用いて、送信元であるアクセス装置200との間で認証処理を実行する(ステップS105)。認証された場合は、アクセス装置200は、秘匿領域66bからデータを読み出す(ステップS106)。
【0053】
ステップS103でコマンドがサーバ10から送信されたと判断した場合(ステップS103:Yes)、認証情報選択部102は、認証情報として書込認証情報を選択する(ステップS107)。サーバ10は、データを読み出す場合にも書込認証情報を用いて認証を行うためである。
【0054】
認証部63は、選択された書込認証情報を用いて、送信元であるサーバ10との間で認証処理を実行する(ステップS108)。認証された場合は、サーバ10は、秘匿領域66bからデータを読み出す(ステップS109)。
【0055】
ステップS102で受信されたコマンドが書込みコマンドであると判断した場合(ステップS102:Yes)、認証情報選択部102は、認証情報として書込認証情報を選択する(ステップS110)。認証部63は、選択された書込認証情報を用いて、送信元であるサーバ10との間で認証処理を実行する(ステップS111)。認証された場合は、サーバ10は、秘匿領域66bに対してデータを書き込む(ステップS112)。
【0056】
次に、本実施形態での秘匿領域66bへのデータ書込み動作についてさらに具体的に説明する。
【0057】
サーバ10のコマンド生成部11は、図5に示すような形式の書込みコマンドを生成し、生成した書込みコマンドを記憶装置100に送る。記憶装置100のコマンド受信部101は、書込みコマンドを受信し認証情報選択部102に送る。
【0058】
認証情報選択部102は、コマンドの最初の1バイトを読んで、受信したコマンドが書込みコマンドであることを認識する。認証情報選択部102は、認証情報記憶部103を参照して書込認証情報を探す。図7の例では関数fのポインタが書込認証情報のフラグ(属性)に対応しているので、認証情報選択部102は関数fを呼び出す。すなわち、認証情報選択部102は、導出部104に書込認証情報の導出を指示する。導出部104は、デバイス鍵104aを用いてMKB61aを処理し、書込認証情報であるメディア鍵KM1を得る。導出部104は、鍵交換KEを実行するために認証部63にメディア鍵KM1を引き渡す。
【0059】
一方、サーバ10は記憶装置100からMKB61aを読み取り、サーバ10のMKB処理部52に入力する。サーバ10のMKB処理部52はデバイス鍵51を読み込み、デバイス鍵51によってMKB61aを処理する。デバイス鍵51がMKB61aによって無効化されている場合、サーバ10のMKB処理部52はエラーを出力し、サーバ10は書き込み動作を終了する。一方、デバイス鍵51がMKB61aによって無効化されていない場合は、サーバ10のMKB処理部52はメディア鍵KM1を出力する。サーバ10のMKB処理部52は出力したメディア鍵KM1を、鍵交換KEを行う認証処理部53に渡す。鍵交換KEでは、相互に所定の方法で乱数を交換し、サーバ10と記憶装置100の双方で共有鍵KT1が生成される。鍵交換KEは、例えば、非特許文献1にAKE(Authentication and Key Exchange)として記載されている。
【0060】
サーバ10は、512バイトの書き込みデータを暗号化部55に入力する。暗号化部55は、認証処理部53から共通鍵KT1を受け取って書込みデータを暗号化し、記憶装置100に送る。
【0061】
記憶装置100は、暗号化された書込みデータ(暗号化書込みデータ)を受け取ると、暗号化書込みデータを復号部64に入力する。復号部64は、認証部63から共通鍵KT1を受け取り、受信した暗号化書込みデータを復号する。復号部64は、復号した書込みデータを出力する。記憶装置100は、書き込みデータを秘匿領域に記録する。
【0062】
次に、本実施形態での秘匿領域66bからのデータ読出し動作についてさらに具体的に説明する。以下では、アクセス装置200が記憶装置100の秘匿領域66bからデータを読み出す場合を考える。
【0063】
記憶装置100のコマンド受信部101は、アクセス装置200のコマンド送信部202により送信された読出しコマンドを受信し、認証情報選択部102に送る。認証情報選択部102は、コマンドの最初の1バイトを読んで、受信したコマンドが読出しコマンドであることを認識する。次に、認証情報選択部102は、受信したコマンドの2バイト目を読み、アクセス装置200が発行した読出しコマンドであることを認識する。そこで、認証情報選択部102は、認証情報記憶部103を参照して読出認証情報を探す。図7の例では、メディア鍵KM2のデータが読出認証情報のフラグ(属性)に対応しているので、認証情報選択部102は、メディア鍵KM2を認証部63に引き渡す。もし、受信した読出しコマンドの2バイト目が「0x0F」であった場合、当該読出しコマンドはサーバ10によって発行されたものである。その場合、認証情報選択部102は、認証情報記憶部103を参照して書込認証情報を探す。
【0064】
アクセス装置200は、記憶装置100からMKB61bを読み取り、MKB処理部72に入力する。MKB処理部72は、デバイス鍵71を読み込み、デバイス鍵71によってMKB61bを処理する。デバイス鍵71がMKB61bによって無効化されている場合、MKB処理部72はエラーを出力し、アクセス装置200は読出し動作を終了する。一方、デバイス鍵71がMKB61bによって無効化されていない場合は、MKB処理部72はメディア鍵KM2を出力する。MKB処理部72は、出力したメディア鍵KM2を認証処理部73に渡す。鍵交換KEでは、相互に所定の方法で乱数を交換し、アクセス装置200と記憶装置100の双方で共有鍵KT2が生成される。
【0065】
記憶装置100は、512バイトの読出しデータを、読出しコマンドで指定された秘匿領域66b内のセクターから読出し、暗号化部65に入力する。暗号化部65は、認証部63から共通鍵KT2を受け取って読出しデータを暗号化し、アクセス装置200に送る。アクセス装置200は、暗号化された読出しデータ(暗号化読出しデータ)を復号部75に入力する。復号部75は、認証処理部73から共通鍵KT2を受け取り、共通鍵KT2により、受信した暗号化読出しデータを復号する。復号部75は復号した読出しデータを出力する。
【0066】
このように、第1の実施形態では、記憶装置100の秘匿領域66bに対して、書込認証情報を保持するサーバ10のみがデータを書き込むことが可能である。攻撃を受け易いアクセス装置200は、読出認証情報しか持たないため、仮にアクセス装置200が解析されて読出認証情報が不正に読み取られたとしても、秘匿領域66bのデータを改ざんすることはできない。
【0067】
従って、当該秘匿領域内のデータの不正な書き換えが防止され、ユーザーIDや端末ID、バインディングID、およびタイトル鍵などの重要なデータを不正な改竄やコピーから守ることができる。サーバ10と記憶装置100の間の認証の信頼性が高い故に、サーバ10が読み出す秘匿領域66b内のデータの信頼性は高い。これを、コンテンツ利用端末20の特定に利用することも可能である。また、サーバ10と記憶装置100の間の認証の信頼性が高い故に、秘匿領域66b内のデータのサーバ10による消去および変更は確実性が高い。これを、例えば、記憶装置100の初期化に利用することも可能である。
【0068】
(第2の実施形態)
第1の実施形態では、1つの秘匿領域を備え、この秘匿領域にアクセスするために2つの認証情報である書込認証情報と読出認証情報とのいずれかを選択した。第2の実施形態では、秘匿領域に含まれる複数の秘匿セクターそれぞれに対して2つの認証情報を割り当てる例を説明する。また、第2の実施形態では、認証情報として公開鍵および秘密鍵のペアを用いる。
【0069】
図9は、第2の実施形態にかかるコンテンツ配信システムの各装置(サーバ10−2、記憶装置100−2)の詳細な機能構成の一例を示すブロック図である。なお、第1の実施形態のブロック図である図4と同様の機能を備える構成部は同一の符号を付し説明を省略する。
【0070】
また、以下では、読出しコマンドをサーバ10−2が送信する場合を例に説明する。このため、図9では、記憶装置100−2の左側に、書込みコマンドの送信に関わるサーバ10−2の構成部を記載するとともに、記憶装置100−2の右側に、読出しコマンドの送信に関わるサーバ10−2の構成部を分けて記載している。実際には、両側の各構成部が1つのサーバ10−2に備えられている。なお、読出しコマンドをアクセス装置が送信する場合の処理は、送信元が異なるのみであり、サーバ10−2が読出しコマンドを送信する場合の処理と同様である。
【0071】
サーバ10−2は、コマンド生成部11と、秘密鍵51−2と、認証処理部53−2と、データ54と、暗号化部55と、復号部56と、を備えている。秘密鍵51−2は、サーバ10−2に割り当てられた秘密鍵である。以下では説明の便宜上、サーバ10−2が、秘匿セクター100に対応する秘密鍵であるKS100−1を秘密鍵51−2として記憶しているものとする。なお、秘匿セクターn(0≦n≦(秘匿セクター数−1))とは、(n+1)番目の秘匿セクターであることを意味する。
【0072】
認証処理部53−2は、メディア鍵KM1の代わりにKS100−1を認証情報として用いる点が、図4の認証処理部53と異なっている。復号部56は、記憶装置100−2から読み出され、暗号化されたデータを復号する。
【0073】
記憶装置100−2は、コマンド受信部101と、認証情報選択部102−2と、認証情報記憶部103−2と、認証部63−2と、復号部64と、暗号化部65と、データ記憶部66aとを備えている。
【0074】
認証情報記憶部103−2は、認証情報として公開鍵を記憶する。対応する秘密鍵は、サーバ10またはアクセス装置200が保持する。また、認証情報記憶部103−2は、秘匿セクターごとに認証情報を記憶する。
【0075】
ここで秘匿セクターについて説明する。秘匿セクターとは、秘匿領域に確保されたセクターのことであり、セクターには0から順にセクターを識別する番号が割り当てられる。例えば、秘匿セクター0から秘匿セクター65535まで、65536個の秘匿セクターを秘匿領域に確保するように構成できる。
【0076】
各秘匿セクターには、第1の実施形態のように、それぞれ書込認証情報と読出認証情報とが割り当てられる。すなわち、各秘匿セクターは、独立に第1の実施形態の秘匿領域のように扱うことができる。各秘匿セクターに対する書込みコマンドと読出しコマンドのフォーマットは、第1の実施形態と同じである。しかし、本実施形態では各秘匿セクターが独立の秘匿領域であるため、認証情報選択部102−2の動作が第1の実施形態とは異なっている。認証情報選択部102−2の機能の詳細については後述する。
【0077】
認証部63−2は、メディア鍵KM1およびKM2の代わりにKS100−1を認証情報として用いる点が、図4の認証部63と異なっている。
【0078】
次に、認証情報記憶部103−2の詳細についてさらに説明する。認証情報記憶部103−2は、各秘匿セクターの書込認証情報と読出認証情報の組(例えば65536組)を保持している。図10は、認証情報記憶部103−2に記憶される認証情報のデータ構造の一例を示す図である。認証情報記憶部103−2は、更新フラグと、認証情報と、認証情報の属性とを対応づけて記憶する。秘匿情報の属性の意味は図7と同様である。すなわち、「0x0101」は書込認証情報であることを示し、「0x0000」は読出認証情報であることを示す。例えば、KP1−1は秘匿セクター1の書込認証情報であり、KP1−2は秘匿セクター1の読出認証情報である。更新フラグは、秘匿セクターの認証情報を更新して良いか否かを示すフラグである。更新フラグの利用例は、第4の実施形態で詳述する。本実施形態では更新フラグは必須ではなく、認証情報記憶部103−2に認証情報と属性のみを対応づけて記憶するように構成してもよい。
【0079】
次に、本実施形態での秘匿領域66bへのデータ書込み動作についてさらに具体的に説明する。以下では、101番目の秘匿セクター100へデータを書き込む場合を例に説明する。
【0080】
秘匿セクター100への書込みに当たって、サーバ10−2のコマンド生成部11は、図11に示すような書込みコマンドを生成し記憶装置100−2に送る。記憶装置100のコマンド受信部101は、書込みコマンドを受信し、書込みコマンドを認証情報選択部102−2に送る。認証情報選択部102−2は、書込みコマンドの第1バイト(0xF0)を読んで、受信したコマンドが書込みコマンドであることを認識する。認証情報選択部102−2は、第3バイト以降の4バイトを読んで、書込みコマンドが101番目の秘匿セクター100に対する書込要求であることを認識する。そこで認証情報選択部102−2は、認証情報記憶部103−2に記憶されている図10のようなデータを調べ、101組目の認証情報を見出す。すなわち、KP100−1とKP100−2と(図10には図示せず)を見出す。認証情報選択部102−2は、KP100−1とKP100−2の属性を調べ、書込認証情報であるKP100−1を選択する。認証情報選択部102−2は、選択した認証情報KP100−1を認証部63−2に送る。以上が、書込みコマンドを受信した場合の認証情報選択部102−2の動作である。サーバ10−2との鍵交換の後、サーバ10−2から記憶装置100−2に対して、512バイトのデータ書き込みが行われる。記憶装置100−2は、認証部63−2が生成した共通鍵KT1を用いて書込みデータの復号を行い、秘匿領域66b内の秘匿セクター100に復号された書込みデータを記録する。
【0081】
次に、本実施形態での秘匿領域66bからのデータ読出し動作についてさらに具体的に説明する。以下では、101番目の秘匿セクター100からデータを読み出す場合を例に説明する。
【0082】
秘匿セクター100からの読出しに当たって、サーバ10−2のコマンド生成部11は、図12に示すような読出しコマンドを生成し記憶装置100−2に送る。記憶装置100−2のコマンド受信部101は、読出しコマンドを受信し、読出しコマンドを認証情報選択部102−2に送る。認証情報選択部102−2は、読出しコマンドの第1バイト(0x0F)を読んで、受信したコマンドが読出しコマンドであることを認識する。認証情報選択部102−2は、第2バイト(0x0F)を読み、読出しコマンドがサーバ10−2によって発行されたものであることを認識する。すなわち、認証情報選択部102−2は、書込認証情報を選択すべきことを認識する。サーバ10−2が読み書きに使用するのは書込認証情報であるからである。
【0083】
次に、認証情報選択部102−2は、第3バイト以降の4バイトを読んで、読出しコマンドが101番目の秘匿セクター100からの読出要求であることを認識する。そこで認証情報選択部102−2は、認証情報記憶部103−2に記憶されている図10のようなデータを調べ、101組目の認証情報を見出す。すなわち、KP100−1とKP100−2とを見出す。認証情報選択部102−2は、KP100−1とKP100−2の属性を調べ、書込認証情報であるKP100−1を選択する。認証情報選択部102−2は、選択した認証情報KP100−1を認証部63−2に送る。以上が、読込みコマンドを受信した場合の認証情報選択部102−2の動作である。サーバ10−2との鍵交換の後、サーバ10−2は記憶装置100から512バイトのデータ読出しを行う。記憶装置100−2は、秘匿セクター100に記録されているデータを読出し、認証部63−2が生成した共通鍵KT2を用いて読出しデータを暗号化し、暗号化したデータをサーバ10−2に対して送出する。
【0084】
このように、第2の実施形態にかかる記憶装置100−2では、秘匿領域を分割したセクターごとに書込認証情報と読出認証情報を記憶し、書込認証情報を保持するサーバ10−2のみが、対応するセクターにデータを書き込むことが可能となる。
【0085】
(第3の実施形態)
第2の実施形態では、予め認証情報(書込認証情報と読出認証情報)が、認証情報記憶部103−2に設定されていうという前提で、秘匿セクターについて説明を行った。しかし、記憶装置100−2が製造されて工場から出荷された時点で、各秘匿セクター用に認証情報が認証情報記憶部103−2に設定されているとは限らない。
【0086】
第3の実施形態では、各秘匿セクター向けに認証情報を設定する方法について述べる。以下では、第1番目の秘匿セクターである秘匿セクター0を用いて認証情報を設定する例について述べる。
【0087】
図13は、第3の実施形態にかかるコンテンツ配信システムの構成例を示すブロック図である。第3の実施形態にかかるコンテンツ配信システムは、記憶装置100−3と、記憶装置100−3の認証情報を初期化する初期化装置300とを備えている。
【0088】
初期化装置300は、コマンド生成部301と、秘密鍵302と、認証処理部303と、更新情報304と、暗号化部305と、を備えている。
【0089】
コマンド生成部301は、記憶装置100−3の初期化を要求する初期化コマンド、および、認証情報の更新を要求する更新コマンドを生成する。
【0090】
記憶装置100−3は、例えば、工場出荷段階では初期化されていない。初期化とは、データ記憶部66a内に秘匿領域66bを確保して、認証情報を書込み、秘匿領域66bを使用可能にすることである。記憶装置100−3は、例えば、コンテンツ利用端末20を製造するメーカーで初期化される。この初期化には初期化コマンドが用いられる。図14は、初期化コマンドのフォーマットの一例を示すである。
【0091】
初期化コマンドの最初の1バイトは、コマンドが初期化コマンドであることを表すコマンド番号である。初期化コマンドのコマンド番号は「0x01」である。初期化コマンドの第2バイトは常に「0x00」と定められている。3バイト目からの4バイトに秘匿領域66bとして確保するセクター数を記す。例えば1セクターは512バイトである。秘匿領域66bとして確保するセクター数を、総セクター数に対して制限するように構成してもよい。例えば、秘匿領域66bとして確保するセクター(秘匿セクター)の個数を、総セクター数の1/8以下とするように構成してもよい。ここでは、64×1024=65536個のセクターを秘匿領域に確保する。7バイト目から25バイト目までの20バイトは、秘匿セクター0に設定すべき書込認証情報である公開鍵KP0−1である。
【0092】
秘匿セクター0は特別な秘匿セクターである。秘匿セクター0に読出認証情報は設定されず、例えば常に0が設定される。秘匿セクター0には書込認証情報のみが設定可能である。初期化コマンド(コマンド番号0x01)によって、秘匿セクター0の書込認証情報が設定される(図14参照)。初期化コマンドの発行は、記憶装置100−3に対して一度限りである。二度目以降の初期化コマンド発行は、記憶装置100−3によって無視されるかエラーになる。すなわち、秘匿セクター数の設定も、秘匿セクター0に設定する書込認証情報の設定も、ただ一度限りしかできない。
【0093】
図13に戻り、秘密鍵302は、記憶装置100−3に記憶される書込認証情報(公開鍵KP0−1)に対応する書込認証情報としての秘密鍵である。以下では、この秘密鍵302を秘密鍵KS0−1という場合がある。認証処理部303は、認証情報として秘密鍵KS0−1を用いて記憶装置100−3との間の認証処理を行う。更新情報304は、初期化コマンドにより秘匿領域66bを確保した後に、秘匿領域66bの各秘匿セクターに記憶すべき認証情報を含む情報である。更新情報304の詳細については後述する。暗号化部305は、認証処理部303が認証処理で出力した共通鍵KTを用いて更新情報304を暗号化する。
【0094】
記憶装置100−3は、コマンド受信部101と、認証情報選択部102−2と、認証情報記憶部103−2と、初期化フラグ記憶部111と、秘匿領域情報記憶部112と、初期化部113と、認証情報設定部114と、データ記憶部66aとを備えている。なお、図13では、認証情報の初期化に関わる構成部のみを記載しているが、記憶装置100−3には、さらに第2の実施形態の記憶装置100−2(図9)と同様の構成部を備えることができる。
【0095】
コマンド受信部101、認証情報選択部102−2、認証情報記憶部103−2、および、データ記憶部66aは、第2の実施形態と同様の機能を備えるため同一の符号を付し、説明を省略する。
【0096】
初期化フラグ記憶部111は、初期化済みか否かを表す情報(初期化フラグ)を記憶する記憶部であり、例えば不揮発性メモリにより構成される。初期化フラグは、例えば、初期化済みの場合に1が設定され、初期化していない場合に0が設定される。この場合、初期化フラグ記憶部111は、製造時には0が記録されている。
【0097】
秘匿領域情報記憶部112は、秘匿領域の設定内容を表す情報を記憶する記憶部であり、例えば不揮発性メモリにより構成される。秘匿領域情報記憶部112は、製造時に記憶装置100−3のメモリ総容量(データ記憶部66aの記憶領域の総容量、セクター単位)が記録されている。さらに、秘匿領域情報記憶部112には、秘匿領域が開始されるセクターを表す秘匿領域開始セクターを記録することができる。製造時には、秘匿領域開始セクターにはメモリ総容量と同じ数値が格納されている。すなわち、秘匿領域は存在しない。
【0098】
初期化部113は、初期化フラグ記憶部111の初期化フラグを参照し、初期化フラグが初期化済みでないことを示す値(例えば0)の場合に、初期化動作を実行する。認証情報設定部114は、初期化コマンドによる初期化の後に、更新情報304により認証情報記憶部103−2に格納されている認証情報を更新する処理を行う。
【0099】
以下に、初期化動作の流れについて説明する。初期化装置300のコマンド生成部301が図14のような初期化コマンドを生成し、記憶装置100−3に送信する。記憶装置100−3のコマンド受信部101が、送信された初期化コマンドを受信する。コマンド受信部101は、最初の1バイトを読んで、受信したコマンドが初期化コマンドであることを認識する。コマンド受信部101は、初期化コマンドを初期化部113に送る。初期化部113は、先ず初期化フラグ記憶部111の値を読み、その値が0でなければ初期化動作を停止する。初期化フラグ記憶部111の値が0であれば、初期化部113は、初期化フラグ記憶部111に1を記録して以後の初期化動作を継続する。これによって、初期化の回数は1回に限定される。
【0100】
初期化部113は、受信した初期化コマンドの3バイト目以降の4バイト分を読み、秘匿領域66bとして確保すべきセクター数(秘匿セクター数)を知る。初期化部113は、秘匿領域情報記憶部112からメモリ総容量を読出し、それが秘匿セクター数の8倍以上であることを確認する。例えば、メモリ総容量が8GB(=16Mセクター)であるとすると、図14に記載の秘匿セクター数64K(=65536)は1/8以下である。もし、メモリ総容量が確保すべき秘匿セクター数の8倍未満であれば、記憶装置100−3は初期化を停止する。メモリ総容量が、確保すべき秘匿セクター数の8倍以上であった場合、初期化部113は、秘匿領域情報記憶部112の秘匿領域開始セクターに、(メモリ総容量)−(秘匿セクター数)を記録する。総容量が16Mセクターで、確保すべき秘匿セクター数が64Kセクターである場合、初期化部113は、秘匿領域情報記憶部112の秘匿領域開始セクターに、16320×1024=16711680を記録する。すなわち、セクター番号16711680からセクター番号16777215までの64Kセクターが秘匿領域66bとなる。なお、図13では、データ記憶部66aのうち、秘匿領域66b以外の領域を通常領域66cとして表している。
【0101】
次に、初期化部113は、初期化コマンドの7バイト目から16バイト分を読み、その値を秘匿セクター0用の書込認証情報(すなわち、KP0−1)として認識する。初期化部113は、この値を認証情報記憶部103−2に記録する。図10の第1行目がこのようにして設定された値を示している。初期化コマンドによる初期化の段階では、図10の3行目以降の認証情報はすべて0である。
【0102】
秘匿セクター0以外の秘匿セクターを使用するためには、各秘匿セクターに0でない認証情報を設定しなければならない。これを行うのが更新コマンド(コマンド番号0x03とする)である。図15は、更新コマンドのフォーマットの一例を示すである。
【0103】
更新コマンドの最初の1バイトは、コマンドが更新コマンドであることを表すコマンド番号「0x03」である。更新コマンドの第2バイトは常に「0x00」と定められている。3バイト目以降には0が設定される。
【0104】
以下、更新コマンド0x03に対する記憶装置100−3と初期化装置300の動作について説明する。まず、初期化装置300のコマンド生成部301は、図15のような更新コマンドを生成して記憶装置100−3に送る。
【0105】
記憶装置100−3のコマンド受信部101が更新コマンドを受信し、当該更新コマンドを認証情報選択部102に送る。認証情報選択部102は、第1バイト(0x03)を読んで、受信したコマンドが更新コマンドであることを認識する。そこで、認証情報選択部102は、認証情報記憶部103−2が格納している図10のようなデータを調べ、1組目の書込認証情報(KP0−1)を見出す。認証情報選択部102は、認証情報KP0−1を認証部63−2に送る。初期化装置300は、保有している秘密鍵KS0−1を認証処理部303に引き渡す。初期化装置300と記憶装置100−3との間で鍵交換KEが行われた後、初期化装置300から記憶装置100に512バイトのデータ書き込みが行われる。このデータに更新情報304が含まれている。
【0106】
図16は、更新情報304のデータ構造の一例を示す図である。第1〜第4バイト目は、更新する秘匿セクターを特定する数値である。第5〜第6バイト目は、更新フラグの値を表す。第7〜第26バイト目は、更新する認証情報を表す。第27〜第28バイト目は、更新する認証情報の属性を表す。第29〜第52バイト目は、第5〜第28バイト目と同様である。図16では、101番目の秘匿セクターの書込認証情報をKP100−1に更新し、読出認証情報をKP100−2に更新する更新情報の例が示されている。
【0107】
記憶装置100−3の復号部64は、鍵交換KEにより生成された共通鍵KTを用いて更新情報を復号し、復号された更新情報を認証情報設定部114に入力する。
【0108】
認証情報設定部114は、図16のような更新情報を受け取り、認証情報記憶部103−2に格納されている認証情報を更新する。初期化直後に認証情報記憶部103−2が格納している認証情報は図17のようになっている。すなわち、初期化コマンドによって、KP0−1のみが書込認証情報として設定されている。図16のような更新情報を受信すると、認証情報設定部114は、101番目の書込認証情報と読出認証情報に、それぞれKP100−1とKP100−2を設定する。また、認証情報設定部114は、それぞれの更新フラグとして図16の5〜6バイト目と29〜30バイト目の値を設定し、さらに、それぞれの属性として図16の27〜28バイト目と51〜52バイト目の値を設定する。その結果、認証情報記憶部103−2が格納する認証情報は図18のようになる。
【0109】
このように、第3の実施形態では、例えばコンテンツ利用端末20を製造するメーカーが保有する初期化装置300により、秘匿領域に記憶する認証情報を初期化する機能を実現できる。なお、第3の実施形態では、第2の実施形態のように複数の秘匿セクターを含む秘匿領域を初期化する例について説明したが、第1の実施形態のような秘匿領域に対しても同様の機能を実現できる。
【0110】
(第4の実施形態)
第3の実施形態では、初期化装置300が秘匿領域66bを初期化し、認証情報を設定することを述べた。初期化装置300と秘密鍵KS0−1とは、例えば、コンテンツ利用端末20を製造するメーカーが保有しており、それらを用いて初期化と認証情報の設定を行う。しかし、各秘匿領域(秘匿セクター)に書込みを行うサーバを保有するコンテンツ配信業者に対して、メーカーが認証情報を更新する権限を与えたい場合がある。
【0111】
第4の実施形態にかかる記憶装置100−4は、このような機能を実現する方法について説明する。
【0112】
図19は、第4の実施形態にかかるコンテンツ配信システムの構成例を示すブロック図である。第4の実施形態にかかるコンテンツ配信システムは、サーバ10−4と、記憶装置100−4と、を備えている。
【0113】
サーバ10−4は、コマンド生成部11−4と、秘密鍵51−2と、認証処理部53−2と、更新情報54−4と、暗号化部55と、を備えている。秘密鍵51−2は、サーバ10−4に割り当てられた秘密鍵である。以下では説明の便宜上、サーバ10−4が、秘匿セクター100に対応する秘密鍵であるKS100−1を秘密鍵51−2として記憶しているものとする。
【0114】
認証処理部53−2、および、暗号化部55は、第2の実施形態と同様の機能を備えるため同一の符号を付し、説明を省略する。
【0115】
コマンド生成部11−4は、サーバ10−4から認証情報の更新を要求する更新コマンドを生成する機能をさらに備える点が、上記各実施形態のコマンド生成部11と異なっている。図20は、更新コマンドのフォーマットの一例を示すである。
【0116】
なお、図15で説明した更新コマンドは、秘匿領域を確保した後に、秘匿セクターを使用可能とするために認証情報を設定(更新)するためのコマンドである。これに対し、図20の更新コマンドは、既に設定されている認証情報を異なる値等に更新するために用いるコマンドである。以下では、図20の更新コマンドのコマンド番号を「0x30」とし、図15の更新コマンド(コマンド番号「0x03」)と区別する。
【0117】
図20に示すように、更新コマンドの最初の1バイトは、コマンドが更新コマンドであることを表すコマンド番号「0x30」である。更新コマンドの第2バイトは常に「0x00」と定められている。3〜6バイト目には、更新する秘匿セクターを特定する数値が設定される。7バイト目以降には0が設定される。
【0118】
図19に戻り、更新情報54−4は、更新する秘匿セクターに記憶すべき認証情報を含む情報である。図21は、更新情報54−4のデータ構造の一例を示す図である。第1〜第4バイト目は、更新する秘匿セクターを特定する数値である。第5〜第24バイト目は、更新する認証情報を表す。第25〜第26バイト目は、更新する認証情報の属性を表す。第27〜第48バイト目は、第5〜第26バイト目と同様である。図21では、101番目の秘匿セクターの書込認証情報をKP100−1’に更新し、読出認証情報をKP100−2’に更新する更新情報の例が示されている。
【0119】
図19に戻り、記憶装置100−4は、認証情報設定部114−4が、更新情報54−4により認証情報記憶部103−2に格納されている認証情報を更新する機能をさらに備える点が、第3の実施形態の記憶装置100−3(図13)と異なっている。
【0120】
なお、コンテンツ配信業者は、例えば初期化を行ったメーカーから、割り当てられた秘匿領域(秘匿セクター)に関する認証情報を受け取る。それによって初めて当該秘匿領域への読み書きが可能になる。先の図18の例では、コンテンツ配信業者は、例えば書込認証情報KP100−1(公開鍵)に対する書込認証情報KS100−1(秘密鍵)と、読出認証情報KP100−2(公開鍵)に対する読出認証情報KS100−2(秘密鍵)とをメーカーから受け取る。当該コンテンツ配信業者は、秘匿セクター100に対するサーバ10−4とアクセス装置200とを構築することができる。
【0121】
更新フラグが1である場合、コンテンツ配信業者は、対応する認証情報を更新することができる。
【0122】
以下、更新コマンド0x30に対する記憶装置100−4とサーバ10−4の動作について説明する。サーバ10−4のコマンド生成部11−4は、図20のような更新コマンドを生成して記憶装置100−4に送る。記憶装置100−4のコマンド受信部101が更新コマンドを受信し、当該更新コマンドを認証情報選択部102−2に送る。認証情報選択部102−2は、第1バイト(0x30)を読んで、受信したコマンドが更新コマンドであることを認識する。そこで、認証情報選択部102−2は、更新コマンドの3バイト目以降の4バイトを読み、更新コマンドが秘匿セクター100に対するものであることを認識する。認証情報選択部102−2は、認証情報記憶部103−2が格納している図18のような認証情報を調べ、101組目の書込認証情報(KP100−1)を見出す。認証情報選択部102−2は、認証情報KP100−1を認証部63−2に送る。サーバ10−4側では、保有している秘密鍵51−2(KS100−1)が認証処理部53−2に送られる。サーバ10−4との鍵交換の後、サーバ10−4から記憶装置100−4に512バイトのデータ書き込みが行われる。このデータに更新情報54−4が含まれている。記憶装置100−4の認証部63−2は、鍵交換KEにより生成した共通鍵KTを用いて更新情報54−4を復号し、認証情報設定部114−4に復号された更新情報54−4を入力する。
【0123】
認証情報設定部114−4は、復号された更新情報54−4を受け取り、認証情報記憶部103−2が格納している認証情報を更新する。認証情報記憶部103−2が格納している認証情報が図18のようであったとする。図21のような更新情報54−4を受信すると、認証情報設定部114−4は、101番目の書込認証情報の更新フラグを見る。この値が1である場合のみ、コマンド番号0x30の更新コマンドによって認証情報を更新できる。図18では101番目の書込認証情報について更新フラグの値は0であるから、認証情報設定部114−4は書込認証情報の更新を行わない。
【0124】
次に、認証情報設定部114−4は、101番目の読出認証情報の更新フラグを見る。この値が1であることから、認証情報設定部114−4は、読出認証情報を図21の更新情報54−4中の読出認証情報(KP100−2’)で置き換える。その結果、認証情報選択部102が格納する認証情報は、図18から図22のように更新される。
【0125】
このように、第4の実施形態では、権限を与えられたコンテンツ配信業者等が、記憶装置100−4の認証情報を更新することが可能となる。
【0126】
以上説明したとおり、第1から第4の実施形態によれば、秘匿領域に対する書込みを許諾する認証情報と、秘匿領域からの読出しのみ許諾する認証情報とを区別して格納し、書込み要求か読出し要求かに応じて使用する認証情報を変更する。これにより、書込みを許諾する認証情報を保持する装置のみがデータを書き込むことが可能となる。また、攻撃を受け易い装置から、読出しを許諾する認証情報が不正に取得されたとしても、秘匿領域の情報を書き換えられることがない。
【0127】
次に、第1〜第4の実施形態にかかる装置(サーバおよびコンテンツ利用端末)のハードウェア構成について図23を用いて説明する。図23は、第1〜第4の実施形態にかかる装置のハードウェア構成を示す説明図である。
【0128】
第1〜第4の実施形態にかかる装置は、CPU(Central Processing Unit)501などの制御装置と、ROM(Read Only Memory)502やRAM(Random Access Memory)503などの記憶媒体と、ネットワークに接続して通信を行う通信I/F504と、HDD(Hard Disk Drive)、CD(Compact Disc)ドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置と、各部を接続するバス601を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【0129】
なお、本発明の実施形態は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
【符号の説明】
【0130】
10 サーバ
11 コマンド生成部
20 コンテンツ利用端末
30 ネットワーク
51 デバイス鍵
52 MKB処理部
53 認証処理部
54 データ
55 暗号化部
100 記憶装置
101 コマンド受信部
102 認証情報選択部
103 認証情報記憶部
104 導出部
63 認証部
64 復号部
65 暗号化部
66a データ記憶部
66b 秘匿領域
200 アクセス装置
201 コマンド生成部
202 コマンド送信部
72 MKB処理部
73 認証処理部
75 復号部

【特許請求の範囲】
【請求項1】
読出認証情報を用いて認証された場合に読出し可能となり、書込認証情報を用いて認証された場合に書込み可能となる秘匿領域を含むデータ記憶部と、
前記秘匿領域へのデータの書込要求と、前記秘匿領域からのデータの読出要求と、のいずれかのアクセス要求を受信する受信部と、
前記アクセス要求が前記書込要求の場合に前記書込認証情報を選択し、前記アクセス要求が前記読出要求の場合に前記読出認証情報を選択する選択部と、
選択された前記書込認証情報および前記読出認証情報のいずれかを用いて前記秘匿領域へのアクセスを認証する認証部と、
を備えることを特徴とする記憶装置。
【請求項2】
前記書込認証情報と前記読出認証情報とを記憶する認証情報記憶部と、
前記認証情報記憶部へのアクセスが認証された場合に、前記認証情報記憶部に記憶された前記書込認証情報および前記読出認証情報の少なくとも一方を更新する更新部と、をさらに備え、
前記受信部は、さらに、前記認証情報記憶部に記憶された前記書込認証情報および前記読出認証情報の少なくとも一方の更新要求を受信し、
前記選択部は、さらに、前記更新要求が受信された場合に、前記書込認証情報を選択し、
前記認証部は、さらに、前記更新要求が受信された場合に、選択された前記書込認証情報を用いて前記認証情報記憶部へのアクセスを認証すること、
を特徴とする請求項1に記載の記憶装置。
【請求項3】
前記データ記憶部は、相互に異なる前記読出認証情報および相互に異なる前記書込認証情報が対応づけられた複数の前記秘匿領域を含み、
前記受信部は、前記秘匿領域を識別する識別情報を含む前記アクセス要求を受信し、
前記選択部は、前記識別情報の前記秘匿領域に対する前記アクセス要求が前記書込要求の場合に、前記識別情報の前記秘匿領域に対応する前記書込認証情報を選択し、前記識別情報の前記秘匿領域に対する前記アクセス要求が前記読出要求の場合に、前記識別情報の前記秘匿領域に対応する前記読出認証情報を選択すること、
を特徴とする請求項1に記載の記憶装置。
【請求項4】
データを記憶する記憶装置と前記データにアクセスするアクセス装置とを備える情報処理装置であって、
前記記憶装置は、
読出認証情報を用いて認証された場合に読出し可能となり、書込認証情報を用いて認証された場合に書込み可能となる秘匿領域を含むデータ記憶部と、
前記秘匿領域へのデータの書込要求と、前記秘匿領域からのデータの読出要求と、のいずれかのアクセス要求を受信する受信部と、
前記アクセス要求が前記書込要求の場合に前記書込認証情報を選択し、前記アクセス要求が前記読出要求の場合に前記読出認証情報を選択する選択部と、
選択された前記書込認証情報および前記読出認証情報のいずれかを用いて前記秘匿領域へのアクセスを認証する認証部と、を備え、
前記アクセス装置は、
前記読出要求を前記記憶装置に送信する送信部、
を備えることを特徴とする情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate


【公開番号】特開2012−14529(P2012−14529A)
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願番号】特願2010−151420(P2010−151420)
【出願日】平成22年7月1日(2010.7.1)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】