(57)【特許請求の範囲】
【請求項１】
コンテンツの再生部と、
耐タンパー実装されていない通常格納部と、
耐タンパー実装されているセキュア格納部と、
所定の時間間隔毎に前記コンテンツの再生時刻を示す再生履歴を前記通常格納部に保存する第１制御部と、
不定期な時間間隔で前記コンテンツの再生時刻を監視し、監視時刻を監視履歴として前記セキュア格納部に保存し、前記コンテンツの再生時刻を監視する際に、前記監視履歴に基づいて表される期待される再生時刻と前記再生履歴が示すコンテンツの再生時刻とが対応する場合、前記通常格納部に格納されている再生履歴は改ざんされていないと判断する第２制御部とを備え、
前記第２制御部は、前記監視履歴に保存されている最新の監視時刻と前記不定期な時間間隔とから得られる時刻が、前記再生履歴に保存された最新のコンテンツの再生時刻を含む所定の時間内に含まれる場合に、前記監視履歴に基づいて表される期待される再生時刻と前記再生履歴が示すコンテンツの再生時刻とが対応すると判断する
ことを特徴とするコンテンツ再生装置。
【請求項２】
前記不定期な時間間隔は、前記所定の時間間隔より大きい時間間隔であることを特徴とする請求項１記載のコンテンツ再生装置。
【請求項３】
前記不定期な時間間隔は、ランダムな時間間隔であることを特徴とする請求項２記載のコンテンツ再生装置。
【請求項４】
前記不定期な時間間隔は所定の規則に従って変化する時間間隔であり、
一定の時間的範囲において、前記第２制御部により前記不定期な時間間隔で前記セキュア格納部に保存される監視履歴の数は、前記第１制御部により前記所定の時間間隔で前記通常格納部に保存される再生履歴の数より少ないことを特徴とする請求項１記載のコンテンツ再生装置。
【請求項５】
前記セキュア格納部は、前記不定期な時間間隔を複数種類格納し、
前記第２制御部は、前記セキュア格納部に複数種類格納されている不定期な時間間隔の中から一つを選択し、この選択された不定期な時間間隔が示す時間間隔で、前記監視履歴を前記セキュア格納部に保存する
ことを特徴とする請求項１記載のコンテンツ再生装置。
【請求項６】
前記第２制御部は、
前記コンテンツを再生する前に、前記不定期な時間間隔を更新する
ことを特徴とする請求項１記載のコンテンツ再生装置。
【請求項７】
前記第２制御部は、
前記コンテンツの再生中に、前記不定期な時間間隔を更新する
ことを特徴とする請求項１記載のコンテンツ再生装置。
【請求項８】
前記第２制御部は、
前記監視履歴に基づいて表される期待される再生時刻と前記再生履歴が示すコンテンツの再生時刻との対応を断続的に判断し、
前記断続的に判断する毎に、前記不定期な時間間隔を更新する
ことを特徴とする請求項１記載のコンテンツ再生装置。
【請求項９】
前記コンテンツの再生時間が所定時間経過した場合に所定の処理を実行する権利消費処理部を設け、
前記権利消費処理部は、前記通常格納部に格納されている再生履歴は改ざんされていないと判断された場合、前記再生履歴に基づいて、前記コンテンツの再生時間が前記所定時間経過したか否かを判断する
ことを特徴とする請求項１記載のコンテンツ再生装置。
【請求項１０】
前記権利消費処理部は、
前記通常格納部に格納されている再生履歴は改ざんされていると判断された場合、前記監視履歴に基づいて表される期待される再生時刻に基づいて、前記コンテンツの再生時間が前記所定時間経過したか否かを判断する
ことを特徴とする請求項９記載のコンテンツ再生装置。
【請求項１１】
前記セキュア格納部に保存された監視履歴及び前記通常格納部に保存された再生履歴は、前記所定の処理が終了したときに消去されることを特徴とする請求項９記載のコンテンツ再生装置。
【請求項１２】
前記第２制御部は、
前記監視履歴に基づいて表される期待される再生時刻と前記再生履歴が示すコンテンツの再生時刻との対応を断続的に判断し、
前記断続的に判断する毎に、各判断の直前の判断より前の判断に用いた監視時刻を前記セキュア格納部から削除し、各判断の直前の判断より前の判断に用いた前記再生履歴が示すコンテンツの再生時刻を前記通常格納部から削除する
ことを特徴とする請求項１記載のコンテンツ再生装置。
【請求項１３】
経過時刻を計時する通常クロックを設け、
前記第２制御部は、
前記通常クロックを基準にして、前記監視履歴に基づいて表される期待される再生時刻と前記再生履歴が示すコンテンツの再生時刻とが対応する否かを判断する
ことを特徴とする請求項１記載のコンテンツ再生装置。
【請求項１４】
経過時刻を計時する通常クロックを設け、
前記第２制御部は、
前記通常クロックが計時する時間間隔を決定し、この決定した時間間隔を前記第１制御部に通知し、
前記第１制御部は、
前記通知した時間間隔を前記所定の時間間隔として、前記所定の時間間隔毎に前記コンテンツの再生時刻を示す再生履歴を通常格納部に保存する
ことを特徴とする請求項１記載のコンテンツ再生装置。
【請求項１５】
コンテンツの再生部と、
耐タンパー実装されていない通常格納部と、
耐タンパー実装されているセキュア格納部と、
第１制御部と、
第２制御部とを備えるコンテンツ再生装置の制御方法であって、
前記第１制御部が、所定の時間間隔毎に前記コンテンツの再生時刻を示す再生履歴を前記通常格納部に保存する第１制御ステップと、
前記第２制御部が、不定期な時間間隔で前記コンテンツの再生時刻を監視し、監視時刻を監視履歴として前記セキュア格納部に保存し、前記コンテンツの再生時刻を監視する際に、前記監視履歴に基づいて表される期待される再生時刻と前記再生履歴が示すコンテンツの再生時刻とが対応する場合、前記通常格納部に格納されている再生履歴は改ざんされていないと判断する第２制御ステップとを含み、
前記第２制御ステップでは、前記監視履歴に保存された最新の監視時刻と前記不定期な時間間隔とから得られる時刻が、前記再生履歴に保存された最新のコンテンツの再生時刻を含む所定の時間内に含まれる場合に、前記監視履歴に基づいて表される期待される再生時刻と前記再生履歴が示すコンテンツの再生時刻とが対応すると判断する
ことを特徴とするコンテンツ再生装置の制御方法。
【請求項１６】
コンテンツの再生部と、
耐タンパー実装されていない通常格納部と、
耐タンパー実装されているセキュア格納部と、
第１制御部と、
第２制御部とを備えるコンテンツ再生装置に用いられるコンテンツ再生プログラムであって、
前記コンテンツ再生装置に、
所定の時間間隔毎に前記コンテンツの再生時刻を示す再生履歴を前記通常格納部に保存する第１制御ステップと、
不定期な時間間隔で前記コンテンツの再生時刻を監視し、監視時刻を監視履歴として前記セキュア格納部に保存し、前記コンテンツの再生時刻を監視する際に、前記監視履歴に基づいて表される期待される再生時刻と前記再生履歴が示すコンテンツの再生時刻とが対応する場合、前記通常格納部に格納されている再生履歴は改ざんされていないと判断する第２制御ステップとを実行させ、
前記第２制御ステップでは、前記監視履歴に保存された最新の監視時刻と前記不定期な時間間隔とから得られる時刻が、前記再生履歴に保存された最新のコンテンツの再生時刻を含む所定の時間内に含まれる場合に、前記監視履歴に基づいて表される期待される再生時刻と前記再生履歴が示すコンテンツの再生時刻とが対応すると判断する
ことを特徴とするコンテンツ再生プログラム。
【請求項１７】
コンテンツの再生部と、
耐タンパー実装されていない通常格納部と、
耐タンパー実装されているセキュア格納部と、
第１制御部と、
第２制御部とを備えるコンテンツ再生装置に用いられるコンテンツ再生プログラムを記憶したコンピュータ読み取り可能な記録媒体であって、
前記コンテンツ再生プログラムは、前記コンテンツ再生装置に、
所定の時間間隔毎に前記コンテンツの再生時刻を示す再生履歴を前記通常格納部に保存する第１制御ステップと、
不定期な時間間隔で前記コンテンツの再生時刻を監視し、監視時刻を監視履歴として前記セキュア格納部に保存し、前記コンテンツの再生時刻を監視する際に、前記監視履歴に基づいて表される期待される再生時刻と前記再生履歴が示すコンテンツの再生時刻とが対応する場合、前記通常格納部に格納されている再生履歴は改ざんされていないと判断する第２制御ステップとを実行させ、
前記第２制御ステップでは、前記監視履歴に保存された最新の監視時刻と前記不定期な時間間隔とから得られる時刻が、前記再生履歴に保存された最新のコンテンツの再生時刻を含む所定の時間内に含まれる場合に、前記監視履歴に基づいて表される期待される再生時刻と前記再生履歴が示すコンテンツの再生時刻とが対応すると判断する
ことを特徴とする記録媒体。
【請求項１８】
コンテンツの再生部と、
耐タンパー実装されていない通常格納部と、
耐タンパー実装されているセキュア格納部と、
所定の時間間隔毎に前記コンテンツの再生時刻を示す再生履歴を前記通常格納部に保存する第１制御部と、
不定期な時間間隔で前記コンテンツの再生時刻を監視し、監視時刻を監視履歴として前記セキュア格納部に保存し、前記コンテンツの再生時刻を監視する際に、前記監視履歴に基づいて表される期待される再生時刻と前記再生履歴が示すコンテンツの再生時刻とが対応する場合、前記通常格納部に格納されている再生履歴は改ざんされていないと判断する第２制御部とを備え、
前記第２制御部は、前記監視履歴に保存された最新の監視時刻と前記不定期な時間間隔とから得られる時刻が、前記再生履歴に保存された最新のコンテンツの再生時刻を含む所定の時間内に含まれる場合に、前記監視履歴に基づいて表される期待される再生時刻と前記再生履歴が示すコンテンツの再生時刻とが対応すると判断する
ことを特徴とする集積回路。
【請求項１９】
コンテンツの再生部と、
耐タンパー実装されていない通常格納部と、
耐タンパー実装されているセキュア格納部と、
第１の時間間隔毎に前記コンテンツの再生時刻を示す再生履歴を前記通常格納部に保存する第１制御部と、
前記第１の時間間隔より大きい第２の時間間隔で前記コンテンツの再生時刻を監視し、監視時刻を監視履歴として前記セキュア格納部に保存し、前記コンテンツの再生時刻を監視する際に、前記監視履歴に基づいて表される期待される再生時刻と前記再生履歴が示すコンテンツの再生時刻とが対応する場合、前記通常格納部に格納されている再生履歴は改ざんされていないと判断する第２制御部とを備え、
前記第２制御部は、前記監視履歴に保存された最新の監視時刻と前記第２の時間間隔とから得られる時刻が、前記再生履歴に保存された最新のコンテンツの再生時刻を含む所定の時間内に含まれる場合に、前記監視履歴に基づいて表される期待される再生時刻と前記再生履歴が示すコンテンツの再生時刻とが対応すると判断する
ことを特徴とするコンテンツ再生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再生権利が制限されたデジタルコンテンツの権利情報の更新、及び、権利情報の不正な改ざんや解析を防止する技術に関する。
【背景技術】
【０００２】
映像や音楽などのデジタルコンテンツの著作権を保護するために、コンテンツの複製や再生に一定の制限を設けて管理するDRM(Digital Rights Management)システムが普及してきている。
【０００３】
DRMシステムには、携帯電話機向けのOMA DRM R2や、デジタル家電向けのMarlinなど、いくつかのDRM規格が策定されている。これらのDRM規格においては、コンテンツの再生可能時間、再生可能回数、再生期限などの再生権利に一定の制限を課した権利情報が、当該コンテンツに関連付けられている。DRM規格に準拠した機器は、この権利情報に従ってコンテンツの再生処理及び権利情報の消費処理を行う必要がある。
【０００４】
DRM規格の実装においては、権利情報の改ざんや、権利情報の消費処理のバイパスによって、予め定められた再生権利を越えて不正な再生が行われることを防止するように実装しなければならない。例えば、権利情報の消費処理が実行される前に、悪意あるユーザが故意に再生装置の電源を切り、それにより、再生権利が消費されないという不正行為を防止する必要があるからである。
【０００５】
特許文献1には、所定のコマンド処理が正しく動作しているかを定期的に監視することにより、コンテンツ再生中に不正な処理が行われていないかを監視する方法が開示されている。
【０００６】
DRM規格の1つであるMarlin規格は、特定の条件になった場合に、特定の処理を実行するコールバック処理を特徴としている。具体的にコールバック処理とは、例えば、全再生時間が予め定められた再生可能時間を越えた場合に、再生中止、広告表示、課金等の処理を行うことである。非特許文献1には、いくつかのコールバック処理のタイプが記載されている。Marlin規格では、このコールバック処理を用いた権利タイプを定義することにより、コンテンツの再生処理を、従来のDRMよりも柔軟に行うことができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開2007-18177号公報
【非特許文献】
【０００８】
【非特許文献１】Octopus Controls version 1.0.1 Final 2006年9月6日(http://www.marlin-community.com)
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、このコールバック処理を、コールバックタイミングから遅れることなく実行するためには、例えば、1秒ごとというように、高頻度で再生履歴を記録する必要がある。そのため、再生履歴を記録するメモリには高頻度での書き換えが生じる。これは、メモリの寿命を著しく短くしてしまう原因となる。
【００１０】
これに対して、フラッシュメモリのように書き換え回数に上限があるメモリでは、頻繁に生じる書き込みをメモリ内に分散して行うという対策が一般的にとられているが、そのためには大容量メモリが必要となる。
【００１１】
一方、不正な電源断に対応するために、その時点までの再生履歴を記録しておくために、再生履歴を記録するメモリは不揮発である必要がある。更に、電源断中の不正な改ざんを防止するためには、再生履歴は耐タンパー技術などによって保護されたセキュアメモリに記録する必要がある。
【００１２】
したがって、高頻度での書き換え及び不正な改ざんの防止という要請に対応しながら再生履歴を記録するには、大容量不揮発セキュアメモリが必要となる。
しかし、耐タンパー実装されたセキュアメモリは、通常のフラッシュメモリよりも高価であり、大容量であればなお大きなコストが掛かることとなる。
【００１３】
そこで、本発明は上記の問題点に鑑みなされたものであって、大容量不揮発セキュアメモリを用いることなく、再生履歴を高頻度で記録し、かつ、再生履歴の改ざんを防止するコンテンツ再生装置、コンテンツ再生装置の制御方法、コンテンツ再生プログラム、記録媒体及び集積回路を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記の目的を達成するために、本発明に係るコンテンツ再生装置は、コンテンツの再生部と、耐タンパー実装されていない通常格納部と、耐タンパー実装されているセキュア格納部と、所定の時間間隔毎に前記コンテンツの再生時刻を示す再生履歴を前記通常格納部に保存する第１制御部と、不定期な時間間隔で前記コンテンツの再生時刻に関わる監視履歴を前記セキュア格納部に保存し、前記監視履歴に基づいて表される所定の再生時刻とこの監視履歴に基づいて表される所定の再生時刻に対応し且つ前記再生履歴が示すコンテンツの再生時刻とが対応する場合、前記通常格納部に格納されている再生履歴は改ざんされていないと判断する第２制御部とを具備することを特徴とする。
【発明の効果】
【００１５】
上記構成によると、所定の時間間隔毎に前記コンテンツの再生時刻を示す再生履歴を通常格納部に保存し、一方、不定期な時間間隔で前記コンテンツの再生時刻に関わる監視履歴をセキュア格納部に保存する。すなわち、所定の時間間隔毎に前記コンテンツの再生時刻を示す再生履歴は、前記セキュア格納部に保存されるのではなく、前記通常格納部に保存される。そのため、前記セキュア格納部に保存する情報のみを用いて前記コンテンツの再生時間を監視する場合と比較して、前記セキュア格納部に保存する情報の更新の頻度を少なくできる。
【００１６】
また、前記監視履歴に基づいて表される所定の再生時刻と、この監視履歴に基づいて表される所定の再生時刻に対応し且つ前記再生履歴が示すコンテンツの再生時刻とが対応する場合、前記通常格納部に格納されている再生履歴は改ざんされていないと判断する。すなわち、前記再生履歴が示す前記コンテンツの再生時刻の正当性を、前記セキュア格納部に保存されている監視履歴に基づいて表される不定期な時間間隔のコンテンツの再生時刻を用いて判断する。そのため、セキュアではない通常格納部に前記再生履歴を保存する場合であっても、外部から書き換えできないセキュア格納部に保存されている監視履歴を用いて、前記再生履歴の正当性を不定期な時間間隔にて抜き打ち的に判断できる。ここで、セキュア格納部はコンテンツ再生装置の外部からアクセスできないので、不正解析者が監視履歴を確認することは困難である。
【００１７】
以上により、セキュア格納部の更新頻度を抑えて長寿命化を図りつつ、再生履歴の改ざんを困難にできる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態1におけるコンテンツ再生装置100の構成図である。
【図２】本発明の実施形態1における再生履歴情報を示す図である。
【図３】本発明の実施形態1におけるコンテンツ管理テーブルを示す図である。
【図４】本発明の実施形態1における権利管理テーブルを示す図である。
【図５】本発明の実施形態1におけるコンテンツ再生装置100の第2制御部330とセキュア格納部350の内部構成図である。
【図６】本発明の実施形態1におけるコンテンツ再生装置100の監視周期決定部334が決定する監視周期を示す図である。
【図７】本発明の実施形態1におけるコンテンツ再生装置100が一定周期で再生履歴を監視する方法を示す図である。
【図８】本発明の実施形態1におけるコンテンツ再生装置100の再生処理部200の動作を示すフローチャートである。
【図９】本発明の実施形態1におけるコンテンツ再生装置100のセキュア処理部300の動作を示すフローチャートである。
【図１０】本発明の実施形態1におけるコンテンツ再生装置100のセキュア処理部300の再生履歴検証動作を示すフローチャートである。
【図１１】本発明の実施形態1におけるコンテンツ再生装置100のセキュア処理部300の権利情報更新動作を示すフローチャートである。
【図１２】本発明の実施形態2におけるコンテンツ再生装置100がランダム周期で再生履歴を監視する方法を示す図である。
【図１３】本発明の実施形態2におけるコンテンツ再生装置100のセキュア処理部300の監視周期更新動作を示すフローチャートである。
【図１４】本発明の実施形態3におけるコンテンツ再生装置100の第2制御部330とセキュア格納部350の内部構成図である。
【図１５】本発明の実施形態3における再生処理コマンドと関連付けられた再生履歴を示す図である。
【図１６】本発明の実施形態3におけるコマンド保持テーブルを示す図である。
【発明を実施するための形態】
【００１９】
請求項１に記載の態様であるコンテンツ再生装置は、コンテンツの再生部と、耐タンパー実装されていない通常格納部と、耐タンパー実装されているセキュア格納部と、所定の時間間隔毎に前記コンテンツの再生時刻を示す再生履歴を前記通常格納部に保存する第１制御部と、不定期な時間間隔で前記コンテンツの再生時刻に関わる監視履歴を前記セキュア格納部に保存し、前記監視履歴に基づいて表される所定の再生時刻とこの監視履歴に基づいて表される所定の再生時刻に対応し且つ前記再生履歴が示すコンテンツの再生時刻とが対応する場合、前記通常格納部に格納されている再生履歴は改ざんされていないと判断する第２制御部とを具備することを特徴とする。
【００２０】
ここで、コンテンツの再生時刻とは、例えば、コンテンツの始点等、ある時点からのコンテンツ再生の経過時間を示す。
本態様によると、所定の時間間隔毎に前記コンテンツの再生時刻を示す再生履歴を通常格納部に保存し、一方、不定期な時間間隔で前記コンテンツの再生時刻に関わる監視履歴をセキュア格納部に保存する。すなわち、所定の時間間隔毎に前記コンテンツの再生時刻を示す再生履歴は前記セキュア格納部に保存されるのではなく、前記通常格納部に保存される。そのため、前記セキュア格納部に保存する情報のみを用いて前記コンテンツの再生時間を監視する場合に比較して、前記セキュア格納部に保存する情報の更新の頻度を少なくできる。
【００２１】
また、前記監視履歴に基づいて表される所定の再生時刻と、この監視履歴に基づいて表される所定の再生時刻に対応し且つ前記再生履歴が示すコンテンツの再生時刻とが対応する場合、前記通常格納部に格納されている再生履歴は改ざんされていないと判断する。すなわち、前記再生履歴が示す前記コンテンツの再生時刻の正当性を、前記セキュア格納部に保存されている監視履歴に基づいて表される不定期な時間間隔のコンテンツの再生時刻を用いて判断する。そのため、セキュアではない通常格納部に前記再生履歴を保存する場合であっても、外部から書き換えできないセキュア格納部に保存されている監視履歴を用いて、前記再生履歴の正当性を不定期な時間間隔にて抜き打ち的に判断できる。ここで、セキュア格納部はコンテンツ再生装置の外部からアクセスできないので、不正解析者が監視履歴を確認することは困難である。
【００２２】
以上により、セキュア格納部の更新頻度を抑えて長寿命化を図りつつ、再生履歴の改ざんを困難にできる。
請求項２に記載の態様であるコンテンツ再生装置において、前記監視履歴に基づいて表される所定の再生時刻とこの監視履歴に基づいて表される所定の再生時刻に対応し且つ前記再生履歴が示すコンテンツの再生時刻とが対応する場合とは、前記監視履歴に基づいて表される所定の再生時刻とこの監視履歴に基づいて表される所定の再生時刻に対応し且つ前記再生履歴が示すコンテンツの再生時刻とが一致する場合であることを特徴とする。
【００２３】
本態様によると、前記通常格納部に格納されている再生履歴が改ざんされているか否かの判断を厳格に行うことができる。
請求項３に記載の態様であるコンテンツ再生装置において、前記監視履歴に基づいて表される所定の再生時刻とこの監視履歴に基づいて表される所定の再生時刻に対応し且つ前記再生履歴が示すコンテンツの再生時刻とが対応する場合とは、前記監視履歴に基づいて表される所定の再生時刻が、前記監視履歴に基づいて表される所定の再生時刻に対応し且つ前記再生履歴が示すコンテンツの再生時刻の区間内の時刻である場合であることを特徴とする。
【００２４】
本態様によると、前記通常格納部に格納されている再生履歴が改ざんされているか否かの判断をある程度の誤差を許容して行うことができる。
請求項４に記載の態様であるコンテンツ再生装置において、前記不定期な時間間隔は、前記所定の時間間隔より大きい時間間隔であることを特徴とする。
【００２５】
本態様によると、前記不定期な時間間隔を、前記所定の時間間隔より大きい時間間隔とすることで、前記通常格納部に保存された再生履歴が示す所定の時間間隔が特定されても、それだけでは、前記セキュア格納部に保存されている履歴情報が示す不特定な時間間隔を特定できないので、監視タイミングを狙った再生履歴の改ざんに対する耐性を高めることができる。
【００２６】
また、前記セキュア格納部に再生履歴を保存する場合と比較して、前記セキュア格納部に保存される監視履歴の更新の頻度を少なくできる。
請求項５に記載の態様であるコンテンツ再生装置において、前記不定期な時間間隔は、ランダムな時間間隔であることを特徴とする。
【００２７】
本態様によると、不定期な時間間隔をランダムな時間間隔とすることで、前記不定期な時間間隔を特定することが困難となるので、監視タイミングを狙った再生履歴の改ざんに対する耐性を高めることができる。
【００２８】
請求項６に記載の態様であるコンテンツ再生装置において、前記不定期な時間間隔は所定の規則に従って変化する時間間隔であり、一定の時間的範囲において、前記第２制御部により前記不定期な時間間隔で前記セキュア格納部に保存される監視履歴の数は、前記第１制御部により前記所定の時間間隔で前記通常格納部に保存される再生履歴の数より少ないことを特徴とする。
【００２９】
ここで、前記所定の規則に従って変化する時間間隔とは、一定の周期で増大し又は減少する等、変化する時間間隔をいう。
本態様によると、前記セキュア格納部に保存されている履歴情報が示す不特定な時間間隔を特定できないので、監視タイミングを狙った再生履歴の改ざんに対する耐性を高めることができる。
【００３０】
この場合、一定の時間的範囲において、前記第２制御部により前記不定期な時間間隔で前記セキュア格納部に保存される監視履歴の数は、前記第１制御部により前記所定の時間間隔で前記通常格納部に保存される再生履歴の数より少なくすることにより、前記セキュア格納部に再生履歴を保存する場合と比較して、前記セキュア格納部に保存される監視履歴の更新の頻度を少なくできる。
【００３１】
請求項７に記載の態様であるコンテンツ再生装置において、前記第２制御部は耐タンパー実装されており、前記セキュア格納部は、前記監視履歴として、前記監視履歴自身が前記セキュア格納部に保存された順番を示すカウンタ情報を保存し、前記第２制御部は、前記不定期な時間間隔及び前記カウンタ情報に基づいて、前記監視履歴に基づいて表される所定の再生時刻を生成することを特徴とする。
【００３２】
本態様によると、セキュア格納部が監視履歴として監視時刻ではなくカウンタ値を保持する場合であっても、第2制御部は、再生履歴の改ざんの有無を判断することができる。
請求項８に記載の態様であるコンテンツ再生装置において、前記セキュア格納部は、前記不定期な時間間隔を複数種類格納し、前記第２制御部は、前記セキュア格納部に複数種類格納されている不定期な時間間隔の中から一つを選択し、この選択された不定期な時間間隔が示す時間間隔で前記コンテンツの再生時刻に関わる監視履歴を前記セキュア格納部に保存することを特徴とする。
【００３３】
本態様によると、不定期な時間間隔を予め決められた複数の値から選択することで、不正解析者に対して、不定期な時間間隔を予測しにくくすることができる。
請求項９に記載の態様であるコンテンツ再生装置において、前記第２制御部は、前記コンテンツを再生する前に、前記不定期な時間間隔を更新することを特徴とする。
【００３４】
本態様によると、不正解析者が、あるコンテンツに対する不定期な時間間隔を特定できたとしても、他のコンテンツに対する不定期な時間間隔は特定できないので、監視タイミングを狙った再生履歴の改ざんに対する耐性を高めることができる。
【００３５】
請求項１０に記載の態様であるコンテンツ再生装置において、前記第２制御部は、前記コンテンツの再生中に、前記不定期な時間間隔を更新することを特徴とする。
本態様によると、不正解析者が、あるコンテンツを再生中にあるタイミングで前記不定期な時間間隔を特定できたとしても、再生中に前記不定期な時間間隔が変更された以降は、変更後の不定期な時間間隔を特定できないので、監視タイミングを狙った再生履歴の改ざんに対する耐性を高めることができる。
【００３６】
請求項１１に記載の態様であるコンテンツ再生装置において、前記第２制御部は、前記監視履歴に基づいて表される所定の再生時刻とこの監視履歴に基づいて表される所定の再生時刻に対応し且つ前記再生履歴が示すコンテンツの再生時刻との対応を断続的に判断し、前記断続的に判断する毎に、前記不定期な時間間隔を更新する
ことを特徴とする。
【００３７】
本態様によると、不正解析者が、あるコンテンツを再生中にあるタイミングで前記不定期な時間間隔を特定できたとしても、更新後の不定期な時間間隔は特定できないので、監視タイミングを狙った再生履歴の改ざんに対する耐性を高めることができる。
【００３８】
請求項１２に記載の態様であるコンテンツ再生装置は、前記コンテンツの再生時間が所定時間経過した場合に所定の処理を実行する権利消費処理部を設け、前記権利消費処理部は、前記通常格納部に格納されている再生履歴は改ざんされていないと判断された場合、前記再生履歴に基づいて、前記コンテンツの再生時間が前記所定時間経過したか否かを判断することを特徴とする。
【００３９】
本態様によると、前記コンテンツの再生時間が所定時間経過した場合に前記所定の処理を実行する権利消費処理部を設けた場合にも、再生履歴の改ざん検出を適用できる。
この場合、前記権利消費処理部は、前記コンテンツの再生時間が前記所定時間経過したか否かを判断する前に、前記通常格納部に格納されている再生履歴が改ざんされているか否かを検証する。そして、前記権利消費処理部は、前記通常格納部に格納されている再生履歴は改ざんされていないと判断された場合、前記再生履歴に基づいて、前記コンテンツの再生時間が前記所定時間経過したか否かを判断する。
【００４０】
ここで、監視履歴の更新は再生履歴の更新よりも頻度が低い。そのため、再生履歴に改ざんがない場合、その再生履歴が示す再生時間に基づいて前記コンテンツの再生時間が前記所定時間経過したか否かを判断する。
【００４１】
これにより、前記コンテンツの再生時間が前記所定時間経過したか否かの判断を厳密に行うことができる。
請求項１３に記載の態様であるコンテンツ再生装置において、前記権利消費処理部は、前記通常格納部に格納されている再生履歴は改ざんされていると判断された場合、前記監視履歴が示す前記コンテンツの再生時刻に基づいて、前記コンテンツの再生時間が前記所定時間経過したか否かを判断することを特徴とする。
【００４２】
本態様によると、前記通常格納部に格納されている再生履歴に改ざんがあった場合でも、より信頼性の高いセキュア格納部に記録された監視履歴に基づいて、前記コンテンツの再生時間が前記所定時間経過したか否かを判断することができる。
【００４３】
ここで、前記権利消費部が実行する前記所定の処理は、例えばコールバック処理をいう。意図せぬ電源断が発生し、適切にコールバック処理を行えなかったとしても、コンテンツ再生前に、電源断が発生する前までの再生時間分に基いてコールバック処理を行うことができる。
【００４４】
また、コールバック処理の実行前に再生履歴の検証を行うので、電源が切れている間に、再生履歴が改ざんされたか否かを発見できる。そして、再生履歴が改ざんされている場合は、監視履歴を用いて、実際に再生した時間に出来るだけ近い記録に基づいて、コールバック処理を実行することができる。
【００４５】
以上より、コンテンツの著作権保護をできるだけ厳密に行うことができる。
請求項１４に記載の態様であるコンテンツ再生装置において、前記セキュア格納部に保存された監視履歴及び前記通常格納部に保存された再生履歴は、前記所定の処理が終了したときに消去されることを特徴とする。
【００４６】
本態様によると、前記所定の処理が終わり不要となった再生履歴及び監視履歴を消去することで、メモリの空き容量を増やすことができる。
請求項１５に記載の態様であるコンテンツ再生装置において、前記第２制御部は、前記監視履歴に基づいて表される所定の再生時刻とこの監視履歴に基づいて表される所定の再生時刻に対応し且つ前記再生履歴が示すコンテンツの再生時刻との対応を断続的に判断し、前記断続的に判断する毎に、各判断の直前の判断より前の判断に用いた前記監視履歴に基づいて表される再生時刻を前記セキュア格納部から削除し、各判断の直前の判断より前の判断に用いた前記再生履歴が示すコンテンツの再生時刻を前記通常格納部から削除することを特徴とする。
【００４７】
本態様によると、再生履歴の検証に必要のなくなった古い再生履歴及び監視履歴を削除することで、メモリの空き容量を増やすことができる。
請求項１６に記載の態様であるコンテンツ再生装置において、前記第１制御部は、前記所定の時間間隔毎に前記コンテンツの再生時刻及び各再生時刻になされた再生処理の種類を示す再生履歴を通常格納部に保存し、前記第２制御部は、前記再生履歴が示すコンテンツの再生時刻の中で特定種類の再生処理に対応する再生時刻を選択し、前記監視履歴に基づいて表される所定の再生時刻とこの監視履歴に基づいて表される所定の再生時刻に対応し且つ前記選択された再生履歴が示すコンテンツの再生時刻とが対応するか否かを判断することを特徴とする。
【００４８】
本態様によると、例えば、シーク処理が行われている間（ユーザが見たいシーンを選択するまでの間）は、再生権利が消費されないようにできる。
請求項１７に記載の態様であるコンテンツ再生装置は、経過時刻を計時する通常クロックを設け、前記第２制御部は、前記通常クロックを基準にして、前記監視履歴に基づいて表される所定の再生時刻とこの監視履歴に基づいて表される所定の再生時刻に対応し且つ前記再生履歴が示すコンテンツの再生時刻とが対応する否かを判断することを特徴とする。
【００４９】
本態様によると、通常クロックを用いた簡単な演算だけで、再生履歴の検証をすることができる。
請求項１８に記載の態様であるコンテンツ再生装置は、経過時刻を計時する通常クロックを設け、前記第２制御部は、前記通常クロックが計時する時間間隔を決定し、この決定した時間間隔を前記第１制御部に通知し、前記第１制御部は、前記通知した時間間隔を前記所定の時間間隔として、前記所定の時間間隔毎に前記コンテンツの再生時刻を示す再生履歴を通常格納部に保存することを特徴とする。
【００５０】
本態様によると、再生履歴を計時する間隔を第２制御部の中で決定し、保持することができる。前回再生時間を計時してから次に計時するまでの間は再生の進行を確認できないので、再生履歴を計時する間隔は、再生の再生履歴の検証における、時間的許容範囲であるといえる。従って、これを第２制御部の中で決定及び保持することで、再生履歴の改ざんに対する耐性を高めることができる。
【００５１】
請求項２３に記載の態様であるコンテンツ再生装置は、コンテンツの再生部と、耐タンパー実装されていない通常格納部と、耐タンパー実装されているセキュア格納部と、第１の時間間隔毎に前記コンテンツの再生時刻を示す再生履歴を前記通常格納部に保存する第１制御部と、前記第１の時間間隔より大きい第２の時間間隔で前記コンテンツの再生時刻に関わる監視履歴を前記セキュア格納部に保存し、前記監視履歴に基づいて表される所定の再生時刻とこの監視履歴に基づいて表される所定の再生時刻に対応し且つ前記再生履歴が示すコンテンツの再生時刻とが対応する場合、前記通常格納部に格納されている再生履歴は改ざんされていないと判断する第２制御部とを具備することを特長とする。
【００５２】
本態様によると、前記第２の時間間隔より小さい前記第１の時間間隔毎に前記コンテンツの再生時刻を示す再生履歴は前記セキュア格納部に保存されるのではなく、前記通常格納部に保存される。そのため、前記セキュア格納部に保存する情報のみを用いて前記コンテンツの再生時間を監視する場合に比較して、前記セキュア格納部に保存する情報の更新の頻度を少なくできる。
【００５３】
また、前記監視履歴に基づいて表される所定の再生時刻とこの監視履歴が示す所定の再生時刻に対応し且つ前記再生履歴に基づいて表されるコンテンツの再生時刻とが対応する場合、前記通常格納部に格納されている再生履歴は改ざんされていないと判断する。すなわち、前記再生履歴が示す前記コンテンツの再生時刻の正当性を、前記セキュア格納部に保存されている監視履歴に基づいて表される不定期な時間間隔のコンテンツの再生時刻を用いて判断する。そのため、セキュアではない通常格納部に前記再生履歴を保存する場合であっても、外部から書き換えできないセキュア格納部に保存されている監視履歴を用いて、前記再生履歴の正当性を不定期な時間間隔にて抜き打ち的に判断できる。ここで、セキュア格納部はコンテンツ再生装置の外部からアクセスできないので、不正解析者が監視履歴を確認することは困難である。
【００５４】
以上により、セキュア格納部の更新頻度を抑えて長寿命化を図りつつ、再生履歴の改ざんを困難にできる。
〔実施形態1〕
以下、本発明の実施形態1におけるコンテンツ再生装置について説明する。本実施形態では、コンテンツには再生可能時間に制限が課せられており、コンテンツ再生装置は、課せられた制限の下でコンテンツの再生を行う。
【００５５】
図1は、本実施形態におけるコンテンツ再生装置100の構成図である。
コンテンツ再生装置100は、インターネットなどのネットワークを利用したコンテンツ配信サービスを通して、暗号化されたコンテンツと、コンテンツ鍵及びコンテンツの利用条件を含んだ権利情報とを取得する。そして、コンテンツ再生装置100は、取得した利用条件に従って、コンテンツ鍵を用いて暗号化コンテンツを復号し、コンテンツを再生する。
【００５６】
コンテンツ再生装置100は、具体的には、ネットワーク機能を具備したTV、HDDレコーダ、BD/DVDレコーダ、セットトップボックス、携帯電話機、PDAのような電子機器である。
ここで、コンテンツの利用条件とは、再生可能時間、再生可能回数、再生期限など再生権利に一定の制限を課すものであるが、本実施形態では、コンテンツを再生した時間の累計が一定の時間を越えるまで再生を許可する累積再生時間の再生権利が与えられている場合を例に説明する。
【００５７】
図1に示すように、コンテンツ再生装置100は、再生処理部200とセキュア処理部300とを含む。さらに、コンテンツ再生装置100は、通常格納部250、通常クロック260、権利格納制御部420及びコンテンツ格納制御部450を含んで構成される。
【００５８】
再生処理部200は、コンテンツの再生アプリケーションである。再生処理部200は、ユーザからの再生処理コマンドを受け付けて、再生処理コマンドの処理をセキュア処理部300に依頼し、セキュア処理部300から再生処理コマンドの処理結果を受け取る。
【００５９】
セキュア処理部300は、再生処理部200からの再生処理コマンドを処理し、コンテンツ鍵を用いたコンテンツの復号処理、利用条件に従った再生権利の消費処理、再生権利の改ざんや解析などの不正な再生が行われていないかどうかを監視する監視処理など、コンテンツ再生処理にかかわる完全性や秘匿性が求められる情報に対する処理を行う。
【００６０】
セキュア処理部300は、ソフトウェアで実装されていても、ハードウェアで実装されていてもよいが、耐タンパー実装技術を用いて保護されているものとする。
以下、コンテンツ再生装置100のそれぞれの内部構成について説明する。
《再生処理部200》
本節では、再生処理部200の内部構成について説明する。
【００６１】
再生処理部200は、再生処理受付部210、再生処理制御部220、第1制御部230及び通常クロック取得部240から構成される。
再生処理受付部210は、ユーザから再生処理コマンドを受け付ける。ここで再生処理コマンドとは、再生要求、停止処理、一時停止、早送り・巻き戻しなどのシーク処理、次コンテンツへのスキップ処理などに対する指示である。
【００６２】
再生処理制御部220は、再生処理受付部210で受け付けたユーザからの再生処理コマンドを受け取り、受け取った再生処理コマンドに応じた処理をセキュア処理部300のセキュア処理制御部320へ依頼する。さらに、再生処理制御部220は、セキュア処理制御部320からの処理結果を受け取る。
【００６３】
第1制御部230は、コンテンツ再生中に、定期的に再生履歴を通常格納部250へ記録する。再生履歴とは、コンテンツ再生中の経過時刻を一定の時間間隔で記録したものである。
具体的には、図2に示される表が再生履歴である。この例では、コンテンツID「001」で示されるコンテンツについて、再生開始から1秒ごとに経過時刻が記録され、6秒まで再生したことを示している。
【００６４】
第1制御部230が記録する再生履歴の精度によって、コンテンツの再生時間を記録する精度が決まる。従って、秒精度で再生権利の消費処理を行い、秒精度で遅れることなくコールバック処理を行うためには、第1制御部230は、秒精度で定期的に再生履歴を記録する必要がある。
【００６５】
第1制御部230は、通常格納部250への再生履歴の記録を定期的に行うために、通常クロック取得部240を通して、通常クロック260の値を取得する。また、第1制御部230は、定期的に再生履歴を書き込むための再生履歴書込周期を保持しており、通常クロック260の値と再生履歴書込周期とを利用して、再生履歴を書き込むタイミングであるかどうかを判断する。なお、定期的な処理の実装方法としては、上記の方法に限定されることなく、ウォッチドックタイマーを利用した割り込み処理による実装や、ポーリング処理による実装でもよい。
【００６６】
通常クロック取得部240は、第1制御部230からの指示により、後述する通常クロック260から時刻を取得する。
《セキュア処理部300》
本節では、セキュア処理部300の内部構成について説明する。
【００６７】
セキュア処理部300は、セキュア処理制御部320、第2制御部330、セキュア格納部350、セキュアクロック取得部340、セキュアクロック360、権利消費処理部410及びコンテンツ再生処理部440から構成される。
【００６８】
セキュア処理制御部320は、再生処理制御部220から再生処理コマンドを受け付け、受け取った処理内容に応じて、適切な処理部へ処理を依頼する。また、セキュア処理制御部320は、各処理部での処理結果を再生処理制御部220へ返す。
【００６９】
第2制御部330は、第1制御部230によって記録される再生履歴が改ざんされているか否かを定期的に監視する。これは、第1制御部230が通常格納部250に記録した再生履歴を定期的に読み取り、所定の間隔で再生履歴が記録されているかどうかを判定することでなされる。
【００７０】
監視のタイミングは、セキュア処理部300の中で決定および保持されるため、再生処理部200からは知ることができない。また、セキュア処理部300は、耐タンパー実装されているため、不正解析者がコンテンツ再生装置100の内部を解析したとしても、監視のタイミングを特定することは困難である。従って、監視のタイミングを狙って再生履歴を改ざんすることは不可能と考えてよい。
【００７１】
第2制御部330は、再生履歴に不正が見つかった場合は、再生を停止させるなどの処理を行う。第2制御部330の詳細については後述する。
コンテンツ再生処理部440は、コンテンツ格納制御部450を通して、再生要求のあったコンテンツを読み出す。続いて、コンテンツ再生処理部440は、権利消費処理部410が取得したコンテンツ鍵を用いて暗号化コンテンツを復号する。そして、コンテンツ再生処理部440は、復号して生成したコンテンツデータをデコーダーへ渡し、コンテンツの再生を行う。
【００７２】
権利消費処理部410は、再生要求のあったコンテンツに付与されている再生権利を、再生した分だけ消費する処理を行う。
具体的には、権利消費処理部410は、再生要求のあったコンテンツに対応する権利情報を、権利格納制御部420を通して権利格納部430から読み出し、利用条件を確認する。利用条件が時間などの期限制限である場合、権利消費処理部410は、セキュアクロック取得部340を通じて、セキュアクロック360の値を取得し、その値を用いて再生権利があるか否かを確認する。権利消費処理部410による確認の結果、再生権利があれば、権利情報からコンテンツ鍵を取得する。また、権利消費処理部410は、図4に示す権利管理テーブルに対して、権利の消費や、新たにユーザが購入した権利情報を追加するといった処理も行う。
【００７３】
なお、本実施形態では、権利消費処理部410は、コンテンツに付与されている再生可能時間を、実際に再生した時間だけ消費するという権利消費処理を行う場合について説明するが、これに限らず、一般的なコールバック処理（再生中止、広告表示、課金等の処理）を行うようにしてもよい。
【００７４】
セキュア格納部350は、セキュアな不揮発メモリである。すなわち、セキュア格納部350は、セキュア処理部300の中のコンポーネントだけが、セキュア格納制御部333を通してアクセスすることが可能である。セキュア格納部350は、具体的には、フラッシュメモリなどの不揮発性メモリで実現される。不揮発メモリの種類は、これに限定されずFeRAMなどでもよい。
【００７５】
セキュア格納部350は、第2制御部330が再生履歴が改ざんされていないかどうかを監視する周期など保護すべき情報を記録する。セキュア格納部350が記録する情報の詳細については後述する。
【００７６】
セキュアクロック360は、第2制御部330が再生履歴が改ざんされていないかどうかを監視するタイミングを計るためのクロックである。なお、セキュアクロック360に対する改ざんを防止できるよう、セキュアクロック360は、耐タンパー技術を用いて実装されている。
【００７７】
セキュアクロック取得部340は、第2制御部330からの指示により、セキュアクロック360から時刻を取得する。
権利格納制御部420は、権利消費処理部410からの指示により、権利格納部430へのアクセスの制御を行う。
【００７８】
コンテンツ格納制御部450は、コンテンツ再生処理部440からの指示により、コンテンツ格納部460へのアクセスの制御を行う。
《その他の構成要素》
コンテンツ再生装置100は、再生履歴、コンテンツ及びコンテンツの権利情報を保持するために、通常格納部250、通常クロック260、コンテンツ格納部460及び権利格納部430を有している。
【００７９】
通常格納部250は、再生履歴を格納するメモリである。通常格納部250は、コンテンツの再生中に、第1制御部230から定期的に再生履歴の書き込みが行われる。ここで、通常格納部250に記録された再生履歴に基づいた再生権利の消費処理が実行される前に電源が切られるなどによって、権利消費処理が実行されなかった場合でも、再び同じコンテンツが再生される前に、前回実行されなかった権利消費を実行できるようにするためには、通常格納部250は、不揮発メモリである必要がある。そこで、通常格納部250は、例えば、フラッシュメモリやFeRAM等の不揮発メモリで実現される。
【００８０】
通常クロック260は、再生履歴を通常格納部250に書き込むタイミングを計るためのクロックである。
コンテンツ格納部460は、複数のコンテンツ及びそれらを管理するためのコンテンツ管理テーブルを保持している。コンテンツ管理テーブルは、コンテンツを示す識別子と、そのコンテンツを格納しているファイル名とを対応付けた表である。
【００８１】
図3は、コンテンツ管理テーブルの一例を示している。例えば、図3において、コンテンツID「001」で示されるコンテンツは、ビデオコンテンツであり、ファイル「￥MOVIE￥movie001.mpg」に格納されている。また、コンテンツID「003」で示されるコンテンツは、オーディオコンテンツであり、ファイル「￥AUDIO￥music001.aac」に格納されている。コンテンツ格納部460に保持されているコンテンツ管理テーブルの読み込み及び書き込みは、コンテンツ格納制御部450を通して行われる。
【００８２】
権利格納部430は、権利管理テーブルを保持している。権利管理テーブルは、コンテンツごとに定められた再生権利や、再生権利が消費されたときに実行するコールバック処理等を対応付けた表である。権利管理テーブルの内容の詳細については後述する。権利格納部430に保持された権利管理テーブルへのアクセス、並びに、再生要求のあったコンテンツの権利情報に対する読み込み及び書き込みは、権利格納制御部420を通して行われる。
《権利管理テーブル》
本節では、権利管理テーブルの詳細を説明する。
【００８３】
図4は、権利格納部430が保持する権利管理テーブルの一例を示す図である。権利管理テーブルは、コンテンツID、暗号化コンテンツを復号するためのコンテンツ鍵、利用条件を識別するための権利タイプ、時間に関する利用期限を示す再生権利時間、これまでの再生時間の累積値を示す累積再生時間、再生期限及び利用条件の期限に達した場合に実行すべきコールバック処理から構成される。
【００８４】
なお、権利管理テーブルに含まれるコンテンツ鍵は、暗号化コンテンツを復号するためのコンテンツ鍵そのものであってもよいし、コンテンツ鍵を特定するための情報であってもよい。すなわち、権利管理テーブルには、コンテンツ鍵として、コンテンツ鍵値が記録されていてもよいし、コンテンツ鍵を別のデータベースで管理している場合は、そのデータベース内での参照先が記録されていてもよい。また、コンテンツ鍵を保護するために、コンテンツ鍵が暗号化された状態で記録されていても良い。
【００８５】
図4では、権利タイプの具体例として、累積再生時間制限と期間制限とを用いている。
ここで、累積再生時間制限には、タイプ1及びタイプ2の2種類あることを想定している。累積再生時間制限タイプ1は、早送り、巻き戻し、所定時間のスキップ等のシーク処理中の時間も、累積再生時間に加算される。一方、累積再生時間制限タイプ2は、シーク処理中の時間は、累積再生時間に加算されない。
【００８６】
また、期間制限は、特定の期間だけ再生権利が有効な権利タイプである。例えば、図4のコンテンツID「003」で示されるコンテンツは、再生期限が「08/12/31」の期間制限が設定されており、2008年12月31日まで再生権利が与えられていることを示している。
【００８７】
なお、権利タイプはこれらに限定されるわけではなく、回数制限でもよいし、特定のコマンドに関連づけた権利タイプでもよい。具体的には、再生開始コマンドを実行したら、所定のコールバック処理をする権利タイプや、停止コマンドを実行したら所定のコールバック処理をする権利タイプであってもよい。
【００８８】
本実施形態では、累積再生時間制限タイプ1のコンテンツのみを扱う。累積再生時間制限タイプ2のコンテンツについては、後述する実施形態3で説明する。コールバック処理は、セキュア処理部300が実行できる処理であれば特に限定はない。
【００８９】
ここで、セキュア処理部300が実行するセキュア処理とは、コンテンツに与えられた権利情報の更新処理、暗号化されたコンテンツを復号し、再生要求に基づいて再生する処理、再生履歴が改ざんされていないか監視する処理である。
【００９０】
図4では、権利消費処理及び広告表示処理をコールバック処理の例として挙げている。
例えば、コンテンツID「001」で示されるコンテンツには、コンテンツ鍵が「鍵001」であって、「累積再生時間制限タイプ1」の権利タイプであって、「2時間0分0秒」の再生権利時間があって、累積再生時間が「30秒」であり、累積再生時間が「2時間0分0秒」に達したら権利消費処理を実行する、という権利情報が対応していることを示している。
【００９１】
また、コンテンツID「004」であるコンテンツには、コンテンツ鍵が「鍵004」であって、「累積再生時間制限タイプ1」の権利タイプであり、「0時間30分0秒」の再生権利時間があって、累積再生時間が「20分10秒」であり、累積再生時間が「0時間30分0秒」に達したら広告表示処理を実行する、という権利情報が対応していることを示している。
《第2制御部330及びセキュア格納部350》
本節では、第2制御部330及びセキュア格納部350の詳細を説明する。
【００９２】
図5は、第2制御部330及びセキュア格納部350の内部構成を示す図である。
第2制御部330は、第1制御部230が通常格納部250に記録した再生履歴の内容を読み、所定の間隔で再生履歴を残しているかを監視することにより、再生処理部200がコンテンツを正しく再生しているかどうかを確認する。
【００９３】
図5に示すように、第2制御部330は、再生履歴取得部331、監視判定部332、セキュア格納制御部333及び監視周期決定部334から構成される。
再生履歴取得部331は、監視周期により指定された時間間隔で、セキュア格納部350に記録されている再生履歴を読み込む。
【００９４】
この監視周期は、コンテンツ再生ごとに監視周期決定部334が乱数生成器を利用して決定し、セキュア格納制御部333を通して、セキュア格納部350の監視周期保持部352に書き込まれる。すなわち、監視周期の決定から保持までセキュア処理部300で行われるため、監視周期を再生処理部200から知ることはできない。
【００９５】
監視周期が知られてしまうと、その監視周期が来る時のみ再生履歴を書き換えるという攻撃が可能となってしまう。そのため、本実施形態では、セキュア処理部300の内部で、コンテンツ再生ごとに監視周期を決定しなおすことで、上記の攻撃から保護している。
【００９６】
これにより、あるコンテンツの再生時に、偶然、監視周期が知られて、その周期に合わせたタイミングでの再生履歴の改ざんがなされてしまっても、別のコンテンツ再生時には同じタイミングでの攻撃は成功しない。
【００９７】
なお、監視周期に基づく監視処理のトリガーは、再生履歴取得部331がセキュアクロック取得部340を通して取得したセキュアクロック360からの情報を利用する。セキュアクロック360は、通常クロック260とは異なるものであって、セキュア処理部300の中のコンポーネントだけが、セキュアクロック取得部340を通してアクセス可能なセキュアなクロックである。
【００９８】
なお、監視処理の実装方法としては、これに限定されることなく、ウォッチドックタイマーを利用した割り込み処理による実装や、ポーリング処理による実装でもよい。ただし、監視処理が改ざんされず、且つ、再生処理部200から秘匿に実行されることが条件となる。
【００９９】
また、ここでは、監視周期決定部334が乱数を元に監視周期を決定するとしたが、図6に示すように、コンテンツごとに予め決められた監視周期を用いるようにしてもよい。あるいは、予め決められた複数の監視周期の中から1つの監視周期を選んでもよいし、複数の監視周期を選んで演算した結果を監視周期としてもよい。
【０１００】
このようにすることで、端末開発時のテストケースを抑えることが可能となる。さらには、監視周期決定部334の実装が容易となり、新たに乱数生成器を搭載する必要もなくなるため端末コストを抑えることができる。
【０１０１】
セキュア格納制御部333は、セキュア格納部350に記録されている情報の読み取り処理及びセキュア格納部350への情報の書き込み処理を行う。
セキュア格納部350に記録される情報は、期限付きコンテンツの権利消費処理が完了されずに電源断したとしても、次回の再生処理の前に、確実に権利消費させるために利用する。そのため、セキュア格納部350は、フラッシュメモリなどの不揮発メモリでなければならない。不揮発メモリの種類は、フラッシュメモリに限定されずFeRAMなどでもよい。さらに、セキュア格納部350は、電源断後の改ざんを防ぐため、セキュア処理部300の中のコンポーネントだけが、セキュア格納制御部333を通してアクセス可能なセキュアな不揮発メモリである必要がある。
【０１０２】
監視判定部332は、セキュア格納部350の中の再生履歴書込周期保持部351が保持している再生履歴書込周期と、監視周期保持部352が保持している監視周期と、監視履歴保持部353が保持している監視履歴とを用いて、通常格納部250に期待される再生履歴が記録されているかどうかを検証する。この再生履歴の検証処理については後述する。
《再生履歴の検証処理》
本節では、図7を用いて、再生履歴の検証処理について説明する。
【０１０３】
図7は、コンテンツ再生中に、第1制御部230及び第2制御部330によってなされる処理、通常格納部250及びセキュア格納部350に格納されるデータを時系列で示す図である。なお、図7では、紙面の左から右へ時間が進むように時間軸をとっている。
【０１０４】
先ず、第1段目は、第1制御部230の処理を示している。第1段目の記載の矢印は、第1制御部230が、再生履歴書込周期である1秒おきに再生開始してからの経過時刻を、通常格納部250に記録することを示している。再生履歴書込周期は、セキュア格納部350の再生履歴書込周期保持部351に記録されている。
【０１０５】
第2段目は、通常格納部250に記録される再生履歴を示している。再生開始直後は、第1制御部230が初期時刻「00:00.00」を通常格納部250に書き込む。第1制御部230が次に書き込みを行う1秒後までは、通常格納部250に保持される値は「00:00.00」だけである。再生開始から1秒後に、第1制御部230が時刻「00:01.00」を書き込むと、通常格納部250に保持される再生履歴に「00:01.00」が追加される。以下同様にして、通常格納部250には1秒ごとに時刻が追加されていく。
【０１０６】
第3段目は、セキュアクロック360の値を示している。この例では、監視周期Rは2.23秒であるとする。監視周期Rは、セキュア格納部350の監視周期保持部352に記録されている。セキュアクロック360は監視周期である2.23秒ごとに、1ずつカウント値を増加する。
【０１０７】
第4段目は、第2制御部330の処理を示している。第2制御部330は、セキュアクロック360のカウントをトリガーとして、通常格納部250に保持された再生履歴の監視を行う。そして、第2制御部330は、再生履歴を監視した時刻を、セキュア格納部350の監視履歴保持部353に記録する。
【０１０８】
再生開始直後は、監視を行っていないので、第2制御部330は、初期時刻「00:00.00」を、セキュア格納部350に記録する。再生開始から2.23秒後に、1回目の監視が行われると、第2制御部330は、セキュア格納部350に監視時刻「00:02.23」を記録する。次に、再生開始から4.46秒後に、2回目の監視が行われると、第2制御部330は、セキュア格納部350に監視時刻「00:04.46」を記録する。以下同様である。
【０１０９】
第2制御部330は、再生履歴が改ざんされていないかどうかの監視を以下のよう行う。
監視履歴保持部353に保持されている監視履歴T1と、監視周期保持部352に保持されている監視周期T2と、再生履歴書込周期保持部351に保持されている再生履歴書込周期T3と、通常格納部250に保持されている再生履歴に含まれる時刻のうちの最大値Sとの間にS-T3≦T1+T2≦S+T3の関係が成り立てば、第2制御部330は、再生履歴は改ざんされていないとみなす。上記の関係が成り立たたなければ、第2制御部330は、再生履歴は改ざんされているとみなす。そして、その場合にはコンテンツの再生中止等の処理を行う。
【０１１０】
上記の関係式は、監視を行う時刻において、再生履歴に期待される時刻が記録されているかどうかを判定している。
すなわち、T1は最後に改ざんがないことを確認した時刻であり、そこから監視周期T2後の時刻T1+T2は、次の監視時刻である。この監視時刻T1+T2において、再生履歴には記録されているべき時刻は、T1+T2の中に含まれるT3の数にT3を乗じた値である。
【０１１１】
図7の場合、T3=1なので、1回目のチェックでは、監視時刻2.23秒の中に1秒は2個含まれるので、再生履歴に記録されているべき時刻はS=2.00である。
再生履歴はT3ずつ増加するので、Sは、T1+T2-T3≦S≦T1+T2+T3であればよい。
【０１１２】
以上より、上記の関係式が成り立つとき、再生履歴は改ざんされていないみなすことができる。
ここで、Sの値を大きくする改ざんに対しては条件を緩くしている。Sは再生履歴に含まれる時刻の最大値であるので、Sの値が大きいということは、改ざん者自らが、コンテンツが利用された時間を多くなるよう改ざんしていることを示す。そのため、Sの値を大きくする改ざんについては、多少条件を緩く判断するとしても、コンテンツ提供者の不利益となる可能性は低い。
【０１１３】
無論、第2制御部330は、T1+T2-T3≦S≦T1+T2が満たされるか否かを確認するようにして、Sの値を大きくする改ざんに対しても、厳密に確認するとしてもよい。
なお、ここでは、再生履歴書込周期を1秒としたが、これは、コールバックタイミングの遅れがどの程度許容されるかによって適宜決めればよい。
【０１１４】
また、コンテンツごとに異なる再生履歴書込周期を用いるようにしてもよい。例えば、秒精度の厳密な権利情報が付与されているコンテンツに対しては、秒精度の厳しいチェックをする一方で、分精度の比較的緩い権利情報が付与されているコンテンツに対しては、分精度で再生履歴を記録するといった柔軟な制御を行っても良い。
【０１１５】
これにより、コンテンツ再生中の処理負荷を抑制することができる。また、不揮発メモリである通常格納部250の書き換え回数を減少することができ、不揮発メモリのサイズを抑え、端末コストを下げることができる。
【０１１６】
また、監視履歴保持部353には、上述したように、監視時刻「00:02.23」、「00:04.46」、「00:06.69」、…を記録するのではなく、監視履歴が格納された順番を示すカウンタ値1、2、3、…を記憶してもよい。この場合、第2制御部330は、監視履歴保持部353に格納されているカウンタ値と、監視周期保持部352に格納されている監視周期とを用いて、T1を算出したのち、上記の関係式が成り立つか否かを判定すればよい。
【０１１７】
また、図７の例では、再生履歴書込周期T3が1秒であり、監視周期T2が2.23秒であったため、再生履歴に記録されているべき最大の時刻Sには幅があった。
ここで、監視周期T2として、2秒、3秒、４秒等、再生履歴書込周期T3（＝1秒）の倍数を用いる場合には、第2制御部330は、再生履歴に記録されるべき最大の時刻SがT1+T2と一致するか否かを判断すればよい。
【０１１８】
すなわち、再生履歴書込周期T3の値と監視周期T2との値に応じて、第2制御部330は、セキュア格納部350に格納されている監視履歴と、通常格納部250に格納されている再生履歴とが対応していることを判定すればよい。
《動作》
本節では、本発明の実施形態1のコンテンツ再生装置100の動作を、フローチャートを用いて説明する。
【０１１９】
コンテンツ再生装置100による再生処理は、ユーザからの再生開始要求および再生停止要求を受け付ける再生処理部200と、再生処理における完全性や秘匿性に関するセキュア処理を行うセキュア処理部300とが、互いに再生処理の依頼及びその結果を送受信し合うことで行われる。
《再生処理部200の動作》
本節では、再生処理部200による再生処理の動作を、図8のフローチャートを用いて説明する。
【０１２０】
まず、再生処理受付部210は、ユーザからの再生開始要求を受け付ける。(ステップS701)。これは、具体的には、ユーザが再生開始ボタンを押下するといったイベントである。再生処理受付部210は、受け付けた再生開始要求を再生処理制御部220に通知する。
【０１２１】
再生開始要求を受けた再生処理制御部220は、セキュア処理制御部320に権利判定処理を依頼する(ステップS702)。権利判定処理は、再生開始要求のあったコンテンツの再生権利が、まだ残っているかどうかを判定する処理である。
【０１２２】
再生処理制御部220は、セキュア処理制御部320から権利判定結果を取得し(ステップS703)、再生権利がない場合は(ステップS720 N)、再生処理を終了するため、ステップS713に進む。
【０１２３】
再生権利がある場合は(ステップS720 Y)、再生処理を継続し、再生処理制御部220は、セキュア処理制御部320にコンテンツ再生処理を依頼する(ステップS705)。あるいは、再生処理を継続する前に、再生権利が消費されることをユーザに通知して、再生処理を継続してもよいかどうかを確認するユーザ入力を待つようにしてもよい。
【０１２４】
再生処理結果受付部222がセキュア処理制御部320から、再生処理依頼結果を取得すると(ステップS706)、第1制御部230は、コンテンツ再生中、再生履歴を記録する処理を継続する。ここで、再生処理依頼結果は、例えば、再生を開始したことを示す情報である。また、セキュア処理制御部320は、権利管理テーブルを参照し、再生処理部200が将来実行すべきコールバック処理の内容とそのコールバック処理を実行すべきタイミングの情報を合わせて再生処理依頼結果として返してもよい。このように、セキュア処理制御部320は、再生処理制御部220にコールバックのタイミングを通知することで、適切なタイミングで、コールバック処理を行うことができる。
【０１２５】
再生履歴を記録する処理は、まず、第1制御部230が、通常クロック260の値を取得し(ステップS707)、それが再生履歴を書き込むタイミングであれば(ステップS708 Y)、通常格納部250へ再生履歴を書き込む(ステップS709)。
【０１２６】
ここで、再生履歴を書き込むタイミングは、通常クロック260の値が再生履歴書込周期の倍数であるときである。通常クロック260の値が、再生履歴を書き込むタイミングでなければ(ステップS708 N)、第1制御部230は、コールバックタイミングであるかどうかを判定し(ステップS710)、コールバックタイミングであれば(ステップS710 Y)、再生処理制御部220は、セキュア処理制御部320に対し、コールバック処理を依頼する(ステップS711)。
【０１２７】
コールバックタイミングでなければ(ステップS710 N)、ユーザからの停止要求、あるいは、コンテンツが最後まで再生されてEOF (End Of File)に達したことが通知されているかどうかを判定する(ステップS712)。
【０１２８】
停止要求又はEOFが通知されていなければ(ステップS712 N)、ステップS707に戻り、第1制御部230は、再生履歴を書き込む処理を継続する。
停止要求又はEOFが通知されていれば(ステップS712 Y)、再生処理制御部220は、セキュア処理制御部320に再生処理終了を依頼する(ステップS713)。
【０１２９】
続いて、再生処理制御部220がセキュア処理制御部320から再生処理終了結果を取得することで(ステップS714)、再生処理は終了する。
《セキュア処理部300の動作》
本節では、図9のフローチャートを用いて、セキュア処理部300によるセキュア処理の動作を説明する。この処理は、図8のステップS702における権利判定処理の依頼を受けた場合にセキュア処理部300が行う動作の詳細に当たる。
【０１３０】
セキュア処理部300では、まず、セキュア処理制御部320が再生処理制御部220から権利判定処理依頼を受け付けることにより処理が開始される(ステップS801 N)。
権利判定処理依頼を受け付けたら(ステップS801 Y)、権利消費処理部410が権利情報を更新する(ステップS802)。権利情報の更新処理は、通常格納部250及びセキュア格納部350に格納されている再生履歴及び監視履歴に基づいて、権利情報を消費する処理である。
【０１３１】
再生履歴及び監視履歴は、正常に動作が終了すれば、後述する権利情報更新の動作によってクリアされる。そのため、再生前に、通常格納部250及びセキュア格納部350に再生履歴及び監視履歴が記録されていれば、前回の再生時に意図せぬ電源断などにより、権利消費が行われなかったと考えられるので、この時点で確実に権利情報を更新しておく。なお、権利情報の更新処理の詳細は後述する。
【０１３２】
権利情報更新後、権利消費処理部410は、権利格納制御部420を通して、再生要求があったコンテンツに対する権利情報を、権利格納部430に保持されている権利管理テーブルから読み込む(ステップS803)。
【０１３３】
次に、権利消費処理部410は、読み込んだ権利情報を用いて、再生権利があるかどうかを判定し(ステップS804)、セキュア処理制御部320を通して、判定結果を再生処理制御部220へ返す(ステップS805)。
【０１３４】
続いて、セキュア処理制御部320は、再生処理制御部220から再生処理依頼を受け付けるまで待機する(ステップS806 N)。
再生処理依頼を受け付けると(ステップS806 Y)、監視周期決定部334は、監視周期を決定し(ステップS807)、セキュア格納部350の監視周期保持部352は、ステップS807で決定された監視周期を保持する(ステップS808)。ここでは、監視周期決定部334は、乱数生成器を利用して監視周期を生成するものとする。
【０１３５】
次に、権利消費処理部410は、再生要求のあったコンテンツに対応するコンテンツ鍵を、権利格納制御部420を通して、権利管理テーブルから取得する(ステップS809)。
そして、コンテンツ再生処理部440は、再生要求のあったコンテンツに対応する暗号化コンテンツを、コンテンツ格納制御部450を通して、コンテンツ格納部460から読み込む(ステップS810)。
【０１３６】
コンテンツ再生処理部440は、権利消費処理部410が取得したコンテンツ鍵を用いて暗号化コンテンツを復号し、その後、デコード処理を行い、再生する(ステップS811)。セキュア処理制御部320は、再生を開始したことを示す再生処理依頼結果を再生処理制御部220へ返す(ステップS812)。
【０１３７】
続いて、セキュア処理部300は、再生中のコンテンツを監視する処理を開始する。
まず、第2制御部330は、セキュアクロック取得部340を通して、定期的にセキュアクロック360の値を読み取る(ステップS813)。次に、読み取ったセキュアクロック360の値が、再生履歴を監視するタイミングであるかどうかを判定する(ステップS814)。再生履歴を監視するタイミングは、監視周期の倍数となる時刻である。
【０１３８】
判定の結果、再生履歴を監視するタイミングであれば(ステップS814 Y)、第2制御部330は、再生履歴が改ざんされてないかを検証する(ステップS816)。再生履歴検証の詳細については後述する。検証結果が正しく、再生履歴が改ざんされていなければ(ステップS817 Y)、第2制御部330は、監視履歴を更新する(ステップS818)。すなわち、最後に監視を行った時刻をセキュア格納部350に書き込む。検証結果が不当であって、再生履歴が改ざんされていれば(ステップS817 Y)、セキュア処理部300は、再生を停止する（ステップS821）。
【０１３９】
続いて、第2制御部330は、通常格納部250をクリアする(ステップS819)。これは、再生履歴のうち最新のもの以外を削除することによりなされる。
再生終了依頼を受け付けていなければ(ステップS820 Y)、セキュア処理部300は、ステップS813に戻り、再生履歴の監視処理を続ける。再生終了依頼を受け付けていれば(ステップS820 N)、セキュア処理部300は、再生を停止する(ステップS821)。
【０１４０】
判定の結果、再生履歴を監視するタイミングでなければ(ステップS814 N)、権利消費タイミングであるかどうかを判定する(ステップS815)。権利消費タイミングとは、再生権利が消費し尽くされたタイミングである。判定の結果、権利消費を行うタイミングでなければ(ステップS815 N)、セキュア処理部300は、ステップS813に戻り、再生履歴の監視処理を続ける。判定の結果、権利消費を行うタイミングであれば(ステップS815 Y)、セキュア処理部300は、再生を停止する(ステップS821)。
【０１４１】
再生終了依頼もしくは権利消費により再生が停止されると(ステップS821)、権利消費処理部410は、権利情報を更新する(ステップS822)。そして、セキュア処理制御部320が再生処理制御部220に再生処理終了結果を返し(ステップS823)、セキュア処理部300は、セキュア処理を終了する。
《再生履歴検証の動作》
本節では、図10のフローチャートを用いて、再生履歴を検証する動作について説明する。なお、ここで説明する動作は、図9のステップS816に当たる。
【０１４２】
まず、第2制御部330は、再生履歴取得部331を介して、通常格納部250に保持されている再生履歴を取得し、監視判定部332に通知する（ステップS901）。
監視判定部332は、再生履歴として書き込まれている時刻の中から、最大の時刻をSとする(ステップS902)。
【０１４３】
続いて、監視判定部332は、セキュア格納部350の監視履歴保持部353、監視周期保持部352及び再生履歴書込周期保持部351から、それぞれ監視履歴、監視周期及び再生履歴書込周期を取得し、T1、T2、T3とする(ステップS903)。
【０１４４】
監視判定部332は、取得した4つのパラメータS、T1、T2、T3の間に、S-T3≦T1+T2≦S+T3の関係が成り立つかどうかを判定する(ステップS904)。
上記の関係が成り立たない場合(ステップS904 N)、監視判定部332は、再生履歴が改ざんされているとみなし、チェックNGとする。
【０１４５】
上述の関係が成り立つ場合(ステップS904 Y)、監視判定部332は、前回の再生履歴のチェックから再生履歴書込周期T3後の時刻が再生履歴に書き込まれているか否かを判定する(ステップS905)。
【０１４６】
書き込まれていなければ(ステップS905 N)、監視判定部332は、再生履歴に対して不正な処理が実行されたと判断し、チェックNGとする。書き込まれていれば(ステップS905 Y)、監視判定部332は、正しい再生履歴書込周期T3の周期で再生履歴が書き込まれているので、再生履歴に対して不正な処理が実行されていないと判断し、チェックOKとする。
【０１４７】
ここで、再生履歴に対する不正な処理とは、例えば、再生履歴のすり替えや、再生履歴の書き込み処理のバイパスである。チェックNGの判断後の処理としては、コンテンツ再生処理部440により、再生中のコンテンツを即座に停止するようにする。
《権利情報更新の動作》
本節では、図11のフローチャートを用いて、権利情報を更新する動作を説明する。なお、ここで説明する動作は、図9のステップS802及びステップS822に当たる。
【０１４８】
まず、第2制御部330は、セキュア格納部350の監視履歴保持部353に監視履歴が保持されているかどうかを判定する(ステップS1101)。監視履歴が保持されていなければ(ステップS1101 N)、更新すべき権利情報がないので、処理を終了する。
【０１４９】
監視履歴が保持されていれば(ステップS1101 Y)、第2制御部330は、通常格納部250に再生履歴が保持されているかどうかを判定する(ステップS1102)。
再生履歴が保持されていれば(ステップS1102 Y)、第2制御部330は、再生履歴及び監視履歴に基づいて、不正な再生が行われていないいかどうかをチェックする(ステップS1103)。ここで、不正な再生が行われていないかどうかの確認は、再生履歴検証のときと同様、S-T3≦T1+T2≦S+T3の関係が成り立つかどうかを判定することで行う。
【０１５０】
不正な再生がされていなければ(ステップS1103 Y)、再生時間として、再生履歴中の最新の時間を取得する(ステップS1104)。その後、第2制御部330は、再生履歴及び監視履歴をクリアする(ステップS1106、ステップS1107)。
【０１５１】
通常格納部250に再生履歴が保持されていない場合(ステップS1102 N)、もしくは、再生履歴が保持されていても、それが不正再生されていると判断された場合(ステップS1103 N)、再生時間として、監視履歴中の最新の時間を取得する(ステップS1105)。これは、再生履歴に記載されている再生時間が信頼できないので、信頼できる監視履歴中の最新の時間を再生時間として用いるためである。その後、第2制御部330は、再生履歴及び監視履歴をクリアする(ステップS1106、ステップS1107)。
【０１５２】
最後に、権利消費処理部410は、再生履歴もしくは監視履歴から取得した再生時間分だけ、権利格納部430に格納されている権利テーブルの、残りの再生可能時間を減らしたり(ステップS1108)、累積再生時間を増やしたりする。以上で、権利情報の更新が終了する。
【０１５３】
なお、ここでは、再生履歴の検証の結果、不正があったと判断された場合、監視履歴に記録されている分だけ権利情報を消費するようにしているが、不正があった場合にはすぐに再生を停止するようにしてもよい。あるいは、コンテンツの配信元である配信サーバに不正があった旨を通知したり、権利情報を多く消費したり、不正解析者に対して不利益になるような処理を行うようにしてもよい。このようにすることで、再生履歴の改ざんを抑制することができる。
〔実施形態2〕
ここでは、本発明の実施形態2におけるコンテンツ再生装置について説明する。
【０１５４】
本実施形態は、実施形態1と次の点が異なる。実施形態1における監視周期は、監視周期決定部334が決めた一定の値であった。これに対し、本実施形態では、第2制御部330が監視を行うごとに、監視周期を決定し直す。その他の点は、実施形態１と同じである。
【０１５５】
図12は、実施形態2において、コンテンツ再生中に、第1制御部230及び第2制御部330でなされる処理、通常格納部250及びセキュア格納部350に格納されるデータを時系列で示した図である。
【０１５６】
図12は、実施形態1の図7と比較すると、監視周期が、r1(2.23秒)、r2(1.56秒)、…と監視が行われるごとに異なる値になっている。
すなわち、実施形態2では、監視判定部332が再生履歴をチェックするごとに、監視周期決定部334が新しく監視周期を決定し直す。そして、新しい監視周期で監視周期保持部352を更新する。なお、再生履歴が改ざんされていないかどうかのチェック等の処理は、実施形態1と同様である。
【０１５７】
本実施形態によれば、監視のタイミングを狙って再生履歴を改ざんしようとする悪意あるユーザに対して、より監視のタイミングが予測しにくくなる。偶然ある特定のタイミングで、再生履歴を改ざんできたとしても、次回の監視タイミングは、新たに設定し直されるので、前回と同じタイミングで不正に再生履歴を改ざんしようとしても成功しない。
【０１５８】
なお、実施形態2は、実施形態1と同様に、乱数を用いて監視周期を決定してもよい。
また、予め決められた複数種類の監視周期が記載されて表をセキュア格納部350に格納しておき、その表から1つの監視周期を選択するようにしてもよい。
【０１５９】
また、監視周期を所定の規則に従って変化させるように、所定の規則をセキュア格納部350に格納しておき、その規則に従って、1つの監視周期を決定するようにしてもよい。ここで、所定の規則とは、例えば、一定の周期で増大し又は減少する等である。
【０１６０】
なお、本実施形態においても、再生処理部200は再生履歴の監視タイミングを知り得ないので、ある程度の頻度で監視周期を更新すれば、乱数を用いなくても安全性は高く保たれる。
《監視履歴更新の動作》
本実施形態におけるセキュア処理部300の動作は、実施形態1と比較すると、監視が終わるごとに監視履歴が設定し直される点のみ異なる。
【０１６１】
すなわち、本実施形態では、図9のフローチャートにおける監視履歴の更新(ステップS818)と再生履歴格納部クリア(ステップS819)との間に、図13に示す監視周期更新処理が挿入される。
【０１６２】
図13に示すように、監視周期更新処理の各ステップは以下の通りである。
監視履歴を更新後、まず、監視周期決定部334は、新しい監視周期rを決定する(ステップS1001)。監視周期保持部352に保持されている値T2を、ステップS1001で決定した監視周期rに更新する(ステップS1002)。続いて、監視履歴保持部353に保持されている値T1を、T1+rに更新する(ステップS1003)。
【０１６３】
以上で、監視履歴の更新を終了する。
〔実施形態3〕
ここでは、本発明の実施形態3におけるコンテンツ再生装置について説明する。
【０１６４】
実施形態3は、再生履歴に再生処理コマンドを対応付けて記録する点が実施形態1と異なる。その他の点は、実施形態1と同じである。
実施形態1では、図2に示したように、コンテンツIDごとに、再生開始からの経過時間だけを再生履歴として記録するようにしていたが、本実施形態では、経過時間と再生処理コマンドとを関連付けて記録する。
【０１６５】
このように、再生履歴と再生処理コマンドとを対応付けて記録することにより、本実施形態では、権利タイプに応じて、早送りや巻戻しを行っている間の時間を、権利消費する時間に含めることできるし、除くこともできる。
【０１６６】
本実施形態におけるコンテンツ再生装置の構成は、図14に示すように、実施形態1におけるコンテンツ再生装置100のセキュア格納部350に、コマンド履歴保持部354を追加した構成となっている。
【０１６７】
図15は、第1制御部230によって通常格納部250に記録される再生履歴を示している。本実施形態においても、第1制御部230は、コンテンツ再生中に1秒周期で再生履歴を記録するものとする。
【０１６８】
図15(a)は、コンテンツID「001」で示されるコンテンツの再生履歴である。これは、コンテンツID「001」のコンテンツは、再生開始後3秒までは、再生処理種別が「Play」となっているので、再生処理が行われたことを示しており、また、再生開始後4秒及び5秒では、再生処理種別が「Seek」となっているので、シーク処理が行われ、再生開始後6秒では、再度、再生処理が行われたことを示している。
【０１６９】
ここで、コンテンツID「001」で示されるコンテンツは、権利タイプが累積再生時間制限タイプ1である。実施形態1で説明したように、累積再生時間制限タイプ1では、シーク処理中の時間も累積再生時間に加算される。したがって、コンテンツID「001」で示されるコンテンツについては、再生処理種別が「Seek」となっているか否かに関わらず、累積再生時間を計算する。つまり、図15(a)に示した再生履歴から、累積再生時間は6秒であると計算される。
【０１７０】
図15(b)は、コンテンツID「002」で示されるコンテンツの再生履歴である。これは、コンテンツID「002」のコンテンツは、再生開始後2秒までは、再生処理が行われ、再生開始後3秒から5秒まではシーク処理が行われ、再生開始後6秒では、再度、再生処理が行われたことを示している。
【０１７１】
ここで、コンテンツID「002」で示されるコンテンツは、権利タイプが累積再生時間制限タイプ2である。実施形態1で説明したように、累積再生時間制限タイプ2では、シーク処理中の時間は累積再生時間に加算されない。したがって、コンテンツID「002」で示されるコンテンツについては、シーク時間を加算せずに累積再生時間を計算する。そのため、図15(b)に示した再生履歴から、累積再生時間は4秒であると計算される。
【０１７２】
本実施形態における第2制御部330は、図15の再生履歴を基に、実行された再生処理コマンドの履歴を、コマンド履歴保持部354に記録する。その結果、コマンド履歴保持部354には、図16に示すコマンド保持テーブルが記録される。
【０１７３】
図16(a)のコマンド保持テーブルは、図15(a)の再生履歴に対応し、図16(b)のコマンド保持テーブルは、図15(b)の再生履歴に対応する。
再生履歴は、1秒周期で再生経過時刻と再生処理コマンドとを関連付けて通常格納部250に記録されるが、コマンド保持テーブルは、ユーザから再生処理コマンド要求があった際に記録される。
【０１７４】
図15(b)の例では、再生開始のために、ユーザが再生要求を行い、再生開始から3秒後にシーク処理要求を行い、再生開始から6秒後に再度再生要求を行っている。従って、再生処理コマンドを依頼するために、再生処理部200からセキュア処理部300に3回の再生処理コマンド要求がされることになる。そのため、0秒の時点で「Play」、3秒の時点で「Seek」、6秒の時点で「Play」というように、コマンド保持テーブルに記録される。
【０１７５】
このようにコマンド保持テーブルを記録することで、累積再生時間制限タイプ2のようなシーク処理中の時間は累積再生時間に加算されない場合であっても、再生期限付きコンテンツの権利消費を行うことができ、より柔軟な権利消費タイプに対応することが可能となる。
【０１７６】
また、本実施形態は、コマンド保持テーブルを用いて、再生処理種別「Play」が対応付けられた箇所がどこであるかを確認することで、例えば映画の特定のシーンに該当する特定の範囲を再生したか否かのチェックにも応用することができる。
【０１７７】
そして、本実施形態では、スキップなどの再生処理コマンドを再生処理部200がセキュア処理部300に通知するので、上記特定の範囲を含む監視タイミングを監視側が履歴として記録していれば、上記特定の範囲を再生したことを再生側が正しく再生履歴として残しているか否かの確認が可能となる。
【０１７８】
なお、上記の実施形態3のコンテンツ再生装置は、実施形態1のコンテンツ再生装置100と同様の構成を有するとしたが、これに限るものではない。例えば、実施形態2のコンテンツ再生装置の構成を有するとしてもよい。
【０１７９】
この場合、セキュア格納部350にコマンド履歴保持部354が追加される。そうすると、監視履歴の決定方法が実施形態1とは異なり、が実施形態2で説明したように、第2制御部330が再生履歴の監視を行うごとに、監視周期を決定し直す。それ以外の動作は上記の実施形態3と同様である。
〔その他の実施形態〕
なお、本発明は上記の実施形態に限定されるものではない。以下のような場合も本発明に含まれる。
【０１８０】
(1)上記の実施形態1〜3では、再生履歴を1秒ごとに通常格納部250に追加していた。つまり、通常格納部250は再生が進むにつれて多くの再生履歴を記録するとしていた。しかし、本発明はこれに限るものではない。
【０１８１】
例えば、通常格納部250が常に最新の再生履歴のみを記録するとしても良い。この場合、第1制御部230は、再生履歴を記録すべきタイミングが訪れるたびに、通常格納部250に記録されている最新の再生履歴を更新する。このようにすれば、コンテンツが長いものであったとしても、再生履歴の記録に要する通常格納部250の容量を抑えることが出来る。
【０１８２】
また、通常格納部250をフラッシュメモリで実現する場合には、メモリの寿命を縮めないために、ある程度分散させた位置に再生履歴を記録する必要がある。この場合は、上述した実施形態1〜3のように、再生履歴を分散させて記録していくことが望ましい。
【０１８３】
(2)上記の実施形態1〜3では、再生履歴を通常格納部250に記録する周期は一定であったが、それに限られるものではない。例えば、再生履歴を通常格納部250に記録するタイミングもランダムに定められるとしてもよい。
【０１８４】
この場合、セキュア処理部300による判定が誤判定とならないように再生履歴の書込周期と監視周期とを調整する必要がある。例えば、書込周期が常に監視周期よりも短くなるような範囲で乱数を発生させて、その乱数によって再生履歴の書込周期を定めることなどが考えられる。
【０１８５】
また、コンテンツの中で重要度の異なる部分が含まれる場合には、重要度の高い部分の再生履歴を重点的に記録するとしてもよい。例えば、コンテンツの中で重要度の高い部分については書込周期を短くし、重要度の低い部分については書込周期を長くすることなどが考えられる。なお、この場合も、セキュア処理部300による監視が誤判定とならないよう、監視を行うタイミングも再生履歴を記録するタイミングに合わせて変化させることが望ましい。具体的には、コンテンツの重要度に応じて、監視を行う周期を伸縮することなどが考えられる。
【０１８６】
(3)上記の実施形態1〜3では、再生履歴の書き換え及び監視のタイミングについて具体的な説明を行ったが、本発明において、再生履歴の書き換え及び監視のタイミングはこれに限られるものではない。
【０１８７】
本発明では、再生履歴の監視周期が再生履歴の書込周期よりも長ければよく、実装の仕方は問わない。
また、本発明及び上記の実施形態1〜3で用いる「周期」という用語は、実施形態2における「監視周期」の決定手法からも明らかなように、常に一定の長さである必要は無く、変化するものも指す。すなわち、セキュアメモリの書き換え回数を抑えるには、再生履歴の監視を行う頻度が再生履歴の書き込みを行う頻度よりも少なければよい。
【０１８８】
(4)上記の実施形態1〜2のように、監視周期を乱数を用いてランダムに決定する場合、乱数の値によっては1回の書込周期中に複数回の監視周期が含まれる場合がある。この場合、上記のようなS-T3≦T1+T2≦S+T3という関係は成り立たなくなることがあるので、誤判定が起こってしまう。この問題は、乱数の取りうる値の範囲を、監視周期が書込周期よりも長くなるように調整すれば対処できる。
【０１８９】
また、セキュア処理部300は、S-T3≦T1+T2≦S+T3という関係が成り立つか否かを確認するために、書込周期T3の値を当然に知っている。従って、セキュア処理部300が、ランダムに決定した監視周期がT3よりも短いと分かれば、判定の基準を以下のように変更することが考えられる。すなわち、最新の監視履歴T1の時点から、監視周期T2が経過して次の監視が行われるまでに、何回の再生履歴の書き込みが発生するかをセキュア処理部300が判断する。そして、その回数が0回であれば、常にチェックに成功したと判断するようにすればよい。
【０１９０】
なお、1回の書込周期中に複数回の監視周期が含まれる場合、何度かの監視周期の経過のごとに、書込みが行われた直後にT1+T2となる。従って、S-T3≦T1+T2≦S+T3が満たされた場合にもチェックに成功したと判断する必要がある。
【０１９１】
これにより、監視周期が偶然に書込周期よりも長くなったとしても、誤判定が発生しないように制御することが出来る。
なお、セキュア格納部350の更新頻度の方が通常格納部250の更新頻度よりも一時的に高くなってしまうことがある。しかし、一時的に通常格納部250よりもセキュア格納部350の更新頻度が高くなるとしても、長期的に、また、統計的に見て、通常格納部250よりもセキュア格納部350の方が更新頻度が低くなるのであれば、本発明の目的は達せられる。
【０１９２】
従って、稀にセキュア格納部350の更新頻度が通常格納部250の更新頻度を上回るものの、一定の時間的範囲内においては、セキュア格納部350の方が更新頻度が低くなるように乱数の範囲を設定する場合も本発明に含まれる。
【０１９３】
(5)上記の実施形態1〜3では、監視周期を乱数に基づいてランダムに決定し、その監視周期を監視周期保持部352に記憶していたが、本発明は、これに限るものではない。
本発明は、監視周期そのものを記憶するのではなく、監視周期を決定するために必要となるシード値を記憶するようにしてもよい。この場合、実施形態1〜3それぞれと同様の動作を実現するためには、監視周期決定部334に、シード値を入力とする所定のアルゴリズムによって監視周期を生成する機能を持たせればよい。シード値から監視周期を生成するアルゴリズムとしては、例えば、一方向性関数などのハッシュアルゴリズムや、シード値を元に乱数を生成するアルゴリズム等が考えられる。
【０１９４】
(6)上記の実施形態3では、再生処理種別と再生履歴とを関連付けて記憶していたが、本発明は、これに限られるものではない。
例えば、再生処理種別と監視履歴とを関連付けて記憶しても良い。そしして、監視履歴に基づいて累積再生時間を計算する場合には、再生種別情報を参照することにより、シーク処理を行ったことを示す「Seek」など、特定の再生種別情報と関連付けられた監視履歴を累積再生時間の計算に反映しないなどの制御が可能となる。
【０１９５】
(7)上記の実施形態1〜3において、通常クロック260の周期は、第2制御部330が決定するとしてもよい。決定の仕方としては、監視履歴を残す頻度よりも再生履歴が記録される頻度が低くなる範囲でランダムに決定することなどが考えられる。
【０１９６】
(8)上記の実施形態1〜3において、コールバック処理はコンテンツの再生時間に応じて起こると説明したが、コンテンツに対して、何らかの処理が行われた時間に応じて、コールバック処理が起こるとしても良い。
【０１９７】
例えば、コンテンツの巻き戻し時間や早送り時間、また、コンテンツを複製またはムーブした時間などに応じてコールバック処理が起こるとしても良い。
これらの場合、コールバック処理を正確なタイミングで行うためには、正確かつ安全に処理時間を計測することが必要不可欠である。そのため、実施形態1〜3を用いて説明した手法と同様にして、セキュアメモリの寿命を延ばしつつ、処理時間を計測することが有用である。
【０１９８】
なお、これらの場合、時間を計測する対象を、コンテンツの再生から、巻き戻し、早送り、複製、ムーブ等、それぞれの処理に変えるのみで実現することができるので、この変形例についての詳細な説明は省略する。
【０１９９】
(9)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置はその機能を達成する。コンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０２００】
(10)上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部または全てを含むように1チップ化されてもよい。また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【０２０１】
(11)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパー性を有するとしてもよい。
【０２０２】
(12)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０２０３】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【０２０４】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【０２０５】
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【０２０６】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【０２０７】
(13)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【０２０８】
本発明は、DRM技術のようなコンテンツの著作権保護技術を実装した電子機器を製造及び販売する産業において、大容量セキュアメモリを使うことなく、高頻度での再生履歴の記録ができる技術として利用することができる。また、本発明は、コンテンツの再生中であっても、再生権利が消費尽くされた時点で速やかに再生を終了させることができ、再生履歴は、定期的に監視されるので、改ざんを防止できる。不意に電源断が起こっても、履歴をもとに正確な権利消費ができる技術として利用することができる。
【符号の説明】
【０２０９】
100：コンテンツ再生装置
200：再生処理部
210：再生処理受付部
220：再生処理制御部
221：再生処理依頼送信部
222：再生処理結果受付部
230：第1制御部
240：通常クロック取得部
250：通常格納部
260：通常クロック
300：セキュア処理部
320：セキュア処理制御部
321：再生処理依頼受付部
322：再生処理結果送信部
330：第2制御部
331：再生履歴取得部
332：監視判定部
333：監視履歴格納制御部
334：監視周期決定部
340：セキュアクロック取得部
350：セキュア格納部
351：再生履歴書込周期保持部
352：監視周期保持部
353：監視履歴保持部
354：コマンド履歴保持部
360：セキュアクロック
410：権利消費処理部
420：権利格納制御部
430：権利格納部
440：コンテンツ再生処理部
450：コンテンツ格納制御部
460：コンテンツ格納部
【図１】
0005491384.tif 000002
【図２】
0005491384.tif 000003
【図３】
0005491384.tif 000004
【図４】
0005491384.tif 000005
【図５】
0005491384.tif 000006
【図６】
0005491384.tif 000007
【図７】
0005491384.tif 000008
【図８】
0005491384.tif 000009
【図９】
0005491384.tif 000010
【図１０】
0005491384.tif 000011
【図１１】
0005491384.tif 000012
【図１２】
0005491384.tif 000013
【図１３】
0005491384.tif 000014
【図１４】
0005491384.tif 000015
【図１５】
0005491384.tif 000016
【図１６】
0005491384.tif 000017