KR20100041734A - Memory device using the time from a trusted host device and method for use therewith - Google Patents

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

Info

Publication number
KR20100041734A
KR20100041734A KR1020107000102A KR20107000102A KR20100041734A KR 20100041734 A KR20100041734 A KR 20100041734A KR 1020107000102 A KR1020107000102 A KR 1020107000102A KR 20107000102 A KR20107000102 A KR 20107000102A KR 20100041734 A KR20100041734 A KR 20100041734A
Authority
KR
South Korea
Prior art keywords
time
memory device
host device
host
module
Prior art date
Application number
KR1020107000102A
Other languages
Korean (ko)
Inventor
케빈 엠. 콘레이
미카엘 홀트즈만
로템 셀라
론 바질라이
패브리스 이. 조강-쿨롱
Original Assignee
쌘디스크 코포레이션
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,346 external-priority patent/US8869288B2/en
Priority claimed from US11/811,345 external-priority patent/US20080307507A1/en
Application filed by 쌘디스크 코포레이션 filed Critical 쌘디스크 코포레이션
Publication of KR20100041734A publication Critical patent/KR20100041734A/en

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

A memory device for using time from a trusted host device and a method for use therewith are disclosed. In one embodiment, an application on a memory device receives a request to perform a time-based operation from an entity authenticated by the memory device, wherein the entity is running on a host device. The application selects time from the host device instead of time from a time module on the memory device to perform the time-based operation and uses the time from the host device to perform the time-based operation. Other embodiments are disclosed, and each of the embodiments can be used alone or together in combination.

Description

신뢰성 있는 호스트 디바이스로부터의 시간을 사용하는 메모리 디바이스와, 상기 메모리 디바이스와 사용하기 위한 방법{MEMORY DEVICE USING THE TIME FROM A TRUSTED HOST DEVICE AND METHOD FOR USE THEREWITH}MEMORY DEVICE USING THE TIME FROM A TRUSTED HOST DEVICE AND METHOD FOR USE THEREWITH

이 출원은 "Method for Improving Accuracy of a Time Estimate," U.S.patent application serial number 11/811,284; "Memory Device with Circuitry for Improving Accuracy of a Time Estimate," U.S.patent application serial number 11/811,347; "Method for Improving Accuracy of a Time Estimate Used to Authenticate an Entity to a Memory Device," U.S.patent application serial number 11/811,289; "Memory Device with Circuitry for Improving Accuracy of a Time Estimate Used to Authenticate an Entity," U.S.patent application serial number 11/811,344; "Method for Improving Accuracy of a Time Estimate used in Digital Rights Management(DRM) License Validation," U.S.patent application serial number 11/811,354; "Memory Device with Circuitry for Improving Accuracy of a Time Estimate Used in Digital Rights Management(DRM) License Validation," U.S.patent application serial number 11/811,348; "Method for Using Time from a Trusted Host Device," U.S.patent application serial number 11/811,346; and "Memory Device Using Time from a Trust Host Device," U.S.patent application serial number 11/811,345에 관한 것이고; 이들 각각은 여기에 출원되고 여기에 참조로써 통합된다.This application describes "Method for Improving Accuracy of a Time Estimate," U.S.patent application serial number 11 / 811,284; "Memory Device with Circuitry for Improving Accuracy of a Time Estimate," U.S.patent application serial number 11 / 811,347; "Method for Improving Accuracy of a Time Estimate Used to Authenticate an Entity to a Memory Device," U.S.patent application serial number 11 / 811,289; "Memory Device with Circuitry for Improving Accuracy of a Time Estimate Used to Authenticate an Entity," U.S.patent application serial number 11 / 811,344; "Method for Improving Accuracy of a Time Estimate used in Digital Rights Management (DRM) License Validation," U.S.patent application serial number 11 / 811,354; "Memory Device with Circuitry for Improving Accuracy of a Time Estimate Used in Digital Rights Management (DRM) License Validation," U.S.patent application serial number 11 / 811,348; "Method for Using Time from a Trusted Host Device," U.S.patent application serial number 11 / 811,346; and "Memory Device Using Time from a Trust Host Device," U.S.patent application serial number 11 / 811,345; Each of which is filed herein and incorporated herein by reference.

SanDisk Corporation으로부터의 TrustedFlashTM 메모리 디바이스들 같은 몇몇 메모리 디바이스들은 디지털 권리 관리(DRM) 라이센스 유효화 같은 시간-기반 동작들을 수행하기 위하여 시간을 알 필요가 있다. 상기 동작들에 수반된 보안 문제들로 인해, 메모리 디바이스는 올바른 시간을 제공하기 위하여 호스트 디바이스를 신뢰할 수 없다. 메모리 디바이스가 네트워크에서 신뢰하는 컴포넌트로부터 올바른 시간을 얻는 동안, 메모리 디바이스를 호스팅하는 호스트 디바이스는 메모리 디바이스가 시간을 알 필요가 있는 시간에 네트워크에 접속될 수 없다. 메모리 디바이스는 액티브 시간을 측정하도록 설계될 수 있지만, 측정된 액티브 시간으로부터 생성된 시간 평가는 메모리 디바이스가 계속하여 액티브 시간을 측정할 수 없는 경우(예를 들어, 메모리 디바이스 측정이 시작된 후 전력이 다운되는 경우) 실제 시간의 신뢰적인 측정치가 아닐 것이다. 따라서, 측정된 액티브 시간으로부터 생성된 시간 평가값은 실제 시간이 무엇인지의 하부 제한만을 가리키고, 상기 시간 평가값은 특정 시간-기반 동작들에서 목표된 정확도를 제공하지 못할 것이다. 메모리 디바이스가 인액티브될 때에도 계속하여 시간트랙을 유지하도록 메모리 디바이스에 배터리-백업 클럭이 장비될 수 있지만, 상기 클럭은 메모리 디바이스에 비용을 부가할 수 있다.Some memory devices, such as TrustedFlash memory devices from SanDisk Corporation, need to know the time to perform time-based operations such as digital rights management (DRM) license validation. Due to the security issues involved in the above operations, the memory device cannot trust the host device to provide the correct time. While the memory device gets the correct time from a trusted component in the network, the host device hosting the memory device cannot connect to the network at the time the memory device needs to know the time. The memory device may be designed to measure the active time, but the time estimate generated from the measured active time may indicate that if the memory device continues to be unable to measure the active time (e.g., power goes down after the memory device measurement starts) Is not a reliable measure of real time. Thus, the time estimate generated from the measured active time indicates only a lower limit of what the actual time is, and the time estimate will not provide the desired accuracy in certain time-based operations. Although the memory device may be equipped with a battery-backed clock to keep a time track even when the memory device is inactive, the clock may add cost to the memory device.

본 발명은 청구항들에 의해 정의되고, 이 섹션의 어느 것도 이들 청구항들을 제한하지 않아야 한다.The invention is defined by the claims, and nothing in this section should limit these claims.

도입부에 의해, 하기된 실시예들은 신뢰성 있는 호스트 디바이스로부터의 시간을 사용하기 위한 메모리 디바이스 및 상기 메모리 디바이스에 사용하기 위한 방법을 제공한다. 일 실시예에서, 메모리 디바이스상 애플리케이션은 메모리 디바이스에 의해 인증된 엔티티로부터 시간 바탕 동작을 수행하기 위한 요청을 수신하고, 여기서 엔티티는 호스트 디바이스에서 실행한다. 애플리케이션은 시간 바탕 동작을 수행하기 위하여 메모리 디바이스상 시간 모듈로부터의 시간 대신 호스트 디바이스로부터의 시간을 선택하고 시간 바탕 동작을 수행하기 위하여 호스트 디바이스로부터의 시간을 사용한다. 다른 실시예에서, 호스트 디바이스 상에서 실행하는 엔티티를 인증하기 위한 요청이 수신된다. 엔티티는 액세스 제어 기록(ACR)에 지정된 인증 방법 및 메모리 디바이스상 시간 모듈로부터의 시간을 사용하여 인증되고, 여기서 ACR은 메모리 디바이스 내 애플리케이션과 엔티티를 연관시킨다. 시간 바탕 동작을 수행하기 위하여 애플리케이션을 위한 요청이 엔티티로부터 수신된다. 시간은 시간 바탕 동작을 수행하기 위하여 시간 모듈로부터 시간 대신 호스트 디바이스로부터의 시간이 선택되고, 호스트 디바이스로부터의 시간은 시간 바탕 동작을 수행하기 위해 사용된다. 다른 실시예에서, 메모리 디바이스는 제 2 호스트 디바이스로부터 수신된 시간을 제 1 호스트 디바이스로부터의 저장된 시간과 비교하고 상기 비교를 바탕으로, 시간 바탕 동작을 수행하기 위하여 제 1 호스트 디바이스로부터의 시간을 사용할지 제 1 호스트 디바이스로부터 저장된 시간을 사용할지를 결정한다. 다른 실시예에서, 메모리 디바이스는 비시간 바탕 인증 시스템을 사용하여 호스트 디바이스를 인증하고, 호스트 디바이스로부터 시간을 수신하고, 그리고 시간 바탕 동작을 수행하기 위하여 호스트 디바이스로부터 수신된 시간을 사용한다. 다른 실시예들은 개시되고, 각각의 실시예들은 단독으로 또는 결합하여 함께 사용될 수 있다.By way of introduction, the embodiments described below provide a memory device for using time from a reliable host device and a method for use with the memory device. In one embodiment, the application on the memory device receives a request to perform a time based operation from an entity authenticated by the memory device, where the entity executes at the host device. The application selects the time from the host device instead of the time from the time module on the memory device to perform the time based operation and uses the time from the host device to perform the time based operation. In another embodiment, a request is received to authenticate an entity running on a host device. The entity is authenticated using the authentication method specified in the access control record (ACR) and the time from the time module on the memory device, where the ACR associates the entity with an application in the memory device. A request for an application is received from an entity to perform a time based operation. Time is selected from the time device instead of time from the time module to perform the time based operation, and time from the host device is used to perform the time based operation. In another embodiment, the memory device compares the time received from the second host device with the stored time from the first host device and uses the time from the first host device to perform a time based operation based on the comparison. Determine whether to use the stored time from the first host device. In another embodiment, the memory device uses a time-based authentication system to authenticate the host device, receive time from the host device, and use the time received from the host device to perform a time-based operation. Other embodiments are disclosed and each of the embodiments can be used alone or in combination.

실시예들은 첨부된 도면들을 참조하여 지금 기술될 것이다.Embodiments will now be described with reference to the accompanying drawings.

본 발명은, 신뢰성 있는 호스트 디바이스로부터의 시간을 사용하는 메모리 디바이스와, 상기 메모리 디바이스와 사용하기 위한 방법을 제공하는 효과를 갖는다.The present invention has the effect of providing a memory device using time from a reliable host device and a method for use with the memory device.

도 1은, 실시예의 시스템을 도시하는 도면.
도 2는, 실시예의 메모리 디바이스의 블록도.
도 3은, 도 2의 메모리 디바이스의 다양한 기능 모듈을 도시하는 도면.
도 4는, 실시예의 비대칭 인증 처리의 프로토콜 도면.
도 5는, 타임 스탬프를 얻기 위한 실시예의 시스템 도면.
도 6은, 타임 스탬프를 얻기 위한 실시예의 방법 흐름도.
도 7은, 타임 스탬프 업데이트 정책을 검사하기 위한 실시예의 방법 흐름도.
도 8은, 메모리 디바이스에서 실행하는 애플리케이션에 대한 호스트 타임을 사용하여 실시예의 메모리 디바이스 도면.
1 is a diagram illustrating a system of the embodiment.
2 is a block diagram of a memory device of the embodiment;
3 illustrates various functional modules of the memory device of FIG.
4 is a protocol diagram of asymmetric authentication processing of the embodiment;
5 is a system diagram of an embodiment for obtaining a time stamp.
6 is a method flow diagram of an embodiment for obtaining a time stamp.
7 is a method flow diagram of an embodiment for checking a time stamp update policy.
8 is a memory device diagram of an embodiment using host time for an application running on the memory device.

이제 도면을 참조하면, 도 1은 이들 실시예들을 도시하기 위하여 사용될 시스템(10)의 도면이다. 도 1에 도시된 바와 같이, 시스템(10)은 각각 다수의 호스트 디바이스들과 제거 가능하게 접속된 다수의 메모리 디바이스들(20,30,40)을 포함한다: 퍼스널 컴퓨터(PC)(50), 디지털 미디어(예를 들어, MP3) 플레이어(60), 및 셀 폰(70). 호스트 디바이스는 메모리 디바이스로부터 데이터를 판독하고 및/또는 상기 메모리 디바이스로 데이터를 기입할 수 있는 디바이스이다. 데이터는 오디오 파일 또는 비디오 파일(오디오를 가지거나 가지지 않고), 이미지, 게임, 북, 맵, 데이터 파일, 또는 소프트웨어 프로그램 같은 디지털 미디어 컨텐트를 포함할 수 있지만, 이것으로 제한되지 않는다. 데이터는 예를 들어 네트워크에서 서버로부터 메모리 디바이스로 다운로드되거나, 제조자 또는 다른 제 3 파티에 의해 미리 로딩되거나, 다른 장치로부터 사이드-로딩(side-load)된다.Referring now to the drawings, FIG. 1 is a diagram of a system 10 that will be used to illustrate these embodiments. As shown in FIG. 1, system 10 includes a plurality of memory devices 20, 30, 40 that are removably connected with a plurality of host devices, respectively: a personal computer (PC) 50, Digital media (eg, MP3) player 60, and cell phone 70. The host device is a device capable of reading data from and / or writing data to the memory device. The data may include, but is not limited to, audio media or video files (with or without audio), images, games, books, maps, data files, or software programs. Data is downloaded, for example, from a server to a memory device in a network, preloaded by a manufacturer or another third party, or side-loaded from another device.

호스트 디바이스는 임의의 적당한 형태를 취할 수 있고 도 1에 도시된 예들로 제한되지 않는다. 예를 들어, 호스트 디바이스는 노트북 컴퓨터, 핸드헬드 컴퓨터, 핸드헬드 이메일/텍스트 메시지 장치, 핸드헬드 게임 콘솔, 비디오 플레이어(예를 들어, DVD 플레이어 또는 휴대용 비디오 플레이어), 오디오 및/또는 비디오 레코더, 디지털 카메라, 셋톱 박스, 디스플레이 장치(예를 들어, 텔레비젼), 프린터, 카 스테레오, 및 네비게이션 시스템 형태를 가질 수 있다. 또한, 호스트 디바이스는 혼합된 기능을 포함할 수 있다. 예를 들어, 호스트 디바이스는 전화 콜을 형성 및 수신하는 것 외에 또한 디지털 미디어(예를 들어, 음악 및/또는 비디오) 파일들을 플레이할 수 있는 셀 전화일 수 있다.The host device may take any suitable form and is not limited to the examples shown in FIG. 1. For example, the host device may be a laptop computer, handheld computer, handheld email / text message device, handheld game console, video player (eg, DVD player or portable video player), audio and / or video recorder, digital It may take the form of a camera, set top box, display device (eg, television), printer, car stereo, and navigation system. In addition, the host device may include mixed functionality. For example, the host device may be a cell phone capable of playing digital media (eg, music and / or video) files in addition to making and receiving phone calls.

PC(50) 및 셀 전화(70) 같은 호스트 디바이스는 네트워크(비록 다른 형태의 네트워크들이 사용될 수 있지만, 인터넷 80 또는 무선 네트워크 90 같은)에 통신 가능하게 접속하는 능력을 가질 수 있다. 상기 능력을 가진 호스트 디바이스는 여기서 "접속된 장치"라 한다. 셀 전화(70)가 접속되지 않은 모드에서 동작할 때 또는 PC(50)가 인터넷 접속을 설정하지 않을 때 같이 "접속된 장치"가 실제로 항상 네트워크에 접속될 수 없다는 것이 이해되어야 한다. 자체적으로 네트워크(디지털 미디어 플레이어 60 같은)에 통신 가능하게 접속하는 능력을 가지지 않는 호스트 디바이스는 여기서 "접속되지 않은 장치"라 불린다. 접속되지 않은 장치는 도 1에 도시된 바와 같이 접속된 장치와 접속되지 않은 장치를 접속함으로써 네트워크와 통신시 배치될 수 있고, 여기서 디지털 미디어 플레이어(60)는 PC(50)에 접속된다. 비록 상기 방식으로 접속되더라도, 접속되지 않은 장치는 접속되지 않은 장치가 상기 기능(예를 들어, 간단한 MP3 플레이어)을 위하여 설계되지 않은 경우 네트워크로부터 정보를 유도할 수 없다. 상기 상황에서, 네트워크의 컴포넌트는 상기 장치에 정보를 푸쉬(push)할 수 있다. 도 1이 유선 접속을 통해 PC(50)에 접속된 디지털 미디어 플레이어(60)를 도시하는 동안, 무선 접속이 사용될 수 있다는 것이 주지되어야 한다. 유사하게, 용어들 "접속" 및 "결합"은 필수적으로 유선 접속 또는 직접 접속을 나타내지 않는다.Host devices such as PC 50 and cell phone 70 may have the ability to communicatively connect to a network (although other forms of networks may be used, such as the Internet 80 or wireless network 90). Host devices with this capability are referred to herein as " connected devices. &Quot; It should be understood that the "connected device" may not actually always be connected to the network, such as when the cell phone 70 is operating in an unconnected mode or when the PC 50 does not establish an internet connection. A host device that does not itself have the ability to communicatively connect to a network (such as digital media player 60) is referred to herein as an "unconnected device." An unconnected device may be arranged in communication with the network by connecting a connected device and a non-connected device as shown in FIG. 1, where the digital media player 60 is connected to the PC 50. Although connected in this manner, an unconnected device cannot derive information from the network if the unconnected device is not designed for the function (eg a simple MP3 player). In such a situation, a component of the network can push information to the device. While FIG. 1 shows a digital media player 60 connected to a PC 50 via a wired connection, it should be noted that a wireless connection may be used. Similarly, the terms "connection" and "combination" do not necessarily denote a wired connection or a direct connection.

네트워크(예를 들어, 인터넷 80 또는 무선 네트워크 90)는 접속된 장치(또는 접속된 장치에 접속된 접속되지 않은 장치)가 타임 스탬프를 제공할 수 있는 타임 서버(100), 및 DRM-보호 컨텐트 및 상기 컨텐트에 액세스하기 위한 라이센스를 제공할 수 있는 디지털 권리 관리 서버(DRM)(110) 같은(이것으로 제한되지 않음) 외부 컴포넌트들에 액세스하게 한다. 이들 서버들 둘 다는 이하에 보다 상세히 기술될 것이다. 타임 서버(100) 및 DRM 서버(110)가 도 1에서 독립된 장치로서 도시되지만, 이들 두 개의 서버들은 단일 장치로 결합될 수 있다. 게다가, 이들 서버들은 다른 기능을 포함할 수 있다. 또한, 타임 서버(100) 및 DRM 서버(110)와 다른 컴포넌트들은 만약 원하면 인터넷(80) 및 무선 네트워크(90)를 통해 액세스될 수 있다.A network (e.g., Internet 80 or wireless network 90) includes a time server 100, to which connected devices (or unconnected devices connected to connected devices) can provide time stamps, and DRM-protected content and Enable access to external components such as, but not limited to, a digital rights management server (DRM) 110 that may provide a license to access the content. Both of these servers will be described in more detail below. Although time server 100 and DRM server 110 are shown as separate devices in FIG. 1, these two servers may be combined into a single device. In addition, these servers may include other functionality. In addition, the time server 100 and the DRM server 110 and other components can be accessed via the Internet 80 and wireless network 90 if desired.

도면들을 다시 참조하여, 도 2는 메모리 카드 또는 스틱 형태를 가질 수 있는 실시예의 메모리 디바이스(200)의 블록도이다. 도 2에 도시된 바와 같이, 메모리 디바이스(200)는 비휘발성 메모리 어레이(플래시 메모리 같은)(210) 및 회로(220)의 수집부를 포함한다. 이런 실시예에서, 비휘발성 메모리 어레이(210)는 고체 메모리, 특히 플래시 메모리(210) 형태를 가진다. 플래시 대신, 다른 타입의 고체 메모리들이 사용될 수 있다는 것이 주지되어야 한다. 또한 자기 디스크들 및 광학 CD들 같은 고체 메모리들과 다른 메모리들(이것으로 제한되지 않음)이 사용될 수 있다는 것이 주지되어야 한다. 또한, 간략화를 위해, 용어 "회로"는 순수 하드웨어 구현 및/또는 결합된 하드웨어/소프트웨어(또는 펌웨어) 구현이라 불리도록 사용될 것이다. 따라서, "회로"는 애플리케이션 지정 집적 회로(ASIC), 프로그램 가능 논리 제어기, 내장형 마이크로제어기, 및 단일-기판 컴퓨터뿐 아니라, 처리기 및 상기 처리기에 의해 실행할 수 있는 컴퓨터-판독 가능 프로그램 코드(예를 들어, 소프트웨어 또는 펌웨어)를 저장한 컴퓨터-판독 가능 매체 중 하나 또는 그 이상의 형태를 가질 수 있다.Referring again to the figures, FIG. 2 is a block diagram of an embodiment memory device 200 that may take the form of a memory card or stick. As shown in FIG. 2, memory device 200 includes a nonvolatile memory array (such as flash memory) 210 and a collection of circuits 220. In this embodiment, the nonvolatile memory array 210 is in the form of a solid memory, in particular a flash memory 210. It should be noted that instead of flash, other types of solid state memories can be used. It should also be noted that solid memories such as magnetic disks and optical CDs and other memories may be used. Further, for the sake of simplicity, the term “circuit” will be used to refer to a pure hardware implementation and / or a combined hardware / software (or firmware) implementation. Thus, a "circuit" refers to an application specific integrated circuit (ASIC), a programmable logic controller, an embedded microcontroller, and a single-substrate computer, as well as a processor and computer-readable program code executable by the processor (e.g., , Software or firmware) may be in the form of one or more of the computer-readable media having stored thereon.

도 2의 회로(210)의 수집부는 다수의 컴포넌트들을 포함하고: 상기 컴포넌트들은 호스트 인터페이스 모듈(HIM)(230), 플래시 인터페이스 모듈(FIM)(240), 버퍼 관리 유니트(BMU)(250), CPU(260), 및 하드웨어 타이머 블록(270)을 포함한다. HIM(230)은 호스트 디바이스(300)에 대한 인터페이스 기능을 제공하고, FIM(240)은 플래시 메모리(210)에 대한 인터페이스 기능을 제공한다. BMU(250)는 인크립션/디크립션 기능을 제공하기 위한 크립토-엔진(252) 및 호스트 디렉트 메모리 액세스(DMA) 컴포넌트(254) 및 각각 HIM(230) 및 FIM(240)와 통신하기 위한 플래시 DMA 컴포넌트(256)를 포함한다. CPU(260)는 CPU RAMS(260) 및/또는 플래시 메모리(210)에 저장된 소프트웨어 및 펌웨어를 실행한다. 하드웨어 타이머 블록(270)은 시간을 측정하기 위한 메모리 디바이스의 능력과 관련하여 하기에 기술될 것이다.The collector of the circuit 210 of FIG. 2 includes a number of components: the components include a host interface module (HIM) 230, a flash interface module (FIM) 240, a buffer management unit (BMU) 250, CPU 260 and hardware timer block 270. HIM 230 provides an interface function for host device 300, and FIM 240 provides an interface function for flash memory 210. The BMU 250 is a crypto-engine 252 and host direct memory access (DMA) component 254 to provide encryption / decryption functionality and a flash DMA to communicate with the HIM 230 and the FIM 240, respectively. Includes a component 256. The CPU 260 executes software and firmware stored in the CPU RAMS 260 and / or the flash memory 210. Hardware timer block 270 will be described below with respect to the memory device's ability to measure time.

메모리 디바이스(200)를 호스트 디바이스(300)에 제거 가능하게 접속하기 위한 전기 및 물리적 접속기들 같은 메모리 디바이스(200)의 다른 컴포넌트들은 도면을 간략화하기 위하여 도 2에 도시되지 않는다. 메모리 디바이스(200) 및 상기 장치의 동작에 관한 보다 많은 정보는 U.S. 특허 출원 일련 번호들 11/314,411 및 11/557,028에서 발견될 수 있고, 그 양쪽은 참조로써 여기에 통합된다. 부가적인 정보는 U.S. 특허 출원 일련 번호 11/322,812 및 U.S. 특허 출원 일련 번호 11/322,766에서 발견될 수 있고, 그 양쪽은 여기에 참조로써 통합된다. 이들 도큐먼트들에 기술된 컴포넌트들 및 기능은 여기에 명확하게 열거되지 않으면 다음 청구항들에 판독되지 않는다.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. 2 to simplify the drawing. More information regarding the operation of the memory device 200 and the apparatus can be found in U.S. Pat. Patent application serial numbers 11 / 314,411 and 11 / 557,028, both of which are incorporated herein by reference. Additional information may be found in U.S. Patent Application Serial Nos. 11 / 322,812 and U.S. Patent application serial number 11 / 322,766, both of which are incorporated herein by reference. The components and functionality described in these documents are not to be read in the following claims unless explicitly listed here.

이 실시예에서, 메모리 디바이스(200)는 메모리 디바이스(200)에 저장된 보호된 컨텐트를 언로킹하기 위하여 디지털 권리 관리(DRM) 키와 라이센스를 저장한다. (이들 실시예들이 메모리 디바이스상에 저장된 보호된 컨텐트를 언로킹하기 위하여 DRM 키와 라이센스를 저장하지 않는 메모리 디바이스들에 사용될 수 있다는 것이 주지되어야 한다). DRM 키와 라이센스들은 메모리 디바이스(200)에 의해 생성되거나 메모리 디바이스(200(예를 들어, DRM 서버 110에 의해)의 외측에 생성되고 메모리 디바이스(200)에 전송될 수 있다. DRM 키와 라이센스들이 메모리 디바이스(200)와 함께 이동하기 때문에, 보호되는 컨텐트는 호스트 디바이스(300) 대신 메모리 디바이스(200)에 효과적으로 결합되어, 보호된 컨텐트가 인증된 장치인 것을 메모리 디바이스(200)에게 증명할 수 있는 임의의 호스트 디바이스에 의해 휴대될 수 있고 액세스될 수 있게 한다. SanDisk Corporation으로부터의 TrustedFlashTM 메모리 디바이스들은 메모리 디바이스상에 DRM 키와 라이센스를 저장하는 메모리 디바이스들의 예들이므로, 보호된 컨텐트는 메모리 디바이스와 함께 이동할 수 있다. 몇몇 실시예들에서, 메모리 디바이스(200)는 또한 메모리 디바이스(200)에 저장된 DRM 키들로 DRM 라이센스를 비준하므로, 다른 실시예들에서 메모리 디바이스(200)는 DRM 키들로 DRM 라이센스를 비준하기 위해 DRM 키들을 호스트 디바이스(300)에 제공한다.In this embodiment, the memory device 200 stores digital rights management (DRM) keys and licenses for unlocking the protected content stored in the memory device 200. (It should be noted that these embodiments may be used for memory devices that do not store a DRM key and license to unlock protected content stored on the memory device). The DRM keys and licenses may be generated by the memory device 200 or may be generated outside of the memory device 200 (eg, by the DRM server 110) and transmitted to the memory device 200. Since moving with the memory device 200, the protected content is effectively coupled to the memory device 200 instead of the host device 300, so that the protected content can prove to the memory device 200 that the protected content is an authorized device. Can be carried and accessed by a host device of TrustedFlash memory devices from SanDisk Corporation are examples of memory devices that store DRM keys and licenses on a memory device, so protected content can be moved with the memory device. In some embodiments, memory device 200 may also be a memory device. Since the DRM license is ratified with the DRM keys stored in the case 200, in other embodiments the memory device 200 provides the DRM keys to the host device 300 to ratify the DRM license with the DRM keys.

이 실시예에서, 메모리 디바이스(200)의 CPU(260)는 적당한 증명서를 가진 인증된 엔티티들만이 DRM 키와 라이센스들에 액세스할 수 있는 것을 보장하기 위하여 보안 저장 애플리케이션(SSA)을 실행한다. SSA를 위한 컴퓨터-판독 가능 코드는 플래시 메모리(210), CPU RAM들(262), 또는 메모리 디바이스(200) 내 다른 저장 위치에 저장될 수 있다. SSA는 상기된 '028 특허 출원에 보다 상세히 기술된다. 도 3은 SSA의 동작을 도시하기 위해 사용될 메모리 디바이스(200) 내 다양한 기능 모듈들을 도시한다. 도 3에 도시된 바와 같이, 메모리 디바이스(200)는 다양한 액세스 제어 기록들("ACR")을 포함한다; 제 1 비대칭 ACR(201), 제 2 비대칭 ACR(202), 및 대칭 ACR(203). 제 1 및 제 2 비대칭 ACR들(201,202)은 하기에 보다 상세히 기술될 제 1 및 제 2 시간 업데이트 정책들(TUP1 및 TUP2, 각각)을 포함한다. 비록 다수의 ACR들이 도 3에 도시되지만, 메모리 디바이스(200)는 단일 ACR만을 포함한다.In this embodiment, the CPU 260 of the memory device 200 executes a secure storage application (SSA) to ensure that only authorized entities with appropriate credentials can access the DRM key and licenses. The computer-readable code for the SSA may be stored in flash memory 210, CPU RAMs 262, or other storage location within memory device 200. SSA is described in more detail in the '028 patent application above. 3 shows various functional modules in the memory device 200 to be used to illustrate the operation of the SSA. As shown in FIG. 3, memory device 200 includes various access control records (“ACR”); First Asymmetric ACR 201, Second Asymmetric ACR 202, and Symmetric ACR 203. The first and second asymmetric ACRs 201, 202 include first and second time update policies TUP1 and TUP2, respectively, which will be described in more detail below. Although multiple ACRs are shown in FIG. 3, the memory device 200 includes only a single ACR.

각각의 ACR(201,202 및 203)은 사용될 인증 방법 및 어떤 종류의 인증서들이 엔티티의 아이덴티티의 증명을 제공하기 위해 필요한지를 지정한다. 각각의 ACR(201,202, 및 203)은 DRM 키와 라이센스들에 액세스하는 것과 같은 다양한 액션들을 수행하기 위한 허가들을 포함한다. 일단 ACR이 엔티티를 성공적으로 인증하였다면, SSA 시스템은 임의의 ACR의 액션들이 실행되는 세션을 개방한다. 여기에 사용된 바와 같이, 용어 "엔티티"는 메모리 디바이스(200)에 액세스하기 위해 시도하는 임의의 사람 또는 사항을 말한다. 엔티티는 예를 들어 호스트 디바이스에서 실행하는 애플리케이션, 호스트 디바이스 자체, 또는 인간 사용자일 수 있다. 도 3에서, 3개의 엔티티들은 메모리 디바이스(200)에 액세스하기 위하여 시도하는 것이다: 미디어(예를 들어, 오디오 및/또는 비디오) 플레이어(301), 저장 애플리케이션(302), 및 다른 애플리케이션(303). 이들 엔티티들(301,302,303)은 동일하거나 다른 호스트 디바이스들 상에 있을 수 있다. 각각의 엔티티(301,302,303)는 특정 ACR(각각, ACR들 201, 202, 및 203)과 연관된다. 부가적인 엔티티들(도시되지 않음)은 또한 하나 또는 그 이상의 ACR들(201,202 및 203)과 연관될 수 있다.Each ACR 201, 202, and 203 specifies the authentication method to be used and what kinds of certificates are needed to provide proof of the identity of the entity. Each ACR 201, 202, and 203 includes permissions for performing various actions, such as accessing a DRM key and licenses. Once the ACR has successfully authenticated the entity, the SSA system opens a session in which any ACR's actions are executed. As used herein, the term “entity” refers to any person or entity that attempts to access the memory device 200. An entity can be, for example, an application running on a host device, the host device itself, or a human user. In FIG. 3, three entities are attempting to access the memory device 200: a media (eg, audio and / or video) player 301, a storage application 302, and another application 303. . These entities 301, 302, 303 can be on the same or different host devices. Each entity 301, 302, 303 is associated with a particular ACR (ACRs 201, 202, and 203, respectively). Additional entities (not shown) may also be associated with one or more ACRs 201, 202, and 203.

엔티티가 로그인 처리를 시작할 때, 연관된 ACR의 식별자를 포함하는 인증을 위한 요청을 전송하고, 상기 요청은 사용될 인증 방법 및 어떤 종류의 증명서들이 엔티티의 아이덴티티의 증명을 제공하기 위해 필요한지를 지정한다. 도 3에서, ACR들(201 및 202)은 비대칭 인증 방법을 지정하고, ACR(203)은 대칭 인증 방법을 지정한다. 다른 인증 방법들(패스워드-기반 절차들 같은)이 사용될 수 있고 ACR이 인증을 요구하지 않는 것을 또한 지정할 수 있다는 것이 주지되어야 한다. 특정 인증 방법을 지정하는 것 외에, ACR은 또한 일단 인증되면 엔티티가 수행할 수 있는 액션들을 기술하는 허가 제어 레코드(PCR)를 포함할 수 있다.When an entity starts a login process, it sends a request for authentication that includes the identifier of the associated ACR, which specifies the authentication method to be used and what kinds of credentials are needed to provide proof of the entity's identity. In FIG. 3, ACRs 201 and 202 specify an asymmetric authentication method, and ACR 203 specifies a symmetric authentication method. It should be noted that other authentication methods (such as password-based procedures) may be used and may also specify that ACR does not require authentication. In addition to specifying a particular authentication method, the ACR may also include an authorization control record (PCR) that describes the actions that an entity can perform once authenticated.

몇몇 인증 메카니즘들(예를 들어 인증을 위하여 X.509 증명서 체인을 사용하는 일 방향 및 양방향 비대칭 인증 같은)은 시간을 기반으로 하고, 메모리 디바이스(200)가 엔티티에 의해 프리젠트된 증명서를 검증하기 위한 시간을 알게 하는 것을 요구한다. (대칭 ACR 203에 의해 사용된 대칭 인증 메카니즘은 메모리 디바이스 200가 시간을 아는 것을 요구하지 않는다. 대칭 인증에서, 엔티티 및 이에 연관된 ACR에 의해 공유된 키는 엔티티를 인증하기 위해 사용된다). 비대칭 인증에서, 시간은 엔티티에 의해 공급된 RSA 증명서 및/또는 증명서 취소 리스트(CRL) 같은 증명서들이 유효화되는지를 평가하기 위해 필요할 수 있다. (여기에 사용된 바와 같이, "증명서"는 단일 증명서 또는 다수의 증명서들(예를 들어, 증명서 체인)이라 하고, "CRL"은 단일 CRL 또는 다수의 CRL들이라 할 수 있다). 메모리 디바이스(200)가 상기 유효화를 수행하기 위한 시간 평가를 생성하기 위하여 사용할 수 있는 메카니즘들을 살펴보기 전에, 증명서들 및 CRL들의 짧은 논의는 비대칭 인증과 관련하여 프리젠트될 것이다.Some authentication mechanisms (such as one-way and two-way asymmetric authentication using X.509 certificate chains for authentication, for example) are time-based and allow memory device 200 to verify a certificate presented by an entity. It requires you to know the time. (The symmetric authentication mechanism used by the symmetric ACR 203 does not require the memory device 200 to know the time. In symmetric authentication, the key shared by the entity and its associated ACR is used to authenticate the entity). In asymmetric authentication, time may be needed to evaluate whether certificates, such as RSA certificates and / or Certificate Revocation Lists (CRLs) supplied by an entity, are valid. (As used herein, a "certificate" may be referred to as a single certificate or multiple certificates (eg, a certificate chain) and "CRL" may be referred to as a single CRL or multiple CRLs. Before looking at the mechanisms that the memory device 200 can use to generate a time estimate for performing the validation, a short discussion of certificates and CRLs will be presented in connection with asymmetric authentication.

비대칭 인증은 공용 키 인프라구조(PKI) 시스템을 사용하고, 여기에서 증명서 증명 기관(CA)으로서 공지된 신뢰적인 인증국은 엔티티들의 아이덴티티를 증명하기 위한 RSA 증명서를 발행한다. 아이덴티티 레지스터의 증명을 설정하고자 하는 엔티티들은 아이덴티티를 증명하기 위한 적당한 증거를 CA에 등록한다. 엔티티의 아이덴티티가 CA에 증명된 후, CA는 엔티티에 증명서를 발행한다. 증명서는 증명서를 발행한 CA의 이름, 증명서가 발행된 사람에 대한 엔티티의 이름, 엔티티의 공용 키, 및 CA의 사적 키에 의해 사인된(통상적으로 공용 키의 다이제스트를 인크립팅함으로써) 엔티티의 공용 키를 포함한다.Asymmetric authentication uses a public key infrastructure (PKI) system, where a trusted certificate authority, known as a certificate authority (CA), issues an RSA certificate to prove the identity of the entities. Entities that wish to establish proof of an identity register register with the CA appropriate evidence to prove their identity. After the identity of the entity is proved to the CA, the CA issues a certificate to the entity. The certificate is the public name of the entity (usually by encrypting the digest of the public key) signed by the name of the CA that issued the certificate, the name of the entity for the person who issued the certificate, the public key of the entity, and the private key of the CA. Contains the key.

증명서는 만료일을 홀딩하는 데이터 필드를 포함할 수 있다. 상기 상황에서, 증명서를 홀딩하는 엔티티는 제한된 양의 시간 동안(증명서가 만료될 때까지) ACR에 의해 보호된 컨텐트에만 액세스할 수 있다. 증명서는 또한 미래 유효 시간을 홀딩하는 데이터 필드를 포함할 수 있다. 이런 상황에서, ACR은 증명서가 유효화될 때까지 엔티티를 인증하지 않을 것이다. 현재 날짜가 만료일 이후 또는 유효화 날짜 이전인 것을 메모리 디바이스(200)가 결정하는 경우(즉, 증명서가 유효하지 않다는 것을 메모리 디바이스 200이 결정하는 경우), 메모리 디바이스(200)는 증명서를 프리젠팅하는 엔티티를 인증하지 않을 것이다.The certificate may include a data field that holds the expiration date. In this situation, the entity holding the certificate can only access content protected by the ACR for a limited amount of time (until the certificate expires). The certificate can also include a data field that holds the future valid time. In this situation, the ACR will not authenticate the entity until the certificate is validated. When the memory device 200 determines that the current date is after the expiration date or before the validation date (ie, when the memory device 200 determines that the certificate is invalid), the memory device 200 is an entity presenting the certificate. Will not authenticate.

다양한 상황들은(예를 들어 이름 변경, 엔티티 및 CA 사이의 연관성 변경, 및 사적 키의 타협 또는 의심되는 타협 같은)은 만료일 이전 증명서가 무효가 되게 할 수 있다. 상기 상황들 하에서, CA는 증명서를 취소할 필요가 있다. 동작 시, CA는 취소된 증명서들의 타임 스탬핑 리스트를 포함하는 사인된 데이터 구조인 증명서 취소 리스트(CRL)를 주기적으로 발행한다. 따라서, 엔티티를 인증하기 위하여, 메모리 디바이스(200)는 증명서가 적당한지를 검사할 뿐 아니라 증명서가 CRL 상에 리스트 되는지를 알기 위하여 CRL을 검사한다. (CRL은 증명서와 함께 엔티티에 의해 제공될 수 있거나, 메모리 디바이스 200은 CRL 자체를 포함할 수 있다(예를 들어, 메모리 디바이스 200이 접속된 장치인 경우 인터넷 80을 통해)). 증명서가 CRL 상에 리스트 되는 경우, 증명서는 더 이상 유효하지 않고(비록 만료되지 않았지만), 그리고 엔티티가 인증되지 않을 것이다. 증명서와 같이, CRL은 CRL이 업데이트될 때를 가리키는 만료일로 발행된다. 이것은 메모리 디바이스(200)가 가장 최근 CRL을 사용한다는 것을 보장한다. 인증 동안, 현재 시간이 CRL의 만료일을 경과한 것을 메모리 디바이스(200)가 발견하는 경우(즉, CRL이 유효하지 않은 것을 메모리 디바이스 200이 결정하는 경우), CRL은 결함 있는 것으로 생각하고 바람직하게 증명서 검증을 위해 사용되지 않는다.Various situations (such as name changes, changes in associations between entities and CAs, and compromises or suspected compromises of private keys) can cause certificates to expire prior to the expiration date. Under these circumstances, the CA needs to revoke the certificate. In operation, the CA periodically issues a Certificate Revocation List (CRL), which is a signed data structure containing a time stamped list of revoked certificates. Thus, to authenticate an entity, the memory device 200 checks the CRL to see if the certificate is listed on the CRL as well as checking that the certificate is appropriate. (The CRL may be provided by the entity with a certificate or the memory device 200 may include the CRL itself (eg via the Internet 80 if the memory device 200 is a connected device). If the certificate is listed on a CRL, the certificate is no longer valid (although it has not expired) and the entity will not be authenticated. Like a certificate, a CRL is issued with an expiration date indicating when the CRL is updated. This ensures that memory device 200 uses the most recent CRL. During authentication, if the memory device 200 finds that the current time has passed the expiration date of the CRL (ie, if the memory device 200 determines that the CRL is invalid), the CRL is considered defective and preferably Not used for verification.

상기 논의된 바와 같이, 이 실시예에서, 메모리 디바이스(200)는 증명서들(여기서, 증명서 및 CRL)를 검증하기 위해 시간을 알 필요가 있다. 메모리 디바이스가 시간이 어떤지를 알게 하기 위한 몇몇 옵션들이 있다. 하나의 옵션은 메모리 디바이스가 시간을 알 필요가 있는 매시간 신뢰적인 타임 서버로부터 타임 스탬프를, 즉 메모리 디바이스 요청을 호스트 디바이스를 통해 가지는 것이다. 이런 해결책은 접속된 장치들에 적당하다; 그러나, 메모리 디바이스가 접속된 장치들뿐 아니라 접속되지 않은 장치들(예를 들어, 인터넷에 접속되지 않은 홈 PC들, MP3 플레이어들, 네트워크가 오프된(예를 들어, 비행기에 있을 때) 셀 전화들에서 사용될 수 있기 때문에, 메모리 디바이스는 인증 절차를 위한 시간을 알 필요가 있을 때 이용할 수 있는 접속에 의존할 수 없다. 다른 옵션은 배터리-백업 클럭을 가진 메모리 디바이스를 장착하는 것이다. 그러나, 이것은 메모리 디바이스에 비용을 부가하기 때문에 바람직하지 않을 수 있다. 다른 옵션은 메모리 디바이스에 시간을 제공하기 위하여(자신 내부의 클럭 또는 외부 소스로부터) 호스트 디바이스에 의존하는 것이다. 그러나, 많은 상황들에서, 메모리 디바이스는 정확한 시간을 제공하기 위하여 호스트 디바이스를 신뢰할 수 없다. 사용자가 호스트 디바이스상 클럭을 "소급(back date)"하도록 허용되면(즉, 현재 시간보다 이른 시간으로 호스트 디바이스상 클럭을 설정함), 사용자는 메모리 디바이스가 강화할 필요가 있는 실제 시간 제한들을 우회할 수 있다. 다른 한편, 메모리 디바이스(메모리 디바이스상에서 실행하는 애플리케이션)가 호스트 디바이스를 신뢰할 수 있는 경우, 메모리 디바이스(또는 메모리 디바이스에서 실행하는 애플리케이션)는 그 시간 동안 호스트 디바이스에 의존할 수 있다. 호스트 타임이 사용될 때보다 많은 정보는 하기에 프리젠트된다.As discussed above, in this embodiment, the memory device 200 needs to know the time to verify the certificates (here, the certificate and the CRL). There are several options for letting the memory device know what time it is. One option is to have a time stamp from the trusted time server every time the memory device needs to know the time, ie a memory device request through the host device. This solution is suitable for connected devices; However, not only devices to which a memory device is connected, but also devices that are not connected (eg, home PCs not connected to the Internet, MP3 players, cell phones with network off (eg when on an airplane) Memory devices cannot rely on the available connections when they need to know the time for the authentication procedure Another option is to mount a memory device with a battery-backup clock. This may be undesirable because it adds cost to the memory device Another option is to rely on the host device (from its own internal clock or from an external source) to provide time to the memory device. The device cannot trust the host device to provide accurate time. If allowed to "back date" the clock on the test device (ie, set the clock on the host device to a time earlier than the current time), the user can bypass the actual time restrictions that the memory device needs to enforce. On the other hand, if the memory device (application running on the memory device) trusts the host device, the memory device (or application running on the memory device) may depend on the host device during that time. More information than is presented below.

이 실시예에 사용된 다른 옵션은 메모리 디바이스의 제한된 시간 추적 능력들을 사용하는 것이다; 특히, 액티브 시간을 측정하기 위한 메모리 디바이스(200)의 능력. 액티브 시간은 메모리 디바이스(200)가 호스트 디바이스에 접속되고 실제로 사용된(즉, 공전 또는 슬리프 모드에 있는 것과 비교할 때 메모리 디바이스 200 및 호스트 디바이스 300 사이의 버스 상에서 활동할 때) 시간을 말한다. 선택적으로, 액티브 시간은 메모리 디바이스(200)가 호스트 디바이스(300)에 접속되고 상기 호스트 디바이스로부터 전력을 수신하는 전체 시간 양을 말할 수 있다. 용어들 "액티브 시간" 및 "사용 시간"은 여기에서 상호 교환적으로 사용될 것이다. 하기에 기술된 바와 같이, 이런 실시예에서, 메모리 디바이스(200)는 하드웨어 타이머 블록(270)이 CPU(260)에 대한 인터럽트들로서 클럭 틱(tick)들을 생성할 수 있을 때 액티브되고, CPU(260)는 액티브 시간 카운터를 증가시킬 수 있다.Another option used in this embodiment is to use the limited time tracking capabilities of the memory device; In particular, the ability of the memory device 200 to measure active time. Active time refers to the time that memory device 200 is connected to the host device and actually used (ie, active on the bus between memory device 200 and host device 300 as compared to being in idle or sleep mode). Optionally, the active time may refer to the total amount of time that the memory device 200 is connected to the host device 300 and receives power from the host device. The terms "active time" and "use time" will be used herein interchangeably. As described below, in this embodiment, the memory device 200 is active when the hardware timer block 270 can generate clock ticks as interrupts to the CPU 260 and the CPU 260. May increment the active time counter.

동작시, 하드웨어 타이머 블록(270)(예를 들어, ASIC 제어기)은 주기적인 클럭 틱들을 생성하고 상기 틱들을 인터럽트들로서 CPU(260)에 제공하는 발진기를 포함한다. (바람직하게, 발진기는 매우 낮은 주파수에서 동작하고 CPU 260이 슬리프인 동안 실행한다). 따라서, 하드웨어 타이머 블록(270)은 주기적으로(예를 들어, 매 밀리초 또는 마이크로초) CPU(260)를 인터럽트한다. CPU(260)가 인터럽트될 때, 특정 클럭 인터럽트 서비스 루틴(예를 들어, CPU 260에 의해 실행되는 펌웨어에서)은 호출되고 CPU RAM들(262) 및 비휘발성 플래시 메모리(210)에 저장된 액티브 시간 카운터를 하나의 주기/단위로 부가하여, 카운터 값은 전력이 손실되는 경우 손실되지 않는다. 메모리(210)에 대한 과도한 소모를 방지하기 위해, 매 클럭 틱에 응답하는 대신 메모리(210) 내 액티브 시간 카운터가 주기적으로(예를 들어, 메모리 디바이스 200에 전력이 인가되는 한 매 분 또는 등등) 업데이트되는 것은 바람직하다. 비록 이것이 액티브 시간 카운터가 업데이트되기 전에 전력 손실이 발생하는 경우 측정된 시간에 부가적인 부정확도를 유발할 수 있지만, 이런 희생은 메모리 지속 시간에 대해 이익들 측면에서 허용할 수 있는 것으로 고려된다. (메모리 지속 기간을 추가로 보호하기 위하여, 액티브 시간 카운트에 저장된 값은 카운터가 얼마나 많은 횟수 기입되었는가를 가리키는 필드를 포함할 수 있다. 만약 기입 값이 특정 양을 초과하면, 카운터는 메모리의 다른 위치에 저장될 수 있다. 카운터 내의 비트들은 만약 도움들이 지속되면 이동될 수 있다). 또한 액티브 시간 카운터에 대한 기입이 메모리 디바이스(200)의 성능(기입을 수행하기 위한 전력 소비 제외) 및 규칙적 활동에 영향을 미치지 않는 것은 바람직하다. (다른 말로, 시간 카운터에 대한 기입이 호스트 명령을 서비스하는 처리의 일부인 것이 바람직하다). 예를 들어, 액티브 시간 카운터에 대한 기입은 백그라운드 임무로서 처리될 수 있고 호스트 디바이스 명령 서비스 이전에 수행된다. 호스트 디바이스 명령의 종료시, 메모리 디바이스(200)의 펌웨어는 액티브 시간 카운터의 프로그래밍이 메모리의 데이터를 판독하고 이를 목표된 값과 비교함으로써 성공한다는 것을 검증할 수 있다.In operation, hardware timer block 270 (eg, an ASIC controller) includes an oscillator that generates periodic clock ticks and provides the ticks to the CPU 260 as interrupts. (Preferably, the oscillator runs at very low frequencies and runs while the CPU 260 is sleeping). Thus, hardware timer block 270 interrupts CPU 260 periodically (eg, every millisecond or microsecond). When the CPU 260 is interrupted, a specific clock interrupt service routine (eg, in firmware executed by the CPU 260) is called and an active time counter stored in the CPU RAMs 262 and the nonvolatile flash memory 210. By adding in one period / unit, the counter value is not lost if power is lost. To prevent excessive drain on memory 210, instead of responding to every clock tick, the active time counter in memory 210 is periodically (e.g., every minute or the like as long as power is applied to memory device 200). It is desirable to update. Although this may cause additional inaccuracies in the measured time if power loss occurs before the active time counter is updated, this sacrifice is considered acceptable in terms of benefits for memory duration. (To further protect the memory duration, the value stored in the active time count may include a field indicating how many times the counter has been written. If the write value exceeds a certain amount, the counter is placed in a different location in memory. The bits in the counter can be shifted if the help persists). It is also desirable that writing to the active time counter does not affect the performance of memory device 200 (except power consumption to perform writing) and regular activity. (In other words, writing to the time counter is preferably part of the process of serving a host command). For example, writing to the active time counter can be handled as a background task and performed prior to the host device command service. At the end of the host device command, the firmware of the memory device 200 can verify that the programming of the active time counter succeeds by reading the data in the memory and comparing it to the desired value.

또한, 액티브 시간 카운터의 값이 메모리(210)에 보안적으로 저장될 수 있어서(예를 들어, 키-해싱 메시지 인증 코드(HMAC)를 사용하여 크립토-엔진(252)을 통해 사인됨), 쉽게 탬퍼될 수 없다는 것은 바람직하다. 시그네이쳐 미스매칭의 경우, 데이터는 공격자가 탬퍼하는 경우 처럼 개시되지 않은 것으로 처리될 수 있다. 게다가, 액티브 시간을 측정하기 위한 다른 메카니즘들이 사용될 수 있다는 것은 주지되어야 한다.In addition, the value of the active time counter can be securely stored in memory 210 (e.g., signed through crypto-engine 252 using a key-hashing message authentication code (HMAC)), so that It is desirable that it cannot be tampered with. In the case of signature mismatching, the data can be treated as uninitiated, as in the case of an attacker tampering. In addition, it should be noted that other mechanisms for measuring active time may be used.

액티브 시간 카운터에 저장된 값을 실제 시간으로 전환하기 위하여, CPU(260)는 하드웨어 타이머 블록(270)이 클럭 틱들을 생성하는 주파수에 의해 저장된 값을 곱셈한다. 예를 들어, 만약 값(500)이 액티브 시간 카운터에 저장되고 하드웨어 타이머 블록(270)이 5 밀리초마다 클럭 틱을 생성하면, CPU(260)는 2,500 밀리초(500 곱하기 5)의 액티브 시간을 계산한다. 시간 평가를 생성하기 위하여, 변환된 액티브 시간은 신뢰적인 소스로부터 메모리 디바이스(200)에 의해 수신된 최종 타임 스탬프에 부가된다. 다른 말로, 타임 스탬프는 "시작 라인"으로서 작동하고, 메모리 디바이스의 측정된 액티브 시간은 타임 스탬프에 부가된다. 타임 스탬프는 임의의 형태를 가질 수 있고 임의의 목표된 정밀도(예를 들어, 년, 달, 날, 시간, 분, 초, 등)로 시간을 나타낼 수 있다. 바람직하게, 메모리 디바이스(200)는 메모리 디바이스(200)가 엔티티에 정확한 시간{예를 들어, 타임 서버(100) 또는 신뢰적인 호스트 디바이스}을 제공하도록 신뢰하는 엔티티로부터 타임 스탬프가 제공된다. 타임 스탬프는 임의의 형태를 가질 수 있고 다른 정보에 포함되거나 그 자체에 의해 전송될 수 있다. 메모리 디바이스는 바람직하게 크립토-엔진(252)을 통해 타임 스탬프를 거의 저장하지 않아서, 쉽게 탬퍼될 수 없다. 새로운 타임 스탬프가 메모리 디바이스(200)에 의해 수신될 때, 새로운 타임 스탬프는 메모리 디바이스(200)에 저장되고, 액티브 시간 카운터는 리셋된다. 따라서, 액티브 시간은 이전 타임 스탬프 대신 새로운 타임 스탬프에 관련하여 측정될 것이다. 카운터를 리셋하는 대신(및, 그러므로, "롤링 백(rolling back)"), 새로운 타임 스탬프의 시간에 존재하는 액티브 시간 카운터 값은 기록되고 액티브 시간을 측정하기 위하여 현재 시간으로부터 감산된다.To convert the value stored in the active time counter to real time, the CPU 260 multiplies the value stored by the frequency at which the hardware timer block 270 generates clock ticks. For example, if the value 500 is stored in an active time counter and the hardware timer block 270 generates a clock tick every 5 milliseconds, the CPU 260 may generate an active time of 2,500 milliseconds (500 times 5). Calculate To generate a time estimate, the converted active time is added to the final time stamp received by the memory device 200 from a trusted source. In other words, the time stamp acts as a "start line" and the measured active time of the memory device is added to the time stamp. The time stamp can have any form and can represent time with any desired precision (eg, year, month, day, hour, minute, second, etc.). Preferably, the memory device 200 is provided with a time stamp from an entity that the memory device 200 trusts to provide the entity with the correct time (eg, the time server 100 or a trusted host device). The time stamp may have any form and may be included in other information or transmitted by itself. The memory device preferably stores very few time stamps via the crypto-engine 252 and therefore cannot be easily tampered with. When a new time stamp is received by the memory device 200, the new time stamp is stored in the memory device 200 and the active time counter is reset. Thus, the active time will be measured relative to the new time stamp instead of the old time stamp. Instead of resetting the counter (and therefore "rolling back"), the active time counter value present at the time of the new time stamp is recorded and subtracted from the current time to measure the active time.

지금 메모리 디바이스의 시간-추적 능력들이 논의되었고, 인증 절차의 예는 기술될 것이다. 도면들을 다시 참조하여, 도 4는 일 실시예의 비대칭 인증 처리의 프로토콜 도면이다. 다음 예에서, 층(301)은 ACR(201)을 통해 메모리 디바이스(200)에 로그인하는 것을 시도한다. 하기에 보다 상세히 기술된 바와 같이, 플레이어(301)는 증명서들(예를 들어, RSA 키 쌍, 증명서, 및 증명서 취소 리스트(CRL))을 포함하고, ACR(201)은 플레이어(301)의 인증을 유효화 및 객체들에 대한 권리의 승인{이 경우, 플레이어(301)와 DRM 모듈(207) 사이에 보안 채널을 설정함}을 책임진다. 도 4에 도시된 바와 같이, 제 1 단계는 호스트 디바이스(300)가 플레이어(301)의 인증을 위한 요청을 메모리 디바이스(200)에 전송하게 하는 것이다(액트 402). 타임 스탬프가 메모리 디바이스(200) 내에 아직 설치되지 않은 경우, 메모리 디바이스(200)는 로그인 실패 메시지로 인증 요청에 응답한다(액트 404).The time-tracking capabilities of the memory device have now been discussed and an example of an authentication procedure will be described. Referring again to the drawings, FIG. 4 is a protocol diagram of an asymmetric authentication process of one embodiment. In the following example, layer 301 attempts to log in to memory device 200 via ACR 201. As described in more detail below, the player 301 includes certificates (eg, an RSA key pair, a certificate, and a certificate revocation list (CRL)), and the ACR 201 authenticates the player 301. It is responsible for validating and granting rights to the objects (in this case, establishing a secure channel between the player 301 and the DRM module 207). As shown in FIG. 4, the first step is to have the host device 300 send a request for authentication of 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)에 타임 스탬프를 제공하는 처리를 기술하고 메모리 디바이스(200)가 타임 스탬프를 얻을 수 있는 하나의 특정 방식을 도시하는 각각 시스템 도면 및 흐름도인 도 5 및 6과 관련하여 기술될 것이다. 메모리 디바이스(200)가 다른 방식으로 타임 스탬프를 얻을 수 있고 타임 스탬프가 다른 형태들을 가질 수 있다는 것은 이해되어야 한다. 또한 다중 서버들 또는 호스트들과 인터페이싱하는 단일 메모리 디바이스가 동시에 다중 형태들을 취급할 수 있다는 것은 이해되어야 한다. 따라서, 이런 예의 명세들은 여기에서 명확하게 열거되지 않으면 청구항들로 해석되지 않아야 한다.The following series of acts describe the process of providing a time stamp to the memory device 200 and FIGS. 5 and 6, which are system diagrams and flowcharts, respectively, illustrating one specific way in which the memory device 200 can obtain a time stamp. Will be described in relation. It should be understood that the memory device 200 may obtain the time stamp in different ways and that the time stamp may have other forms. It should also be understood that a single memory device interfacing with multiple servers or hosts can handle multiple forms simultaneously. Accordingly, the specification of this example should not be construed as a claim unless explicitly recited herein.

도 5에 도시된 바와 같이, 메모리 디바이스(200)는 메모리 디바이스 - 호스트 디바이스 통신 채널(305)을 통해 호스트 디바이스(300)와 통신하고, 호스트 디바이스(300)는 호스트 디바이스 - 타임 서버 통신 채널(315)을 통해 타임 서버(100)와 통신한다. 비록 타임 서버(100)가 단일 서버를 포함할 수 있지만, 이 실시예에서, 타임 서버(100)는 서버간 통신 채널(325)을 통해 서로 동기화되는 다수의 서버들(102,104,106)을 포함한다. 또한 상기된 바와 같이, 타임 스탬프에 대한 타임 서버(100)를 사용하는 대신, 호스트 디바이스(300)로부터의 타임 스탬프는 바람직하게 신뢰성 있는 호스트 디바이스인 경우만 사용될 수 있다.As shown in FIG. 5, the memory device 200 communicates with the host device 300 via a memory device-host device communication channel 305, and the host device 300 is a host device-time server communication channel 315. Communicate with the time server 100 through. Although the time server 100 may comprise a single server, in this embodiment, the time server 100 includes a plurality of servers 102, 104, 106 that are synchronized with each other via an inter-server communication channel 325. As also noted above, instead of using the time server 100 for time stamps, the time stamps from the host device 300 may preferably be used only if they are reliable host devices.

이 실시예에서, 타임 스탬프를 요청하기 위한 절차는 메모리 디바이스(200)에 논스(nonce) 획득 명령을 전송하는 호스트 디바이스(300)에 의해 시작된다(액트 405)(도 4,5 및 6 참조). 이 실시예에서, 논스는 타임 서버(100)에 의해 생성된 타임 스탬프의 인증을 추후 검증하기 위하여 메모리 디바이스(200)에 의해 사용된 160-비트 랜덤 번호이다. 메모리 디바이스(200)는 랜덤 번호(논스)를 생성하고(액트 410) 추후 검증 단계를 위해 CPU RAMS(즉, 휘발성 메모리)(262)(또는, 선택적으로, 메모리 210)에 이를 저장한다. 메모리 디바이스(200)는 상기 논스를 호스트 디바이스(300)에 전송한다(액트 415). 메모리 디바이스(200)는 또한 시간-종료가 발생되었는지를 추후 결정하기 위하여 시간(이하에 기술된 바와 같이)을 측정하기 시작한다.In this embodiment, the procedure for requesting a time stamp is initiated by the host device 300 sending a nonce acquisition command to the memory device 200 (act 405) (see FIGS. 4, 5 and 6). . In this embodiment, the nonce is a 160-bit random number used by the memory device 200 to later verify the authenticity of the time stamp generated by the time server 100. Memory device 200 generates a random number (nons) (act 410) and stores it in CPU RAMS (ie, volatile memory) 262 (or, optionally, memory 210) for later verification steps. Memory device 200 transmits the nonce to host device 300 (act 415). Memory device 200 also begins to measure time (as described below) to later determine if a time-out has occurred.

호스트 디바이스(300)가 논스를 수신할 때, 상기 논스를 포함하는 획득 타임 스탬프 요청을 타임 서버(100)에 전송한다(액트 420). 타임 서버(100)는 시간(예를 들어, UTC Zulu 포맷의 세계 시간) 및 논스를 사적 키로 신호한다. 그 다음 타임 서버(100)는 이 실시예에서 논스, 타임 스탬프, 증명서 체인, 및 CRL 체인을 포함하는 타임 스탬프 응답을 호스트 디바이스(300)에 전송한다(액트 425). (이 증명서 및 CRL은 인증을 위하여 타임 서버 100으로부터 전송되고 플레이어 301을 인증하기 위해 전송된 증명서 및 CRL과 동일하지 않다). 그 다음 호스트 디바이스(300)는 이런 응답을 가진 시간 업데이트 명령을 메모리 디바이스(200)에 전송한다(액트 430). 이 명령에 응답하여, 메모리 디바이스(200)는 증명서 및 CRL들을 검증하는 것을 시도한다(액트 435). (다시, 증명서 및 CRL은 플레이어 301을 인증하기 위하여 전송된 것들과 다르다). 이하에 논의된 바와 같이, 메모리 디바이스(200)에 의해 생성된 시간 평가에 대한 유효화를 검사하는 대신 타임 서버의 100 증명서 및 CRL에 대한 유효 기간이 유효하다는 것을 가정하는 것이 바람직하다. 만약 검증이 실패하면, 메모리 디바이스(200)는 휘발성 메모리(262)를 리셋하고 아이들 프로세스로 리턴한다(액트 440). 증명서 및 CRL의 검증이 통과하는 경우(액트 445), 메모리 디바이스(200)는 휘발성 메모리(262) 내 논스와 응답 내 논스를 비교한다(액트 450). 비교가 실패하면, 메모리 디바이스는 휘발성 메모리(262)를 리셋하고 아이들 프로세스로 리턴한다(액트 455). 만약 비교가 성공하면, 메모리 디바이스(200)는 탬퍼링을 보호하기 위하여 메모리(210) 내 새로운 타임 스탬프를 바람직하게 보안 방식으로 저장한다.When the host device 300 receives the nonce, it sends an acquisition time stamp request including the nonce to the time server 100 (act 420). The time server 100 signals the time (eg, world time in UTC Zulu format) and the nonce as a private key. The time server 100 then sends a time stamp response to the host device 300 that includes a nonce, a time stamp, a certificate chain, and a CRL chain in this embodiment (act 425). (This certificate and CRL are sent from the time server 100 for authentication and not the same as the certificate and CRL sent for authenticating the player 301). The host device 300 then sends a time update command with this response to the memory device 200 (act 430). In response to this command, memory device 200 attempts to verify the credentials and CRLs (act 435). (Again, the certificate and CRL are different from those sent to authenticate the player 301). As discussed below, it is desirable to assume that the validity period for the 100 certificate and the CRL of the time server is valid, instead of checking the validity for the time estimate generated by the memory device 200. If verification fails, memory device 200 resets volatile memory 262 and returns to an idle process (act 440). If the verification of the certificate and CRL passes (act 445), memory device 200 compares the nonce in volatile memory 262 with the nonce in response (act 450). If the comparison fails, the memory device resets volatile memory 262 and returns to 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 protect tampering.

메모리 디바이스(200)가 논스(410)를 생성하고 응답을 기다린 후(액트 460), 호스트 디바이스(300)가 다른 획득 논스 명령을 메모리 디바이스(200)에 전송할 수 있다(액트 465)는 것이 주지되어야 한다. 상기된 바와 같이, 메모리 디바이스(200)는 논스가 생성된 후 시간을 측정하기 시작한다. 측정된 시간이 특정 시간-종료 제한에 도달하기 전 새로운 논스 명령(465)이 수신되면, 메모리 디바이스(200)는 바람직하게 새로운 논스 명령(465)을 무시한다. 그러나, 시간-종료 제한 후 새로운 논스 명령(465)이 수신되면, 메모리 디바이스(200)는 휘발성 메모리(262)를 리셋하고 새로운 논스를 생성할 것이다(액트 470). 따라서, 논스는 제한된 시간 동안만 유효하고, 시간-종료 제한("이동 시간 에러")은 메모리 디바이스(200)가 타임 서버(100)로부터 타임 스탬프를 기다리기 위한 합법적인 것을 고려하는 최대 시간이다.It should be noted that after memory device 200 generates nonce 410 and waits for a response (act 460), host device 300 may send another acquire nonce command to memory device 200 (act 465). do. As mentioned above, the memory device 200 begins to measure time after the nonce has been generated. If a new nonce command 465 is received before the measured time reaches a specific time-out limit, the memory device 200 preferably ignores the new nonce command 465. However, if a new nonce command 465 is received after the time-out limit, the memory device 200 will reset the volatile memory 262 and generate a new nonce (act 470). Thus, the nonce is only valid for a limited time, and the time-out limit (“travel time error”) is the maximum time that the memory device 200 considers to be legitimate to wait for a time stamp from the time server 100.

타임 서버(100)가 데이터 문자열을 신호하는 시간을 메모리 디바이스(200)에 저장된 타임 스탬프가 포함하기 때문에, 타임 스탬프에 표시된 시간은 타임 스탬프 정밀도(예를 들어, 년, 달, 날, 시간, 분, 초, 등) 및 요청을 전송하고 응답을 수신하는데 수반된 지연들에 따라, 호스트 디바이스(300)가 타임 스탬프를 요청한 실제 실세계 시간이 아니거나 메모리 디바이스(200)가 타임 스탬프를 저장한 실제 실세계 시간이 아닐 수 있다. 상기된 논스 시간-종료 기간은 타임 스탬프가 메모리 디바이스(200)에 의해 요구된 정밀도를 가진다는 것을 보장하기 위하여 상기 시간으로 설정될 수 있다. 따라서, 메모리 디바이스(200)는 타임 스탬프 요청 시 최대 허용 가능한 지연에 걸쳐 제어를 가진다. 또한, 다른 실시예들에서, 타임 서버(100)에 의해 생성된 타임 스탬프는 호스트 디바이스(300)가 타임 스탬프를 요청한 평가된 시간, 타임 스탬프가 메모리 디바이스(200)에 저장될 예상 시간, 또는 몇몇 다른 시간 같은 몇몇 다른 시간을 가리킬 수 있다.Since the time stamp stored in the memory device 200 includes the time at which the time server 100 signals the data string, the time indicated in the time stamp is the time stamp precision (e.g., year, month, day, hour, minute). , Seconds, etc.) and the delays involved in sending the request and receiving the response, are not the actual real time the host device 300 requested the time stamp or the actual real world in which the memory device 200 stored the time stamp. It may not be time. The nonce time-end period described above may be set to that time to ensure that the time stamp has the precision required by the memory device 200. Thus, memory device 200 has control over the maximum allowable delay in requesting a time stamp. Further, in other embodiments, the time stamp generated by the time server 100 may be an estimated time at which the host device 300 requested a time stamp, an expected time for the time stamp to be stored in the memory device 200, or some It can refer to some other time, such as another time.

상기 프로토콜은 메모리 디바이스(200)가 보안되지 않은 접속 시스템(예를 들어, 인터넷, WiFi 네트워크, GSM 네트워크, 등)에 걸쳐 타임 서버(100)와 통신하게 한다. 접속 시스템은 타임 서버(100)에 의해 송신된 타임 스탬프가 전송 동안 탬퍼되지 않는다는 것을 메모리 디바이스(200)가 가정할 수 없다는 측면에서 보안되지 않는다. 네트워크가 타임 스탬프를 보호하는 것에 의존할 수 없기 때문에, 상기 보호 메카니즘(또는 몇몇 다른 보호 메카니즘)은 서버(100) 및 메모리 디바이스(200) 사이에 사용될 수 있다. 인크립션 프로토콜은 타임 스탬프가 탬퍼되는 경우, 메모리 디바이스(200)가 이를 검출할 수 있도록 한다. 다른 말로, 접속 시스템이 보안되지 않기 때문에, 시스템 자체는 사람들이 타임 스탬프의 비트들을 변경하는 것을 방지할 수 없다; 그러나, 메모리 디바이스(200)는 탬퍼링을 검출하고 타임 스탬프를 거절할 수 있다. 다른 실시예에서, 보안 통신 시스템은 사용되고(즉, 데이터 통신 라인들은 보호된다), 그리고 타임 스탬프는 타임 스탬프를 탬퍼할 수 없기 때문에 평문으로서 전송될 수 있다.The protocol allows memory device 200 to communicate with time server 100 over an unsecured connection system (eg, the Internet, WiFi network, GSM network, etc.). The connection system is not secure in the sense that the memory device 200 cannot assume that the time stamp sent by the time server 100 is not tampered during transmission. Since the network cannot rely on protecting the time stamp, the protection mechanism (or some other protection mechanism) can be used between the server 100 and the memory device 200. The encryption protocol allows the memory device 200 to detect when the time stamp is tampered with. In other words, because the access system is not secure, the system itself cannot prevent people from changing the bits of the time stamp; However, memory device 200 may detect tampering and reject the time stamp. In another embodiment, a secure communication system is used (ie, data communication lines are protected), and the time stamp can be transmitted as plain text because it cannot tamper with the time stamp.

도 4를 참조하여, 새로운 타임 스탬프가 메모리 디바이스(200)에 저장되어, 메모리 디바이스(200)는 호스트 디바이스(300)에 다시 "시간 업데이트 성공" 메시지를 전송하고(액트 452), 호스트 디바이스(300)는 메모리 디바이스(200)에 인증을 위한 요청을 다시 전송한다(액트 454). 메모리 디바이스(200)가 타임 스탬프를 가지기 때문에, 메모리 디바이스(200)는 ACR(201)의 타임 스탬프 업데이트 정책(TUP)을 검사할 것이다(액트 500). 시간 평가가 타임 스탬프를 바탕으로 하기 때문에, 구식 타임 스탬프에서 시간 평가 바이어싱은 부정확한 시간 평가를 유도할 수 있다. 따라서, TUP는 메모리 디바이스(200) 상 기존 타임 스탬프가 구식으로 고려되고 재생(즉, 새로운 타임 스탬프)을 요구할 때를 결정하기 위해 사용된다. 도 3에 도시되고 이하에 보다 상세히 논의된 바와 같이, 다른 ACR들은 ACR이 생성될 때 생성될 수 있는 다른 TUP들을 가질 수 있다(즉, 다른 ACR들은 다른 시간 허용 오차 레벨들을 가질 수 있음).Referring to FIG. 4, a new time stamp is stored in the memory device 200 so that the memory device 200 sends a “time update success” message back to the host device 300 (act 452) and the host device 300 Sends back a request for authentication to the memory device 200 (act 454). Since the memory device 200 has a time stamp, the memory device 200 will check the time stamp update policy (TUP) of the ACR 201 (act 500). Since the time estimate is based on the time stamp, time estimate biasing in the old time stamp can lead to inaccurate time estimates. Thus, the TUP is used to determine when an existing time stamp on the memory device 200 is considered outdated and requires playback (ie, a new time stamp). As shown in FIG. 3 and discussed in more detail below, other ACRs may have other TUPs that may be generated when an ACR is generated (ie, other ACRs may have different time tolerance levels).

이 실시예에서, TUP는 4개의 값들에 의해 표현되고: (1) 전력 사이클의 임계 수, (2) 액티브 시간의 임계값, (3) "연장된" 액티브 시간의 임계값, 및 (4) 파라미터들 사이에 OR 관계가 존재하는지 아닌지 여부를 가리키는 비트(즉, 단일 파라미터가 실패하는 경우에만 시간 업데이트가 요구될지 여부, 또는 모든 파라미터들이 실패하는 경우에만 시간 업데이트가 요구될지 여부). 각각의 이들 파라미터들은 하기에 상세히 기술될 것이다. (이들 외에 또는 대신에 다른 파라미터들이 고려될 수 있다는 것은 주지되어야 한다).In this embodiment, the TUP is represented by four values: (1) threshold number of power cycles, (2) threshold of active time, (3) threshold of "extended" active time, and (4) A bit indicating whether or not an OR relationship exists between the parameters (ie, whether a time update is required only if a single parameter fails, or whether a time update is required only if all parameters fail). Each of these parameters will be described in detail below. (It should be noted that other parameters may be considered in addition to or instead of these).

도 7은 검사 TUP 액트를 보다 상세히 도시하는 흐름도이다(액트 500). 첫째, 메모리 디바이스(200)가 메모리(210)에 저장된 구성 데이터를 찾음으로써 TUP를 검사하기 시작했는지를 결정하기 위한 검사가 이루어진다(액트 505). 메모리 디바이스(200)가 TUP를 검사하기 시작하지 않는 경우, 메모리 디바이스(200)는 시간 평가를 생성하기 위하여 메모리 디바이스(200)에 의해 수신된 최종 타임 스탬프를 사용하고(액트 510), 시간 평가를 사용하여 엔티티를 인증하기 위한 시도가 이루어진다. 메모리 디바이스(200)가 TUP를 검사하기 시작하는 경우, 메모리 디바이스(200)는 그 검사를 시작한다.7 is a flow chart illustrating test TUP acts in more detail (act 500). First, a check is made to determine whether the memory device 200 has begun examining the TUP by looking for configuration data stored in the memory 210 (act 505). If the memory device 200 does not begin to check the TUP, the memory device 200 uses the last time stamp received by the memory device 200 to generate a time estimate (act 510) and performs a time estimate. An attempt is made to authenticate the entity. When the memory device 200 starts to check the TUP, the memory device 200 starts to check it.

첫째, 메모리 디바이스(200)는 최종 타임 스탬프 이후 TUP가 메모리 디바이스(200)의 전력 사이클의 수의 검사를 포함하는지를 결정한다(액트 515). 이 실시예에서, 이것은 상기된 "전력 사이클들" 값을 검사함으로써 수행된다. "전력 사이클들" 값이 영인 경우, 전력 사이클의 수는 검사되지 않는다. "전력 사이클들" 값이 영이 아닌 경우, 전력 사이클의 수는 임계값으로서 상기 값을 사용하여 검사된다. 전력 사이클의 수는 메모리 디바이스(200)가 얼마나 많이 전력이 상승되었는지의 카운트, 최종 타임 스탬프 이후 메모리 디바이스(200)가 얼마나 많이 전력이 하강되었는지를 가리키는 카운트이다(즉, 매 전력 상승 동안, 전력 하강이 있어야 한다). 전력 사이클의 수는 CPU(260)에 의해 측정될 수 있다. 메모리 디바이스(200)가 전력 사이클을 통해 진행하는 매시간, CPU(260)는 펌웨어에서 장치 리셋 루틴을 호출할 수 있다. CPU(260)가 액티브 시간 카운터에 하나의 유니트를 부가하는 상황에서처럼, 장치 리셋 루틴으로 인해, CPU(260)는 CPU RAMS(262) 및/또는 메모리(210)의 전력 사이클 카운터에 하나의 유니트를 부가한다. 액티브 시간 카운터로 인해, 전력 사이클 카운터는 메모리 소비를 감소시키기 위해 주기적으로 업데이트될 수 있다.First, memory device 200 determines whether the TUP after the last time stamp includes checking the number of power cycles of memory device 200 (act 515). In this embodiment, this is done by checking the "power cycles" value described above. If the value of "power cycles" is zero, the number of power cycles is not checked. If the "power cycles" value is non-zero, the number of power cycles is checked using that value as the threshold. The number of power cycles is a count of how much power the memory device 200 has powered up, and a count that indicates how much power has been powered down by the memory device 200 since the last time stamp (ie, during every power up, power down Should be). The number of power cycles can be measured by the CPU 260. Each time the memory device 200 proceeds through a power cycle, the CPU 260 may call a device reset routine in firmware. As in the situation where the CPU 260 adds one unit to the active time counter, due to the device reset routine, the CPU 260 adds one unit to the power cycle counter of the CPU RAMS 262 and / or the memory 210. Add. Due to the active time counter, the power cycle counter can be updated periodically to reduce memory consumption.

메모리 디바이스(200)가 전력이 하강될 때, 측정된 액티브 시간에 의해 제공되지 않은 적어도 일부의 실제 시간이 있다(메모리 디바이스 200이 "액티브"가 아닌 경우 액티브 시간을 측정할 수 없기 때문에). 메모리 디바이스(200)가 전력 사이클들 사이에서 얼마나 많이 통과했는지를 알지 못하기 때문에, 전력 사이클의 수는 측정된 액티브 시간이 얼마나 부정확한지를 가리키지 못한다. 그러나, 메모리 디바이스(100)가 예상된 사용 패턴의 외측에서 사용되는지 여부의 측면은 제공하고, 상기 예상된 사용 패턴은 측정된 액티브 시간이 얼마나 부정확한지를 대략적으로 가리킬 수 있다. 예를 들어, 메모리 디바이스(200)가 10 전력 사이클들을 가질 때 시간 평가가 이루어지는데, 그 이유는 최종 타임 스탬프는 최종 타임 스탬프 이후 메모리 디바이스(200)가 단지 하나의 전력 사이클만을 가질 때 이루어진 시간 평가보다 덜 정확할 수 있기 때문이다.When the memory device 200 is powered down, there is at least some actual time that is not provided by the measured active time (since the active time cannot be measured if the memory device 200 is not "active"). Since the memory device 200 does not know how many passes between power cycles, the number of power cycles does not indicate how inaccurate the measured active time is. However, a aspect of whether the memory device 100 is used outside of the expected usage pattern provides, and the expected usage pattern can roughly indicate how inaccurate the measured active time is. For example, a time estimate is made when memory device 200 has 10 power cycles, because the last time stamp is a time estimate made when memory device 200 has only one power cycle after the last time stamp. Because it can be less accurate.

만약 TUP가 전력 사이클들 수 검사를 포함하면, 메모리 디바이스(200)는 전력 사이클의 수가 "전력 사이클들" 값에서 설정된 임계 양을 초과하는지 여부를 알기 위하여 최종 타임 스탬프 이후 메모리 디바이스(200)의 전력 사이클들 수를 검사한다(액트 520). 임계 수는 목표된 시간 허용 오차를 반영하기 위하여 ACR당 구성할 수 있다. 예를 들어, 만약 인증이 매우 민감하고 증명서 또는 CRL의 만료일이 경과되지 않는다는 보장이 필요한 경우, 임계 수는 1로 설정될 수 있다. 따라서, 메모리 디바이스(200)가 일단 셧 다운되면(그리고, 따라서, 측정된 액티브 시간에 의해 책임질 수 없는 적어도 일부의 시간 양이 있다면), 이런 파라미터의 TUP 검사는 실패한다. 다른 한편, 인증이 민감하지 않으면, 전력 사이클의 수는 보다 높은 수(또는 전혀 고려되지 않음)로 설정되어 TUP 검사는 전력 사이클의 일부 수가 존재하는 경우에도(그리고, 따라서, 측정된 액티브 시간에 의해 책임질 수 없는 일부 시간 양) 통과한다.If the TUP includes checking the number of power cycles, the memory device 200 powers up the memory device 200 after the last time stamp to see if the number of power cycles exceeds a threshold amount set at the "power cycles" value. Check the number of cycles (act 520). The threshold number can be configured per ACR to reflect the target time tolerance. For example, if authentication is very sensitive and needs to be guaranteed that the expiration date of the certificate or CRL has not passed, the threshold number may be set to one. Thus, once memory device 200 is shut down (and therefore there is at least some amount of time that cannot be accounted for by the measured active time), the TUP check of this parameter fails. On the other hand, if authentication is not sensitive, the number of power cycles is set to a higher number (or not considered at all) so that the TUP check can be performed even if some number of power cycles are present (and thus, by the measured active time). Some amount of time that cannot be accountable for) passes.

전력 사이클의 수 검사가 실패하고 TUP 파라미터들 사이에 OR 관계가 존재한다는 것이 결정되면(액트 525), TUP 검사는 실패한다(액트 530). 메모리 디바이스(200)는 실패를 가리키는 메시지를 호스트 디바이스(300)에 전송하고, 상기된 절차는 새로운 타임 스탬프를 얻기 위해 사용된다. 전력 사이클의 수의 검사가 통과하거나, 실패하고 TUP 파라미터들 사이에 OR 관계가 없는 것이 결정되면(액트 525), 처리는 최종 타임 스탬프 이후 TUP가 액티브 시간의 검사를 포함하는지를 결정함으로써 계속된다(액트 535).If the check of the number of power cycles fails and it is determined that there is an OR relationship between the TUP parameters (act 525), the TUP check fails (act 530). The memory device 200 sends a message indicating the failure to the host device 300 and the above described procedure is used to obtain a new time stamp. If a check of the number of power cycles passes or fails and it is determined that there is no OR relationship between the TUP parameters (act 525), the process continues by determining if the TUP includes a check of active time since the last time stamp (act 535).

상기된 전력 사이클 절차와 유사하게, "액티브 시간" 값이 영이면, 액티브 시간은 검사되지 않는다. 그러나, "액티브 시간" 값이 영과 다르면, 액티브 시간은 초들의 임계 수(또는 시간의 몇몇 다른 단위)로서 값을 사용하여 검사된다. 전력 사이클의 수로 인해, 임계 액티브 시간 양은 목표된 시간 허용 오차를 반영하기 위하여 ACR당 구성할 수 있다. 일반적으로, 메모리 디바이스(200)가 보다 길게 액티브일수록, 측정된 액티브 시간이 보다 부정확하다. 따라서, 인증이 매우 민감하고 증명서 또는 CRL의 만료 일이 경과되지 않은 보장이 필요하면, 측정된 액티브 시간의 임계 양은 매우 낮게 설정될 수 있다. 반대로, 인증이 민감하지 않으면, 측정된 액티브 시간의 임계값은 보다 높게 설정될 수 있다(또는 심지어 전혀 고려되지 않는다).Similar to the power cycle procedure described above, if the "active time" value is zero, the active time is not checked. However, if the "active time" value is different from zero, the active time is checked using the value as the threshold number of seconds (or some other unit of time). Due to the number of power cycles, the threshold active time amount can be configured per ACR to reflect the desired time tolerance. In general, the longer the memory device 200 is active, the more inaccurate the measured active time. Thus, if authentication is very sensitive and needs to be guaranteed that the expiration date of the certificate or CRL has not passed, the threshold amount of measured active time can be set very low. Conversely, if authentication is not sensitive, the threshold of measured active time can be set higher (or even not considered at all).

액티브 시간의 검사가 실패하고 TPU 파라미터들 사이에 OR 관계가 존재한다는 것이 결정되면(액트 545), TUP 검사는 실패한다(액트 550). 메모리 디바이스(200)는 실패를 가리키는 메시지를 호스트 디바이스(300)에 전송하고, 상기된 절차는 새로운 타임 스탬프를 얻기 위하여 사용된다. 액티브 시간의 검사가 통과하거나, 실패하고 TUP 파라미터들 사이에 OR 관계가 존재하지 않는 것이 결정되면(액트 545), 처리는 TUP가 "연장된" 액티브 시간의 검사를 포함하는지를 결정함으로써 계속된다(액트 555).If the check of active time fails and it is determined that there is an OR relationship between the TPU parameters (act 545), the TUP check fails (act 550). The memory device 200 sends a message indicating the failure to the host device 300 and the above procedure is used to obtain a new time stamp. If the check of active time passes or fails and it is determined that there is no OR relationship between the TUP parameters (act 545), the process continues by determining whether the TUP includes a check of the "extended" active time (act 555).

상기된 바와 같이, 측정된 액티브 시간은 메모리 디바이스(200)가 계속하여 액티브 시간을 측정하지 않는 실제 액티브 시간의 진실한 측정값일 수 없다. 즉, 메모리 디바이스(200)가 "인액티브"이면(예를 들어, 메모리 디바이스 200이 공전하거나 슬리프 모드에 있을 때, 또는 메모리 디바이스 200이 전력이 하강하거나 메모리 디바이스 200이 호스트 디바이스 300으로부터 제거될 때 - 이 실시예에서, 하드웨어 타이머 블록 270이 클럭 틱들을 생성하는 것을 정지하게 하고 및/또는 CPU 260이 상기 틱들에 반응하는 것이 정지되는 이벤트가 무엇이든), 측정된 액티브 시간은 인액티브일 때 시간이 통과하는 것을 말하는 것이 메모리 디바이스(200)에 아무것도 없기 때문에 측정이 시작된 이후 통과된 실제 시간 보다 작을 것이다. 예를 들어, 타임 스탬프가 1월 1일에 수신되었고, 메모리 디바이스(200)가 2일의 액티브 시간을 측정하였다고 하자. (간략화를 위하여, 시간은 이 예에서 날 단위들로 측정된다. 그러나, 상기된 바와 같이, 임의의 목표된 시간 단위는 사용될 수 있다). 따라서, 이 포인트에서 메모리 디바이스(200)에 의해 생성된 시간 평가는 날이 1월 3일인 것을 가리킨다(즉, 1월 1일의 최종 타임 스탬프에 2일의 액티브 시간을 부가함으로써). 메모리 디바이스(200)가 연속하여 액티브 시간을 측정하는 경우, 이런 시간 평가는 실제 시간을 정확하게 나타낸다(하드웨어 타이머 블록 270 및 CPU 260이 정확하게 기능한다고 가정). 그러나, 메모리 디바이스(200)가 연속하여 액티브 시간을 측정하지 않으면(즉, 메모리 디바이스 200이 액티브 시간을 측정하기 시작한 후 임의의 시점에서 인액티브이면), 시간 평가는 실제 시간을 정확하게 나타내지 않는다. 최선으로, 시간 평가는 실제 시간이 적어도 1월 3일인 것을 가리킨다. 실제 시간은 1월 4일이거나 몇몇 추후 일(6월 29일, 11월 2일, 12월 5일, 다음 해, 등)일 수 있다. 따라서, 액트(540)에서 액티브 시간의 검사는 정확한 결과를 제공하지 않을 수 있다.As noted above, the measured active time may not be a true measure of the actual active time for which the memory device 200 does not continuously measure the active time. That is, if memory device 200 is "inactive" (eg, when memory device 200 is idle or in sleep mode, or memory device 200 is powered down or memory device 200 is removed from host device 300). When-in this embodiment, the hardware timer block 270 stops generating clock ticks and / or whatever event the CPU 260 stops responding to the ticks), when the measured active time is inactive It would be less than the actual time passed since the measurement started because there is nothing in the memory device 200 to say that time passes. For example, assume that a time stamp was received on January 1 and the memory device 200 measured an active time of two days. (For simplicity, time is measured in day units in this example. However, as noted above, any desired time unit may be used). Thus, the time estimate generated by the memory device 200 at this point indicates that the day is January 3 (ie, by adding two days of active time to the final time stamp of January 1). If the memory device 200 continuously measures active time, this time estimate accurately represents the actual time (assuming hardware timer block 270 and CPU 260 function correctly). However, if memory device 200 does not continuously measure active time (ie, if it is inactive at any point after memory device 200 begins measuring active time), the time estimate does not accurately represent the actual time. Best of all, the time estimate indicates that the actual time is at least January 3rd. The actual time may be January 4 or some later day (June 29, November 2, December 5, next year, etc.). Thus, checking the active time in act 540 may not provide accurate results.

이런 문제를 처리하기 위하여, TUP는 "연장된" 액티브 시간 검사를 포함한다(액트 555 및 560). "연장된" 액티브 시간은 이전에 측정된 액티브 시간의 결정된 정확도를 기초로 측정된 액티브 시간을 조절한 결과이다. 따라서, 만약 메모리 디바이스(200)가 액티브 시간의 3일을 측정하고, 측정한 최종 시간(들)이 액티브 시간임을 알면, 실제 시간의 50%인 값이 형성되고, 메모리 디바이스(200)는 6일을 형성하기 위하여 3일의 측정된 액티브 시간을 두 배 조절(또는 "연장")할 수 있다 (측정된 액티브 시간은 실제 시간의 50%였기 때문에). "연장" 액티브 시간에 관한 부가적인 정보는 미국특허 출원 일련번호 11/811,284의 "Method for Improving Accuracy of a Time Estimate from a Memory Device" 및 미국특허 일련번호 11/811,347의 "Memory Device with Circuitry for Improving Accuracy of a Time Estimate"에 기술되고, 상기 미국 특허 출원은 이와 함께 출원되고 본 명세서에 참조로 포함되어 있다.To address this problem, the TUP includes an "extended" active time check (acts 555 and 560). The "extended" active time is the result of adjusting the measured active time based on the determined accuracy of the previously measured active time. Thus, if the memory device 200 measures 3 days of active time and knows that the last time (s) measured is the active time, a value of 50% of the actual time is formed, and the memory device 200 is 6 days The measured active time of 3 days can be doubled (or "extended") to form (since the measured active time was 50% of the actual time). Additional information regarding "extended" active time can be found in "Method for Improving Accuracy of a Time Estimate from a Memory Device" in U.S. Patent Application Serial No. 11 / 811,284 and "Memory Device with Circuitry for Improving" in U.S. Patent No. 11 / 811,347. Accuracy of a Time Estimate, which is filed with and incorporated herein by reference.

"연장된" 액티브 시간 대신, "스트레치 다운(strecthed down)" 시간은 사용될 수 있다. 다운 시간은 메모리 디바이스(200)가 타임 스탬프들 사이에서 인액티브인 시간 양을 말한다. 메모리 디바이스(200)가 얼마나 오래 액티브되지 않는가를 측정하는 방식이 없기 때문에, 다운 시간은 계산된 수이다; 특히, 다운 시간 = 타임 스탬프들 사이의 실제 시간 - 액티브 시간. "스트레치" 다운 시간 계산은 이전에 측정된 액티브 시간의 결정된 정확도를 바탕으로 조절된다(또는 측정된 액티브 시간을 바탕으로 하는 다운 시간). 다음은 고려될 수 있는 다른 다운-시간 변화들의 예들의 리스트이다. 이 리스트에서 "다운시간(DownTime)"은 "연장된" 다운 시간이라 한다(예를 들어, 이전 지식의 타임 스탬프 사이의 다운 시간의 평균).Instead of an "extended" active time, a "strecthed down" time can be used. The down time refers to the amount of time that the memory device 200 is inactive between time stamps. Since there is no way to measure how long memory device 200 is not active, the down time is a calculated number; Specifically, down time = actual time between time stamps-active time. The "stretch" down time calculation is adjusted based on the determined accuracy of the previously measured active time (or down time based on the measured active time). The following is a list of examples of other down-time changes that may be considered. "DownTime" in this list is referred to as "extended" down time (eg, the average of down time between time stamps of previous knowledge).

총 다운시간 평가(teDownTime): teDownTime = (timestampi - timestampi -1 - ActiveTimei), 여기서 인덱스 i는 제 2 타임 스탬프로부터 메모리 디바이스(200)에 구성된 최종 타임 스탬프로 진행한다.Total Down Time Estimation (teDownTime): teDownTime = (timestamp i -timestamp i -1 -ActiveTime i ), where index i proceeds from the second time stamp to the last time stamp configured in memory device 200.

특정 순간에 대한 최종 타임 스탬프 이후 현재 다운시간(cDowntime). 이것은 최종 타임 스탬프 업데이트 이후 전력 사이클들(pc)의 수(cDowntime = 최종 시간스탬프 이후 PC * (teDownTime/PC)) 또는 최종 타임 스탬프 업데이트 이후 액티브 시간 {cDowntime = 최종 시간 스탬프 이후 ActiveTime*(teDownTime/ActiveTime)}에 관련된다.Current downtime since last time stamp for a particular moment. This is the number of power cycles (pc) since the last timestamp update (cDowntime = PC * (teDownTime / PC) since the last timestamp) or active time after the last timestamp update {cDowntime = ActiveTime * (teDownTime / ActiveTime after the last timestamp) )}.

다운 시간(DownTime) 파라미터가 사용되지 않도록 구성되는 경우, 다운 시간 값은 0으로 설정된다.If the DownTime parameter is configured not to be used, the down time value is set to zero.

다운시간 파라미터가 사용되도록 구성되는 경우, 다운 시간은 1로 설정된다. 메모리 디바이스(200)는 타임 스탬프 업데이트가 다음 방식으로 필요할 때 평가하기 위하여 다운 시간 특성을 사용한다: 서비스 시간(ServiceTime)(예를 들어, 증명서의 유효성 또는 CRL의 유효성) - 시간 평가 < 다운 시간, 타임 스탬프 업데이트는 필요하다).If the downtime parameter is configured to be used, the downtime is set to one. Memory device 200 uses the down time feature to evaluate when a time stamp update is needed in the following manner: Service Time (e.g., validity of certificate or validity of CRL)-time evaluation <down time, Timestamp update is required).

도 7을 참조하여, "연장된" 액티브 시간의 검사가 실패하는 경우(액트 560), TUP의 검사는 실패하고(액트 565), 메모리 디바이스(200)는 호스트 디바이스(300)에 메시지를 전송한다. 상기된 과정은 새로운 타임 스탬프를 얻기 위하여 사용된다. "연장된" 액티브 시간의 검사가 통과하는 경우(또는 메모리 디바이스 200이 TUP를 검사하도록 시작되지 않는 경우), 메모리 디바이스(200)는 "TUP 통과' 메시지(510,570)를 호스트 디바이스(300)에 다시 전송한다(도 4 참조). 호스트 디바이스(300)는 엔티티의 증명서 및 CRL을 메모리 디바이스(200)에 전송하고, 메모리 디바이스는 엔티티를 인증하는 것을 시도한다(액트 585). 특히, 메모리 디바이스(200)는 증명서를 검증하고(액트 585) 및 CRL을 검증(액트 590)하기 위해 최종 수신된 타임 스탬프 및 측정된 액티브 시간을 바탕으로 시간 평가를 생성할 것이다. 증명서 및 CRL의 만료 시간이 생성된 시간 평가 후이면, 메모리 디바이스(200)는 OK 메시지를 다시 호스트 디바이스(300)에 전송하고, 만일 있다면 인증 방법의 다른 단계들은 수행될 수 있다. 엔티티가 인증되면, ACR(201)은 객체들에 대한 엔티티 권리를 승인한다(여기서, 플레이어 301 및 DRM 모듈 207 사이의 보안 채널을 설정함으로써), 그렇지 않으면, 증명서 및/또는 CRL이 만료되면, 메모리 디바이스(200)는 인증 시도가 실패하였다는 것을 언급하는 메시지를 호스트 디바이스(300)에 전송한다. 호스트 디바이스(300)는 차례로 상기된 바와 같이 타임 스탬프 업데이트를 시작할 수 있다.Referring to FIG. 7, if the check of the "extended" active time fails (act 560), the check of the TUP fails (act 565), and the memory device 200 sends a message to the host device 300. . The above procedure is used to obtain a new time stamp. If the check of the "extended" active time passes (or the memory device 200 does not start to check for TUP), the memory device 200 sends a "TUP pass' message 510,570 back to the host device 300. (See Fig. 4) The host device 300 sends the entity's certificate and CRL to the memory device 200, and the memory device attempts to authenticate the entity (act 585.) In particular, the memory device 200 ) Will generate a time estimate based on the last received time stamp and the measured active time to validate the certificate (act 585) and to validate the CRL (act 590). After evaluation, the memory device 200 sends an OK message back to the host device 300, and if so, other steps of the authentication method can be performed. Approves entity rights for the objects (where by establishing a secure channel between player 301 and DRM module 207), otherwise, if the certificate and / or CRL expire, the memory device 200 fails the authentication attempt. Send a message to the host device 300. The host device 300 may in turn start a time stamp update as described above.

상기된 바와 같이, 인증 시도를 위한 시간 평가는 측정된 액티브 시간을 최종 타임 스탬프에 부가함으로써 생성된다. 측정된 액티브 시간이 부정확할 수 있기 때문에, 상기된 "시간 연장" 기술들은 시간 평가 정확성을 개선하기 위해 사용될 수 있다. 그러나, "연장된" 액티브 시간이 실제 시간보다 실제로 클 수 있다는 것은 가능하다. TUP를 검사하는 경우, "과-연장" 액티브 시간은 새로운 타임 스탬프를 유발한다. 그러나, 증명서 또는 CRL을 검증하는 경우, "과-연장" 액티브 시간은 적당한 엔티티가 인증되는 것을 방지할 수 있다. 따라서, 인증을 위한 시간 평가를 생성할 때 "시간 연장"을 사용하는 것은 바람직하지 않을 수 있다.As noted above, the time estimate for the authentication attempt is generated by adding the measured active time to the final time stamp. Since the measured active time may be inaccurate, the “time extension” techniques described above may be used to improve time estimation accuracy. However, it is possible that the "extended" active time can actually be greater than the actual time. When checking the TUP, the "over-extended" active time results in a new time stamp. However, when verifying a certificate or CRL, the "over-extended" active time can prevent the proper entity from authenticating. Thus, it may not be desirable to use a "time extension" when generating a time estimate for authentication.

요약하여, 상기 방법에서, 메모리 디바이스(200)는 엔티티를 인증하기 위한 요청을 수신하고 엔티티를 인증하기 위한 시도 이전에, 메모리 디바이스(200)는 만약 새로운 타임 스탬프가 필요한지를 결정한다. 새로운 타임 스탬프가 필요하면, 메모리 디바이스(200)는 새로운 타임 스탬프를 바탕으로 시간 평가를 생성하고 증명서 및/또는 CRL 유효성 기간에 대해 시간 평가를 비교함으로써 새로운 타임 스탬프를 얻어 엔티티를 인증하기 위하여 시도한다. 만약 새로운 타임 스탬프가 필요하지 않으면, 메모리 디바이스는 최종 타임 스탬프를 바탕으로 시간 평가를 생성하고 증명서 및/또는 CRL 유효성 기간들에 대한 시간 평가를 비교함으로써 엔티티를 인증하기 위하여 시도한다.In summary, in the method, memory device 200 receives a request to authenticate an entity and prior to an attempt to authenticate the entity, memory device 200 determines if a new time stamp is needed. If a new time stamp is needed, the memory device 200 attempts to authenticate the entity by obtaining a new time stamp by generating a time estimate based on the new time stamp and comparing the time estimate against the certificate and / or CRL validity period. . If a new time stamp is not needed, the memory device attempts to authenticate the entity by generating a time estimate based on the final time stamp and comparing the time estimates for the certificate and / or CRL validity periods.

이 실시예에서, TUP가 검사되고 필요한 경우 새로운 타임 스탬프가 엔티티를 인증하기 전에 얻어지는 것이 주지되어야 한다. 다른 말로, TUP를 검사하고 새로운 타임 스탬프를 얻는 것은 TUP를 검사하기 전 또는 새로운 타임 스탬프가 얻어지기 전 엔티티가 인증될 것을 요구하지 않는다. 이것은 타임 스탬프 및 DRM 라이센스 모두를 제공하기 위하여 단일 서버를 사용하는 시스템과 대조된다. 상기 서버는 타임 스탬프(또는 다른 정보)를 메모리 디바이스에 제공하기 전 메모리 디바이스 인증을 요구한다. 이것은 서버를 인증하기 위한 "캐치 22" 상황을 제공하고, 새로운 시간은 필요하지만, 새로운 타임 스탬프는 서버가 인증된 후에만 얻어질 수 있다. 상기 상황을 피하기 위하여, 몇몇 이전 시스템들은 인증 처리시 시간을 사용하지 않는다. 상기 "캐치 22" 상황을 피하는 동안, 무시 시간은 인증되지 않아야 하는 엔티티를 인증하는 것을 유도할 수 있다(예를 들어, 인증서 및/또는 CRL이 만료되었기 때문에).In this embodiment, it should be noted that the TUP is checked and, if necessary, a new time stamp is obtained before authenticating the entity. In other words, checking a TUP and getting a new time stamp does not require the entity to be authenticated before checking the TUP or before a new time stamp is obtained. This is in contrast to systems that use a single server to provide both time stamps and DRM licenses. The server requires memory device authentication before providing a time stamp (or other information) to the memory device. This provides a "catch 22" situation for authenticating the server and requires a new time, but a new time stamp can only be obtained after the server is authenticated. To avoid this situation, some older systems do not use time in the authentication process. While avoiding the " catch 22 " situation, the ignore time can lead to authenticating an entity that should not be authenticated (eg because the certificate and / or CRL has expired).

메모리 디바이스(200)에 인증하기 위하여 시도하는 엔티티로부터 타임 서버(100)를 분할함으로써, 메모리 디바이스(200)는 플레이어(301) 및 메모리 디바이스의 타임 모듈(204) 사이에 "빈 채널"을 생성하여, 플레이어(301)가 타임 서버(100)로부터 타임 스탬프 업데이트를 전달하게 한다(도 3 참조). 이런 타임 스탬프는 엔티티의 증명서들이 인증을 위해 유효화될 수 있는 시간 평가를 생성하기 위하여 사용된다. "빈 채널"은 우선 엔티티를 인증하지 않고 설정된 통신 파이프라인을 말한다. 대조하여, "보안 채널"은 엔티티가 인증된 후에만 설정되는 통신 파이프라인을 말한다.By dividing the time server 100 from the entity attempting to authenticate with the memory device 200, the memory device 200 creates an "empty channel" between the player 301 and the time module 204 of the memory device. The player 301 then forwards the time stamp update from the time server 100 (see FIG. 3). This time stamp is used to generate a time estimate during which the entity's credentials can be validated for authentication. An "empty channel" refers to a communication pipeline established without first authenticating an entity. In contrast, a "secure channel" refers to a communication pipeline that is established only after an entity has been authenticated.

비록 플레이어(301)가 타임 서버(100)로부터 타임 스탬프를 메모리 디바이스(200)에 공급하기 위한 도관으로서 사용되도록 인증될 필요가 없지만, 타임 서버(100)가 바람직하게 타임 스탬프가 신뢰적인 소스로부터 발생하는 것을 보장하기 위하여 인증되는 것은 주지되어야 한다. 이것은 도 4 및 6의 액트 435에서 도시되고, 타임 서버의 100 증명서 및 CRL은 타임 스탬프를 허용하기 전에 검증된다. 그러나, 상기된 "캐치 22" 상황을 피하기 위하여, 메모리 디바이스(200)는 타임 서버의 100 증명서 및 CRL에 대한 유효 기간이 유효하고 따라서 생성된 시간 평가에 대한 유효성 기간들을 검증하지 않는다는 것을 가정한다.Although the player 301 does not need to be authenticated to be used as a conduit for supplying the time stamp from the time server 100 to the memory device 200, the time server 100 preferably generates a time stamp from a trusted source. It should be noted that certification is done to ensure that it is done. This is shown in act 435 of FIGS. 4 and 6, where the 100 certificate and CRL of the time server are verified before allowing the time stamp. However, to avoid the "catch 22" situation described above, it is assumed that the memory device 200 is valid for the 100 certificate of the time server and the CRL is valid and therefore does not verify the validity periods for the generated time estimate.

엔티티가 메모리 디바이스(200)에 인증될 때, ACR의 허가 제어 기록(PCR)에 나타난 다양한 액션들을 수행할 수 있다. 예를 들어, 도 3을 다시 참조하여, 플레이어(301)는 메모리 디바이스(200)의 보호된 컨텐트(205)에 액세스하기 위하여 보안 채널을 통하여 DRM 모듈(207)과 통신할 수 있다. (다른 예로서, 저장 애플리케이션 302에 대한 ACR은 애플리케이션 302가 메모리 디바이스 200에 보호된 컨텐트 205를 저장하게 한다). 비록 플레이어(301)가 인증되었지만, 컨텐트가 보호되기 때문에, DRM 모듈(207)은 보호된 컨텐트를 언로킹하기 전에 보호된 컨텐트(205)에 대한 DRM 라이센스(206)를 유효화하기 위해 시도한다(예를 들어 라이센스가 여전히 유효한지 만료되었는지를 결정함으로써). 이를 위하여, DRM 모듈(207)은 메모리 디바이스(204)의 타임 모듈(204)로부터 시간 평가를 요청한다. (타임 모듈 204은 시간 평가(예를 들어, 타임 스탬프, 액티브 시간, 전력 사이클의 수, "연장" 요소, 등)를 생성하기 위하여 사용된 다양한 성분들을 저장 및 생성하기 위해 사용된 상기된 소프트웨어 및/또는 하드웨어를 말한다). DRM 모듈(207)은 라이센스가 유효한지 아닌지를 결정하기 위해 생성된 시간 평가를 라이센스(206)의 만료 일 및/또는 유효 기간과 비교한다. DRM 모듈(207)은 보호된 컨텐트(205)가 특정 시간들의 수보다 많이 플레이 되었는지를 결정하는 것 같은(이것으로 제한되지 않음) 라이센스를 유효화하기 위하여 부가적인 검사들을 수행할 수 있다.When an entity is authenticated to the memory device 200, it may perform various actions shown in the admission control record (PCR) of the ACR. For example, referring again to FIG. 3, the player 301 may communicate with the DRM module 207 via a secure channel to access the protected content 205 of the memory device 200. (As another example, the ACR for the storage application 302 causes the application 302 to store the protected content 205 in the memory device 200). Although the player 301 is authenticated, because the content is protected, the DRM module 207 attempts to validate the DRM license 206 for the protected content 205 before unlocking the protected content (eg For example, by determining whether a license is still valid or has expired). To this end, the DRM module 207 requests time evaluation from the time module 204 of the memory device 204. (The time module 204 includes the software described above used to store and generate various components used to generate time estimates (e.g., time stamps, active times, number of power cycles, "extended" elements, etc.); / Or hardware). The DRM module 207 compares the generated time estimate with the expiration date and / or expiration date of the license 206 to determine whether the license is valid. DRM module 207 may perform additional checks to validate a license, such as, but not limited to, determining whether protected content 205 has been played more than a certain number of times.

상기된 바와 같이, 타임 스탬프가 보다 최신일수록, 시간 평가가 보다 정확할 것이다. 상기 실시예에서, ACR의 TUP는 타임 스탬프 업데이트가 필요한지를 결정한다. 따라서, TUP는 생성된 시간 평가가 DRM 라이센스 유효화를 위하여 얼마나 정확한지를 효과적으로 결정한다. TUP의 파라미터를 결정할 때, 만료를 고려하여 서비스들을 제공하는 서비스 제공자들의 필요성, 및 새로운 타임 스탬프를 얻기 위하여 네트워크에 호스트 디바이스들을 접속할 필요가 있을 때 불편할 수 있는 최종 사용자들의 필요성 사이에 밸런스를 발견할 필요가 있다. 만약 시간 허용 오차가 너무 엉성하면, 서비스 제공자는 소득을 잃을 수 있다. 다른 한편, 시간 허용 오차가 너무 엄격하면, 최종 사용자는 요구된 타임 스탬프 업데이트를 얻기 위하여 네트워크에 대한 빈번한 접속들이 너무 부담되는 경우 서비스를 떠날 것을 결정할 수 있다.As noted above, the more recent the time stamp is, the more accurate the time estimate will be. In this embodiment, the TUP of the ACR determines if a time stamp update is needed. Thus, the TUP effectively determines how accurate the generated time estimate is for DRM license validation. When determining the parameters of the TUP, you will find a balance between the need of service providers to provide services in consideration of expiration and the need of end users, which may be inconvenient when it is necessary to connect host devices to the network to obtain a new time stamp. There is a need. If time tolerances are too sparse, service providers can lose income. On the other hand, if the time tolerance is too strict, the end user may decide to leave the service if frequent connections to the network are too burdened to obtain the required time stamp update.

메모리 디바이스(200)가 단일 TUP(또는 동일한 TUP를 공유하는 모든 다중 ACR들)를 가진 단일 ACR을 가질 때, 단일 "하나의 크기가 모두에 적합한" TUP는 모든 서비스 제공자들에 대한 권리 밸런스를 찾지 못할 수 있다. 따라서, 이 실시예에서, 메모리 디바이스(200)는 연관된 서비스 제공자에 의해 구성할 수 있는 각각 다른 TUP(TUP1,TP2)를 가진 다수의 ACR들(201,202)을 가진다. 상기 논의된 바와 같이, 다른 ACR들의 사용을 통해, 메모리 디바이스(200)는 다른 인증 방식들(대칭, 비대칭 인증, 등)을 사용하여 인증하도록 구성될 수 있다. 다른 ACR들의 사용은 구성 가능한 시간 허용 오차들을 허용한다. 즉, ACR들의 구성 가능한 TUP들의 사용을 통해, 서비스 제공자들은 메모리 디바이스의 시간-유효 파라미터들(예를 들어, 액티브 시간, 전력 사이클의 수, "연장된" 액티브 시간/다운 시간) 중 하나 또는 그 이상이 구식으로 고려되고, 타임 스탬프 업데이트를 트리거해야 할 시기를 지정하여 자신의 시간 허용 오차를 정의할 수 있다. 구성 가능한 TUP들을 형성함으로써, 서비스 제공자는 단일 "하나의 크기가 모두에 적합" TUP에 의존하는 대신 최종 사용자들의 관계 및 특정 필요성에 따라 시간 허용 오차를 구성할 수 있다.When memory device 200 has a single ACR with a single TUP (or all multiple ACRs sharing the same TUP), a single "one size fits all" TUP finds the right balance for all service providers. You may not be able to. Thus, in this embodiment, memory device 200 has multiple ACRs 201 and 202 with different TUPs (TUP1, TP2), each of which can be configured by an associated service provider. As discussed above, through the use of other ACRs, memory device 200 may be configured to authenticate using other authentication schemes (symmetric, asymmetric authentication, etc.). The use of other ACRs allows for configurable time tolerances. That is, through the use of configurable TUPs of ACRs, service providers can use one or more of the time-validating parameters (eg, active time, number of power cycles, “extended” active time / down time) of a memory device. The anomaly is considered outdated and you can define your own time tolerance by specifying when the time stamp update should be triggered. By forming configurable TUPs, the service provider can configure time tolerances according to the specific needs and relationships of the end users instead of relying on a single “one size fits all” TUP.

예를 들어, 몇몇 서비스 제공자들은 매우 짧은 시간(예를 들어, 10분) 동안 증명서를 발생한다. 최종 사용자가 그가 원하는 메모리 디바이스(200) 상 서비스를 사용하기를 원하는 매시간 새로운 증명서를 얻도록 함으로써, 서비스 제공자는 최종 사용자의 행동을 면밀하게 모니터하고 최종 사용자가 증명서를 요구하는 매시간 비용을 평가할 수 있다. 따라서, 이런 비지니스 모델에 대해, 서비스 제공자는 통화 정의를 위한 엄격한 허용 오차를 필요로 한다. 다른 예로서, 만약 서비스 제공자가 최종 사용자들의 매우 유동성 있는 인스톨 베이스를 가지면, 서비스 제공자는 비지니스 모델의 주요 부분으로서 증명서를 빈번하게 호출하기를 원할 수 있다. 이런 상황에서, 서비스 제공자는 가장 최근 CRL이 인증을 위해 사용되는 것을 보장하기 위하여 엄격한 시간 허용 오차를 원한다. 다른 한편, 서비스 제공자는 사용자들이 새로운 컨텐트를 얻고 강제 타임 스탬프 업데이트를 수신하기 위하여 서비스 제공자의 웹 사이트에 규칙적으로 접속하는 매달 가입 서비스를 제공하면, 서비스 제공자는 최종 사용자가 새로운 컨텐트를 얻기 위해 네트워크에 접속할 수 있기 때문에 시간 허용 오차를 엄격하게 요구하지 않는다.For example, some service providers generate certificates for a very short time (eg 10 minutes). By having the end user get a new certificate every hour he wants to use the service on the desired memory device 200, the service provider can closely monitor the end user's behavior and evaluate the hourly cost that the end user requires the certificate. . Thus, for this business model, service providers need strict tolerances for currency definition. As another example, if the service provider has a highly flexible installation base of end users, the service provider may want to frequently invoke the certificate as a major part of the business model. In this situation, the service provider wants a tight time tolerance to ensure that the most recent CRL is used for authentication. On the other hand, if a service provider provides a monthly subscription service where users regularly access the service provider's website in order to obtain new content and receive compulsory time stamp updates, the service provider may not be able to access the network for end users to obtain new content. Connections do not require time tolerances strictly.

ACR들 상에서 구성 가능한 TUP들을 사용하는 대신 또는 부가하여, 구성 가능한 TUP는 컨텐트의 개별 피스들(piece)에 대한 DRM 라이센스들 상에 배치될 수 있다. 이런 방식으로, 컨텐트의 모든 피스들을 똑같이 처리하는 인증된 엔티티 대신, 엔티티는 다른 컨텐트에 대해 기존 타임 스탬프를 사용하면서 몇몇 컨텐트에 대한 새로운 타임 스탬프를 얻게 될 수 있다. (인증 동안만 검사되는 ACR상 TUP와 달리, 라이센스상 TUP는 DRM 모듈 207이 라이센스를 유효화하기 위하여 시도하는 매시간 검사될 수 있다).Instead of or in addition to using configurable TUPs on ACRs, a configurable TUP may be placed on DRM licenses for separate pieces of content. In this way, instead of an authenticated entity that handles all the pieces of content equally, the entity may get a new time stamp for some content while using an existing time stamp for other content. (Unlike TUP on ACR, which is only checked during authentication, a TUP under license can be checked every hour that DRM module 207 attempts to validate a license).

예를 들어 영화가 24 시간 동안만 시청될 수 있는 것을 말하는 라이센스에 따라 사용자가 그의 메모리 디바이스에 2시간 영화를 다운로드하는 상황을 고려하자. 서비스 제공자는 24 시간 기간 후 사용자가 영화를 시청할 수 없지만, 그는 새로운 타임 스탬프를 얻기 위하여 네트워크에 접속함으로써 정상 사용자에게 불편을 주기를 원하지 않을 수 있다. 따라서, 서비스 제공자는 액티브 시간이 4시간 이상이면(2시간 영화를 2번 시청하기 위하여 요구된 액티브 시간의 양) 새로운 타임 스탬프를 요구하는 라이센스 상에 TUP를 배치하기를 결정할 수 있다. DRM 모듈(207)이 라이센스를 유효화하기 위하여 시도할 때 액티브 시간이 4시간보다 크면, 사용자는 영화를 시청할 수 없을 것이다 - 필수적 이지는 않지만 라이센스가 만료되기 때문에, 그러나 새로운 타임 스탬프가 필요하기 때문에. (액티브 시간 대신 또는 부가하여, 전력 사이클의 수는 TUP에 사용될 수 있다. 예를 들어, 평균 사용 패턴을 바탕으로, 10 또는 그 이상의 전력 사이클들은 메모리 디바이스가 24 시간 이상 사용되었다는 것을 가리킬 수 있다). 만약 새로운 타임 스탬프로 생성된 시간 평가가 유효한 경우 라이센스를 가리키면, DRM 모듈(207)은 영화가 다시 플레이되게 할 것이다.For example, consider a situation where a user downloads a two hour movie to his memory device according to a license that states that the movie can only be watched for 24 hours. The service provider may not want the user to watch the movie after the 24 hour period, but he does not want to inconvenience the normal user by connecting to the network to get a new time stamp. Thus, the service provider may decide to place a TUP on a license that requires a new time stamp if the active time is 4 hours or more (the amount of active time required to watch a 2 hour movie twice). If the active time is greater than 4 hours when the DRM module 207 attempts to validate the license, the user will not be able to watch the movie-not necessarily because the license expires, but because a new time stamp is required. (Instead of or in addition to the active time, the number of power cycles may be used for the TUP. For example, based on the average usage pattern, 10 or more power cycles may indicate that the memory device has been used for more than 24 hours.) . If the time estimate generated with the new time stamp is valid and points to the license, the DRM module 207 will cause the movie to be played again.

라이센스당 TUP가 구성되게 함으로써, TUP는 컨텐트가 맞춤 제작될 수 있다. 따라서, 24 시간 후 영화를 만료하는 대신, 영화가 1주일 후 만료되면, 라이센스상 시간 허용 오차는 다르게 설정될 수 있다. 예를 들어, 메모리 디바이스가 평균적으로 하루에 10 시간 사용되는 것을 서비스 제공자가 평가면, 서비스 제공자는 액티브 시간의 70 시간 후(즉, 하루 10시간 곱하게 7일) 시간 업데이트를 트리거하기 위하여 라이센스내 TUP를 설정할 수 있다. 다른 실시예로서, 2시간 영화 대신, 컨텐트가 일단 시청되어야 하는 3분 페이-퍼-뷰(pay-per-view) 비디오라면, TUP는 새로운 타임 스탬프가 액티브 시간의 3분 후 요구되도록 설계될 수 있다.By having a TUP per license configured, the TUP can be customized for its content. Thus, if the movie expires after one week, instead of expiring the movie after 24 hours, the time tolerance on the license may be set differently. For example, if the service provider evaluates that the memory device is used on average 10 hours a day, the service provider may be in license to trigger a time update after 70 hours of active time (i.e., 7 times 10 hours a day). TUP can be set. As another example, instead of a two-hour movie, if the content is a three-minute pay-per-view video that must be watched once, the TUP can be designed such that a new time stamp is required after three minutes of active time. have.

서비스 제공자의 비지니스 모델은 TUP를 지정하는데 고려할 수 있다. 예를 들어, 현재, 달마다 가입 서비스는 보호된 음악에 권리를 배분하기 위한 대중적 비지니스 모델이다. 음악 가입 서비스에서, 사용자는 서비스 제공자의 웹 사이트로부터 원하는 음악을 많이 다운로드하고 그가 한달 동안 원하는 음악을 여러 번 플레이하게 한다. 그달 후, 사용자는 라이센스를 갱신하기 위하여 그의 가입을 갱신할 필요가 있을 것이다; 그렇지 않으면, 라이센스를 만료하고, 사용자는 그의 메모리 디바이스에 저장된 음악을 더 이상 플레이할 수 없을 것이다. 보다 많은 노래들에 대한 서비스 제공자의 웹 사이트에 빈번하게 방문하는 사용자들은 웹 사이트에 연결할 때 새로운 타임 스탬프를 수신할 것이다; 따라서, 메모리 디바이스들은 보다 정확한 시간 평가를 제공할 것이다. 그러나, 비교적 많은 양의 음악을 다운로드하는 사용자들은 달마다 라이센스를 만료하기 전에 서비스 제공자의 웹 사이트에 필수적으로 재접속할 수 없다. 사용자가 궁극적으로 보다 많은 음악을 위해 재접속할 때, 서비스 제공자는 그가 라이센스 기간들 외측의 음악을 플레이하는 시간 동안 사용자에게 과금할 수 있다. 이로 인해, 비지니스 모델로서, 달마다 가입에 대한 서비스 제공자는 페이-퍼-유스(pay-per-use) 컨텐트의 서비스 제공자와 다른 시간 허용 오차를 원할 수 있고, 여기서 사용자는 그가 페이-퍼-유스 컨텐트를 수신한 경우 웹 사이트로 다시 진행하지 않을 수 있다. 이런 상황에서, 사용자가 페이-퍼-유스 서비스보다 달마다 가입 서비스에서 보다 많은 음악을 위해 다시 되돌아가기 쉽기 때문에, 서비스 제공자는 비록 그가 궁극적으로 웹 사이트로 리턴하더라도 새로운 타임 스탬프를 얻게 하는 요구함으로써 고객을 당황하게 할 수 있는 엄격한 시간 허용 오차를 원하지 않을 수 있다. 덜 엄격한 시간 허용 오차를 가지는 것은 서비스 제공자의 웹 사이트로 결코 되돌아가지 않는 고객들이 라이센스의 1달 기간보다 더 오랜 동안(예를 들어, 실제 시간의 1달 대신 액티브 시간의 1달 동안) 음악을 플레이할 수 있을 것이다. 그러나, 고려하여, 서비스 제공자는 상기 인증되지 않은 사용이 고객들 리턴 불편 및 당황스러움을 방지하기 위하여 허용 가능한 희생이 있다는 것을 결정할 수 있다. The business model of the service provider can be considered in specifying the TUP. For example, at present, the monthly subscription service is a popular business model for allocating rights to protected music. In a music subscription service, a user downloads a lot of the desired music from the service provider's website and lets him play the desired music several times during the month. After that month, the user will need to renew his subscription to renew the license; Otherwise, the license expires and the user will no longer be able to play the music stored on his memory device. Users who frequently visit the service provider's website for more songs will receive a new time stamp when connecting to the website; Thus, memory devices will provide a more accurate time estimate. However, users downloading a relatively large amount of music are not necessarily able to reconnect to the service provider's website before the license expires every month. When the user ultimately reconnects for more music, the service provider may charge the user for the time he plays music outside of the license terms. Because of this, as a business model, a service provider for a subscription on a monthly basis may want a different time tolerance than the service provider of pay-per-use content, where the user is responsible for the pay-per-use content You may not be able to proceed back to the website if you receive a. In this situation, because the user is more likely to go back for more music on the subscription service on a monthly basis than the pay-per-use service, the service provider may ask the customer by asking for a new time stamp even though he ultimately returns to the website. You may not want a tight time tolerance that can be embarrassing. Having a less stringent time tolerance allows customers who never return to the service provider's website to play music for longer than the license's one month period (eg, one month of active time instead of one month of actual time). You can do it. However, in consideration, the service provider may determine that the unauthorized use is an acceptable sacrifice in order to prevent customers return inconvenience and embarrassment.

다른 실시예로서, 사용자가 그의 셀 전화를 사용하여 메모리 디바이스로부터 오디오 또는 비디오 컨텐트를 플레이할 때 서비스 제공자가 셀 전화에 광고하는 포인트를 제공하기를 원하는 비지니스 모델을 고려하자. 만약 포인트 광고가 컨텐트가 플레이되는 시간에서 셀 전화의 위치 근처에 있는 저장소들에 관련된 광고들을 포함하면, 컨텐트가 플레이될 때 호스트 디바이스가 네트워크에 접속될 필요가 있다; 그렇지 않으면, 위치-지정 포인트 광고는 전달될 수 없다. 이런 발생을 보장하기 위하여, 컨텐트의 TUP는 사용자가 새로운 타임 스탬프를 얻도록 네트워크에 접속하는 것을 보장하기 위하여 매우 작은 양(예를 들어, 액티브 시간의 1분)으로 설정될 수 있다. 일단 사용자가 네트워크에 접속하면, 네트워크는 셀 전화의 위치를 알고 적당한 광고 컨텐트를 셀 전화에 푸쉬할 수 있다. 다른 한편, 컨텐트가 얼마나 많이 플레이되는가를 앎으로써 서비스 제공자는 돈을 만들 수 있는 경우, 시간 허용 오차는 덜 엄격할 수 있다.As another embodiment, consider a business model where a user wants to provide a point for a service provider to advertise a cell phone when a user uses his cell phone to play audio or video content from a memory device. If the point ad includes advertisements related to repositories near the location of the cell phone at the time the content is played, then the host device needs to be connected to the network when the content is played; Otherwise, location-specific point advertisements may not be delivered. To ensure this occurrence, the TUP of the content may be set in a very small amount (eg, one minute of active time) to ensure that the user connects to the network to obtain a new time stamp. Once the user connects to the network, the network knows the location of the cell phone and can push the appropriate advertising content to the cell phone. On the other hand, if the service provider can make money by knowing how much content is played, the time tolerance may be less stringent.

상기 예들에 의해 도시된 바와 같이, 라이센스 파일들상에 구성할 수 있는 TUP들의 사용을 통해, 특정 컨텐트의 서비스 제공자는 그가 타임 스탬프 업데이트 동안 호스트 디바이스를 네트워크에 접속시키게 요구함으로써 고객들을 당황스럽게 하지 않도록 적당하고 생각하는 시간 업데이트를 밸런싱 할 때마다 알릴 수 있다. 이 실시예에서 메모리 디바이스가 다중 목적, 다중 TUP들을 가진 다중-애플리케이션 메모리 디바이스이기 때문에, 메모리 디바이스상 하나의 서비스는 특정 시간 후 셧다운될 수 있고, 메모리 디바이스상 다른 서비스들이 여전히 인에이블되는 것은 주지되어야 한다. 즉, 비록 인증되었지만 플레이어는 메모리 디바이스상 특정 컨텐트를 플레이할 수 있고 그러나 다른 컨텐트의 라이센스들과 연관된 다른 TUP들로 인해 새로운 타임 스탬프가 얻어지지 않으면 메모리 디바이스상 다른 컨텐트를 플레이할 수 없게 할 수 있다. As shown by the above examples, through the use of configurable TUPs on license files, the service provider of a particular content does not embarrass customers by requiring him to connect the host device to the network during a time stamp update. You can be notified whenever you balance the time updates you think are appropriate. Since the memory device in this embodiment is a multi-purpose, multi-application memory device with multiple TUPs, it should be noted that one service on the memory device can be shut down after a certain time and the other services on the memory device are still enabled. do. That is, although authenticated, the player may play certain content on the memory device but may not be able to play other content on the memory device unless a new time stamp is obtained due to different TUPs associated with licenses of other content. .

상기 도시된 바와 같이, 이들 실시예들에서, 메모리 디바이스는 두 개의 독립된 구성을 포함한다: 중앙 보안 시스템 및 중앙 보안 시스템으로부터 분리된 하나 또는 그 이상의 애플리케이션들. (애플리케이션이 중앙 보안 시스템으로부터 분리되기 때문에, 애플리케이션은 때때로 "확장" 또는 "내부 확장"이라 여기에서 불릴 수 있다). 도 3에 도시된 실시예에서, 애플리케이션은 DRM 모듈(207) 형태를 가진다. 그러나, 다른 애플리케이션들을 사용될 수 있고, 예를 들어 e-무역, 뱅킹, 신용 카드, 전자 화폐, 수명 측정, 액세스 제어, 퍼스널 데이터, 또는 보안 이메일 기능이 제공될 수 있다. 또한 단일 애플리케이션만이 도 3에서 메모리 디바이스(200)에 도시되는 되었지만, 메모리 디바이스가 몇몇 애플리케이션들(예를 들어, DRM 모듈 및 e-무역 모듈)을 가질 수 있다는 것은 주지되어야 한다.As shown above, in these embodiments, the memory device includes two independent configurations: a central security system and one or more applications separate from the central security system. (Since the application is isolated from the central security system, the application can sometimes be called "extended" or "internal extension" here). In the embodiment shown in FIG. 3, the application takes the form of a DRM module 207. However, other applications may be used, for example e-trade, banking, credit cards, electronic money, life measurement, access control, personal data, or secure email functions may be provided. It should also be noted that although only a single application is shown in the memory device 200 in FIG. 3, the memory device may have several applications (eg, a DRM module and an e-trade module).

중앙 보안 시스템은, ACR들의 사용을 통해 메모리 디바이스(예를 들어, DRM 에이전트) 내 애플리케이션들을 통해 메모리 디바이스에 저장된 데이터의 보호된 피스들에 액세스하기 위하여 시도하는 엔티티를 인증한다. 일단 엔티티가 메모리 디바이스를 인증하면, 보안된 세션은 엔티티 및 상기 엔티티를 인증하기 위하여 사용된 ACR에 의해 지정된 애플리케이션 사이에서 개방된다. 그 다음 엔티티는 보호된 데이터에 액세스하기 위하여 연관된 애플리케이션에 명령들/요청들을 전송할 수 있다. 이런 방식으로, 중앙 보안 시스템은 메모리 디바이스에 메인 게이트키퍼로서 작동한다. 상기된 11/557,028 특허 출원에 상세히 기술된 바와 같이, 중앙 보안 시스템은 메모리 디바이스(200)에서 실행하는 다양한 애플리케이션들을 분리할 수 있어서, 하나의 애플리케이션은 다른 애플리케이션과 연관된 데이터에 액세스할 수 없다.The central security system authenticates the entity attempting to access protected pieces of data stored on the memory device through applications in the memory device (eg, DRM agent) through the use of ACRs. Once an entity authenticates a memory device, a secured session is opened between the entity and the application specified by the ACR used to authenticate the entity. The entity can then send commands / requests to the associated application to access the protected data. In this way, the central security system acts as the main gatekeeper to the memory device. As described in detail in the 11 / 557,028 patent application described above, the central security system can separate various applications running on the memory device 200 such that one application cannot access data associated with another application.

데이터가 적당한 인증된 엔티티들에 의해서만 액세스되도록 중앙 보안 시스템이 액세스 제어 메카니즘을 제공하고 메모리 디바이스에 저장된 데이터를 보호하는 동안, 중앙 보안 시스템 자체는 보호하는 바로 그 데이터를 이해 및 처리할 수 없다. 보호된 데이터를 이해하고 처리할 수 있는 메모리 디바이스에서 실행하는 애플리케이션들이 있다. 예를 들어, 보호된 데이터가 DRM 라이센스이면, DRM 에이전트 - 중앙 보안 시스템이 아님 -는 라이센스를 유효화할 수 있다. 따라서, 중앙 보안 시스템은 구성할 수 있는 애플리케이션 무관 툴박스로 고려될 수 있다. 동작시, 서비스 제공자는 메모리 디바이스상에 애플리케이션을 배치하고 애플리케이션과 특정 엔티티를 연관시키는 ACR을 정의한다. 중앙 보안 시스템의 시점에서, 어떤 애플리케이션이 수행되는지(예를 들어, 애플리케이션이 DRM 라이센스 유효화, e-무역 기능, 등등)를 아는 것이 아니고 단지 특정 ACR에 인증된 엔티티들이 ACR에서 정의된 애플리케이션과 통신하도록 허용된다. 일단 엔티티가 중앙 보안 시스템에 의해 인증되면, 중앙 보안 시스템은 엔티티 및 애플리케이션 사이의 보안 채널을 개방한다.While the central security system provides an access control mechanism and protects the data stored in the memory device so that the data is accessed only by appropriate authorized entities, the central security system itself cannot understand and process the very data it protects. There are applications running on memory devices that can understand and process protected data. For example, if the protected data is a DRM license, the DRM agent-not the central security system-can validate the license. Thus, a central security system can be considered an application-independent toolbox that can be configured. In operation, a service provider defines an ACR that places an application on a memory device and associates the application with a particular entity. At the point of view of the central security system, it is not known what application is being performed (e.g., the application is validating DRM licenses, e-trade functions, etc.) but merely allowing entities authenticated to a particular ACR to communicate with the applications defined in the ACR. Is allowed. Once an 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)은 다양한 엔티티들을 인증하기 위해 비대칭 ACR들(201,202)에 시간을 제공할 뿐 아니라, 라이센스 유효성을 검증하기 위하여 DRM 모듈(207)에 시간을 제공할 수 있다. 도 8과 관련하여 하기 될 바와 같이, 몇몇 상황들에서, 메모리 디바이스상 애플리케이션은 메모리 디바이스의 타임 모듈로부터 시간에 부가하여 또는 대신 호스트 타임을 사용하기를 선택할 수 있다.In some situations, the central security system and application need to know the time. For example, the central security system does not need to know the time for time-based authentication (eg asymmetric authentication), and the application needs to know the time for time-based operation (eg DRM license validation). There can be. As noted above, the memory device has a central time module that can provide time to both the central security system and the applications running on the memory device. For example, referring to FIG. 3, module 204 not only provides time to asymmetric ACRs 201 and 202 to authenticate various entities, but also provides time to DRM module 207 to validate licenses. can do. As will be discussed below with respect to FIG. 8, in some situations, an application on a memory device may choose to use host time in addition to or instead of time from the memory device's time module.

도 8은 호스트 디바이스(700)와 통신하는 메모리 디바이스(600)를 도시한다. 호스트 디바이스(700)는 엔티티(여기서, 플레이어 710)를 포함하고 시간(720)을 제공하기 위한 몇몇 메카니즘(예를 들어, 배터리 백업 클럭)을 가진다. 이 실시예에서, 메모리 디바이스(600)는 대칭 ACR(610)(비록 비대칭 ACR이 사용될 수 있지만), 타임 모듈(620), DRM 모듈(630), 보호된 컨텐트(640), 및 보호된 컨텐트(640)를 위한 라이센스(650)를 가진다. (도 8에서, 메모리 디바이스의 애플리케이션은 DRM 모듈(630)이다. 다른 타입의 애플리케이션들이 사용될 수 있고, 하나 이상의 애플리케이션이 메모리 디바이스 내에서 실행될 수 있다는 것이 주지된다). 플레이어(710)가 대칭 ACR(610)을 사용하여 메모리 디바이스(600)에 인증할 때, 보안 채널(660)은 대칭 ACR(610)에서 설정된 파라미터들에 따라 플레이어(710) 및 DRM 모듈(630) 사이에 설정된다. DRM 모듈(630) 및 플레이어(710)는 서비스 제공자가 DRM 모듈(630)을 플레이어(710)와 연관시키기 위하여 대칭 ACR(610)을 정의하기 때문에 서로 알려지지 않는다. 따라서, 동일한 그룹의 카운터파트(counterpart) 멤버들이기 때문에 DRM 모듈(630) 및 플레이어(710) 사이의 특정 레벨의 신뢰성이 있다. 이런 신뢰성을 바탕으로, DRM 모듈(630)이 DRM 라이센스 유효화를 수행하기 위하여 시간의 소스로서 플레이어(710)로부터 호스트 타임(720)을 허용하도록 프로그램될 수 있다. 따라서, DRM 모듈(630)은 DRM 라이센스 유효화를 수행할 수 있는 두 개의 독립적인 시간의 소스들을 가진다: 호스트 타임(720) 및 메모리 디바이스의 중앙 타임 모듈(620)로부터의 시간. 이들 시간 소스들 각각과 연관된 장점들 및 단점들이 있다. 메모리 디바이스의 타임 모듈(620)이 계속하여 시간의 트랙을 추적하지 않기 때문에, 시간에 따라 모듈(620)은 배터리 백업 연속 클럭에 의해 제공된 호스트 타임(720)에서 정확하지 않을 수 있다. 다른 한편, 상기된 모든 보안 예방책들로 인해, 시간에 따라 모듈(620)은 특히 호스트 디바이스(700)의 사용자가 간단한 사용자 인터페이스를 사용하여 호스트 타임(720)을 변경할 수 있다면, 호스트 타임(720)보다 안전할 수 있다.8 illustrates a memory device 600 in communication with a host device 700. Host device 700 includes an entity (here player 710) and has some mechanism (eg, a battery backup clock) for providing time 720. In this embodiment, memory device 600 includes symmetric ACR 610 (although asymmetric ACR may be used), time module 620, DRM module 630, protected content 640, and protected content ( License 650 for 640. (In Figure 8, the application of the memory device is a DRM module 630. It is noted that other types of applications may be used, and one or more applications may be executed within the memory device). When the player 710 authenticates to the memory device 600 using the symmetric ACR 610, the secure channel 660 establishes the player 710 and the DRM module 630 according to the parameters set in the symmetric ACR 610. Is set between. The DRM module 630 and the player 710 are not known to each other because the service provider defines a symmetric ACR 610 to associate the DRM module 630 with the player 710. Thus, there are certain levels of reliability between the DRM module 630 and the player 710 because they are counterpart members of the same group. Based on this reliability, DRM module 630 may be programmed to allow host time 720 from player 710 as a source of time to perform DRM license validation. Thus, the DRM module 630 has two independent sources of time that can perform DRM license validation: host time 720 and time from the central time module 620 of the memory device. There are advantages and disadvantages associated with each of these time sources. Because the time module 620 of the memory device does not continue to track the track of time, depending on the time module 620 may not be accurate at the host time 720 provided by the battery backup continuous clock. On the other hand, due to all the security precautions described above, over time module 620 may be able to change host time 720, particularly if a user of host device 700 can change host time 720 using a simple user interface. It can be safer.

메모리 디바이스(600)(DRM 모듈 630 같은)에서 실행하는 애플리케이션은 시간-기반 동작을 위한 시간 평가를 생성하기 위하여 원하는 방식으로 이들 두 개의 다른 시간 소스들을 사용하도록 프로그램될 수 있다. (그러나, 애플리케이션이 호스트 타임 720을 사용하여 타임 모듈 620을 업데이트할 수 없는 것이 바람직하다). 예를 들어, 애플리케이션은 타임 모듈(620)로부터 시간 대신 호스트 타임(720)을 항상 사용하거나 호스트 타임(720) 대신 타임 모듈(620)로부터 시간을 항상 사용하도록 프로그램될 수 있다. 다른 실시예로서, 애플리케이션은 호스트 타임(720)의 느림(또는 이름) 및 타임 모듈(620)로부터의 시간을 사용하도록 프로그램될 수 있다. 애플리케이션은 몇몇 방식(예를 들어, 호스트 타임 720 및 타임 모듈 620으로부터의 시간의 평균을 취함, 등등) 양쪽 시간 소스들을 사용하여 시간 평가를 생성하도록 프로그램될 수 있다. 다른 예로서, 애플리케이션은 호스트 디바이스(700)에 관한 정보를 바탕으로 사용하기 위해 어느 시간 소스를 사용할지를 결정할 수 있다. 애플리케이션은 인증 처리(예를 들어, 비대칭 인증이 사용되면, 인증 알고리듬은 호스트 디바이스 700과 연관된 개별 및 그룹 아이덴티티들의 애플리케이션을 알릴 수 있다)를 통하여 호스트 디바이스의 타입을 학습할 수 있다. 이런 정보는 몇몇 호스트 디바이스들이 다른 것들보다 안전할 수 있기 때문에 중요할 수 있다. 예를 들어, 호스트 디바이스가 PC이면, 클럭은 소프트웨어 애플리케이션 상 간단한 사용자 인터페이스를 통하여 쉽게 조종될 수 있다. (비교적 신뢰할 수 없는 호스트 디바이스로부터 호스트 타임을 신뢰하지 못하는 것 외에, 애플리케이션은 예를 들어 컨텐트 키들, 라이센스 값들 또는 기간들, 또는 라이센스 변경 권리를 사용하여 호스트 디바이스상에서 실행하는 엔티티를 신뢰할 수 없다. 상기 상황에서, DRM 에이전트는 메모리 디바이스의 컨텐트를 호스트 디바이스에 흘러가게 할 수 있다(호스트 디바이스에 인크립션 키들 및 컨텐트를 제공하는 대신). 그러나, 만약 호스트가 MP3 플레이어 같은 폐쇄된 시스템이면, 호스트의 클럭은 조종하기가 보다 어려울 수 있다. 따라서, 호스트 디바이스(600)에서 실행하는 애플리케이션은 호스트 디바이스(700)가 PC일 때보다 호스트 디바이스(700)가 MP3 플레이어일 때보다 호스트 타임(720)을 신뢰할 수 있다.An application running on memory device 600 (such as DRM module 630) may be programmed to use these two different time sources in a desired manner to generate a time estimate for time-based operation. (However, it is desirable for the application to not be able to update the time module 620 using host time 720). For example, an application may be programmed to always use host time 720 instead of time from time module 620 or always use time from time module 620 instead of host time 720. As another example, an application may be programmed to use the slow (or name) of host time 720 and the time from time module 620. The application can be programmed to generate a time estimate using both time sources (eg, taking the average of time from host time 720 and time module 620, etc.). As another example, an application may determine which time source to use for use based on information about the host device 700. The application may learn the type of the host device through an authentication process (eg, if asymmetric authentication is used, the authentication algorithm may inform the application of the individual and group identities associated with the host device 700). This information may be important because some host devices may be more secure than others. For example, if the host device is a PC, the clock can be easily manipulated through a simple user interface on a software application. (In addition to trusting host time from a relatively untrusted host device, an application cannot trust an entity running on the host device using, for example, content keys, license values or durations, or license change rights.) In a situation, the DRM agent may cause the content of the memory device to flow to the host device (instead of providing encryption keys and content to the host device), however, if the host is a closed system such as an MP3 player, the host's clock may It may be more difficult to steer, therefore, an application running on host device 600 may be more reliable at host time 720 than when host device 700 is an MP3 player than when host device 700 is a PC. .

일 실시예에서, 플레이어(710)는 노래를 플레이하기 위한 요청을 DRM 모듈(630)에 전송할 때 호스트 타임(720)을 DRM 모듈(630)에 푸쉬한다. DRM 모듈(630)은 그 다음 상기된 바와 같이 호스트 타임(720)을 사용할지 타임 모듈(620)로부터 시간을 사용할지를 결정한다. 바람직하게, 호스트 타임(720)은 추후 세션들 동안 절대 현재 시간 측정값으로서 사용되는 대신 비교적 짧은 간격인 특정 로그인 세션 동안만 사용될 것이다. 선택적으로, 호스트 타임(720)은 애플리케이션에 의해 미래 사용을 위해 저장될 수 있고, 상기 논의된 "시간-연장" 및 다른 메카니즘들은 (선택적으로) 그 시간의 정확도를 개선하기 위해 사용된다. 그러나, 호스트 타임이 애플리케이션의 특정 시간-바탕 동작만을 위해 사용되고 타임 모듈(620)의 시간을 업데이트하기 위하여 사용되지 않는 것은 바람직하다(왜냐하면 애플리케이션은 "연장"이고 중앙 보안 시스템과 같은 신뢰성 있는 캠프의 일부가 아니기 때문이다). 바람직하게, 타임 모듈(620) 내 시간은 상기된 바와 같이 신뢰성 있는 타임 서버들(중앙 보안 시스템과 동일한 신뢰성 있는 캠프의 일부임)을 사용해서만 업데이트된다. 몇몇 애플리케이션들이 메모리 디바이스(600)에서 실행될 때, 각각의 애플리케이션이 두 개의 시간 소스들을 가질 수 있다는 것은 주지되어야 한다: 타임 모듈(620)로부터의 시간 및 애플리케이션과 통신하는 엔티티를 동작시키는 호스트 디바이스로부터의 시간. 그러나, 하나의 애플리케이션과 연관된 호스트 타임이 그 애플리케이션에만 사용되고 다른 호스트 디바이스들과 연관된 다른 애플리케이션들에 사용되지 않는 것이 바람직할 수 있다.In one embodiment, player 710 pushes host time 720 to DRM module 630 when sending a request to DRM module 630 to play a song. The DRM module 630 then determines whether to use the host time 720 or the time from the time module 620 as described above. Preferably, host time 720 will be used only during a particular login session, which is a relatively short interval, instead of being used as an absolute current time measure during later sessions. Optionally, host time 720 may be stored for future use by the application, and the "time-extension" and other mechanisms discussed above are (optionally) used to improve the accuracy of that time. However, it is desirable that the host time is used only for a specific time-based operation of the application and not used to update the time of the time module 620 (because the application is "extended" and part of a reliable camp, such as a central security system). Is not). Preferably, the time in time module 620 is only updated using trusted time servers (which are part of the same trusted camp as the central security system) as described above. It should be noted that when some applications run on the memory device 600, each application may have two time sources: from the time module 620 and from the host device operating the entity communicating with the application. time. However, it may be desirable for a host time associated with one application to be used only for that application and not for other applications associated with other host devices.

상기된 바와 같이, 메모리 디바이스(600)(DRM 모듈 630 같은)에서 실행하는 애플리케이션은 타임 모듈(620)로부터의 시간과 호스트 타임(720)을 비교하고 두 시간들의 느림(또는 이름)을 사용하도록 프로그램될 수 있다. 예를 들어, 호스트 타임(720)은 시간 비대칭이 호스트 타임(720)에서 발생하는 충분히 긴 시간 동안 호스트(700)가 타임 서버에 접속할 수 없거나 호스트 클럭이 해킹되었기 때문에, 타임 모듈(620)로부터의 시간 보다 이를 수 있다. 또한 상기된 바와 같이, 호스트 타임(720)은 애플리케이션에 의해 미래 사용을 위해 저장될 수 있다. 이들 생각들을 결합하여, 호스트 타임(720)은 다른 호스트 디바이스로부터 수신된 시간과 비교하기 위하여 저장 및 추후 사용될 수 있다(단독으로 또는 타임 모듈 620로부터 시간과 함께). 비교를 바탕으로, 메모리 디바이스는 시간 바탕 동작을 수행하기 위하여 현재 호스트 디바이스로부터의 시간을 사용할지 이전 호스트 디바이스로부터 저장된 시간을 사용할지를 결정할 수 있다. 예를 들어, 메모리 디바이스는 만약 시간 바탕 동작이 동작보다 "이르지 않으면" 두 시간들 중 이름을 취하고 만약 시간 바탕 동작 시간들이 동작보다 "느리지 않으면" 두 개의 시간들 중 느림을 취하도록 프로그램될 수 있다. 이런 방식으로, 다른 신뢰성 있는 호스트 디바이스들로부터 수신된 타임 스탬프들은 단일 타임 서버에 관련하여 단일 다중-호스트 안티-롤백(anti-rollback) 메카니즘을 위한 기준으로서 사용될 수 있다.As noted above, an application running on memory device 600 (such as DRM module 630) may be programmed to compare the time from time module 620 with host time 720 and use the slower (or name) of the two times. Can be. For example, the host time 720 may be from the time module 620 because the host 700 may not be able to contact the time server or the host clock has been hacked for a sufficiently long time that time asymmetry occurs at the host time 720. It can be earlier than time. As also noted above, host time 720 may be stored for future use by the application. Combining these ideas, host time 720 may be stored and later used (alone or with time from time module 620) to compare with the time received from another host device. Based on the comparison, the memory device may determine whether to use the time from the current host device or the time stored from the previous host device to perform the time based operation. For example, the memory device may be programmed to take the name of two times if the time based operation is "earlier" than the operation and take the slower of the two times if the time based operation times are "slower" than the operation. . In this way, time stamps received from other trusted host devices can be used as a reference for a single multi-host anti-rollback mechanism in relation to a single time server.

상기된 바와 같이, 비-시간 바탕 인증 시스템(대칭 인증 같은)은 호스트 디바이스를 인증하기 위하여 사용될 수 있다. 이것은 애플리케이션의 시간 바탕 동작(예를 들어, DMR 동작)이 인증 타임 서버와 무관하게 한다. 즉, 호스트 디바이스 또는 DRM 서버로부터의 시간만이 사용되기 때문에, 애플리케이션의 시간 바탕 동작은 인증 타임 서버 또는 메모리 디바이스의 타임 모듈로부터 시간에 의존하지 않는다. 따라서, 어떤 이유든지, 인증 타임 서버에 대해 문제가 있거나 만약 시간 바탕 애플리케이션이 인증 타임 서버를 바탕으로 시간을 사용하도록 선택하지 않으면, 시간 바탕 애플리케이션은 호스트 타임을 사용하여 그 동작을 수행할 수 있다.As noted above, a non-time based authentication system (such as symmetric authentication) can be used to authenticate the host device. This makes the time-based operation of the application (eg, DMR operation) independent of the authentication time server. That is, because only time from the host device or DRM server is used, the time-based operation of the application does not depend on time from the time module of the authentication time server or memory device. Thus, for any reason, if there is a problem with the authentication time server or if the time-based application does not choose to use time based on the authentication time server, the time-based application may use host time to perform its operation.

상기 임의의 실시예들이 단독으로 또는 결합하여 함께 사용될 수 있다는 것은 주지되어야 한다. 이들 실시예들에 사용될 수 있는 다른 실시예들은 참조로써 통합된 특허 출원들에 기술된다. 게다가, 이들 실시예들이 SanDisk Corporation에 의한 TrustedFlashTM 메모리 디바이스에서 실행되는 것이 현재 바람직하지만, 이들 실시예들이 임의의 타입의 메모리 디바이스에 사용될 수 있다는 것이 이해되어야 한다. 또한, 이들 실시예들은 부정확한 클럭을 가지며 시간을 알거나 사용할 필요가 있는 일반적인 문제에 부닥치는 경우 비메모리 디바이스 필드들에 사용될 수 있다. 부가적으로, 상기된 액트들의 일부 또는 모두는 배타적으로 메모리 디바이스 대신 호스트 디바이스(또는 몇몇 다른 장치)에서 수행될 수 있다.It should be noted that any of the above embodiments may be used alone or in combination. Other embodiments that can be used in these embodiments are described in patent applications incorporated by reference. In addition, while these embodiments are currently preferred to be implemented in a TrustedFlash memory device by SanDisk Corporation, it should be understood that these embodiments may be used with any type of memory device. In addition, these embodiments may be used for non-memory device fields when faced with the common problem of having an incorrect clock and needing to know or use time. Additionally, some or all of the above described acts may be performed exclusively at the host device (or some other apparatus) instead of the memory device.

본 발명이 취할 수 있는 선택된 형태들의 도시와 본 발명의 정의로서가 아니고 상기 상세한 설명이 이해되는 것이 의도된다. 다음 청구항들은 본 발명의 범위를 정의하고자 하는 모든 등가물들을 포함한다. 청구항들에서 열거된 액트들은 임의의 순서로 수행될 수 있다 - 그들이 열거되는 순서에 필수적이지 않음. 최종적으로, 여기에 기술된 임의의 바람직한 실시예들의 임의의 측면이 단독으로 또는 서로 결합하여 사용될 수 있다는 것이 주지되어야 한다.It is intended that the above detailed description be understood and not as a definition of the invention and as illustrations of selected forms that the invention may take. The following claims are intended to cover all equivalents intended to define the scope of the invention. The acts listed in the claims may be performed in any order-not essential to the order in which they are listed. Finally, it should be noted that any aspect of any of the preferred embodiments described herein may be used alone or in combination with each other.

100; 타임 서버, 110; DRM 서버, 80; 인터넷, 270; 하드웨어 타이머 블록, 254; 호스트 DMA, 252; 크립토-엔진, 256; 플래시 DMA, 300; 호스트 디바이스, 210; 플래시 메모리, 303; 애플리케이션, 301; 플레이어, 302; 저장 애플리케이션, 203; 대칭 ACR, 201; 비대칭 ACR, 202; 비대칭 ACR, 204; 타임 모듈, 205; 보호된 컨텐트, 207; DRM 모듈, 206; 보호된 컨텐트에 대한 라이센스100; Time server 110; DRM server, 80; Internet, 270; Hardware timer block, 254; Host DMA, 252; Crypto-engines, 256; Flash DMA, 300; Host device 210; Flash memory, 303; Application, 301; Player, 302; Storage application, 203; Symmetric ACR, 201; Asymmetric ACR, 202; Asymmetric ACR, 204; Time module 205; Protected content, 207; DRM module, 206; License for Protected Content

Claims (19)

메모리 디바이스상 애플리케이션으로 시간 바탕 동작을 수행하기 위한 방법으로서,
메모리 디바이스상 애플리케이션에서,
상기 메모리 디바이스에 의해 인증된 엔티티로부터 시간 바탕 동작을 수행하기 위한 요청을 수신하는 단계로서, 상기 엔티티는 호스트 디바이스에서 실행되는, 단계와,
상기 시간 바탕 동작을 수행하기 위하여 상기 메모리 디바이스상 시간 모듈로부터의 시간 대신 상기 호스트 디바이스로부터의 시간을 선택하는 단계와,
상기 시간 바탕 동작을 수행하기 위하여 상기 호스트 디바이스로부터의 시간을 사용하는 단계를
포함하는, 메모리 디바이스상 애플리케이션으로 시간 바탕 동작을 수행하기 위한 방법.
A method for performing a time-based operation with an application on a memory device,
In an application on a memory device,
Receiving a request to perform a time-based operation from an entity authenticated by the memory device, wherein the entity is executed at a host device;
Selecting a time from the host device instead of a time from a time module on the memory device to perform the time based operation;
Using the time from the host device to perform the time based operation
And a time based operation with an application on the memory device.
제 1항에 있어서, 상기 호스트 디바이스로부터의 시간은, 상기 호스트 디바이스로부터의 시간이 상기 시간 모듈로부터의 시간보다 느린 경우에만, 상기 시간 모듈로부터의 시간 대신 선택되는, 메모리 디바이스상 애플리케이션으로 시간 바탕 동작을 수행하기 위한 방법.2. The time-based operation of an application on a memory device as recited in claim 1 wherein time from the host device is selected instead of time from the time module only if time from the host device is slower than time from the time module. How to do it. 제 1항에 있어서, 상기 호스트 디바이스의 인증을 결정하는 단계를 더 포함하고, 상기 호스트 디바이스로부터의 시간은, 상기 호스트 디바이스가 신뢰성 있는 것으로 결정되는 경우에만, 상기 시간 모듈로부터의 시간 대신 선택되는, 메모리 디바이스상 애플리케이션으로 시간 바탕 동작을 수행하기 위한 방법.The method of claim 1, further comprising determining an authentication 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. A method for performing time-based operations with an application on a memory device. 제 1항에 있어서, 상기 호스트 디바이스로부터의 시간은 상기 시간 모듈로부터의 시간보다 상대적으로 더 정확하고, 상기 시간 모듈로부터의 시간은 상기 호스트 디바이스로부터의 시간보다 비교적 더 안전한, 메모리 디바이스상 애플리케이션으로 시간 바탕 동작을 수행하기 위한 방법.The time on application as recited in claim 1 wherein time from the host device is relatively more accurate than time from the time module, and time from the time module is relatively safer than time from the host device. Method for performing the background action. 제 1항에 있어서, 상기 호스트 디바이스로부터의 시간은 상기 시간 모듈을 업데이트하기 위하여 사용될 수 없는, 메모리 디바이스상 애플리케이션으로 시간 바탕 동작을 수행하기 위한 방법.The method of claim 1, wherein time from the host device cannot be used to update the time module. 제 1항에 있어서, 상기 엔티티를 인증하기 위하여 상기 시간 모듈로부터의 시간을 사용하는 단계를 더 포함하는, 메모리 디바이스상 애플리케이션으로 시간 바탕 동작을 수행하기 위한 방법.10. The method of claim 1, further comprising using time from the time module to authenticate the entity. 제 1항에 있어서, 단일 세션에 대해서만 상기 호스트 디바이스로부터의 시간을 사용하는 단계를 더 포함하는, 메모리 디바이스상 애플리케이션으로 시간 바탕 동작을 수행하기 위한 방법.2. The method of claim 1, further comprising using the time from the host device only for a single session. 제 1항에 있어서, 상기 시간 바탕 동작은 디지털 권리 관리(DRM) 라이센스 유효화 동작을 포함하는, 메모리 디바이스상 애플리케이션으로 시간 바탕 동작을 수행하기 위한 방법.4. The method of claim 1, wherein the time based operation comprises a digital rights management (DRM) license validation operation. 제 1항에 있어서, 상기 메모리 디바이스는 상기 메모리 디바이스상에 저장된 보호된 컨텐트를 언로킹하기 위하여 디지털 권리 관리(DRM) 키와 라이센스를 저장하는, 메모리 디바이스상 애플리케이션으로 시간 바탕 동작을 수행하기 위한 방법.The method of claim 1, wherein the memory device stores a digital rights management (DRM) key and a license for unlocking protected content stored on the memory device. . 제 1항에 있어서, 상기 메모리 디바이스는, 상기 호스트 디바이스로부터 수신된 시간을 저장하고, 제 2 호스트 디바이스로부터의 시간을 수신하며, 상기 호스트 디바이스로부터 저장된 시간과 상기 제 2 호스트 디바이스로부터의 시간을 비교하고, 상기 비교를 바탕으로 시간 바탕 동작을 수행하기 위하여 상기 제 2 호스트 디바이스 대신 상기 호스트 디바이스로부터의 시간을 사용하도록 결정하기 위해 동작하는, 메모리 디바이스상 애플리케이션으로 시간 바탕 동작을 수행하기 위한 방법.The memory device of claim 1, wherein the memory device stores a time received from the host device, receives a time from a second host device, and compares a time stored from the host device with a time from the second host device. And determine to use the time from the host device instead of the second host device to perform a time based operation based on the comparison. 제 1항에 있어서, 상기 메모리 디바이스는 비시간 바탕 인증 시스템을 사용하여 상기 호스트 디바이스를 인증하도록 동작하는, 메모리 디바이스상 애플리케이션으로 시간 바탕 동작을 수행하기 위한 방법.2. The method of claim 1, wherein the memory device is operative to authenticate the host device using a non-time based authentication system. 메모리 디바이스로서,
메모리 어레이와,
상기 메모리 어레이와 통신하고,
호스트 디바이스상에서 실행되는 엔티티를 인증하기 위한 요청을 수신하고,
액세스 제어 기록(ACR)에 지정된 인증 방법 및 메모리 디바이스상 시간 모듈로부터의 시간을 사용하여 엔티티를 인증하고, 여기서 ACR은 상기 메모리 디바이스 내 애플리케이션과 상기 엔티티를 연관시키고,
시간 바탕 동작을 수행하기 위하여 상기 애플리케이션을 위한 요청을 상기 엔티티로부터 수신하며,
상기 시간 바탕 동작을 수행하기 위하여 상기 시간 모듈로부터 시간 대신 상기 호스트 디바이스로부터의 시간을 선택하고,
상기 시간 바탕 동작을 수행하기 위하여 상기 호스트 디바이스로부터의 시간을 사용하도록
동작하는 회로를
포함하는, 메모리 디바이스.
As a memory device,
A memory array,
Communicate with the memory array,
Receive a request to authenticate an entity running on a host device,
Authenticate the entity using an authentication method specified in an access control record (ACR) and time from a time module on a memory device, where ACR associates the entity with an application in the memory device,
Receive a request from the entity for the application to perform a time based operation,
Select time from the host device instead of time from the time module to perform the time based operation,
To use time from the host device to perform the time based operation
Operating circuit
Including a memory device.
제 12항에 있어서, 상기 호스트 디바이스로부터의 시간은, 상기 호스트 디바이스로부터의 시간이 상기 시간 모듈로부터의 시간보다 느린 경우에만, 상기 시간 모듈로부터 시간 대신 선택되는, 메모리 디바이스.The memory device of claim 12, wherein the time from the host device is selected instead of time from the time module only if time from the host device is slower than time from the time module. 제 12항에 있어서, 상기 호스트 디바이스로부터의 시간은, 상기 호스트 디바이스가 신뢰성 있는 것으로 결정되는 경우에만, 상기 시간 모듈로부터의 시간 대신 선택되는, 메모리 디바이스.13. The memory device of claim 12, 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. 제 12항에 있어서, 상기 호스트 디바이스로부터의 시간은 상기 시간 모듈로부터의 시간보다 비교적 더 정확하고, 상기 시간 모듈로부터의 시간은 상기 호스트 디바이스로부터의 시간보다 비교적 더 안전한, 메모리 디바이스.13. The memory device of claim 12, wherein time from the host device is relatively more accurate than time from the time module, and time from the time module is relatively safer than time from the host device. 제 12항에 있어서, 상기 호스트 디바이스로부터의 시간은 상기 시간 모듈을 업데이트하기 위하여 사용될 수 없는, 메모리 디바이스.13. The memory device of claim 12 wherein time from the host device cannot be used to update the time module. 제 12항에 있어서, 상기 회로는 단일 세션에 대해서만 상기 호스트 디바이스로부터의 시간을 사용하도록 추가 동작하는, 메모리 디바이스.The memory device of claim 12, wherein the circuitry is further operative to use time from the host device only for a single session. 제 12항에 있어서, 상기 시간 바탕 동작은 디지털 권리 관리(DRM) 라이센스 유효화 동작을 포함하는, 메모리 디바이스.13. The memory device of claim 12 wherein the time based operation comprises a digital rights management (DRM) license validation operation. 제 12항에 있어서, 상기 메모리 디바이스는 상기 메모리 디바이스상에 저장된 보호된 컨텐트를 언로킹하기 위하여 디지털 권리 관리(DRM) 키와 라이센스를 저장하는, 메모리 디바이스.The memory device of claim 12, wherein the memory device stores a digital rights management (DRM) key and a license to unlock protected content stored on the memory device.
KR1020107000102A 2007-06-08 2008-06-05 Memory device using the time from a trusted host device and method for use therewith KR20100041734A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/811,346 2007-06-08
US11/811,346 US8869288B2 (en) 2007-06-08 2007-06-08 Method for using time from a trusted host device
US11/811,345 2007-06-08
US11/811,345 US20080307507A1 (en) 2007-06-08 2007-06-08 Memory device using time from a trusted host device

Publications (1)

Publication Number Publication Date
KR20100041734A true KR20100041734A (en) 2010-04-22

Family

ID=39674859

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107000102A KR20100041734A (en) 2007-06-08 2008-06-05 Memory device using the time from a trusted host device and method for use therewith

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
EP2709030B1 (en) * 2011-05-09 2019-02-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

Family Cites Families (12)

* 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
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
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
JP2005301333A (en) * 2004-04-06 2005-10-27 Hitachi Global Storage Technologies Netherlands Bv Magnetic disk drive with use time limiting function
US20070250924A1 (en) * 2004-08-17 2007-10-25 Mitsubishi Electric Corporation Storage Device and Storage Method
JP4750480B2 (en) * 2005-06-14 2011-08-17 ヒタチグローバルストレージテクノロジーズネザーランドビーブイ Storage device and access control method for storage device
US8327448B2 (en) * 2005-06-22 2012-12-04 Intel Corporation Protected clock management based upon a non-trusted persistent time source
US20070043667A1 (en) * 2005-09-08 2007-02-22 Bahman Qawami Method 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

Also Published As

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

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
US20130007471A1 (en) Systems and methods for securing cryptographic data using timestamps
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
US20090165111A1 (en) Method and apparatus for secure management of debugging processes within communication devices
US20090293118A1 (en) Systems for authentication for access to software development kit for a peripheral device
KR20100035702A (en) Memory device with circuitry for improving accuracy of a time estimate used in digital rights management (drm) license validation and method for use therewith
KR20100041734A (en) Memory device using the time from a trusted host device and method for use therewith
JP4673150B2 (en) Digital content distribution system and token device
KR101465555B1 (en) Memory device with circuitry for improving accuracy of a time estimate used to authenticate an entity and method for use therewith
US20090293117A1 (en) Authentication for access to software development kit for a peripheral device
JP5180292B2 (en) MEMORY DEVICE PROVIDED WITH CIRCUIT FOR IMPROVING ACCURACY OF TIME ESTIMATION AND METHOD USED IN THE DEVICE

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid