JP2010530101A - エンティティの認証に用いる時間推定の精度を向上させるための回路を備えるメモリ装置とその装置で使用する方法 - Google Patents

エンティティの認証に用いる時間推定の精度を向上させるための回路を備えるメモリ装置とその装置で使用する方法 Download PDF

Info

Publication number
JP2010530101A
JP2010530101A JP2010511334A JP2010511334A JP2010530101A JP 2010530101 A JP2010530101 A JP 2010530101A JP 2010511334 A JP2010511334 A JP 2010511334A JP 2010511334 A JP2010511334 A JP 2010511334A JP 2010530101 A JP2010530101 A JP 2010530101A
Authority
JP
Japan
Prior art keywords
memory device
time
entity
time stamp
new
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.)
Granted
Application number
JP2010511334A
Other languages
English (en)
Other versions
JP5343071B2 (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,289 external-priority patent/US20080307237A1/en
Priority claimed from US11/811,344 external-priority patent/US20080307494A1/en
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of JP2010530101A publication Critical patent/JP2010530101A/ja
Application granted granted Critical
Publication of JP5343071B2 publication Critical patent/JP5343071B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0846Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/121Timestamp

Abstract

エンティティの認証に用いる時間推定の精度を向上させるための回路を備えるメモリ装置とその装置で使用する方法とを開示する。一実施形態において、メモリ装置がエンティティ認証要求を受信する。メモリ装置はエンティティの認証を試みる前に、新規タイムスタンプが必要であるか否かを判断する。メモリ装置は、新規タイムスタンプが必要である場合に、新規タイムスタンプを受信し、その後新規タイムスタンプに基づく時間推定を用いてエンティティの認証を試みる。メモリ装置は、別の実施形態において、新規タイムスタンプの必要性を指定する複数の異なるタイムスタンプ更新方針(TUP)を備え、新規タイムスタンプが必要であるか否かの判断は、エンティティに対応付けられたTUPに基づく。他の実施形態も開示するが、それら実施形態は単独で使用できるほか、組み合わせても使用できる。

Description

本願は、エンティティの認証に用いる時間推定の精度を向上させるための回路を備えるメモリ装置とその装置で使用する方法とに関する。
関連出願の相互参照
本願は、本願とともに出願され、本願明細書において参照により援用されている「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)に関連する。
サンディスク コーポレイションのTrustedFlash(登録商標)等のメモリ装置で、デジタル著作権管理(DRM)ライセンス検証等、時間本位の操作を実行するには、時間を知る必要がある。そのような操作に関わるセキュリティ問題のため、メモリ装置は、正確な時間の提供にあたって、ホスト装置を信用できないことがある。メモリ装置は信頼されたネットワークコンポーネントから正確な時間を入手できるが、メモリ装置をホストするホスト装置は、メモリ装置で時間を知る必要があるときにネットワークに接続されていないことがある。メモリ装置の稼働時間を測定するようにメモリ装置を設計できても、そのメモリ装置が絶えず稼働時間を測定しなければ(測定開始後にメモリ装置の電源が落とされる場合等)、測定稼働時間から生成される時間推定は真の実時間の測定にはならない。測定稼働時間から生成される時間推定は、実際には稼働時間の下限を伝えるものにすぎず、そのような時間推定では、ある種の時間本位操作に求められる精度は得られない場合がある。メモリ装置が作動していないときでも絶えず時間を把握するため、メモリ装置にバッテリ方式のクロックを装備することもできるが、そのようなクロックを装備すると、メモリ装置のコストを上乗せすることになり得る。
米国特許出願第11/811,284号 米国特許出願第11/811,347号 米国特許出願第11/811,289号 米国特許出願第11/811,344号 米国特許出願第11/811,354号 米国特許出願第11/811,348号 米国特許出願第11/811,346号 米国特許出願第11/811,345号 米国特許出願第11/314,411号 米国特許出願第11/557,028号 米国特許出願第11/322,812号 米国特許出願第11/322,766号
本発明は特許請求の範囲によって規定され、その特許請求の範囲を制限するものとしてこのセクションの内容を解釈してはならない。
紹介のためにこれ以降説明する実施形態は、エンティティの認証に用いる時間推定の精度を向上させるための回路を備えるメモリ装置とその装置で使用する方法とを提供する。一実施形態において、メモリ装置がエンティティ認証要求を受信する。メモリ装置はエンティティの認証を試みる前に、新規タイムスタンプが必要であるか否かを判断する。メモリ装置は、新規タイムスタンプが必要である場合には新規タイムスタンプを受信し、その後新規タイムスタンプに基づく時間推定を用いてエンティティの認証を試みる。メモリ装置は別の実施形態において、新規タイムスタンプの必要性を指定する複数のタイムスタンプ更新方針(TUP)を備え、新規タイムスタンプが必要であるか否かの判断は、エンティティに対応付けられたTUPに基づく。他の実施形態も開示するが、それら実施形態はそれぞれ単独で使用できるほか、組み合わせて使用もできる。
一実施形態のシステムの図解である。 一実施形態のメモリ装置のブロック図である。 図2のメモリ装置の種々の機能モジュールの図解である。 一実施形態の非対称認証プロセスのプロトコル図である。 タイムスタンプを取得する一実施形態のシステム図である。 タイムスタンプを取得する一実施形態の方法のフローチャートである。 タイムスタンプ更新方針をチェックする一実施形態の方法のフローチャートである。 メモリ装置で実行するアプリケーションにホスト時間を使用する一実施形態のメモリ装置の図解である。
図面に戻ると、図1は、これら実施形態を例示するのに用いるシステム10の図解である。図1に見られるように、システム10は、複数のホスト装置に取り外し可能に接続される複数のメモリ装置20,30,40と、パーソナルコンピュータ(PC)50と、デジタルメディア(MP3等)プレイヤ60と、携帯電話機70と、を備える。ホスト装置は、メモリ装置からデータを読み出すことができる装置、および/またはメモリ装置にデータを書き込むことができる装置である。データは、音声ファイルや映像ファイル(音声があるもの、またはないもの)等のデジタルメディアコンテンツ、画像、ゲーム、書籍、地図、データファイル、またはソフトウェアプログラムを含むが、これらに限定されない。データは、ネットワークのサーバからメモリ装置にダウンロードされたり、製造業者や第三者機関によって予めロードされたり、例えば別の装置からサイドロードされることがある。
ホスト装置は何らかの適当な形態をとることができ、図1に見られる例に限定されない。例えば、ホスト装置は、ノートブックコンピュータ、手持ち型コンピュータ、手持ち型eメール/テキストメッセージ装置、手持ち型ゲームコンソール、ビデオプレイヤ(DVDプレイヤ、ポータブルビデオプレイヤ等)、録音および/または録画装置、デジタルカメラ、セットトップボックス、表示装置(テレビ等)、プリンタ、カーステレオ、およびナビゲーションシステムの形態をとることができる。また、ホスト装置は複合機能を内蔵することができる。例えば、ホスト装置は、電話をかけたり受けたりできるほか、デジタルメディア(音楽および/または映像)ファイルを再生できる携帯電話機である。
PC50や携帯電話機70のようなホスト装置は、ネットワーク(インターネット80や無線ネットワーク90等であるが、タイプの異なるネットワークを使用することもできる)に接続して通信する能力を持つことができる。本願明細書において、このような能力を備えるホスト装置を「接続装置」と呼ぶ。携帯電話機70が非接続モードで作動しているときや、PC50がインターネット接続を確立していないとき等、「接続装置」が常にネットワークへ実際に接続されているとは限らないことを理解するべきである。本願明細書において、ネットワークに接続して通信する能力を持たないホスト装置(デジタルメディアプレイヤ60等)を「非接続装置」と呼ぶ。非接続装置を接続装置に接続することにより、非接続装置をネットワークと通信する状態に置くこともでき、図1に見られるように、デジタルメディアプレイヤ60はPC50に接続されている。そのような形で接続される場合でも、ネットワークから情報を引き出す機能が非接続装置になければ(単純なMP3プレイヤ等)、ネットワークから情報を引き出すことはできない。そのような状況でも、ネットワークコンポーネントは装置に情報を押し付けることができる。図1には有線接続を介してPC50へ接続されたデジタルメディアプレイヤ60が示されているが、無線接続も使用できることに留意するべきである。同様に、用語「接続」および「結合」が必ずしも有線接続や直接接続を意味するわけではない。
接続装置(あるいは接続装置に接続された非接続装置)はネットワーク(インターネット80、無線ネットワーク90等)を通じて外部のコンポーネントにアクセスでき、この外部コンポーネントは、タイムスタンプを提供することができるタイムサーバ100や、DRM保護コンテンツとこのようなコンテンツにアクセスするためのライセンスとを提供することができるデジタル著作権管理サーバ(DRM)110を含むが、これらに限定されない。これらサーバについては以下に詳述する。図1ではタイムサーバ100とDRMサーバ110が別々の装置として示されているが、2つのサーバを1つの装置にまとめることもできる。さらに、これらサーバに別の機能を盛り込むこともできる。また、必要であればインターネット80か無線ネットワーク90を介してタイムサーバ100やDRMサーバ110以外のコンポーネントにアクセスすることもできる。
図面に戻ると、図2は一実施形態のメモリ装置200のブロック図であり、これはメモリカードやメモリスティックの形態をとることができる。図2に見られるように、メモリ装置200は不揮発性メモリアレイ(フラッシュメモリ等)210と1群の回路220とを備える。この実施形態の不揮発性メモリアレイ210はソリッドステートメモリ、具体的にはフラッシュメモリ210の形態をとっている。フラッシュメモリの代わりにタイプの異なるソリッドステートメモリを使用できることに留意するべきである。また、磁気ディスクや光学CDを含むがこれらに限定されない、ソリッドステートメモリ以外のメモリを使用できることにも留意するべきである。また、簡潔さを図るため、本願明細書で用いる用語「回路」は純粋なハードウェア実装、および/または複合ハードウェア/ソフトウェア(またはファームウェア)実装を指す。つまり「回路」は、特定用途向け集積回路(ASIC)、プログラム可能なロジックコントローラ、埋め込み型マイクロコントローラ、単一基板コンピュータなどの形態をとるほか、プロセッサと、このプロセッサにより実行可能なコンピュータ可読プログラムコード(ソフトウェア、ファームウェア等)を蓄積するコンピュータ可読媒体の形態をとることができる。
図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については、メモリ装置の時間測定能力との関係で以下に説明する。
図面を簡潔にするため、メモリ装置200をホスト装置300へ取り外し可能に接続するための電気的・物理的コネクタ等のメモリ装置200のその他のコンポーネントは図2に示されていない。メモリ装置200とその動作については、本願明細書において参照により援用されている米国特許出願第11/314,411号(特許文献9)および米国特許出願第11/557,028号(特許文献10)で詳細を確認できる。本願明細書において参照により援用されている米国特許出願第11/322,812号(特許文献11)と米国特許出願第11/322,766号(特許文献12)ではさらなる情報を確認できる。しかし、それら特許出願に記載されたコンポーネントと機能は、添付の特許請求の範囲に明記されていない限り、添付の特許請求の範囲の中で解釈すべきものではない。
メモリ装置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ライセンス検証をホスト装置にまかせる。
この実施形態では、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を収容することもある。
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のいずれかに別のエンティティ(図示せず)を対応付けることもできる。
エンティティはログインプロセスを開始するときに、該当するACRの識別子を含む認証要求を送信する。ACRは、使用すべき認証方法と、エンティティのアイデンティティを立証するにあたってどのような種類の信用証明が必要かを指定する。図3のACR201および202は非対称認証法を指定し、ACR203は対称認証法を指定する。なお、これとは別の認証法(パスワード方式の手順等)を用いることもでき、ACRで認証不要と指定することもできる。特定の認証法を指定することに加え、認証済みエンティティで実行できるアクションを記した権限管理記録(PCR)をACRに入れることもできる。
一部の認証機構(例えば、X.509証明書連鎖の認証に用いる一方向および双方向非対称認証等)は時間を基礎とし、メモリ装置200はエンティティから提示される信用証明の検査にあたって時間を知る必要がある。(対称ACR203の対称認証機構の場合には、メモリ装置200で時間を把握する必要はない。対称認証では、エンティティとこれに対応するACRとで共有されるキーを用いてエンティティを認証する。)非対称認証でエンティティから提供されるRSA証明書および/または証明書取消リスト(CRL)等の信用証明を評価するには、時間が必要になることがある。(本願明細書で用いる「証明書」は単一の証明書や複数の証明書(一連の証明書等)を指すことがあり、「CRL」は単一のCRLや複数のCRLを指すことがある。)検証を実行するにあたってメモリ装置200で時間推定を生成するメカニズムについて説明する前に、非対称認証にかかわる証明書とCRLを簡単に説明する。
非対称認証で使用する公開鍵基盤(PKI)システムでは、証明局(CA)と呼ばれる信用機関がエンティティのアイデンティティを証明するRSA証明書を発行する。アイデンティティの立証を望むエンティティは、これを証明するにあたって十分な証拠を用意しCAに登録する。CAでエンティティのアイデンティティが証明されると、CAからエンティティへ証明書が発行される。証明書は通常、証明書の発行元にあたるCAの名称と、証明書の発行先にあたるエンティティの名称と、エンティティの公開鍵と、CAの秘密鍵によって署名されたエンティティの公開鍵(通常は公開鍵のダイジェストを暗号化)とを含む。
証明書の中には有効期限を保持するデータフィールドを設けることができる。この場合、証明書を所持するエンティティがコンテンツにアクセスできる時間には限りがある(証明書が失効するまで)。将来の発効時期を保持するデータフィールドを証明書に設けることもできる。この場合、証明書が有効になるまでACRによるエンティティ認証は行われない。メモリ装置200は、現在の日付が有効期限を過ぎているか発効日に至っていないと判断する場合(つまり、証明書が有効でないとメモリ装置200が判断する場合)には、証明書を提示するエンティティを認証しない。
証明書は様々ないきさつで有効期限より前に無効になることがある(例えば、名称の変更、エンティティおよびCA関係の変化、秘密鍵の侵害または侵害の疑い等)。そのような場合にはCAが証明書を取り消す必要がある。具体的にはCAが証明書取消リスト(CRL)を定期的に発行する。CRLは、取り消された証明書のタイムスタンプ付きリストを含む署名付きデータ構造である。したがって、メモリ装置200はエンティティの認証にあたって証明書が時宜に適っているか否かをチェックするだけでなく、CRLもチェックし、証明書がCRLに登記されているか否かも確認する。(CRLは、証明書と併せてエンティティから提供されることもあれば、メモリ装置200がCRL自体を取得することもある(例えば、メモリ装置200が接続装置ならインターネット80を通じて取得する)。)CRLに登記されている証明書は(期限切れでなくとも)もはや有効ではなく、エンティティの認証は行われない。証明書と同様に、CRLにも有効期限がある。この有効期限はCRLの更新時期を指示するものであり、これによりメモリ装置200における最新CRLの使用が徹底される。認証中に現在時間がCRLの有効期限を過ぎていることがメモリ装置200で判明すると(CRLが無効であるとメモリ装置200が判断すると)、そのCRLには問題があるとみなされ、証明書の検査にはできるだけ使用しない。
前に説明したように、この実施形態のメモリ装置200は信用証明(本願明細書では証明書とCRL)の検査にあたって時間を知る必要がある。メモリ装置で時間を把握できるようにするには数通りの選択肢がある。1つの選択肢として、メモリ装置で時間を知る必要がある場合には、そのつどメモリ装置からホスト装置を通じて信頼されたタイムサーバにタイムスタンプを要求する。これは接続装置に適した方法ではあるが、メモリ装置は接続装置のほかに非接続装置で使われることもあるため(例えば、インターネットに接続されていない家庭内PC、MP3プレイヤ、ネットワークから切断された携帯電話機(飛行機搭乗時等))、メモリ装置の認証手順で時間を知る必要があるときに、接続が得られるかどうかは当てにならない。もうひとつの選択肢では、バッテリ方式のクロックをメモリ装置に装備する。しかし、そうするとメモリ装置にコストが上乗せされるため、場合によっては望ましくない。もうひとつの選択肢では、メモリ装置への時間提供にあたってホスト装置を頼りにする(ホスト装置自身の内蔵クロックあるいは外部供給元から提供される)。しかし、メモリ装置は多くの場合、正確な時間提供にあたってホスト装置を信頼できない。ユーザがホスト装置のクロックを「遅らせる」ことができるなら(つまり、ホスト装置のクロックを現在時間より前の時間に設定できるなら)、ユーザはメモリ装置で施行される必要がある時間制限を出し抜くことができる。その一方で、メモリ装置(またはメモリ装置で実行するアプリケーション)にとってホスト装置が信頼できるものなら、メモリ装置(またはメモリ装置で実行するアプリケーション)はホスト装置の時間を当てにできる。ホスト時間を使用できる場合については、後ほど詳細を提示する。
この実施形態で採用するもうひとつの選択肢では、メモリ装置の限られた時間追跡能力、具体的にはメモリ装置200の稼働時間を測定する能力を利用する。稼働時間とは、メモリ装置200がホスト装置へ接続され、実際に使われていた時間を指すことができる(つまり、アイドル状態やスリープモードとは対照的に、メモリ装置200およびホスト装置300間のバスで活動があった時間)。あるいは、稼働時間は、メモリ装置200がホスト装置300へ接続され、ホスト装置300から電力を受け取っていた総時間を指すことができる。本願明細書では、用語「稼働時間」および「使用時間」を互換的に使用する。後述するように、この実施形態ではハードウェアタイマーブロック270がCPU260に対する割り込みとしてクロックティックを生成でき、CPU260が稼働時間カウンタを増加できているときに、メモリ装置200は稼働しているとする。
作動中はハードウェアタイマーブロック270(ASICコントローラ等)に内蔵された発振器が周期的なクロックティックを生成し、そのティックを割り込みとしてCPU260に提供する。(この発振器は、好ましくはCPU260がスリープ状態のときに非常に低い周波数で作動する。)つまり、ハードウェアタイマーブロック270は周期的(ミリ秒毎、マイクロ秒毎等)にCPU260に割り込む。CPU260が割り込みを受けると専用のクロック割り込みサービスルーチンが呼び出され(例えば、CPU260によりファームウェア内で実行され)、これにより1周期/単位が稼働時間カウンタへ加えられる。このカウンタ値はCPU RAMS262ばかりでなく不揮発性フラッシュメモリ210にも蓄積されるため、停電が発生しても失われることはない。メモリ210の過度の消耗を避けるため、メモリ210の稼働時間カウンタは、クロックティックのたびに更新するのではなく、周期的に(例えば、メモリ装置に電源が入っている間に1分毎に)更新するのが好ましい。この場合、稼働時間カウンタが更新される前に停電が起こると測定時間精度のさらなる低下を招き得るが、メモリ耐久性にとってのメリットを考慮すれば、許容し得る代償とみなすことができる。(メモリの耐久性をさらに保護するなら、稼働時間カウンタに蓄積される値にカウンタへの書き込み回数を伝えるフィールドを設けることができる。この書き込み値が一定量を超過する場合には、メモリの別の位置にカウンタを蓄積できる。カウンタ内のビットをシフトすることで耐久性に寄与するなら、ビットをシフトすることもできる。)また、(書き込みにかかる消費電力は別として)稼働時間カウンタへの書き込みによってメモリ装置200の性能や平常の活動に支障をきたさないようにするのが好ましい。(換言すると、時間カウンタへの書き込みをホストコマンド処理プロセスの一部とするのが好ましい。)例えば、稼働時間カウンタへの書き込みをバックグラウンドタスクとし、ホスト装置コマンドを処理する前にこれを実行することもできる。ホスト装置コマンドが終了したら、メモリ装置200のファームウェアによりメモリからデータを読み出し、所望値と比較することで、稼働時間カウンタのプログラミングが成功したことを確認できる。
また、稼働時間カウンタの値は、容易に改ざんされないようにするため、メモリ210に安全に蓄積するのが好ましい(例えば、キーハッシュメッセージ認証コード(HMAC)を使用しクリプトエンジン252により署名する)。署名が一致しない場合には、データは攻撃者によって改ざんされたものとし、未初期化データとして扱うことができる。さらに、他の稼働時間測定メカニズムも使用できることに留意するべきである。
稼働時間カウンタに蓄積された値を実際の時間に変換するため、CPU260は、ハードウェアタイマーブロック270がクロックティックを生成する頻度を蓄積値に乗ずる。例えば、稼働時間カウンタに値500が蓄積され、ハードウェアタイマーブロック270が5ミリ秒毎にクロックティックを生成するなら、CPU260は2,500ミリ秒(500×5)の稼働時間を算出する。時間推定の生成にあたっては、信頼された供給元からメモリ装置200に届いた最新のタイムスタンプに変換済みの稼働時間を加算する。換言すると、タイムスタンプは「スタートライン」の役割を果たし、このタイムスタンプにメモリ装置の測定稼働時間を加算する。タイムスタンプはいかなる形式のものであってもよく、任意の精度で時間を表示できる(年、月、日、時、分、秒等)。タイムスタンプは、好ましくは精密時間提供にあたってメモリ装置200が信頼するエンティティ(タイムサーバ100、信頼されたホスト装置等)から提供される。タイムスタンプはいかなる形式のものであってもよく、単独で送信できるほか、別の情報に含めることもできる。タイムスタンプが容易に改ざんされないようにするため、メモリ装置は、好ましくはクリプトエンジン252経由でタイムスタンプを安全に蓄積する。メモリ装置200に新しいタイムスタンプが届くと、新しいタイムスタンプがメモリ装置200に蓄積され、稼働時間カウンタはリセットされる。したがって、それ以降は古いタイムスタンプの代わりに新しいタイムスタンプを基準として稼働時間の測定が行われる。稼働時間を測定するため、カウンタをリセットする(「元に戻す」)代わりに、新しいタイムスタンプの時点に存在する稼働時間カウンタ値を記録し、現在時間からこれを引くこともできる。
メモリ装置の時間追跡能力を説明したところで、今度は認証手順の一例を説明する。図面に戻ると、図4は一実施形態の非対称認証プロセスのプロトコル図である。以下の例では、プレイヤ301がACR201を通じてメモリ装置200へのログインを試みる。後ほど詳述するように、プレイヤ301は信用証明を保持し(RSA鍵対、証明書、証明書取消リスト(CRL)等)、ACR201はプレイヤ301の真正性を検証し、オブジェクトに対する権利を授与する(この場合、プレイヤ301とDRMモジュール207との間でセキュアチャネルが確立する)。図4に見られるように、最初のステップではホスト装置300がプレイヤ301の認証要求をメモリ装置200へ送信する(アクト402)。メモリ装置200にタイムスタンプがまだインストールされていなければ、メモリ装置200は認証要求に対してログイン失敗メッセージで応答する(アクト404)。
続く一連のアクトでは、メモリ装置200にタイムスタンプを提供するプロセスを図5および図6との関係で説明する。これら図は、メモリ装置200がタイムスタンプを取得可能な1つの方法を例証するシステム図とフローチャートである。メモリ装置200はこれとは別の方法でタイムスタンプを取得することもでき、タイムスタンプがこれとは別の形式をとり得ることを理解するべきである。また、1つのメモリ装置が多数のサーバまたはホストと連係しながら多数の形式を同時に処理できることも理解するべきである。したがってこの例の具体的な詳細は、添付の特許請求の範囲に明記されていない限り、添付の特許請求の範囲の中で解釈すべきものではない。
図5に見られるように、メモリ装置200はメモリ装置−ホスト装置通信チャネル305を通じてホスト装置300と通信し、ホスト装置300はホスト装置−タイムサーバ通信チャネル315を通じてタイムサーバ100と通信する。タイムサーバ100は単独のサーバでもよいが、この実施形態のタイムサーバ100は、サーバ間通信チャネル325経由で互いに同期をとる複数のサーバ102,104,106を含む。また、前に指摘したように、タイムスタンプのためにタイムサーバ100を使用する代わりに、ホスト装置300のタイムスタンプを使用することもできるが、これは、好ましくはホスト装置300が信頼されたホスト装置である場合に限る。
この実施形態では、ホスト装置300がメモリ装置200へノンス取得コマンドを送信する(アクト405)ところからタイムスタンプ要求手順が始まる(図4,5,6参照)。この実施形態におけるノンスは、後ほどメモリ装置200がタイムサーバ100によって生成されたタイムスタンプの真正性を検証するときに用いる16ビットの乱数である。メモリ装置200は乱数(ノンス)を生成し(アクト410)、以降の検証ステップのためにこれをCPU RAMS(揮発性メモリ)262(またはメモリ210)に蓄積する。次に、メモリ装置200はホスト装置300へノンスを送信する(アクト415)。メモリ装置200はまた、後ほどタイムアウトの有無を確認するため、時間の測定を開始する(後述)。
ノンスを受信したホスト装置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に蓄積する。
メモリ装置200がノンスを生成し(410)、応答を待っているときに(アクト460)、ホスト装置300からメモリ装置200へ別のノンス取得コマンドが送信され得る(アクト465)ことが可能であることに留意するべきである。前述したように、メモリ装置200はノンスを生成した後に時間測定を開始する。メモリ装置200は、その測定時間が特定のタイムアウト制限に達する前に新たなノンスコマンド(465)を受信する場合には、好ましくは新たなノンスコマンド(465)を無視する。しかし、メモリ装置200は、タイムアウト制限後に新たなノンスコマンド(465)を受信する場合には、揮発性メモリ262をリセットし、新たなノンスを生成する(アクト470)。したがって、ノンスは限られた時間内で有効であり、タイムアウト制限(「トラベルタイムエラー」)は、メモリ装置200がタイムサーバ100からタイムスタンプが届くのを待つ最大時間に相当する。
メモリ装置200に蓄積されるタイムスタンプの時間は、タイムサーバ100がデータ文字列に署名したときの時間であるため、タイムスタンプの精度にもよるが(年、月、日、時、分、秒等)、タイムスタンプの時間は、ホスト装置300がタイムスタンプを要求したときの現実の時間にならないことがある。あるいは、メモリ装置200がタイムスタンプを蓄積したときの現実の時間にならないことがある。前述したノンスタイムアウト期間は、タイムスタンプの精度がメモリ装置200の要求に合うように設定できる。したがって、タイムスタンプ要求の最大許容遅延がメモリ装置200によってコントロールされることになる。代替の実施形態において、タイムサーバ100によって生成されるタイムスタンプで別の時間を表示でき、例えばホスト装置300がタイムスタンプを要求したときの推定時間や、メモリ装置200におけるタイムスタンプ蓄積の見込み時間を表示できる。
前述したプロトコルの場合、メモリ装置200は安全が保証されない接続システム(インターネット、WiFiネットワーク、GSMネットワーク等)を介してタイムサーバ100と通信することになる。安全が保証されない接続システムとは、メモリ装置200が、タイムサーバ100によって送信されるタイムスタンプの送信中に改ざんがないと決め付けることができないことを意味する。タイムスタンプを保護するにあたってネットワークが当てになり得ないため、タイムサーバ100とメモリ装置200との間で前述した保護メカニズム(あるいは他の何らかの保護メカニズム)を使用できる。暗号化プロトコルなら、タイムスタンプが改ざんされた場合にメモリ装置200で改ざんを検出できる。換言すると、接続システムが安全でなければ、タイムスタンプのビットが何者かによって変更されるのを接続システム自体で防ぐことはできないが、メモリ装置200は改ざんを検出し、タイムスタンプを拒絶することができる。代替の実施形態では安全な通信システムを使用する(つまり、データ通信回線が保護される)。この場合、誰もタイムスタンプを改ざんできないため、タイムスタンプはプレーンテキストで送信できる。
図4に戻ると、現在メモリ装置200には新規のタイムスタンプが蓄積され、メモリ装置200はホスト装置300へ「時間更新成功」メッセージを返し(アクト452)、ホスト装置300はもう一度認証要求をメモリ装置200へ送信する(アクト454)。メモリ装置200にはタイムスタンプがあるため、メモリ装置200はACR201のタイムスタンプ更新方針(TUP)をチェックする(アクト500)。時間推定はタイムスタンプを基礎とするため、古いタイムスタンプに時間推定の基礎を置くと時間推定が不正確になり得る。そこで、メモリ装置200にあるタイムスタンプが古く、更新(新規タイムスタンプ)が必要かどうかをTUPから判断する。後ほど詳述するが、TUPは図3に示すようにACRによって異なることがあり(ACRによって時間公差が異なる)、ACRの作成時に設定できる。
この実施形態では4つの値、すなわち(1)電源サイクル数と、(2)稼働時間のしきい値と、(3)「伸張」稼働時間のしきい値と、(4)パラメータでOR関係の有無を指示するビット(パラメータが1つでもチェックに失格すると時間更新を要求するか、あるいは全てのパラメータがチェックに失格する場合に限り時間更新を要求する)とによって、TUPが表される。これらパラメータについては後ほど詳述する。(これらパラメータに加えて、あるいはこれらパラメータの代わりに、別のパラメータを検討することもできることに留意するべきである。)
図7は、TUPチェックアクト(アクト500)のさらなる詳細を示すフローチャートである。まずは、TUPチェックのためにメモリ装置200が初期化されているか否かを判断する(アクト505)。それには、例えばメモリ210に蓄積された設定データを調べる。TUPチェックのためにメモリ装置200が初期化されていなければ、メモリ装置200は受信した最後のタイムスタンプを使って時間推定を生成し(アクト510)、その時間推定を使ってエンティティの認証を試みる。TUPチェックのためにメモリ装置200が初期化されていれば、メモリ装置200はTUPチェックに着手する。
メモリ装置200はまず、最終タイムスタンプ以降のメモリ装置200の電源サイクル数のチェックがTUPに含まれているか否かを判断する(アクト515)。この実施形態では、前述した「電源サイクル」値をチェックすることによってこれを果たす。「電源サイクル」値が0なら、電源サイクル数チェックは行われない。「電源サイクル」値が0以外なら、その値をしきい値として使用し電源サイクル数をチェックする。電源サイクル数とは、メモリ装置200の電源が入った回数を数えたものであり、この数から最終タイムスタンプ以降にメモリ装置200の電源が切れた回数が分かる(つまり、電源が入るたびに、そのつど電源を切ることになる)。電源サイクル数はCPU260で測定できる。メモリ装置200が電源サイクルを通過するたびに、CPU260はファームウェアで装置リセットルーチンを呼び出すことができる。CPU260が稼働時間カウンタに1単位を加える場合と同様に、この装置リセットルーチンにより、CPU260はCPU RAMS262および/またはメモリ210の電源サイクルカウンタに1単位を加える。メモリの消耗を抑えるため、稼働時間カウンタと同様に、電源サイクルカウンタも周期的に更新できる。
メモリ装置200の電源が切れると、(メモリ装置200は「稼働」していないときに稼働時間を測定できないために)少なくともある程度の実時間は稼働時間に反映されないことになる。メモリ装置200は電源サイクル間にどれだけの時間が経過したかを知らないため、測定稼働時間がどの程度不正確かを電源サイクル数からつかむことはできない。しかし、メモリ装置200の使い方が想定された使用パターンから外れているか否かを電源サイクル数からある程度つかむことはできる。さらにそこから、測定稼働時間がどの程度不正確かが大まかに分かり得る。例えば、最後のタイムスタンプからメモリ装置200の電源サイクルが10回あった場合の時間推定は、最後のタイムスタンプからメモリ装置200の電源サイクルが1回しかなかった場合の時間推定より正確でない可能性がある。
メモリ装置200は、電源サイクル数チェックがTUPに含まれている場合には、最終タイムスタンプ以降のメモリ装置200の電源サイクル数をチェックし、その数値が「電源サイクル」値に設定されたしきい値を超過するか否かを確認する(アクト520)。このしきい値は所望の時間公差に応じてACRごとに設定できる。例えば非常にデリケートな認証で証明書やCRLの有効期限が過ぎていないことを確実に立証する必要があるなら、このしきい値を1に設定することができる。この場合、メモリ装置200の電源が一度でも切れていたなら(これに応じて少なくともある程度の時間は測定稼働時間に計上され得なくなる)、このパラメータのTUPチェックは不合格に終わる。その一方で、さほどデリケートでない認証なら電源サイクル数を高い数値に設定することができる(あるいはこれを一切考慮しない)。この場合、電源サイクルがいくらかあっても(測定稼働時間に計上されない時間がある程度あっても)、TUPチェックには合格する。
電源サイクル数チェックが不合格に終わり、TUPパラメータでOR関係が判明する(アクト525)場合には、TUPチェックは不合格に終わる(アクト530)。メモリ装置200は不合格を伝えるメッセージをホスト装置300へ送信し、前述した手順により新規タイムスタンプを取得する。電源サイクル数のチェックに合格するなら、あるいは失格してもTUPパラメータにOR関係がないことが判明するなら(アクト525)、処理は継続し、最終タイムスタンプ以降の稼働時間チェックがTUPに含まれているか否かを判断する(アクト535)。
前述した電源サイクル手順と同様に、「稼働時間」値が0なら、稼働時間のチェックは行われない。しかし、「稼働時間」値が0以外なら、その値を秒単位(または他の何らかの時間単位)のしきい値として使用し稼働時間をチェックする。電源サイクル数と同様に、稼働時間のしきい値は所望の時間公差に応じてACRごとに設定できる。一般的に、メモリ装置200の稼働が長いほど測定稼働時間が不正確になる見込みは高くなる。したがって、非常にデリケートな認証で証明書やCRLの有効期限が過ぎていないことを確実に立証する必要があるなら、測定稼働時間のしきい値を非常に低く設定することができる。逆に、認証がデリケートではないなら、測定稼働時間のしきい値をより高く設定することができる(あるいはこれを一切考慮しない)。
稼働時間チェックが不合格に終わり、TUPパラメータでOR関係が判明する(アクト545)場合には、TUPチェックは不合格に終わる(アクト550)。メモリ装置200は不合格を伝えるメッセージをホスト装置300へ送信し、前述した手順により新規タイムスタンプを取得する。稼働時間チェックに合格するなら、あるいは失格してもTUPパラメータにOR関係がないことが判明するなら(アクト545)、処理は継続し、「伸張」稼働時間のチェックがTUPに含まれているか否かを判断する(アクト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における稼働時間チェックは正確な結果を出さないことがある。
この問題に対処するため、「伸張」稼働時間のチェックを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)とに詳細が記載されている。
「伸張」稼働時間を使用する代わりに「伸張」非稼働時間を使用することもできる。非稼働時間は、メモリ装置200がタイムスタンプ間に稼働していなかった時間を指す。メモリ装置200がどれくらい長く稼働していなかったかを測定する手だてはないため、非稼働時間は計算値である。具体的には、非稼働時間=タイムスタンプ間の実時間−稼働時間である。「伸張」非稼働時間は、旧測定稼働時間(または測定稼働時間に基づく非稼働時間)の算出精度に基づいて調整された非稼働時間計算である。以下、考慮できる非稼働時間の変形例の例を示す。ここでの「DownTime」は「伸張」非稼働時間(既知のタイムスタンプ間非稼働時間の平均等)を指す。
合計非稼働時間推定(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なら、タイムスタンプ更新は必要である。
図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は、前述したタイムスタンプ更新を開始できる。
前述したように、認証試行に用いる時間推定は、最終タイムスタンプに測定稼働時間を加算することによって生成される。測定稼働時間は正確でないかもしれないため、時間推定の精度を向上させるため、前述した「時間伸張」手法を用いることができる。しかし、「伸張」稼働時間は、実際には実時間を上回ることがある。TUPをチェックする場合にそのような稼働時間の「過大伸張」があると、新規タイムスタンプを取得することになる。しかし、証明書やCRLを検査する場合に稼働時間の「過大伸張」があると、正当なエンティティが認証されなくなるおそれがある。したがって、認証のために時間推定を生成する場合には、「時間伸張」を使用しないほうが望ましいこともある。
要約すると、メモリ装置200は前述した方法によりエンティティ認証要求を受信し、エンティティの認証を試みる前に、新規タイムスタンプが必要か否かを判断する。新規タイムスタンプが必要なら、メモリ装置200は新規タイムスタンプを取得し、その新規タイムスタンプに基づき時間推定を生成し、その時間推定を証明書および/またはCRLの有効期間に比較することにより、エンティティの認証を試みる。新規タイムスタンプが必要でなければ、メモリ装置は最終タイムスタンプに基づき時間推定を生成し、その時間推定を証明書および/またはCRLの有効期間に比較することにより、エンティティの認証を試みる。
この実施形態ではエンティティの認証に先立ちTUPをチェックし、必要であれば新規タイムスタンプを取得することに留意するべきである。換言すると、TUPのチェックや新規タイムスタンプの取得に先立ち、エンティティを認証する必要はない。これは、1つのサーバを使ってタイムスタンプとDRMライセンスの両方を提供するシステムと対照的である。この場合、メモリ装置にタイムスタンプ(またはその他情報)を提供する前に、メモリ装置に対してサーバを認証する必要がある。これは「キャッチ22」と呼ばれる状況を招く。つまり、サーバの認証に新しい時間が必要でも、新しいタイムスタンプはサーバが認証された後でないと入手できない。そのような状況を回避するため、一部の先行システムでは認証プロセスに時間を使用しない。前述した「キャッチ22」状況は回避されても、時間を無視すると認証されるべきでないエンティティ(証明書および/またはCRLが期限切れになったエンティティ等)が認証されることがある。
メモリ装置200に対して認証を試みるエンティティからタイムサーバ100を分離することにより、プレイヤ301とメモリ装置のタイムモジュール204との間に「フリーチャネル」ができあがり、プレイヤ301はタイムサーバ100からのタイムスタンプ更新を引き渡せるようになる(図3参照)。このタイムスタンプから時間推定を生成し、認証にあたっては、その時間推定に照らしてエンティティの信用証明を検証できる。「フリーチャネル」は、最初のエンティティ認証を省いて確立される通信ルートを指す。対照的に、「セキュアチャネル」はエンティティが認証された後でないと確立されない通信ルートを指す。
プレイヤ301を認証せずとも、プレイヤ301を管路として使用し、タイムサーバ100からメモリ装置200へタイムスタンプを供給することはできるが、タイムスタンプが信頼された供給元からのものであることを保証するため、タイムサーバ100は認証したほうがよい。これを示す図4および図6のアクト435では、タイムサーバ100のタイムスタンプを受け付ける前にタイムサーバ100の証明書とCRLを検査している。しかし、前述した「キャッチ22」状況を回避するには、メモリ装置200でタイムサーバ100の証明書およびCRLの有効期間が過ぎていないと仮定したほうが好ましく、その場合には時間推定による有効期間の検査は行われない。
メモリ装置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の再生回数が所定の回数を超過しているか否かを判断するチェックを含むが、これに限定されない。
前述したように、タイムスタンプが新しいほど時間推定が正確になる見込みは高くなる。前述した実施形態では、ACRのTUPによってタイムスタンプ更新が必要か否かが決まる。したがって、DRMライセンス検証のために生成される時間推定がどの程度正確なものになるかは、事実上TUPによって決まる。TUPパラメータの決定にあたっては、期限切れを検討しながらサービスを提供するサービスプロバイダのニーズと、新しいタイムスタンプを取得するために面倒でもホスト装置をネットワークへ接続しなければならないエンドユーザのニーズとで、バランスをとる必要がある。時間公差が極端に緩いと、サービスプロバイダの収益が損なわれるおそれがある。その一方で、時間公差が極端に厳しいと、タイムスタンプを取得するための頻繁なネットワーク接続が負担となって、エンドユーザはサービスを断念するおそれがある。
メモリ装置200にあるACRがただ1つで、TUPがただ1つの場合には(あるいは複数のACRで同じTUPを共有する場合には)、全てのサービスプロバイダに1つの「共通」TUPを使って適度のバランスをとることはできないかもしれない。そこで、この実施形態のメモリ装置200は、TUPがそれぞれ異なる(TUP1,TUP2)複数のACR201,202を有し、TUPは該当するサービスプロバイダが設定できるようになっている。前述したように、個別のACRを設けることにより、認証にあたって異なる認証方式(対称認証、非対称認証等)を使用するようにメモリ装置200を設定することができる。個別のACRを設けることにより、時間公差の設定も可能になる。ACRのTUPが設定可能なら、サービスプロバイダは独自の時間公差を設定できる。つまり、時間を伝えるメモリ装置のパラメータ(稼働時間、電源サイクル数、「伸張」稼働時間/非稼働時間等)を古いと判断し、タイムスタンプ更新をトリガーする時期を指定できる。TUPが設定可能なら、サービスプロバイダは1つの「共通」TUPに頼る代わりに、自身のニーズとエンドユーザとの関係に基づいて時間公差を設定できる。
例えば、サービスプロバイダによっては証明書を発行する時間が非常に短い(10分間等)。エンドユーザがメモリ装置200でサービスの利用を望むたびに新しい証明書の取得をエンドユーザに強制することにより、サービスプロバイダはエンドユーザの挙動を綿密に監視し、エンドユーザが証明書を要求するたびに料金を査定できる。このビジネスモデルの場合には、サービスプロバイダには金銭還元のための厳重な公差が必要になる。もうひとつの例として、エンドユーザのインストールベースが極めて流動的な場合に、サービスプロバイダは、そのビジネスモデルの主要部分として、証明書を頻繁に取り消す必要があるかもしれない。この場合も、サービスプロバイダは認証にあたって最新CRLの使用を徹底するため、厳重な時間公差を望む。その一方で、サービスプロバイダが月単位の定期契約サービスを提供し、ユーザが新しいコンテンツを手に入れるために規則的にサービスプロバイダのウェブサイトに接続し、強制タイムスタンプ更新を受けるなら、エンドユーザは新たなコンテンツを手に入れるためにネットワークへ接続することが見込まれるから、さほど厳重な時間公差でなくてもよい。
ACRで設定可能なTUPを使用する代わりに、あるいはACRで設定可能なTUPを使用することに加えて、各コンテンツのDRMライセンスに設定可能なTUPを配置することができる。この場合、認証済みエンティティが全てのコンテンツを同様に扱うのではなく、一部のコンテンツについては既存タイムスタンプを使用し、他のコンテンツについては新規タイムスタンプの取得をエンティティに強制することができる。(認証のときのみチェックがなされるACRのTUPと違って、ライセンスに配置されたTUPは、DRMモジュール207がライセンスの検証を試みるたびにチェックされる。)
例えば、ユーザが自身のメモリ装置に2時間の映画をダウンロードする状況について考えてみる。ユーザのメモリ装置には、その映画が24時間限定で視聴できることを伝えるライセンスも併せてダウンロードされる。サービスプロバイダは、ユーザが24時間を過ぎて映画を視聴することを望んでいないが、通常のユーザに新しいタイムスタンプを取得させるためにネットワークに接続する面倒をかけることも望んでいない。そこで、サービスプロバイダは、稼働時間が4時間(2時間の映画を観るのにかかる稼働時間×2)を上回る場合には新規タイムスタンプを要求するTUPをライセンスに配置することに決める。DRMモジュール207がライセンスの検証を試みるときに稼働時間が4時間を上回っているなら、ユーザは映画を観られなくなる(映画を観られなくなるのは新規タイムスタンプが必要だからであって、ライセンスの期限切れとは限らない)。(稼働時間の代わりに、あるいは稼働時間に加えて、電源サイクル数をTUPに使用することもできる。例えば、平均的な使用パターンに基づき、10回以上の電源サイクルからメモリ装置の使用時間が24時間を超えていると判断できる。)新規タイムスタンプから生成された時間推定によってライセンスが有効であることが判明する場合には、DRMモジュール207は映画の再生を再び許可する。
TUPをライセンス単位で設定できるなら、コンテンツに合わせてTUPを調整できる。つまり、24時間後に期限切れになる映画ではなく、1週間後に期限切れになる映画なら、ライセンスの時間公差設定を変えることができる。例えば、サービスプロバイダは、メモリ装置が平均して1日当たり10時間使われると推定し、70時間(1日当たり10時間×7日)の稼働時間を過ぎると時間更新をトリガーするようにライセンスのTUPを設定できる。もうひとつの例として、2時間の映画の代わりに、コンテンツが3分間のペイ・パー・ビュー方式のビデオで、視聴が1回限りなら、3分の稼働時間の後に新規タイムスタンプを要求するようにTUPを設計できる。
TUPの設計にあたって、サービスプロバイダのビジネスモデルも考慮に入れることができる。例えば、現在、保護された音楽の権利配布にあたって、月単位の定期契約サービスが一般的なビジネスモデルになっている。音楽の定期契約サービスでは、ユーザがサービスプロバイダのウェブサイトから好きなだけ音楽をダウンロードし、1ヶ月間は好きなだけその音楽を再生できる。その月が過ぎると、ユーザはライセンスを更新するために自身の定期契約を更新する必要がある。そうしなければ、ライセンスは失効し、ユーザは自身のメモリ装置に蓄積された音楽を再生できなくなる。別の音楽をダウンロードするためにサービスプロバイダのウェブサイトを頻繁に訪れるユーザは、ウェブサイトに接続するたびに新規タイムスタンプを受け取るから、そのユーザのメモリ装置から提供される時間推定の精度は上がる。しかし、比較的大量の音楽をダウンロードするユーザは、月単位のライセンスが期限切れになる前にサービスプロバイダのウェブサイトに再び接続するとは限らない。最終的にそのユーザが別の音楽をダウンロードするために再び接続したら、サービスプロバイダはライセンス期間外に音楽を再生した時間に対する料金をユーザに請求できる。このようなビジネスモデルのため、月極め定期契約のサービスプロバイダが求める時間公差は、ペイ・パー・ユース型コンテンツのサービスプロバイダのものから大いに異なるものとなる。ペイ・パー・ユース型コンテンツのユーザは、コンテンツを受け取ったウェブサイトに戻らない可能性がある。月極め定期契約サービスのユーザは、別の音楽をダウンロードするためにウェブサイトに戻る見込みがペイ・パー・ユース型サービスより高いため、月極め定期契約のサービスプロバイダにとって厳重な時間公差は望ましくないかもしれない。これは時間公差を厳しくすると、厳しくしなくてもいずれは戻ってくる顧客に新規タイムスタンプの取得を要求し、顧客の気分を害することになるからである。時間公差を緩めると、サービスプロバイダのウェブサイトに戻らない顧客が1ヶ月のライセンス期間より長く音楽を再生(例えば、1ヶ月の実時間ではなく1ヶ月の稼働時間にわたって再生)できることになる。しかし、サービスプロバイダは諸般の事情を考え合わせ、戻ってくる顧客に不便な思いをさせ気分を害する事態を避けるために払う犠牲として、そのような不正使用を認めるかもしれない。
もうひとつの例として、ユーザが自身の携帯電話機を使ってメモリ装置から音声や映像を再生しているときに、サービスプロバイダが携帯電話機に向けてポイント広告を提供するビジネスモデルについて考えてみる。そのポイント広告がコンテンツの再生時に携帯電話機の近くにある店舗に関するものなら、コンテンツが再生されているときにはホスト装置がネットワークへ接続されていなければならない。接続されていなければ、所在地ごとに異なるポイント広告を送りとどけることはできない。これを徹底するには、ユーザが確実にネットワークへ接続し新規タイムスタンプを取得するようにコンテンツのTUPを非常に低い量(1分の稼働時間等)に設定することができる。ユーザがネットワークへ接続したら、ネットワークは携帯電話機の所在地を把握し、適切な広告コンテンツを携帯電話機に送りつけることができる。その一方で、サービスプロバイダが収益をあげるにあたってコンテンツの再生回数さえ分かればよいなら、時間公差をかなり緩くできる。
前述した例から分かるように、ライセンスファイルに設定可能TUPを使用することにより、コンテンツのサービスプロバイダは、タイムスタンプ更新のためにネットワークへのホスト装置接続を顧客に強いて顧客の気分を害することがないように、適当な時間更新を設定しバランスをとることができる。この実施形態のメモリ装置は多数のTUPを備える多目的・多用途メモリ装置であるため、メモリ装置で一定の時間が過ぎてある1つのサービスが締め切られても、他のサービスは有効であり続ける。つまり、TUPはコンテンツのライセンスごとに異なるため、たとえプレイヤが認証済みであっても、場合によってはメモリ装置で再生できるコンテンツと、新規タイムスタンプを取得しない限り再生できないコンテンツがある。
前に説明したように、これら実施形態のメモリ装置は2つの構成要素を含む。つまり、中央セキュリティシステムと、中央セキュリティシステムから独立した1つ以上のアプリケーションとからなる。(アプリケーションは中央セキュリティシステムから独立しているため、ここではアプリケーションのことを「エクステンション」または「内部エクステンション」と呼ぶことがある。)図3に見られる実施形態で、アプリケーションはDRMモジュール207の形態をとっている。しかし、eコマース機能、バンキング機能、クレジットカード機能、電子マネー機能、生体計測機能、アクセス制御機能、個人データ機能、eメール保安機能を提供するアプリケーション等、これとは別のアプリケーションを使用することもできる。また、図3のメモリ装置200にはただ1つのアプリケーションが示されているが、数通りのアプリケーションをメモリ装置に用意することもできる(DRMモジュールとeコマースモジュール等)。
中央セキュリティシステムはACRを使用し、メモリ装置内のアプリケーション(DRMエージェント等)を通じてメモリ装置に蓄積された被保護データに対してアクセスを試みるエンティティを認証する。メモリ装置に対してエンティティが認証されると、エンティティと、エンティティの認証に使ったACRによって指定されるアプリケーションとの間で、セキュアセッションが始まる。そこで、エンティティは、被保護データにアクセスするためのコマンド/要求をアプリケーションに送信できる。このように、中央セキュリティシステムはメモリ装置にとって門番の役割を果たす。前に参照した米国特許出願第11/557,028号(特許文献10)で詳述されているように、中央セキュリティシステムはメモリ装置200で実行する種々のアプリケーションを分離することもでき、その場合には、ある1つのアプリケーションは他のアプリケーションのデータにアクセスできない。
中央セキュリティシステムはアクセス管理機構を提供し、メモリ装置に蓄積されたデータに対するアクセスを認可されたエンティティに限定する形でデータを保護するが、中央セキュリティシステム自体は、保護の対象となるデータを認識し処理しない場合がある。被保護データを認識し処理するのは、メモリ装置で実行するアプリケーションである。例えば、被保護データがDRMライセンスなら、中央セキュリティシステムではなくDRMエージェントがDRMライセンスを検証する。したがって、中央セキュリティシステムは、アプリケーションから独立した設定可能なツールボックスとみなすことができる。具体的には、サービスプロバイダがメモリ装置にアプリケーションを設置し、ACRを設定することにより、アプリケーションに特定のエンティティが対応付けられる。中央セキュリティシステムから見た場合には、中央セキュリティシステムはそのアプリケーションがどのような働きをするのか(例えば、アプリケーションがDRMライセンス検証を果たすのか、eコマース機能を果たすのか)を知らないが、ACRに対して認証されたエンティティだけが、ACRで指定されたアプリケーションと通信できることは知っている。中央セキュリティシステムによってエンティティが認証されたら、中央セキュリティシステムはエンティティとアプリケーションとの間にセキュアチャネルを開放する。
場合によっては中央セキュリティシステムとアプリケーションの両方で時間を知る必要がある。例えば、中央セキュリティシステムは時間ベースの認証(非対称認証等)にあたって時間を知る必要があり、アプリケーションは時間ベースの操作(DRMライセンス検証等)にあたって時間を知る必要がある。前述したように、メモリ装置の中央タイムモジュールは、中央セキュリティシステムとメモリ装置で実行するアプリケーションの両方に時間を提供できる。例えば、図3を参照すると、タイムモジュール204は種々エンティティの認証のために非対称ACR201,202に時間を提供するほか、ライセンスの有効性検査のためにDRMモジュール207に時間を提供する。図8との関係で後述するように、メモリ装置のアプリケーションは、場合によってはタイムモジュールの時間に加えて、あるいはタイムモジュールの時間の代わりに、ホスト時間の使用を選ぶことができる。
図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の時間のほうが安全である。
メモリ装置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を信用できる。
プレイヤ710は、一実施形態において、歌を再生するための要求をDRMモジュール630に送るときに、DRMモジュール630にホスト時間720を勧める。DRMモジュール630は、前述したように、ホスト時間720を使うか、それともタイムモジュール620の時間を使うかを決定する。ホスト時間720は、比較的短時間のログインセッションだけに使用したほうが好ましく、絶対的な現在時間としてその後のセッションで使用するべきではない。あるいは、ホスト時間720をアプリケーションで先々使用できるように蓄積し、その時間の精度を向上させるため、前述した「時間伸張」やその他のメカニズムを用いることもできる(オプション)。しかし、ホスト時間はアプリケーションの特定の時間ベース操作に限って使用したほうが好ましく、これを使ってタイムモジュール620の時間を更新するべきではない(アプリケーションは「エクステンション」であって、中央セキュリティシステムと同じ信用陣営を形成するものではないから)。前述したように、タイムモジュール620の時間は必ず、信頼されたタイムサーバ(中央セキュリティシステムと同じ信用陣営を形成するタイムサーバ)を使って更新したほうが好ましい。また、メモリ装置600で複数のアプリケーションを実行する場合には、それぞれのアプリケーションに2つのタイムソースがある。つまり、タイムモジュール620の時間と、アプリケーションと通信するエンティティのホスト装置からの時間とを利用できる。しかし、ある1つのアプリケーションで使用するホスト時間はそのアプリケーションだけに使用したほうがよく、異なるホスト装置と関わっている別のアプリケーションには使用するべきではない。
前述したように、メモリ装置600で実行するアプリケーション(DRMモジュール630等)は、タイムモジュール620からの時間にホスト時間720を比較し、2つの時間のうちの遅い(または早い)ほうを使用するようにプログラムできる。例えば、ホスト700が十分に長い時間にわたってタイムサーバに接続しないために時間にずれが生じることにより、あるいはホストのクロックがハッキングされることにより、ホスト時間720はタイムモジュール620の時間より前になることがある。前述したように、ホスト時間720をアプリケーションで先々使用できるように蓄積することもできる。これらアイデアを組み合わせ、ホスト時間720を蓄積し、後ほど別のホスト装置から受信した時間との比較に使用(単独で使用、またはタイムモジュール620の時間と併せて使用)することができる。この比較をもとに、メモリ装置は時間ベース操作の実行にあたって目下のホスト装置の時間を使用するか、それとも蓄積されている以前のホスト装置の時間を使用するかを決定できる。例えば、メモリ装置は、時間ベース操作が「〜以前は不可」操作なら2つの時間のうちの早いほうをとり、時間ベース操作が「〜以降は不可」操作なら2つの時間のうちの遅いほうをとるようにプログラムできる。こうすれば、単一タイムサーバを基準とする単一マルチホストアンチロールバックメカニズムの参照値として、信頼された他のホストデバイスから受信したタイムスタンプを使用できる。
同じく前述したように、ホスト装置の認証にあたって、非時間ベースの認証システム(対称認証等)を使用できる。この場合、アプリケーションの時間ベース操作(DRM操作等)を認証タイムサーバから切り離すことができる。つまり、ホスト装置かDRMサーバの時間だけが使われるなら、アプリケーションの時間ベース操作は、認証タイムサーバの時間やメモリ装置のタイムモジュールの時間に左右されない。したがって、何らかの事情により認証タイムサーバに問題があったり、時間ベースのアプリケーションが認証タイムサーバに基づく時間を使用しないことを選んだりする場合でも、時間ベースのアプリケーションは引き続きホスト時間を使って操作を実行できる。
前述した実施形態はいずれも単独で使用できるほか、組み合わせて使用できることに留意するべきである。参照により援用されている特許出願には、これら実施形態と併せて使用できる他の実施形態が記載されている。さらに、現時点ではサンディスク コーポレイションのメモリ装置TrustedFlash(登録商標)でこれら実施形態を実装するのが好ましいが、どんなタイプのメモリ装置であってもこれら実施形態を役立てることができることを理解するべきである。また、メモリ装置以外の分野で時間を知るもしくは使用する必要があり、クロックが正確でないという一般的な問題に直面する場合にも、これら実施形態を役立てることができる。加えて、前述したアクトは、全面的にメモリ装置で実行する代わりに、その一部または全部をホスト装置(または他の何らかの装置)で実行することもできる。
以上の詳細な説明は、本発明を規定するものではなく、本発明がとり得る特定の形態を例示するものとして理解されることを意図する。本発明の範囲は専ら、添付の特許請求の範囲とこれと同等のものとによって規定される。特許請求の範囲に記載されたアクトは、記載された順序に限らず、いかなる順序でも実行できることに留意するべきである。最後に、本願明細書で説明した好適な実施形態の態様のどれも単独で使用できるほか、互いに組み合わせて使用できることにも留意するべきである。

Claims (20)

  1. メモリ装置に対してエンティティを認証する方法であって、
    メモリ装置により、
    エンティティ認証要求を受信するステップと、
    エンティティの認証を試みるステップの前に、新規タイムスタンプが必要であるか否かを判断するステップと、
    新規タイムスタンプが必要である場合に、前記新規タイムスタンプを受信し、その後前記新規タイムスタンプに基づく時間推定を用いて前記エンティティの認証を試みるステップと、
    を含む方法。
  2. 請求項1記載の方法において、
    前記メモリ装置により、
    新規タイムスタンプが必要でない場合に、前記メモリ装置で受信した最終タイムスタンプに基づく時間推定を用いて前記エンティティの認証を試みるステップをさらに含む方法。
  3. 請求項1記載の方法において、
    前記新規タイムスタンプが必要であるか否かを判断するステップは、前記メモリ装置で受信した最終タイムスタンプ以降の前記メモリ装置の電源サイクル数と、前記最終タイムスタンプ以降の前記メモリ装置の稼働時間と、前記最終タイムスタンプ以降の前記メモリ装置の伸張稼働時間とのうちのいずれか1つ以上に基づく方法。
  4. 請求項1記載の方法において、
    前記エンティティの認証を試みるステップは、非対称認証手順を用いてなされる方法。
  5. 請求項1記載の方法において、
    前記エンティティの認証を試みるステップは、証明書が有効であるか否かを判断することを含む方法。
  6. 請求項1記載の方法において、
    前記エンティティの認証を試みるステップは、証明書取消リスト(CRL)が有効であるか否かを判断するステップを含む方法。
  7. 請求項1記載の方法において、
    前記新規タイムスタンプは、前記メモリ装置に接続されたホスト装置によって生成される方法。
  8. 請求項1記載の方法において、
    前記メモリ装置は、前記メモリ装置に蓄積された被保護コンテンツのロックを解除するためにデジタル著作権管理(DRM)キーおよびライセンスを蓄積する方法。
  9. 請求項1記載の方法において、
    前記新規タイムスタンプが必要であるか否かを判断するステップは、前記エンティティに対応付けられたアクセス管理記録(ACR)のタイムスタンプ更新方針(TUP)が新規タイムスタンプを要求しているか否かを判断するステップを含む方法。
  10. 請求項1記載の方法において、
    前記新規タイムスタンプは、フリーチャネル経由で送信される方法。
  11. メモリ装置であって、
    新規タイムスタンプの必要性を指定する複数の異なるタイムスタンプ更新方針(TUP)を蓄積するメモリアレイと、
    前記メモリアレイと通信する回路であって、
    エンティティ認証要求を受信する働きと、
    前記エンティティの認証を試みる前に、前記エンティティに対応付けられたTUPに基づき新規タイムスタンプが必要であるか否かを判断する働きと、
    新規タイムスタンプが必要である場合に、前記新規タイムスタンプを受信し、その後前記新規タイムスタンプに基づく時間推定を用いて前記エンティティの認証を試みる働きと、をする回路と、
    を備えるメモリ装置。
  12. 請求項11記載のメモリ装置において、
    前記回路は、
    新規タイムスタンプが必要でない場合に、前記メモリ装置で受信した最終タイムスタンプを用いて前記エンティティの認証を試みる働きをさらにするメモリ装置。
  13. 請求項11記載のメモリ装置において、
    前記エンティティに対応付けられた前記TUPは、前記メモリ装置で受信した最終タイムスタンプ以降の前記メモリ装置の電源サイクル数と、前記最終タイムスタンプ以降の前記メモリ装置の稼働時間と、前記最終タイムスタンプ以降の前記メモリ装置の伸張稼働時間とのうちのいずれか1つ以上のパラメータを備えるメモリ装置。
  14. 請求項11記載のメモリ装置において、
    前記回路は、非対称認証手順を用いて前記エンティティの認証を試みる働きをするメモリ装置。
  15. 請求項11記載のメモリ装置において、
    前記回路は、証明書が有効であるか否かを判断することによって前記エンティティの認証を試みる働きをするメモリ装置。
  16. 請求項11記載のメモリ装置において、
    前記回路は、証明書取消リスト(CRL)が有効であるか否かを判断することによって前記エンティティの認証を試みる働きをするメモリ装置。
  17. 請求項11記載のメモリ装置において、
    前記新規タイムスタンプは、前記メモリ装置に接続されたホスト装置によって生成されるメモリ装置。
  18. 請求項11記載のメモリ装置において、
    前記メモリ装置は、前記メモリ装置に蓄積された被保護コンテンツのロックを解除するためにデジタル著作権管理(DRM)キーおよびライセンスを蓄積するメモリ装置。
  19. 請求項11記載のメモリ装置において、
    前記複数のTUPは、複数のアクセス管理記録(ACR)の一部分であるメモリ装置。
  20. 請求項11記載のメモリ装置において、
    前記新規タイムスタンプは、フリーチャネル経由で送信されるメモリ装置。
JP2010511334A 2007-06-08 2008-06-05 エンティティの認証に用いる時間推定の精度を向上させるための回路を備えるメモリ装置とその装置で使用する方法 Expired - Fee Related JP5343071B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/811,289 US20080307237A1 (en) 2007-06-08 2007-06-08 Method for improving accuracy of a time estimate used to authenticate an entity to a memory device
US11/811,289 2007-06-08
US11/811,344 US20080307494A1 (en) 2007-06-08 2007-06-08 Memory device with circuitry for improving accuracy of a time estimate used to authenticate an entity
US11/811,344 2007-06-08
PCT/US2008/065967 WO2008151294A1 (en) 2007-06-08 2008-06-05 Memory device with circuitry for improving accuracy of a time estimate used to authenticate an entity and method for use therewith

Publications (2)

Publication Number Publication Date
JP2010530101A true JP2010530101A (ja) 2010-09-02
JP5343071B2 JP5343071B2 (ja) 2013-11-13

Family

ID=39874443

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010511334A Expired - Fee Related JP5343071B2 (ja) 2007-06-08 2008-06-05 エンティティの認証に用いる時間推定の精度を向上させるための回路を備えるメモリ装置とその装置で使用する方法

Country Status (6)

Country Link
EP (1) EP2156355A1 (ja)
JP (1) JP5343071B2 (ja)
KR (1) KR101465555B1 (ja)
CN (1) CN101779208B (ja)
TW (1) TWI417729B (ja)
WO (1) WO2008151294A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ITVI20120262A1 (it) * 2012-10-10 2014-04-11 Siav Spa Dispositivo di archiviazione di dati in formato elettronico e procedimento di funzionamento di tale dispositivo
KR20200129776A (ko) * 2019-05-10 2020-11-18 삼성전자주식회사 재전송 공격에 대한 방어책을 포함하는 메모리 시스템의 구동 방법 및 이를 수행하는 메모리 시스템

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0736559A (ja) * 1993-07-22 1995-02-07 Internatl Business Mach Corp <Ibm> セキュア・タイムキーピング装置
JP2001505341A (ja) * 1997-09-05 2001-04-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 医用画像認証用デジタル認証センター
JP2003296278A (ja) * 2002-04-05 2003-10-17 Simple Net International Group Kk データ管理システム、データ管理方法、データ管理システム用プログラム、及びデータ管理システム用記録媒体
JP2004021341A (ja) * 2002-06-12 2004-01-22 Csk Corp サーバクライアントシステム、利用者認証方法および接続プログラム
JP2004038247A (ja) * 2002-06-28 2004-02-05 Fujitsu Fip Corp ライセンス管理方法、ライセンス管理システム、ライセンス管理プログラム
JP2004056793A (ja) * 2002-06-26 2004-02-19 Microsoft Corp コンテンツに対するアクセスを管理する方法及びシステム
JP2004171544A (ja) * 2002-10-31 2004-06-17 Oki Electric Ind Co Ltd 時刻制限付コンテンツ閲覧システム
JP2004320510A (ja) * 2003-04-17 2004-11-11 Arduc Co Ltd ビデオレンタルシステム
JP2004326278A (ja) * 2003-04-23 2004-11-18 Renesas Technology Corp 不揮発性記憶装置及びデータ処理装置
JP2005063079A (ja) * 2003-08-11 2005-03-10 Matsushita Electric Ind Co Ltd メモリカード装置、権利管理システムおよび時間管理方法
WO2007030760A2 (en) * 2005-09-08 2007-03-15 Sandisk Corporation Mobile memory system for secure storage and delivery of media content

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI95980C (fi) * 1992-09-04 1996-04-10 Nokia Mobile Phones Ltd Menetelmä ja kytkentäjärjestely ajan mittaamiseksi tarkasti epätarkalla kellolla
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
EP1094374B1 (en) * 1999-10-20 2007-12-05 Sony Deutschland GmbH Mobile terminal for a wireless telecommunication system with accurate real time generation
EP1597905A1 (en) * 2003-02-20 2005-11-23 Ase R &amp; D Europe Method for offering time on smart card and method for time registration by means of mobile communication device
US7411868B2 (en) * 2004-11-14 2008-08-12 International Business Machines Corporation Estimation of time within untrusted time device disconnected from trusted time device
US8504849B2 (en) * 2004-12-21 2013-08-06 Sandisk Technologies Inc. Method for versatile content control
US20070056042A1 (en) * 2005-09-08 2007-03-08 Bahman Qawami Mobile memory system for secure storage and delivery of media content

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0736559A (ja) * 1993-07-22 1995-02-07 Internatl Business Mach Corp <Ibm> セキュア・タイムキーピング装置
JP2001505341A (ja) * 1997-09-05 2001-04-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 医用画像認証用デジタル認証センター
JP2003296278A (ja) * 2002-04-05 2003-10-17 Simple Net International Group Kk データ管理システム、データ管理方法、データ管理システム用プログラム、及びデータ管理システム用記録媒体
JP2004021341A (ja) * 2002-06-12 2004-01-22 Csk Corp サーバクライアントシステム、利用者認証方法および接続プログラム
JP2004056793A (ja) * 2002-06-26 2004-02-19 Microsoft Corp コンテンツに対するアクセスを管理する方法及びシステム
JP2004038247A (ja) * 2002-06-28 2004-02-05 Fujitsu Fip Corp ライセンス管理方法、ライセンス管理システム、ライセンス管理プログラム
JP2004171544A (ja) * 2002-10-31 2004-06-17 Oki Electric Ind Co Ltd 時刻制限付コンテンツ閲覧システム
JP2004320510A (ja) * 2003-04-17 2004-11-11 Arduc Co Ltd ビデオレンタルシステム
JP2004326278A (ja) * 2003-04-23 2004-11-18 Renesas Technology Corp 不揮発性記憶装置及びデータ処理装置
JP2005063079A (ja) * 2003-08-11 2005-03-10 Matsushita Electric Ind Co Ltd メモリカード装置、権利管理システムおよび時間管理方法
WO2007030760A2 (en) * 2005-09-08 2007-03-15 Sandisk Corporation Mobile memory system for secure storage and delivery of media content
JP2009508412A (ja) * 2005-09-08 2009-02-26 サンディスク コーポレーション メディアコンテンツのセキュアストレージと配信のためのモバイルメモリシステム

Also Published As

Publication number Publication date
CN101779208B (zh) 2013-10-16
EP2156355A1 (en) 2010-02-24
TWI417729B (zh) 2013-12-01
WO2008151294A1 (en) 2008-12-11
TW200907685A (en) 2009-02-16
JP5343071B2 (ja) 2013-11-13
KR101465555B1 (ko) 2014-11-26
KR20100031124A (ko) 2010-03-19
CN101779208A (zh) 2010-07-14

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
US7822876B1 (en) Time based content management for disconnected devices
JP5180293B2 (ja) デジタル著作権管理(drm)ライセンス検証に用いる時間推定の精度を向上させるための回路を備えるメモリ装置とその装置で使用する方法
JP2010532024A (ja) 信頼されたホスト装置から時間を使用するメモリ装置とその装置で使用する方法
JP5343071B2 (ja) エンティティの認証に用いる時間推定の精度を向上させるための回路を備えるメモリ装置とその装置で使用する方法
KR20080039089A (ko) 디지털 저작권 관리 방법 및 장치
JP5180292B2 (ja) 時間推定の精度を向上させるための回路を備えるメモリ装置とその装置で使用する方法
CN101194265B (zh) 数字内容消费限制日期的控制方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110314

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130205

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130806

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130812

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees