KR20040002771A - 안전한 서버 키 동작을 제공하기 위한 시스템 및 방법 - Google Patents

안전한 서버 키 동작을 제공하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20040002771A
KR20040002771A KR1020030042436A KR20030042436A KR20040002771A KR 20040002771 A KR20040002771 A KR 20040002771A KR 1020030042436 A KR1020030042436 A KR 1020030042436A KR 20030042436 A KR20030042436 A KR 20030042436A KR 20040002771 A KR20040002771 A KR 20040002771A
Authority
KR
South Korea
Prior art keywords
key
server
private key
public
content
Prior art date
Application number
KR1020030042436A
Other languages
English (en)
Other versions
KR100971854B1 (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 KR20040002771A publication Critical patent/KR20040002771A/ko
Application granted granted Critical
Publication of KR100971854B1 publication Critical patent/KR100971854B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0464Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload using hop-by-hop encryption, i.e. wherein an intermediate entity decrypts the information and re-encrypts it before forwarding it
    • 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/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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/101Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measures for digital rights management

Landscapes

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

Abstract

다른 키 보호 방식(key protection scheme)이 디지털 권리 관리 시스템(digital rights management system)으로 플러그 접속이 될 수 있도록 하는 키 관리 인터페이스(key management interface)가 개시된다. 이 인터페이스는 데이터 서명(signing data)하고, 공공 키를 사용하여 암호화된 데이터의 해독하고, 인터페이스에 의하여 다른 증명된 주체(authenticated principal); (즉, 다른 공공 키(public key)로 보내진 공공 키를 사용하여 암호화된 데이터를 다시 암호화하는 기능들을 보여준다. 그러므로, 데이터가 통신 암호가 아닌 보통문 상태로 인터페이스로 들어오거나 나가지 않도록 하는 보안 인터페이스가 제공될 수 있다. 이러한 인터페이스는 서명과 해독의 개인 키 동작(private key operation)을 보내며, 라이센싱(licensing)과 발행(publishing)에서 디지털 자산 서버(digital asset server)를 위한 보안(security)과 인증(authentication)을 제공한다. 발표 도중에는, 고객은 오직 어떤 특정 실체가, 예를 들어, 앞에서 언급한 인터페이스를 설치하는 플러그 인(plug-in)을 사용하여, 해독할 수 있도록 자산 키(asset key)를 암호화할 수 있다. 라이센싱 도중에는, 인가를 발표하는 실체는, 자산이 호스트 디지털 권리 관리 플랫폼(host digital rights management platform)에 의하여 보호되고 소모되도록, 자산을 위한 키를 해독하고 인가와 권리 레이블에 서명할 수 있도록 인터페이스를 사용할 수 있다. 그러므로 이 인터페이스(interface)는 키 동작(key operation) 위한 추상화(abstraction)를 제공한다.

Description

안전한 서버 키 동작을 제공하기 위한 시스템 및 방법{SYSTEMS AND METHODS FOR PROVIDING SECURE SERVER KEY OPERATIONS}
본 발명은 키 관리 시스템에 관한 것이다. 구체적으로, 본 발명은 보안 서버 시스템의 암호화 동작을 수행하는데 개인 키 보호 방법과 그 시스템에 관련한다.
디지털 권리의 관리와 집행은 디지털 음성, 디지털 영상, 디지털 문서, 디지털 데이터, 디지털 멀티미디어 등의 디지털 컨텐츠와 관련하여 매우 바람직하며, 이러한 디지털 컨텐츠는 하나 또는 그 이상의 사용자에게 분배된다. 디지털 컨텐츠는 예를 들어 텍스트와 같이 정적일 수 도 있고, 행사의 음성/영상 실황과 같이 연속적일 수 도 있다. 이의 대표적인 배분 방법에는 자기 디스크 (플로피) 디스크, 자기 테이프, 광학 디스크 (콤팩트 디스크; CD) 등과 같은 실제 장치와 전자 게시판, 전자 네트워크, 인터넷 등과 같은 비 실체의 매개 수단 등이 포함된다. 사용자가 디지털 컨텐츠를 수신하면 그 사용자는 개인용 컴퓨터의 미디어 플레이어와 같은 렌더링(rendering) 장치를 사용하여 그 컨테츠를 플레이 또는 렌더링하게 된다.
하나의 가상 시나리오에서, 작가, 출판업자, 방송자 등 컨텐츠 소유자 혹은 권리 소유자는 인가 세 혹은 다른 보수를 대가로 그 디지털 컨텐츠를 많은 수의 사용자에게 각각 분배하고 싶어한다. 이러한 시나리오에서 그 컨텐츠를 노래, 노래 앨범, 영화 등등이 될 수 있으며 그 분배 목적은 인가 세를 얻기 위함이다. 컨텐츠 소유자는, 선택권이 주어진다면, 사용자가 분배된 디지털 컨텐츠를 가지고 활용할 수 있는 것을 제한하고자 할 것이다. 예를 들어, 컨텐츠 소유자는 어떤 사용자가 제 2의 사용자에게 그 컨텐츠를 복사 또는 재분배 하는 것이 제 2의 사용자로부터의 받을 수 있는 인가 세 수취를 방해할 경우, 이것을 금지하고자 할 것이다.
또한, 컨텐츠 소유자는 사용자에게, 그 인가를 사용자가 실제로 구매한다는 조건 아래, 여러 다른 종류의 사용 방법을 각기 다른 인가 세의 대가로 구입할 수 있는 여유를 주고자 할 수도 있다. 예를 들어, 컨텐츠 소유자는 분배된 디지털 컨텐츠가 서정 종류의 머신 상에서만, 소정 종류의 미디어 플레이어에서만, 소정 종류의 사용자에 의해서만 제한된 횟수만, 소정의 총 시간 동안만 재생되도록 할 수 있다.
또 다른 시나리오에서, 어떤 조직내의 직원과 같은 컨텐츠 개발자는 이러한 디지털 컨텐츠를 조직 내 하나 이상의 직원 혹은 조직 외의 다른 개인에게 분배하되, 다른 이들로 하여금 그 컨텐츠를 재생할 수 없도록 하고자 할 수 있다. 이 경우에, 컨텐츠의 분배는 앞서의 인가 세나 다른 대가를 전제로 하는 광범위한 컨텐츠 공유와는 달리 한 조직을 기반으로 하는 비밀 혹은 제한된 방식의 컨텐츠 공유에 해당한다. 이와 같은 시나리오 상에서 그 컨텐츠라 함은 문서 프리젠테이션, 스프레드시트(spreadsheet), 데이터베이스, 이메일 등 사무실에서 교환되어질 만한 것 들이며, 이때 컨텐츠 개발자는 이들 컨텐츠가 사무실 내에서 유지되고 사업상 경쟁자 등과 같은 무허가자에 의해 재생되지 않음을 보장하고자 할 것이다. 이 경우에도 마찬가지로, 컨텐츠 개발자는 분배된 디지털 컨텐츠의 수취자가 이를 통해 할 수 있는 일의 범위를 제한하고자 한다. 예를 들어, 컨텐츠 소유자는, 적어도 컨텐츠를 렌더링하도록 허용되어야하는 개인의 경계 밖의 컨텐츠를 노출하는 방식으로 사용자가 제 2의 사용자에 대한 컨텐츠의 복사 및 재분배 하는 것을 제한하고자 한다.
또한, 컨텐츠 개발자는 다양한 수취인에게 서로 다른 범위의 렌더링 권리를 부여하고자 할 수 있다. 예를 들어, 컨텐츠 개발자는 한 부류의 개인들에게는 디지털 컨텐츠를 재생 가능하지만 출력은 불가능하게 제공하고, 또 다른 부류의 개인들에게는 이를 재생 및 출력 가능하게 제공하고자 할 수 있다.
그러나, 이 두 가지의 시나리오 모두에서, 일단 분배가 이루어지면 컨텐츠 소유자/개발자는 디지털 컨텐츠에 대한 규제력을 거의 상실한다. 거의 모든 개인용 컴퓨터가 디지털 컨텐츠의 완벽한 복사본을 만드는 데 필요한, 또는 그 복사본을 기록 가능한 자기 또는 광학 디스크에 내려 받는데 필요한, 또는 그 복사본을 인터넷과 같은 네트워크 상에 전송하는데 필요한 소프트웨어와 하드웨어를 갖추고 있다는 사실에 비추어 볼 때, 이는 많은 문제를 내포한다.
물론, 컨텐츠가 분배되는 거래의 일부로, 컨텐츠 소유자/개발자는 컨텐츠의 사용자/수취인으로 하여금 부적절한 방법으로 이를 재분배하지 않을 것을 서약하도록 요구할 수 있다. 그러나, 이와 같은 서약은 쉽게 이루어지고 또 쉽게 어길 수 있다. 또한, 컨텐츠 소유자/개발자는 암호화 및 해독를 포함하는 여러 보안 장치를 통해 컨텐츠의 재분배를 막고자 시도할 수 있다. 그러나 실질적으로, 사용자로 하여금 암호화된 디지털 컨텐츠를 해독하고, 이를 암호화되지 않은 상태로 저장하여 재분배하는 행위를 막기란 거의 불가능하다.
더욱이, 제 3의 DRM 서비스가 호스트 DRM (host DRM) 시스템과 상호 작용하는 중간 서버 (intermediate server) 를 사용하고자 하면 그 서비스는 호스트(host)로부터 인증된 개인 키를 소유하여야 한다. 이와 같이 중간 서버에서 사용되는 개인 키는 여러 가지 이유로 인해 마땅히 보호해야 하다. 예를 들어, 공개 키(public key) 의 상대 키는 호스트(host) 에 의해 서명 되고 이는 현재 서비스에 대한 식별을 제공하여 현재 서비스 상에서의 업무를 가능케 한다. 또한, 이 키 (private key) 는 자산에 대해 서명하고 이를 보호함으로써 그 서비스가 소유하는 자산에 대한 보호를 승인 및 보증한다.
무허가 개인에 의한 현재 서비스에 의해 호스트 되는 키의 취득은, 그 서비스의 사칭을 통한 위험한 또는 무허가 자산의 배포, 서비스에 의해 분배되는 보호 자산에 대한 무제한 접근, 서비스에 의해 보호 받는 문서의 비보호 상태의 재분배 능력, 보호 자산의 가치에 대한 손해, 현재 서비스가 추진하는 영업에 대한 손해 등을 가능케 한다. 따라서, 키 관리 시스템에서 보안 서버 키 동작 (secureserver key operations) 을 제공하는 방법 및 시스템 기술의 필요성이 제기된다.
본 발명은 보안 서버의 키 동작을 위한 방법 및 그 시스템을 제공한다. 본 발명에 따르면, 중간 DRM 서버에 여러 종류의 방식(scheme)이 접속될 수 있도록 하는 인터페이스(interface)는 서명 및 해독에 이용되는 개인 키 동작을 보내고, 인가(licensing) 및 발행(publishing)를 위한 시스템의 보안 및 인증을 제공한다. 발행(publishing) 중, 제 3자는 앞서 언급한 인터페이스(interface)를 실행시키는 플러그-인 (plug-in) 을 사용하여 그 서버(server)만이 해독할 수 있도록 자산 키(asset keys)를 암호화 할 수 있다. 인가(licensing) 중, 시스템은 이 인터페이스(interface)를 사용하여 자산을 위한 키를 해독하고, 인가 및 권리 레이블(label) 을 서명하여 그 자산을 보호하고 호스트 DRM 플랫폼(platform)에 의해 소비되어 질 수 있도록 할 수 있다. 이와 같은 인터페이스를 이용하여 쓰여진 한 구성요소, 또는 플러그인 (plug-in)은 그 키를 어떤 방식으로든 보호할 수 있다.
중간 서버는 자산을 보호, 서명, 및 분배하거나 자산에 대한 인가를 허용하는데, 이는 보호된 가치 있는 정보가 호스트 DRM 플랫폼 (host DRM platform)에 의하여 소비되어 질 수 있도록 한다. 이 때, 그 서버는 유동적으로 설계되어 호스트 엔티티(entity)가 자신이 원하는 비용으로 업무를 수행할 수 있도록 한다. 예를 들어, 규모가 작은 가게(mom&pop store)는 전 세계에 걸쳐 그 규모가 큰 온라인(on-line) 소매업자나 배분 서비스 업체에 비해 훨씬 낮은 운영 및 초기 비용을 필요로 한다. 본 발명에 의한 DAS 를 이용하는 서비스가 호스트 DRM 시스템 (host DRM system) 과 상호 작용하기 위해서 그 서비스는 호스트(host)에 의해 인증 받은 개인 키를 소유하여야 한다.
이와 같은 서버 상에서 이용되는 개인 키는 보호되는 것이 바람직하다. 본 발명은 서비스의 호스트(host) 단체가 키를 보호함에 있어 비용, 보안, 및 성능 사이에 트레이드오프(tradeoff)를 가능케 한다. 따라서, 키를 보호하기 위한 방식 (scheme)은 호스트 서비스가 그 필요에 따른 대안 방안(solution)을 구현할 수 있도록 하기 위해 유동적(flexible)이다. 또한, 이와 같은 매커니즘(mechanism)을 사용하여 키 보호를 위한 다양한 방식(scheme) 등이 설계되어 이와 같은 시스템을 전개(deploy)하는 개인들에게 저렴한 비용의 대안을 제공할 수 있게 되었다.
본 발명은 시스템에 다양한 종류의 키 보호 방식(scheme)이 적용될 수 있도록 하는 인터페이스(interface)를 제공한다. 인터페이스는 다음과 같은 기능을 구현한다: 통과(pass-in) 데이터의 서명; 공개 키를 이용하여 암호화된 데이터의 해독; 인증된 어떤 다른 주체(principal) 에 인터페이스에 의해 보내진 공개 키를 이용하여 암호화된 통과 데이터의 재암호화. 이를 위해, 데이터는 일단 해독된 뒤에 재암호화되어야 한다. 이는 데이터가 결코 원래의 상태 그대로 (in the clear) 인터페이스(interface) 들어가거나 나오는 일이 없는 안전한 인터페이스(interface)를 제공한다.
이와 같은 인터페이스(interface)는 서명 및 해독의 개인 키 동작을 보내고 인가(licensing) 및 발행(publishing) 을 위한 보안 및 인증을 제공한다. 발행중, 고객(client) 은 자산 키(asset key)를 암호화하여 이를 어떤 특정한 서버(server) 만이 앞서 언급한 인터페이스 등을 구현시키는 플러그인(plug-in) 을 이용하여 해독할 수 있도록 할 수 있다.
인가(licensing) 중, 인터페이스는 자산을 위한 키를 해독하고, 인가 및 권리 레이블을 서명하여 그 자산을 보호하고 호스트 DRM 플랫폼(platform)에 의해 소비되어 질 수 있도록 하는 데 사용될 수 있다. 따라서, 이 인터페이스는 키 동작(key operations) 의 추상화를 제공한다. 이 인터페이스를 이용하여 설계된 플러그인(plug-in) 은 다양한 방식에 의해 키를 보호할 수 있다.
본 발명의 다른 특징들은 첨부된 도면들에 의한 본 발명의 구체화된 설명을 통해 분명하여진다.
도 1은 본 발명이 구현될 수 있는 예시적인 무제한(non-limiting) 컴퓨팅 (computing) 환경의 블록도(block diagram).
도 2는 본 발명이 구현될 수 있는, 다양한 컴퓨팅 (computing) 장치를 포함하는, 예시적인 네트워크 환경의 블록도.
도 3은 디지털 컨텐츠의 발행 (publishing) 에 있어 본 발명에 따른 시스템 및 방법의 바람직한 일 실시예를 보여주는 기능적 블록도.
도 4는 권리 관리 (rights managed) 디지털 컨텐츠의 발행을 위한 본 발명에 따른 방법의 바람직한 실시예의 흐름도(flowchart).
도 4a는 도 4의 방법에 의해 생성된 권리 레이블(rights label)의 구조(structure)를 나타내는 블록도.
도 5는 권리 관리(rights managed) 디지털 컨텐츠의 인가(licensing)을 위한 본 발명에 따른 시스템 및 방법의 바람직한 실시예를 보여주는 기능적 블록도.
도 6a 및 6b는 권리 관리(rights managed) 디지털 컨텐츠의 인가(licensing)를 위한 본 발명에 따른 방법의 바람직한 실시예를 보여주는 흐름도.
도 7은 본 발명의 일 실시예에 따라 권리 레이블 (rights label) 의 재발행(re-publish) 시에 수행되는 키 단계를 나타내는 흐름도.
도 8은 본 발명의 일 실시예에 따라 사용자가 오프라인(off-line) 발행(publishing) 을 수행할 수 있도록 DRM 서버가 사용자에게 발행한 인증서(certificate)를 보여주는 블록도.
도 9는 본 발명의 일 실시예에 따라 권리 레이블(rights label)에 포함되는 정보를 지정하는 권리 템플릿(rights template)을 보여주는 블록도.
도 10은 도 9의 권리 템플릿(rights template)을 생성하고 본 발명의 일 실시예에 따른 권리 템플릿(rights template)에 기초하여 도 4a의 서명된 권리 레이블(signed rights label)을 생성하는데 수행되는 키 단계를 나타내는 흐름도.
도 11a-11d는 후단 서버(back-end server)에 개인 키 자료를 저장하는 과정에 관련한 본 발명의 다양한 국면(aspect)을 나타내는 예시도.
도 12는 본 발명에 따른, 분리된 인증 서명과 컨텐츠 보호 키를 포함하는, 시스템 및 방법의 일 실시예를 보여주는 기능적 흐름도.
도 13은 본 발명에 따른, 무상태 롤링 개인 키(stateless rolling private key)를 포함하는 시스템 및 방법의 일 실시예를 보여주는 기능적 흐름도.
도 14는 본 발명에 따라 키 동작의 추상화를 제공하는 방법을 나타내는 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
100 : 컴퓨팅 환경
308 : 서명된 권리 레이블
310 : 권리 보호된 컨텐츠
320 : DRM 서버
810 : DRM 증명
900 : 권리 템플릿
컴퓨팅 장치의 예
도 1 및 다음의 토의는 본 발명을 구현하는 데 적합한 컴퓨팅(computing) 환경에 대한 간결하고 일반적인 설명을 하기 위한 것이다.여기서, 휴대용 및 다른 모든 종류의 컴퓨팅 장치 등도 본 발명과 연계되어 사용될 것으로 예상된다는 점을 명시해둔다. 여기서는 일반적 목적의 컴퓨터가 설명되어 있으나, 이는 오직 일례에 불과하며, 본 발명은 네트워크 서버의 상호 호환 및 작용이 가능한 고객(client)만을 요한다. 따라서, 본 발명은 아주 적은 혹은 최소의 고객 재원이 포함되어있는 호스트 서비스의 네트워크와 같은 환경, 예를 들어, 고객의 장치(client device)가 단순히 월드 와이드 웹(World Wide Web)을 위한 브라우저(browser) 또는 인터페이스로서의 기능만을 담당하는 네트워크 환경에서 구현될 수 있다.
필수적이지만 않으나, 본 발명은 개발자를 위하여 응용 프로그램 인터페이스(application programming interface; API)를 통해 구현되거나, 및 고객 워크스테이션(workstation), 서버, 또는 다른 장치 등 하나 또는 여러 개의 컴퓨터를 통해 실행되는 프로그램 모듈(program module) 등의 컴퓨터 실행 가능 명령어(instruction)의 일반적 정황과 연계하여 설명될 네트워크 브라우징 소프트웨어(network browsing software)에 포함될 수 있다. 일반적으로, 프로그램 모듈(program module)은 특정한 작업을 수행하거나 특정의 추상적 데이터 유형을 구현하는 루틴(routine), 프로그램(program), 객체(object), 컴포넌트(component), 및 데이터 구조(data structures) 등을 포함한다. 대체로, 프로그램 모듈의 기능은 다양한 실시예에서 합쳐지거나 분배될 수 있다. 더욱이, 당업자들은 본 발명이 다른 컴퓨터 시스템 구성(configuration)에서도 실현될 수 있다는 점을 인식할 것이다. 본 발명의 사용에 적합한 다른 일반적인 컴퓨팅 시스템, 환경, 또는 구성에는 개인용 컴퓨터, 현금 자동 입출금기, 서버 컴퓨터, 휴대용 또는 랩탑(laptop) 장치, 멀티프로세서 시스템(multi-processor systems), 마이크로프로세서 기반 시스템, 프로그램 가능한 소비자 가전제품, 네드워크 용 개인용 컴퓨터(network PCs), 소형 컴퓨터, 메인프레임 컴퓨터(mainframe computer) 등등이 포함되지만, 이에 한정되지 않는다. 본 발명은 또한, 통신 네트워크나 다른 데이터 전송 매체를 통해 연결되어 있는 원격 처리 장치들에 의해 그 작업이 수행되는 분산된 컴퓨팅 환경에서도 실현될 수 있다. 분산 컴퓨팅 환경에서는, 프로그램 모듈이 메모리 저장 장치를 포함하는 현지 및 원격의 컴퓨터 저장 매체에 위치하게 된다.
도 1은 본 발명이 실현될 수 있는 적합한 컴퓨팅 환경(100)의 일례를 나타낸다. 그러나 상기하였듯이, 컴퓨팅 환경(100)은 발명에 적합한 컴퓨팅 환경의 일례에 불과하며, 이는 본 발명의 활용 및 기능의 범위에 어떤 제약을 나타내는 것이 아니다. 또한, 컴퓨팅 환경(100)이 예시의 운영 환경(100)에 나타나 있는 구성 요소 중 하나 또는 그 복합체와 관련된 어떤 종속 관계(dependency) 및 필요 조건(requirement)을 지니고 있는 것으로 해석되어서도 아니된다.
도 1에 의하면, 본 발명의 구현을 위한 일례의 시스템은 컴퓨터(110)의 형태로 표현되어 있는 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 구성 요소에는 처리 장치(120), 시스템 메모리(130), 그리고 시스템 메모리를 포함하는 다양한 시스템 컴포넌트들을 처리 장치(120)에 연결시키는 시스템 버스(121) 등이 포함되지만, 이에 한정되지 않는다. 시스템 버스(121)은 메모리 버스 또는 메모리 제어기(controller), 주변 장치 버스(peripheral bus), 그리고 다양한 버스 구조(architecture) 중 하나를 활용하는 로컬 버스 등을 포함하는 여러 종류의 버스 구조로 이루어져있다. 예를 들어, 그 구조에는 산업 표준 구조(Industry Standard Architecture; ISA) 버스, 미세 채널 구조(Micro Channel Architecture; MCA), 향상 ISA(Enhanced ISA; EISA) 버스, 비디오 일렉트로닉스 표준 어소시에이션(Video Electronics Standard Association) 로컬 버스, 주변 구성 요소 상호 연결( Peripheral Component Interconnect; PCI) 버스(또는 Mezzanine bus) 등이 포함 된다.
컴퓨터(110)는 일반적으로 여러 가지 컴퓨터 판독 가능 매체를 포함한다.컴퓨터 판독 가능 매체는 컴퓨터(110)가 접근할 수 있는 어떠한 이용 가능한 매체가 될 수 있으며, 휘발성/비휘발성(volatile/non-volatile), 분리형/고정형(removable/non-removable) 매체 모두를 포함한다. 일례로, 하지만 제한이 아닌, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체와 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 정장을 위한 그 어떠한 방법 또는 기술로 구현된 분리형/고정형, 휘발성/비휘발성 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플레쉬 메모리 또는 다른 메모리 기술, CDROM, DVD 또는 다른 광 디스크 저장, 마그네틱 카셋트, 마그네틱 테이프, 마그네틱 디스크 저장 장치 또는 마그네틱 저장 장치, 또는 원하는 정보를 저장하고 컴퓨터(110)가 접근할 수 있는 그 어떤 매체를 포함하며 여기에 국한되지는 않는다. 통신 매체는 일반적으로 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터를 반송파 또는 다른 전송 매카니즘과 같은 변조된 데이터 신호로 구현하고 어떠한 정보 전달 매체도 포함한다. 용어 "변조 데이터 신호"는 그 신호에 정보가 부호화되는 방식으로 하나 또는 그 이상의 특징을 갖는 신호를 말한다. 제한이 아닌 일례로, 통신 매체는 유선 네트웍 또는 직접 유선 연결과 같은 유선 매체와 음파, RF, 적외선, 및 다른 무선 매체와 같은 무선 매체를 포함한다. 위의 그 어떠한 조합 역시 컴퓨터 판독 가능 매체의 범위 내에 포함된다.
시스템 메모리(130)는 ROM(131) 및 RAM(132)과 같은 휘발성 및/또는 불휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 때와 같이, 컴퓨터(110) 내의 요소들 간에 정보 전송을 도와주는 기본 루틴을 포함하는, 기본 입출력 시스템(BIOS)(133)은 일반적으로 ROM(131)에 저장된다. RAM(132)은 일반적으로 처리 유닛(120)으로 즉시 접근 가능하고 또는 처리 유닛(120)에 의하여 현재 동작되어지는 데이터 및/또는 프로그램 모듈을 포함한다. 제한이 아닌 일례로, 도 1은 운영 시스템(134), 응용 프로그램(135), 다른 프로그램 모듈(136), 그리고 프로그램 데이터(137)를 나타낸다.
컴퓨터(110)는 또한 다른 분리형/고정형, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수도 있다. 일례로서, 도 1은 고정형 및 비휘발성 자기 매체로부터 읽거나, 그 매체에 쓰는 하드 디스크 드라이브(141), 분리형 및 비휘발성 자기 디스크(magnetic disk)(152)로부터 읽거나, 그 매체에 쓰는 자기 디스크 드라이브(magnetic disk drive)(151), 및 CD-ROM 및 기타 광학 매체와 같은 분리형 및 비휘발성 광학 디스크(optical disk)(156)으로부터 읽거나, 그 매체에 쓰는 광학 디스크 드라이브(optical disk drive)(155)를 예시한다. 전형적인 운영 환경에서 사용되어질 수 있는 다른 분리형/고정형, 휘발성/비휘발성 컴퓨터 저장 매체에는 자기 테이프 카세트(magnetic tape cassette), 플래쉬 메모리 카드(flash memory card), DVD(digital versatile disk), 디지털 비디오 테이프(digital video tape), 고체 RAM(solid state RAM), 고체 ROM(solid state ROM) 등등이 포함된다. 하드 디스크 드라이브(141)은 일반적으로 인터페이스(140)와 같은 고정형 메모리 인터페이스를 통해 시스템 버스(121)에 연결되고, 자기 디스크 드라이브(151)과 광학 디스크 드라이브(155)는 일반적으로 인터페이스(150)와 같은 분리형 메모리 인터페이스에 의해 시스템 버스(121)에 연결된다.
도 1에 예시되고, 상기되어 있는 드라이브와 이들 드라이브에 관련된 컴퓨터 저장 매체들은 컴퓨터(110)에 컴퓨터가 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 다른 데이터를 제공한다. 예를 들면, 도 1에서, 하드 디스크 드라이브(141)는 운영 시스템(144), 응용 프로그램(145), 다른 프로그램 모듈(146) 및 프로그램 데이터(147) 등을 저장하는 것으로 예시되어 있다. 여기서, 이들 구성 요소들은 운영 시스템(134), 응용 프로그램(135), 다른 프로그램 모듈(136), 및 프로그램 데이터(137) 등과 동일하거나 상이한 것일 수도 있음에 주목해야 한다. 운영 시스템(144), 응용 프로그램(145), 다른 프로그램 모듈(146), 그리고 프로그램 데이터(147) 등은 적어도 이들이 상이한 사본임을 예시하기 위해 다른 번호를 부여 받았다. 사용자는 키보드(162), 일반적으로 마우스(mouse), 트랙볼(trackball), 또는 터치패드(touch pad) 등으로 불리는 위치 지정 장치(161) 등의 입력장치를 사용하여 컴퓨터(110)에 명령이나 정보를 입력할 수 있다. 기타 입력 장치(도면에 예시되지 않음)에는 마이크로폰(microphone), 조정막대(joystick), 게임 패드(game pad), 위성 전파 수신 안테나(satellite dish), 스캐너(scanner) 등등이 포함된다. 이들 및 기타 입력 장치 등은 종종 시스템 버스(121)와 연결되어 있는 사용자 입력 인터페이스(user input interface)(160)를 통해 처리 장치(processing unit)(120)에 연결되어 있지만, 이외에도 병렬 포트(parallel port), 게임 포트(game port), 또는 유니버설 시리얼 버스(universal serial bus; USB) 등과 같은 다른 인터페이스 및 버스 구조에 의해연결될 수도 있다.
모니터(191) 및 다른 종류의 화면 표시 장치(display device) 또한 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 연결되어 있다. 노스브릿지(Northbridge) 와 같은 그래픽 인터페이스(graphics interface)(182)역시 시스템 버스(121)에 연결될 수 있다. 노스브릿지(Northbridge)는 중앙처리장치(CPU) 또는 호스트 처리 장치(120)과 통신하는 칩 세트(chipset)로서 가속 그래픽 포트(accelerated graphics port AGP) 통신을 담당한다. 하나 또는 그 이상의 그래픽 처리 장치(graphics processing units; GPUs)(184)가 그래픽 인터페이스(182)와 통신할 수 있다. 이와 관련하여, 그래픽 처리 장치(GPU)(184)는 일반적으로 레지스터 기억 장치(register storage) 와 같은 칩 상(on-chip)의 기억 장치(memory storage)를 포함하며, 비디오 메모리(186)와 통신한다. 그러나, 그래픽 처리 장치(184)는 보조처리기(coprocessor)의 일례에 불과하며, 따라서 컴퓨터(110)에는 다양한 보조처리 장치가 포함될 수 있다. 모니터(191) 및 다른 종류의 디스플레이 장치는 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)과 연결되는데, 이때 그 인터페이스는 다시 비디오 메모리(186)와 통신할 수 있다. 모니터(191)와 더불어, 컴퓨터는 출력 주변 인터페이스(195)를 통해 연결될 수 있는 스피커(197)와 프린터(196) 등의 다른 주변 출력 장치 등을 포함할 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 또는 그 이상의 원격 컴퓨터에 대한 논리 연결(logical connections)을 활용하는 네트워크 환경에서 작동할 수 있다. 원격 컴퓨터(180)는 개인용 컴퓨터, 서버, 라우터(router), 네트워크 개인용 컴퓨터(network PC), 피어 장치(peer device), 또는 기타의 공용 네트워크 노드(common network node)에 해당할 수 있으며, 도 1에는 기억 장치(memory storage device)(181)만이 예시되어 있지만, 일반적으로는 상기된 컴퓨터(110)와 관련한 많은 혹은 모든 구성 요소들을 포함한다. 도 1에 설명되어있는 논리 연결에는 구내 정보 통신망(local area network; LAN)(171)과 광역 통신망(wide area network; WAN)(173)이 포함되며, 이외 다른 네트워크를 포함할 수도 있다. 이와 같은 네트워크 환경은 사무실 내, 기업 내의 컴퓨터 네트워크, 인트라넷(intranet), 그리고 인터넷(Internet)상에서 흔한 것이다.
컴퓨터(110)는, 구내 정보 통신망(LAN)의 네트워킹 환경에서 사용될 때, 네트워크 인터페이스 또는 어댑터(adapter)(170)를 통해 구내 정보 통신망(LAN)(171)에 연결된다. 컴퓨터(110)는, 광역 통신망(WAN)의 네트워킹 환경에서 사용될 때, 일반적으로 모뎀(modem)(172) 또는 인터넷과 같이 광역 통신망(WAN)(173) 상에서 통신을 구축하기 위한 다른 수단을 포함한다. 내장형 또는 외장형 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타의 적합한 방식을 통해 시스템 버스(121)에 연결될 수 있다. 네트워크 환경에서, 컴퓨터(110)와 관련하여 묘사되어있는 프로그램 모듈 또는 그 일부는 원격 기억 장치에 저장될 수 있다. 예를 들어, 도 1은 원격 응용 프로그램(185)이 메모리 장치(181)에 위치하는 것으로 예시하고 있다. 예시된 네트워크 연결은 일례이며, 컴퓨터 간 통신을 구축하는 다양한 수단이 활용될 수 있다는 점은 높이 평가될 것이다.
당업자는 컴퓨터(110) 또는 다른 고객 장치(client device)가 컴퓨터 네트워크의 일부로서 배치될 수 있다는 점을 이해할 것이다. 이런 점에서, 본 발명은 임의의 수의 메모리 혹은 저장 장치와 그 저장 장치나 용량에서 일어나는 임의의 수의 응용 프로그램이나 프로세스를 갖는 모든 컴퓨터 시스템에 관련한다. 본 발명은, 서버 컴퓨터와 고객 컴퓨터가 배치되어 있고 구내 혹은 원격 저장 공간을 지니는 네트워크 환경에 적용될 수 있다. 본 발명은 또한 프로그램 언어의 기능, 해석 및 실행 능력을 지니는 독립된 컴퓨터 장치에도 적용될 수 있다.
분산 컴퓨팅은 컴퓨팅 장치 및 시스템간의 직접 교류를 통해 컴퓨터 자원(resources) 및 서비스의 공유를 용이하게 한다. 이들 자원 및 서비스에는 정보 교환, 캐시(cache) 저장 공간, 파일 저장을 위한 디스크 공간 등이 포함된다. 분산 컴퓨팅은 네트워크 연결을 활용하여 고객으로 하여금 그들의 집합적 힘을 응집하여 기업 전체의 이익을 도모할 수 있도록 한다. 이와 관련하여, 다양한 장치는 신뢰성 있는 그래픽 파이프라인(graphics pipeline) 을 위한 본 발명의 인증 기술(authentication techniques)들을 결합시키도록 상호 작용할 수 있는 애플리케이션, 객체(object) 및 자원(resources)를 가질 수 있다.
도 2는 예시적인 네트워크 또는 분산 컴퓨팅 환경의 개략도를 보여준다. 이 분산 컴퓨팅 환경은 컴퓨팅 객체(computing objects)(10a, 10b 등) 및 등의 컴퓨팅 객체 또는 장치(110a, 110b, 110c 등)들로 이루어진다. 이들 객체들은 프로그램, 방법(methods), 데이터 저장(data store), 프로그램 가능 논리(programmable logic) 등으로 이루어질 수 있다. 그 객체들은 개인 휴대 정보 단말기(PDA), 텔레비전, MP3 플레이어, 개인용 컴퓨터 등과 같은 장치 또는 기타 장치 등의 일부를 포함할 수 있다. 각 객체는 통신 네트워크(14)를 통해 다른 객체들과 통신할 수 있다. 통신 네트워크 자체도 도 2에 예시되어 있는 시스템에 서비스를 제공할 수 있는 다른 컴퓨팅 객체나 컴퓨팅 장치 등을 포함할 수도 있다. 본 발명에 따르면, 객체(10 또는 110) 각각은 신뢰성 있는 그래픽 파이프라인을 위한 본 발명의 인증 기술을 요구하는 응용 프로그램을 포함할 수 있다.
110c와 같은 객체가 다른 컴퓨팅 장치(10 또는 110) 상에 호스트될 수 있다는 점도 높이 평가될 것이다. 즉, 도면에 예시되어 있는 물리적 환경은 연결 장치들을 컴퓨터로 표현하고 있지만 이는 단 일례에 불과하며, 다른 예로서, 물리적 환경은 개인 휴대 정보 단말기(PDA), 텔레비전, MP3 플레이어 등등의 디지털 장치 및 인터페이스나 COM 객체 등등의 소프트웨어로 구성될 수 있다.
분산 컴퓨팅 환경을 지원하는 시스템, 구성요소, 네트워크 구성에는 다양한 종류가 있다. 예를 들어, 컴퓨팅 시스템들은 유선 및 무선 시스템에 의해, 또는 구내 네트워크(local network)나 광역 분산 네트워크(widely distributed network) 등을 통해 연결될 수 있다. 현재, 많은 수의 네트워크들은 광역 분산 네트워크를 위한 인프라(infrastructure)를 제공하고 많은 수의 다양한 네트워크를 포함하는 인터넷에 연결되어있다.
가정 네트워크 환경(home networking environment)에서는, 전력선(power line), 데이터(유선 및 무선 포함), 음성(예: 전화), 그리고 오락 매체 등의 특정한 통신 규약(protocol)을 지원하는 적어도 4가지 종류의 네트워크 전송 매체가 존재한다. 전등 스위치나 가정용 기기 등 대다수의 가정용 제어 장치들은 전력선을 통해 연결된다. 데이터 서비스(data services)가 광대역(broadband; 예를 들어 DSL 이나 케이블 모뎀)을 통해 가정 내에 들어올 수 있고 무선(예: HomeRF 또는 802.11b) 나 유선(예: HomePNA, Cat 5, 또는 전력선) 연결을 통해 접속 가능하다. 음성 전송은 유선(예: Cat 3)이나 무선(예: 휴대폰)을 통해 가정 내에 들어올 수 있으며, 이는 Cat 3 배선을 통해 가정 내에서 분배될 수 있다. 오락 매체는 위성이나 케이블을 통해 가정 내에 들어오며, 일반적으로 동축 케이블(coaxial cable)을 통해 가정 내에서 분배된다. IEEE 1394 및 DVI 또한 매체 장치의 집단을 위한 디지털 연결 수단으로서 각광 받고 있다. 이와 같은 네트워크 환경 및 새로운 통신 규약의 표준으로 떠오를 다른 환경들은 서로 연계하여 인트라넷(intranet)을 구성할 수 있고, 이는 다시 인터넷을 통해 외부와 연결될 수 있다. 다시 말해서, 데이터의 저장 및 전송을 위한 다양한 종류의 수단이 존재하며, 결과적으로 컴퓨팅 장치들은 데이터 처리 파이프라인의 전 과정에서 컨텐츠를 보호할 수 있는 방법들을 필요로 한다.
인터넷은 일반적으로 컴퓨터 네트워크 분야에서 널리 알려진 TCP/IP 통신 규약을 활용하는 네트워크 및 게이트웨이들의 집합을 일컫는다. TCP/IP는 "전송 제어 통신 규약/인터페이스 프로그램(Transport Control Protocol/Interface Program)"의 준말이다. 인터넷은 사용자들로 하여금 네트워크 상에서 상호 작용하고 정보를 공유할 수 있도록 지역적으로 분산된 컴퓨터 네트워크들이 네트워크 통신 규약을 수행하는 컴퓨터들에 의해 상호 연결되어 있는 시스템이라고 할 수 있다. 이와 같은 광역의 정보 공유로 인하여, 인터넷과 같은 원격 네트워크들은 일반적으로 프로그램 개발자들이 사실상 아무 규제 없이 특정한 작업이나 서비스를 제공하는 응용 소프트웨어를 설계할 수 있는 공개 시스템으로서 발전하여왔다.
따라서, 네트워크 인프라(infrastructure)는 고객/서버, 동등 계층, 또는 복합적 구조 등의 다양한 통신망 형태를 가능케 한다. "고객(client)"이란 직접 관련이 없는 다른 종이나 집단의 서비스를 사용하는 한 종이나 집단의 구성인을 지칭한다. 따라서, 컴퓨팅 분야에서, 고객이란 다른 프로그램에 의해 제공되는 서비스를 요청하는 일련의 처리 과정(process), 예를 들면, 명령이나 작업의 모음이다. 고객 처리 과정(client process)은 그 프로그램이나 프로그램이 제공하는 서비스에 대한 상세한 지식 없이도 요청된 서비스를 활용한다. 고객/서버의 통신망 구조에서, 고객은 일반적으로 다른 컴퓨터(예: 서버)에 의해 제공되는 네트워크 공유 자원에 접속하는 컴퓨터를 말한다. 도 2의 예시에서, 컴퓨터 (110a), (110b) 등은 고객(client)이라 할 수 있고, 컴퓨터 (10a), (10b) 등은 서버(server)라고 할 수 있는데, 이때 서버 (10a), (10b) 등은 고객 컴퓨터 (110a), (110b) 등에서 복제될 데이터를 관리한다.
서버는 대체로 인터넷과 같은 원격 네트워크 상에서 접속 가능한 원격 컴퓨터 시스템을 일컫는다. 고객 처리 과정은 제 1의 컴퓨터 시스템에서 활동적이고, 서버 처리 과정은 제 2의 컴퓨터 시스템에서 활동적일 수 있는데, 이때 이 두 가지는 통신 매체를 통해 서로 통신함으로써 분산적 기능을 발휘하고 많은 수의 고객으로 하여금 서버의 정보 수집(information-gathering) 능력을 활용할 수 있도록 할수 있다.
고객과 서버는 프로토콜 계층(protocol layer)이 제공하는 기능을 활용하여 상호 교류한다. 예를 들어, 하이퍼텍스트 전송 규약(Hypertext-Transfer Protocol; HTTP)은 월드 와이드 웹(World Wide Web; WWW)와 함께 가장 흔히 쓰이는 통신 규약이다. 일반적으로, URL(Universal Resource Locator) 나 IP(Internet Protocol)주소와 같은 컴퓨터 네트워크의 논리 주소는 서버와 고객 컴퓨터가 서로에 대해 식별하는데 활용된다. 네트워크 주소는 URL(Universal Resource Locator) 주소라고 부를 수 있다. 예를 들어, 통신은 통신 매체를 통해 제공될 수 있다. 구체적으로, 고객과 서버는 고성능 통신을 위하여 TCP/IP를 통해 상호 연결 될 수 있다.
따라서, 도 2는 본 발명이 활용될 수 있는, 네트워크/버스를 통해 서버와 고객 컴퓨터들이 상호 교류하는 네트워크 또는 분산 환경의 일례를 보여준다. 구체적으로, 많은 수의 서버들(10a, 10b 등)이 구내 정보 통신망(LAN), 광역 통신망(WAN), 인트라넷(intranet), 또는 인터넷 등을 포함하는 통신 네트워크/버스(14)를 통해 휴대용 컴퓨터, 초소형 컴퓨터, 신 클라이언트(thin client), 네트워크 기기, 또는 비디오 카세트 녹화기(VCR), 텔레비전, 오븐(oven), 전등, 난로 등과 같은 기타 기기 등을 포함하는 많은 수의 고객 또는 원격 컴퓨팅 장치(110a, 110b, 110c, 10d), 110e 등등)에 연결된다. 따라서 본 발명은 신뢰 있는 소스(source)로부터의 보안된 컨텐츠를 처리, 저장 및 공급하는 것이 기대되는 어떤 컴퓨팅 장치에도 적용될 수 있다.
통신 네트워크/버스(14)가 예를 들어 인터넷에 해당하는 네트워크 환경에서, 서버(10)는 고객(110a), (110b), (110c), (110d), (110e) 등과 하이퍼텍스트 통신 규약(HTTP) 등 여러 통신 규약에 따라 통신하는 웹 서버(Web server)일 수 있다. 서버(10)는 또한 분산 컴퓨팅 환경의 특징에 따라 고객(110)으로서 작용할 수 도 있다. 이 때, 통신은 상황에 따라 유선 및 무선을 모두 포함한다. 고객 장치(110)들은 통신 네트워크/버스(14)를 통해 통신할 수도 있고, 그렇지 않을 수 도 있으며, 독립된 통신 수단을 지닐 수 도 있다. 예를 들어, 텔레비전이나 비디오 카세트 녹화기(VCR) 의 경우에는 이들의 제어와 관련하여 통신망이 존재하지 않을 수 도 있다. 고객 컴퓨터(110)의 각각과 서버 컴퓨터(10)는 다양한 응용 프로그램 모듈 또는 객체(135)를 장착할 수 있으며, 파일 저장과 내려 받기(download) 및 이동을 담당하는 다양한 종류의 저장 소자(element) 및 객체와의 통신 및 접속 능력을 지니고 있을 수 있다. 따라서, 본 발명은 고객 컴퓨터(110a), (110b) 등과 기타 장치(111) 및 데이터베이스(20)와 상호 작용할 수 있는 서버 컴퓨터(10a),(10b) 등, 그리고 이들 서버 컴퓨터 및 컴퓨터 네트워크/버스(14)에 접속 및 이들과 상호 작용 할 수 있는 고객 컴퓨터(110a), (110b) 등을 포함하는 컴퓨터 네트워크 환경에서 활용될 수 있다.
디지털 컨텐츠의 발행
도 3은 디지털 컨텐츠의 발행 (publishing) 에 있어 본 발명이 선호하는 시스템 및 방법의 일 실시예를 보여주는 기능적 블록도이다. 본 문서에 쓰여진발행(publishing)이란, 응용 프로그램이나 서비스가 컨텐츠에 대하여 신뢰 있는 실체(entity)가 공표할 수 있는 일련의 권리 및 조건항, 그리고 이들 권리 및 조건항을 공표할 수 있는 대상을 규정하기 위해 따르는 과정을 말한다. 본 발명에 따르면, 발행 과정은 디지털 컨텐츠를 암호화하고 컨텐츠의 모든 사용자에 대해 컨텐츠 저자가 지니는 적용 가능한 권리항들을 관련시키는 과정을 포함한다. 이 과정은 컨텐츠 저자 이외에는 어떤 권리나 컨텐츠에 대해서도 접속을 불허하기 위해 보안된 방식으로 진행될 수 있다.
본 발명의 일 실시예에서, 3가지 실체가 보안된 디지털 컨텐츠를 발행하기 위하여 이용될 수 있다: 고객(300)에서 실행되고 컨텐츠의 발행 준비를 수행하는 컨텐츠 준비 응용 프로그램(302)과 고객 장치(300)에 위치하는 디지털 권리 관리 (Digital Rights Management; DRM) 응용 프로그램 인터페이스 (Application Program Interface; API)(306), 그리고 통신 네트워크(330)에 의해 고객(300)에 연결되어 있는 DRM 서버(320) 등이 그것이다. 본 발명의 일 실시예에서, 통신 네트워크(330)은 인터넷을 포함하는데, 이 때 통신 네트워크(330)은 사유 인트라넷(proprietary intranet) 등과 같이 구내 및 광역 네트워크 모두를 포함할 수 있다.
컨텐츠 준비 응용 프로그램(302)은 디지털 컨텐츠를 생산하는 응용 프로그램에 해당한다. 예를 들어, 응용 프로그램(302)은 문서 작성기나 디지털 텍스트 파일, 디지털 음악, 비디오 및 기타 컨텐츠를 생산하는 발행자(publisher)가 될 수 있다. 컨텐츠는 어떤 행사의 실황 또는 녹화/녹음된 음성/영상 비디오 등의 연속적인 컨텐츠도 포함할 수 있다. 본 발명에 따르면, 컨텐츠 준비 응용 프로그램은 컨텐츠 사용자가 제공하는 키(key)를 사용하여 컨텐츠를 암호화한다. 응용 프로그램(302)은 그 키를 이용하여 디지털 컨텐츠를 암호화하고, 이에 따라 암호화된 디지털 컨텐츠 파일(304)이 형성된다. 고객 응용은 또한 사용자가 디지털 건텐츠 파일(304)에 권리 데이터를 제공하도록 한다. 권리 데이터는 디지털 컨텐츠에 권리를 소유하고 있는 각 실체에 대한 식벽을 포함한다. 이와 같은 실체에는 개인, 개인들의 집합(class), 또는 장치(device)가 포함된다. 각각의 실체에 대해, 권리 데이터는 그 실체가 컨텐츠에 대하여 소유하는 권리(rights) 내용과 이들 권리의 일부 또는 전체에 부과되는 조건(conditions)을 포함한다. 컨텐츠에 대한 권리에는 디지털 컨텐츠의 판독, 편집, 복제, 인쇄 등에 대한 권리가 포함된다. 또한, 권리는 포괄적(inclusive) 또는 배타적(exclusive)일 수 있다. 포괄적(inclusive) 권리는 특정 사용자가 컨텐츠에 대한 특정 권리(예: 컨텐츠에 대한 편집의 권리)를 소유함을 나타낸다. 배타적(exclusive) 권리는 특정 사용자가 명시된 사항들을 제외하고 컨텐츠에 대한 모든 권리를 소유함을 나타낸다.(예: 사용자는 복제 외에 디지털 컨텐츠에 대한 어떤 행위도 할 수 있다)
본 발명의 일 실시예에 따르면, 고객 응용 프로그램 인터페이스(API)(306)는 암호화된 디지털 컨텐츠와 권리 데이터를 DRM 서버(320)에 전달한다. DRM 서버(320)는, 하기의 방법을 활용하여, 사용자가 부여한 권리의 적용 가능 여부를 판단하여, 적용 가능할 경우 권리 데이터에 서명하여 서명된 권리 레이블(signed rights label: SRL)(308)을 형성한다. 그러나 일반적으로는 어떤 신뢰성 있는 실체도, DRM 서버(320)에 의해 신뢰 받는 키를 사용하여, 권리 데이터에 서명할 수 있다. 예를 들어, 한 고객은 DRM 서버(320)에 의해 부여 받은 키를 사용하여 권리 데이터에 서명할 수 있다.
권리 레이블(rights label)(308)은 권리 설명, 암호화된 컨텐츠 키, 그리고 이들에 대한 디지털 서명을 나타내는 데이터를 포함할 수 있다. DRM 서버가 권리 레이블에 서명할 때, DRM 서버는 서명된 권리 레이블(308)을 고객 응용 프로그램 인터페이스(API)(306)을 통해 고객에게 다시 전달하고, 고객 응용 프로그램 인터페이스(API)(306)는 서명된 권리 레이블(308)을 고객 장치(300)에 저장한다. 이 후, 컨텐츠 준비 응용 프로그램(302)은 서명된 권리 레이블(308)을 암호화된 디지털 컨텐츠 파일(304)과 조합한다. 예를 들어, SRL(308)은 안호화된 디지털 컨텐츠 파일과 연관시켜 권리 관리 컨텐츠 파일(310을 형성할 수 있다. 그러나 일반적으로 권리 데이터는 디지털 컨텐츠와 조합되지 않아도 무방하다. 예를 들어, 권리 데이터는 특정 장소에 저장되고 이렇게 저장된 권리 데이터에 대한 참조(reference)가 암호화된 디지털 컨텐츠와 조합될 수 있는 것이다. 이와 같은 참조(reference)는 권리 데이터가 저장되어 있는 장소(예: 권리 데이터를 포함하고 있는 데이터 저장 공간)를 지시하는 식별자(identifier), 특정 저장 장소에 존재하는 특정 권리 데이터를 가리키는 식별자(예: 특정 권리 데이터를 포함하는 파일을 지시하는 식별자)를 포함할 수 있다. 이제, 권리 관리 컨텐츠(rights managed content)(310)는 어느 곳의 누구에게나 전달될 수 있고, 그들이 부여 받은 권리에 따라 컨텐츠에 대한 소비 권리를 소유하는 실체에게만 전달될 수 있다.
도 4는 권리 관리 디지털 컨텐츠의 발행을 위한 본 발명에 따른 방법의 일례로서, 권리 레이블이 DRM 서버에 의해 서명되는 방법(method)(400)의 흐름도이다. 이 때, 본 예시는 일례에 불과하며, 권리 레이블은 일반적으로 그 어떤 신뢰성 있는 실체도 서명할 수 있다. 일반적으로, 디지털 컨텐츠를 발행하기 위한 본 발명의 방법은 다음을 포함한다: 컨텐츠 키(content key: CK)를 이용한 디지털 컨텐츠의 암호화, 디지털 컨텐츠와 관련한 권리 설명(digital description)의 형성, DRM 서버의 공개 키(public key) (PU-DRM) 에 따른 컨텐츠 키(CK) 암호화로 (PU-DRM(CK))의 형성, 그리고 (PU-DRM)에 대응하는 개인 키 (PR-DRM)을 기반으로 권리 설명(rights description) 및 (PU-DRM(CK))의 조합(combination)에 대한 디지털 서명의 형성 등.
402 단계에서, 응용 프로그램(302)은 디지털 컨텐츠의 암호화에 사용되는 컨텐츠 키 (CK)를 형성한다. 이상적으로, 컨텐츠 키(CK)는 대칭 키(symmetric key)이나 일반적으로 어떤 키도 디지털 컨텐츠를 암호화하는데 사용될 수 있다. 흔히 "비밀 키" 알고리즘(Secret key algorithm)으로 불리는 대칭 키 알고리즘(symmetric key algorithm)은 메시지의 암호화 및 복호화에 동일한 키를 이용한다. 이런 이유로 인하여, 컨텐츠 키(CK)가 비밀로 유지되는 것이 바람직하다. 발신자와 수신자 간 컨텐츠 키(CK)의 공유는 컨텐츠 키(CK)의 승인 받지 않은 유출(interception)을 방지하기 위하여 매우 조심스럽게 이루어져야 한다. 이렇듯, 컨텐츠 키(CK)가 암호화하는 자와 복호화 하는 자간에 공유되기 때문에, 컨텐츠 키(CK)는 암호화된 메시지가 전송되기 이전에 전달되는 것이 바람직하다.
여러 가지의 대칭 키 형성 알고리즘이 당업자들에게 알려져있다. 일 실시예에서는 데이터 암호화 표준(Data Encryption Standard: DES)가 이용되는데, 이에 다른 어떤 대칭 알고리즘도 사용될 수 있다는 점을 명시한다. 이와 같은 대칭 키 알고리즘의 예에는 Triple-DES, 국제 데이터 암호화 알고리즘(International Data Encryption Algorithm: IDEA), Cast, Cast-128, RC4, RC5, 및 SkipJack 등이 포함된다.
404 단계에서, 응용 프로그램(302)은 대칭 컨텐츠 키(CK)를 사용하여 디지털 컨텐츠를 암호화하여 (CK(content))로 표현될 수 있는 암호화 디지털 컨텐츠(encrypted digital content)(304)를 형성한다. 응용 프로그램(302)을 사용하는 저자(author)는 또한 디지털 컨텐츠와 관련된 권리 데이터를 형성할 수 있다. 권리 데이터는 컨텐츠를 소비할 권리가 있는 실체 목록, 각 실체가 컨텐츠에 대하여 소유하는 특정 권리, 그리고 이들 권리에 부과되는 조건 등을 포함할 수 있다. 이들 권리는 컨텐츠의 관찰, 인쇄 등을 포함한다. 응용 프로그램(302)은 권리 데이터를 응용 프로그램 인터페이스(API)(306)에 제공한다. XML/XrML 형태의 권리 데이터의 일례가 부속물(1)에 첨부되어있다.
406 단계에서, 응용 프로그램 인터페이스(API)(306)는 컨텐츠 키(CK)의 암호화에 사용되는 두 번째 암호화 키(DES1)를 형성한다. 바람직하게, (DES1) 역시 대칭 키이다. 408 단계에서, 응용 프로그램 인터페이스(API)(306)는 (DES1)을 이용하여, (CK)를 암호화하여 (DES1(CK))를 형성한다. 410 단계에서, 응용 프로그램 인터페이스(API)(306)는 (CK)를 폐기하여 (CK)는 오로지 (DES1(CK))를 해독 함으로써 얻을 수 있도록 한다. (CK(content))가 중앙 DRM 서버(320)에 보호되고 컨텐츠에 대한 모든 "인가 요청(license request)"이 권리 데이터에 따라 중앙에서 이루어지는 것을 보장하기 위하여, 412 단계에서 응용 프로그램 인터페이스(API)(306)는 DRM 서버에 접속하여 공개 키 (PU-DRM)를 검색한다. 414 단계에서, 응용 프로그램 인터페이스(API)(306)는 (PU-DRM)을 이용하여, (DES1)을 암호화하여 (PU-DRM(DES1))을 형성한다. 이에 따라, (CK)는 (PU-DRM)에 보호되어 오로지 DRM 서버(320)만이 (CK(content))를 해독하는데 필요한 (CK)에 대한 접근(access)이 가능하도록 한다. 416 단계에서, 응용 프로그램 인터페이스(API)(306)는 (DES1)을 이용하여, 권리 데이터(예: 인증된 실체의 명단 및 각 실체와 관련된 권리 및 조건)를 암호화하여 (DES1(rightsdata))를 형성한다.
또 다른 실시예에서, (CK)는 권리 데이터를 암호화하는 데 직접 사용되어 (CK(rightsdata))를 형성함으로써 (DES1)의 이용을 완전히 중지시킬 수 있다. 그러나, 권리 데이터의 암호화를 위한 (DES1)의 사용은 그 (DES1)이 DRM 서버에 적합한 특정 알고리즘에 따르도록 할 수 있다. 반면, (CK)는 DRM 서버와 관련이 없는 독립적 실체에 의해 지정될 수 있고, DRM 서버에 적합하지 않을 수 있다.
418 단계에서, 컨텐츠 보호 응용 프로그램(302)은 DRM 서버(320)에 서명을 위한 권리 레이블로서 (PU-DRM(DES1)) 과 (DES1(rightsdata))를 제출할 수 있다. 또는, 고객 자신이 권리 데이터에 서명할 수 있다. 권리 데이터가 서명을 위해 서버에 제출되고 있다면, 420 단계에서 DRM 서버(320)는 권리 데이터에 접속하여 제출된 권리 레이블에 포함된 권리 및 조건 항들을 적용할 수 있음을 확인한다. 권리 데이터를 적용할 수 있음을 확인하기 위하여, DRM 서버(320)는 (PR-DRM)을 (PU-DRM(DES1))에 적용하여 (DES1)을 형성하고, 다시 (DES1)을 (DES1(rightsdata))에 적용하여 본 상태의 권리 데이터를 형성한다. 이 후, 서버(320)는 권리 데이터에 포함된 사용자, 권리 및 조건 등이 서버(320)가 시행하는 방침(policy)의 범주 내에 있음을 확인하기 위하여 어떤 방침의 검사(policy check)도 실시할 수 있다. 서버(320)는 처음에 제출된, (PU-DRM(DES1))과 (DES1(rightsdata))를 포함하는 권리 레이블에 서명하여 서명된 권리 레이블(signed rights label: SRL)(308을 형성하고 (이 때, 본 서명은 DRM 서버(320)의 개인 키 (PR-DRM)에 기반한다), 서명된 권리 레이블(SRL)(308을 응용 프로그램 인터페이스(API)(306에 반환하는데, 이때 응용 프로그램 인터페이스(API)(306)는 반환된 서명된 권리 레이블(SRL)(308을 고객 응용 프로그램(302에 제시한다.
서명된 권리 레이블(SRL)(308)은 디지털 방식으로 서명된 문서로서 변조에 강하다. 또한, 서명된 권리 레이블(SRL)(308)은 컨텐츠의 암호화에 이용된 실제 키의 종류 및 그 알고리즘과 무관하지만, 자신이 보호하는 컨텐츠와의 강한 일대일(1-1) 관계를 유지한다. 본 발명의 일 실시예가 예시되어 있는 도 4a에 따르면, 서명된 권리 레이블(SRL)(308)은 다음과 같은 정보를 포함할 수 있다; 서명된 권리 레이블(SRL)(308)의 토대가 되는 컨텐츠 정보, 예를 들어 컨텐츠의 아이디(ID); (PU-DRM(DES1)) 및 URL과 같이 네트워크 상에서 DRM 서버의 위치 결정을 위한 참조 정보, 그리고 URL 이 실패할 경우를 위한 대체 정보 등을 포함하는, 서명된 권리 레이블(SRL)(308)에 서명하는 DRM 서버에 관한 정보; 서명된 권리 레이블(SRL)(308) 자체에 대한 정보; (DES1(rightsdata)); (DES1(CK)); S(PR-DRM) 등등. XML/XrML 형태의 서명된 권리 레이블(SRL)(308)의 일례가 부속물 2에 첨부되어 있다.
신뢰성 있는 실체가 권리 데이터에 서명하여 서명된 권리 레이블(SRL)(308)을 형성함을 보장하기 위해, DRM 서버는 발행자가 규정하여 권리 레이블(308)의 권리 데이터에 명시된 조건에 따라 컨텐츠에 대한 인가(license)를 발행(publish)한다고 주장한다. 사용자는 적어도 인가에 컨텐츠 키(CK)가 포함되어 있는 한, 컨텐츠를 재생하기 위해 인가(license)를 획득하여야 한다. 사용자가 암호화된 컨텐츠에 대한 인가를 획득하고자 할 때, 사용자는 컨텐츠에 대한 서명된 권리 레이블(SRL)(308)과 사용자의 DRM 서버 또는 기타 인가 발행 실체(license issuing entity)에 대한 신용(credential)을 증명하는 인증서(certificate)를 포함하는 인가 요청을 제시할 수 있다. 인가 발행 실체는 (PU-DRM(DES1))과 (DES1(rightsdata))를 해독하여 권리 데이터를 형성시키고, 저자(author)에 의해 인가를 요청하는 실체에 부여된 모든 권리를 기재하며, 이들 특정 권리만을 포함하는 인가를 구성할 수 있다.
바람직하게, 서명된 권리 레이블(SRL)(308)을 받으면 응용 프로그램(302)은 이를 해당 (CK(content))(304)와 연결하여 권리 보호된 디지털 컨텐츠를 구성하게 된다. 또는, 권리 데이터는 특정 장소에 저장될 수 있는데, 이 경우 그 저장 장소에 대한 참조가 암호화된 디지털 컨텐츠와 함께 제공된다. 따라서, 권리 보호 절차가 적용된 (DRM-enabled) 렌더링 응용 프로그램(rendering application)은 렌더링하고자 하는 컨텐츠를 통해 서명된 권리 레이블(SRL)(308)을 발견할 수 있다. 이 발견은 재생 응용 프로그램으로 하여금 DRM 인가 서버 (DRM licensing server)(320)에 대한 인가 요청 과정을 개시하도록 한다. 발행 응용 프로그램(publishing application)(302)는, 예를 들어, DRM 인가 서버(320)에 URL 을 저장할 수 있다. 또, DRM 인가 서버는 자신의 URL을 메타데이터(metadata)로서 서명 이전의 권리 레이블에 포함시킬 수 있는데, 이는 재생 응용 프로그램에 의해 호출된 DRM 고객 응용 프로그램 인터페이스(client API)(306)이 올바른 DRM 인가 서버(320)을 확인할 수 있도록 한다. 바람직하게는, 전체적으로 유일한 식별자(globally unique identifier: GUID)와 같은 유일한 식별자가 서명 이전의 권리 레이블에 포함된다.
본 발명의 일 실시예에서, 단순 객체 접속 통신 규약(simple object access protocol: SOAP)은 컨텐츠 보호 응용 프로그램(302) 또는 렌더링 응용 프로그램과 DRM 서버(320)간의 통신에 활용될 수 있다. 또한, 응용 프로그램(302) 등의 응용 프로그램이 DRM 통신 규약의 고객 측면을 수행할 필요가 없고, 대신 구내 API 호출을 할 수 있도록 API(306)과 같은 응용 프로그램 인터페이스(API) 라이브러리(library)가 제공될 수 있다. 바람직하게는, 디지털 컨텐츠에 대한 권리 설명, 인가, 그리고 권리 레이블 등에 XrML이나 XML 언어가 이용되지만, 기타의 적합한 포맷도 권리 설명 및 그 외 데이터를 위하여 사용될 수 있다.
발행된 컨텐츠에 대한 인가 획득
도 5는 권리 보호된 디지털 컨텐츠의 인가를 위한 본 발명에 따른 시스템 및 방법의 일 실시예를 보여주는 기능적 블록도이다. 본 문서에 쓰인 "인가"(licensing)란, 그에 명시된 실체로 하여금 규정된 조건에 따라 컨텐츠를 소비할 수 있도록 하는 인가를 요청하고 취득하기 위하여 응용 프로그램이나 서비스가 따르는 일련의 과정을 일컫는다. 인가 과정의 입력 정보에는 인가 요청의 대상 컨텐츠에 관한 서명된 권리 레이블(SRL)(308)과 인가 요청의 대상 실체의 공개 키 인증서(public key certificate)가 포함된다. 인가를 요청하는 실체는 인가 요청의 대상 실체와 동일하지 않아도 무방함을 언급한다. 일반적으로, 인가는 서명된 권리 레이블(SRL)(308)의 권리 설명, 암호화된 컨텐츠를 해독할 수 있는 암호화된 키, 그리고 이들 권리 설명 및 암호화 키에 대한 디지털 서명 등을 포함한다. 디지털 서명은 명시된 실체와 그 권리들이 합법적임을 주장한다.
응용 프로그램(302)이 권리 관리 컨텐츠(310)을 소비하는 한 가지 방법은 고객 응용 프로그램 인터페이스(client API)(306)이 권리 관리 컨텐츠의 서명된 권리 레이블(SRL)(308) 을 DRM 서버(320)에 통신 네트워크(330)을 통하여 전송하는 것이다. 예를 들어, DRM 서버(320)의 위치는 서명된 권리 레이블(SRL)(308)의 참조 정보를 통해 알 수 있다. 이와 같은 실시예에서, DRM 인가 서버(320)는, 하기의 과정(process)을 통해, 인가를 발행 가능 여부를 판단하는데 권리 레이블 상의 권리 설명을 이용하고, 인가 발행이 가능하면, 권리 설명을 추출하여 인가에 포함시킨다. 상기한 바대로, 권리 레이블(308)은 DRM 서버(320)의 공개 키 (PU-DRM)에 의해 암호화된 컨텐츠 키(CK) (즉, (PU-DRM(CK)))를 포함한다. 인가 발행 과정에서,DRM 서버(320)는 안전하게 이 값을 복호하여 (CK)를 획득한다. 이 후, DRM 서버(320)는 인가 요청에서 버려진 공개 키 인증서(public key certificate)의 공개 키 (PU-ENTITY)를 이용하여 (CK)를 다시 암호화한다. (즉, (PU-ENTITY(CK))). 서버(320)는 새로이 암호화된 (PU-ENTITY(CK))를 인가에 포함시킨다. 따라서, 오로지 개인 키 (PR-ENTITY) 소유자만이 (PU-ENTITY(CK))로부터 (CK)를 복구할 수 있으므로, 인가는 (CK)의 노출 위험 없이 그 호출자(caller)에게 반환될 수 있다. 이 후, 고객 응용 프로그램 인터페이스(client API)(306)는 (CK)를 이용하여 암호화된 컨텐츠를 복호함으로써 복호된 디지털 컨텐츠(decrypted digital content)(312)를 형성한다. 고객 응용 프로그램(302)은 인가의 권리에 따라 복호된 디지털 컨텐츠를 이용할 수 있게 되는 것이다.
또는, 예를 들어, 발행 고객(publishing client)과 같은 고객은 컨텐츠를 소비하기 위한 인가를 스스로 발행할 수 있다. 이와 같은 실시예에서는, 적절한 상황에서 고객에게 디지털 컨텐츠를 복호하는 데 필요한 키 등을 제공하는 안전한 과정이 고객 컴퓨터 상에서 실행될 수 있다.
도 6a과 도 6b는 권리 해독 컨텐츠의 인가를 위한 본 발명에 따른 방법(method)(600)의 일 실시예를 보여주는 흐름도이다. 본 발명에 따르면, 어떤 한 실체는 하나 또는 그 이상의 잠재적 인가 사용자(licensee)를 대신하여 인가 요청을 할 수 있다. 인가를 요청하는 실체는 그 잠재적 인가 사용자(licensee)에 포함되거나 포함되지 않을 수도 있다. 잠재적 인가 사용자는 개인, 단체, 장치, 또는 컨텐츠를 어떤 형태로든 소비할 수 있는 기타 실체를 포함한다. 방법(600)은DRM 서버가 인가 요청을 처리하는 실시예와 관련하여 설명되나, 실제로 인가 요청의 처리 과정 및 인가 발행은 고객에 의해 직접 이루어질 수도 있다.
602 단계에서, DRM 서버와 같은 인가 발행 실체(license issuing entity)는 인가 요청을 받는다. 바람직하게, 인가 요청은 공개 키 인증서나 각 잠재적 인가 사용자에 대한 신원 확인을 포함한다. 단순 객체 접속 통신 규약(Simple ObjectAccess Protocol: SOAP) 을 이용한 인가 요청의 일 실시예는 다음과 같다:
604 단계에서, 인가 요청 실체가 인증(authenticate)된다. 본 발명의 일 실시예에 의하면, 인가 발행 실체는 인가 요청 실체의 식별을 확인하기 위하여 프로토콜(protocol: 예: challenge-response) 인증을 이용하거나, 인가 요청 실체의 인증을 요구하지 않도록(이를 익명 인증의 허가(allowing anonymous authentication)이라 한다. 구성될 수 있다. 인증이 요구되는 경우, 어떤 종류의 인증 방식(authentication scheme)도 사용될 수 있다. (예: 상기한 challenge-response 방식, MICROSOFT.NET, PASSPORT, WINDOWS 인증과 같은 사용자-아이디-및-비밀번호 (user-id-and-password) 방식, x509 등등) 바람직하게는, 익명 인증(anonymous authentication)이 허가되고 통합 정보 시스템(integrated information systems)이 지원하는 모든 프로토콜(protocol) 인증 방식도 지원해야 한다. 인증 과정의 산물은 "익명" 신원(anonymous identity: 익명 인증의 경우), 개인 어카운트(account) 신원 등과 같은 식별(identity)이다. 인가 요청이 어떤 이유에서든 인증 받지 못하면 오류(error)가 반환되고 인가는 발행되지 않는다.
606 단계에서, 인증된 실체는 승인을 받는다. 즉, 608 단계에서 인증(authenticate)된 실체의 인가 요청(자신 또는 다른 실체를 대신하여) 가능 여부가 결정된다. 바람직하게는, 인가 발행 실체는 인가 요청이 가능한 (또는 불가능한) 실체의 명부를 저장하고 있다. 일 실시예에서, 이 명부에 포함된 신원은 인가를 요청하는 실체의 신원이며, 인가 요청의 대상이 되는 실체의 신원은 아니다. (물론 두 가지 경우 모두 가능하다) 예를 들어, 개인 어카운트 신원은 그 자체로는 인가 요청이 불가능하다 할 지라도 신뢰성 있는 서버 처리 과정이 그 실체를 대신하여 인가 요청을 할 수 있다.
본 발명에 따르면, 인가 요청은 공개 키 인증서 또는 잠재적 인가 사용자 각각의 신원을 포함한다. 인가 요청 대상이 하나의 실체인 경우, 오직 하나의 인증서 또는 신원이 제시(named)된다. 인가 요청 대상이 복수의 실체인 경우, 인증서및 신원은 각각의 잠재적 인가 사용자에 대하여 제시된다.
바람직하게, 인가 발행 실체는 각각의 인정된 인가 사용자(licensee)에 대한 공개 키 인증서를 소유하고 있다. 그러나, 응용 프로그램(302)은 어떤 사용자에 대한 인가를 생성하고자 하나, 그 사용자에 대한 공개 키 인증서에 접근하지 못할 수도 있다. 이와 같은 경우, 응용 프로그램(302)은 인가 요청에 그 사용자의 신원을 지정할 수 있고, 이에 따라 인가 발행 실체는 등록 인증서 플러그인 모듈(registered certificate plug-in module)을 발동하여 디렉터리(directory) 조사를 실시하여 사용자의 공개 키 인증서를 반환할 수 있다.
608 단계에서 인가 발행 실체가 인가 요청 내에 공개 키 인증서가 포함되어 있지 않다고 판단할 경우, 인가 발행 실체는 지정된 신원을 이용하여 해당 공개 키 인증서를 찾기 위해 디렉터리(directory) 서비스나 데이터베이스에 대한 조사를 수행한다. 610 단계에서 해당 인증서가 디렉터리 내에 존재한다고 판명될 경우, 612 단계에서 해당 인증서가 검색된다. 일 실시예에서, 디렉터리 접속 프로토콜(directory access protocol)을 통하여 디렉터리 서비스에서 공개 키 인증서를 회수하는데 인증서 플러그 인(certificate plug-in)이 이용된다. 특정의 잠재적 인가 사용자(potential licensee)에 대한 공개 키를 인가 요청이나 디렉터리 내에서 발견할 수 없는 경우, 인가 서버(license server)는 그 인가 사용자에 대한 인가를 발행하지 않으며 614 단계에서 해당 실체에 대해 오류가 반환된다.
인가 발행 실체가 적어도 하나의 잠재적 인가 사용자에 대한 공개 키를 보유하고 있다면, 616 단계에서 인가 발행 단체는 인가 사용자의 인증서에 대한 신뢰를확증한다. 바람직하게, 인가 발행 단체는 일련의 신뢰성 있는 인증서의 발행인 인증서(trusted certificate issuer certificate)를 보유하여 인가 사용자의 인증서 발행인(issuer)이 신뢰성 있는 발행인 명부에 포함되어 있는지를 확인한다. 616 단계에서, 인가 발행 실체가 인가 사용자의 인증서 발행인이 신뢰성 있는 발행인 명부에 포함되어 있지 않은 것으로 판단하면, 해당 인가 사용자의 인가 요청은 실패하고 614단계에서 오류가 반환된다. 따라서, 신뢰성 있는 발행인으로부터 인증서를 발행 받지 않은 잠재적 인가 사용자는 인가를 부여 받을 수 없다.
또한, 인가 발행 실체는 신뢰성 있는 발행인 인증서로부터 인가 사용자 각각의 공개 키 인증서에 이르는 인증서 고리(certificate chain)에 포함된 모든 실체에 대한 디지털 서명을 유효화(validation)한다. 디지털 서명의 유효화 과정은 잘 알려진 알고리즘이다. 특정 잠재적 인가 사용자에 대한 공개 키 인증서 또는 인증서 체인 내의 어떤 인증서가 유효화되지 않는다면, 그 잠재적 인가 사용자는 신뢰 받을 수 없으므로 그에 대한 인가 발행은 이루어지지 않는다. 그 외의 경우, 618단계에서 인가가 발행된다. 이와 같은 과정은 620 단계에서 되풀이되어 모든 인가 요청 실체가 처리될 때까지 지속된다.
도 6b에 예시된 것처럼, 인가 발행 실체는 이어서 인가 요청에 포함된 서명된 권리 레이블(SRL)(308)을 유효화한다. 일 실시예에서, 인가 발행 실체는 권리 레이블 플러그인(rights label plug-in)과 후단 데이터베이스(back-end database)를 사용하여 인가 발행 실체가 서명한 모든 권리 레이블의 마스터 복사본(master copy)을 서버에 저장한다. 권리 레이블은 발행 당시 포함된 전체적으로 유일한 식별자(globally unique identifier: GUID)에 의해 그 신원이 확인된다. 발행 시(622 단계), 인가 발행 실체는 인가 요청에 포함된 권리 레이블을 면밀히 조사하여 그 GUID를 검색한다. 이어, 검색한 GUID를 권리 레이블 플러그 인에 전달하면, 권리 레이블 플러그 인은 데이터베이스 조회를 통해 마스터 권리 레이블(master rights label) 사본을 검색한다. 마스터 권리 레이블은 인가 요청과 함께 제출된 권리 레이블보다 더 최근의 것일 수 있으며, 하기의 단계에서 사용될 권리 레이블에 해당한다. GUID에 상응하는 권리 레이블이 데이터베이스에 존재하지 않을 경우, 인가 발행 실체는 624단계에서 방침(policy)을 검토하여 인가 요청에 포함된 권리 레이블 만으로도 인가 발행이 가능한지의 여부를 판단한다. 그 방침이 이를 불허할 경우, 인가 요청은 626단계에서 실패하고, 628단계에서 응용 프로그램 인터페이스(API)(306)에 오류가 반환된다.
630단계에서, 인가 발행 실체는 권리 레이블(308)을 유효화(validate)한다. 권리 레이블 내의 디지털 서명이 유효화되고, 인가 발행 실체가 그 권리 레이블의 발행자(권리 레이블에 서명한 실체)가 아닌 경우, 인가 발행 실체는 그 권리 레이블 발행자가 신뢰성 있는 발행자(인가 발행 실체가 키 정보를 공유할 수 있는 실체) 중에 포함되는지 여부를 판단한다. 권리 레이블이 유효화되지 않거나 신뢰성 있는 발행자에 의해 발행된 것이 아닌 경우, 인가 요청은 626 단계에서 실패하고, 628단계에서 응용 프로그램 인터페이스(API)(306)에 오류가 반환된다.
모든 유효화 과정이 발생한 후, 인가 발행 실체는 권리 레이블(308을 각각의 승인된 인가 사용자(licensee)에 대한 인가로 전환한다. 632 단계에서, 인가 발행실체는 각각의 인가 사용자에게 부여될 인가의 권리 설명(rights description)을 구성한다. 각 인가 사용자에 대하여, 인가 발행 실체는 인가 사용자의 공개 키 인증서에 기재된 신원과 권리 레이블의 권리 설명에 기재된 신원을 검증한다. 권리 설명은 모든 권리 및 일련의 권리들, 그리고 이들 권리를 행사할 수 있는 일련의 신원들을 규정한다. 인가 사용자(licensee)의 신원이 연관된 모든 권리 및 일련의 권리는 인가를 위한 새로운 데이터 구조의 형태로 복사된다. 결과적인 데이터 구조는 바로 인가 사용자에 대한 인가에 포함된 권리 설명의 형태이다. 이런 과정의 일부로서, 인가 발행 실체는 권리 레이블의 권리 설명에 포함된 모든 권리 및 일련의 권리들과 결합된 전제 조건(precondition)을 검토한다. 예를 들어, 어떤 권리는 시간에 대한 전제 조건이 결합되어 있어, 인가 발행 실체로 하여금 일정 시간이 지난 뒤에는 인가를 발행할 수 없도록 할 수도 있다. 이와 같은 경우, 인가 발행 실체는 현재 시간을 확인하여야 하며, 만약 현재 시각이 전제 조건에 명시된 시각을 지난 경우, 인가 사용자의 신원이 그 권리와 연계되어 있다 할지라도 그에 대한 인가는 발행될 수 없다.
636 단계에서, 인가 발행 실체는 권리 레이블(308)로부터 (PU-DRM(DES1))과 (DES(CK)) 을 수취하고 (PR-DRM)을 적용하여 (CK)를 획득한다. 이어, 인가 발행 실체는 인가 사용자의 공개 키 인증서 (PU-ENTITY)를 이용하여 (CK)를 다시 암호화함으로써 (PU-ENTITY(CK))를 형성한다. 638 단계에서, 인가 발행 실체는 형성된 권리 설명과 (PU-ENTITY(CK))를 연결하고 (PR-DRM)을 이용하여 이를 디지털 형태로 서명한다. 서명된 데이터 구조가 바로 인가 사용자를 위한 인가를 구성하게 된다.
640 단계에서, 인가 발행 실체는 특정 인가 요청에 대하여 더 이상 발행할 인가가 없음을 판단하는 순간까지, 인가 발행 실체는 영 개의 또는 그 이상의 인가를 발행한 상태가 된다. 발행된 인가는 642 단계에서 인가 요청 실체에 반환되고 이들 인가와 연관된 인증서 체인(예: 서버 자체의 공개 키 인증서 및 그 인증서를 발행한 인증서 등등)도 반환된다.
단순 객체 접속 통신 규약(Simple Object Access Protocol: SOAP)을 이용한 인가 응답의 일례는 다음과 같다:
본 발명에 따른 시스템의 일 실시예에서, 복수의 인가자(licensor) 키들이 이용될 수 있다. 이와 같은 예에서, 권리 레이블(308로부터 최종 인가 까지의 과정을 암호화된 상태로 존재하는 컨텐츠 키(CK)는 실제로 어떤 임의의 데이터도 될 수 있다. 한 가지 특히 유용한 변형(variation)는 복수의 독립된 암호화 컨텐츠 키(CK)를 권리 설명에 포함된 각각의 권리 또는 주체(principal)에 대하여 활용하는 것이다. 예를 들어, 한 앨범에 속한 각각의 디지털 음악 곡을 각기 다른 (CK)로 암호화할 수 있다. 이들 컨텐츠 키(CK)들은 모두 같은 권리 레이블에 포함되지만, 한 프린시펄(principal)은 오직 한 곡만을 재생할 권리를 가지는 반면(즉, 그는 인가에 포함된 것 중 단 하나의 키를 획득할 권리를 지닌다), 또 다른 프린시펄은 앨범의 모든 곡을 재생할 권리를 지닐 수 있다.(즉, 그는 인가의 모든 키를 얻을 권리를 지닌다)
바람직하게, 본 발명에 따른 시스템은 발행 응용 프로그램 또는 사용자로 하여금 권리 레이블(308에 인가 사용자의 그룹이나 부류를 명명할 수 있도록 한다. 이와 같은 실시예에서, 인가 발행 실체는 권리 레이블에 명명되어 있는 인가 사용자 그룹이나 부류를 평가하여 현재의 인가 사용자 신원이 이들 그룹 또는 부류의 구성원에 속하는지를 판단한다. 이와 같은 종속 자격이 발견되면, 인가 발행 실체는 그 인가 사용자의 권리 설명 데이터 구조에 그가 속한 그룹 또는 부류와 연계된 권리 또는 일련의 권리들을 덧붙일 수 있다.
본 발명의 일 실시예에 따르면, DRM 서버의 발행 및 인가 프로토콜(protocol) 인터페이스(interface)는 호출 응용 프로그램(callingapplication) 또는 사용자의 인증 및 승인 절차를 지원하고, DRM 서버의 관리 제어장치(administrative console)는 관리자(administrator)로 하여금 발행 및 인가 인터페이스 모두를 위한 접속 제어 명부(access control list)를 작성할 수 있도록 한다. 이는 서버의 소비자로 하여금 사용자 및 응용 프로그램의 발행 및 인가 활동의 방침(policy)을 적용할 수 있도록 한다.
서명된 권리 레이블 (Signed Rights Label)(308)의 수정 또는 재발행
본 발명의 일실시예에서, 만약 그 컨텐츠의 사용자에게 충분한 허가가 주어졌다면, SRL(308)은 재발행될 수 있다. 즉, 만약 허용되었다면, 사용자가 SRL(308) 내의 권리 데이터를 변경할 수 있음을 말한다. 이 권리 데이터를 변경할 수 있도록 허락하는 것은, 권리 데이터를 변경할 수 있게 허용된 사용자가 연관된 컨텐츠에 관련하여 광범위한 권리를 자기 자신에게 부여할 수 있기 때문에, 드물게 그리고 사리 분별있게 허용되어야 한다는 것을 주목해야 한다. 이러한 사용자는 심지어 자기 자신에게 컨텐츠를 노출하고 전세계에게 전달할 수 있는 권리를 부여하는 것도 상상할 수 있다.
여기서, 변경할 수 있도록 허용하는 것은 특정 사용자 또는 특정 사용자의 집단이 사실 권리 데이터와 권리 레이블(308)을 변경 또는 '재발행'할 수 있다는 표시를 SPL(308)에 있는 권리 데이터 내에 포함함으로써 표명된다. DRM 서버(320)가 인가 요구와 연결되어 이러한 허용과 함께 이러한 SRL(308)을 얻는다면, DRM 서버(320)는 (PU-ENTITY(DES1))가 결과적으로 나오게 하기 위하여 사용자의 공공 키(예를 들어, PU-ENTITY)에 따라서 부호화된 대칭 키(DES1)를 사용자를 위한 요구된 인가에 포함한다.
그러므로, SRL(308) 내의 권리 데이터를 편집하기 위해서, 도 7을 보면, 사용자는 인가(단계 701)에서 (PU-TENTITY(DES1))를 검색하고 (PR-ENTITY)를 거기에 적용하여 (DES1)(단계 703)을 결과로 만들며, SRL(308)(단계 705)에서 (DES1(rightsdata))를 검색하고, (DES1)을 거기에 적용하여 권리 데이터(단계 707)를 결과로 만든다. 그 이후, 사용자는 권리 데이터를 원하는 데로 변경하고(단계 709), 그리고 변경된 권리 데이터를 도 4와 연관되어서 설명한 방법으로 서명된 권리 레이블(308)(단계 711)을 얻기 위하여 DRM 서버(320)로 제출한다. 물론, 여기서, 서명된 권리 레이블(308)은 실제 재발행된 SRL(308)이며, 따라서 일단 SRL(308)이 얻어지면(단계 713), 사용자는 연관된 컨텐츠(단계 715)와 연결된 원래 SRL(308)을 떼어내고 이러한 컨텐츠(단계 717)에 재발행된 SRL(308)을 연결한다.
그러므로, 이해하듯이, SRL(308)을 재발행하는 것은 사용자가 SRL(308)에 있는, 권리, 조건, 그리고 사용자들을 포함하는, 권리 데이터를 연관된 컨텐츠의 변경 없이 업데이트할 수 있게 한다. 특히, 재발행하는 것은 연관된 컨텐츠를 새 (CK)로써 재암호화하는 것을 요구하지 않는다. 또한, 재발행하는 것은, 원래 SRL(308)이 새 SRL(308)로 복사될 수 있는 많은 아이템을 가지고 있으므로, 스크래치(scratch)에서 새 SRL을 생성하는 것을 요구하지 않는다.
서명된 권리 레이블(308)의 자가-발행
본 발명의 일실시예에서, SRL(308)은 요구하는 사용자 본인에 의하여 서명될 수도 있다. 따라서, 사용자는 연관된 컨텐츠를 위한 SRL(308)를 얻기 위하여 DRM 서버(320)와 접촉할 필요가 없다. 이 결과, 자가-발행는 오프-라인 발행라고 불릴 수도 있다. 이러한 구현에서, 사용자에게 자가-발행된 SRL(308)에 근거한 인가를 요구하기 위하여 DRM 서버(320)와 접촉하는 것이 요구될 수도 있다. 발행하는 실체가 자기 자신의 인가를 발행할 수도 있다는 것이 이해되어야 한다.
특히, 도 8에에 의하면, 본 실시예에서, 사용자는 DRM 서버(320)로부터 공공 키 (PU-CERT)와 사용자의 공공 키(PU-ENTITY)에 따라서 암호화된 대응하는 개인 키(PR-CERT)를 포함하는 DRM 증명(810)을 수신함으로써 자가-발행가 처음 허용되어 (PU-ENTITY(PR-CERT))가 결과적으로 나온다. 이러한 DRM 서버(320)가 아래에 더욱 자세히 설명되는 것처럼 증명할 수 있도록 이 증명은 DRM 서버(320) (PR-DRM)의 개인 키로 서명 되어야 한다. 이해하듯이, DRM 증명(810)은 자가-발행할 수 있도록 사용자에게 권한을 준다. 역시 이해하듯이, 키 쌍 (PU-CERT, PR-CERT)는 (PU-ENTITY, PR-ENTITY)와 별개이며, 자가-발행를 위하여 특별히 사용되었다. 키 쌍 (PU-CERT, PR-CERT)이 사용되지 않을 수도 있으며, 이 경우에는 DRM 증명(810)은 사용자의 공공 키(PU-ENTITY)만을 포함하며 DRM 서버(320)가 증명할 수 있도록 DRM 서버(320)의 개인 키로 서명이 된다.
도 4에서 보여진 것과 같이 수행된 단계들에 관해서 사용자가 본질적으로 DRM 서버(320)의 자리를 대신한다는 점에서 자가-발행는 발행와 다르다. 중요하게도, 사용자는 (PU-DRM(DES1))과 (DES1(rightsdata))을 포함하는 제출된 권리 레이블에 DRM 증명(810)(예를 들어, S(PR-CERT))서 얻은 (PR-CERT)로 서명하여 권리 레이블(SRL)(308)을 결과적으로 얻는다. 이해되어야 하듯이, 사용자는 DRM 증명(810)에서 이러한 DRM 증명(810)에서 (PU-ENTITY(PR-ENTITY)를 얻고 거기에 (PR-ENTITY)를 적용함으로써 (PR-CERT)를 얻는다. DRM 서버(320)가 제출된 권리 레이블에서 권리를 행사할 수 있는 것을, 특별히 사용자가 (PU-DRM(DES1))에 적용할 (PR-DRM)이 없기 때문에, 사용자가 검증할 수 없다는 것에 주목해야 한다. 따라서, DRM 서버(320)가 자가-발행 SRL(308)에 근거하여 인가가 요구된 때에 검증을 스스로 수행해야 한다.
일단 사용자가 SRL(308)을 자가-발행하면, 사용자는 이런 자가-발행된 SRL(308)과 같은 것을 만들도록 사용된 DRM 증명(810)을 컨텐츠와 연결하고, SRL(308)과 DRM 증명(810)이 있는 이러한 컨텐츠는 다른 사용자에게 분배된다. 그 이후, 도 6a와 6b에 보여진 것 상당히 비슷한 방법으로 다른 사용자가 인가를 요구하고 DRM 서버(320)로부터 컨텐츠를 위한 인가를 얻는다. 여기서는, 인가를 요구하는 사용자는 자가-발행된 SRL(308)과 컨텐츠에 연결되어 있는 DRM 증명(810) 모두를 DRM 서버(320)에게 제출한다. DRM 서버(320)는, 다음에, 상응하는 (PU-DRM)에 근거하여 DRM 증명(810)에 있는 S(PR-CERT)를 검증하고, DRM 증명(810)에서 (PU-CERT)를 얻는다. DRM 서버는 다음에 SRL(308)에 있는 S(PR-CERT)를 얻은 (PU-CERT)에 근거하여 검증하고, 전과 같이 계속한다. 사용자가 DRM 서버(320)가 SRL(308)에 있는 권리를 행사할 수 있다고 검증을 하지 않았기 때문에, 그리고 위에서 설명한 것과 같이, DRM 서버(320) 그 자체가 이번에 검증을 수행해야 한다.
권리 템플릿
위에서 언급한 것과 같이, 사용자는 사용자들 또는 사용자들의 집합을 정의하고, 각 정의된 사용자 또는 사용자들의 집합을 위한 권리를 정의하고, 그리고 그 다음으로 어떠한 사용 조건들을 정의함으로써 권리 레이블에 어떠한 종류의 권리 데이터를 만들 수 있다. 그러나, 그리고 매우 중요하게, 복수의 권리 레이블을 위한 권리 데이터를 반복적으로 정의하는 것은, 특히 같은 사용자들 또는 사용자들의 집합, 권리, 그리고 조건들이 다른 컨텐츠에 대해서 반복적으로 정의될 때, 매우 성가시고 반복적이 될 수 있다. 이러한 경우는, 예를 들어, 사용자가 반복적으로 특정하게 정의된 사용자의 팀과 함께 공유되어야 할 다른 컨텐츠 발행하는 회사나 사무실 환경에서 발생할 수 있다. 이러한 경우에, 그러면, 그리고 본 발명의 일실시예에서, 사용자가 권리 레이블을 만드는 것과 연관해서 사용자가 반복적으로 사용할 수 있는 권리 템플릿이 만들어지며, 여기서 권리 템플릿은 정의된 사용자의 세트와 집합, 각 사용자 또는 사용자의 집합에 대한 미리 정의된 권리, 그리고 미리 정의된 사용 조건들을 이미 포함하고 있다.
본 발명의 일실시예에서, 도 9를 참조하며, 권리 템플릿(900)은 권리 레이블에 있어야할 권리 데이터와 상당히 같은 권리 데이터를 가지고 있다. 그러나, 발행되기 전에는 (DES1)이 알려져 있지 않기 때문에, 권리 레이블의 경우인 것과 같이, 권리 데이터는 이러한 (DES1)에 따라서 암호화될 수가 없다. 본 발명의 일실시예에서, 그러면, 암호화되지 않은 권리 데이터가 있는 권리 템플릿(900)은 도 4의 단계 416에서 (DES1)로써 권리 데이터를 암호화하는 과정에서 (DES1(rightsdata))를 생성하기 위하여 제출된다. 물론, 권리 데이터는 이렇게 암호화되기 전에 제출된 권리 템플릿(900)에서 검색된다.
권리 템플릿이 구성될 때 DRM 서버(320)과 공공 키(PU-DRM)가 알려졌을 수도 있고 그렇지 않을 수도 있다. 더 나아가, 비록 알려져 있다 하여도, 자기 자신의 (PU-DRM)을 가지는 DRM 서버(320)가 하나 이상 있을 수 있고 또는 없을 수도 있다. 그럼에도 불구하고, 권리 템플릿이 구성될 때 DRM 서버(320)과 공공 키(PU-DRM)가 알려진 경우와, 오직 하나의 DRM 서버(320)가 사용된 경우, 또는 권리 템플릿(900)과 연관되어서 오직 하나의 DRM 서버(320)가 사용되는 경우에는, 그러한 권리 템플릿은, 공공 키 (PU-BRM)을 포함하여, 권리 템플릿(900)에서 나오는 권리 레이블에 서명하기 위한 DRM 서버에 있는 정보를 포함할 수 있다. 비록 (DES1)이 (PU-DRM(DES1))이 되도록 암호화함에 따라 이러한 (PU-DRM)이 SRL(308)에 나타나더라도, (DES1)은 컨텐츠가 발행될 때까지 알려져 있지 않다는 것을 인지해야 하고, 그러므로, 권리 레이블에서와 같이, 권리 템플릿(900)에 있는 (PU-DRM)은 이러한 (DES1)을 암호화할 수 없다. 본 발명의 일실시예에서, 그러면, 암호화되지 (PU-DRM)이 있는 권리 템플릿(900)은 도 4의 단계 414에서 (PU-DRM)로써 (DES1)를 암호화하는 과정에서 (DRM(DES1))를 생성하기 위하여 제출된다. 물론, (PU-DRM)는 이렇게 암호화되기 전에 제출된 권리 템플릿(900)에서 검색된다.
앞서 언급한 경우에, DRM 서버에 있는 권리 템플릿에 포함될 수 있는 다른 정보는 네트웍 상에서 DRM 서버를 찾기 위한 URL, 그리고 만약 그 URL이 실패한 경우를 위한 대체 정보와 같은 참조 정보를 포함할 수 있다. 어떠한 경우에도, 다른 것들 중에서, 권리 템플릿은 그 권리 템플릿(900) 자체를 설명하는 정보를 포함할 수도 있다. 권리 템플릿(900)은, 만약 권리 템플릿의 실증이 실제로 권리 레이블로 전환되지 않았다면 그러한 공간이 필요없지만, 발행될 컨텐츠와 관련된 컨텐츠 및/또는 키(CK)와 (DES1)의 암호화와 관련되어서 권리 레이블에 나타나는 정보와 같은, 정보를 위하여 공간을 제공할 수도 있다.
비록 지금까지 설명된 권리 템플릿(900)은 주로 사용자의 편의를 위함이지만, 어떤 경우에서는, 사용자는 권리 레이블에 권리 데이터를 정의하는데 무제한 자유가 없어야 하고, 권리 템플릿(900)은 만들어 질 수 있는 권리 레이블의 범위와 종류를 제한하는데 사용될 수도 있다. 예를 들어, 또 특별히 회사나 사무실 환경에서, 어떤 특정 사용자는 언제나 어떤 특정 사용자의 집합에게만 컨텐츠를 발행해야 하고, 또는 그 사용자는 어떤 상요자의 집합에게는 절대로 발행해서는 안 된다고 정책적으로 미리 정의될 수 있다. 어떠한 경우에라도, 그리고 본 발명의 일실시예에서, 이러한 정책은 하나 또는 그 이상의 권리 템플릿(900)에 미리 정의된 권리 데이터로써 구현되고, 사용자는 컨텐츠를 발행할 때 권리 레이블을 만들기 위해 이러한 권리 템플릿을 사용하도록 제한될 수도 있다. 사용자를 위하여 사용자가 발행하는 정책을 지정 하기 위해서 사용할 수 있는 권리 템플릿 또는 권리 템플릿의 그룹들은 본 발명의 정신과 범위를 벗어나지 않으면서 어떠한 특정 발행 정책의 종류를 지정 할 수 있다.
제한된 사용자 또는 그와 유사한 사용자를 위하여 권리 템플릿을 지정하기위해서는, 도 10을 참조하면, 관리자 또는 이와 유사한 자가 권리 템플릿(900)을 미리 정의된 권리 데이터(단계(1001))를 정의함으로써, 그리고 특정 DRM 서버(320)(단계(1003)과 관련된 정보와 같이 필요하고 적합한 어떠한 다른 데이터를 정의함으로써 구성한다. 중요하게, 제한된 사용자와 그와 유사한 사용자의 사용을 위하여 권리 템플릿을 달성하기 위해서는, 권리 템플릿(900)이 공식적으로 만들어져야 한다. 다시 말해, 권리 템플릿(900)은 제한된 사용자 또는 그와 유사한 사용자가 사용할 수 있는 권리 템플릿으로 인식될 수 있어야 한다. 따라서, 본 발명의 일실시예에서, 관리자 또는 이와 유사한 자에 의하여 구성된 권리 템플릿은 거기서 서명의 위하여 DRM 서버(320)으로 제출되며, 여기서 이러한 서명이 권리 템플릿을 공식화한다 (단계(1005).
서명하는 DRM 서버가, 만약 진정으로 그러한 정보가 실제로 권리 템프릿(900)에 존재한다면, 정보가 권리 템플릿(900)에 있는 DRM 서버임을 주목해야한다. 또한, DRM 서버는 필요한 어떤 검사를 한 후에만 권리 템플릿(900)에 서명할 수 있고, 또는 아무런 검사 없이 서명할 수도 있다는 것을 주지해야한다. 마지막으로, 권리 템플릿(900)에서 유래한 템플릿 서명 S (PR-DRM-T)은 적어도 권리 템플릿(900)에 있는 미리-정의한 권리 데이터에 기반을 둘 수 있고, 또는 본 발명의 정신과 범위에서 벗어나지 않으면서 다른 정보에 기반을 둘 수 있다는 것을 알아야 한다. 아래에 기술한 바와 같이, 서명 S (PR-DRM-T)은 권리 레이블로 통합되며, 그것과 함께 검증되고, 따라서 서명이 기반을 둔 그 어떠한 것도 변경되지 않은 형식으로 권리 레이블에 통합된다.
DRM 서버(320)가 권리 템플릿(900)에 서명하고 관리자 또는 그와 유사한 자에게 같은 것을 돌려줌에 따라, 관리자는 서명되고 이제는 공식적인 S (PR-DRM-T)이 있는 권리 템플릿(900)을 받고, 그 공식적인 권리 템플릿(ORT)(900)을 하나 또는 그 이상의 사용자가 거기서 사용할 수 있도록 전달한다(단계(1009). 따라서, 사용자가 ORT(900)에 근거한 컨텐츠를 발행하기 위해서는, 그 사용자는 ORT(900)를 얻고(단계(1011), 그리고 컨텐츠에의 정보, 적당한 키 정보, (DES1(rightsdata))가 결과로 나오도록 (DES1)에 의하여 암호화된 ORT(900)에서 나오는 권리 데이터, 그리고 ORT(900)에서의 다른 어떤 정보와 같이 필요한 어떠한 정보를 제공함으로써 ORT(900)에 근거한 권리 레이블을 구성한다. 중요하게, 사용자는 권리 레이블을 가지고 ORT(900)에서의 서명 S (PR-DRM-T)를 포함한다.
그 이후에, 그리고 전과 같이, 사용자는 서명을 위하여 DRM 서버(320)에 권리 레이블을 제출한다 (단계(1015). 여기서는, DRM 서버(320)는 S (PR-DRM-T)가 검증을 하지 않으면 제출된 권리 레이블을 서명하지 않는다. 이것은, DRM 서버(320)가 제출된 권리 레이블이 ORT(900)에서부터 서명 S (PR-DRM-T)을 포함하지 않으면 제출된 권리 레이블을 서명하는 것을 거절함으로써 사용자는 반드시 제출된 권리 레이블을 ORT(900)에 근거하도록 강요한다는 것을 말한다. 특별히, DRM 서버(320)는 그러한 S (PR-DRM-T)과 그러한 서명이 기반을 두는 어떠한 정보를 제출된 권리 레이블에서부터 검색하고, (PU-DRM)에 근거한 그러한 서명을 검증한다. 제출된 권리 레이블에 있는 권리 데이터는 (DES1)(다시 말해, DES1(rightsdata))에 따라서 암호화된 가는 것에 주목해야 한다. 따라서, 위에서 설명한 도 7과 연관되어 제출된 권리 레이블에 있는 권리 데이터에 근거하여 서명을 검증할 수 있도록 DRM 서버(320)는 먼저 (DES1)을 획득해야 하고, 거기서 DES1(rightsdata)를 해독해야 한다.
일단 검증되면, DRM 서버(320)는, 전과 같이, SRL(308)을 생성하도록 제출된 권리 레이블을 S (PR-DRM-L)로서 서명한다(여기서 -L은 서명이 SRK(308)을 위함을 나타낸다). 여기서, S (PR-DRM-L)은 S (PR-DRM-T)를 대신할 수 있으며, 또는 이러한 S (PR-DRM-T)과 함께 추가가 될 수 있다. 만약 추가라면, S (PR-DRM-L)은 부분적으로 S (PR-DRM-T)기반을 둘 수 있다. (PR-DRM)은 S (PR-DRM-T)과 S (PR-DRM-L) 모두를 생성하기 위하여 사용될 수 있고, 또는 다른 (PR-DRM)들이 각 S (PR-DRM-T)과 S (PR-DRM-L)을 위하여 사용될 수 있음을 주목해야 한다. DRM 서버(320)가 권리 레이블에 서명하고 SRL(308)을 리턴함에 따라, 사용자는 S (PR-DRM-L)을 가진 SRL(308)을 얻고 전과 같이, 발행되는 컨텐츠에 같은 것을 연결하도록 진행한다.
만약 ORT(900)의 서명 S (PR-DRM-T)가 적어도 일부분이 ORT(900)에 미리 정의된 권리에 근거를 두고 있다면, SRL(308)(DES1(rightsdata))에 나타나는 것과 같은 그런 권리 데이터는 수정 또는 변경이 될 수 없다. 그렇지 않다면, S (PR-DRM-T)이 검증하지 않는다. 그럼에도 불구하고, 본 발명의 일실시예에서, ORT(900)의 권리 데이터는 ORT(900)에 역시 포함되는 지정된 규정 내에서 달라질 수 있다. 예를 들어, 두개의 권리 데이터의 집합에서 하나를 SRL(308)에 포함되도록 지정할 수 있으며, 또는 다른 대체의 집합 중에서 선택할 수 있게 할 수도 있다. 이해하듯이, 이들 규정들은 본 발명의 정신과 범위에 벗어나지 않고 그 어떠한 적당한 구문으로 설명한 특정 규정들이 될 수 있다. 여기서, 이들 규정은 권리 레이블이 생성된 시점에서 사용자를 위한 적당한 규정 해석자에 의하여 해석된다. 비록 이 권리 데이터가 달라질 수 있지만, 규정을 이처럼 달라지지 않으며, 따라서 ORT(900)을 위한 서명 S (PR-DRM-T)은 적어도 일부가 권리 데이터 그 자체가 아닌 규정에 기반을 둔다. 이 결과, ORT(900)에 포함된 규정들은 SRL(308)에도 포함되어야 한다.
본 발명의 일실시예에서, ORT(900)에, 위에서 설명한 바와 같이, 미리 정의된 권리 데이터의 일부는 고정되고 불변이고 또 일부는 가변적이고 규정에 의하여 동작된다. 여기서, ORT(900)을 위한 템플릿 서명 S (PR-DRM-T)은 적어도 일부는 규정의 고정된 부분과 권리 데이터의 가변 부분을 위한 규정에 근거를 둔다.
이해하듯이, 사용자가 소유한 ORT(900)은 구식이 될 수 있다. 이것은, ORT(900)가 거기에 있는 권리 데이터를 통하여 시대에 뒤떨어지거나, 무관하거나 또는 더 이상 작용할 수 없는 정책을 반영할 수 있다는 것이다. 예를 들어, ORT(900)의 권리 데이터에 지정된 하나 또는 그 이상의 사용자, 또는 사용자들의 집합이 더 이상 그 정책 환경에서 존재하지 않을 수 있으며, 또는 ORT(900)의 권리 데이터에 지정된 어떤 특정 사용자 또는 사용자의 집합이 더 이상 그 정책 환경에서 같은 권리를 가지고 있지 않을 수 있다. 이러한 경우는, 관리자가 개정된 ORT(900)을 발행했지만 사용자가 아직도 예전의, 진부한 ORT(900) 버전을 사용하는 것일 수 있다.
이러한 경우에, 그리고 본 발명의 일실시예에서, DRM 서버(320)는 ORT(900)을 생성하기 위하여 제출된 권리 템플릿(900)에 서명함에 따라 ORT(900)의 사본을보유하며, 여기서, 각 ORT(900)은 고유의 식별 표시를 가지고, ORT(900)에 근거하여 구성된 권리 레이블은 그러한 ORT(900)의 식별 표시를 포함한다. 따라서, 도 10와 연관된 것과 같이, 제출된 권리 레이블을 받으면, DRM 서버(320)는 권리 레이블에서 ORT(900)의 식별 표시를 찾고, 찾은 식별 표시에 근거한 그러한 ORT(900)의 최근 업데이트된 사본을 검색하고, 제출된 권리 레이블에서 권리 데이터를 제거하고, 검색된 ORT(900)에서 권리 데이터를 삽입하며, 그리고 적어도 일부가 삽입된 권리 데이터에 근거한 권리 데이터에 서명한다. 물론, DRM 서버는 앞에서 언급한 프로세스에서, 해독하고 재암호화하는 것(DES1(rightsdata))을 포함하여, 그 어떤 필요하고 현재 사용 중인 암호화와 해독 단계를 수행한다. DRM 서버가 제출된 권리 레이블의 권리 데이터를 대신하도록 변경되었다면, 그런 권리 레이블과 그런 권리 레이블이 구성되는 ORT(900)은 꼭 권리 데이터를 포함할 필요는 없다. 대신, 권리 데이터는 DRM 서버(320)에 상주하면 된다. 그러나, 권리 레이블과 함께 권리 데이터와 그런 권리 레이블이 구성되는 ORT(900)을 포함하는 것은 사용자를 위하여 유용할 수 있으며, 그러므로 어떤 경우에는 유용할 수도 있다.
키 동작을 위한 추상화(abstraction)
본 발명에 따르는 디지털 권리 관리 시스템은 다른 키 보호 방식을 디지털 권리 관리 시스템으로 플러그할 수 있도록 허용하는 키 관리 인터페이스를 포함한다. 이러한 인터페이스는 데이터 서명하기, 암호화된 데이터를 공공 키를 사용하여 해독하기, 그리고 암호화된 데이터를 인터페이스에 의하여 다른 인가된주체(principal)(다시 말해, 다른 공공 키로 보내진 공공 키를 사용하여 재암호화하는 것의 기능을 나타낼 수 있다. 그러므로, 데이터가 인터페이스를 암호화가 안된 보통문으로 들어오거나 떠나지 않도록 안전한 인터페이스가 제공될 수 있다. 이러한 인터페이스는 서명과 해독의 개인 키 동작을 나타낼 수 있고, 인가와 발행에 있어서 DRM 시스템을 위하여 보안과 허가를 제공한다. 발행 도중에는, 한 클라이언트는, 예를 들어, 앞서 언급한 인터페이스를 사용하는 플러그 인을 사용하여 오직 어떤 특정 실체가 해독할 수 있도록 자산 키를 암호화할 수 있다. 인가 도중에는, 인가를 인가하는 실체는 자산을 위한 키들을 해독하고 자산이 보호되고 호스트 디지털 권리 관리 플래트폼(platform)에 의하여 소비될 수 있도록 인가와 권리 레이블에 서명하도록 인터페이스를 사용할 수 있다. 그러므로 인터페이스는 키 동작을 위한 추상화를 제공한다.
도 14는 본 발명에 따라 디지털 권리 관리 시스템에서 보안 키 동작을 위한 추상화를 제공하는 방법의 바람직한 구현의 흐름도이다. 단계(1402에서, 디지털 권리 관리 시스템과 연결되어 사용할 수 있는 키 관리 인터페이스가 제공된다. 위에서 설명한 바와 같이, 키 관리 인터페이스는, 예를 들어, 공공-개인 키 쌍으로부터의 개인 키 등의 키 자료의 사용을 포함하는 암호화 동작 등의 동작을 추상화한다. 바람직하게, 이 추상화는 키 재료 또는 키의 사용에 의존하는 (예를 들어 인증서와 같은) 다른 재료의 검색 도중에 키 재료의 외부 식별을 허용한다. 이것은, 키 관리 인터페이스는 외부 콜러(caller)가 동작을 수행하는데 사용될 키 재료를 식별할 수 있게 하는 메커니즘을 제공한다.
단계(1404)에서, 디지털 권리 관리 시스템에서의 사용을 위하여 복수의 키 관리 요소들이 제공된다. 각 키 관리 요소들은 디지털 권리 관리 시스템으로 하여금 키 재료 관리를 위한 각각의 방법을 수행하는 것을 가능하게 한다. 예를 들어, 도 11a-d,(12, 그리고(13과 연관되어서 설명된 방법들은 각각의 키 관리 요소로써 구현될 수 있다. 바람직하게, 키 관리 요소들은 플러그 인으로써 구현된다.
그런 다음, DRM 시스템의 사용자는 사용자의 필요에 따라서 사용자의 시스템을 맞게 하도록 사용 가능한 선택 사항들 중에서 선택할 수 있다. 이러한 시스템은 사용자로 하여금 복수의 키 관리 요소에서부터 키 재료를 보호하는 데 있어서 비용, 보안, 그리고 성능을 고려하여 키 관리 요소를 선택할 수 있게 한다.
단계(1406)에서, 선택된 키 관리 요소는 키 관리 인터페이스를 통하여 디지털 권리 관리 시스템으로 통합된다. 그러므로, 사용자에게 사용자가 사용자의 설치에 가장 적합하다고 선택한 키 관리 능력을 포함하는 DRM 시스템이 제공될 수 있다. 더 나아가, 플러그 인 설계는 선택된 키 관리 방식이 빠르고 쉽고 저렴하게 변경될 수 있도록 허용한다.
본 발명에 따라서 키 동작의 추상화와 연관되어 사용될 수 있는 여러 개의 바람직한 키 보호 방식의 자세한 설명이 아래에 나온다.
개인 키를 전단 서버에서 제거함으로써 보호하기
일반적으로, 도 11a에 도시되었듯이, 데이터 서명과 해독과 같은 기능을 포함할 수 있는, 암호 동작(1114)은 하나 또는 그 이상의 전단 서버(1110a-c)를 포함하는 서버 풀(pool)에서 일어난다. 암호 동작(1114)은 데이터베이스 서버(1113)의 데이터베이스(1112)에 일반적으로 저장된 개인 키(1116)의 사용을 포함한다. 개인 키(1116)는 암호 동작(1114)을 수행과 연관되어 사용되는 공공-개인 키 쌍의 일부로써 생성된다. 암호 동작(1114)을 수행하기 위하여 전단 서버(1110)는 개인 키(1116)를 데이터베이스(1112)에서 검색한다.
비록 전단 서버 풀(1110)의 개인 키(1116)를 보호하는 것이 가능할지라도, 개인 키를 전단 서버 풀(1110)에서 없애주는 것이 바람직하며, 이러한 해결책은 개인 키를 절취 또는 손상하려고 전단 서버(1110)로의 해커 침입을 더욱 어렵게 만들 수 있다.
일반적으로, 본 발명의 일면은 전단 서버의 외부에 있는 후단 서버 풀에 키를 저장하고 관련되어 있는 암호 동작을 수행하는 것을 제공한다. 바람직하게, 후단 서버는, 예를 들어, 구내 정보 통신망(LAN)을 통하여 전단 서버 풀 (그리고 서로에게) 연결된 하나 또는 그 이상의 후단 서버로 구성되어 있다. 그러므로, 전단 서버 풀은 인터넷과 같은 글로벌 통신 네트웍을 통하여 접속 가능하게 만들 수 있으며, 후단 서버 풀은 인터넷을 통하여 직접 접속할 수 없게 만들 수 있다. 이러한 구성은 해커가 개인 키와 관련된 암호 기능을 절취 또는 손상하는 것을 더욱 어렵게 할 수 있으며, 그러므로 시스템의 전체적인 보안을 암호 동작이 전단 서버에서 수행되는 시스템에 비하여 향상시킬 수 있다.
도 11b는 후단 서버(1121)가 데이터베이스 서버(1222)를 포함하는 바람직한 구현을 도시한다. 암호 동작(1124)은 전단 서버 풀(1120)의 외부에 있는 데이터베이스 서버(1222)에 저장된 확장된 절차의 일부로 수행된다. 개인 키의 사용이 필요 되는 암호 동작(1124)을 수행하기 위해서, 전단 서버(1120)는 저장된 절차 콜(1127)을 LAN(1126)을 통하여 데이터베이스 서버(1122)로 시작한다. 이 저장된 절차는 암호 동작(1124)이 데이터베이스 서버(722)에서 수행되도록 한다. 결과적으로, 개인 키(1126)는 데이터베이스(1128)를 떠날 필요가 없으며, 키(1126)와 저장된 절차는 데이터베이스 자체 만큼 안전할 수 있게 된다. 데이터베이스(1128)가 일반적으로 전단 서버(1120)에 있지 않기 때문에, 이것은 전단 서버(1120)에서 개인 키를 제거하는 비용-효율적인 방법이다.
도 11c와 11d에 도시된, 비슷한 방법을 사용하여, 개인 키를 사용하여 암호 동작을 수행하도록 중간 서비스 또는 서버가 소개된다. 바람직하게, 이러한 서비스 또는 서버는 전단 서버 풀에 대하여 외부에 있으며, 인터넷을 통하여 접속할 수 없는 개인 후단 LAN에 위치한다.
도 11c는 후단 서버(1131)가 서버 풀(1130)과 데이터베이스 서버(1132) 사이에 연결된 외부 암호 서버/서비스(1136)를 포함하는 바람직한 실시예가 도시된다. 암호 동작(1134)의 어떠한 것을 수행하기 위해서, 전단 서버(1130)는 외부 암호 서버(1139)로 콜을 시작한다. 이 외부 암호 서버(1139)는, LAN과 같은, 로컬 통신 네트웍(1137)을 통하여 각 전단 서버(1130과 데이터베이스 서버(1132)와 통신적으로 연결될 수 있다. 외부 암호 서버(1139)는 데이터베이스 서버(1132)에 상주하는 저장된 절차를 부른다. 이 저장된 절차는 데이터베이스 서버(1132)에서 암호 동작(1134)이 수행되도록 야기한다. 그러므로, 도 7b와 연관되어서 위에서 설명한구현에서, 개인 키(1136)가 관여된 모든 암호 동작(1134)들은 데이터베이스 서버(1132)에서 수행될 수 있다. 결과적으로, 개인 키(1136)는 데이터베이스(1138)를 떠날 필요가 없다.
도 11d는 후단 서버(1141)가 서버 풀(1140)과 데이터베이스 서버(1142) 사이에 연결된 외부 암호 서버/서비스(1149)를 포함하는 또 다른 바람직한 구현을 묘사한다. 도 11d에 나타나듯이, 암호 동작(1144)은 외부 암호 서버/서비스(1149)에 의하여 수행될 수 있다. 그 어떠한 암호 동작(1144)을 수행하기 위해서, 전단 서버(1140)는 외부 암호 서버(1149)로 콜을 시작한다. 이 외부 암호 서버(1149)는 데이터베이스(1148)에서 개인 키(1146)를 검색하고, 외부 암호 서버(1149) 안에서 암호 동작(1144)을 수행하기 위하여 개인 키(1146)를 사용한다. 결과적으로, 개인 키(1146)는 암호 서버(1149)에 저장될 수 있고, 거기에 제공된 암호 서비스의 일부로 유지될 수 있다. 이러한 방식은 이 방식의 크기 변경 능력(scalability) 때문에 유리하다는 것을 주목해야 한다. 더욱 많은 부하를 처리하기 위하여 서버 풀(1140)에 더 많은 전단 서버가 추가됨에 따라서, 어떤 시점에 오면, 암호 동작(1144)은 병목현상에 도달한다. 일반적으로 데이터베이스 서버를 배치하고 유지하는 것이 더 비용이 많이 들기 때문에, 데이터베이스 서버보다 외부 암호 서비스/서버를 배치하는 것이 바람직하다.
외부 암호 서비스/서버(여기서 암호 동작이 후단 LAN의 외부 서비스/서버에서 발생한다)의 다른 구현 역시 가능하며 데이터베이스의 사용이 바람직하지만 꼭 필요한 것이 아니라는 것을 이해해야 한다.
인증서 서명 개인 키를 컨텐츠 보호 개인 키로부터 분리함으로써 개인 키를 보호하기
위에서 자세히 설명한 바와 같이, 본 발명에 따른 DRM 서버는 공공/개인 키 쌍의 개인 키 부분은 적어도 두 가지 다른 동작을 위하여 사용한다: 호스트 DRM 플래트폼이 부정 조작이 불가능한 사용과 인가를 위하여 컨텐츠와 다른 인증서를 허가할 수 있도록 인가에 서명하는 것과, 디지털 컨텐츠를 보호하기 위하여 사용된 컨텐츠 대칭 키를 해독하는 것이다. 같은 공공/개인 키 쌍이 두개 모두의 동작을 위하여 사용될 수 있다.
본 발명의 한 측면에 의하면, 그러나, 두개의 다른 개인 키도 사용될 수 있다(인증서 서명하는 개인 키와 컨텐츠 보호 개인 키). 비록 인증서 서명 개인 키를 전단 서버에 상주하는 것의 위험도가 허용될 정도라고 생각이 될 지 모르지만, 컨텐츠 보호 개인 키를 전단 서버에 상주하는 것의 위험도는 허용될 수 없을 정도이다. 이것은 제3자가 자기 자신의 인가를 만드는 것을 방지하기 위해서 다른 안전 장치들을 인가 발급에 넣을 수 있기 때문이다. 이러한 기술의 한 예로 DRM 시스템에 의하여 검증된 암호화되지 않은 데이터와 일치하는 암호화된 데이터를 인가에 삽입하는 것을 들 수 있다. 이 두 개인 키를 분리함으로써, 더 많은 기능이 전단 서버에 계속 상주할 수 있고 시스템은 더욱 비용을 효율적으로 조절할 수 있다.
도 12에서 보여지듯이, DRM 시스템(1230)은, 디지털 컨텐츠를 보호하도록 사용된 컨텐츠 대칭 키를 해독하는데 사용될 수 있는, 루트 또는 컨텐츠 보호 공공/개인 키 쌍을 가질 수 있다. 컨텐츠 보호 공공 키는 (예를 들어 Microsoft vault키와 같은) 궁극적인 신뢰의 루트(root of trust)(1235) 의하여 서명된 공공 인증서(1236)를 통하여 발행될 수 있다. 컨텐츠 보호 개인 키는, 예를 들어, 확장된 보안 후단 서버가 될 수 있는, 매우 안전한 지역(1234)에서 유지될 수 있다.
본 발명의 이 측면에 의하면, DRM 시스템(1230)의 전단 서버(1232)는, 실행 시간 중에, 인증서 서명의 의하여 사용될 다른 공공/개인 키 쌍을 만들 수 있다. 확장된 보안 후단 서버(12340는 이 새로운 공공 키는 신뢰성이 있다는 것을 알리는 인증서(1237)에 서명하기 위하여 루트 개인 키에 대한 지식을 이용할 수 있다.
전단 서버(1232)는 모든 서명을 수행하기 위하여 별개로 만들어진 인증서 서명 개인 키를 이용할 수 있다. 문서(1238)를 리턴할 때, 인증서 서명 공공 키와 루트 공공 키를 포함하는 인증서 고리가 클라이언트(1210)에게 리턴될 수 있다. 클라이언트(1210)은 그 리턴된 문서에서 신뢰를 확립하기 위하여 인증서 고리를 "올라 갈(walk up)"수 있다. DRM 시스템(1230)은 클라이언트(1210)와의 조율 없이 원할 때마다 서명 공공/개인 키 쌍을 재생성할 수 있다.
무상태 롤링 개인 키(stateless rolling private key)를 사용하여 개인 키 보호하기
도 13는 개인 키가 무상태 롤링 개인 키의 사용으로 보호되는 본 발명의 한 구현을 나타내는 기능적인 흐름 선도이다. DRM 서버는 루트(다시 말해, 마스터) 개인 키(Sroot)와 호스트에 의하여 발행된 루트 공공 키(Proot)를 포함하는 루트 인가자 인증서(Lroot)(1310)를 사용한다. 정기적으로 (예를 들어, 하루에 한번,(100 처리에 한번 등등) 새로운 "롤링" 키 쌍 (Si, Pi)(1320)이 보안 후단 서버(1308)에 의하여 생성되고 인가자 인증서(Li)(1312)와 함께 전단 서버(1304)로 제공된다. 현재 롤링 개인 키는 전단 서버에서 캐쉬(1316) 내에 저장될 수 있다. 롤링 키의 윈도우 측량(metric)은 필요에 따라 정의될 수 있다. 더 빈번히 키가 생성될수록, 더 많은 보안을 얻을 수 있다. 무상태 해결책을 생성하기 위해서, Li(1312)는 Proot으로 암호화된 Si를 포함한다. 도 12와 연관되어서 설명한, 개별 키의 개념은 역시 더욱 견고하고 안전한 해결책을 제공하기 위하여 사용될 수 있다.
본 발명의 이 측면에 의하면, 인가자 인증서를 얻기 위한 요구가 DRM 서버로 발행되면, 현재 인가자 인증서 Li(1312)가 리턴 된다. 발행을 위해 권리 레이블을 서버로 업로드하기 전에 클라이언트 (1302)에서 수행하는 DRM이 가능한 클라이언트 응용(1314)은 컨텐츠 키를 Li로부터 얻은 Pi로 암호화한다. 서버에 권리 레이블이 만들어졌을 때, 컨텐츠 키는 Si를 사용하여 해독되고, 현재 롤링 키, Pj를 사용하여 암호화한 후에 권리 레이블에 재삽입한다. 발행을 위하여 권리 레이블에 서명할 때, 권리 레이블에 서명하기 위하여 현재 롤링 개인 키 (Si)가 사용된다. 서명된 권리 레이블(1322), Lroot(1310), 그리고 Lj(1312)가 콜러(caller)로 리턴된다. 컨텐츠를 위한 인가(1318)를 만들도록 불려지면, 컨텐츠 키는 컨텐츠를 요구하는 사용자와 묶기 위하여 공급된 사용자 개인 키로 재암호화 된다.
모든 중요한 동작들은 동작과 키를 확보하기 위하여 앞에서 언급한 개인 키 동작을 위한 인터페이스를 사용하는 것을 주목해야 한다. 개인 키 동작을 하는 서버는 더욱 빠른 검색(lookup)을 위하여 작은 롤링 개인 키 LRU 캐쉬를 유지한다. 이것은 만약 그렇지 않다면 각 키 서버가 안전한 후단(secure backend)에게 각 요구에 대하여 Si를 해독하도록 요구해야 하고 만약 안전한 후단이 원격 데이터베이스라면, 성능이 떨어지기 때문이다. 만약 이 서버가 손상되면, 오직 캐쉬 컨텐츠가 해커에게 노출된다. 궁극적으로, 영향을 최소화하기 위해서, 캐쉬의 크기가 상대적으로 작아도 된다. 이것이 보안과 성능 간의 트레이드오프(tradeoff)의 대표적인 예이다.
만약 해커 침입의 확률이 γ라면, 롤링 키가 없고 모든 동작에 루트 키가 사용되는 경우라면, 해커가 모든 컨텐츠에 대하여 개인 키를 갖기 때문에 모든 컨텐츠를 손상시킬 확률은 γ이다. 롤링 키를 사용하는 경우에는, 모든 컨텐츠를 손상시킬 확률은 γ(p+t)/N)이며, 여기서 p는 캐쉬 크기, t는 개인 키 박스에서 동작하는 스레드의 수이고, N은 테이블에 있는 개인 키의 수이다. 캐쉬 일관성을 로컬라이즈(localize)하고 캐쉬에서 스레싱(thrashing)을 방지하기 위하여 키의 어떤 부분집합을 다루도록 키 동작을 호스트(host)하는 서버를 부하 균형을 맞추는 것 역시 가능하다.
디지털 권리 관리 시스템에서 사용하기에 특별히 적당한 안전한 서버 키 동작을 제공하기 위한 시스템과 방법이 설명되었다. 당업자들은 본 발명의 바람직한 구현에 있어서 여러 가지 변경과 수정이 있을 수 있다는 것을 인지할 것이고, 이러한 변경과 수정은 본 발명의 정신에서 벗어나지 않고 만들질 수 있다는 것 역시 인지할 것이다. 그러므로, 첨부된 청구항들이 본 발명의 진정한 정신과 범위에 해당되는 그러한 동등한 변경 모두에 미치도록 의도되었다.
[첨부]

Claims (51)

  1. 디지털 권리 관리 시스템(digital rights management system)에서 안전 키(secure key) 동작을 위한 추상화(abstraction)를 제공하는 방법에 있어서,
    디지털 권리 관리 시스템에서, 키 자료(material)를 포함하는 동작을 추출하는 키 관리 인터페이스(key management interface)를 제공하는 단계;
    디지털 권리 관리 시스템(digital rights management system)에서 사용하기 위한 복수의 키 관리 요소를 제공하는 단계 - 상기 키 관리 요소의 각각을 상기 디지털 권리 관리 시스템이 키 자료를 관리하는 각각의 방법을 수행하도록 함 -; 및
    키 관리 인터페이스를 통하여 선택된 키 관리 요소를 디지털 권리 관리 시스템으로 통합하는 단계을 포함하는 방법.
  2. 제1항에 있어서,
    상기 키 관리 요소 중 하나 이상은 플러그 인 요소인 방법.
  3. 제1항에 있어서,
    상기 키 자료가 개인 키를 포함하는 방법.
  4. 제1항에 있어서,
    상기 키 관리 인터페이스가 키 자료의 외부 식별을 허용하는 방법.
  5. 제1항에 있어서,
    상기 선택된 키 관리 요소가 비용, 안전, 키 자료의 보호 성능에 근거하여 복수의 키 관리 요소들에서 선택된 방법.
  6. 제1항에 있어서,
    상기 키 관리 요소 중의 하나 이상은,
    암호화 동작(cryptographic operation)을 수행하는 것과 관련하여 사용하기 위한 공공-개인 키 쌍(public-private key pair)을 생성하는 단계 - 상기 공공-개인 키 쌍은 개인 키를 포함함 -;
    상기 개인 키를 전단 서버(front-end server)에 저장하는 단계; 및
    상기 개인 키를 이용하여 전단 서버에서 암호화 동작을 수행하는 단계를 포함하는 방법을 디지털 권리 관리 시스템이 수행할 수 있게 하는 방법.
  7. 제1항에 있어서,
    상기 키 관리 요소 중의 하나 이상은,
    암호화 동작을 수행하는 것과 관련하여 사용하기 위한, 공공-개인 키 쌍(public-private key pair)을 생성하는 단계 - 상기 공공-개인 키 쌍은 개인 키를 포함함 -;
    로컬 통신망(local communication network)을 통하여 전단 서버와 연결된 후단 서버(back-end server)에 개인 키를 저장하는 단계; 및
    전단 서버로부터 암호화 동작을 수행하라는 요구에 대한 응답으로, 개인 키를 사용하여, 후단 서버에서 암호화 동작을 수행하는 단계를 포함하는 방법을 디지털 권리 관리 시스템이 수행할 수 있게 하는 방법.
  8. 제1항에 있어서,
    상기 키 관리 요소 중의 하나 이상은,
    글로벌 통신망(global communications network)을 통하여 접속 가능한 전단 서버에, 인증서에 서명하는 것과 관련하여 사용하기 위한 증명 서명 공공-개인 키 쌍(certificate signing public-private key pair)을 생성하는 단계 - 상기 증명 서명 공공-개인 키 쌍은 증명 서명 공공 키(certificate signing public key)와 증명 서명 개인 키(certificate signing private key)를 포함함 -;
    디지털 컨텐츠(digital content)를 암호화 또는 해독하는 것과 관련하여 사용하기 위한 내용 보호 공공-개인 키 쌍(content protection public-private key pair)을 생성하는 단계 - 상기 내용 보호 공공-개인 키 쌍은 내용 보호 공공 키(content protection public key)와 내용 보호 개인 키(content protection private key)를 포함함 -;
    로컬 통신망(local communication network)을 통하여 전단 서버와 연결된 후단 서버(back-end server)에 내용 보호 개인 키를 저장하는 단계; 및
    고객 응용(client application)에게 증명 서명 공공 키와 내용 보호 공공 키를 포함하는 증명 고리(certificate chain)를 제공하는 단계를 포함하는 방법을 디지털 권리 관리 시스템이 수행할 수 있게 하는 방법.
  9. 제1항에 있어서,
    상기 키 관리 요소 중의 하나 이상은,
    루트 개인 키(root private key) 및 루트 공공 키를 포함하는 루트 공공-개인 키 쌍(root public-private key pair)을 생성하는 단계 ;
    루트 공공 키(root public key)를 포함하는 루트 인가자 증명(root licensor certificate)을 발행하는 단계;
    현재의 롤링 공공 키(current rolling public key)와 현재의 롤링 개인 키(current rolling private key)를 포함하는 현재의 롤링 공공-개인 키 쌍(current rolling public-private key pair)을 주기적으로 생성하는 단계;
    고객 응용(client application)으로부터 디지털 권리 관리 동작(digital rights management operation)을 수행하도록 요구를 수신하는 단계; 및
    현재의 롤링 공공-개인 키 쌍(current rolling public-private key pair)을 사용하여 디지털 권리 관리 동작(digital rights management operation)을 수행하는 단계를 포함하는 방법을 디지털 권리 관리 시스템이 수행할 수 있게 하는 방법.
  10. 보안 키 동작을 제공하는 방법에 있어서,
    디지털 권리 관리 시스템(digital rights management system)에서 사용하기위한 복수의 키 관리 플러그 인 요소(key management plug-in component)들을 제공하는 단계 - 상기 키 관리 플러그 인 요소의 각각은 디지털 권리 관리 시스템(digital rights management system)이 키 자료(key material)를 관리하는 각각의 방법을 수행하도록 함 -;
    복수의 키 관리 플러그 인(key management plug-in)들에서 선택된 키 관리 플러그 인(key management plug-in)을 선택하는 단계; 및
    선택된 키 관리 플러그 인(key management plug-in)을 디지털 권리 관리 시스템(digital rights management system)으로 통합하는 단계를 포함하는 방법.
  11. 글로벌 통신망(global communications network)을 통하여 접속할 수 있는 전단 서버(front-end server)와 로컬 통신망(local communication network)을 통하여 전단 서버(front-end server)와 연결된 후단 서버(back-end server)를 포함하는 시스템에서 보안 서버 키 동작(secure server key operation)을 제공하는 방법으로서,
    암호화 동작을 수행하는 것과 관련하여 사용하기 위한 공공-개인 키 쌍(public-private key pair)을 생성하는 단계 - 상기 공공-개인 키 쌍은 개인 키를 포함함 -;
    후단 서버(back-end server)에 개인 키를 저장하는 단계; 및
    전단 서버로부터 암호화 동작을 수행하라는 요구에 대한 응답으로, 개인 키를 사용하여, 후단 서버에서 암호화 동작을 수행하는 단계를 포함하는 방법.
  12. 제11항에 있어서,
    상기 후단 서버(back-end server)는 데이터베이스(database)를 포함하는 데이터베이스 서버(database server)를 포함하고,
    개인 키(private key)를 저장하는 단계는 개인 키(private key)를 그 데이터베이스에 저장하는 단계를 포함하는 방법.
  13. 제12항에 있어서,
    상기 암호화 동작(cryptographic operation)을 수행하는 단계이 암호화 동작(cryptographic operation)을 데이터베이스 서버(database server)에서 수행하는 단계를 포함하는 방법.
  14. 제13항에 있어서,
    상기 암호화 동작(cryptographic operation)을 수행하는 단계는 전단 서버(front-end server)로부터, 데이터베이스 서버(database server)에서 암호화 동작(cryptographic operation)을 수행하도록 하는 저장된 절차를 호출하는 단계를 포함하는 방법.
  15. 제12항에 있어서,
    상기 후단 서버(back-end server)는 통신할 수 있도록 데이터베이스 서버와전단 서버에 연결된 비밀 서버(crypto server)를 포함하고, 상기 암호화 동작을 수행하는 단계는, 비밀 서버(crypto server)에서, 데이터베이스 서버(database server)에서 암호화 동작(cryptographic operation)을 수행하도록 하는 저장된 절차를 시작하는 단계를 포함하는 방법.
  16. 제15항에 있어서,
    상기 암호화 동작을 수행하는 단계는 비밀 서버가 저장된 절차를 시작하도록 하는 요구를, 전단 서버에서부터 비밀 서버(crypto server)로, 전달하는 단계를 포함하는 방법.
  17. 제15항에 있어서,
    상기 암호화 동작을 수행하는 단계는 개인 키(private key)를 데이터베이스 서버(database server)로부터 비밀 서버(crypto server)로 전달하는 단계를 포함하는 방법.
  18. 제11항에 있어서,
    상기 암호화 동작을 수행하는 단계는 데이터를 서명(signing)하는 단계를 포함하는 방법.
  19. 제11항에 있어서,
    상기 암호화 동작을 수행하는 단계는 데이터를 암호화(encrypting)하는 단계를 포함하는 방법.
  20. 제11항에 있어서,
    상기 암호화 동작을 수행하는 단계는 암호화된 데이터를 해독(decrypting)하는 단계를 포함하는 방법.
  21. 디지털 컨텐츠(digital content)의 권리 관리(rights management)를 위한 보안 서버 키 동작(secure server key operation)을 제공하기 위한 시스템으로서,
    글로벌 통신망(global communications network)을 통하여 접속할 수 있는 전단 서버(front-end server); 및
    로컬 통신망(local communication network)을 통하여 전단 서버(front-end server)와 연결된 후단 서버(back-end server)를 포함하고,
    상기 개인 키(private key)를 포함하는 공공-개인 키 쌍(public-private key pair)이 암호화 동작을 수행하는 것과 관련하여 사용하기 위하여 생성되고,
    상기 개인 키가 후단 서버에 저장되어 있고 암호화 동작을 수행하도록 하는 전단 서버로부터의 요구에 대한 응답으로 후단 서버에서 암호화 동작을 수행하도록 이용되는 시스템.
  22. 제21항에 있어서,
    후단 서버는 개인 키가 저장된 데이터베이스를 포함하는 데이터베이스 서버를 포함하는 시스템.
  23. 제22항에 있어서,
    상기 암호화 동작은 데이터베이스 서버에서 수행되는 시스템.
  24. 제23항에 있어서,
    상기 전단 서버(front-end server)는 데이터베이스 서버(database server)에서 암호화 동작(cryptographic operation)을 수행하도록 하는 저장된 절차를 호출하는데 적용되는 시스템.
  25. 제22항에 있어서,
    상기 후단 서버(back-end server)는 통신할 수 있도록 데이터베이스 서버와 전단 서버에 연결된 비밀 서버(crypto server)를 포함하고, 상기 비밀 서버는 데이터베이스 서버(database server)에서 암호화 동작(cryptographic operation)을 수행하도록 하는 저장된 절차를 시작하도록 적용되는 시스템.
  26. 제25항에 있어서,
    상기 전단 서버는 상기 비밀 서버가 저장된 절차를 시작하도록 하는 요구를 비밀 서버로 전달하도록 적용된 시스템.
  27. 제25항에 있어서,
    상기 비밀 서버가 데이터베이스 서버로부터 개인 키를 검색(retrieve)하는 시스템.
  28. 제21항에 있어서,
    상기 암호화 동작이 데이터를 서명(signing)하는 단계를 포함하는 시스템.
  29. 제21항에 있어서,
    상기 암호화 동작이 데이터를 암호화(encrypting)하는 단계를 포함하는 시스템.
  30. 제21항에 있어서,
    상기 암호화 동작이 암호화된 데이터를 해독(decrypting)하는 단계를 포함하는 시스템.
  31. 글로벌 통신망(global communications network)을 통하여 접속할 수 있는 전단 서버(front-end server)와 로컬 통신망(local communication network)을 통하여 전단 서버(front-end server)와 연결된 후단 서버(back-end server)를 포함하는 시스템에서 보안 서버 키 동작(secure server key operation)을 제공하는 방법으로서,
    전단 서버에서, 인증서에 서명하는 것과 관련하여 사용하기 위한 증명 서명 공공-개인 키 쌍(certificate signing public-private key pair)을 생성하는 단계 - 상기 증명 서명 공공-개인 키 쌍은 증명 서명 공공 키(certificate signing public key)와 증명 서명 개인 키(certificate signing private key)를 포함함 -;
    디지털 컨텐츠(digital content)를 암호화 또는 해독하는 것과 관련하여 사용하기 위한 내용 보호 공공-개인 키 쌍(content protection public-private key pair)을 생성하는 단계 - 상기 컨텐츠 공공-개인 키 쌍은 내용 보호 공공 키(content protection public key)와 내용 보호 개인 키(content protection private key)를 포함함 -;
    후단 서버(back-end server)에 컨텐츠 보호 개인 키를 저장하는 단계; 및
    고객 응용(client application)에게 증명 서명 공공 키와 컨텐츠 보호 공공 키를 포함하는 증명 고리(certificate chain)를 제공하는 단계를 포함하는 방법.
  32. 제31항에 있어서,
    증명 서명 개인 키(certificate signing private key)를 사용하여 증명을 서명하는 단계; 및
    고객 응용(client application)에게 서명한 증명을 제공하는 단계를 포함한 방법.
  33. 제31항에 있어서,
    서명 인가자 증명(signing licensor certificate)을 위한 요구를 수신하는 단계; 및
    그 요구에 대한 응답으로, 증명 서명 개인 키(certificate signing private key)를 사용하여 서명된 인가자 증명(licensor certificate)을 제공하는 단계를 포함하는 방법.
  34. 제31항에 있어서,
    상기 증명 고리(certificate chain)는 고객 응용이 디지털 컨텐츠(content)를 컨텐츠 보호 공공 키(content protection public key)로 암호화하는 것를 가능하게 하는 방법.
  35. 제31항에 있어서,
    상기 증명 고리(certificate chain)는 고객 응용이 컨텐츠 보호 공공 키(content protection public key)로 암호화된 디지털 컨텐츠을 해독하는 것을 가능하게 하는 방법.
  36. 제31항에 있어서,
    상기 증명 고리(certificate chain)는 고객 응용이 컨텐츠 보호 대칭 키(content protection symmetric key)를 컨텐츠 보호 공공 키(content protectionpublic key)로 암호화하는 것을 가능하게 하는 방법.
  37. 제31항에 있어서,
    상기 증명 고리(certificate chain)는 고객 응용이 컨텐츠 보호 공공 키(content protection public key)로 암호화된 컨텐츠 보호 대칭 키(content protection symmetric key)를 해독하는 것을 가능하게 하는 방법.
  38. 글로벌 통신망(global communications network)는 통하여 접속할 수 있는 전단 서버(front-end server)와 로컬 통신망(local communication network)을 통하여 전단 서버(front-end server)와 연결된 후단 서버(back-end server)를 포함하는 시스템에서 보안 서버 키 동작(secure server key operation)을 제공하는 방법으로서,
    디지털 컨텐츠(digital content)을 보호하기 위하여 사용된 컨텐츠 대칭 키(content symmetric key)를 암호화 또는 해독하는 것과 관련하여 사용하기 위한 컨텐츠 보호 공공-개인 키 쌍(content protection public-private key pair)을 생성하는 단계 - 상기 컨텐츠 보호 공공-개인 키 쌍운 컨텐츠 보호 공공 키(content protection public key)와 컨텐츠 보호 개인 키(content protection private key)를 포함함 -;
    후단 서버(back-end server)에 컨텐츠 보호 개인 키를 저장하는 단계;
    전단 서버에서, 증명 서명 공공 키(certificate signing public key)와 증명서명 개인 키(certificate signing private key)를 포함하는 증명 서명 공공-개인 키 쌍(certificate signing public-private key pair)을 생성하는 단계; 및
    증명 서명 개인 키(certificate signing private key)를 사용하여 서명한 루트 인가자 증명(root licensor certificate)을 통하여 컨텐츠 보호 공공 키(content protection public key)를 발행(publish)하는 단계를 포함하는 방법.
  39. 제38항에 있어서,
    상기 루트 인가자 증명(root licensor certificate)이 신뢰 실체(trusted entity)에 의하여 서명이 된 방법.
  40. 제38항에 있어서,
    서명 인가자 증명(signing licensor certificate)을 통하여 증명 서명 공공 키(certificate signing public key)를 발행(publish)하는 방법.
  41. 제38항에 있어서,
    상기 서명 인가자 증명(signing licensor certificate)은 컨텐츠 보호 개인 키(content protection private key)에 근거한 디지털 서명(digital signature)을 이용하여 후단 서버(back-end server)에 서명이 된 방법.
  42. 디지털 권리 관리 시스템(digital rights management system)에서 보안 서버키 동작(secure server key operation)을 제공하는 방법으로서,
    루트 개인 키(root private key) 및 루트 공공 키를 포함하는 루트 공공-개인 키 쌍(root public-private key pair)을 생성하는 단계;
    루트 공공 키(root public key)를 포함하는 루트 인가자 증명(root licensor certificate)을 발행하는 단계;
    현재의 롤링 공공 키(current rolling public key)와 현재의 롤링 개인 키(current rolling private key)를 포함하는 현재의 롤링 공공-개인 키 쌍(current rolling public-private key pair)을 주기적으로 생성하는 단계;
    고객 응용(client application)으로부터 디지털 권리 관리 동작(digital rights management operation)을 수행하도록 요구를 수신하는 단계; 및
    현재의 롤링 공공-개인 키 쌍(current rolling public-private key pair)을 사용하여 디지털 권리 관리 동작(digital rights management operation)을 수행하는 단계를 포함하는 방법.
  43. 제42항에 있어서,
    상기 현재의 롤링 공공-개인 키 쌍(current rolling public-private key pair)이 글로벌 통신망(global communications network)을 통하여 접속할 수 있는 전단 서버(front-end server)와 로컬 통신망(local communication network)을 통하여 연결된 후단 서버(back-end server)에서 생성되는 방법.
  44. 제42항에 있어서,
    디지털 권리 관리 동작(digital rights management operation) 수행 요구가 서명이 된 권리 레이블(signed rights label)을 위한 요구이고, 그리고
    디지털 권리 관리 동작(digital rights management operation)을 수행하는 단계는 현재 롤링 개인 키(current rolling private key)를 이용하여 권리 레이블(rights label)에 서명하는 단계를 포함하고 상기 권리 레이블은 디지털 컨텐츠(digital content)의 일부를 인가(licensing)하기 위한 매개변수(parameter)의 집합을 나타내는 권리 데이터(rights data)와 하나 또는 그 이상의 허가된 사용자를 위한 디지털 컨텐츠(digital content)에서 허가된 사용자가 가지는 하나 또는 그 이상의 개별적인 권리를 포함하는 방법.
  45. 제44항에 있어서,
    수신된 권리 레이블(rights label)은 현재 롤링 공공 키(current rolling publice key)로 암호화된 컨텐츠 키(content key)를 포함하는 방법.
  46. 제44항에 있어서,
    서명이 된 권리 레이블(rights label)을 고객 응용(client application)에 제공하는 단계를 더 포함하는 방법.
  47. 제42항에 있어서,
    디지털 권리 관리 동작(digital rights management operation) 수행 요구가 인가자 증명(licensor certificate)을 위한 요구이고, 그리고
    상기 디지털 권리 관리 동작(digital rights management operation)을 수행하는 단계는 고객 응용(client application)이 현재 롤링 공공 키(current rolling public key)로 컨텐츠 키(content key)를 암호화하는 것이 가능하게 하는 현재 인가자 증명(current licensor certificate)을 고객 응용(client application)에게 제공하는 단계 - 상기 컨텐츠 키는 디지털 컨텐츠(digital content)의 일부를 암호화하거나 해독하는데 사용됨 - 를 포함하는 방법.
  48. 제42항에 있어서,
    디지털 권리 관리 동작(digital rights management operation) 수행 요구가 디지털 컨텐츠(digital content)의 일부 이용 인가를 위한 요구이고, 그리고
    디지털 권리 관리 동작(digital rights management operation)을 수행하는 단계는 디지털 컨텐츠(digital content)의 일부 이용 인가(license)를 발행할 것인지를 결정하는데 현재 롤링 개인 키(current rolling private key)를 사용하는 단계를 포함하는 방법.
  49. 제48항에 있어서,
    디지털 컨텐츠의 일부를 사용하기 위한 인가(license)를 발행하는 단계를 포함하는 방법.
  50. 제49항에 있어서,
    디지털 컨텐츠의 일부를 인가를 요구하는 사용자와 연결하는 사용자 제공 사람 키(user-supplied persona key)로 컨텐츠 키(content key)를 다시 암호화하는 단계를 더 포함하는 방법.
  51. 제42항에 있어서,
    전단 서버(front-end server)의 캐쉬(cache)에 롤링 개인 키(rolling private key)를 저장하는 단계를 포함하는 방법.
KR1020030042436A 2002-06-28 2003-06-27 보안 서버 키 동작을 제공하기 위한 시스템 및 방법 KR100971854B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/185,641 2002-06-28
US10/185,641 US7174021B2 (en) 2002-06-28 2002-06-28 Systems and methods for providing secure server key operations

Publications (2)

Publication Number Publication Date
KR20040002771A true KR20040002771A (ko) 2004-01-07
KR100971854B1 KR100971854B1 (ko) 2010-07-22

Family

ID=29779686

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030042436A KR100971854B1 (ko) 2002-06-28 2003-06-27 보안 서버 키 동작을 제공하기 위한 시스템 및 방법

Country Status (4)

Country Link
US (2) US7174021B2 (ko)
KR (1) KR100971854B1 (ko)
CN (1) CN100576148C (ko)
CA (1) CA2432275A1 (ko)

Families Citing this family (139)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7549060B2 (en) 2002-06-28 2009-06-16 Microsoft Corporation Using a rights template to obtain a signed rights label (SRL) for digital content in a digital rights management system
US7631318B2 (en) * 2002-06-28 2009-12-08 Microsoft Corporation Secure server plug-in architecture for digital rights management systems
US7502945B2 (en) * 2002-06-28 2009-03-10 Microsoft Corporation Using a flexible rights template to obtain a signed rights label (SRL) for digital content in a rights management system
US7174021B2 (en) * 2002-06-28 2007-02-06 Microsoft Corporation Systems and methods for providing secure server key operations
CN1191696C (zh) * 2002-11-06 2005-03-02 西安西电捷通无线网络通信有限公司 一种无线局域网移动设备安全接入及数据保密通信的方法
US7703128B2 (en) * 2003-02-13 2010-04-20 Microsoft Corporation Digital identity management
US7370212B2 (en) * 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US7827156B2 (en) * 2003-02-26 2010-11-02 Microsoft Corporation Issuing a digital rights management (DRM) license for content based on cross-forest directory information
US20050108176A1 (en) * 2003-04-30 2005-05-19 Jarol Scott B. Configurable rules based content item consumption
US7549062B2 (en) * 2003-06-27 2009-06-16 Microsoft Corporation Organization-based content rights management and systems, structures, and methods therefor
US7716288B2 (en) * 2003-06-27 2010-05-11 Microsoft Corporation Organization-based content rights management and systems, structures, and methods therefor
US7237256B2 (en) 2003-07-14 2007-06-26 Sun Microsystems, Inc. Method and system for providing an open and interoperable system
US7506162B1 (en) 2003-07-14 2009-03-17 Sun Microsystems, Inc. Methods for more flexible SAML session
US20050076183A1 (en) * 2003-10-07 2005-04-07 General Instrument Corporation Method and apparatus for enforcing timed agreements
US7979911B2 (en) * 2003-10-08 2011-07-12 Microsoft Corporation First computer process and second computer process proxy-executing code from third computer process on behalf of first process
US7788496B2 (en) * 2003-10-08 2010-08-31 Microsoft Corporation First computer process and second computer process proxy-executing code on behalf thereof
US8103592B2 (en) * 2003-10-08 2012-01-24 Microsoft Corporation First computer process and second computer process proxy-executing code on behalf of first process
US7841533B2 (en) 2003-11-13 2010-11-30 Metrologic Instruments, Inc. Method of capturing and processing digital images of an object within the field of view (FOV) of a hand-supportable digitial image capture and processing system
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
JP2005191755A (ja) * 2003-12-25 2005-07-14 Toshiba Corp コンテンツ受信蓄積装置およびコンテンツ配信システム
US7457964B2 (en) * 2004-02-04 2008-11-25 Microsoft Corporation Trusted path for transmitting content thereon
US7676846B2 (en) * 2004-02-13 2010-03-09 Microsoft Corporation Binding content to an entity
JP4350549B2 (ja) * 2004-02-25 2009-10-21 富士通株式会社 デジタル著作権管理のための情報処理装置
US8782405B2 (en) * 2004-03-18 2014-07-15 International Business Machines Corporation Providing transaction-level security
CA2560571A1 (en) * 2004-03-22 2005-12-29 Samsung Electronics Co., Ltd. Method and apparatus for digital rights management using certificate revocation list
US7836510B1 (en) 2004-04-30 2010-11-16 Oracle America, Inc. Fine-grained attribute access control
US7565356B1 (en) 2004-04-30 2009-07-21 Sun Microsystems, Inc. Liberty discovery service enhancements
KR100678934B1 (ko) * 2004-06-09 2007-02-07 삼성전자주식회사 세션키를 재사용하는 클라이언트와 서버간 보안 통신 방법및 장치
US20060021056A1 (en) * 2004-06-30 2006-01-26 Nokia Corporation Digital rights management user data transfer
KR100608585B1 (ko) * 2004-07-12 2006-08-03 삼성전자주식회사 이동형 저장 장치에서 객체의 위치 정보를 이용하여 권리객체를 검색하는 방법 및 장치
WO2006006783A1 (en) * 2004-07-12 2006-01-19 Samsung Electronics Co., Ltd. Apparatus and method for processing digital rights object
JP4728610B2 (ja) * 2004-08-04 2011-07-20 株式会社リコー アクセス制御リスト添付システム、オリジナルコンテンツ作成者端末、ポリシーサーバ、オリジナルコンテンツデータ管理サーバ、プログラム及び記録媒体
US8347078B2 (en) 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
US8037036B2 (en) * 2004-11-17 2011-10-11 Steven Blumenau Systems and methods for defining digital asset tag attributes
US8291236B2 (en) * 2004-12-07 2012-10-16 Digital Keystone, Inc. Methods and apparatuses for secondary conditional access server
US8135954B2 (en) * 2004-12-20 2012-03-13 Motorola Mobility, Inc. Distributed digital signature generation
CN100426718C (zh) * 2004-12-31 2008-10-15 北京中星微电子有限公司 一种媒体内容安全传输方法
US7860802B2 (en) * 2005-02-01 2010-12-28 Microsoft Corporation Flexible licensing architecture in content rights management systems
JP4589758B2 (ja) * 2005-03-03 2010-12-01 フェリカネットワークス株式会社 データ通信システム,代行システムサーバ,コンピュータプログラム,およびデータ通信方法
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
CN101185090A (zh) * 2005-04-14 2008-05-21 埃森哲全球服务有限公司 提供超额资源作为服务
US8725646B2 (en) * 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US9436804B2 (en) * 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US8091142B2 (en) * 2005-04-26 2012-01-03 Microsoft Corporation Supplementary trust model for software licensing/commercial digital distribution policy
US20060265758A1 (en) * 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
WO2007001285A1 (en) * 2005-06-23 2007-01-04 Thomson Licensing Digital rights management (drm) enabled portable playback device, method and system
US20060294383A1 (en) * 2005-06-28 2006-12-28 Paula Austel Secure data communications in web services
US20070113288A1 (en) * 2005-11-17 2007-05-17 Steven Blumenau Systems and Methods for Digital Asset Policy Reconciliation
US20070198428A1 (en) * 2006-02-22 2007-08-23 Microsoft Corporation Purchasing of computer service access licenses
US20070198427A1 (en) * 2006-02-22 2007-08-23 Microsoft Corporation Computer service licensing management
EP1999883A4 (en) 2006-03-14 2013-03-06 Divx Llc FEDERATED DIGITAL RIGHTS MANAGEMENT SYSTEM COMPRISING CONFIDENCE SYSTEMS
CN100369042C (zh) * 2006-03-23 2008-02-13 南相浩 基于cpk电子标签的防伪方法和装置
US8171302B2 (en) * 2006-05-30 2012-05-01 Hewlett-Packard Development Company, L.P. Method and system for creating a pre-shared key
US20070283003A1 (en) * 2006-05-31 2007-12-06 Broyles Paul J System and method for provisioning a computer system
IE20070422A1 (en) * 2006-06-13 2007-12-21 Qtelmedia Group Ltd A method for restricting access to digital content
US20080046953A1 (en) * 2006-08-03 2008-02-21 Pekka Juhani Kossila iWiTTY TV Concept, TV-program- and radio-TV program production method / system
CN101141251B (zh) * 2006-09-08 2012-05-23 华为技术有限公司 通信系统中消息加密签名的方法及系统和设备
US7660959B2 (en) * 2006-09-28 2010-02-09 International Business Machines Corporation Managing encryption for volumes in storage pools
US7822206B2 (en) * 2006-10-26 2010-10-26 International Business Machines Corporation Systems and methods for management and auto-generation of encryption keys
CN1988539B (zh) * 2006-11-22 2010-06-23 夏团利 基于无线数字广播通道的分类内容有偿分发的系统和方法
CN103559165B (zh) 2007-01-05 2016-08-17 索尼克知识产权股份有限公司 包含连续播放的视频分配系统
JP5406177B2 (ja) * 2007-04-23 2014-02-05 トムソン ライセンシング ネットワークにおけるソフトウェアダウンロードのための方法及び装置
KR100930695B1 (ko) * 2007-08-06 2009-12-09 현대자동차주식회사 디알엠 시스템 및 디알엠 콘텐츠 관리방법
KR101478337B1 (ko) * 2007-11-08 2015-01-02 삼성전자 주식회사 호스트 장치의 drm 유형을 기초로한 암호화 키를제공하는 방법 및 장치
EP2223232A4 (en) 2007-11-16 2015-02-25 Sonic Ip Inc Hierarchical and reduced index structures for multimedia files
US8831992B2 (en) * 2007-12-13 2014-09-09 Symantec Corporation Apparatus and method for facilitating cryptographic key management services
US20090172165A1 (en) * 2007-12-27 2009-07-02 Kabushiki Kaisha Toshiba Information Processing Apparatus and Information Processing System
US8656424B2 (en) * 2007-12-31 2014-02-18 Digital Keystone, Inc. Distributed TV access system
GB2458568B (en) * 2008-03-27 2012-09-19 Covertix Ltd System and method for dynamically enforcing security policies on electronic files
US8924468B2 (en) * 2008-05-08 2014-12-30 Bang & Olufsen A/S Method and means for a multilayer access control
US8095518B2 (en) * 2008-06-04 2012-01-10 Microsoft Corporation Translating DRM system requirements
US8411863B2 (en) * 2008-10-03 2013-04-02 Microsoft Corporation Full volume encryption in a clustered environment
US8266448B2 (en) * 2008-12-09 2012-09-11 Nvidia Corporation Apparatus, system, method, and computer program product for generating and securing a program capable of being executed utilizing a processor to decrypt content
US8868925B2 (en) * 2008-12-09 2014-10-21 Nvidia Corporation Method and apparatus for the secure processing of confidential content within a virtual machine of a processor
US8341720B2 (en) 2009-01-09 2012-12-25 Microsoft Corporation Information protection applied by an intermediary device
CA2767368C (en) * 2009-08-14 2013-10-08 Azuki Systems, Inc. Method and system for unified mobile content protection
US8831228B1 (en) 2009-08-28 2014-09-09 Adobe Systems Incorporated System and method for decentralized management of keys and policies
US8402280B1 (en) 2009-10-15 2013-03-19 Nvidia Corporation System, method, and computer program product for buffering in association with audio/video digital rights management (DRM) processing
US8837726B2 (en) * 2009-10-16 2014-09-16 Cisco Technology, Inc. Content protection key encryptor for security providers
CA2782825C (en) 2009-12-04 2016-04-26 Divx, Llc Elementary bitstream cryptographic material transport systems and methods
US8402032B1 (en) 2010-03-25 2013-03-19 Google Inc. Generating context-based spell corrections of entity names
US9015493B2 (en) 2010-09-16 2015-04-21 Microsoft Technology Licensing, Llc Multitenant-aware protection service
CN102479297B (zh) * 2010-11-23 2015-07-08 工业和信息化部电信传输研究所 一种基于公钥系统和数字水印的版权保护方法
US9247312B2 (en) 2011-01-05 2016-01-26 Sonic Ip, Inc. Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol
EP2690571A4 (en) * 2011-03-23 2014-08-20 Nec Corp APPARATUS FOR ISSUING PERMIT AND METHOD FOR ISSUING PERMITS
US8812662B2 (en) 2011-06-29 2014-08-19 Sonic Ip, Inc. Systems and methods for estimating available bandwidth and performing initial stream selection when streaming content
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
KR102163151B1 (ko) 2011-08-30 2020-10-08 디빅스, 엘엘씨 복수의 최대 비트레이트 레벨들을 사용하여 인코딩된 비디오를 인코딩하고 스트리밍하기 위한 시스템들 및 방법들
US8799647B2 (en) 2011-08-31 2014-08-05 Sonic Ip, Inc. Systems and methods for application identification
US8806188B2 (en) 2011-08-31 2014-08-12 Sonic Ip, Inc. Systems and methods for performing adaptive bitrate streaming using automatically generated top level index files
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US20130179199A1 (en) 2012-01-06 2013-07-11 Rovi Corp. Systems and methods for granting access to digital content using electronic tickets and ticket tokens
US8964990B1 (en) * 2012-05-17 2015-02-24 Amazon Technologies, Inc. Automating key rotation in a distributed system
US8908868B1 (en) 2012-05-17 2014-12-09 Amazon Technologies, Inc. Key rotation with external workflows
US9141783B2 (en) 2012-06-26 2015-09-22 Ologn Technologies Ag Systems, methods and apparatuses for the application-specific identification of devices
US9936267B2 (en) 2012-08-31 2018-04-03 Divx Cf Holdings Llc System and method for decreasing an initial buffering period of an adaptive streaming system
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9380099B2 (en) 2013-05-31 2016-06-28 Sonic Ip, Inc. Synchronizing multiple over the top streaming clients
US9100687B2 (en) 2013-05-31 2015-08-04 Sonic Ip, Inc. Playback synchronization across playback devices
US8745394B1 (en) 2013-08-22 2014-06-03 Citibank, N.A. Methods and systems for secure electronic communication
US9311500B2 (en) * 2013-09-25 2016-04-12 Amazon Technologies, Inc. Data security using request-supplied keys
US9237019B2 (en) 2013-09-25 2016-01-12 Amazon Technologies, Inc. Resource locators with keys
KR101447554B1 (ko) 2013-11-08 2014-10-08 한국전자통신연구원 암호화된 파일을 복호화하는 장치 및 그 방법
US9386067B2 (en) 2013-12-30 2016-07-05 Sonic Ip, Inc. Systems and methods for playing adaptive bitrate streaming content by multicast
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
US9762937B2 (en) 2014-08-07 2017-09-12 Sonic Ip, Inc. Systems and methods for protecting elementary bitstreams incorporating independently encoded tiles
US9760501B2 (en) * 2014-11-05 2017-09-12 Google Inc. In-field smart device updates
US9832207B2 (en) 2014-12-23 2017-11-28 Mcafee, Inc. Input verification
US9996690B2 (en) 2014-12-27 2018-06-12 Mcafee, Llc Binary translation of a trusted binary with input tagging
US9798559B2 (en) * 2014-12-27 2017-10-24 Mcafee, Inc. Trusted binary translation
CN113259731B (zh) 2015-01-06 2023-07-04 帝威视有限公司 用于编码内容和在设备之间共享内容的系统和方法
KR101897959B1 (ko) 2015-02-27 2018-09-12 쏘닉 아이피, 아이엔씨. 라이브 비디오 인코딩 및 스트리밍에서의 프레임 복제 및 프레임 확장을 위한 시스템 및 방법
US10162944B2 (en) * 2015-03-30 2018-12-25 Arris Enterprises Llc Library style media DRM APIs in a hosted architecture
US10339323B2 (en) * 2015-09-15 2019-07-02 Google Llc Group license encryption and decryption
US10075292B2 (en) 2016-03-30 2018-09-11 Divx, Llc Systems and methods for quick start-up of playback
US10129574B2 (en) 2016-05-24 2018-11-13 Divx, Llc Systems and methods for providing variable speeds in a trick-play mode
US10231001B2 (en) 2016-05-24 2019-03-12 Divx, Llc Systems and methods for providing audio content during trick-play playback
US10148989B2 (en) 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content
US10461942B1 (en) 2016-07-20 2019-10-29 United Services Automobile Association Multi-factor authentication with code rotation
US10484354B2 (en) * 2017-02-15 2019-11-19 Telefonaktiebolaget Lm Ericsson (Publ) Data owner restricted secure key distribution
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
US10365908B2 (en) * 2017-03-24 2019-07-30 Flexera Software Llc Secure reprogramming of smart devices to alter device functionality based on license rights
WO2018212769A1 (en) 2017-05-17 2018-11-22 Google Llc Preventing data leakage
CN109639427B (zh) * 2017-10-09 2021-01-29 华为技术有限公司 一种数据发送的方法及设备
US11362824B2 (en) * 2018-05-25 2022-06-14 Intertrust Technologies Corporation Content management systems and methods using proxy reencryption
ES2974683T3 (es) 2019-03-21 2024-07-01 Divx Llc Sistemas y métodos para enjambres multimedia
US11398899B2 (en) 2019-05-28 2022-07-26 Shanghai Zhaoxin Semiconductor Co., Ltd. Data processing device and data processing method
CN110138557A (zh) * 2019-05-28 2019-08-16 上海兆芯集成电路有限公司 数据处理装置及数据处理方法
US11095650B1 (en) 2020-02-03 2021-08-17 Bank Of America Corporation Resource transfer authorization decision engine
CN114499967B (zh) * 2021-12-27 2024-03-08 天翼云科技有限公司 数据访问控制方法、装置、系统及计算机可读存储介质
CN114513370B (zh) * 2022-04-19 2022-07-15 中国信息通信研究院 通用的标识数据转换方法和装置、存储介质、电子设备

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4868877A (en) * 1988-02-12 1989-09-19 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US6131162A (en) * 1997-06-05 2000-10-10 Hitachi Ltd. Digital data authentication method
US6229894B1 (en) * 1997-07-14 2001-05-08 Entrust Technologies, Ltd. Method and apparatus for access to user-specific encryption information
US5991399A (en) 1997-12-18 1999-11-23 Intel Corporation Method for securely distributing a conditional use private key to a trusted entity on a remote system
US20020056043A1 (en) * 1999-01-18 2002-05-09 Sensar, Inc. Method and apparatus for securely transmitting and authenticating biometric data over a network
KR100323799B1 (ko) * 1999-11-18 2002-02-19 안병엽 안전성이 증명가능한 타원곡선 공개키 암호화 시스템
DE60042029D1 (de) * 1999-12-09 2009-05-28 Silanis Technology Inc Verfahren und system zum erzeugen einer sicheren elektronischen unterschrift
US7158953B1 (en) * 2000-06-27 2007-01-02 Microsoft Corporation Method and system for limiting the use of user-specific software features
US20030041110A1 (en) * 2000-07-28 2003-02-27 Storymail, Inc. System, Method and Structure for generating and using a compressed digital certificate
JP4622087B2 (ja) * 2000-11-09 2011-02-02 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム記憶媒体
US6836795B2 (en) * 2001-01-31 2004-12-28 Microsoft Corporation Mapping connections and protocol-specific resource identifiers
US20020154782A1 (en) * 2001-03-23 2002-10-24 Chow Richard T. System and method for key distribution to maintain secure communication
US7266840B2 (en) * 2001-07-12 2007-09-04 Vignette Corporation Method and system for secure, authorized e-mail based transactions
CA2365441C (en) * 2001-12-19 2010-02-16 Diversinet Corp. Method of establishing secure communications in a digital network using pseudonymic digital identifiers
US7366905B2 (en) * 2002-02-28 2008-04-29 Nokia Corporation Method and system for user generated keys and certificates
US8190446B2 (en) * 2002-04-10 2012-05-29 Emmi Solutions, Llc Enhanced system and method for enhancing and supplementing the informed consent process of a patient undergoing a medical procedure
US7174021B2 (en) * 2002-06-28 2007-02-06 Microsoft Corporation Systems and methods for providing secure server key operations

Also Published As

Publication number Publication date
US7174021B2 (en) 2007-02-06
KR100971854B1 (ko) 2010-07-22
CN1470972A (zh) 2004-01-28
US7443985B2 (en) 2008-10-28
US20040001594A1 (en) 2004-01-01
US20060280309A1 (en) 2006-12-14
CN100576148C (zh) 2009-12-30
CA2432275A1 (en) 2003-12-28

Similar Documents

Publication Publication Date Title
KR100971854B1 (ko) 보안 서버 키 동작을 제공하기 위한 시스템 및 방법
JP4750352B2 (ja) デジタルコンテンツに対応するデジタルライセンスを取得する方法
JP4627624B2 (ja) 組織などの限定された領域内におけるデジタル著作権管理(drm)システムによるデジタルコンテンツのパブリッシュ
JP4418648B2 (ja) デジタルコンテンツとサービスの使用ライセンスを発行するためのシステムおよびその方法
JP4724360B2 (ja) ディジタル権利管理システムにおいて権利テンプレートを使用してディジタルコンテンツのための署名権利ラベル(srl)を取得する方法
KR100949657B1 (ko) 유연한 권리 템플릿을 이용하여 권리 관리 시스템에서디지털 컨텐츠에 대한 서명된 권리 라벨(srl)을 얻기
EP1376980B1 (en) Secure server plug-in architecture for digital rights management systems
AU2004200471B2 (en) Publishing digital content within a defined universe such as an organization in accordance with a digital rights management (DRM) system
EP1455479A1 (en) Enrolling/sub-enrolling a digital rights management (DRM) server into a DRM architecture

Legal Events

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

Payment date: 20130628

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140627

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160616

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170616

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190617

Year of fee payment: 10