JP2010532024A - Memory device using time from trusted host device and method for use in the device - Google Patents

Memory device using time from trusted host device and method for use in the device Download PDF

Info

Publication number
JP2010532024A
JP2010532024A JP2010511336A JP2010511336A JP2010532024A JP 2010532024 A JP2010532024 A JP 2010532024A JP 2010511336 A JP2010511336 A JP 2010511336A JP 2010511336 A JP2010511336 A JP 2010511336A JP 2010532024 A JP2010532024 A JP 2010532024A
Authority
JP
Japan
Prior art keywords
time
memory device
host device
host
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010511336A
Other languages
Japanese (ja)
Inventor
エム. コンレー,ケビン
ホルツマン,マイケル
セラ,ロッテム
バージライ,ロン
イー. ジョガンド−クーロン,ファブリス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Corp
Original Assignee
SanDisk Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/811,345 external-priority patent/US20080307507A1/en
Priority claimed from US11/811,346 external-priority patent/US8869288B2/en
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of JP2010532024A publication Critical patent/JP2010532024A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing
    • G06F21/1076Revocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • G06F21/725Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits operating on a secure reference time value

Abstract

信頼されたホスト装置から時間を使用するメモリ装置とその装置で使用する方法とを開示する。一実施形態において、メモリ装置上のアプリケーションが、ホスト装置上で実行しメモリ装置によって認証されるエンティティから、時間本位操作の実行要求を受信する。アプリケーションは、時間本位操作の実行にあたって、メモリ装置上のタイムモジュールからの時間の代わりにホスト装置からの時間を選択し、かつ時間本位操作の実行にあたってホスト装置からの時間を使用する。他の実施形態も開示するが、それらの実施形態はそれぞれ単独で使用できるほか、組み合わせても使用できる。  A memory device that uses time from a trusted host device and a method for use in the device are disclosed. In one embodiment, an application on the memory device receives a request to perform a time-oriented operation from an entity that executes on the host device and is authenticated by the memory device. The application selects the time from the host device instead of the time from the time module on the memory device when executing the time-oriented operation, and uses the time from the host device when executing the time-oriented operation. Other embodiments are also disclosed, but each of these embodiments can be used alone or in combination.

Description

本願は、信頼されたホスト装置から時間を使用するメモリ装置とその装置で使用する方法とに関する。   The present application relates to a memory device that uses time from a trusted host device and a method for use in the device.

関連出願の相互参照
本願は、本願とともに出願され、本願明細書において参照により援用されている「Method for Improving Accuracy of a Time Estimate from a Memory Device 」という米国特許出願第11/811,284号(特許文献1)、「Memory Device with Circuitry for Improving Accuracy of a Time Estimate」という米国特許出願第11/811,347号(特許文献2)、「Method for Improving Accuracy of a Time Estimate Used to Authenticate an Entity to a Memory Device」という米国特許出願第11/811,289号(特許文献3)、「Memory Device with Circuitry for Improving Accuracy of a Time Estimate Used to Authenticate an Entity 」という米国特許出願第11/811,344号(特許文献4)、「Method for Improving Accuracy of a Time Estimate Used in Digital Rights Management (DRM) License Validation 」という米国特許出願第11/811,354号(特許文献5)、「Memory Device with Circuitry for Improving Accuracy of a Time Estimate Used in Digital Rights Management (DRM) License Validation」という米国特許出願第11/811,348号(特許文献6)、「Method for Using Time from a Trusted Host Device」という米国特許出願第11/811,346号(特許文献7)、ならびに「Memory Device Using Time from a Trust Host Device 」という米国特許出願第11/811,345号(特許文献8)に関連する。
CROSS-REFERENCE TO RELATED APPLICATIONS This application is filed with the present application, which is incorporated by reference herein, "Method for Improving Accuracy of a Time Estimate from a Memory Device " of U.S. Patent Application No. 11 / 811,284 (Patent Reference 1), US Patent Application No. 11 / 811,347 (Patent Reference 2), “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” US Patent Application No. 11 / 811,289 entitled “Memory Device” (Patent Document 3), US Patent Application No. 11 / 811,344 entitled “Memory Device with Circuitry for Improving Accuracy of a Time Estimate Used to Authenticate an Entity” Patent Document 4), US Patent Application No. 11 / “Method for Improving Accuracy of a Time Estimate Used in Digital Rights Management (DRM) License Validation” No. 811,354 (Patent Document 5), US Patent Application No. 11 / 811,348 (Patent Document 6) “Memory Device with Circuitry for Improving Accuracy of a Time Estimate Used in Digital Rights Management (DRM) License Validation”, US Patent Application No. 11 / 811,346 entitled “Method for Using Time from a Trusted Host Device” and US Patent Application No. 11 / 811,345 called “Memory Device Using Time from a Trusted Host Device” No. (Patent Document 8).

サンディスク コーポレイションのTrustedFlash(登録商標)等のメモリ装置で、デジタル著作権管理(DRM)ライセンス検証等、時間本位の操作を実行するには、時間を知る必要がある。そのような操作に関わるセキュリティ問題のため、メモリ装置は、正確な時間の提供にあたって、ホスト装置を信用できないことがある。メモリ装置は信頼されたネットワークコンポーネントから正確な時間を入手できるが、メモリ装置をホストするホスト装置は、メモリ装置で時間を知る必要があるときにネットワークに接続されていないことがある。メモリ装置の稼働時間を測定するようにメモリ装置を設計できても、そのメモリ装置が絶えず稼働時間を測定しなければ(測定開始後にメモリ装置の電源が落とされる場合等)、測定稼働時間から生成される時間推定は真の実時間の測定にはならない。測定稼働時間から生成される時間推定は、実際には稼働時間の下限を伝えるものにすぎず、そのような時間推定では、ある種の時間本位操作に求められる精度は得られない場合がある。メモリ装置が作動していないときでも絶えず時間を把握するため、メモリ装置にバッテリ方式のクロックを装備することもできるが、そのようなクロックを装備すると、メモリ装置のコストを上乗せすることになり得る。   In order to perform time-oriented operations such as digital rights management (DRM) license verification in a memory device such as SanDisk Corporation's TrustedFlash (registered trademark), it is necessary to know the time. Due to security issues associated with such operations, the memory device may not trust the host device in providing the correct time. Although the memory device can obtain accurate time from trusted network components, the host device that hosts the memory device may not be connected to the network when the memory device needs to know the time. Generated from the measured operating time if the memory device can be designed to measure the operating time of the memory device, but the memory device does not constantly measure the operating time (such as when the memory device is powered off after the measurement is started) The estimated time is not a true real time measurement. The time estimate generated from the measured operating time is actually just a lower limit of the operating time, and such time estimation may not provide the accuracy required for certain time-oriented operations. To keep track of time even when the memory device is not operating, the memory device can be equipped with a battery-powered clock, but such a clock can add to the cost of the memory device. .

米国特許出願第11/811,284号US patent application Ser. No. 11 / 811,284 米国特許出願第11/811,347号US patent application Ser. No. 11 / 811,347 米国特許出願第11/811,289号US patent application Ser. No. 11 / 811,289 米国特許出願第11/811,344号US patent application Ser. No. 11 / 811,344 米国特許出願第11/811,354号US patent application Ser. No. 11 / 811,354 米国特許出願第11/811,348号US patent application Ser. No. 11 / 811,348 米国特許出願第11/811,346号US patent application Ser. No. 11 / 811,346 米国特許出願第11/811,345号US patent application Ser. No. 11 / 811,345 米国特許出願第11/314,411号US patent application Ser. No. 11 / 314,411 米国特許出願第11/557,028号US patent application Ser. No. 11 / 557,028 米国特許出願第11/322,812号US patent application Ser. No. 11 / 322,812 米国特許出願第11/322,766号US patent application Ser. No. 11 / 322,766

本発明は特許請求の範囲によって規定され、その特許請求の範囲を制限するものとしてこのセクションの内容を解釈してはならない。
紹介のためにこれ以降説明する実施形態は、信頼されたホスト装置から時間を使用するメモリ装置とその装置で使用する方法とを提供する。一実施形態において、メモリ装置上のアプリケーションが、ホスト装置上で実行しメモリ装置によって認証されるエンティティから、時間本位操作の実行要求を受信する。アプリケーションは、時間本位操作の実行にあたって、メモリ装置上のタイムモジュールからの時間の代わりにホスト装置からの時間を選択し、かつ時間本位操作の実行にあたってホスト装置からの時間を使用する。別の実施形態では、ホスト装置上で実行するエンティティの認証要求を受信する。エンティティの認証にあたって、エンティティとメモリ装置内のアプリケーションとを対応付けるアクセス管理記録(ACR)で指定された認証方法と、メモリ装置上のタイムモジュールからの時間とを使用する。エンティティからアプリケーションに対する時間本位操作の実行要求を受信する。時間本位操作の実行にあたってはタイムモジュールからの時間の代わりにホスト装置からの時間を選択し、かつ時間本位操作の実行にあたってはホスト装置からの時間を使用する。メモリ装置は、さらに別の実施形態において、第2のホスト装置から受信した時間を第1のホスト装置からの蓄積時間に比較し、時間本位操作の実行にあたって、その比較に基づき、第2のホスト装置からの時間を使用するか、それとも第1のホスト装置からの蓄積時間を使用するかを決定する。メモリ装置は、別の実施形態において、非時間本位認証システムを用いてホスト装置を認証し、ホスト装置から時間を受信し、時間本位操作の実行にあたってはホスト装置から受信した時間を使用する。他の実施形態も開示するが、それらの実施形態はそれぞれ単独で使用できるほか、組み合わせても使用できる。
The present invention is defined by the following claims, and nothing in this section should be construed as limiting the scope of the claims.
The embodiments described below for introduction provide a memory device that uses time from a trusted host device and a method for use in that device. In one embodiment, an application on the memory device receives a request to perform a time-oriented operation from an entity that executes on the host device and is authenticated by the memory device. The application selects the time from the host device instead of the time from the time module on the memory device when executing the time-oriented operation, and uses the time from the host device when executing the time-oriented operation. In another embodiment, an authentication request for an entity executing on the host device is received. When authenticating an entity, an authentication method specified by an access management record (ACR) that associates the entity with an application in the memory device and a time from a time module on the memory device are used. A request for executing a time-oriented operation on an application is received from an entity. When executing the time-oriented operation, the time from the host device is selected instead of the time from the time module, and when executing the time-oriented operation, the time from the host device is used. In yet another embodiment, the memory device compares the time received from the second host device with the accumulation time from the first host device, and executes the time-oriented operation based on the comparison. Decide whether to use the time from the device or the accumulation time from the first host device. In another embodiment, the memory device authenticates the host device using a non-time based authentication system, receives time from the host device, and uses the time received from the host device to perform the time based operation. Other embodiments are also disclosed, but each of these embodiments can be used alone or in combination.

一実施形態のシステムの図解である。1 is an illustration of a system of one embodiment. 一実施形態のメモリ装置のブロック図である。1 is a block diagram of a memory device according to an embodiment. 図2のメモリ装置の種々の機能モジュールの図解である。3 is an illustration of various functional modules of the memory device of FIG. 一実施形態の非対称認証プロセスのプロトコル図である。FIG. 3 is a protocol diagram of an asymmetric authentication process of an embodiment. タイムスタンプを取得する一実施形態のシステム図である。FIG. 3 is a system diagram of an embodiment for obtaining a time stamp. タイムスタンプを取得する一実施形態の方法のフローチャートである。6 is a flowchart of an embodiment method for obtaining a time stamp. タイムスタンプ更新方針をチェックする一実施形態の方法のフローチャートである。6 is a flowchart of a method of an embodiment for checking a time stamp update policy. メモリ装置で実行するアプリケーションにホスト時間を使用する一実施形態のメモリ装置の図解である。FIG. 4 is an illustration of an embodiment of a memory device that uses host time for applications executing on the memory device.

図面に戻ると、図1は、これら実施形態を例示するのに用いるシステム10の図解である。図1に見られるように、システム10は、複数のホスト装置に取り外し可能に接続される複数のメモリ装置20,30,40と、パーソナルコンピュータ(PC)50と、デジタルメディア(MP3等)プレイヤ60と、携帯電話機70と、を備える。ホスト装置は、メモリ装置からデータを読み出すことができる装置、および/またはメモリ装置にデータを書き込むことができる装置である。データは、音声ファイルや映像ファイル(音声があるもの、またはないもの)等のデジタルメディアコンテンツ、画像、ゲーム、書籍、地図、データファイル、またはソフトウェアプログラムを含むが、これらに限定されない。データは、ネットワークのサーバからメモリ装置にダウンロードされたり、製造業者や第三者機関によって予めロードされたり、例えば別の装置からサイドロードされることがある。   Returning to the drawings, FIG. 1 is an illustration of a system 10 used to illustrate these embodiments. As shown in FIG. 1, the system 10 includes a plurality of memory devices 20, 30, 40 that are detachably connected to a plurality of host devices, a personal computer (PC) 50, and a digital media (MP3 etc.) player 60. And a mobile phone 70. The host device is a device that can read data from the memory device and / or a device that can write data to the memory device. Data includes, but is not limited to, digital media content such as audio files and video files (with or without audio), images, games, books, maps, data files, or software programs. Data may be downloaded from a network server to a memory device, preloaded by a manufacturer or third party, or side loaded from another device, for example.

ホスト装置は何らかの適当な形態をとることができ、図1に見られる例に限定されない。例えば、ホスト装置は、ノートブックコンピュータ、手持ち型コンピュータ、手持ち型eメール/テキストメッセージ装置、手持ち型ゲームコンソール、ビデオプレイヤ(DVDプレイヤ、ポータブルビデオプレイヤ等)、録音および/または録画装置、デジタルカメラ、セットトップボックス、表示装置(テレビ等)、プリンタ、カーステレオ、およびナビゲーションシステムの形態をとることができる。また、ホスト装置は複合機能を内蔵することができる。例えば、ホスト装置は、電話をかけたり受けたりできるほか、デジタルメディア(音楽および/または映像)ファイルを再生できる携帯電話機である。   The host device can take any suitable form and is not limited to the example seen in FIG. For example, the host device may be a notebook computer, a handheld computer, a handheld email / text message device, a handheld game console, a video player (DVD player, portable video player, etc.), a recording and / or recording device, a digital camera, It can take the form of a set-top box, a display device (such as a television), a printer, a car stereo, and a navigation system. Further, the host device can incorporate a composite function. For example, the host device is a mobile phone that can make and receive calls and can play back digital media (music and / or video) files.

PC50や携帯電話機70のようなホスト装置は、ネットワーク(インターネット80や無線ネットワーク90等であるが、タイプの異なるネットワークを使用することもできる)に接続して通信する能力を持つことができる。本願明細書において、このような能力を備えるホスト装置を「接続装置」と呼ぶ。携帯電話機70が非接続モードで作動しているときや、PC50がインターネット接続を確立していないとき等、「接続装置」が常にネットワークへ実際に接続されているとは限らないことを理解するべきである。本願明細書において、ネットワークに接続して通信する能力を持たないホスト装置(デジタルメディアプレイヤ60等)を「非接続装置」と呼ぶ。非接続装置を接続装置に接続することにより、非接続装置をネットワークと通信する状態に置くこともでき、図1に見られるように、デジタルメディアプレイヤ60はPC50に接続されている。そのような形で接続される場合でも、ネットワークから情報を引き出す機能が非接続装置になければ(単純なMP3プレイヤ等)、ネットワークから情報を引き出すことはできない。そのような状況でも、ネットワークコンポーネントは装置に情報を押し付けることができる。図1には有線接続を介してPC50へ接続されたデジタルメディアプレイヤ60が示されているが、無線接続も使用できることに留意するべきである。同様に、用語「接続」および「結合」が必ずしも有線接続や直接接続を意味するわけではない。   A host device such as the PC 50 or the mobile phone 70 can have the ability to connect to and communicate with a network (such as the Internet 80 or the wireless network 90, but other types of networks can also be used). In the present specification, a host device having such a capability is referred to as a “connection device”. It should be understood that the “connection device” is not always actually connected to the network, such as when the mobile phone 70 is operating in the disconnected mode or when the PC 50 has not established an Internet connection. It is. In the present specification, a host device (such as the digital media player 60) that does not have the ability to communicate by connecting to a network is referred to as a “non-connection device”. By connecting the unconnected device to the connected device, the unconnected device can be placed in communication with the network, and the digital media player 60 is connected to the PC 50 as seen in FIG. Even when connected in such a manner, information cannot be extracted from the network unless a function for extracting information from the network is provided in the unconnected device (such as a simple MP3 player). Even in such a situation, the network component can push information to the device. Although FIG. 1 shows a digital media player 60 connected to the PC 50 via a wired connection, it should be noted that a wireless connection can also be used. Similarly, the terms “connected” and “coupled” do not necessarily mean a wired connection or a direct connection.

接続装置(あるいは接続装置に接続された非接続装置)はネットワーク(インターネット80、無線ネットワーク90等)を通じて外部のコンポーネントにアクセスでき、この外部コンポーネントは、タイムスタンプを提供することができるタイムサーバ100や、DRM保護コンテンツとこのようなコンテンツにアクセスするためのライセンスとを提供することができるデジタル著作権管理サーバ(DRM)110を含むが、これらに限定されない。これらサーバについては以下に詳述する。図1ではタイムサーバ100とDRMサーバ110が別々の装置として示されているが、2つのサーバを1つの装置にまとめることもできる。さらに、これらサーバに別の機能を盛り込むこともできる。また、必要であればインターネット80か無線ネットワーク90を介してタイムサーバ100やDRMサーバ110以外のコンポーネントにアクセスすることもできる。   A connection device (or a non-connection device connected to the connection device) can access an external component through a network (Internet 80, wireless network 90, etc.). , Including, but not limited to, a digital rights management server (DRM) 110 that can provide DRM protected content and a license for accessing such content. These servers will be described in detail below. In FIG. 1, the time server 100 and the DRM server 110 are shown as separate devices, but two servers can be combined into one device. Furthermore, other functions can be incorporated into these servers. If necessary, components other than the time server 100 and the DRM server 110 can be accessed via the Internet 80 or the wireless network 90.

図面に戻ると、図2は一実施形態のメモリ装置200のブロック図であり、これはメモリカードやメモリスティックの形態をとることができる。図2に見られるように、メモリ装置200は不揮発性メモリアレイ(フラッシュメモリ等)210と1群の回路220とを備える。この実施形態の不揮発性メモリアレイ210はソリッドステートメモリ、具体的にはフラッシュメモリ210の形態をとっている。フラッシュメモリの代わりにタイプの異なるソリッドステートメモリを使用できることに留意するべきである。また、磁気ディスクや光学CDを含むがこれらに限定されない、ソリッドステートメモリ以外のメモリを使用できることにも留意するべきである。また、簡潔さを図るため、本願明細書で用いる用語「回路」は純粋なハードウェア実装、および/または複合ハードウェア/ソフトウェア(またはファームウェア)実装を指す。つまり「回路」は、特定用途向け集積回路(ASIC)、プログラム可能なロジックコントローラ、埋め込み型マイクロコントローラ、単一基板コンピュータなどの形態をとるほか、プロセッサと、このプロセッサにより実行可能なコンピュータ可読プログラムコード(ソフトウェア、ファームウェア等)を蓄積するコンピュータ可読媒体の形態をとることができる。   Returning to the drawing, FIG. 2 is a block diagram of a memory device 200 according to one embodiment, which may take the form of a memory card or memory stick. As shown in FIG. 2, the memory device 200 includes a non-volatile memory array (such as a flash memory) 210 and a group of circuits 220. The non-volatile memory array 210 of this embodiment takes the form of a solid state memory, specifically a flash memory 210. It should be noted that different types of solid state memory can be used instead of flash memory. It should also be noted that memories other than solid state memory can be used, including but not limited to magnetic disks and optical CDs. Also, for the sake of brevity, the term “circuit” as used herein refers to a pure hardware implementation and / or a combined hardware / software (or firmware) implementation. That is, the “circuit” may take the form of an application specific integrated circuit (ASIC), a programmable logic controller, an embedded microcontroller, a single board computer, etc., as well as a processor and computer readable program code executable by the processor. It may take the form of a computer readable medium for storing (software, firmware, etc.).

図2の1群の回路210は、複数のコンポーネント、すなわちホストインターフェイスモジュール(HIM)230と、フラッシュインターフェイスモジュール(FIM)240と、バッファ管理部(BMU)250と、CPU260と、ハードウェアタイマーブロック270とを備える。HIM230はホスト装置300のためのインターフェイス機能を提供し、FIM240はフラッシュメモリ210のためのインターフェイス機能を提供する。BMU250は、暗号化/復号化機能を提供するクリプトエンジン252と、HIM230と通信するホストダイレクトメモリアクセス(DMA)コンポーネント254と、FIM240と通信するフラッシュDMAコンポーネント256と、を備える。CPU260は、CPU RAMS260および/またはフラッシュメモリ210に蓄積されたソフトウェアとファームウェアを実行する。ハードウェアタイマーブロック270については、メモリ装置の時間測定能力との関係で以下に説明する。   The group of circuits 210 of FIG. 2 includes a plurality of components: a host interface module (HIM) 230, a flash interface module (FIM) 240, a buffer manager (BMU) 250, a CPU 260, and a hardware timer block 270. With. The HIM 230 provides an interface function for the host device 300, and the FIM 240 provides an interface function for the flash memory 210. The BMU 250 includes a crypto engine 252 that provides encryption / decryption functions, a host direct memory access (DMA) component 254 that communicates with the HIM 230, and a flash DMA component 256 that communicates with the FIM 240. The CPU 260 executes software and firmware stored in the CPU RAMS 260 and / or the flash memory 210. The hardware timer block 270 will be described below in relation to the time measurement capability of the memory device.

図面を簡潔にするため、メモリ装置200をホスト装置300へ取り外し可能に接続するための電気的・物理的コネクタ等のメモリ装置200のその他のコンポーネントは図2に示されていない。メモリ装置200とその動作については、本願明細書において参照により援用されている米国特許出願第11/314,411号(特許文献9)および米国特許出願第11/557,028号(特許文献10)で詳細を確認できる。本願明細書において参照により援用されている米国特許出願第11/322,812号(特許文献11)と米国特許出願第11/322,766号(特許文献12)ではさらなる情報を確認できる。しかし、それら特許出願に記載されたコンポーネントと機能は、添付の特許請求の範囲に明記されていない限り、添付の特許請求の範囲の中で解釈すべきものではない。   To simplify the drawing, other components of the memory device 200 such as electrical and physical connectors for removably connecting the memory device 200 to the host device 300 are not shown in FIG. The memory device 200 and its operation are described in US patent application Ser. No. 11 / 314,411 (patent document 9) and US patent application Ser. No. 11 / 557,028, which are incorporated herein by reference. You can check the details at. Additional information can be found in US patent application Ser. No. 11 / 322,812 (Patent Document 11) and US Patent Application No. 11 / 322,766 (Patent Document 12), which are hereby incorporated by reference. However, the components and functions described in these patent applications should not be construed within the scope of the appended claims, unless explicitly stated in the appended claims.

メモリ装置200は、この実施形態において、メモリ装置200に蓄積された被保護コンテンツのロックを解除するため、デジタル著作権管理(DRM)キーおよびライセンスを蓄積する。(メモリ装置に蓄積された被保護コンテンツのロックを解除するためにDRMキーおよびライセンスを蓄積しないメモリ装置にも、これら実施形態が役立つことに留意するべきである。)DRMキーとDRMライセンスはメモリ装置200で生成できるほか、メモリ装置200以外(DRMサーバ110等)で生成しメモリ装置200へ送信することもできる。そのDRMキーとDRMライセンスはメモリ装置200とともに移動するから、被保護コンテンツは事実上、ホスト装置300ではなくメモリ装置200に結び付けられ、被保護コンテンツは持ち運び可能となり、認可された装置であることをメモリ装置200に対して証明できるホスト装置ならどれでも、被保護コンテンツにアクセスできる。サンディスク コーポレイションのメモリ装置TrustedFlash(登録商標)は、DRMキーとDRMライセンスがメモリ装置に蓄積され、メモリ装置とともに被保護コンテンツを移動できるメモリ装置の例である。いくつかの実施形態によっては、メモリ装置200に蓄積されたDRMキーを用いてメモリ装置200がDRMライセンスを検証する。別の実施形態では、メモリ装置200からホスト装置300にDRMキーを提供し、DRMキーによるDRMライセンス検証をホスト装置にまかせる。   In this embodiment, the memory device 200 stores a digital rights management (DRM) key and a license to unlock the protected content stored in the memory device 200. (It should be noted that these embodiments are also useful for memory devices that do not store DRM keys and licenses to unlock protected content stored in the memory device.) DRM keys and DRM licenses are memory In addition to being generated by the device 200, it can be generated by other than the memory device 200 (DRM server 110 or the like) and transmitted to the memory device 200. Since the DRM key and DRM license move with the memory device 200, the protected content is effectively tied to the memory device 200, not the host device 300, and the protected content is portable and authorized. Any host device that can prove to the memory device 200 can access the protected content. SanDisk Corporation's memory device TrustedFlash (registered trademark) is an example of a memory device in which a DRM key and a DRM license are stored in the memory device, and protected content can be moved together with the memory device. In some embodiments, the memory device 200 verifies the DRM license using the DRM key stored in the memory device 200. In another embodiment, a DRM key is provided from the memory device 200 to the host device 300, and DRM license verification using the DRM key is left to the host device.

この実施形態では、DRMキーとDRMライセンスに対するアクセスを適切な信用証明を持つ認可エンティティに限定するため、CPU260がセキュアストレージアプリケーション(SSA)を実行する。SSAのコンピュータ可読コードはフラッシュメモリ210やCPU RAMS262に蓄積できるほか、メモリ装置200の別の蓄積位置に蓄積できる。SSAについては、前に参照した米国特許出願第11/557,028号(特許文献10)でより詳細に説明されている。図3は、SSAの動作の例証に用いるメモリ装置200の種々の機能モジュールの図解である。図3に見られるように、メモリ装置200は様々なアクセス管理記録(「ACR」)を備える。つまり、第1の非対称ACR201と、第2の非対称ACR202と、対称ACR203とを備える。第1および第2の非対称ACR201,202は、後ほど詳述する第1および第2の時間更新方針(TUP1およびTUP2)を備える。図3には多数のACRが見られるが、メモリ装置200はただ1つのACRを収容することもある。   In this embodiment, CPU 260 executes a secure storage application (SSA) to limit access to DRM keys and DRM licenses to authorized entities with appropriate credentials. The SSA computer readable code can be stored in the flash memory 210 and the CPU RAMS 262 and can be stored in another storage location of the memory device 200. SSA is described in more detail in previously referenced US patent application Ser. No. 11 / 557,028. FIG. 3 is an illustration of various functional modules of the memory device 200 used to illustrate SSA operation. As can be seen in FIG. 3, the memory device 200 comprises various access management records (“ACR”). That is, the first asymmetric ACR 201, the second asymmetric ACR 202, and the symmetric ACR 203 are provided. The first and second asymmetric ACRs 201 and 202 have first and second time update policies (TUP1 and TUP2), which will be described in detail later. Although a number of ACRs are seen in FIG. 3, the memory device 200 may accommodate only one ACR.

ACR201,202,および203は、使用すべき認証方法と、エンティティのアイデンティティを立証するにあたってどのような種類の信用証明が必要かを指定する。DRMキーおよびライセンスに対するアクセス等、種々のアクションを実行するための権限もACR201,202,および203に記録される。ACRによるエンティティの認証に成功するとSSAシステムがセッションを開放し、ACRのアクションを実行できるようになる。本願明細書で用いる用語「エンティティ」は、メモリ装置200に対してアクセスを試みる人または物を指す。例えば、エンティティは、ホスト装置で実行するアプリケーションであったり、ホスト装置自体であったり、ヒトユーザであったりする。図3では3つのエンティティ、すなわちメディア(音声および/または映像)プレイヤ301と、ストレージアプリケーション302と、別のアプリケーション303とが、メモリ装置200へのアクセスを試みる。これらエンティティ301,302,303は同じホスト装置に位置することもあれば、別々のホスト装置に位置することもある。それぞれのエンティティ301,302,303には特定のACR(ACR201,202,および203)が対応付けられている。ACR201,202,および203のいずれかに別のエンティティ(図示せず)を対応付けることもできる。   ACRs 201, 202, and 203 specify the authentication method to be used and what kind of credentials are required to verify the identity of the entity. Authority for executing various actions such as access to the DRM key and license is also recorded in the ACRs 201, 202, and 203. If the entity is successfully authenticated by the ACR, the SSA system releases the session and can execute the ACR action. As used herein, the term “entity” refers to a person or object attempting to access the memory device 200. For example, the entity may be an application executed on the host device, the host device itself, or a human user. In FIG. 3, three entities, a media (audio and / or video) player 301, a storage application 302, and another application 303 attempt to access the memory device 200. These entities 301, 302, and 303 may be located on the same host device, or may be located on different host devices. Each entity 301, 302, 303 is associated with a specific ACR (ACR 201, 202, 203). Another entity (not shown) can be associated with any of ACRs 201, 202, and 203.

エンティティはログインプロセスを開始するときに、該当するACRの識別子を含む認証要求を送信する。ACRは、使用すべき認証方法と、エンティティのアイデンティティを立証するにあたってどのような種類の信用証明が必要かを指定する。図3のACR201および202は非対称認証法を指定し、ACR203は対称認証法を指定する。なお、これとは別の認証法(パスワード方式の手順等)を用いることもでき、ACRで認証不要と指定することもできる。特定の認証法を指定することに加え、認証済みエンティティで実行できるアクションを記した権限管理記録(PCR)をACRに入れることもできる。   When the entity initiates the login process, it sends an authentication request including the appropriate ACR identifier. The ACR specifies the authentication method to be used and what kind of credentials are required to establish the identity of the entity. ACRs 201 and 202 in FIG. 3 specify an asymmetric authentication method, and ACR 203 specifies a symmetric authentication method. Note that another authentication method (password method procedure or the like) can be used, and the ACR can specify that authentication is not required. In addition to specifying a particular authentication method, a privilege management record (PCR) can be placed in the ACR that describes the actions that can be performed on the authenticated entity.

一部の認証機構(例えば、X.509証明書連鎖の認証に用いる一方向および双方向非対称認証等)は時間を基礎とし、メモリ装置200はエンティティから提示される信用証明の検査にあたって時間を知る必要がある。(対称ACR203の対称認証機構の場合には、メモリ装置200で時間を把握する必要はない。対称認証では、エンティティとこれに対応するACRとで共有されるキーを用いてエンティティを認証する。)非対称認証でエンティティから提供されるRSA証明書および/または証明書取消リスト(CRL)等の信用証明を評価するには、時間が必要になることがある。(本願明細書で用いる「証明書」は単一の証明書や複数の証明書(一連の証明書等)を指すことがあり、「CRL」は単一のCRLや複数のCRLを指すことがある。)検証を実行するにあたってメモリ装置200で時間推定を生成するメカニズムについて説明する前に、非対称認証にかかわる証明書とCRLを簡単に説明する。   Some authentication mechanisms (eg, one-way and two-way asymmetric authentication used for X.509 certificate chain authentication, etc.) are time based, and the memory device 200 knows the time for checking the credentials presented by the entity. There is a need. (In the case of the symmetric authentication mechanism of the symmetric ACR 203, it is not necessary to know the time in the memory device 200. In the symmetric authentication, the entity is authenticated using a key shared between the entity and the corresponding ACR.) It may take time to evaluate credentials such as RSA certificates and / or certificate revocation lists (CRLs) provided by entities with asymmetric authentication. (As used herein, “certificate” may refer to a single certificate or multiple certificates (such as a series of certificates), and “CRL” may refer to a single CRL or multiple CRLs. Before explaining the mechanism for generating the time estimate in the memory device 200 when performing verification, a certificate and CRL for asymmetric authentication will be briefly described.

非対称認証で使用する公開鍵基盤(PKI)システムでは、証明局(CA)と呼ばれる信用機関がエンティティのアイデンティティを証明するRSA証明書を発行する。アイデンティティの立証を望むエンティティは、これを証明するにあたって十分な証拠を用意しCAに登録する。CAでエンティティのアイデンティティが証明されると、CAからエンティティへ証明書が発行される。証明書は通常、証明書の発行元にあたるCAの名称と、証明書の発行先にあたるエンティティの名称と、エンティティの公開鍵と、CAの秘密鍵によって署名されたエンティティの公開鍵(通常は公開鍵のダイジェストを暗号化)とを含む。   In a public key infrastructure (PKI) system used for asymmetric authentication, a trusted authority called a certificate authority (CA) issues an RSA certificate that proves the identity of an entity. An entity that wants to prove its identity prepares enough evidence to register this and registers it with the CA. Once the identity of the entity is verified at the CA, a certificate is issued from the CA to the entity. The certificate is usually the name of the CA that is the certificate issuer, the name of the entity that is the certificate issuer, the public key of the entity, and the public key of the entity signed by the CA private key (usually the public key). Encryption).

証明書の中には有効期限を保持するデータフィールドを設けることができる。この場合、証明書を所持するエンティティがコンテンツにアクセスできる時間には限りがある(証明書が失効するまで)。将来の発効時期を保持するデータフィールドを証明書に設けることもできる。この場合、証明書が有効になるまでACRによるエンティティ認証は行われない。メモリ装置200は、現在の日付が有効期限を過ぎているか発効日に至っていないと判断する場合(つまり、証明書が有効でないとメモリ装置200が判断する場合)には、証明書を提示するエンティティを認証しない。   A data field for holding an expiration date can be provided in the certificate. In this case, the time that the entity that owns the certificate can access the content is limited (until the certificate expires). A data field that holds the future effective date can be provided in the certificate. In this case, entity authentication by ACR is not performed until the certificate becomes valid. When the memory device 200 determines that the current date has passed the expiration date or has not reached the effective date (that is, if the memory device 200 determines that the certificate is not valid), the entity presenting the certificate Is not authenticated.

証明書は様々ないきさつで有効期限より前に無効になることがある(例えば、名称の変更、エンティティおよびCA関係の変化、秘密鍵の侵害または侵害の疑い等)。そのような場合にはCAが証明書を取り消す必要がある。具体的にはCAが証明書取消リスト(CRL)を定期的に発行する。CRLは、取り消された証明書のタイムスタンプ付きリストを含む署名付きデータ構造である。したがって、メモリ装置200はエンティティの認証にあたって証明書が時宜に適っているか否かをチェックするだけでなく、CRLもチェックし、証明書がCRLに登記されているか否かも確認する。(CRLは、証明書と併せてエンティティから提供されることもあれば、メモリ装置200がCRL自体を取得することもある(例えば、メモリ装置200が接続装置ならインターネット80を通じて取得する)。)CRLに登記されている証明書は(期限切れでなくとも)もはや有効ではなく、エンティティの認証は行われない。証明書と同様に、CRLにも有効期限がある。この有効期限はCRLの更新時期を指示するものであり、これによりメモリ装置200における最新CRLの使用が徹底される。認証中に現在時間がCRLの有効期限を過ぎていることがメモリ装置200で判明すると(CRLが無効であるとメモリ装置200が判断すると)、そのCRLには問題があるとみなされ、証明書の検査にはできるだけ使用しない。   Certificates can be revoked before their expiration date in various ways (eg, name changes, entity and CA relationship changes, private key infringement or alleged infringement, etc.). In such a case, the CA needs to revoke the certificate. Specifically, the CA periodically issues a certificate revocation list (CRL). A CRL is a signed data structure that contains a time-stamped list of revoked certificates. Accordingly, the memory device 200 not only checks whether the certificate is timely for entity authentication, but also checks the CRL to check whether the certificate is registered in the CRL. (The CRL may be provided from the entity together with the certificate, or the memory device 200 may acquire the CRL itself (for example, if the memory device 200 is a connection device, it is acquired through the Internet 80).) The certificate registered in is no longer valid (even if it has not expired) and the entity is not authenticated. Like certificates, CRLs also have an expiration date. This expiration date indicates the CRL update time, and thus the latest CRL is thoroughly used in the memory device 200. If the memory device 200 finds that the current time has passed the validity period of the CRL during authentication (when the memory device 200 determines that the CRL is invalid), the CRL is considered to have a problem and the certificate We do not use for inspection of as much as possible.

前に説明したように、この実施形態のメモリ装置200は信用証明(本願明細書では証明書とCRL)の検査にあたって時間を知る必要がある。メモリ装置で時間を把握できるようにするには数通りの選択肢がある。1つの選択肢として、メモリ装置で時間を知る必要がある場合には、そのつどメモリ装置からホスト装置を通じて信頼されたタイムサーバにタイムスタンプを要求する。これは接続装置に適した方法ではあるが、メモリ装置は接続装置のほかに非接続装置で使われることもあるため(例えば、インターネットに接続されていない家庭内PC、MP3プレイヤ、ネットワークから切断された携帯電話機(飛行機搭乗時等))、メモリ装置の認証手順で時間を知る必要があるときに、接続が得られるかどうかは当てにならない。もうひとつの選択肢では、バッテリ方式のクロックをメモリ装置に装備する。しかし、そうするとメモリ装置にコストが上乗せされるため、場合によっては望ましくない。もうひとつの選択肢では、メモリ装置への時間提供にあたってホスト装置を頼りにする(ホスト装置自身の内蔵クロックあるいは外部供給元から提供される)。しかし、メモリ装置は多くの場合、正確な時間提供にあたってホスト装置を信頼できない。ユーザがホスト装置のクロックを「遅らせる」ことができるなら(つまり、ホスト装置のクロックを現在時間より前の時間に設定できるなら)、ユーザはメモリ装置で施行される必要がある時間制限を出し抜くことができる。その一方で、メモリ装置(またはメモリ装置で実行するアプリケーション)にとってホスト装置が信頼できるものなら、メモリ装置(またはメモリ装置で実行するアプリケーション)はホスト装置の時間を当てにできる。ホスト時間を使用できる場合については、後ほど詳細を提示する。   As described above, the memory device 200 of this embodiment needs to know the time for checking the credential (certificate and CRL in this specification). There are several options for making the memory device know the time. As one option, whenever it is necessary to know the time in the memory device, a time stamp is requested from the memory device to a trusted time server through the host device. Although this is a method suitable for a connected device, the memory device may be used by a disconnected device in addition to the connected device (for example, disconnected from a home PC, MP3 player, or network that is not connected to the Internet). If you need to know the time in the authentication procedure of the mobile device (such as when you are on a plane)) or memory device, it is not reliable. Another option is to equip the memory device with a battery-powered clock. However, this adds cost to the memory device, which is undesirable in some cases. Another option relies on the host device to provide time to the memory device (provided by the host device's own internal clock or an external source). However, in many cases, the memory device cannot rely on the host device to provide accurate time. If the user can “delay” the host device clock (ie, the host device clock can be set to a time earlier than the current time), the user must bypass the time limit that needs to be enforced on the memory device. Can do. On the other hand, if the host device can be trusted by the memory device (or application executing on the memory device), the memory device (or application executing on the memory device) can rely on the host device time. Details on when host time is available will be provided later.

この実施形態で採用するもうひとつの選択肢では、メモリ装置の限られた時間追跡能力、具体的にはメモリ装置200の稼働時間を測定する能力を利用する。稼働時間とは、メモリ装置200がホスト装置へ接続され、実際に使われていた時間を指すことができる(つまり、アイドル状態やスリープモードとは対照的に、メモリ装置200およびホスト装置300間のバスで活動があった時間)。あるいは、稼働時間は、メモリ装置200がホスト装置300へ接続され、ホスト装置300から電力を受け取っていた総時間を指すことができる。本願明細書では、用語「稼働時間」および「使用時間」を互換的に使用する。後述するように、この実施形態ではハードウェアタイマーブロック270がCPU260に対する割り込みとしてクロックティックを生成でき、CPU260が稼働時間カウンタを増加できているときに、メモリ装置200は稼働しているとする。   Another option employed in this embodiment utilizes the limited time tracking capability of the memory device, specifically the ability to measure the operating time of the memory device 200. The operation time may refer to a time when the memory device 200 is connected to the host device and is actually used (that is, between the memory device 200 and the host device 300 as opposed to an idle state or a sleep mode). Time when there was activity on the bus). Alternatively, the operation time may indicate the total time that the memory device 200 is connected to the host device 300 and receives power from the host device 300. In the present specification, the terms “operation time” and “use time” are used interchangeably. As will be described later, in this embodiment, the hardware timer block 270 can generate a clock tick as an interrupt to the CPU 260, and it is assumed that the memory device 200 is operating when the CPU 260 can increase the operating time counter.

作動中はハードウェアタイマーブロック270(ASICコントローラ等)に内蔵された発振器が周期的なクロックティックを生成し、そのティックを割り込みとしてCPU260に提供する。(この発振器は、好ましくはCPU260がスリープ状態のときに非常に低い周波数で作動する。)つまり、ハードウェアタイマーブロック270は周期的(ミリ秒毎、マイクロ秒毎等)にCPU260に割り込む。CPU260が割り込みを受けると専用のクロック割り込みサービスルーチンが呼び出され(例えば、CPU260によりファームウェア内で実行され)、これにより1周期/単位が稼働時間カウンタへ加えられる。このカウンタ値はCPU RAMS262ばかりでなく不揮発性フラッシュメモリ210にも蓄積されるため、停電が発生しても失われることはない。メモリ210の過度の消耗を避けるため、メモリ210の稼働時間カウンタは、クロックティックのたびに更新するのではなく、周期的に(例えば、メモリ装置に電源が入っている間に1分毎に)更新するのが好ましい。この場合、稼働時間カウンタが更新される前に停電が起こると測定時間精度のさらなる低下を招き得るが、メモリ耐久性にとってのメリットを考慮すれば、許容し得る代償とみなすことができる。(メモリの耐久性をさらに保護するなら、稼働時間カウンタに蓄積される値にカウンタへの書き込み回数を伝えるフィールドを設けることができる。この書き込み値が一定量を超過する場合には、メモリの別の位置にカウンタを蓄積できる。カウンタ内のビットをシフトすることで耐久性に寄与するなら、ビットをシフトすることもできる。)また、(書き込みにかかる消費電力は別として)稼働時間カウンタへの書き込みによってメモリ装置200の性能や平常の活動に支障をきたさないようにするのが好ましい。(換言すると、時間カウンタへの書き込みをホストコマンド処理プロセスの一部とするのが好ましい。)例えば、稼働時間カウンタへの書き込みをバックグラウンドタスクとし、ホスト装置コマンドを処理する前にこれを実行することもできる。ホスト装置コマンドが終了したら、メモリ装置200のファームウェアによりメモリからデータを読み出し、所望値と比較することで、稼働時間カウンタのプログラミングが成功したことを確認できる。   During operation, an oscillator built in the hardware timer block 270 (such as an ASIC controller) generates a periodic clock tick and provides the tick to the CPU 260 as an interrupt. (This oscillator preferably operates at a very low frequency when the CPU 260 is in a sleep state.) That is, the hardware timer block 270 interrupts the CPU 260 periodically (every millisecond, every microsecond, etc.). When CPU 260 receives an interrupt, a dedicated clock interrupt service routine is called (eg, executed in firmware by CPU 260), which adds one period / unit to the operating time counter. Since the counter value is stored not only in the CPU RAMS 262 but also in the nonvolatile flash memory 210, it is not lost even if a power failure occurs. To avoid excessive consumption of memory 210, the memory 210 uptime counter is not updated every clock tick, but periodically (eg, every minute while the memory device is powered on). It is preferable to update. In this case, if a power failure occurs before the operating time counter is updated, the measurement time accuracy may be further reduced. However, if the merit for memory durability is taken into consideration, it can be regarded as an acceptable price. (To further protect the endurance of the memory, it is possible to provide a field for transmitting the number of writes to the counter in the value accumulated in the operating time counter. If this write value exceeds a certain amount, the memory The counter can be stored at the position of .If the bit in the counter contributes to durability, the bit can also be shifted.) (In addition to the power consumption for writing) It is preferable that the writing does not hinder the performance of the memory device 200 and normal activities. (In other words, writing to the time counter is preferably part of the host command processing process.) For example, writing to the operating time counter is a background task that is executed before processing the host device command. You can also When the host device command ends, the firmware of the memory device 200 reads data from the memory and compares it with a desired value, thereby confirming that the operation time counter has been successfully programmed.

また、稼働時間カウンタの値は、容易に改ざんされないようにするため、メモリ210に安全に蓄積するのが好ましい(例えば、キーハッシュメッセージ認証コード(HMAC)を使用しクリプトエンジン252により署名する)。署名が一致しない場合には、データは攻撃者によって改ざんされたものとし、未初期化データとして扱うことができる。さらに、他の稼働時間測定メカニズムも使用できることに留意するべきである。   Further, the value of the operating time counter is preferably stored securely in the memory 210 so as not to be easily tampered (for example, the key engine is signed by the crypto engine 252 using a key hash message authentication code (HMAC)). If the signatures do not match, the data has been altered by an attacker and can be treated as uninitialized data. In addition, it should be noted that other uptime measurement mechanisms can be used.

稼働時間カウンタに蓄積された値を実際の時間に変換するため、CPU260は、ハードウェアタイマーブロック270がクロックティックを生成する頻度を蓄積値に乗ずる。例えば、稼働時間カウンタに値500が蓄積され、ハードウェアタイマーブロック270が5ミリ秒毎にクロックティックを生成するなら、CPU260は2,500ミリ秒(500×5)の稼働時間を算出する。時間推定の生成にあたっては、信頼された供給元からメモリ装置200に届いた最新のタイムスタンプに変換済みの稼働時間を加算する。換言すると、タイムスタンプは「スタートライン」の役割を果たし、このタイムスタンプにメモリ装置の測定稼働時間を加算する。タイムスタンプはいかなる形式のものであってもよく、任意の精度で時間を表示できる(年、月、日、時、分、秒等)。タイムスタンプは、好ましくは精密時間提供にあたってメモリ装置200が信頼するエンティティ(タイムサーバ100、信頼されたホスト装置等)から提供される。タイムスタンプはいかなる形式のものであってもよく、単独で送信できるほか、別の情報に含めることもできる。タイムスタンプが容易に改ざんされないようにするため、メモリ装置は、好ましくはクリプトエンジン252経由でタイムスタンプを安全に蓄積する。メモリ装置200に新しいタイムスタンプが届くと、新しいタイムスタンプがメモリ装置200に蓄積され、稼働時間カウンタはリセットされる。したがって、それ以降は古いタイムスタンプの代わりに新しいタイムスタンプを基準として稼働時間の測定が行われる。稼働時間を測定するため、カウンタをリセットする(「元に戻す」)代わりに、新しいタイムスタンプの時点に存在する稼働時間カウンタ値を記録し、現在時間からこれを引くこともできる。   In order to convert the value accumulated in the operating time counter into the actual time, the CPU 260 multiplies the accumulated value by the frequency with which the hardware timer block 270 generates clock ticks. For example, if the value 500 is accumulated in the operating time counter and the hardware timer block 270 generates a clock tick every 5 milliseconds, the CPU 260 calculates an operating time of 2,500 milliseconds (500 × 5). In generating the time estimate, the converted operation time is added to the latest time stamp that has arrived at the memory device 200 from a reliable supplier. In other words, the time stamp serves as a “start line”, and the measured operating time of the memory device is added to this time stamp. The time stamp can be of any format and can display the time with any precision (year, month, day, hour, minute, second, etc.). The time stamp is preferably provided from an entity (time server 100, trusted host device, etc.) that the memory device 200 trusts in providing precise time. The timestamp can be in any format and can be sent alone or included in other information. In order to prevent time stamps from being easily tampered with, the memory device preferably stores the time stamps securely via the crypto engine 252. When a new time stamp arrives at the memory device 200, the new time stamp is stored in the memory device 200, and the operating time counter is reset. Therefore, after that, the operation time is measured based on the new time stamp instead of the old time stamp. Instead of resetting the counter ("undo") to measure uptime, the uptime counter value present at the time of the new timestamp can be recorded and subtracted from the current time.

メモリ装置の時間追跡能力を説明したところで、今度は認証手順の一例を説明する。図面に戻ると、図4は一実施形態の非対称認証プロセスのプロトコル図である。以下の例では、プレイヤ301がACR201を通じてメモリ装置200へのログインを試みる。後ほど詳述するように、プレイヤ301は信用証明を保持し(RSA鍵対、証明書、証明書取消リスト(CRL)等)、ACR201はプレイヤ301の真正性を検証し、オブジェクトに対する権利を授与する(この場合、プレイヤ301とDRMモジュール207との間でセキュアチャネルが確立する)。図4に見られるように、最初のステップではホスト装置300がプレイヤ301の認証要求をメモリ装置200へ送信する(アクト402)。メモリ装置200にタイムスタンプがまだインストールされていなければ、メモリ装置200は認証要求に対してログイン失敗メッセージで応答する(アクト404)。   Now that the time tracking capability of the memory device has been described, an example of an authentication procedure will now be described. Returning to the drawing, FIG. 4 is a protocol diagram of an asymmetric authentication process of one embodiment. In the following example, the player 301 tries to log in to the memory device 200 through the ACR 201. As will be described in detail later, the player 301 holds credentials (RSA key pair, certificate, certificate revocation list (CRL), etc.), and the ACR 201 verifies the authenticity of the player 301 and grants rights to the object. (In this case, a secure channel is established between the player 301 and the DRM module 207). As seen in FIG. 4, in the first step, the host device 300 transmits an authentication request for the player 301 to the memory device 200 (act 402). If the time stamp is not yet installed in the memory device 200, the memory device 200 responds to the authentication request with a login failure message (act 404).

続く一連のアクトでは、メモリ装置200にタイムスタンプを提供するプロセスを図5および図6との関係で説明する。これら図は、メモリ装置200がタイムスタンプを取得可能な1つの方法を例証するシステム図とフローチャートである。メモリ装置200はこれとは別の方法でタイムスタンプを取得することもでき、タイムスタンプがこれとは別の形式をとり得ることを理解するべきである。また、1つのメモリ装置が多数のサーバまたはホストと連係しながら多数の形式を同時に処理できることも理解するべきである。したがってこの例の具体的な詳細は、添付の特許請求の範囲に明記されていない限り、添付の特許請求の範囲の中で解釈すべきものではない。   In a series of subsequent acts, the process of providing a time stamp to the memory device 200 will be described in relation to FIGS. These figures are a system diagram and a flowchart illustrating one method by which the memory device 200 can obtain a time stamp. It should be understood that the memory device 200 can obtain the time stamp in other ways, and that the time stamp can take other forms. It should also be understood that a single memory device can process multiple formats simultaneously in conjunction with multiple servers or hosts. Accordingly, the specific details of this example should not be construed in the appended claims unless explicitly set forth in the appended claims.

図5に見られるように、メモリ装置200はメモリ装置−ホスト装置通信チャネル305を通じてホスト装置300と通信し、ホスト装置300はホスト装置−タイムサーバ通信チャネル315を通じてタイムサーバ100と通信する。タイムサーバ100は単独のサーバでもよいが、この実施形態のタイムサーバ100は、サーバ間通信チャネル325経由で互いに同期をとる複数のサーバ102,104,106を含む。また、前に指摘したように、タイムスタンプのためにタイムサーバ100を使用する代わりに、ホスト装置300のタイムスタンプを使用することもできるが、これは、好ましくはホスト装置300が信頼されたホスト装置である場合に限る。   As shown in FIG. 5, the memory device 200 communicates with the host device 300 through the memory device-host device communication channel 305, and the host device 300 communicates with the time server 100 through the host device-time server communication channel 315. Although the time server 100 may be a single server, the time server 100 of this embodiment includes a plurality of servers 102, 104, and 106 that are synchronized with each other via the inter-server communication channel 325. Also, as pointed out earlier, instead of using the time server 100 for time stamping, the time stamp of the host device 300 can also be used, which is preferably the host device 300 is trusted host Only if it is a device.

この実施形態では、ホスト装置300がメモリ装置200へノンス取得コマンドを送信する(アクト405)ところからタイムスタンプ要求手順が始まる(図4,5,6参照)。この実施形態におけるノンスは、後ほどメモリ装置200がタイムサーバ100によって生成されたタイムスタンプの真正性を検証するときに用いる16ビットの乱数である。メモリ装置200は乱数(ノンス)を生成し(アクト410)、以降の検証ステップのためにこれをCPU RAMS(揮発性メモリ)262(またはメモリ210)に蓄積する。次に、メモリ装置200はホスト装置300へノンスを送信する(アクト415)。メモリ装置200はまた、後ほどタイムアウトの有無を確認するため、時間の測定を開始する(後述)。   In this embodiment, the time stamp request procedure starts when the host device 300 transmits a nonce acquisition command to the memory device 200 (act 405) (see FIGS. 4, 5 and 6). The nonce in this embodiment is a 16-bit random number used when the memory device 200 verifies the authenticity of the time stamp generated by the time server 100 later. The memory device 200 generates a random number (nonce) (act 410) and stores it in the CPU RAMS (volatile memory) 262 (or memory 210) for subsequent verification steps. Next, the memory device 200 transmits a nonce to the host device 300 (act 415). The memory device 200 also starts measuring time (to be described later) in order to confirm the presence or absence of a timeout later.

ノンスを受信したホスト装置300は、そのノンスを含むタイムスタンプ取得要求をタイムサーバ100へ送信する(アクト420)。タイムサーバ100は、その秘密鍵により時間(UTC協定世界時形式による世界時等)とノンスに署名する。次に、タイムサーバ100はタイムスタンプ応答を送信する(アクト425)。(タイムサーバ100から送信されるこの証明書とCRLはタイムサーバ100を認証するためのものであって、プレイヤ301を認証するために送信される証明書およびCRLとは異なるものであることに留意するべきである。)この実施形態におけるタイムスタンプ応答は、ノンスと、タイムスタンプと、証明書連鎖と、証明書取消リスト(「CRL」)連鎖とを含む。ホスト装置300は、時間更新コマンドとこの応答をメモリ装置200へ送信する(アクト430)。メモリ装置200はこのコマンドに応じて証明書とCRLの検証を試みる(アクト435)。(繰り返しになるが、この証明書とCRLはプレイヤ301の認証のために送信されるものとは異なる。)後述するように、メモリ装置200で生成された時間推定に照らしてタイムサーバ100の証明書およびCRLの有効性をチェックするよりは、タイムサーバ100の証明書およびCRLの有効期間が過ぎていないと仮定したほうが好ましい場合もある。この検証に失敗する場合、メモリ装置200は揮発性メモリ262をリセットし、アイドルプロセスに戻る(アクト440)。証明書とCRLの検証に成功する(アクト445)場合には、メモリ装置200は応答の中にあるノンスを揮発性メモリ262にあるノンスに比較する(アクト450)。この比較に失敗する場合には、メモリ装置は揮発性メモリ262をリセットし、アイドルプロセスに戻る(アクト455)。比較に成功する場合には、メモリ装置200は新しいタイムスタンプを、好ましくは改ざんを防ぐため安全な方法で、メモリ210に蓄積する。   Receiving the nonce, the host device 300 transmits a time stamp acquisition request including the nonce to the time server 100 (act 420). The time server 100 signs the time (universal time in UTC Coordinated Universal Time format) and nonce with the secret key. Next, the time server 100 transmits a time stamp response (act 425). (Note that this certificate and CRL transmitted from the time server 100 are for authenticating the time server 100, and are different from the certificate and CRL transmitted for authenticating the player 301. The time stamp response in this embodiment includes a nonce, a time stamp, a certificate chain, and a certificate revocation list (“CRL”) chain. The host device 300 transmits the time update command and this response to the memory device 200 (act 430). In response to this command, the memory device 200 attempts to verify the certificate and the CRL (act 435). (To be repeated, this certificate and the CRL are different from those transmitted for authentication of the player 301.) As will be described later, the certificate of the time server 100 in light of the time estimation generated by the memory device 200. It may be preferable to assume that the certificate of the time server 100 and the validity period of the CRL have not expired, rather than checking the validity of the certificate and the CRL. If this verification fails, the memory device 200 resets the volatile memory 262 and returns to the idle process (act 440). If the certificate and CRL verification is successful (act 445), the memory device 200 compares the nonce in the response with the nonce in the volatile memory 262 (act 450). If this comparison fails, the memory device resets the volatile memory 262 and returns to the idle process (act 455). If the comparison is successful, the memory device 200 stores the new time stamp in the memory 210, preferably in a secure manner to prevent tampering.

メモリ装置200がノンスを生成し(410)、応答を待っているときに(アクト460)、ホスト装置300からメモリ装置200へ別のノンス取得コマンドが送信され得る(アクト465)ことが可能であることに留意するべきである。前述したように、メモリ装置200はノンスを生成した後に時間測定を開始する。メモリ装置200は、その測定時間が特定のタイムアウト制限に達する前に新たなノンスコマンド(465)を受信する場合には、好ましくは新たなノンスコマンド(465)を無視する。しかし、メモリ装置200は、タイムアウト制限後に新たなノンスコマンド(465)を受信する場合には、揮発性メモリ262をリセットし、新たなノンスを生成する(アクト470)。したがって、ノンスは限られた時間内で有効であり、タイムアウト制限(「トラベルタイムエラー」)は、メモリ装置200がタイムサーバ100からタイムスタンプが届くのを待つ最大時間に相当する。   When the memory device 200 generates a nonce (410) and is waiting for a response (act 460), another nonce acquisition command can be sent from the host device 300 to the memory device 200 (act 465). It should be noted. As described above, the memory device 200 starts time measurement after generating the nonce. If the memory device 200 receives a new nonce command (465) before its measurement time reaches a specific timeout limit, the memory device 200 preferably ignores the new nonce command (465). However, if the memory device 200 receives a new nonce command (465) after the timeout limit, the memory device 200 resets the volatile memory 262 and generates a new nonce (act 470). Accordingly, the nonce is valid within a limited time, and the timeout limit (“travel time error”) corresponds to the maximum time that the memory device 200 waits for a time stamp to arrive from the time server 100.

メモリ装置200に蓄積されるタイムスタンプの時間は、タイムサーバ100がデータ文字列に署名したときの時間であるため、タイムスタンプの精度にもよるが(年、月、日、時、分、秒等)、タイムスタンプの時間は、ホスト装置300がタイムスタンプを要求したときの現実の時間にならないことがある。あるいは、メモリ装置200がタイムスタンプを蓄積したときの現実の時間にならないことがある。前述したノンスタイムアウト期間は、タイムスタンプの精度がメモリ装置200の要求に合うように設定できる。したがって、タイムスタンプ要求の最大許容遅延がメモリ装置200によってコントロールされることになる。代替の実施形態において、タイムサーバ100によって生成されるタイムスタンプで別の時間を表示でき、例えばホスト装置300がタイムスタンプを要求したときの推定時間や、メモリ装置200におけるタイムスタンプ蓄積の見込み時間を表示できる。   Since the time stamp accumulated in the memory device 200 is the time when the time server 100 signs the data character string, it depends on the accuracy of the time stamp (year, month, day, hour, minute, second). The time stamp time may not be the actual time when the host device 300 requests the time stamp. Alternatively, the memory device 200 may not be the actual time when the time stamp is accumulated. The nonce timeout period described above can be set so that the accuracy of the time stamp meets the requirements of the memory device 200. Accordingly, the maximum allowable delay of the time stamp request is controlled by the memory device 200. In an alternative embodiment, another time can be displayed with a time stamp generated by the time server 100, for example, an estimated time when the host device 300 requests a time stamp, or an estimated time for time stamp accumulation in the memory device 200. Can be displayed.

前述したプロトコルの場合、メモリ装置200は安全が保証されない接続システム(インターネット、WiFiネットワーク、GSMネットワーク等)を介してタイムサーバ100と通信することになる。安全が保証されない接続システムとは、メモリ装置200が、タイムサーバ100によって送信されるタイムスタンプの送信中に改ざんがないと決め付けることができないことを意味する。タイムスタンプを保護するにあたってネットワークが当てになり得ないため、タイムサーバ100とメモリ装置200との間で前述した保護メカニズム(あるいは他の何らかの保護メカニズム)を使用できる。暗号化プロトコルなら、タイムスタンプが改ざんされた場合にメモリ装置200で改ざんを検出できる。換言すると、接続システムが安全でなければ、タイムスタンプのビットが何者かによって変更されるのを接続システム自体で防ぐことはできないが、メモリ装置200は改ざんを検出し、タイムスタンプを拒絶することができる。代替の実施形態では安全な通信システムを使用する(つまり、データ通信回線が保護される)。この場合、誰もタイムスタンプを改ざんできないため、タイムスタンプはプレーンテキストで送信できる。   In the case of the protocol described above, the memory device 200 communicates with the time server 100 via a connection system (Internet, WiFi network, GSM network, etc.) whose safety is not guaranteed. A connection system whose security is not guaranteed means that the memory device 200 cannot determine that there is no tampering during the transmission of the time stamp transmitted by the time server 100. Since the network cannot rely on protecting the time stamp, the above-described protection mechanism (or some other protection mechanism) can be used between the time server 100 and the memory device 200. If the encryption protocol is used, the memory device 200 can detect tampering when the time stamp is tampered. In other words, if the connection system is not secure, the connection system itself cannot prevent the time stamp bits from being changed by someone, but the memory device 200 may detect tampering and reject the time stamp. it can. An alternative embodiment uses a secure communication system (ie, the data communication line is protected). In this case, since no one can falsify the time stamp, the time stamp can be transmitted in plain text.

図4に戻ると、現在メモリ装置200には新規のタイムスタンプが蓄積され、メモリ装置200はホスト装置300へ「時間更新成功」メッセージを返し(アクト452)、ホスト装置300はもう一度認証要求をメモリ装置200へ送信する(アクト454)。メモリ装置200にはタイムスタンプがあるため、メモリ装置200はACR201のタイムスタンプ更新方針(TUP)をチェックする(アクト500)。時間推定はタイムスタンプを基礎とするため、古いタイムスタンプに時間推定の基礎を置くと時間推定が不正確になり得る。そこで、メモリ装置200にあるタイムスタンプが古く、更新(新規タイムスタンプ)が必要かどうかをTUPから判断する。後ほど詳述するが、TUPは図3に示すようにACRによって異なることがあり(ACRによって時間公差が異なる)、ACRの作成時に設定できる。   Returning to FIG. 4, a new time stamp is stored in the current memory device 200, the memory device 200 returns a “time update success” message to the host device 300 (act 452), and the host device 300 once again stores the authentication request in the memory. It transmits to the apparatus 200 (act 454). Since the memory device 200 has a time stamp, the memory device 200 checks the time stamp update policy (TUP) of the ACR 201 (act 500). Since time estimation is based on time stamps, putting time estimations on old time stamps can lead to inaccurate time estimations. Therefore, it is determined from the TUP whether the time stamp in the memory device 200 is old and needs to be updated (new time stamp). As will be described in detail later, the TUP may vary depending on the ACR as shown in FIG. 3 (the time tolerance varies depending on the ACR), and can be set when the ACR is created.

この実施形態では4つの値、すなわち(1)電源サイクル数と、(2)稼働時間のしきい値と、(3)「伸張」稼働時間のしきい値と、(4)パラメータでOR関係の有無を指示するビット(パラメータが1つでもチェックに失格すると時間更新を要求するか、あるいは全てのパラメータがチェックに失格する場合に限り時間更新を要求する)とによって、TUPが表される。これらパラメータについては後ほど詳述する。(これらパラメータに加えて、あるいはこれらパラメータの代わりに、別のパラメータを検討することもできることに留意するべきである。)   In this embodiment, there are four values: (1) power cycle number, (2) operating time threshold, (3) “extension” operating time threshold, and (4) parameters are OR related. A TUP is represented by a bit indicating whether or not there is a parameter (requiring time update when even one parameter is disqualified for checking, or requesting time updating only when all parameters are disqualified for checking). These parameters will be described in detail later. (It should be noted that other parameters may be considered in addition to or instead of these parameters.)

図7は、TUPチェックアクト(アクト500)のさらなる詳細を示すフローチャートである。まずは、TUPチェックのためにメモリ装置200が初期化されているか否かを判断する(アクト505)。それには、例えばメモリ210に蓄積された設定データを調べる。TUPチェックのためにメモリ装置200が初期化されていなければ、メモリ装置200は受信した最後のタイムスタンプを使って時間推定を生成し(アクト510)、その時間推定を使ってエンティティの認証を試みる。TUPチェックのためにメモリ装置200が初期化されていれば、メモリ装置200はTUPチェックに着手する。   FIG. 7 is a flowchart showing further details of the TUP check act (act 500). First, it is determined whether or not the memory device 200 has been initialized for the TUP check (act 505). For example, the setting data stored in the memory 210 is checked. If the memory device 200 has not been initialized for the TUP check, the memory device 200 generates a time estimate using the last received timestamp (act 510) and attempts to authenticate the entity using the time estimate. . If the memory device 200 is initialized for the TUP check, the memory device 200 starts the TUP check.

メモリ装置200はまず、最終タイムスタンプ以降のメモリ装置200の電源サイクル数のチェックがTUPに含まれているか否かを判断する(アクト515)。この実施形態では、前述した「電源サイクル」値をチェックすることによってこれを果たす。「電源サイクル」値が0なら、電源サイクル数チェックは行われない。「電源サイクル」値が0以外なら、その値をしきい値として使用し電源サイクル数をチェックする。電源サイクル数とは、メモリ装置200の電源が入った回数を数えたものであり、この数から最終タイムスタンプ以降にメモリ装置200の電源が切れた回数が分かる(つまり、電源が入るたびに、そのつど電源を切ることになる)。電源サイクル数はCPU260で測定できる。メモリ装置200が電源サイクルを通過するたびに、CPU260はファームウェアで装置リセットルーチンを呼び出すことができる。CPU260が稼働時間カウンタに1単位を加える場合と同様に、この装置リセットルーチンにより、CPU260はCPU RAMS262および/またはメモリ210の電源サイクルカウンタに1単位を加える。メモリの消耗を抑えるため、稼働時間カウンタと同様に、電源サイクルカウンタも周期的に更新できる。   First, the memory device 200 determines whether or not the TUP includes a check of the number of power cycles of the memory device 200 after the last time stamp (act 515). In this embodiment, this is accomplished by checking the “power cycle” value described above. If the “power cycle” value is 0, the power cycle count is not checked. If the “power cycle” value is other than 0, the value is used as a threshold value to check the number of power cycles. The power cycle number is a count of the number of times the memory device 200 is turned on. From this number, the number of times the memory device 200 is turned off after the final time stamp is known (that is, every time the power is turned on, Each time you turn off the power). The power cycle number can be measured by the CPU 260. Each time the memory device 200 passes a power cycle, the CPU 260 can invoke a device reset routine in firmware. Similar to the case where the CPU 260 adds one unit to the operating time counter, this device reset routine causes the CPU 260 to add one unit to the CPU RAMS 262 and / or the power cycle counter of the memory 210. In order to suppress memory consumption, the power cycle counter can be updated periodically as well as the operation time counter.

メモリ装置200の電源が切れると、(メモリ装置200は「稼働」していないときに稼働時間を測定できないために)少なくともある程度の実時間は稼働時間に反映されないことになる。メモリ装置200は電源サイクル間にどれだけの時間が経過したかを知らないため、測定稼働時間がどの程度不正確かを電源サイクル数からつかむことはできない。しかし、メモリ装置200の使い方が想定された使用パターンから外れているか否かを電源サイクル数からある程度つかむことはできる。さらにそこから、測定稼働時間がどの程度不正確かが大まかに分かり得る。例えば、最後のタイムスタンプからメモリ装置200の電源サイクルが10回あった場合の時間推定は、最後のタイムスタンプからメモリ装置200の電源サイクルが1回しかなかった場合の時間推定より正確でない可能性がある。   When the memory device 200 is turned off, at least some real time is not reflected in the operating time (because the operating time cannot be measured when the memory device 200 is not “operating”). Since the memory device 200 does not know how much time has passed between power cycles, it cannot grasp how much the measurement operation time is incorrect from the number of power cycles. However, whether or not the usage of the memory device 200 deviates from the assumed usage pattern can be grasped to some extent from the number of power supply cycles. Furthermore, it can be roughly understood how much the measurement operation time is incorrect. For example, the time estimate when the memory device 200 has 10 power cycles from the last time stamp may not be more accurate than the time estimate when the memory device 200 has only one power cycle from the last time stamp. There is.

メモリ装置200は、電源サイクル数チェックがTUPに含まれている場合には、最終タイムスタンプ以降のメモリ装置200の電源サイクル数をチェックし、その数値が「電源サイクル」値に設定されたしきい値を超過するか否かを確認する(アクト520)。このしきい値は所望の時間公差に応じてACRごとに設定できる。例えば非常にデリケートな認証で証明書やCRLの有効期限が過ぎていないことを確実に立証する必要があるなら、このしきい値を1に設定することができる。この場合、メモリ装置200の電源が一度でも切れていたなら(これに応じて少なくともある程度の時間は測定稼働時間に計上され得なくなる)、このパラメータのTUPチェックは不合格に終わる。その一方で、さほどデリケートでない認証なら電源サイクル数を高い数値に設定することができる(あるいはこれを一切考慮しない)。この場合、電源サイクルがいくらかあっても(測定稼働時間に計上されない時間がある程度あっても)、TUPチェックには合格する。   When the power cycle count check is included in the TUP, the memory device 200 checks the power cycle count of the memory device 200 after the last time stamp, and the threshold value is set to the “power cycle” value. It is confirmed whether or not the value is exceeded (act 520). This threshold can be set for each ACR depending on the desired time tolerance. For example, this threshold can be set to 1 if it is necessary to reliably verify that a certificate or CRL has not expired with very sensitive authentication. In this case, if the power supply of the memory device 200 has been turned off even once (accordingly, at least a certain amount of time cannot be counted in the measurement operation time), the TUP check of this parameter ends in failure. On the other hand, if the authentication is not so sensitive, the number of power cycles can be set to a high value (or this is not considered at all). In this case, the TUP check passes even if there are some power cycles (even if there is some time not counted in the measurement operation time).

電源サイクル数チェックが不合格に終わり、TUPパラメータでOR関係が判明する(アクト525)場合には、TUPチェックは不合格に終わる(アクト530)。メモリ装置200は不合格を伝えるメッセージをホスト装置300へ送信し、前述した手順により新規タイムスタンプを取得する。電源サイクル数のチェックに合格するなら、あるいは失格してもTUPパラメータにOR関係がないことが判明するなら(アクト525)、処理は継続し、最終タイムスタンプ以降の稼働時間チェックがTUPに含まれているか否かを判断する(アクト535)。   If the power cycle count check ends in failure and the OR relationship is determined by the TUP parameter (act 525), the TUP check ends in failure (act 530). The memory device 200 transmits a message indicating failure to the host device 300, and acquires a new time stamp by the above-described procedure. If the power cycle count check is passed, or if it is determined that the TUP parameter is not OR-related even if it is disqualified (Act 525), the process continues and the operation time check after the last time stamp is included in the TUP. It is determined whether or not (ACT 535).

前述した電源サイクル手順と同様に、「稼働時間」値が0なら、稼働時間のチェックは行われない。しかし、「稼働時間」値が0以外なら、その値を秒単位(または他の何らかの時間単位)のしきい値として使用し稼働時間をチェックする。電源サイクル数と同様に、稼働時間のしきい値は所望の時間公差に応じてACRごとに設定できる。一般的に、メモリ装置200の稼働が長いほど測定稼働時間が不正確になる見込みは高くなる。したがって、非常にデリケートな認証で証明書やCRLの有効期限が過ぎていないことを確実に立証する必要があるなら、測定稼働時間のしきい値を非常に低く設定することができる。逆に、認証がデリケートではないなら、測定稼働時間のしきい値をより高く設定することができる(あるいはこれを一切考慮しない)。   Similar to the power cycle procedure described above, if the “operating time” value is 0, the operating time is not checked. However, if the “operation time” value is other than 0, the value is used as a threshold value in seconds (or some other time unit) to check the operation time. Similar to the number of power cycles, the operating time threshold can be set for each ACR depending on the desired time tolerance. In general, the longer the operation of the memory device 200, the higher the likelihood that the measurement operation time will be inaccurate. Therefore, if it is necessary to reliably verify that the certificate or CRL has not expired with very delicate authentication, the threshold for the measurement operating time can be set very low. Conversely, if the authentication is not sensitive, the measurement uptime threshold can be set higher (or not considered at all).

稼働時間チェックが不合格に終わり、TUPパラメータでOR関係が判明する(アクト545)場合には、TUPチェックは不合格に終わる(アクト550)。メモリ装置200は不合格を伝えるメッセージをホスト装置300へ送信し、前述した手順により新規タイムスタンプを取得する。稼働時間チェックに合格するなら、あるいは失格してもTUPパラメータにOR関係がないことが判明するなら(アクト545)、処理は継続し、「伸張」稼働時間のチェックがTUPに含まれているか否かを判断する(アクト555)。   If the operating time check ends in failure and the OR relationship is determined by the TUP parameter (act 545), the TUP check ends in failure (act 550). The memory device 200 transmits a message indicating failure to the host device 300, and acquires a new time stamp by the above-described procedure. If the uptime check is passed, or if it is found that the TUP parameter is not OR-related even after disqualification (act 545), the process continues and whether or not the “extension” uptime check is included in the TUP. Is determined (act 555).

前に指摘したように、メモリ装置200が稼働時間を絶えず測定しないなら、測定稼働時間は真の実稼働時間にはならない場合がある。つまりメモリ装置200が「稼働していなければ」(例えば、メモリ装置200がアイドル状態かスリープモードになっている場合、メモリ装置200に電源が入っていない場合、メモリ装置200がホスト装置300から取り外される場合が挙げられる。いずれにせよこの実施形態ではハードウェアタイマーブロック270によるクロックティックの生成は停止する、および/またはCPU260によるティックへの反応は停止する)、稼働していないときに時間が経過していることをメモリ装置200で知る手だてはないため、測定された稼働時間は、測定開始以降に経過した実時間に満たないものとなる。例えば、1月1日にタイムスタンプを受信し、メモリ装置200が2日分の稼働時間を測定したと仮定する。(簡潔さを図るため、この例では日単位で時間を測定する。しかし、前述したように、任意の望ましい時間単位を使用できる。)このときメモリ装置200によって生成される時間推定の日付は1月3日になる(1月1日の最新タイムスタンプに2日の稼働時間を加算する)。メモリ装置200が稼働時間を絶えず測定していたなら、この時間推定は実時間を正確に表すものとなる(ハードウェアタイマーブロック270とCPU260は正確に機能していると仮定する)。しかし、メモリ装置200が稼働時間を連続的に測定していなかったら(稼働時間の測定開始後にメモリ装置200が稼働していないときがあったなら)、時間推定は実時間を正確に表すものにはならない。時間推定が伝える実時間はよくても1月3日どまりなのである。実時間は1月4日かそれ以降かもしれない(6月29日、11月2日、12月5日、翌年等)。したがって、アクト540における稼働時間チェックは正確な結果を出さないことがある。   As pointed out earlier, if the memory device 200 does not constantly measure the operating time, the measured operating time may not be a true actual operating time. That is, if the memory device 200 is “not operating” (for example, if the memory device 200 is in an idle state or a sleep mode, or if the memory device 200 is not powered on, the memory device 200 is removed from the host device 300). In any case, in this embodiment, the generation of clock ticks by the hardware timer block 270 is stopped and / or the CPU 260 stops responding to ticks), the time elapses when not running Since there is no way to know that the memory device 200 is doing, the measured operation time is less than the actual time that has elapsed since the start of measurement. For example, it is assumed that a time stamp is received on January 1 and the memory device 200 measures the operating time for two days. (For simplicity, this example measures time in days. However, as described above, any desired time unit can be used.) At this time, the date of the time estimate generated by the memory device 200 is 1. It will be the 3rd of the month (the working time of 2nd is added to the latest time stamp of 1st January). If the memory device 200 was constantly measuring uptime, this time estimate would accurately represent real time (assuming the hardware timer block 270 and the CPU 260 are functioning correctly). However, if the memory device 200 has not continuously measured the operation time (if the memory device 200 has not been operated after the start of the measurement of the operation time), the time estimation accurately represents the real time. Must not. The actual time reported by the time estimate is at least around January 3rd. Real time may be January 4th or later (June 29, November 2, December 5, next year, etc.). Therefore, the operating time check in Act 540 may not give an accurate result.

この問題に対処するため、「伸張」稼働時間のチェックをTUPに盛り込むことができる(アクト555および560)。「伸張」稼働時間とは、旧測定稼働時間の算出精度に基づいて測定稼働時間を調整したものである。メモリ装置200が3日の稼働時間を測定し、稼働時間を最後に測定したときの値が実時間の50%であったことを知っているなら、メモリ装置200は、3日の測定稼働時間を係数2(測定稼働時間が実時間の50%であったため)により調整(もしくは「伸張」)し、6日を算出し得る。稼働時間の「伸張」については、本願とともに出願され、本願明細書において参照により援用されている「Method for Improving Accuracy of a Time Estimate from a Memory Device」という米国特許出願第11/811,284号(特許文献1)と「Memory Device with Circuitry for Improving Accuracy of a Time Estimate」という米国特許出願第11/811,347号(特許文献2)とに詳細が記載されている。   To address this issue, a check for “extension” uptime can be included in the TUP (acts 555 and 560). “Extended” operating time is obtained by adjusting the measured operating time based on the calculation accuracy of the old measured operating time. If the memory device 200 measures the operating time for 3 days and knows that the value when the operating time was last measured was 50% of the real time, the memory device 200 measured the operating time for 3 days. Can be adjusted (or “stretched”) by a factor of 2 (because the measurement run time was 50% of real time) to calculate 6 days. For “extension” of operating time, US patent application Ser. No. 11 / 811,284 (“Method for Improving Accuracy of a Time Estimate from a Memory Device”) filed with the present application and incorporated herein by reference. Details are described in US Pat. No. 11 / 811,347 (Patent Document 2) entitled “Memory Device with Circuitry for Improving Accuracy of a Time Estimate”.

「伸張」稼働時間を使用する代わりに「伸張」非稼働時間を使用することもできる。非稼働時間は、メモリ装置200がタイムスタンプ間に稼働していなかった時間を指す。メモリ装置200がどれくらい長く稼働していなかったかを測定する手だてはないため、非稼働時間は計算値である。具体的には、非稼働時間=タイムスタンプ間の実時間−稼働時間である。「伸張」非稼働時間は、旧測定稼働時間(または測定稼働時間に基づく非稼働時間)の算出精度に基づいて調整された非稼働時間計算である。以下、考慮できる非稼働時間の変形例の例を示す。ここでの「DownTime」は「伸張」非稼働時間(既知のタイムスタンプ間非稼働時間の平均等)を指す。   Instead of using “stretched” working time, “stretched” non-working time can also be used. The non-operating time indicates a time during which the memory device 200 has not been operating between time stamps. Since there is no way to measure how long the memory device 200 has not been operating, the non-operating time is a calculated value. Specifically, non-operation time = actual time between time stamps−operation time. “Extended” non-working time is non-working time calculation adjusted based on the calculation accuracy of the old measured working time (or non-working time based on the measured working time). Hereinafter, examples of modifications of the non-operating time that can be considered will be shown. Here, “DownTime” indicates “extension” non-working time (average of non-working time between known time stamps, etc.).

合計非稼働時間推定(teDownTime):teDownTime=(タイムスタンプi −タイムスタンプi-1 −ActiveTimei )、ここでインデックスiは第2のタイムスタンプから最終タイムスタンプまで進み、メモリ装置200で設定される。
最終タイムスタンプ以降の現在の非稼働時間(cDowntime):これは、最終タイムスタンプ更新以降の電源サイクル数(PC)を基準として計算できるほか(cDowntime=最終タイムスタンプ以降のPC*(teDownTime/PC))、最終タイムスタンプ更新以降の稼働時間を基準として計算できる(cDowntime=最終タイムスタンプ以降のActiveTime*(teDownTime/ActiveTime))。
DownTimeパラメータを使用しないように設定するには、DownTime値を0に設定する。
DownTimeパラメータを使用するように設定するには、DownTimeを1に設定する。メモリ装置200はDownTimeプロパティをもとにタイムスタンプ更新が必要かどうかを評価する。ServiceTime(証明書の有効性、CRLの有効性等)−時間推定<DownTimeなら、タイムスタンプ更新は必要である。
Total non-working time estimate (teDownTime): teDownTime = (time stamp i −time stamp i−1− ActiveTime i ), where index i advances from the second time stamp to the last time stamp and is set in memory device 200 .
Current non-working time (cDowntime) after the last timestamp: This can be calculated based on the number of power cycles (PC) since the last timestamp update (cDowntime = PC after the last timestamp * (teDownTime / PC) ) And the operation time after the last time stamp update can be calculated as a reference (cDowntime = ActiveTime * (teDownTime / ActiveTime) after the last time stamp).
To set the DownTime parameter not to be used, set the DownTime value to 0.
To set to use the DownTime parameter, set DownTime to 1. The memory device 200 evaluates whether a time stamp update is necessary based on the DownTime property. ServiceTime (Certificate validity, CRL validity, etc.)-Time estimate <DownTime, timestamp update is required.

図7に戻ると、「伸張」稼働時間のチェックが不合格に終わるなら(アクト560)、TUPチェックは不合格に終わり(アクト565)、メモリ装置200はホスト装置300へメッセージを送信する。そして、前述した手順により新規タイムスタンプを取得する。「伸張」稼働時間のチェックに合格するなら(あるいはTUPチェックのためにメモリ装置200が初期化されていないなら)、メモリ装置200は「TUP合格」メッセージ510,570をホスト装置300へ返す(図4参照)。そして、ホスト装置300はエンティティの証明書とCRLをメモリ装置200へ送信し、メモリ装置はエンティティの認証を試みる(アクト585)。具体的には、メモリ装置200は最後の受信タイムスタンプと測定稼働時間とに基づき時間推定を生成し、証明書を検査し(アクト585)、CRLを検査する(アクト590)。証明書とCRLの有効期限が生成された時間推定より後なら、メモリ装置200はホスト装置300へOKメッセージを返し、さらに認証方法にほかのステップがあるなら、それらステップを実行できる。エンティティが認証される場合には、オブジェクトに対する権利がACR201からエンティティに授与される(この場合、プレイヤ301とDRMモジュール207との間でセキュアチャネルが確立する)。証明書および/またはCRLが期限切れになっている場合には、認証試行に失敗したことを伝えるメッセージがメモリ装置200からホスト装置300へ送信される。これを受けてホスト装置300は、前述したタイムスタンプ更新を開始できる。   Returning to FIG. 7, if the “stretch” operating time check fails (ACT 560), the TUP check fails (ACT 565), and the memory device 200 sends a message to the host device 300. Then, a new time stamp is acquired according to the procedure described above. If the “extension” operating time check is passed (or if the memory device 200 has not been initialized for the TUP check), the memory device 200 returns a “TUP passed” message 510, 570 to the host device 300 (FIG. 4). Then, the host device 300 transmits the entity certificate and the CRL to the memory device 200, and the memory device attempts to authenticate the entity (act 585). Specifically, the memory device 200 generates a time estimate based on the last received timestamp and the measured operating time, checks the certificate (act 585), and checks the CRL (act 590). If the expiration date of the certificate and the CRL is after the generated time estimate, the memory device 200 returns an OK message to the host device 300, and if there are other steps in the authentication method, these steps can be executed. If the entity is authenticated, rights to the object are granted to the entity from the ACR 201 (in this case, a secure channel is established between the player 301 and the DRM module 207). When the certificate and / or the CRL has expired, a message notifying that the authentication attempt has failed is transmitted from the memory device 200 to the host device 300. In response to this, the host device 300 can start the time stamp update described above.

前述したように、認証試行に用いる時間推定は、最終タイムスタンプに測定稼働時間を加算することによって生成される。測定稼働時間は正確でないかもしれないため、時間推定の精度を向上させるため、前述した「時間伸張」手法を用いることができる。しかし、「伸張」稼働時間は、実際には実時間を上回ることがある。TUPをチェックする場合にそのような稼働時間の「過大伸張」があると、新規タイムスタンプを取得することになる。しかし、証明書やCRLを検査する場合に稼働時間の「過大伸張」があると、正当なエンティティが認証されなくなるおそれがある。したがって、認証のために時間推定を生成する場合には、「時間伸張」を使用しないほうが望ましいこともある。   As described above, the time estimate used for the authentication attempt is generated by adding the measured operation time to the final time stamp. Since the measurement running time may not be accurate, the “time stretch” technique described above can be used to improve the accuracy of time estimation. However, the “stretched” operating time may actually exceed the real time. When checking the TUP, if there is such “overextension” of the operating time, a new time stamp is acquired. However, if the certificate or CRL is inspected and there is an “excessive extension” of the operation time, there is a possibility that a legitimate entity will not be authenticated. Thus, it may be desirable not to use “time stretch” when generating a time estimate for authentication.

要約すると、メモリ装置200は前述した方法によりエンティティ認証要求を受信し、エンティティの認証を試みる前に、新規タイムスタンプが必要か否かを判断する。新規タイムスタンプが必要なら、メモリ装置200は新規タイムスタンプを取得し、その新規タイムスタンプに基づき時間推定を生成し、その時間推定を証明書および/またはCRLの有効期間に比較することにより、エンティティの認証を試みる。新規タイムスタンプが必要でなければ、メモリ装置は最終タイムスタンプに基づき時間推定を生成し、その時間推定を証明書および/またはCRLの有効期間に比較することにより、エンティティの認証を試みる。   In summary, the memory device 200 receives an entity authentication request in the manner described above and determines whether a new time stamp is required before attempting to authenticate the entity. If a new time stamp is required, the memory device 200 obtains the new time stamp, generates a time estimate based on the new time stamp, and compares the time estimate to the validity period of the certificate and / or CRL. Attempt to authenticate. If a new timestamp is not needed, the memory device attempts to authenticate the entity by generating a time estimate based on the final timestamp and comparing the time estimate to the certificate and / or CRL validity period.

この実施形態ではエンティティの認証に先立ちTUPをチェックし、必要であれば新規タイムスタンプを取得することに留意するべきである。換言すると、TUPのチェックや新規タイムスタンプの取得に先立ち、エンティティを認証する必要はない。これは、1つのサーバを使ってタイムスタンプとDRMライセンスの両方を提供するシステムと対照的である。この場合、メモリ装置にタイムスタンプ(またはその他情報)を提供する前に、メモリ装置に対してサーバを認証する必要がある。これは「キャッチ22」と呼ばれる状況を招く。つまり、サーバの認証に新しい時間が必要でも、新しいタイムスタンプはサーバが認証された後でないと入手できない。そのような状況を回避するため、一部の先行システムでは認証プロセスに時間を使用しない。前述した「キャッチ22」状況は回避されても、時間を無視すると認証されるべきでないエンティティ(証明書および/またはCRLが期限切れになったエンティティ等)が認証されることがある。   Note that this embodiment checks the TUP prior to entity authentication and obtains a new timestamp if necessary. In other words, it is not necessary to authenticate the entity prior to checking the TUP or acquiring a new time stamp. This is in contrast to systems that use a single server to provide both timestamps and DRM licenses. In this case, it is necessary to authenticate the server to the memory device before providing the time stamp (or other information) to the memory device. This leads to a situation called “Catch 22”. That is, even if a new time is required for server authentication, a new time stamp can only be obtained after the server is authenticated. To avoid such situations, some prior systems do not use time for the authentication process. Even if the “catch 22” situation described above is avoided, entities that should not be authenticated if time is ignored (such as an entity whose certificate and / or CRL has expired) may be authenticated.

メモリ装置200に対して認証を試みるエンティティからタイムサーバ100を分離することにより、プレイヤ301とメモリ装置のタイムモジュール204との間に「フリーチャネル」ができあがり、プレイヤ301はタイムサーバ100からのタイムスタンプ更新を引き渡せるようになる(図3参照)。このタイムスタンプから時間推定を生成し、認証にあたっては、その時間推定に照らしてエンティティの信用証明を検証できる。「フリーチャネル」は、最初のエンティティ認証を省いて確立される通信ルートを指す。対照的に、「セキュアチャネル」はエンティティが認証された後でないと確立されない通信ルートを指す。   By separating the time server 100 from the entity attempting to authenticate to the memory device 200, a “free channel” is created between the player 301 and the time module 204 of the memory device, and the player 301 receives a time stamp from the time server 100. Updates can be delivered (see FIG. 3). A time estimate is generated from this timestamp, and the authentication can verify the entity's credentials against the time estimate. “Free channel” refers to a communication route established without the initial entity authentication. In contrast, a “secure channel” refers to a communication route that can only be established after an entity has been authenticated.

プレイヤ301を認証せずとも、プレイヤ301を管路として使用し、タイムサーバ100からメモリ装置200へタイムスタンプを供給することはできるが、タイムスタンプが信頼された供給元からのものであることを保証するため、タイムサーバ100は認証したほうがよい。これを示す図4および図6のアクト435では、タイムサーバ100のタイムスタンプを受け付ける前にタイムサーバ100の証明書とCRLを検査している。しかし、前述した「キャッチ22」状況を回避するには、メモリ装置200でタイムサーバ100の証明書およびCRLの有効期間が過ぎていないと仮定したほうが好ましく、その場合には時間推定による有効期間の検査は行われない。   Even if the player 301 is not authenticated, the player 301 can be used as a conduit, and the time stamp can be supplied from the time server 100 to the memory device 200. However, the time stamp is from a trusted source. In order to guarantee, the time server 100 should be authenticated. 4 and FIG. 6 showing this, the certificate and CRL of the time server 100 are inspected before the time stamp of the time server 100 is received. However, in order to avoid the above-described “catch 22” situation, it is preferable to assume that the validity period of the certificate of the time server 100 and the CRL has not expired in the memory device 200. No inspection is performed.

メモリ装置200に対して認証されたエンティティは、ACRの権限管理記録(PCR)に記載された種々のアクションを実行できる。例えば、図3を再び参照すると、プレイヤ301はセキュアチャネルを通じてDRMモジュール207と通信し、メモリ装置200にある被保護コンテンツ205に対してアクセスを試みることができる。(もうひとつの例として、ストレージアプリケーション302のACRは、このアプリケーション302がメモリ装置200に被保護コンテンツ205を蓄積することを許可する。)プレイヤ301が認証済みでもコンテンツは保護されているから、DRMモジュール207は、被保護コンテンツ205のロックを解除する前に、DRMライセンス206の検証を試みる(例えば、ライセンスが引き続き有効であるか、それとも期限切れかを判断する)。DRMモジュール207はこれを果たすため、メモリ装置200のタイムモジュール204に時間推定を要求する。(タイムモジュール204は、時間推定の生成に用いる様々な要素(タイムスタンプ、稼働時間、電源サイクル数、「伸張」係数等)を蓄積し生成する前述したソフトウェアおよび/またはハードウェアを指す。)DRMモジュール207は生成された時間推定をライセンス206の中にある失効日および/または有効期間に比較し、ライセンスが有効か否かを判断する。DRMモジュール207はライセンスの検証にあたって別のチェックを実行することもでき、例えば、被保護コンテンツ205の再生回数が所定の回数を超過しているか否かを判断するチェックを含むが、これに限定されない。   An entity authenticated to the memory device 200 can perform various actions described in the ACR's authority management record (PCR). For example, referring again to FIG. 3, the player 301 can communicate with the DRM module 207 through a secure channel and attempt to access the protected content 205 in the memory device 200. (As another example, the ACR of the storage application 302 allows the application 302 to store the protected content 205 in the memory device 200.) Since the content is protected even if the player 301 has been authenticated, the DRM The module 207 attempts to verify the DRM license 206 before unlocking the protected content 205 (eg, determine whether the license is still valid or has expired). To accomplish this, the DRM module 207 requests time estimation from the time module 204 of the memory device 200. (Time module 204 refers to the aforementioned software and / or hardware that accumulates and generates various elements (time stamp, uptime, number of power cycles, “stretch” factor, etc.) used to generate a time estimate.) Module 207 compares the generated time estimate to the expiration date and / or validity period in license 206 to determine whether the license is valid. The DRM module 207 can also execute another check for license verification, including, for example, a check for determining whether or not the number of times the protected content 205 has been reproduced exceeds a predetermined number, but is not limited thereto. .

前述したように、タイムスタンプが新しいほど時間推定が正確になる見込みは高くなる。前述した実施形態では、ACRのTUPによってタイムスタンプ更新が必要か否かが決まる。したがって、DRMライセンス検証のために生成される時間推定がどの程度正確なものになるかは、事実上TUPによって決まる。TUPパラメータの決定にあたっては、期限切れを検討しながらサービスを提供するサービスプロバイダのニーズと、新しいタイムスタンプを取得するために面倒でもホスト装置をネットワークへ接続しなければならないエンドユーザのニーズとで、バランスをとる必要がある。時間公差が極端に緩いと、サービスプロバイダの収益が損なわれるおそれがある。その一方で、時間公差が極端に厳しいと、タイムスタンプを取得するための頻繁なネットワーク接続が負担となって、エンドユーザはサービスを断念するおそれがある。   As described above, the newer the time stamp, the higher the likelihood that the time estimate will be accurate. In the above-described embodiment, whether or not the time stamp update is necessary is determined by the ACR TUP. Therefore, how accurate the time estimate generated for DRM license verification will depend on the TUP in effect. When determining TUP parameters, there is a balance between the needs of service providers who provide services while considering expiration and the needs of end users who have to connect the host device to the network even if it is troublesome to obtain a new time stamp. It is necessary to take If the time tolerance is extremely loose, the service provider's revenue may be impaired. On the other hand, if the time tolerance is extremely strict, frequent network connection for obtaining the time stamp is a burden, and the end user may give up the service.

メモリ装置200にあるACRがただ1つで、TUPがただ1つの場合には(あるいは複数のACRで同じTUPを共有する場合には)、全てのサービスプロバイダに1つの「共通」TUPを使って適度のバランスをとることはできないかもしれない。そこで、この実施形態のメモリ装置200は、TUPがそれぞれ異なる(TUP1,TUP2)複数のACR201,202を有し、TUPは該当するサービスプロバイダが設定できるようになっている。前述したように、個別のACRを設けることにより、認証にあたって異なる認証方式(対称認証、非対称認証等)を使用するようにメモリ装置200を設定することができる。個別のACRを設けることにより、時間公差の設定も可能になる。ACRのTUPが設定可能なら、サービスプロバイダは独自の時間公差を設定できる。つまり、時間を伝えるメモリ装置のパラメータ(稼働時間、電源サイクル数、「伸張」稼働時間/非稼働時間等)を古いと判断し、タイムスタンプ更新をトリガーする時期を指定できる。TUPが設定可能なら、サービスプロバイダは1つの「共通」TUPに頼る代わりに、自身のニーズとエンドユーザとの関係に基づいて時間公差を設定できる。   If there is only one ACR in the memory device 200 and only one TUP (or if the same TUP is shared by multiple ACRs), one “common” TUP is used for all service providers. You may not be able to get the right balance. Therefore, the memory device 200 of this embodiment has a plurality of ACRs 201 and 202 with different TUPs (TUP1, TUP2), and the TUP can be set by the corresponding service provider. As described above, by providing individual ACRs, the memory device 200 can be set to use different authentication methods (symmetric authentication, asymmetric authentication, etc.) for authentication. By providing individual ACRs, time tolerances can be set. If the ACR TUP is configurable, the service provider can set its own time tolerance. In other words, it is possible to determine that the memory device parameters (time of operation, number of power supply cycles, “extension” operating time / non-operating time, etc.) that convey the time are old and trigger the time stamp update. If the TUP is configurable, service providers can set time tolerances based on their needs and end user relationships instead of relying on a single “common” TUP.

例えば、サービスプロバイダによっては証明書を発行する時間が非常に短い(10分間等)。エンドユーザがメモリ装置200でサービスの利用を望むたびに新しい証明書の取得をエンドユーザに強制することにより、サービスプロバイダはエンドユーザの挙動を綿密に監視し、エンドユーザが証明書を要求するたびに料金を査定できる。このビジネスモデルの場合には、サービスプロバイダには金銭還元のための厳重な公差が必要になる。もうひとつの例として、エンドユーザのインストールベースが極めて流動的な場合に、サービスプロバイダは、そのビジネスモデルの主要部分として、証明書を頻繁に取り消す必要があるかもしれない。この場合も、サービスプロバイダは認証にあたって最新CRLの使用を徹底するため、厳重な時間公差を望む。その一方で、サービスプロバイダが月単位の定期契約サービスを提供し、ユーザが新しいコンテンツを手に入れるために規則的にサービスプロバイダのウェブサイトに接続し、強制タイムスタンプ更新を受けるなら、エンドユーザは新たなコンテンツを手に入れるためにネットワークへ接続することが見込まれるから、さほど厳重な時間公差でなくてもよい。   For example, depending on the service provider, the time for issuing a certificate is very short (such as 10 minutes). By forcing the end user to obtain a new certificate each time the end user wants to use the service in the memory device 200, the service provider closely monitors the end user's behavior and whenever the end user requests a certificate. You can assess the fee. In this business model, service providers require tight tolerances for money return. As another example, service providers may need to revoke certificates frequently as a key part of their business model when the end user's installed base is very fluid. Again, the service provider wants tight time tolerances to ensure that the latest CRL is used for authentication. On the other hand, if a service provider offers a monthly subscription service and the user regularly connects to the service provider's website to get new content and receives a mandatory timestamp update, the end user Since it is expected to connect to the network to obtain new content, the time tolerance may not be so strict.

ACRで設定可能なTUPを使用する代わりに、あるいはACRで設定可能なTUPを使用することに加えて、各コンテンツのDRMライセンスに設定可能なTUPを配置することができる。この場合、認証済みエンティティが全てのコンテンツを同様に扱うのではなく、一部のコンテンツについては既存タイムスタンプを使用し、他のコンテンツについては新規タイムスタンプの取得をエンティティに強制することができる。(認証のときのみチェックがなされるACRのTUPと違って、ライセンスに配置されたTUPは、DRMモジュール207がライセンスの検証を試みるたびにチェックされる。)   Instead of using a TUP that can be set by ACR, or in addition to using a TUP that can be set by ACR, a TUP that can be set for a DRM license of each content can be arranged. In this case, the authenticated entity does not handle all content in the same way, but can use the existing time stamp for some content and force the entity to obtain a new time stamp for other content. (Unlike the ACR TUP, which is checked only during authentication, the TUP placed in the license is checked each time the DRM module 207 attempts to verify the license.)

例えば、ユーザが自身のメモリ装置に2時間の映画をダウンロードする状況について考えてみる。ユーザのメモリ装置には、その映画が24時間限定で視聴できることを伝えるライセンスも併せてダウンロードされる。サービスプロバイダは、ユーザが24時間を過ぎて映画を視聴することを望んでいないが、通常のユーザに新しいタイムスタンプを取得させるためにネットワークに接続する面倒をかけることも望んでいない。そこで、サービスプロバイダは、稼働時間が4時間(2時間の映画を観るのにかかる稼働時間×2)を上回る場合には新規タイムスタンプを要求するTUPをライセンスに配置することに決める。DRMモジュール207がライセンスの検証を試みるときに稼働時間が4時間を上回っているなら、ユーザは映画を観られなくなる(映画を観られなくなるのは新規タイムスタンプが必要だからであって、ライセンスの期限切れとは限らない)。(稼働時間の代わりに、あるいは稼働時間に加えて、電源サイクル数をTUPに使用することもできる。例えば、平均的な使用パターンに基づき、10回以上の電源サイクルからメモリ装置の使用時間が24時間を超えていると判断できる。)新規タイムスタンプから生成された時間推定によってライセンスが有効であることが判明する場合には、DRMモジュール207は映画の再生を再び許可する。   For example, consider the situation where a user downloads a two hour movie to his memory device. A license is also downloaded to the user's memory device, telling them that the movie can be viewed for a limited time of 24 hours. The service provider does not want the user to watch the movie beyond 24 hours, but also does not want to take care of connecting to the network to get a normal user to get a new timestamp. Therefore, the service provider decides to place a TUP requesting a new time stamp in the license when the operation time exceeds 4 hours (operation time required to watch a two-hour movie × 2). If the DRM module 207 attempts to verify the license and the uptime exceeds 4 hours, the user will not be able to watch the movie (because the movie will not be watched because a new timestamp is required and the license has expired) Not necessarily). (Instead of or in addition to operating time, the number of power cycles can also be used for TUP. For example, based on an average usage pattern, the memory device usage time can be 24 times from 10 or more power cycles. It can be determined that the time has been exceeded.) If the time estimate generated from the new time stamp reveals that the license is valid, the DRM module 207 again allows the movie to be played.

TUPをライセンス単位で設定できるなら、コンテンツに合わせてTUPを調整できる。つまり、24時間後に期限切れになる映画ではなく、1週間後に期限切れになる映画なら、ライセンスの時間公差設定を変えることができる。例えば、サービスプロバイダは、メモリ装置が平均して1日当たり10時間使われると推定し、70時間(1日当たり10時間×7日)の稼働時間を過ぎると時間更新をトリガーするようにライセンスのTUPを設定できる。もうひとつの例として、2時間の映画の代わりに、コンテンツが3分間のペイ・パー・ビュー方式のビデオで、視聴が1回限りなら、3分の稼働時間の後に新規タイムスタンプを要求するようにTUPを設計できる。   If the TUP can be set in units of licenses, the TUP can be adjusted according to the content. In other words, the license time tolerance setting can be changed for a movie that expires after one week rather than a movie that expires after 24 hours. For example, a service provider may estimate that memory devices will be used on average 10 hours per day and trigger a license TUP to trigger a time update after 70 hours (10 hours per day x 7 days) of uptime. Can be set. As another example, instead of a two-hour movie, if the content is a three-minute pay-per-view video and if it is only viewed once, request a new timestamp after three minutes of working time TUP can be designed.

TUPの設計にあたって、サービスプロバイダのビジネスモデルも考慮に入れることができる。例えば、現在、保護された音楽の権利配布にあたって、月単位の定期契約サービスが一般的なビジネスモデルになっている。音楽の定期契約サービスでは、ユーザがサービスプロバイダのウェブサイトから好きなだけ音楽をダウンロードし、1ヶ月間は好きなだけその音楽を再生できる。その月が過ぎると、ユーザはライセンスを更新するために自身の定期契約を更新する必要がある。そうしなければ、ライセンスは失効し、ユーザは自身のメモリ装置に蓄積された音楽を再生できなくなる。別の音楽をダウンロードするためにサービスプロバイダのウェブサイトを頻繁に訪れるユーザは、ウェブサイトに接続するたびに新規タイムスタンプを受け取るから、そのユーザのメモリ装置から提供される時間推定の精度は上がる。しかし、比較的大量の音楽をダウンロードするユーザは、月単位のライセンスが期限切れになる前にサービスプロバイダのウェブサイトに再び接続するとは限らない。最終的にそのユーザが別の音楽をダウンロードするために再び接続したら、サービスプロバイダはライセンス期間外に音楽を再生した時間に対する料金をユーザに請求できる。このようなビジネスモデルのため、月極め定期契約のサービスプロバイダが求める時間公差は、ペイ・パー・ユース型コンテンツのサービスプロバイダのものから大いに異なるものとなる。ペイ・パー・ユース型コンテンツのユーザは、コンテンツを受け取ったウェブサイトに戻らない可能性がある。月極め定期契約サービスのユーザは、別の音楽をダウンロードするためにウェブサイトに戻る見込みがペイ・パー・ユース型サービスより高いため、月極め定期契約のサービスプロバイダにとって厳重な時間公差は望ましくないかもしれない。これは時間公差を厳しくすると、厳しくしなくてもいずれは戻ってくる顧客に新規タイムスタンプの取得を要求し、顧客の気分を害することになるからである。時間公差を緩めると、サービスプロバイダのウェブサイトに戻らない顧客が1ヶ月のライセンス期間より長く音楽を再生(例えば、1ヶ月の実時間ではなく1ヶ月の稼働時間にわたって再生)できることになる。しかし、サービスプロバイダは諸般の事情を考え合わせ、戻ってくる顧客に不便な思いをさせ気分を害する事態を避けるために払う犠牲として、そのような不正使用を認めるかもしれない。   The service provider's business model can also be taken into account when designing the TUP. For example, monthly subscription services are now a common business model for distributing protected music rights. The music subscription service allows users to download as much music as they want from the service provider's website and play it as much as they want for one month. After that month, the user needs to renew his subscription to renew the license. Otherwise, the license expires and the user cannot play music stored in his memory device. A user who frequently visits the service provider's website to download another music receives a new time stamp each time he connects to the website, thus increasing the accuracy of the time estimate provided from the user's memory device. However, users who download a relatively large amount of music do not always reconnect to the service provider's website before their monthly license expires. Eventually, when the user reconnects to download another music, the service provider can charge the user for the time the music was played outside the license period. Due to this business model, the time tolerances required by service providers with monthly subscriptions differ greatly from those of pay-per-use content service providers. Pay-per-use content users may not return to the website that received the content. Strict time tolerances may not be desirable for monthly subscription service providers because users of monthly subscription services are more likely to return to the website to download other music than pay-per-use services . This is because if the time tolerance is tightened, even if it is not tightened, the returning customer will be requested to acquire a new time stamp, and the customer will be offended. Loose time tolerances allow customers who do not return to the service provider's website to play music longer than the one-month license period (eg, play over one month of operating time rather than one month of real time). However, service providers may allow such misuse at the expense of combining various circumstances and making inconveniences to return customers and avoiding offenses.

もうひとつの例として、ユーザが自身の携帯電話機を使ってメモリ装置から音声や映像を再生しているときに、サービスプロバイダが携帯電話機に向けてポイント広告を提供するビジネスモデルについて考えてみる。そのポイント広告がコンテンツの再生時に携帯電話機の近くにある店舗に関するものなら、コンテンツが再生されているときにはホスト装置がネットワークへ接続されていなければならない。接続されていなければ、所在地ごとに異なるポイント広告を送りとどけることはできない。これを徹底するには、ユーザが確実にネットワークへ接続し新規タイムスタンプを取得するようにコンテンツのTUPを非常に低い量(1分の稼働時間等)に設定することができる。ユーザがネットワークへ接続したら、ネットワークは携帯電話機の所在地を把握し、適切な広告コンテンツを携帯電話機に送りつけることができる。その一方で、サービスプロバイダが収益をあげるにあたってコンテンツの再生回数さえ分かればよいなら、時間公差をかなり緩くできる。   As another example, consider a business model in which a service provider provides point advertisements to a mobile phone when the user is playing audio or video from a memory device using his / her mobile phone. If the point advertisement relates to a store near the mobile phone when the content is reproduced, the host device must be connected to the network when the content is reproduced. If you are not connected, you cannot send different point advertisements for each location. To ensure this, the content TUP can be set to a very low amount (such as one minute of uptime) so that the user can reliably connect to the network and obtain a new time stamp. When the user connects to the network, the network can know the location of the mobile phone and send appropriate advertising content to the mobile phone. On the other hand, if the service provider only needs to know the number of times the content has been played to make a profit, the time tolerance can be considerably relaxed.

前述した例から分かるように、ライセンスファイルに設定可能TUPを使用することにより、コンテンツのサービスプロバイダは、タイムスタンプ更新のためにネットワークへのホスト装置接続を顧客に強いて顧客の気分を害することがないように、適当な時間更新を設定しバランスをとることができる。この実施形態のメモリ装置は多数のTUPを備える多目的・多用途メモリ装置であるため、メモリ装置で一定の時間が過ぎてある1つのサービスが締め切られても、他のサービスは有効であり続ける。つまり、TUPはコンテンツのライセンスごとに異なるため、たとえプレイヤが認証済みであっても、場合によってはメモリ装置で再生できるコンテンツと、新規タイムスタンプを取得しない限り再生できないコンテンツがある。   As can be seen from the above example, by using a configurable TUP in the license file, the content service provider does not impair the customer's mood by forcing the customer to connect the host device to the network for the time stamp update. In this way, an appropriate time update can be set and balanced. Since the memory device of this embodiment is a multi-purpose / multi-purpose memory device having a large number of TUPs, even if one service is overdue after a certain period of time in the memory device, other services continue to be effective. That is, since the TUP is different for each content license, there are content that can be played back by the memory device and content that cannot be played back unless a new time stamp is acquired even if the player is authenticated.

前に説明したように、これら実施形態のメモリ装置は2つの構成要素を含む。つまり、中央セキュリティシステムと、中央セキュリティシステムから独立した1つ以上のアプリケーションとからなる。(アプリケーションは中央セキュリティシステムから独立しているため、ここではアプリケーションのことを「エクステンション」または「内部エクステンション」と呼ぶことがある。)図3に見られる実施形態で、アプリケーションはDRMモジュール207の形態をとっている。しかし、eコマース機能、バンキング機能、クレジットカード機能、電子マネー機能、生体計測機能、アクセス制御機能、個人データ機能、eメール保安機能を提供するアプリケーション等、これとは別のアプリケーションを使用することもできる。また、図3のメモリ装置200にはただ1つのアプリケーションが示されているが、数通りのアプリケーションをメモリ装置に用意することもできる(DRMモジュールとeコマースモジュール等)。   As previously described, the memory devices of these embodiments include two components. That is, it consists of a central security system and one or more applications independent of the central security system. (Because the application is independent of the central security system, the application may be referred to herein as an “extension” or “internal extension”.) In the embodiment seen in FIG. Have taken. However, other applications such as e-commerce function, banking function, credit card function, electronic money function, biometric function, access control function, personal data function, e-mail security function may be used. it can. In addition, although only one application is shown in the memory device 200 of FIG. 3, several kinds of applications can be prepared in the memory device (DRM module, e-commerce module, etc.).

中央セキュリティシステムはACRを使用し、メモリ装置内のアプリケーション(DRMエージェント等)を通じてメモリ装置に蓄積された被保護データに対してアクセスを試みるエンティティを認証する。メモリ装置に対してエンティティが認証されると、エンティティと、エンティティの認証に使ったACRによって指定されるアプリケーションとの間で、セキュアセッションが始まる。そこで、エンティティは、被保護データにアクセスするためのコマンド/要求をアプリケーションに送信できる。このように、中央セキュリティシステムはメモリ装置にとって門番の役割を果たす。前に参照した米国特許出願第11/557,028号(特許文献10)で詳述されているように、中央セキュリティシステムはメモリ装置200で実行する種々のアプリケーションを分離することもでき、その場合には、ある1つのアプリケーションは他のアプリケーションのデータにアクセスできない。   The central security system uses ACR to authenticate an entity attempting to access protected data stored in the memory device through an application (such as a DRM agent) in the memory device. When the entity is authenticated against the memory device, a secure session begins between the entity and the application specified by the ACR used to authenticate the entity. The entity can then send a command / request to the application to access the protected data. Thus, the central security system acts as a gatekeeper for the memory device. As detailed in previously referenced US patent application Ser. No. 11 / 557,028, the central security system can also separate various applications executing on the memory device 200, in which case One application cannot access data of another application.

中央セキュリティシステムはアクセス管理機構を提供し、メモリ装置に蓄積されたデータに対するアクセスを認可されたエンティティに限定する形でデータを保護するが、中央セキュリティシステム自体は、保護の対象となるデータを認識し処理しない場合がある。被保護データを認識し処理するのは、メモリ装置で実行するアプリケーションである。例えば、被保護データがDRMライセンスなら、中央セキュリティシステムではなくDRMエージェントがDRMライセンスを検証する。したがって、中央セキュリティシステムは、アプリケーションから独立した設定可能なツールボックスとみなすことができる。具体的には、サービスプロバイダがメモリ装置にアプリケーションを設置し、ACRを設定することにより、アプリケーションに特定のエンティティが対応付けられる。中央セキュリティシステムから見た場合には、中央セキュリティシステムはそのアプリケーションがどのような働きをするのか(例えば、アプリケーションがDRMライセンス検証を果たすのか、eコマース機能を果たすのか)を知らないが、ACRに対して認証されたエンティティだけが、ACRで指定されたアプリケーションと通信できることは知っている。中央セキュリティシステムによってエンティティが認証されたら、中央セキュリティシステムはエンティティとアプリケーションとの間にセキュアチャネルを開放する。   The central security system provides an access management mechanism that protects data in a manner that limits access to data stored in memory devices to authorized entities, but the central security system itself recognizes the data to be protected. However, it may not be processed. It is the application that runs on the memory device that recognizes and processes the protected data. For example, if the protected data is a DRM license, the DRM agent verifies the DRM license instead of the central security system. Thus, the central security system can be viewed as a configurable toolbox independent of the application. Specifically, when a service provider installs an application in a memory device and sets an ACR, a specific entity is associated with the application. From the perspective of the central security system, the central security system does not know how the application works (eg, whether the application performs DRM license verification or e-commerce functions), but the ACR Only entities that have been authenticated against know that they can communicate with the application specified in the ACR. Once the entity is authenticated by the central security system, the central security system opens a secure channel between the entity and the application.

場合によっては中央セキュリティシステムとアプリケーションの両方で時間を知る必要がある。例えば、中央セキュリティシステムは時間ベースの認証(非対称認証等)にあたって時間を知る必要があり、アプリケーションは時間ベースの操作(DRMライセンス検証等)にあたって時間を知る必要がある。前述したように、メモリ装置の中央タイムモジュールは、中央セキュリティシステムとメモリ装置で実行するアプリケーションの両方に時間を提供できる。例えば、図3を参照すると、タイムモジュール204は種々エンティティの認証のために非対称ACR201,202に時間を提供するほか、ライセンスの有効性検査のためにDRMモジュール207に時間を提供する。図8との関係で後述するように、メモリ装置のアプリケーションは、場合によってはタイムモジュールの時間に加えて、あるいはタイムモジュールの時間の代わりに、ホスト時間の使用を選ぶことができる。   Sometimes it is necessary to know time in both the central security system and the application. For example, the central security system needs to know the time for time-based authentication (such as asymmetric authentication), and the application needs to know the time for time-based operations (such as DRM license verification). As described above, the central time module of the memory device can provide time to both the central security system and the applications executing on the memory device. For example, referring to FIG. 3, the time module 204 provides time to the asymmetric ACRs 201, 202 for authentication of various entities, as well as time to the DRM module 207 for license validation. As will be described later in connection with FIG. 8, the memory device application may choose to use host time in addition to or instead of time module time, as the case may be.

図8は、ホスト装置700と通信するメモリ装置600を示す。ホスト装置700はエンティティ(ここでは、プレイヤ710)を備え、時間720を提供する何らかのメカニズム(バッテリ方式のクロック等)を有する。この例のメモリ装置600は対称ACR610(非対称ACRでもよい)と、タイムモジュール620と、DRMモジュール630と、被保護コンテンツ640と、被保護コンテンツ640のライセンス650とを有する。(図8におけるメモリ装置のアプリケーションはDRMモジュール630である。これとはタイプの異なるアプリケーションも使用でき、メモリ装置で2つ以上のアプリケーションを実行できることに留意するべきである。)対称ACR610を使用しメモリ装置600に対してプレイヤ710が認証されると、対称ACR610に設定されたパラメータに従いプレイヤ710とDRMモジュール630との間にセキュアチャネル660が確立する。DRMモジュール630とプレイヤ710は互いを知らないが、サービスプロバイダによって設定された対称ACR610によりDRMモジュール630はプレイヤ710に対応付けられている。したがって、同一グループの相手方にあたるDRMモジュール630とプレイヤ710との間にはある程度の信頼関係がある。この信頼関係に基づき、時間の供給元としてプレイヤ710からホスト時間720を受け付けDRMライセンス検証を実行するようにDRMモジュール630をプログラムできる。DRMライセンスの検証を実行するDRMモジュール630には、時間を供給するタイムソースが2つある。つまり、ホスト時間720と、メモリ装置の中央タイムモジュール620からの時間を利用できる。これらタイムソースにはそれぞれ利点と欠点とがある。メモリ装置のタイムモジュール620は連続的に時間を追跡しないため、タイムモジュール620の時間はホスト時間720ほど正確ではない。ホスト時間720は多くの場合、バッテリ方式の連続クロックによって提供される。その一方で、前述したセキュリティ対策のためには、タイムモジュール620の時間のほうがホスト時間720より安全であり、ホスト装置700のユーザが単純なユーザインターフェイスを使ってホスト時間720を変更できる場合には特に、タイムモジュール620の時間のほうが安全である。   FIG. 8 shows a memory device 600 that communicates with the host device 700. The host device 700 includes an entity (here, a player 710) and has some mechanism (such as a battery-powered clock) that provides time 720. The memory device 600 of this example includes a symmetric ACR 610 (which may be an asymmetric ACR), a time module 620, a DRM module 630, protected content 640, and a license 650 for the protected content 640. (The memory device application in FIG. 8 is the DRM module 630. Note that different types of applications can be used and more than one application can run on the memory device.) When the player 710 is authenticated with respect to the memory device 600, a secure channel 660 is established between the player 710 and the DRM module 630 according to the parameters set in the symmetric ACR 610. Although the DRM module 630 and the player 710 do not know each other, the DRM module 630 is associated with the player 710 by the symmetric ACR 610 set by the service provider. Accordingly, there is a certain degree of trust between the DRM module 630 and the player 710 that are counterparts in the same group. Based on this trust relationship, the DRM module 630 can be programmed to accept the host time 720 from the player 710 as the time source and perform DRM license verification. The DRM module 630 that performs DRM license verification has two time sources that supply time. That is, the host time 720 and the time from the central time module 620 of the memory device can be used. Each of these time sources has advantages and disadvantages. The time module 620 time is not as accurate as the host time 720 because the memory device time module 620 does not continuously track time. Host time 720 is often provided by a battery-powered continuous clock. On the other hand, for the security measures described above, the time of the time module 620 is safer than the host time 720, and the user of the host device 700 can change the host time 720 using a simple user interface. In particular, the time of the time module 620 is safer.

メモリ装置600で実行するアプリケーション(DRMモジュール630等)は、時間ベースの操作に用いる時間推定の生成に適した形で2通りのタイムソースを使用するようにプログラムできる。(しかし、好ましくは、アプリケーションはホスト時間720を使ってタイムモジュール620を更新できない。)例えば、アプリケーションは、タイムモジュール620の時間の代わりに常にホスト時間720を使用するようにプログラムできるほか、ホスト時間720の代わりに常にタイムモジュール620の時間を使用するようにプログラムできる。もうひとつの例として、ホスト時間720とタイムモジュール620の時間のうちの遅い(または早い)ほうを使用するようにアプリケーションをプログラムできる。両方のタイムソースを何らかの形で使用し(例えば、ホスト時間720とタイムモジュール620の時間の平均をとり)、時間推定を生成するようにアプリケーションをプログラムすることもできる。もうひとつの例として、アプリケーションはホスト装置700に関する情報に基づいて使用するタイムソースを決めることができる。アプリケーションは認証プロセスを通じてホスト装置のタイプを知ることができる(例えば、非対称認証を使用するなら、ホスト装置700の個別の識別子とグループ識別子を認証アルゴリズムからアプリケーションに知らせることができる)。ホスト装置には安全なものとそうでないものとがあるため、この情報は重要であり得る。例えば、ホスト装置がPCなら、ソフトウェアアプリケーションの単純なユーザインターフェイスを使ってPCのクロックを容易に操作できる。(信用度が比較的低いホスト装置からのホスト時間を信用しないほか、アプリケーションは、コンテンツキー、ライセンス値または期間、ライセンス変更権利を有するホスト装置で実行するエンティティを信用できないこともある。この場合、DRMエージェントは(暗号鍵とコンテンツをホスト装置に与える代わりに)メモリ装置からホスト装置に向けてコンテンツを流すだけでよい。)しかし、ホストが閉鎖されたシステムなら、例えばMP3プレイヤなら、ホストのクロックを操作することは格段に困難になる場合がある。したがって、ホスト装置600で実行するアプリケーションにとって、ホスト装置700がPCである場合よりホスト装置700がMP3プレイヤである場合のほうが、ホスト時間720を信用できる。   Applications executing on memory device 600 (such as DRM module 630) can be programmed to use two time sources in a manner suitable for generating time estimates for use in time-based operations. (But preferably, the application cannot update the time module 620 using the host time 720.) For example, the application can be programmed to always use the host time 720 instead of the time of the time module 620, as well as the host time. It can be programmed to always use the time of the time module 620 instead of 720. As another example, an application can be programmed to use the later (or earlier) of the host time 720 and the time module 620 time. Both time sources may be used in some way (eg, averaging the time of host time 720 and time module 620) and the application programmed to generate a time estimate. As another example, the application can determine a time source to be used based on information about the host device 700. The application can know the type of the host device through the authentication process (for example, if using asymmetric authentication, the authentication algorithm can inform the application of the individual identifier and group identifier of the host device 700). This information can be important because some host devices are secure and some are not. For example, if the host device is a PC, the PC clock can be easily manipulated using a simple user interface of a software application. (In addition to not trusting the host time from a host device with relatively low trustworthiness, the application may not be able to trust the entity running on the host device that has the content key, license value or duration, license change right. In this case, DRM The agent need only flow content from the memory device to the host device (instead of providing the encryption key and content to the host device). However, if the host is a closed system, for example an MP3 player, the host clock It can be much more difficult to operate. Therefore, for the application executed on the host device 600, the host time 720 can be trusted when the host device 700 is an MP3 player than when the host device 700 is a PC.

プレイヤ710は、一実施形態において、歌を再生するための要求をDRMモジュール630に送るときに、DRMモジュール630にホスト時間720を勧める。DRMモジュール630は、前述したように、ホスト時間720を使うか、それともタイムモジュール620の時間を使うかを決定する。ホスト時間720は、比較的短時間のログインセッションだけに使用したほうが好ましく、絶対的な現在時間としてその後のセッションで使用するべきではない。あるいは、ホスト時間720をアプリケーションで先々使用できるように蓄積し、その時間の精度を向上させるため、前述した「時間伸張」やその他のメカニズムを用いることもできる(オプション)。しかし、ホスト時間はアプリケーションの特定の時間ベース操作に限って使用したほうが好ましく、これを使ってタイムモジュール620の時間を更新するべきではない(アプリケーションは「エクステンション」であって、中央セキュリティシステムと同じ信用陣営を形成するものではないから)。前述したように、タイムモジュール620の時間は必ず、信頼されたタイムサーバ(中央セキュリティシステムと同じ信用陣営を形成するタイムサーバ)を使って更新したほうが好ましい。また、メモリ装置600で複数のアプリケーションを実行する場合には、それぞれのアプリケーションに2つのタイムソースがある。つまり、タイムモジュール620の時間と、アプリケーションと通信するエンティティのホスト装置からの時間とを利用できる。しかし、ある1つのアプリケーションで使用するホスト時間はそのアプリケーションだけに使用したほうがよく、異なるホスト装置と関わっている別のアプリケーションには使用するべきではない。   Player 710 recommends host time 720 to DRM module 630 in one embodiment when sending a request to play a song to DRM module 630. The DRM module 630 determines whether to use the host time 720 or the time module 620 time as described above. Host time 720 is preferably used only for relatively short login sessions and should not be used in subsequent sessions as an absolute current time. Alternatively, the host time 720 can be accumulated so that it can be used in an application earlier, and the above-described “time expansion” or other mechanism can be used to improve the accuracy of the time (optional). However, the host time should be used only for specific time-based operations of the application and should not be used to update the time of the time module 620 (the application is an “extension” and is the same as the central security system It does not form a credit camp). As described above, it is always preferable to update the time of the time module 620 using a trusted time server (a time server that forms the same trust camp as the central security system). When a plurality of applications are executed in the memory device 600, each application has two time sources. That is, the time of the time module 620 and the time from the host device of the entity communicating with the application can be used. However, the host time used in one application should be used only for that application and not for another application associated with a different host device.

前述したように、メモリ装置600で実行するアプリケーション(DRMモジュール630等)は、タイムモジュール620からの時間にホスト時間720を比較し、2つの時間のうちの遅い(または早い)ほうを使用するようにプログラムできる。例えば、ホスト700が十分に長い時間にわたってタイムサーバに接続しないために時間にずれが生じることにより、あるいはホストのクロックがハッキングされることにより、ホスト時間720はタイムモジュール620の時間より前になることがある。前述したように、ホスト時間720をアプリケーションで先々使用できるように蓄積することもできる。これらアイデアを組み合わせ、ホスト時間720を蓄積し、後ほど別のホスト装置から受信した時間との比較に使用(単独で使用、またはタイムモジュール620の時間と併せて使用)することができる。この比較をもとに、メモリ装置は時間ベース操作の実行にあたって目下のホスト装置の時間を使用するか、それとも蓄積されている以前のホスト装置の時間を使用するかを決定できる。例えば、メモリ装置は、時間ベース操作が「〜以前は不可」操作なら2つの時間のうちの早いほうをとり、時間ベース操作が「〜以降は不可」操作なら2つの時間のうちの遅いほうをとるようにプログラムできる。こうすれば、単一タイムサーバを基準とする単一マルチホストアンチロールバックメカニズムの参照値として、信頼された他のホストデバイスから受信したタイムスタンプを使用できる。   As described above, an application (such as the DRM module 630) executing on the memory device 600 compares the host time 720 to the time from the time module 620 and uses the later (or earlier) of the two times. Can be programmed. For example, the host time 720 may be earlier than the time of the time module 620 because the host 700 has not connected to the time server for a sufficiently long time, or because the host clock is hacked. There is. As described above, the host time 720 can be accumulated so that it can be used in an application first. These ideas can be combined to accumulate the host time 720 and later used for comparison with the time received from another host device (used alone or in conjunction with the time of the time module 620). Based on this comparison, the memory device can determine whether to use the current host device's time or the previous accumulated host device's time to perform the time-based operation. For example, the memory device takes the earlier of the two times if the time-based operation is “not possible before” operation, and takes the later of the two times if the time-based operation is “impossible after” operation. Can be programmed to In this way, a time stamp received from another trusted host device can be used as a reference value for a single multi-host anti-rollback mechanism based on a single time server.

同じく前述したように、ホスト装置の認証にあたって、非時間ベースの認証システム(対称認証等)を使用できる。この場合、アプリケーションの時間ベース操作(DRM操作等)を認証タイムサーバから切り離すことができる。つまり、ホスト装置かDRMサーバの時間だけが使われるなら、アプリケーションの時間ベース操作は、認証タイムサーバの時間やメモリ装置のタイムモジュールの時間に左右されない。したがって、何らかの事情により認証タイムサーバに問題があったり、時間ベースのアプリケーションが認証タイムサーバに基づく時間を使用しないことを選んだりする場合でも、時間ベースのアプリケーションは引き続きホスト時間を使って操作を実行できる。   As described above, a non-time-based authentication system (such as symmetric authentication) can be used for authenticating the host device. In this case, the time base operation (DRM operation etc.) of the application can be separated from the authentication time server. In other words, if only the time of the host device or the DRM server is used, the time-based operation of the application does not depend on the time of the authentication time server or the time module of the memory device. Therefore, even if there is a problem with the authentication time server for some reason, or the time-based application chooses not to use the time based on the authentication time server, the time-based application continues to perform operations using the host time. it can.

前述した実施形態はいずれも単独で使用できるほか、組み合わせて使用できることに留意するべきである。参照により援用されている特許出願には、これら実施形態と併せて使用できる他の実施形態が記載されている。さらに、現時点ではサンディスク コーポレイションのメモリ装置TrustedFlash(登録商標)でこれら実施形態を実装するのが好ましいが、どんなタイプのメモリ装置であってもこれら実施形態を役立てることができることを理解するべきである。また、メモリ装置以外の分野で時間を知るもしくは使用する必要があり、クロックが正確でないという一般的な問題に直面する場合にも、これら実施形態を役立てることができる。加えて、前述したアクトは、全面的にメモリ装置で実行する代わりに、その一部または全部をホスト装置(または他の何らかの装置)で実行することもできる。   It should be noted that any of the embodiments described above can be used alone or in combination. Patent applications incorporated by reference describe other embodiments that can be used in conjunction with these embodiments. Further, although it is currently preferred to implement these embodiments on SanDisk Corporation's memory device TrustedFlash®, it should be understood that any type of memory device can be useful. . These embodiments can also be useful when faced with the general problem of needing to know or use time in fields other than memory devices and inaccurate clocks. In addition, instead of executing the above-described act entirely on the memory device, part or all of the act can be executed on the host device (or some other device).

以上の詳細な説明は、本発明を規定するものではなく、本発明がとり得る特定の形態を例示するものとして理解されることを意図する。本発明の範囲は専ら、添付の特許請求の範囲とこれと同等のものとによって規定される。特許請求の範囲に記載されたアクトは、記載された順序に限らず、いかなる順序でも実行できることに留意するべきである。最後に、本願明細書で説明した好適な実施形態の態様のどれも単独で使用できるほか、互いに組み合わせて使用できることにも留意するべきである。   The above detailed description is not intended to define the present invention, but is intended to be understood as illustrating specific forms that the present invention can take. The scope of the present invention is defined solely by the appended claims and their equivalents. It should be noted that the actions recited in the claims can be performed in any order, not limited to the order described. Finally, it should be noted that any of the aspects of the preferred embodiments described herein can be used alone or in combination with each other.

Claims (19)

メモリ装置上のアプリケーションにより時間本位操作を実行する方法であって、
メモリ装置上のアプリケーションにより、
ホスト装置上で実行し前記メモリ装置によって認証されるエンティティから、時間本位操作の実行要求を受信するステップと、
前記時間本位操作の実行にあたって、前記メモリ装置上のタイムモジュールからの時間の代わりに前記ホスト装置からの時間を選択するステップと、
前記時間本位操作の実行にあたって、前記ホスト装置からの前記時間を使用するステップと、
を含む方法。
A method for performing a time-oriented operation by an application on a memory device,
Depending on the application on the memory device,
Receiving an execution request for a time-oriented operation from an entity executed on a host device and authenticated by the memory device;
Selecting the time from the host device instead of the time from the time module on the memory device in performing the time-oriented operation;
Using the time from the host device in performing the time-oriented operation;
Including methods.
請求項1記載の方法において、
前記ホスト装置からの時間は、前記ホスト装置からの時間が前記タイムモジュールからの時間より遅い場合に限り、前記タイムモジュールからの時間の代わりに選択される方法。
The method of claim 1, wherein
The method in which the time from the host device is selected instead of the time from the time module only if the time from the host device is later than the time from the time module.
請求項1記載の方法において、
前記ホスト装置の同一性を判定するステップをさらに含み、前記ホスト装置からの時間は、前記ホスト装置が信頼できると判断される場合に限り、前記タイムモジュールからの時間の代わりに選択される方法。
The method of claim 1, wherein
The method further comprises the step of determining the identity of the host device, wherein the time from the host device is selected instead of the time from the time module only if the host device is determined to be reliable.
請求項1記載の方法において、
前記ホスト装置からの時間は、前記タイムモジュールからの時間より比較的正確であり、前記タイムモジュールからの時間は、前記ホスト装置からの時間より比較的安全である方法。
The method of claim 1, wherein
The time from the host device is relatively more accurate than the time from the time module, and the time from the time module is relatively safer than the time from the host device.
請求項1記載の方法において、
前記ホスト装置からの時間は、前記タイムモジュールの更新には使用できない方法。
The method of claim 1, wherein
The time from the host device cannot be used to update the time module.
請求項1記載の方法において、
前記エンティティの認証にあたって、前記タイムモジュールからの前記時間を使用するステップをさらに含む方法。
The method of claim 1, wherein
The method further comprising using the time from the time module in authenticating the entity.
請求項1記載の方法において、
単一セッションに限り前記ホスト装置からの時間を使用するステップをさらに含む方法。
The method of claim 1, wherein
A method further comprising using time from the host device for a single session only.
請求項1記載の方法において、
前記時間本位操作は、デジタル著作権管理(DRM)ライセンス検証操作を含む方法。
The method of claim 1, wherein
The time-oriented operation includes a digital rights management (DRM) license verification operation.
請求項1記載の方法において、
前記メモリ装置は、前記メモリ装置に蓄積された被保護コンテンツのロックを解除するためにデジタル著作権管理(DRM)キーおよびライセンスを蓄積する方法。
The method of claim 1, wherein
The memory device stores a digital rights management (DRM) key and a license to unlock protected content stored in the memory device.
請求項1記載の方法において、
前記メモリ装置は、前記ホスト装置から受信した時間を蓄積する働きと、第2のホスト装置から時間を受信する働きと、前記第2のホスト装置からの時間を前記ホスト装置からの蓄積時間と比較する働きと、前記時間本位操作の実行にあたって、前記比較に基づき、前記第2のホスト装置の代わりに前記ホスト装置からの時間の使用を決定する働きとをする方法。
The method of claim 1, wherein
The memory device compares the time received from the host device, the time received from the second host device, and the time received from the second host device with the time accumulated from the host device. And a method for determining the use of time from the host device instead of the second host device based on the comparison in performing the time-oriented operation.
請求項1記載の方法において、
前記メモリ装置は、非時間本位認証システムを用いて前記ホスト装置を認証する働きをする方法。
The method of claim 1, wherein
The method wherein the memory device serves to authenticate the host device using a non-time based authentication system.
メモリ装置であって、
メモリアレイと、
前記メモリアレイと通信する回路であって、
ホスト装置上で実行するエンティティの認証要求を受信する働きと、
前記エンティティと前記メモリ装置内のアプリケーションとを対応付けるアクセス管理記録(ACR)で指定された認証方法と、メモリ装置上のタイムモジュールからの時間とを使用し、前記エンティティを認証する働きと、
前記エンティティから前記アプリケーションに対する時間本位操作の実行要求を受信する働きと、
前記時間本位操作の実行にあたって、前記タイムモジュールからの時間の代わりに前記ホスト装置からの時間を選択する働きと、
前記時間本位操作の実行にあたって、前記ホスト装置からの前記時間を使用する働きと、をする回路と、
を備えるメモリ装置。
A memory device,
A memory array;
A circuit in communication with the memory array,
Receiving an entity authentication request to be executed on the host device;
Authenticating the entity using an authentication method specified in an access management record (ACR) that associates the entity with an application in the memory device and a time from a time module on the memory device;
Receiving a request for execution of a time-oriented operation for the application from the entity;
In performing the time-oriented operation, the function of selecting the time from the host device instead of the time from the time module;
A circuit that uses the time from the host device to perform the time-oriented operation;
A memory device.
請求項12記載のメモリ装置において、
前記ホスト装置からの時間は、前記ホスト装置からの時間が前記タイムモジュールからの時間より遅い場合に限り、前記タイムモジュールからの時間の代わりに選択されるメモリ装置。
The memory device according to claim 12, wherein
The memory device is selected in place of the time from the time module only when the time from the host device is later than the time from the time module.
請求項12記載のメモリ装置において、
前記ホスト装置からの時間は、前記ホスト装置が信頼できると判断される場合に限り、前記タイムモジュールからの時間の代わりに選択されるメモリ装置。
The memory device according to claim 12, wherein
A memory device in which the time from the host device is selected instead of the time from the time module only if the host device is determined to be reliable.
請求項12記載のメモリ装置において、
前記ホスト装置からの時間は、前記タイムモジュールからの時間より比較的正確であり、前記タイムモジュールからの時間は、前記ホスト装置からの時間より比較的安全であるメモリ装置。
The memory device according to claim 12, wherein
The memory device wherein the time from the host device is relatively more accurate than the time from the time module, and the time from the time module is relatively safer than the time from the host device.
請求項12記載のメモリ装置において、
前記ホスト装置からの時間は、前記タイムモジュールの更新には使用できないメモリ装置。
The memory device according to claim 12, wherein
The memory device cannot use the time from the host device for updating the time module.
請求項12記載のメモリ装置において、
前記回路は、単一セッションに限り前記ホスト装置からの時間を使用する働きをさらにするメモリ装置。
The memory device according to claim 12, wherein
The memory device further serves to use time from the host device for a single session only.
請求項12記載のメモリ装置において、
前記時間本位操作は、デジタル著作権管理(DRM)ライセンス検証操作を含むメモリ装置。
The memory device according to claim 12, wherein
The time-oriented operation is a memory device including a digital rights management (DRM) license verification operation.
請求項12記載のメモリ装置において、
前記メモリ装置は、前記メモリ装置に蓄積された被保護コンテンツのロックを解除するためにデジタル著作権管理(DRM)キーおよびライセンスを蓄積するメモリ装置。
The memory device according to claim 12, wherein
The memory device stores a digital rights management (DRM) key and a license for unlocking protected content stored in the memory device.
JP2010511336A 2007-06-08 2008-06-05 Memory device using time from trusted host device and method for use in the device Pending JP2010532024A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/811,345 US20080307507A1 (en) 2007-06-08 2007-06-08 Memory device using time from a trusted host device
US11/811,346 US8869288B2 (en) 2007-06-08 2007-06-08 Method for using time from a trusted host device
PCT/US2008/065970 WO2008154309A1 (en) 2007-06-08 2008-06-05 Memory device using the time from a trusted host device and method for use therewith

Publications (1)

Publication Number Publication Date
JP2010532024A true JP2010532024A (en) 2010-09-30

Family

ID=39674859

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010511336A Pending JP2010532024A (en) 2007-06-08 2008-06-05 Memory device using time from trusted host device and method for use in the device

Country Status (6)

Country Link
EP (1) EP2156358A1 (en)
JP (1) JP2010532024A (en)
KR (1) KR20100041734A (en)
CN (1) CN101816003A (en)
TW (1) TWI386947B (en)
WO (1) WO2008154309A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011081764A (en) * 2009-09-14 2011-04-21 Panasonic Corp Content receiver, content reproducer, content reproducing system, content writing method, expiration date determining method, program, and recording medium
US9166980B2 (en) 2011-05-09 2015-10-20 Panasonic Corporation Content management system, management server, memory media device and content management method
CN109151160B (en) * 2018-06-26 2021-04-13 Oppo广东移动通信有限公司 Communication method, communication device, mobile terminal and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005301333A (en) * 2004-04-06 2005-10-27 Hitachi Global Storage Technologies Netherlands Bv Magnetic disk drive with use time limiting function
WO2006018864A1 (en) * 2004-08-17 2006-02-23 Mitsubishi Denki Kabushiki Kaisha Storage device and storage method
JP2006350496A (en) * 2005-06-14 2006-12-28 Hitachi Global Storage Technologies Netherlands Bv Storage device and access control method for storage device

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4169942B2 (en) * 2001-02-27 2008-10-22 インターナショナル・ビジネス・マシーンズ・コーポレーション Content usage method, content distribution method, content distribution system, and program
US7134144B2 (en) * 2001-03-01 2006-11-07 Microsoft Corporation Detecting and responding to a clock rollback in a digital rights management system on a computing device
US20030069854A1 (en) * 2001-10-09 2003-04-10 Hsu Michael M. Expiring content on playback devices
WO2004075525A1 (en) * 2003-02-20 2004-09-02 Ase R & D Europe Method for offering time on smart card and method for time registration by means of mobile communication device
JP2004326278A (en) * 2003-04-23 2004-11-18 Renesas Technology Corp Nonvolatile storage device and data processor
JP2005063079A (en) * 2003-08-11 2005-03-10 Matsushita Electric Ind Co Ltd Memory card device, right management system and time management method
US8327448B2 (en) * 2005-06-22 2012-12-04 Intel Corporation Protected clock management based upon a non-trusted persistent time source
US20070056042A1 (en) * 2005-09-08 2007-03-08 Bahman Qawami Mobile memory system for secure storage and delivery of media content
DE102005050352B4 (en) * 2005-10-20 2008-02-07 Infineon Technologies Ag Time indication test unit, electronic device and method for checking a time indication

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005301333A (en) * 2004-04-06 2005-10-27 Hitachi Global Storage Technologies Netherlands Bv Magnetic disk drive with use time limiting function
WO2006018864A1 (en) * 2004-08-17 2006-02-23 Mitsubishi Denki Kabushiki Kaisha Storage device and storage method
JP2006350496A (en) * 2005-06-14 2006-12-28 Hitachi Global Storage Technologies Netherlands Bv Storage device and access control method for storage device

Also Published As

Publication number Publication date
WO2008154309A1 (en) 2008-12-18
TW200907996A (en) 2009-02-16
EP2156358A1 (en) 2010-02-24
CN101816003A (en) 2010-08-25
TWI386947B (en) 2013-02-21
KR20100041734A (en) 2010-04-22

Similar Documents

Publication Publication Date Title
US8869288B2 (en) Method for using time from a trusted host device
US8688588B2 (en) Method for improving accuracy of a time estimate used in digital rights management (DRM) license validation
US20080307494A1 (en) Memory device with circuitry for improving accuracy of a time estimate used to authenticate an entity
US20080307495A1 (en) Memory device with circuitry for improving accuracy of a time estimate used in digital rights management (DRM) license validation
US20080307507A1 (en) Memory device using time from a trusted host device
US8688924B2 (en) Method for improving accuracy of a time estimate from a memory device
US8938625B2 (en) Systems and methods for securing cryptographic data using timestamps
US20080304364A1 (en) Memory device with circuitry for improving accuracy of a time estimate
US20130004142A1 (en) Systems and methods for device authentication including timestamp validation
US20080307237A1 (en) Method for improving accuracy of a time estimate used to authenticate an entity to a memory device
CN101160915A (en) Method for charging precisely in the digital rights management and a device thereof
JP5180293B2 (en) MEMORY DEVICE HAVING CIRCUIT FOR IMPROVING ACCURACY OF TIME ESTIMATION USED FOR DIGITAL RIGHTS MANAGEMENT (DRM) LICENSE VERIFICATION AND METHOD USED IN THE DEVICE
JP2010532024A (en) Memory device using time from trusted host device and method for use in the device
JP5343071B2 (en) MEMORY DEVICE WITH CIRCUIT FOR IMPROVING ACCURACY OF TIME ESTIMATION USED FOR ENTITENT AUTHENTICATION AND METHOD USED IN THE DEVICE
KR20080039089A (en) Method and apparatus for digital rights management
JP5180292B2 (en) MEMORY DEVICE PROVIDED WITH CIRCUIT FOR IMPROVING ACCURACY OF TIME ESTIMATION AND METHOD USED IN THE DEVICE
CN101194265B (en) Method for controlling a consumption limit date of digital contents

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110314

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120228

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120522

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120529

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120615

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120622

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120709

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120710

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121211