KR101465555B1 - Memory device with circuitry for improving accuracy of a time estimate used to authenticate an entity and method for use therewith - Google Patents

Memory device with circuitry for improving accuracy of a time estimate used to authenticate an entity and method for use therewith Download PDF

Info

Publication number
KR101465555B1
KR101465555B1 KR1020107000091A KR20107000091A KR101465555B1 KR 101465555 B1 KR101465555 B1 KR 101465555B1 KR 1020107000091 A KR1020107000091 A KR 1020107000091A KR 20107000091 A KR20107000091 A KR 20107000091A KR 101465555 B1 KR101465555 B1 KR 101465555B1
Authority
KR
South Korea
Prior art keywords
memory device
time
entity
timestamp
authenticate
Prior art date
Application number
KR1020107000091A
Other languages
Korean (ko)
Other versions
KR20100031124A (en
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,289 external-priority patent/US20080307237A1/en
Priority claimed from US11/811,344 external-priority patent/US20080307494A1/en
Application filed by 샌디스크 테크놀로지스, 인코포레이티드 filed Critical 샌디스크 테크놀로지스, 인코포레이티드
Publication of KR20100031124A publication Critical patent/KR20100031124A/en
Application granted granted Critical
Publication of KR101465555B1 publication Critical patent/KR101465555B1/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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • G06F21/725Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits operating on a secure reference time value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0846Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/121Timestamp

Abstract

엔티티를 인증하기 위해 사용된 시간 평가 정확도를 개선하기 위한 회로를 가진 메모리 디바이스와 상기 메모리 디바이스와 함께 사용하기 위한 방법은 개시된다. 일 실시예에서, 메모리 디바이스는 엔티티를 인증하기 위한 요청을 수신한다. 엔티티를 인증하기 위한 시도 전에, 메모리 디바이스는 새로운 타임 스탬프가 필요한지를 결정한다. 새로운 타임 스탬프가 필요하면, 메모리 디바이스는 새로운 타임 스탬프를 수신하고 그 다음 새로운 타임 스탬프를 바탕으로 시간 평가를 사용하여 엔티티를 인증하기 위해 시도한다. 다른 실시예에서, 메모리 디바이스는 새로운 타임 스탬프가 필요할 시기를 지정하는 다수의 다른 타임 스탬프 업데이트 정책들(TUP)을 포함하고, 새로운 타임 스탬프가 필요한지의 결정은 엔티티와 연관된 TUP를 기초로 한다. 다른 실시예들은 개시되고 각각의 실시예들은 단독 또는 결합하여 함께 사용될 수 있다.A memory device having a circuit for improving the time estimation accuracy used to authenticate an entity and a method for use with the memory device are disclosed. In one embodiment, the memory device receives a request to authenticate the entity. Prior to attempting to authenticate the entity, the memory device determines whether a new timestamp is required. If a new timestamp is needed, the memory device receives the new timestamp and then attempts to authenticate the entity using a time estimate based on the new timestamp. In another embodiment, the memory device includes a number of different timestamp update policies (TUP) that specify when new timestamps are needed, and the determination of whether a new timestamp is needed is based on the TUP associated with the entity. Other embodiments are disclosed and each of the embodiments may be used alone or in combination.

Description

엔티티를 인증하기 위해 사용된 시간 평가의 정확성을 개선하기 위한 회로를 구비한 메모리 디바이스와, 상기 메모리 디바이스와 사용하기 위한 방법{MEMORY DEVICE WITH CIRCUITRY FOR IMPROVING ACCURACY OF A TIME ESTIMATE USED TO AUTHENTICATE AN ENTITY AND METHOD FOR USE THEREWITH}WHAT IS CLAIMED IS: 1. A memory device having circuitry for improving the accuracy of the time estimate used to authenticate an entity, and a method for using the memory device with the memory device 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에 관한 것이고; 이들 각각은 여기에 출원되고 여기에 참조로써 통합된다.&Quot; 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 Trusted Host Device," U.S. patent application serial number 11 / 811,346; and "Memory Device Using Time from a Trust Host Device," which relates to U.S. patent application serial number 11 / 811,345; Each of which is hereby incorporated herein by reference.

SanDisk Corporation으로부터의 TrustedFlashTM 메모리 디바이스들 같은 몇몇 메모리 디바이스들은 디지털 권리 관리(DRM) 라이센스 유효화 같은 시간-기반 동작들을 수행하기 위하여 시간을 알 필요가 있다. 상기 동작들에 수반된 보안 문제들로 인해, 메모리 디바이스는 올바른 시간을 제공하기 위하여 호스트 디바이스를 신뢰할 수 없다. 메모리 디바이스가 네트워크에서 신뢰하는 컴포넌트로부터 올바른 시간을 얻는 동안, 메모리 디바이스를 호스팅하는 호스트 디바이스는 메모리 디바이스가 시간을 알 필요가 있는 시간에 네트워크에 접속될 수 없다. 메모리 디바이스는 액티브 시간을 측정하도록 설계될 수 있지만, 측정된 액티브 시간으로부터 생성된 시간 평가는 메모리 디바이스가 계속하여 액티브 시간을 측정할 수 없는 경우(예를 들어, 메모리 디바이스 측정이 시작된 후 전력이 다운되는 경우) 실제 시간의 신뢰적인 측정치가 아닐 것이다. 따라서, 측정된 액티브 시간으로부터 생성된 시간 평가값은 실제 시간이 무엇인지의 하부 제한만을 가리키고, 상기 시간 평가값은 특정 시간-기반 동작들에서 목표된 정확도를 제공하지 못할 것이다. 메모리 디바이스가 인액티브될 때에도 계속하여 시간트랙을 유지하도록 메모리 디바이스에 배터리-백업 클럭이 장비될 수 있지만, 상기 클럭은 메모리 디바이스에 비용을 부가할 수 있다.Some memory devices, such as TrustedFlash TM 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 security issues associated with these operations, the memory device can not trust the host device to provide the correct time. While the memory device obtains the correct time from the trusted component in the network, the host device hosting the memory device can not be connected to the network at a time when 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 be used when the memory device can not continue to measure the active time (e.g., when the power is down ) Will not be a reliable measure of the actual time. Thus, the time estimate value generated from the measured active time only indicates the lower limit of what the actual time is, and the time estimate value will not provide the desired accuracy in certain time-based operations. Although the battery-backup clock may be equipped in the memory device to continue to maintain the time track even when the memory device is inactive, the clock may add cost to the memory device.

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

도입부에 의해, 하기된 실시예들은 엔티티를 인증하기 위해 사용된 시간 평가 정확도를 개선하기 위한 회로를 가진 메모리 디바이스 및 상기 메모리 디바이스와 함께 사용하기 위한 방법을 제공한다. 일 실시예에서, 메모리 디바이스는 엔티티를 인증하기 위한 요청을 수신한다. 엔티티를 인증하기 위한 시도 전에, 메모리 디바이스는 새로운 타임 스탬프가 필요한지를 결정한다. 만약 새로운 타임 스탬프가 필요하면, 메모리 디바이스는 새로운 타임 스탬프를 수신하고 그 다음 새로운 타임 스탬프를 기반으로 시간 평가를 사용하여 엔티티를 인증하기 위하여 시도한다. 다른 실시예에서, 메모리 디바이스는 새로운 타임 스탬프가 필요할 시기를 지정하는 다수의 다른 타임 스탬프 업데이트 정책들(TUP)을 포함하고, 새로운 타임 스탬프가 필요한지의 결정은 엔티티와 연관된 TUP를 기반으로 한다. 다른 실시예들은 개시되고, 각각의 실시예들은 단독으로 또는 결합하여 함께 사용될 수 있다.By way of introduction, the embodiments described below provide a memory device with circuitry for improving the time estimation accuracy used to authenticate an entity and a method for use with the memory device. In one embodiment, the memory device receives a request to authenticate the entity. Prior to attempting to authenticate the entity, the memory device determines whether a new timestamp is required. If a new timestamp is required, the memory device receives a new timestamp and then attempts to authenticate the entity using a time estimate based on the new timestamp. In another embodiment, the memory device includes a number of different timestamp update policies (TUP) that specify when new timestamps are needed, and the determination of whether a new timestamp is needed is based on the TUP associated with the entity. Other embodiments are disclosed, and each of the embodiments may 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 with circuitry for improving the time estimation accuracy used to authenticate the entity and a method for use with the memory device.

도 1은, 실시예의 시스템을 도시하는 도면.
도 2는, 실시예의 메모리 디바이스의 블록도.
도 3은, 도 2의 메모리 디바이스의 다양한 기능 모듈을 도시하는 도면.
도 4는, 실시예의 비대칭 인증 처리의 프로토콜 도면.
도 5는, 타임 스탬프를 얻기 위한 실시예의 시스템 도면.
도 6은, 타임 스탬프를 얻기 위한 실시예의 방법 흐름도.
도 7은, 타임 스탬프 업데이트 정책을 검사하기 위한 실시예의 방법 흐름도.
도 8은, 메모리 디바이스에서 실행하는 애플리케이션에 대한 호스트 타임을 사용하여 실시예의 메모리 디바이스 도면.
BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 shows a system of an embodiment. Fig.
2 is a block diagram of a memory device of an embodiment;
Figure 3 illustrates various functional modules of the memory device of Figure 2;
4 is a protocol diagram of the 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 timestamp;
7 is a method flow diagram of an embodiment for checking a timestamp update policy;
8 is a memory device illustration of an embodiment using host time for an application executing in a 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 to be used to illustrate these embodiments. 1, the system 10 includes a plurality of memory devices 20, 30, and 40, respectively, removably connected to a plurality of host devices: a personal computer (PC) 50, A digital media (e.g., MP3) player 60, and a cell phone 70. A host device is a device capable of reading data from a memory device and / or writing data to the memory device. Data may include, but is not limited to, digital media content such as audio files or video files (with or without audio), images, games, books, maps, data files, or software programs. The data may be downloaded, for example, from a server to a memory device in a network, pre-loaded by a manufacturer or other 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. For example, the host device may be a notebook computer, a handheld computer, a handheld email / text messaging device, a handheld game console, a video player (e.g. a DVD player or portable video player), an audio and / Cameras, set top boxes, display devices (e.g., televisions), printers, car stereos, and navigation systems. Also, the host device may include mixed functionality. For example, the host device may be a cell phone capable of playing digital media (e.g., music and / or video) files in addition to forming and receiving telephone calls.

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

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

도면들을 다시 참조하여, 도 2는 메모리 카드 또는 스틱 형태를 가질 수 있는 실시예의 메모리 디바이스(200)의 블록도이다. 도 2에 도시된 바와 같이, 메모리 디바이스(200)는 비휘발성 메모리 어레이(플래시 메모리 같은)(210) 및 회로(220)의 수집부를 포함한다. 이런 실시예에서, 비휘발성 메모리 어레이(210)는 고체 메모리, 특히 플래시 메모리(210) 형태를 가진다. 플래시 대신, 다른 타입의 고체 메모리들이 사용될 수 있다는 것이 주지되어야 한다. 또한 자기 디스크들 및 광학 CD들 같은 고체 메모리들과 다른 메모리들(이것으로 제한되지 않음)이 사용될 수 있다는 것이 주지되어야 한다. 또한, 간략화를 위해, 용어 "회로"는 순수 하드웨어 구현 및/또는 결합된 하드웨어/소프트웨어(또는 펌웨어) 구현이라 불리도록 사용될 것이다. 따라서, "회로"는 애플리케이션 지정 집적 회로(ASIC), 프로그램 가능 논리 제어기, 내장형 마이크로제어기, 및 단일-기판 컴퓨터뿐 아니라, 처리기 및 상기 처리기에 의해 실행할 수 있는 컴퓨터-판독 가능 프로그램 코드(예를 들어, 소프트웨어 또는 펌웨어)를 저장한 컴퓨터-판독 가능 매체 중 하나 또는 그 이상의 형태를 가질 수 있다.Referring again to the drawings, FIG. 2 is a block diagram of a memory device 200 of an embodiment that may have a memory card or stick form. As shown in FIG. 2, memory device 200 includes a collection of non-volatile memory arrays (such as flash memory) 210 and circuitry 220. In this embodiment, the non-volatile memory array 210 has the form of a solid state 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 (not limited thereto) can be used. Further, for 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" is intended to include both 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 , ≪ / RTI > software or firmware) stored in a computer readable medium.

도 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)은 시간을 측정하기 위한 메모리 디바이스의 능력과 관련하여 하기에 기술될 것이다.2 includes a plurality of components: a host interface module (HIM) 230, a flash interface module (FIM) 240, a buffer management unit (BMU) 250, A CPU 260, and a hardware timer block 270. The HIM 230 provides an interface function for the host device 300 and the FIM 240 provides an interface function for the flash memory 210. [ The BMU 250 includes a crypto-engine 252 and a host direct memory access (DMA) component 254 for providing an encryption / decryption function and a flash DMA 258 for communicating with the HIM 230 and the FIM 240, respectively. Component 256. < / RTI > CPU 260 executes software and firmware stored in CPU RAMS 260 and / or flash memory 210. [ Hardware timer block 270 will be described below with respect to the ability of the memory device 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 about the memory device 200 and the operation of the device 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. Pat. Patent Application Serial No. 11 / 322,812 and U.S. Pat. Patent application Serial No. 11 / 322,766, both of which are incorporated herein by reference. The components and functions described in these documents are not read into the following claims unless explicitly recited herein.

이 실시예에서, 메모리 디바이스(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 to unlock 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 DRM keys and licenses to unlock the protected content stored on the memory device. The DRM key and licenses may be generated by the memory device 200 or generated outside the memory device 200 (e.g., by the DRM server 110) and transmitted to the memory device 200. The DRM key and licenses The protected content may be effectively coupled to the memory device 200 instead of the host device 300 to allow the memory device 200 to prove to the memory device 200 that the protected content is an authorized device, The TrustedFlash TM memory devices from SanDisk Corporation are examples of memory devices that store DRM keys and licenses on a memory device so that the protected content is moved with the memory device In some embodiments, the memory device 200 may also include a memory device The memory device 200 in other embodiments provides the DRM keys to the host device 300 to validate 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 the proper credentials can access the DRM keys and licenses. The computer-readable code for SSA may be stored in flash memory 210, CPU RAMs 262, or other storage locations in memory device 200. The SSA is described in more detail in the above'028 patent application. FIG. 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, the memory device 200 includes various access control records ("ACRs"); A first asymmetric ACR (201), a second asymmetric ACR (202), and a symmetric ACR (203). The first and second asymmetric ACRs 201,202 comprise first and second time update policies (TUP1 and TUP2, respectively) to 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 an authentication method to be used and what kind of certificates are needed to provide proof of the identity of the entity. Each ACR 201,202, and 203 includes permissions to perform various actions, such as accessing DRM keys and licenses. Once the ACR has successfully authenticated the entity, the SSA system opens a session in which actions of any ACR are executed. As used herein, the term "entity" refers to any person or matter that attempts to access memory device 200. The entity may be, for example, an application running on a host device, a host device itself, or a human user. In FIG. 3, three entities are attempting to access memory device 200: media (e.g., audio and / or video) player 301, storage application 302, . These entities 301, 302, and 303 may be on the same or different host devices. Each entity 301, 302, 303 is associated with a specific 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 initiates a login process, it sends a request for authentication containing an identifier of the associated ACR, which specifies what authentication method to be used and what kind of certificates 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) can be used and that the 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 the entity can perform once authenticated.

몇몇 인증 메카니즘들(예를 들어 인증을 위하여 X.509 증명서 체인을 사용하는 일 방향 및 양방향 비대칭 인증 같은)은 시간을 기반으로 하고, 메모리 디바이스(200)가 엔티티에 의해 프리젠트된 증명서를 검증하기 위한 시간을 알게 하는 것을 요구한다. (대칭 ACR 203에 의해 사용된 대칭 인증 메카니즘은 메모리 디바이스 200가 시간을 아는 것을 요구하지 않는다. 대칭 인증에서, 엔티티 및 이에 연관된 ACR에 의해 공유된 키는 엔티티를 인증하기 위해 사용된다). 비대칭 인증에서, 시간은 엔티티에 의해 공급된 RSA 증명서 및/또는 증명서 취소 리스트(CRL) 같은 증명서들이 유효화되는지를 평가하기 위해 필요할 수 있다. (여기에 사용된 바와 같이, "증명서"는 단일 증명서 또는 다수의 증명서들(예를 들어, 증명서 체인)이라 하고, "CRL"은 단일 CRL 또는 다수의 CRL들이라 할 수 있다). 메모리 디바이스(200)가 상기 유효화를 수행하기 위한 시간 평가를 생성하기 위하여 사용할 수 있는 메카니즘들을 살펴보기 전에, 증명서들 및 CRL들의 짧은 논의는 비대칭 인증과 관련하여 프리젠트될 것이다.Some authentication mechanisms (e.g., unidirectional and bidirectional asymmetric authentication using an X.509 certificate chain for authentication) are time-based, and the memory device 200 may be used to verify a certificate presented by an entity I need to know the time. (The symmetric authentication mechanism used by symmetric ACR 203 does not require the memory device 200 to know the time. In symmetric authentication, the entity and the key shared by the ACR associated with it are used to authenticate the entity). In asymmetric authentication, the time may be needed to evaluate whether the certificates, such as the RSA certificate and / or the certificate revocation list (CRL) supplied by the entity, are validated. (As used herein, a "certificate" is a single certificate or multiple certificates (e.g., a certificate chain), and a "CRL" may be a single CRL or multiple CRLs. Before looking at the mechanisms that the memory device 200 may 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 for proving the identity of the entities. Entities wishing to establish a proof of identity register register appropriate evidence in the CA to prove their identity. After the identity of the entity is certified to the CA, the CA issues a certificate to the entity. A certificate is a public key of an entity signed (typically by encoding a digest of a public key) signed by the name of the CA that issued the certificate, the name of the entity to whom the certificate was issued, the entity's public key, Key.

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

다양한 상황들은(예를 들어 이름 변경, 엔티티 및 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, association changes between entities and CAs, and private key compromises or suspected compromises) may cause the pre-expiration certificate to become invalid. 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 timestamping list of revoked certificates. Thus, in order to authenticate the entity, the memory device 200 not only checks whether the certificate is appropriate, but also checks the CRL to see if the certificate is listed on the CRL. (A CRL may be provided by an entity with a certificate, or the memory device 200 may include the CRL itself (e.g., over the Internet 80 if the memory device 200 is a connected device). If the certificate is listed on the 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 that indicates 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 (i.e., the memory device 200 determines that the CRL is not valid), the CRL is considered defective and preferably, It is 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 the memory device time stamp from an hourly reliable time server that needs to know the time, i. E. A memory device request, via the host device. This solution is suitable for connected devices; However, if the memory device is connected to devices that are not connected, as well as unconnected devices (e.g., home PCs that are not connected to the Internet, MP3 players, cell phones when the network is off The memory device can not rely on a connection available when it needs to know the time for the authentication procedure. Another option is to mount a memory device with a battery-backup clock, May be undesirable because it adds cost to the memory device. Another option is to rely on the host device (from its internal clock or external source) to provide time for the memory device. However, in many situations, The device can not trust the host device to provide the correct time. (I.e., setting the clock on the host device at a time earlier than the current time), the user may bypass the actual time limits that the memory device needs to reinforce . On the other hand, if the memory device (the application running on the memory device) can trust the host device, the memory device (or the application executing on the memory device) may depend on the host device for that time. More information will be presented below.

이 실시예에 사용된 다른 옵션은 메모리 디바이스의 제한된 시간 추적 능력들을 사용하는 것이다; 특히, 액티브 시간을 측정하기 위한 메모리 디바이스(200)의 능력. 액티브 시간은 메모리 디바이스(200)가 호스트 디바이스에 접속되고 실제로 사용된(즉, 공전 또는 슬리프 모드에 있는 것과 비교할 때 메모리 디바이스 200 및 호스트 디바이스 300 사이의 버스 상에서 활동할 때) 시간을 말한다. 선택적으로, 액티브 시간은 메모리 디바이스(200)가 호스트 디바이스(300)에 접속되고 상기 호스트 디바이스로부터 전력을 수신하는 전체 시간 양을 말할 수 있다. 용어들 "액티브 시간" 및 "사용 시간"은 여기에서 상호 교환적으로 사용될 것이다. 하기에 기술된 바와 같이, 이런 실시예에서, 메모리 디바이스(200)는 하드웨어 타이머 블록(270)이 CPU(260)에 대한 인터럽트들로서 클럭 틱(tick)들을 생성할 수 있을 때 액티브되고, CPU(260)는 액티브 시간 카운터를 증가시킬 수 있다.Another option used in this embodiment is to use limited time tracking capabilities of the memory device; Specifically, the ability of the memory device 200 to measure the active time. The active time refers to the time when the memory device 200 is connected to the host device and is actually used (i.e., when operating on the bus between the memory device 200 and the host device 300 as compared to being in idle or sleep mode). Alternatively, 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 "usage time" will be used interchangeably herein. As described below, in this embodiment, the memory device 200 is active when the hardware timer block 270 is able to generate clock ticks as interrupts to the CPU 260, and the CPU 260 ) May increase 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, a hardware timer block 270 (e.g., an ASIC controller) includes an oscillator that generates periodic clock ticks and provides the ticks to the CPU 260 as interrupts. (Preferably, the oscillator operates at a very low frequency and runs while the CPU 260 is sleeping). Accordingly, the hardware timer block 270 interrupts the CPU 260 periodically (e.g., every millisecond or microsecond). When CPU 260 is interrupted, a particular clock interrupt service routine (e.g., in firmware executed by CPU 260) is invoked and stored in CPU RAMs 262 and non-volatile flash memory 210, Is added in one cycle / unit, so that the counter value is not lost when power is lost. To prevent excessive consumption of memory 210, an active time counter in memory 210 may be periodically (e.g., one minute as long as power is applied to memory device 200 or the like) in response to each clock tick, It is desirable to be updated. Although this may cause additional inaccuracies in the measured time when 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 bits in the counter may be moved if the help is persistent). It is also desirable that the write to the active time counter does not affect the performance of the memory device 200 (except power consumption to perform writing) and regular activity. (In other words, it is desirable that the write to the time counter is part of the process of servicing the host command). For example, writing to the active time counter can be handled as a background task and is performed prior to the host device instruction service. At the end of the host device command, the firmware of the memory device 200 can verify that programming of the active time counter is successful 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 the crypto-engine 252 using a key-hashed message authentication code (HMAC)), It is desirable that it can not be tampered. In the case of signature mismatching, the data can be treated as uninitiated, such as when the attacker tampered with it. In addition, it should be noted that other mechanisms for measuring active time can be used.

액티브 시간 카운터에 저장된 값을 실제 시간으로 전환하기 위하여, CPU(260)는 하드웨어 타이머 블록(270)이 클럭 틱들을 생성하는 주파수에 의해 저장된 값을 곱셈한다. 예를 들어, 만약 값(500)이 액티브 시간 카운터에 저장되고 하드웨어 타이머 블록(270)이 5 밀리초마다 클럭 틱을 생성하면, CPU(260)는 2,500 밀리초(500 곱하기 5)의 액티브 시간을 계산한다. 시간 평가를 생성하기 위하여, 변환된 액티브 시간은 신뢰적인 소스로부터 메모리 디바이스(200)에 의해 수신된 최종 타임 스탬프에 부가된다. 다른 말로, 타임 스탬프는 "시작 라인"으로서 작동하고, 메모리 디바이스의 측정된 액티브 시간은 타임 스탬프에 부가된다. 타임 스탬프는 임의의 형태를 가질 수 있고 임의의 목표된 정밀도(예를 들어, 년, 달, 날, 시간, 분, 초, 등)로 시간을 나타낼 수 있다. 바람직하게, 메모리 디바이스(200)는 메모리 디바이스(200)가 엔티티에 정확한 시간{예를 들어, 타임 서버(100) 또는 신뢰적인 호스트 디바이스}을 제공하도록 신뢰하는 엔티티로부터 타임 스탬프가 제공된다. 타임 스탬프는 임의의 형태를 가질 수 있고 다른 정보에 포함되거나 그 자체에 의해 전송될 수 있다. 메모리 디바이스는 바람직하게 크립토-엔진(252)을 통해 타임 스탬프를 거의 저장하지 않아서, 쉽게 탬퍼될 수 없다. 새로운 타임 스탬프가 메모리 디바이스(200)에 의해 수신될 때, 새로운 타임 스탬프는 메모리 디바이스(200)에 저장되고, 액티브 시간 카운터는 리셋된다. 따라서, 액티브 시간은 이전 타임 스탬프 대신 새로운 타임 스탬프에 관련하여 측정될 것이다. 카운터를 리셋하는 대신(및, 그러므로, "롤링 백(rolling back)"), 새로운 타임 스탬프의 시간에 존재하는 액티브 시간 카운터 값은 기록되고 액티브 시간을 측정하기 위하여 현재 시간으로부터 감산된다.To switch the value stored in the active time counter to the actual time, the CPU 260 multiplies the value stored by the frequency at which the hardware timer block 270 generates the clock ticks. For example, if the value 500 is stored in the active time counter and the hardware timer block 270 generates a clock tick every 5 milliseconds, then the CPU 260 will generate an active time of 2,500 milliseconds (500 times 5) . To generate a time estimate, the converted active time is added to the final timestamp received by the memory device 200 from a trusted source. In other words, the timestamp acts as the "start line ", and the measured active time of the memory device is added to the timestamp. The timestamp can take any form and can represent time with any desired precision (e.g., year, month, day, hour, minute, second, etc.). Preferably, the memory device 200 is provided with a timestamp from an entity that the memory device 200 trusts to provide the entity with the correct time {e.g., the time server 100 or a trusted host device}. The timestamp can take any form and can be included in other information or transmitted by itself. The memory device preferably stores little time stamps through the crypto-engine 252, and can not be easily tampered with. When a new timestamp is received by the memory device 200, a new timestamp 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 timestamp instead of the old timestamp. Instead of resetting the counter (and therefore, "rolling back"), the active time counter value present at the time of the new timestamp 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 memory devices are now discussed, and examples of authentication procedures will be described. Referring back to the drawings, FIG. 4 is a protocol diagram of an asymmetric authentication process of an embodiment. In the following example, layer 301 attempts to log in to memory device 200 via ACR 201. Player 301 includes certificates (e.g., an RSA key pair, a certificate, and a certificate revocation list (CRL)), and the ACR 201 includes an authentication (In this case, establishing a secure channel between the player 301 and the DRM module 207). 4, the first step is to cause the host device 300 to 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 the respective system diagrams and flow diagrams showing one particular way in which the memory device 200 can obtain a timestamp, ≪ / RTI > It should be appreciated that the memory device 200 may obtain a timestamp in another manner and the timestamp may have other forms. It should also be understood that a single memory device that interfaces with multiple servers or hosts can handle multiple types simultaneously. Accordingly, the specifics of such examples should not be construed as claiming unless explicitly recited herein.

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

이 실시예에서, 타임 스탬프를 요청하기 위한 절차는 메모리 디바이스(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 timestamp is initiated by the host device 300 sending a nonce acquisition instruction to the memory device 200 (Act 405) (see Figures 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 authentication of the time stamp generated by the time server 100. The memory device 200 generates a random number (act 410) and stores it in a CPU RAMS (i.e., volatile memory) 262 (or, optionally, memory 210) for later verification. The memory device 200 sends the nonce to the host device 300 (Act 415). The 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 timestamp request containing the nonce to the time server 100 (Act 420). The time server 100 signals the time (for example, the world time in the UTC Zulu format) and the nonce with the private key. The time server 100 then sends a timestamp response to the host device 300 (Act 425), including a nonce, a timestamp, a certificate chain, and a CRL chain in this embodiment. (This certificate and CRL are not identical to the certificate and CRL sent from the time server 100 for authentication and sent to authenticate 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, the memory device 200 attempts to verify the certificates 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 of the time server 100 certificate and the CRL is valid, instead of checking the validity of the time evaluation generated by the memory device 200. If the verification fails, the memory device 200 resets the volatile memory 262 and returns to the idle process (Act 440). If the verification of the certificate and CRL passes (act 445), the memory device 200 compares the nonce in the volatile memory 262 with the non-response in the response (Act 450). If the comparison fails, the memory device resets volatile memory 262 and returns to the idle process (Act 455). If the comparison is successful, the memory device 200 preferably stores a new time stamp in the memory 210 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 appreciated that the memory device 200 may generate the nonce 410 and wait for a response (act 460) after which the host device 300 may send another acquisition nonce command to the memory device 200 (act 465) do. As described above, the memory device 200 begins to measure time after the nonce is generated. If a new nonce instruction 465 is received before the measured time reaches a specific time-out limit, the memory device 200 preferably ignores the new nonce instruction 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 create a new nonce (Act 470). Thus, the nonce is only valid for a limited time, and the time-out limit ("movement time error") is the maximum time to consider that the memory device 200 is legitimate to wait for a timestamp from the time server 100.

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

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

도 4를 참조하여, 새로운 타임 스탬프가 메모리 디바이스(200)에 저장되어, 메모리 디바이스(200)는 호스트 디바이스(300)에 다시 "시간 업데이트 성공" 메시지를 전송하고(액트 452), 호스트 디바이스(300)는 메모리 디바이스(200)에 인증을 위한 요청을 다시 전송한다(액트 454). 메모리 디바이스(200)가 타임 스탬프를 가지기 때문에, 메모리 디바이스(200)는 ACR(201)의 타임 스탬프 업데이트 정책(TUP)을 검사할 것이다(액트 500). 시간 평가가 타임 스탬프를 바탕으로 하기 때문에, 구식 타임 스탬프에서 시간 평가 바이어싱은 부정확한 시간 평가를 유도할 수 있다. 따라서, TUP는 메모리 디바이스(200) 상 기존 타임 스탬프가 구식으로 고려되고 재생(즉, 새로운 타임 스탬프)을 요구할 때를 결정하기 위해 사용된다. 도 3에 도시되고 이하에 보다 상세히 논의된 바와 같이, 다른 ACR들은 ACR이 생성될 때 생성될 수 있는 다른 TUP들을 가질 수 있다(즉, 다른 ACR들은 다른 시간 허용 오차 레벨들을 가질 수 있음).4, a new timestamp is stored in the memory device 200 and the memory device 200 sends a "time update success" message back to the host device 300 (act 452) and the host device 300 Sends again a request for authentication to the memory device 200 (Act 454). Because the memory device 200 has a timestamp, the memory device 200 will check the timestamp update policy (TUP) of the ACR 201 (act 500). Because the time estimate is based on a timestamp, the time estimate biasing in the old timestamp can lead to an inaccurate time estimate. Thus, the TUP is used to determine when an existing time stamp on the memory device 200 is considered obsolete and requires reclamation (i.e., a new timestamp). 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 (i.e., 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) the number of power cycles, (2) the threshold of the active time, (3) the threshold of the "extended" active time, A bit indicating whether an OR relationship exists between the parameters (i.e., 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)는 그 검사를 시작한다.FIG. 7 is a flow chart that illustrates the test TUP act in greater detail (Act 500). First, a check is made to determine if the memory device 200 has started to check the TUP by looking for configuration data stored in the memory 210 (Act 505). If the memory device 200 does not begin checking the TUP, the memory device 200 uses the final timestamp received by the memory device 200 to generate a time estimate (act 510) An attempt is made to authenticate the entity using. When the memory device 200 starts inspecting the TUP, the memory device 200 starts its checking.

첫째, 메모리 디바이스(200)는 최종 타임 스탬프 이후 TUP가 메모리 디바이스(200)의 전력 사이클의 수의 검사를 포함하는지를 결정한다(액트 515). 이 실시예에서, 이것은 상기된 "전력 사이클들" 값을 검사함으로써 수행된다. "전력 사이클들" 값이 영인 경우, 전력 사이클의 수는 검사되지 않는다. "전력 사이클들" 값이 영이 아닌 경우, 전력 사이클의 수는 임계값으로서 상기 값을 사용하여 검사된다. 전력 사이클의 수는 메모리 디바이스(200)가 얼마나 많이 전력이 상승되었는지의 카운트, 최종 타임 스탬프 이후 메모리 디바이스(200)가 얼마나 많이 전력이 하강되었는지를 가리키는 카운트이다(즉, 매 전력 상승 동안, 전력 하강이 있어야 한다). 전력 사이클의 수는 CPU(260)에 의해 측정될 수 있다. 메모리 디바이스(200)가 전력 사이클을 통해 진행하는 매시간, CPU(260)는 펌웨어에서 장치 리셋 루틴을 호출할 수 있다. CPU(260)가 액티브 시간 카운터에 하나의 유니트를 부가하는 상황에서처럼, 장치 리셋 루틴으로 인해, CPU(260)는 CPU RAMS(262) 및/또는 메모리(210)의 전력 사이클 카운터에 하나의 유니트를 부가한다. 액티브 시간 카운터로 인해, 전력 사이클 카운터는 메모리 소비를 감소시키기 위해 주기적으로 업데이트될 수 있다.First, the memory device 200 determines whether the TUP after the last timestamp includes a check of the number of power cycles of the memory device 200 (Act 515). In this embodiment, this is done by checking the above "power cycles" value. If the value of "power cycles" is zero, the number of power cycles is not checked. If the "power cycles" value is not zero, the number of power cycles is checked using this value as a threshold. The number of power cycles is a count of how much power the memory device 200 has been powered up to, a count indicating how much power the memory device 200 has been powered down since the last time stamp (i.e., during each power rise, . The number of power cycles may be measured by the CPU 260. Every time the memory device 200 proceeds through a power cycle, the CPU 260 may invoke a device reset routine in the firmware. Due to the device reset routine, as in the situation where the CPU 260 adds one unit to the active time counter, the CPU 260 may send one unit to the CPU RAMS 262 and / or the power cycle counter of the memory 210 . Due to the active time counter, the power cycle counter may 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 real time not provided by the measured active time (because the active device can not measure the active time if the memory device 200 is not "active"). Because the memory device 200 does not know how much it has passed between power cycles, the number of power cycles does not indicate how inaccurate the measured active time is. However, aspects of whether or not the memory device 100 is used outside of the expected usage pattern are provided, and the expected usage pattern can roughly indicate how inaccurate the measured active time is. For example, a time estimate is made when the memory device 200 has 10 power cycles, since the final time stamp is a time estimate that occurs when the 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 a power cycle number check, the memory device 200 determines the power of the memory device 200 after the last time stamp to know whether the number of power cycles exceeds a threshold amount set in the "power cycles & The number of cycles is checked (act 520). The critical number can be configured per ACR to reflect the desired time tolerance. For example, if it is necessary to ensure that the certificate is very sensitive and that the expiration date of the certificate or CRL does not expire, the threshold number may be set to one. Thus, once the memory device 200 shuts down (and thus, if there is at least some amount of time that can not be accounted for by the measured active time), the TUP check of these parameters fails. On the other hand, if the authentication is not sensitive, the number of power cycles is set to a higher number (or not at all), so that the TUP check can be performed even if some number of power cycles are present Some amount of time that can not be accounted for).

전력 사이클의 수 검사가 실패하고 TUP 파라미터들 사이에 OR 관계가 존재한다는 것이 결정되면(액트 525), TUP 검사는 실패한다(액트 530). 메모리 디바이스(200)는 실패를 가리키는 메시지를 호스트 디바이스(300)에 전송하고, 상기된 절차는 새로운 타임 스탬프를 얻기 위해 사용된다. 전력 사이클의 수의 검사가 통과하거나, 실패하고 TUP 파라미터들 사이에 OR 관계가 없는 것이 결정되면(액트 525), 처리는 최종 타임 스탬프 이후 TUP가 액티브 시간의 검사를 포함하는지를 결정함으로써 계속된다(액트 535).If the number of power cycles check 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 failure to the host device 300 and the procedure described above is used to obtain a new timestamp. (Act 525), the process continues by determining whether the TUP after the last time stamp includes a check of the active time (Act < RTI ID = 0.0 > 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 critical number of seconds (or some other unit of time). Due to the number of power cycles, the amount of critical active time 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 a guarantee is required that the authentication is very sensitive and that the expiration date of the certificate or CRL has not elapsed, then the threshold amount of measured active time can be set very low. Conversely, if authentication is not sensitive, the threshold of the measured active time may be set higher (or even not considered at all).

액티브 시간의 검사가 실패하고 TPU 파라미터들 사이에 OR 관계가 존재한다는 것이 결정되면(액트 545), TUP 검사는 실패한다(액트 550). 메모리 디바이스(200)는 실패를 가리키는 메시지를 호스트 디바이스(300)에 전송하고, 상기된 절차는 새로운 타임 스탬프를 얻기 위하여 사용된다. 액티브 시간의 검사가 통과하거나, 실패하고 TUP 파라미터들 사이에 OR 관계가 존재하지 않는 것이 결정되면(액트 545), 처리는 TUP가 "연장된" 액티브 시간의 검사를 포함하는지를 결정함으로써 계속된다(액트 555).If the active time check fails and it is determined that there is an OR relationship between the TPU parameters (act 545), then the TUP check fails (act 550). The memory device 200 sends a message indicating failure to the host device 300 and the procedure described above is used to obtain a new timestamp. (Act 545), the process continues by determining if the TUP includes an "extended" active time check (see Acts 545). If the active time check passes or fails and there is no OR relationship between the TUP parameters 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 can not be a true measure of the actual active time that the memory device 200 does not continuously measure the active time. That is, if the memory device 200 is "inactive" (e.g., when the memory device 200 is in idle or sleep mode, or when the memory device 200 is powered down or the memory device 200 is removed from the host device 300 - in this embodiment, the hardware timer block 270 stops generating clock ticks and / or whatever event the CPU 260 stops responding to the ticks), the measured active time is inactive It would be less than the actual time passed since the measurement started since there is nothing in the memory device 200 to say that the time passes. For example, assume that a timestamp was received on January 1, and memory device 200 measured two active 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 (i.e., by adding two days of active time to the last timestamp of January 1). When the memory device 200 continuously measures the active time, this time estimate accurately represents the actual time (assuming hardware timer block 270 and CPU 260 function correctly). However, if the memory device 200 does not continuously measure the active time (i.e., if the memory device 200 is inactive at any time after starting to measure the active time), the time estimate does not accurately represent the actual time. At best, the time estimate indicates that the actual time is at least January 3. The actual time may be January 4 or some later days (June 29, November 2, December 5, next year, etc.). Thus, checking of 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 handle 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 measured last time (s) is the active time, a value that is 50% of the actual time is formed, (Or "extend") the measured active time of 3 days to form the active time (since the measured active time was 50% of the actual time). Additional information regarding "extended" active time may be found in U.S. Patent Application Serial No. 11 / 811,284 entitled " Method for Improving Accuracy of a Time Estimate from a Memory Device ", and U.S. Patent Serial No. 11 / Quot; Accuracy of a Time Estimate ", which is filed herewith and incorporated herein by reference.

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

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

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

다운 시간(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 down time parameter is configured to be used, the down time is set to one. The memory device 200 uses the downtime property to evaluate when the timestamp update is needed in the following manner: ServiceTime (e. G., The validity of the certificate or the validity of the CRL) A 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)는 차례로 상기된 바와 같이 타임 스탬프 업데이트를 시작할 수 있다.7, if the checking of the "extended" active time fails (act 560), the examination 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 timestamp. If the "extended" active time check passes (or the memory device 200 is not started to check the TUP), the memory device 200 sends back a "TUP pass" message 510,570 back to the host device 300 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 timestamp and the measured active time to verify the certificate (Act 585) and verify the CRL (Act 590). The time at which the expiration time of the certificate and CRL was generated After the evaluation, the memory device 200 sends the OK message back to the host device 300, and other steps of the authentication method, if any, can be performed. Once the entity is authenticated, (By setting a secure channel between the player 301 and the DRM module 207), otherwise, if the certificate and / or the CRL expire, the memory device 200 will fail the authentication attempt To the host device 300. The host device 300 may in turn initiate a timestamp 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. Because the measured active time may be inaccurate, the "time extension" techniques described above may be used to improve time evaluation accuracy. However, it is possible that the "extended" active time may actually be greater than the actual time. When examining the TUP, the "over-extended" active time causes a new timestamp. However, when verifying a certificate or CRL, the "over-extended" active time can prevent an appropriate entity from being authenticated. Thus, it may not be desirable to use "time extension" when generating a time estimate for authentication.

요약하여, 상기 방법에서, 메모리 디바이스(200)는 엔티티를 인증하기 위한 요청을 수신하고 엔티티를 인증하기 위한 시도 이전에, 메모리 디바이스(200)는 만약 새로운 타임 스탬프가 필요한지를 결정한다. 새로운 타임 스탬프가 필요하면, 메모리 디바이스(200)는 새로운 타임 스탬프를 바탕으로 시간 평가를 생성하고 증명서 및/또는 CRL 유효성 기간에 대해 시간 평가를 비교함으로써 새로운 타임 스탬프를 얻어 엔티티를 인증하기 위하여 시도한다. 만약 새로운 타임 스탬프가 필요하지 않으면, 메모리 디바이스는 최종 타임 스탬프를 바탕으로 시간 평가를 생성하고 증명서 및/또는 CRL 유효성 기간들에 대한 시간 평가를 비교함으로써 엔티티를 인증하기 위하여 시도한다.In summary, in the method, the memory device 200 determines whether a new timestamp is needed before attempting to authenticate the entity and to receive a request to authenticate the entity. If a new timestamp is required, the memory device 200 attempts to authenticate the entity by generating a new timestamp based on the new timestamp and comparing the time estimate against the certificate and / or CRL validity period . If a new timestamp is not needed, the memory device attempts to authenticate the entity by generating a time estimate based on the final timestamp and comparing the time estimate 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 timestamp is obtained before authenticating the entity. In other words, checking the TUP and getting a new timestamp does not require that the entity be authenticated before checking the TUP or before a new timestamp is obtained. This contrasts with systems that use a single server to provide both timestamps and DRM licenses. The server requires memory device authentication before providing the time stamp (or other information) to the memory device. This provides a "catch 22" situation to authenticate the server, and a new time is required, but a new timestamp can only be obtained after the server is authenticated. To avoid this situation, some prior systems do not use time for authentication processing. While avoiding the "catch 22" situation, the ignore time can lead to authenticating the entity that should not be authenticated (e.g., because the certificate and / or CRL has expired).

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

비록 플레이어(301)가 타임 서버(100)로부터 타임 스탬프를 메모리 디바이스(200)에 공급하기 위한 도관으로서 사용되도록 인증될 필요가 없지만, 타임 서버(100)가 바람직하게 타임 스탬프가 신뢰적인 소스로부터 발생하는 것을 보장하기 위하여 인증되는 것은 주지되어야 한다. 이것은 도 4 및 6의 액트 435에서 도시되고, 타임 서버의 100 증명서 및 CRL은 타임 스탬프를 허용하기 전에 검증된다. 그러나, 상기된 "캐치 22" 상황을 피하기 위하여, 메모리 디바이스(200)는 타임 서버의 100 증명서 및 CRL에 대한 유효 기간이 유효하고 따라서 생성된 시간 평가에 대한 유효성 기간들을 검증하지 않는다는 것을 가정한다.Although the player 301 need not be authenticated to be used as a conduit for supplying a time stamp from the time server 100 to the memory device 200, the time server 100 preferably generates a time stamp from the trusted source It should be appreciated that it is authenticated to ensure that This is shown in act 435 of FIGS. 4 and 6, and the time server's 100 certificate and CRL are verified before allowing time stamps. However, in order to avoid the above "catch 22" situation, the memory device 200 assumes that the validity period for the time server 100 certificate and CRL is valid and therefore does not validate 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 indicated in the grant control record (PCR) of the ACR. 3, player 301 may communicate with DRM module 207 over a secure channel to access protected content 205 of memory device 200. For example, (As another example, the ACR for storage application 302 allows application 302 to store protected content 205 in memory device 200). The DRM module 207 attempts to validate the DRM license 206 for the protected content 205 before unlocking the protected content (e.g., although the player 301 has been authenticated, but the content is protected To determine if the license is still valid and has expired). To this end, the DRM module 207 requests time estimation from the time module 204 of the memory device 204. (The time module 204 is the software described above used to store and generate the various components used to generate the time estimate (e.g., time stamp, active time, number of power cycles, "extension" / Or hardware). The DRM module 207 compares the generated time estimate with the expiration date and / or validity period of the license 206 to determine whether the license is valid or not. The DRM module 207 may perform additional checks to validate the license, such as (but not limited to) determining whether the protected content 205 has been played more than a certain number of times.

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

메모리 디바이스(200)가 단일 TUP(또는 동일한 TUP를 공유하는 모든 다중 ACR들)를 가진 단일 ACR을 가질 때, 단일 "하나의 크기가 모두에 적합한" TUP는 모든 서비스 제공자들에 대한 권리 밸런스를 찾지 못할 수 있다. 따라서, 이 실시예에서, 메모리 디바이스(200)는 연관된 서비스 제공자에 의해 구성할 수 있는 각각 다른 TUP(TUP1,TP2)를 가진 다수의 ACR들(201,202)을 가진다. 상기 논의된 바와 같이, 다른 ACR들의 사용을 통해, 메모리 디바이스(200)는 다른 인증 방식들(대칭, 비대칭 인증, 등)을 사용하여 인증하도록 구성될 수 있다. 다른 ACR들의 사용은 구성 가능한 시간 허용 오차들을 허용한다. 즉, ACR들의 구성 가능한 TUP들의 사용을 통해, 서비스 제공자들은 메모리 디바이스의 시간-유효 파라미터들(예를 들어, 액티브 시간, 전력 사이클의 수, "연장된" 액티브 시간/다운 시간) 중 하나 또는 그 이상이 구식으로 고려되고, 타임 스탬프 업데이트를 트리거해야 할 시기를 지정하여 자신의 시간 허용 오차를 정의할 수 있다. 구성 가능한 TUP들을 형성함으로써, 서비스 제공자는 단일 "하나의 크기가 모두에 적합" TUP에 의존하는 대신 최종 사용자들의 관계 및 특정 필요성에 따라 시간 허용 오차를 구성할 수 있다.When the memory device 200 has a single ACR with a single TUP (or all the multiple ACRs sharing the same TUP), a single "one size all fit" TUP finds the right balance for all service providers I can not. Thus, in this embodiment, the memory device 200 has multiple ACRs 201,202 with different TUPs (TUP1, TP2) that can be configured by the associated service provider. As discussed above, through the use of other ACRs, the memory device 200 can be configured to authenticate using other authentication schemes (symmetric, asymmetric authentication, etc.). The use of different ACRs allows configurable time tolerances. That is, through the use of configurable TUPs of ACRs, the service providers can determine whether one or more of the time-valid parameters (e.g., active time, number of power cycles, "extended" active time / This is considered obsolete and you can define your own time tolerance by specifying when to trigger the timestamp update. By forming configurable TUPs, the service provider can configure the time tolerance according to the particular needs and the relationships of 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 period of time (e.g., 10 minutes). By allowing the end user to obtain a new certificate every hour that 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 of the end user requesting the certificate . Thus, for this business model, the service provider needs strict tolerances for currency definition. As another example, if the service provider has a very flexible install base of end users, the service provider may want to call the certificate frequently as a major part of the business model. In this situation, the service provider wants a strict time tolerance to ensure that the most recent CRL is used for authentication. On the other hand, if the service provider provides a monthly subscription service that users regularly access the service provider &apos; s web site to obtain new content and receive a forced timestamp update, the service provider may request the end- It does not strictly require time tolerance because it can be connected.

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 individual pieces of content. In this way, instead of an authenticated entity that handles all the pieces of content equally, an entity may obtain a new timestamp for some content, using an existing timestamp for other content. (Unlike the ACR phase TUP, which is only checked during authentication, the licensed TUP can be checked every time the DRM module 207 attempts to validate the license).

예를 들어 영화가 24 시간 동안만 시청될 수 있는 것을 말하는 라이센스에 따라 사용자가 그의 메모리 디바이스에 2시간 영화를 다운로드하는 상황을 고려하자. 서비스 제공자는 24 시간 기간 후 사용자가 영화를 시청할 수 없지만, 그는 새로운 타임 스탬프를 얻기 위하여 네트워크에 접속함으로써 정상 사용자에게 불편을 주기를 원하지 않을 수 있다. 따라서, 서비스 제공자는 액티브 시간이 4시간 이상이면(2시간 영화를 2번 시청하기 위하여 요구된 액티브 시간의 양) 새로운 타임 스탬프를 요구하는 라이센스 상에 TUP를 배치하기를 결정할 수 있다. DRM 모듈(207)이 라이센스를 유효화하기 위하여 시도할 때 액티브 시간이 4시간보다 크면, 사용자는 영화를 시청할 수 없을 것이다 - 필수적 이지는 않지만 라이센스가 만료되기 때문에, 그러나 새로운 타임 스탬프가 필요하기 때문에. (액티브 시간 대신 또는 부가하여, 전력 사이클의 수는 TUP에 사용될 수 있다. 예를 들어, 평균 사용 패턴을 바탕으로, 10 또는 그 이상의 전력 사이클들은 메모리 디바이스가 24 시간 이상 사용되었다는 것을 가리킬 수 있다). 만약 새로운 타임 스탬프로 생성된 시간 평가가 유효한 경우 라이센스를 가리키면, DRM 모듈(207)은 영화가 다시 플레이되게 할 것이다.For example, consider a situation in which a user downloads a movie for two hours to his memory device under a license that says that the movie can only be watched for 24 hours. The service provider may not be able to watch the movie after the 24 hour period, but he may not want to inconvenience the normal user by accessing the network to obtain a new timestamp. Thus, the service provider may decide to place the TUP on a license that requires a new timestamp if the active time is four hours or more (the amount of active time required to view the two-hour movie twice). If the active time is greater than four 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 timestamp is required. (Alternatively, 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, ten or more power cycles may indicate that the memory device has been used for more than 24 hours) . If the time stamp generated by the new timestamp is valid and indicates a 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 allowing the per-license TUP to be configured, the TUP can be tailored to the content. Thus, instead of expiring a movie after 24 hours, if the movie expires a week later, the licensing time tolerance 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 use a license to trigger a time update 70 hours after the active time (i.e., 7 days multiplied by 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 should be viewed once, then the TUP can be designed such that a new timestamp is required three minutes after the active time have.

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

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

상기 예들에 의해 도시된 바와 같이, 라이센스 파일들상에 구성할 수 있는 TUP들의 사용을 통해, 특정 컨텐트의 서비스 제공자는 그가 타임 스탬프 업데이트 동안 호스트 디바이스를 네트워크에 접속시키게 요구함으로써 고객들을 당황스럽게 하지 않도록 적당하고 생각하는 시간 업데이트를 밸런싱 할 때마다 알릴 수 있다. 이 실시예에서 메모리 디바이스가 다중 목적, 다중 TUP들을 가진 다중-애플리케이션 메모리 디바이스이기 때문에, 메모리 디바이스상 하나의 서비스는 특정 시간 후 셧다운될 수 있고, 메모리 디바이스상 다른 서비스들이 여전히 인에이블되는 것은 주지되어야 한다. 즉, 비록 인증되었지만 플레이어는 메모리 디바이스상 특정 컨텐트를 플레이할 수 있고 그러나 다른 컨텐트의 라이센스들과 연관된 다른 TUP들로 인해 새로운 타임 스탬프가 얻어지지 않으면 메모리 디바이스상 다른 컨텐트를 플레이할 수 없게 할 수 있다. As illustrated by the above examples, through the use of configurable TUPs on license files, the service provider of a particular content is not to embarrass the customers by requiring him to connect the host device to the network during timestamp update You can notify whenever you are balancing a time update that you think is appropriate. It should be noted that one service on the memory device may be shut down after a certain time and that other services on the memory device are still enabled because the memory device in this embodiment is a multi-purpose, multi-application memory device with multiple TUPs do. That is, although authenticated, the player can play certain content on the memory device, but can not play other content on the memory device unless a new timestamp is obtained due to other 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. (Applications may sometimes be referred to herein as "extended" or "internal extended" In the embodiment shown in FIG. 3, the application has the form of a DRM module 207. However, other applications may be used, for example e-trade, banking, credit card, electronic money, life measurement, access control, personal data, or secure e-mail functionality. It should also be noted that although only a single application is shown in memory device 200 in Fig. 3, the memory device may have several applications (e. G., DRM module and e-trade module).

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

데이터가 적당한 인증된 엔티티들에 의해서만 액세스되도록 중앙 보안 시스템이 액세스 제어 메카니즘을 제공하고 메모리 디바이스에 저장된 데이터를 보호하는 동안, 중앙 보안 시스템 자체는 보호하는 바로 그 데이터를 이해 및 처리할 수 없다. 보호된 데이터를 이해하고 처리할 수 있는 메모리 디바이스에서 실행하는 애플리케이션들이 있다. 예를 들어, 보호된 데이터가 DRM 라이센스이면, DRM 에이전트 - 중앙 보안 시스템이 아님 -는 라이센스를 유효화할 수 있다. 따라서, 중앙 보안 시스템은 구성할 수 있는 애플리케이션 무관 툴박스로 고려될 수 있다. 동작시, 서비스 제공자는 메모리 디바이스상에 애플리케이션을 배치하고 애플리케이션과 특정 엔티티를 연관시키는 ACR을 정의한다. 중앙 보안 시스템의 시점에서, 어떤 애플리케이션이 수행되는지(예를 들어, 애플리케이션이 DRM 라이센스 유효화, e-무역 기능, 등등)를 아는 것이 아니고 단지 특정 ACR에 인증된 엔티티들이 ACR에서 정의된 애플리케이션과 통신하도록 허용된다. 일단 엔티티가 중앙 보안 시스템에 의해 인증되면, 중앙 보안 시스템은 엔티티 및 애플리케이션 사이의 보안 채널을 개방한다.While the central security system provides the access control mechanism and protects the data stored in the memory device so that the data is only accessed by the appropriate authorized entities, the central security system itself can not understand and process the data it protects. There are applications that run on memory devices that can understand and handle 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, the central security system can be considered as an application-independent toolbox that can be configured. In operation, the service provider defines an ACR that places the application on the memory device and associates the application with a particular entity. At the point of view of the central security system, it is not necessary to know which application is being executed (e.g., an application is DRM license validation, e-trade function, etc.) and only entities authenticated to a particular ACR are allowed to communicate with applications defined in the ACR Is allowed. Once the entity is authenticated by the central security system, the central security system opens a secure channel between the entity and the application.

몇몇 상황들에서, 중앙 보안 시스템 및 애플리케이션은 시간을 알 필요가 있다. 예를 들어, 중앙 보안 시스템은 시간-바탕 인증(예를 들어, 비대칭 인증)을 위한 시간을 알 필요가 없고, 애플리케이션은 시간-바탕 동작(예를 들어, DRM 라이센스 유효화)을 위한 시간을 알 필요가 있을 수 있다. 상기된 바와 같이, 메모리 디바이스는 메모리 디바이스에서 실행하는 애플리케이션들 및 중앙 보안 시스템 모두에 시간을 제공할 수 있는 중앙 타임 모듈을 가진다. 예를 들어, 도 3을 참조하여, 모듈(204)은 다양한 엔티티들을 인증하기 위해 비대칭 ACR들(201,202)에 시간을 제공할 뿐 아니라, 라이센스 유효성을 검증하기 위하여 DRM 모듈(207)에 시간을 제공할 수 있다. 도 8과 관련하여 하기 될 바와 같이, 몇몇 상황들에서, 메모리 디바이스상 애플리케이션은 메모리 디바이스의 타임 모듈로부터 시간에 부가하여 또는 대신 호스트 타임을 사용하기를 선택할 수 있다.In some situations, central security systems and applications need to know the time. For example, the central security system does not need to know the time for time-based authentication (e.g., asymmetric authentication) and the application needs to know the time for a time-based operation (e.g., DRM license validation) . As noted above, the memory device has a central time module that can provide time for both the applications running on the memory device and the central security system. For example, referring to FIG. 3, module 204 not only provides time for asymmetric ACRs 201 and 202 to authenticate various entities, but also provides time to DRM module 207 to verify license validity can do. 8, in some situations, an application on a memory device may choose to use host time in addition to or instead of time from a 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)보다 안전할 수 있다.FIG. 8 illustrates a memory device 600 in communication with host device 700. FIG. Host device 700 includes an entity (here player 710) and has some mechanism (e.g., a battery backup clock) for providing time 720. In this embodiment, the memory device 600 includes a symmetric ACR 610 (although an asymmetric ACR may be used), a time module 620, a DRM module 630, a protected content 640, and a protected content 640). &Lt; / RTI &gt; (In Figure 8, the application of the memory device is the DRM module 630. It is noted that other types of applications may be used, and one or more applications may be implemented within the memory device). When the player 710 authenticates to the memory device 600 using the symmetric ACR 610, the secure channel 660 may communicate with the player 710 and the DRM module 630 in accordance with the parameters set in the symmetric ACR 610. [ . The DRM module 630 and the player 710 are not known to each other because the service provider defines the symmetric ACR 610 to associate the DRM module 630 with the player 710. Thus, there is a certain level of reliability between the DRM module 630 and the player 710 because they are counterpart members of the same group. Based on this trustworthiness, the DRM module 630 may be programmed to allow the host time 720 from the 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: the time from the host time 720 and the central time module 620 of the memory device. There are advantages and disadvantages associated with each of these time sources. The module 620 may not be accurate at the host time 720 provided by the battery backup continuous clock over time because the time module 620 of the memory device does not continue to track the track of time. On the other hand, due to all the security precautions described above, over time, the module 620 may be able to change the host time 720, especially if the user of the host device 700 can change the 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 that an application can not 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 slowness (or name) of the host time 720 and the time from the time module 620. [ The application may be programmed to generate a time estimate using both time sources in some manner (e. G., Taking an average of the 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 host device through authentication processing (e.g., 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 can 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 the software application. (In addition to not trusting the host time from a relatively unreliable host device, the application can not trust an entity running on the host device, e.g., using content keys, license values or periods, or license change rights. (In place of providing the encryption keys and content to the host device.) However, if the host is a closed system such as an MP3 player, the host &apos; The application running on the host device 600 may trust the host time 720 rather than when the host device 700 is an MP3 player as compared to when the 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 play DRM module 630 to play the 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, the 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 measurement during future sessions. Optionally, the host time 720 may be stored for future use by the application, and the "time-extending" 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-base operation of the application and not for updating the time of the time module 620 (because the application is an "extension" Because it is not. Preferably, the time in the time module 620 is only updated using the reliable time servers (which are part of the same reliable camp as the central security system) as described above. It should be noted that when some applications are executed in the memory device 600, each application may have two time sources: the time from the time module 620 and the time from the host device operating the entity communicating with the application time. However, it may be desirable that the host time associated with one application is 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 discussed above, an application running on memory device 600 (such as DRM module 630) may compare the time from the time module 620 to the host time 720 and may be programmed to use the slowness (or name) . For example, the host time 720 may indicate that the host 700 is unable to connect to the time server for a sufficiently long time as the time asymmetry occurs in the host time 720 or because the host clock is hacked. Time. Also as noted above, the host time 720 may be stored for future use by the application. Combining these considerations, the host time 720 can be stored (either alone or with time from the time module 620) for later comparison with the time received from other host devices. Based on the comparison, the memory device may determine whether to use the time from the current host device or from the previous host device to perform the time-based operation. For example, a memory device may be programmed to take a name of two times if the time base action is "not earlier " than the action and to take a slow of the two times if the time base action times are not & . In this manner, the timestamps received from other trusted host devices can be used as a reference for a single multi-host anti-rollback mechanism with respect to a single time server.

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

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

본 발명이 취할 수 있는 선택된 형태들의 도시와 본 발명의 정의로서가 아니고 상기 상세한 설명이 이해되는 것이 의도된다. 다음 청구항들은 본 발명의 범위를 정의하고자 하는 모든 등가물들을 포함한다. 청구항들에서 열거된 액트들은 임의의 순서로 수행될 수 있다 - 그들이 열거되는 순서에 필수적이지 않음. 최종적으로, 여기에 기술된 임의의 바람직한 실시예들의 임의의 측면이 단독으로 또는 서로 결합하여 사용될 수 있다는 것이 주지되어야 한다.It is intended that the detailed description, rather than as a definition of the invention and the forms of illustration which the invention may take, is intended to be understood. The following claims include all equivalents to which the scope of the invention is defined. Acts listed in the claims can be performed in any order - not necessarily in the order in which they are listed. Finally, it should be noted that any aspect of any of the preferred embodiments described herein can 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-engine, 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; Licenses for protected content

Claims (20)

메모리 디바이스에 엔티티를 인증하기 위한 방법으로서,
메모리 디바이스에서,
시간-바탕 인증 기술을 이용하여 엔티티를 인증하기 위한 요청을 수신하는 단계와,
상기 엔티티의 인증을 시도하기 전에, 새로운 타임 스탬프가 필요한지를 결정하는 단계와,
새로운 타임 스탬프가 필요하다면, 상기 새로운 타임 스탬프를 수신한 다음 상기 새로운 타임 스탬프를 바탕으로 시간 평가를 사용하여 상기 엔티티를 인증하기 위해 시도하는 단계를 포함하고,
새로운 타임 스탬프가 필요하지 않으면,
상기 메모리 디바이스가 액티브되었을 때만 동작하는 상기 메모리 디바이스 내의 시간 카운터를 이용하여 이전에 수신된 타임 스탬프에 관련하여 상기 메모리 디바이스의 액티브 시간을 측정하는 단계와,
부정확의 적어도 일부가 상기 메모리 디바이스의 다운 시간에 기인하는 일정 시간 주기 동안 상기 메모리 디바이스에 의해 이전에 측정된 액티브 시간의 정확도를 그 시간 주기 동안의 실제 시간과 비교함으로써 결정하는 단계와,
결정된 상기 정확도를 바탕으로 측정된 상기 액티브 시간을 조절하는 단계와,
이전에 수신된 상기 타임 스탬프에 측정되고 조절된 상기 액티브 시간을 부가함으로써 시간 평가를 생성하는 단계와,
생성된 상기 시간 평가를 이용하여 엔티티를 인증하기 위하여 시도하는 단계를 포함하는, 엔티티 인증 방법.
A method for authenticating an entity to a memory device,
In a memory device,
Receiving a request to authenticate an entity using a time-based authentication technique;
Before attempting to authenticate the entity, determining whether a new timestamp is needed;
If a new timestamp is needed, receiving the new timestamp and then attempting to authenticate the entity using a time estimate based on the new timestamp,
If a new timestamp is not needed,
Measuring an active time of the memory device in relation to a previously received timestamp using a time counter in the memory device that is active only when the memory device is active;
Determining by comparing an accuracy of an active time previously measured by the memory device with an actual time during the time period for at least a portion of the inaccuracy resulting from a down time of the memory device;
Adjusting the active time measured based on the determined accuracy;
Generating a time estimate by adding the active time measured and adjusted to the previously received timestamp;
And attempting to authenticate the entity using the generated time estimate.
삭제delete 제 1항에 있어서, 새로운 타임 스탬프가 필요한지 여부를 결정하는 상기 단계는, 상기 메모리 디바이스에 의해 수신된 최종 타임 스탬프 이후 메모리 디바이스의 전력 사이클의 수, 최종 타임 스탬프 이후 메모리 디바이스의 액티브 시간, 및 최종 타임 스탬프 이후 메모리 디바이스의 측정되고 조절된 상기 액티브 시간 중 하나 이상을 바탕으로 하는, 엔티티 인증 방법.2. The method of claim 1, wherein determining whether a new timestamp is needed comprises: determining a number of power cycles of the memory device after the last timestamp received by the memory device, an active time of the memory device after the last timestamp, Wherein the time stamp is based on at least one of the measured and adjusted active time of the memory device after the time stamp. 제 1항에 있어서, 상기 엔티티를 인증하기 위한 시도는, 비대칭 인증 절차를 사용하여 이루어지는, 엔티티 인증 방법.2. The method of claim 1, wherein an attempt to authenticate the entity is made using an asymmetric authentication procedure. 제 1항에 있어서, 상기 엔티티를 인증하기 위해 시도하는 단계는, 증명서가 유효한지를 결정하는 단계를 포함하는, 엔티티 인증 방법.2. The method of claim 1, wherein attempting to authenticate the entity comprises determining whether a certificate is valid. 제 1항에 있어서, 상기 엔티티를 인증하기 위해 시도하는 단계는, 증명서 취소 리스트(CRL)가 유효한지를 결정하는 단계를 포함하는, 엔티티 인증 방법.2. The method of claim 1, wherein attempting to authenticate the entity comprises determining whether a certificate revocation list (CRL) is valid. 제 1항에 있어서, 상기 새로운 타임 스탬프는 메모리 디바이스와 접속된 호스트 디바이스에 의해 생성되는, 엔티티 인증 방법.2. The method of claim 1, wherein the new timestamp is generated by a host device connected to a memory device. 제 1항에 있어서, 상기 메모리 디바이스는 메모리 디바이스상에 저장된 보호된 컨텐트를 언로킹하기 위하여 디지털 권리 관리(DRM) 키와 라이센스를 저장하는, 엔티티 인증 방법.2. The method of claim 1, wherein the memory device stores digital rights management (DRM) keys and licenses to unlock protected content stored on a memory device. 제 1항에 있어서, 새로운 타임 스탬프가 필요한지를 결정하는 단계는, 상기 엔티티와 연관된 액세스 제어 기록(ACR)의 타임 스탬프 업데이트 정책(TUP)이 새로운 타임 스탬프를 요청하는지를 결정하는 단계를 포함하는, 엔티티 인증 방법.2. The method of claim 1, wherein determining whether a new timestamp is required comprises determining whether a timestamp update policy (TUP) of an access control record (ACR) associated with the entity requests a new timestamp. Authentication method. 제 1항에 있어서, 상기 새로운 타임 스탬프는 빈 채널을 통하여 전송되는, 엔티티 인증 방법.2. The method of claim 1, wherein the new timestamp is transmitted over an idle channel. 메모리 디바이스로서,
새로운 타임 스탬프가 필요할 때를 지정하는 다수의 다른 타임 스탬프 업데이트 정책(TUP)을 저장하는 메모리 어레이와,
상기 메모리 어레이와 통신하고,
시간-바탕 인증 기술을 이용하여 엔티티를 인증하기 위한 요청을 수신하고,
상기 엔티티를 인증하기 위해 시도하기 전에, 상기 엔티티와 연관된 TUP를 바탕으로 새로운 타임 스탬프가 필요한지를 결정하며,
새로운 타임 스탬프가 필요하면, 상기 새로운 타임 스탬프를 수신한 후 상기 새로운 타임 스탬프를 바탕으로 시간 평가를 사용하여 상기 엔티티를 인증하기 위해 시도하고,
새로운 타임 스탬프가 필요하지 않으면,
상기 메모리 디바이스가 액티브되었을 때만 동작하는 상기 메모리 디바이스 내의 시간 카운터를 이용하여 이전에 수신된 타임 스탬프에 관련하여 상기 메모리 디바이스의 액티브 시간을 측정하고,
부정확의 적어도 일부가 상기 메모리 디바이스의 다운 시간에 기인하는 일정 시간 주기 동안 상기 메모리 디바이스에 의해 이전에 측정된 액티브 시간의 정확도를 그 시간 주기 동안의 실제 시간과 비교함으로써 결정하고,
결정된 상기 정확도를 바탕으로 측정된 상기 액티브 시간을 조절하고,
이전에 수신된 상기 타임 스탬프에 측정되고 조절된 상기 액티브 시간을 부가함으로써 시간 평가를 생성하고,
생성된 상기 시간 평가를 이용하여 엔티티를 인증하기 위하여 시도하도록
동작하는, 회로를
포함하는, 메모리 디바이스.
13. A memory device comprising:
A memory array for storing a number of different timestamp update policies (TUP) that specify when new timestamps are needed;
Communicating with the memory array,
Receiving a request to authenticate the entity using time-based authentication technology,
Prior to attempting to authenticate the entity, determining whether a new timestamp is required based on the TUP associated with the entity,
If a new timestamp is needed, attempt to authenticate the entity using a time estimate based on the new timestamp after receiving the new timestamp,
If a new timestamp is not needed,
Measuring an active time of the memory device with respect to a previously received timestamp using a time counter in the memory device that is active only when the memory device is active,
Determining an accuracy of an active time previously measured by the memory device for a predetermined period of time due to at least a portion of the inaccuracy resulting from a down time of the memory device, with an actual time during the time period,
Adjusting the active time measured based on the determined accuracy,
Generating a time estimate by adding the active time measured and adjusted to the previously received time stamp,
To attempt to authenticate the entity using the generated time estimate
Working, circuit
&Lt; / RTI &gt;
삭제delete 제 11항에 있어서, 상기 엔티티와 연관된 TUP는,
상기 메모리 디바이스에 의해 수신된 최종 타임 스탬프 이후 상기 메모리 디바이스의 전력 사이클의 수, 상기 최종 타임 스탬프 이후 상기 메모리 디바이스의 액티브 시간, 및 상기 최종 타임 스탬프 이후 상기 메모리 디바이스의 측정되고 조절된 상기 액티브 시간 중 하나 이상을 포함하는, 메모리 디바이스.
12. The method of claim 11, wherein the TUP associated with the entity comprises:
The number of power cycles of the memory device after the last timestamp received by the memory device, the active time of the memory device after the last timestamp, and the measured and adjusted active time of the memory device after the last timestamp &Lt; / RTI &gt;
제 11항에 있어서, 상기 회로는 비대칭 인증 절차를 사용하여 상기 엔티티를 인증하기 위하여 시도하도록 동작하는, 메모리 디바이스.12. The memory device of claim 11, wherein the circuitry is operative to attempt to authenticate the entity using an asymmetric authentication procedure. 제 11항에 있어서, 상기 회로는 증명서가 유효한지를 결정함으로써 엔티티를 인증하기 위하여 시도하도록 동작하는, 메모리 디바이스.12. The memory device of claim 11, wherein the circuitry is operative to attempt to authenticate an entity by determining whether the certificate is valid. 제 11항에 있어서, 상기 회로는 증명서 취소 리스트(CRL)가 유효한지를 결정함으로써 엔티티를 인증하기 위해 시도하도록 동작하는, 메모리 디바이스.12. The memory device of claim 11, wherein the circuitry is operative to attempt to authenticate an entity by determining whether a certificate revocation list (CRL) is valid. 제 11항에 있어서, 상기 새로운 타임 스탬프는 메모리 디바이스와 접속된 호스트 디바이스에 의해 생성되는, 메모리 디바이스.12. The memory device of claim 11, wherein the new timestamp is generated by a host device connected to a memory device. 제 11항에 있어서, 상기 메모리 디바이스는 메모리 디바이스상에 저장된 보호된 컨텐트를 언로킹하기 위하여 디지털 권리 관리(DRM) 키와 라이센스를 저장하는, 메모리 디바이스.12. The memory device of claim 11, wherein the memory device stores digital rights management (DRM) keys and licenses for unlocking protected content stored on a memory device. 제 11항에 있어서, 상기 복수의 TUP는 각각의 복수의 액세스 제어 기록(ACR)의 일부인, 메모리 디바이스.12. The memory device of claim 11, wherein the plurality of TUPs are part of a respective plurality of access control records (ACRs). 제 11항에 있어서, 상기 새로운 타임 스탬프는 빈 채널을 통해 전송되는, 메모리 디바이스.12. The memory device of claim 11, wherein the new timestamp is transmitted over an idle channel.
KR1020107000091A 2007-06-08 2008-06-05 Memory device with circuitry for improving accuracy of a time estimate used to authenticate an entity and method for use therewith KR101465555B1 (en)

Applications Claiming Priority (5)

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

Publications (2)

Publication Number Publication Date
KR20100031124A KR20100031124A (en) 2010-03-19
KR101465555B1 true KR101465555B1 (en) 2014-11-26

Family

ID=39874443

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107000091A KR101465555B1 (en) 2007-06-08 2008-06-05 Memory device with circuitry for improving accuracy of a time estimate used to authenticate an entity and method for use therewith

Country Status (6)

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

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ITVI20120262A1 (en) * 2012-10-10 2014-04-11 Siav Spa DATA STORAGE DEVICE IN ELECTRONIC FORMAT AND PROCEDURE FOR OPERATING SUCH A DEVICE
KR20200129776A (en) * 2019-05-10 2020-11-18 삼성전자주식회사 Method of operating memory system with replay attack countermeasure and memory system performing the same

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0736559A (en) * 1993-07-22 1995-02-07 Internatl Business Mach Corp <Ibm> Secure time keeping device

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI95980C (en) * 1992-09-04 1996-04-10 Nokia Mobile Phones Ltd Method and switchgear for accurate measurement of time with an inaccurate clock
US6557102B1 (en) * 1997-09-05 2003-04-29 Koninklijke Philips Electronics N.V. Digital trust center for medical image authentication
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
EP1094374B1 (en) * 1999-10-20 2007-12-05 Sony Deutschland GmbH Mobile terminal for a wireless telecommunication system with accurate real time generation
JP2003296278A (en) * 2002-04-05 2003-10-17 Simple Net International Group Kk System and method for data management, program for the data management system, and recording medium for the data management system
JP2004021341A (en) * 2002-06-12 2004-01-22 Csk Corp Client/server system, user authentication method and connecting program
US20040009815A1 (en) * 2002-06-26 2004-01-15 Zotto Banjamin O. Managing access to content
JP4012771B2 (en) * 2002-06-28 2007-11-21 富士通エフ・アイ・ピー株式会社 License management method, license management system, license management program
JP2004171544A (en) * 2002-10-31 2004-06-17 Oki Electric Ind Co Ltd Content browsing system with time restriction
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
JP2004320510A (en) * 2003-04-17 2004-11-11 Arduc Co Ltd Video rental system
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
US7411868B2 (en) * 2004-11-14 2008-08-12 International Business Machines Corporation Estimation of time within untrusted time device disconnected from trusted time device
US8504849B2 (en) * 2004-12-21 2013-08-06 Sandisk Technologies Inc. Method for versatile content control
JP2009508412A (en) * 2005-09-08 2009-02-26 サンディスク コーポレーション Mobile memory system for secure storage and distribution of media content
US20070056042A1 (en) * 2005-09-08 2007-03-08 Bahman Qawami Mobile memory system for secure storage and delivery of media content

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0736559A (en) * 1993-07-22 1995-02-07 Internatl Business Mach Corp <Ibm> Secure time keeping device

Also Published As

Publication number Publication date
CN101779208B (en) 2013-10-16
EP2156355A1 (en) 2010-02-24
TWI417729B (en) 2013-12-01
WO2008151294A1 (en) 2008-12-11
TW200907685A (en) 2009-02-16
JP5343071B2 (en) 2013-11-13
KR20100031124A (en) 2010-03-19
CN101779208A (en) 2010-07-14
JP2010530101A (en) 2010-09-02

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
US8938625B2 (en) Systems and methods for securing cryptographic data using timestamps
US20130004142A1 (en) Systems and methods for device authentication including timestamp validation
US20090165111A1 (en) Method and apparatus for secure management of debugging processes within communication devices
US20080307237A1 (en) Method for improving accuracy of a time estimate used to authenticate an entity to a memory device
JP5180293B2 (en) MEMORY DEVICE HAVING CIRCUIT FOR IMPROVING ACCURACY OF TIME ESTIMATION USED FOR DIGITAL RIGHTS MANAGEMENT (DRM) LICENSE VERIFICATION AND METHOD USED IN THE DEVICE
JP5039931B2 (en) Information processing device
KR101465555B1 (en) Memory device with circuitry for improving accuracy of a time estimate used to authenticate an entity and method for use therewith
TWI386947B (en) Memory device using time from a trusted host device and method for use therewith
JP4673150B2 (en) Digital content distribution system and token 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
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee