以下、実施の形態について、図面を参照して説明する。尚、実施形態において、同一部分には、同一符号を付している。
図1及至図3を用いてホスト装置及びセキュアストレージの構成、及び認証方法について説明する。
図1は、本実施形態が適用されるストレージシステムを概略的に示すものであり、ホスト装置11及びセキュアストレージ12の構成を示している。
セキュアストレージ12としては、例えばSDカードなどのメモリカードやハードディスク(以下、HDDと称す)などが適用可能である。セキュアストレージ12は、例えばメモリ13と、メモリ13を制御するためのコントローラ14により構成されている。メモリ13としては、例えばNANDフラッシュメモリやHDDなどが考えられ、コントローラ14は各々のメモリの形態に応じて必要とする機能が異なる。
メモリ13及びコントローラ14は同一の製造者によって製造される場合や、それぞれ独立の製造者によって製造される場合がある。
メモリ13は、メモリ周辺回路13aと、記憶部としてのデータ保持領域13bに分類される。データ保持領域13bは、再生専用領域13cと、記録・再生領域13dに分類される。
再生専用領域13cには、後述する例えば映像等のコンテンツが格納される。
記録・再生領域13dは、システムの情報が格納されるシステム領域13e、コンテンツ鍵等のセキュアデータが格納される保護領域13f、及び暗号化されたコンテンツ等のデータが格納される通常領域13gを含んでいる。
メモリ周辺回路13aは、データ保持領域13bに対するデータのアクセス制御、及びコントローラ14とメモリ13のメモリインターフェースに相当するメモリインターフェース制御などを行う。
インターフェースは、メモリ13がNANDフラッシュメモリの場合、NANDインターフェースであり、メモリ13がベアHDDの場合、SATAインターフェースなどである。
コントローラ14は、メモリ制御回路14aと、メモリ認証回路14b、及びROM Area14cにより構成されている。メモリ制御回路14aは、メモリインターフェース15を介してメモリ13を制御する。
ここで、メモリ制御回路14aは、ホスト装置11と、コントローラ14のインターフェースに相当するホストインターフェース制御も行う。
メモリ認証回路14bは、セキュアストレージ12と、ホスト装置11との間の認証に関わる処理を行う。
ホストインターフェース16は、セキュアストレージ12がSDカードの場合、SDインターフェースであり、HDDの場合、USB、又はネットワークインターフェースなどである。
ホスト装置11は、例えばテレビジョン受信機、又はパーソナルコンピュータであるが、これらに限定されるものではない。
ホスト装置11は、ホストインターフェース16を介して、セキュアストレージ12を制御するストレージ制御機能17を有している。この機能を介してホスト装置11は、セキュアストレージ12との間で、データ読み出し、データ記録、認証などの処理を行う。
また、ホスト装置11は、メモリ認証回路14bとの間で認証を行うホスト認証機能18、コンテンツを暗号化/復号化するコンテンツ暗復号機能19、コンテンツの再生や記録などを制御するコンテンツ制御部20、コンテンツを再生するコンテンツ再生部21を有している。
次に、図2及び図3を用いてホスト装置11とセキュアストレージ12との認証方法の例について説明する。
図2は、ホスト装置11からセキュアストレージ12に対してコンテンツを記録する場合の例を示している。
ホスト装置11は、ホストデバイス鍵とホストデバイス証明書のペアを有している。セキュアストレージ12は、メモリ13のシステム領域内にメディアデバイス鍵とメディアデバイス証明書を有する。
ここで、デバイス鍵とデバイス証明書は、公開鍵暗号に基づく構造を有している。具体的には、デバイス証明書にはデバイス鍵に対応するデバイス公開鍵が含まれており、認証する機器同士はデバイス公開鍵を交換して認証を行う。これら公開鍵の交換は、ホスト装置11の認証処理部11A、セキュアストレージ12の認証処理部12Aが行う。認証処理部間の認証ステップは後述する。
さらに、デバイス証明書は、デバイスID、証明書の正当性を保証する電子署名を有している。認証が成立すると、ホスト装置11は、セキュアストレージ12内の保護領域13fに対するアクセスが可能となる。
ホスト装置11の秘匿情報準備部11Bによって準備された秘匿情報、例えばコンテンツの暗号化に用いるコンテンツ鍵などは、メモリ13の保護領域13fに記録される。
一方、秘匿情報はコンテンツの暗復号に用いられ、暗復号器11Cによって暗号化された暗号化コンテンツはセキュアストレージ12内の通常領域13gに記録される。これら認証部11Aの処理、コンテンツを暗号化する暗複合器11Cの処理、及び秘匿情報準備部11Bの処理は、全てコンテンツ制御部20によって制御される。
また、セキュアストレージ12は、コントローラ14に付随しているコントローラユニーク情報としてコントローラID(IDcntr)を有していてもよい。コントローラIDは、認証処理部12Aを介してホスト装置11に提供されてもよい。
さらに、セキュアストレージ12は、メモリ13の再生専用領域13cなどに記録されているメモリユニーク情報として、メモリID(IDmemory)を有していてもよい。メモリIDは認証処理部12Aを介して、若しくは認証処理部12Aを介さずに、ホスト装置11に提供されてもよい。
また、セキュアストレージ12は、上記のように、個々のセキュアストレージを識別できる情報として、コントローラID、メモリID、デバイスIDの全て、いずれか、もしくは各々を組み合わせた情報を有している。
(セキュアストレージと拡張ストレージ)
図3は、ホスト装置からセキュアストレージのコンテンツを読み出す場合の例を示している。図2において説明した方法と同様に、認証が成立すると、ホスト装置11は、セキュアストレージ12内の保護領域13fに対するアクセスが可能となる。
ホスト装置11は、保護領域13fに記録されている秘匿情報を読み出す。さらに、ホスト装置11は、通常領域13gに記録されている暗号化コンテンツを読み出す。秘匿情報と暗号化コンテンツは、暗復号器11Cによって処理され、復号化されたコンテンツを得る。これら認証処理、コンテンツ復号化処理は全てコンテンツ制御部20によって制御される。
図4は、ホスト装置11、セキュアストレージ12、及び拡張ストレージ30を組み合わせた構成を示している。
ホスト装置11、及びセキュアストレージ12は、図1に示す構成と同様である。拡張ストレージ30は、セキュアストレージ12と類似の構成を有するが、メモリ認証回路や保護領域を有さない非セキュアストレージである。
セキュアストレージ12と拡張ストレージ30は、各々ホスト装置11に接続される。
本構成は、例えばセキュアストレージ12がSDカード、拡張ストレージがHDDの場合などを想定している。
一般に、SDカードはHDDに比較してストレージ容量が1/10〜1/100と少ない。セキュアストレージ12としてのSDカードに、動画コンテンツなどを記録する場合、ストレージ容量の制約より、記録可能なコンテンツ数が制限される。そこで、HDDを拡張ストレージ30としてホスト装置11に接続し、拡張ストレージ30内の記録再生領域をSDカードの記録再生領域と組み合わせて利用することにより、コンテンツの記録領域を大きく増やすことが可能となる。
勿論、セキュアストレージ12としてHDDの構成を取ることもできる。この場合、ストレージ容量の制約は緩和されるが、その代わりにフォームサイズが大きくなる。近年、動画コンテンツの利用シーンが拡大し、テレビでの視聴だけでなく、スマートフォンやタブレット端末などのモバイル端末において、動画コンテンツを視聴することも一般的となっている。モバイル端末での視聴には、フォームサイズの小さなストレージが適している。よって、SDカードに比較してフォームサイズの大きなHDDは、モバイル端末での利用には適さない。
これらを背景に、本実施形態では、セキュアストレージ11と拡張ストレージ30を組み合わせることにより、ストレージ容量の確保とフォームサイズの両立を図ることを提案する。
(セキュアストレージと拡張ストレージの第1の接続方法)
図5は、セキュアストレージ12と拡張ストレージ30の第1の接続方法を示している。本例において、ホスト装置11は、例えばテレビであり、セキュアストレージ12は、例えばSDカードであり、拡張ストレージ30は、例えばUSB接続可能なHDD(USB−HDD)である。以下において、ホスト装置11をテレビ11、セキュアストレージ12をSDカード12、拡張ストレージ30をUSB−HDD30とも言う。
テレビ11は、SDカード12と接続されるためのSDカードスロットを有し、さらに、USB機器としてのUSB−HDD30を接続するUSB接続端子を有している。これら接続インターフェースを用いて、SDカード12とUSB−HDD30はテレビ11に接続される。
本例において、鍵などの秘匿情報は、SDカード12に記録され、暗号化されたコンテンツは、USB−HDD30に記録される。テレビ11は、それらの情報を組み合わせることにより、コンテンツを再生することができる。
尚、図5において、暗号化コンテンツは、USB−HDD30に記録されている場合について示しているが、これに限らず、暗号化コンテンツは、SDカード12に記録されていてもよい。また、暗号化コンテンツは、1つに限らず複数であってもよい。
(セキュアストレージと拡張ストレージの第2の接続方法)
図6は、セキュアストレージ12と拡張ストレージ30の第2の接続方法を示している。本例において、拡張ストレージとしてのUSB−HDD30は、セキュアストレージとしてのSDカード12を接続するためのSDカードスロットを有している。ホスト装置としてのテレビ11は、USB−HDD30を接続するためのUSB接続端子を有している。
これら接続インターフェースを用いて、SDカード12はUSB−HDD30に接続され、USB−HDD30は、テレビ11に接続される。鍵などの秘匿情報は、SDカード12に記録され、暗号化コンテンツは、USB−HDD30に記録される。テレビ11は、それらの情報を組み合わせることにより、コンテンツを再生することができる。
USB−HDD30には、SDカード12内の保護領域や通常領域にアクセスするための機能が含まれる。具体的には、USB−HDD30は、SDインターフェースをUSBインターフェースに変換するための図示せぬブリッジコントローラなどを有している。
(セキュアストレージと拡張ストレージの組み合わせ)
セキュアストレージ12と拡張ストレージ30は、種々の組み合わせが可能である。
図7(a)(b)(c)は、セキュアストレージと拡張ストレージの組み合わせ方法を示している。
図7(a)は、1つのセキュアストレージ12と1つの拡張ストレージ30を組み合わせた例である。
図7(b)は、1つのセキュアストレージと2つの拡張ストレージ30−1、30−2を組み合わせた例である。この場合、1つのセキュアストレージが2つの拡張ストレージ30−1、30−2に共有される。
図7(c)は、3つのセキュアストレージ12−1、12−2、12−3と1つの拡張ストレージ30を組み合わせた例である。この場合、1つの拡張ストレージ30が3つのセキュアストレージ12−1、12−2、12−3により共有される。
図8は、セキュアストレージ12と拡張ストレージ30の利用例を示している。図8に示す例の場合、コンテンツ及び秘匿情報は、図示せぬコンテンツサーバーからホスト装置11としてのテレビ11にダウンロードされる。本例において、コンテンツ1に対応して秘匿情報1が存在し、コンテンツ2に対応して秘匿情報2が存在する。いずれの秘匿情報もテレビ11を介してセキュアストレージ12としてのSDカードに記録される。コンテンツ1とコンテンツ2は、いずれもUSB−HDD30に記録される。また、コンテンツ1はSDカード12にも記録される。
コンテンツと秘匿情報が各々SDカードとUSB−HDDに記録された後、テレビ11は、SDカード12内の秘匿情報を用いて、SDカード12もしくはUSB−HDD30内のコンテンツを復号化し、コンテンツを再生する。これは例えば自宅内での利用シーンなどが考えられる。
一方で、可搬性の高いSDカード12は、自宅外に持ち出され、タブレット端末40などに挿入することもできる。タブレット端末40は、SDカード12内に記録されている秘匿情報2とコンテンツ2を組み合わせて、SDカード12内のコンテンツ1を復号化し、コンテンツ1を再生する。
図8は、コンテンツサーバーからダウンロードする例について示した。しかし、これに限らず、例えば放送装置からテレビ11にコンテンツが送信されるケースにも適用できる。この場合、通常、秘匿情報はテレビなどのホスト装置11が生成することとなる。
(セキュアストレージと拡張ストレージの内部データ構成)
図9は、セキュアストレージと拡張ストレージにおけるデータ構造の一例を示すものである。
図9を用いて、図4に示すセキュアストレージ12と拡張ストレージ30の組み合わせにおけるデータ構成について説明する。尚、図9に示す構成は、図7(a)に示す例に相当する。
セキュアストレージ12内には、前述したように、保護領域13fと通常領域13gがあり、拡張ストレージ30には通常領域30aがある。これらセキュアストレージ12と拡張ストレージ30の組み合わせを仮想セキュアストレージと呼ぶ。
セキュアストレージ12内の保護領域13fには前述した通り秘匿情報が記録され、通常領域13gには暗号化コンテンツが記録される。暗号化コンテンツに付随する管理情報も通常領域13gに記録される。
また、セキュアストレージ12と拡張ストレージ30の関係を示すリンク情報は、セキュアストレージ12の保護領域13fに記録される。ここで、リンク情報は保護領域13fに限らず、通常領域13gに記録されてもよい。すなわち、リンク情報自身を保護する必要がある場合、リンク情報は保護領域13fに記録され、保護する必要がない場合、リンク情報は通常領域13gに記録される。
拡張ストレージ30内の通常領域30aには、前述した通り暗号化コンテンツが記録され、さらに、リンク情報も記録される。ここで、セキュアストレージ12に記録するリンク情報と、拡張ストレージ30に記録するリンク情報は、同一のフォーマットのものでもよいし、異なるフォーマットでもよい。少なくとも、セキュアストレージ12に記録されるリンク情報には、拡張ストレージ30を指定する情報が含まれ、拡張ストレージ30に記録されるリンク情報には、セキュアストレージ12を指定する情報が含まれる。リンク情報の構成については後述する。
図10は、セキュアストレージと拡張ストレージとの他の組み合わせにおけるデータ構成について示している。図10に示す構成は、図7(b)に示す例に相当する。
すなわち、仮想セキュアストレージは1つのセキュアストレージ12と複数の拡張ストレージ30−1、30−2、30−3により構成される。セキュアストレージ12内のリンク情報には、拡張ストレージ30−1、30−2、30−3を指定する情報が含まれ、各拡張ストレージ30−1、30−2、30−3内のリンク情報には、セキュアストレージ12を指定する情報が含まれる。このリンク情報により、セキュアストレージ12と複数の拡張ストレージ30−1、30−2、30−3とが対応付けられる。
図11は、セキュアストレージと拡張ストレージとの他の組み合わせにおけるデータ構成について示している。図11に示す構成は、図7(c)に示す例に相当する。すなわち、仮想セキュアストレージは、複数のセキュアストレージ12−1、12−2、12−3と1つの拡張ストレージ30により構成される。各セキュアストレージ12−1、12−2、12−3内のリンク情報には、拡張ストレージ30を指定する情報が含まれ、拡張ストレージ30内のリンク情報には、各セキュアストレージ12−1、12−2、12−3を指定する情報が含まれる。このリンク情報により、セキュアストレージ12−1、12−2、12−3と拡張ストレージ30とが対応付けられる。
ここまで、ホスト装置11とセキュアストレージ12の基本構成、認証方法、及びセキュアストレージ12と拡張ストレージ30の組み合わせ方法などについて説明した。
認証方法、及びセキュアストレージ12と拡張ストレージ30の組み合わせ方法を実現するには、いくつか解決しなければならない課題がある。
図12は、セキュアストレージと拡張ストレージを用いた使用方法の一例を示すものであり、第1の課題を説明するために示す図である。
上記のように、鍵等のコンテンツ再生に必要な秘匿情報は、セキュアストレージ12の保護領域13fに記録されている。また、保護領域13fに記録された秘匿情報の読み出し、記録には認証が必要である。このため、秘匿情報は不正に読み出されたり、書き込まれたり、複製されたりすることは防止されている。しかしながら、暗号化コンテンツ自体は通常領域13gに記録されている。このため、暗号化コンテンツは、読み出し、書き込み、複製を容易に行うことができる。
ホスト装置11がコンテンツを再生する場合、暗号化コンテンツの記録場所、複製状況に拘らず、セキュアストレージ12内の秘匿情報が必要ではある。しかし、一般に秘匿情報は暗号化コンテンツに比べ大幅にデータサイズが少ない。
このため、図12に示すように、例えばホスト装置11−1にセキュアストレージ12と拡張ストレージ30−1を接続し、コンテンツを再生する際、ホスト装置11は、先ずセキュアストレージ12から秘匿情報を読み出す。次いで、拡張ストレージ30−1内の暗号化コンテンツを順次読み出してコンテンツの再生をする。
ここで、秘匿情報は一度取得すれば暗号化コンテンツを再生している過程において、ホスト装置11が内部のメモリにキャッシュしておくのが通常である。すなわち、ホスト装置11に秘匿情報がキャッシュされた状態である場合、セキュアストレージ12をホスト装置11−1から抜き取っても再生を継続することは可能である。この状態において、当該セキュアストレージ12をホスト装置11−2に挿入する。
ホスト装置11−2には、別の拡張ストレージ30−2が接続されており、当該拡張ストレージには同様の暗号化コンテンツが記録されているものとする。この場合、ホスト装置11−2は、接続されたセキュアストレージから秘匿情報を読み出し、同じく接続された別の拡張ストレージから暗号化コンテンツを読み出し、コンテンツの再生をすることが可能である。
ここで、前述したようにホスト装置11−1は再生を継続している。この状態では、秘匿情報の複製は防止されているものの、同時に複数個所からの再生が可能となり、あたかもコンテンツが複製されているかのように捉えることができる。もちろん、秘匿情報自体は複製されていないため、コンテンツの再生にはセキュアストレージが必要となり、任意かつ大規模にコンテンツの複製及び同時再生をすることは防止されているが、コンテンツ権利者によってはこのような運用を許さない可能性がある。
図13は、セキュアストレージと拡張ストレージを用いた使用方法の他の例を示すものであり、第2の課題を説明するために示す図である。
図13において、ホスト装置11−1及びホスト装置11−2は、伝送装置50に同時に接続されている。伝送装置50は、例えばローカルネットワーク上のIP伝送を実施する装置などである。
一方、伝送装置50は、セキュアストレージ12と拡張ストレージ30に接続されており、ホスト装置11−1及びホスト装置11−2は、伝送装置50を経由してセキュアストレージ12の保護領域13f、通常領域13g、及び拡張ストレージ30の通常領域にアクセス可能とされている。
図13に示す状態において、セキュアストレージ12の保護領域13fに記録されている秘匿情報は1つではあるが、同時に複数のホスト装置11−1、11−2から秘匿情報をアクセスすることができてしまう。このため、複数のホスト装置11−1、11−2により、拡張ストレージ30に記録されたコンテンツを再生することができる。
上記例においても、第1の課題と同様に、コンテンツ権利者によっては、このような運用を許さない可能性がある。特に、このような運用は、拡張ストレージ30の有無に拘らず、セキュアストレージ12内に秘匿情報と暗号化コンテンツが記録されている場合でも可能である。
(第1の実施形態)
図14乃至図18は、第1の実施形態を示すものであり、第1、第2の課題を解決する実施形態である。
図14は、認証のステートダイアグラムを示している。図14は、ホスト装置11とセキュアストレージ12が取り得る状態を示している。
先ず、ホスト装置11とセキュアストレージ12の間で認証が完了していない状態として初期状態がある(S11)。この状態において、ホスト装置11は、セキュアストレージ12内の保護領域13fにアクセスできない。
次に、ホスト装置11とセキュアストレージ12間で認証が完了している認証完了状態がある(S12)。この状態において、ホスト装置11は、セキュアストレージ12内の保護領域13fにアクセス可能である。
このほか、場合によっては、初期状態S11から認証完了状態S12に移る過程において、中間状態1(S13)や、中間状態2(S14)が有ってもよい。
図14に示す矢印は、各状態から別の状態へ遷移可能な方向を示している。これら状態は、ホスト装置11とセキュアストレージ12間において、1対1で共有される状態であり、セキュアストレージ12は、複数のホスト装置12と認証完了状態を同時に持つことはできないこととする。
図15は、第1の実施形態に係る認証処理の例を示している。
前述したように、ホスト装置11とセキュアストレージ12は、各々デバイス鍵とデバイス証明書を有している。ホスト装置11は、ホストデバイス証明書、及びホスト乱数1(Hr)をセキュアストレージ12に送信する(S21)。
セキュアストレージ12は、メディア乱数1(Mr)、メディア乱数2(Mn)を生成し、パラメータPをメディア乱数2から計算する(S22)。
セキュアストレージ12は、メディアデバイス証明書、メディア乱数1、パラメータP、ホスト乱数1とともに、これらメッセージにメディアデバイス鍵で計算した署名も付与してホスト装置11に返送する(S23)。
ホスト装置11は、ホスト乱数2(Hn)を生成するとともに、ホスト乱数2からパラメータQを計算する。また、ホスト乱数2とパラメータPよりバス鍵(BK)を計算する(S24)。
ホスト装置11は、パラメータQ、メディア乱数(Mr)、及びこれらメッセージにホストデバイス鍵で計算した署名も付与し、これらをセキュアストレージ12に送信する(S25)。
セキュアストレージ12は、パラメータQとホスト乱数2を用いてバス鍵BKを計算する(S26)。
上記処理が滞りなく完了した場合、ホスト装置11とセキュアストレージ12間で共通のバス鍵を確立できたこととなり、この状態をSession Established又は認証完了状態と呼ぶ。
ここで、バス鍵は認証処理を行った当事者のホスト装置11とセキュアストレージ12間でのみ秘密裏に共有されるものであり、これら以外の者は、バス鍵を知ることはできない。バス鍵は、保護領域13fの情報をホスト装置11とセキュアストレージ12間で送受信する際の暗号処理に用いられる。すなわち、当事者としてのホスト装置11とセキュアストレージ12以外は、ホスト装置11とセキュアストレージ12間の伝送路の情報を取得や改ざんすることができない。
また、互いに交換したデバイス証明書には証明書配布者から付与された署名が付いており、証明書を受信した場合、当該署名の正当性を検査するものとする。更に、デバイス証明書には証明書識別番号、若しくはデバイス識別番号が含まれているものとする。
なお、この認証ステップは既知の方法に基づいたものであり、認証方式の違いにより様々な変形が考えられるが、いずれの方法でも本願は適用可能である。
上記第1の実施形態によれば、ホスト装置11とセキュアストレージ12により認証処理を行うとき、認証処理を行ったホスト装置11とセキュアストレージ12のみに共通のバス鍵を生成している。このため、このバス鍵を有するセキュアストレージ12が別のホスト装置に同時に接続されていたとしても、別のホスト装置は、セキュアストレージ12と共通のバス鍵を持たないため、セキュアストレージ12の保護領域13fをアクセスすることができない。
(初期化処理)
図16は、第1の実施形態に係る初期化処理の一例を示している。ホスト装置11がセキュアストレージ12と認証を行う場合において、セキュアストレージ12が他のホスト装置と認証完了状態にある場合(S31)、先ず、セキュアストレージ12の状態を初期状態に復帰させてから認証処理を実施する必要がある。
そこで、この場合、ホスト装置11は、先ず、セキュアストレージ12に対して初期化要求を発行する(S32)。
セキュアストレージ12は、初期化要求に従い、認証完了状態から初期状態へと自身の状態を遷移させる(S33)。この初期状態への遷移は、生成されたバス鍵を破棄することに相当する。
初期状態への遷移が完了した場合、セキュアストレージ12は、初期化が正常に終了したことを示す応答を行う(S34)。
尚、初期化要求は、セキュアストレージ12の状態如何に関わらず、ホスト装置11が初期化要求を出すように構成してもよい。この場合、セキュアストレージ12は、初期状態であったとしても、この要求を受け付け、内部状態は初期状態のままとし、ホスト装置に初期状態である旨を返信する。
(ステータスチェック)
図17は、第1の実施形態に係り、ホスト装置11がセキュアストレージ12の状態(Status)を検査するステータスチェックステップを示している。
ここで、ホスト装置11は、セキュアストレージ12との間で既に認証完了状態となっているかもしれないし、認証を実施する前の段階で、セキュアストレージ12が他のホスト装置と既に認証完了状態になっているかもしれない(S41)。
そこで、ホスト装置11は、セキュアストレージ12に対して認証状態を確認するための要求を一時情報(Nonce)とともに送信する(S42)。ここで、Nonceとは、ホスト装置11がその都度生成する例えば乱数のようなものである。
セキュアストレージ12は、受領した要求に従い、自身の認証状態、認証しているホスト証明書番号、及び受信した一時情報にバス鍵を用いて生成したメッセージ認証コード(MAC)を付与し(S43)、これらをホスト装置11に返送する(S44)。
仮に、セキュアストレージ12が初期状態にある場合、メッセージ認証コードの生成を省略してもよい。また、ホスト証明書番号も省略してよい。
ホスト装置11は、セキュアストレージ12から受信した情報について、メッセージ認証コードの正当性をバス鍵に基づいて検証し、正当性が確認された場合、受信したメッセージが正当なものであるとして、セキュアストレージ12の認証状態を得る(S45)。
このように、第1の実施形態によれば、バス鍵に基づいて、セキュアストレージ12がメッセージ認証コードを生成し、ホスト装置11がメッセージ認証コードの正当性を検証しているため、バス鍵を有さない第3者による認証状態の改ざんが防止される。
さらに、ホスト装置11がセキュアストレージ12に対して一時情報の送信を要求し、セキュアストレージ12が一時情報を含めた状態でメッセージ認証コードを生成しているため、バス鍵を有さない第3者によるなりすましも防止される。
図18は、第1の実施形態に係り、第2の課題を解決する方法を示す。しかし、この方法は、第1の課題の解決に適用することも可能である。
前述したように、複数のホスト装置11−1、11−2が伝送装置50を通じてセキュアストレージ12及び拡張ストレージ30にアクセス可能な状態であるとする。
ここで、ホスト装置11−1がセキュアストレージ12と認証完了状態であるとする。すなわち、ホスト装置11−1は、セキュアストレージ12の保護領域にアクセス可能であるため、秘匿情報を取得可能であり、暗号化コンテンツの再生が可能となる。
ホスト装置11−1は、コンテンツ再生中に、定期的にセキュアストレージ12のステータスチェックを実施することとする。ステータスチェックの結果、セキュアストレージ12が非認証完了状態に遷移していた場合、若しくは認証完了状態ではあるが、他のホスト装置と認証完了状態となっていた場合、ホスト装置11−1は、例えば再生を停止させるなどの制御をするものとする。
この方法によれば、ホスト装置11−1がコンテンツを再生可能なのは、当該ホスト装置11−1がセキュアストレージ12の認証状態を占有出来ている場合のみに限定される。このため、複数のホスト装置が同時にコンテンツの再生が可能となる問題を防止できる。
また、この方法により第1の課題も解決することができる。なぜなら、例えばホスト装置11−1にセキュアストレージ12が接続された状態において、ホスト装置11−1が定期的にセキュアストレージ12のステータスをチェックすることにより、コンテンツ再生中にセキュアストレージ12がホスト装置11−1から引き抜かれ、他のホスト装置11−2に接続された場合、ホスト装置11−1は、正しいステータスチェックの結果を得ることができない。このため、ホスト装置11−1は、コンテンツの再生を終了することが出来る。
尚、第1の実施形態による効果とその利用方法の拡張についても言及しておく。近年では、IP網の発達により、自宅においたホームサーバーに記録されたコンテンツに宅外からアクセスしてコンテンツを再生するようなインフラが整いつつある。ここで、当該コンテンツが著作権を有する商用コンテンツである場合、複数個所からの同時アクセスは大きな問題となる可能性がある。特に、保護領域に記録された秘匿情報のデータサイズが小さいため、原理的には不特定多数の人間が当該コンテンツの再生をすることも可能である。
これを防止する手段としては、一般にリンクプロテクションと呼ばれる2つの機器間でセキュアに情報をやり取りする暗号化方式などが適用されている。リンクプロテクションの例としては、DTCP-IP(Digital Transmission Content Protection)やDRM(Digital Rights Management)などが代表例である。
これらリンクプロテクションは、コンテンツの再暗号化などを要求する場合もある。コンテンツの再暗号化とは、記録状態での暗号化を一旦機器で復号化し、リンクプロテクション技術により生成されたバス鍵によって、コンテンツを再暗号化して送信するような方法である。この場合、送信側の機器は復号化と暗号化を同時に行わなければならず、実装の負荷が重くなる。
これに対して、本実施形態の方法によれば、コンテンツを再暗号化する必要がないため、実装が容易であり、不特定多数によるコンテンツの同時再生を防止することが可能である。
更に、本方法を適用する際、以下の方法を追加で適用することも可能である。
上記において、セキュアストレージ12内に存在する保護領域13fには、ホスト装置11とセキュアストレージ12が認証を完了することによりアクセスが可能となると説明した。ここで、保護領域13fは内部的に複数の保護領域に区分されていてもよい。
更に、保護領域13f内の各区分が、各コンテンツ権利者が提供するコンテンツの秘匿情報を記録する領域として割り当てられていてもよい。ここで、コンテンツ権利者によっては、ステータスチェックによる認証状態の占有を要求し、またコンテンツ権利者によっては、認証状態の占有を要求しない場合などがあった際、ステータスチェックの適用如何を保護領域13fの各区分毎に定めることができる。例えば、ダウンロードコンテンツの場合、当該ダウンロードコンテンツの権利者は、認証状態の占有を要求しない。よって、当該コンテンツ権利者が配布するコンテンツの秘匿情報を記録した保護領域にアクセスする場合、認証状態の占有確認は不要という運用ができる。
また、放送録画コンテンツの場合、当該放送録画コンテンツの権利者は、認証状態の占有を要求する。よって、当該コンテンツ権利者が配布するコンテンツの秘匿情報を記録した保護領域にアクセスする場合、認証状態の占有確認は必要という運用もできる。
上記のように、コンテンツ権利者の要求に応じた認証状態の占有確認をすることで、例えば以下のような利点がある。一般に、ネットワークサーバーから動画コンテンツを配信する場合、ダウンロードには時間がかかる。一方、ユーザーはダウンロード完了を待たずに動画コンテンツを再生したい。ダウンロードにおいては、サーバーとセキュアストレージ12間で認証を行い、秘匿情報を記録する必要がある。
また、再生においては、再生装置とセキュアストレージ12間で認証を行い、秘匿情報を読み出す必要がある。すなわち、ダウンロードをしつつ、再生を行う場合、異なる2者が同一のセキュアストレージ12に対して、認証を行うことが必要である。ここで、当該動画コンテンツを配信するコンテンツ権利者が認証状態の占有を要しない場合、上記のように異なる2者が同一のセキュアストレージ12に対して、適宜認証をしても再生を継続することが可能となる。
一方、放送録画コンテンツにおいても、同様に録画をしつつ再生を行うなどといった、裏録再生や追っかけ再生のような、秘匿情報の記録と読み出しを同時に行いたい場合がある。しかしながら、上記のような場合、通常録画装置と再生装置は同一の装置であり、すなわち秘匿情報の記録と読み出しにおいても、同一のホストデバイス証明書を利用することが可能である。換言すると、同一の装置内の記録処理部と再生処理部では、占有した認証状態を共有できるため、秘匿情報の記録や読み出しの都度、認証をやり直す必要はない。
(第2の実施形態)
図19は、セキュアストレージと拡張ストレージを組み合わせて利用する場合の例を示している。
前述したように、セキュアストレージと拡張ストレージが1対1で組み合わされる場合のほか、1つのセキュアストレージに対して複数の拡張ストレージが組合される場合、複数のセキュアストレージに対して1つの拡張ストレージが組合される場合ある。
さらに、図19に示すように、複数のセキュアストレージ12−1〜12−4に対して複数の拡張ストレージ30−1〜30−4が組み合わされる場合が想定される。この場合、ホスト装置は、どのセキュアストレージと拡張ストレージが組み合わされて利用されているかを知る必要がある。このため、セキュアストレージと拡張ストレージの各個体を識別するための識別子を得る必要がある。
図20及至図23は、第2の実施形態を示すものであり、どのセキュアストレージと拡張ストレージが組み合わされて利用されているかを認識するための手段を示している。
図20は、識別子の第1の例を示している。図20において、セキュアストレージ12内のコントローラ14内には、コントローラIDが格納され、メモリ13の再生専用領域にはメモリIDが格納されている。また、メモリ13のシステム領域内に保持されているメディアデバイス証明書にはデバイスIDが付与されている場合もある。これらのうち、いずれか1つ、若しくはそれらの組み合わせにより、ホスト装置11は、個々のセキュアストレージ12を一意に識別することができる。
また、拡張ストレージ30には、通常、個体を識別可能な番号が付与されていることが多い。例えば、HDDのインターフェースとして広く利用されているATA(AT Attachment)インターフェースにおいては、各ATA機器の属性を得るためのコマンドとして、IDENTIFY DEVICEと呼ばれるコマンドが存在する。ここで、IDENTIFY DEVICEが発行されると、ATA機器は、当該コマンドの返信として、機器情報をホスト装置11へと送る。機器情報としては、例えばモデル番号、シリアル番号、World Wide Name(WWN)などの個体を識別可能な情報が含まれている。これらの情報は、ホスト装置11が拡張ストレージ30を一意に識別するための情報として利用可能である。
図21は、識別子の第2の例を示している。図21において、セキュアストレージ12は、図20に示す第1の例と同様である。拡張ストレージ30において、もし当該機器の出荷時に個体識別可能な番号が含まれていない場合、ホスト装置11が個体識別番号を付与することも可能である。
この場合、ホスト装置11は、例えばファームウェアにより構成された識別子生成機能を有し、この識別子生成機能によりExtended Storage IDを生成する。この生成されたExtended Storage IDは、拡張ストレージ30に供給され、拡張ストレージ30の識別番号として、通常領域に記録される。
このような構成によれば、個体識別可能な番号を持たない拡張ストレージに識別子を付与することができ、また、この識別子に基づき、ホスト装置11は、拡張ストレージを識別することができる。
次に、図20、図21のいずれか、若しくはこれらの組み合わせにより得られた識別子の利用方法を示す。
図9乃至図11において説明したように、データ構造は、セキュアストレージ12と拡張ストレージ30の関係を示すリンク情報を含んでいる。リンク情報はセキュアストレージと拡張ストレージの各々に記録される。
図22は、セキュアストレージ12内に記録されるリンク情報を示している。図20又は図21によって得た拡張ストレージの識別子は、セキュアストレージ12内のリンク情報に包含される。
ここで、リンク情報は1つのセキュアストレージ12が複数の拡張ストレージ30と組み合わされて利用される場合に備え、図22(a)に示すように、複数の拡張ストレージ情報#0〜#N−1により構成されるものとする。
図22(b)に示すように、各拡張ストレージ情報には、拡張ストレージの識別子が含まれる。具体的には、例えば図20に示すシリアル番号、モデル番号、及びWorld Wide Nameなどが含まれる。
また、これら識別子が設定されていない場合、拡張ストレージ情報として、図21に示すホスト装置11が付与したExtended Storage IDを用いることができる。
さらに、拡張ストレージ情報は、拡張ストレージに設定された識別子とホスト装置11が付与したExtended Storage IDの両方を含んでいてもよい。
また、拡張ストレージ情報は、拡張ストレージ30と関連付けられているセキュアストレージ12内のファイルディレクトリを指定する情報も含んでいてもよい。これについては後述する。
図23は、拡張ストレージ30内に記録されるリンク情報の一例を示している。
図23(a)は、図22(a)と同様である。この例の場合、図23(b)に示すように、セキュアストレージ12の識別子(Media ID)が拡張ストレージ内のリンク情報に含まれている。すなわち、各セキュアストレージ情報には、セキュアストレージ12の識別子(Media ID)が含まれる。
本例では、コントローラID、メモリID、及びデバイス証明書番号のいずれか、若しくはそれらの組み合わせより得られるセキュアストレージ識別子としてMedia IDが含まれる。また、セキュアストレージ12と関連付けられている、拡張ストレージ30内のファイルディレクトリを指示する情報も含んでいてもよい。これについては後述する。
上記第2の実施形態によれば、拡張ストレージ30及び又はセキュアストレージ12は、各セキュアストレージ、各拡張ストレージを関連付けるリンク情報を有し、このリンク情報は、セキュアストレージ12、拡張ストレージ30に設定された識別子を含んでいる。このため、複数のセキュアストレージ及び複数の拡張ストレージが組み合わせて使用される場合においても、リンク情報を参照することにより、各セキュアストレージ、各拡張ストレージを一意に識別することが可能である。
(第3の実施形態)
前述したように、セキュアストレージ12内の保護領域には、各コンテンツに対応する秘匿情報が記録され、暗号化コンテンツはセキュアストレージ12内の通常領域、拡張ストレージ30内の通常領域のいずれか若しくは両方に記録される。
一般に、動画コンテンツは、再生するばかりではなく、動画コンテンツの分割などを含む編集処理や、動画コンテンツの消去など、暗号化コンテンツの実体を変更するような処理が行われる。
図24に示すように、同一の暗号化コンテンツがセキュアストレージ12と拡張ストレージ30の両方に存在し、セキュアストレージ12のみを持ち出してタブレット端末40に接続し、タブレット端末40において、コンテンツの編集や消去などの操作を行った場合、セキュアストレージ12内のコンテンツと拡張ストレージ30内のコンテンツの間で不整合が生じてしまう。
また、動画コンテンツの再生において、例えば1時間の動画をユーザーが視聴している際に、途中の30分まで再生し、一旦再生を止め、次いで、続きを再生するなどのケースも存在する。これは、一般にレジューム再生と呼ばれ、再生を停止したタイミングの情報は、マーク情報としてホスト装置11内の不揮発性メモリに記憶される。又は、類似のマーク情報がセキュアストレージ12、若しくは拡張ストレージ30内に記録される。
ホスト装置11は、再生を行う場合、いずれかのマーク情報に基づき、コンテンツの続きの再生を行う箇所を判別する。この際、マーク情報がセキュアストレージ12と拡張ストレージ30の両方に存在し、セキュアストレージ12のみをホスト装置11に接続して再生を継続し、この状態において、さらに、再生を停止した場合、セキュアストレージ12内のマーク情報と、拡張ストレージ30内のマーク情報に不整合が生じ、ホスト装置11はどちらを利用すべきか混乱する場合がある。
このように、セキュアストレージ12のみを持ち出してコンテンツにアクセスし、次いでセキュアストレージ12と拡張ストレージ30を接続し、コンテンツにアクセスする場合、各情報の取り扱いが難しくなる。
そこで、第3の実施形態は、このようなセキュアストレージ12と拡張ストレージ30の使用形態において、ユーザー側でも使用方法の混乱や、異なる製造者によって製造された複数のホスト装置11によってセキュアストレージ12と拡張ストレージ30が利用された場合における互換性の問題を起こすことなく、確実な処理を可能とする。
図25及至図32を用いて、第3の実施形態について説明する。
図25は、セキュアストレージ12と拡張ストレージ30内のデータ構造を示している。尚、セキュアストレージ12内には前述したように、システム領域、保護領域、再生専用領域、通常領域などが存在するが、ここでは通常領域について説明する。
図25に示すように、セキュアストレージ12内の通常領域13gは、スタンドアロン領域(SAD)と、拡張領域(EXDS)に分類されている。スタンドアロン領域(SAD)は、コンテンツ、セキュリティー情報、制御情報等を記憶する領域であり、スタンドアロン領域(SAD)内のコンテンツは、後述するように、セキュアストレージ12単独で、再生や実体の変更等が可能とされている。一方、拡張領域(EXDS)は、拡張領域(EXDN)に保存されたコンテンツと組み合わせて利用される情報、若しくは拡張領域(EXDN)のみで利用可能であるが、後述するように利用規則を設けたもとで利用される情報等を記憶する領域である。
また、拡張ストレージ30内の通常領域30aは拡張領域(EXDN)とする。
ここで、スタンドアロン領域(SAD)と拡張領域(EXDS)には、以下の規則を適用することとする。
・スタンドアロン領域(SAD)と拡張領域(EXDS)には、同一のコンテンツを重複して格納してはならない。
・コンテンツをスタンドアロン領域(SAD)から拡張領域(EXDS)に移動させる場合、コンテンツを拡張領域(EXDS)に移すとともに、スタンドアロン領域(SAD)のコンテンツを削除する。
・コンテンツを拡張領域(EXDS)からスタンドアロン領域(SAD)に移動させる場合、コンテンツをスタンドアロン領域(SAD)に移すとともに、拡張領域(EXDS)のコンテンツを削除する。
・セキュアストレージ12の拡張領域(EXDS)内と拡張ストレージ30内の拡張領域(EXDN)内において、同一のコンテンツが記録されていてもよい。
・セキュアストレージ12の拡張領域(EXDS)内と拡張ストレージ30内の拡張領域(EXDN)内において、同一のファイル名で異なるコンテンツを記録してはならない。
・秘匿情報は、スタンドアロン領域(SAD)と拡張領域(EXDS)、拡張領域(EXDN)の各々のコンテンツと関係を持つ。
・セキュアストレージ12のスタンドアロン領域(SAD)に記録されているコンテンツのコンテンツ管理情報は、セキュアストレージ12のスタンドアロン領域(SAD)に記録されていなければならない。
・セキュアストレージ12の拡張領域(EXDS)、若しくは拡張ストレージ30の拡張領域(EXDN)に記録されているコンテンツのコンテンツ管理情報は、セキュアストレージ12の拡張領域(EXDS)に記録されていなければならない。
また、場合によっては、以下の制約をさらに付加してもよい。
・セキュアストレージ12の拡張領域(EXDS)内に記録されているコンテンツ群は、拡張ストレージ30内に記録されているコンテンツ群の部分集合でなければならない。
(コンテンツ移動制御)
図26は、セキュアストレージ12と拡張ストレージ30が両方ともホスト装置11に接続されている場合におけるコンテンツの制御方法を示している。具体的には、セキュアストレージ12のスタンドアロン領域(SAD)と拡張領域(EXDS)におけるコンテンツの制御方法を示している。ここで、以下の用語について定義する。
・Playback:コンテンツを再生すること。
・Record:コンテンツを記録すること。
・Edit:コンテンツを編集すること。編集とはコンテンツの分割、一部の消去、結合などを含む。
・Move:コンテンツと秘匿情報を他のセキュアストレージに移すこと、若しくは他のDRM(Digital Rights Management)により保護された他の機器やストレージに移すこと。
・Transfer:スタンドアロン領域(SAD)と拡張領域(EXDS)間でコンテンツを移動すること。
図26において、初期状態は以下のとおりである
・セキュアストレージ12のスタンドアロン領域(SAD)にはコンテンツAとコンテンツCが記録されている。
・セキュアストレージ12の拡張領域(EXDS)にはコンテンツXが記録されている。
・拡張ストレージ30の拡張領域(EXDN)にはコンテンツXとコンテンツZが記録されている。
・コンテンツPはセキュアストレージ12のスタンドアロン領域(SAD)に記録されているか、若しくは拡張ストレージ30の拡張領域(EXDN)に記録されているかのいずれかである。
上記初期状態において、ホスト装置11に実施が許容された制御方法を以下に示す。
・セキュアストレージ12のスタンドアロン領域(SAD)内のコンテンツに対して、Playback、Edit、Record、Delete、Move、Transferを行うこと。
・セキュアストレージ12の拡張領域(EXDS)内のコンテンツ、又は拡張ストレージ20の拡張領域(EXDN)内のコンテンツに対して、Playback、Edit、Record、Delete、Move、Transferを行うこと。
すなわち、セキュアストレージ12と拡張ストレージ30の両方がホスト装置11に接続されている場合、ホスト装置11は、Playback、Edit、Record、Delete、Move、Transferの全ての処理を実行することが可能である。これら各処理の結果、コンテンツがどのように移動するかは、ホスト装置11内において、各処理の名称が記載されたBoxと矢印によって図中に示される。
すなわち、例えばPlaybackが実行されると、セキュアストレージ12のスタンドアロン領域(SAD)内のコンテンツAがホスト装置11に移動され、再生される。
Editが実行されると、セキュアストレージ12のスタンドアロン領域(SAD)内のコンテンツAがホスト装置11に移動され、ホスト装置11において、コンテンツAがコンテンツA’に編集される。この編集されたコンテンツA’は、セキュアストレージ12のスタンドアロン領域(SAD)に格納される。
Recordが実行されると、ホスト装置11からコンテンツBがセキュアストレージ12のスタンドアロン領域(SAD)に格納される。
Deleteが実行されると、例えばコンテンツCがセキュアストレージ12のスタンドアロン領域(SAD)から消去される。
Moveが実行されると、セキュアストレージ12のスタンドアロン領域(SAD)内のコンテンツCがホスト装置11に読み出され、他のセキュアストレージ、又は他のDRMに移動される。Moveの実行により、コンテンツCは、スタンドアロン領域(SAD)から消去される。
Transferが実行されると、例えば拡張ストレージ30の拡張領域(EXDN)内のコンテンツPがセキュアストレージ12のスタンドアロン領域(SAD)内に移動される。Transferの実行により、コンテンツCは、スタンドアロン領域(SAD)から消去される。
上記説明は、主としてセキュアストレージ12のスタンドアロン領域(SAD)内のコンテンツの移動処理について説明したが、拡張領域(EXDS)(EXDN)内のコンテンツの移動処理も同様に実行される。
図27は、ホスト装置11にセキュアストレージ12のみが接続されている場合におけるコンテンツの移動の第1の制御方法を示している。
図27において、初期状態は、図26に示した例と同様である。この初期状態において、ホスト装置11に実施が許容された制御方法を以下に示す。
・セキュアストレージ12のスタンドアロン領域(SAD)内のコンテンツに対して、Playback、Edit、Record、Delete、Move、Transferを実行すること。
・拡張領域(EXDS)内のコンテンツに対して、Playbackを実行すること。
ホスト装置11は、スタンドアロン領域(SAD)内のコンテンツに対して、図26における説明と同様の処理を実行することが可能である。しかし、拡張領域(EXDS)内のコンテンツについて、コンテンツの実体の追加、削除、改変が生じる行為としてのDelete、Move、Transfer、Record、Moveは、ホスト装置11に許容されていない。
すなわち、セキュアストレージ12内と拡張ストレージ30内に同一のコンテンツが複製されているような場合、具体的には、図27に示すコンテンツXのように、セキュアストレージ12内と拡張ストレージ30内に存在する場合、コンテンツXに対して当該処理が実行されると、コンテンツの実体に不整合が生じてしまう。このため、これを避けるため、拡張領域(EXDS)内のコンテンツに対するDelete、Move、Transfer、Record、Moveは、ホスト装置11に許容されていない。この運用は、図30にて示されるデータ構造をとる場合に望ましい。詳細は図30の説明にて後述する。
図28は、ホスト装置11にセキュアストレージ12のみが接続されている場合におけるコンテンツの移動の第2の制御方法を示している。
図28において、初期状態は、図27に示した例と同様である。この初期状態において、ホスト装置11に実施が許容された制御方法を以下に示す。
・セキュアストレージ12のスタンドアロン領域(SAD)内のコンテンツに対して、Playback、Edit、Record、Delete、Move、Transferを実行すること。
・拡張領域(EXDS)内のコンテンツに対して、Playback、Delete、Move、Transferを実行すること。
本例において、スタンドアロン領域(SAD)内のコンテンツに対しては、図27における説明と同様の処理を実行することが可能である。しかし、拡張領域(EXDS)内のコンテンツについては、コンテンツの実体の追加や改変が生じる行為としてのRecordとEditは、ホスト装置11に許容されていない。
すなわち、セキュアストレージ12内と拡張ストレージ30内に同一のコンテンツが複製されているような場合、具体的には、図28に示すように、セキュアストレージ12内と拡張ストレージ30内にコンテンツXが格納されている場合において、セキュアストレージ12内のコンテンツXが編集されると、セキュアストレージ12内と拡張ストレージ30内のコンテンツXの実体に不整合が生じてしまう。これを避けるため、セキュアストレージ12の拡張領域(EXDS)内のコンテンツに対するRecordとEditは、ホスト装置11に許容されていない。
一方、Move、Delete、Transferなどのような消去を生じる行為は、不整合を比較的容易に解決することができる。例えば、セキュアストレージ12内にコンテンツのリストを示す管理情報を記録しているため、当該管理情報のコンテンツリストから消去したコンテンツを除くことなどで対処することが可能である。
勿論、当該管理情報に追加や編集の状態を保持しておけば、上記で禁止したRecordやEditなどの行為を行うことも可能である。但し、これらの行為は、前述した「セキュアストレージ12の拡張領域(EXDS)内に記録されているコンテンツ群は、拡張ストレージ内に記録されているコンテンツ群の部分集合でなければならない」という規則を適用した場合、コンテンツの実体をセキュアストレージ12内の拡張領域(EXDS)と拡張ストレージ30内の拡張領域(EXDN)内で同期するという処理が必要となる。このため、同期時間が延長されるため好ましくない。
また、当該規則を適用しない場合、ホスト装置11に対して、以下の規則を適用することも可能である。
・セキュアストレージ12内の拡張領域(EXDS)にのみ存在するコンテンツに対して、Playback、Edit、Record、Delete、Move、Transferを実行すること。
この運用は、後述する図31及び図32に示されるデータ構造をとる場合に望ましい。
(セキュアストレージと拡張ストレージの同期方法)
図29は、図28を適用した場合におけるセキュアストレージ12と拡張ストレージ30の同期方法について示している。
セキュアストレージ12の拡張領域(EXDS)内にはコンテンツXが記憶され、拡張ストレージ30の拡張領域(EXDN)内にはコンテンツX及びコンテンツYが存在するものとする。
ここで、セキュアストレージ12のみをホスト装置11に接続し、コンテンツYに対してDelete、Move、Transferのいずれかの行為を行ったとする。当該行為の後、セキュアストレージ12と拡張ストレージ30をホスト装置11に接続し、同期処理を行うとする。
ホスト装置11は、セキュアストレージ12の拡張領域(EXDS)に記録された管理情報に基づき、コンテンツYが消去状態であるのが正しいか、記録状態であるのが正しいかを判別する。ここで、管理情報の詳細については後述する。
判別の結果、管理情報には消去状態が正しいことが示されており、ホスト装置11は、拡張ストレージ30内のコンテンツYを消去する。ここで、EditやRecordなどの行為をセキュアストレージ12の拡張領域(EXDS)内のコンテンツに対して実施することを禁止しておくことにより、同期処理に要する時間を大幅に削減することが可能である。なぜなら、EditやRecordはセキュアストレージ12の拡張領域(EXDS)内に、拡張ストレージ30の拡張領域(EXDN)には存在しなかったコンテンツを追加することに相当する。このため、同期処理は、セキュアストレージ12から拡張ストレージ30に対してコンテンツをコピーすることに対応する。
一般に、動画コンテンツはデータサイズが大きい。このため、コンテンツのコピーに要する時間は無視できず、ユーザーの利便性を大きく損なう可能性がある。特に、民生用の放送録画機器、例えばHDDレコーダなどは、HDDレコーダが起動した際、セキュアストレージ12と拡張ストレージ30が接続されている場合、それらが継続的に接続されていたのか、一度セキュアストレージ12が取り外されてEditやRecordがなされたのかを判別する手段がない。このため、起動の都度、同期処理を行う必要があり、同期処理の時間短縮は非常に重要である。
勿論、図27の説明において言及したように、図28の規則に対して、さらに管理情報内に編集及び追加状態を保持する構成を設ければよい。この構成の場合、そもそも同期処理が不要であるため、時間短縮をする必要がなくなる。
(データ構成例)
図30は、セキュアストレージ12と拡張ストレージ30のデータ構成の例を示すものであり、上述した説明内容を包含する。また、図27の説明で示した規則を適用した場合の詳細なデータ構成例を示している。
セキュアストレージ12のスタンドアロン領域(SAD)内には、コンテンツ保護情報ディレクトリが存在する。当該ディレクトリの下には、1つ以上のコンテンツ保護の制御情報000〜002が含まれる。コンテンツ保護の制御情報000〜002は、各々保護領域に存在する秘匿情報と対応関係を持っており、後述するセキュリティ情報により参照される。
セキュアストレージ12のスタンドアロン領域(SAD)内には、1つ以上セキュリティ情報00001や1つ以上の暗号化コンテンツ00001も存在する。セキュリティ情報00001は、暗号化コンテンツ00001と関係を持っている。また、セキュリティ情報00001の内部には、制御情報000〜002を指し示す情報が含まれる。すなわち、セキュリティ情報00001と制御情報000〜002から暗号化コンテンツの復号に関わる保護領域内の秘匿情報を辿ることができる。
このような構成により、スタンドアロン領域(SAD)のコンテンツの制御が可能となる。
一方、セキュアストレージ12内の拡張領域(EXDS)には、1つ以上のセキュリティ情報10000〜10001と、1つ以上の暗号化コンテンツ10001が含まれる。
セキュリティ情報10000〜10001は暗号化コンテンツ10001と関係を持っており、また、セキュリティ情報10001内部には制御情報000〜002を指し示す情報が含まれる。すなわち、セキュリティ情報10001と制御情報000〜002から暗号化コンテンツの復号に関わる保護領域内の秘匿情報を辿ることができる。
また、拡張ストレージ30内の拡張領域(EXDN)には暗号化コンテンツ10000〜10001が含まれる。
ここで、セキュアストレージ12の拡張領域(EXDS)内のセキュリティ情報10000〜10001は、セキュアストレージ12の拡張領域(EXDS)に含まれる暗号化コンテンツ10001と、拡張ストレージ30の拡張領域(EXDN)に含まれる暗号化コンテンツ10001のいずれか一方、若しくは両方と関係付けられている。
また、セキュアストレージ12の拡張領域(EXDS)において、各セキュリティ情報10000〜10001と暗号化コンテンツ10001は、各々拡張ストレージ30のディレクトリの下に記録される。ここで、拡張ストレージ30のディレクトリの名称(セキュアストレージxxx、セキュアストレージyy)は、セキュアストレージの名称と対応されている。すなわち、拡張ストレージ30のディレクトリの名称は、リンク情報の構成において説明したディレクトリを指し示す情報と関連付けられている。よって、ホスト装置11は、リンク情報からどのディレクトリの情報がどの拡張ストレージ30に対応しているかを辿ることができる。
同様に、拡張ストレージ30の拡張領域(EXDN)において、各暗号化コンテンツ10000〜10001は、各々セキュアストレージ12のディレクトリの下に記録される。ここで、セキュアストレージ12のディレクトリの名称は、前記リンク情報の構成方法において説明したディレクトリを指し示す情報と関連付けられている。よって、ホスト装置11は、リンク情報からどのディレクトリの情報がどのセキュアストレージ12に対応しているかを辿ることができる。
これらの構成により、これまで説明した内容を包含し、また、図28の規則を適用した場合におけるコンテンツの制御が全て可能となる。
尚、ディレクトリの構造については、更に細分化した構造をとることも可能であり、図30に示す構成でなくとも本実施形態は実現可能である。例えば、制御情報、セキュリティ情報、暗号化コンテンツは、各々更に分類されたディレクトの元に置かれていてもよい。例えばコンテンツの配信者毎に分類されたディレクトリや、暗号化方式ごとに分類されたディレクトリなどがあってもよい。これら分類の構成は、後述する図31、32にも適用可能である。
更に、上記説明は、図27の説明で示した規則を適用した場合に沿ったものであるが、図28の説明に沿った規則を適用することも可能である。図28の規則においては、図29に示したように消去状態であるのが正しいか、記録状態であるのかが正しいかを判別し、同期をする方法が必要となる。この方法として、セキュアストレージ12の拡張領域(EXDS)内に記録されているセキュリティ情報の有無と、拡張ストレージ30内の拡張領域(EXDN)内に記録されている暗号化コンテンツの有無とを比較・参照することで、不要なファイルを削除するなどが可能となる。
更に、図28においては、編集やコンテンツの追加を不可としたが、上記消去状態であるのが正しいか、記録状態であるのが正しいかを判別するのと同様に、セキュアストレージ12の拡張領域(EXDS)内に記録されているセキュリティ情報の有無と、拡張ストレージ30内の拡張領域(EXDN)内に記録されている暗号化コンテンツの有無とを比較・参照することで、編集状態が正しいか、未編集状態が正しいか、更に追加状態が正しいか、未追加状態が正しいか、なども判別可能である。
図31及び図32は、他のデータ構成例を示している。
図31及び図32を用いて、これまで説明した内容を包含し、図27又は図28の規則を適用した場合の詳細なデータ構成例について説明する。
図31において、セキュアストレージ12のスタンドアロン領域(SAD)内には、コンテンツ保護情報のディレクトリが存在する。当該ディレクトリの下には、1つ以上のコンテンツ保護の制御情報000〜001が含まれる。コンテンツ保護の制御情報000〜001は、各々保護領域に存在する秘匿情報と対応関係を持っており、後述するセキュリティ情報により参照される。
セキュアストレージ12のスタンドアロン領域(SAD)内には、1つ以上セキュリティ情報00000〜00001が存在する。セキュリティ情報00000〜00001は、暗号化コンテンツ00000と関係を持っており、また、セキュリティ情報00000〜00001内部には、制御情報000〜001を指し示す情報が含まれる。すなわち、セキュリティ情報00000〜00001と制御情報000〜001から暗号化コンテンツの復号に関わる保護領域内の秘匿情報を辿ることができる。
また、本例において、暗号化コンテンツ00000は、AVコンテンツのディレクトリの下に記録される。AVコンテンツディレクトリには、暗号化コンテンツ00000のリスト情報を含むインデックス情報ファイルなどがあり、ストリーム情報ディレクトリの下には暗号化コンテンツ00000が含まれる。その他のファイルもAVコンテンツディレクトリの下には含まれる。詳細は図32において説明する。
このような構成により、スタンドアロン領域(SAD)のコンテンツの制御が可能となる。
一方、図32は、セキュアストレージ12の拡張領域(EXDS)の構成を示している。
図32において、セキュアストレージ12の拡張領域(EXDS)には、AVコンテンツのディレクトリが存在する。AVコンテンツディレクトリには、例えばインデックス情報ファイルと一般情報ファイルと、メニュー用のサムネイルファイル及びチャプター用サムネールと、プレイリストと、クリップ情報と、ストリームとが記録される。
インデックス情報ファイルと一般情報ファイルは、暗号化コンテンツのリスト情報を含んでいる。
メニュー用サムネイルファイルは、コンテンツのリストをユーザーインターフェースとして表示する際のメニュー向け情報である。
チャプター用サムネールは、各コンテンツがシーン毎に分割されており、それら各シーンに対応したサムネール情報や先に説明したレジュームタイミングでのサムネール情報などが含まれている。
プレイリストは、各暗号化コンテンツの一部もしくは全体もしくは複数の暗号化コンテンツを跨った再生パターンを記録している。
クリップ情報は、各暗号化コンテンツの諸情報(長さ、エンコード状態、その他のコンテンツ付随情報)を含んでいる。
ストリームは、暗号化コンテンツなどを記録している。
また、拡張ストレージ30内の拡張領域(EXDN)には、AVコンテンツのディレクトリがある。AVコンテンツディレクトリは、ストリームを含み、ストリームは、例えば複数の暗号化コンテンツを含んでいる。
ここで、セキュアストレージ12の拡張領域(EXDS)内の各々のファイルは、セキュアストレージ12の拡張領域(EXDS)に含まれる暗号化コンテンツ、拡張ストレージ30の拡張領域(EXDN)に含まれる暗号化コンテンツのいずれか一方、若しくは両方と関連付けられている。
さらに、セキュアストレージ12の拡張領域(EXDS)のAVコンテンツディレクトリは、図27及び図28の運用を可能とするため、インデックス情報ファイル及び一般情報ファイルに加えて、部分インデックス情報ファイル及び部分一般情報ファイルも記録される。この部分インデックス情報ファイル及び部分一般情報ファイルは、セキュアストレージ12の拡張領域(EXDS)のみに存在する暗号化コンテンツのリストを包含する。
すなわち、インデックス情報ファイル及び一般情報ファイルは、セキュアストレージ12の拡張領域(EXDS)、及び拡張ストレージ30内の拡張領域(EXDN)のいずれか一方、若しくは両方に存在する全ての暗号化コンテンツを指定する情報を包含しており、部分インデックス情報ファイル及び部分一般情報ファイルは、セキュアストレージ12の拡張領域(EXDS)に存在する暗号化コンテンツのみを指定する情報を包含している。これにより、ホスト装置11は、各々の拡張領域に存在する暗号化コンテンツのリストを把握することが可能となり、図29において説明した同期方法を実現することが可能となる。換言すると、前述の消去状態であるのが正しいか、記録状態であるのかが正しいかを判別する方法として、部分インデックス情報ファイル及び部分一般情報ファイルと、インデックス情報ファイル及び一般情報ファイルと、拡張ストレージ30内の拡張領域(EXDN)内に記録されているファイルとを比較・参照することで、不要なファイルを削除するなどが可能となる。
更に、図28においては、編集やコンテンツの追加を不可としたが、上記消去状態であるのが正しいか、記録状態であるのが正しいかを判別するのと同様に、部分インデックス情報ファイル及び部分一般情報ファイルと、インデックス情報ファイル及び一般情報ファイルと、拡張ストレージ30内の拡張領域(EXDN)内に記録されているファイルとを比較・参照することで、編集状態が正しいか、未編集状態が正しいか、更に追加状態が正しいか、未追加状態が正しいか、なども判別可能である。
その他、リンク情報によって指定される拡張ストレージ30のディレクトリ、セキュアストレージ12のディレクトリ構造は、図30に示す構成と同様である。
上記第3の実施形態によれば、セキュアストレージ12は、スタンドアロン領域(SAD)と拡張領域(EXDS)を有し、スタンドアロン領域(SAD)及び拡張領域(EXDS)は、コンテンツを管理する管理情報を含み、管理情報は、拡張領域(EXDS)は、さらに拡張ストレージ30との関係を示すリンク情報を含んでいる。しかも、拡張領域(EXDS)の管理情報は、セキュアストレージ12のみに存在する暗号化コンテンツのみを指定する情報を含んでいる。このため、セキュアストレージ12のコンテンツに対して、拡張ストレージ30とは無関係に、例えばDelete, Move, Transfer を実行した場合においても、ホスト装置11は、管理情報に基づき、拡張ストレージ30内の対応するコンテンツを消去することができる。したがって、セキュアストレージ12と拡張ストレージ30の同期処理を容易に行うことが可能である。
(第4の実施形態)
図33、図34、図35は、第4の実施形態を示している。
次に、コントローラ14が格納するコントローラIDの具体的な実装形態について説明する。
本実施例のコントローラは、コントローラ鍵Kcと、コントローラ20を識別するためのコントローラユニークID(IDcu)とを記憶している。
本実施例のセキュアストレージは、ID生成器212を有し、ID生成器ID生成器212(コントローラ識別情報生成部)は、コントローラ鍵KcとコントローラユニークID(IDcu)を入力値として、外部に送信される公開コントロールユニークID(IDcntr)を生成する。
コントローラ鍵Kc及びコントローラユニークID(IDcu)は、コントローラ製造業者によって、コントローラ200の製造時において、コントローラ200の内部に、秘匿情報として書き込まれる。コントローラ鍵Kcは、製造工程上の理由等から、複数のコントローラ200で共通の鍵とされることがある。一方、コントローラユニークIDは、コントローラ200毎に異なっており、あるコントローラ200内で生成されるコントローラユニーク鍵と、別のコントローラ200内で生成されるコントローラユニーク鍵とは必ず異なる。
図34に示すように、コントローラ製造業者Aは、鍵発行/管理センタ3000に、コントローラ200に付与したコントロール鍵Kcのデータを開示する。なお、コントローラ鍵Kcは、PGP暗号などを用いて、コントローラ製造業者Aから鍵発行/管理センタ3000に送信することができる。
鍵発行/管理センタ3000は、メディアデバイス鍵Kmd_iやメディアデバイス鍵証明書Certmediaを生成する鍵生成部3002と、生成したメディアデバイス鍵Kmd_i及びメディアデバイス鍵証明書Certmediaを管理するデバイス鍵データベース3001と、コントローラ製造業者Aから受け取ったコントローラ鍵Kcを用いてメディアデバイス鍵Kmd_iを暗号化する暗号化部3003を備えている。
コントロール鍵Kcは、鍵発行/管理センタ3000において、メディアデバイス鍵Kmd_iを暗号化するのに用いられる。メディアデバイス鍵Kmd_iは、鍵生成器3002で生成された後、デバイス鍵データベース3001に格納される。暗号化器3003は、デバイス鍵データベース3001から対応するメディアデバイス鍵Kmd_iを供給され、これをコントローラ鍵Kcで暗号化して暗号化メディアデバイス鍵Enc(Kc、Kmd_i)を生成する。
コントローラ鍵Kcは、コントローラ製造業者Aと鍵発行/管理センタ3000しか知りえない情報である。しかし、何らかの事故や事情によってコントローラ鍵Kcの情報が外部に漏れた時の被害を軽減するためには、例えば生産ロット毎など、一定量のコントローラ単位で変更することが望ましい。
なお、鍵生成器3002やデバイス鍵データベース3001では、セキュアストレージ用のメディアデバイス鍵Kmd_iやメディアデバイス鍵証明書Certmediaだけでなく、後述するホスト装置2000用のホストデバイス鍵Khd_iやホストデバイス証明書Certhostも同様に生成・管理する。
メモリカード製造業者Cは、コントローラ製造業者Aからコントローラ200の供給を受けると共に、当該コントローラ200向けに暗号化されたメディアデバイス鍵(暗号化メディアデバイス鍵Enc(Kc、Kmd_i)、及びそれに対応するメディアデバイス鍵証明書Certmediaを鍵発行/鍵管理センタ3000から受け取る。所望の暗号化メディアデバイス鍵Enc(Kc、Kmd_i)を受け取るためには、例えばコントローラ200の型番や製造ロット番号などを提示することで正しいコントローラ鍵Kcで暗号化されたメディアデバイス鍵を受け取ることが可能である。
暗号化メディアデバイス鍵Enc(Kc、 Kmd_i)は、コントローラ200のバッファRAM203に一旦書き込まれる。すると、コントローラ200は当該暗号化メディアデバイス鍵Enc(Kc、 Kmd_i)を復号器206において自らが有するコントローラ鍵Kcを用いて復号する。これによりコントローラ200においてメディアデバイス鍵Kmd_iが得られる。
一方、一方向性変換器211は、コントローラ200に保持されているコントローラ鍵KcとコントローラユニークID(IDcu)を入力値として一方向性関数を演算し、コントローラユニーク鍵Kcuを生成する。この新たに生成されたコントローラユニーク鍵Kcuを用いてメディアデバイス鍵Kmd_iを再び暗号化器207において暗号化し、暗号化メディアデバイス鍵Enc(Kcu、 Kmd_i)を生成する。この暗号化メディアデバイス鍵Enc(Kcu、Kmd_i)はメモリ製造業者Bから供給されたメモリ100のシステム情報記録部103に格納される。この時書き込んだ暗号化メディアデバイス鍵Enc(Kcu、Kmd_i)に対応するメディアデバイス鍵証明書Certmediaも同様にシステム情報記録部103に格納される。
コントローラユニーク鍵(Kcu)は、コントローラ200内に秘匿されているコントローラ鍵Kc及びコントローラユニークID(IDcu)を用いて生成される。このため、暗号化メディアデバイス鍵Enc(Kcu、Kmd_i)の復号に必要な情報が外部に漏れる危険は少なく、一旦メモリ100に書き込まれた暗号化メディアデバイス鍵Enc(Kcu、Kmd_i)を別個のコントローラ200で利用可能な状態とするため、不正に再暗号化(元のコントローラユニーク鍵Kcu1で復号後に、別のコントローラユニーク鍵Kcu2で暗号化)することは非常に困難となっている。
この実施の形態では、コントローラ鍵Kcと第1コントローラユニークID(IDcu)から第2コントローラユニークID(IDcntr)を生成する際に一方向性関数を用いているが、2つの入力データから1つの出力データを生成することのできる関数であればよく、特に一方向性関数に限定されるものではない。
この実施の形態では、公開鍵暗号方式に従ったメディアデバイス鍵Kmd_i及びメディアデバイス鍵証明書Certmediaが認証鍵交換処理に用いられる。しかし、コントローラ200のコントローラ鍵Kc及びコントローラユニーク鍵Kcuに基づいてコントローラユニークID(IDcntr)が生成される、このコントローラユニークID(IDcntr)は、セキュアチャネルを介してホスト装置2000に供給される。セキュアチャネルを介しての送信であるため、コントローラユニークID(IDcntr)が外部に漏れることはなく、改竄も防止されている。また、このコントローラユニークID(IDcntr)とメディアデバイス鍵証明書ID(IDm_cert)とに基づいて、ID結合部403により、メモリカードユニークID(IDmc)が生成される。このメモリカードユニークID(IDmc)に基づいて、セキュアストレージ内のメモリ100のメディアユニーク鍵Kmuが生成される。このように、本実施の形態によれば、公開鍵暗号方式による認証鍵交換処理を行った場合においても、公開鍵・秘密鍵のペアとコントローラ200に固有のコントローラユニークID(IDcntr)を互いに関連付けることができ、これによりクローンカードの蔓延を防止することができる。
図35を参照して、楕円曲線暗号をベースとした認証鍵交換を用いた場合の動作手順を説明する。
ホスト装置は乱数RNhを生成し(ステップS1)、ホストデバイス鍵証明書Certhostと共にセキュアストレージに送る(ステップS2)。セキュアストレージは受信したホストデバイス鍵証明書Certhostに付けられているデジタル署名を検証すると共に乱数RNmを生成する(ステップS3)。
続いて、セキュアストレージは乱数RNmとメディアデバイス鍵証明書(Certmedia)をホスト装置に送る(ステップS4)。これを受けて、ホスト装置2000は受信したメディアデバイス鍵証明書Certmediaに付けられているデジタル署名を検証する。なお、セキュアストレージはステップS4の処理を行うと共に,楕円曲線暗号におけるDiffie−Hellman鍵交換処理に必要な乱数Mkを生成し、楕円曲線のベースポイントGを用いてチャレンジ用の値Mv(=Mk*G)を計算する。そして、ID生成器212でIDcntrを生成し、メディアデバイス鍵Kmd_iを用いてチャレンジ用の値Mv、ステップS2で受け取った乱数RNh及びコントローラユニークID(IDcntr)に対するデジタル署名を生成する(ステップS6)。セキュアストレージはステップS6で生成したチャレンジ用の値Mv、コントローラユニークID(IDcntr)およびデジタル署名をホスト装置2000に送る(ステップS7)。
ホスト装置2000はステップS7で受信した署名を検証し、楕円曲線暗号におけるDiffie−Hellman鍵交換処理に必要な乱数Hkを生成し、楕円曲線のベースポイントGを用いてチャレンジ用の値Hv(=Hk*G)を計算する。そして、ホストデバイス鍵Khd_jを用いてチャレンジ用の値Hv及びステップS4で受け取った乱数RNmに対するデジタル署名を生成すると共に、本認証鍵交換処理によって共有される共有鍵Ks(=Hk*Mv)を計算する(ステップS8)。ホスト装置2000はステップS8で生成したチャレンジ用の値Hvおよびデジタル署名をセキュアストレージに送る(ステップS9)。これを受けてセキュアストレージはステップS9で受け取ったデジタル署名を検証し、共有鍵Ks(=Mk*Hv)を計算する。上記処理のデジタル署名検証処理において署名が正しく検証できなかった場合には,何れのステップにおいてもそれ以降の処理を中止する。
以上の認証鍵交換処理を行うことにより、ホスト装置とメモリカードは共有鍵を秘密裏に共有することができる。認証鍵交換処理においてはホスト装置とメモリカードが互いに生成したチャレンジを用いて共有鍵が計算されるため、共有鍵の値は認証鍵交換処理のたびに異なる。
(第5の実施形態)
次に、メモリ13が格納するメモリIDの具体的な実装形態について説明する。
<1.構成例(メモリシステム)>
図36を用いて、第5の実施形態に係るメモリシステムの構成例について説明する。
図示するように、第5の実施形態に係るメモリシステムは、被認証装置であるNAND型フラッシュメモリ110、認証装置であるホスト装置120、及び両者を仲介するコントローラ119を備える。ホスト装置120は、コントローラ119を介して、NAND型フラッシュメモリ110にアクセスする。
ここで、NAND型フラッシュメモリ110等の半導体製品の製造工程について、簡単に説明する。半導体製品の製造工程は、主に基板ウェハ上に回路を形成する前工程と、このウェハを個片に切り分けた後、配線や樹脂パッケージ封入等を行う後工程と、に分けることができる。
コントローラ119は、前工程においてNAND型フラッシュメモリ110内に包含されるよう構成される場合、前工程においては包含されないが後工程において同一パッケージに包含されるように構成される場合、NAND型フラッシュメモリ110とは異なるチップとして提供される場合、等様々な場合がある。図36を含め、以下では、コントローラ119がNAND型フラッシュメモリ110とは異なるチップとして提供される場合を例にとって説明している。
以下、特に断りのない限り、ホスト装置120とNAND型フラッシュメモリ110との間のデータや命令のやり取りは、多くの場合コントローラ119が仲介する。この場合でも、コントローラ119は、前述のデータや命令の本質的内容を変えることはないため、詳細については省略して説明する場合がある。なお、NAND型フラッシュメモリ110及びコントローラ119の構成例の詳細については後述する。
また、ホスト装置120の構成としては、民生機器のように専用ハードウェアで構成される場合、専用ハードウェアとそれを動作させるファームウェアの組み合わせで構成される場合だけでなく、装置の全機能がPC上で動作するソフトウェアで実現される場合も想定される。本実施形態は、ホスト装置120がどのような構成を採用していても、基本的には適用し得るものである。
図36に示す各コンポーネント、データ処理について、以下で説明する。本実施形態では、被認証装置に記録されている秘密識別情報SecretIDを第三者から秘匿した状態で読み出すと共に、正規の被認証装置から読み出されたデータであることを確認する方法、及び同方法を、NAND型フラッシュメモリ10を利用したメモリシステムに適用する場合の構成例を示すものである。
1−1.NAND型フラッシュメモリ
本実施形態において、NAND型フラッシュメモリ110は、被認証装置である。
図示するように、本実施形態に係るNAND型フラッシュメモリ110は、セルアレイ(Cell array)111、及びセルアレイ111の周辺領域に配置されるデータキャッシュ(Data Cache)112、データ生成回路(Generate)113,114、一方向性変換器(Oneway)115を備える。データ生成回路(Generate)113,114及び一方向性変換器(Oneway)115は認証回路17を構成する。
セルアレイ111は、外部からの読み出し及び書き込みの両方が可能な読み書き可能領域(Read/Write area)111−1、外部からの読み出し及び書き込みの両方が禁止された秘匿領域(Hidden area)111−2、外部からの書き込みが禁止されたロム領域(ROM area)111−3等を備える。
読み書き可能領域(一般領域)111−1は、NAND型フラッシュメモリ110の外部からのデータ書き込み及びデータ読み出し両方が可能な領域である。読み書き可能領域111−1には、FKeyvを秘匿するために用意された暗号化FKey束である鍵管理情報FKBv(Family Key Block)が記録される。FKBvはNAND型フラッシュメモリ110に記録される他のデータとは異なり、NAND型フラッシュメモリ110の製造時だけでなく、例えばSDカードのようにNAND型フラッシュメモリ110にコントローラを結合させて一般ユーザ向けのストレージメディアを製造する段階や、或いは前記ストレージメディアの販売後に、ユーザの要求に従ってサーバからダウンロードして記録するように構成することも可能である。詳細については、後述する。
ここで、鍵管理情報FKBvとは、ホスト装置20が保持する秘密情報IDKeykと、当該秘密情報IDKeykのインデックス情報kとに基づいて秘匿情報FKeyvを復号するために用いられる情報、または、ホスト装置120が保持する秘密情報IDKeykと、当該ホスト装置120の識別情報とに基づいて秘匿情報FKeyvを復号するために用いられる情報である。
また、鍵管理情報FKBvは、NAND型フラッシュメモリ110毎にユニークに用意するだけでなく、製造工程に合わせて例えばNAND型フラッシュメモリ110の製造ロット(lot)単位やウェハ(Wafer)単位等、複数のNAND型フラッシュメモリ110に共通に付すことが可能な情報(対応付けられることが可能な情報)である。また、鍵管理情報FKBvのインデックス情報vは、鍵管理情報FKBvの識別情報またはバージョン番号情報であってもよい。
秘匿領域111−2は、NAND型フラッシュメモリ110の外部からのデータ書き込み及びデータ読み出し両方が禁止される領域(Read/Write inhibit)である。秘匿領域111−2には、認証処理においてNAND型フラッシュメモリ10が用いる秘密情報NKeyi及びNAND型フラッシュメモリ110の秘密識別情報SecretIDが記録される。
ロム領域111−3は、NAND型フラッシュメモリ110外部からのデータ書き込みが禁止され、一方データ読み出しが許可される領域である。ロム領域111−3には、鍵管理情報FKBvによって秘匿されている秘匿情報FKeyvを示すためのインデックス情報v(index of FKey)、秘匿情報FKeyvによって暗号化された秘密識別情報SecretID(E-SecretID)、秘密情報NKeyiを示すためのインデックス情報i(index of NKey)が記録される。
本実施形態では、インデックス情報iやインデックス情報vを記録する際にデータに誤りが生じてしまった場合でも、正しい識別情報が読み出せるようにするために、一般的には誤り訂正符号を付加した状態で記録される。しかしながら、説明を簡略化するため、ここでは誤り訂正符号化及び復号化処理については特に図示しないものとする。
なお、ロム領域111−3は、例えば1回の書き込みのみ許容されるOTP(One Time Program)領域であってもよいし、NAND型フラッシュメモリ110の製造工程においては読み出し及び書き込みが可能な一般領域であって、出荷後の管理フラグの書き換えによって読み出し専用となる領域であってもよい。または、当該領域に対する書き込みコマンドを一般領域とは異なる特殊コマンドとし、NAND型フラッシュメモリ110の受領者にはこの特殊コマンドを提供しない等の方法を利用してもよい。他には、NAND型フラッシュメモリ110上では一般領域の扱いであるが、コントローラ119がホスト装置120に提供する機能を読み出しのみに限定する、などの構成をとってもよい。
なお、ロム領域111−3に記録される情報は後述の通り、秘匿領域111−2に記録される情報と関連付けられているため、ロム領域111−3に記録される情報を改ざんした場合、NAND型フラッシュメモリ110の認証機能を有効に働かせることができなくなる。従って改ざんされることによるセキュリティ上の懸念はないため、必ずしもロム領域である必要はなく、読み出し及び書き込みが可能な一般領域で代用してもよい。この場合、図面中のロム領域111−3を読み書き可能領域(一般領域)111−1と読み替えればよい。関連して、ロム領域111−3中に記載されているデータの一部を読み書き可能領域(一般領域)111−1に記録してもよい。例えば、インデックス情報v(index of FKey)を読み書き可能領域(一般領域)に記録し、暗号化された秘密識別情報(E-SecretID)とインデックス情報v(index of FKey)をロム領域111−3に記録するという構成も可能である。上記ロム領域111−3の構成例については、本明細書にて他の実施形態や変形例として後述されるロム領域111−3にも適用可能である。
暗号化された秘密識別情報E-SecretIDとは、NAND型フラッシュメモリチップ110毎に固有に(ユニークに)付される秘密識別情報SecretIDを秘匿情報FKeyvによって暗号化したデータである。或いは、NAND型フラッシュメモリに予めコンテンツを記録して販売するようなプリレコーディング(事前記録)コンテンツ配布用途において同じコンテンツデータを記録する際には、敢えて同じ暗号化秘密識別情報E-SecretIDを記録する等、用途に合わせて同じ暗号化秘密識別情報を複数のNAND型フラッシュメモリに記録することもできる。
データキャッシュ12は、セルアレイ111から読み出したデータを一時的に記憶する。
データ生成部113,114は、複数の入力データから予め定められた演算によって出力データを生成する回路である。
データ生成部113は、ホスト装置120から受信した定数HCjを前述の秘密情報NKeyiを用いて変換することで、秘密情報HKeyi,jを生成する。データ生成部114は、ホスト装置120から受信した乱数RNhを秘密情報HKeyi,jを用いて変換することで、セッション鍵SKeyi,jを生成する。データ生成部113,114は、ハードウェア(回路)若しくはソフトウェア、またはハードウェアとソフトウェア両方の組み合わせでも実装され得る。
データ生成部113,114は、回路として実装される場合は、全体の回路規模を小さくするために後述の一方向性変換器115と同じ或いは一方向性変換器を流用した回路や、AES(Advanced Encryption Standard)暗号化器等を用いることも可能である。同様に、データ処理手順を分かり易くするために異なる構成要素として図示されている二つのデータ生成部は、同じ回路を繰り返し利用することが可能である。この例の場合、HKeyi、j=AES_E(NKeyi, HCj)、SKeyi、j= AES_E(HKeyi、j, RNh)などの構成をとることが可能である。
一方向性変換器115は、入力されたデータと別途入力された鍵データに一方向性の変換を施し、一方向性変換された入力データを出力する。一方向性変換器115はハードウェア(回路)若しくはソフトウェア、またはハードウェアとソフトウェア両方の組み合わせでも実装され得る。
一方向性変換器115は、秘匿領域111−2から読み出した秘密識別情報SecretIDを、データ生成回路114によって生成されたセッション鍵SKeyi,jを用いて一方向性関数により変換し、一方向性変換識別情報Oneway-ID (= Oneway(SKeyi,j, SecretID))を生成する。また、一方向性変換器115は、回路として実装される場合は、前述の通り、全体の回路規模を小さくするために、データ生成部114等を流用して使用することも可能である。この例の場合、Oneway-ID=AES_E(SKeyi、j, SecretID) (+) SecretIDなどの構成をとることが可能である。
また、図示しないが、コントローラ119を介してホスト装置120にデータを出力する出力部等も実際には構成要素として配置されている。
1−2.ホスト装置
本実施形態において、ホスト装置120は、認証装置である。
図示するように、本実施形態に係るホスト装置(Host)120は、復号部(Decrypt)121、FKB処理部(Process FKB)122、メモリ(Memory)123、乱数生成部(RNG: Random Number Generator)124、選択部(Select 2)125、データ生成部(Generate)126、一方向性変換器(Oneway)127、及びデータ検証部(Verify)128等を備える。この他、例えば、図示しない誤り訂正処理部等も必要に応じて構成要素として備えることが可能である。
復号部121は、入力されたデータを別途入力された鍵データで複合し、復号された入力データを出力する。本実施形態では、復号部121は、コントローラ119を介して、暗号化秘密識別情報E-SecretIDをNAND型フラッシュメモリ110から読み出す。そして、暗号化秘密識別情報E-SecretIDを、後述のFKB処理部122(データ選択部122−2)から入力された秘匿情報FKeyを用いて復号し、秘密識別情報SecretIDを出力する。
FKB処理部122は、NAND型フラッシュメモリ110から読み出される鍵管理情報FKBvを、メモリ123に秘匿されている秘密情報IDKeyk及び秘密情報IDKeykのインデックス情報kを用いて復号し、生成した秘匿情報FKeyを復号部21に出力する。本実施形態では、FKB処理部122は、データ選択部(Select 1)121−1及び復号部(Decrypt)122−2を備えている。
第1段目のデータ選択部121−1は、NAND型フラッシュメモリ110から読み出した暗号化FKey束(鍵管理情報FKBv)の中から、メモリ123に記録されているインデックス情報kを用いて、メモリ123に秘匿されている秘密情報IDKeykによって復号可能なデータを選択して、復号部122−2に出力する。
復号部122−2は、メモリ123に秘匿されている秘密情報IDKeykを用いて、データ選択部122−1において選択されたデータを復号し、生成された秘匿情報FKeyを復号部121に出力する。
メモリ123は、インデックス情報k、秘密情報IDKeyk、秘密情報セットHKeyi,j (i=1,…,m。なお、jは当該HKeyi,jにおいては固定の値である)、及び定数HCjを記録し、少なくとも秘密情報IDKeyk及び秘密情報セットHKeyi,j (i=1,…,m)をホスト装置20の外部に対して秘匿する。ここで、定数HCjとは、認証要求(Request authentication)時にNAND型フラッシュメモリ110に送出するために予め保持しているホスト装置20の定数である。詳細については後述する。
乱数生成部124は、認証処理に用いる乱数RNhを生成し、出力する。
第2段目のデータ選択部125は、NAND型フラッシュメモリ110のロム領域11−3からデータキャッシュ112を介して読み出したインデックス情報iを用いて、当該ホスト装置120が秘匿している秘密情報セットHKeyi,jの中から、認証処理に必要な秘密情報HKeyi,jを選択する。
データ生成部126は、複数の入力データから予め定められた演算によって出力データを生成する演算部である。本実施形態では、データ生成部126は、ホスト装置120自身が生成した乱数RNhを、ホスト装置120が秘匿している秘密情報HKeyi,jを用いて変換することで、セッション鍵SKeyi,jを生成する。データ生成部126として、例えば上述したAES暗号化器等を用いることも可能である。
一方向性変換器127は、復号部21から出力される秘密識別情報SecretIDを、データ生成部126から出力されるセッション鍵SKeyi,jを用いて一方向性関数により変換し、一方向性変換識別情報Oneway-IDを生成する。
データ検証部128は、NAND型フラッシュメモリ110から受信した一方向性変換識別情報Oneway-IDと、ホスト装置120内の一方向性変換器27から得られた一方向性変換識別情報Oneway-IDとが一致するか否かを比較する。上記一方向性変換識別情報Oneway-IDの両方の値が一致した場合(OK)には、復号部121で得られた秘密識別情報SecretIDが正規のIDであると判定して、得られた秘密識別情報SecretIDを以降の処理に引き渡す。一方、不一致の場合(NG)には、秘密識別情報SecretIDが不正なIDであると判定して、その旨を出力する。
他に、ホスト装置120が有する秘密情報、例えばIDKeyk、HKeyi、jが流出し、流出情報を有する不正ホスト装置が不正製造者によって製造された場合などにおいて、当該不正ホスト装置を無効化する手段として、鍵管理情報(FKBv)から不正ホスト装置が有するIDKeykにてFKeyを導出可能な情報を除くなどの対応をとることも可能である。この対応については、図38における説明にて後述する。この対応をするに当たっては、秘密情報IDKeyk及びインデックス情報k、秘密情報HKeyi、j及びホスト定数HCjの間に関連を持たせることが有用である。これは、関連があれば、不正ホスト装置が認証において通知するHCjを観測することによって当該不正ホスト装置が有する秘密情報IDKeyk及びHKeyi、jの両方が特定可能となる。関連付けの方法としては、HCjの全部もしくは一部の情報をIDKeykと共有することや、HCjの全部もしくは一部の情報を、IDKeykを暗号処理した結果により構成することや、IDKeykの全部もしくは一部の情報をHCjを暗号処理した結果により構成することなどの方法がとれる。更に、鍵管理情報(FKBv)の生成に当たり、FKeyおよびIDKeykに加えて、HKeyi、jを用いるのが望ましい。これについてはFKBの構成例を説明している箇所にて後述する。
ここで、上記秘密情報IDKeyk、秘密情報HKeyi,jは、例えば、ホスト装置120が民生機器のような専用ハードウェア装置であれば内部の専用メモリにメーカ独自の方法で暗号化した上で記録されていたり、PC等で実行されるプログラムであればタンパーレジスタントソフトウェア(TRS)技術によって不正な解析から保護できる状態で保持していたり、或いはセキュリティモジュールを内蔵している場合には当該セキュリティモジュールの機能を利用して秘匿する等の対策を採った状態で記録される。
なお、コントローラ(Controller)119は、NAND型フラッシュメモリ110を制御して、ホスト装置120との間のデータ転送等を行う。例えばコントローラ119は、ホスト装置20から受信した命令を解釈し、NAND型フラッシュメモリ110のインターフェース仕様に適合した命令に変換した上で、当該命令をNAND型フラッシュメモリ110に送出する。コントローラ119は、例えばSD Memory規格、SDIO規格、eMMC規格等、必要に応じて様々なインターフェース規格を採用することができる。
また、コントローラ119は、一般領域111−1の一部を確保し、自身の動作に必要な制御データを保存する。また、コントローラ119は、ホスト装置120から受信した論理アドレスをNAND型フラッシュメモリの物理アドレスに変換する機能を有していてもよい。また、セルアレイ111の疲弊を平準化するため、所謂ウェアレベリングを実行する機能を有していてもよい。ただし、少なくとも秘匿領域111−2についてはウェアレベリングの対象外とされる。
また、メモリシステムの構成例は、上記説明したものに限られない。例えば、図示しない誤り訂正処理部等のその他の構成要素も必要に応じて備えることが可能である。更に、NAND型フラッシュメモリ110が有する秘密情報NKeyiが複数あってもよい。すなわち、秘密情報NKeyiとこれに対応するインデックス情報iの組み合わせを1つのスロットとし、複数スロットがNAND型フラッシュメモリ110に記録されている。ここで、上記スロットには各々スロット番号が付与されており、ホスト装置120は各スロット番号のインデックス情報iを読み出し、いずれか一つを選択して認証を行う。この場合、ホスト装置120はNAND型フラッシュメモリ110に対して選択したスロット番号に相当する情報を通知し、NAND型フラッシュメモリ110は通知されたスロット番号に相当する情報を用いて認証処理を行う。更には、NAND型フラッシュメモリ110が有する全ての情報を1つのスロットとし、当該情報スロットを複数有してもよい。すなわち、秘密情報NKeyi、インデックス情報i、鍵管理情報(FKBv)、インデックス情報v(index of FKey)、秘密識別情報SecretID、暗号化された秘密識別情報(E-SecretID)を1つのスロットとし、複数スロットがNAND型フラッシュメモリ110に記録されている。ここで、上記スロットには各々スロット番号が付与されており、ホスト装置120は各スロット番号のインデックス情報iを読み出し、いずれか一つを選択して認証を行う。この場合、ホスト装置120はNAND型フラッシュメモリ110に対して選択したスロット番号に相当する情報を通知し、NAND型フラッシュメモリ110は通知されたスロット番号に相当する情報を用いて認証処理を行う。
上記において、NAND型フラッシュメモリ110が複数のスロットを有する方法を示したが、これらに限らず、一部の情報を複数のスロットで共有するいかなる構成をとることも可能である。例えば、秘密識別情報SecretID、暗号化された秘密識別情報(E-SecretID)、鍵管理情報(FKBv)、インデックス情報v(index of FKey)は複数のスロットで共有し、他の情報はスロット毎に個別に有するなども可能である。
また、NAND型フラッシュメモリ110が複数のスロットとスロット番号を有し、いずれのスロットを認証に用いるかをホスト装置120が通知する方法は本明細書にて後述する他の実施例全てに適用可能である。
<2.認証フロー>
次に、図37に沿って、第5の実施形態に係るメモリシステムの認証フローについて説明する。
(Step S111)
認証を開始(Start)すると、ホスト装置120は、NAND型フラッシュメモリ10から鍵管理情報である暗号化FKey束(FKB: Family Key Block)及び暗号化秘密識別情報SecretID(E-SecretID)を読み出す。
(Step S112)
続いて、ホスト装置120は、読み出した鍵管理情報FKBからデータ選択部(Select1)122−1によりデータ選択処理を行い、ホスト装置120が復号可能な暗号化された秘匿情報FKeyを読み出すと共に、秘匿している秘密情報IDKeykを用いて上記復号部122−2により復号することにより、秘匿情報FKeyを得る。更に、ホスト装置120は、得られた秘匿情報FKeyを用いて、NAND型フラッシュメモリ110から読み出した暗号化秘密識別情報E-SecretIDを復号することにより、秘密識別情報SecretIDを得る。
(Step S113)
続いて、ホスト装置120は、NAND型フラッシュメモリ110に対して、インデックス情報iの読み出し要求を行う。
(Step S114)
続いて、NAND型フラッシュメモリ110は、ホスト装置120の要求を受けて、インデックス情報iをセルアレイ111からロードし、ホスト装置120に出力する。
(Step S115)
続いて、ホスト装置120は、認証要求時に必要となる乱数RNhを生成する。認証処理に乱数RNhを用いることにより、以下の処理でNAND型フラッシュメモリ110との間で毎回異なる共有鍵を利用することができる。
(Step S116)
続いて、ホスト装置120は、認証要求(Request authentication)と共に、予め保持している定数HCj及び乱数RNhをNAND型フラッシュメモリ110に送出する。
(Step S117)
続いて、NAND型フラッシュメモリ110は、秘密情報NKeyi (i=1,…,m)及び秘密識別情報SecretIDを秘匿領域111−2からロードし、データキャッシュ112に保存する。
(Step S118)
続いて、NAND型フラッシュメモリ110は、秘匿している秘密情報NKeyiとホスト装置120から受信した定数HCjとを用いて、データ生成回路13におけるデータ生成処理により秘密情報HKeyi,jを生成する。
(Step S119)
続いて、NAND型フラッシュメモリ110は、受信した乱数RNhを用いて、データ生成回路114におけるデータ生成処理により、セッション鍵SKeyi,j (= Generate(HKeyi,j, RNh))を生成する。
(Step S120)
続いて、NAND型フラッシュメモリ110は、生成したセッション鍵SKeyi,jを用いて、秘密識別情報SecretIDに一方向性変換器115における一方向性変換処理を行い、一方向性変換識別情報Oneway-ID (=Oneway(SKeyi,j, SecretID))を生成する。生成された一方向性変換識別情報Oneway-IDは、ホスト装置120に送出される。
(StepS121)
上記StepS118と並行して、ホスト装置120は、受信したインデックス情報iを用いて、予め秘匿していた秘密情報セットHKeyi,j (i=1,…,m)から当該NAND型フラッシュメモリ110との認証処理に必要な秘密情報HKeyi,jを選択する。
(Step S122)
続いて、ホスト装置120は、選択した秘密情報HKeyi,jと生成した乱数RNhとを用いて、データ生成部126におけるデータ生成処理により、セッション鍵SKeyi,j (= Generate(HKeyi,j, RNh))を生成する。
(Step S123)
続いて、ホスト装置120は、生成したセッション鍵SKeyi,jを用いて、秘密識別情報SecretIDに一方向性変換器127における一方向性変換処理を行い、一方向性変換データOneway-IDを生成する。
(Step S124)
続いて、ホスト装置120は、NAND型フラッシュメモリ110より受信した一方向性変換識別情報Oneway-IDと、自身が生成した一方向性変換識別情報Oneway-IDとが一致するか否かを判定する。上記一方向性変換識別情報Oneway-IDの両方の値が一致した場合(OK)には、復号部121で得られた秘密識別情報SecretIDが正規のIDであると判定して、以降の処理に秘密識別情報SecretIDを引き渡す。一方、不一致の場合(NG)には、秘密識別情報SecretIDが不正なIDであると判定し、その旨を以降の処理に出力する。
以上の動作により、第5の実施形態に係る認証フローを終了する(End)。
なお、ここで、メモリシステムの構成例において示した通り、NAND型フラッシュメモリ110が複数のスロットを有する場合、ホスト装置120は認証に用いるスロット番号をNAND型フラッシュメモリ10に通知する必要がある。この場合、上記Step S116にてスロット番号を付随して通知してもよいし、もしくはStep S116より以前のStepにおいて通知してもよい。
<3.FKB(Family Key Block)について>
次に、図38を用い、第5の実施形態に係る鍵管理情報FKB(Family Key Block)についてより詳しく説明する。
秘密識別情報SecretIDが記録されているNAND型フラッシュメモリ110に適合した鍵管理情報FKBを生成するためには、予め用意された秘密鍵情報であるIDKeyi (i=1,…,n)(Set of IDKeyi’s)の1つ1つのIDKeyiを用いて、FKeyvを1つ1つ暗号化(Encrypt)する。つまり、鍵管理情報FKBとは、暗号化FKeyv(E- FKeyv,i) = Encrypt(IDKeyi, FKeyv)の集合であり、この暗号化FKeyvの集合を暗号化FKey束と称する。
なお、鍵管理情報FKBの構成については、本実施形態に限られない。例えば、特定のIDKeyiが露呈してしまった場合、当該IDKeyiを保持しているホスト装置20では暗号化FKey束からFKeyを復号することができないようにするために、当該秘密情報IDKeyiで復号可能な暗号化FKeyv(上述の例ではE- FKeyv,i)をFKBから削除することにより、新たに構成されたFKBを記録したNAND型フラッシュメモリ110を使用した場合には、当該ホスト装置120では正しいFKeyv及び秘密識別情報SecretIDを得る(復号する)ことができないようにすることも可能である。このようにすることで、当該秘密情報IDKeyiを保持したホスト装置120を無効化する機能を提供することも可能である。
また、前述の通り、秘密情報IDKeyk及びインデックス情報k、秘密情報HKeyi、j及びホスト定数HCjの間に関連を持たせるにあたり、鍵管理情報(FKBv)の生成においてFKeyおよびIDKeykに加えて、HKeyi、jを流用することもできる。例えば、(E- FKeyv,i) = Encrypt (Encrypt(IDKeyi, FKeyv), HKeyi、j)、(E- FKeyv,i) = Encrypt (Encrypt(HKeyi、j, FKeyv), IDKeyi)、(E- FKeyv,i) = Encrypt(HKeyi、j, IDKeyi (+) FKeyv)などの構成をとってもよい。これは、複数のホスト装置20から鍵が流出した場合に、異なる装置の秘密鍵IDKeyi、HKeyi、jを組み合わせることを防止する効果がある。つまり、正しく組み合わされたIDKeyi、HKeyi、jでない限り、FKeyの復号を不可能とすることにより、HCjを観測することでこれに紐付いたHKeyi、jが判明し、更にIDKeyiも特定することができ、ひいては露呈したIDKeyiを無効化することが可能となる。
鍵管理情報FKBの生成方法についても、本実施形態に限られない。例えば、CPRM(非特許文献1参照)において用いられているMKB(Media Key Block)技術や、非特許文献3に開示されたMKB技術を用いて鍵管理情報FKBを生成しても、ホスト装置120を無効化する機能を提供することが可能である。
ここで、MKB技術とは、複数の機器がそれぞれ異なる秘密情報を持つ状況で、機器の無効化を実現しつつ、(無効化対象でない機器の間で)共通の秘密情報(Media Key)を効率よく共有するための技術であり、Broadcast Encryptionとも称されるものである。
例えば、上記MKB技術を適用した場合、メモリシステムの構成例は、図39のように示される。図示するメモリシステムは、FKB処理部(Process FKB)122が上位概念化されて図示される点で、図36と相違する。この場合においても、KやIDKeyiに対応する情報であるホスト装置120のノード番号やノード番号に割り当てられたホスト鍵群によって復号されるFKBの当該データをHKeyi、jやHCjと関連付けることにより、露呈した鍵の特定と無効化が可能となる。
<4.秘密情報やFKBの書き込みについて>
次に、NAND型フラッシュメモリ110への秘密情報や鍵管理情報FKBの書き込みについて説明する。
4−1.NAND型フラッシュメモリの製造時等に書き込む場合
まず、図40、図41を用い、例えば、NAND型フラッシュメモリ110の製造時等に秘密情報や鍵管理情報FKBを書き込む場合について説明する。ここでは、図41のフローに即して説明する。
ライセンス管理者(Licensing Administrator)140は、以下のデータを生成する:鍵管理情報FKBv (v=1,…,n)、秘匿情報FKeyv(v=1,…,n)、インデックス情報v(v=1,…,n)、秘密情報NKeyi、及びインデックス情報i。なお、前述した通り、FKBvは、FKeyvを暗号化したものである。また、vは複数の値であっても良い。例えば、vとして1,2,3の3つの値をライセンス管理者140が生成する場合、ライセンス管理者140は、生成したvに対応させる形で、(FKB1, FKey1), (FKB2, FKey2), (FKB3, FKey3)を生成する。
ライセンス管理者140は、生成したデータの内、FKeyv(v=1,…,n)、v(v=1,…,n)、NKeyi、iをメモリ製造者130に渡す。これらのデータを渡す際には、例えば、ライセンス管理者140は、予めメモリ製造者130の公開鍵を入手しておき、当該公開鍵を用いてデータを暗号化した上でメモリ製造者130に送信する、等といった安全な手段を用いる。
メモリ製造者(Memory Vender)130は、上記NAND型フラッシュメモリ110に加え、ライセンス管理者140から渡されたFKBv (v=1,…,n)等のデータ31を保持し、選択部132、133、生成部134、暗号部135を備える。
(Step S131)
上記構成により、まず、メモリ製造者130は、生成部(SecretID Generator)134において、秘密識別情報SecretIDを生成する。
(Step S132)
続いて、データ131を受け取ったメモリ製造者130は、vの中から一つの値を選択部132により選択する。更に、選択部32は、前記選択したvに対応するFKeyvを選択する。メモリ製造者130は、選択したFKeyvを用いて、生成したSecretIDを暗号化し、暗号化された秘密識別情報E-SecretIDを生成する。
(Step S133)
続いて、メモリ製造者130は、当該vの値をNAND型フラッシュメモリ110のロム領域111−3へインデックス情報v(index of FKey)として書き込む。
また、メモリ製造者130は、インデックス情報i(index of NKey)の値をNAND型フラッシュメモリ110のロム領域11−3へ、NKeyiの値を秘匿領域111−2へそれぞれ書き込む。
更に、メモリ製造者130は、秘密識別情報SecretIDの値をNAND型フラッシュメモリ110の秘匿領域111−2へ、暗号化された秘密識別情報E-SecretIDの値をロム領域111−3へそれぞれ書き込む。
以上の動作により、NAND型フラッシュメモリ110の製造時等に所定の秘密情報や鍵管理情報FKBを書き込むことができる(End)。なお、上記各値を書き込む順番は、暗号化された秘密識別情報E-SecretIDは、暗号化処理しないと得られない値であるため、暗号部35による上記暗号化処理後となる。しかし、それ以外の書き込み動作の順序について制約はなく、上述の例以外の順番で書き込んでも良い。
更に、メモリ製造者130は、書き込み処理を終えたNAND型フラッシュメモリ110をカード製造者(Card Vendor)に渡す。
このように、本実施形態では、インデックス情報v(index of FKey)等が、NAND型フラッシュメモリ110にあらかじめ書き込まれた状態とすることができる。
4−2.FKBをカード製造者(Card Vendor)が書き込む場合
次に、図42、図43を用い、FKBをカード製造者50が書き込む場合について説明する。ここでも、図43のフローに即して説明する。
カード製造者(Card Vendor)150は、上記メモリ製造者130から上記所定の情報v等が書き込まれたNAND型フラッシュメモリ110を受け取る。
そして、例えばSDカード等のように、そのNAND型フラッシュメモリ110を制御するコントローラ119を結合させ、一般ユーザ等向けのストレージメディア(ここでは、Card)155を製造する。
カード製造者150は、上記ストレージメディア(Card)155に加え、ライセンス管理者140から受け取るデータ(FKBv)151、選択部152を備える。
カード製造者150が鍵管理情報FKBvを書き込む処理については、次の通りである。
(Step S135)
まず、カード製造者150は、鍵管理情報FKBvをライセンス管理者140からデータ151として受け取る。この際、データ151の受け渡しには、上述した安全な手段を用いる。
そして、カード製造者150は、(コントローラ119を介して)NAND型フラッシュメモリ110のロム領域11−3に記録されるインデックス情報vの値をデータキャッシュ12等に読み出す。
(Step S136)
続いて、カード製造者150は、読み出したインデックス情報vの値に対応する鍵管理情報FKBvを選択部152により選択する。
(Step S137)
続いて、カード製造者150は、コントローラ119を介して、NAND型フラッシュメモリ110の読み書き可能領域111−1に選択した鍵管理情報FKBvを書き込む。
<作用効果>
上記のように、第5の実施形態に係る認証装置、被認証装置、及びその認証方法によれば、少なくとも下記(1)乃至(3)の効果が得られる。
(1)ホスト装置120から秘密情報が漏洩した場合であっても、漏洩した情報を用いたNAND型フラッシュメモリ110の秘密情報の不正利用を防止することができる。
ここで、上述した通り、認証装置であるホスト装置120は、民生機器のような専用ハードウェア装置だけでなく、例えば、PC等で実行可能なプログラムとして提供され、当該ソフトウェアが実質的なホスト装置となる場合がある。一方、被認証装置であるNAND型フラッシュメモリ110は、記録メディアであり、ファームウェアと呼ばれるプログラムが介在する場合であっても、重要な処理や情報はセルアレイ111中のハードウェア内に秘匿された状態で記憶される。
そのため、現実的には、例えば、PC上で実行されるソフトウェアは、記録メディアに比べて耐タンパー性能(攻撃に対する耐性)が低くなってしまうことが懸念される。そのため、耐タンパー性能の低いホスト装置(認証装置)120を攻撃することで、耐タンパー性の高いNAND型フラッシュメモリ110(被認証装置)に秘匿された秘密情報をも暴露され、耐タンパー性の高い装置に成りすまされることが懸念される。
そこで、第5の実施形態に係る構成及びその認証方式では、上記のように、比較的耐タンパー性の高いNAND型フラッシュメモリ110は、第1鍵情報(NKeyi)から第2鍵情報(HKeyi,j)を生成することができる第1鍵情報(NKeyi)をセルアレイ11に秘匿する。一方、ホスト装置120は、第2鍵情報(HKeyi,j)からは第1鍵情報(NKeyi)を生成することができない第2鍵情報(HKeyi,j)のみをメモリ123に秘匿する。
そのため、NAND型フラッシュメモリ110は、ホスト装置120から受領した定数HCjと自身が秘匿する第1鍵情報(NKeyi)とを用いて、認証装置120が秘匿する第2鍵情報(HKeyi,j)を生成する。NAND型フラッシュメモリ110は、第2鍵情報(HKeyi,j)と乱数RNhとを用いて、セッション鍵SKeyi,jを生成する。
ホスト装置120は、インデックス情報iにより選択される第2鍵情報(HKeyi,j)と乱数RNhとを用いて、セッション鍵SKeyi,jを生成する。その結果、NAND型フラッシュメモリ110とホスト装置120とは、同じセッション鍵SKeyi,jを共有する。
このように、本実施形態では、NAND型フラッシュメモリ(被認証装置)110が秘匿する情報の秘密レベルと、ホスト装置(認証装置)120が秘匿する情報の秘密レベルとを非対称とすることができる。例えば、本実施形態では、比較的耐タンパー性の高いNAND型フラッシュメモリ110が秘匿する情報の秘密レベルを、比較的耐タンパー性の低いホスト装置120が秘匿する情報の秘密レベルよりも、より高く設定することができる。
そのため、仮にホスト装置120が秘匿する情報が漏洩した場合であっても、比較的耐タンパー性の高いNAND型フラッシュメモリ110が秘匿する情報の秘密レベルが更に高いため、漏洩した情報を用いてNAND型フラッシュメモリ110に“成りすますこと”ができない。従って、漏洩した情報を用いたNAND型フラッシュメモリ110の秘密情報の不正利用を防止することができる点で有利である。その結果、例えば、ホスト装置20から読み出されたID情報が、目的の被認証装置110から読み出した情報であることを確実に判定し、その相手方の不正利用の無効化等が可能となる。
(2)実装化において有利である。
上述した通り、本実施形態のような構成では、比較的大きな回路規模を要求される公開鍵暗号処理やMKB処理のハードウェア実装が困難である等の回路規模上の制約が同時に課せられる環境下である。
しかしながら、本実施形態によれば、鍵情報が非対称であるものの比較的大きな回路規模を必要とする公開鍵暗号処理を用いる必要がない。更に、上記のように、ホスト装置(認証装置)120とNAND型フラッシュメモリ(被認証装置)110とが秘匿する情報の秘密レベルを非対称とすることにより、片方の装置から漏れた情報だけではもう一方の装置に成りすますことができない認証手段を行い、認証装置120と被認証装置110との間で秘密情報であるセッション鍵SKeyi,jを共有する。
そのため、上記制約が課される厳しい環境下であっても、実装化において有利であると言える。更に、上記のように、メモリシステムを構成するデータ生成回路や暗号化器を同じ処理として共有することにより、回路規模を更に小さくすることも可能である。
(3)製造工程の簡略化、製造コストの低減化に対して有利である。
本実施形態に係るNAND型フラッシュメモリ110は、読み書き可能領域111−1に、その用途に応じてNAND型フラッシュメモリ110毎に固有(ユニーク)、或いは製造ロット(lot)単位等複数のNAND型フラッシュメモリ110に共通に付される鍵管理情報(FKBv)を備える。更に、ロム領域11−3に、NAND型フラッシュメモリ110毎に固有に(ユニークに)付される暗号化された秘密識別情報(E-SecretID)を備える。
鍵管理情報(FKBv)を製造ロット単位で共通化させた場合には、NAND型フラッシュメモリ110毎に記録しなければならない固有(ユニーク)な情報を、暗号化された秘密識別情報(E-SecretID)のようにデータサイズの小さいデータだけに減らすことができる。換言すれば、共通に付される鍵管理情報(FKBv)と固有の暗号化秘密識別情報(E-SecretID)とに分け、2段階に暗号化することにより、NAND型フラッシュメモリ110に書き込むべき固有の暗号化秘密識別情報(E-SecretID)のデータサイズを抑えることができるものである。
例えば、上記図40、図41で示したように、NAND型フラッシュメモリの製造時等において、メモリ製造者130は、ライセンス管理者40から受け取ったNAND型フラッシュメモリ110毎に固有な情報(E-SecretID)を書き込む。
そして、NAND型フラッシュメモリ110に共通に付される暗号化された鍵管理情報(FKBv)については、カード製造者150等がNAND型フラッシュメモリ110に共通に書き込むことができる。例えば、上記図42、図43で示したように、カード製造者150が、上記ライセンス管理者140から受け取ったNAND型フラッシュメモリ110毎に共通な鍵管理情報FKBvを書き込む。そのため、メモリ製造者130が書き込まなければならないNAND型フラッシュメモリ110毎に固有(ユニーク)なデータのサイズを低減することが可能となる。
ここで、NAND型フラッシュメモリ110の製造時等に、NAND型フラッシュメモリ10に固有かつデータサイズの大きい情報を書き込む場合、製造工程が煩雑となり、製造時間が長期化し、製造コストが増大してしまう。しかしながら、本実施形態に係る構成及び方法によれば、共通に付される鍵管理情報FKBvと固有の暗号化秘密識別情報(E-SecretID)とに分けて2段階に暗号化することにより、このような煩雑な製造工程は不要となるため、製造工程を簡略化でき、製造コストを低減できる点で有利である。また、製造時間を短縮化できるため、消費電力を低減できる点でもメリットがある。
また、ホスト装置120の側においても、秘匿情報FKeyを用いてNAND型フラッシュメモリに固有な値であるSecretIDを暗号化してE-SecretIDを生成し、更に、IDKeykを用いてFKeyを暗号化して鍵管理情報FKBを生成するという構成を取ることにより、NAND型フラッシュメモリ110と同様のメリットを享受することが可能となる。
[変形例1(FKBを後からダウンロードして書き込む場合)]
次に、変形例1に係る認証装置、被認証装置、及びその認証方法について説明する。この説明において、上記第5の実施形態と重複する部分の説明については、省略する。
<FKBの書き込みについて>
暗号化FKey束(FKB)の書き込みについて、説明する。
本変形例1における処理は、暗号化FKey束(FKB)が、NAND型フラッシュメモリ110の製造時に書き込まれる場合等には、特に必要のない処理である。しかし、NAND型フラッシュメモリ110とコントローラ119等が結合されて、例えば、SDカード等のストレージメディア製品として一般ユーザ入手し、カード利用時に市場において後から書き込まれる場合等には、必要となるFKBの書き込み処理に関するものである。
図44では、上記のように鍵管理情報FKBが未記録のストレージメディア(Card)155に記録されたデータの場合の状態を示している。
図示するように、NAND型フラッシュメモリ110は、秘密情報NKeyiと秘密識別情報SecretIDとが秘匿領域111−2に記録される。前記秘密情報NKeyiを特定するために必要なインデックス情報i、鍵管理情報FKBを特定するために必要となるインデックス情報v、及びインデックス情報vで指定されたFKeyvによって暗号化されたSecretID(E-SecretID)がロム領域111−3に記録される。
読み書き可能領域111−1には、暗号化FKey束である鍵管理情報FKBが書き込まれていない点で、上記第5の実施形態と相違する。
次に、図45を用い、上記のように鍵管理情報FKBが未記録状態のストレージメディア55に、サーバからFKBをダウンロードして記録する場合について説明する。
図示するように、この場合には、NAND型フラッシュメモリ110に、必要に応じてデータキャッシュ112が配置される。
本実施形態に係るサーバ170は、FKBデータベース(Set of FKBi ’s (i=1,…,x))171及びインデックス情報vから鍵管理情報FKBvを選択するための選択部172を備える。
また、サーバ170とメモリシステム(NAND型フラッシュメモリ110、コントローラ119、ホスト装置120)とは、インターネット160を介して電気的に通信接続される。
なお、ホスト装置120は、FKBの新規書き込みが必要かどうかを判定し、必要に応じてFKBをサーバに要求する機能を備える。
<FKB書き込みフロー>
次に、図46に沿って、暗号化FKeyID束(FKB)をサーバ160からダウンロードしてNAND型フラッシュメモリ110に書き込むフローについて説明する。
(Step S141)
図示するように、まず、ホスト装置120が、FKBダウンロードが必要と判定したことにより、FKB書き込みが開始(Start)され、ホスト装置120はサーバ160に対してFKB要求を出す。
(Step S142)
続いて、サーバ170は、NAND型フラッシュメモリ110に対して、FKeyvを特定するために必要となるインデックス情報vを要求する。
(Step S143)
続いて、NAND型フラッシュメモリ110は、ロム領域111−3からvを読み出し、vをサーバに送出される。
(Step S144)
続いて、サーバ170は、受信したvに対応するFKBvをFKBデータベース171の中から選択する。
(Step S145)
続いて、サーバ170は、選択したFKBvをNAND型フラッシュメモリ110に送出する。
(Step S146)
続いて、NAND型フラッシュメモリ110は、受信したFKBvを読み書き可能領域111−1に書き込み、記録する。
以上の動作により、第5の実施形態に係る暗号化FKey束(FKB)ダウンロードフローを終了する(End)。
その他の構成、動作等に関しては、上記第5の実施形態と実質的に同様である。
<作用効果>
変形例1に係る認証装置、被認証装置及び認証方法によれば、少なくとも第5の実施形態と同様の作用効果(1)乃至(3)を得ることができる。
更に、変形例1によれば、後からFKBを書き込む場合においても、必要に応じて本実施形態を適用することが可能である。
(第6の実施形態)
図47は、第6の実施形態を示している。第6の実施形態は、第1の実施形態の変形例を示すものである。
第6の実施形態は、図17に示すステータスチェック方法と同様に、第2の課題を解決する方法を示している。すなわち、第6の実施形態は、セキュアストレージの保護領域13fに記録されている秘匿情報は1つであるが、複数のホスト装置から同時にアクセスできてしまうという課題を解決する。
第6の実施形態に示す方法は、メッセージ登録機能を含むステータスチェック処理に係り、第1の課題の解決に適用することも可能である。さらに、第6の実施形態は、第1、第2の課題を解決するとともに、図17に示す方法よりも汎用的に応用可能な方法を示している。
ここで、ホスト装置11−1、11−2は、セキュアストレージ12と認証完了状態であるとする。すなわち、例えばホスト装置11−1は、セキュアストレージ12の保護領域にアクセス可能であるため、秘匿情報を取得可能であり、暗号化コンテンツの再生が可能となる。
図17に示すステータスチェック方法は、第1の課題及び第2の課題を解決できることは示した。ここで、図17における方法を一般化すると、複数のホスト装置11−1、11−2の間で互いのアクセス状態を通知することに対応する。
よって、第6の実施形態は、図47に示すように、互いのアクセス状態の通知方法を一般化する。すなわち、例えばホスト装置11−1がセキュアストレージ12と認証完了状態にある場合(S41)、当該ホスト装置11−1からセキュアストレージ12内の揮発性メモリ領域に、任意のインター・プロトコル・コミュニケーション・メッセージ(Inter Protocol Communication Message)(以下、IPC Messageと称す)1及び2を登録できるものとする(S42−1)。
具体的には、ホスト装置11−1は、IPC Message 1及びIPC Message 2の登録において、当該IPC Message1及び2の改ざんを防止するため、バス鍵(BK)によって生成されたメッセージ認証コード(MAC)を生成し、この生成されたMACも送信することとする(A42−1)。
また、このとき、登録されたIPC Message1及び2を改ざん防止された状態で受領するため、Nonceも送信する。本Nonceは、ホスト装置11−1がセキュアメディア12から受領したメッセージの改ざん確認をするために送信される。ひいては、改ざん確認が不要な場合は、省略、もしくは00hなどの値を設定してもよい。
さらに、ホスト装置11−1が、IPC Message1及び2を登録するか否かを示すIPC Flag1及び2も同様に送信する。これは、例えばホスト装置11−1がIPC Message1のみを登録したい場合、IPC Flag1をイネーブルとし、IPC Flag2をディセーブルとする。セキュアストレージ12は、IPC Flagがイネーブル状態にあるメッセージのみを登録する。
また、メッセージを一切登録する必要ない場合、IPC Flag1及び2をディセーブルすることにより、ホスト装置11−1はIPC Message1及び2に付随するMACの生成を省略でき、セキュアストレージ12は、後述するMAC検査処理を省略することができる。
セキュアストレージ12は、受領したIPC Message1及び2、それらのMACをバス鍵により検証し、検証の結果、整合性が確認された場合、当該IPC Message1及び2を揮発性メモリに登録する(S43−1)。また、整合性が確認できない場合、当該IPC Message1及び2は揮発性メモリに登録しないこととする。また、IPC Flagがディセーブルされているメッセージについても登録しないこととする。これにより、改ざんが防止された状態でIPC Message1及び2を登録することが可能となる。
次いで、IPC Message1及び2の登録処理がなされたか否かに関わらず、セキュアストレージ12は保持しているIPC Message1及び2、ホスト装置11−1から受領したNonceを用いてMACを計算する(S43−2)。
この後、セキュアストレージ12は、受領した要求に従い、自身の認証状態、認証しているホスト証明書番号、及び受信した一時情報にバス鍵を用いて計算したメッセージ認証コード(MAC)をホスト装置11に返送する(S44−1)。
ホスト装置11−1は、セキュアストレージ12から送信されたメッセージ認証コード(MAC)を受けると、IPC Message1及び2が意図された通りに登録されたか否かを検証する。さらに、ホスト装置11−1は、以前に登録されたIPC Message1及び2が意図された通りに保持されたか否かを改ざんが防止された状態で検証する(S45−1)。
ここで、IPC Message1と2の属性について説明する。IPC Message1及び2は、一度セキュアストレージ12に登録された場合、セキュアストレージ12が起動状態にある間はIPC Message1及び2の内容が保持され、電源がオフとされた等の未起動状態である場合、IPC Message1及び2の内容が棄却され、初期化される。
ただし、IPC Message1は、セキュアストレージ12が、初期化要求に従い、認証完了状態から初期状態へと自身の状態を遷移させた場合はIPC Message1の内容も初期化されるものとする。これにより、認証状態に関わらずに継承できるメッセージと、認証状態に応じて継承できるメッセージの両方を実現できる。その他、起動状態と未起動状態の中間にあるような場合、例えばスリープやスタンバイのような状態においては、メッセージを保持していてもよいし、保持していなくともよい。
ホスト装置11−1は、これらIPC Message1及び2内に、自身の識別が可能なIDコードを含めて登録することができる。ホスト装置11−1は、コンテンツ再生中に、定期的にセキュアストレージ12のステータスチェックを実施することとする。このステータスチェックにおいて、セキュアストレージ12に保持されているIPC Message1及び若しくは2の内容を検証する。ここで、その内容が意図された値と異なっている場合、ホスト装置11−1は、例えば再生を停止させるなどの制御を実行するものとする。
さらに、セキュアストレージ12が非認証完了状態に遷移していた場合、若しくは認証完了状態ではあるが、他のホスト装置と認証完了状態となっていた場合、ホスト装置11−1は、例えば再生を停止させるなどの制御も可能である。
上記第6の実施形態によれば、ホスト装置11−1は、セキュアストレージ12と認証完了状態において、セキュアストレージ12内に記録可能なIPC Message1及び2を含むメッセージ認証コードを生成して、セキュアストレージ12に送信し、セキュアストレージ12は、ホスト装置11−1の指示に従ってIPC Message1及び2を記録している。また、ホスト装置11−1は、定期的にセキュアストレージ12に保持されているIPC Message1及び若しくは2の内容を検証し、その内容が意図された値と異なっている場合、再生を停止させるなどの制御を実行する。このため、ホスト装置11−1がコンテンツを再生可能なのは、当該ホスト装置11−1がセキュアストレージ12の認証状態を占有出来ている場合のみに限定することができる。したがって、第6の実施形態によれば、複数のホスト装置が同時にコンテンツの再生が可能となる問題を防止できる。
また、第6の実施形態によれば、第1の課題も解決することができる。なぜなら、例えばホスト装置11−1にセキュアストレージ12が接続された状態において、ホスト装置11−1が定期的にセキュアストレージ12のステータスをチェックすることにより、コンテンツ再生中にセキュアストレージ12がホスト装置11−1から引き抜かれ、他のホスト装置11−2に接続された場合、ホスト装置11−1は、正しいステータスチェックの結果を得ることができない。したがって、ホスト装置11−1は、コンテンツの再生を終了することが出来る。
図48は、ホスト装置11−1及びホスト装置11−2の間で、セキュアストレージ12に登録されたIPC Message1及び2の参照関係を示している。
前述したように、IPC Message1及び2の登録においては、バス鍵(BK)によるメッセージ認証コード(MAC)の生成と検証が必要となる。このため、登録作業を実行できるのは認証完了状態にあるホスト装置に限定される。
一方、IPC Message1及び2の参照は、認証完了状態にあるか否かに関わらず、いずれのホスト装置からも可能である。これにより、例えば認証完了状態にないホスト装置11−2からもIPC Message1及び2によって、セキュアストレージ12が占有状態にあるか否かを知ることができる。すなわち、IPC Message1及び2は、ホスト装置11−1とホスト装置11−2の会話手段としての機能を有している。このため、ホスト装置11−1及び11−2の間で任意のメッセージ通知をする際にも利用可能である。
図49は、IPC Message1及び2のフォーマット例を示している。図49(a)(b)において、IPC Message1は32バイトのデータ、IPC Message2は16バイトのデータとしている。しかし、これらのデータ長は変更可能であり、いずれの長さを適用してもよい。
前述した通り、IPC Message1及び2は、さまざまな用途のメッセージ通知に利用することができるため、フォーマットは汎用に適用できるよう構築するのが望ましい。よって、IPC Message1及び2の先頭には、メッセージのフォーマット識別子として、メッセージタイプ(Message Type)が設けられ、続いてメッセージ長(Message Length)が設けられ、最後にメッセージボディ(Message Body)が設けられている。
メッセージタイプは、具体的には、メッセージボディのフォーマットや内容を示す識別子であり、識別子としての数値が設定される。例えば数値が“01”である場合、メッセージボディの内容がセキュアストレージ12のIDコードに関する情報であることを示す、などの構成をとることができる。
このように、メッセージタイプを設定することにより、メッセージボディ内に含まれる内容やフォーマットが任意に設定できるようになる。また、例えば前述したホスト装置の識別が可能なIDコードなどは、メッセージ本体に入れることができる。
ここまで、ホスト装置11−1、11−2及びセキュアメディア12におけるプロトコルを説明してきた。しかし、ホスト装置の形態は、ハードウェア、ソフトウェア、ハードウェアとソフトウェアのハイブリッドのいずれの構成をとってもよい。また、接続方法は、カードインターフェース、USBインターフェース、IPインターフェース、それらのハイブリッド構成のいずれであってもよい。また、メッセージ登録とステータスチェックを同一プロトコルによって実現する例を示しているが、これらは分離されていてもよい。
(第7の実施形態)
図50は、第7の実施形態を示すものであり、第7の実施形態は、第1の実施形態の変形例に係り、RTT(Round Trip Time)を計測する方法を示す。図50において、図47と同一部分には同一符号を付している。
尚、ここで説明するRTT計測は、図18や図47において説明した方法にも適用可能である。
先に説明した、IP経由でのリンクプロテクションとして存在するDTCP-IPなどでは、コンテンツオーナーがコンテンツのIP伝送範囲を自宅内などに制限したいという要望を満たすために、ローカライゼーションという方法を提供している。このローカライゼーションは、コンテンツを送信する機器と受信する機器間で、メッセージの応答時間を計測し、当該応答時間が所定値以内であれば、送信機器と受信機器が同一エリア内に存在すると判定する方法である。ここで、応答時間の計測においては、改ざんが防止されたメッセージをやり取りする必要がある。もし、改ざんができてしまうと、中継者による偽装応答が可能となってしまい、送信機器と受信機器の距離が正しく計測できなくなってしまうからである。
図17、図47、図50などで示される応答プロトコルにおいては、ホスト装置11−1が受信機器に相当し、セキュアメディア12が送信機器に相当する。ここで、セキュアメディア12が返答するメッセージには前述の通りメッセージ認証コード(MAC)が含まれている。このため、図17、図47、図50のいずれにおいても、メッセージの偽装は防止されており、よって応答時間の計測条件を満たしている。
図50に示すように、互いのアクセス状態の通知方法を一般化する。すなわち、例えばホスト装置11−1がセキュアストレージ12と認証完了状態にある場合(S41)、ホスト装置11−1は、自身で生成したNonceとともにステータスチェックのコマンドをセキュアメディア12に送信する(S42−1)。
セキュアメディア12は、Nonce に対してメッセージ認証コード(MAC)を計算し(S43−2)、Nonceが含まれるメッセージにMACを付与して返答する(S44−1)。
ホスト装置11−1は、ステップ(S42−1)において、ステータスチェックのコマンドを送信してから、ステップ(S44−1)による応答を受信するまでの時間をRTTとして計測する(S51)。
ここで、上記メッセージのやり取りがなされるIP経路には、他の機器同士のメッセージが通信されている場合もあるために、計測されたRTTには誤差が生じる。よって、この誤差を吸収するため、ホスト装置11−1は前述のRTT計測を数百回から数万回の範囲で繰り返し、その中で最も値の小さいRTTを採用する、などの方法をとってもよい。または、平均値や中央値を採用する、という方法をとってもよい。もしくは、繰り返し中に、一度でもRTT計測値が所定値を下回った場合にはローカライゼーションがなされているとみなしてもよい。
図17、図47、図50のいずれにおいても、この方法を適用することができるが、ここで計測できるRTT値はメッセージ経路の通過時間とセキュアメディア12の演算時間が含まれる。本来は、メッセージ経路の通過時間のみが重要であるため、これのみを計測すればよい。しかしながら、実際のメッセージ経路の通過時間と演算時間を分離することはできない。よって、余分なセキュアメディア12の演算は省略し、必要最小限の範囲で納めることが望ましい。この視点では、図47に示す方法の場合、メッセージ登録の際のメッセージ認証コード(MAC)の検証と、メッセージ返答の際のMACの検証で2回の演算が生じるため、あまり好ましくない。よって、メッセージを登録しない図47に示す方法や、図17や図50に示す方法の方が比較的好ましい。
上記第7の実施形態によれば、ホスト装置11−1からメッセージ認証コードを送信し、セキュアストレージ12からその応答がホスト装置11−1へ送信されるまでの時間を計測することにより、RTTを計測している。このため、ローカライゼーションが適用される場合において、RTTを迅速かつ改ざん防止された状態で計測することができる。したがって、計測されたRTTに基づき、ホスト装置11−1とセキュアストレージ12が同一エリア内に存在するか否かをセキュアに判定することが可能である。
その他、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。