KR101238490B1 - 컨텐츠 라이센스의 휴대용 저장 장치에의 바인딩 - Google Patents

컨텐츠 라이센스의 휴대용 저장 장치에의 바인딩 Download PDF

Info

Publication number
KR101238490B1
KR101238490B1 KR1020097023870A KR20097023870A KR101238490B1 KR 101238490 B1 KR101238490 B1 KR 101238490B1 KR 1020097023870 A KR1020097023870 A KR 1020097023870A KR 20097023870 A KR20097023870 A KR 20097023870A KR 101238490 B1 KR101238490 B1 KR 101238490B1
Authority
KR
South Korea
Prior art keywords
host
repository
content
machine
license
Prior art date
Application number
KR1020097023870A
Other languages
English (en)
Other versions
KR20100022953A (ko
Inventor
케다르나스 에이. 두바쉬
제임스 엠. 알코브
패트릭 쉬넬
알렉산드레 브이. 그리고로비치
비크람 만갈로레
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20100022953A publication Critical patent/KR20100022953A/ko
Application granted granted Critical
Publication of KR101238490B1 publication Critical patent/KR101238490B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • G06F21/1014Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to tokens
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • 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/3271Cryptographic 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 using challenge-response
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/603Digital right managament [DRM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Technology Law (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

컨텐츠 라이센스를 휴대용 저장 장치에 바인딩시키는 시스템, 방법, 및/또는 기법("도구")이 기술되어 있다. 컨텐츠 라이센스를 휴대용 저장 장치("저장소")에 바인딩시키는 것과 관련하여, 호스트는 넌스(nonce)를 발생하는 것, 넌스를 저장소로 전송하는 것, 및 저장소로부터 세션 키를 수신하는 것(세션 키는 넌스를 사용하여 발생됨)을 포함하는 인증 프로토콜을 수행할 수 있다. 저장소는 호스트로부터 넌스를 수신하는 것, 넌스에 기초하여 랜덤 세션 키를 발생하는 것, 및 세션 키를 호스트로 전송하는 것을 포함하는 인증 프로토콜을 수행할 수 있다.
Figure R1020097023870
컨텐츠 라이센스, DRM, 휴대용 저장 장치, 라이센스 서버, 공개키, 비밀키

Description

컨텐츠 라이센스의 휴대용 저장 장치에의 바인딩{BINDING CONTENT LICENSES TO PORTABLE STORAGE DEVICES}
다양한 유형의 컨텐츠가 이동식 저장 유닛에서 이용가능하게 되는 일이 점점 더 많아지고 있다. 이들 저장 유닛은 서로 다른 장치가 저장 장치에 들어 있는 컨텐츠에 액세스할 수 있게 해주기 위해 서로 다른 장치에 즉각 삽입될 수 있다.
어떤 경우에, 이 컨텐츠는 라이센스의 적용을 받을 수 있으며, 이 라이센스는 디지털 저작권 관리(digital rights management, DRM) 시스템에 의해 집행된다. 이러한 경우에, 컨텐츠는 주어진 저장 장치에 바인딩, 즉 라이센스 부여될 수 있지만, 컨텐츠가 각종의 서로 다른 장치들로부터 액세스될지도 모른다. 이러한 환경들에서, 라이센싱 정책 또는 제한에 부합하는지의 관리가 DRM 시스템에 어려움을 제공할 수 있다.
컨텐츠 라이센스를 휴대용 저장 장치에 바인딩시키는 시스템, 방법, 및/또는 기법("도구")이 기술되어 있다. 컨텐츠 라이센스를 휴대용 저장 장치("저장소")에 바인딩시키는 것과 관련하여, 컨텐츠에 대한 동작과 상호작용하거나 그 동작을 수행하는 장치("호스트")는 넌스(nonce)를 발생하는 것, 넌스를 저장소로 전송하는 것, 및 저장소로부터 세션 키를 수신하는 것(세션 키는 넌스를 사용하여 발생됨)을 포함하는 인증 프로토콜을 수행할 수 있다. 저장소는 호스트로부터 넌스를 수신하는 것, 넌스에 기초하여 랜덤 세션 키를 발생하는 것, 및 세션 키를 호스트로 전송하는 것을 포함하는 인증 프로토콜을 수행할 수 있다.
이 요약은 이하에서 상세한 설명에 더 기술되는 일련의 개념들을 간략화된 형태로 소개하기 위해 제공된 것이다. 이 요약은 청구된 발명 대상의 중요한 또는 필수적인 특징들을 확인하기 위한 것이 아니며, 청구된 발명 대상의 범위를 정하는 데 보조 수단으로 사용되기 위한 것도 아니다. 예를 들어, 용어 "도구"는 이상에서 또 본 문서 전체에 걸쳐 문맥에 의해 허용되는 시스템(들), 방법(들), 컴퓨터-판독가능 명령어들, 및/또는 기법(들)을 말할 수 있다.
컨텐츠 라이센스를 휴대용 저장 장치에 바인딩시키는 것과 관련된 도구들이 이하의 첨부 도면들과 관련하여 기술되어 있다. 유사한 구성요소들 및 특징들을 참조하기 위해 본 명세서 및 도면 전체에 걸쳐 동일한 번호가 사용된다. 참조 번호에서의 첫번째 숫자는 그 참조 번호가 소개되는 도면을 가리킨다.
도 1은 컨텐츠 라이센스를 휴대용 저장 장치에 바인딩시키는 운영 환경을, 관련 데이터 흐름과 함께 나타낸 블록도.
도 2는 도 1에 도시된 라이센스 서버, 저장소, 및 호스트의 부가적인 측면들을 나타낸 블록도.
도 3은 호스트 및 저장소에 인증서 및 공개/비밀 키를 발행하는 기반구조를 나타낸 블록도.
도 4는 호스트와 저장소가 서로를 인증하는 데 사용할 수 있는 프로토콜을 나타낸 흐름도.
도 5은 호스트와 저장소 간에 세션 키를 설정하는 프로세스를 나타낸 흐름도.
도 6은 저장소에 라이센스 저장 영역을 구현하는 데이터 구조를 나타낸 블록도.
도 7은 사용자가 액세스하기 위해 호스트 상의 컨텐츠를 선택할 때 수행될 수 있는 프로토콜을 나타낸 흐름도로서, 호스트는 선택된 컨텐츠에 적용가능한 라이센스 정책과 대조하여 사용자로부터의 요청을 평가함.
도 8은 도 7에 도시된 프로세스 흐름의 부가적인 측면들을 나타낸 흐름도.
도 9은 사용자가 액세스하기 위해 호스트 상의 컨텐츠를 선택할 때 수행될 수 있는 프로토콜을 나타낸 흐름도로서, 저장소는 선택된 컨텐츠에 적용가능한 라이센스 정책과 대조하여 사용자로부터의 요청을 평가함.
도 10은 도 9에 도시된 프로세스 흐름의 부가적인 측면들을 나타낸 흐름도.
도 11은 토큰 부여 서비스(token granting service)를 포함하는 운영 환경을 나타낸 블록도.
도 12는 저장소가 호스트에게 임시 라이센스 또는 인증서를 발행할 수 있는 운영 환경을 나타낸 블록도.
개요
이하의 문서는 많은 기법들 및/또는 프로세스들을 수행 및/또는 지원할 수 있는 도구들에 대해 기술한다. 이하의 설명은 컨텐츠 라이센스를 휴대용 저장 장치에 바인딩시키기 위해 도구들이 제공하는 예시적인 방법들에 대해 기술한다. 이 설명은 또한 도구들이 수행할 수 있는 기타 기법들 및/또는 프로세스들에 대해서도 기술한다.
도 1은 컨텐츠 라이센스를 휴대용 저장 장치에 바인딩시키는 운영 환경(100)을 나타내고 있다. 운영 환경(100)은 하나 이상의 사용자(102)가 컨텐츠를 획득하고 나중에 시청하고 액세스하기 위해 이를 하나 이상의 저장 장치에 저장할 수 있게 해준다. 도 1은 일반적으로 컨텐츠를 104로 나타내고 있으며, 제한하기 위한 것이 아니라 편의상 2개의 컨텐츠를 104a 및 104n으로 도시하고 있다. 도 1은 또한 하나의 사용자(102)를 도시하고 있으며, 이 사용자는 컨텐츠 또는 미디어 소스(106)로부터 컨텐츠(104a)를 획득할 수 있고 이 컨텐츠를 저장 장치(108)에 로드할 수 있다. 도 1은 2개의 저장 장치(108)를 108a 및 108n으로 도시하고 있고, 또다시 말하지만, 이는 제한하기 위한 것이 아니라 단지 예시를 위한 것이다. 도 1은 컨텐츠(104a)를 저장 장치(108a)(본 명세서에서 편의상 줄여서 "저장소"라고 함)에 저장되어 있는 것으로 도시하고 있고, 컨텐츠(104n)를 저장 장치(108n)에 저장되어 있는 것으로 도시하고 있다.
일반적으로, 운영 환경(100)은 임의의 수의 사용자(102)가 임의의 수의 컨텐츠 소스(106)로부터 임의의 수의 컨텐츠(104)를 획득할 수 있게 해준다. 그에 부가하여, 운영 환경은 임의의 수의 저장소(108)를 포함하고 있을 수 있다. 도 1은 제한하기 위한 것이 아니라 단지 설명의 편의상, 도시된 바와 같은 시나리오를 제공한다.
컨텐츠(104)는 노래, 음악, 녹음된 책 또는 잡지 기타 등등의 오디오 성분을 포함할 수 있다. 컨텐츠(104)는 또한 영화, 비디오 클립 기타 등등의 오디오 및/또는 비디오 성분도 포함할 수 있다. 항상 그러한 것이 아니라 어떤 경우에, 비디오 성분은 대응하는 오디오 성분과 결합하여 멀티미디어 컨텐츠를 제공할 수 있다. 컨텐츠(104)는 또한 정지 영상, 게임, 벨소리, 무성 비디오(silent video), 텍스트, 또는 임의의 다른 형태의 디지털화된 정보를, 단독으로 또는 오디오 및/또는 비디오 성분과 함께 포함하고 있을 수 있다.
컨텐츠 소스(106)는 사용자(102)가 컨텐츠(104)를 다운로드할 수 있게 해주기 위해 인터넷 등의 원거리 통신 네트워크를 통해 액세스가능한 서비스를 나타낼 수 있다. 이하의 예들에서 가능한 구현을 제한하지 않고, 컨텐츠 소스(106)는 사용자들이 무료로(예를 들어, 광고를 보는 대가로) 컨텐츠를 다운로드할 수 있게 해주거나, 사용자들이 유료로 컨텐츠를 다운로드할 수 있게 해줄 수 있다. 그에 부가하여, 사용자들은 컨텐츠를 받기 위해 가입을 할지도 모른다.
저장 장치, 즉 저장소(108)를 살펴보면, 이러한 장치의 예들로는 USB(Universal Serial Bus) 버스를 통해 통신을 하는, 플래쉬 메모리(110), SD(Secure Digital) 카드(112), SIM(Subscriber Identity Module) 카드(114), 하드 드라이브, 동글(dongle) 기타 등등의 휴대용 메모리 장치가 있을 수 있지만, 이들로 제한되지 않는다.
운영 환경(100)은 또한 일반적으로 116으로 나타낸, 하나 이상의 라이센스 서버 또는 서비스를 포함할 수 있다. 일반적으로, 라이센스 서버는 사용자(102)가 컨텐츠(104)를 재생하거나 컨텐츠(104)와 다른 방식으로 상호작용하거나 컨텐츠(104)에 대한 동작을 수행하는 데 적절한 임의의 라이센스를 획득할 수 있게 해준다. 라이센스는 어떤 조건 하에서 컨텐츠와 상호작용하거나 컨텐츠에 대한 동작을 수행할 수 있게 해주거나, 또는 컨텐츠와 상호작용하거나 컨텐츠에 대한 동작을 수행하는 것에 적용될 수 있는 정책 또는 제한을 명시할 수 있다. 이러한 정책 또는 제한의 예로는 횟수, 시간 제한 기타 등등이 있을 수 있지만, 이들로 제한되지 않는다.
어떤 경우에, 라이센스 서버(116)는 컨텐츠에 대한 라이센스 뿐만 아니라 컨텐츠 자체로 제공할 수 있다. 따라서, 도 1은 서버(116)를 라이센스/컨텐츠 서버로 표시하고 있다. 이들 경우에, 하나의 개체가 라이센스 서버(116) 및 컨텐츠 소스(106) 둘다의 기능들을 수행할 수 있다. 다른 경우들에, 사용자(102)는 컨텐츠 소스(106)로서 기능하는 한 개체로부터 컨텐츠를 다운로드할 수 있고, 해당 라이센스를 확보하여 컨텐츠를 재생하기 위해 별도의 라이센스 서버와 상호작용할 수 있다.
사용자(102) 또는 사용자를 대신하여 행동하는 임의의 개체가 컨텐츠를 재생하기 위한 해당 라이센스를 획득하면, 운영 환경은 그 라이센스를 저장소(108)에 바인딩시킬 수 있다. 용어 "바인딩"은, 라이센스와 관련하여 본 명세서에서 사용되는 바와 같이, 특정의 장치[예를 들어, 저장소(108)]와 관련된 특정의 컨텐츠 라 이센스를 암호적으로 연관시키는 것을 말하며, 그에 따라 그 장치가 그 라이센스의 조건 하에서 컨텐츠와 상호작용하거나 컨텐츠에 대한 동작을 수행할 수 있게 된다. 도 1에 도시된 바와 같이, 장치(108a)에 암호적으로 바인딩되어 있는 컨텐츠(104a)에 대한 라이센스는 일반적으로 화살표(118a)로 나타내어져 있는 반면, 장치(108n)에 암호적으로 바인딩되어 있는 컨텐츠(104n)에 대한 라이센스는 일반적으로 화살표(118n)로 나타내어져 있다.
운영 환경(100)은 컨텐츠(104)를 재생 또는 시청하거나, 컨텐츠(104)와 다른 방식으로 상호작용하거나, 컨텐츠(104)에 대한 동작을 수행하는 하나 이상의 호스트 장치(120)("호스트")를 포함하고 있을 수 있다. 도 1은, 제한하기 위한 것이 아니라 단지 예시를 위해, 2개의 호스트(120a, 120n)를 나타내고 있다. 도 1은 컨텐츠(122a, 122n)가 저장 장치(108n)에 로드되어, 2개의 서로 다른 호스트(120a, 120n)를 통해 액세스되는 일례를 제공한다.
호스트(120)를 더 상세히 살펴보면, 호스트는 이동 전화, 스마트 폰, 무선 PDA(personal digital assistant) 기타 등등을 나타낼 수 있는 이동 무선 장치(124) 등의 장치들을 포함할 수 있다. 호스트(120)는 또한 휴대용 미디어 플레이어(126)를 포함할 수 있다. 장치들(124 또는 126) 중 어느 것이라도 오디오, 비디오, 또는 기타 컨텐츠(122)를 재생하기에 적합할 수 있다.
이상에서 기술한 바와 같이, 특정의 컨텐츠에 대한 라이센스(들)는, 화살표(118)로 나타낸 바와 같이, 각자의 저장 장치(108)와 암호적으로 바인딩되어 있다. 라이센스를 저장소에 바인딩시키는 것은 라이센스를 특정의 호스트(102)에 바인딩시키는 것과 대조된다. 컨텐츠에 대한 라이센스가 저장소(108)에 암호적으로 바인딩되어 있기 때문에, 라이센스는 저장소(108)와 함께 "다닌다". 이들 라이센스는, 라이센스가 암호적으로 바인딩되어 있는 저장소와 통신을 하는 어느 호스트라도, 그 호스트가 유효한 호스트 인증서를 가지고 있고 호스트 기능의 적합한 구현을 제공하기만 한다면, 컨텐츠를 재생할 수 있게 해준다.
도 1은 라이센스(118)에 대한 몇가지 시나리오를 나타낸 것이다. 어떤 시나리오들에서는, 라이센스가 먼저 호스트로 가고, 이어서 저장소로 갈 수 있다. 도 1은, 블록(116)에서 블록(120a)으로, 이어서 블록(108a)으로 가는 점선(118a)으로 나타낸 바와 같이, 이 시나리오의 일례를 제공한다. 다른 시나리오들에서는, 라이센스가 먼저 저장소로 가고, 이어서 호스트로 갈 수 있다. 도 1은, 블록(116)에서 블록(108n)으로, 이어서 블록(120n)으로 가는 점선(118n)으로 나타낸 바와 같이, 이 시나리오의 일례를 제공한다.
이 라이센싱 시나리오의 일례로서, 도 1은, 점선(118n)으로 나타낸 바와 같이, 저장소(108n)에 암호적으로 바인딩되어 있는 컨텐츠(104n)에 대한 라이센스(118n)를 도시하고 있다. 사용자(102)와 동일하거나 그렇지 않을 수 있는 사용자(128)는, 예를 들어, 저장소(108n)를 호스트(120a)에 삽입하고 호스트(120a)에 적절한 명령을 지시함으로써, 이 라이센스(118n)의 조건 하에서 컨텐츠(104n)를 재생할 수 있다. 도 1은 일반적으로 호스트(120a)에서 컨텐츠(104n)를 재생하는 것을 122a로 나타내고 있다. 그렇지만, 사용자(128)가 그 후에 저장소(108n)를 호스트(120a)로부터 제거하고 저장소(108n)를 다른 호스트(120n)에 삽입하는 경우, 컨텐츠(104n)에 대한 라이센스가 저장소(108n)와 함께 다른 호스트(120n)로 넘어간다. 제1 호스트(120a)는 컨텐츠(104n)를 재생할 어떤 잔여 권한도 보유하고 있지 않다. 사용자(128)는 이어서 다른 호스트(120n)에 해당 명령을 지시함으로써 이 다른 호스트에서 컨텐츠(104n)를 재생할 수 있다. 이 시나리오는 임의의 수의 호스트(120)에 대해 몇번이라도 반복될 수 있다.
도 1에 도시된 바와 같은 운영 환경(100)에 대해 기술하였으며, 지금부터의 설명은 도 2에 제공된 바와 같이, 라이센스 서버(116), 저장소(108), 및 호스트(120)에 관한 추가의 상세에 대해 기술한다.
도 2는 도 1에 도시된 라이센스 서버(116), 저장소(108), 및 호스트(120)의 부가적인 측면들을 나타내고 있다. 가능한 구현을 제한하기 위한 것이 아니라 설명의 편의상, 이전에 설명된 어떤 항목들이 도 2로 넘어와 있으며 유사한 참조 기호로 표시되어 있다.
먼저 라이센스 서버(116)를 살펴보면, 이는 202로 표시된 하나 이상의 프로세서를 포함하는 컴퓨터-기반 시스템일 수 있다. 이들 프로세서는 또한 주어진 유형 또는 아키텍처를 갖는 것으로 분류되거나 특징지워질 수 있지만, 동일한 유형 또는 아키텍처를 갖거나 그렇지 않을 수 있다.
라이센스 서버(116)는 또한 일반적으로 204로 나타낸, 하나 이상의 머신-판독가능 또는 컴퓨터-판독가능 저장 매체를 포함할 수 있다. 컴퓨터-판독가능 매체(204)에는, 프로세서(202)에 의해 실행될 때, 본 명세서에서 라이센스 서버에 의해 수행되는 것으로 기술되어 있는 도구들 또는 관련 기능들 중 임의의 것을 수 행하는 명령어들이 들어 있을 수 있다. 프로세서는 컴퓨터-판독가능 매체에 임베딩 또는 인코딩되어 있는 명령어들에 액세스하고 및/또는 이 명령어들을 실행할 수 있고, 및/또는 컴퓨터-판독가능 매체에 저장된 데이터에 액세스할 수 있다.
컴퓨터-판독가능 매체(204)를 더 상세히 살펴보면, 이는 하나 이상의 디지털 저작권 관리(DRM) 모듈(206)을 포함하고 있을 수 있다. DRM 모듈(206)은, 예를 들어, 프로세서에 로드되어 실행될 때, 라이센스 서버로 하여금 디지털 컨텐츠[예를 들어, 도 1의 컨텐츠(104)]에 적용가능한 라이센스를 집행하게 하는 하나 이상의 소프트웨어 모듈을 포함할 수 있다.
다른 구현들에서, 라이센스 서버는 직접 또는 간접 라이센스 획득(direct or indirect license acquisition)(각각, DLA 및 ILA) 시나리오를 가능하게 해줄 수 있다. 용어 '직접 라이센싱(direct licensing)' 시나리오는 장치가 라이센스 서버로부터 직접 라이센스를 획득할 때를 말한다. 용어 '간접 라이센싱(indirect licensing)' 시나리오는 장치가 퍼스널 컴퓨터 또는 기타 프록시 등의 하나 이상의 중간 장치를 통해 통신을 함으로써 라이센스 서버로부터 간접적으로 라이센스를 획득할 때를 말한다.
그에 부가하여, DRM 모듈은 사용자(예를 들어, 도 1의 102)에게 부여된 라이센스에 관한 임의의 권한 및 제한을 해석 및 시행할 수 있다. 이들 제한은 사용자가 특정의 컨텐츠를 몇번이나 재생할 수 있는지를 명시할 수 있거나, 컨텐츠를 재생하는 것에 적용가능한 시간 제한을 명시할 수 있거나 기타 등등을 명시할 수 있다. 일반적으로, DRM 모듈은 특정의 컨텐츠와 상호작용하거나 특정의 컨텐츠에 대 한 동작을 수행하는 것에 적용가능한 정책들을 수립할 수 있다.
이제, 저장 장치, 즉 저장소(108)를 살펴보면, 이는 프로세서(202)와 동일한 유형 또는 아키텍처이거나 그렇지 않을 수 있는 프로세서(208)를 포함하고 있을 수 있다. 저장소(108)는 또한 프로세서(208)와 통신하고 있는 컴퓨터-판독가능 매체(210)를 포함하고 있을 수 있다. 컴퓨터-판독가능 매체(210)에는, 프로세서(208)에 의해 실행될 때, 본 명세서에서 저장소(108)에 의해 수행되는 것으로 기술되어 있는 도구들 또는 관련 기능들 중 임의의 것을 수행하는 명령어들이 들어 있을 수 있다. 프로세서(208)는 컴퓨터-판독가능 매체(210)에 임베딩 또는 인코딩되어 있는 명령어들에 액세스하고 이 명령어들을 실행할 수 있으며, 컴퓨터-판독가능 매체(210)에 저장된 데이터에 액세스할 수 있다.
컴퓨터-판독가능 매체(210)는 저장소에 로드된 임의의 컨텐츠[예를 들어, 도 1의 컨텐츠(104)]를 위한 저장 영역을 포함할 수 있다. 도 2는 이들 컨텐츠 저장 영역을 일반적으로 212로 나타내고 있다. 컨텐츠 저장 영역(212)은, 저장소에 컨텐츠가 얼마나 들어 있는지에 따라, 임의의 수의 개별 컨텐츠 인스턴스를 저장하는 영역을 포함할 수 있다.
컴퓨터-판독가능 매체(210)는 또한 저장소에 로드된 컨텐츠와 연관된 라이센스에 대한 저장 영역을 포함할 수 있다. 도 2는 이들 라이센스 저장 영역을 일반적으로 213으로 나타내고 있다. 라이센스 저장 영역(213)은, 저장소에 컨텐츠가 얼마나 들어 있는지 또 이 컨텐츠 중 얼마 만큼이 라이센스의 적용을 받는지에 따라, 컨텐츠 라이센스들의 임의의 수의 개별 인스턴스를 저장하는 영역을 포함할 수 있다.
컴퓨터-판독가능 매체(210)는 라이센스 서버(116)에 의해 제공되는 DRM 모듈(206)과 협력하고 및/또는 통신을 하는 하나 이상의 소프트웨어 모듈을 포함할 수 있는 DRM 컴포넌트(214)를 포함하고 있을 수 있다. DRM 컴포넌트(214) 및/또는 DRM 모듈(206)은 컨텐츠 저장소(212)에 저장된 컨텐츠에 적용가능한 임의의 라이센스를 집행할 수 있다. 보다 구체적으로는, DRM 컴포넌트는 컨텐츠에 적용가능한 라이센스와 부합하는지를 추적하기 위해 해당 정보를 저장할 수 있다. 예를 들어, DRM 컴포넌트는 컨텐츠가 몇번 액세스되었는지, 컨텐츠가 언제 액세스되었는지 기타 등등을 추적할 수 있다.
컨텐츠/라이센스 저장 영역(212)에 대해 다시 간략히 참조하면, 어떤 구현들에서, 라이센스를 집행하는 것과 관련된 정보에 불법적으로 액세스하는 것을 저지하기 위해(또 어쩌면 방지하기 위해), 컨텐츠/라이센스 저장 영역 중 라이센스를 저장하는 부분은 안전하고 및/또는 은폐되어 있을 수 있다.
컴퓨터-판독가능 매체(210)는 도 2에서 암호 모듈(216)로 표시되어 있는, 암호 모듈(cryptographic module)을 포함하고 있을 수 있다. 암호 모듈(216)은 프로세서(208)와 통신을 하는 별도의 하드웨어 모듈을 포함할 수 있다. 그렇지만, 설명의 편의상, 암호 모듈(216)이 컴퓨터-판독가능 매체(210)에 존재하는 소프트웨어 모듈로서 도시되어 있다. 암호 모듈은, 저장소가 호스트(120)와 안전한 세션을 설정, 유지 및 해제할 수 있게 해주기 위해, 프로세서(208)에 로드되어 실행될 수 있는 하나 이상의 소프트웨어 모듈을 포함할 수 있다. 이들 안전한 세션에 관한 추 가의 상세는 이하에서 제공된다. 그에 부가하여, 암호 모듈(216)은 이들 안전한 세션의 일부로서 또는 임의의 다른 암호 연산(cryptographic operation)의 일부로서 저장소에 할당된 공개/비밀 키를 유지하고 있을 수 있다. 암호 모듈(216)은 또한 암호 연산을 수행하는 암호 알고리즘의 구현들을 포함할 수 있다.
이제 호스트(120)를 살펴보면, 이는 프로세서(202, 208)와 동일한 유형 및 아키텍처이거나 그렇지 않을 수 있는 프로세서(218)를 포함하고 있을 수 있다. 프로세서(218)는, 예를 들어, 사용자가 저장 장치(108)를 삽입할 수 있는 슬롯 및 커넥터를 포함할 수 있는 매체 인터페이스(220)와 통신을 하거나 협력을 할 수 있다.
호스트(120)는 또한 컴퓨터 판독가능 매체(222)를 포함하고 있을 수 있고, 이 매체(222)는 차례로 DRM 컴포넌트(224)를 포함하고 있을 수 있다. 어떤 경우들에, DRM 컴포넌트(224)는 라이센스 서버(116) 상의 DRM 모듈(206)과, 또는 저장소들(108) 중 하나 이상에 있는 DRM 컴포넌트(214)와 통신을 하거나 협력을 할 수 있다. 다른 경우들에, DRM 컴포넌트(224)는 DRM 모듈(206) 및 DRM 컴포넌트(214) 둘다와 통신을 하거나 협력을 할 수 있다.
컴퓨터 판독가능 매체(222)는 호스트를 대신하여 암호 연산을 수행할 수 있는 암호 모듈(225)을 포함하고 있을 수 있다. 암호 모듈(225)은, 예를 들어, 저장소 상의 암호 모듈(216)과 간접적으로 협력을 할 수 있다. 운영 상황의 차이점은 별도로 하고, 암호 모듈(216)에 대한 이상의 설명이 암호 모듈(225)에 똑같이 적용될 수 있다. 예를 들어, 암호 모듈(225)이 프로세서(218)와 통신을 할 수 있는 별도의 하드웨어 모듈로서 구현될 수 있다.
호스트(120)는 저장소(108)가 매체 인터페이스(220)에 삽입되어 있다는 표시(indication)를 수신할 수 있다. 이들 표시는 전기 신호, 소프트웨어 및/또는 하드웨어 인터럽트, 소프트웨어 보고 이벤트 기타 등등을 포함할 수 있다. 이러한 표시에 응답하여, DRM 컴포넌트(224)는 라이센스의 적용을 받는 컨텐츠가 있는지 저장소(108)를 탐색할 수 있고, 컨텐츠에 적용 가능한 어떠한 라이센스도 식별할 수 있으며, 라이센스를 저장소에 바인딩할 수 있다. 그에 부가하여, DRM 컴포넌트는 호스트(120)가 컨텐츠의 재생에 적용가능한 정책들(예를 들어, 재생 횟수, 시간 제한 기타 등등)을 시행할 수 있게 해줄 수 있다.
어떤 경우들에, 호스트(120)는, 예를 들어, 사용자가 호스트에 의해 제공되는 슬롯에 저장소를 삽입할 때, 저장소(108)에 직접 액세스할 수 있다. 다른 경우들에, 호스트는 다른 장치를 통해 간접적으로 저장소에 액세스할 수 있다. 예를 들어, 호스트(120)는, 도 2에 도시된 바와 같이, 사용자가 저장소를 삽입하는 다른 호스트로의 무선 링크를 포함할 수 있다.
컴퓨터 판독가능 매체(222)는 미디어 플레이어 애플리케이션(226)을 포함하고 있을 수 있다. 다른 가능한 구현들에서, 미디어 플레이어 애플리케이션은 컨텐츠[예를 들어, 컨텐츠(122)]를 사용자(128)에게 재생하는 또는 사용자(128)가 컨텐츠에 액세스할 수 있게 해주는 하나 이상의 소프트웨어 모듈을 포함한다. 예를 들어, 미디어 플레이어 애플리케이션은, 특정의 구현에 포함된 컨텐츠의 성질 및 유형에 따라, 영화 또는 비디오 보기 애플리케이션, 오디오 재생 애플리케이션 기타 등등을 포함할 수 있다.
설명의 명확함을 위해 도 2에 도시되어 있지는 않지만, 컴퓨터 판독가능 매체(222)는 호스트에서 재생 또는 액세스될 수 있는 서로 다른 유형의 컨텐츠를 디코딩하는 하나 이상의 컨텐츠 디코더 모듈을 포함하고 있을 수 있다. 컴퓨터 판독가능 매체(222)는 또한 호스트와 서버(116) 간의 통신을 용이하게 해주는 하나 이상의 전송 모듈도 포함할 수 있다.
컴퓨터 판독가능 매체(222)는 DRM 컴포넌트(224)가 미디어 플레이어 애플리케이션(226)에 의해 액세스되는 컨텐츠를 로드하는 컨텐츠 저장 영역(228)을 포함할 수 있다. 예를 들어, 컨텐츠 저장 영역(228)은 미디어 플레이어 애플리케이션을 위한 컨텐츠를 저장하는 버퍼 또는 기타 적당한 데이터 구조를 포함할 수 있다.
컴퓨터 판독가능 매체(222)는 또한 DRM 컴포넌트가 라이센스 정보를 로드하는 라이센스 저장 영역(230)도 포함할 수 있다. 예를 들어, DRM 컴포넌트가 주어진 컨텐츠 인스턴스를 저장소로부터 컨텐츠 저장 영역(228)으로 로드하는 것으로 가정하고 또 컨텐츠가 라이센싱 정책의 적용을 받는 것으로 가정하면, DRM 컴포넌트는 이들 정책을 라이센스 저장 영역(230)에 대해 시행 또는 집행하는 것에 관한 정보를 로드할 수 있다.
이하에서 보다 상세히 설명하는 바와 같이, DRM 컴포넌트(224)는 컨텐츠 저장 영역(228)에 로드된 컨텐츠에 적용가능한 라이센싱 정책을 시행할 수 있다. 사용자[예를 들어, 도 1의 사용자(128)]가 저장소(108)를 매체 인터페이스(220)에 삽입할 때, 사용자는 저장소에 들어 있는 컨텐츠를 브라우징할 수 있고 재생 또는 액세스하기 위한 컨텐츠를 선택할 수 있다. DRM 컴포넌트는 그 다음에 선택된 컨텐 츠가 라이센싱 정책의 적용을 받는지 여부를 판정할 수 있고, 또한 그 라이센싱 정책이 무엇인지를 결정할 수 있다. DRM 컴포넌트는 또한 이들 정책을 나타내는 정보를 라이센스 저장 영역(230)으로 로드할 수 있고, 선택된 컨텐츠를 컨텐츠 저장 영역(228)으로 로드할 수 있다. 적용가능한 라이센싱 제한 또는 정책에 부합하는 것으로 가정하면, DRM 컴포넌트는 미디어 플레이어 애플리케이션이 선택된 컨텐츠에 대한 요청된 동작을 사용자(220)에게 수행하도록 허가할 수 있다. 부합하지 않는 경우에, DRM 컴포넌트는 사용자에게 해당 에러 메시지를 제공하여, 부합하지 않는다는 것을 알려주고 또 어쩌면 해당 라이센스를 획득함으로써 부합을 달성하는 방법을 제안할 수 있다.
이상의 기능들을 수행하기 위해, DRM 컴포넌트(224)는, 어떤 경우들에, 저장소 상의 DRM 컴포넌트(214)와 통신을 할 수 있다. 다른 경우들에, DRM 컴포넌트(224)는 라이센스 서버(116) 상의 DRM 모듈(206)과 통신을 할 수 있다. 다른 경우들에, DRM 컴포넌트(224)는 DRM 모듈(206) 및 DRM 컴포넌트(214) 둘다와 통신을 할 수 있다.
도 2에서 라이센스 서버(116), 저장소(108), 및 호스트(120)의 부가적인 측면들에 대해 기술하였으며, 지금부터의 설명은 도 3에 제공되어 있는 바와 같이, 호스트 및 저장소에게 발행되는 것과 같은 인증서 및 공개/비밀 키에 대해 기술한다.
도 3은 호스트[예를 들어, 호스트(120)] 및 저장소[예를 들어, 저장소(108)]에게 인증서 및 공개/비밀 키를 발행하는 기반구조(300)를 나타낸 것이다. 가능한 구현을 제한하기 위한 것이 아니라 설명의 편의상, 이전에 설명된 어떤 항목들이 도 3으로 넘어와 있으며 유사한 참조 기호로 표시되어 있다.
도 3은, 점선(306)으로 나타낸 바와 같이, 호스트에게 인증서(304)를 발행하는 인증 기관(302)를 나타내고 있다. 도 3이 설명의 편의상 하나의 인증 기관(302)을 도시하고 있지만, 인증 기관(302)은 인증 기관 트리 또는 기타 대규모 인증 기관 그룹 내에 있을 수 있다. 이와 마찬가지로, 인증서(304)가 인증 기관(302)에 의해 발행된 하나의 인증서일 수 있거나, 인증 기관 트리 내의 경로에 대응하는 일련의 인증서들을 나타낼 수 있다.
어떤 경우들에, 호스트 인증서(304)는 적어도 호스트 비밀키(308) 및 호스트 공개키(310)를 포함할 수 있다. 다른 경우들에, 호스트 인증서는 적어도 호스트 공개키(310)를 포함할 수 있고, 호스트 비밀키는 별도로 전달될 수 있다. 호스트는 호스트 공개키에 대응하는 호스트 비밀키에 액세스할 수 있다. 그에 부가하여, 인증 기관(302)은 또한 인증 기관(302) 또는 인증 기관 트리 내의 임의의 인증 기관에 의해 이전에 발행된 인증서들의 현재 상태를 기입하고 있는 인증서 취소 목록(certificate revocation list)(312)을 유지하고 있을 수 있다. 보다 구체적으로는, 인증서 취소 목록(312)은 하나 이상의 주어진 인증서가 취소되었는지 또는 다른 방식으로 무효로 되었는지를 표시하고 있을 수 있다.
도 3은 또한, 점선(318)으로 나타낸 바와 같이, 저장소(108)에게 인증서(316)를 발행할 수 있는 인증 기관(314)도 나타내고 있다. 어떤 경우들에, 저장소 인증서(316)는 적어도 저장소 비밀키(320) 및 저장소 공개키(322)를 포함할 수 있다. 다른 경우들에, 호스트 인증서는 적어도 저장소 공개키(322)를 포함할 수 있고, 저장소 비밀키는 별도로 전달될 수 있다. 저장소는 저장소 공개키에 대응하는 저장소 비밀키에 액세스할 수 있다. 그에 부가하여, 인증 기관(314)은 또한 인증 기관(314) 또는 인증 기관 트리 내의 임의의 인증 기관에 의해 이전에 발행된 인증서들을 기입하고 있는 인증서 취소 목록(certificate revocation list)(324)도 유지하고 있을 수 있다. 보다 구체적으로는, 인증서 취소 목록(324)은 하나 이상의 주어진 인증서가 취소되었는지 또는 다른 방식으로 무효로 되었는지를 표시하고 있을 수 있다.
저장소(108)에 들어 있는 컨텐츠에 적용가능한 라이센스가 저장소(108)에게 발행된 비밀키 또는 일련의 비밀키(320)에 암호적으로 바인딩되거나 그 비밀키와 연관될 수 있다. 이와 같이, 도 3에 도시된 인증서 기반구조(300)는 라이센스를 호스트(120)보다는 저장소(108)에 바인딩시킬 수 있다. 보다 구체적으로는, 라이센스가 공개키(322)의 사용자에 의해 비밀키(320)에 암호적으로 바인딩된다. 도 1에 도시된 화살표(118)가 이러한 라이센스 바인딩을 나타낸다는 것을 상기해보자.
도 3은, 본 명세서에서의 설명의 가능한 구현들을 제한하기 위한 것이 아니라 단지 예시 및 설명의 편의상, 개별적인 인증 기관(302, 314)을 나타내고 있다. 유의할 점은 하나의 인증 기관이 주어진 저장소(108) 및 주어진 호스트(120) 둘다에게 인증서들을 발행할 수 있다는 것이다. 그에 부가하여, 라이센스 서버(예를 들어, 도 1의 116)에 의해 제공되는 DRM 모듈(206)은 인증 기관으로서 기능할 수 있고, 호스트(120) 및/또는 저장소(108)에게 인증서를 발행할 수 있다.
도 3에서 호스트(120) 및 저장소(108)에게 인증서 및 공개/비밀키를 발행하는 기반구조(300)에 대해 기술하였으며, 지금부터의 설명은 도 4에 제공된 바와 같이, 호스트가 저장소에 대해 어떻게 인증을 할 수 있는지에 대해 기술한다.
도 4는 호스트[예를 들어, 호스트(120)] 및 저장소[예를 들어, 저장소(108)]가 서로에 대해 인증을 하는 데 사용할 수 있는 프로토콜(400)을 나타내고 있다. 프로토콜(400)을 이행하면 호스트가 저장소에 들어 있는 컨텐츠를 재생할 수 있게 되고, 프로토콜은 호스트와 저장소 간에 보안 세션을 설정한다. 프로토콜(400)은 사용자[예를 들어, 사용자(128)]가 저장소를 호스트에 삽입할 때 실행될 수 있다.
가능한 구현을 제한하기 위한 것이 아니라 설명의 편의상, 이전에 설명된 어떤 항목들이 도 4으로 넘어와 있으며 유사한 참조 기호로 표시되어 있다. 그에 부가하여, 제한하기 위한 것이 아니라 설명의 편의상, 도 4는 호스트 및 저장소가 제각기 수행할 수 있는 프로토콜(400)의 일부분을 나타내기 위해 다양한 프로세스들을 열 형식으로 배열하고 있다.
블록(402)은 저장소 인증서에 대한 질의를 전송하는 것을 나타내고 있다. 도 4는 저장소 인증서에 대한 질의를 406으로 표시하고 있다. 도 4에 도시된 예에서, 질의(406)는 호스트(120)로부터 저장소(108)로 전달될 수 있다.
블록(406)은 저장소 인증서에 대한 질의(404)를 수신하는 것을 나타내고 있다. 도 4에 도시된 예에서, 저장소는 질의(404)를 수신할 수 있다.
블록(408)은 저장소 인증서를 전송하는 것을 나타내고 있다. 도 4에 도시된 예에서, 블록(408)은 질의에 응답하여 저장소 인증서를 전송하는 것을 포함할 수 있다. 그에 부가하여, 라인(410)으로 나타낸 바와 같이, 블록(408)은 호스트 인증서(예를 들어, 304)가 유효한 경우에만 수행될 수 있다. 호스트 인증서가 유효한지 여부를 판정하는 프로세스에 대해서는 이하에서 더 설명한다.
호스트 인증서가 유효한 것으로 가정하면, 저장소는 질의에 응답하여 자신의 인증서의 사본을 전송할 수 있다. 제한하기 위한 것이 아니라 편의상, 도 4에는 저장소 인증서(316)가 도 3으로부터 넘어와 있다. 호스트로 전달되는 저장소 인증서(316)는 저장소 공개키(예를 들어, 도 3의 322)를 포함하고 있을 수 있다.
호스트에서, 블록(410)은 저장소 인증서를 수신하는 것을 나타내고 있다. 도 4에 도시된 구현에서, 호스트(120)는 저장소 인증서(316)를 수신할 수 있다.
블록(412)은 저장소 인증서의 유효성을 판정하기 위해 저장소 인증서를 CRL과 대조하여 검사하는 것을 나타내고 있다. 예를 들어, 저장소 인증서가 취소되었거나 다른 방식으로 무효화되었을지도 모른다. 도 4에 도시된 구현에서, 호스트(120)는 호스트에 의해 유지되는 CRL과 대조하여, 저장소 인증서를 발행한 인증 기관에 의해 유지되는 CRL과 대조하여, 또는 임의의 다른 개체에 의해 유지되는 CRL과 대조하여 저장소 인증서(316)를 검사할 수 있다.
저장소 인증서가 유효한 경우, 호스트(120)는, 일반적으로 점선(414)으로 나타낸 바와 같이, 도 4에 도시된 프로토콜(400)의 나머지에 참여할 수 있다. 그렇지만, 저장소 인증서가 취소 또는 어떤 다른 이유로 유효하지 않은 경우, 블록(412)에서 호스트(120)는 프로토콜(400)에 더 이상 관여하지 않을 수 있다.
블록(416)은 호스트 인증서(예를 들어, 304)를 저장소(예를 들어, 108)로 전 송하는 것을 나타내고 있다. 본 명세서에서 기술되는 도구들은 사용자(예를 들어, 128)가 저장소를 호스트에 삽입한 것에 응답하여 블록(416)을 수행할 수 있다. 호스트 인증서의 일례가 도 3에서 304로 표시되어 있고, 호스트 인증서(304)가 참조의 편의상 도 4로 넘어와 있다. 도 3에서 전술한 바와 같이, 호스트 인증서는 호스트 공개키(310)를 포함하고 있을 수 있다. 호스트로부터 저장소로 전송되는 호스트 인증서는, 도 4에 도시된 바와 같이, 호스트 공개키(310)를 포함하고 있을 수 있다.
블록(418)은 호스트 인증서를 수신하는 것을 나타내고 있다. 도 4에 도시된 예시적인 구현에서, 저장소(108)(또는 저장소에서 실행 중인 소프트웨어)가 블록(404)을 수행할 수 있다.
블록(420)은, 호스트 인증서가 유효한지 취소되었는지를 판정하기 위해, 인증서 취소 목록(certificate revocation list, CRL)과 대조하여 수신된 호스트 인증서를 검사하는 것을 나타내고 있다. 도 4에 도시된 예시적인 구현에서, 저장소(108)가 블록(420)을 수행할 수 있다. 어떤 경우들에, 블록(420)은 호스트 인증서를 발행한 인증 기관(예를 들어, 도 3의 302)에 의해 유지되는 CRL과 대조하여 호스트 인증서를 검사하는 것을 포함할 수 있다. 어떤 경우들에, 블록(420)은 저장소(108) 등의 다른 개체에 의해 유지되는 CRL과 대조하여 호스트 인증서를 검사하는 것을 포함할 수 있다. 이들 다른 경우에, 다른 개체에 의해 유지되는 CRL은 발행측 인증 기관에 의해 유지되는 CRL의 로컬 사본일 수 있다.
호스트 인증서가 유효하고 취소되지 않은 경우, 저장소는, 일반적으로 점선(410)으로 나타낸 바와 같이, 도 4에 도시된 프로토콜(400)의 나머지를 계속할 수 있다. 그렇지만, 호스트 인증서가 유효하지 않은 것(예를 들어, 취소된 것)으로 밝혀진 경우, 저장소는 프로토콜(400)에 더 이상 참여하지 않을 수 없다. 이 경우에, 저장소에 의해 수행되는 모든 처리가 블록(420)에서 종료될 수 있다.
도 4가 호스트가 저장소 인증서에 대해 저장소에 질의를 하는 일례를 나타낸 것이지만(예를 들어, 404), 저장소도 역시 호스트 인증서에 대해 호스트에 질의를 함으로써 프로세스 흐름(400)을 개시할 수 있다. 간결함을 위해, 도 4는 이들 구현을 나타내고 있지 않지만, 이들 구현에서는, 도 4에 나타낸 역할들 및 기능들이 호스트와 저장소 간에 반대로 될 수 있다.
도 5은 호스트와 저장소 간에 세션 키를 설정하는 프로세스(500)를 나타낸 것이다. 가능한 구현을 제한하기 위한 것이 아니라 설명의 편의상, 이전에 설명된 어떤 항목들이 도 5으로 넘어와 있으며 유사한 참조 기호로 표시되어 있다. 그에 부가하여, 제한하기 위한 것이 아니라 설명의 편의상, 도 5는 호스트 및 저장소가 제각기 수행할 수 있는 프로토콜(500)의 일부분을 나타내기 위해 다양한 프로세스들을 열 형식으로 배열하고 있다.
블록(502)은 저장소 공개키(예를 들어, 322)를 사용하여 넌스(nonce)를 암호화하는 것을 나타내고 있다. 호스트는 도 4에 도시된 프로토콜(400)을 사용하여 저장소 공개키를 획득할 수 있다. 도 5에 도시된 바와 같이, 호스트는 저장소로 전송하기 위한 넌스를 암호화할 수 있다.
블록(504)은 암호화된 넌스를 전송하는 것을 나타내고 있다. 도 5는 암호화 된 넌스를 506으로 나타내고 있고, 블록(504)은 호스트(120)가 암호화된 넌스(506)를 저장소(108)로 전송하는 것을 포함할 수 있다.
저장소에서, 블록(508)은 암호화된 넌스(506)를 수신하는 것을 나타내고 있다. 도 5에 도시된 예에서, 저장소는 암호화된 넌스를 수신한다.
블록(510)은 넌스를 복호화하는 것을 나타내고 있다. 넌스가 저장소의 공개키를 사용하여 암호화된 것으로 가정하면, 블록(510)은 저장소의 비밀키(예를 들어, 320)를 사용하여 넌스를 복호화하는 것을 포함할 수 있다.
블록(512)은 랜덤 세션 키를 발생하는 것을 나타내고 있다. 어떤 구현들에서, 블록(432)은 블록(508)에서 수신된, 암호화된 넌스에 기초하여 랜덤 세션 키를 발생하는 것을 나타내고 있다. 도 5에 도시된 예에서, 저장소는 랜덤 세션 키를 발생한다. 다른 구현들에서, 블록(512)은 넌스에 기초하지 않고 랜덤 세션 키를 발생하는 것을 나타내고 있다. 이들 후자의 구현에서, 저장소는 호스트에 대해 그 자신을 인증하기 위해 넌스를 어떤 다른 형태로 다시 호스트로 전송할 수 있다.
블록(514)은 랜덤 세션 키를 암호화하는 것을 나타내고 있다. 블록(514)은 호스트와 연관된 공개키를 사용하여 세션 키를 암호화하는 것을 포함할 수 있다. 도 5에는 호스트 공개키(310)의 일례가 넘어와 있다. 저장소는 도 4에 도시된 프로토콜(400)을 사용하여 호스트 공개키를 획득할 수 있다.
블록(516)은 암호화된 세션 키를 전송하는 것을 나타내고 있다. 도 5는 암호화된 세션 키를 518로 나타내고 있다. 도 5에 도시된 예에서, 저장소는 암호화된 세션 키(518)를 호스트로 전송할 수 있다.
블록(520)은 암호화된 세션 키(518)를 수신하는 것을 나타내고 있다. 도 5에 도시된 예에서, 호스트는 암호화된 세션 키를 저장소(108)로부터 수신한다.
블록(522)은 세션 키(518)를 복호화하는 것을 나타내고 있다. 저장소가 호스트의 공개키를 사용하여 세션 키를 암호화한 것으로 가정하면, 블록(522)은 호스트의 비밀키(예를 들어, 308)를 사용하여 세션 키를 복호화하는 것을 포함할 수 있다.
블록(524)은 세션 키를 검증하는 것을 나타내고 있다. 저장소가 넌스에 기초하여 세션 키를 발생하는 구현들에서, 블록(524)은 세션 키가 블록(504)에서 저장소로 전송되었던 넌스에 기초하고 있는지를 검증하는 것을 포함할 수 있다. 저장소가 넌스에 기초하여 세션 키를 발생하기 보다는 넌스를 반환함으로써 호스트에 대해 인증을 하는 구현들에서, 블록(524)은 저장소가 올바른 넌스를 반환했는지를 검증하는 것을 포함할 수 있다.
호스트 및 저장소가 프로토콜(400, 500)을 성공적으로 완수하는 것으로 가정하면, 호스트 및 저장소는 서로 간의 통신을 안전하게 할 수 있다. 예를 들어, 호스트 및 저장소는 세션 키를 사용하여 서로 간의 추가의 통신을 암호화할 수 있다. 그에 부가하여, 호스트 및 저장소가 프로토콜(400, 500)을 완수하면, 호스트 및 저장소는 서로에 대해 인증을 하였고, 서로 간에 공개키를 교환하였다. 보다 구체적으로는, 도 4 및 도 5에 도시된 예들에서, 호스트는 저장소의 공개키(322)를 사용하여 넌스를 암호화하고(블록 502), 이 넌스가 그 다음에 저장소로 전송된다. 차례로, 저장소는 이 넌스를 사용하여 세션 키를 발생하고, 호스트의 공개키를 사용 하여 세션 키를 암호화한다(블록 514).
도 4 및 도 5는 호스트 및 저장소가 호스트 및 저장소 아래에 있는, 열에 도시된 다양한 블록들에 나타낸 처리를 수행하는 예들을 나타낸 것이다. 그렇지만, 유의할 점은 이들 예가 제한하는 것이 아니며, 호스트 및 저장소의 역할이 본 명세서에서의 설명의 범위 및 정신을 벗어나지 않고 반대로 될 수 있다는 것이다. 도 4에 도시된 프로토콜(400)의 결과, 호스트 및 저장소는 서로를 상호 인증한다. 따라서, 도 4 및 도 5에 도시된 예들은 본 명세서에서의 설명의 가능한 구현들을 제한하지 않는다.
도 5에서 프로토콜(500)에 대해 기술하였으며, 지금부터의 설명은 도 6에 제공된 바와 같이, 저장소 상의 라이센스 저장 영역에 대한 보다 상세한 설명에 대한 것이다.
도 6은 라이센스 저장 영역을 구현하기에 적합한 데이터 구조(600)를 나타낸 것이다. 가능한 구현을 제한하기 위한 것이 아니라 설명의 편의상, 이전에 설명된 어떤 항목들이 도 6으로 넘어와 있으며 유사한 참조 기호로 표시되어 있다.
도 2로부터 상기해보면, 저장소(예를 들어, 108)는 컴퓨터 판독가능 매체(예를 들어, 210)를 포함할 수 있고, 이 매체는 라이센스 저장 영역(예를 들어, 212)을 포함할 수 있다. 라이센스 저장 영역은 데이터 구조(600)를 포함할 수 있고, 이 데이터 구조에는 차례로 저장소에 암호적으로 바인딩되어 있는 다양한 라이센스에 관한 정보가 들어 있다. 도 6에 도시된 예에서, 라이센스 저장 영역은 저장소에 들어 있는 라이센싱된 컨텐츠의 인스턴스(instance)에 대응하는 하나 이상의 라 이센스 저장 레코드(602)를 포함할 수 있다. 단지 편의상, 도 6은 하나의 레코드(602)를 도시하고 있지만, 데이터 구조(600)의 구현들은, 저장소에 몇개의 라이센싱된 컨텐츠의 인스턴스가 들어 있는지에 따라, 임의의 수의 레코드(602)를 포함할 수 있다.
레코드(602)를 더 상세히 살펴보면, 이들 레코드는 키 식별자 필드(604)를 포함할 수 있다. 이들 키 식별자 필드(604)는 주어진 라이센싱된 컨텐츠의 인스턴스에 대한 라이센스를 찾아내기 위해 데이터 구조(600)를 검색하는 것을 용이하게 해주는 검색 또는 인덱스 필드를 제공할 수 있으며, 이에 대해서는 이하에서 더 설명한다. 단지 편의상, 도 6은 2개의 키 식별자 필드(604a, 604n)를 도시하고 있지만, 데이터 구조(600)의 구현들은, 저장소에 몇개의 라이센싱된 컨텐츠의 인스턴스가 들어 있는지에 따라, 임의의 수의 키 식별자 필드(604)를 포함할 수 있다.
키 식별자 필드(604)는 적어도 하나의 컨텐츠 키 필드(content key field)(606)와 연관되어 있을 수 있다. 단지 편의상, 도 5는 2개의 컨텐츠 키 필드(606a, 604n)를 도시하고 있지만, 데이터 구조(600)의 구현들은, 저장소에 몇개의 라이센싱된 컨텐츠가 들어 있는지에 따라, 임의의 수의 컨텐츠 키 필드(606)를 포함할 수 있다. 어떤 경우들에, 컨텐츠 식별자(604)는, 606a로 도시된 바와 같은, 암호화된 컨텐츠 키들의 다수의 인스턴스들과 연관될 수 있다.
보안 및 보호를 증진시키기 위해, 컨텐츠 키가 저장소의 공개키(예를 들어, 322)를 사용하여 암호화될 수 있으며, 그에 따라 이 컨텐츠 키가 저장소의 비밀키를 사용해서만 복호화될 수 있다. 다른 예에서, 컨텐츠 키는 중간 대칭 키(intermediate symmetric key)를 사용하여 암호화될 수 있다. 이와 같이, 컨텐츠 키가 악의적 당사자에 의해 얼마간 남용되더라도, 저장소의 비밀키까지 오염되지 않는 한, 컨텐츠 키가 악의적 당사자에게 아무런 가치가 없게 된다. 일반적으로, 키 관리와 관련된 최상의 실무에서는 공개-비밀키 기반구조의 구현들이 하드웨어 및/또는 소프트웨어 메카니즘을 통한 오염으로부터 비밀키를 보호하기 위해 많은 주의를 기울일 것이 요구되고 있다. 예를 들어, 이들 최상의 실무는 안전한 하드웨어 구현을 암시할 수 있다.
컨텐츠 식별자 필드(604)는 또한 적어도 하나의 정책 필드(608)와도 연관되어 있을 수 있다. 단지 편의상, 도 6는 2개의 정책 필드(608a, 608n)를 도시하고 있지만, 데이터 구조(600)의 구현들은, 저장소에 몇개의 라이센싱된 컨텐츠가 들어 있는지에 따라, 임의의 수의 정책 필드(608)를 포함할 수 있다.
이들 정책 필드(608)는 호스트(120) 등의 재생 장치가 의도적으로 저장소에 암호적으로 바인딩되어 있는 라이센스의 유효성을 확인할 수 있게 해주는 정책 정보를 저장하고 있을 수 있다. 그에 부가하여, 정책 필드는 호스트가 저장소에 암호적으로 바인딩되어 있는 라이센스의 조건 하에서 특정의 동작(예를 들어, 재생, 복사, 이송(transferring), 기타)이 허용되는지 여부를 판정할 수 있게 해줄 수 있다.
정책 필드(608)는 라이센싱된 컨텐츠에 대한 재생, 복사, 이송, 액세스 또는 임의의 기타 동작을 수행하는 것에 적용가능한 제한 또는 조건을 나타내는 정보를 포함하고 있을 수 있다. 예를 들어, 라이센스 서버(116)에 의해 부여되는 컨텐츠에 대한 라이센스는 필드(608)에 저장되는 정책을 명시하고 있을 수 있다. 제한의 예로는 컨텐츠가 몇번 재생될 수 있는지, 컨텐츠가 얼마나 재생될 수 있는지, 컨텐츠가 다른 저장소로 복사될 수 있는지 여부 기타 등등에 대한 제한이 있을 수 있다.
도 6에서 데이터 구조(600)에 대해 설명하였으며, 지금부터의 설명은 도 7에 제공된 바와 같이, 사용자가 액세스하기 위해 호스트 상의 컨텐츠를 선택할 때 수행될 수 있는 프로세스 흐름에 대해 기술한다.
도 7은 사용자가 액세스하기 위해 호스트 상의 컨텐츠를 선택할 때 수행될 수 있는 프로토콜(700)을 나타내고 있다. 가능한 구현을 제한하기 위한 것이 아니라 설명의 편의상, 이전에 설명된 어떤 항목들이 도 7로 넘어와 있으며 유사한 참조 기호로 표시되어 있다. 그에 부가하여, 제한하기 위한 것이 아니라 설명의 편의상, 도 7은 호스트 및 저장소가 제각기 수행할 수 있는 프로토콜(700)의 일부분을 나타내기 위해 다양한 프로세스들을 열로 배열하고 있다.
블록(702)은 일련의 이용가능한 컨텐츠를 사용자에게 제공하는 것을 나타내고 있다. 예를 들어, 사용자가 저장소(108)를 호스트에 삽입한 후에, 호스트(120)는 이 일련의 컨텐츠를 메뉴 형태로 사용자에게 제공할 수 있다. 사용자가 저장소를 호스트에 삽입할 때, 호스트는 호스트 상의 이용가능한 컨텐츠를 찾아내기 위해 호스트의 컨텐츠/라이센스 저장 영역(예를 들어, 212)을 검사할 수 있다. 호스트는 그 다음에, 사용자에게 제공되는 일련의 이용가능한 컨텐츠를 채우기 위해, 서로 다른 이용가능한 컨텐츠와 연관된 식별자들을 추출할 수 있다. 이 일련의 이용가능한 컨텐츠는 저장소 상의 이용가능한 서로 다른 컨텐츠를 각각 나타내는 복수 의 그래픽 요소를 포함할 수 있다.
사용자는 호스트에게 선택된 컨텐츠에 대해 어떤 동작을 수행하라고 요청할 수 있다. 예를 들어, 사용자는 호스트에게 선택된 컨텐츠를 재생하라고, 선택된 컨텐츠를 복사하라고, 또는 사용자가 이용할 수 있게 되어 있는 임의의 다른 유사한 동작을 수행하라고 요청할 수 있다.
블록(704)은 사용자가 컨텐츠를 선택했는지의 표시를 수신하는 것을 나타내고 있다. 예를 들어, 사용자는 그래픽 요소들 중 하나가 포커스를 받도록 입력 장치를 조작할 수 있으며, 그 다음에 포커스를 받고 있는 그래픽 요소를 선택하기 위해 어떤 컨트롤을 활성화시킬 수 있다. 블록(704)은 사용자가 선택을 하였다는 전기 신호, 소프트웨어 이벤트, 또는 기타 적합한 통지를 수신하는 것을 포함할 수 있다.
블록(706)은 사용자에 의해 선택된 컨텐츠에 대한 요청을 전송하는 것을 나타내고 있다. 블록(706)은 호스트(120)가 그 요청(일반적으로 708로 표시됨)을 저장소(108)로 전송하는 것을 포함할 수 있다.
저장소에서, 블록(710)은 사용자에 의해 선택된 컨텐츠에 대한 요청을 수신하는 것을 나타내고 있다. 블록(710)은 저장소가 호스트로부터 요청(708)을 수신하는 것을 포함할 수 있다.
블록(712)은 사용자에 의해 선택된 컨텐츠와 연관된 하나 이상의 컨텐츠 키를 식별하는 것을 나타내고 있다. 유의할 점은 도 7에는 물론 이하의 도 8 내지 도 10에 도시된 프로세스 흐름에서 다수의 컨텐츠 키가 처리될 수 있다는 것이다. 도 6은 컨텐츠 키의 예를 606으로 도시하고 있다. 컨텐츠 키가 암호화된 형태로 저장되는 경우, 블록(712)은 컨텐츠 키를 복호화하는 것을 포함할 수 있다. 보다 구체적으로는, 컨텐츠 키가 저장소 공개키를 사용하여 암호화되어 있는 경우, 블록(712)은 저장소 비밀키(예를 들어, 320)를 사용하여 컨텐츠 키를 복호화하는 것을 포함할 수 있다. 저장소 및 호스트가 이전에, 예를 들어, 도 4에 도시된 프로토콜(400)을 사용하여 서로를 인증하였다는 것을 상기하자. 따라서, 호스트와 저장소 사이에 이제 어떤 수준의 상호 신뢰가 존재하며, 이 신뢰에 의해 저장소는 도 7에 도시된 기법들을 사용하여 컨텐츠 키를 호스트에 제공할 수 있다.
블록(714)은 세션 키를 사용하여 컨텐츠 키를 암호화하는 것을 나타내고 있다. 도 5는 블록(512)에서 생성된 세션 키의 적당한 예를 나타내고 있으며, 세션 키의 암호화된 버전을 518로 나타내고 있다. 도 7은 저장소에 할당된 세션 키의 공유를 518a로 표시하고 있다. 세션 키가 호스트와 저장소에만 알려져 있기 때문에, 저장소는 컨텐츠 키를 세션 키로 암호화함으로써 컨텐츠 키를 호스트로 안전하게 전송할 수 있다.
블록(716)은 암호화된 컨텐츠 키를 전송하는 것(일반적으로 718로 표시됨)을 나타내고 있다. 예를 들어, 저장소는 암호화된 컨텐츠 키(718)를 호스트로 전송할 수 있다.
호스트에서, 블록(720)은 사용자에 의해 요청된 동작을 사용자에 의해 선택된 컨텐츠에 적용가능한 컨텐츠 정책과 대조하여 평가하는 것을 나타내고 있다. 도 7에는 608로 표시된 컨텐츠 정책의 일례가 넘어와 있다. 예시적인 구현에서, 정책 또는 전체적인 라이센스가 라이센스를 발행한 또는 라이센스를 파생시킨 사람과 연관된 키를 사용하여 서명될 수 있다. 블록(720)은 컨텐츠 키를 복호화하기 전에 정책이 변조되지 않았는지를 검사하기 위해 정책을 평가하는 것을 포함할 수 있다. 이 평가는 라이센스의 서명을 검증하는 것을 포함할 수 있다.
도 7에 도시된 예시적인 구현에서, 호스트가 블록(720)을 수행할 수 있다. 이 구현은 호스트가 저장소보다 더 많은 처리 능력 또는 역량을 가질 때 적합할 수 있다. 그렇지만, 어떤 경우들에, 이 상황이 반대로 되고, 저장소가 호스트보다 더 많은 처리 능력을 가질 수 있다. 이들 경우에, 이하의 도 9에 도시된 구현이 적절할 수 있다.
도 7은 설명의 편의상 평가 블록(720)을 블록 형태로 나타내고 있다. 그렇지만, 이 판정의 부가적인 상세가 도 8에 도시되어 있으며, 이에 대해 이하에서 설명한다.
블록(720)에서 수행되는 평가가 긍정인 것으로 가정하면, 블록(722)은 암호화된 컨텐츠 키(618)를 수신하는 것을 나타낸다. 도 7에 도시된 예에서, 호스트는 암호화된 컨텐츠 키를 수신할 수 있다. 저장소가 세션 키(518)의 공유를 사용하여 컨텐츠 키를 암호화한 경우에, 호스트는 518b로 나타낸 세션 키의 공유를 사용하여 컨텐츠 키를 복호화할 수 있다.
컨텐츠 키를 사용하여, 호스트는 블록(704)에서 수신되는 요청에 응하기 위해 사용되는 컨텐츠에 액세스할 수 있다. 이와 같이, 호스트는 라이센스 서명을 검증함으로써 정책이 악의적으로 변경되지 않았는지를 확인할 수 있다.
어떤 구현들은 이상에서 설명한 중간 세션 키를 사용할 수 있다. 이들 구현에서, 블록(714)은 중간 세션 키를 사용하여 컨텐츠 키(예를 들어, 도 6의 606 또는 도 7의 718)를 암호화하는 것을 포함할 수 있다. 차례로, 블록(722)은 이 중간 키를 사용하여 컨텐츠 키를 복호화하는 것을 포함할 수 있다. 중간 세션 키는 저장소 비밀키(예를 들어, 320)를 사용하여 암호화될 수 있다.
도 8은 사용자에 의해 요청된 동작을 사용자에 의해 선택된 컨텐츠에 적용가능한 정책과 대조하여 평가하는 것의 추가적인 측면들을 제공하는 프로세스 흐름(800)을 나타내고 있다. 가능한 구현을 제한하기 위한 것이 아니라 설명의 편의상, 이전에 설명된 어떤 항목들이 도 8로 넘어와 있으며 유사한 참조 기호로 표시되어 있다.
결정 블록(802)은 사용자에 의해 선택된 컨텐츠가 라이센스 내의 정책의 적용을 받는지 여부를 평가하는 것을 나타내고 있다. 적용받지 않는 경우, 프로세스 흐름(800)은 아니오 분기(804)를 따라 블록(806)으로 갈 수 있고, 이 블록(806)은 사용자로부터의 요청을 승인하는 것을 나타낸다.
블록(802)으로 돌아가서, 선택된 컨텐츠가 라이센스의 적용을 받는 경우, 프로세스 흐름(800)은 예 분기(808)를 따라 결정 블록(810)으로 갈 수 있다. 결정 블록(810)은 사용자로부터의 요청이 선택된 컨텐츠에 적용가능한 정책(예를 들어, 608)에 의해 허용되는지 여부를 평가하는 것을 나타내고 있다.
블록(810)으로부터, 요청이 적용가능한 정책에 의해 허용되는 경우, 프로세스 흐름(800)은 예 분기(812)를 따라 블록(806)으로 갈 수 있다. 블록(806)은 요 청을 승인하는 것을 나타내고 있다.
블록(814)은 사용자에 의해 요청된 동작을 수행하는 것을 나타내고 있다. 예를 들어, 블록(806)은 사용자로부터의 요청의 승인(816)을 전달하는 것을 포함할 수 있고, 프로세스 흐름(800)은 승인(816)에 응답하여 블록(814)을 수행할 수 있다. 블록(814)은 도 7의 블록(722)으로부터 복호화된 컨텐츠 키(506)를 수신하는 것을 포함할 수 있다.
어떤 가능한 구현들에서, 블록(814)은 선택된 컨텐츠를 재생하거나 다른 방식으로 사용자에게 제공하는 것을 포함할 수 있다. 어떤 가능한 구현들에서, 블록(814)은 사용자에 의해 요청된 바에 따라, 선택된 컨텐츠를 복사하거나 이송하는 것을 포함할 수 있다. 이들 예는 가능한 구현들을 제한하기 위한 것이 아니라 단지 설명의 편의상 제공된 것이다.
결정 블록(810)으로 돌아가서, 요청이 적용가능한 정책에 의해 허용되지 않는 경우, 프로세스 흐름(800)은 아니오 분기(818)를 따라 블록(820)으로 갈 수 있다. 블록(820)은 선택된 컨텐츠에 적용가능한 라이센스 정책에 의해 허용되지 않는, 사용자에 의해 제기된 요청을 거부하는 것을 나타내고 있다. 블록(820)은 요청의 거부(822)를 전송하는 것을 포함할 수 있다.
블록(824)은 블록(820)에서 거부된 요청을 제기한 사용자에게 에러 메시지 또는 다른 적합한 통지를 제공하는 것을 나타내고 있다. 어떤 경우들에, 블록(824)은 요청이 선택된 컨텐츠에 적용가능한 정책에 의해 허용되지 않기 때문에 거부되었다는 것을 사용자에게 알려주는 것을 포함할 수 있다. 그에 부가하여, 블록(824)은 요청된 동작을 허용하는 라이센스를 획득하기 위한 하나 이상의 옵션을 사용자에게 제공하는 것을 포함할 수 있다.
사용자에 의해 요청된 동작을 적용가능한 컨텐츠 정책과 대조하여 평가하는 상기 프로세스 흐름(800)에 대해 설명하였으며, 몇가지 관찰 사항들에 유의한다. 도 7 및 도 8에 기술된 구현들은 호스트가 저장소보다 더 많은 처리 역량을 가질 때 적합할 수 있다. 이 상황에서, 호스트는 능력이 적은 저장소로부터 이 처리를 덜어주기 위해 요청을 컨텐츠 정책과 대조하여 평가(도 7 및 도 8의 720)하는 역할을 맡을 수 있다.
그렇지만, 다른 상황들에서, 저장소는 호스트보다 더 많은 처리 역량을 가질 수 있다. 이들 경우에, 저장소는 요청을 컨텐츠 정책과 대조하여 평가하는 역할을 맡음으로써 능력이 적은 호스트로부터 이 처리를 덜어줄 수 있다. 도 9 및 도 10은 이들 후자의 시나리오를 나타내고 있다.
도 9은 사용자가 액세스하기 위해 호스트 상의 컨텐츠를 선택할 때 수행될 수 있는 프로토콜(900)을 나타내고 있다. 가능한 구현을 제한하기 위한 것이 아니라 설명의 편의상, 이전에 설명된 어떤 항목들이 도 9로 넘어와 있으며 유사한 참조 기호로 표시되어 있다. 그에 부가하여, 제한하기 위한 것이 아니라 설명의 편의상, 도 9는 호스트(예를 들어, 120) 및 저장소(예를 들어, 108)가 제각기 수행할 수 있는 프로토콜(900)의 일부분을 나타내기 위해 다양한 프로세스들을 열 형식으로 배열하고 있다. 보다 구체적으로는, 프로토콜(900)과 관련된 어떤 처리 블록들이 프로토콜(700)에 대해 도 7에서 전술한 블록들과 유사할 수 있다. 따라서, 중 복 설명을 피하기 위해, 이들 처리 블록이 도 9 및 도 10에서 동일한 참조 번호로 표시되어 있지만, 도 7 및 도 8에 도시된 것과 다른 컴포넌트들에 의해 수행될 수 있다.
프로토콜(900)을 더 상세히 살펴보면, 블록(702, 704, 706)은 물론 사용자에 의해 선택된 컨텐츠에 대한 요청(708로 표시됨)도 도 7로부터 넘어와 있다. 이상에서 도 7에 예시되고 기술된 바와 같이, 호스트는 블록(702-706)을 수행할 수 있고, 저장소에 요청(708)을 제기할 수 있다. 차례로, 저장소는, 도 7에서 상기한 바와 같이, 블록(710, 712)을 수행할 수 있다. 그렇지만, 도 7에 도시된 예시적인 구현들과는 달리, 도 9의 구현은 저장소가 평가 블록(722)을 수행할 수 있게 해준다. 따라서, 도 9는 요청 평가 블록(720)을, (도 7에 도시된 바와 같이) 호스트의 열이 아니라 저장소에 대응하는 열에 도시하고 있다.
평가 블록(720)의 결과가 긍정인 것으로 가정하면, 저장소는 선택된 컨텐츠에 대한 컨텐츠 키를 복호화하는 것을 나타내는 블록(712)을 수행할 수 있다. 블록(712)은 저장소 비밀키(320)를 사용하여 복호화하는 것을 포함할 수 있다. 그에 부가하여, 도 9에는 암호화된 컨텐츠 키(718)와 함께, 도 7로부터 블록(714, 716, 722)이 넘어와 있다. 블록(714, 716, 722) 및 데이터 흐름(718)에 대한 이전의 설명이 도 9에도 적용되며, 간결함을 위해 여기에서 반복하지 않는다. 도 9에는 또한 518a 및 518b로 표시된 세션 키의 공유가 넘어와 있다.
도 10은 적용가능한 컨텐츠 정책과 대조하여 요청을 평가하는 프로세스 흐름(1000)의 측면들을 나타내고 있다. 가능한 구현을 제한하기 위한 것이 아니라 설명의 편의상, 이전에 설명된 어떤 항목들이 도 10으로 넘어와 있으며 유사한 참조 기호로 표시되어 있다. 그에 부가하여, 제한하기 위한 것이 아니라 설명의 편의상, 도 10은 호스트(예를 들어, 120) 및 저장소(예를 들어, 108)가 제각기 수행할 수 있는 프로세스 흐름(1000)의 일부분을 나타내기 위해 다양한 프로세스들을 열로 배열하고 있다.
도 10에 도시된 구현에서, 저장소(예를 들어, 108)는 요청 평가 블록(720)으로 나타낸 어떤 처리를 수행할 수 있다. 도 8에서는 이 처리가 호스트(예를 들어, 120)에 의해 수행되었다는 것을 상기하자. 그렇지만, 도 10에서는 호스트 및/또는 저장소가 요청 평가 블록(720)과 연관된 처리의 일부를 수행할 수 있으며, 이에 대해 이제부터 보다 상세히 설명한다.
블록(1002)은 요청에서 참조된 컨텐츠가 라이센스의 적용을 받는지 여부를 평가하는 것을 나타내고 있다. 컨텐츠가 라이센스의 적용을 받는 경우, 라이센스는 통상적으로 컨텐츠가 어떻게 액세스 또는 배포되는지, 또는 컨텐츠가 액세스 또는 배포되는지 여부를 나타내는 하나 이상의 정책(예를 들어, 608)을 명시한다. 컨텐츠가 라이센스의 적용을 받는 경우, 프로세스 흐름(1000)은 예 분기(1004)를 따라 평가 블록(906)으로 갈 수 있으며, 이 블록(1006)은 요청이 컨텐츠에 적용가능한 정책에 의해 허용되는지 여부를 판정하는 것을 나타내고 있다.
평가 블록(1006)으로부터, 요청이 적용가능한 정책에 의해 허용되는 경우, 프로세스 흐름(1000)은 예 분기(1008)를 따라 블록(712)으로 갈 수 있고, 이 블록(712)이 도 7로부터 넘어와 있다. 블록(712)은 저장소 비밀키(예를 들어, 320)를 사용하여 선택된 컨텐츠에 대한 컨텐츠 키를 복호화하는 것을 나타내고 있다. 블록(714)은 세션 키(예를 들어, 518a, 또는 중간 세션 키)를 사용하여 컨텐츠 키를 암호화하는 것을 나타내고 있다. 블록(716)은 암호화된 컨텐츠 키(예를 들어, 718)를 호스트로 전송하는 것을 나타내고 있다. 호스트에서, 블록(722)은 컨텐츠 키를 수신하여 복호화하는 것을 나타내고 있다.
저장소로 돌아가서, 블록(1010)은 요청을 승인하는 것을 나타내고 있다. 도 10에 도시된 바와 같이, 저장소는, 1012로 나타낸 바와 같이, 승인을 호스트로 전달할 수 있다.
평가 블록(1002)으로 돌아가서, 컨텐츠가 라이센스의 적용을 받지 않는 경우, 프로세스 흐름(1000)은 아니오 분기(1014)를 따라 바로 블록(1010)으로 갈 수 있다. 상기한 바와 같이, 블록(1010)은 요청을 승인하는 것을 나타내고 있다.
평가 블록(1006)으로 돌아가서, 요청이 적용가능한 정책에 의해 허용되지 않는 경우, 프로세스 흐름(1000)은 아니오 분기(1016)를 따라 블록(1018)으로 갈 수 있으며, 이 블록(1018)은 요청을 거부하는 것을 나타내고 있다. 도 10에 도시된 바와 같이, 저장소는, 1020로 나타낸 바와 같이, 거부를 호스트로 전달할 수 있다.
호스트에서, 블록(1022)은 컨텐츠와 관련된 요청된 동작을 수행하는 것을 나타내고 있다. 블록(1022)은 승인(1012)을 수신한 것에 응답하여 요청된 동작을 수행하는 것을 포함할 수 있다. 요청된 동작을 수행하기 위해, 호스트는 블록(722)에서 복호화된 컨텐츠 키를 이용할 수 있다. 도 10에는 718로 표시된 컨텐츠 키의 암호화된 버전이 넘어와 있다.
또한 호스트에서, 블록(1024)은 에러 메시지 또는 기타 적합한 통신을 사용자에게 제공하는 것을 나타내고 있다. 예를 들어, 블록(1024)은 요청된 동작이 컨텐츠에 적용가능한 라이센스 및/또는 정책에 의해 허용되지 않는다는 것을 사용자에게 알려주는 것을 포함할 수 있다. 블록(1024)은 또한 사용자가 요청된 동작을 수행하기 위해 하나 이상의 라이센스를 어떻게 획득할 수 있는지 또는 획득할 수 있는지 여부를 사용자에게 알려주는 것을 포함할 수 있다.
적용가능한 컨텐츠 정책과 대조하여 요청을 평가하는 프로세스 흐름(1000)에 대해 기술하였으며, 지금부터의 설명은 도 11에 제공된 바와 같이, 토큰 부여 서비스(token granting service)를 포함하는 운영 환경에 대해 기술한다.
도 11은 일반적으로 1102로 표시된 토큰 부여 서비스를 포함하는 운영 환경(1100)을 나타낸 것이다. 이러한 토큰의 예로는 라이센스가 있을 수 있다. 가능한 구현을 제한하기 위한 것이 아니라 설명의 편의상, 이전에 설명된 어떤 항목들이 도 11로 넘어와 있으며 유사한 참조 기호로 표시되어 있다.
어떤 경우들에, 사용자는, 예를 들어, 컨텐츠/미디어 소스(106)와 연관된 다운로드 서버로부터 컨텐츠(122)를 다운로드할 수 있다. 도 11에 도시된 바와 같이, 컨텐츠는 저장소(108)에 로드될 수 있다. 이 컨텐츠의 일부는 라이센싱된 컨텐츠일 수 있다. 모든 라이센싱된 컨텐츠는 고유의 컨텐츠 키 식별자, 즉 줄여서 "키"와 연관되어 있을 수 있다. 예를 들어, 도 1에 도시된 구현들에서, 라이센스 서버(예를 들어, 116)는 씨드값(seed value)을 사용하여 이들 키를 발생할 수 있다. 라이센스 서버 및 다운로드 서버가 공통 제어를 받고 있는 경우들에, 라이 센스 서버는 다운로드 서버를 "신뢰"할 수 있으며, 그 씨드를 다운로드 서버와 공유할 수 있다. 이들 경우에, 이상에서 도시되고 기술된 구현들이 적합할 수 있다.
그렇지만, 다른 경우들에, 재생될 컨텐츠가 라이센스 서버에 의해 신뢰되는 다운로드 서버로부터 다운로드되지 않았을지도 모른다. 예를 들어, 컨텐츠가 카드의 제조업자에 의해 또는 저장소를 판매하는 소매업자에 의해 저장소(예를 들어, 108)에 사전로드될 수 있고, 이들 동작이 라이센스 서버로부터 개별적으로 제어될 수 있다. 이들 경우에, 도 11에 도시된 운영 환경(1100)이 적합할 수 있으며, 토큰 부여 서비스(1002)가 라이센스 서버와 얼마간 유사한 기능들을 제공한다. 토큰 부여 서비스(1102)는 서로 신뢰하지 않는 개체들 간에 민감한 정보(예를 들어, 컨텐츠 키를 발생하기 위한 씨드)를 공유하지 않고 이들 개체들 간의 라이센스 집행을 가능하게 해주는 어떤 수준의 인디렉션(indirection)을 제공할 수 있다.
토큰 부여 서비스를 더 상세히 살펴보면, 이는 카드 상에 저장될 토큰(1004)을 발생할 수 있고, 이 토큰을 어떤 라이센싱된 컨텐츠와 연관시킬 수 있다. 이 토큰은 저장소가 삽입되어 있는 호스트가, 적용가능한 라이센스 정책에 따라, 라이센싱된 컨텐츠에 액세스할 수 있는지를 나타낼 수 있다.
토큰 부여 서비스는 관련 컨텐츠와 연관되어 있는 이 토큰을 저장소(108)의 제조업자에게 또는 저장소의 소매업자에게 전달할 수 있다. 차례로, 저장소의 소매업자 또는 제조업자는 컨텐츠 및 관련 토큰을 저장소에 로드할 수 있다. 도 11은 저장소(108)가 대표적인 컨텐츠(122) 및 관련 토큰(1104a로 표시됨)을 포함하고 있는 것의 일례를 도시하고 있다. 컨텐츠와 토큰 간의 연관 관계는 일반적으로 블 록(122)과 블록(1104a)을 연결시키는 점선으로 표시되어 있다. 그렇지만, 이 예는 제한하는 것이 아니며, 단지 편의상 제공된 것에 불과하다. 저장소(108)에는 임의의 수의 컨텐츠-토큰이 들어 있을 수 있거나, 토큰과 연관되지 않은 컨텐츠가 들어 있을 수 있다.
사용자(102)는, 일반적으로 라인(1106)으로 나타낸 바와 같이, 저장소(108)를 호스트(예를 들어, 120)에 삽입할 수 있다. 호스트는 하나 이상의 프로세서 및 컴퓨터 판독가능 저장 매체(각각 참조 번호 218 및 222로 표시되어 있음)를 포함할 수 있다. 이들 참조는 편의상 도 2로부터 넘어와 있지만, 제한하는 것이 아니다.
컴퓨터 판독가능 저장 매체(222)는 저장소(108)가 호스트(120)에 삽입될 때 저장소(108)를 처리할 수 있는 토큰 유효성 확인 모듈(token validation module)(1108)을 포함하고 있을 수 있다. 보다 구체적으로는, 토큰 유효성 확인 모듈(1108)은 호스트가 저장소에 있는 컨텐츠(예를 들어, 122)를 재생할 수 있는지 여부를 판정하기 위해 토큰 부여 서비스(1102)와 상호작용할 수 있다.
토큰 유효성 확인 모듈(1108)과 토큰 부여 서비스(1102) 간의 상호작용은 도 11에 도시된 처리 중 적어도 일부를 포함할 수 있다. 예를 들어, 블록(1110)은 저장소에 토큰이 들어 있는지 여부를 평가하는 것을 나타내고 있다. 저장소에 적어도 하나의 토큰(예를 들어, 1104a)이 들어 있는 경우, 토큰 유효성 확인 모듈은 예 분기(1112)를 따라 블록(1114)으로 갈 수 있고, 이 블록(1114)은 저장소에서 발견되는 토큰의 유효성 확인을 요청하는 것을 나타내고 있다. 도 11은 저장소로부터 추출되어 유효성 확인을 위해 전송되는 토큰을 1104b에 나타내고 있다.
예시 및 설명의 편의상, 도 11은 토큰 부여 서비스(1102)도 역시 토큰의 유효성을 확인하는 시나리오를 나타낸 것이다. 그렇지만, 이들 시나리오는 제한하는 것이 아니며, 본 명세서에서의 설명의 범위 및 정신을 벗어나지 않고, 다른 개체들이 토큰을 발행하고 토큰의 유효성을 확인할 수 있다.
도 11에 제공된 예에서, 블록(1116)은 토큰 유효성 확인 모듈로부터 수신된 입력 토큰의 유효성을 확인하는 것을 나타내고 있다. 블록(1116)의 결과, 토큰이 유효한지 유효하지 않은지가 판정될 수 있다. 예를 들어, 토큰 유효성 확인 모듈은 특정의 컨텐츠와 관련하여 토큰을 발행했는지 여부를 판정할 수 있거나, 토큰의 유효성을 평가하기 위해 토큰을 파싱할 수 있다.
토큰 부여 서비스는 호스트 상의 토큰 유효성 확인 모듈로 유효성 확인 응답(1118)을 반환할 수 있으며, 이 유효성 확인 응답(1118)은 토큰이 유효한 것으로 밝혀졌는지 유효하지 않은 것으로 밝혀졌는지를 나타낸다. 토큰 부여 서비스가 토큰의 유효성을 확인할 수 있는 경우, 호스트는 그 토큰과 연관된 컨텐츠를 재생할 수 있다. 토큰 부여 서비스가 토큰의 유효성을 확인할 수 없는 경우, 호스트는 토큰을 다른 유효성 확인 서비스에게 제공하는 것, 에러 메시지를 사람 사용자에게 제공하는 것 기타 등등의 어떤 2차적인 조치를 취할 수 있다.
평가 블록(1110)으로 돌아가서, 호스트에 삽입된 저장소에 저장소 상의 라이센싱된 컨텐츠와 관련된 토큰이 들어 있지 않은 경우, 토큰 유효성 확인 모듈은 아니오 분기(1120)를 따라 블록(1122)으로 갈 수 있다. 블록(1122)은 토큰 부여 서비스(1102)에 토큰을 요청하는 것을 나타내고 있으며, 라인(1124)이 토큰에 대한 요청을 나타낸다.
토큰 부여 서비스에서, 블록(1126)은 요청(1124)에 응답하여 토큰을 발생하는 것 및 새로운 토큰을 저장소에 들어 있는 컨텐츠(예를 들어, 122)와 연관시키는 것을 나타내고 있다. 블록(1126)은 컨텐츠에 액세스하기 위해 라이센스를 획득하는 것과 연관된 지불을 완수하도록 사람 사용자에게 프롬프트하는 것을 포함할 수 있다.
도 11은 블록(1126)에 나타낸 처리의 결과로서 획득되는 토큰(1128)을 나타내고 있다. 블록(1126)은 이들 토큰을 토큰 유효성 확인 모듈(1108)로 전달하는 것을 포함할 수 있다. 도 11에 도시된 예에서, 블록(1122)은 새로운 토큰(들)(1128)을 수신하는 것을 포함할 수 있지만, 유의할 점은 토큰 유효성 확인 모듈(1108) 내의 다른 프로세스가 토큰을 수신할지도 모른다는 것이다.
도 11의 토큰 부여 서비스와 관련한 운영 환경들에 대해 기술하였으며, 지금부터의 설명은 도 12에 제공된 바와 같이, 저장소가 임시 라이센스 또는 인증서를 호스트에게 발행할 수 있는 운영 환경에 대해 기술한다.
도 12는 저장소(예를 들어, 108)가 임시 라이센스 또는 인증서(1202)를 호스트(예를 들어, 120)에게 발행할 수 있는 운영 환경(1200)을 나타낸 것이다. 가능한 구현을 제한하기 위한 것이 아니라 설명의 편의상, 이전에 설명된 어떤 항목들이 도 12로 넘어와 있으며 유사한 참조 기호로 표시되어 있다.
저장소(108)에는 하나 이상의 라이센스(예를 들어, 118)가 들어 있을 수 있으며, 도 12는 이러한 라이센스들 중 2개의 예를 118a 및 118n으로 도시하고 있다. 이들 라이센스는 각자의 컨텐츠(예를 들어, 104)와 연관되어 있을 수 있으며, 도 12는 2개의 컨텐츠 예를 104a 및 104n으로 도시하고 있다.
도 1 내지 도 11에 예시되고 본 명세서에 기술된 시나리오들 중 임의의 시나리오에서, 저장소가 호스트의 ID를 인증한 것으로 가정하면, 저장소는 임시 라이센스 또는 인증서(1202)를 호스트에게 발행할 수 있다. 이 임시 인증서 또는 라이센스(1202)는 라이센스들(118) 중 임의의 라이센스의 서브-라이센스(sub-license)로 간주될 수 있다.
이 임시 인증서 또는 라이센스(1202)를 사용하여, 호스트는 임시 라이센스 또는 인증서에 대응하는 컨텐츠에 액세스하여 이를 재생할 수 있다. 임시 인증서 또는 라이센스는, 1204로 나타낸 바와 같이, 일시적으로 제한될 수 있다. 일시적으로 제한된 라이센스(1204)에 의해 호스트는 사전 정의된 기간 동안 컨텐츠에 액세스할 수 있을지도 모르며, 이 인증서 또는 라이센스는 이 기간 후에 만료된다.
다른 예들에서, 임시 인증서 또는 라이센스(1202)는 1206으로 나타낸 바와 같이, 컨텐츠의 어떤 부분에만 액세스하는 것을 허용할 수 있다. 이러한 유형의 임시 라이센스는, 사용자 또는 호스트가 정식 라이센스(full license)를 획득할 때까지, 호스트가 컨텐츠의 어떤 부분만을 재생할 수 있는 일종의 미리보기 라이센스로 볼 수 있다. 이 시나리오는, 예를 들어, 소매업자 또는 제조업자에 의해 저장소에 컨텐츠가 사전 로드되어 있을 때에 일어날 수 있다. 이들 사전 로드된 컨텐츠 시나리오에서, 저장소에는 미리보기 라이센스만이 들어 있을 수 있지만, 그럼에도 불구하고 저장소는 호스트를 통해 정식 라이센스를 제공할 수 있다.
또 다른 예들에서, 임시 인증서 또는 라이센스(1202)는 1208으로 나타낸 바와 같이, 컨텐츠에 미리 정의된 횟수만큼 액세스하는 것을 허용할 수 있다. 예를 들어, 임시 라이센스는 컨텐츠를 한번만 재생하는 것을 허용할 수 있으며, 임시 라이센스는 그 후에 만료된다. 그렇지만, 이 임시 라이센스는 다른 구현들에서 적절한 경우 임의의 횟수만큼 재생하는 것을 허용할 수 있다.
결론
시스템들 및 방법들이 구조적 특징들 및/또는 방법적 동작들과 관련하여 기술되어 있지만, 첨부된 청구항들에 정의된 시스템 및 방법이 꼭 기술된 특정의 특징들 또는 동작들로 제한되는 것은 아니라는 것을 잘 알 것이다. 오히려, 특정의 특징들 및 동작들은 청구된 시스템 및 방법을 구현하는 예시적인 형태로서 개시되어 있다.
그에 부가하여, 본 명세서에 기술되고 예시된 어떤 데이터 및 프로세스 흐름도와 관련하여, 유의할 점은 본 명세서에 설명된 프로세스들 및 서브-프로세스들이 본 명세서에서의 설명의 정신 및 범위를 벗어나지 않고 예시된 것과 다른 순서로 수행될 수 있다는 것이다. 또한, 이들 데이터 및 프로세스 흐름이 본 명세서에서 어떤 컴포넌트들과 관련하여 기술되어 있지만, 유의할 점은 이들 데이터 및 프로세스 흐름이 본 명세서에서의 설명의 정신 및 범위를 벗어나지 않고 다른 컴포넌트들에 의해 수행될 수 있다는 것이다.

Claims (20)

  1. 머신에 의해 실행될 때 머신으로 하여금 인증 프로토콜을 수행하게 하는 머신-판독가능 명령어들을 포함하는 머신-판독가능 저장 매체로서,
    상기 인증 프로토콜은,
    넌스(nonce)를 생성하는 것과;
    상기 넌스를 호스트와 연관된 저장소(store)로 전송하는 것 -상기 저장소는 휴대용 저장 장치임- 과;
    상기 저장소를 상기 호스트에게 인증하기 위해 상기 저장소로부터 세션 키를 수신하는 것 -상기 세션 키는 상기 넌스를 사용하여 생성되고 상기 호스트와 연관된 공개키를 사용하여 암호화됨- 과;
    라이센스를 상기 저장소 및 상기 저장소에 들어 있는 컨텐츠와 연관시키는 것 -이에 의해, 상기 저장소가 상기 호스트로부터 제거되어 제 2 호스트에 삽입될 경우, 상기 라이센스가 상기 저장소와 함께 이송(transfer)되어 상기 라이센스는 상기 저장소와의 연관된 채로 유지되고 상기 호스트는 상기 컨텐츠를 렌더링할 잔여 권한을 갖고 있지 않으며, 상기 제 2 호스트는 상기 저장소를 처리하여 상기 저장소가 하나 이상의 토큰을 포함하는지의 여부에 적어도 부분적으로 기초하여 상기 제 2 호스트가 상기 컨텐츠를 렌더링할 권한이 있는 지를 판정함- 을 포함하는,
    머신-판독가능 저장 매체.
  2. 제1항에 있어서,
    상기 인증 프로토콜은 상기 넌스를 상기 저장소로 전송하기 전에 상기 넌스를 암호화하는 것을 더 포함하는,
    머신-판독가능 저장 매체.
  3. 제2항에 있어서,
    상기 넌스는 상기 저장소와 연관된 공개키를 사용하여 암호화되는,
    머신-판독가능 저장 매체.
  4. 제1항에 있어서,
    상기 인증 프로토콜은 상기 저장소로부터 저장소 인증서를 수신하는 것을 더 포함하고,
    상기 저장소 인증서는 저장소 공개키를 포함하는,
    머신-판독가능 저장 매체.
  5. 제4항에 있어서,
    상기 인증 프로토콜은 적어도 하나의 인증서 취소 목록과 대조하여 상기 저장소 인증서의 유효성을 검사하는 것을 더 포함하는,
    머신-판독가능 저장 매체.
  6. 제4항에 있어서,
    상기 인증 프로토콜은 상기 저장소 공개키를 사용하여 상기 넌스를 암호화하는 것을 더 포함하는,
    머신-판독가능 저장 매체.
  7. 제6항에 있어서,
    상기 인증 프로토콜은 호스트 인증서를 상기 저장소로 전송하는 것을 더 포함하는,
    머신-판독가능 저장 매체.
  8. 제1항에 있어서,
    상기 라이센스를 상기 저장소에 들어 있는 컨텐츠와 연관시키는 것은 상기 인증 프로토콜을 완수한 후에 상기 저장소로부터의 상기 세션 키에 상기 라이센스를 바인딩하는 것을 포함하고,
    상기 라이센스는 호스트가 상기 저장소에 들어 있는 컨텐츠에 액세스할 수 있게 하는,
    머신-판독가능 저장 매체.
  9. 제1항의 머신-판독가능 저장 매체를 포함하는 모바일 미디어 플레이어 장치.
  10. 머신에 의해 실행될 때 머신으로 하여금 동작들을 수행하게 하는 머신-판독가능 명령어들이 포함된 머신-판독가능 저장 매체로서,
    상기 동작들은
    저장소와 연관된 호스트로부터 암호화된 넌스(nonce)를 수신하는 것 -상기 저장소는 상기 호스트에 분리가능하게 결합되는 휴대용 저장 장치임- 과;
    상기 암호화된 넌스에 적어도 부분적으로 기초하여 세션 키를 생성하는 것과;
    상기 휴대용 저장 장치를 인증하기 위해 상기 세션 키를 상기 호스트로 전송하는 것과;
    상기 저장소에 들어 있는 컨텐츠와 연관된 하나 이상의 라이센스를 상기 저장소에 바인딩하는 것 -이에 의해, 상기 하나 이상의 상기 라이센스가 상기 저장소와 함께 이송될 수 있어 상기 컨텐츠의 이송 후에 상기 저장소 내에 유지됨- 을 포함하되,
    상기 호스트는,
    상기 저장소에 하나 이상의 토큰이 들어 있는 지의 여부를 판정하고,
    상기 하나 이상의 토큰을 분석하여, 상기 저장소에 상기 하나 이상의 토큰이 들어 있다는 판정에 적어도 부분적으로 기초하여 상기 하나 이상의 토큰이 유효한 지의 여부를 판정하고,
    상기 저장소에 하나 이상의 토큰이 들어 있지 않다는 판정에 적어도 부분적으로 기초하여 토큰 부여 서비스(token granting service)에게 토큰을 요청함으로써,
    상기 호스트가 상기 컨텐츠를 렌더링할 권한이 있는 지를 판정하는,
    머신-판독가능 저장 매체.
  11. 제10항에 있어서,
    상기 동작들은 호스트 인증서를 수신하는 것을 더 포함하고, 상기 호스트 인증서는 적어도 상기 호스트와 연관된 공개키를 포함하는,
    머신-판독가능 저장 매체.
  12. 제11항에 있어서,
    상기 동작들은 적어도 하나의 인증서 취소 목록과 대조하여 상기 호스트 인증서를 검사하는 것을 더 포함하는,
    머신-판독가능 저장 매체.
  13. 제10항에 있어서,
    상기 동작들은 저장소 인증서에 대한 질의를 수신하는 것을 더 포함하는,
    머신-판독가능 저장 매체.
  14. 제10항에 있어서,
    상기 동작들은 저장소 인증서를 전송하는 것을 더 포함하고,
    상기 저장소 인증서는 적어도 상기 저장소와 연관된 공개키를 포함하는,
    머신-판독가능 저장 매체.
  15. 제10항에 있어서,
    상기 넌스는 상기 저장소와 연관된 공개키로 암호화되는,
    머신-판독가능 저장 매체.
  16. 제10항에 있어서,
    상기 동작들은 상기 호스트와 연관된 공개키를 사용하여 상기 세션 키를 암호화하는 것을 더 포함하는,
    머신-판독가능 저장 매체.
  17. 제10항에 있어서,
    상기 동작들은 상기 인증 프로토콜을 완수한 후에 상기 호스트에 상기 라이센스를 부여하는 것을 더 포함하고,
    상기 라이센스는 상기 호스트가 저장소에 들어 있는 컨텐츠에 액세스할 수 있게 하는,
    머신-판독가능 저장 매체.
  18. 제10항에 있어서,
    상기 머신-판독가능 저장 매체는 휴대용 메모리 장치에 포함되는,
    머신-판독가능 저장 매체.
  19. 제18항에 있어서,
    상기 휴대용 메모리 장치는 플래쉬 메모리, SD(Secure Digital) 카드, 또는 SIM(Subscriber Identity Module) 카드를 포함하는,
    머신-판독가능 저장 매체.
  20. 제18항의 휴대용 메모리 장치가 삽입되는 모바일 미디어 플레이어 장치.
KR1020097023870A 2007-05-24 2008-05-22 컨텐츠 라이센스의 휴대용 저장 장치에의 바인딩 KR101238490B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/753,403 US8539233B2 (en) 2007-05-24 2007-05-24 Binding content licenses to portable storage devices
US11/753,403 2007-05-24
PCT/US2008/064441 WO2008147827A2 (en) 2007-05-24 2008-05-22 Binding content licenses to portable storage devices

Publications (2)

Publication Number Publication Date
KR20100022953A KR20100022953A (ko) 2010-03-03
KR101238490B1 true KR101238490B1 (ko) 2013-03-08

Family

ID=40073486

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097023870A KR101238490B1 (ko) 2007-05-24 2008-05-22 컨텐츠 라이센스의 휴대용 저장 장치에의 바인딩

Country Status (7)

Country Link
US (1) US8539233B2 (ko)
EP (1) EP2158716B1 (ko)
JP (1) JP5450392B2 (ko)
KR (1) KR101238490B1 (ko)
CN (1) CN101682501B (ko)
TW (1) TWI443516B (ko)
WO (1) WO2008147827A2 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8359372B2 (en) * 2008-06-29 2013-01-22 Microsoft Corporation Automatic transfer of information through physical docking of devices
US8375151B1 (en) * 2009-02-12 2013-02-12 Siliconsystems, Inc. Command portal for securely communicating and executing non-standard storage subsystem commands
US8583835B1 (en) 2008-08-06 2013-11-12 Siliconsystems, Inc. Command portal for executing non-standard storage subsystem commands
DE102008046563A1 (de) * 2008-09-10 2010-03-11 Siemens Aktiengesellschaft Verfahren zur Datenübertragung zwischen Netzwerkknoten
KR101224717B1 (ko) * 2008-12-26 2013-01-21 에스케이플래닛 주식회사 소프트웨어 라이센스 보호 방법과 그를 위한 시스템, 서버,단말기 및 컴퓨터로 읽을 수 있는 기록매체
US9432356B1 (en) 2009-05-05 2016-08-30 Amazon Technologies, Inc. Host identity bootstrapping
EP2490143A1 (en) * 2011-02-10 2012-08-22 Thomson Licensing Method and device for controlling distribution of licenses
EP2811685B1 (en) * 2012-02-03 2019-03-06 Fujitsu Limited Transmission method and system for terminal-specific information
CN102799540B (zh) * 2012-06-21 2017-07-14 南京中兴软件有限责任公司 利用用户识别卡密钥对存储卡加解密的方法、系统和终端
US10102510B2 (en) 2012-11-28 2018-10-16 Hoverkey Ltd. Method and system of conducting a cryptocurrency payment via a mobile device using a contactless token to store and protect a user's secret key
GB201221433D0 (en) 2012-11-28 2013-01-09 Hoverkey Ltd A method and system of providing authentication of user access to a computer resource on a mobile device
US20140149742A1 (en) * 2012-11-28 2014-05-29 Arnold Yau Method and system of providing authentication of user access to a computer resource via a mobile device using multiple separate security factors
US11127001B2 (en) * 2013-05-09 2021-09-21 Wayne Fueling Systems Llc Systems and methods for secure communication
WO2015005708A1 (ko) * 2013-07-10 2015-01-15 엘지전자(주) 컨텐트 재생 방법 및 장치
US10108788B2 (en) 2013-09-10 2018-10-23 Netflix, Inc. Fast-expiring licenses used to speculatively authorize access to streaming media content
CN104765999B (zh) * 2014-01-07 2020-06-30 腾讯科技(深圳)有限公司 一种对用户资源信息进行处理的方法、终端及服务器
US10038934B2 (en) * 2014-02-10 2018-07-31 Lg Electronics Inc. Method and device for playing content
WO2015187740A1 (en) * 2014-06-02 2015-12-10 Sonic Ip, Inc. Binding content playback to a removable storage
WO2016052846A1 (ko) * 2014-10-02 2016-04-07 엘지전자(주) 컨텐트 재생 방법 및 장치
US10956583B2 (en) * 2018-06-27 2021-03-23 At&T Intellectual Property I, L.P. Multi-phase digital content protection
US11444759B2 (en) 2019-05-29 2022-09-13 Stmicroelectronics, Inc. Method and apparatus for cryptographically aligning and binding a secure element with a host device
EP4274157A3 (en) * 2019-09-26 2024-04-17 General Electric Company Communicating securely with devices in a distributed control system
US20220085983A1 (en) * 2020-09-14 2022-03-17 Hewlett Packard Enterprise Development Lp Encryption keys from storage systems
US11792644B2 (en) 2021-06-21 2023-10-17 Motional Ad Llc Session key generation for autonomous vehicle operation
US20220408245A1 (en) * 2021-06-21 2022-12-22 Motional Ad Llc Session key generation for autonomous vehicle operation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050210252A1 (en) 2004-03-19 2005-09-22 Microsoft Corporation Efficient and secure authentication of computing systems
US20060026433A1 (en) 2004-07-29 2006-02-02 Sun Microsystems France S.A. Method and apparatus for minimally onerous and rapid cocktail effect authentication (MORCEAU)
US20060047976A1 (en) 2004-08-25 2006-03-02 General Instrument Corporation Method and apparatus for generating a decrpytion content key
WO2006126801A1 (en) 2005-05-27 2006-11-30 Samsung Electronics Co., Ltd. Key handshaking method and system for wireless local area networks

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5715403A (en) * 1994-11-23 1998-02-03 Xerox Corporation System for controlling the distribution and use of digital works having attached usage rights where the usage rights are defined by a usage rights grammar
US8261319B2 (en) * 1995-10-24 2012-09-04 Corestreet, Ltd. Logging access attempts to an area
US6681017B1 (en) * 1997-09-03 2004-01-20 Lucent Technologies Inc. Simplified secure shared key establishment and data delivery protocols for electronic commerce
JPH11328033A (ja) 1998-05-20 1999-11-30 Fujitsu Ltd ライセンス委譲装置
US7103574B1 (en) 1999-03-27 2006-09-05 Microsoft Corporation Enforcement architecture and method for digital rights management
EP1076279A1 (en) * 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
US7010808B1 (en) 2000-08-25 2006-03-07 Microsoft Corporation Binding digital content to a portable storage device or the like in a digital rights management (DRM) system
JP2002175084A (ja) * 2000-12-07 2002-06-21 Sanyo Electric Co Ltd 再生装置
US7076067B2 (en) 2001-02-21 2006-07-11 Rpk New Zealand Limited Encrypted media key management
SE0101295D0 (sv) * 2001-04-10 2001-04-10 Ericsson Telefon Ab L M A method and network for delivering streaming data
US7421411B2 (en) 2001-07-06 2008-09-02 Nokia Corporation Digital rights management in a mobile communications environment
US7224805B2 (en) 2001-07-06 2007-05-29 Nokia Corporation Consumption of content
WO2003026153A1 (en) * 2001-09-20 2003-03-27 Exo-Brain, Inc. Input-output device with universal phone port
JP3631186B2 (ja) * 2001-09-21 2005-03-23 三洋電機株式会社 データ再生装置およびデータ記録装置
US6996544B2 (en) * 2002-02-27 2006-02-07 Imagineer Software, Inc. Multiple party content distribution system and method with rights management features
US7272858B2 (en) * 2002-04-16 2007-09-18 Microsoft Corporation Digital rights management (DRM) encryption and data-protection for content on a relatively simple device
US7461251B2 (en) * 2002-05-09 2008-12-02 Canon Kabushiki Kaisha Public key certification issuing apparatus
US8335915B2 (en) * 2002-05-14 2012-12-18 Netapp, Inc. Encryption based security system for network storage
US7142674B2 (en) * 2002-06-18 2006-11-28 Intel Corporation Method of confirming a secure key exchange
DE10239062A1 (de) * 2002-08-26 2004-04-01 Siemens Ag Verfahren zum Übertragen von verschlüsselten Nutzdatenobjekten
US7020636B2 (en) 2002-09-05 2006-03-28 Matsushita Electric Industrial, Co., Ltd. Storage-medium rental system
US7600118B2 (en) * 2002-09-27 2009-10-06 Intel Corporation Method and apparatus for augmenting authentication in a cryptographic system
WO2005033892A2 (en) * 2003-10-03 2005-04-14 Sony Electronics, Inc. Rendering rights delegation system and method
US7185195B2 (en) * 2003-12-14 2007-02-27 Realnetworks, Inc. Certificate based digital rights management
US8843413B2 (en) 2004-02-13 2014-09-23 Microsoft Corporation Binding content to a domain
US7546641B2 (en) 2004-02-13 2009-06-09 Microsoft Corporation Conditional access to digital rights management conversion
KR20050096040A (ko) * 2004-03-29 2005-10-05 삼성전자주식회사 휴대형 저장장치와 디바이스간에 디지털 저작권 관리를이용한 콘텐츠 재생방법 및 장치와, 이를 위한 휴대형저장장치
US7664966B2 (en) * 2004-05-17 2010-02-16 Microsoft Corporation Secure storage on recordable medium in a content protection system
KR101100391B1 (ko) * 2004-06-01 2012-01-02 삼성전자주식회사 휴대형 저장장치와 디바이스간에 디지털 저작권 관리를이용한 콘텐츠 재생방법 및 장치와, 이를 위한 휴대형저장장치
US20050289343A1 (en) * 2004-06-23 2005-12-29 Sun Microsystems, Inc. Systems and methods for binding a hardware component and a platform
US7596690B2 (en) * 2004-09-09 2009-09-29 International Business Machines Corporation Peer-to-peer communications
EP1635545B1 (en) * 2004-09-14 2013-04-10 Sony Ericsson Mobile Communications AB Method and system for transferring of digital rights protected content using USB or memory cards
JP4929582B2 (ja) 2004-11-02 2012-05-09 日本精工株式会社 転がり軸受
WO2006048039A1 (en) * 2004-11-08 2006-05-11 Telefonaktiebolaget Lm Ericsson (Publ) Technique for registering a device with a rights issuer system
US8181266B2 (en) * 2005-01-13 2012-05-15 Samsung Electronics Co., Ltd. Method for moving a rights object between devices and a method and device for using a content object based on the moving method and device
JP4589758B2 (ja) * 2005-03-03 2010-12-01 フェリカネットワークス株式会社 データ通信システム,代行システムサーバ,コンピュータプログラム,およびデータ通信方法
KR100652125B1 (ko) * 2005-06-03 2006-12-01 삼성전자주식회사 서비스 제공자, 단말기 및 사용자 식별 모듈 간을총괄적으로 인증하여 관리할 수 있도록 하는 상호 인증방법 및 이를 이용한 시스템과 단말 장치
JP4764080B2 (ja) 2005-07-06 2011-08-31 アルパイン株式会社 コンテンツ転送方法及びコンテンツ転送システム
EP1752937A1 (en) * 2005-07-29 2007-02-14 Research In Motion Limited System and method for encrypted smart card PIN entry
JP4760234B2 (ja) 2005-08-31 2011-08-31 ソニー株式会社 ライセンス取得装置及びライセンス取得方法
EP1921559A1 (en) 2005-08-31 2008-05-14 Sony Corporation Group registration device, group registration release device, group registration method, license acquisition device, license acquisition method, time setting device, and time setting method
US7809957B2 (en) * 2005-09-29 2010-10-05 Intel Corporation Trusted platform module for generating sealed data
JP4992219B2 (ja) 2005-10-06 2012-08-08 セイコーエプソン株式会社 送信情報照合装置および送信情報照合方法、並びに、管理対象デバイス
BRPI0617490A2 (pt) * 2005-10-18 2010-03-23 Intertrust Tech Corp sistemas e mÉtodos de mÁquina de gerenciamento de direitos digitais
US20070100893A1 (en) * 2005-10-31 2007-05-03 Sigmatel, Inc. System and method for accessing data from a memory device
JP2007128278A (ja) 2005-11-04 2007-05-24 Sharp Corp コンテンツ管理システム、コンテンツ管理方法、及びそれらに用いるプログラム及び記録媒体
US7689250B2 (en) * 2006-02-01 2010-03-30 General Instrument Corporation Method, apparatus and system for partitioning and bundling access to network services and applications
KR100703811B1 (ko) * 2006-02-28 2007-04-09 삼성전자주식회사 휴대용 저장장치 및 휴대용 저장장치의 데이터 관리 방법
JP5181094B2 (ja) * 2006-05-05 2013-04-10 インターデイジタル テクノロジー コーポレーション 信頼される処理技術を使用したデジタル権利管理
US8984652B2 (en) * 2006-07-28 2015-03-17 Sony Corporation Transfer of digital rights management information
US7743258B2 (en) * 2006-08-28 2010-06-22 Sandisk Corporation Method for interacting with a memory device in cryptographic operations
US20080109656A1 (en) * 2006-11-08 2008-05-08 General Instrument Corporation Method and Apparatus for Enabling Content to be Shared Among Multiple Devices in a Secure Environment
US8079071B2 (en) * 2006-11-14 2011-12-13 SanDisk Technologies, Inc. Methods for accessing content based on a session ticket
US8763110B2 (en) * 2006-11-14 2014-06-24 Sandisk Technologies Inc. Apparatuses for binding content to a separate memory device
US7975312B2 (en) * 2007-01-08 2011-07-05 Apple Inc. Token passing technique for media playback devices
US8296240B2 (en) * 2007-03-22 2012-10-23 Sony Corporation Digital rights management dongle
CN101056166B (zh) * 2007-05-28 2010-04-21 北京飞天诚信科技有限公司 一种提高数据传输安全性的方法
JP5293284B2 (ja) * 2009-03-09 2013-09-18 沖電気工業株式会社 通信方法、メッシュ型ネットワークシステム及び通信端末

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050210252A1 (en) 2004-03-19 2005-09-22 Microsoft Corporation Efficient and secure authentication of computing systems
US20060026433A1 (en) 2004-07-29 2006-02-02 Sun Microsystems France S.A. Method and apparatus for minimally onerous and rapid cocktail effect authentication (MORCEAU)
US20060047976A1 (en) 2004-08-25 2006-03-02 General Instrument Corporation Method and apparatus for generating a decrpytion content key
WO2006126801A1 (en) 2005-05-27 2006-11-30 Samsung Electronics Co., Ltd. Key handshaking method and system for wireless local area networks

Also Published As

Publication number Publication date
JP5450392B2 (ja) 2014-03-26
TW200949607A (en) 2009-12-01
EP2158716A2 (en) 2010-03-03
EP2158716B1 (en) 2018-07-11
WO2008147827A2 (en) 2008-12-04
CN101682501A (zh) 2010-03-24
KR20100022953A (ko) 2010-03-03
CN101682501B (zh) 2016-04-06
JP2010528537A (ja) 2010-08-19
TWI443516B (zh) 2014-07-01
US8539233B2 (en) 2013-09-17
US20080294894A1 (en) 2008-11-27
WO2008147827A3 (en) 2009-02-19
EP2158716A4 (en) 2014-11-26

Similar Documents

Publication Publication Date Title
KR101238490B1 (ko) 컨텐츠 라이센스의 휴대용 저장 장치에의 바인딩
US8336105B2 (en) Method and devices for the control of the usage of content
KR101254209B1 (ko) 디바이스와 휴대용 저장장치간에 권리 객체를 이동,복사하는 방법 및 장치
CA2457291C (en) Issuing a publisher use license off-line in a digital rights management (drm) system
RU2352985C2 (ru) Способ и устройство для санкционирования операций с контентом
EP1455479B1 (en) Enrolling/sub-enrolling a digital rights management (DRM) server into a DRM architecture
EP2063675B1 (en) Robust and flexible Digital Rights Management (DRM) involving a tamper-resistant identity module
JP5200204B2 (ja) 高信頼性システムを含む連合型デジタル権限管理機構
US7975312B2 (en) Token passing technique for media playback devices
KR101315076B1 (ko) Drm 보호 콘텐트 재배포 방법
RU2504005C2 (ru) Устройство и способ управления цифровыми правами
JP5626816B2 (ja) デジタルコンテンツの部分的暗号化のための方法および装置
US8572372B2 (en) Method for selectively enabling access to file systems of mobile terminals
CN115758444A (zh) 区块链实现的方法和系统
Messerges et al. Digital rights management in a 3G mobile phone and beyond
KR20060041876A (ko) 디지탈 판권 시행 방법
KR20100110816A (ko) 클라우드 기반 이동식 컴포넌트 바인딩
MX2007008541A (es) Metodo para remover objeto de derecho entre dispositivos y un metodo y dispositivo para usar un objeto de contenido basado en el metodo y dispositivo de movimiento.
WO2007086015A2 (en) Secure transfer of content ownership
KR101241413B1 (ko) 디바이스와 휴대용 저장장치간에 권리 객체를 이동, 복사하는 방법 및 장치
Davidson et al. Content sharing schemes in DRM systems with enhanced performance and privacy preservation
Win et al. Secure interoperable digital content distribution mechanisms in a multi-domain architecture
KR100823677B1 (ko) 멀티미디어메시지에 첨부되는 멀티미디어 콘텐츠를 위한drm 시스템 및 그 방법
Sun et al. A Trust Distributed DRM System Using Smart Cards
Tacken et al. Mobile DRM in pervasive networking environments

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160119

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190129

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 8