(57)【要約】  信頼されたホスト装置から時間を使用するメモリ装置とその装置で使用する方法とを開示する。一実施形態において、メモリ装置上のアプリケーションが、ホスト装置上で実行しメモリ装置によって認証されるエンティティから、時間本位操作の実行要求を受信する。アプリケーションは、時間本位操作の実行にあたって、メモリ装置上のタイムモジュールからの時間の代わりにホスト装置からの時間を選択し、かつ時間本位操作の実行にあたってホスト装置からの時間を使用する。他の実施形態も開示するが、それらの実施形態はそれぞれ単独で使用できるほか、組み合わせても使用できる。
2010532024.tif 000002
【特許請求の範囲】
【請求項１】
メモリ装置上のアプリケーションにより時間本位操作を実行する方法であって、
メモリ装置上のアプリケーションにより、
ホスト装置上で実行し前記メモリ装置によって認証されるエンティティから、時間本位操作の実行要求を受信するステップと、
前記時間本位操作の実行にあたって、前記メモリ装置上のタイムモジュールからの時間の代わりに前記ホスト装置からの時間を選択するステップと、
前記時間本位操作の実行にあたって、前記ホスト装置からの前記時間を使用するステップと、
を含む方法。
【請求項２】
請求項１記載の方法において、
前記ホスト装置からの時間は、前記ホスト装置からの時間が前記タイムモジュールからの時間より遅い場合に限り、前記タイムモジュールからの時間の代わりに選択される方法。
【請求項３】
請求項１記載の方法において、
前記ホスト装置の同一性を判定するステップをさらに含み、前記ホスト装置からの時間は、前記ホスト装置が信頼できると判断される場合に限り、前記タイムモジュールからの時間の代わりに選択される方法。
【請求項４】
請求項１記載の方法において、
前記ホスト装置からの時間は、前記タイムモジュールからの時間より比較的正確であり、前記タイムモジュールからの時間は、前記ホスト装置からの時間より比較的安全である方法。
【請求項５】
請求項１記載の方法において、
前記ホスト装置からの時間は、前記タイムモジュールの更新には使用できない方法。
【請求項６】
請求項１記載の方法において、
前記エンティティの認証にあたって、前記タイムモジュールからの前記時間を使用するステップをさらに含む方法。
【請求項７】
請求項１記載の方法において、
単一セッションに限り前記ホスト装置からの時間を使用するステップをさらに含む方法。
【請求項８】
請求項１記載の方法において、
前記時間本位操作は、デジタル著作権管理（ＤＲＭ）ライセンス検証操作を含む方法。
【請求項９】
請求項１記載の方法において、
前記メモリ装置は、前記メモリ装置に蓄積された被保護コンテンツのロックを解除するためにデジタル著作権管理（ＤＲＭ）キーおよびライセンスを蓄積する方法。
【請求項１０】
請求項１記載の方法において、
前記メモリ装置は、前記ホスト装置から受信した時間を蓄積する働きと、第２のホスト装置から時間を受信する働きと、前記第２のホスト装置からの時間を前記ホスト装置からの蓄積時間と比較する働きと、前記時間本位操作の実行にあたって、前記比較に基づき、前記第２のホスト装置の代わりに前記ホスト装置からの時間の使用を決定する働きとをする方法。
【請求項１１】
請求項１記載の方法において、
前記メモリ装置は、非時間本位認証システムを用いて前記ホスト装置を認証する働きをする方法。
【請求項１２】
メモリ装置であって、
メモリアレイと、
前記メモリアレイと通信する回路であって、
ホスト装置上で実行するエンティティの認証要求を受信する働きと、
前記エンティティと前記メモリ装置内のアプリケーションとを対応付けるアクセス管理記録（ＡＣＲ）で指定された認証方法と、メモリ装置上のタイムモジュールからの時間とを使用し、前記エンティティを認証する働きと、
前記エンティティから前記アプリケーションに対する時間本位操作の実行要求を受信する働きと、
前記時間本位操作の実行にあたって、前記タイムモジュールからの時間の代わりに前記ホスト装置からの時間を選択する働きと、
前記時間本位操作の実行にあたって、前記ホスト装置からの前記時間を使用する働きと、をする回路と、
を備えるメモリ装置。
【請求項１３】
請求項１２記載のメモリ装置において、
前記ホスト装置からの時間は、前記ホスト装置からの時間が前記タイムモジュールからの時間より遅い場合に限り、前記タイムモジュールからの時間の代わりに選択されるメモリ装置。
【請求項１４】
請求項１２記載のメモリ装置において、
前記ホスト装置からの時間は、前記ホスト装置が信頼できると判断される場合に限り、前記タイムモジュールからの時間の代わりに選択されるメモリ装置。
【請求項１５】
請求項１２記載のメモリ装置において、
前記ホスト装置からの時間は、前記タイムモジュールからの時間より比較的正確であり、前記タイムモジュールからの時間は、前記ホスト装置からの時間より比較的安全であるメモリ装置。
【請求項１６】
請求項１２記載のメモリ装置において、
前記ホスト装置からの時間は、前記タイムモジュールの更新には使用できないメモリ装置。
【請求項１７】
請求項１２記載のメモリ装置において、
前記回路は、単一セッションに限り前記ホスト装置からの時間を使用する働きをさらにするメモリ装置。
【請求項１８】
請求項１２記載のメモリ装置において、
前記時間本位操作は、デジタル著作権管理（ＤＲＭ）ライセンス検証操作を含むメモリ装置。
【請求項１９】
請求項１２記載のメモリ装置において、
前記メモリ装置は、前記メモリ装置に蓄積された被保護コンテンツのロックを解除するためにデジタル著作権管理（ＤＲＭ）キーおよびライセンスを蓄積するメモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、信頼されたホスト装置から時間を使用するメモリ装置とその装置で使用する方法とに関する。
【背景技術】
【０００２】
関連出願の相互参照
本願は、本願とともに出願され、本願明細書において参照により援用されている「Method for Improving Accuracy of a Time Estimate from a Memory Device 」という米国特許出願第１１／８１１，２８４号（特許文献１）、「Memory Device with Circuitry for Improving Accuracy of a Time Estimate」という米国特許出願第１１／８１１，３４７号（特許文献２）、「Method for Improving Accuracy of a Time Estimate Used to Authenticate an Entity to a Memory Device」という米国特許出願第１１／８１１，２８９号（特許文献３）、「Memory Device with Circuitry for Improving Accuracy of a Time Estimate Used to Authenticate an Entity 」という米国特許出願第１１／８１１，３４４号（特許文献４）、「Method for Improving Accuracy of a Time Estimate Used in Digital Rights Management (DRM) License Validation 」という米国特許出願第１１／８１１，３５４号（特許文献５）、「Memory Device with Circuitry for Improving Accuracy of a Time Estimate Used in Digital Rights Management (DRM) License Validation」という米国特許出願第１１／８１１，３４８号（特許文献６）、「Method for Using Time from a Trusted Host Device」という米国特許出願第１１／８１１，３４６号（特許文献７）、ならびに「Memory Device Using Time from a Trust Host Device 」という米国特許出願第１１／８１１，３４５号（特許文献８）に関連する。
【０００３】
サンディスク  コーポレイションのＴｒｕｓｔｅｄＦｌａｓｈ（登録商標）等のメモリ装置で、デジタル著作権管理（ＤＲＭ）ライセンス検証等、時間本位の操作を実行するには、時間を知る必要がある。そのような操作に関わるセキュリティ問題のため、メモリ装置は、正確な時間の提供にあたって、ホスト装置を信用できないことがある。メモリ装置は信頼されたネットワークコンポーネントから正確な時間を入手できるが、メモリ装置をホストするホスト装置は、メモリ装置で時間を知る必要があるときにネットワークに接続されていないことがある。メモリ装置の稼働時間を測定するようにメモリ装置を設計できても、そのメモリ装置が絶えず稼働時間を測定しなければ（測定開始後にメモリ装置の電源が落とされる場合等）、測定稼働時間から生成される時間推定は真の実時間の測定にはならない。測定稼働時間から生成される時間推定は、実際には稼働時間の下限を伝えるものにすぎず、そのような時間推定では、ある種の時間本位操作に求められる精度は得られない場合がある。メモリ装置が作動していないときでも絶えず時間を把握するため、メモリ装置にバッテリ方式のクロックを装備することもできるが、そのようなクロックを装備すると、メモリ装置のコストを上乗せすることになり得る。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願第１１／８１１，２８４号
【特許文献２】米国特許出願第１１／８１１，３４７号
【特許文献３】米国特許出願第１１／８１１，２８９号
【特許文献４】米国特許出願第１１／８１１，３４４号
【特許文献５】米国特許出願第１１／８１１，３５４号
【特許文献６】米国特許出願第１１／８１１，３４８号
【特許文献７】米国特許出願第１１／８１１，３４６号
【特許文献８】米国特許出願第１１／８１１，３４５号
【特許文献９】米国特許出願第１１／３１４，４１１号
【特許文献１０】米国特許出願第１１／５５７，０２８号
【特許文献１１】米国特許出願第１１／３２２，８１２号
【特許文献１２】米国特許出願第１１／３２２，７６６号
【発明の概要】
【０００５】
本発明は特許請求の範囲によって規定され、その特許請求の範囲を制限するものとしてこのセクションの内容を解釈してはならない。
紹介のためにこれ以降説明する実施形態は、信頼されたホスト装置から時間を使用するメモリ装置とその装置で使用する方法とを提供する。一実施形態において、メモリ装置上のアプリケーションが、ホスト装置上で実行しメモリ装置によって認証されるエンティティから、時間本位操作の実行要求を受信する。アプリケーションは、時間本位操作の実行にあたって、メモリ装置上のタイムモジュールからの時間の代わりにホスト装置からの時間を選択し、かつ時間本位操作の実行にあたってホスト装置からの時間を使用する。別の実施形態では、ホスト装置上で実行するエンティティの認証要求を受信する。エンティティの認証にあたって、エンティティとメモリ装置内のアプリケーションとを対応付けるアクセス管理記録（ＡＣＲ）で指定された認証方法と、メモリ装置上のタイムモジュールからの時間とを使用する。エンティティからアプリケーションに対する時間本位操作の実行要求を受信する。時間本位操作の実行にあたってはタイムモジュールからの時間の代わりにホスト装置からの時間を選択し、かつ時間本位操作の実行にあたってはホスト装置からの時間を使用する。メモリ装置は、さらに別の実施形態において、第２のホスト装置から受信した時間を第１のホスト装置からの蓄積時間に比較し、時間本位操作の実行にあたって、その比較に基づき、第２のホスト装置からの時間を使用するか、それとも第１のホスト装置からの蓄積時間を使用するかを決定する。メモリ装置は、別の実施形態において、非時間本位認証システムを用いてホスト装置を認証し、ホスト装置から時間を受信し、時間本位操作の実行にあたってはホスト装置から受信した時間を使用する。他の実施形態も開示するが、それらの実施形態はそれぞれ単独で使用できるほか、組み合わせても使用できる。
【図面の簡単な説明】
【０００６】
【図１】一実施形態のシステムの図解である。
【図２】一実施形態のメモリ装置のブロック図である。
【図３】図２のメモリ装置の種々の機能モジュールの図解である。
【図４】一実施形態の非対称認証プロセスのプロトコル図である。
【図５】タイムスタンプを取得する一実施形態のシステム図である。
【図６】タイムスタンプを取得する一実施形態の方法のフローチャートである。
【図７】タイムスタンプ更新方針をチェックする一実施形態の方法のフローチャートである。
【図８】メモリ装置で実行するアプリケーションにホスト時間を使用する一実施形態のメモリ装置の図解である。
【発明を実施するための形態】
【０００７】
図面に戻ると、図１は、これら実施形態を例示するのに用いるシステム１０の図解である。図１に見られるように、システム１０は、複数のホスト装置に取り外し可能に接続される複数のメモリ装置２０，３０，４０と、パーソナルコンピュータ（ＰＣ）５０と、デジタルメディア（ＭＰ３等）プレイヤ６０と、携帯電話機７０と、を備える。ホスト装置は、メモリ装置からデータを読み出すことができる装置、および／またはメモリ装置にデータを書き込むことができる装置である。データは、音声ファイルや映像ファイル（音声があるもの、またはないもの）等のデジタルメディアコンテンツ、画像、ゲーム、書籍、地図、データファイル、またはソフトウェアプログラムを含むが、これらに限定されない。データは、ネットワークのサーバからメモリ装置にダウンロードされたり、製造業者や第三者機関によって予めロードされたり、例えば別の装置からサイドロードされることがある。
【０００８】
ホスト装置は何らかの適当な形態をとることができ、図１に見られる例に限定されない。例えば、ホスト装置は、ノートブックコンピュータ、手持ち型コンピュータ、手持ち型ｅメール／テキストメッセージ装置、手持ち型ゲームコンソール、ビデオプレイヤ（ＤＶＤプレイヤ、ポータブルビデオプレイヤ等）、録音および／または録画装置、デジタルカメラ、セットトップボックス、表示装置（テレビ等）、プリンタ、カーステレオ、およびナビゲーションシステムの形態をとることができる。また、ホスト装置は複合機能を内蔵することができる。例えば、ホスト装置は、電話をかけたり受けたりできるほか、デジタルメディア（音楽および／または映像）ファイルを再生できる携帯電話機である。
【０００９】
ＰＣ５０や携帯電話機７０のようなホスト装置は、ネットワーク（インターネット８０や無線ネットワーク９０等であるが、タイプの異なるネットワークを使用することもできる）に接続して通信する能力を持つことができる。本願明細書において、このような能力を備えるホスト装置を「接続装置」と呼ぶ。携帯電話機７０が非接続モードで作動しているときや、ＰＣ５０がインターネット接続を確立していないとき等、「接続装置」が常にネットワークへ実際に接続されているとは限らないことを理解するべきである。本願明細書において、ネットワークに接続して通信する能力を持たないホスト装置（デジタルメディアプレイヤ６０等）を「非接続装置」と呼ぶ。非接続装置を接続装置に接続することにより、非接続装置をネットワークと通信する状態に置くこともでき、図１に見られるように、デジタルメディアプレイヤ６０はＰＣ５０に接続されている。そのような形で接続される場合でも、ネットワークから情報を引き出す機能が非接続装置になければ（単純なＭＰ３プレイヤ等）、ネットワークから情報を引き出すことはできない。そのような状況でも、ネットワークコンポーネントは装置に情報を押し付けることができる。図１には有線接続を介してＰＣ５０へ接続されたデジタルメディアプレイヤ６０が示されているが、無線接続も使用できることに留意するべきである。同様に、用語「接続」および「結合」が必ずしも有線接続や直接接続を意味するわけではない。
【００１０】
接続装置（あるいは接続装置に接続された非接続装置）はネットワーク（インターネット８０、無線ネットワーク９０等）を通じて外部のコンポーネントにアクセスでき、この外部コンポーネントは、タイムスタンプを提供することができるタイムサーバ１００や、ＤＲＭ保護コンテンツとこのようなコンテンツにアクセスするためのライセンスとを提供することができるデジタル著作権管理サーバ（ＤＲＭ）１１０を含むが、これらに限定されない。これらサーバについては以下に詳述する。図１ではタイムサーバ１００とＤＲＭサーバ１１０が別々の装置として示されているが、２つのサーバを１つの装置にまとめることもできる。さらに、これらサーバに別の機能を盛り込むこともできる。また、必要であればインターネット８０か無線ネットワーク９０を介してタイムサーバ１００やＤＲＭサーバ１１０以外のコンポーネントにアクセスすることもできる。
【００１１】
図面に戻ると、図２は一実施形態のメモリ装置２００のブロック図であり、これはメモリカードやメモリスティックの形態をとることができる。図２に見られるように、メモリ装置２００は不揮発性メモリアレイ（フラッシュメモリ等）２１０と１群の回路２２０とを備える。この実施形態の不揮発性メモリアレイ２１０はソリッドステートメモリ、具体的にはフラッシュメモリ２１０の形態をとっている。フラッシュメモリの代わりにタイプの異なるソリッドステートメモリを使用できることに留意するべきである。また、磁気ディスクや光学ＣＤを含むがこれらに限定されない、ソリッドステートメモリ以外のメモリを使用できることにも留意するべきである。また、簡潔さを図るため、本願明細書で用いる用語「回路」は純粋なハードウェア実装、および／または複合ハードウェア／ソフトウェア（またはファームウェア）実装を指す。つまり「回路」は、特定用途向け集積回路（ＡＳＩＣ）、プログラム可能なロジックコントローラ、埋め込み型マイクロコントローラ、単一基板コンピュータなどの形態をとるほか、プロセッサと、このプロセッサにより実行可能なコンピュータ可読プログラムコード（ソフトウェア、ファームウェア等）を蓄積するコンピュータ可読媒体の形態をとることができる。
【００１２】
図２の１群の回路２１０は、複数のコンポーネント、すなわちホストインターフェイスモジュール（ＨＩＭ）２３０と、フラッシュインターフェイスモジュール（ＦＩＭ）２４０と、バッファ管理部（ＢＭＵ）２５０と、ＣＰＵ２６０と、ハードウェアタイマーブロック２７０とを備える。ＨＩＭ２３０はホスト装置３００のためのインターフェイス機能を提供し、ＦＩＭ２４０はフラッシュメモリ２１０のためのインターフェイス機能を提供する。ＢＭＵ２５０は、暗号化／復号化機能を提供するクリプトエンジン２５２と、ＨＩＭ２３０と通信するホストダイレクトメモリアクセス（ＤＭＡ）コンポーネント２５４と、ＦＩＭ２４０と通信するフラッシュＤＭＡコンポーネント２５６と、を備える。ＣＰＵ２６０は、ＣＰＵ  ＲＡＭＳ２６０および／またはフラッシュメモリ２１０に蓄積されたソフトウェアとファームウェアを実行する。ハードウェアタイマーブロック２７０については、メモリ装置の時間測定能力との関係で以下に説明する。
【００１３】
図面を簡潔にするため、メモリ装置２００をホスト装置３００へ取り外し可能に接続するための電気的・物理的コネクタ等のメモリ装置２００のその他のコンポーネントは図２に示されていない。メモリ装置２００とその動作については、本願明細書において参照により援用されている米国特許出願第１１／３１４，４１１号（特許文献９）および米国特許出願第１１／５５７，０２８号（特許文献１０）で詳細を確認できる。本願明細書において参照により援用されている米国特許出願第１１／３２２，８１２号（特許文献１１）と米国特許出願第１１／３２２，７６６号（特許文献１２）ではさらなる情報を確認できる。しかし、それら特許出願に記載されたコンポーネントと機能は、添付の特許請求の範囲に明記されていない限り、添付の特許請求の範囲の中で解釈すべきものではない。
【００１４】
メモリ装置２００は、この実施形態において、メモリ装置２００に蓄積された被保護コンテンツのロックを解除するため、デジタル著作権管理（ＤＲＭ）キーおよびライセンスを蓄積する。（メモリ装置に蓄積された被保護コンテンツのロックを解除するためにＤＲＭキーおよびライセンスを蓄積しないメモリ装置にも、これら実施形態が役立つことに留意するべきである。）ＤＲＭキーとＤＲＭライセンスはメモリ装置２００で生成できるほか、メモリ装置２００以外（ＤＲＭサーバ１１０等）で生成しメモリ装置２００へ送信することもできる。そのＤＲＭキーとＤＲＭライセンスはメモリ装置２００とともに移動するから、被保護コンテンツは事実上、ホスト装置３００ではなくメモリ装置２００に結び付けられ、被保護コンテンツは持ち運び可能となり、認可された装置であることをメモリ装置２００に対して証明できるホスト装置ならどれでも、被保護コンテンツにアクセスできる。サンディスク  コーポレイションのメモリ装置ＴｒｕｓｔｅｄＦｌａｓｈ（登録商標）は、ＤＲＭキーとＤＲＭライセンスがメモリ装置に蓄積され、メモリ装置とともに被保護コンテンツを移動できるメモリ装置の例である。いくつかの実施形態によっては、メモリ装置２００に蓄積されたＤＲＭキーを用いてメモリ装置２００がＤＲＭライセンスを検証する。別の実施形態では、メモリ装置２００からホスト装置３００にＤＲＭキーを提供し、ＤＲＭキーによるＤＲＭライセンス検証をホスト装置にまかせる。
【００１５】
この実施形態では、ＤＲＭキーとＤＲＭライセンスに対するアクセスを適切な信用証明を持つ認可エンティティに限定するため、ＣＰＵ２６０がセキュアストレージアプリケーション（ＳＳＡ）を実行する。ＳＳＡのコンピュータ可読コードはフラッシュメモリ２１０やＣＰＵ  ＲＡＭＳ２６２に蓄積できるほか、メモリ装置２００の別の蓄積位置に蓄積できる。ＳＳＡについては、前に参照した米国特許出願第１１／５５７，０２８号（特許文献１０）でより詳細に説明されている。図３は、ＳＳＡの動作の例証に用いるメモリ装置２００の種々の機能モジュールの図解である。図３に見られるように、メモリ装置２００は様々なアクセス管理記録（「ＡＣＲ」）を備える。つまり、第１の非対称ＡＣＲ２０１と、第２の非対称ＡＣＲ２０２と、対称ＡＣＲ２０３とを備える。第１および第２の非対称ＡＣＲ２０１，２０２は、後ほど詳述する第１および第２の時間更新方針（ＴＵＰ１およびＴＵＰ２）を備える。図３には多数のＡＣＲが見られるが、メモリ装置２００はただ１つのＡＣＲを収容することもある。
【００１６】
ＡＣＲ２０１，２０２，および２０３は、使用すべき認証方法と、エンティティのアイデンティティを立証するにあたってどのような種類の信用証明が必要かを指定する。ＤＲＭキーおよびライセンスに対するアクセス等、種々のアクションを実行するための権限もＡＣＲ２０１，２０２，および２０３に記録される。ＡＣＲによるエンティティの認証に成功するとＳＳＡシステムがセッションを開放し、ＡＣＲのアクションを実行できるようになる。本願明細書で用いる用語「エンティティ」は、メモリ装置２００に対してアクセスを試みる人または物を指す。例えば、エンティティは、ホスト装置で実行するアプリケーションであったり、ホスト装置自体であったり、ヒトユーザであったりする。図３では３つのエンティティ、すなわちメディア（音声および／または映像）プレイヤ３０１と、ストレージアプリケーション３０２と、別のアプリケーション３０３とが、メモリ装置２００へのアクセスを試みる。これらエンティティ３０１，３０２，３０３は同じホスト装置に位置することもあれば、別々のホスト装置に位置することもある。それぞれのエンティティ３０１，３０２，３０３には特定のＡＣＲ（ＡＣＲ２０１，２０２，および２０３）が対応付けられている。ＡＣＲ２０１，２０２，および２０３のいずれかに別のエンティティ（図示せず）を対応付けることもできる。
【００１７】
エンティティはログインプロセスを開始するときに、該当するＡＣＲの識別子を含む認証要求を送信する。ＡＣＲは、使用すべき認証方法と、エンティティのアイデンティティを立証するにあたってどのような種類の信用証明が必要かを指定する。図３のＡＣＲ２０１および２０２は非対称認証法を指定し、ＡＣＲ２０３は対称認証法を指定する。なお、これとは別の認証法（パスワード方式の手順等）を用いることもでき、ＡＣＲで認証不要と指定することもできる。特定の認証法を指定することに加え、認証済みエンティティで実行できるアクションを記した権限管理記録（ＰＣＲ）をＡＣＲに入れることもできる。
【００１８】
一部の認証機構（例えば、Ｘ．５０９証明書連鎖の認証に用いる一方向および双方向非対称認証等）は時間を基礎とし、メモリ装置２００はエンティティから提示される信用証明の検査にあたって時間を知る必要がある。（対称ＡＣＲ２０３の対称認証機構の場合には、メモリ装置２００で時間を把握する必要はない。対称認証では、エンティティとこれに対応するＡＣＲとで共有されるキーを用いてエンティティを認証する。）非対称認証でエンティティから提供されるＲＳＡ証明書および／または証明書取消リスト（ＣＲＬ）等の信用証明を評価するには、時間が必要になることがある。（本願明細書で用いる「証明書」は単一の証明書や複数の証明書（一連の証明書等）を指すことがあり、「ＣＲＬ」は単一のＣＲＬや複数のＣＲＬを指すことがある。）検証を実行するにあたってメモリ装置２００で時間推定を生成するメカニズムについて説明する前に、非対称認証にかかわる証明書とＣＲＬを簡単に説明する。
【００１９】
非対称認証で使用する公開鍵基盤（ＰＫＩ）システムでは、証明局（ＣＡ）と呼ばれる信用機関がエンティティのアイデンティティを証明するＲＳＡ証明書を発行する。アイデンティティの立証を望むエンティティは、これを証明するにあたって十分な証拠を用意しＣＡに登録する。ＣＡでエンティティのアイデンティティが証明されると、ＣＡからエンティティへ証明書が発行される。証明書は通常、証明書の発行元にあたるＣＡの名称と、証明書の発行先にあたるエンティティの名称と、エンティティの公開鍵と、ＣＡの秘密鍵によって署名されたエンティティの公開鍵（通常は公開鍵のダイジェストを暗号化）とを含む。
【００２０】
証明書の中には有効期限を保持するデータフィールドを設けることができる。この場合、証明書を所持するエンティティがコンテンツにアクセスできる時間には限りがある（証明書が失効するまで）。将来の発効時期を保持するデータフィールドを証明書に設けることもできる。この場合、証明書が有効になるまでＡＣＲによるエンティティ認証は行われない。メモリ装置２００は、現在の日付が有効期限を過ぎているか発効日に至っていないと判断する場合（つまり、証明書が有効でないとメモリ装置２００が判断する場合）には、証明書を提示するエンティティを認証しない。
【００２１】
証明書は様々ないきさつで有効期限より前に無効になることがある（例えば、名称の変更、エンティティおよびＣＡ関係の変化、秘密鍵の侵害または侵害の疑い等）。そのような場合にはＣＡが証明書を取り消す必要がある。具体的にはＣＡが証明書取消リスト（ＣＲＬ）を定期的に発行する。ＣＲＬは、取り消された証明書のタイムスタンプ付きリストを含む署名付きデータ構造である。したがって、メモリ装置２００はエンティティの認証にあたって証明書が時宜に適っているか否かをチェックするだけでなく、ＣＲＬもチェックし、証明書がＣＲＬに登記されているか否かも確認する。（ＣＲＬは、証明書と併せてエンティティから提供されることもあれば、メモリ装置２００がＣＲＬ自体を取得することもある（例えば、メモリ装置２００が接続装置ならインターネット８０を通じて取得する）。）ＣＲＬに登記されている証明書は（期限切れでなくとも）もはや有効ではなく、エンティティの認証は行われない。証明書と同様に、ＣＲＬにも有効期限がある。この有効期限はＣＲＬの更新時期を指示するものであり、これによりメモリ装置２００における最新ＣＲＬの使用が徹底される。認証中に現在時間がＣＲＬの有効期限を過ぎていることがメモリ装置２００で判明すると（ＣＲＬが無効であるとメモリ装置２００が判断すると）、そのＣＲＬには問題があるとみなされ、証明書の検査にはできるだけ使用しない。
【００２２】
前に説明したように、この実施形態のメモリ装置２００は信用証明（本願明細書では証明書とＣＲＬ）の検査にあたって時間を知る必要がある。メモリ装置で時間を把握できるようにするには数通りの選択肢がある。１つの選択肢として、メモリ装置で時間を知る必要がある場合には、そのつどメモリ装置からホスト装置を通じて信頼されたタイムサーバにタイムスタンプを要求する。これは接続装置に適した方法ではあるが、メモリ装置は接続装置のほかに非接続装置で使われることもあるため（例えば、インターネットに接続されていない家庭内ＰＣ、ＭＰ３プレイヤ、ネットワークから切断された携帯電話機（飛行機搭乗時等））、メモリ装置の認証手順で時間を知る必要があるときに、接続が得られるかどうかは当てにならない。もうひとつの選択肢では、バッテリ方式のクロックをメモリ装置に装備する。しかし、そうするとメモリ装置にコストが上乗せされるため、場合によっては望ましくない。もうひとつの選択肢では、メモリ装置への時間提供にあたってホスト装置を頼りにする（ホスト装置自身の内蔵クロックあるいは外部供給元から提供される）。しかし、メモリ装置は多くの場合、正確な時間提供にあたってホスト装置を信頼できない。ユーザがホスト装置のクロックを「遅らせる」ことができるなら（つまり、ホスト装置のクロックを現在時間より前の時間に設定できるなら）、ユーザはメモリ装置で施行される必要がある時間制限を出し抜くことができる。その一方で、メモリ装置（またはメモリ装置で実行するアプリケーション）にとってホスト装置が信頼できるものなら、メモリ装置（またはメモリ装置で実行するアプリケーション）はホスト装置の時間を当てにできる。ホスト時間を使用できる場合については、後ほど詳細を提示する。
【００２３】
この実施形態で採用するもうひとつの選択肢では、メモリ装置の限られた時間追跡能力、具体的にはメモリ装置２００の稼働時間を測定する能力を利用する。稼働時間とは、メモリ装置２００がホスト装置へ接続され、実際に使われていた時間を指すことができる（つまり、アイドル状態やスリープモードとは対照的に、メモリ装置２００およびホスト装置３００間のバスで活動があった時間）。あるいは、稼働時間は、メモリ装置２００がホスト装置３００へ接続され、ホスト装置３００から電力を受け取っていた総時間を指すことができる。本願明細書では、用語「稼働時間」および「使用時間」を互換的に使用する。後述するように、この実施形態ではハードウェアタイマーブロック２７０がＣＰＵ２６０に対する割り込みとしてクロックティックを生成でき、ＣＰＵ２６０が稼働時間カウンタを増加できているときに、メモリ装置２００は稼働しているとする。
【００２４】
作動中はハードウェアタイマーブロック２７０（ＡＳＩＣコントローラ等）に内蔵された発振器が周期的なクロックティックを生成し、そのティックを割り込みとしてＣＰＵ２６０に提供する。（この発振器は、好ましくはＣＰＵ２６０がスリープ状態のときに非常に低い周波数で作動する。）つまり、ハードウェアタイマーブロック２７０は周期的（ミリ秒毎、マイクロ秒毎等）にＣＰＵ２６０に割り込む。ＣＰＵ２６０が割り込みを受けると専用のクロック割り込みサービスルーチンが呼び出され（例えば、ＣＰＵ２６０によりファームウェア内で実行され）、これにより１周期／単位が稼働時間カウンタへ加えられる。このカウンタ値はＣＰＵ  ＲＡＭＳ２６２ばかりでなく不揮発性フラッシュメモリ２１０にも蓄積されるため、停電が発生しても失われることはない。メモリ２１０の過度の消耗を避けるため、メモリ２１０の稼働時間カウンタは、クロックティックのたびに更新するのではなく、周期的に（例えば、メモリ装置に電源が入っている間に１分毎に）更新するのが好ましい。この場合、稼働時間カウンタが更新される前に停電が起こると測定時間精度のさらなる低下を招き得るが、メモリ耐久性にとってのメリットを考慮すれば、許容し得る代償とみなすことができる。（メモリの耐久性をさらに保護するなら、稼働時間カウンタに蓄積される値にカウンタへの書き込み回数を伝えるフィールドを設けることができる。この書き込み値が一定量を超過する場合には、メモリの別の位置にカウンタを蓄積できる。カウンタ内のビットをシフトすることで耐久性に寄与するなら、ビットをシフトすることもできる。）また、（書き込みにかかる消費電力は別として）稼働時間カウンタへの書き込みによってメモリ装置２００の性能や平常の活動に支障をきたさないようにするのが好ましい。（換言すると、時間カウンタへの書き込みをホストコマンド処理プロセスの一部とするのが好ましい。）例えば、稼働時間カウンタへの書き込みをバックグラウンドタスクとし、ホスト装置コマンドを処理する前にこれを実行することもできる。ホスト装置コマンドが終了したら、メモリ装置２００のファームウェアによりメモリからデータを読み出し、所望値と比較することで、稼働時間カウンタのプログラミングが成功したことを確認できる。
【００２５】
また、稼働時間カウンタの値は、容易に改ざんされないようにするため、メモリ２１０に安全に蓄積するのが好ましい（例えば、キーハッシュメッセージ認証コード（ＨＭＡＣ）を使用しクリプトエンジン２５２により署名する）。署名が一致しない場合には、データは攻撃者によって改ざんされたものとし、未初期化データとして扱うことができる。さらに、他の稼働時間測定メカニズムも使用できることに留意するべきである。
【００２６】
稼働時間カウンタに蓄積された値を実際の時間に変換するため、ＣＰＵ２６０は、ハードウェアタイマーブロック２７０がクロックティックを生成する頻度を蓄積値に乗ずる。例えば、稼働時間カウンタに値５００が蓄積され、ハードウェアタイマーブロック２７０が５ミリ秒毎にクロックティックを生成するなら、ＣＰＵ２６０は２，５００ミリ秒（５００×５）の稼働時間を算出する。時間推定の生成にあたっては、信頼された供給元からメモリ装置２００に届いた最新のタイムスタンプに変換済みの稼働時間を加算する。換言すると、タイムスタンプは「スタートライン」の役割を果たし、このタイムスタンプにメモリ装置の測定稼働時間を加算する。タイムスタンプはいかなる形式のものであってもよく、任意の精度で時間を表示できる（年、月、日、時、分、秒等）。タイムスタンプは、好ましくは精密時間提供にあたってメモリ装置２００が信頼するエンティティ（タイムサーバ１００、信頼されたホスト装置等）から提供される。タイムスタンプはいかなる形式のものであってもよく、単独で送信できるほか、別の情報に含めることもできる。タイムスタンプが容易に改ざんされないようにするため、メモリ装置は、好ましくはクリプトエンジン２５２経由でタイムスタンプを安全に蓄積する。メモリ装置２００に新しいタイムスタンプが届くと、新しいタイムスタンプがメモリ装置２００に蓄積され、稼働時間カウンタはリセットされる。したがって、それ以降は古いタイムスタンプの代わりに新しいタイムスタンプを基準として稼働時間の測定が行われる。稼働時間を測定するため、カウンタをリセットする（「元に戻す」）代わりに、新しいタイムスタンプの時点に存在する稼働時間カウンタ値を記録し、現在時間からこれを引くこともできる。
【００２７】
メモリ装置の時間追跡能力を説明したところで、今度は認証手順の一例を説明する。図面に戻ると、図４は一実施形態の非対称認証プロセスのプロトコル図である。以下の例では、プレイヤ３０１がＡＣＲ２０１を通じてメモリ装置２００へのログインを試みる。後ほど詳述するように、プレイヤ３０１は信用証明を保持し（ＲＳＡ鍵対、証明書、証明書取消リスト（ＣＲＬ）等）、ＡＣＲ２０１はプレイヤ３０１の真正性を検証し、オブジェクトに対する権利を授与する（この場合、プレイヤ３０１とＤＲＭモジュール２０７との間でセキュアチャネルが確立する）。図４に見られるように、最初のステップではホスト装置３００がプレイヤ３０１の認証要求をメモリ装置２００へ送信する（アクト４０２）。メモリ装置２００にタイムスタンプがまだインストールされていなければ、メモリ装置２００は認証要求に対してログイン失敗メッセージで応答する（アクト４０４）。
【００２８】
続く一連のアクトでは、メモリ装置２００にタイムスタンプを提供するプロセスを図５および図６との関係で説明する。これら図は、メモリ装置２００がタイムスタンプを取得可能な１つの方法を例証するシステム図とフローチャートである。メモリ装置２００はこれとは別の方法でタイムスタンプを取得することもでき、タイムスタンプがこれとは別の形式をとり得ることを理解するべきである。また、１つのメモリ装置が多数のサーバまたはホストと連係しながら多数の形式を同時に処理できることも理解するべきである。したがってこの例の具体的な詳細は、添付の特許請求の範囲に明記されていない限り、添付の特許請求の範囲の中で解釈すべきものではない。
【００２９】
図５に見られるように、メモリ装置２００はメモリ装置−ホスト装置通信チャネル３０５を通じてホスト装置３００と通信し、ホスト装置３００はホスト装置−タイムサーバ通信チャネル３１５を通じてタイムサーバ１００と通信する。タイムサーバ１００は単独のサーバでもよいが、この実施形態のタイムサーバ１００は、サーバ間通信チャネル３２５経由で互いに同期をとる複数のサーバ１０２，１０４，１０６を含む。また、前に指摘したように、タイムスタンプのためにタイムサーバ１００を使用する代わりに、ホスト装置３００のタイムスタンプを使用することもできるが、これは、好ましくはホスト装置３００が信頼されたホスト装置である場合に限る。
【００３０】
この実施形態では、ホスト装置３００がメモリ装置２００へノンス取得コマンドを送信する（アクト４０５）ところからタイムスタンプ要求手順が始まる（図４，５，６参照）。この実施形態におけるノンスは、後ほどメモリ装置２００がタイムサーバ１００によって生成されたタイムスタンプの真正性を検証するときに用いる１６ビットの乱数である。メモリ装置２００は乱数（ノンス）を生成し（アクト４１０）、以降の検証ステップのためにこれをＣＰＵ  ＲＡＭＳ（揮発性メモリ）２６２（またはメモリ２１０）に蓄積する。次に、メモリ装置２００はホスト装置３００へノンスを送信する（アクト４１５）。メモリ装置２００はまた、後ほどタイムアウトの有無を確認するため、時間の測定を開始する（後述）。
【００３１】
ノンスを受信したホスト装置３００は、そのノンスを含むタイムスタンプ取得要求をタイムサーバ１００へ送信する（アクト４２０）。タイムサーバ１００は、その秘密鍵により時間（ＵＴＣ協定世界時形式による世界時等）とノンスに署名する。次に、タイムサーバ１００はタイムスタンプ応答を送信する（アクト４２５）。（タイムサーバ１００から送信されるこの証明書とＣＲＬはタイムサーバ１００を認証するためのものであって、プレイヤ３０１を認証するために送信される証明書およびＣＲＬとは異なるものであることに留意するべきである。）この実施形態におけるタイムスタンプ応答は、ノンスと、タイムスタンプと、証明書連鎖と、証明書取消リスト（「ＣＲＬ」）連鎖とを含む。ホスト装置３００は、時間更新コマンドとこの応答をメモリ装置２００へ送信する（アクト４３０）。メモリ装置２００はこのコマンドに応じて証明書とＣＲＬの検証を試みる（アクト４３５）。（繰り返しになるが、この証明書とＣＲＬはプレイヤ３０１の認証のために送信されるものとは異なる。）後述するように、メモリ装置２００で生成された時間推定に照らしてタイムサーバ１００の証明書およびＣＲＬの有効性をチェックするよりは、タイムサーバ１００の証明書およびＣＲＬの有効期間が過ぎていないと仮定したほうが好ましい場合もある。この検証に失敗する場合、メモリ装置２００は揮発性メモリ２６２をリセットし、アイドルプロセスに戻る（アクト４４０）。証明書とＣＲＬの検証に成功する（アクト４４５）場合には、メモリ装置２００は応答の中にあるノンスを揮発性メモリ２６２にあるノンスに比較する（アクト４５０）。この比較に失敗する場合には、メモリ装置は揮発性メモリ２６２をリセットし、アイドルプロセスに戻る（アクト４５５）。比較に成功する場合には、メモリ装置２００は新しいタイムスタンプを、好ましくは改ざんを防ぐため安全な方法で、メモリ２１０に蓄積する。
【００３２】
メモリ装置２００がノンスを生成し（４１０）、応答を待っているときに（アクト４６０）、ホスト装置３００からメモリ装置２００へ別のノンス取得コマンドが送信され得る（アクト４６５）ことが可能であることに留意するべきである。前述したように、メモリ装置２００はノンスを生成した後に時間測定を開始する。メモリ装置２００は、その測定時間が特定のタイムアウト制限に達する前に新たなノンスコマンド（４６５）を受信する場合には、好ましくは新たなノンスコマンド（４６５）を無視する。しかし、メモリ装置２００は、タイムアウト制限後に新たなノンスコマンド（４６５）を受信する場合には、揮発性メモリ２６２をリセットし、新たなノンスを生成する（アクト４７０）。したがって、ノンスは限られた時間内で有効であり、タイムアウト制限（「トラベルタイムエラー」）は、メモリ装置２００がタイムサーバ１００からタイムスタンプが届くのを待つ最大時間に相当する。
【００３３】
メモリ装置２００に蓄積されるタイムスタンプの時間は、タイムサーバ１００がデータ文字列に署名したときの時間であるため、タイムスタンプの精度にもよるが（年、月、日、時、分、秒等）、タイムスタンプの時間は、ホスト装置３００がタイムスタンプを要求したときの現実の時間にならないことがある。あるいは、メモリ装置２００がタイムスタンプを蓄積したときの現実の時間にならないことがある。前述したノンスタイムアウト期間は、タイムスタンプの精度がメモリ装置２００の要求に合うように設定できる。したがって、タイムスタンプ要求の最大許容遅延がメモリ装置２００によってコントロールされることになる。代替の実施形態において、タイムサーバ１００によって生成されるタイムスタンプで別の時間を表示でき、例えばホスト装置３００がタイムスタンプを要求したときの推定時間や、メモリ装置２００におけるタイムスタンプ蓄積の見込み時間を表示できる。
【００３４】
前述したプロトコルの場合、メモリ装置２００は安全が保証されない接続システム（インターネット、ＷｉＦｉネットワーク、ＧＳＭネットワーク等）を介してタイムサーバ１００と通信することになる。安全が保証されない接続システムとは、メモリ装置２００が、タイムサーバ１００によって送信されるタイムスタンプの送信中に改ざんがないと決め付けることができないことを意味する。タイムスタンプを保護するにあたってネットワークが当てになり得ないため、タイムサーバ１００とメモリ装置２００との間で前述した保護メカニズム（あるいは他の何らかの保護メカニズム）を使用できる。暗号化プロトコルなら、タイムスタンプが改ざんされた場合にメモリ装置２００で改ざんを検出できる。換言すると、接続システムが安全でなければ、タイムスタンプのビットが何者かによって変更されるのを接続システム自体で防ぐことはできないが、メモリ装置２００は改ざんを検出し、タイムスタンプを拒絶することができる。代替の実施形態では安全な通信システムを使用する（つまり、データ通信回線が保護される）。この場合、誰もタイムスタンプを改ざんできないため、タイムスタンプはプレーンテキストで送信できる。
【００３５】
図４に戻ると、現在メモリ装置２００には新規のタイムスタンプが蓄積され、メモリ装置２００はホスト装置３００へ「時間更新成功」メッセージを返し（アクト４５２）、ホスト装置３００はもう一度認証要求をメモリ装置２００へ送信する（アクト４５４）。メモリ装置２００にはタイムスタンプがあるため、メモリ装置２００はＡＣＲ２０１のタイムスタンプ更新方針（ＴＵＰ）をチェックする（アクト５００）。時間推定はタイムスタンプを基礎とするため、古いタイムスタンプに時間推定の基礎を置くと時間推定が不正確になり得る。そこで、メモリ装置２００にあるタイムスタンプが古く、更新（新規タイムスタンプ）が必要かどうかをＴＵＰから判断する。後ほど詳述するが、ＴＵＰは図３に示すようにＡＣＲによって異なることがあり（ＡＣＲによって時間公差が異なる）、ＡＣＲの作成時に設定できる。
【００３６】
この実施形態では４つの値、すなわち（１）電源サイクル数と、（２）稼働時間のしきい値と、（３）「伸張」稼働時間のしきい値と、（４）パラメータでＯＲ関係の有無を指示するビット（パラメータが１つでもチェックに失格すると時間更新を要求するか、あるいは全てのパラメータがチェックに失格する場合に限り時間更新を要求する）とによって、ＴＵＰが表される。これらパラメータについては後ほど詳述する。（これらパラメータに加えて、あるいはこれらパラメータの代わりに、別のパラメータを検討することもできることに留意するべきである。）
【００３７】
図７は、ＴＵＰチェックアクト（アクト５００）のさらなる詳細を示すフローチャートである。まずは、ＴＵＰチェックのためにメモリ装置２００が初期化されているか否かを判断する（アクト５０５）。それには、例えばメモリ２１０に蓄積された設定データを調べる。ＴＵＰチェックのためにメモリ装置２００が初期化されていなければ、メモリ装置２００は受信した最後のタイムスタンプを使って時間推定を生成し（アクト５１０）、その時間推定を使ってエンティティの認証を試みる。ＴＵＰチェックのためにメモリ装置２００が初期化されていれば、メモリ装置２００はＴＵＰチェックに着手する。
【００３８】
メモリ装置２００はまず、最終タイムスタンプ以降のメモリ装置２００の電源サイクル数のチェックがＴＵＰに含まれているか否かを判断する（アクト５１５）。この実施形態では、前述した「電源サイクル」値をチェックすることによってこれを果たす。「電源サイクル」値が０なら、電源サイクル数チェックは行われない。「電源サイクル」値が０以外なら、その値をしきい値として使用し電源サイクル数をチェックする。電源サイクル数とは、メモリ装置２００の電源が入った回数を数えたものであり、この数から最終タイムスタンプ以降にメモリ装置２００の電源が切れた回数が分かる（つまり、電源が入るたびに、そのつど電源を切ることになる）。電源サイクル数はＣＰＵ２６０で測定できる。メモリ装置２００が電源サイクルを通過するたびに、ＣＰＵ２６０はファームウェアで装置リセットルーチンを呼び出すことができる。ＣＰＵ２６０が稼働時間カウンタに１単位を加える場合と同様に、この装置リセットルーチンにより、ＣＰＵ２６０はＣＰＵ  ＲＡＭＳ２６２および／またはメモリ２１０の電源サイクルカウンタに１単位を加える。メモリの消耗を抑えるため、稼働時間カウンタと同様に、電源サイクルカウンタも周期的に更新できる。
【００３９】
メモリ装置２００の電源が切れると、（メモリ装置２００は「稼働」していないときに稼働時間を測定できないために）少なくともある程度の実時間は稼働時間に反映されないことになる。メモリ装置２００は電源サイクル間にどれだけの時間が経過したかを知らないため、測定稼働時間がどの程度不正確かを電源サイクル数からつかむことはできない。しかし、メモリ装置２００の使い方が想定された使用パターンから外れているか否かを電源サイクル数からある程度つかむことはできる。さらにそこから、測定稼働時間がどの程度不正確かが大まかに分かり得る。例えば、最後のタイムスタンプからメモリ装置２００の電源サイクルが１０回あった場合の時間推定は、最後のタイムスタンプからメモリ装置２００の電源サイクルが１回しかなかった場合の時間推定より正確でない可能性がある。
【００４０】
メモリ装置２００は、電源サイクル数チェックがＴＵＰに含まれている場合には、最終タイムスタンプ以降のメモリ装置２００の電源サイクル数をチェックし、その数値が「電源サイクル」値に設定されたしきい値を超過するか否かを確認する（アクト５２０）。このしきい値は所望の時間公差に応じてＡＣＲごとに設定できる。例えば非常にデリケートな認証で証明書やＣＲＬの有効期限が過ぎていないことを確実に立証する必要があるなら、このしきい値を１に設定することができる。この場合、メモリ装置２００の電源が一度でも切れていたなら（これに応じて少なくともある程度の時間は測定稼働時間に計上され得なくなる）、このパラメータのＴＵＰチェックは不合格に終わる。その一方で、さほどデリケートでない認証なら電源サイクル数を高い数値に設定することができる（あるいはこれを一切考慮しない）。この場合、電源サイクルがいくらかあっても（測定稼働時間に計上されない時間がある程度あっても）、ＴＵＰチェックには合格する。
【００４１】
電源サイクル数チェックが不合格に終わり、ＴＵＰパラメータでＯＲ関係が判明する（アクト５２５）場合には、ＴＵＰチェックは不合格に終わる（アクト５３０）。メモリ装置２００は不合格を伝えるメッセージをホスト装置３００へ送信し、前述した手順により新規タイムスタンプを取得する。電源サイクル数のチェックに合格するなら、あるいは失格してもＴＵＰパラメータにＯＲ関係がないことが判明するなら（アクト５２５）、処理は継続し、最終タイムスタンプ以降の稼働時間チェックがＴＵＰに含まれているか否かを判断する（アクト５３５）。
【００４２】
前述した電源サイクル手順と同様に、「稼働時間」値が０なら、稼働時間のチェックは行われない。しかし、「稼働時間」値が０以外なら、その値を秒単位（または他の何らかの時間単位）のしきい値として使用し稼働時間をチェックする。電源サイクル数と同様に、稼働時間のしきい値は所望の時間公差に応じてＡＣＲごとに設定できる。一般的に、メモリ装置２００の稼働が長いほど測定稼働時間が不正確になる見込みは高くなる。したがって、非常にデリケートな認証で証明書やＣＲＬの有効期限が過ぎていないことを確実に立証する必要があるなら、測定稼働時間のしきい値を非常に低く設定することができる。逆に、認証がデリケートではないなら、測定稼働時間のしきい値をより高く設定することができる（あるいはこれを一切考慮しない）。
【００４３】
稼働時間チェックが不合格に終わり、ＴＵＰパラメータでＯＲ関係が判明する（アクト５４５）場合には、ＴＵＰチェックは不合格に終わる（アクト５５０）。メモリ装置２００は不合格を伝えるメッセージをホスト装置３００へ送信し、前述した手順により新規タイムスタンプを取得する。稼働時間チェックに合格するなら、あるいは失格してもＴＵＰパラメータにＯＲ関係がないことが判明するなら（アクト５４５）、処理は継続し、「伸張」稼働時間のチェックがＴＵＰに含まれているか否かを判断する（アクト５５５）。
【００４４】
前に指摘したように、メモリ装置２００が稼働時間を絶えず測定しないなら、測定稼働時間は真の実稼働時間にはならない場合がある。つまりメモリ装置２００が「稼働していなければ」（例えば、メモリ装置２００がアイドル状態かスリープモードになっている場合、メモリ装置２００に電源が入っていない場合、メモリ装置２００がホスト装置３００から取り外される場合が挙げられる。いずれにせよこの実施形態ではハードウェアタイマーブロック２７０によるクロックティックの生成は停止する、および／またはＣＰＵ２６０によるティックへの反応は停止する）、稼働していないときに時間が経過していることをメモリ装置２００で知る手だてはないため、測定された稼働時間は、測定開始以降に経過した実時間に満たないものとなる。例えば、１月１日にタイムスタンプを受信し、メモリ装置２００が２日分の稼働時間を測定したと仮定する。（簡潔さを図るため、この例では日単位で時間を測定する。しかし、前述したように、任意の望ましい時間単位を使用できる。）このときメモリ装置２００によって生成される時間推定の日付は１月３日になる（１月１日の最新タイムスタンプに２日の稼働時間を加算する）。メモリ装置２００が稼働時間を絶えず測定していたなら、この時間推定は実時間を正確に表すものとなる（ハードウェアタイマーブロック２７０とＣＰＵ２６０は正確に機能していると仮定する）。しかし、メモリ装置２００が稼働時間を連続的に測定していなかったら（稼働時間の測定開始後にメモリ装置２００が稼働していないときがあったなら）、時間推定は実時間を正確に表すものにはならない。時間推定が伝える実時間はよくても１月３日どまりなのである。実時間は１月４日かそれ以降かもしれない（６月２９日、１１月２日、１２月５日、翌年等）。したがって、アクト５４０における稼働時間チェックは正確な結果を出さないことがある。
【００４５】
この問題に対処するため、「伸張」稼働時間のチェックをＴＵＰに盛り込むことができる（アクト５５５および５６０）。「伸張」稼働時間とは、旧測定稼働時間の算出精度に基づいて測定稼働時間を調整したものである。メモリ装置２００が３日の稼働時間を測定し、稼働時間を最後に測定したときの値が実時間の５０％であったことを知っているなら、メモリ装置２００は、３日の測定稼働時間を係数２（測定稼働時間が実時間の５０％であったため）により調整（もしくは「伸張」）し、６日を算出し得る。稼働時間の「伸張」については、本願とともに出願され、本願明細書において参照により援用されている「Method for Improving Accuracy of a Time Estimate from a Memory Device」という米国特許出願第１１／８１１，２８４号（特許文献１）と「Memory Device with Circuitry for Improving Accuracy of a Time Estimate」という米国特許出願第１１／８１１，３４７号（特許文献２）とに詳細が記載されている。
【００４６】
「伸張」稼働時間を使用する代わりに「伸張」非稼働時間を使用することもできる。非稼働時間は、メモリ装置２００がタイムスタンプ間に稼働していなかった時間を指す。メモリ装置２００がどれくらい長く稼働していなかったかを測定する手だてはないため、非稼働時間は計算値である。具体的には、非稼働時間＝タイムスタンプ間の実時間−稼働時間である。「伸張」非稼働時間は、旧測定稼働時間（または測定稼働時間に基づく非稼働時間）の算出精度に基づいて調整された非稼働時間計算である。以下、考慮できる非稼働時間の変形例の例を示す。ここでの「ＤｏｗｎＴｉｍｅ」は「伸張」非稼働時間（既知のタイムスタンプ間非稼働時間の平均等）を指す。
【００４７】
合計非稼働時間推定（ｔｅＤｏｗｎＴｉｍｅ）：ｔｅＤｏｗｎＴｉｍｅ＝（タイムスタンプi −タイムスタンプi-1 −ＡｃｔｉｖｅＴｉｍｅi ）、ここでインデックスｉは第２のタイムスタンプから最終タイムスタンプまで進み、メモリ装置２００で設定される。
最終タイムスタンプ以降の現在の非稼働時間（ｃＤｏｗｎｔｉｍｅ）：これは、最終タイムスタンプ更新以降の電源サイクル数（ＰＣ）を基準として計算できるほか（ｃＤｏｗｎｔｉｍｅ＝最終タイムスタンプ以降のＰＣ＊（ｔｅＤｏｗｎＴｉｍｅ／ＰＣ））、最終タイムスタンプ更新以降の稼働時間を基準として計算できる（ｃＤｏｗｎｔｉｍｅ＝最終タイムスタンプ以降のＡｃｔｉｖｅＴｉｍｅ＊（ｔｅＤｏｗｎＴｉｍｅ／ＡｃｔｉｖｅＴｉｍｅ））。
ＤｏｗｎＴｉｍｅパラメータを使用しないように設定するには、ＤｏｗｎＴｉｍｅ値を０に設定する。
ＤｏｗｎＴｉｍｅパラメータを使用するように設定するには、ＤｏｗｎＴｉｍｅを１に設定する。メモリ装置２００はＤｏｗｎＴｉｍｅプロパティをもとにタイムスタンプ更新が必要かどうかを評価する。ＳｅｒｖｉｃｅＴｉｍｅ（証明書の有効性、ＣＲＬの有効性等）−時間推定＜ＤｏｗｎＴｉｍｅなら、タイムスタンプ更新は必要である。
【００４８】
図７に戻ると、「伸張」稼働時間のチェックが不合格に終わるなら（アクト５６０）、ＴＵＰチェックは不合格に終わり（アクト５６５）、メモリ装置２００はホスト装置３００へメッセージを送信する。そして、前述した手順により新規タイムスタンプを取得する。「伸張」稼働時間のチェックに合格するなら（あるいはＴＵＰチェックのためにメモリ装置２００が初期化されていないなら）、メモリ装置２００は「ＴＵＰ合格」メッセージ５１０，５７０をホスト装置３００へ返す（図４参照）。そして、ホスト装置３００はエンティティの証明書とＣＲＬをメモリ装置２００へ送信し、メモリ装置はエンティティの認証を試みる（アクト５８５）。具体的には、メモリ装置２００は最後の受信タイムスタンプと測定稼働時間とに基づき時間推定を生成し、証明書を検査し（アクト５８５）、ＣＲＬを検査する（アクト５９０）。証明書とＣＲＬの有効期限が生成された時間推定より後なら、メモリ装置２００はホスト装置３００へＯＫメッセージを返し、さらに認証方法にほかのステップがあるなら、それらステップを実行できる。エンティティが認証される場合には、オブジェクトに対する権利がＡＣＲ２０１からエンティティに授与される（この場合、プレイヤ３０１とＤＲＭモジュール２０７との間でセキュアチャネルが確立する）。証明書および／またはＣＲＬが期限切れになっている場合には、認証試行に失敗したことを伝えるメッセージがメモリ装置２００からホスト装置３００へ送信される。これを受けてホスト装置３００は、前述したタイムスタンプ更新を開始できる。
【００４９】
前述したように、認証試行に用いる時間推定は、最終タイムスタンプに測定稼働時間を加算することによって生成される。測定稼働時間は正確でないかもしれないため、時間推定の精度を向上させるため、前述した「時間伸張」手法を用いることができる。しかし、「伸張」稼働時間は、実際には実時間を上回ることがある。ＴＵＰをチェックする場合にそのような稼働時間の「過大伸張」があると、新規タイムスタンプを取得することになる。しかし、証明書やＣＲＬを検査する場合に稼働時間の「過大伸張」があると、正当なエンティティが認証されなくなるおそれがある。したがって、認証のために時間推定を生成する場合には、「時間伸張」を使用しないほうが望ましいこともある。
【００５０】
要約すると、メモリ装置２００は前述した方法によりエンティティ認証要求を受信し、エンティティの認証を試みる前に、新規タイムスタンプが必要か否かを判断する。新規タイムスタンプが必要なら、メモリ装置２００は新規タイムスタンプを取得し、その新規タイムスタンプに基づき時間推定を生成し、その時間推定を証明書および／またはＣＲＬの有効期間に比較することにより、エンティティの認証を試みる。新規タイムスタンプが必要でなければ、メモリ装置は最終タイムスタンプに基づき時間推定を生成し、その時間推定を証明書および／またはＣＲＬの有効期間に比較することにより、エンティティの認証を試みる。
【００５１】
この実施形態ではエンティティの認証に先立ちＴＵＰをチェックし、必要であれば新規タイムスタンプを取得することに留意するべきである。換言すると、ＴＵＰのチェックや新規タイムスタンプの取得に先立ち、エンティティを認証する必要はない。これは、１つのサーバを使ってタイムスタンプとＤＲＭライセンスの両方を提供するシステムと対照的である。この場合、メモリ装置にタイムスタンプ（またはその他情報）を提供する前に、メモリ装置に対してサーバを認証する必要がある。これは「キャッチ２２」と呼ばれる状況を招く。つまり、サーバの認証に新しい時間が必要でも、新しいタイムスタンプはサーバが認証された後でないと入手できない。そのような状況を回避するため、一部の先行システムでは認証プロセスに時間を使用しない。前述した「キャッチ２２」状況は回避されても、時間を無視すると認証されるべきでないエンティティ（証明書および／またはＣＲＬが期限切れになったエンティティ等）が認証されることがある。
【００５２】
メモリ装置２００に対して認証を試みるエンティティからタイムサーバ１００を分離することにより、プレイヤ３０１とメモリ装置のタイムモジュール２０４との間に「フリーチャネル」ができあがり、プレイヤ３０１はタイムサーバ１００からのタイムスタンプ更新を引き渡せるようになる（図３参照）。このタイムスタンプから時間推定を生成し、認証にあたっては、その時間推定に照らしてエンティティの信用証明を検証できる。「フリーチャネル」は、最初のエンティティ認証を省いて確立される通信ルートを指す。対照的に、「セキュアチャネル」はエンティティが認証された後でないと確立されない通信ルートを指す。
【００５３】
プレイヤ３０１を認証せずとも、プレイヤ３０１を管路として使用し、タイムサーバ１００からメモリ装置２００へタイムスタンプを供給することはできるが、タイムスタンプが信頼された供給元からのものであることを保証するため、タイムサーバ１００は認証したほうがよい。これを示す図４および図６のアクト４３５では、タイムサーバ１００のタイムスタンプを受け付ける前にタイムサーバ１００の証明書とＣＲＬを検査している。しかし、前述した「キャッチ２２」状況を回避するには、メモリ装置２００でタイムサーバ１００の証明書およびＣＲＬの有効期間が過ぎていないと仮定したほうが好ましく、その場合には時間推定による有効期間の検査は行われない。
【００５４】
メモリ装置２００に対して認証されたエンティティは、ＡＣＲの権限管理記録（ＰＣＲ）に記載された種々のアクションを実行できる。例えば、図３を再び参照すると、プレイヤ３０１はセキュアチャネルを通じてＤＲＭモジュール２０７と通信し、メモリ装置２００にある被保護コンテンツ２０５に対してアクセスを試みることができる。（もうひとつの例として、ストレージアプリケーション３０２のＡＣＲは、このアプリケーション３０２がメモリ装置２００に被保護コンテンツ２０５を蓄積することを許可する。）プレイヤ３０１が認証済みでもコンテンツは保護されているから、ＤＲＭモジュール２０７は、被保護コンテンツ２０５のロックを解除する前に、ＤＲＭライセンス２０６の検証を試みる（例えば、ライセンスが引き続き有効であるか、それとも期限切れかを判断する）。ＤＲＭモジュール２０７はこれを果たすため、メモリ装置２００のタイムモジュール２０４に時間推定を要求する。（タイムモジュール２０４は、時間推定の生成に用いる様々な要素（タイムスタンプ、稼働時間、電源サイクル数、「伸張」係数等）を蓄積し生成する前述したソフトウェアおよび／またはハードウェアを指す。）ＤＲＭモジュール２０７は生成された時間推定をライセンス２０６の中にある失効日および／または有効期間に比較し、ライセンスが有効か否かを判断する。ＤＲＭモジュール２０７はライセンスの検証にあたって別のチェックを実行することもでき、例えば、被保護コンテンツ２０５の再生回数が所定の回数を超過しているか否かを判断するチェックを含むが、これに限定されない。
【００５５】
前述したように、タイムスタンプが新しいほど時間推定が正確になる見込みは高くなる。前述した実施形態では、ＡＣＲのＴＵＰによってタイムスタンプ更新が必要か否かが決まる。したがって、ＤＲＭライセンス検証のために生成される時間推定がどの程度正確なものになるかは、事実上ＴＵＰによって決まる。ＴＵＰパラメータの決定にあたっては、期限切れを検討しながらサービスを提供するサービスプロバイダのニーズと、新しいタイムスタンプを取得するために面倒でもホスト装置をネットワークへ接続しなければならないエンドユーザのニーズとで、バランスをとる必要がある。時間公差が極端に緩いと、サービスプロバイダの収益が損なわれるおそれがある。その一方で、時間公差が極端に厳しいと、タイムスタンプを取得するための頻繁なネットワーク接続が負担となって、エンドユーザはサービスを断念するおそれがある。
【００５６】
メモリ装置２００にあるＡＣＲがただ１つで、ＴＵＰがただ１つの場合には（あるいは複数のＡＣＲで同じＴＵＰを共有する場合には）、全てのサービスプロバイダに１つの「共通」ＴＵＰを使って適度のバランスをとることはできないかもしれない。そこで、この実施形態のメモリ装置２００は、ＴＵＰがそれぞれ異なる（ＴＵＰ１，ＴＵＰ２）複数のＡＣＲ２０１，２０２を有し、ＴＵＰは該当するサービスプロバイダが設定できるようになっている。前述したように、個別のＡＣＲを設けることにより、認証にあたって異なる認証方式（対称認証、非対称認証等）を使用するようにメモリ装置２００を設定することができる。個別のＡＣＲを設けることにより、時間公差の設定も可能になる。ＡＣＲのＴＵＰが設定可能なら、サービスプロバイダは独自の時間公差を設定できる。つまり、時間を伝えるメモリ装置のパラメータ（稼働時間、電源サイクル数、「伸張」稼働時間／非稼働時間等）を古いと判断し、タイムスタンプ更新をトリガーする時期を指定できる。ＴＵＰが設定可能なら、サービスプロバイダは１つの「共通」ＴＵＰに頼る代わりに、自身のニーズとエンドユーザとの関係に基づいて時間公差を設定できる。
【００５７】
例えば、サービスプロバイダによっては証明書を発行する時間が非常に短い（１０分間等）。エンドユーザがメモリ装置２００でサービスの利用を望むたびに新しい証明書の取得をエンドユーザに強制することにより、サービスプロバイダはエンドユーザの挙動を綿密に監視し、エンドユーザが証明書を要求するたびに料金を査定できる。このビジネスモデルの場合には、サービスプロバイダには金銭還元のための厳重な公差が必要になる。もうひとつの例として、エンドユーザのインストールベースが極めて流動的な場合に、サービスプロバイダは、そのビジネスモデルの主要部分として、証明書を頻繁に取り消す必要があるかもしれない。この場合も、サービスプロバイダは認証にあたって最新ＣＲＬの使用を徹底するため、厳重な時間公差を望む。その一方で、サービスプロバイダが月単位の定期契約サービスを提供し、ユーザが新しいコンテンツを手に入れるために規則的にサービスプロバイダのウェブサイトに接続し、強制タイムスタンプ更新を受けるなら、エンドユーザは新たなコンテンツを手に入れるためにネットワークへ接続することが見込まれるから、さほど厳重な時間公差でなくてもよい。
【００５８】
ＡＣＲで設定可能なＴＵＰを使用する代わりに、あるいはＡＣＲで設定可能なＴＵＰを使用することに加えて、各コンテンツのＤＲＭライセンスに設定可能なＴＵＰを配置することができる。この場合、認証済みエンティティが全てのコンテンツを同様に扱うのではなく、一部のコンテンツについては既存タイムスタンプを使用し、他のコンテンツについては新規タイムスタンプの取得をエンティティに強制することができる。（認証のときのみチェックがなされるＡＣＲのＴＵＰと違って、ライセンスに配置されたＴＵＰは、ＤＲＭモジュール２０７がライセンスの検証を試みるたびにチェックされる。）
【００５９】
例えば、ユーザが自身のメモリ装置に２時間の映画をダウンロードする状況について考えてみる。ユーザのメモリ装置には、その映画が２４時間限定で視聴できることを伝えるライセンスも併せてダウンロードされる。サービスプロバイダは、ユーザが２４時間を過ぎて映画を視聴することを望んでいないが、通常のユーザに新しいタイムスタンプを取得させるためにネットワークに接続する面倒をかけることも望んでいない。そこで、サービスプロバイダは、稼働時間が４時間（２時間の映画を観るのにかかる稼働時間×２）を上回る場合には新規タイムスタンプを要求するＴＵＰをライセンスに配置することに決める。ＤＲＭモジュール２０７がライセンスの検証を試みるときに稼働時間が４時間を上回っているなら、ユーザは映画を観られなくなる（映画を観られなくなるのは新規タイムスタンプが必要だからであって、ライセンスの期限切れとは限らない）。（稼働時間の代わりに、あるいは稼働時間に加えて、電源サイクル数をＴＵＰに使用することもできる。例えば、平均的な使用パターンに基づき、１０回以上の電源サイクルからメモリ装置の使用時間が２４時間を超えていると判断できる。）新規タイムスタンプから生成された時間推定によってライセンスが有効であることが判明する場合には、ＤＲＭモジュール２０７は映画の再生を再び許可する。
【００６０】
ＴＵＰをライセンス単位で設定できるなら、コンテンツに合わせてＴＵＰを調整できる。つまり、２４時間後に期限切れになる映画ではなく、１週間後に期限切れになる映画なら、ライセンスの時間公差設定を変えることができる。例えば、サービスプロバイダは、メモリ装置が平均して１日当たり１０時間使われると推定し、７０時間（１日当たり１０時間×７日）の稼働時間を過ぎると時間更新をトリガーするようにライセンスのＴＵＰを設定できる。もうひとつの例として、２時間の映画の代わりに、コンテンツが３分間のペイ・パー・ビュー方式のビデオで、視聴が１回限りなら、３分の稼働時間の後に新規タイムスタンプを要求するようにＴＵＰを設計できる。
【００６１】
ＴＵＰの設計にあたって、サービスプロバイダのビジネスモデルも考慮に入れることができる。例えば、現在、保護された音楽の権利配布にあたって、月単位の定期契約サービスが一般的なビジネスモデルになっている。音楽の定期契約サービスでは、ユーザがサービスプロバイダのウェブサイトから好きなだけ音楽をダウンロードし、１ヶ月間は好きなだけその音楽を再生できる。その月が過ぎると、ユーザはライセンスを更新するために自身の定期契約を更新する必要がある。そうしなければ、ライセンスは失効し、ユーザは自身のメモリ装置に蓄積された音楽を再生できなくなる。別の音楽をダウンロードするためにサービスプロバイダのウェブサイトを頻繁に訪れるユーザは、ウェブサイトに接続するたびに新規タイムスタンプを受け取るから、そのユーザのメモリ装置から提供される時間推定の精度は上がる。しかし、比較的大量の音楽をダウンロードするユーザは、月単位のライセンスが期限切れになる前にサービスプロバイダのウェブサイトに再び接続するとは限らない。最終的にそのユーザが別の音楽をダウンロードするために再び接続したら、サービスプロバイダはライセンス期間外に音楽を再生した時間に対する料金をユーザに請求できる。このようなビジネスモデルのため、月極め定期契約のサービスプロバイダが求める時間公差は、ペイ・パー・ユース型コンテンツのサービスプロバイダのものから大いに異なるものとなる。ペイ・パー・ユース型コンテンツのユーザは、コンテンツを受け取ったウェブサイトに戻らない可能性がある。月極め定期契約サービスのユーザは、別の音楽をダウンロードするためにウェブサイトに戻る見込みがペイ・パー・ユース型サービスより高いため、月極め定期契約のサービスプロバイダにとって厳重な時間公差は望ましくないかもしれない。これは時間公差を厳しくすると、厳しくしなくてもいずれは戻ってくる顧客に新規タイムスタンプの取得を要求し、顧客の気分を害することになるからである。時間公差を緩めると、サービスプロバイダのウェブサイトに戻らない顧客が１ヶ月のライセンス期間より長く音楽を再生（例えば、１ヶ月の実時間ではなく１ヶ月の稼働時間にわたって再生）できることになる。しかし、サービスプロバイダは諸般の事情を考え合わせ、戻ってくる顧客に不便な思いをさせ気分を害する事態を避けるために払う犠牲として、そのような不正使用を認めるかもしれない。
【００６２】
もうひとつの例として、ユーザが自身の携帯電話機を使ってメモリ装置から音声や映像を再生しているときに、サービスプロバイダが携帯電話機に向けてポイント広告を提供するビジネスモデルについて考えてみる。そのポイント広告がコンテンツの再生時に携帯電話機の近くにある店舗に関するものなら、コンテンツが再生されているときにはホスト装置がネットワークへ接続されていなければならない。接続されていなければ、所在地ごとに異なるポイント広告を送りとどけることはできない。これを徹底するには、ユーザが確実にネットワークへ接続し新規タイムスタンプを取得するようにコンテンツのＴＵＰを非常に低い量（１分の稼働時間等）に設定することができる。ユーザがネットワークへ接続したら、ネットワークは携帯電話機の所在地を把握し、適切な広告コンテンツを携帯電話機に送りつけることができる。その一方で、サービスプロバイダが収益をあげるにあたってコンテンツの再生回数さえ分かればよいなら、時間公差をかなり緩くできる。
【００６３】
前述した例から分かるように、ライセンスファイルに設定可能ＴＵＰを使用することにより、コンテンツのサービスプロバイダは、タイムスタンプ更新のためにネットワークへのホスト装置接続を顧客に強いて顧客の気分を害することがないように、適当な時間更新を設定しバランスをとることができる。この実施形態のメモリ装置は多数のＴＵＰを備える多目的・多用途メモリ装置であるため、メモリ装置で一定の時間が過ぎてある１つのサービスが締め切られても、他のサービスは有効であり続ける。つまり、ＴＵＰはコンテンツのライセンスごとに異なるため、たとえプレイヤが認証済みであっても、場合によってはメモリ装置で再生できるコンテンツと、新規タイムスタンプを取得しない限り再生できないコンテンツがある。
【００６４】
前に説明したように、これら実施形態のメモリ装置は２つの構成要素を含む。つまり、中央セキュリティシステムと、中央セキュリティシステムから独立した１つ以上のアプリケーションとからなる。（アプリケーションは中央セキュリティシステムから独立しているため、ここではアプリケーションのことを「エクステンション」または「内部エクステンション」と呼ぶことがある。）図３に見られる実施形態で、アプリケーションはＤＲＭモジュール２０７の形態をとっている。しかし、ｅコマース機能、バンキング機能、クレジットカード機能、電子マネー機能、生体計測機能、アクセス制御機能、個人データ機能、ｅメール保安機能を提供するアプリケーション等、これとは別のアプリケーションを使用することもできる。また、図３のメモリ装置２００にはただ１つのアプリケーションが示されているが、数通りのアプリケーションをメモリ装置に用意することもできる（ＤＲＭモジュールとｅコマースモジュール等）。
【００６５】
中央セキュリティシステムはＡＣＲを使用し、メモリ装置内のアプリケーション（ＤＲＭエージェント等）を通じてメモリ装置に蓄積された被保護データに対してアクセスを試みるエンティティを認証する。メモリ装置に対してエンティティが認証されると、エンティティと、エンティティの認証に使ったＡＣＲによって指定されるアプリケーションとの間で、セキュアセッションが始まる。そこで、エンティティは、被保護データにアクセスするためのコマンド／要求をアプリケーションに送信できる。このように、中央セキュリティシステムはメモリ装置にとって門番の役割を果たす。前に参照した米国特許出願第１１／５５７，０２８号（特許文献１０）で詳述されているように、中央セキュリティシステムはメモリ装置２００で実行する種々のアプリケーションを分離することもでき、その場合には、ある１つのアプリケーションは他のアプリケーションのデータにアクセスできない。
【００６６】
中央セキュリティシステムはアクセス管理機構を提供し、メモリ装置に蓄積されたデータに対するアクセスを認可されたエンティティに限定する形でデータを保護するが、中央セキュリティシステム自体は、保護の対象となるデータを認識し処理しない場合がある。被保護データを認識し処理するのは、メモリ装置で実行するアプリケーションである。例えば、被保護データがＤＲＭライセンスなら、中央セキュリティシステムではなくＤＲＭエージェントがＤＲＭライセンスを検証する。したがって、中央セキュリティシステムは、アプリケーションから独立した設定可能なツールボックスとみなすことができる。具体的には、サービスプロバイダがメモリ装置にアプリケーションを設置し、ＡＣＲを設定することにより、アプリケーションに特定のエンティティが対応付けられる。中央セキュリティシステムから見た場合には、中央セキュリティシステムはそのアプリケーションがどのような働きをするのか（例えば、アプリケーションがＤＲＭライセンス検証を果たすのか、ｅコマース機能を果たすのか）を知らないが、ＡＣＲに対して認証されたエンティティだけが、ＡＣＲで指定されたアプリケーションと通信できることは知っている。中央セキュリティシステムによってエンティティが認証されたら、中央セキュリティシステムはエンティティとアプリケーションとの間にセキュアチャネルを開放する。
【００６７】
場合によっては中央セキュリティシステムとアプリケーションの両方で時間を知る必要がある。例えば、中央セキュリティシステムは時間ベースの認証（非対称認証等）にあたって時間を知る必要があり、アプリケーションは時間ベースの操作（ＤＲＭライセンス検証等）にあたって時間を知る必要がある。前述したように、メモリ装置の中央タイムモジュールは、中央セキュリティシステムとメモリ装置で実行するアプリケーションの両方に時間を提供できる。例えば、図３を参照すると、タイムモジュール２０４は種々エンティティの認証のために非対称ＡＣＲ２０１，２０２に時間を提供するほか、ライセンスの有効性検査のためにＤＲＭモジュール２０７に時間を提供する。図８との関係で後述するように、メモリ装置のアプリケーションは、場合によってはタイムモジュールの時間に加えて、あるいはタイムモジュールの時間の代わりに、ホスト時間の使用を選ぶことができる。
【００６８】
図８は、ホスト装置７００と通信するメモリ装置６００を示す。ホスト装置７００はエンティティ（ここでは、プレイヤ７１０）を備え、時間７２０を提供する何らかのメカニズム（バッテリ方式のクロック等）を有する。この例のメモリ装置６００は対称ＡＣＲ６１０（非対称ＡＣＲでもよい）と、タイムモジュール６２０と、ＤＲＭモジュール６３０と、被保護コンテンツ６４０と、被保護コンテンツ６４０のライセンス６５０とを有する。（図８におけるメモリ装置のアプリケーションはＤＲＭモジュール６３０である。これとはタイプの異なるアプリケーションも使用でき、メモリ装置で２つ以上のアプリケーションを実行できることに留意するべきである。）対称ＡＣＲ６１０を使用しメモリ装置６００に対してプレイヤ７１０が認証されると、対称ＡＣＲ６１０に設定されたパラメータに従いプレイヤ７１０とＤＲＭモジュール６３０との間にセキュアチャネル６６０が確立する。ＤＲＭモジュール６３０とプレイヤ７１０は互いを知らないが、サービスプロバイダによって設定された対称ＡＣＲ６１０によりＤＲＭモジュール６３０はプレイヤ７１０に対応付けられている。したがって、同一グループの相手方にあたるＤＲＭモジュール６３０とプレイヤ７１０との間にはある程度の信頼関係がある。この信頼関係に基づき、時間の供給元としてプレイヤ７１０からホスト時間７２０を受け付けＤＲＭライセンス検証を実行するようにＤＲＭモジュール６３０をプログラムできる。ＤＲＭライセンスの検証を実行するＤＲＭモジュール６３０には、時間を供給するタイムソースが２つある。つまり、ホスト時間７２０と、メモリ装置の中央タイムモジュール６２０からの時間を利用できる。これらタイムソースにはそれぞれ利点と欠点とがある。メモリ装置のタイムモジュール６２０は連続的に時間を追跡しないため、タイムモジュール６２０の時間はホスト時間７２０ほど正確ではない。ホスト時間７２０は多くの場合、バッテリ方式の連続クロックによって提供される。その一方で、前述したセキュリティ対策のためには、タイムモジュール６２０の時間のほうがホスト時間７２０より安全であり、ホスト装置７００のユーザが単純なユーザインターフェイスを使ってホスト時間７２０を変更できる場合には特に、タイムモジュール６２０の時間のほうが安全である。
【００６９】
メモリ装置６００で実行するアプリケーション（ＤＲＭモジュール６３０等）は、時間ベースの操作に用いる時間推定の生成に適した形で２通りのタイムソースを使用するようにプログラムできる。（しかし、好ましくは、アプリケーションはホスト時間７２０を使ってタイムモジュール６２０を更新できない。）例えば、アプリケーションは、タイムモジュール６２０の時間の代わりに常にホスト時間７２０を使用するようにプログラムできるほか、ホスト時間７２０の代わりに常にタイムモジュール６２０の時間を使用するようにプログラムできる。もうひとつの例として、ホスト時間７２０とタイムモジュール６２０の時間のうちの遅い（または早い）ほうを使用するようにアプリケーションをプログラムできる。両方のタイムソースを何らかの形で使用し（例えば、ホスト時間７２０とタイムモジュール６２０の時間の平均をとり）、時間推定を生成するようにアプリケーションをプログラムすることもできる。もうひとつの例として、アプリケーションはホスト装置７００に関する情報に基づいて使用するタイムソースを決めることができる。アプリケーションは認証プロセスを通じてホスト装置のタイプを知ることができる（例えば、非対称認証を使用するなら、ホスト装置７００の個別の識別子とグループ識別子を認証アルゴリズムからアプリケーションに知らせることができる）。ホスト装置には安全なものとそうでないものとがあるため、この情報は重要であり得る。例えば、ホスト装置がＰＣなら、ソフトウェアアプリケーションの単純なユーザインターフェイスを使ってＰＣのクロックを容易に操作できる。（信用度が比較的低いホスト装置からのホスト時間を信用しないほか、アプリケーションは、コンテンツキー、ライセンス値または期間、ライセンス変更権利を有するホスト装置で実行するエンティティを信用できないこともある。この場合、ＤＲＭエージェントは（暗号鍵とコンテンツをホスト装置に与える代わりに）メモリ装置からホスト装置に向けてコンテンツを流すだけでよい。）しかし、ホストが閉鎖されたシステムなら、例えばＭＰ３プレイヤなら、ホストのクロックを操作することは格段に困難になる場合がある。したがって、ホスト装置６００で実行するアプリケーションにとって、ホスト装置７００がＰＣである場合よりホスト装置７００がＭＰ３プレイヤである場合のほうが、ホスト時間７２０を信用できる。
【００７０】
プレイヤ７１０は、一実施形態において、歌を再生するための要求をＤＲＭモジュール６３０に送るときに、ＤＲＭモジュール６３０にホスト時間７２０を勧める。ＤＲＭモジュール６３０は、前述したように、ホスト時間７２０を使うか、それともタイムモジュール６２０の時間を使うかを決定する。ホスト時間７２０は、比較的短時間のログインセッションだけに使用したほうが好ましく、絶対的な現在時間としてその後のセッションで使用するべきではない。あるいは、ホスト時間７２０をアプリケーションで先々使用できるように蓄積し、その時間の精度を向上させるため、前述した「時間伸張」やその他のメカニズムを用いることもできる（オプション）。しかし、ホスト時間はアプリケーションの特定の時間ベース操作に限って使用したほうが好ましく、これを使ってタイムモジュール６２０の時間を更新するべきではない（アプリケーションは「エクステンション」であって、中央セキュリティシステムと同じ信用陣営を形成するものではないから）。前述したように、タイムモジュール６２０の時間は必ず、信頼されたタイムサーバ（中央セキュリティシステムと同じ信用陣営を形成するタイムサーバ）を使って更新したほうが好ましい。また、メモリ装置６００で複数のアプリケーションを実行する場合には、それぞれのアプリケーションに２つのタイムソースがある。つまり、タイムモジュール６２０の時間と、アプリケーションと通信するエンティティのホスト装置からの時間とを利用できる。しかし、ある１つのアプリケーションで使用するホスト時間はそのアプリケーションだけに使用したほうがよく、異なるホスト装置と関わっている別のアプリケーションには使用するべきではない。
【００７１】
前述したように、メモリ装置６００で実行するアプリケーション（ＤＲＭモジュール６３０等）は、タイムモジュール６２０からの時間にホスト時間７２０を比較し、２つの時間のうちの遅い（または早い）ほうを使用するようにプログラムできる。例えば、ホスト７００が十分に長い時間にわたってタイムサーバに接続しないために時間にずれが生じることにより、あるいはホストのクロックがハッキングされることにより、ホスト時間７２０はタイムモジュール６２０の時間より前になることがある。前述したように、ホスト時間７２０をアプリケーションで先々使用できるように蓄積することもできる。これらアイデアを組み合わせ、ホスト時間７２０を蓄積し、後ほど別のホスト装置から受信した時間との比較に使用（単独で使用、またはタイムモジュール６２０の時間と併せて使用）することができる。この比較をもとに、メモリ装置は時間ベース操作の実行にあたって目下のホスト装置の時間を使用するか、それとも蓄積されている以前のホスト装置の時間を使用するかを決定できる。例えば、メモリ装置は、時間ベース操作が「〜以前は不可」操作なら２つの時間のうちの早いほうをとり、時間ベース操作が「〜以降は不可」操作なら２つの時間のうちの遅いほうをとるようにプログラムできる。こうすれば、単一タイムサーバを基準とする単一マルチホストアンチロールバックメカニズムの参照値として、信頼された他のホストデバイスから受信したタイムスタンプを使用できる。
【００７２】
同じく前述したように、ホスト装置の認証にあたって、非時間ベースの認証システム（対称認証等）を使用できる。この場合、アプリケーションの時間ベース操作（ＤＲＭ操作等）を認証タイムサーバから切り離すことができる。つまり、ホスト装置かＤＲＭサーバの時間だけが使われるなら、アプリケーションの時間ベース操作は、認証タイムサーバの時間やメモリ装置のタイムモジュールの時間に左右されない。したがって、何らかの事情により認証タイムサーバに問題があったり、時間ベースのアプリケーションが認証タイムサーバに基づく時間を使用しないことを選んだりする場合でも、時間ベースのアプリケーションは引き続きホスト時間を使って操作を実行できる。
【００７３】
前述した実施形態はいずれも単独で使用できるほか、組み合わせて使用できることに留意するべきである。参照により援用されている特許出願には、これら実施形態と併せて使用できる他の実施形態が記載されている。さらに、現時点ではサンディスク  コーポレイションのメモリ装置ＴｒｕｓｔｅｄＦｌａｓｈ（登録商標）でこれら実施形態を実装するのが好ましいが、どんなタイプのメモリ装置であってもこれら実施形態を役立てることができることを理解するべきである。また、メモリ装置以外の分野で時間を知るもしくは使用する必要があり、クロックが正確でないという一般的な問題に直面する場合にも、これら実施形態を役立てることができる。加えて、前述したアクトは、全面的にメモリ装置で実行する代わりに、その一部または全部をホスト装置（または他の何らかの装置）で実行することもできる。
【００７４】
以上の詳細な説明は、本発明を規定するものではなく、本発明がとり得る特定の形態を例示するものとして理解されることを意図する。本発明の範囲は専ら、添付の特許請求の範囲とこれと同等のものとによって規定される。特許請求の範囲に記載されたアクトは、記載された順序に限らず、いかなる順序でも実行できることに留意するべきである。最後に、本願明細書で説明した好適な実施形態の態様のどれも単独で使用できるほか、互いに組み合わせて使用できることにも留意するべきである。
【図１】
2010532024.tif 000003
【図２】
2010532024.tif 000004
【図３】
2010532024.tif 000005
【図４】
2010532024.tif 000006
【図５】
2010532024.tif 000007
【図６】
2010532024.tif 000008
【図７】
2010532024.tif 000009
【図８】
2010532024.tif 000010
【国際調査報告】
2010532024.tif 000011
2010532024.tif 000012
2010532024.tif 000013