KR20070009944A - 데이터를 보호하기 위한 방법 및 시스템 및 정책 엔진 - Google Patents

데이터를 보호하기 위한 방법 및 시스템 및 정책 엔진 Download PDF

Info

Publication number
KR20070009944A
KR20070009944A KR1020057012372A KR20057012372A KR20070009944A KR 20070009944 A KR20070009944 A KR 20070009944A KR 1020057012372 A KR1020057012372 A KR 1020057012372A KR 20057012372 A KR20057012372 A KR 20057012372A KR 20070009944 A KR20070009944 A KR 20070009944A
Authority
KR
South Korea
Prior art keywords
component
data
policy
sink
policies
Prior art date
Application number
KR1020057012372A
Other languages
English (en)
Inventor
제임스 엠. 알코브
커트 에이. 데비큐
알렉산더 브이. 그리고로비치
윌리암 씨. 파웰
제프리 리차드 맥쿠네
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20070009944A publication Critical patent/KR20070009944A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 데이터 보안에 관한 것이다. 하나의 예시적인 시스템은 동작이 수행될 수 있는 데이터와 관련된 제1 컴포넌트 및 그 데이터에 대하여 동작을 수행하도록 구성된 제2 컴포넌트를 포함한다. 시스템은 또한, 상기 동작을 확인하고, 상기 제2 컴포넌트가 데이터를 액세스하도록 허용하기 전에 구현되어야 할 적어도 하나의 정책을 상기 동작의 함수로서 결정하도록 구성된 제3 컴포넌트를 포함한다.
정책 엔진, 데이터 보안, 소스, 싱크, 미디어 경로

Description

데이터를 보호하기 위한 방법 및 시스템 및 정책 엔진 {POLICY ENGINE AND METHODS AND SYSTEMS FOR PROTECTING DATA}
본 발명은 신뢰할 수 있는 방식으로 임의의 다양한 소스(source)로부터 임의의 다양한 싱크(sink)로 내용(content)을 전달하기 위한 보호된 미디어 경로를 구축하기 위한 아키텍처 및 방법에 관한 것이다.
디지털 데이터의 유용성, 사용 및 가치가 증가함에 따라, 데이터를 보호하기 위한 개선된 시스템 및 방법에 대한 필요성이 존재한다. 데이터를 전달하거나 "소싱(sourcing")하기 위한 시스템인 소스는 소스 내용 보호 시스템과 연관될 수 있다. 소스로부터의 데이터는 데이터를 수신하거나 "싱킹(sinking)"하기 위한 시스템인 싱크에 의해 사용되도록 만들 수 있다. 싱크에서의 데이터 사용과 관련하여, 싱크는 싱크 내용 보호 시스템과 연관될 수 있다.
소스 내용 보호 시스템은 데이터 사용을 위해 허가를 얻는 것과 같은 1개 이상의 조건을 부과할 수 있다. 일단 조건이 충족되고 액세스가 이루어지면, 소스 내용 보호는 데이터의 관련 내용 보호 및 그 이상의 동작을 조절하는 제한된 능력을 갖는다. 소스 및 싱크 양자 모두가 내용 보호 시스템을 가지고 있는 상황일지라도, 처리 환경 내에서 사건들에 개입하고 및/또는 싱크에 대한 소스의 감독 및 권한의 정도는 제한된다.
데이터를 보호하기 위한 시스템 및 방법 및 정책 엔진(policy engine)이 이하에서 기술된다. 데이터와 연관된 업스트림 컴포넌트(upstream component)는 다운스트림 컴포넌트(downstream component)에 의한 데이터의 사용과 관련된 내용 정책을 결정할 수 있다. 업스트림 컴포넌트는 다운스트림 컴포넌트에 의해 그 데이터에 대하여 수행되어야 할 특정 동작의 함수로서 정책을 줄 수 있다. 정책 엔진으로서 구현될 수 있는 다른 컴포넌트는 업스트림 컴포넌트를 대신하여, 어떤 내용 정책들이 다운스트림 컴포넌트에 의하여 뒷받침되는지를 결정하고, 뒷받침되는 정책의 구현을 협상하며, 다운스트림 컴포넌트가 데이터를 액세스하도록 허용하기 전에 뒷받침되는 정책의 구현을 실행하도록 동작할 수 있다.
도면에 있어서 동일한 특징 및 구성 요소를 참조하기 위해서 동일한 참조 번호가 사용된다.
도 1은 일 실시예에 따른 시스템의 블럭도를 도시한다.
도 2는 다른 실시예에 따른 시스템의 블럭도를 도시한다.
도 3은 일 실시예에 따른 방법에 있어서 단계들을 기술하는 흐름도이다.
도 4는 데이터 보호가 구현될 수 있는 환경에서의 예시적인 컴퓨팅 시스템, 장치 및 컴포넌트를 도시한다.
개요
이하에서 기술되는 다양한 실시예에 있어서, 내용 보호는 소스 및 싱크 간에 정책을 조정하고 미디어 경로를 따라 신뢰성을 유지하는 미디어 시스템의 맥락에서 제공된다. 시스템은 정책 엔진과 같은 컴포넌트를 포함할 수 있으며, 이러한 정책 엔진은 싱크와의 정책 고려를 협상하는 데에 있어 소스를 대신하여 동작할 수 있다. 정책 엔진은 싱크에 의해 수행되어야 할 동작을 확인하고, 소스로 하여금 그 동작에 기초하여 정책을 결정하도록 할 수 있다. 정책 엔진은, 싱크가 소스 데이터에 액세스할 수 있게 하기 전에, 선택된 정책이 싱크에 의해 구현되는 것을 보장할 수 있다. 대안적으로 또는 추가적으로, 정책 엔진은 정책 실행자(policy enforcer)로서 동작할 수 있다.
예시적인 실시예들
도 1은 일 실시예에 따른 시스템(100)의 고 레벨 블럭도를 도시한다. 1개 이상의 실시예에 있어서, 시스템(100)은 소프트웨어로 구현된다. 다른 실시예에 있어서, 시스템(100)은 임의의 적당한 소프트웨어, 펌웨어, 하드웨어, 및/또는 그들의 조합과 관련하여 구현될 수 있다.
시스템(100)에 있어서, 애플리케이션(102)은 미디어 엔진(104)과 상호 작용한다. 미디어 세션(112), 미디어 프로세서(114), 소스 신뢰 권한(source trust authority, 116), 싱크 신뢰 권한(sink trust authority, 118) 및 정책 엔진(120)은 보호된 미디어 경로 또는 보호된 환경(110)에서 동작한다. 소스(124)는 소스 데이터를 보유하거나 액세스할 수 있는 임의의 형태의 시스템일 수 있다. 싱크 (126)는 소스 데이터 또는 그로부터의 파생물에 대하여 동작을 수행할 수 있는 임의의 시스템일 수 있다.
일단 애플리케이션(102)이 소스 및 관련 데이터 및/또는 싱크에 의해 수행되어야 할 관련 동작을 선택하면, 애플리케이션은 시작, 중지, 반복, 역방향, 빨리 감기 등과 같은 렌더링 제어 명령을 제공하는 것을 제외하고는, 보호 환경(110)을 경유하여 데이터를 렌더링하는 것에 관여하지 않는다.
보호 환경(110)은, 보호되는 방식으로 내용이 처리될 수 있게끔 하는 한편, 소스(124)로부터 싱크(126)로 데이터 또는 내용을 전달할 수 있게 한다. 소스(124)는 소스와 관련된 데이터(즉, 소스 데이터)를 보호하기 위한 1개 이상의 소스 내용 보호 시스템과 관련될 수 있다. 예를 들어, 소스(124)의 각 스트림은 디지털 권리 관리 또는 권리 관리 시스템과 같은 몇몇 내용 보호 시스템과 연관될 수 있으며, CGMS-A 또는 조건부 액세스 시스템(Conditional Access System)과 같은 제한된 내용 보호와 연관될 수 있다. 소스는 소스 데이터의 다양한 사용과 관련된 상이한 소스 내용 보호 시스템들을 가질 수 있다. 이와 달리, 소스(124)는 내용 보호 시스템과는 연관되지 않을 수도 있다.
소스와 유사하게, 싱크(126)는 1개 이상의 싱크 내용 보호 시스템과 연관될 수 있다. 또한, 싱크는 수행할 수 있는 상이한 동작들에 대하여 서로 다른 싱크 내용 보호 시스템을 지원할 수 있다. 예를 들어, 싱크는 소스 데이트에 근거하여 수행할 수 있는 제1 동작에 대한 내용 보호 시스템의 제1 집합과, 데이터에 근거하여 수행할 수 있는 제2 동작에 대한 내용 보호 시스템의 제2 집합과 연관될 수 있 다. 하나의 예에 있어서, 싱크(126)는 스피커에 전달되어야 할 오디오를 수신하기 위한 오디오 시스템 및 디스플레이에 전달되어야 할 비디오를 수신하기 위한 비디오 시스템 양자를 모두 포함할 수 있다. 이러한 기능 각각은 1개 이상의 내용 보호 시스템과 연관될 수 있다. 어떤 경우, 싱크(126)는 싱크 내용 보호 시스템과 연관되지 않을 수도 있다. 그와 같은 경우, 정책 엔진(120)은, 이하에서 설명되는 바와 같이, 싱크가 데이터로의 조건부 액세스를 가능하도록 할 수 있다. 예시적인 보호 환경 또는 보호 미디어 경로는 본 출원의 일부로서 참조되는 2003년 10월 23일 출원된 미국 출원 번호 제60/513,831호 ("보호 미디어 경로 및 거절 응답 가능자")에 자세히 기재되어 있다.
정책 엔진(120)은 보호 환경(110) 내에서 그 데이터의 사용과 관련하여 소스(124)을 대신하여 동작할 수 있다. 정책 엔진은 또한, 소스(124)의 데이터를 액세스하도록 싱크 내용 보호 시스템을 구현하게끔 싱크에게 요구할 수도 있다. 특정 싱크 내용 보호 시스템이 선택되는 방법은 이하에서 보다 상세하게 설명한다.
정책 엔진(120)은 미디어 세션(112)에 상주할 수 있으며, 소스 신뢰 권한(SOTA, 116) 및 싱크 신뢰 권한(SITA, 118)과 통신할 수 있다. SOTA(116)는 보호 환경(110)에서 대응 소스(124)를 나타낸다. 상술한 실시예에서, 소스 신뢰 권한은 소스(124)와 관련된 소스 내용 보호 시스템의 소프트웨어 에이전트(agent)이다. 마찬가지로, 싱크 신뢰 권한(SITA 118) 각각은 싱크 내용 보호 시스템의 소프트웨어 에이전트이며, 보호 환경(110)에서 대응 싱크(126)를 나타낸다.
SOTA는 소스(124)의 데이터를 해독하기 위한 해독 기능을 제공하도록 기능 할 수 있다. 또한, 일부의 실시예에 있어서, SOTA는 원형 포맷으로부터 정책 엔진을 따르는 포맷으로 정책을 변형하도록 기능 할 수 있다. 대안적으로 또는 부가적으로, SOTA는 데이터와 관련된 정책을 정책 엔진(120) 및/또는 SITA(118)에 의해 수용된 정책으로 변형할 수도 있다. SOTA는 소스 정책을 특정 출력 정책으로 변형할 수 있다. 다른 실시예에 있어서, SOTA는 정책 엔진에 예외 정보를 제공할 수 있다. 예를 들어, SOTA는 컴포넌트 제외 목록 또는 글로벌 취소 요구사항을 정책 엔진에 제공할 수 있다.
SITA(118)는 필요할 경우 싱크(126)에 전달되어야 할 데이터를 암호화하는 암호화 기능을 제공하도록 기능 할 수 있다. 따라서, 싱크(126)는 데이터 및 대응 정책을 수신하고, 필요할 경우 수신된 데이터를 해독하며, 수신된 정책에 기초하여 데이터를 렌더링한다. SITA(118)는 특히 신뢰, 정책 및 권리와 관련한 질문에 대하여 싱크(126)를 위해 동작할 수 있다.
소스 정책은 대게 특정 소스에 대하여 특정되는 상술한 원형 포맷으로 보여지며, 임의의 복합성을 가질 수 있다. 예를 들어, 정책은 온 또는 오프로 설정된 일련의 비트들로 표현될 수 있고, 수행되어야 할 소정의 언어로 제시된 논리를 포함할 수도 있으며, 수행 가능한 기계 코드를 포함하거나 참조할 수도 있다. 일반적으로, 정책은, 대응 데이터에 대하여 취해질 수 있는 동작, 존재해야만 하는 동작에 선행하는 조건, 취해져야 할 동작에 후속하는 사건, 데이터와 관련하여 존재하거나 존재할 수 없는 구성 요소, 그와 같은 구성 요소에 대한 조건, 전달된 내용과 함께 전달되어야 할 정책 등과 같은 정보를 표현할 수 있다.
상술한 실시예들에 있어서, 정책 엔진(120)은 보호 환경 아키텍처의 심장부로서 기능하며, 각 SOTA(116)를 대신하여 정책을 실행할 책임이 있다. 따라서, 정책 엔진(120)은, 요구되는 싱크 내용 보호 시스템, 싱크 내용 보호 시스템 상의 외부 정책 및 미디어 경로 컴포넌트 포함 및 제외를 포함하여, 각 응용가능한 소스(124) 및 각 싱크(126) 간에서 정책을 협상한다. 상술한 바와 같이, 정책 엔진(120)은 SOTA(116) 및 SITA(118)를 경유하여 각각 소스 및 싱크와 간접적으로 동작할 수 있다. 이와 같은 경우, 정책 엔진은 소스 또는 싱크를 각각 이용하는 SOTA 또는 SITA를 이용한다. 정책 엔진(120)은 데이터가 사악한 엔터티에 의해 도난당하는 것을 방지하도록 보장하는 것의 수준과 함께 소스(124)의 데이터가 처리될 수 있는 보호 환경을 또한 제공한다.
정책 엔진
도 2는 복수의 소스 및 복수의 싱크를 포함하는 다른 예시적인 시스템(100a)의 블럭도를 도시한다. 정책 엔진(120a)은 소스(124a-124c)로부터 보호 환경(110a)으로의, 그리고 싱크(126a-126c)로의 내용 이동을 감독한다. 정책 엔진의 감독 역할은 이하에서 예시를 통해 설명되는 다양한 형태를 포함할 수 있다.
예들에 있어서, 정책 엔진(120a)은 소스들(124a-124c) 중 하나와 관련된 데이터에 대하여 1개 이상의 싱크들(126a-126c)에 의해 수행되어야 할 제안된 동작 또는 동작들을 학습한다. 정책 엔진은 시스템 구성에 의존하는 다양한 방식으로, 제안된 동작을 학습할 수 있다. 예를 들어, 소스 데이터로의 싱크들의 유일한 액세스가 정책 엔진에 의해서 제어되도록 구현할 수 있다. 그와 같은 구성에 있어 서, 싱크는 정책 엔진의 승인없이는 데이터에 액세스할 수 없다.
구현예에 따라, 이하 설명되는 단계들 중 일부는 정책 엔진이 제안된 동작을 학습하기 전에 발생할 수 있으며, 단계들 중 일부는 정책 엔진이 제안된 동작을 학습한 것에 후속하여 발생할 수 있다.
소스 데이터로의 액세스
감독 역할의 하나의 형태로서, 정책 엔진(120a)은 보호 환경(110a)에서 허용되는 컴포넌트에 대한 배타적 제어 및 어떤 컴포넌트가 특정 소스의 데이터에 액세스를 갖는지에 대한 배타적 제어를 가질 수 있다. 신뢰의 어떤 루트(root)에 의해 신뢰되는 컴포넌트들만이 처리가 시작되도록 허용된다.
보호 환경(110)으로 플러그하려는 SITA 또는 싱크와 같은 컴포넌트들을 포함하는 동적 링크 라이브러리(DLL)를 위한 증명(certification) 메커니즘을 이용하여 신뢰를 수립하도록 구현된다. 보호 환경(110)과 관련한 정책 엔진은 컴포넌트가 이러한 증명서를 가지고 있을 경우에만 로딩되도록 한다. 다양한 구현예에서, 그와 같은 증명서는 다른 구성 중에서도 운영 체계에 의해 발행될 수 있다. 어떤 구현예에서, 증명서는 기관에 의해 개발자/회사로 발행될 것이며, 이는 운영 체계 제공자 또는 제3자에 의해 감독될 수 있다. 개발자는 그들의 소프트웨어 전부에 증명서를 첨부할 수 있다. 이러한 구현예 중 일부에서는, 일단 컴포넌트의 증명서가 확인되면, 보호 환경에 로드되도록 허용되며, 정책 엔진은 지원하도록 주장하는 임의의 것을 존중하도록 신뢰한다. 의도적으로 또는 의도적이지 않게, 컴포넌트가 이러한 신뢰를 위반하는 것이 이후에 발견되면, SOTA로부터 획득된 소스 특정 제외 목록 또는 글로벌 제외 목록에 부가될 것이다.
하나의 구현예에 있어서, 정책 엔진(120a)가 초기화하면, 이 예에 있어서는 소스(124a-124c)와 같은 현재 가용한 모든 소스를 접촉한다. 정책 엔진은 개별적인 소스들에 대해 1개 이상의 SOTA(116a-116c)를 등록한다.
어떤 예시적인 구현예에서는, 스스로를 정책 엔진으로서 인식하는 컴포넌트가 진실로 정책 엔진인지를 SOTA가 보장하도록 하는 메커니즘이 포함될 수 있다. 그와 같은 구현예에서는, 다음 방법으로 정책 엔진 및 SOTA 간의 신뢰가 수립된다. 정책 엔진은 SOTA 객체 IMFSourceTrustAuthority::EstablishTrust를 호출하고, 포인터를 IMFTrustHost 인터페이스로 보낸다. SOTA는 정책 엔진으로부터 증명서를 요청하기 위하여 IMFTrustHost::GetCertificate를 호출한다. 증명서는 운영 체계 비밀키로 서명된다. SOTA는 증명서의 정당성을 검증하고, 난수를 발생하며, IMFTrustHost::SignChallenge를 호출한다. 정책 엔진은 비밀키로 그 난수에 서명한다. SOTA는 증명서로부터의 공개키를 이용하여 서명을 검증한다. 이는 하나의 구현예에 지나지 않으며, 당업자라면 다른 구성들을 인식할 것이다.
SOTA를 등록함에 있어서, 정책 엔진은 각 소스의 데이터와 관련된 소스 내용 보호 시스템에 대한 정보 및/또는 데이터 사용에 관한 다른 정책 정보를 수신할 수 있다. 정책 정보는 각 SOTA로부터 제외 목록을 포함할 수 있다. 제외 목록은 어떤 컴포넌트가 소스 데이터를 액세스하도록 허용되는가 또는 허용되지 않은가에 관련될 수 있다. 예를 들어, 제외 목록은 소스 데이터를 액세스하는 것으로부터 허가된 코드를 갖지 않은 임의의 컴포넌트를 제외할 수 있다.
정책 엔진(120a)은 주어진 SOTA로부터 다양한 제외 정책을 수신할 수 있다. 예를 들어, SOTA(118a)는 보호 환경으로 로딩되는 것으로부터 제외되어야 할 컴포넌트의 목록을 제출할 수 있다. 정책 엔진은 이러한 정책 정보를 이용하고, 이하에서 설명될 바와 같이, 부가적인 제외 조건을 부가할 수 있다. 예를 들어, 어떤 구현예에 있어서, 정책 엔진은 코드가 보호 환경으로 허용되기 이전에 신뢰를 수립하기 위한 임의의 수단 또는 증명서를 요구할 수 있다. 그와 같은 구성에 있어서, SOTA는 정책 엔진이 그들을 자동으로 구현하기 때문에 그와 같은 조치를 요청할 필요가 없다.
정책 엔진(120a)은 소스 중 어느 것과도 직접적으로 연관되지 않은 상이한 컴포넌트로부터 허가된/제외된 컴포넌트의 목록을 획득할 수 있다. 상술한 구현예에 있어서, 상이한 컴포넌트 또는 글로벌 컴포넌트(206)는 글로벌 제외 목록(210)을 포함한다. 하나의 구현예에 있어서, 글로벌 제외 목록은 마이크로소프트사에 의해 라이센스된 Windows 브랜드 OS와 같은 운영 체계에 의해 제공될 수 있다. 글로벌 제외 목록은 다른 구성들 중에서 운영 체계로부터 다운로드된 서명되고 시간-스탬프된 목록(signed and time-stamped list)일 수 있다. 글로벌 컴포넌트 및 SOTA로부터의 제외 조건은 서로에 대해 조건을 부과할 수 있다. 예를 들어, SOTA의 예외 조건은 글로벌 제외 목록이 30일과 같은 주어진 기간 내에 서버에 대하여 검증되어야 할 것을 요구할 수 있다.
정책 엔진(120a)은 2개의 컴포넌트로부터 획득된 제외 목록을 조합 또는 수집할 수 있고, 보호 환경(110a)으로부터 비신뢰(non-trusted) 컴포넌트를 제외하는 소스 데이터와의 사용을 위해 제외 목록을 공식화할 수 있다. 예를 들어, 정책 엔진은 글로벌 컴포넌트 및 각각의 SOTA로부터 목록을 수집할 수 있다. 정책 엔진은 DRM 권한에 의해 신뢰성이 있는 것으로 판단된 것과 같은 신뢰된 컴포넌트만을 로딩할 수 있다. 소스가 소스 내용 보호 시스템을 갖고 있지 않거나 그와 관련된 제외 정책을 갖고 있지 않은 경우, 제외 정책은 글로벌 제외 목록(210)에 기초한다.
정책 엔진(120a)이 가용 제외 정보를 수집했다면, 제외 정보에 일관되게 보호 환경으로 컴포넌트 액세스를 허용하거나 제외함으로써 제외 정보를 실행할 수 있다. 어떤 구현예에 있어, 정책 엔진은 컴포넌트를 허용하고 제외하는 이와 같은 "문지기(gatekeeper)" 역할을 수행한다.
어떤 구현예에 있어, 제외 정보는 정책 엔진으로부터 실제 실행 기능성 또는 문지기 역할을 수행하는 제3자 컴포넌트로 전달된다. 이 경우, 제3자 컴포넌트는 컴포넌트 생성자(214)를 포함할 수 있다. 컴포넌트 생성자는 이 과정에서 모든 컴포넌트의 생성을 다루며, 허용된 컴포넌트만이 신뢰되는 컴포넌트가 됨을 확실히 하는 것과 같은 필요한 검증을 다룰 수도 있다. 이 경우, 정책 엔진(120a)은 소스(124a)와 연관된 SOTA(118a)에 관한 정책 정보를 수신한다. 정책 엔진은 또한, 글로벌 제외 목록(210)의 형태로 글로벌 컴포넌트(206)로부터 정책 정보를 수신한다. 정책 엔진은 다양한 소스들로부터 이하에서 설명될 제외 기능을 다룰 수 있는 컴포넌트 생성자(214)로 제외 정보를 전달한다.
어떤 구현예에 있어서, 제외 정보는 SOTA로부터 실제 실행 기능을 수행하는 제3자 컴포넌트로 직접 간다. 예를 들어, 정책 엔진(120a)은 다양한 SOTA들로부터 제외 정보를 요청할 수 있다. SOTA는 정보를 컴포넌트 생성자(214)로 직접 전달한다.
다른 실시예에 있어서, 정책 엔진(120a)은 보호 환경(110a)으로의 진입을 제어하고 데이터로의 액세스를 제어한다. 그와 같은 경우, 정책 엔진은 주어진 소스로부터의 데이터에 대해 수행되어야 할 동작을 학습하고, 연루된 컴포넌트들이 데이터에 액세스하기 위해 보호 환경으로 진입하는 것을 허용한다. 예를 들어, 소스(124a)는 DVD로부터 데이터를 액세스하도록 구성되며, 정책 엔진은 사용자가 데이터를 재생하기를 원한다는 것을 알게 된다. 이런 경우, 싱크(126a)는, 소스 데이터로부터 스크린상에 가상 이미지를 만들고 스피커에 음향을 생성할 수 있는 시스템을 포함한다. 정책 엔진은, 싱크(126a)가 보호 환경(110a)에서 데이터에 액세스하도록 허용될 것인지를 결정하기 위하여, 글로벌 제외 목록(210) 및/또는 SOTA(116a)로부터의 제외 정보를 확인할 수 있다. 정책 엔진(120a)은 이러한 관련 컴포넌트들만을 가지고 그 기능성의 나머지를 진행할 수 있다. 정책 엔진은 동시에 많은 동작 특징 보호 환경을 구현하고 관려할 수 있다. 정책 엔진은 특정 동작을 완료한 후에 개별적인 보호 환경을 중지한다. 위 예에서, 정책 엔진은 소스 및 싱크와의 역할과 관련하여 설명하였다. 정책 엔진은 데이터를 액세스할 수 있는 변형과 같은 다른 컴포넌트를 관리할 수도 있다.
위 예는 소스 및/또는 제3자 제외 및/또는 정책 목록에 의해 허용되는 동작들에 기초한다. 다른 동작들은 아예 허용이 되지 않을 수도 있으며, 정책 엔진(120a)은 관련 제외 정보를 수집하지 않는다. 예를 들어, 도 2를 참조하면, SITA(118b)는 소스(124c)로부터 데이터를 복사하도록 요청할 수 있다. SOTA(116c)가 그 동작을 허용하지 않을 경우, 정책 엔진(120a) 및/또는 컴포넌트 생성자(214)는 다른 단계로 나아가지 않고 데이터로의 액세스를 차단하도록 동작할 수 있다. 다른 동작들이 조건부로 제외될 수 있다. 예를 들어, 사용자가 데이터를 소망하는 방법으로 사용하도록 라이센스를 획득할 때까지 동작은 방해되거나 제외될 수 있다. 이처럼, 싱크는 라이센스 획득이 진행 중인 보호 환경으로 진입하는 것이 방지될 수 있다. 다른 예시에 대해 아래에서 설명한다.
소스 데이터와 연관된 내용 정책 등록
정책 엔진(120a)은 특정 소스와 관련된 데이터에 대해 수행되어야 할 동작에 관한 내용 보호 정책을 수집할 수 있다. 그와 같은 동작의 예에는 재생, 복사, 보내기, 백업을 포함할 수 있으나, 이에 한정되지 않는다. 내용 정책의 적어도 일부는 소스가 어떠한 형태의 싱크 또는 출력 내용 보호 정책들이 소스 데이터를 이용하는 주어진 동작에 대해 사용되기를 원하는지와 관련될 수 있다. 한 구현예에서, 정책 엔진은 주어진 싱크에 의해 소스 데이터에 대해 수행되어야 할 동작을 학습한다. 예를 들어, 정책 엔진(120a)은, 소스(124a)와 관련된 소스 데이터로부터 스크린상에 가상 이미지를 생성하고 스피커에 음향을 생성하도록 싱크(126a)에 대한 요청을 수신할 수 있다. 정책 엔진은 동작을 위해 소스가 어떤 싱크 보호 정책을 요구하는지를 확인하기 위해 SOTA(116a)에게 질의할 수 있다. 정책 엔진은 소스로부터 제로, 1개, 또는 복수의 보호 정책을 수신할 수 있다. 예를 들어, 보호되지 않은 내용의 경우, 정책 엔진은 데이터와 직접적으로 연관된 임의의 정책을 획득하지 않을 수 있다. 다른 경우, SOTA는 복수의 정책을 제공할 수 있다. 이 예에 있어서, SOTA는 가상 이미지를 생성하기 위해 데이터를 이용하는 것과 관련된 정책의 제1 집합을 제공할 수 있다. 예를 들어, 소스 정책은 고-대역폭 디지털 내용 보호(High-bandwidth Digital Content Protection, HDCP) 또는 매크로비전 프로토콜을 지원하도록 싱크에게 요청할 수 있다. 유사하게, SOTA는 음향을 만들기 위해 데이터를 이용하는 것과 관련하여 정책들의 제2 집합을 제공할 수 있다. 예를 들어, 그와 같은 정책은 디지털 전송 제어 프로토콜(DCTP)을 포함할 수 있다.
다른 경우, SOTA 정책들은 동작과 관련된 다양한 파라미터들과 관련될 수 있다. 예를 들어, 정책은 어떤 조건이 만족될 경우 소스 내용의 복사를 허용할 수 있다. 이 경우, 동작이 복사본을 만드는 것이라면, SOTA는 복사가 30일 이후에 만료되는 경우에만 그와 같은 동작이 발생하도록 하는 정책을 가질 수 있다. 일 구현예에서, SOTA는 정책 엔진이 SITA에 통신하는 싱크 내용 보호 정책에서의 조건들을 포함할 수 있다. 다른 구현예에서, SOTA는 정책 엔진이 이해하는 일반 언어로 조건들을 변형할 수 있으며, 정책 엔진은 그 정보를 SITA에게 보낼 수 있다. 양 경우에 있어서, SIA는 그 조건들을 존중할 책임이 있다.
다른 예시에서, 소스 정책들은 싱크가 보호 시스템을 지원하지 않는 경우에도 동작이 진행되도록 허용할 수 있다. 예를 들어, 싱크는 가상 디스플레이를 생성하도록 요청할 수 있으나, 관련 싱크 내용 보호 시스템을 지원하지 않을 수 있다. 정책 엔진을 통하여 소스는 어떤 조건이 만족될 경우 동작이 진행되도록 허용할 수 있다. 예를 들어, 소스는 소스 데이터의 포텐셜에 대하여 출력 해상도를 낮 추기 위해 가상 신호가 감소된 품질을 갖기를 원할 수 있다. 정책 엔진은 그 조건을 실행할 것인지 다른 컴포넌트에게 그것을 위임할지를 결정할 수 있으나, 어떤 옵션이 선택될지라도, 그것이 확실히 수행되도록 하는 것은 정책 엔진의 역할이다. 정책 엔진은 해상도를 낮추거나 싱크가 내부적으로 할 수 있도록 할 수 있으며, 싱크로 하여금 그렇게 하도록 할 수도 있다. 정책 엔진은 이하에서 설명될 바와 같이, 순응(compliance)을 보장하기 위하여 소스를 대신하여 행동할 수 있다.
어떤 구현예에 있어서, 미디어 소스에게 질의하는 것에 부가하여, 정책 엔진은 제안된 동작에 관한 정책에 대하여, 소스 데이터와 직접 관련되지 않은 적어도 하나의 컴포넌트(예를 들어, 제3자 컴포넌트)에게도 질의할 수 있다. 설명한 구현예에서, 제3자 컴포넌트는 글로벌 정책 목록(216)을 제어하는 글로벌 컴포넌트(206)이다.
정책 엔진은 2개의 정책 소스로부터의 정책 목록을 하나의 목록 또는 어레이로 수집할 수 있다. 만약 1개 이상의 동작이 싱크에 의해 수행되어야 한다면, 정책 엔진은 다양한 동작에 대한 정책 목록을 수집할 수 있다. 예를 들어, "데이터 재생" 동작이라면, 정책 엔진은 가상 이미지를 생성하는 것과 관련된 수집된 어레이 및 음향을 생성하는 것과 관련된 별도의 목록을 컴파일할 수 있다. 각 목록 또는 어레이는 어떤 기준에 근거하여 정책 엔진에 의해 순위화될 수 있다. 설명된 구현예에서, 정책 엔진은 선호도 순서대로 수집 목록을 순위화한다. 정책 엔진은 SOTA로부터 선호도 순서를 얻거나 내부적으로 선호도 순서를 정할 수 있다. 이 특정 예에서, 선호도 순서는 안전도에 기초한다. 즉, 정책 엔진은 가장 안전한 것부 터 가장 덜 안전한 순서로 정책들을 순위화한다.
이와 달리, 정책 엔진은 싱크의 제안 동작을 위해 어떤 싱크 또는 출력 보호 정책이 지원되는지에 대하여 먼저 SITA에게 질의할 수 있다. 정책 엔진은 SITA의 출력 보호 정보를 적당한 소스의 SOTA 및/또는 지원 정책 중 하나의 선택에 대한 글로벌 정책 컴포넌트에 제공할 수 있다.
다른 구성예에서, 초기화 시에, 정책 엔진은 모든 소스 및 모든 싱크에 질의한다. 각 소스로부터 정책 엔진은 소스 데이터와 관련된 정책 정보를 수신한다. 소스 데이터에 대하여 행해질 수 있는 각 동작에 대해, 소스는 요구되는 1개 이상의 정책들의 목록을 제공할 수 있다. 만약 소스가 주어진 동작에 대하여 다양한 정책들을 허용한다면, 그 정책들은 선호도의 순위화된 순서에 따라 제공될 수 있다. 정책 엔진은 싱크가 수행할 수 있는 동작들에 관하여 각 싱크로부터 정보 및 그 동작에 대한 싱크가 지원하는 관련 출력 보호 정책을 수신한다. 이와 같이, 정책 엔진은 개별적인 동작들과 관련된 정책들 및 다양한 소스들에 포함된 데이터에 대하여 수행될 수 있는 동작들의 주 리스트를 생성한다. 그와 같은 구성에 있어서, 정책 엔진은 싱크에 의해 수행되어야 할 동작을 학습할 때 싱크 및 소스로부터 축적된 정보를 이미 갖고 있다.
소스를 대신한 협상
정책 엔진(120a)이 내용 정책 목록을 갖게 되면, 정책 엔진은 SOTA(116a-116c)를 대신하여 SITA(118a-118b)와 목록을 협상하도록 동작한다. 정책 엔진은 SITA가 지원하는 목록으로부터 내용 정책을 찾아내기 위하여 SITA에게 질의할 수 있다. 목록이 가장 안전한 것으로부터 가장 덜 안전한 것으로 순위화된 구현예에 있어서, 정책 엔진은 가장 안전한 것부터 가장 덜 안전한 것의 순서로 다양한 정책들을 지원하는지에 대하여 SITA에게 문의할 수 있다.
정책 엔진(120a)은 SITA(118a-118b)에게 지원하는 가장 상위의(가장 안전한) 정책을 구현하도록 지시할 수 있다. 다른 구현예에 있어서, 정책 엔진은 어떤 정책을 SITA가 지원하는지 찾아내고, SOTA 및/또는 제3자 정책 컴포넌트로 돌아가, SOTA 및/또는 제3자 정책 컴포넌트로 하여금 지원되는 정책 중 하나를 선택하도록 할 수 있다. 예를 들어, 정책 엔진은 지원되는 정책에 관해 SITA에게 문의할 수 있으며, SITA는 "a, b 및 c"를 지원한다고 응답할 수 있다. 정책 엔진은 SOTA에게 "a, b, c" 중 어느 것이 구현될 수 있는지를 문의할 수 있다. 이 예시에 있어서, SOTA는 싱크에 의해 지원되는 출력 보호 시스템의 목록으로부터 어떤 정책을 사용할지 효율적으로 선택하게 된다.
정책 엔진은 주어진 소스를 대신하여 병렬적으로 협상을 진행할 수 있다. 예를 들어, 정책 엔진(120a)은 소스(124a)와 관련된 데이터로부터 비디오 출력 또는 오디오 출력을 위한 정책을 동시에 협상할 수 있다. 또, 정책 엔진은 단일 싱크와 관련하여 2개의 SOTA(116a-116b)를 대신하여 협상할 수 있다. 예를 들어, 제1 소스(124a)는 영화를 포함하는 DVD로부터 데이터를 공급하도록 구성될 수 있다. 제1 소스는 오디오를 생성하기 위한 상이한 정책 및 가상 이미지를 생성하기 위한 데이터로 싱크가 액세스하도록 허용하기 전에, Windows 미디어 DRM이 구현되기를 원할 수 있다. 동시에, 제2 소스(124b)는 영상 디스플레이에서 영상을 생성하기 위해 싱크(126a)가 사용할 수 있는 케이블 TV 내용을 제공하도록 구성될 수 있다. 케이블 데이터를 제공하는 제2 소스(124b)는 데이터에 액세스를 허용하기 전에 케이블 조건 액세스가 구현되기를 원할 수 있다. 정책 엔진은 2개의 소스(124a, 124b) 각각을 대신하여 협상할 수 있으며, 3개의 정책 모두가 싱크(126a)에 의해 구현되도록 할 수 있다.
일단 싱크 및 관련 SITA에 대한 정책 선택이 이루어지면, 정책 엔진은 SITA에 대한 구성 정보에 영향을 줄 수 있다. 예를 들어, 시스템이 페이로드(payload) 및 관련 구성 데이터를 갖고 있다면, 정책 엔진은 그것을 SITA 상에 배치할 수 있다.
선택된 정책의 실행
정책 엔진(120a)은 SOTA(116a-116c)를 대신하여 다양한 실행 기능들을 수행할 수 있다. 그와 같은 실행 기능은, DRM 증명과 같은 방법으로, 싱크가 적합하게 허가되는 것을 보증하는 것을 포함할 수 있다. 어떤 구현예에서, 정책 엔진은 SOTA로부터 오는 다른 정책들/조건들을 SITA에게 넘겨줄 수 있다. 정책 엔진은 보호 환경에서 로드되는, 변형과 같은 다른 컴포넌트에 관하여 유사하게 동작할 수 있다.
다른 구현예에서, 정책 엔진은 부가적인 실행 능력을 가질 수 있다. 어떤 구현예에서, 제안된 동작이 SOTA에 의해 금지되는 경우, 실행 기능은 싱크(126a-126b)가 데이터를 액세스 하지 않도록 보장할 수 있다. 어떤 구현예에 있어서, 싱크가 지원하는 정책이 선택이 되었었고 SITA는 지원된 정책을 구현하도록 지시를 받은 바 있는 경우라면, 정책 엔진은 싱크가 데이터에 액세스하도록 허용되기 전에 정책이 실제로 구현되었음을 보장할 수 있다. 정책 엔진은 싱크가 데이터에 액세스하고 있는 동안 정책이 계속 구현됨을 보장하도록 재체크할 수 있다.
예시적인 방법
도 3은 일 실시예에 따른 예시적인 방법에서의 단계들을 보여준다. 방법은 임의의 적당한 하드웨어, 소프트웨어, 펌웨어 또는 그들의 조합으로 구현될 수 있다. 일 실시예에서, 방법은 도 4와 관련하여 이하에서 설명할 컴퓨터 시스템으로 예시적인 소프트웨어 아키텍처를 사용하여 구현될 수 있다. 하지만, 청구된 발명의 정신 및 범위를 벗어나지 않고 다른 소프트웨어 아키텍처 및 컴퓨터 시스템이 사용될 수 있음을 이해해야 한다. 또한, 이 도면에 도시된 동작들 중 일부는 흐름도에 나타난 순서에 나타나지 않을 수도 있음을 이해해야 한다.
단계(300)에서, 데이터 소스로부터 획득된 데이터에 대해 수행되어야 할 동작을 확인한다. 앞서 기술한 예시들에 있어서, 동작은 기록, 재생, 가상 이미지 생선 및 소리 생성을 포함하는 (이에 한정되지 않음) 수많은 상이한 기능들을 포함할 수 있다. 어떤 구현예에서, 동작을 수행할 컴포넌트로부터 동작이 확인될 수 있다. 그와 같은 컴포넌트는 데이터 싱크 또는 그 데이터 싱크와 관련된 SITA를 포함할 수 있다. 어떤 구현예에서, 동작 수행을 요청하는 사용자 입력 또는 다른 수단으로부터 동작이 확인될 수 있다.
단계(302)에서, 동작과 관련된 1개 이상의 조건이 결정된다. 조건들은 데이터를 보호하기 위하여 채택되어야 할 출력 보호 시스템과 관련이 있을 수 있다. 구현예에 있어서, 소스 또는 소스와 관련된 SOTA로부터, 및/또는 소스와 직접 관련되어 있지 않은 적어도 하나의 다른 컴포넌트로부터 동작과 관련된 조건들이 검색될 수 있다. 일 구현예에 있어서, 소스와 직접 관련되지 않은 컴포넌트는 글로벌 정책 목록을 포함할 수 있다.
단계(304)에서, 순위화된 순서대로 조건들이 순위화된다. 일 구현예에서, 조건들은 가장 안전한 것부터 가정 덜 안전한 것으로 순위화된다. 다른 구현예에서, 소스 및 적어도 하나의 다른 컴포넌트로부터 조건들을 수집하여 수집 목록을 순위화할 수 있다.
단계(306)에서, 동작을 수행할 컴포넌트에 의해 어떤 조건들이 지원되는지가 결정된다. 조건들은 다른 것 중에서 싱크 내용 보호 시스템을 포함할 수 있다. 어떤 구현예에서, 데이터 소스로 돌아가, 데이터 소스로 하여금 지원 조건 중 하나를 선택할 수 있도록 한다. 다른 구현예에서, 컴포넌트가 목록으로부터 조건들을 지원하는지 여부에 대하여 컴포넌트에게 질의할 수 있다. 어떤 구현예에서, 가장 상위의 순위 조건으로 시작하는 컴포넌트에게 질의하며, 지원되는 조건이 식별될 때까지 목록에 대해 아래로 진행한다. 컴포넌트가 목록화된 조건들 중 어느 것도 지원하지 않는 경우, 컴포넌트는 데이터를 액세스하는 것으로부터 제외될 수 있다.
단계(308)에서, 지원된 조건을 구현하도록 컴포넌트에게 지시한다. 어떤 구현예에서, 컴포넌트에게 데이터 액세스를 허용하기 전에 컴포넌트가 지원되는 조건을 구현했는지를 확인하기 위하여 추가적인 실행 체크가 이루어질 수 있다. 동작을 수행하는 컴포넌트가 조건들 중 어느 것도 지원하지 않으면, 데이터로의 액세스 는 차단될 수 있다. 또한, 추가적인 조건이 동작을 위한 데이터 사용에 대해 부과될 수 있다. 그와 같은 추가적인 조건은 적어도 하나의 데이터 속성을 감소시키는 것을 포함할 수 있다. 예를 들어, 소스는 상위 정의로부터 표준 정의로 비디오 신호의 정의를 감소시키도록 요구할 수 있다.
예시적인 컴퓨터 아키텍처
도 4는 컴퓨팅, 네트워크 및 시스템 아키텍처 뿐만 아니라 내용 보호 시스템이 전체적으로 또는 부분적으로 구현될 수 있는 예시적인 컴퓨팅 환경(400)을 보여준다. 예시적인 컴퓨팅 환경(400)은 컴퓨팅 시스템의 한 예시에 불과하며, 아키텍처의 사용 또는 기능의 범위를 제한하기 위한 것은 아니다. 컴퓨팅 환경(400)은 예시적인 컴퓨팅 환경(400)에 도시된 1개의 컴포넌트 또는 그들의 조합에 관하여 의존성이나 필요 조건을 갖는 것으로 해석되어서는 안 된다.
컴퓨팅 환경(400)에서의 컴퓨터 및 네트워크 아키텍처는 수많은 기타 범용 또는 특수 컴퓨팅 시스템 환경 또는 구성으로 구현될 수 있다. 본 발명과 함께 사용하기에 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경, 및/또는 구성의 예로는, 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드(hand-held) 또는 랩톱 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 시스템, 셋 탑 박스(set top box), 프로그램가능한 가전제품(programmable consumer electronics), 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기의 시스템 또는 장치 중의 임의의 것을 포함하는 분산형 컴퓨팅 환경 등이 포함될 수 있지만, 이에 한정되지 않는다.
컴퓨팅 환경(400)은 컴퓨팅 장치(402)의 형태로 범용 컴퓨팅 시스템을 포함 한다. 컴퓨팅 장치(402)는 1개 이상의 프로세서(404), 시스템 메모리(406), 및 다양한 시스템 컴포넌트들을 연결하는 시스템 버스(408)를 포함하나, 이에 한정되지 않는다. 1개 이상의 프로세서(404)는 컴퓨팅 장치(402)의 동작을 제어하고 다른 전자 및 컴퓨팅 장치와 통신하기 위하여 다양한 컴퓨터 수행 가능 명령들을 처리한다. 시스템 버스(408)는 메모리 버스, 메모리 제어기, 병렬 버스, 가속 그래픽 포트, 다양한 버스 아키텍처를 이용하는 프로세서 또는 로컬 버스를 포함하는 임의의 수의 버스 구조 형태를 나타낸다.
컴퓨팅 환경(400)은 컴퓨팅 장치(402)에 의해 액세스 가능한 임의의 매체일 수 있는 다양한 컴퓨터 판독 가능 매체를 포함하며, 휘발성 및 비휘발성 매체와, 착탈식 및 비착탈식 매체를 포함한다. 시스템 메모리(406)는 RAM(410)과 같은 휘발성 메모리 및/또는 ROM(412)과 같은 비휘발성 메모리의 형태로 컴퓨터 판독 가능 매체를 포함한다. BIOS(414)는 구동시 컴퓨팅 장치(402) 내의 컴포넌트들 사이의 정보 전달을 가능케하고 ROM(412)에 저장되는 기본 루틴을 보유한다. RAM(410)은 통상적으로 1개 이상의 프로세서(404)에 의해 즉각 액세스 가능하거나 현재 동작 중인 데이터 및/또는 프로그램 모듈을 보유한다.
컴퓨팅 장치(402)는 또한 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 단지 예로서, 도 4에는 비분리형 비휘발성 자기 매체로부터 판독하거나 그 자기 매체에 기록하는 하드 디스크 드라이브(416), 분리형 비휘발성 자기 디스크(420)로부터 판독하거나 그 자기 디스크에 기록하는 자기 디스크 드라이브(418), 및 CD-ROM, DVD 또는 기타 광학 매체 등의 분리형 비휘발성 광학 디스크(424)로부터 판독하거나 그 광학 디스크에 기록하는 광학 디스크 드라이브(422)가 도시되어 있다. 이 예시에 있어서, 하드 디스크 드라이브(416), 자기 디스크 드라이브(418) 및 광학 디스크 드라이브(422)는 1개 이상의 데이터 매체 인터페이스(426)에 의해 시스템 버스(408)에 각각 접속된다. 디스크 드라이브 및 관련 컴퓨터 판독 가능 매체는 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈 및 컴퓨팅 장치(402)로부터의 기타 데이터의 비휘발성 저장을 제공한다.
예를 들어, 운영 체제(426), 1개 이상의 애플리케이션 프로그램(428), 기타 프로그램 모듈(430) 및 프로그램 데이터(432)를 포함하는 임의의 수의 프로그램 모듈들은 하드 디스크(416), 자기 디스크(420), 광학 디스크(424), ROM(412) 및/또는 RAM(410)에 저장될 수 있다. 운영 체제(426), 애플리케이션 프로그램(428), 기타 프로그램 모듈(430) 및 프로그램 데이터(432) (또는 그들의 조합)은 여기에서 상술되는 시스템 및 방법의 실시예를 포함할 수 있다.
컴퓨팅 장치(402)는 통신 매체로 구별되는 다양한 컴퓨터 판독 가능 매체를 포함할 수 있다. 통신 매체는 통상적으로 반송파 또는 기타 전송 메커니즘 등의 변조된 데이터 신호에 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하도록 설정되거나 변환된 특성을 하나 또는 그 이상을 갖는 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속 등의 유선 매체와, 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함하지만, 이에 한정되지 않는다.
사용자는 (예를 들어, "마우스"와 같은) 포인팅 장치(436) 및 키보드(434)와 같은 임의의 수의 서로 다른 입력 장치들을 통해 컴퓨팅 장치(402)와 인터페이스 할 수 있다. (도시되어 있지는 않지만) 기타 입력 장치들(438)은 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 직렬 포트, 스캐너 및/또는 기타를 포함할 수 있다. 이러한 입력 장치들 및 기타 입력 장치들은 시스템 버스(408)에 연결되어 있는 입력/출력 인터페이스(440)를 통하여 프로세서(404)에 접속되며, 병렬 포트, 게임 포트 및 범용 직렬 버스(USB)와 같은 기타 인터페이스 및 버스 구조에 의해 접속될 수 있다.
모니터(442) 및 다른 유형의 디스플레이 장치는 비디오 어댑터(444)와 같은 인터페이스를 통하여 시스템 버스(408)에 접속될 수 있다. 모니터(442)에 부가하여, 다른 출력 주변 장치는 입력/출력 인터페이스(440)를 통하여 컴퓨팅 장치(402)에 접속 가능한 프린터(446) 및 (도시되지 않은) 스피커와 같은 컴포넌트를 포함할 수 있다.
컴퓨팅 장치(402)는 원격 컴퓨팅 장치(448)와 같은 1개 이상의 원격 컴퓨터로의 논리 접속을 이용하는 네트워킹 환경에서 동작할 수 있다. 예로서, 원격 컴퓨팅 장치(448)는 개인용 컴퓨터, 휴대용 컴퓨터, 서버, 라우터, 네트워크 컴퓨터, 피어 장치 또는 다른 공통 네트워크 노드 등을 포함할 수 있다. 원격 컴퓨팅 장치(448)는 컴퓨팅 장치(402)와 관련하여 설명되는 구성 요소 및 특성 전부 또는 다수를 포함할 수 있다.
컴퓨팅 장치(402) 및 원격 컴퓨팅 장치(448) 사이의 논리 접속은 근거리 통 신망 (LAN, 450) 및 원거리 통신망(WAN, 452)으로 도시된다. 이러한 네트워크 환경은 사무실, 기업 광역 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다. LAN 네트워크 환경에서 구현될 경우, 컴퓨팅 장치(402)는 네트워크 인터페이스 또는 어댑터(454)를 통하여 로컬 네트워크(450)에 접속된다. WAN 네트워크 환경에서 구현될 경우, 컴퓨팅 장치(402)는 일반적으로 모뎀(456) 또는 광역 네트워크(452) 상에서 통신을 구축하기 위한 다른 수단을 포함한다. 컴퓨팅 장치(402)의 외부 장치 또는 내부 장치일 수 있는 모뎀(456)은 입력/출력 인터페이스(440) 또는 다른 적합한 메커니즘을 통해 시스템 버스(408)에 접속된다. 도시된 네트워크 접속은 예시적인 것이며, 컴퓨팅 장치(402 및 448) 사이의 통신 링크를 형성하는 다른 수단이 사용될 수 있다.
네트워크 환경에서, 컴퓨팅 환경(400), 컴퓨팅 장치(402)와 관련된 프로그램 모듈 및 그들의 부분들과 같은 것들은 원격 메모리 저장 장치에 저장될 수 있다. 예시로서, 원격 애플리케이션 프로그램(458)은 원격 컴퓨팅 장치(448)의 메모리 장치에 유지된다. 예시로서, 운영 체제(426)와 같은 실행 가능 프로그램 모듈 및 애플리케이션 프로그램들은 개별 블록으로 도시되어 있으나, 그와 같은 프로그램 및 컴포넌트는 다양한 시간에 컴퓨팅 장치(402)의 상이한 저장 컴포넌트들에 상주하며, 컴퓨팅 장치의 프로세서(404)에 의해 수행된다.
결론
상술한 다양한 실시예들은 데이터와 관련된 업스트림 컴포넌트가 다운스트림 컴포넌트에 의한 데이터의 사용과 관련된 내용 정책을 결정하도록 허용될 수 있는 데이터 보안을 제공할 수 있다. 업스트림 컴포넌트는 다운스트림 컴포넌트에 의하여 데이터에 대해 수행되어야 할 특정 동작의 함수로서 정책에 도움을 준다. 정책 엔진으로서 구현될 수 있는 부가 컴포넌트는 업스트림 컴포넌트를 대신하여, 다운스트림 컴포넌트에 의해 어떤 정책 엔진이 지원되는지를 결정하고, 지원 정책의 구현을 협상하며, 다운스트림 컴포넌트가 데이터에 액세스하도록 허용되기 전에 지원 정책의 구현을 실행하도록 동작할 수 있다.
본 발명의 개념은 구조적인 특징 및/또는 방법론적 단계에 특정되는 언어로 기술되기는 하였으나, 청구범위에서의 발명의 개념은 설명된 특성 또는 단계들에 한정되지 않음을 이해해야 한다. 오히려, 특정 성질 및 단계는 그 발명 개념을 구현하기 위한 형태로서 설명된 것이다.

Claims (44)

  1. 데이터 소스(source)로부터 획득된 데이터에 대하여 수행되어야 할 동작을 확인하는(ascertaining) 단계;
    상기 동작에 관련된 내용 정책들을 검색하는 단계;
    상기 정책들을 순위화된 순서로 순위화하는 단계;
    개별적인 정책들이 데이터 싱크(data sink)에 의해 지원되는지 여부를 질의하는 단계; 및
    상기 데이터 싱크에 의해 지원되는 상기 순위화된 정책들 중 하나를 구현하도록 데이터 싱크에게 지시하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    개별적인 정책을 실행하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 지시하는 단계를 수행하는 컴포넌트 및 데이터 소스 사이의 신뢰(trust)를 수립하는(establishing) 단계를 더 포함하는 방법.
  4. 제1항에 있어서,
    상기 데이터 싱크가 상기 하나의 정책을 구현하였음을 검증하는 단계 및
    데이터 싱크로 하여금 동작을 수행하기 위해 데이터에 액세스 하도록 하는 단계를 더 포함하는 방법.
  5. 제1항에 있어서,
    상기 확인하는 단계는 상기 데이터 싱크와 관련된 싱크 신뢰로부터, 수행되어야 할 동작을 확인하는 단계를 포함하는 방법.
  6. 제1항에 있어서,
    상기 검색하는 단계는 상기 데이터 소스로부터 내용 정책들을 검색하는 단계 및 적어도 하나의 다른 컴포넌트로부터 내용 정책들을 검색하는 단계를 포함하는 방법.
  7. 제6항에 있어서,
    상기 적어도 하나의 다른 컴포넌트로부터 내용 정책들을 검색하는 단계는 글로벌 정책 목록으로부터 내용 정책들을 검색하는 단계를 포함하는 방법.
  8. 제7항에 있어서,
    상기 순위화하는 단계는, 적어도 부분적으로 보안 기준(security criteria)에 따라 최상 우선 순위로부터 최하 우선 순위로 정책들을 순위화하는 배열(array) 을 생성하는 단계를 포함하는 방법.
  9. 제1항에 있어서,
    상기 검색하는 단계는 소스 신뢰 권한(source trust authority)으로부터 내용 정책들을 검색하는 단계 및 적어도 하나의 다른 컴포넌트로부터 내용 정책들을 검색하는 단계를 포함하는 방법.
  10. 제1항에 있어서,
    상기 순위화하는 단계는 적어도 부분적으로 보안 기준(security criteria)에 따라 최상 우선 순위로부터 최하 우선 순위로 정책들을 순위화하는 단계를 포함하는 방법.
  11. 제1항에 있어서,
    상기 질의하는 단계는 싱크 신뢰 권한에 질의하는 단계를 포함하는 방법.
  12. 제1항에 있어서,
    상기 질의하는 단계 이후에, 상기 데이터 싱크가 정책들 중 적어도 하나를 지원하지 않는 경우 상기 동작을 차단하는 단계를 더 포함하는 방법.
  13. 제1항에 있어서,
    상기 질의하는 단계 이후에, 상기 데이터 싱크가 정책들 중 적어도 하나를 지원하지 않는 경우 동작을 위한 데이터에 부가적인 조건은 부과하는 단계를 포함하는 방법.
  14. 제13항에 있어서,
    상기 부과하는 단계는 데이터의 적어도 하나의 속성(property)을 감소시키는 단계를 포함하는 방법.
  15. 제1항에 있어서,
    상기 지시하는 단계는 상기 데이터 싱크가 순위화된 정책들 중 하나를 구현하게 만들도록 싱크 신뢰 권한에게 지시하는 단계를 더 포함하는 방법.
  16. 제1항에 있어서,
    상기 지시하는 단계 이후에, 순위화된 정책들 중 어느 것도 싱크에 의하여 구현되지 않을 경우 상기 동작을 차단하는 단계를 더 포함하는 방법.
  17. 제16항에 있어서,
    상기 차단하는 단계는 데이터가 싱크에 도달되는 것을 방지하는 단계를 포함하는 방법.
  18. 제1항에 기재된 방법을 구현하기 위한 컴퓨터로 판독 가능한 명령들을 포함하는 1개 이상의 컴퓨터 판독 가능 매체.
  19. 제1항에 기재된 방법을 구현하도록 구성된 정책 엔진을 포함하는, 컴퓨터 판독 가능 기록 매체 상의 소프트웨어 아키텍처.
  20. 데이터 소스로부터 획득된 데이터에 대하여 수행되어야 할 동작을 확인하는(ascertaining) 단계;
    상기 동작의 데이터 소스를 통지하는 단계; 및
    상기 동작이 수행되도록 허용해야 하는지 여부를 결정하는 단계
    를 포함하는 방법.
  21. 제1 컴포넌트와 연관되는 데이터로 수행되어야 할 적어도 하나의 동작을 확인하는 단계;
    동작과 관련된 조건들을 결정하는 단계; 및
    동작을 수행할 제2 컴포넌트가 적어도 하나의 조건을 지원하도록 구성되는지 여부를 확정하는 단계
    를 포함하는 방법.
  22. 제2항에 있어서,
    데이터를 액세스하기 전에 상기 제2 컴포넌트가 상기 조건들 중 적어도 하나의 조건을 구현하도록 보장하는 단계를 더 포함하는 방법.
  23. 제2항에 있어서,
    상기 확인하는 단계, 결정하는 단계, 확정하는 단계 및 보장하는 단계 중 적어도 하나는 제1 컴포넌트 및 제2 컴포넌트 중 어느 하나에 의해서도 수행되지 않는 방법.
  24. 제2항에 있어서,
    상기 결정하는 단계는 상기 제1 컴포넌트 및 제3 컴포넌트로부터 조건을 얻는 단계를 포함하는 방법.
  25. 제2항에 있어서,
    보호 환경 내에서의 제2 컴포넌트가 제1 컴포넌트와 연관되는 데이터를 액세스하도록 허용하기 전에 제2 컴포넌트의 신뢰를 수립하는 단계를 더 포함하는 방법.
  26. 제2항에 기재된 방법을 구현하기 위한 컴퓨터로 판독 가능한 명령들을 포함하는 하나 이상의 컴퓨터 판독 가능 매체.
  27. 제2항에 기재된 방법을 구현하도록 구성된 정책 엔진을 포함하는, 컴퓨터 판독 가능 기록 매체 상의 소프트웨어 아키텍처.
  28. 업스트림(upstream) 컴포넌트로부터 획득된 정책에 적어도 부분적으로 기초하여 다운스트림(downstream) 컴포넌트와 신뢰를 수립하는 단계;
    상기 업스트림 컴포넌트로부터 얻은 데이터에 대해 상기 다운스트림 컴포넌트에 의해 수행되어야 할 동작을 확인하는 단계; 및
    상기 다운스트림 컴포넌트가 데이터를 액세스하도록 허용하는 것과 관련하여, 상기 업스트림 및 범용 컴포넌트(universal component)로부터 조건들을 수신하는 단계
    를 포함하는 방법.
  29. 제9항에 있어서,
    상기 결정하는 단계는 업스트림 컴포넌트로부터의 조건들 및 범용 컴포넌트들로부터의 조건들을 순위화된 배열로 수집하는 단계를 포함하는 방법.
  30. 제9항에 있어서,
    상기 수립하는 단계, 확인하는 단계 및 결정하는 단계는 정책 컴포넌트에 의해 행해지는 방법.
  31. 제9항에 있어서,
    상기 업스트림 컴포넌트와 정책 컴포넌트 사이에 신뢰를 수립하는 단계를 더 포함하는 방법.
  32. 제9항에 있어서,
    상기 다운스트림 컴포넌트가 조건들 중 임의의 것을 지원하는지 여부를 질의하는 단계를 더 포함하는 방법.
  33. 제13항에 있어서,
    상기 다운스트림 컴포넌트에게 데이터를 액세스할 권한을 부여하기 전에, 상기 다운스트림 컴포넌트에게, 지원되는 조건을 구현하도록 지시하는 단계를 더 포함하는 방법.
  34. 제14항에 있어서,
    상기 권한을 부여하기 전에 지시하는 단계 이전에, 상기 다운스트림 컴포넌트가 상기 지원되는 조건을 구현하였음을 검증하는 단계를 더 포함하는 방법.
  35. 제9항에 기재된 방법을 구현하기 위한 컴퓨터로 판독 가능한 명령들을 포함하는 하나 이상의 컴퓨터 판독 가능 매체.
  36. 제9항에 기재된 방법을 구현하도록 구성된 정책 엔진을 포함하는, 컴퓨터 판독 가능 기록 매체 상의 소프트웨어 아키텍처.
  37. 컴퓨터 판독 가능 매체 상에서 구현되는 시스템으로서,
    데이터 - 상기 데이터에 대하여 동작이 수행될 수 있음 - 와 관련된 제1 컴포넌트;
    상기 데이터에 대하여 상기 동작을 수행하도록 구성된 제2 컴포넌트; 및
    상기 동작을 확인하고, 상기 제2 컴포넌트가 데이터를 액세스하도록 허용하기 전에 구현되어야 할 적어도 하나의 정책을 상기 동작의 함수로서 결정하도록 구성된 제3 컴포넌트
    를 포함하는 시스템.
  38. 제18항에 있어서,
    상기 제3 컴포넌트는 제1 컴포넌트를 대신하여 제2 컴포넌트와 적어도 하나의 정책의 구현을 협상(negotiate)하도록 구성되는 시스템.
  39. 제19항에 있어서,
    상기 제3 컴포넌트는 상기 제2 컴포넌트가 상기 적어도 하나의 정책을 구현할 때까지 제2 컴포넌트가 상기 데이터를 액세스하는 것을 거부하도록 구성되는 시스템.
  40. 제18항에 있어서,
    상기 제3 컴포넌트는
    데이터의 처리가 발생할 수 있는 보호 환경 내로 제2 컴포넌트를 허용하기 전에 신뢰를 수립하고,
    상기 제1 컴포넌트로부터 획득된 제1 제외 목록과, 제1 컴포넌트 및 제2 컴포넌트와 직접 관련되지 않은 제4 글로벌 컴포넌트로부터 획득된 제2 제외 목록으로부터 수집된 제외 목록을 형성하며,
    적어도 상기 수집된 제외 목록을 이용하여 보호 환경 내로 허용되어야 할 컴포넌트의 목록을 로딩하도록 구성되는 시스템.
  41. 제21항에 있어서,
    상기 제3 컴포넌트는
    상기 제2 컴포넌트에 의하여 데이터에 대해 수행되어야 할 동작을 결정하고,
    제1 컴포넌트로부터 데이터의 사용과 관련된 조건들 - 상기 조건들은 순위화된 순서로 존재함 - 을 확인하고,
    상기 조건들 중 임의의 것이 상기 제2 컴포넌트에 의하여 지원되는지 여부를 결정하며,
    상기 순위화된 순서에 대응하는 지원 조건을 구현하도록 상기 제2 컴포넌트에게 지시하도록 구성되는 시스템.
  42. 데이터 소스로부터 획득된 데이터에 대하여 수행되어야 할 동작을 확인하고, 상기 동작과 관련되는 내용 정책들을 검색하기 위한 수단;
    상기 정책들을 순위화된 순서로 순위화하고, 개별적인 정책들이 데이터 싱크에 의해 지원되는지 여부를 질의하기 위한 수단; 및
    상기 데이터 싱크에 의해 지원되는 순위화된 정책들 중 하나를 구현하도록 상기 데이터 싱크에게 지시하기 위한 수단
    을 포함하는 시스템.
  43. 제23항에 있어서,
    상기 모든 수단은 컴퓨터 판독 가능 매체 상에 구현되는 컴퓨터로 실행가능한 명령들을 포함하는 시스템.
  44. 제23항에 있어서,
    상기 모든 수단은 컴퓨터 판독 가능 매체 상에 구현되는 정책 엔진에서 구현되는 시스템.
KR1020057012372A 2004-05-03 2004-07-22 데이터를 보호하기 위한 방법 및 시스템 및 정책 엔진 KR20070009944A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/838,532 2004-05-03
US10/838,532 US7584502B2 (en) 2004-05-03 2004-05-03 Policy engine and methods and systems for protecting data

Publications (1)

Publication Number Publication Date
KR20070009944A true KR20070009944A (ko) 2007-01-19

Family

ID=35137974

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057012372A KR20070009944A (ko) 2004-05-03 2004-07-22 데이터를 보호하기 위한 방법 및 시스템 및 정책 엔진

Country Status (11)

Country Link
US (1) US7584502B2 (ko)
EP (1) EP1743446B1 (ko)
JP (1) JP2007536620A (ko)
KR (1) KR20070009944A (ko)
CN (1) CN1784852B (ko)
AU (1) AU2004288600A1 (ko)
BR (1) BRPI0406615A (ko)
CA (1) CA2508775A1 (ko)
MX (1) MXPA05007150A (ko)
RU (1) RU2005120671A (ko)
WO (1) WO2005112333A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101355697B1 (ko) * 2011-12-01 2014-01-27 인텔 코포레이션 디지털 컨텐츠 보호 방식의 보안 프로비전

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7370212B2 (en) 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US7296296B2 (en) * 2003-10-23 2007-11-13 Microsoft Corporation Protected media path and refusal response enabler
US20060242406A1 (en) 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
US8074287B2 (en) * 2004-04-30 2011-12-06 Microsoft Corporation Renewable and individualizable elements of a protected environment
US7617501B2 (en) 2004-07-09 2009-11-10 Quest Software, Inc. Apparatus, system, and method for managing policies on a computer having a foreign operating system
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
US20060205449A1 (en) * 2005-03-08 2006-09-14 Broadcom Corporation Mechanism for improved interoperability when content protection is used with an audio stream
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
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
US20060265758A1 (en) 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US20110145689A1 (en) * 2005-09-09 2011-06-16 Microsoft Corporation Named object view over multiple files
US20070204078A1 (en) * 2006-02-09 2007-08-30 Intertrust Technologies Corporation Digital rights management engine systems and methods
US7756893B2 (en) * 2005-11-09 2010-07-13 Microsoft Corporation Independent computation environment and data protection
US8112798B2 (en) * 2005-11-09 2012-02-07 Microsoft Corporation Hardware-aided software code measurement
US7904949B2 (en) 2005-12-19 2011-03-08 Quest Software, Inc. Apparatus, systems and methods to provide authentication services to a legacy application
US20070192823A1 (en) * 2006-02-09 2007-08-16 Novell, Inc. Policy administration and provisioning
US8087075B2 (en) 2006-02-13 2011-12-27 Quest Software, Inc. Disconnected credential validation using pre-fetched service tickets
US7987512B2 (en) * 2006-05-19 2011-07-26 Microsoft Corporation BIOS based secure execution environment
US8429712B2 (en) 2006-06-08 2013-04-23 Quest Software, Inc. Centralized user authentication system apparatus and method
US8086710B2 (en) 2006-10-30 2011-12-27 Quest Software, Inc. Identity migration apparatus and method
US8302200B2 (en) * 2007-04-27 2012-10-30 Tl Digital Systems L.L.C. Protected intra-system interconnect for digital rights management in electrical computers and digital data processing systems
US20090157452A1 (en) * 2007-12-17 2009-06-18 American Express Travel Related Services Company, Inc. Policy and contract compliance system and method
US10049190B1 (en) * 2007-12-21 2018-08-14 Symantec Corporation Method and apparatus for remotely managing a resource at a computer
US8291501B2 (en) * 2008-02-08 2012-10-16 Cheng Holdings, Llc Validation of protected intra-system interconnects for digital rights management in electrical computers and digital data processing systems
US20090222879A1 (en) * 2008-03-03 2009-09-03 Microsoft Corporation Super policy in information protection systems
US9974065B2 (en) * 2008-06-25 2018-05-15 Qualcomm Incorporated Dynamic control blanking in heterogeneous networks
US9588803B2 (en) 2009-05-11 2017-03-07 Microsoft Technology Licensing, Llc Executing native-code applications in a browser
US8255984B1 (en) 2009-07-01 2012-08-28 Quest Software, Inc. Single sign-on system for shared resource environments
US9323921B2 (en) 2010-07-13 2016-04-26 Microsoft Technology Licensing, Llc Ultra-low cost sandboxing for application appliances
US9747270B2 (en) 2011-01-07 2017-08-29 Microsoft Technology Licensing, Llc Natural input for spreadsheet actions
US9495183B2 (en) 2011-05-16 2016-11-15 Microsoft Technology Licensing, Llc Instruction set emulation for guest operating systems
US9053083B2 (en) 2011-11-04 2015-06-09 Microsoft Technology Licensing, Llc Interaction between web gadgets and spreadsheets
US9389933B2 (en) * 2011-12-12 2016-07-12 Microsoft Technology Licensing, Llc Facilitating system service request interactions for hardware-protected applications
US9413538B2 (en) 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
US9609020B2 (en) * 2012-01-06 2017-03-28 Optio Labs, Inc. Systems and methods to enforce security policies on the loading, linking, and execution of native code by mobile applications running inside of virtual machines
CA2860917A1 (en) 2012-01-06 2013-07-11 Optio Labs, LLC Systems and methods for enforcing security in mobile computing
US9787681B2 (en) 2012-01-06 2017-10-10 Optio Labs, Inc. Systems and methods for enforcing access control policies on privileged accesses for mobile devices
US9363670B2 (en) 2012-08-27 2016-06-07 Optio Labs, Inc. Systems and methods for restricting access to network resources via in-location access point protocol
US9773107B2 (en) 2013-01-07 2017-09-26 Optio Labs, Inc. Systems and methods for enforcing security in mobile computing
US9578445B2 (en) 2013-03-13 2017-02-21 Optio Labs, Inc. Systems and methods to synchronize data to a mobile device based on a device usage context
US10664652B2 (en) 2013-06-15 2020-05-26 Microsoft Technology Licensing, Llc Seamless grid and canvas integration in a spreadsheet application
US10142108B2 (en) * 2013-06-17 2018-11-27 Qube Cinema, Inc. Copy protection scheme for digital audio and video content authenticated HDCP receivers
US9473796B1 (en) * 2013-12-31 2016-10-18 Google, Inc. Automated application of manually reviewed videos using matching
WO2015138931A1 (en) * 2014-03-13 2015-09-17 Optio Labs, Inc. Systems and methods for enforcing security in mobile computing

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134659A (en) 1998-01-07 2000-10-17 Sprong; Katherine A. Controlled usage software
US6226618B1 (en) 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
JP2001160066A (ja) * 1998-12-25 2001-06-12 Matsushita Electric Ind Co Ltd データ処理装置、データ処理方法および記録媒体、並びに該データ処理方法をコンピュータに実行させるためのプログラム
US6449598B1 (en) * 1999-09-02 2002-09-10 Xware Compliance, Inc. Health care policy on-line maintenance dissemination and compliance testing system
DE60039849D1 (de) 2000-02-21 2008-09-25 Iris Corp Berhad System um den Zugriff auf geschützte Daten zu ermöglichen
JP2003058660A (ja) * 2001-06-07 2003-02-28 Matsushita Electric Ind Co Ltd コンテンツ利用管理システム及びこれに用いられるサーバ
US6976010B2 (en) * 2001-06-28 2005-12-13 International Business Machines Corporation Method for syndicating online content
JP2003178163A (ja) * 2001-08-06 2003-06-27 Matsushita Electric Ind Co Ltd ライセンス管理サーバ、端末装置、ライセンス管理システム及び利用制限制御方法
JP2003085384A (ja) * 2001-09-07 2003-03-20 Fujitsu Ltd コンテンツ紹介プログラム、コンテンツ配信プログラム、コンテンツ利用プログラムおよびコンテンツ紹介システム
JP4477822B2 (ja) * 2001-11-30 2010-06-09 パナソニック株式会社 情報変換装置
US20040010717A1 (en) * 2002-01-29 2004-01-15 Intertainer Asia Pte Ltd. Apparatus and method for preventing digital media piracy
US7299504B1 (en) * 2002-03-08 2007-11-20 Lucent Technologies Inc. System and method for implementing security management using a database-modeled security policy
US20040054629A1 (en) * 2002-09-13 2004-03-18 Sun Microsystems, Inc., A Delaware Corporation Provisioning for digital content access control
US7149829B2 (en) * 2003-04-18 2006-12-12 Sonics, Inc. Various methods and apparatuses for arbitration among blocks of functionality
US20050066353A1 (en) * 2003-09-18 2005-03-24 Robert Fransdonk Method and system to monitor delivery of content to a content destination
US20070150967A1 (en) * 2003-11-21 2007-06-28 Matsushita Electric Industrial Co., Ltd. License acquiring system, server apparatus and terminal apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101355697B1 (ko) * 2011-12-01 2014-01-27 인텔 코포레이션 디지털 컨텐츠 보호 방식의 보안 프로비전

Also Published As

Publication number Publication date
AU2004288600A1 (en) 2005-11-17
BRPI0406615A (pt) 2006-02-21
RU2005120671A (ru) 2006-04-10
MXPA05007150A (es) 2005-12-15
US20050240985A1 (en) 2005-10-27
CN1784852A (zh) 2006-06-07
EP1743446A1 (en) 2007-01-17
CN1784852B (zh) 2010-10-13
WO2005112333A1 (en) 2005-11-24
JP2007536620A (ja) 2007-12-13
EP1743446B1 (en) 2017-04-05
EP1743446A4 (en) 2012-08-01
CA2508775A1 (en) 2005-11-03
US7584502B2 (en) 2009-09-01

Similar Documents

Publication Publication Date Title
KR20070009944A (ko) 데이터를 보호하기 위한 방법 및 시스템 및 정책 엔진
US7860802B2 (en) Flexible licensing architecture in content rights management systems
US8738536B2 (en) Licensing content for use on portable device
RU2331917C2 (ru) Выдача лицензий на использование средства публикации в автономном режиме в системе управления правами на цифровое содержимое drm
KR101298293B1 (ko) 제1 플랫폼으로부터 제2 플랫폼으로의 디지털 라이센스이주
JP4467255B2 (ja) デジタル著作権管理(drm)方式に関連したコンテンツのパブリッシング
KR101219819B1 (ko) 디지털 어플리케이션을 라이센싱하기 위한 유연한 라이센싱 아키텍처
EP1376305B1 (en) Secure hardware identifier (HWID) for use in a digital rights management (DRM) system
US7747533B2 (en) Digital application operating according to aggregation of plurality of licenses
JP2007109225A (ja) Drmライセンス提供方法及びシステム
JP2004259281A (ja) ディジタル権利管理(drm)サーバのdrmアーキテクチャへのエンロール/サブエンロール
US8776258B2 (en) Providing access rights to portions of a software application
US20170103192A1 (en) Secure code delivery
KR20070055934A (ko) 컨텐츠 보호 시스템 등에서의 신뢰된 라이센스 제거 방법
US7383537B2 (en) Debugging an application that employs rights-managed content
US8706635B2 (en) Use of licensed content without identification thereof
Tosson DRUS: A New Proposed Interoperable DRM Hardware Software Solution System

Legal Events

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