CN101779208A - 具有用于改善用于认证实体的时间估计的准确度的电路的存储器器件和其使用方法 - Google Patents

具有用于改善用于认证实体的时间估计的准确度的电路的存储器器件和其使用方法 Download PDF

Info

Publication number
CN101779208A
CN101779208A CN200880102320A CN200880102320A CN101779208A CN 101779208 A CN101779208 A CN 101779208A CN 200880102320 A CN200880102320 A CN 200880102320A CN 200880102320 A CN200880102320 A CN 200880102320A CN 101779208 A CN101779208 A CN 101779208A
Authority
CN
China
Prior art keywords
storage component
component part
time
entity
timestamp
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
CN200880102320A
Other languages
English (en)
Other versions
CN101779208B (zh
Inventor
迈克尔·霍尔茨曼
罗特姆·西拉
罗恩·巴尔齐莱
法布里斯·E·乔甘德-库洛姆
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,344 external-priority patent/US20080307494A1/en
Priority claimed from US11/811,289 external-priority patent/US20080307237A1/en
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of CN101779208A publication Critical patent/CN101779208A/zh
Application granted granted Critical
Publication of CN101779208B publication Critical patent/CN101779208B/zh
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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

公开了具有用于改善用于认证实体的时间估计的准确性的电路的存储器器件和使用其的方法。在一个实施例中存储器器件接收认证实体的请求。在试图认证该实体之前,存储器器件确定是否需要新的时间戳。如果需要新的时间戳,则存储器器件接收新的时间戳,然后试图使用基于该新的时间戳的时间估计来认证该实体。在另一实施例中,存储器器件包括指定何时需要新的时间戳的多个不同的时间戳更新策略(TUP),且确定是否需要新的时间戳的确定是基于与该实体相关的TUP的。公开了其他实施例,且各个实施例可以单独或组合使用。

Description

具有用于改善用于认证实体的时间估计的准确度的电路的存储器器件和其使用方法
相关申请的交叉引用
本申请涉及“Method for Improving Accuracy of a Time Estimate”,美国专利申请序列号11/811284;“Memory Device with Circuitry for ImprovingAccuracy of a Time Estimate”,美国专利申请序列号11/811347;“Method forImproving Accuracy of a Time Estimate Used to Authenticate an Entity to aMemory Device”,美国专利申请序列号11/811289;“Memory Device withCircuitry for Improving Accuracy of a Time Estimate Used to Authenticate anEntity”,美国专利申请序列号11/811344;“Method for Improving Accuracy of aTime Estimate Used in Digital Rights Management(DRM)License Validation”,美国专利申请序列号11/811354;“Memory Device with Circuitry for ImprovingAccuracy of a Time Estimate Used in Digital Rights Management(DRM)LicenseValidation”,美国专利申请序列号11/811348;“Method for Using Time from aTrusted Host Device”,美国专利申请序列号11/811346;以及“Memory DeviceUsing Time from a Trust Host Device”,美国专利申请序列号11/811345;其每个都与此一起提交且通过引用合并于此。
背景技术
诸如来自SanDisk公司的TrustedFlashTM存储器器件(device)的一些存储器器件需要知道时间,以便进行基于时间的操作,诸如数字权限管理(DRM)许可证验证(validation)。由于在这种操作中涉及的安全问题,存储器器件可能不能信任主机设备来提供正确的时间。虽然存储器器件可能能够从网络中的受信任的组件获得正确的时间,但是在存储器器件需要知道时间时,托管(host)存储器器件的主机设备可能未连接到网络。存储器器件可以被设计来测量其活动的时间,但是,如果该存储器器件没有连续地测量活动时间(例如,如果在测量开始之后该存储器器件断电),则从测量的活动时间生成的时间估计将不是活动时间的真实量度。因此,从测量的活动时间生成的时间估计实际上仅指示活动时间可能的下限(lower limit),且这种时间估计可能不提供在某些基于时间的操作中期望的准确度。尽管可以为存储器器件配备备用电池时钟以便即使存储器器件不活动时也连续地保持追踪时间,但是这样的时钟可能增加存储器器件的成本。
发明内容
本发明由权利要求限定,并且此部分中的任何内容都不应当作是对这些权利要求的限制。
通过介绍,以下描述的实施例提供具有用于改善用于认证实体的时间估计的准确性的电路的存储器器件和使用其的方法。在一个实施例中,存储器器件接收认证实体的请求。在试图认证该实体之前,存储器器件确定是否需要新的时间戳。如果需要新的时间戳,则存储器器件接收新的时间戳,然后试图使用基于该新的时间戳的时间估计来认证该实体。在另一实施例中,存储器器件包括指定何时需要新时间戳的多个不同的时间戳更新策略(TUP),且是否需要新的时间戳的确定是基于与该实体相关的TUP的。公开了其他实施例,且各个实施例可以单独或组合到一起使用。
现在将参考附图来描述这些实施例。
附图说明
图1是一个实施例的系统的图示。
图2是一个实施例的存储器器件的方框图。
图3是图2的存储器器件中的各种功能模块的图示。
图4是一个实施例的不对称认证处理的协议图。
图5是用于获得时间戳的实施例的系统图。
图6是用于获得时间戳的实施例的方法的流程图。
图7是用于检查时间戳更新策略的实施例的方法的流程图。
图8是对于在存储器器件中运行的应用使用主机时间的实施例的存储器器件的图示。
具体实施方式
现在转向图1,图1是将用于说明这些实施例的系统10的图示。如图1所示,系统10包括与相应多个主机设备可移除地连接的多个存储器器件20、30、40,多个主机设备是:个人计算机(PC)50、数字媒体(例如MP3)播放器60和蜂窝电话70。主机设备是可以从存储器器件读数据和/或向存储器器件写数据的设备。数据可以包括但不限于数字媒体内容,诸如音频或(具有或不具有音频的)视频文件、图像、游戏、书籍、地图、数据文件或软件程序。例如,可以从网络中的服务器将数据下载、由制造商或其他第三方预装载、或从另一设备侧面装载(side-load)到存储器器件中。
主机设备可以采用任何适当的形式,且不局限于图1所示的例子。例如,主机设备可以采用笔记本计算机、手持计算机、手持电子邮件/文本消息器件、手持游戏控制台、视频播放器(例如,DVD播放器或便携式视频播放器)、音频和/或视频记录器、数字摄像机、机顶盒、显示设备(例如电视)、打印机、车载音响、和导航系统的形式。而且,主机设备可以包括混合的功能。例如,主机设备可以是除了能够发起和接收电话呼叫以外还能够播放数字媒体(例如,音乐和/或视频)文件的蜂窝电话。
主机设备诸如PC 50和蜂窝手机70可以具有通信地连接到网络(诸如因特网80或无线网络90,虽然可以使用其他类型的网络)的能力。具有这种能力的主机设备在此将被称为“连接的设备”。应当理解,“连接的设备”可能并不总是实际与网络连接,诸如当蜂窝电话70以未连接模式操作时或当PC 50未建立因特网连接时。自身不具有通信地连接到网络的能力的主机设备(诸如,数字媒体播放器60)在此将被称为“未连接的设备”。可以通过将未连接的设备与连接的设备连接,来将未连接的设备置于与网络通信,如图1所示,其中,数字媒体播放器60与PC 50连接。即使以此方式连接,如果该未连接的设备未被设计用于这种功能(例如,简单的MP3播放器),则未连接的设备也可能不能从网络拉取(pull)信息。在这种情况下,在网络中的组件可以将信息推向该设备。应该注意,虽然图1示出了数字媒体播放器60经由有线连接而连接到PC 50,但是可以使用无线连接。类似地,术语“连接”和“耦接”不一定指的是有线连接或直接连接。
网络(例如,因特网80或无线网络90)可以允许连接的设备(或被连接到连接的设备的未连接的设备)访问外部组件,诸如但不限于:时间服务器100,其可以提供时间戳;和数字权限管理(digital rights management,DRM)服务器110,其可以提供DRM保护的内容和用于访问这种内容的许可证。以下将更详细地描述这两个服务器。虽然,在图1中示出了时间服务器100和DRM服务器110作为分离的设备,但是,这两个服务器可以被组合到单个设备中。另外,这些服务器可以包含其他的功能。而且,如果需要的话,可以经由因特网80和无线网络90来访问除了时间服务器100和DRM服务器110以外的组件。
再次转到附图,图2是可以采用存储卡或记忆棒的形式的一个实施例的存储器器件200的方框图。如图2所示,存储器器件200包括非易失性存储器阵列(诸如闪存)210和电路的集合220。在该实施例中,非易失性存储器阵列210采取固态存储器,具体地闪存210的形式。应该注意,代替闪存,可以使用其他类型的固态存储器。还应该注意,可以使用除了固态存储器以外的存储器,诸如但不限于磁盘和光盘CD。而且,为了简化,术语“电路”这里将用于指纯硬件实现和/或组合的硬件/软件(或固件)实现。因此,“电路”可以采取特定用途集成电路(ASIC)、可编程逻辑控制器、嵌入式微控制器和单片计算机以及处理器和存储可由处理器执行的计算机可读程序代码(例如,软件或固件)的计算机可读介质中的一个或多个的形式。
图2中的电路的集合220包含多个组件:主机接口模块(HIM)230、闪存接口模块(FIM)240、缓冲器管理单元(BMU)250、CPU 260和硬件计时器块270。HIM 230提供用于主机设备300的接口功能,以及FIM 240提供用于闪存210的接口功能。BMU 250包括用于提供加密/解密功能的加密引擎(crypto-engine)252和用于分别与HIM 230和FIM 240通信的主机直接存储器访问(DMA)组件254和闪存DMA组件256。CPU 260执行在CPU RAM260和/或闪存210中存储的软件和固件。以下将结合存储器器件测量时间的能力来描述硬件计时器块270。
为了简化附图,未在图2中示出存储器器件200的其他组件,诸如用于将存储器器件200可移除地连接到主机设备300的电气和物理连接器。关于存储器器件200和其操作的更多信息可以在美国专利申请序列号11/314411和11/557028中得到,其两者通过引用合并于此。另外的信息可以在美国专利申请序列号11/322812和美国专利申请序列号11/322766中得到,其两者通过引用合并于此。除非在权利要求中明确地指出,否则在那些文档中描述的组件和功能不应该被理解入权利要求中。
在这个实施例中,存储器器件200存储用于对在存储器器件200上存储的受保护内容解锁的数字权限管理(DRM)密钥和许可证。(应该注意,这些实施例也可以与不存储用于对在存储器器件上存储的受保护内容解锁的DRM密钥和许可证的存储器器件一起使用。)DRM密钥和许可证可以由存储器器件200生成、或在存储器器件200外部生成(例如通过DRM服务器110)并发送到存储器器件200。由于DRM密钥和许可证随着存储器器件200而移动,因此,受保护内容被有效地绑缚(tie)于存储器器件200而不是主机设备300,因此使得受保护内容可移动(portable)并可由任何能向存储器器件200证明它是授权的设备的主机设备访问。来自SanDisk公司的TrustedFlashTM存储器器件是在存储器器件上存储了DRM密钥和许可证从而受保护内容可随存储器器件移动的存储器器件的例子。在一些实施例中,存储器器件200还用被存储在存储器器件200上的DRM密钥来验证(validate)DRM许可证,而在其他实施例中,存储器器件200向主机设备300提供DRM密钥以便其通过DRM密钥验证DRM许可证。
在该实施例中,存储器器件200的CPU 260执行安全存储应用(SSA)以保证仅具有适当的证明文件(credential)的被认证的实体可以访问DRM密钥和许可证。SSA的计算机可读代码可以被存储在闪存210、CPU RAM 262或在存储器器件200中的另一存储位置中。在上述参考的‘028专利申请中更详细地描述了SSA。图3是将被用于图示SSA的操作的在存储器器件200中的各种功能模块的图示。如图3所示,存储器器件200包括各种访问控制记录(“ACR”):第一不对称ACR 201、第二不对称ACR 202和对称ACR 203。第一和第二不对称ACR 201、202包括第一和第二时间更新策略(分别地,TUP1和TUP2),其将在以下详细地描述。虽然在图3中示出了多个ACR,但是存储器器件200可以仅包括单个ACR。
每个ACR 201、202和203规定了要使用的认证方法以及需要什么类型的证明文件来提供实体的身份的证明。每个ACR 201、202和203还包括进行各种动作、诸如访问DRM密钥和许可证的许可。一旦ACR成功地认证了实体,则SSA系统打开会话,通过该会话可以执行ACR的任何动作。如在此使用的,术语“实体”指的是试图访问存储器器件200的任何人或事物。例如,实体可以是运行在主机设备上的应用、主机设备本身、或人类用户。在图3中,三个实体正试图访问存储器器件200:媒体(例如,音频和/或视频)播放器301、存储应用302和另一应用303。这些实体301、302、303可以在相同或不同的主机设备上。每个实体301、302、303与特定ACR(分别地,ACR 201、202和203)相关。另外的实体(未示出)也可以与ACR 201、202和203中的一个或多个相关。
当实体发起登录处理时,其发送包括其相关的ACR的标识符的用于认证的请求,该相关的ACR指定要使用的认证方法和需要什么类型的证明文件来提供实体的身份的证明。在图3中,ACR 201和202指定不对称的认证方法,而ACR 203指定了对称的认证方法。应该注意,可以使用其他认证方法(诸如基于密码的程序),且ACR还可以指定不需要认证。除了指定具体的认证方法以外,ACR还可以包括描述每个实体一旦被认证之后可以进行的动作的许可控制记录(PCR)。
一些认证机制(诸如,例如使用用于认证的X.509证书链的单向(one-way)和双向(two-way)不对称认证)可以是基于时间的,需要存储器器件200知道时间以便确认(verify)由该实体提供的证明文件。(由对称的ACR 203使用的对称认证机制不需要存储器器件200知道时间。在对称认证中,使用由实体和其相关ACR共享的密钥来认证该实体。)在不对称认证中,可能需要时间来评估由实体提供的证明文件诸如RSA证书和/或证书废除列表(CRL)是否是有效的。(如在此使用的,“证书”可以指的是单个证书或多个证书(例如,证书链),且“CRL”可以指的是单个CRL或多个CRL)。在转到存储器器件200可以用来生成时间估计来进行这种验证(validation)的机制之前,关于不对称机制,将对证书和CRL加以简短讨论。
不对称认证使用公钥架构(PKI)系统,其中,已知作为证书授权机构(certificate authority,CA)的受信任授权机构发出用于证明实体的身份的RSA证书。想要建立身份的证明的实体利用用于证明其身份的适当证据向CA来登记。在已经向CA证明了实体的身份之后,CA向实体颁发证书。该证书典型地包括颁发该证书的CA的名字、被颁发该证书的实体的名字、该实体的公钥和由CA的私钥签名(sign)(典型地通过对公钥的摘要(digest)加密)的实体的公钥。
证书可以包含保持到期日期(expiration date)的数据字段。在这种情况下,保持证书的实体只能在有限的时间量期间(在证书过期之前)访问受ACR保护的内容。证书还可以包含保持未来的有效时间的数据字段。在这种情况下,在证书变为有效之前,ACR将不认证该实体。如果存储器器件200确定当前日期是在到期日期之后或在有效日期之前(即,如果存储器器件200确定该证书不是有效的),则该存储器器件200将不认证提供该证书的实体。
各种环境(诸如,例如名字的改变、在实体和CA之间的关联的改变、和私钥的泄漏(compromise)或疑似泄漏)可能使得证书在其到期日期之前变得无效。在这种情况下,CA需要废除该证书。在操作中,CA周期性地发出证书废除列表(CRL),其是包含所废除的证书的盖有时间戳的列表的签名数据结构。因此,为了认证实体,存储器器件200不仅检查以看该证书是否是适时的,还检查CRL以看该证书是否在CRL上列出。(该CRL可以与证书一起由该实体提供,或该存储器器件200自己可以获得CRL(例如,通过因特网80,如果存储器器件200是连接的设备))。如果该证书在CRL上列出,该证书不再有效(即使其没有过期),且该实体将不被认证。类似于证书,发布具有到期日期的CRL,其指示CRL何时应该被更新。这保证存储器器件200正使用最新的CRL。在认证期间,如果存储器器件200发现该当前的时间晚于CRL的到期日期(即,如果存储器器件200确定该CRL不是有效的),则该CRL被视为有缺陷的,且优选地不用于证书认证。
如上所述,在该实施例中,该存储器器件200需要知道时间以便确认这些证明文件(在此是证书和CRL)。存在用于允许存储器器件知道现在何时的若干选择。一个选择是在每次存储器器件需要知道时间时使得存储器器件经由主机设备向受信的时间服务器请求时间戳。该解决方案适用于连接的设备;但是,由于存储器器件既可以用在连接的设备也可以用在不连接的设备(例如,未连接到因特网的家庭PC、MP3播放器、断网的蜂窝电话(例如,当在飞机上时))中,因此该存储器器件当其需要知道时间用于认证过程时没有可用的连接可以依赖。另一选择是给存储器器件装配备用电池时钟。但是,由于给存储器器件增加了成本,这可能是不期望的。还有另一选择是依赖主机设备(从其自身的内部时钟或从外部源)向存储器器件提供时间。但是,在许多情况下,存储器器件不能信任主机设备提供准确的时间。如果允许用户“往回调(back date)”在主机设备上的时钟(即,将主机设备上的时钟设置为比当前时间更早的时间),该用户将能够避开存储器器件需要强制服从(enforce)的严格的(very)时间限制。另一方面,如果存储器器件(运行在存储器器件中的应用)可以信任主机设备,存储器器件(或运行在存储器器件中的应用)将能够在时间方面依赖主机设备。以下给出何时可以使用主机时间的更多信息。
另一选择——其用在本实施例中——是使用存储器的有限时间跟踪能力;具体地,存储器器件200的测量其活动(active)时间的能力。活动时间可以指存储器器件200与主机设备相连且被实际地使用(即,相比于空闲(idle)或休眠模式,当在存储器器件200和主机设备300之间的总线上存在活动(activity)时)的时间量。或者,活动时间可以指存储器器件200被连接到主机设备300且从主机设备300接收功率的整个时间量。术语“活动时间”和“使用时间”在此将可互换地使用。如以下描述的,在该实施例中,当硬件计时器块270可以生成时钟计时标记(clock tick)作为对CPU 260的中断时,存储器器件200是活动的,且CPU 260可以递增活动时间计数器。
在操作中,硬件计时器块270(例如,ASIC控制器)包含生成周期性时钟计时标记并向CPU 260提供这种计时标记作为中断的振荡器。(优选地,振荡器以非常低的频率操作,且当CPU 260休眠时运行)。因此,硬件计时器块270基于周期性(例如,每毫秒或微秒)来中断CPU 260。当CPU 260得到该中断时,专门的时钟中断服务例程(例如,在由CPU 260运行的固件中)被调用,并且活动时间计数器增加一个周期/单位,该活动时间计数器被存储在CPU RAM 262以及也被存储在非易失性闪存210中,因此即使存在掉电(power loss),计数器值也不会丢失。为了避免对存储器210的过度损耗,优选地,不是响应于每时钟计时标记,而是周期性地(例如,每分钟等,只要存储器器件200通电)更新在存储器210中的活动时间计数器。虽然,如果在活动时间计数器更新之前发生掉电则这可能导致在测量的时间中的另外的不准确性,但是考虑到存储器器件耐久性(endurance)的益处,可能认为这种牺牲是可接受的。(为了进一步保护存储器耐久性,被存储于活动时间计数器的值可以包括指示计数器已经被写入多少次的字段。如果写入值超过了一定量,则该计数器可以被存储在存储器中的另一位置中。也可以对该计数器中的位进行移位,如果这有助于耐久性的话。)还优选地,向活动时间计数器的写不影响存储器器件200的性能(除了进行该写的功耗以外)以及常规活动。(换句话说,优选地,向时间计数器的写是服务(service)主机命令的处理的一部分。)例如,向活动时间计数器的写可以被看作后台任务,且在服务主机设备命令之前执行。在主机设备命令的结尾,在存储器器件200中的固件可以通过将数据从存储器读出以及将其与期望的值比较来确认活动时间计数器的编程成功了。
而且,优选地,该活动时间计数器的值被安全地存储在存储器210中(例如,使用密钥散列消息认证码(key-hashed message authentication code,HMAC)经由加密引擎252签名),从而其不能轻易地被篡改。在签名不匹配的情况下,该数据可以被看作是未初始化的,就好像攻击者篡改了它一样。另外,应该注意,可以使用用于测量活动时间的其他机制。
为了将在活动时间计数器中存储的值转换为真实时间,CPU 260将所存储的值与硬件计时器块270生成时钟计时标记的频率相乘。例如,如果值500被存储在活动时间计数器中,且硬件计时器块270每5毫秒生成一个时钟计时标记,则CPU 260将计算得到2500(5的500倍)毫秒的活动时间。为了生成时间估计,所换算的活动时间被增加到由存储器器件200从受信源接收的上次时间戳。换句话说,时间戳用作“开始线”,而将存储器器件的测量的活动时间增加到该时间戳。时间戳可以采用任何形式,且将时间指示到任何期望的精度(例如,年、月、日、小时、分、秒等)。优选地,从存储器器件200信任能给予其准确时间的实体(例如,时间服务器100或受信的主机设备)向存储器器件200提供时间戳。时间戳可以采取任何形式,且其本身被发送或被包括在其他信息中发送。存储器器件优选地经由加密引擎252安全地存储时间戳,因此其不能轻易地被篡改。当存储器器件200接收新的时间戳时,在存储器器件200中存储该新的时间戳,且将活动时间计数器复位。因此,之后将相对于新的时间戳而不是旧的时间戳来测量活动时间。取代复位(因此“回退”)计数器,可以记录在新的时间戳时存在的活动时间计数器值,且将其从当前时间中减去以便测量活动时间。
既然讨论了存储器器件的时间跟踪能力,将描述认证过程的例子。再次转到附图,图4是一个实施例的不对称认证处理的协议图。在以下例子中,播放器301正尝试经由ACR 201登录存储器器件200。如以下详细描述的,播放器301包含证明文件(例如,RSA密钥对,证书和证书废除列表(CRL)),且该ACR 201负责验证播放器301的真实性(authenticity)和对象授权(在该情况下,建立在播放器301和DRM模块207之间的安全通道)。如图4所示,第一步是主机设备300向存储器器件200发送用于认证播放器301的请求(动作402)。如果时间戳还没有安装在存储器器件200中,则存储器器件200用登录失败的消息来响应于该认证请求(动作404)。
接下来的系列动作描述了向存储器器件200提供时间戳的处理,且将结合图5和6来描述,该图5和6分别是系统图和流程图,其图示了其中存储器器件200可以获得时间戳的一个具体方式。应该理解,存储器器件200可以以不同的方式来获得时间戳,而且时间戳可以采取不同的形式。还应该理解,与多个服务器或主机接口的单个存储器器件可以同时处理多种形式。因此,该例子的细节不应该被读入权利要求,除非其中明确指出。
如图5所示,该存储器器件200经由存储器器件-主机设备通信信道305与主机设备300通信,且该主机设备300经由主机设备-时间服务器通信信道315与时间服务器100通信。虽然该时间服务器100可以包括单个服务器,但是在该实施例中,该时间服务器100包括经由服务器间通信信道325而彼此同步的多个服务器102、104、106。而且,如上所述,取代使用时间服务器100来得到时间戳,可以使用来自主机设备300的时间戳,优选地只有在其是受信的主机设备的情况下如此。
在该实施例中,由主机设备300发起用于请求时间戳的过程,该主机设备300向存储器器件200发送获取现时命令(get nonce command)(动作405)(见图4、5和6)。在该实施例中,现时(nonce)是由存储器器件200使用来稍后确认由时间服务器100生成的时间戳的真实性的160比特随机数。该存储器器件200生成随机数(现时)(动作410)并将其存储在CPU RAM(即易失性存储器)262(或,替换地,存储器210)中用于稍后的确认步骤。然后,存储器器件200向主机设备300发送现时(动作415)。该存储器器件200还开始测量时间(如以下描述)来稍后确定是否发生了超时。
当主机设备300接收该现时时,它向时间服务器100发送包含该现时的获取时间戳请求(动作420)。该时间服务器100用其私钥给时间(例如,UTCZulu格式的世界时间)和现时签名。然后,该时间服务器100向主机设备300发送时间戳响应,该时间戳响应在该实施例中包括现时、时间戳、证书链和CRL链(动作425)。(应该注意,该证书和CRL从时间服务器100被发送以认证它,且与被发送以认证播放器301的证书和CRL不同)。然后,该主机设备300向存储器器件200发送具有该响应的时间更新命令(动作430)。响应于该命令,该存储器器件200尝试确认(verify)证书和CRL(动作435)。(再次,该证书和CRL不同于被发送以认证播放器301的那些)。如以下讨论的,可以优选地假设时间服务器100的证书和CRL的有效期(validity period)是有效的,而不相对于由存储器器件200生成的时间估计而检查其有效性。如果该确认失败了,该存储器器件200复位该易失性存储器262并返回到空闲进程(动作440)。如果证书和CRL的确认通过(动作445),则存储器器件200比较在该响应中的现时和在易失性存储器262中的现时(动作450)。如果该比较失败,则存储器器件复位该易失性存储器262并返回到空闲进程(动作455)。如果该比较成功,则该存储器器件200在存储器210中存储新的时间戳,优选地以安全的方式以保护其不受篡改。
应该注意,在存储器器件200生成现时410且等待响应之后(动作460),可能的是,主机设备300可以向存储器器件200发送另一获取现时命令(动作465)。如上所述,该存储器器件200在生成现时之后开始测量时间。如果在测量的时间到达特定超时限制之前接收到该新的现时命令(465),则优选地存储器器件200忽略该新的现时命令(465)。但是,如果在超时限制之后接收到新的现时命令(465),则存储器器件200将复位该易失性存储器262,并生成新的现时(动作470)。因此,该现时仅对于有限的时间有效,且该超时限制(“行程时间错误(travel time error)”)是存储器器件200考虑等待来自时间服务器100的时间戳的合法的最大时间。
因为被存储在存储器器件200中的时间戳包含时间服务器100对数据串签名的时间,因此取决于时间戳的精度(例如,年、月、日、小时、分、秒等)和在发送该请求和接收该响应中涉及的延迟,在该时间戳中指示的时间可能不是主机设备300请求时间戳的实际的、真实的世界时间或存储器器件200存储该时间戳的实际的、真实的世界时间。上述现时超时时段可以被设置为保证该时间戳将具有由存储器器件200需要的精度的时间。因此,该存储器器件200对在时间戳请求中的最大可接受延迟进行控制。而且,在另外的实施例中,由时间服务器100生成的时间戳可以指示另外的时间,诸如主机设备300请求该时间戳的估计时间、该时间戳将被存储在存储器器件200中的预期时间、或另外的时间。
上述协议允许存储器器件200在不安全的(unsecured)连接系统(例如,因特网、WiFi网络、GSM网络等)上与时间服务器100通信。该连接系统在存储器器件200不能假定由时间服务器100发送的时间戳在传输期间不被篡改的含义上是不安全的。由于不能依赖该网络来保护该时间戳,因此可以在时间服务器100和存储器器件200之间使用上述保护机制(或一些其他保护机制)。该加密协议使得,如果时间戳被篡改,则该存储器器件200可以检测到它。换句话说,因为该连接系统是不安全的,因此,该系统本身不能防止人们改变在时间戳中的比特;但是,该存储器器件200可以检测到篡改,并拒绝该时间戳。在另外的实施例中,使用安全的通信系统(即,数据通信线路被保护),且由于没有人可以篡改该时间戳,因此可以简单地以明文发送该时间戳。
返回图4,在现在在存储器器件200中存储了新的时间戳的情况下,存储器器件200向主机设备300发回“时间更新成功”消息(动作452),且主机设备300再一次向存储器器件200发送对于认证的请求(动作454)。由于存储器器件200具有时间戳,因此存储器器件200将检查ACR 201的时间戳更新策略(TUP)(动作500)。因为时间估计是基于时间戳的,因此将时间估计基于废弃的(obsolete)时间戳可能导致不准确的时间估计。因此,TUP被用来确定在存储器器件200上的现有时间戳何时被考虑为废弃的且需要刷新(renewal)(即,新的时间戳)。如图3所示且在以下更详细地讨论,不同的ACR可以具有不同的TUP(即,不同的ACR可以具有不同的时间容忍级),这可以当创建ACR时建立。
在该实施例中,由四个值来呈现TUP:(1)供电循环(cycle)的阈值数量,(2)活动时间的阈值,(3)“拉长的”活动时间的阈值,以及(4)指示在参数之间是否存在OR(或)关系(即,是否只要单个参数失败则将需要时间更新,或是否只有所有参数失败才将需要时间更新)的比特。以下将详细描述这些参数的每个。(应该注意,可以考虑除了这些以外或取代这些的其他参数)。
图7是示出检查TUP动作(动作500)的更多细节的流程图。首先,进行检查以例如通过查找被存储在存储器210中的配置数据来确定是否初始化了存储器器件200以检查TUP(动作505)。如果存储器器件200还没有被初始化以检查TUP,该存储器器件200使用由存储器器件200接收的最后时间戳来生成时间估计(动作510),且尝试使用该时间估计来认证该实体。如果该存储器器件200已经被初始化以检查TUP,则该存储器器件200开始该检查。
首先,存储器器件200确定TUP是否包括自从最后时间戳以来的存储器器件200的供电循环数的检查(动作515)。在该实施例中,通过检查上述“供电循环”值来进行此。如果“供电循环”值是0,则不检查供电循环数。如果“供电循环”值不是0,则使用作为阈值的该值来检查供电循环数。供电循环数是存储器器件200上电(power up)多少次的计数,这指示自从最后时间戳以来存储器器件200被断电多少次(即,对于每次上电,必然会存在断电)。可以由CPU 260来测量供电循环数。每次该存储器器件200进行一个供电循环,CPU 260可以调用在固件中的器件复位例程。就像在CPU 260向活动时间计数器增加一个单位的情况下那样,通过器件复位例程,CPU 260将向在CPU RAM 262和/或存储器210中的供电循环计数器增加一个单位。就像对于活动时间计数器那样,可以周期性地更新供电循环计数器来减少存储器损耗。
当存储器器件200断电时,存在未由测量的活动时间表现的至少一些实际的时间(这是因为,存储器器件200当其不是“活动的”时不能测量其活动时间)。由于存储器器件200不知道在供电循环之间经过了多少时间,因此,供电循环数不指示所测量的活动时间有多不准确。但是,它提供存储器器件100是否在预期的使用模式(usage pattern)以外使用的感觉(sense),这可以粗略地指示所测量的活动时间可能多不准确。例如,当存储器器件200自从最后时间戳以来具有十个供电循环时进行的时间估计可能比当存储器器件200自从最后时间戳以来仅具有单个供电循环时进行的时间估计更不准确。
如果TUP包括供电循环数的检查,则存储器器件200检查自从最后时间戳以来存储器器件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停止生成时钟计时标记和/或使得CPU 260停止对这种计时标记反应),则所测量的活动时间将比自从测量开始以来经过的实际时间短,这是因为当存储器器件200不活动时存储器器件中不存在任何东西告知时间正在经过。例如,让我们假设,在1月1日接收到时间戳,且存储器器件200测量到两天的活动时间。(为了简化,在该例子中以天为单位测量时间。但是,如上所述,可以使用任何期望的时间单位)。因此,在此点上由存储器器件200生成的时间估计将指示日期是1月3日(即,通过向1月1日的最后时间戳增加两天的活动时间)。如果该存储器器件200连续地测量了活动时间,则该时间估计将准确地呈现实际的时间(假设,硬件计时器块270和CPU 260准确地运行)。但是,如果存储器器件200没有连续地测量活动时间(即,如果存储器器件200在其开始了测量活动时间之后在任何点上不活动),则该时间估计将不能准确地呈现实际时间。最多,该时间估计将指示该实际时间是至少1月3日。该实际时间可能是1月4日或一些更晚的时间(6月29日、11月2日、12月5日、下一年等)。因此,在动作540中的活动时间的检查可能给不出准确的结果。
为了解决这个问题,TUP可以包括“拉长的”活动时间的检查(动作555和560)。“拉长的”活动时间是基于先前测量的活动时间的所确定的准确度来调整所测量的活动时间的结果。因此,如果存储器器件200测量三天的活动时间,并得知上次(或多个上次)它测量活动时间时,它产生了作为实际时间的50%的值,则该存储器器件200可以以因子2(因为,所测量的活动时间是实际时间的50%)来调整(或“拉长”)所测量的三天的活动时间来得到6天。关于“拉长”活动时间的另外的信息在随本申请提交的“Method forImproving Accuracy of a Time Estimate from a Memory Device”,美国专利申请序列号11/811284和“Memory Device with Circuitry for Improving Accuracy of aTime Estimate”,美国专利申请序列号11/811347中描述,其两者被引用附于此。
取代使用“拉长的”活动时间,可以使用“拉长的”当机(down)时间。当机时间指的是存储器器件200在时间戳之间不活动的时间量。由于没有测量存储器器件200有多长时间不活动的方法,因此当机时间是计算的数;具体地,当机时间=在时间戳之间的实际时间-活动时间。“拉长的”当机时间是基于先前测量的活动时间(或,基于所测量的活动时间的当机时间)的所确定的准确度而调整的当机时间计算。以下是可以考虑的其他当机时间变型的例子列表。在该列表中,“当机时间(DownTime)”指的是“拉长的”当机时间(例如,在先前知道的时间戳之间的当机时间的平均)。
总当机时间估计(teDownTime):teDownTime=(timestampi-timestampi-1-ActiveTimei),其中索引i从第二时间戳到在存储器器件200中配置的最后一个时间戳。
自从对于特定时刻的最后(last)时间戳的当前当机时间(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发送消息。然后使用上述程序来获得新的时间戳。如果“拉长的”活动时间的检查通过(或如果存储器器件200不被初始化以检查TUP),则存储器器件200向主机设备300发回“TUP通过”消息510、570(见图4)。然后,主机设备300向存储器器件200发送实体的证书和CRL,且存储器器件尝试认证该实体(动作585)。具体地,存储器器件200将基于上次接收的时间戳和所测量的活动时间来生成时间估计,以确认该证书(动作585),并确认CRL(动作590)。如果证书和CRL的到期时间晚于所生成的时间估计,则存储器器件200向主机设备300发回OK消息,且如果需要,可以进行在认证方法中的其他步骤。如果该实体被认证了,则ACR 201(在此,通过建立在播放器301和DRM模块207之间的安全通道)给对象授予实体权利。否则,如果该证书和/或CRL已经过期了,则存储器器件200可以向主机设备300发送声明该认证尝试已经失败的消息。该存储器器件200进而可以发起时间戳更新,如上所述。
如上所述,通过向最后时间戳增加所测量的活动时间来生成用于认证尝试的时间估计。由于所测量的活动时间可能是不准确的,因此可以使用上面讨论的“时间拉长”技术来改善时间估计的准确度。但是,可能地,“拉长的”活动时间可能比实际时间大。在检查TUP的情况下,这种“过度拉长的”活动时间将导致新的时间戳。但是,在确认证书或CRL的情况下,“过度拉长的”活动时间可能阻碍非此则为适当的实体被认证。因此,当生成用于认证的时间估计时可能不期望使用“时间拉长”。
总之,通过上述方法,存储器器件200接收认证实体的请求,并在尝试认证该实体之前,存储器器件200确定是否需要新的时间戳。如果需要新的时间戳,则存储器器件200获得新的时间戳,并然后尝试通过基于该新的时间戳来生成时间估计并比较该时间估计与证书和/或CRL有效期来认证该实体。如果不需要新的时间戳,存储器器件尝试通过基于上次的时间戳来生成时间估计并比较该时间估计与证书和/或CRL有效期来认证该实体。
应该注意,在该实施例中,在认证该实体之前,检查TUP,且如果需要,获得新的时间戳。换句话说,检查TUP和获得新的时间戳不要求该实体在检查TUP之前或在获得新的时间戳之前被认证。这与使用单个服务器来提供时间戳和DRM许可证两者的系统不同。这种服务器将需要在给存储器器件提供时间戳(或其他信息)之前对存储器器件认证。这出现了“自相矛盾(Catch22)”情况——为了认证该服务器,可能需要新鲜的时间,但是新鲜的时间戳仅在认证了服务器之后才可以获得。为了避免这种情况,一些现有系统简单地在认证处理中不使用时间。虽然避免了上述“自相矛盾(Catch 22)”情况,但忽略时间可能导致不应该认证的实体(例如,因为它们的证书和/或CRL过期)被认证。
通过将时间服务器100与尝试对存储器器件200认证的实体分开,该存储器器件200在播放器301和存储器器件的时间模块204之间建立“自由通道”,允许播放器301从时间服务器100递送时间戳更新(见图3)。然后,该时间戳将被用于生成时间估计,针对该时间估计,可以验证该实体的证明文件以供认证。“自由通道”指的是在没有首先认证实体的情况下建立的通信管道。相反。“安全通道”指的是仅在认证实体之后建立的通信管道。
应该注意,虽然播放器301不需要被认证以便其被用作从时间服务器100给存储器器件200供应时间戳的渠道,但是该时间服务器100优选地被认证以保证该时间戳是来自受信源的。这在图4和6中的动作435中示出,其中,时间服务器100的证书和CRL在接受其时间戳之前被确认。但是,为了避免上述“自相矛盾(catch 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确定是否需要时间戳更新。因此,TUP有效地确定所生成的时间估计将对DRM许可证验证来说有多准确。在确定TUP的参数时,需要在服务提供商——其提供具有到期考虑因素的服务——的需要和终端用户——当他们需要将其主机设备连接到网络以便得到新鲜的时间戳时,其可能感到不便——的需要之间达到平衡。如果时间容忍度太宽松,则服务提供商可能流失收入。另一方面,如果时间容忍度太严格,则如果频繁地连接到网络以获得需求的时间戳更新太麻烦则终端用户可能决定放弃该服务。
当存储器器件200有具有单个TUP的单个ACR(或所有都共享相同TUP的多个ACR)时,单个“尺寸通用的(one size fits all)”TUP可能不能对所有服务提供商都达到合适的平衡。因此,在该实施例中,存储器器件200具有多个ACR 201、202,每个具有可被其相关的服务提供商配置的不同的TUP(TUP1、TUP2)。如上所述,通过使用不同的ACR,存储器器件200可以被配置以使用不同的认证机制(对称、不对称认证等)来认证。不同的ACR的使用还允许可配置的时间容忍度。也就是说,通过在ACR中的可配置TUP的使用,服务提供商可以通过指定一个或多个存储器器件的时间告知参数(例如活动时间、供电循环数、“拉长的”活动时间/当机时间)何时被视为废弃的且应该触发时间戳更新来定义其自身的时间容忍度。通过使得TUP可配置,服务提供商可以根据其具体需要和其与终端用户的关系来配置其时间容忍度,而不依赖单个“尺寸通用的”TUP。
例如,一些服务提供商发出很短的时间(例如十分钟)的证书。通过强制终端用户在每次他希望使用在存储器器件200上的服务时得到新的证书,服务提供商可以密切地监视终端用户的行为,并在每次终端用户请求证书时评定费用。因此,对于该商业模型,服务提供商需要紧的容忍度以供货币化。作为另一例子,如果服务提供商具有非常具有流动性的终端用户安装基础,则服务提供商可以期望频繁废除证书作为其商业模型的主要部分。在这种情况下,该服务提供商将也希望紧的时间容忍度来保证最新的CRL正被用于认证。另一方面,如果该服务提供商正提供每月的订阅服务,其中,用户将规律地连接到服务提供商的网站来得到新的内容并接收强制的时间戳更新,则该服务提供商将不需要如此紧的时间容忍度,因为终端用户将很可能连接到网络来得到新的内容。
取代或附加于使用在ACR上的可配置TUP,可配置TUP可以被放置在用于各个片断的内容的DRM许可证上。以此方式,取代被认证的实体平等地对待所有内容,该实体可以被强制对于某个内容获得新的时间戳,而对于其他内容使用已有的时间戳。(与仅在认证期间被检查的ACR上的TUP不同,可以在每次DRM模块207试图验证许可证时检查在该许可证上的TUP。)
例如,考虑如下情况:其中,用户向其存储器器件下载两小时的电影以及告知该电影仅可以观看24小时的许可证。虽然该服务提供商可能不希望用户在24小时时段以后观看该电影,但是他可能也不希望通过将普通用户连接到网络以获得新的时间戳来使得普通用户不方便。因此,该服务提供商可以决定将TUP放置在许可证上,使得如果活动时间多于四个小时(观看两小时电影两次所需要的活动时间量)则需要新的时间戳。如果当DRM模块207试图验证该许可证时活动时间多于四小时,该用户将不能观看该电影——不一定因为许可证过期,而是因为需要新的时间戳。(取代或附加于活动时间,可以在TUP中使用供电循环数。例如,基于平均使用模式,十个或更多供电循环可以指示存储器器件被使用了超过24小时)。如果用新的时间戳生成的时间估计指示该许可证有效,则DRM模块207将允许再次播放该电影。
通过允许TUP是每个许可证可配置的,TUP可以被定制于(tailored to)该内容。因此,如果代替电影在24小时之后过期,电影在一星期以后过期,则可以不同地设置在许可证上的时间容忍度。例如,如果服务提供商估计存储器器件平均每天使用十小时,则服务提供商可以设置在许可证中的TUP来在70小时(即,即每天10小时乘以7天)的活动时间之后触发时间更新。作为另一例子,如果取代两小时的电影,内容是仅应该被观看一次的三分钟的每次观看付费的视频,则可以设计TUP以便将在三分钟活动时间之后需要新的时间戳。
服务提供商的商业模型还可以是在设计TUP时的考虑。例如,当前,每月的订阅服务是用于对受保护音乐分发权限的流行商业模型。在音乐订阅服务中,用户从服务提供商的网站下载如其想要的一样多的音乐,且其被允许在一个月内以如其想要的一样多的次数播放该音乐。在该月之后,该用户将需要续订(renew)其订阅来续订许可证;否则,许可证将过期,且该用户将不再能够播放存储在其存储器器件上的音乐。频繁访问服务提供商的网站来得到更多的歌曲的用户将在他们连接到网站时接收新的时间戳;因此,他们的存储器器件将能够提供更准确的时间估计。但是,下载相对大量的音乐的用户可能不一定在每月的许可证过期之前重新连接到服务提供商的网站。当用户最终重新连接以得到更多音乐时,服务提供商可能针对用户被允许在许可证期限外播放音乐的时间向用户收费。因此,作为商业模型,每月的订阅的服务提供商可能希望与每次使用付费的内容的服务提供商很不同的时间容忍度,在每次使用付费的情况下用户可能不返回到他接收了每次使用付费的内容的网站。在这种情况下,因为与每次使用付费的服务中相比用户可能在每月订阅服务中返回以得到更多的音乐,因此,服务提供商可能不希望严格的时间容忍度,因为这可能由要求用户获得新的时间戳而使用户厌烦,即使不这样做的话用户将最后返回到网站。具有不那么严格的时间容忍度可以意味着,从不返回服务提供商的网站的消费者将能够比许可证的一月期限更长地(例如,一个月的活动时间而不是一个月的实际时间)播放音乐。但是,均衡各方面考虑,服务提供商可能决定这种未授权的使用是为了避免给返回的消费者带来不便和烦扰所做出的可接受的牺牲。
作为另一例子,考虑如下商业模型,其中服务提供商希望,当用户使用其蜂窝电话来从存储器器件播放音频或视频内容时,提供对蜂窝电话的点式广告(point advertising)。如果点式广告包含涉及靠近在正播放内容时蜂窝电话的位置的商店的广告,当正播放内容时主机设备需要与网络连接;否则,不能递送针对特定位置的点式广告。为了保证此发生,该内容的TUP可以被设置为很低的量(例如,一分钟的活动时间)来保证用户将连接到该网络以得到新的时间戳。一旦用户连接到网络,则该网络将知道该蜂窝电话的位置,且将能够向该蜂窝电话推送适当的广告内容。另一方面,如果服务提供商仅通过得知该内容被播放了多少次来挣钱,则时间容忍度可以远不那么严格。
如上述例子所示,通过在许可证文件上的可配置TUP的使用,具体内容的服务提供商可以达到其认为适当的任何时间更新平衡,以便不会通过要求其顾客将其主机设备连接到网络用于时间戳更新而使顾客厌烦。应该注意,因为在该实施例中的存储器器件是具有多个TUP的多用途、多应用存储器器件,则在存储器器件上的一个服务可以在特定时间之后关闭,而在存储器器件上的其他服务仍然被使能。也就是说,由于与不同的内容的许可证相关的不同TUP,所以播放器,即使被认证了,也可能能够播放在存储器器件上的特定内容,但可能被阻止播放在存储器器件上的其他内容,除非获得了新的时间戳。
如上所述。在这些实施例中,存储器器件包括两个分离的组件:中央安全系统和与中央安全系统分离的一个或多个应用。(因为应用与中央安全系统分离,因此,应用将有时被称为“扩展”或“内部扩展”)。在图3所示的实施例中,应用采取DRM模块207的形式。但是,可以使用其他应用,诸如提供例如电子商务、银行、信用卡、电子货币、生物测量、访问控制、个人数据或安全的电子邮件功能的那些应用。还应该注意,虽然仅在图3中的存储器器件200中示出了单个应用,但存储器器件可以具有若干应用(例如,DRM模块和电子商务模块)。
中央安全系统,通过使用ACR,经由存储器器件内部的应用(例如,DRM代理)认证试图来访问被存储在存储器器件中受保护的数据的实体。一旦实体对存储器器件认证了,在实体和由用于认证该实体的ACR指定的应用之间打开安全会话。然后,该实体可以向相关应用发送命令/请求来访问受保护数据。以此方式,中央安全系统担当存储器器件的主看门者。如在上述11/557028专利申请中详细描述的,中央安全系统还可以隔离在存储器器件200上运行的各种应用,以便一个应用不具有对与不同应用相关的数据的访问。
虽然中央安全系统提供访问控制机制并保护被存储在存储器器件中的数据以便仅由适当的授权的实体来访问数据,但是中央安全系统本身可能不能理解和处理其正保护的数据。而是在存储器器件上运行的应用可以理解和处理受保护的数据。例如,如果受保护数据是DRM许可证,则DRM代理——不是中央安全系统——将能够验证该许可证。因此,中央安全系统可以被视为可配置的独立于应用的工具箱。在操作中,服务提供商将应用放置在存储器器件上,并定义将具体实体与应用相关的ACR。从中央安全系统的角度看,它不知道应用做什么(例如,应用是否提供DRM许可证验证、电子商务功能等),但却知道仅对该具体ACR被认证的实体才被允许以与在该ACR中定义的应用通信。一旦由中央安全系统认证了实体,则中央安全系统在实体和该应用之间打开安全通道。
在一些情况下,中央安全系统和应用都需要知道时间。例如,中央安全系统可能需要知道时间以用于基于时间的认证(例如不对称认证),而该应用可能需要知道时间以用于基于时间的操作(例如DRM许可证验证)。如上所述,该存储器器件具有可以向中央安全系统和运行在存储器器件上的应用两者提供时间的中央时间模块。例如,参考图3,该时间模块204可以向不对称ACR 201、202提供时间,以认证各种实体,以及向DRM模块207提供时间以确认许可证有效性。如以下以及将结合图8描述的,在一些情况下,附加于或取代来自存储器器件的时间模块的时间,存储器器件上的应用可以选择使用主机时间。
图8示出了与主机设备700通信的存储器器件600。主机设备700包括实体(在此,播放器710),且具有用于提供时间720的一些机制(例如,备用电池时钟)。在该例子中,存储器器件600具有对称的ACR 610(虽然可以使用不对称ACR)、时间模块620、DRM模块630、受保护内容640、和针对受保护内容640的许可证650。(在图8中,存储器器件中的应用是DRM模块630。应该注意,可以使用其他类型的应用,且可以在存储器器件中运行多于一个应用)。当播放器710使用对称ACR 610对存储器器件600认证时,根据在对称ACR 610中建立的参数来在播放器710和DRM模块630之间建立安全通道660。DRM模块630和播放器710彼此并非不熟悉,因为服务提供商定义了对称ACR 610来将DRM模块630与播放器710相关。因此,在DRM模块630和播放器710之间由于它们是同一组的相对成员而存在一定级别的信任。基于该信任,DRM模块630可以被编程以接受来自作为时间源的播放器710的主机时间720来进行DRM许可证验证。因此,DRM模块630具有两个独立的可用以进行DRM许可证验证的时间源:主机时间720和来自存储器器件的中央时间模块620的时间。存在与这些时间源的每个相关的优点和缺点。因为,存储器器件的时间模块620不连续地保持追踪时间,因此来自时间模块620的时间可能不像在可能由备用电池连续时钟提供的主机时间720处那么准。另一方面,由于上述所有安全预警,来自时间模块620的时间可能比主机时间720更安全,尤其是在主机设备700的用户能够使用简单的用户界面来改变主机时间720的情况下。
在存储器器件600上运行的应用(诸如DRM模块630)可以被编程以通过期望的任何方式来使用这两个不同的时间源以生成用于其基于时间的操作的时间估计。(但是,优选地,应用不能使用主机时间720来更新该时间模块620)。例如,应用可以被编程以总是使用主机时间720而不是来自时间模块620的时间,或总是使用来自时间模块620的时间而不是主机时间720。作为另一例子,应用可以被编程以使用主机时间720和来自时间模块620的时间中的较晚的(或较早的)。应用还可以被编程来以某种方式使用两种时间源(例如,采取主机时间720和来自时间模块620的时间的平均值,等)来生成时间估计。作为另一例子,应用可以基于关于主机设备700的信息来确定使用哪个时间源。应用可以通过验证处理来学习主机设备的类型(例如,如果使用不对称认证,则该认证算法可以通知应用有关与主机设备700相关的个体和群组的身份)。该信息可能是重要的,因为一些主机设备可以比其他的更安全。例如,如果主机设备是PC(个人计算机),则其时钟可能经由在软件应用上的简单用户界面被容易地操纵。(除了不信任来自相对不信任的主机设备的主机时间以外,该应用可能不信任在具有例如内容密钥、许可证值或期限或改变许可证的权限的这种主机设备上运行的实体。在这种情况下,DRM代理可能仅将内容从存储器器件流出到主机设备(而不给主机设备加密密钥和内容))。但是,如果主机是封闭式的系统,诸如MP3播放器,则主机的时钟可能更难以操纵。因此,与主机设备700是PC时相比,当主机设备700是MP3播放器时,在主机设备600上运行的应用可以更信任主机时间720。
在一个实施例中,播放器710当它向DRM模块630发送请求以播放歌曲时向DRM模块630推送主机时间720。然后,该DRM模块630决定使用主机时间720还是使用来自时间模块620的时间,如上所述。优选地,主机时间720将仅被用于特定登录会话,其将是相对较短的时间间隔,而不被用作用于稍后会话的绝对当前时间测量。或者,该主机时间720可以被存储用于未来由应用使用,且上述“时间拉长”和其他机制(可选地)用于改善该时间的准确度。但是,优选地,主机时间仅用于应用的特定的基于时间的操作,而不用于更新在时间模块620中的时间(因为应用是“扩展”,而不是与中央安全系统相同的信任阵营的一部分)。优选地,仅使用受信任的时间服务器(其是与中央安全系统相同的信任阵营的一部分)来更新在时间模块620中的时间,如上所述。还应该注意,当在存储器器件600上运行了若干应用时,每个应用可以具有两个时间源:来自时间模块620的时间和来自操作与该应用通信的实体的主机设备的时间。但是,下面的可能是优选的:允许与一个应用相关的主机设备仅被该应用使用,而不被与不同的主机设备相关的其他应用使用。
如上所讨论的,在存储器器件600上运行的应用(诸如,DRM模块630)可以被编程以比较主机时间720和来自时间模块620的时间,并使用两个时间中的较晚的(或较早的)。主机时间720可能比来自时间模块620的时间早,例如,因为主机700无法在足够长的时间内连接到其时间服务器以至于在主机时间720中发生时间偏离(skew),或因为主机时钟被黑了(hack)。如上所讨论的,主机时间720可以被存储用于未来由应用使用。结合这些想法,主机时间720可以被(单独或与来自时间模块620的时间一起)存储且稍后用于与从不同的主机设备接收的时间进行比较。基于该比较,该存储器器件可以决定使用来自当前主机设备的时间还是来自先前的主机设备的所存储的时间来进行基于时间的操作。例如,该存储器器件可以被编程以如果基于时间的操作是“不早于的”操作则取这两个时间中的较早的,且如果基于时间的操作时间是“不晚于的”操作,则取这两个时间中的较晚的。以此方式,从其他受信主机设备接收的时间戳可以被用作相对于单个时间服务器的、单个多主机防退后(anti-rollback)机制的参考。
如上所讨论的,可以使用不基于时间的认证系统(诸如对称认证)来认证主机设备。这允许应用的基于时间的操作(例如DRM操作)与认证时间服务器独立。也就是说,由于仅使用来自主机设备或DRM服务器的时间,则应用的基于时间的操作不依赖于来自认证时间服务器或存储器器件的时间模块的时间。因此,如果无论因为什么原因,认证时间服务器存在问题,或如果基于时间的应用选择不使用基于认证时间服务器的时间,则基于时间的操作可以仍然使用主机时间来进行其操作。
应该注意,上述实施例中的任何都可以被单独或结合在一起使用。在通过引用并入的专利申请中描述了可以与这些实施例一起使用的其他实施例。另外,虽然当前优选地在由Sandisk公司的TrustedFlashTM存储器器件中实现这些实施例,但是应该理解,可以在任何类型的存储器器件中使用这些实施例。而且,这些实施例可以被用在其中人们面对具有不准确的时钟且需要知道或使用时间的普遍问题的非存储器器件领域。另外,上述动作的一些或全部可以在主机设备(或一些其他设备)上而不是唯一地在存储器器件上进行。
意图前述详细的描述被理解为本发明可以采取的所选形式的图示,而不是本发明的限制。仅权利要求、包括所有等同物旨在定义本发明的范围。应该注意,在权利要求中引用的动作可以以任何顺序进行——不一定按其被引用的顺序。最后,应该注意,在此描述的优选实施例的任一个的任何方面可以单独或彼此结合使用。

Claims (20)

1.一种对于存储器器件认证实体的方法,该方法包括:
利用存储器器件:
接收认证实体的请求;
在试图认证该实体之前,确定是否需要新的时间戳;以及
如果需要新的时间戳,则接收新的时间戳,然后试图使用基于该新的时间戳的时间估计来认证该实体。
2.根据权利要求1的方法,还包括:
利用该存储器器件:
如果不需要新的时间戳,则试图使用基于由存储器器件接收的最后时间戳的时间估计来认证该实体。
3.根据权利要求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包括以下参数的一项或多项:自从由存储器器件接收的最后时间戳以来的存储器器件的供电循环数、自从最后时间戳以来存储器器件的活动时间、和自从最后时间戳以来该存储器器件的拉长的活动时间。
14.根据权利要求11的存储器器件,其中,该电路可操作来试图使用不对称认证程序来认证该实体。
15.根据权利要求11的存储器器件,其中,该电路可操作来通过确定证书是否有效来试图认证该实体。
16.根据权利要求11的存储器器件,其中,该电路可操作来通过确定证书废除列表(CRL)是否有效来试图认证该实体。
17.根据权利要求11的存储器器件,其中,该新的时间戳由与存储器器件连接的主机设备来生成。
18.根据权利要求11的存储器器件,其中,该存储器器件存储用于对存储在存储器器件上的受保护内容解锁的数字权限管理(DRM)密钥和许可证。
19.根据权利要求11的存储器器件,其中,所述多个TUP是各多个访问控制记录(ACR)的一部分。
20.根据权利要求11的存储器器件,其中,该新的时间戳是经由自由的通道发送的。
CN2008801023200A 2007-06-08 2008-06-05 具有用于改善用于认证实体的时间估计的准确度的电路的存储器器件和其使用方法 Expired - Fee Related CN101779208B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
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,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 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
CN101779208A true CN101779208A (zh) 2010-07-14
CN101779208B CN101779208B (zh) 2013-10-16

Family

ID=39874443

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008801023200A Expired - Fee Related CN101779208B (zh) 2007-06-08 2008-06-05 具有用于改善用于认证实体的时间估计的准确度的电路的存储器器件和其使用方法

Country Status (6)

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

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 삼성전자주식회사 재전송 공격에 대한 방어책을 포함하는 메모리 시스템의 구동 방법 및 이를 수행하는 메모리 시스템

Family Cites Families (18)

* 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
US5444780A (en) * 1993-07-22 1995-08-22 International Business Machines Corporation Client/server based secure timekeeping system
US6557102B1 (en) * 1997-09-05 2003-04-29 Koninklijke Philips Electronics N.V. Digital trust center for medical image authentication
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
DE69937682T2 (de) * 1999-10-20 2008-11-20 Sony Deutschland Gmbh Mobiler Terminal für ein drahtloses Telekommunikationsverfahren mit genauer Echtzeiterzeugung
JP2003296278A (ja) * 2002-04-05 2003-10-17 Simple Net International Group Kk データ管理システム、データ管理方法、データ管理システム用プログラム、及びデータ管理システム用記録媒体
JP2004021341A (ja) * 2002-06-12 2004-01-22 Csk Corp サーバクライアントシステム、利用者認証方法および接続プログラム
US20040009815A1 (en) * 2002-06-26 2004-01-15 Zotto Banjamin O. Managing access to content
JP4012771B2 (ja) * 2002-06-28 2007-11-21 富士通エフ・アイ・ピー株式会社 ライセンス管理方法、ライセンス管理システム、ライセンス管理プログラム
JP2004171544A (ja) * 2002-10-31 2004-06-17 Oki Electric Ind Co Ltd 時刻制限付コンテンツ閲覧システム
EP1597905A1 (en) * 2003-02-20 2005-11-23 Ase R & D Europe Method for offering time on smart card and method for time registration by means of mobile communication device
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 メモリカード装置、権利管理システムおよび時間管理方法
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
US20070043667A1 (en) * 2005-09-08 2007-02-22 Bahman Qawami Method for secure storage and delivery of media content
KR20080043402A (ko) * 2005-09-08 2008-05-16 샌디스크 코포레이션 미디어 컨텐츠의 보안 저장 및 전달을 위한 이동식 메모리시스템

Also Published As

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

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
US20080304364A1 (en) Memory device with circuitry for improving accuracy of a time estimate
CN1971452B (zh) 时间数据检验单元、用于检验时间数据的电子设备和方法
US20100023782A1 (en) Cryptographic key-to-policy association and enforcement for secure key-management and policy execution
US20080307237A1 (en) Method for improving accuracy of a time estimate used to authenticate an entity to a memory device
CN113169866A (zh) 使用同时密钥发布来防止共谋的技术
CN101779207B (zh) 具有改善时间估计准确性电路的存储器器件及其使用方法
CN101816003A (zh) 使用来自信任的主机设备的时间的存储器器件和其使用方法
KR100918242B1 (ko) 정보 처리 시스템, 전자 허가 정보 발행 장치, 전자 정보 이용 장치, 권리 발행 장치, 전자 허가 정보 발행 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체, 전자 정보 이용 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체, 권리 발행 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체, 및 정보 처리 방법
CN101779208B (zh) 具有用于改善用于认证实体的时间估计的准确度的电路的存储器器件和其使用方法
JP5039931B2 (ja) 情報処理装置
CN101720455B (zh) 具有用于改善时间估值的精确度的电路系统的存储器装置及其使用的方法
Torres et al. Trusting software tools in a secure DRM architecture

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: SANDISK TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: SANDISK CORP.

Effective date: 20120705

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: CALIFORNIA, USA STATE TO: TEXAS, USA STATE

TA01 Transfer of patent application right

Effective date of registration: 20120705

Address after: texas

Applicant after: Sandisk Corp.

Address before: American California

Applicant before: Sandisk Corp.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20131016

Termination date: 20170605

CF01 Termination of patent right due to non-payment of annual fee