KR20130131456A - 디지털 콘텐츠 내 객체의 구매 또는 정보 요청을 가능하게 하는 방법 및 장치 - Google Patents

디지털 콘텐츠 내 객체의 구매 또는 정보 요청을 가능하게 하는 방법 및 장치 Download PDF

Info

Publication number
KR20130131456A
KR20130131456A KR1020137025859A KR20137025859A KR20130131456A KR 20130131456 A KR20130131456 A KR 20130131456A KR 1020137025859 A KR1020137025859 A KR 1020137025859A KR 20137025859 A KR20137025859 A KR 20137025859A KR 20130131456 A KR20130131456 A KR 20130131456A
Authority
KR
South Korea
Prior art keywords
computing system
client computing
content
digital content
user
Prior art date
Application number
KR1020137025859A
Other languages
English (en)
Other versions
KR101574100B1 (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 KR20130131456A publication Critical patent/KR20130131456A/ko
Application granted granted Critical
Publication of KR101574100B1 publication Critical patent/KR101574100B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4722End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting additional data associated with the content
    • H04N21/4725End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting additional data associated with the content using interactive regions of the image, e.g. hot spots
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2358/00Arrangements for display data security

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Finance (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Accounting & Taxation (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

클라이언트 컴퓨팅 시스템은 사용자에게 (예를 들어, 영화 또는 TV 프로그램과 같은) 디지털 콘텐츠를 렌더링한다. 사용자의 관심사에 근거하여, 사용자는 렌더링되는 디지털 콘텐츠의 비디오 프레임들의 시퀀스 중 적어도 하나의 비디오 프레임에서 객체 이미지를 선택할 수 있다. 객체 이미지 선택을 나타내는 사용자 입력 데이터는 네트워크를 통해 보안 통신 채널을 경유하여 클라이언트 컴퓨팅 시스템에 결합된 서비스 프로바이더 서버로 전송될 수 있다. 서버는 사용자-선택된 객체 이미지에 대응하는 객체에 관한 정보를 획득한다. 서버는 객체 정보를 클라이언트 컴퓨팅 시스템에 전송하여 사용자에게 디스플레이한다. 객체는 소비재와 같은 물리적 세계에 있는 객체일 수 있다. 객체 정보는 사용자가 객체를 구매할 수 있게 해주는 정보를 포함한다.

Description

디지털 콘텐츠 내 객체의 구매 또는 정보 요청을 가능하게 하는 방법 및 장치{METHOD AND APPARATUS FOR ENABLING PURCHASE OF OR INFORMATION REQUESTS FOR OBJECTS IN DIGITAL CONTENT}
본 개시내용은 일반적으로 디지털 콘텐츠를 안전하게 처리하기 위한 컴퓨팅 시스템 아키텍처의 분야에 관한 것이다. 특히, 본 발명의 실시예는 컴퓨팅 시스템에 의해 처리되는 디지털 콘텐츠 내 객체의 구매를 가능하게 하거나 객체의 정보 요청을 가능하게 하는 것에 관한 것이다.
퍼스널 컴퓨터(PC)와 같은 개방형 컴퓨팅 플랫폼에서, 예를 들어, (이를 테면, DVD, 블루레이 등으로부터) 프리미엄 콘텐츠를 재생하고 있을 때, 디지털 저작권 관리(digital rights management (DRM)) 처리 및 키 관리는 전형적으로 미디어 플레이어 응용 프로그램에 의해 소프트웨어로 수행된다. 이러한 방식은 제대로 보호되지 못하며 해킹의 사례가 있어 왔기에, 콘텐츠가 불법 복제되고 콘텐츠 소유자의 수익 손실을 가져온다. 콘텐츠가 재생될 때, 비록 (H.264, MPEG-2 등과 같은) 미디어 압축해제가 하드웨어적으로 수행될지라도, 콘텐츠는 시스템 메모리 내에서 암호화되지 않은 상태에 있으며 소프트웨어-기반 및/또는 하드웨어-기반 공격으로 도난 당할 수 있다. 이렇게 알려진 보안상 취약점으로 인해, 낮은 충실도(low fidelity) (이를 테면, 표준 선명도(standard definition (SD))의 콘텐츠 또는 가치가 덜한 고선명도(high definition (HD))의 콘텐츠만이 개방형 컴퓨팅 플랫폼으로 배포되는 것이 전형적이다. (예를 들면, PC와 같은) 개방형 컴퓨팅 플랫폼에 의한 디지털 콘텐츠의 보안 처리를 개선하는 것이 바람직하다.
도 1은 본 발명의 실시예에 따른 보안 콘텐츠 처리 파이프라인의 다이어그램이다.
도 2는 본 발명의 실시예에 따른 서비스 프로바이더 서버(SI) 및 보안 서비스 인프라스트럭처의 다이어그램이다.
도 3은 본 발명의 실시예에 따른 클라이언트 컴퓨팅 시스템의 다이어그램이다.
도 4는 본 발명의 실시예에 따른 보안 콘텐츠 처리의 흐름도이다.
도 5는 본 발명의 실시예에 따른 보안 콘텐츠 처리 시스템의 다이어그램이다.
도 6은 본 발명의 실시예에 따른 객체 정보 처리의 흐름도이다.
도 7은 본 발명의 실시예에 따른 서비스 프로바이더 서버 상의 객체 정보 처리 컴포넌트의 다이어그램이다.
상세한 설명은 첨부 도면을 참조하여 제공된다. 여러 도면에서 동일한 참조 부호는 유사 또는 동일한 항목을 지칭하는 것으로 사용된다.
본 발명의 실시예는 프리미엄 디지털 콘텐츠의 배포 및 재생을 지원하기 위한 하드웨어-기반의 신뢰의 근원(hardware-based root of trust (HW ROT)) 솔루션을 제공하는 시스템 아키텍처를 포함한다. 일 실시예에서, 디지털 콘텐츠 및 서비스의 HW ROT은 보안 목적을 위한 신뢰의 근거가 소프트웨어라기보다 오히려 클라이언트 컴퓨팅 시스템 내 하드웨어 및 펌웨어 메커니즘에서 근원을 둔 솔루션이다. 이러한 신뢰의 근원으로부터, 클라이언트 컴퓨팅 시스템은 콘텐츠 인증 및 재생 동안 보호되는 전체 미디어 처리 파이프라인을 구축한다. 본 발명의 실시예에서, 콘텐츠 처리를 위한 클라이언트 컴퓨팅 시스템의 보안은 오퍼레이팅 시스템(OS), 기본 입/출력 시스템(BIOS), 미디어 플레이어 애플리케이션, 또는 다른 호스트 소프트웨어에 의존하지 않는다. 시스템과 절충하기 위하여, 우리는 OS의 맨 위에서 구동하는 소프트웨어를 공격하는 것과는 반대로, 하드웨어 및/또는 펌웨어 메커니즘과 절충할 필요가 있을 것이다.
본 발명의 실시예는 클라이언트 컴퓨팅 시스템에 의해 처리되고 있는 디지털 콘텐츠에서 디스플레이된 이미지에서 보여지는 객체의 구매 또는 객체의 정보 요청을 위한 서비스를 제공한다.
하기 설명에서, 여러 실시예의 확실한 이해를 제공하기 위해 특정한 세부사항이 많이 설명된다. 그러나, 본 발명의 여러 실시예는 특정한 세부사항 없이 실시될 수 있다. 다른 예에서, 공지의 방법, 절차, 컴포넌트, 및 회로는 본 발명의 특별한 실시예를 방해하지 않도록 하기 위해 자세히 설명되지 않는다. 또한, 본 발명의 여러 양태는 여러 수단, 이를 테면, 집적 반도체 회로("하드웨어"), 컴퓨터 판독가능 저장 매체에 저장된 하나 이상의 프로그램으로 구성된 컴퓨터-판독가능 명령어("소프트웨어"), 또는 하드웨어와 소프트웨어의 어떤 조합을 이용하여 수행될 수 있다. 이와 같은 개시내용의 목적 상, "로직(logic)"이라 언급한 것은 하드웨어, (예를 들어, 프로세서의 동작을 제어하는 마이크로-코드를 포함하는) 소프트웨어, 펌웨어 또는 이들의 어떤 조합을 의미한다.
본 발명의 실시예는 콘텐츠 보호 처리, 키 관리 처리, 및 이들 기능을 수행하는 클라이언트 컴퓨팅 시스템(101)의 CPU, 칩셋 및 통합 그래픽스/미디어 엔진 내 펌웨어 및 하드웨어를 이용한 콘텐츠 재생물을 보호한다. 본 발명의 실시예는 콘텐츠가 컴퓨팅 시스템 내 컴포넌트에 의해 처리될 때 콘텐츠를 처음부터 끝까지 보호(end-to-end protection)한다. 도 1은 본 발명의 실시예에 따른 보안 콘텐츠 처리 파이프라인(100)의 다이어그램이다. 콘텐츠(102)는 서비스 프로바이더(service provider (SP)) 서버(104)에 의해 액세스할 수 있다. 콘텐츠(102)는 오디오, 비디오, 또는 오디오/비디오 데이터, 이미지, 텍스트, 책, 잡지, 게임, 또는 응용 프로그램과 같은 어떤 디지털 정보일 수 있다. 서비스 프로바이더 서버(104)는 콘텐츠를 (인터넷, 셀룰러 네트워크, 유선 또는 무선 네트워크 등과 같은) 어느 통신 채널을 통해 클라이언트 컴퓨팅 시스템에 제공하기 위한 하나 이상의 서버를 포함할 수 있다. 콘텐츠는 SP 서버에 저장되고 있는 중에 및 클라이언트 컴퓨팅 시스템(101)에 전송 동안 어느 공지의 콘텐츠 보호 기술(106) (예를 들면, 디지털 저작권 관리(DRM) 기술, 암호 기술 등)에 의해 보호받을 수 있다. 일 실시예에서, 콘텐츠는 본 명세서에서 설명되는 바와 같이 강화된 프라이버시 ID 시그니처 입증 프로토콜(Enhanced Provacy ID (EPID signature verification protocol)에 의해 보호받을 수 있다. 일 실시예에서, 비디오 데이터는 CRT 모드를 이용한 고급 암호화 표준 암호 처리(Advanced Encryption Standard (AES) crytographic provessing))를 이용하여 암호화될 수 있다. 클라이언트 컴퓨팅 시스템(101)은 PC, 랩탑, 노트북, 태블릿 컴퓨터, 휴대 컴퓨터, 스마트 폰, 개인 휴대 정보 단말(PDA), 셋탑 박스, 사용자 전자 장비, 또는 콘텐츠를 수신, 저장 및 렌더링할 수 있는 어느 다른 컴퓨팅 기기일 수 있다.
클라이언트 컴퓨팅 시스템 내에서, 콘텐츠 보호 처리(110)는 보안 프로세서(108)에 의해 수행될 수 있다. 일 실시예에서, 보안 프로세서는 클라이언트 컴퓨팅 시스템의 칩셋 내에 있을 수 있다. 실시예에서, 칩셋은 플랫폼 컨트롤 허브(platform control hub (PCH))를 포함한다. 다른 실시예에서, 보안 프로세서는 클라이언트 컴퓨팅 시스템의 CPU 내에 있을 수 있다. 시스템-온-칩(system-on-chip (SOC)) 구성을 갖는 다른 실시예에서, 보안 프로세서는 단일 칩상에서 다른 시스템 컴포넌트와 일체로 구성될 수 있다. 일 실시예에서, 보안 프로세서는 관리 엔진(Manageability Engine (ME))을 포함한다. 다른 실시예에서, 다른 형태의 보안 프로세서가 사용될 수 있다. 보안 프로세서는 클라이언트 컴퓨팅 시스템의 다른 컴포넌트와 상호작용하는 하드웨어 및 펌웨어로 구현된 서브시스템이다. 보안 프로세서는 보호 플래시 메모리 구역으로부터 펌웨어 코드를 로딩하고 그 펌웨어 코드를 보호 메모리에서 실행함으로써 동작한다. 콘텐츠 보호 처리는 보안 프로세서 내 하드웨어 및 펌웨어에서 수행되기 때문에, 콘텐츠의 보호는 소프트웨어-기반 시스템보다 개선될 수 있다.
암호 키 정보는 보호 칩대칩 상호접속부(protected chip to chip interconnect)(112)를 통해 중앙 처리 유닛(CPU) 및 통합된 그래픽스/미디어 엔진(integrated graphics (GFX)/media engine)을 가진 컴포넌트에 전달될 수 있다. 실시예에서, 보호 칩대칩 상호접속부(112)는 CPU/GFX 컴포넌트와의 보안 다이렉트 미디어 인터페이스(secure Direct Media Interface (DMI)) 통신 링크를 포함한다. DMI는 동시적인 데이터 트래픽의 두 단일 방향 통로를 갖는 칩대칩 상호접속부 및 서비스 품질을 개선한 아이소크로노스 트랜스퍼(Isochronous Transfer)를 포함한다. DMI 링크를 통해 전달된 데이터는 공지의 암호화 처리 기술을 통해 보호될 수 있다. 실시예에서, 칩대칩 보안 링크는 암호화된 타이틀 키를 DMI를 통해 전달하기 위해 사용될 수 있다. 보안은 PCH 및 CPU 사이에서 공유된 비밀을 기반으로 한다. 이렇게 공유된 비밀은 각 파워 사이클에 설정될 수 있으며 공유된 비밀의 보호 및 무결성을 보장하기 위해 필요에 따라 제품, 세대 및 랜덤한 그룹 분류 별로 변할 수 있다. DMI 메커니즘은 OS, BIOS, 및 CPU에서 구동하는 소프트웨어와 무관하다. DMI 메커니즘은 (PCH 내) 보안 프로세서와 CPU 사이의 신뢰 관계를 창출하는데 사용될 수 있다.
GFX 엔진(114)은 콘텐츠를 암호해독하는 콘텐츠 보호 처리를 포함한다. GFX 엔진은 또한 해독된 오디오/비디오 콘텐츠를 처리/디코드하고 오디오/비디오 콘텐츠를 미디어 블록으로서 GFX 엔진(114) 내 그래픽스 처리 유닛(GPU)에 전달하는 디코더 로직(121)을 포함한다. GPU는 인코더 로직(123)을 이용하는 것을 포함하여, 메모리에서 처리 중인 미디어 블록을 보호하는 기술을 포함하는 보안 기술을 포함한다. GFX 엔진(114)은 또한 이미지 데이터를 디스플레이(18)에서 보이게 합성(compose)하는 합성 로직(composition logic)(125)을 포함한다. 콘텐츠가 PCH 내 보안 프로세서 및 CPU/GFX 컴포넌트 내 GFX 엔진 내부 및 이들 사이에서 취급되고 있을 때, 콘텐츠는 하드웨어 보호 데이터 경로(116)에 의해 보호될 수 있다. 실시예에서, 하드웨어 보호 데이터 경로는 콘텐츠의 보안을 유지하는 보호 오디오 비디오 경로(Protected Audio Video Path (PAVP))를 포함한다. PAVP는 또한 시스템 컴포넌트들사이에서 암호화된 접속 상태를 지원한다. PAVP를 이용함으로써, 시스템은 시스템 컴포넌트들 사이에서 전달 중에 그리고 메모리 내에서 콘텐츠를 더 이상으로로 보호할 수 있다.
GFX 엔진, PCH 및 디스플레이(118) 간의 인터페이스는 보호 유선/무선 디스플레이 링크(120)에 의해 구현될 수 있다. 일 실시예에서, 메모리를 매개로 하여 GFX 엔진으로부터 PCH를 통해 디스플레이로 전송된 디스플레이 데이터는 고대역 디지털 콘텐츠 보호(High-Bandwidth Digital Content Protection (HDCP)) 콘텐츠 보호 방식을 통해 보호될 수 있다. HDCP 명세는 디지털 엔터테인먼트 콘텐츠를 전송하고 수신하기 위한 강인하고, 비용효과적이며 투명한 방법을 공인 디지털 디스플레이에 제공한다. 실시예에서, Digital Content Protection, LLC로부터 구입가능한 HDCP 사양, 리비전 2.0 또는 후속 리비전에 따른 유선 링크가 구현될 수도 있다. HDCP는 디스플레이 데이터가 디스플레이포트(DisplayPort), 디지털 비쥬얼 인터페이스(Digital Visual Interface (DVI)), 고선명 멀티미디어 인터페이스(High-Definition Multimedia Interface (HDMI)), 기가비트 비디오 인터페이스(Gigabit Video Interface (GVIF)), 또는 통합 디스플레이 인터페이스(Unified Display Interface (UDI)) 접속부를 통해 이동할 때 디스플레이 데이터의 복사를 억제하는데 이용될 수 있다. HDCP 리비전 2.0 사양은 최종 사용자가 TCP/IP, USB, Wi-Fi 및 WirelessHD와 같은 표준 프로토콜 및 인터페이스를 통하여 디스플레이, 기기 및 홈 씨에터를 편리하게 접속해주는 최신 사용 모델을 다루고 있다. HDCP 리비전 2.0 사양은 표준에 기반한 RSA 공개 키 및 강인한 콘텐츠 보호를 위한 고급 암호화 표준(AES) 128-비트 암호를 사용한다. HDCP 시스템에서, 둘 이상의 HDCP 기기는 HDCP-보호 인터페이스를 통해 상호접속된다. HDCP에 의해 보호된 시청각 콘텐츠는 최고 업스트림 HDCP 송신기(most upstream HDCP Transmitter)에서 업스트림 콘텐츠 제어 기능(Upstream Content Control Function)으로부터 HDCP 시스템으로 흐른다. 이곳에서, HDCP 시스템에 의해 암호화된 HDCP 콘텐츠는 HDCP-보호 인터페이스를 거쳐 트리 형상 토폴로지의 HDCP 수신기를 통해 흐른다.
HDCP 콘텐츠 보호 메커니즘은 다음과 같은 세가지 요소를 포함한다. 1) HDCP 수신기의 (HDCP 송신기와의) 중간 업스트림 접속의 인증. 이러한 인증 프로토콜은 HDCP 송신기가 소정 HDCP 수신기가 HDCP을 수신하는 허가권이 있는지를 입증하는 메커니즘이다. 2) DCP에 의해 무효하다고 판단된 HDCP 수신기의 철회. 3) HDCP 송신기와 이 송신기의 하류측 HDCP 수신기 사이의 HDCP 보호 인터페이스를 통한 시청각 콘텐츠의 HDCP 암호화. HDCP 수신기는 HDCP 콘텐츠를 인간 소비에 적합한 오디오 및 비쥬얼 형태로 만들어줄 수 있다. HDCP 수신기는 HDCP 콘텐츠를 하나 이상의 추가 HDCP 수신기에게 더 하류측으로 방출시키는 다운스트림 HDCP 송신기로서 작용하는 HDCP 중계기일 수 있다. 일 실시예에서, 디스플레이(118)에 전송된 디스플레이 데이터는 802.11 n 무선 로컬 에리어 네트워크 (WLAN) 기술을 이용한 보호 무선 디스플레이(protected wireless display (WiDi)) 링크(127)를 통해 송신될 수 있다.
도 1로부터 알 수 있는 바와 같이, 본 발명의 실시예에서, 콘텐츠가 서비스 프로바이더 서버(104)로부터 수신되는 시점부터 콘텐츠가 디스플레이(118)에 디스플레이될 때까지, 컴퓨팅 시스템에서 구동하는 어느 소프트웨어 또는 비인증 하드웨어라도 어떠한 암호 키 또는 콘텐츠도 암호화되지 않은 형태로 이용 가능하지 않다. 또한, 비디오 데이터를 위한 메모리 보호는 해독, 디코드/인코드, 합성 및 디스플레이 파이프라인의 전반에 걸쳐있는 전체 체인에 제공된다. 이러한 역량은 전체 시스템 성능을 절충하지 않고 전체 메모리 대역폭에서 제공된다.
도 2는 본 발명의 실시예에 따른 서비스 프로바이더 서버(104) 및 보안 서비스 컴포넌트(202)의 다이어그램이다. 실시예에서, 보안 서비스 컴포넌트(202)는 하나 이상의 서버 및/또는 컴포넌트를 포함할 수 있다. 실시예에서, 보안 서비스 컴포넌트는 클라이언트 컴퓨팅 시스템의 하나 이상의 컴포넌트의 제조자에 의해 운용될 수 있다. 보안 서비스 컴포넌트는 현장에서 클라이언트 컴퓨팅 시스템을 제어하기 위한 기능을 제공한다. 보안 서비스 컴포넌트는 제조 컴포넌트 및 배치 컴포넌트를 포함한다. 제조 컴포넌트는 인증서 발행 컴포넌트(218), 키 생성 (Key Gen) 컴포넌트(220) 및 퓨즈 프로그래밍(fuse programming) (Fuse Prog) 컴포넌트(222)를 포함한다. 인증서 발행 컴포넌트(218)는 공개키 인증서를 생성하고 각각의 클라이언트 컴퓨팅 플랫폼에 발행한다. 키 생성 컴포넌트(220)는 필요에 따라 클라이언트 컴퓨팅 플랫폼에 내장하기 위한 개인 키 및 공개 키 쌍을 발생하는 역할을 수행한다. 퓨즈 프로그래밍 컴포넌트(222)는 강인하고 안전한 방식으로 제조 작업장에서 퓨즈들을 적절한 값으로 프로그래밍하는 역할을 담당한다. 이들 값은 클라이언트 컴퓨팅 플랫폼에 의해 사용되어 보안 프로세서 내부에서 신뢰 앵커 및 키 래더(key ladder)를 구축하게 될 것이다.
배치 컴포넌트는 인증서 발행 컴포넌트(204), 키 생성 (Key Gen) 컴포넌트(206) 및 철회 매니저(208)를 포함한다. 인증서 (Cert) 발행 컴포넌트(204)는 서비스 배치를 위해 클라이언트 시스템과 상호작용하도록 인증해주는 디지털 인증서를 SP 서버 및 클라이언트 컴포넌트에게 발행한다. 키 생성 (Key Gen) 컴포넌트(206)는 암호화 서명 키 쌍, 루트 키(root key) 쌍, 디지털 인증서 및 그룹 공개 키를 발생하고, 각 그룹별 그룹 공개 키에 서명한다. 철회 매니저(208)는 철회 리스트(revocation list (RL))에 추가될 클라이언트 컴퓨팅 시스템의 식별자 및 시그니처를 정하고 그 RL을 갱신하며 갱신된 RL을 배포한다.
SP 서버(104)는 (인터넷과 같은) 네트워크(201)를 통해 클라이언트 컴퓨팅 시스템과 통신한다. 서비스 프로바이더 서버는 SP 서버 애플리케이션(212) 및 SP 서버 에이전트(210)를 포함한다. SP 서버 애플리케이션은 콘텐츠 브라우징 기능을 제공한다. SP 서버 에이전트(210)는 클라이언트 별 메시지의 전송을 제어하고, 암호 키 및 인증된 사용자 토큰을 관리하며, 콘텐츠 배달 서비스 상태를 유지한다(배치 목적 상, (212) 및 (210)은 방화벽을 갖추고 별도로 분리된 물리적으로 상이한 서버일 수도 있음). 콘텐츠 암호화기(214)는 콘텐츠(102)를 받고 클라이언트 컴퓨팅 시스템으로의 보안 배달을 위해 콘텐츠를 암호화한다. 콘텐츠 서버(216)는 암호화된 콘텐츠를 클라이언트에게 송신한다. 키 서버(226)는 인증된 세션 내에서 타이틀 키를 클라이언트 컴퓨팅 시스템에 공급하는(provisioning) 역할을 담당한다. 서버 인증서(224)는 클라이언트 컴퓨팅 시스템과의 상호 인증 및 인증된 세션의 설립에 참여하기 위해 SP 서버 에이전트에 의해 사용된다. SP 서버 에이전트(210), 키 서버(226) 및 콘텐츠 서버(216) 사이의 통신 링크는 적절하게 허용된 정보 보안 관행에 따라 보호된다. 키 서버는 인증된 당사자들만이 도달할 수 있게 보장하고 키 서버에 의해 관리된 키가 외부의 네트워크 실체로부터의 공격자들로부터 격리되고 침입 차단되도록 보장하는 최고의 네트워크 및 액세스 보호를 제공한다. SP 서버 에이전트 또는 키 서버는 서버 인증서(224)와 연관된 개인 키에 액세스할 수 있다. 실시예에서, 이러한 개인 키 및 이 개인 키에 따라 이루어진 모든 동작은 서버 상의 하드웨어 보안 모듈(hardware security module (HSM)) (도 2에는 도시되지 않음)을 이용하여 보호된다.
실시예에서, SP 서버에서 클라이언트 컴퓨팅 시스템을 인증하는데 사용된 암호화 방식은 제로 지식 증명(zero-knowledge proofs)을 기반으로 한 사용자의 프라이버시를 보호하는 암호 인증 프로토콜을 포함한다. 실시예에서, 암호 인증 프로토콜은 인핸스드 프라이버시 ID(Enhanced Privacy ID (EPID)) 방식, 향상된 철회 기능을 가진 직접 익명 증명(Direct Anonymous Attestation (DAA)) 방식을 포함한다. EPID는 통상의 RSA(Rivest, Shamir, Adleman) - 각각의 트랜잭션마다 각자의 개인이 고유하게 식별되는 공개 키 기반구조(public key infrastructure (PKI)) 보안 구현 - 의 프라이버시 이슈를 이송(migrate)한다. 그 대신, EPDI는 원격 증명의 기능을 제공하지만, 클라이언트 컴퓨팅 시스템을 특정 기술 세대에서 유래한 (칩셋과 같은) 컴포넌트를 갖는 것으로서 식별할 뿐이다. EPID는 한 그룹의 공개 키는 다수의 개인 키에 대응하며, 개인 키는 그룹 공개 키에 의해 입증된 그룹 시그니처를 생성하는 그룹 시그니처 방식이다. EPID는 익명으로 만들어지고 링크불가능하게 만드는 보안 특성을 제공한다 - 두 시그니처를 고려해보면, 하나의 시그니처로는 그 시그니처들이 하나 이상의 개인 키로부터 생성되는지 판단할 수 없다. EPID는 또한 위조불가능하게 만들어지는 보안 특성을 제공한다 - 개인키가 없다면, 우리는 유효한 시그니처를 생성할 수 없다.
일반적으로, EPID를 이용하여 보안 통신 채널을 설정하는 것은 다음과 같이 달성될 수 있다. (클라이언트 컴퓨팅 시스템과 같은) 제1 당사자가 EPID 인증서를 (서비스 프로바이더 서버와 같은) 제2 당사자에게 송신한다. 제1 당사자의 신원을 결코 알지 못하고 제1 당사자가 신뢰한 보안 프로세서를 가진 컴퓨팅 플랫폼이라는 것을 알 뿐인 제2 당사자는 제1 당사자를 인증한다. 그러면 제1 당사자는 제2 당사자의 공개 키 인증서를 이용하여 제2 당사자를 인증한다. 제2 당사는가 프라이버시를 요구하지 않기 때문에, 제2 당사자의 공개 키 인증서는 EPID 인증서일 수 없다(그러나 그럴 수도 있다). 그러면 당사자들은 디피-헬먼(Diffie-Hellman (DH)) 키 교환 협정을 시작할 수 있다.
DAA 및 EPID의 여러 적합한 실시예가 다음과 같이 함께 특허 출원한 출원에 기술되어 있으며, 본 명세서에서 참조문헌으로 인용된다. 즉, Ernest F. Brickell 및 Jingtao Li에 의해 2007년 7월 7일 출원된 An Apparatus and Method of Direct Anonymous Attestation from Bilinear Maps라는 명칭의 제 11/778,804 호; Ernest F. Brickell 및 Jingtao Li에 의해 2008년 9월 11일 출원된 An Apparatus and Method for a Direct Anonymous Attestation Scheme from Short-Group Signatures 라는 명칭의 제 12/208,989 호, 및 Ernest F. Brickell 및 Jingtao Li에 의해 2008년 9월 29일 출원된 Direct Anonymous Attestation Scheme with Outsourcing Capability 라는 명칭의 제 12/286,303 호. 다른 실시예에서, 다른 인증 및 입증 방식이 또한 사용될 수 있다.
클라이언트 컴퓨팅 시스템은 적어도 세 개의 주요 컴포넌트 - 호스트 소프트웨어, 칩셋 하드웨어/펌웨어, 및 CPU/GFX/미디어 엔진을 포함한다. 본 발명의 실시예에서, 호스트 소프트웨어는 신뢰할 수 없다고 가정한다. 비록 호스트 소프트웨어가 공격받더라도, 어떤 비밀도 누설되지 않을 것이다. 호스트 소프트웨어는 SP 서버(104)와의 네트워크 접속 및 콘텐츠 서버(216)로부터 미디어 다운로드의 역할을 담당한다. 호스트 소프트웨어는 여러 SP 서버와 칩셋 하드웨어/펌웨어와의 사이에서 프록시로서 작용한다. 호스트 소프트웨어는 칩셋 하드웨어/펌웨어가 타이틀 키를 풀어 CPU/GFX 컴포넌트에 주입을 완료한 후 암호화된 콘텐츠를 직접 그래픽스 하드웨어에 전달한다.
칩셋 하드웨어/펌웨어는 콘텐츠 보호 처리를 위한 보호 장치의 역할을 맡는 모든 보호 처리를 담당한다. 실시예에서, 칩셋 하드웨어/펌웨어는 DMI 메커니즘을 이용하여 보호 타이틀 키를 그래픽스 하드웨어에 전송한다.
CPU/GFX 컴포넌트는 최종 스트림의 해독, 디코드 및 디스플레이의 역할을 담당한다. GFX 엔진은 아무 정책 결정을 하지 않는 수동 장치이다. 요청 받을 때, GFX 엔진은 단순히 콘텐츠를 해독한 다음 전달된 비디오 슬라이스를 디코드한다. 실시예에서, (보호 미디어 인코더를 갖는) GFX 엔진은 HDMI를 통과하는 HDCP 출력 보호를 위해 그리고 무선 (예를 들면, WiDi) 디스플레이를 위해 디스플레이 콘텐츠를 다시 암호화한다.
보호 클라이언트 컴퓨팅 시스템은 아주 중요한 정보를 송신하기 전에 서비스 프로바이더에 의해 원격으로 식별되어야 한다. 플랫폼을 식별하는데 사용된 메커니즘은 사용자 프라이버시를 침해하지 않아야 한다. 본 발명의 실시예는 서비스 프로바이더에게 서비스 프로바이더 서버가 적절한 클라이언트 컴퓨팅 시스템과 통신하고 있는 네트워크를 통해 확인하고 타이틀 키 및 기타 기밀 재료를 그 클라이언트 컴퓨팅 시스템에게 전달하는 보호 메커니즘을 제공한다. 일 실시예에서, 서비스 프로바이더 서버와 클라이언트 컴퓨팅 시스템 사이의 보호 세션을 설립하는데 이용된 프로토콜은 EPID 이다. EPID는 단일의 공개 키가 EPID 그룹이라 불리우는 N-개인 키들에 의해 생성된 시그니처를 익명으로 증명하게 한다. EPID를 구현하기 위해, 각각의 칩셋은 실리콘 제조 중에 플랫폼 컨트롤 허브(control hub (PCH)) 퓨즈에 넣어진 고유 개인 키를 가지고 있다. 실시예에서, 칩셋 제조자는 1,000,000 개인 키를 한 그룹에 넣고 제조한 칩셋 마다 400 그룹을 생성한다. EPID 검증자로서 작용하기 위해, 각각의 서비스 프로바이더는 이들 400 공개 키를 비치하고 있을 것이다.
일단 보호 EPID 세션이 설립되면, 서비스 프로바이더 서버는 보호 클라이언트 컴퓨팅 시스템과 보호 비밀 정보를 자유롭게 교환한다. 콘텐츠 스트리밍의 경우, 보호 타이틀 키는 SP 서버로부터 칩셋 내 보안 프로세서로 전달될 것이다. 보안 프로세서는 보호 타이틀 키를 그래픽스 및 오디오 하드웨어에 전송한다. 이때, 암호화된 비디오 및 오디오 콘텐츠는 콘텐츠 서버(216)로부터 콘텐츠를 해독하고, 디코드하고, 디스플레이하는 클라이언트 컴퓨팅 시스템의 그래픽스 및 오디오 하드웨어에 직접 전송될 수 있다. 콘텐츠를 다운로드하는 경우, 보안 프로세서는 (다시 말해서 제조 중에 PCH 퓨즈 내에 구어진) 고유 플랫폼 저장 키를 이용하여 타이틀 키를 클라이언트 컴퓨팅 시스템에 연결하고 연결된 키를 미디어 플레이어 소프트웨어로 되돌려 준다. 재생을 원할 때, 연결된 타이틀 키는 보안 프로세서에 다시 전달되고, 보안 프로세서는 타이틀 키를 풀고 보호 방식으로 그래픽스 및 오디오 하드웨어에 전달한다.
도 3은 본 발명의 실시예에 따른 클라이언트 컴퓨팅 시스템(101)의 다이어그램이다. 서비스 프로바이더(SP) 플레이어/미디어 브라우저 소프트웨어 애플리케이션(302)은 인터넷과 같은 네트워크(201)를 통해 SP 서버(104)와 인터페이스하는 소프트웨어 스택 내에 포함될 수 있다. SP 플레이어/미디어 브라우저(302)는 사용자로 하여금 서비스 프로바이더의 제공된 콘텐츠들을 브라우저하고 SP 서버에서 클라이언트 컴퓨팅 시스템으로 배달될 콘텐츠를 선택하게 한다. SP 플레이어/미디어 브라우저는 사용자에게 콘텐츠 라이브러리를 관리하고 콘텐츠의 선택, 다운로드, 및 재생을 제어하는 사용자 인터페이스 제어 기능을 제공한다. SP 플레이어/미디어 브라우저는 서비스 에이전트(304)와 상호작용한다. 서비스 에이전트(304)는 본 발명의 실시예에 따라서 처음부터 끝까지 콘텐츠 보호를 지원하는 클라이언트 컴퓨팅 시스템의 특징부를 액세스하도록 위임받은 서비스 프로바이더에 의해 제공된 소프트웨어 애플리케이션을 포함한다. 서비스 에이전트는 여러 SP 플레이어/미디어 브라우저 애플리케이션 프로그래밍 인터페이스(SP player/media browser application programming interfaces (APIs)) (도 2에는 도시되지 않음)와 인터페이스한다. 서비스 에이전트(304)는 미디어 플레이어 컴포넌트(306)를 포함한다. 미디어 플레이어는 콘텐츠 플레이어 기능(예를 들면, 재생 제어 기능)을 제공한다.
SP 클라이언트 애플리케이션(308)은 SP 플레이어/미디어 브라우저(302) 및 서비스 에이전트(304)가 클라이언트 컴퓨팅 시스템의 하드웨어 및 펌웨어에서 메시지를 서비스 프로바이더 서버(104)에 중계하기 위한 콘텐츠 보호 특징부를 액세스할 수 있게 해준다. 실시예에서, SP 클라이언트 애플리케이션은 콘텐츠 보호 API를 포함하는 호스트 에이전트 소프트웨어 개발 키트(host agent software development kit (SDK))를 포함한다. 실시예에서, SP 클라이언트 애플리케이션은 칩셋의 플랫폼 컨트롤 허브(PCH)(312) 내 보안 프로세서(314)와 통신한다.
오디오 드라이버(311)는 미디어 플레이어와 오디오 암호 하드웨어(316) 사이의 인터페이스를 제공한다. 마찬가지로, 그래픽스(GFX) 드라이버(310)는 미디어 플레이어와 GFX 엔진(320) 사이의 인터페이스를 제공한다. 실시예에서, PCH(312)는 보안 프로세서(314)를 포함하며, 이 보안 프로세서는 펌웨어를 실행하여 콘텐츠 보호 기능과 함께 다른 널리 공지된 시스템 기능을 제공한다. 실시예에서, 보안 프로세서는 매니지어빌리티 엔진(Manageability Engine (ME))에 의해 구현될 수 있다. 콘텐츠가 PCH(312) 및 GFX 엔진(320)에 의해 처리될 때, 콘텐츠는 PCH 하드웨어/펌웨어 및 GFX 엔진 하드웨어 내 각자의 보호 오디오 비디오 경로(PAVP) 컴포넌트(318, 322)에 의해 적어도 부분적으로 보호될 수 있다.
도 4는 본 발명의 실시예에 따른 보안 콘텐츠 처리의 흐름도이다. 블록(402)에서, 클라이언트 컴퓨팅 시스템의 사용자는 SP 플레이어/미디어 브라우저(302)를 사용하여 하나 이상의 서비스 프로바이더로부터 콘텐츠를 둘러보고(browse), 찾고, 구매한다. 블록(404)에서, SP 서버(104)와 클라이언트 컴퓨팅 플랫폼(101)과의 상호 인증이 수행된다. 인증된 세션이 설립된다. 콘텐츠의 소정 셋의 사용권을 가진 키 블롭(key blob)이 공급된다. 키 블롭은 클라이언트 컴퓨팅 시스템에 연결되어 필요에 따라 시스템이 신뢰성 및 무결성 보호되게 보장한다.
블록(406)에서 클라이언트 컴퓨팅 시스템은 (스트리밍 동작 동안) 네트워크(201)를 통해 콘텐츠 서버(216)로부터 또는 (이미 구매되고, 다운로드되고 저장된 콘텐츠용) 클라이언트 컴퓨팅 시스템의 로컬 스토리지로부터 암호화된 콘텐츠를 획득한다. 시스템은 비디오 슬라이스(예를 들어, 서브프레임)에 대해 작업할 준비를 한다. 그 결과로서, 하드웨어는 데이터의 제1 슬라이스가 전달되자마자 데이터를 처리할 수 있다.
블록(408)에서, 사용자는 SP 플레이어/미디어 브라우저(302)를 이용하여 선택된 콘텐츠의 재생을 시작한다. 키 블롭은 타이틀 키를 풀고 추출하기 위해 보안 프로세서(314)에 전달된다. 이 과정이 이루어지면, 타이틀 키는 해독을 위해 보안 프로세서에 의해 그래픽스 하드웨어(320)에 로드된다. 블록(410)에서, SP 플레이어/미디어 브라우저는 암호화된 콘텐츠를 GFX 엔진(320) 내 미디어 처리 엔진으로 전달된다. GFX 엔진은 타이틀 키를 이용하여 콘텐츠를 해독하고 그 콘텐츠를 로컬 보호 키를 이용하여 다시 암호화한다. 재암호화된 데이터는 보호 로컬 메모리 또는 시스템 메모리에 저장될 수 있다. 블록(414)에서, 후속하여 재암호화된 콘텐츠가 획득되고, 해독되며 압축해제된다. 해독이 먼저 수행된다. 일단 데이터가 해독되면, 데이터는 디코드/압축해제된다. 일단 데이터가 압축해제되면, 데이터는 재암호화되고 시스템 메모리를 경유하여 합성 엔진으로 전달된다. 일단 합성이 완료되면, 데이터는 다시 시스템 메모리를 이용하여 보호되고 디스플레이 엔진으로 전달된다. 실시예에서, 경로를 따라서 있는 각각의 컴포넌트는 필요에 따라 해독, 처리 및 재암호화하는 능력을 가지고 있다.
블록(416)에서, GFX 엔진은 (실시예에서) HDCP 기술을 이용하여 미디어 콘텐츠를 다시 암호화하며 이 콘텐츠를 사용자에 의한 시청을 위해 디스플레이에 전달한다. 프로세스의 각 단계에서, 콘텐츠는 클라이언트 컴퓨팅 시스템에서 구동하는 소프트웨어 또는 비인가 하드웨어 컴포넌트에 의해 액세스 가능한 암호화되지 않은 상태에 있는 것은 전혀 아니다.
도 5는 본 발명의 실시예에 따른 보안 콘텐츠 처리 시스템의 다이어그램이다. SP 서버(104)는 네트워크(201)를 통해 클라이언트 컴퓨팅 시스템(101)과 상호작용한다. 클라이언트 컴퓨팅 시스템은 제1 컴포넌트(500) 및 제2 컴포넌트(502)를 포함한다. 실시예에서, 제1 컴포넌트는 CPU 및 GFX 컴포넌트를 포함하며, 제2 컴포넌트는 플랫폼 컨트롤 허브(PCH)를 포함한다. 다른 실시예에서, 제1 및 제2 컴포넌트는 시스템 온 칩(SOC) 구현에서 단일 컴포넌트로 조합될 수 있다. 제1 컴포넌트(500)는 다수의 프로세서 코어(504) 및 GFX 엔진(320)을 포함한다. 프로세서 코어(504)는 (도 3에서 기술된 바와 같은) 호스트 소프트웨어(SW)(506), 클라이언트 인증서(508), 퓨즈(521), 및 공유 비밀(shared secret)(519)라는 각종 컴포넌트를 실행한다. 호스트 소프트웨어는 하드 디스크 드라이브(HDD)/고체 상태 드라이브(SSD)(510)로부터 SP 서버 또는 (DVD, 블루레이, 또는 다른 스토리지 기술과 같은) 유형 미디어에서 이전에 획득된 암호화된 콘텐츠를 포함한 데이터를 판독한다. 실시예에서, 호스트 소프트웨어는 적어도 SP 플레이어/미디어 브라우저 애플리케이션(302), 서비스 에이전트(304) 및 SP 클라이언트 애플리케이션(308)을 포함한다.
GFX 엔진(320)은 다수의 컴포넌트를 포함한다. 미디어 암호/해독 엔진(520)은 콘텐츠를 암호화하고 해독하는 로직을 포함한다. 미디어 인코드/디코드 엔진(522)은 콘텐츠를 인코드하고 디코드하는 로직을 포함한다. GFX 합성(Comp) 엔진(524)은 디스플레이 이미지를 합성하는 로직을 포함한다. 디스플레이 엔진(526)은 합성된 디스플레이 이미지를 디스플레이에 전달하는 로직을 포함한다. 디스플레이 암호/해독 엔진(528)은 디스플레이 데이터를 보호 링크(527)를 통해 디스플레이(538)에 전송하기 전에 디스플레이 데이터를 암호화하고 암호해독하는 로직을 포함한다. 메모리 암호/해독 엔진(530)은 메모리(536)내 보호 중간면(protected intermediate surfaces)에 저장된 데이터를 암호화하고 해독하는 로직을 포함한다. 메모리(536)는 또한 충실도 및 무결성 보호 메모리 동작(532)을 구현하는 로직을 포함한다.
제2 컴포넌트(502)는 다수의 컴포넌트를 포함하는데, 그 중 몇 개는 도 5를 간략히 하기 위해 도시되지 않는다. 제2 컴포넌트는 보안 프로세서(314)를 포함한다. 보안 프로세서는 클라이언트 컴퓨팅 시스템을 위한 증명, 프로비저닝 키 관리, 및 출력 제어 동작(516)을 제공하는 펌웨어 및/또는 하드웨어 로직을 포함한다. 보안 프로세서는 또한 퓨즈(517), 공유 비밀(519), 및 검증 키 및 키 계층 정보와 같은 PKI를 지원하는 신뢰 앵커(518)를 포함한다. 퓨즈(521, 517)는 EPID 사용을 위해 키 재료(key material)와 함께 칩셋의 제조 중에 제1 및 제2 컴포넌트의 하드웨어로 프로그램된다. 하드웨어 신뢰 루트(hardware root of trust)는 클라이언트 컴퓨팅 시스템이 제조될 때 제조 작업장에서 퓨즈에 프로그램된 정보로부터 구축된다. 이렇게 함으로써 각각의 개인 클라이언트 컴퓨팅 시스템은 이제야 확실하게 고유의 프라이버시가 보호된다. 공유 비밀(519)은 칩셋 및 CPU/GFX 컴포넌트의 제조 중에 제1 및 제2 컴포넌트의 하드웨어 내로 하드-코드된다(hard-coded). 실시예에서, 공유 비밀은 DMI 링크(538)를 통해 보안 칩대칩 통신 채널을 설정하는데 사용된다.
클라이언트 컴퓨팅 시스템은 또한 보안 클럭 서비스를 제공하는 보안 실시간 클럭(513), 디스플레이(538), 및 비휘발성 메모리(non-volatile memory(NVM))(512)를 포함한다. 실시예에서, 보안 실시간 클럭은 제3자에 의해 시발될 수 있으며, 다수의 서비스 프로바이더를 위해 가상화될 수 있다. NVM은 제2 컴포넌트의 펌웨어 이미지를 저장하는데 뿐만 아니라, 보안 프로세서 처리 동작에 필요한 (무결성 및 상태 정보와 같은) 임시 데이터를 저장하는데에도 사용될 수 있다.
실시예에서, 처리 흐름은 다음과 같이 기술될 수 있다. SP 플레이어/미디어 브라우저(302)는 사용자에게 사용자 인터페이스를 제공한다. 사용자는 서비스 프로바이더의 웹 사이트에 들어가서 이용가능한 콘텐츠를 둘러본다. SP 웹 사이트는 사용자의 클라이언트 컴퓨팅 시스템이 SP 서버(104)와의 인증 능력을 그 내부에 통합하고 있는지 판단하는 자동 검출 기능을 가지고 있다. 가능하다면, 사용자는 콘텐츠를 선택하도록 허용된다. 콘텐츠는 매수, 임대, 또는 구독되거나, 또는 스트리밍될 수 있다. 사용자는 콘텐츠 대금을 지불한다. SP 플레이어/미디어 브라우저(302)는 보안 프로세서(316)를 작동하여 SP 서버(104)를 이용하여 클라이언트 컴퓨팅 시스템(101)을 인증한다. 실시예에서, 인증은 EPID 기술을 사용한다. 클라이언트 컴퓨팅 시스템(101)은 SP 서버(104)가 클라이언트 컴퓨팅 시스템의 인증서(508)를 증명하게 하고, 철회 체크를 수행하게 하고, (일 실시예에서 EPID 프로토콜을 이용하여) 인증 기관으로의 인증 경로를 증명하게 함으로써 적어도 부분적으로 인증된다. 클라이언트 컴퓨팅 시스템(101) 및 SP 서버(104)의 둘 다 인증될 때, 일 실시예에서 보안 통신 채널은 EPID 프로토콜에 기반하여 설정될 수 있다. 실시예에서, 일단 보안 통신 채널이 설정되면, 명령어 셋이 처음부터 끝까지 콘텐츠 보호 기능을 위해 사용될 수 있다.
SP 서버(104)는 콘텐츠의 사용에 관한 제약(예를 들면, 시간)을 두고, 암호화된 타이틀 키를 클라이언트 컴퓨팅 시스템으로 공급한다. SP 서버는 암호화된 타이틀 키를 보안 채널을 통해 보안 프로세서(314)에 전송한다. 보안 프로세서(314)는 암호화된 타이틀 키를 자신의 키 계층을 이용하여 해독한다. 보안 프로세서(314)는 스토리지 키를 사용하여 새로이 해독된 타이틀 키를 재암호화하여 키 블롭을 형성한다. 키 블롭은 특정 기간 동안 클라이언트 컴퓨팅 시스템에 연결된다. 보안 프로세서(314)는 키 블롭을 CPU 코어에서 구동하는 SP 플레이어/미디어 브라우저(302)에 전송한다. SP 플레이어/미디어 브라우저(302)는 키 블롭을 HDD/SSD(510)에 저장한다. 그런 다음 SP 플레이어/미디어 브라우저(302)는 사용자가 선택한 암호화된 콘텐츠를 다운로드한다. 일 실시예에서, 다운로드된 암호화된 콘텐츠는 HDD/SSD(510)에 저장될 수 있다.
사용자가 콘텐츠를 재생하려 할 때, SP 플레이어/미디어 브라우저(302)는 키 블롭을 다시 보안 프로세서(314)에 전달한다. 보안 프로세서는 키 블롭의 시그니처를 증명하고, 예를 들면, 시간과 같은 사용 제약을 체크한다. 보안 프로세서(314)는 암호화된 타이틀 키를 암호화된 채널(예를 들어, DMI 링크(538))을 통해 GFX 엔진(320)의 미디어 암호/해독 컴포넌트(520)에 전송한다. 보안 프로세서는 SP 플레이어/미디어 브라우저에게 GFX/미디어 엔진이 암호화된 콘텐츠를 처리 준비할 것을 지시한다. SP 플레이어/미디어 브라우저(302)는 암호화된 콘텐츠를 HDD/SSD(510)로부터 판독하거나, 또는 암호화된 콘텐츠를 (스트리밍 애플리케이션을 위해) 네트워크(201)를 통해 SP 서버(104)로부터 획득하며, 암호화된 콘텐츠를 슬라이스별로 GFX 엔진으로 전송한다.
GFX 엔진(320)은 암호화된 콘텐츠를 슬라이스 별로 처리한다. 각 슬라이스마다, SP 플레이어/미디어 브라우저는 암호화되지 않은 슬라이스 헤더를 판독한다. 슬라이스의 나머지는 SP 플레이어/미디어 브라우저가 그 콘텐츠를 액세스할 수 없도록 암호화된다. SP 플레이어/미디어 브라우저는 초기 벡터를 이용하여 재생 상태 정보를 계속 추적한다. 미디어 암호/해독 엔진(520)은 보안 프로세서로부터 수신한 암호화된 타이틀 키를 해독한 후, 타이틀 키를 이용하여 콘텐츠를 해독한다. 일 실시예에서, 미디어 암호/해독 엔진의 출력 데이터는 여전히 공지의 H.264 인코딩 방식에 따라 압축된다. 다른 실시예에서, 다른 인코딩 방식이 사용될 수도 있다. 미디어 인코드/디코드 엔진(522)은 각각의 슬라이스를 디코드하고 그 슬라이스를 메모리 암호/해독(530)을 이용하여 재암호화한다. 재암호화된 콘텐츠 슬라이스는 메모리(536) 내 보호 중간면(534)에 저장된다. GFX 합성 엔진(524)은 디스플레이에 디스플레이될, 전경 및 배경 이미지, 윈도우즈 등을 포함하는 이미지의 합성을 제어한다. GFX 합성 엔진은 메모리(536) 내 보호 중간면(534)으로부터 재암호화된 콘텐츠 슬라이스를 획득하여 합성된 이미지를 생성한다. GFX 합성 엔진(524)은 합성된 이미지 데이터를 디스플레이 엔진(526)에 전송한다.
디스플레이 엔진은 디스플레이 암호/해독 엔진(528)을 사용하여 메모리(536) 내에 콘텐츠 슬라이스를 저장하는데 사용되었던 암호로부터 합성된 이미지를 해독한다. 일 실시예에서, 디스플레이 엔진(526)은 디스플레이 암호/해독 엔진을 사용하여 HDCP 기술에 따라 합성된 이미지 데이터를 재암호화한다. 암호화된 합성된 이미지 데이터는 GFX 엔진(320)에 의해 보호 칩대칩 데이터 인터페이스(예를 들면, DMI 링크)(538)를 통해 제2 컴포넌트(502)에 전송되고, 보호 디스플레이 인터페이스 링크(527)를 통해 디스플레이(538)에 전달된다.
실시예에서, 몇 개의 독립적인 콘텐츠 스트림이라도 동시에 클라이언트 컴퓨팅 시스템에 의해 처리될 수 있다. 각각의 콘텐츠 스트림은 다른 스트림과 간섭하지 않도록 하기 위해 자체의 암호 콘텍스트를 가지고 있다. 이것은 클라이언트 컴퓨팅 시스템이 하나의 스트림에 대한 어느 종류의 공격 또는 절충이 다른 콘텐츠 스트림에 영향을 주지 않게 보장해준다.
본 발명의 실시예는 클라이언트 컴퓨팅 시스템에 의해 렌더링되고 있는 디지털 콘텐츠 내에 나타난 객체와 관련한 상품 및/또는 서비스를 구매하는 기능, 및/또는 그 객체에 관한 정보를 획득하는 기능을 제공한다. 도 6은 본 발명의 실시예에 따른 객체 정보 처리의 흐름도이다. 블록(602)에서, SP 플레이어/미디어 브라우저(302)는 사용자에게 디지털 콘텐츠를 디스플레이한다. 사용자가 콘텐츠를 듣고 보았을 때, 사용자는 콘텐츠 무언가에 관심을 기울일 수 있다. 실시예에서, 디지털 콘텐츠는, 예를 들면, 영화 또는 TV 프로그램과 같은 비디오를 포함한다. 예를 들면, 사용자는 콘텐츠의 비디오 프레임들의 시퀀스의 적어도 하나의 비디오 프레임에서 디스플레이되는 적어도 하나의 객체의 이미지를 볼 수 있다. 일반적으로, 적어도 하나의 객체 이미지는 비디오 프레임의 적어도 일부로서 카메라에 의해 캡쳐된 물리 세계의 객체를 나타내는 어느 이미지일 수 있다. 예를 들면, 객체 이미지는 사람, 식물이나 동물, 차량, 가정용품, 빌딩, 산수 형세(landscape feature), 소비재 등의 비디오 프레임 내 이미지일 수 있다. 다른 예에서, 객체 이미지는 아이콘, 심볼, 또는 재생되는 노래와 같은 디지털 콘텐츠의 오디오 부분을 표현하기 위해 비디오 프레임에 부가된 다른 표시 이미지일 수 있다. 다른 예에서, 객체 이미지는 물리 세계에서 물리적으로 존재하지 않을 수 있으며 컴퓨터로 만들거나, 손으로 그리거나, 또는 비디오 프레임에 부가된 움직이는 이미지(animated image)일 수 있다. 사용자는 또한 콘텐츠를 소비하면서 한 번에 다수의 객체에 관심을 둘 수 있다. 예시적인 일 예에서, 사용자는 배우가 코트를 입고 있고 자동차를 특정 도시의 유명한 거리로 운전하고 있으며, 이 때 영화 녹음 부분이 노래를 포함하고 있는 어떤 영화를 시청 중일 수 있다. 이 예에서, 사용자는 다음과 같은 객체, 즉, 배우, 코트, 자동차, 거리, 도시, 및 노래 중 하나 이상에 관한 (적절한 곳에 있고 이용가능 구매 정보를 포함하는) 정보를 얻는데 관심을 둘 수 있다.
실시예에서, 사용자가 관심의 객체에 관한 정보를 획득하는데 관심이 있을 때, 또는 아마도 객체를 구매하는데 관심이 있을 때, 사용자는 클라이언트 컴퓨팅 시스템에서 이용가능한 사용자 입력 메커니즘을 이용하여 객체 이미지를 선택한다. 본 발명의 실시예에서, 이용가능한 사용자 입력 메커니즘은 현재 공지된 또는 개발될, 컴퓨터 마우스, 키보드, 원격 제어 기기, 게임 컨트롤러, 터치 스크린, 검출된 사용자 제스처 등과 같은 어느 사용자 입력 장치라도 포함할 수 있다. 실시예에서, 사용자는 선택된 객체 이미지에 사용자 입력을 제공하기 위해 콘텐츠의 재생을 멈출 수 있으며, 그런 다음 사용자 입력 선택이 이루어지면 재생을 재개할 수 있다. 다른 실시예에서, 콘텐츠 재생의 멈춤은 수행되지 않을 수도 있다.
블록(604)에서, SP 플레이어/미디어 브라우저는 디스플레이 상의 비디오 프레임들의 시퀀스 중 적어도 하나의 비디오 프레임에서 렌더링되고 있는 적어도 하나의 객체 이미지를 선택하는 사용자의 입력 선택을 받아들인다. 실시예에서, 사용자 입력 데이터는 콘텐츠의 재생 시작 이래로 경과된 시간 및 비디오 프레임 내 위치 중 적어도 하나를 포함할 수 있다. 예를 들면, 사용자는 경과 시간 t에서 재생 중에 발생하는 비디오 프레임 내 특정 (x, y) 위치에서 디스플레이되는 객체 이미지를 선택할 수 있다. 실시예에서, 시간은 디스플레이된 콘텐츠의 시작 이래 시간, 분, 초 및 밀리초로서 명시될 수 있다. 다른 실시예에서, 시간은 디스플레이 콘텐츠의 시작으로부터 카운트(예를 들면, 프레임 카운트 또는 다른 카운트)로서 명시될 수 있다. 다른 실시예에서, 사용자에 의해 경과 시간만이 표시될 수 있다. 또 다른 실시예에서, 사용자에 의해 위치만이 표시될 수 있다.
사용자가 콘텐츠를 소비하고 객체 이미지들 중 하나 이상을 선택함에 따라, 블록(606)에서, 일 실시예에서 SP 플레이어/미디어 브라우저는 사용자 입력을 저장한다. 일 실시예에서, SP 플레이어/미디어 브라우저는 보안 프로세서(314) 및 DMI 링크(538)를 이용하여 안전하게 통신하여 NVM(512) 내 보안 스토리지 위치에다 사용자 입력을 저장한다. 이렇게 함으로써 소비되고 연관된 콘텐츠 정보 요청 및 구매 거래에 관한 사용자의 프라이버시를 제공하는데 도움이 된다. 실시예에서, 각각의 개개 사용자 입력은 별개의 동작으로서 저장될 수 있다. 다른 실시예에서, 특정한 디지털 콘텐츠 타이틀(또는 그 일부분)의 소비에서부터 시작된 사용자 입력은 콘텐츠 소비 처리의 최종단에서 단일의 스토리지 동작으로 저장될 수 있다. 블록(602, 604 및 606)의 처리는 클라이언트 컴퓨팅 시스템(101)이 네트워크(201)에 접속되지 않을 때에도 이루어질 수 있다.
실시예에서, 일단 콘텐츠가 소비되고 클라이언트 컴퓨팅 시스템이 네트워크에 접속되면, SP 플레이어/미디어 브라우저는 서비스 에이전트(304), SP 클라이언트 애플리케이션(308), 및 보안 프로세서(314)를 사용하여 NVM(512)로부터 저장된 사용자 입력을 획득하고 그 사용자 입력을 전술한 방법을 이용하여 SP 서버(104)를 통해 SP 서버 애플리케이션(212)에 전송한다. 다른 실시예에서, 만일 콘텐츠가 소비되고 있는 동안 클라이언트 컴퓨팅 시스템이 네트워크에 접속되면, 그리고 사용자가 제품 요청에 관한 즉각적인 피드백을 원한다고 선택했다면, SP 플레이어/미디어 브라우저는 각각의 개별 사용자 입력을 서비스 프로바이더 서버의 SP 서버 애플리케이션으로 실시간으로 전송하여 처리할 수 있다. 실시예에서, 사용자 입력이 배치처리 또는 개별적으로 처리되는지에 무관하게, 블록(610)에서 SP 서버 애플리케이션은 각각의 사용자 입력을 콘텐츠 객체 정보 데이터베이스 내 엔트리들과 비교한다. 실시예에서, 이러한 비교는 사용자 입력으로부터의 시간과 위치 정보를 콘텐츠의 오디오 및 비디오 부분에 관한 공지의 정보와 일치시키려 시도하는 과정을 수반할 수 있다.
도 7은 본 발명의 실시예에 따른 서비스 프로바이더 서버의 객체 정보 처리 컴포넌트의 다이어그램이다. SP 서버 애플리케이션(212)은 네트워크를 통해 클라이언트 컴퓨팅 시스템으로부터 하나 이상의 사용자 입력(702)을 안전하게 수신한다. SP 서버 애플리케이션은 콘텐츠(102)를 액세스할 수 있다. 일 실시예에서, 예를 들어, SP 서버 애플리케이션과 같은 SP 서버의 하나 이상의 컴포넌트는 콘텐츠의 정적인 분석에 기반하여 콘텐츠 객체 정보 데이터베이스(704)를 생성하도록 사용된다. 즉, 콘텐츠를 어느 클라이언트 컴퓨팅 시스템으로 배포하기 전에 객체 이미지의 콘텐츠가 분석될 수 있다. 콘텐츠 객체 정보 데이터베이스는 정보 요청에 기반하여 정보를 사용자에게 제공하기 위해 서비스 프로바이더에 의해 지원된 콘텐츠 내 각 객체 이미지의 엔트리를 포함한다. 실시예에서, 콘텐츠 객체 정보 데이터베이스는 서비스 프로바이더에 의해 지원된 콘텐츠 타이틀 마다 구축될 수 있다.
실시예에서, 콘텐츠의 배포 및/또는 객체 정보 요청을 지원하기 전에, 서비스 프로바이더 직원들은 콘텐츠의 오디오 및 비디오 부분을 분석하고, 객체 이미지를 식별하며, 지원된 식별된 객체의 데이터베이스 엔트리를 생성한다. 실시예에서, 지원될 식별된 객체는 콘텐츠 프로바이더, 서비스 프로바이더, 및/또는 다른 엔티티의 현재 광고중인 및/또는 마케팅 중인 캠페인에 기반하여 선택될 수 있다. 일 실시예에서, 지원된 객체와 연관된 관련 정보가 획득되고 콘텐츠 객체 정보 데이터베이스에 저장될 수 있다. 다른 실시예에서, 관련 정보와의 링크가 저장될 수 있으며, 이 정보는 필요에 따라 어느 정보 소스(예를 들어, 인터넷, 다른 데이터 구조체, 다른 데이터에비스 등)로부터라도 취득될 수 있다. 또 다른 실시예에서, 서비스 프로바이더는 시장 여건 변화, 광고 캠페인 변동, 날씨, 스포츠 스코어, 신규 아이템 등과 같은 현재 이벤트, 하루 중 시각, 및 년 중 시각 등과 같은 것으로 인해 언제라도 어느 선택된 지원된 객체의 콘텐츠 객체 정보 데이터베이스 내 정보를 동적으로 바꿀 수 있다.
콘텐츠 객체 정보 데이터베이스(704)로부터 취득한 정보 또는 선택된 객체와 연관된 다른 소스로부터 취득한 정보는 객체 정보(710)로서 식별될 수 있다. 예를 들어, 객체가 소비재인 경우, 객체 정보는 제품명, 제조자, 모델 번호, 제목, 가격, 구입여부, 및 특징 등 중 하나 이상을 포함할 수 있다. 예를 들어, 객체가 남자 배우 또는 여자 배우와 같은 사람인 경우, 객체 정보는 개인의 전기 정보, 영화 요약 내용, 팬 클럽 정보, 및 웹사이트로의 링크 등 중의 하나 이상을 포함할 수 있다. 예를 들어, 객체가 도시 또는 주요 지형지물인 경우, 객체 정보는 그 도시 또는 지형지물을 방문하는 것에 관한 정보를 포함할 수 있다. 예를 들어, 객체 이미지가 노래를 나타내고 있을 때, 객체 정보는 노래 타이틀, 아티스트, 앨범 타이틀, 레코드 회사, 및 구매 정보 중 하나 이상을 포함할 수 있다. 일반적으로, 객체 정보는 그 객체와 관련한 모든 정보를 포함할 수 있다. 일 실시예에서, 객체 정보는 그 객체 또는 관련된 물품 및/또는 서비스를 구매하는 것에 관한 정보를 포함한다.
실시예에서, SP 서버 애플리케이션은 서비스 프로바이더 서버에다 사용자의 사용자 프로파일(706)을 안전하게 유지할 수 있다. 사용자 프로파일은 사용자의 선호도 및 관심사 중 적어도 하나를 포함한다. 실시예에서, SP 서버 애플리케이션은 적어도 부분적으로 사용자 프로파일에 기반한 객체 정보를 선택 및/또는 맞춤조정할 수 있다. 일 실시예에서, 사용자는 SP 플레이어/미디어 브라우저를 이용하여 사용자에 의한 긍정하는 행위를 통해 자기의 선호도 및/또는 관심사를 입력 또는 선택할 수 있다. 다른 실시예에서, SP 서버 애플리케이션은 사용자의 클라이언트 컴퓨팅 시스템에 배달된 콘텐츠 및/또는 시간 경과에 따라 서비스 프로바이더 서버에 의해 수신된 사용자 입력에 적어도 부분적으로 기반하여 사용자 프로파일을 개발하고 유지할 수 있다. 실시예에서, 선호도는 무슨 형태의 정보를 사용자가 관심을 두는지, 그리고 어떻게, 언제 그리고 무슨 형태로 사용자가 그 정보를 받기를 원하는지를 포함할 수 있다. 실시예에서, 선호도는 구매의 재정 한도, 구매 통보 및 승인 등과 같은 구매 파라미터를 포함할 수 있다. 다른 선호도 또한 명시될 수 있다. 실시예에서, 관심사는 사용자가 관심을 보이는 것(예를 들어, 스포츠, 습관, 텔레비전, 영화 및 음악 장르 등)뿐만 아니라 수신한 사용자 입력 및 배달된 및/또는 소비된 콘텐츠와 같은 과거의 행동을 분석함으로써 판단된 관심을 보이는 것을 포함할 수 있다. 실시예에서, 사용자 입력은 사용자 프로파일의 일부로서 저장될 수 있다.
다시 도 6을 참조하면, 블록(612)에서, (객체 이미지로 표현된) 선택된 객체에 대한 사용자 입력과 콘텐츠 객체 정보 데이터베이스 내 엔트리를 비교할 때 일치하는 경우, 일 실시예에서, SP 서버 애플리케이션은 선택된 객체 이미지에 대응하는 객체에 관한 정보를 취득하고 사용자 프로파일에 저장한다. 다른 실시예에서, 관련 정보로의 링크가 사용자 프로파일에 저장될 수 있으며, 이 정보는 필요에 따라 어느 정보 소스(예를 들어, 인터넷, 다른 데이터 구조체, 다른 데이터베이스 등)로부터도 취득될 수 있다. 블록(614)에서, 요청에 따라, 서비스 프로바이더 서버 상의 SP 서버 애플리케이션은 사용자 프로파일로부터의 객체 정보를 클라이언트 컴퓨팅 시스템 상의 SP 플레이어/미디어에 전송한다 (또는 필요에 따라 객체 정보를 다른 소스로부터 취득한다). 일 실시예에서, 이것은 사용자가 서비스 프로바이더에 의해 운영되는 웹 사이트에 로그인하고 하나 이상의 객체 정보를 요청할 때 일어날 수 있다. 블록(616)에서, SP 플레이어/미디어 브라우저는 요청된 객체 정보를 사용자에게 디스플레이한다. 실시예에서, 객체 정보는 사용자로 하여금 객체의 구매 거래를 완료하게 해주는 구매 정보를 포함할 수 있다. 실시예에서, 블록(608, 610, 612, 및 614)는 사용자가 웹사이트에 로그인하여 객체 정보를 요청하기를 기다리지 않고 실시간으로 수행될 수 있다. 실시예에서, 사용자는 요청된 객체 정보를 보기 위해 콘텐츠의 재생을 멈출 수 있다.
다시 도 7을 참조하면, 일 실시예에서, SP 서버 애플리케이션에 의해 콘텐츠의 정적 분석보다는 동적 분석(708)이 수행될 수 있고, 그 결과 콘텐츠 객체 정보 데이터베이스 엔트리가 저장된다. 동적 분석 컴포넌트(708)는 수신한 사용자 입력(702)의 적어도 일부에 기반하여 콘텐츠(102)의 오디오 부분 및 비디오 프레임을 분석할 수 있다. 동적 분석 컴포넌트는, 콘텐츠가 클라이언트 컴퓨팅 시스템에서 소비되고 있을 때, 공지의 오디오 인식, 이미지 인식, 및/또는 얼굴 인식 처리 기술을 사용하여 서비스 프로바이더 서버 상의 콘텐츠 사본에서 하나 이상의 선택된 객체 이미지 또는 사운드를 결정하려 시도하는 사용자 입력에 의해 지시된 하나 이상의 오디오 부분 및 비디오 프레임을 분석할 수 있다. 예를 들면, 만일 콘텐츠가 클라이언트 컴퓨팅 시스템으로 스트리밍되고 있다면, 콘텐츠가 네트워크를 통해 스트리밍될 때, 현재의 콘텐츠 부분에 있는 객체를 결정하기 위해 서버 상의 콘텐츠가 분석될 수 있다. SP 서버 애플리케이션은 사용자 입력을 받아들이고 이를 현재 스트리밍된 콘텐츠 부분에 연관시킨다. 객체가 그러한 동적 분석을 통해 식별될 때, SP 서버 애플리케이션은 식별된 객체에 관련한 객체 정보(710)를 획득하고, 블록(612, 614, 및 616)을 계속 진행한다.
본 발명의 실시예는 기 설정된 핫스팟(hotspots)을 비디오 프레임에 추가하는 것보다 더 확장가능하고 융통성있는 방식으로 객체에 몰린 사용자 관심을 캡쳐한다. 본 발명의 실시예에서, 서비스 프로바이더 서버는 사용자가 관심을 두는 어떤 것이 콘텐츠 부분에 있다고 동적으로 판단하고 독립적으로 행위를 취하거나 또는 상이한 시간에서 동일 사용자 입력에 대해 상이한 행동을 취할 수 있다.
명세서에서 "일 실시예" 또는 "실시예"라는 말은 실시예와 관련하여 기술된 특별한 특징, 구조 또는 특징이 적어도 어떤 구현에 포함될 수 있다는 것을 의미한다. 명세서의 여러 곳에서 등장하는 "일 실시예에서"는 모두가 동일 실시예를 언급하는 것일 수도 또는 아닐 수도 있다.
또한, 상세한 설명과 청구범위에서, "결합된(coupled)" 및 "접속된(connected)"이라는 용어와 이들의 파생어가 함께 사용될 수 있다. 본 발명의 일부 실시예에서, "접속된"은 둘 이상의 구성요소들이 직접적인 물리적 접촉 또는 전기적 접촉 상태에 있다는 것을 의미한다. 그러나, "결합된"은 둘 이상의 구성요소가 서로와 직접적인 접촉을 하고 있지 않지만, 그래도 여전히 서로와 협력 또는 상호작용할 수 있다는 것을 의미한다.
그러므로, 비록 본 발명의 실시예가 구조적 특징 및/또는 방법론적 행동에 특정한 언어로 기술되었을 지라도, 청구된 주제는 기술된 바와 같은 특정한 특징 또는 행위로 국한되지 않을 수 있음은 물론이다. 오히려, 특정한 특징 및 행위는 청구된 주제를 구현하는 샘플의 형태로서 기술된다.

Claims (36)

  1. 클라이언트 컴퓨팅 시스템에서 디지털 콘텐츠를 처리하는 방법으로서,
    클라이언트 컴퓨팅 시스템에 의해 디지털 콘텐츠를 렌더링하는 단계와,
    렌더링되는 상기 디지털 콘텐츠의 비디오 프레임들의 시퀀스 중 적어도 하나의 비디오 프레임 내 적어도 하나의 객체 이미지를 선택하는 사용자로부터의 사용자 입력 데이터를 받아들이는 단계와,
    상기 사용자 입력 데이터를 보안 통신 채널을 경유하여 네트워크를 통해 상기 클라이언트 컴퓨팅 시스템에 결합된 서버로 전송하는 단계와,
    상기 선택된 적어도 하나의 객체 이미지에 대응하는 객체에 관한 정보를 상기 서버로부터 수신하는 단계와,
    상기 객체 정보를 상기 클라이언트 컴퓨팅 시스템에 디스플레이하는 단계를 포함하는
    디지털 콘텐츠 처리 방법.
  2. 제1항에 있어서,
    상기 선택된 적어도 하나의 객체 이미지는 상기 비디오 프레임들 중 적어도 한 프레임의 적어도 일부분으로서 카메라에 의해 캡쳐된 객체의 이미지를 포함하는
    디지털 콘텐츠 처리 방법.
  3. 제1항에 있어서,
    상기 사용자 입력 데이터는 상기 클라이언트 컴퓨팅 시스템의 디스플레이 상에서 보여지는 상기 적어도 하나의 비디오 프레임 내 상기 선택된 적어도 하나의 객체 이미지의 위치 및 상기 비디오 프레임들의 렌더링의 시작으로부터 경과한 시간 중 적어도 하나를 포함하는
    디지털 콘텐츠 처리 방법.
  4. 제2항에 있어서,
    상기 캡쳐된 객체는 물리적 세계의 객체(a physical world object)를 포함하는
    디지털 콘텐츠 처리 방법.
  5. 제4항에 있어서,
    상기 캡쳐된 객체는 소비재(consumer good)를 포함하는
    디지털 콘텐츠 처리 방법.

  6. 제1항에 있어서,
    상기 객체 정보는 상기 사용자가 상기 객체를 구매할 수 있게 해주는 정보를 포함하는
    디지털 콘텐츠 처리 방법.
  7. 디지털 콘텐츠를 처리하는 클라이언트 컴퓨팅 시스템으로서,
    사용자 입력 데이터를 입력하기 위한 사용자 입력 메커니즘과,
    디스플레이와,
    디지털 컨텐츠를 렌더링하고, 렌더링되는 상기 디지털 콘텐츠의 비디오 프레임들의 시퀀스 중 적어도 하나의 비디오 프레임 내 적어도 하나의 객체 이미지를 선택하는 상기 사용자 입력 메커니즘을 통해 사용자로부터 사용자 입력 데이터를 받아들이고, 상기 사용자 입력 데이터를 보안 통신 채널을 경유하여 네트워크를 통해 상기 클라이언트 컴퓨팅 시스템에 결합된 서버에 전송하고, 상기 선택된 적어도 하나의 객체 이미지에 대응하는 객체에 관한 정보를 상기 서버로부터 수신하며, 상기 객체 정보를 상기 디스플레이 상에 디스플레이하도록 구성되는 프로세서를 포함하는
    클라이언트 컴퓨팅 시스템.
  8. 제7항에 있어서,
    상기 선택된 적어도 하나의 객체 이미지는 상기 비디오 프레임들 중 적어도 한 프레임의 적어도 일부분으로서 카메라에 의해 캡쳐된 객체의 이미지를 포함하는
    클라이언트 컴퓨팅 시스템.
  9. 제7항에 있어서,
    상기 사용자 입력 데이터는 상기 클라이언트 컴퓨팅 시스템의 디스플레이 상에서 보여지는 상기 적어도 하나의 비디오 프레임 내 상기 선택된 적어도 하나의 객체 이미지의 위치 및 상기 비디오 프레임들의 렌더링의 시작으로부터 경과한 시간 중 적어도 하나를 포함하는
    클라이언트 컴퓨팅 시스템.
  10. 제8항에 있어서,
    상기 캡쳐된 객체는 물리적 세계의 객체를 포함하는
    클라이언트 컴퓨팅 시스템.

  11. 제10항에 있어서,
    상기 캡쳐된 객체는 소비재를 포함하는
    클라이언트 컴퓨팅 시스템.
  12. 제7항에 있어서,
    상기 객체 정보는 상기 사용자가 상기 객체를 구매할 수 있게 해주는 정보를 포함하는
    클라이언트 컴퓨팅 시스템.
  13. 클라이언트 컴퓨팅 시스템의 프로세서에서 실행될 때 상기 프로세서가 디지털 콘텐츠를 처리하도록 구성하는 하나 이상의 명령어를 포함하는 컴퓨터 판독가능 매체로서, 상기 처리는,
    디지털 콘텐츠를 렌더링하고,
    렌더링되는 상기 디지털 콘텐츠의 비디오 프레임들의 시퀀스 중 적어도 하나의 비디오 프레임 내 적어도 하나의 객체 이미지를 선택하는 사용자로부터의 사용자 입력 데이터를 받아들이고,
    상기 사용자 입력 데이터를 보안 통신 채널을 경유하여 네트워크를 통해 상기 클라이언트 컴퓨팅 시스템에 결합된 서버에 전송하고,
    상기 선택된 적어도 하나의 객체 이미지에 대응하는 객체에 관한 정보를 상기 서버로부터 수신하고,
    상기 객체 정보를 상기 클라이언트 컴퓨팅 시스템의 디스플레이 상에서 디스플레이하도록 하는 것인
    컴퓨터 판독가능 매체.
  14. 제13항에 있어서,
    상기 선택된 적어도 하나의 객체 이미지는 상기 비디오 프레임들 중 적어도 한 프레임의 적어도 일부분으로서 카메라에 의해 캡쳐된 객체의 이미지를 포함하는
    컴퓨터 판독가능 매체.
  15. 제13항에 있어서,
    상기 사용자 입력 데이터는 상기 클라이언트 컴퓨팅 시스템의 디스플레이 상에서 보여지는 상기 적어도 하나의 비디오 프레임 내 상기 선택된 적어도 하나의 객체 이미지의 위치 및 상기 비디오 프레임들의 렌더링의 시작으로부터 경과한 시간 중 적어도 하나를 포함하는
    컴퓨터 판독가능 매체.
  16. 제14항에 있어서,
    상기 캡쳐된 객체는 물리적 세계의 객체를 포함하는
    컴퓨터 판독가능 매체.
  17. 제16항에 있어서,
    상기 캡쳐된 객체는 소비재를 포함하는
    컴퓨터 판독가능 매체.
  18. 제14항에 있어서,
    상기 객체 정보는 상기 사용자가 상기 객체를 구매할 수 있게 해주는 정보를 포함하는
    컴퓨터 판독가능 매체.
  19. 디지털 콘텐츠를 처리하는 방법으로서,
    클라이언트 컴퓨팅 시스템 상의 제1 애플리케이션에 의해 디지털 콘텐츠를 렌더링하는 단계와,
    상기 제1 애플리케이션에 의해, 렌더링되는 상기 디지털 콘텐츠의 비디오 프레임들의 시퀀스 중 적어도 하나의 비디오 프레임 내 적어도 하나의 객체 이미지를 선택하는 사용자로부터의 사용자 입력 데이터를 받아들이는 단계와,
    상기 사용자 입력 데이터를 상기 클라이언트 컴퓨팅 시스템 내 보안 스토리지에 저장하는 단계와,
    상기 사용자 입력 데이터를 보안 통신 채널을 경유하여 네트워크를 통해 클라이언트 컴퓨팅 시스템에 결합된 서버 상의 제2 애플리케이션에 전송하는 단계와,
    상기 제2 애플리케이션에 의해, 상기 사용자 입력 데이터를 상기 서버 상의 콘텐츠 객체 정보 데이터베이스 내 엔트리와 비교하는 단계와,
    상기 사용자 입력 데이터가 상기 콘텐츠 객체 정보 데이터베이스 내 엔트리와 일치할 때, 상기 제2 애플리케이션에 의해, 상기 선택된 적어도 하나의 객체 이미지에 대응하는 객체에 관한 정보를 취득하고 저장하는 단계와,
    상기 제2 애플리케이션에 의해, 상기 객체 정보를 상기 보안 통신 채널을 통해 상기 제1 애플리케이션에 전송하는 단계와,
    상기 제1 애플리케이션에 의해, 상기 객체 정보를 상기 클라이언트 컴퓨팅 시스템에 디스플레이하는 단계를 포함하는
    디지털 콘텐츠 처리 방법.
  20. 제19항에 있어서,
    상기 선택된 적어도 하나의 객체 이미지는 상기 비디오 프레임들 중 적어도 한 프레임의 적어도 일부분으로서 카메라에 의해 캡쳐된 객체의 이미지를 포함하는
    디지털 콘텐츠 처리 방법.
  21. 제19항에 있어서,
    상기 사용자 입력 데이터는 상기 클라이언트 컴퓨팅 시스템의 디스플레이 상에서 보여지는 상기 적어도 하나의 비디오 프레임 내 상기 선택된 적어도 하나의 객체 이미지의 위치 및 상기 비디오 프레임들의 렌더링의 시작으로부터 경과한 시간 중 적어도 하나를 포함하는
    디지털 콘텐츠 처리 방법.
  22. 제20항에 있어서,
    상기 캡쳐된 객체는 물리적 세계의 객체를 포함하는
    디지털 콘텐츠 처리 방법.
  23. 제22항에 있어서,
    상기 캡쳐된 객체는 소비재를 포함하는
    디지털 콘텐츠 처리 방법.
  24. 제22항에 있어서,
    상기 캡쳐된 객체는 사람을 포함하는
    디지털 콘텐츠 처리 방법.
  25. 제19항에 있어서,
    상기 선택된 적어도 하나의 객체 이미지는 노래를 나타내는
    디지털 콘텐츠 처리 방법.
  26. 제19항에 있어서,
    상기 객체 정보는 상기 사용자가 상기 객체를 구매할 수 있게 해주는 정보를 포함하는
    디지털 콘텐츠 처리 방법.
  27. 제19항에 있어서,
    상기 콘텐츠 정보 데이터베이스는 객체 정보를 상기 사용자에게 제공하기 위해 지원된 상기 콘텐츠 내 각각의 객체 이미지에 대한 엔트리를 포함하는
    디지털 콘텐츠 처리 방법.
  28. 제27항에 있어서,
    상기 콘텐츠의 오디오 부분 및 비디오 부분을 분석하는 단계와, 객체 이미지를 식별하는 단계와, 상기 콘텐츠의 배포 전에 식별된 객체 이미지에 대한 엔트리를 상기 콘텐츠 정보 데이터베이스 내에서 생성하는 단계를 더 포함하는
    디지털 콘텐츠 처리 방법.
  29. 제27항에 있어서,
    상기 사용자 입력 데이터에 적어도 부분적으로 기초하여 상기 콘텐츠의 오디오 부분 및 비디오 부분을 분석하는 단계와, 객체 이미지를 식별하는 단계와, 상기 콘텐츠가 상기 클라이언트 컴퓨팅 시스템에서 소비되고 있을 때 식별된 객체 이미지에 대한 엔트리를 상기 콘텐츠 정보 데이터베이스 내에서 생성하는 단계를 더 포함하는
    디지털 콘텐츠 처리 방법.
  30. 제27항에 있어서,
    상기 콘텐츠 정보 데이터베이스 내 상기 객체 정보를 동적으로 변경하는 단계를 더 포함하는
    디지털 콘텐츠 처리 방법.
  31. 제19항에 있어서,
    상기 제2 애플리케이션에 의해, 상기 선택된 적어도 하나의 객체 이미지에 대응하는 객체에 관한 정보를 저장하는 단계는, 상기 객체 정보를 상기 서버 상의 사용자 프로파일에 저장하는 단계와, 상기 사용자 프로파일에 적어도 부분적으로 기초하여 객체 정보를 맞춤조정하여(tailoring) 상기 클라이언트 컴퓨팅 시스템에 전송하는
    디지털 콘텐츠 처리 방법.
  32. 제31항에 있어서,
    상기 클라이언트 컴퓨팅 시스템에 전달된 콘텐츠 및 사용자 입력에 적어도 부분적으로 기초하여 상기 사용자의 관심사를 결정하는 단계와, 상기 사용자의 관심사를 상기 사용자 프로파일에 저장하는 단계를 더 포함하는
    디지털 콘텐츠 처리 방법.
  33. 시스템으로서,
    클라이언트 컴퓨팅 시스템 - 상기 클라이언트 컴퓨팅 시스템은 디지털 콘텐츠를 렌더링하고, 렌더링되는 상기 디지털 콘텐츠의 비디오 프레임들의 시퀀스 중 적어도 하나의 비디오 프레임 내 적어도 하나의 객체 이미지를 선택하는 사용자로부터의 사용자 입력 데이터를 받아들이고, 상기 사용자 입력 데이터를 상기 클라이언트 컴퓨팅 시스템 내 보안 스토리지에 저장함 - 과,
    보안 통신 채널을 경유하여 네트워크를 통해 상기 클라이언트 컴퓨팅 시스템에 결합된 서버 - 상기 서버는 상기 클라이언트 컴퓨팅 시스템으로부터 상기 사용자 입력 데이터를 수신하고, 상기 사용자 입력 데이터를 상기 서버 상의 콘텐츠 객체 정보 데이터베이스 내 엔트리와 비교하고, 상기 사용자 입력 데이터가 상기 콘텐츠 객체 정보 데이터베이스 내 엔트리와 일치할 때, 상기 선택된 적어도 하나의 객체 이미지에 대응하는 객체에 관한 정보를 취득하여 저장하며, 상기 객체 정보를 상기 보안 통신 채널을 통해 상기 클라이언트 컴퓨팅 시스템에 전송함 - 를 포함하며,
    상기 클라이언트 컴퓨팅 시스템은 상기 객체 정보를 상기 사용자에게 디스플레이하는
    시스템.
  34. 제33항에 있어서,
    상기 선택된 적어도 하나의 객체 이미지는 상기 비디오 프레임들 중 적어도 한 프레임의 적어도 일부분으로서 카메라에 의해 캡쳐된 객체의 이미지를 포함하며, 상기 사용자 입력 데이터는 상기 클라이언트 컴퓨팅 시스템의 디스플레이 상에서 보여지는 상기 적어도 하나의 비디오 프레임 내 상기 선택된 적어도 하나의 객체 이미지의 위치 및 상기 비디오 프레임들의 렌더링의 시작으로부터 경과한 시간 중 적어도 하나를 포함하는
    시스템.
  35. 제34항에 있어서,
    상기 캡쳐된 객체는 물리적 세계의 객체를 포함하는
    시스템.
  36. 제33항에 있어서,
    상기 객체 정보는 상기 사용자가 상기 객체를 구매할 수 있게 해주는 정보를 포함하는
    시스템.
KR1020137025859A 2011-03-11 2011-12-21 디지털 콘텐츠 내 객체의 구매 또는 정보 요청을 가능하게 하는 방법 및 장치 KR101574100B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/046,037 US8682750B2 (en) 2011-03-11 2011-03-11 Method and apparatus for enabling purchase of or information requests for objects in digital content
US13/046,037 2011-03-11
PCT/US2011/066659 WO2012125198A2 (en) 2011-03-11 2011-12-21 Method and apparatus for enabling purchase of or information requests for objects in digital content

Publications (2)

Publication Number Publication Date
KR20130131456A true KR20130131456A (ko) 2013-12-03
KR101574100B1 KR101574100B1 (ko) 2015-12-03

Family

ID=46796959

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137025859A KR101574100B1 (ko) 2011-03-11 2011-12-21 디지털 콘텐츠 내 객체의 구매 또는 정보 요청을 가능하게 하는 방법 및 장치

Country Status (7)

Country Link
US (1) US8682750B2 (ko)
EP (1) EP2684354A4 (ko)
JP (1) JP2014513882A (ko)
KR (1) KR101574100B1 (ko)
CN (1) CN103460708B (ko)
TW (1) TWI461950B (ko)
WO (1) WO2012125198A2 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8682750B2 (en) 2011-03-11 2014-03-25 Intel Corporation Method and apparatus for enabling purchase of or information requests for objects in digital content
US8560453B2 (en) * 2011-06-30 2013-10-15 Intel Corporation Method and apparatus for dynamic, real-time ad insertion based on meta-data within a hardware based root of trust
WO2013085517A1 (en) * 2011-12-08 2013-06-13 Intel Corporation Method and apparatus for policy-based content sharing in a peer to peer manner using a hardware based root of trust
US20140143091A1 (en) * 2012-11-21 2014-05-22 Dante Consulting, Inc. Context Based Shopping Capabilities When Viewing A Digital Image
GB201405025D0 (en) * 2014-03-20 2014-05-07 Gould Tech Solutions Ltd Apparatus and method for content handling
EP2958039B1 (en) * 2014-06-16 2019-12-18 Vodafone GmbH Device for decrypting and providing content of a provider and method for operating the device
US9798895B2 (en) * 2014-09-25 2017-10-24 Mcafee, Inc. Platform identity architecture with a temporary pseudonymous identity
US11423498B2 (en) * 2015-12-16 2022-08-23 International Business Machines Corporation Multimedia content player with digital rights management while maintaining privacy of users
US9996228B2 (en) * 2016-01-29 2018-06-12 Flipboard, Inc. Smooth transition of video playback with page flip animation
US10776320B2 (en) * 2016-07-20 2020-09-15 International Business Machines Corporation Avoiding redundant presentation of content
EP3319069B1 (en) * 2016-11-02 2019-05-01 Skeyecode Method for authenticating a user by means of a non-secure terminal
CN111903136A (zh) * 2018-03-29 2020-11-06 索尼公司 信息处理装置、信息处理方法和程序
US11580923B1 (en) * 2021-10-13 2023-02-14 Videowindow B.V. Dynamic shading system

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6505160B1 (en) * 1995-07-27 2003-01-07 Digimarc Corporation Connected audio and other media objects
JP2003513538A (ja) 1999-10-22 2003-04-08 アクティブスカイ,インコーポレイテッド オブジェクト指向ビデオシステム
JP2002334092A (ja) 2001-05-11 2002-11-22 Hitachi Ltd 情報関連付け方法、情報閲覧装置、情報登録装置、情報検索装置、課金方法、およびプログラム
US20030223586A1 (en) * 2002-05-30 2003-12-04 Edward Green Method and system for secure communications over a communications network
JP2004102460A (ja) * 2002-09-06 2004-04-02 Hitachi Software Eng Co Ltd 個人認証方法及びプログラム
US7240075B1 (en) 2002-09-24 2007-07-03 Exphand, Inc. Interactive generating query related to telestrator data designating at least a portion of the still image frame and data identifying a user is generated from the user designating a selected region on the display screen, transmitting the query to the remote information system
US20040122746A1 (en) * 2002-12-23 2004-06-24 Charlier Michael L. Method and system for direct purchase in response to a multi-media display
US8149217B2 (en) 2003-12-19 2012-04-03 Intel Corporation Creating responses for an electronic pen-computer multimedia interactive system
US7734729B2 (en) * 2003-12-31 2010-06-08 Amazon Technologies, Inc. System and method for obtaining information relating to an item of commerce using a portable imaging device
US7500260B2 (en) * 2004-01-07 2009-03-03 D1Athletes.Com, Inc. Motion video indexing mechanism for athlete recruiting architecture
US20070208631A1 (en) * 2006-03-03 2007-09-06 Searete Llc Considering selling exemplar-based goods, items, or services
US8861898B2 (en) * 2007-03-16 2014-10-14 Sony Corporation Content image search
US8078876B2 (en) 2007-04-30 2011-12-13 Intel Corporation Apparatus and method for direct anonymous attestation from bilinear maps
US8170392B2 (en) 2007-11-21 2012-05-01 Shlomo Selim Rakib Method and apparatus for generation, distribution and display of interactive video content
US20090113475A1 (en) * 2007-08-21 2009-04-30 Yi Li Systems and methods for integrating search capability in interactive video
KR100867005B1 (ko) * 2007-09-19 2008-11-10 한국전자통신연구원 개인 맞춤형 멀티미디어 데이터 검색 서비스 방법 및 그의 장치들
US8356181B2 (en) 2007-11-15 2013-01-15 Intel Corporation Apparatus and method for a direct anonymous attestation scheme from short-group signatures
JP5277715B2 (ja) * 2008-05-13 2013-08-28 ソニー株式会社 情報処理システム、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US20090300101A1 (en) 2008-05-30 2009-12-03 Carl Johan Freer Augmented reality platform and method using letters, numbers, and/or math symbols recognition
US8145897B2 (en) 2008-09-29 2012-03-27 Intel Corporation Direct anonymous attestation scheme with outsourcing capability
CN102349048B (zh) * 2009-03-11 2015-09-30 索尼公司 访问从显示图像选定的项目的项目信息
TW201037621A (en) * 2009-04-08 2010-10-16 Microanalysis Customer consumption analysis system and method thereof
US20110082735A1 (en) * 2009-10-06 2011-04-07 Qualcomm Incorporated Systems and methods for merchandising transactions via image matching in a content delivery system
US8600824B2 (en) * 2010-04-28 2013-12-03 Verizon Patent And Licensing Inc. Image-based product marketing systems and methods
US8625788B2 (en) 2011-01-05 2014-01-07 Intel Corporation Method and apparatus for building a hardware root of trust and providing protected content processing within an open computing platform
US8682750B2 (en) 2011-03-11 2014-03-25 Intel Corporation Method and apparatus for enabling purchase of or information requests for objects in digital content

Also Published As

Publication number Publication date
US8682750B2 (en) 2014-03-25
CN103460708A (zh) 2013-12-18
KR101574100B1 (ko) 2015-12-03
WO2012125198A2 (en) 2012-09-20
EP2684354A4 (en) 2014-09-03
JP2014513882A (ja) 2014-06-05
EP2684354A2 (en) 2014-01-15
TWI461950B (zh) 2014-11-21
CN103460708B (zh) 2017-03-15
WO2012125198A3 (en) 2012-11-29
TW201241663A (en) 2012-10-16
US20120233036A1 (en) 2012-09-13

Similar Documents

Publication Publication Date Title
US11580570B2 (en) Method and apparatus for dynamic, real-time ad insertion based on meta-data within a hardware based root of trust
US10582256B2 (en) Method and apparatus for building a hardware root of trust and providing protected content processing within an open computing platform
KR101574100B1 (ko) 디지털 콘텐츠 내 객체의 구매 또는 정보 요청을 가능하게 하는 방법 및 장치
AU2012275667A1 (en) Method and apparatus for dynamic, real-time ad insertion based on meta-data within a hardware based root of trust
CN103975332B (zh) 用于使用基于硬件的信任根以对等方式进行基于策略的内容共享的方法和装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee