KR101081729B1 - 저작권 침해를 제어하고 쌍방향 컨텐츠를 인에이블시키기 위한 재프로그램가능한 보안 - Google Patents

저작권 침해를 제어하고 쌍방향 컨텐츠를 인에이블시키기 위한 재프로그램가능한 보안 Download PDF

Info

Publication number
KR101081729B1
KR101081729B1 KR1020067000444A KR20067000444A KR101081729B1 KR 101081729 B1 KR101081729 B1 KR 101081729B1 KR 1020067000444 A KR1020067000444 A KR 1020067000444A KR 20067000444 A KR20067000444 A KR 20067000444A KR 101081729 B1 KR101081729 B1 KR 101081729B1
Authority
KR
South Korea
Prior art keywords
content
player
code
security
data
Prior art date
Application number
KR1020067000444A
Other languages
English (en)
Other versions
KR20060031681A (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
Priority claimed from US10/614,765 external-priority patent/US7987510B2/en
Application filed by 로비 솔루션스 코포레이션 filed Critical 로비 솔루션스 코포레이션
Publication of KR20060031681A publication Critical patent/KR20060031681A/ko
Application granted granted Critical
Publication of KR101081729B1 publication Critical patent/KR101081729B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • 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
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/18Legal services
    • G06Q50/188Electronic negotiation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/00094Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised record carriers
    • G11B20/00115Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised record carriers wherein the record carrier stores a unique medium identifier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • G11B20/00217Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier the cryptographic key used for encryption and/or decryption of contents recorded on or reproduced from the record carrier being read from a specific source
    • G11B20/00231Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier the cryptographic key used for encryption and/or decryption of contents recorded on or reproduced from the record carrier being read from a specific source wherein the key is obtained from a local external medium, e.g. a card
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • G11B20/00217Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier the cryptographic key used for encryption and/or decryption of contents recorded on or reproduced from the record carrier being read from a specific source
    • G11B20/00246Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier the cryptographic key used for encryption and/or decryption of contents recorded on or reproduced from the record carrier being read from a specific source wherein the key is obtained from a local device, e.g. device key initially stored by the player or by the recorder
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • G11B20/00217Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier the cryptographic key used for encryption and/or decryption of contents recorded on or reproduced from the record carrier being read from a specific source
    • G11B20/00253Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier the cryptographic key used for encryption and/or decryption of contents recorded on or reproduced from the record carrier being read from a specific source wherein the key is stored on the record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • G11B20/0042Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier the copy protection scheme being related to a specific access protection standard
    • G11B20/00449Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier the copy protection scheme being related to a specific access protection standard content scrambling system [CSS]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/00731Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a digital rights management system for enforcing a usage restriction
    • G11B20/00818Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a digital rights management system for enforcing a usage restriction wherein the usage restriction limits the signal quality, e.g. by low-pass filtering of audio signals or by reducing the resolution of video signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/00884Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a watermark, i.e. a barely perceptible transformation of the original data which can nevertheless be recognised by an algorithm
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/418External card to be used in combination with the client device, e.g. for conditional access
    • H04N21/4181External card to be used in combination with the client device, e.g. for conditional access for conditional access
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42646Internal components of the client ; Characteristics thereof for reading from or writing on a non-volatile solid state storage medium, e.g. DVD, CD-ROM
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • H04N21/4325Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4405Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream decryption
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4627Rights management associated to the content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8193Monomedia components thereof involving executable data, e.g. software dedicated tools, e.g. video decoder software or IPMP tool
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8358Generation of protective data, e.g. certificates involving watermark
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/913Television signal processing therefor for scrambling ; for copy protection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/913Television signal processing therefor for scrambling ; for copy protection
    • H04N2005/91307Television signal processing therefor for scrambling ; for copy protection by adding a copy protection signal to the video signal
    • H04N2005/91342Television signal processing therefor for scrambling ; for copy protection by adding a copy protection signal to the video signal the copy protection signal being an authentication signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/913Television signal processing therefor for scrambling ; for copy protection
    • H04N2005/91357Television signal processing therefor for scrambling ; for copy protection by modifying the video signal
    • H04N2005/91364Television signal processing therefor for scrambling ; for copy protection by modifying the video signal the video signal being scrambled

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Technology Law (AREA)
  • Tourism & Hospitality (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

본 발명은 보안 논리 및 컨텐츠의 통합을 인에이블함으로써 플레이어 제작업체들로부터 컨텐츠 저자들로 보안을 통한 책임 및 제어를 이동시키는 기술들에 관한 것이다. 전형적인 광학 디스크(200)는 타이틀의 보안정책들 및 해독 프로세스를 구현하는 데이터 처리연산들과 결합된 암호화된 디지털 비디오 타이틀을 반송한다. 플레이어 장치들은 처리 연산들을 해석함으로써 컨텐츠를 재생하는 처리환경(예컨대, 실시간 가상 머신)을 포함한다. 플레이어들은 컨텐츠 코드가 매체로부터 데이터를 로드하도록 하는 절차 호출을 제공하며, 재생 환경 구성들을 결정하며(225), 보안 비휘발성 저장장치를 액세스하며(250), 출력용 CODEC들에 데이터를 제출하며, 및/또는 암호화 연산들을 수행한다. 컨텐츠는 저작권 침해 카피들을 추척하기 위하여 디코딩된 출력에 법정 워터마크들을 삽입할 수 있다. 만일 저작권 침해자들이 플레이어 또는 타이틀을 절충한다면, 미래의 컨텐츠는 예컨대 공격을 차단하거나, 저작권 침해된 매체를 폐기하거나 또는 플레이어의 취약성들을 보정하기 위하여 원시 코드를 사용하는 보안 특징들로 마스트될 수 있다.

Description

저작권 침해를 제어하고 쌍방향 컨텐츠를 인에이블시키기 위한 재프로그램가능한 보안{REPROGRAMMABLE SECURITY FOR CONTROLLING PIRACY AND ENABLING INTERACTIVE CONTENT}
본 발명은 일반적으로 디지털 컨텐츠의 배포와 저작권 침해(piracy) 대책에 대한 그밖의 데이터와 그 밖의 승인되지 않은 사용 또는 재배포에 관한 것이다.
디지털 컨텐츠의 보호를 위한 다양한 시스템이 제안되어 왔다. 대부분 이러한 방식은 컨텐츠의 승인되지 않은 사용과 컨텐츠가 미디어상에 저장되거나 신뢰할 수 없는 통신 채널로 전송되는 동안의 카피로부터 보호하기 위해 컨텐츠를 암호화한다. 해독 알고리즘 및 키는 신뢰받는 변조 방지(tampering-resistant) 소프트웨어 또는 하드웨어 모듈에 의해 관리되고, 이들은 컨텐츠가 어떻게 사용될 것인가를 특정하는 액세스 제어 규칙(고정되거나 설정가능)을 강제하도록 설계된다.
컨텐츠 보호 방식은 일반적으로 특정 재생 환경에 대해 맞춰진다. 예를 들어, 소프트웨어-온리 스트리밍 컨텐츠 플레이어 내의 저작권 침해 방지 시스템은 변조 방지 하드웨어의 보안 혜택이 결핍된 개인 컴퓨터에 대해 설계되었지만 특별한 어려움없이(예를 들어, 사용자가 플레이어를 언인스톨하거나 제조자 웹사이트에서 업데이트된 버전을 다운로드한다면) 일반적으로 업그레이드될 수 있다. 따라서, 이러한 시스템은 하드웨어-기반 플레이어보다 낮은 보안성을 제공하지만, 업그레이드된 보안 특징은 컨텐츠 스트림의 수정과 사용자가 자신의 소프트웨어를 업그레이드하는 요구에 의해 배치할 수 있어 공격의 결과는 상대적으로 작다.
이에 비해, 광학 미디어를 플레이하는 소비자 전자 하드웨어 디바이스 내에 내장되는 보호 방법은 업그레이드가 어렵다는 것이 주지의 사실이다. 보안의 난제는 광학 미디어(이는 하위 호환성이 없는 보안성 업그레이드를 금지한다)의 긴 수명, 편의성과 플레이어에 대해 업데이트를 이행하기 위한 신뢰성 있는 방식의 결핍, 및 플레이어 구현간의 표준화의 결핍을 포함한다. 재생 디바이스의 긴 수명과 모든 새로운 컨텐츠는 오래된 플레이어상에 플레이될 것이라는 소비자의 기대와 결합된 이러한 어려움들은 보안 업그레이드 도입을 극도로 어렵게 한다. 그 결과, 대부분의 소비자 전자 디바이스는 카피에 대한 실질적인 보호를 거의 제공하지 않으며, 소비자 전자 디바이스 내 배치된 극히 소수의 컨텐츠 보호 표준은 간략화되는 경향이 있고, 엄중한 방식은 유연성과 재생가능성을 거의 제공하지 못한다. 도 1에 종래 기술에 있어 대표적인 컨텐츠 보호 시스템을 도시한다. 컨텐츠 플레이어(100)는 비휘발성 프로그램 메모리(105) 내 소프트웨어를 포함하고, 플레이어의 보안 정책(110), 해독 코드(120), 및 플레이어 키(130)를 구현한다. 이러한 코드 및 키는 미디어(15)로부터 판독된 컨텐츠가 정당한지를 확인하기 위해 프로세서(140)에 의해 사용되고, 만약 정당하다면, 컨텐츠를 해독하고 출력 페이스로 그 결과를 제공한다. 도 1에 도시된 것과 같은 보호 시스템의 일례는 디지털 오디오 테이프, DVD 비디오 보호 목적의 컨텐츠 스크램블링 시스템(CSS), 및 DVD 오디오를 보호하기 위해 제안된 CPPM 방식이 이용되는 카피 제어 방식을 포함한다.
관련 배경 기술에 다양한 기술이 공지되어 있다.
액세스 제어 정책 : 배경 기술에는 다양한 액세스 정책과 이 정책을 특정하기 위한 방법이 공지되어 있다. 예를 들어, Hellman의 미국특허 4,658,093의 소프트웨어 보호 시스템은 발행자에 의해 발행된 직접적 권한 코드(straightforward authorization code)를 사용한다. 이에 비해, Ginter 등의 미국특허 5,982,891은 다수의 관계자를 포함하는 다양하고 복잡한 액세스 규칙을 기술한다. PolicyMaker와 X.509 증명 포맷과 같은 액세스 정책(컨텐츠 배포 및 다른 응용을 함께 사용하는)을 인코딩하기 위한 표준 또한 제안되어 있다.
안티-바이러스 소프트웨어 : Trojan horses, 및 다른 악성 코드를 검출하고 봉쇄하기 위한 방법은 배경 기술상에 잘 알려져 있다. 이러한 방법들은 일반적으로 공지의 명령 시퀀스와 같이, 공지의 바이러스의 속성을 스캐닝하는 것을 포함한다. 이러한 프로그램들은 기동 중 파일 스캐닝, 즉각적 파일 스캐닝, 메모리 스캐닝, 새로운 미디어 스캐닝, 네트워크 통신 스캐닝을 실행하는 프로그램 스캐닝 등과 같은 다양한 방식으로 플레이될 수 있다.
컨텐츠 보호 시스템 및 DRAMs : 다양한 컨텐츠 보호 시스템(이는 때로는 디지털 권리 관리(DRM) 시스템으로 불리기도 한다)이 제안되어 왔다. 배경기술상의 DRM 시스템은 통상 암호화된 형태로 배포될 컨텐츠를 제공하고, 합법적 구매자에 대해 해독 키를 공급하거나 해독 동작을 수행한다. 상업적 DRAMs 내에 특등 배포(암호화된 컨텐츠가 사용자 사이에서 교환 가능한), 사용량별 지불 청구(전화선을 통해 통보하는 오프라인 사용량별 지불 포함), 가변 가격(billing rate)(광고, 사용의 수 또는 기간, 요청된 사용자의 동작, 사용자 내역에 근거한 여러 가지 총액 부과), 다양한 데이터 타입(오디오, 비디오, 텍스트, 소프트웨어 등)에 대한 보호, 다양한 포맷의 지원, 및 다양한 재생 디바이스(휴대용, 셋탑, 하드웨어 지원에 근거한 컴퓨터, 소프트웨어 자체 등)에 대한 지원을 포함하는 다양한 특징이 제안되거나 포함되어 왔다.
카피 보호 : 개인 컴퓨터 카피 보호 방법은 공지되어 있고 컴퓨터 게임과 같은 몇몇 종류의 소프트웨어에 대해 폭 넓게 배치되어 있다. 이러한 방법들은 카피하기에 어렵게 설계된(예를 들어, 고의로 에러를 통합하거나 복사하기 어렵게 비표준 포맷팅함으로써) 물리적 미디어로 소프트웨어를 결합시키는 것을 포함하곤 한다. 다른 카피 방지 시스템은 예를 들어 사용자가 서버로부터 권한 코드의 획득을 요청함으로써 인스톨 프로세스를 보안화하는 것을 포함한다. 일부 예에 있어서는, 카피 보호 특징들이 시스템 내로 설계된다. 다른 예(컴퓨터 소프트웨어, 비디오 카세트 테이프, 및 오디오 CD에 사용되는 카피 보호 시스템을 포함)에 있어서, 카피 보호는 대부분의 플레이어의 재생을 허용하나 미디어 카피를 시도하는 대부분의 시도를 혼란시키는 비표준 인코딩을 가지는 미디어를 생산함으로써 구현된다. 카피 보호 시스템들에 대한 중요한 설계상의 난제는 가능한 효과적으로 부정한 행위를 금지하면서(즉, 양질의 보안성을 획득하면서) 합법적 사용자에 대한 악영향을 최소화(즉, 높은 플레이 능력의 획득 및 사용자의 액세스성)하는 것이다.
암호화 기능 : 다양한 기본 암호화 기능이 공지되어 있으며, 블록암호(block ciphers), 해시 함수, 디지털 서명 시스템(그리고 다른 공개 키 시스템), 키 유지관리 시스템 등을 포함한다. 기본 암호화에 대한 보다 상세한 정보는 Bruce Schneier의 Applied Cryptography를 참조하라.
암호화 오라클 : 블록암호 또는 다른 암호화 함수를 사용하여, 시크릿 암호화 변환을 임의적인 외부-공급 입력 메시지로 인가하고 그 결과를 되돌리는 "암호화 오라클"을 구성할 수 있다. 암호화 오라클은 오라클 키를 결정하기 위해 오라클 알고리즘과 프로토콜을 아는 공격자에 대해 계산적으로 실행 불가능하게 하도록 구성될 수 있다. 게다가, 오라클로 입력 가능한 수가 극도로 크기 때문에(예를 들어, 256 비트 블럭 암호로부터 구성된 오라클에 관해서는 2256), 공격자는 무작위 질문에 대한 응답을 예상하거나 사전 계산하는 것은 불가능하다.
번역기, 에뮬레이터, 및 가상 머신 : 배경기술에는 다양한 해석 컴퓨터 언어가 공지되어 있다. 자바와 같은 몇몇 해석 언어는 소스 코드를 실행가능한 또는 해석가능한 형태로 변환하는 편집 프로세스를 요구한다. 이에 비해, 대부분의 BASIC 번역기는 소스 코드상에서 직접 동작한다. 몇몇 번역기는 자가 수정 코드를 허용하나 한편 그 밖의 것들은 그렇치 않다. 번역기 구현 및 어셈블리 언어 에뮬레이팅 기술 또한 배경기술에 공지되어 있다. 예를 들어, Virtual PC나 SoftWindows와 같은 정교한 에뮬레이터는 Apple Mac 컴퓨터상의 Microsoft Windows용으로 설계된 프로그램을 실행할 수 있다. 자바 및 자바카드 목적으로 사용되는 것 같은 가상 머신(VM) 설계는 공지되어 있고, 컴퓨터상의 원시 코드(native code)와 상호작용하거나 다른 메모리 공간 내의 다른 VM 기능을 요청할 수 있는 VM도 공지되어 있다. (많은 자바 구현은 이러한 능력을 제공한다.) 해석 언어는 일반적으로 프로세서-독립 디바이스 드라이버 포맷 형성과 같은 응용 목적 또는 크로스-플랫폼 호환성이 요구되는 곳에 사용된다. (예를 들어, Sun Microsystems, 1993, 5페이지, Writting FCode 2.x Programs를 참조하라.)
키 유지관리 : 다양한 암호화 키의 할당 및 유지관리 방법이 제안되어 왔다. 디바이스는 디바이스-특정키, 그룹키, 공개키, 개인키, 인증 등을 가질 수 있다. 키는 개별적 디바이스로, 선택된 디바이스의 그룹(예를 들어, Fiat의 미국특허 5,592,552에 기재된)으로, 모든 디바이스 등등으로 할당될 수 있다. 디바이스는 대칭키, 공개키(예를 들어, 증명서와 디지털 서명을 확인하기 위한), 및 비대칭 개인키를 포함하는 다른 형태의 다양한 키를 포함할 수 있다.
미디어 : 미디어 기술은 상당한 저장 용량, 낮은 제조 비용, 및 양호한 내구성을 제공할 수 있다고 알려져 있다. 현재 미디어 기술의 실례는 광학 디스크(CD, DVD 등), 자기 미디어, 플래시 메모리, 및 ROM을 포함한다. 홀로그래픽 메모리와 같은 새로운 기술 또한 발전되고 있다. 미디어의 단일체는 다양한 타입의 데이터를 포함할 수 있다고 알려져 있다. 예를 들어, 컴팩트 디스크는 개인 컴퓨터용의 데이터 세션(예를 들어, 소프트웨어, 압축된 보너스 트랙, 이미지, 비디오, 가사 등을 포함) 뿐만 아니라 표준 레드 북(Red Book) 오디오 트랙을 포함할 수 있다. 개인 컴퓨터 사용 목적의 컴팩트 디스크는 컨텐츠를 플레이하기 위해 요구되는 재생 소프트웨어 뿐만 아니라 암호화된 컨텐츠 양자를 포함할 수 있다.
네트워크 통신 : 인터넷을 포함하는, 정교화된 데이터 네트워크가 공지되어 있다. 이러한 네트워크는 유연성, 신뢰성, 높은 대역 데이터 통신을 제공할 수 있다. 물리적 연결을 가지는 네트워크가 통상적으로 보다 높은 대역을 제공할 수 있긴 하지만, 무선 통신 채널 또한 대중적이다.
갱신가능 보안성 : 일부 예에 있어, 가능한 모든 공격을 방지할 수 있게 보장된 보안 시스템을 생성하는 것은 실제적이지 않다. 그 결과, 공격 후 보안성을 갱신할 수 있는 것 예를 들어, 손상된 어느 키의 사용 중지 및 취약성의 수정에 의하는 것이 바람직하다. 보안성을 갱신할 수 있는 것이 바람직하긴 하지만, 다양하게 배치되고 제안된 시스템은 다양한 종류의 공격에 대한 어떤 효과적인 회복 메커니즘이 결여된다.
샌드박스(sandboxing) : 샌드박스는 프로그램이 시스템을 손상시킬 수 있는 임의의 동작의 액세스를 불능케하는 제어된 환경 내에서 소프트웨어 프로그램을 실행하는 것을 포함한다. 자바 "가상 머신"은 비신뢰성의 애플릿(인터넷을 통해 다운로드된 것과 같은)이 실행되도록 샌드박스를 지원한다.
보안 모듈 : 많은 보안 시스템은 보안 업그레이드가 시스템의 다른 부분으로 대체되는 어려움 또는 비용없이 수행될 수 있도록 제거가능한 보안 모듈을 채용한다. 예를 들어, 제거가능한 보안 모듈이 다양한 유료 텔레비젼 시스템에서 사용된다.
소프트웨어 업데이트 : 안전한 소프트웨어 업데이트는 제공된 소프트웨어 업데이트, 업데이트를 유효화하는 디지털 서명 또는 메시지 인증 코드를 확인한 다음, 이어서(서명이 유효하면) 업데이트를 수행함으로써 이루어진다. 예를 들어, 디지털 오디오 플레이어가 코드 업데이트를 수신할 수 있고, 업데이트에 관한 디지털 서명 또는 메시지 인증 코드를 확인할 수 있고, 그리고(유효하다면) 이들의 코드를 업데이트하는 것이 알려져 있다. 업데이트가 수정 요구(예를 들어, 시퀀스 카운터를 사용하여)로 적용된 것을 보장하기 위한 그리고 실패 또는 미성공 업데이트로부터 회복(예를 들어, 이전 소프트웨어 버전으로의 복귀 또는 특별한 회복 코드의 활성화에 의해)하기 위한 방법이 공지되어 있다. 소프트웨어 업데이트는 인터넷, 광학 미디어, ROM 카트리지 등과 같은 가상적인 다양한 배포 메커니즘을 통해 전달될 수 있다. 소프트웨어 업데이트는 신호를 이용한 코드 업데이트를 디스크램블러로 배포함으로써 유료 텔레비젼 저작권 침해를 방지하기 위해 사용되어 왔으며, 이는 다음 비디오 세그먼트에 대한 수정 해독 키를 계산하는 새로운 코드를 공급하고 성공적으로 실행한다. 이러한 업데이트는 일반적으로 승인되지 않은 디스크램블러를 무능하게 하거나 파괴시킴으로써 승인되지 않은 감상을 방지하기 위해 사용된다.
스테가노그래피(Steganography) : 스테가노그래피는 데이터에 정보를 은닉하는 것을 포함한다. 예를 들어, 이미지 또는 사운드 레코딩의 최하위 비트에 암호화된 데이터가 배치되는 것이 공지되어 있다. 공격자가 이러한 이미지 또는 레코딩을 획득하더라도 하위 비트는 때때로 무작위로 출현하고 강력한 암호 알고리즘에 의해 생성된 암호문은 키 없이 무작위 데이터로부터 구별할 수 없기 때문에 해독 키가 어떤 은닉 데이터인지 아닌지 결정조차 할 수 없다는 것을 알지 못한다.
변조 방지(tamper-resistance) : 공격을 방지하는 디바이스의 설계 및 구성에 대해서는 많은 방법이 공지되어 있다. 변조 방지 하드웨어는 일반적으로 리버스 엔지니어링 디바이스로부터의 공격자 또는 암호화 모듈로부터 키를 추출하는 것을 방지하는 것이 바람직한 시스템 내에 사용된다. 예를 들어, Wave System은 "Embassy"라는 변조 방지 마이크로프로세서-기반 집적회로 생산품을 거래하는데, 컨텐츠 플레이어 또는 범용 컴퓨터에 집적되는 이것은 디지털 컨텐츠의 배포 보안용으로 광고된다. 변조 방지 소프트웨어를 구현하는 방법 또한 제안되어 있다(예를 들어, Aucsmith 등의 미국특허 5,892,899 참조하라).
배반자 추적(Traitor Tracing) : 범죄 추적 방식은 전형적으로 고객 특정 또는 훼손 디바이스로 승인되지 않은 디바이스들에서 사용된 키들을 다시 추적함으로써, 훼손들 또는 공격들의 소스를 식별하기 위해 제안되었다.
워터마킹(Watermarking) : 워터마크들은 플레이될 때 특수화된 검출기에 의해 검출되지만 컨텐츠의 인간 지각에는 영향을 미치지 않는(또는 최소한으로 영향을 미치는) 컨텐츠에 내장되는 신호이다. 그림, 사운드 레코딩 및 이미지에 내장된 워터마크는 카피가 승인되지 않았음을 나타내기 위해 저작권 보유자에 의해 사용되어 왔다. "로버스트(Robust)" 워터마크는 포맷(아날로그 출력으로부터의 재-레코딩 포함)간의 변환을 견뎌낼 수 있으며 워터마크를 제거하고자 하는 시도하는 공격에 대항하는 보안의 정도를 변화하여 제공할 수 있다는 것으로 알려져 있다. 이에 비해, "손상되기 쉬운(fragile)" 워터마크는 포맷간의 변환을 견디는 능력을 약간 또는 거의 가지지 못하나, 설계가 용이하고 보다 많은 정보를 운반할 수 있다.
가능한 모든 공격을 완전히 방지할 수 있는 저작권 침해 방지 시스템이 없다 하더라도, 배경기술의 시스템은 디지털 대 디지털 카피 또는 비보호된 포맷에 대한 보호된 포맷의 고속 리핑(ripping)을 사용하는 뜻밖의 저작권 침해와 같이 해결가능한 문제에 대해 실제적 솔루션을 제공하는 데 실패한다. 배경기술의 많은 시스템의 중대한 제한들은 다음을 포함하지만, 이에 한정되는 것은 아니다:
글로벌(global) 시크릿들에 대한 의존 : 많은 보호 시스템은 암호화 알고리즘, 키, 및 시크릿이 유지되도록 디코딩하기에 필요한 다른 정보를 요구한다. 그 결과, 디코딩 프로세스는 시스템의 보안을 훼손시키는 일 없이 개방 표준 문서에 기록화될 수 없다. 또한, 다수의 구현이 사용가능하다면, 공격자는 가장 취약한 구현을 공격함으로써 전체 방식을 잠재적으로 중지시킬 수 있다. (이러한 공격이 최근 DVD 비디오 보호 시스템에서 발생된다.) 이러한 시스템이 폐쇄된 단일 벤더(single-vendor) 환경에서는 유용하지만, 표준화될 수 없으며 효과적인 장기간 보안을 제공하지 못한다.
표준의 결여 : 컨텐츠 발행자는 이미 호환성이 없는 다양한 데이터 포맷과 해독 알고리즘에 전력을 투구하여 왔다. 다른 컨텐츠 보호 시스템은 다른 비즈니스 모델을 가능케하고, 하나의 모델에 전력을 투구한 발행인은 다른 모델을 요구하는 임의의 보안 시스템에 대해 이의를 제기할 것이다.
생산품 타입들과의 비호환성 : 많은 보안 특징은 모든 생산품 타입들과 통합될 수 없다. 예를 들어, 개인 컴퓨터용 다운로드가능한 소프트웨어 전용 플레이어는 변조 방지 하드웨어를 포함할 수 없다. 동일하게, 빈번한 소프트웨어 업데이트는 인터넷 연결성이 부족한 플레이어에게 전달되기 어렵다.
사용자 인터페이스 : 많은 제안들은 복잡한 사용자 인터페이스를 포함한다. 보안성은 정직한 사용자들에게 보이지 않아야만 한다. 사용자는 명백한 사용자 환경(예를 들어, 권한 코드의 획득 또는 엔터)을 요구하는 방식을 거절할 것이다. 일반적으로, 카 스테레오 및 비디오 디스크 플레이어와 같은 소비자 전자 디바이스는 사용하기 쉬워야 하는데, 많은 사용자가 문서를 판독하지 못하더라도, 기술에 의해 위압당해도, 시력이 좋지않거나 다른 핸디캡을 가지고 있더라도, 또는 플레이어에 의해 지원되는 언어가 충분하지 않더라도 만족할 것이기 때문이다.
법적 난제 : 몇몇 보안 시스템은 경쟁자들간의 협조를 요구한다. 이러한 협조는 독점 금지의(antitrust) 규제에 의해 불법화될 수 있다.
제조자 이득의 결여 : 제조자들은 플레이어 비용, 개발 시간(time to market)의 증가, 적법한 특징들의 포함 방지, 또는 다른 방식으로 생산품을 덜 효과적이거나 바람직하게 만드는 보안 특징에 반대할 것이다. 반도체 기술에 있어서의 진보는 보안 시스템을 구현하기 위해 요구되는 비용을 줄이긴 하지만, 효과적인 변조 방지 하드웨어는 여전히 설계 및 생산이 어렵고 비싸다. 그 결과, 제조자가 좋은 구현을 생산하는데 의존하는 컨텐츠 보호 시스템은 제조자의 매물이 보다 안전한 이점을 가지는 실제의 시장을 제공하지 않는 한 실패할 것이다.
불명확한 보안 정책 : 효과적인 보안 시스템은 사용자가 요구한 특정 액션에 대해 허용할 것인지 방지할 것인지를 결정하기 위한 룰 또는 의사결정 절차를 특정하여야만 한다. 많은 시스템에 있어서, 이러한 룰 또는 절차가 잘 특정되지 않고 있다.
유연성없는 보안 정책 : 컨텐츠 보호 시스템은 다른 발행인, 컨텐츠 타입, 관할권, 재생 환경 등에 대한 다른 모델을 지원하기 위한 유연성을 가지는 것이 바람직하다. 시스템은 너무 복잡해지지 않는 한, 필요한 유연성을 제공하여야 한다.
취약한 장기간 보안 : 보안 시스템은 장기간 동안 유효하게 유지하기에 충분히 강건하고 유연해야 한다. 배경기술의 적은 컨텐츠 보호 시스템이 하이-프로파일(high-profile) 포맷의 일부로서 수년 이상 지탱할 수 있으며, 한편, 대중적 포맷은 30년 이상을 지탱할 수 있다.
공격의 추적불가능 : 공격이 발생하면, 시스템은 훼손된(또는 오용된) 디바이스가 해지(revoke)될 수 있도록 그리고 범죄수사가 진행될 수 있도록 공격원을 식별할 수 있어야 한다.
본 특허출원은 다양한 공동 이용가능한 플랫폼 전역에 걸쳐 유연하고 갱신가능한 컨텐츠 보호를 제공하는 방식으로 구현될 수 있는 표준화가능한 컨텐츠 보호 시스템의 다양한 실시예와 측면에 관련한 것이다. 본 시스템은 보안성과 기능성에 대한 의사결정에 대해 전대미문의 유연성을 가지는 관계자(제조자, 발행인, 아티스트, 및/또는 소비자 등)를 제공한다.
본 시스템을 사용할 수 있는 예시적 플레이어(즉, 보호된 컨텐츠에 대해 해독 또는 다른 방식으로 액세스를 획득하는 것을 바라는 디바이스)는 몇몇 구성요소를 포함한다. 첫 번째는 광학 디스크 드라이브와 같은 데이터 또는 미디어 입력 인터페이스이다. 재생을 초기화하기 위해, 플레이어는 입력 인터페이스로부터 데이터 프로세싱 커맨드의 시퀀스를 로드하며 번역기 또는 다른 실행 모듈을 사용하여 이러한 커맨드를 실행한다. 본 실행 환경은 튜링-컴플리트(Turing-complete) 언어(플레이어의 메모리, 사용자 인터페이스, 및 성능 제한들에 대상인, 임의의 알고리즘을 실행할 수 있는 것)를 제공하는 것이 바람직하다. 실행 환경으로부터, 컨텐츠는 재생 환경의 구성을 결정하기 위해 그리고 플레이어의 키를 사용하여 암호화 동작을 수행하기 위해 질문할 수 있다. 이에 컨텐츠는 재생이 질문에 만족스러운 응답을 제공하는 플레이어 상에서만 오직 진행되도록 설계된다. 발행인은 또한 한정된 재생을 제공할 수 있다. 예를 들어, 저급 안전 플랫폼은 CD-품질 스테레오 오디오 또는 정규-선명도 이미지를 제공할 수 있고, 한편, 고급 안전 플랫폼은 고급 오디오 채널, 고-선명도 이미지, 높은 샘플링율, 및 높은 질의 압축을 제공할 수 있다. 재생이 시작된 후에라도, 재생은 컨텐츠의 데이터 프로세싱 커맨드의 제어하에 놓일 수 있다. 일실시 예에서는 강건하고, 원칙적으로 즉각적인 워터마킹을 수행할 능력을 포함한다. 컨텐츠 자체가 어떤 데이터 영역이 기동되는가를 제어할 수 있다는 것은 아주 작은 차이를 가지는 출력 데이터 버전 사이에서 선택함으로써 출력 내에 정보를 내장할 수 있게 한다. 저작권 침해 카피들은 이러한 차이들을 분석함으로써 특정 플레이어로 다시 추적되어질 수 있다.
컨텐츠는 자기 자신의 보안 정책을 포함하고 실시하기 때문에, 발생하는 공격은 저항력이 있는 새로운 컨텐츠를 설계하고 발행함으로써 대응할 수 있다. 유연성은 컨텐츠가 자신의 보안정책을 실시하는 것을 허용하고 또한 아티스트들의 선호도들, 지역적인 "정당한 사용" 규정 등에 대한 지원을 허용함으로써 생긴다. 새로운 플레이어의 특징은 새로운 컨텐츠-액세스가능 플레이어 기능을 부가함으로써 용이하게 부가할 수 있다.
비즈니스 측면에서, 임의의 컨텐츠 보호 시스템은 비즈니스와 조작적 구속과 양립하는 최적의 보안을 제공하는 것을 공통의 목적으로 하는 컨텐츠 발행인과 소비자 전자 제조업자가 연합하여 사용되는 것이 바람직하다. 본 시스템은 발행자가 자신의 보안 요구사항을 결정할 수 있고 컨텐츠 자체가 다양한 팩터를 고려하고 각 환경 내에서 기동할지 여부(어떻게 기동할지)를 결정하는 정책을 구현할 수 있음을 개시한다. 또한, 제조자는 제품설계에 자극을 받고 좋은 보안성을 제공하고 소비자가 가능한 한 가장 넓게 컨텐츠에 액세스하도록 저작권 침해를 어렵게 한다.
도 1은 배경 기술상의 컨텐츠 보호 방법을 사용하는 미디어 플레이어를 도시한다.
도 2는 여기에 개시된 컨텐츠 보호 방법을 사용하는 예시적 미디어 플레이어를 나타낸다.
도 3은 일 실시예의 해독부를 나타낸다.
도 4는 집중화된(centralized) 코드 사인 권한을 요청할 필요없이 비휘발성 메모리의 액세스를 보안화하는 플레이어 방법의 일 실시예를 나타낸다.
도 5는 비휘발성 메모리 슬롯에 부착될 때 예시적인 유효화 프로세스를 나타낸다.
도 2에는 물리적 미디어(200)를 사용하는 플레이어의 일 실시예를 도시한다. 재생 프로세스는 프로세서(210)에 의해 제어되고, 미디어 인터페이스(205)를 통해 미디어(200)에 액세스할 수 있다. 미디어(200)가 장착(예를 들어, 먼저 삽입될 때, 또는 시스템이 재 초기화될 때 등)될 때, 프로세서(210)는 미디어 인터페이스의 초기화에 의해 시작되고, 미디어의 컨텐츠 테이블을 판독하며, 지원된 보호 시스템을 인식한다. 만약 그렇다면, 프로세서는 미디어(200)의 작은 초기 부분을 실행 및 데이터 RAM(220)으로 로드한다.
번역기(215)를 사용하여, 프로세서(210)는 로드된 미디어부에 의해 특정된 데이터 프로세싱 동작 수행을 시작한다. 번역기(215)는 보다 복잡한 태스크가 달성될 수 있는 소정의 데이터 프로세싱 동작 세트를 제공한다. 이러한 해석된 언어는 튜링-컴플리트가 바람직하다. 튜링-컴플리트 프로그래밍 언어는 그 외 구현될 수 있는 언어 중 하나에 구현가능한 알고리즘을 특징으로 하며, 구현은 동일한 점근적 수행 특징을 가질 것이다. 튜링 컴플리트 프로그래밍 언어의 예시는 제한 없이 C, C++, BASIC, Fortran, Pascal, Java, 및 가상적 모든 어셈블리 언어들을 포함한다.
로딩된 부분은 번역기(215)에 의해 제공된 프로시저 콜 호출에 의해 진행된다. RAM(220)으로 로드된 초기 데이터가 상대적으로 작을지라도, 번역기(215)상에 작동하고 있는 코드는 프로시저 콜을 통해 미디어로부터 부가 데이터(코드 포함)를 로드할 수 있음으로써, 보다 복잡한 동작이 수행될 수 있도록 한다.
다른 프로시저 콜은 컨텐츠가 재생 환경 구성(225)을 결정하도록 한다. 이러한 컨텐츠는 재생이 진행되어야 하는지 여부를 결정하기 위한 재생 환경 특성(예를 들어, 플레이어 타입, 요청된 사용자 액션 등)을 분석할 수 있다. 일 실시예에 있어, 교정가능 문제가 검출(예를 들어, 미디어가 플레이어에 대한 보안 펌웨어 업그레이트를 포함한다면)된다면, 이에 대응할 수 있다. 만약 지원된다면, 컨텐츠는 또한 출력 인터페이스(250)에 질의할 수 있고, 만약 지원된다면, 목적지 프로그램/디바이스(260)(예를 들어, 증폭기, 디지털 스피커, 스피커 드라이버 등)는 보안 특성을 체크하기 위해, 암호화 키를 로드하고, 출력 파라미터(보안이 불명하다면 감소된 출력 품질을 특정하기 위해) 등을 특정한다.
일 실시예에서, 컨텐츠는 또한 암호화 오라클(230)에 질의할 수 있으며, 보안 하드웨어 업그레이드를 허용하는 제거가능한 외부 보안 모듈(235)(스마트 카드 등과 같은) 내에 구현될 수 있다. 오라클 또한 제한없이, 프로세서(210) 내, 플레이어 내 다른 하드웨어, 미디어 내, 스피커 등과 같은 부착된 디바이스 내 구현될 수 있다. 암호화 오라클(230)은 플레이어의 정체를 검증하는 증거를 가지는 컨텐츠를 제공할 수 있다. 오라클에 대한 질문으로부터의 결과는 다음 컨텐츠 또는 코드부를 해독하는데 사용될 수 있음으로써, 유효 키가 없는(또는 키가 해지된) 플레이어는 컨텐츠를 해독할 수 없도록 강력한 암호화 보장을 제공한다.
일 실시예에서, 번역기는 만약 그렇치않다면 플레이어를 훼손할 수 있는 암호화 시크릿(오라클 키와 같은)에 컨텐츠가 액세스하지 못함을 의미하는 "샌드박스" 내에 컨텐츠에 의해 특정된 데이터 프로세싱 커맨드를 실행한다.
샌드박싱은 모든 컨텐츠가 반드시 신뢰할만 하지 않는 곳에서 유용하다. 예를 들어, 공격자는 플레이어로부터 암호화 키를 추출하고자 하는 시도된 악성 컨텐츠를 생산하려고 한다.(예시적 암호화 오라클과 이들의 동작에 대한 추가적 정보는 하기에 제공된다.)
재생이 진행되어서는 안 된다고 컨텐츠가 결정하면(예를 들어 사용자가 카피를 시도하고 이러한 컨텐츠는 카피를 금지하도록 구성된다면), 컨텐츠는 에러를 보고하고 요청된 액션을 거절한다. 대안적으로, 컨텐츠는 승인되지 않은 카피들이 저하되고 이에 따라 매력이 떨어지도록 출력의 품질을 감소시키기 위한 표현 및/또는 출력 프로세스를 제어할 수 있다.
재생이 진행되어야 한다고 컨텐츠가 결정하면, 컨텐츠는 미디어 상에서 특정 위치(예를 들어, 특정 트랙)로부터 재생이 시작되어야 함을 명시하는 플레이어로부터의 신호를 대기한다. 미디어가 장착되었을 때 실행/데이터 RAM(220)으로 로드된 데이터 프로세싱 명령을 사용하여 번역기(215)는 요청을 수행한다. 컨텐츠가 재생이 진행되어야 한다고 결정하면, 미디어 인터페이스(205)에 미디어(200) 상의 적절한 위치로부터 암호화된 컨텐츠를 로딩하기 시작하도록 지시하기 위해 프로시저 콜을 사용한다. 컨텐츠는 유효 해독키와 벌크 해독 모듈에 대한 파라미터를 지정하며, RAM(220)(또는, 대안적으로, 미디어 인터페이스(205)로부터 직접적으로)으로부터 암호화된 컨텐츠를 회복시키고 이를 해독한다. 해독된 컨텐츠는 출력 인터페이스에 공급되고, 목적지 프로그램 또는 디바이스(260)에 대해 적절한 아날로그 또는 디지털 포맷으로 변환한다. 재생이 계속 수행됨에 따라, 번역기(215)에 의해 수행되는 데이터 프로세싱 명령은 새로운 해독 파라미터를 로드할 수 있고, 미디어(200) 등으로부터 판독하기 위한 새로운 데이터 블럭을 지정할 수 있다. 재생이 종료되면, 컨텐츠는 RAM(220)을 재 초기화할 수 있다.
추가적 정보는 번역기, 재생 시스템, 및 다른 실시예와 측면에 관한 이하의 섹션에 제공된다.
공격에 대한 응답
광범위하게 소프트웨어 내 그리고 저비용 소비자 전자 디바이스 내 구현된 저작권 침해 방지 시스템은 가능한 모든 공격을 방지할 수 없다. 여기에 개시된 기술은 공격 후에, 실존 공격을 실질적으로 봉쇄하는 방식으로 새로운 컨텐츠를 마스터하는 것을 용이하게 하기 위해 사용된다. 전문적 저작권 침해는 지속적으로 새로운 우회 시스템을 찾고 인스톨하고자 시도하기는 해도, 가벼운 저작권 침해는 공격 툴을 개선하고 유지하는데 지속적 노력을 수반할 것이고 따라서 가능하면 간단히 합법적으로 컨텐츠를 구매하는 것보다 훨씬 어려워질 것이다. 이하 여기에 개시된 기술이 몇몇 일반적 공격에 어떻게 해결할 수 있는지 기술한다.
공격의 첫번째 카테고리는 승인되지 않은 액션을 수행하기 위해 비훼손된 플레이어를 사용하고자 하는 시도를 수반한다. 예를 들어, 컨텐츠는 원본 미디어로부터 카피를 허용하지만 카피로부터 카피는 허용하지 않도록 마스터될 수 있다. 하나의 카피로부터 이러한 컨텐츠를 카피하기 위한 시도가 이루어졌다면(예를 들어, 카피 프로세스 동안 삽입된 변형을 검출 또는 현재 미디어의 시리얼 넘버 및/또는 타입을 원본과 비교함으로써 컨텐츠가 인식하는), 재생은 번역기 코드에 의해 봉쇄된다. 대안적으로, 번역기는 컨텐츠가 감소된 충실도(고 샘플율을 갖는 멀티 채널 오디오가 이용가능할 수 있을지라도 44.1 킬로헤르츠로 스테레오 오디오를 플레이하는 것 같은)로 플레이하도록 또는 추가적 저작권 침해 방지 경고를 삽입할 수 있다. 따라서, 번역기에 제공된 정보를 분석함으로써, 부적절한 사용자 요구가 검출되고 비-훼손된 플레이어 상에서 처리될 수 있다.
공격의 두 번째 카테고리는 플레이어의 암호화 키의 훼손을 수반한다. 플레이어의 암호화 키가 훼손되었다면, 공격자는 암호화 오라클을 에뮬레이팅함으로써 그리고 재생 환경에 관한 질문에 잘못된 응답을 제공(선택적으로)함으로써 완벽하게 훼손된 재생 환경을 에뮬레이트한다. 보안은 훼손된 디바이스내 제공하지 않았던 적어도 하나의 암호화 키를 요구하는 해석된 코드를 장래 컨텐츠 내에 생성함으로써 이러한 공격 후에 재설립될 수 있다. 특정 플레이어 모델 또는 제조자가 많은 공격의 소스(예를 들어, 플레이어 구현이 부적당한 보안을 가지기 때문에)라면, 발행자는 그러한 플랫폼에서 플레이하지 않을(또는 감소된 품질로 플레이할) 컨텐츠를 생성할 수 있다.
세 번째 공격의 카테고리는 컨텐츠의 특정 부분 또는 동일한 번역기 보안 코드를 포함하는 타이틀의 그룹의 훼손을 수반한다. 이러한 공격은 보안 체크를 우회하기 위해 컨텐츠 자체를 변경함으로써 또는 타겟 타이틀을 플레이하기 위해 주문된 악성 번역기를 생성함으로써 잠재적으로 장착된다. 이러한 공격은 장래 컨텐츠 내에 다른 또는 보다 나은 보호 소프트웨어를 배치함으로써 해결될 수 있다.
공격의 네 번째 카테고리는 보호된 미디어로부터 비보호된 포맷으로 컨텐츠의 카피를 수반하는데, 새로운 포맷으로 컨텐츠를 재배포한다. 이러한 공격을 완전히 방지할 수 있는 컨텐츠 보호 시스템은 없지만, 여기에 개시된 기술과 시스템은 특정 디바이스로 되돌아 훼손을 추적하는데 사용되고 장래의 공격을 방지하기 위해 해지할 수 있는 강력하고 유연한 워터마킹 능력을 제공한다. 저작권 침해를 위해 컨텐츠를 활발히 업로드하는 사용자의 수는 상대적으로 적기 때문에, 저작권 침해는 이러한 사용자의 플레이어를 식별하고 해지함으로써 상당히 줄일 수 있다. 선택적으로 암호문의 일부를 건너뛰기함으로써 해독 출력 내에 미세한 차이를 도입할 수 있다. 예를 들어, 일 실시예에 있어서, 컨텐츠는 해독하기 위해 플레이어의 해독 모듈을 지시함으로써 "제로" 비트를 워터마크할 수 있으며 제 1 암호문 부분을 출력하고 이어 제 2 암호문 부분을 건너뛴다. "1" 비트를 워터마크하기 위해, 컨텐츠는 제 1 암호문 부분을 건너뛰도록 모듈에 지시할 수 있으며 제 2 암호문 부분을 출력한다. 이러한 비트열을 인코딩함으로써, 플레이어의 정체, 암호화 동작, 사용자 액션 해독, 출력 디바이스 정보 등을 비제한적으로 포함하는 번역기 코드에 이용가능한 임의의 데이터로 데이터로 컨텐츠는 워터마크될 수 있다. 컨텐츠의 저작권 침해 카피들이 발견된다면, 워터마크는 싱글 플레이어로 되돌아가 불법 카피를 추적하기 위해 분석되고, 장래 컨텐츠 릴리즈(release)에서 해지된다. 이러한 능력은 또한 특정 플레이어로부터 기원된 특정 카피라는 확실성을 증명할 수 있기 때문에 법 집행과 법정 변론에 유용하다. 카피를 추적하기 위한 특성은 또한 사람들이 불법 카피를 만드는 것에 관하여 식별되고 체포되고 기소될 수 있다는 인식에 의해 낙담할 것이기 때문에 저작권 침해를 저해하는 것으로 공헌한다.
물론, 모든 환경에 있어서 가능한 모든 공격을 확실하게 방지할 수 있는 소비자-친화적 저작권 침해 방지 시스템은 없다. 예를 들어, 오디오 및 비디오는 아날로그 출력으로부터 레코드될 수 있다. (워터마크가 컨텐츠에 내장된다 하더라도, 워터마크 검출기 없는 레코더는 이용가능하다.) 아날로그 출력으로부터 포착된 데이터는 새로운 디지털 또는 아날로그 미디어 상으로 재차 마스터될 수 있고 원본의 보안 특성 없이 재배포된다. 동일하게, 미디어의 정밀한 카피를 만드는데 필요한 장비를 소유하는 전문 저작권 침해자에 의해 만들어진 카피는 플레이어에 의해 검출되지 않지만, 여기에 개시된 기술과 시스템은 미디어 클로닝(cloning)을 방지하는데 유용하다. 예를 들어, 미디어 상의 디스크 제조자 식별자는 정직한 또는 부주의한 카피 시설들이 저작권 침해자들에 의해 속은 것이 아니라는 것을 보장하기 위해 컨텐츠에 의해 체크될 수 있다. 미디어 타입 식별자는 읽기 전용 미디어로 판매된 컨텐츠가 레코드가능 미디어상에 재배포되는 것을 방지할 수 있다. 인터넷, 전화/모뎀, 또는 다른 네트워크 지원을 가지는 플레이어에 대해, 컨텐츠는 미디어가 유효하다고 확인하기 위한 재생에 앞서 (예를 들어) 서버로부터 인증을 획득할 수 있다. 비휘발성 스토리지를 가지는 플레이어는 잘못 알려진 미디어 시리얼 넘버의 테이블조차 저장할 수 있고, 컨텐츠 및/또는 플레이어는 미디어가 해지되었는지 여부를 결정하기 위해 질문할 수 있다.
재생 환경의 질문과 제어
컨텐츠는 컨텐츠 자체가 디코드될 것을 허용할 것인지 여부를 결정하도록 구성된다. 이러한 결정을 돕기 위해, 플레이어는 재생 환경에 관한 정보를 가지는 컨텐츠를 제공할 수 있다. 많이 한정된 정보(사용자의 요청된 액션 및 플레이어 모델과 같은)라 하더라도 많은 경우에 적합할 수 있으며, 재생이 진행되어야 하는가 여부에 따라 컨텐츠가 보다 많은 정보 평가를 할 수 있도록 보다 상세하고 정확한 정보가 바람직하다. 특정 정보와 능력이 플레이어 구현에 의존하는 컨텐츠에 제공된다 하더라도, (제한없이) 후술의 몇몇 예시적 기능과 능력은 컨텐츠에 제공될 수 있다. 다중으로 연결된 구성요소(출력 포트, 연결된 출력 디바이스, 운영시스템 디바이스 드라이버, 보안 모듈 등과 같은)의 외부에 구성된 플레이어에 대해, 다음 정보의 몇몇 또는 모두는 번역기를 포함하는 플레이어의 주요 부분뿐만 아니라 상기 연결된 디바이스에 제공될 수 있다.
보안 지원 정보 : 보안 명세 버전, 지원된 질문 기능, 및/또는 보안 모듈 폼 팩터(대체가능 하드웨어, 내장된 하드웨어, 업데이트가능 펌웨어, ROM 펌웨어, PC 소프트웨어 등.) 등. (예시적 암호화 프로세싱 기능 및 재생 제어/해독 기능은 하기에서 상세히 토론한다.)
제조자 정보 : 성명, 식별자, 웹 사이트, 공개 키/인증, 제조 뱃치(batch), 제조 일/시간, 제조 지역, 제조 국가, 제조자 주소, 기술적 지원 접촉 정보, 및/또는 제조자 보증 정보 등.
디바이스 정보 : 생산 라인, 시리얼 넘버, 모델 넘버, 펌웨어/소프트웨어 버전, 디바이스 공개 키/인증 식별자, GPS 위치 또는 다른 물리적 위치/지역, 컨텐츠 지원 코드 타입, 네트워크/인터넷 지원 정보, 네트워크 어드레스, 디바이스 전화번호, IP 어드레스, 워터마크 지원, 번역기 성능 등급, 보안 인증 등급, 디바이스 배포자, 디바이스 소매상인, 디바이스 폼 팩터, 및/또는 보안 명세 등.
사용자 정보 : 사용자 성명, 지리학적 지역, 국가, 주소, GPS 위치 또는 다른 물리적 위치/지역/국가 등, 사용자 전화번호, IP 어드레스, 이메일 주소, 웹 주소, 선호 언어, 논쟁 소재에 대한 내성, 선호 지불 방법/계정, 지불 제한, 구매 내력, 및/또는 사생활 선호도 등.
미디어 제어 : 질문 미디어 포맷, 레코드가능 대 비-레코드가능, 미디어 시리얼 넘버, 레코딩 디바이스 타입, 레코딩 디바이스 소유자, 레코딩 디바이스 시리얼 넘버, 레코딩 디바이스 보안 정보, 및/또는 레코딩 디바이스 워터마크 체킹 능력 등. 또한 기능들은 미디어로부터의 판독, 미디어로의 기록, 미디어 포맷, 미디어 테스트, 및/또는 미디어 선출들을 허용할 수 있다. 부가적 기능은 특정 미디어 포맷에 의해 지원되는 암호화 기능 또는 다른 특별 능력에 대한 액세스를 제공할 수 있다.
요청된 사용자 작동 : 예를 들어, 플레이, 레코드, 새로운 포맷으로 변환, 휴대용 디바이스로의 로드, 제 1 카피(copy) 형성, 다중 카피 형성, 및/또는 동시적 플레이/레코드 등. 컨텐츠는 또한 요청된 작동을 초기화 또는 변경하는 능력을 부여받을 수 있다.
출력 정보 : 출력 포트에 대한 정보, 출력 포트 구성, 출력 포트 보안 특성, 연결된 디바이스, 출력 데이터 포맷, 및/또는 출력 데이터 품질/해상도 등. 만약 지원된다면, 컨텐츠가 직접 출력 디바이스를 질문, 디바이스에 관한 추가적 정보를 획득, 및/또는 암호화 동작을 요청 등을 할 수 있다. 플레이어는 또한 컨텐츠가 예를 들어, 보안이 취약하다면 감소된 품질의 출력을 지정하는, 이러한 파라미터를 변경하는 것을 허용할 수 있다.
환경 : 플랫폼상에 다른 구동 프로그램들 및 디바이스 드라이버들의 식별들/해시(hash)들/버전들; 메모리의 컨텐츠들 또는 해시들; 인스톨된 공격 검출 모듈들의 버전; 공격에 대한 시스템 스캔들 결과, 및/또는 부정 검출기의 상태 등. 이러한 기능은 또한 예를 들어, 다른 프로그램에서 보안 취약성을 교정하기 위해, 컨텐츠가 메모리를 변경하는 것을 허용할 수 있다.
시간 : 날짜, 시간, 시간대, 경과된 클럭 사이클 카운트, 마지막 리셋 이후 시간, 제조 이후 시간, 최후 보안 업그레이드 이후 시간, 최후 뱃터리 교환 이후 시간, 및/또는 남은 뱃터리 수명 추산 등.
연결성 : 플레이어 통신 능력 결정, 현재 연결 상태 체크, 네트워크 연결 설립, 모뎀 연결 설립, 네트워크 연결 설립의 임계 지정, 연결 보안 특성 체크/지정, 데이터 변환, 데이터 수신, 연결 폐쇄, 및/또는 연결 유휴상태 등.
사용자 인터페이스 : 사용자 메세지 디스플레이, 가사 디스플레이, 그래픽 이미지 디스플레이, 그래픽 이미지 프린트, 광고/선전 메세지 디스플레이, 가용 사용자 인터페이스 제어 식별, 사용자 입력 획득, 플레이어의 음성 합성기를 사용하여 사용자에게 음성 플레이, 및/또는 에러 보고 등.
워터마크 제어 : 출력하기 위한 컨텐츠 지역 선택, 외부 워터마킹 알고리즘들 선택, 외부 워터마크 검출기들 제어, 및/또는 마크 검출기 상태 체크 등.
그 밖 : 플레이어/재생 상태 정보, 페이-퍼-플레이(pay-per-play) 청구 제어(예를 들어, 플레이어 기반 펀딩 소스(funding source)), 에러 처리, 재생 종료, 안전한 비휘발성 메모리 지원(하기 참조), 플레이어 펌웨어 업데이트 적용, 및/또는 외부 모듈(동적으로 링크된 라이브러리와 같은) 호출 등.
기능과 파라미터의 몇몇 표준화는 구현예들 간의 상호운용(interoperability)을 보장하는데(예를 들어, 컨텐츠가 최초로 발행된 후 설계된 플레이어 환경내에서 효과적으로 기능할 수 있도록) 유용하며 안전한 컨텐츠를 저작하는 태스크를 간략화하는데 유용하다. 표준화는 특히 다양한 다른 제조자들의 제품이 동일한 정보 타입 또는 동작을 제공하여야 하는 기능에 유용하다. 예를 들어, 기능과 응답 코드는 컨텐츠가 표준화될 플레이어 유형 팩터(홈 오디오/비디오, 휴대용, 자동차, 개인 컴퓨터 소프트웨어 자체, 하드웨어 지원을 받는 개인 컴퓨터 소프트웨어, 전문적 스튜디오, 영화관 등)를 결정하도록 한다. 표준화는 제조자가 이전에 존재하는 컨텐츠가 이해할 수 없는 비표준 포맷 내에 적절한 위험 관련 정보를 보고함으로써 보안 제어를 피하고자 하는 것을 방지할 수 있다는 추가적 혜택을 가진다.
물론, 본 시스템은 컨텐츠 생성자가 그들이 사용하기 위해 선택한 것을 사용하기 위한 추가적인 독점적 기능을 제조자가 추가하도록 구성될 수 있다. 새로운 기능을 추가하는 능력은 특히 제조자의 제품에 새로운 특징을 부가하고자 하는 제조자에게 가치가 있는데, 제조자가 이러한 특징들을 부가할 수 있고, 이 특징을 지원하는 컨텐츠 발행인과 협력적인 비지니스 관계를 설립할 수 있기 때문이다. 이러한 실시예는 (필요하다면) 퇴보 호환성을 유지하는 동안 용이하게 확장될 수 있다.
제조자는 컨텐츠에 적절한 정보를 제공할 책임을 가진다. 한편, 컨텐츠는 수신한 대량의 정보의 정확성을 직접적으로 확인할 수 없고, 제조자가 본 정보는 정확하다는 보장을 강력하게 장려하는 곳에 엄격히 필요한 것이 아니다. 예를 들어, 발행인은 그들의 장래 컨테츠가 비정직한 제조자에 의해 제조된 제품상에서 플레이되는 것을 방지할 수 있다.
플레이어가 컨텐츠에 제공하는 정보의 암호화 인증을 제공한다면(예를 들어, 인증된 플레이어 또는 제조자 키를 사용하여 발행된 디지털 서명을 포함함으로써) 유익할 수 있다고 하더라도, 이러한 인증은 대부분의 데이터에 강제적인 것은 아니다. 잠재적으로 비신뢰 인터페이스를 통해 연결된 출력 디바이스(고품질 디지털 오디오 데이터를 요청하는 디지털 스피커와 같은) 또는 시스템의 다른 부분에 대해, 신뢰성있는 디바이스로 위장한 악성 디바이스는 검출되고 회피될 수 있도록 암호화 인증은 보다 중요하다.
암호화 프로세싱
재생 환경을 기술하는 정보를 제공함에 부가하여, 예시적 플레이어는 또한 컨텐츠에 의해 호출되는 암호화 동작을 구현한다. 이러한 동작은 암호화 오라클처럼 행동할 수 있으며, 컨텐츠가 입력 자료(예를 들어, 64비트 평문 블럭)를 공급하게 허용하고 암호화 계산 결과를 되돌린다. 일 실시예에 있어, 암호화 계산으로의 입력은 적어도 하나의 키(이들 값은 보통 미지이며 컨텐츠로 액세스 불가능하다)와 컨텐츠-특정 입력 자료를 포함한다.
하기에는 재생 환경의 인증, 컨텐츠 해독 키의 획득 등을 포함(제한없이)하여 사용되는 컨텐츠에 제공되는 암호화 기본 명령의 예시이다:
블럭 암호문 오라클: 오라클은 시크릿 키를 사용하여 입력 메세지를 암호화(또는 해독)하고, 암호문(또는 평문) 결과를 생성한다.
해시 함수 오라클: 전형적으로 시크릿 키(예를 들어, HMAC-SHA와 같은 알고리즘을 사용하여)를 사용하여 결과를 생성하기 위해 입력 메세지는 해시된다.
디지털 서명 오라클: 입력 메세지는 결과를 생성하기 위해 시크릿(개인) 키를 사용하여 디지털로 서명된다. 본 기능은 또한 컨텐츠로 공개 키 및 이의 인증을 제공할 수 있다.
랜덤 넘버 생성기: 랜덤 넘버 생성기는 예를 들어, 온라인 연결에 있어 리플레이 공격을 금지하는데 사용하기 위해 예측할 수 없는 정보를 가지는 컨텐츠를 제공할 수 있다.
수치 함수: 기본 수치 동작은 컨텐츠가 그의 계산 프로세스를 최적화하는 것을 돕기 위해 제공될 수 있다. 예를 들어, 최적화된 모듈러 곱셈 또는 지수 함수는 디지털 서명을 생성하고 확인하며 메세지를 암호화하고 해독하는 Rivest 등의 미국특허 4,405,829의 RSA 알고리즘을 수행하기 위해 컨텐츠에 의해 사용될 수 있다.
최적화된 암호화 기본명령(primitives): 표준 암호화 알고리즘의 최적화된 구현은 성능 향상에 조력한다. 이러한 동작은 번역기 코드 스페이스의 지역 또는 미디어로부터 로드된 컨텐츠의 섹터를 제한없이 포함하는, 데이터의 해독 또는 해시 블럭을 돕기 위해 사용된다.
해독 제어: 컨텐츠가 재생이 승인 받았다고 결정하면, 번역기 코드는 컨텐츠의 각 세그먼트에 대해 수정 해독키로 컨텐츠 해독 모듈을 초기화할 수 있다. 또한 번역기 코드는 표현되어야 하는 또는 건너뛰어야 하는(예를 들어, 재생 동안 실시간 워터마크 삽입을 허용하도록) 컨텐츠의 부분을 특정할 수 있다. 번역기와 미디어로부터의 컨텐츠 스트리밍의 동기화를 보장하기 위해, 키 변경(또는 건너뛰는 영역)은 미리 특정될 수 있고 컨텐츠 내 신호에 의해 트리거될 수 있다. 예를 들어, 일 실시예에서는 암호문 내에서 다음 키 변경을 건너뛰기 위한 암호문 바이트의 수, 그리고 사용될 새로운 키 값을 만났을 때 키 변경을 트리거하는 64 비트 값을 컨텐츠가 특정하도록 한다.
키 유지관리: 이 기능은 플레이어에 알려진 키를 컨텐츠가 결정하도록 한다.
암호화 오라클에 대한 일실시예에 있어 이의 동작은 랜덤 파라미터 또는 다른 가변 데이터를 통합하지 않으며, 시스템은 특정 입력에 대한 예견된 결과가 미리(예를 들어 컨텐츠가 마스터될 때) 계산되도록 구성된다. 따라서, 발행자는 컨텐츠가 오라클로 선택된 입력을 제출하도록 프로그램할 수 있으며, 예견된 결과가 획득되었는지를 확인하며, 승인된 암호화 키가 결여된 악성 플레이어는 올바른 오라클 응답을 계산할 수 없을 것이다. 가능한 오라클 입력의 수는 방대(예를 들어, 128비트 블럭사이즈를 가지는 블럭 암호문을 사용하는 오라클에 대해서는 2128)하기 때문에, 공격자가 모든 가능한 질문에 대한 결과를 미리 계산하거나 저장하는 것은 실질적으로 실현불가능하다.
유효 플레이어를 유효화하는데 부가하여, 암호화 오라클은 또한 무효 플레이어를 식별하는데 사용된다. 예를 들어, 합법적 플레이어로부터 추출된 키가 승인되지 않은 용도로 사용된다면, 컨텐츠는 해지된 오라클을 포함하는 플레이어상에서 플레이를 거절되도록 마스터된다. 유효 키 없이는 컨텐츠는 플레이하지 않기 때문에, 승인되지 않은 플레이어는 훔친 키를 포함하여야 한다. 하지만, 이러한 훔친 키를 사용함으로써, 승인되지 않은 디바이스는 훼손되었다는 자신의 상태를 새로운 컨텐츠에 알리게 된다.
다양한 방법이 오라클 결과의 통합 또는 특정 오라클 질문 응답의 유효 여부의 체킹에 채용될 수 있다. 가장 간단한 것은 예측된 값에 대한 비교를 간단히 수행하는 것이다. 이는(적어도 이론적으로) 모든 비교 매치를 통과한 것처럼 악성으로 설계된 번역기에 의해 우회될 수 있기 때문에, 컨텐츠는 실패로 여겨지는 "더미(dummy)" 비교들 또는 악성 번역기를 방해하도록 설계된 다른 테스트들을 포함할 수 있다. 오라클 자체는 또한 코드를 해독하거나 자가수정 코드에 영향을 미치는데 사용될 수 있다. 예를 들어, 오라클로의 입력은 원하는 코드의 암호화된 버전일 수 있다. 이들 구성에 의존함에 따라, 이러한 오라클은 컨텐츠 발행자가 승인된 플레이어 또는 플레이어의 서브세트에 의해서만 해독가능한 미디어 코드를 포함하도록 함으로써 컨텐츠의 코드가 잠재적 공격자로부터 벗어나 유지하는데 조력한다. 오라클을 사용하는 다른 방법은 암호화 키로서 그들의 출력을 사용하거나 키를 획득하는 것이다. 이러한 키는 예를 들어, 해독 코드, 컨텐츠, 다른 키, 또는 임의의 다른 데이터에 사용될 수 있다. 이러한 유연한 해독 능력은 컨텐츠에 있어 다양한 프로토콜 및 정책을 구현하는데 사용된다. 예를 들어, 플레이어가 적절한 키 종류를 구비한다면, 컨텐츠는 Fiat 및 Naor의 방법(A.Fiat 및 M.Naor, "Broadcast Encryption", "Advances in Cryptology, Duglas Stinson 편집, 480페이지; Springer Verlag, 1993 참조)과 같은 방식을 사용하여 프로그램될 수 있다. 만약 원한다면(제공된다면, 물론, 플레이어가 필요한 사용자 인터페이스, 네트워크, 데이터 스토리지 및 암호화 기능들을 제공하도록 제공된다면), 심지어 Ginter 등의 미국특허 5,982,891에 개시된 것과 같은 엄격한 액세스 제어가 구현될 수 있다.
컨텐츠 마스터링에 대하여, 발행자는 오라클 입력/출력 쌍으로의 액세스를 가지는 것으로부터 이득을 가진다. RSA와 같은 비대칭 암호시스템에 대한 개인 키를 사용하는 오라클의 경우에 있어, 발행자는 간단하게 공개 키를 획득하고 오라클 동작의 인버스(inverse)를 수행하기 위해 이를 사용한다. 블럭 암호문을 사용하여 구성된 대칭 오라클에 대하여, 플레이어 제조자는 발행자에 대해 각 플레이어에 제공된 대칭 오라클의 인버스를 계산할 수 있다. 예를 들어, 플레이어 오라클이 시크릿 키 아래에서 256비트 데이터 블럭을 해독하기 위해 블럭 암호문을 사용한다면, 제조자는 암호 기능에 상응하는 액세스를 가지는 발행자를 제공할 수 있다. 인버스-오라클로의 액세스는 오라클이 훼손되도록 허용하지 않기 때문에, 제조자는 (예를 들어) SSL을 이용하여 공개적 액세스가능 서버를 통해 인버스-오라클 계산을 제공할 수 있다. 제조자는 또한 랜덤으로 선택된 오라클 입력으로부터의 출력을 가지는 발행자를 제공할 수 있다. (제조자가 플레이어 내에 구현된 것과 같은 실제 오라클 기능을 가지는 발행인을 제공한다 하더라도 이러한 기능은 잠재적으로 합법적인 것을 에뮬레이트하는 승인되지 않은 플레이어를 구성하기 위해 오용될 수 있다.)
이 특수한 방법은 특정 실시예 및 보안 대상에 의존하는 플레이어 및 제조자에게 키를 할당하는데 사용된다. 예를 들어, 일 실시예에 있어, 이러한 키의 대형 전역 풀(pool)로부터 (의사(pseudo))랜덤하게 선택된 플레이어 대칭 키; 제조자에 의해 (의사)랜덤하게 생성된 플레이어-특정 대칭 키; 제조자, 플레이어 모델 등 특유의 대칭 키; 및/또는 플레이어가 특수한 특성을 가지지 않는다는 것(예를 들어, 특정 제조자에 의해 제조되지 않았다는)을 인증하는 대칭 키를 포함(제한없이)하는 다양한 대칭 암호화 오라클 키에 플레이어가 할당된다. 이러한 실시예에 있어, 컨텐츠는 지원된 키의 리스트를 반환하는 분리된 기능을 호출함으로써 플레이어 내 구현된 키들을 식별할 수 있다. 플레이어는 또한 비대칭 키를 포함한다. 예를 들어, 일 실시예에 있어, 플레이어는 플레이어-특정 공개/개인 키 쌍을 구비하며; 플레이어 증명서는 제조자의 개인 키를 사용하여 플레이어 공개 키를 서명함으로써 제조자에 의해 발행되며; 증명서는 제조자의 공개키를 유효화하는 권한을 발행하는 루트(root)키에 의해 발행되며; 공개키는 플레이어의 안전 메모리 영역(하기 참조)에 액세스하기 위해 요청을 유효화하는데 사용되며; 및/또는 공개키는 플레이어 펌웨어 업데이트를 유효화하는데 사용된다. 다중 플레이어 제조자를 포함하는 인프라구조에 있어, 플레이어, 제조자 등에 대한 하나 이상의 중앙 행정 조직 관리 키를 구비하는 것이 유용하다. 중앙 행정은 또한 최소 보안 표준을 집행하는데, 플레이어가 컨텐츠 코드에 대한 적절한 정보 제공을 보장하는데, 새로운 제조자(이들의 제품이 오래된 컨텐츠를 플레이할 수 있도록)에 대해 키를 비축하는데, 훼손된 키를 추적하는데, 컨텐츠 발행자에 대한 암호화 오라클 동작을 수행하는데 등에 유용하다.
안전 메모리 및 카운터
컨텐츠에 가용한 메모리는 전형적으로 휘발성이며, 구동되는 각 시간에 "클린" 실행 환경을 가지는 컨텐츠를 제공한다. 하지만, 몇몇 특징에 있어, 플레이들 사이에 및 타이틀들 사이에 데이터를 저장할 수 있는 컨텐츠가 유용하다. 이러한 요구를 만족시키기 위해, 플레이어는 플레이들 사이 상태를 유지하는 안전하고 비휘발성 스토리지를 가지는 컨텐츠를 제공할 수 있다. 이러한 스토리지는 오직 인증된 해석 코드가 비휘발성 메모리 컨텐츠를 판독하거나 수정할 수 있는 것을 보장하기 위한 추가적 보안 보호를 요구할 수 있다. 비휘발성 메모리의 보안을 보장하는 것은 발행인에게 중요한데, 예를 들어 이러한 메모리는 최근 청구서에 대한 오프라인 페이-퍼-뷰(pay-per-view) 감상 내역을 추적하기 위해 신뢰될 수 있다. 각 메모리 슬롯을 잠금해제하기 위해 미디어상에 단순히 키를 구비하는 것은 부적절한데, 이는 이러한 키가 저작권 침해자들에 의해 금방 발견될 것이고, 모든 플레이어들의 메모리 슬롯을 훼손시키기 때문이다. 따라서, 일 실시예는 이러한 안전한 비휘발성 메모리 영역에 액세스하는 코드의 명백한 암호화 인증을 제공한다.
본 실시예에 있어, 플레이어는 비휘발성 메모리의 다수의 블럭들을 포함하고, 이들은 디폴트로 잠겨져 있다(즉, 읽기 쓰기 허가가 거절된다). 플레이어는 또한 메모리 블럭을 잠금해제하기 위한 인증 요청에 사용되는 공개키를 포함한다. 이러한 메모리 블럭으로의 액세스를 획득하기 위해, 컨텐츠는 메모리 액세스가 승인된 코드 블럭에 관한 디지털 서명을 입력함에 따라 행하는 기능을 호출한다. 이러한 서명은 플레이어에 내장된 공개 키를 사용하여 확인가능하고 잠금해제를 하기 위한 메모리 블럭과 블럭의 각 부분 내에 승인된(임의적 읽기, 임의적 기록, 증가, 감소, 제로화 등) 액세스 특권을 특정한다. 번역기는 디지털 서명을 확인하고, 서명이 유효하다면, 메모리를 잠금해제하고 디지털로 서명된 코드를 실행한다. 하기에서는 임시(예를 들어 월별) 청강으로 오프라인 페이-퍼-유즈(pay-per-use) 컨텐츠에 대해 청구하는데 사용하는 본 프로세스의 일례를 나타낸다.
(a) 발행인 X는 플레이어 제조자 Y와 Y의 플레이어의 비휘발성 메모리 내 4바이트 카운트를 제어하는 권리를 협상한다.
(b) 발행인 X는 메모리 컨텐츠를 체크하는 번역기에 대한 기능을 쓴다. 값이 지출 제한 이하라면, 기능은 카운터를 증가시킨다. 그렇지 않다면, 기능은 발행인과 인터넷 연결을 설립하고, 카운터 값, 랜던 넘버, 및 지불 정보(크레디트 카드 넘버 또는 플레이어 내 저장된 다른 펀딩 소스)를 포함하는 지불 요구를 발송한다. 발행자가 카운터 플러스 현재 구매에 의해 지시된 과거 구매에 대한 지불을 받아들이면, 발행인은 플레이어로 카운터를 클리어하는 암호화 인증을 발송하고, 이를 플레이어가 확인하고 (유효하면) 카운트를 제로화한다. 플레이어는 메모리를 재잠금함으로써 그리고 성공 또는 실패를 지시하는 코드를 반환함으로써 종결한다.
(c) 제조자 Y는 직접적으로 발행자 X의 메모리 영역, 액세스 특권 등을 식별하는 파라미터를 가지는 메모리 업데이트 코드를 서명한다.
(d) 발행자 X는 서명된 코드를 포함하는 컨텐츠를 생성하고 사용자에게로 배포한다.
(e) 사용자의 플레이어는 컨텐츠 로딩을 시작하고, 구매 옵션을 가지는 사용자에게 제공한다. 사용자가 구매를 사절하면, 재생은 진행되지 않는다.
(f) 컨텐츠는 단계 (b)에서 쓰여진 코드로의 포인터와 단계 (c)에서 생성된 디지털 서명을 가지는 메모리 잠금해제 기능을 호출한다.
(g) 메모리 잠금해제 기능은 단계 (b)에서 기재된 바와 같이 구매 수행을 시도하고 성공 또는 실패를 보고한다.
(h) 구매가 성공적이었다면, 컨텐츠는 사용자를 위해 플레이된다. 그렇지 않다면, 재생은 종료한다.
물론, 보다 많은 엄격한 구매 메커니즘이 상술한 안전 카운터 메커니즘을 사용하여 채용될 수 있다. 컨텐츠에 구현될 수 있는 것에 대한 실질적인 제한들은 플레이어의 능력과 발행자의 창조성에서 유래한다.
플래시 메모리, 마그네틱 스토리지(예를 들어, 하드 디스크), 전지 보충 RAM 등을 (제한없이) 포함하는, 다양한 스토리지 기술이 여기에 개시된 시스템과 기술으로 채용될 수 있다. (배경기술상에 비휘발성 스토리지를 제공하기 위한 그리고 이러한 스토리지를 암호화 또는 보안화하기 위한 다양한 방법이 알려져 있다.) 안전한 스토리지는 제거가능 모듈(스마트 카드와 같은), 외부 주변 기기(스피커, 디스플레이, 홈 네트워크 내 원격 디바이스 등과 같은)에 부착, 컴퓨터 네트워크를 거쳐 원격적으로 등을 제한없이 포함하여, 플레이어의 외부에 (제한없이) 위치할 수 있다. 메모리 블럭 할당은 예를 들어 스페이스-가용 베이시스상에 제공될 수 있고, 우선권에 근거하여 보장되고(예를 들어, 슬롯 넘버에 의해), 또는 배치되고/재활용된다. 메모리 슬롯의 소거(clearing) 또는 비움(freeing)은 보고되지 않은 페이-퍼-뷰 기록의 손실을 초래하기 때문에, 컨텐츠는 슬롯이 초과 기록(over-written)되는 미만의 조건을 지정하기 위한 능력을 부여받는다. 동시에 다중 타이틀을 플레이할 수 있는 동시에 단 한 세트의 비휘발성 메모리 슬롯들을 가지는 플레이어에 대해, 잠금 메커니즘은 컨텐츠의 일부가 다른 컨텐츠의 일부에 의해 수정되는 슬롯에 액세스하는 것을 보장하도록 요구된다.
일 실시예에 있어, 사전 지불 스마트 카드는 소비자에 의해 구매되고 플레이어상의 슬롯으로 삽입된다. 이러한 카드는 페이-퍼-뷰 컨텐츠 타이틀에 상응하는 식별자를 쓸 수 있는 플레이어 내로 다수의 한번 기록(write-once) 메모리 슬롯을 포함한다. 한 번 쓰여지면, 컨텐츠 식별자는 카드 내에 구현된 암호화 오라클 계산 내로 통합된다. 따라서, 컨텐츠는 재생을 허용하기 전에 올바른 오라클이 제공되는지 확인함으로써 구매가 완성되었는지를 확인할 수 있다.
플레이어 기능에 대한 호출을 인증하기 위한 상술의 일반적 액세스 방식은 안전한 카운터를 사용하는 것을 제한하는 것이 아님을 주목하라. 예를 들어, 동일한 액세스방식이 승인된 발행자만 이용가능한 특별한 플레이어 특성에 대한 액세스를 확보하는데 사용될 수 있다. 이러한 액세스 방식은 또한 계산 기능에 대한 액세스를 보안화하기 위한 범용의 극히 유연한 방법을 제공하는 것처럼, 여기에 개시된 기술과 시스템의 다른 측면으로부터 분리된 응용성을 가진다.
암호화 대 언어 기반 보안 특성
보안 정책은 몇몇 다른 방식으로 수행될 수 있다. 암호화 보호는 해지된 또는 승인되지 않은 플레이어가 컨텐츠를 해독하기 위해 필요한 암호화 키가 부족할 컨텐츠의 구성을 허용한다. 승인되지 않은 플레이어는 키가 결핍되어(물론, 제공된 양호한 암호문이 사용되어) 컨텐츠에 액세스할 수 없다. 이러한 액세스방식은 상대적으로 비유연한데 이는 특정 디바이스에서 재생을 봉쇄하는 능력만을 컨텐츠 소유자에게 제공되기 때문이다. (반면, 보다 엄격한 실시예는 얼마간 보다 상세한 제어를 제공하기 위해 다른 키 세트를 사용하고, 키-기반 제어는 보다 복잡한 액세스 제어 난제를 해결하기 위해 요구되는 유연성이 결여된다.) 그럼에도 불구하고, 특정 플레이어가 훼손되거나 또는 컨텐츠를 해독할 능력을 가진다고 믿을 수 없다고 간주되는 경우의 어드레싱에서는 극히 효과적이다.
이에 비해, 언어-기반 제어는 플레이어가 훼손(또는 다른 몇몇 이유로 완전히 신뢰할 수 없는)된 경우 효과가 떨어지지만, 극히 엄격한 보안 정책을 수행할 수 있다. 상술한 바와 같이, 컨텐츠는 재생 환경을 분석할 수 있고 암호화 오라클을 호출할 수 있으며, 이 결과가 불충분하다면 플레이를 거절한다. 이러한 액세스방식은 사실상 무제한적 유연성을 제공하며, 일반적으로 정직하게 행동하지만 몇몇 발행자가 어떤 컨텐츠상에서 금지를 희망하는 동작(비보호된 포맷에 대한 리핑(ripping)과 같은)을 지원하는 플레이어의 재생에 관련한 위험관리에 이상적으로 적합하게 한다. 적어도 이론적으로, 공격자가 컨텐츠의 개별적 부분을 분석하고 부순다고 하더라도(특히 컨텐츠의 코드가 불충분하게 쓰여진다면), 이 공격은 보편화될 수 없으며 암호화 오라클을 조심스러운 사용을 통해 신뢰성 있게 대응할 수 있다. 게다가, 여기에 개시된 해독 제어 능력은 발행자가 훼손된 디바이스를 식별하기 위해 그들의 컨텐츠의 표절된 카피를 감시할 수 있으며 취약하지 않은 새로운 컨텐츠를 생성할 수 있다.
발전
컨텐츠 소유자에게 장기간에 걸쳐 여전히 안전한 배포 인프라구조를 제공하는 것이 바람직하다. 이전 컨텐츠 보호 시스템은 이점에 관해서는 대단히 실패하여 왔다; 구현자가 새로운 포맷으로 컨텐츠 소유자를 추구함에 따라 구현자는 초기에는 보안에 관하여 근면하였지만, 일단 포맷의 성공이 보장되면 보안 레벨이 심각하게 떨어지는 경향이 있다. 이러한 쇠락에 기여하는 다양한 팩터는: 공격에 대한 보다 적합한 구현의 유용성(쉽게 부숴진 제품이 팔릴 가능성의 증가), 보다 보호되는 컨텐츠가 가용하게 됨에 따라 저작권 침해에 대한 증가된 요구, 및 공격자의 강화된 정교함을 포함한다. 여기에 개시된 본 시스템의 일실시예 및 기술은 컨텐츠 소유자가 미디어 포맷이 표준화된 이후라도 그들의 컨텐츠가 어떻게 보호될 것인가를 계속적으로 지정하도록 구성되는 한편, 공격이 발견된다면 보안이 영원히 손실되지 않도록 사실상 무제한 갱신능력을 갖도록 허용한다.
보안 정책이 정적이지 않다면, 제조자는 효과적인 보안을 제공하기 위해 계속되는 장기간의 자극을 가진다. 예를 들어, 컨텐츠 소유자는 디바이스의 키가 훼손된 디바이스상에서 또는 저작권 침해용으로 통상적으로 사용된 제품상에서의 재생을 봉쇄(또는 고 품질 재생 금지)하는 능력을 가질 수 있다. 그 결과, 종래 시스템과 달리, 제품 제조자는 가능한 최소 비용에서 그들의 제품 제공을 경쟁함에 따라 보안을 희생할 수 없는데, 소비자 또한 강력한 보안을 가지는 제품을 찾을 것이며 이는 최고 가장 확실한 재생 경험을 제공할 것이기 때문이다.
잘 의도된 제조자라도 나중에 보안 결점이 발견된 제품을 때때로 제조한다. 따라서, 발명자는 훼손 및 보안 취약성에 응답하는데 사용되는 다양한 방법을 개시한다. 예를 들어, 플레이어 암호 키와 소프트웨어는 디지털 서명 코드 또는 키 업데이트를 사용하여 업데이트된다. 이러한 업데이트는 키 업데이트를 수행하는 소프트웨어를 포함하는 미디어상에서의 플레이어로 전달된다. 예를 들어, 합법적 사용자의 플레이어가 이전 소유자가 보안을 훼손하였기 때문에 결국 해지된다면, 새로운 소유자는 제품의 기술 지원 라인을 호출할 수 있고 새로운 키를 획득할 수 있다. (물론, 소비자 서비스 직원은 승인되지 않은 목적을 위해 새로운 키를 요구하는 호출로부터 저작권 침해를 단념시키기 위해 성명, 주소, 크레디트 카드 넘버, 전화 번호, 이메일 주소, IP 주소 등과 같은 몇몇 사용자 정보를 얻고자 할 것이다.) 업데이트는 또한 인터넷(또는 다른 네트워크 연결), 모뎀 호출, 원격 제어 또는 키보드를 통한 진입 등을 통해 배포된다. 물론, 업데이트는 공격자가 훼손된 키를 주입하기 위해 업데이트 프로세스를 사용할 수 없도록 또는 플레이어를 공격하지 못하도록 가능하면 언제든지 암호화적으로 보안되어야 한다.
제조자가 훼손의 결과를 줄일 수 있는 다른 방법은 스마트 카드와 같은 제거가능한 보안 모듈을 포함하는 것이다. 이러한 스마트 카드는 컨텐츠에 제공된 다른 보안 관련 기능 뿐만 아니라 암호화 오라클의 몇몇 또는 전부를 구현한다. 훼손이 일어나거나 보안 결함이 발견된다면, 플레이어 전체를 대체 또는 업그레이드하는 대신에 스마트 카드를 대체할 수 있다. 간단히 스마트 카드 슬롯을 제공하는 것으로 충분하지만, 보안사유를 위한 필요한 시간이 되어서야 스마트 카드를 배치하는 것이 아님을 주목하여야 한다. 스마트 카드가 합법적 플레이어 및 악성 플레이어로 사용되는 것으로부터 제거되는 것을 방지하기 위해, 플레이어 및/또는 카드가 소비자로 보내지기 전에 수신기(예를 들어, 대칭 키를 공유하게 함으로써)로 암호적으로 링크된다.
마스터링 (mastering) 및 DRMs
컨텐츠 마스터링에 수반되는 어떤 새로운 비용은 컨텐츠 소유자을 위한 합법적 관심사항이다. 여기에 개시된 기술과 시스템은 간단한 보안 방책이 채용된다면, 마스터링 프로세스에 대한 심각한 새로운 비용을 회피하도록 배치된다. 보다 나은 개선과 테스트 결과를 명백히 요구하는 복잡한 보안 정책을 수행하는 컨텐츠를 개선시키는 동안, 이 비용은 전적으로 선택적이다. (다른 보호 시스템은 간단히 이 선택을 배제하고, 모든 컨텐츠 발행자가 동일한 보안 시스템, 정책 등을 사용하게 한다.)
물론 여기에 개시된 시스템과 기술은 제 3자 측 판매자가 보안 모듈과 마스터링 시스템을 제공하는 것을 허용하기 때문에 발행자는 그들 자신이 보안 시스템을 개선시킬 필요가 없다. 이러한 판매자는 최고의 특성, 최고의 보안, 가장 낮은 비용, 가장 큰 유연성, 최고의 용이성, 최고의 성능, 가장 작은 코드 사이즈, 가장 넓은 해지 리스트 등을 제공함으로써 발행인의 비즈니스를 위해 경쟁한다. 여기에 개시된 기술과 시스템은 컨텐츠 소유자가 보안에 관하여 그들 자신이 결정을 하는 능력을 가지는 플랫폼으로서 역할을 한다.
워터마킹 및 훼손 추적
종래 대부분의 워터마킹 방법에 따라, 마크 검출 프로세스는 광범위하게 배치된 제품 내에서 표준화되고 구현화된다. 이러한 정적 알고리즘은 불행하게도 심각한 위험을 초래하는데, 검출 알고리즘의 숙지는 공격자가 통상 컨텐츠를 어렵게 격하시키는 일 없이 워터마크를 제거하기 때문이다. 일 실시예에 있어, 여기에 개시된 본 시스템과 기술은 마크 포맷, 인코딩 프로세스, 및 검출 프로세스 모두가 발행자에 의해 선택된 것이기 때문에 일반의 마크 제거 공격에 쉽게 걸리지 않는 즉각적 워터마크 삽입을 포함한다.
일 실시예에 있어, 발행자(또는, 보다 엄밀하게는 발행자에 의해 쓰여진 제어 프로그램)는 몇몇 출력 컨텐츠 내 몇몇 정보를 내장하기를 희망한다. 이러한 정보의 각 비트는 제 1 컨텐츠 한 파트 또는 제 2 파트 중 임의의 하나를 해독하고 출력함으로써 내장된다. 이러한 파트들은 미디어상의 다른 암호화된 영역일 수 있고 다른 키로 암호화될 수 있다. 이러한 파트들 간의 차이는 컨텐츠가 마스터될 때 발행자에 의해 선택될 수 있고, 전체 차이에 대해 감지할 수 없고 포착하기 위한 무엇인가 일 수 있다. 두 파트 사이에는 예정된 관계가 없기 때문에, 한 파트만(상기 파트에 대한 해독 키 포함)을 아는 저작권 침해자는 다른 파트를 결정할 방법이 없다.
암호화 및 프로그램 기반 제어는 해독되는 영역을 선택하는데 사용되기 때문에, 공격자는 해독하는 영역이 무엇을 포함하고 있는지 결정할 수 없다. 사실, 컨텐츠는, 예를 들어, 제어 코드의 암호화 및 플레이어가 없거나 또는 매우 작은 수의 플레이어가 해독할 수 있는 더미 영역을 포함함으로써 해독로 영역을 제공하는지 식별조차 할 수 없도록 설계된다.
일 실시예에 있어, 컨텐츠는 모든 플레이어의 서브세트만이 컨텐츠 영역의 각 버전을 해독하기에 필요한 키를 가지도록 저작되며, 아직도 실질적으로 모든 플레이어가 영역의 적어도 한 버전을 해독하기 위한 필요한 키를 가진다. 따라서, 이 영역의 승인되지 않은 카피를 분석함으로써, 발행자는 공격자에 관한 정보를 결정할 수 있다. 이는 공격자가 프로그램을 분석하고 하나의 해독 영역 이상을 해독하는 경우에서 조차 사실임을 주목할 필요가 있는데, 몇몇 영역의 조합의 결과로서 여전히 발행자에게 버전이 해독된 것을 알리기 때문이다. 결국, 사용자가 그들의 정체(또는 플레이어의 정체)가 발행자의 저작권 침해 방지 수행 전문가에게 알려지는 것을 피할 수 있는 확실한 유일한 방법은 제일 먼저 저작권 침해에 참가하는 것을 삼가하는 것이다.
본 일반적 마킹 액세스방식은 마크 검출 프로세스가 표준화될 필요가 없기 때문에 종래 워터마킹과 구별된다. 사실, 이러한 차이는 매우 큰 보안을 허용하며, 본 마킹 방식에 대항하는 일반적 공격은 없다는 것을 보여준다. 게다가, 워터마크된 비트는 출력에서 차이를 생성하기 때문에, 이 워터마크는 극히 강건하고 디지털/아날로그 변환, 에디팅, 포맷 변환, 악성 공격 등에 견디게 설계된다.
컨텐츠 마킹 능력을 어떻게 정하고 어떻게 사용할 것인지의 결정은 전형적으로 발행자에 의한다. 적긴 하지만, 몇몇 아티스트는 어떤 수정을 할 수 있는 어떤 기술을 회피하기를 희망하며, 그들의 작업에 워터마킹 특성의 사용을 배제한다. 다른 경우에 있어, 컨텐츠의 임의의 타입은 광범위하게 표절되고 마킹 능력에 관한 매우 공세적인 사용을 위한 좋은 후보가 된다. 한편 파트들은 통상 미세한 차이를 가지도록 선택되고, 인코딩되어야 할 어떤 해독 버전의 선택, 가능한 출력 버전 사이에서 어떻게 선택할 것인가, 그리고 이러한 파트에 대한 해독 키의 유지관리가 컨텐츠에 의해 제어된다. 마킹 능력은 컨텐츠에 집적된 데이터 프로세싱 명령에 의해 제어되기 때문에, 기술은 승자의 플레이어가 축하 메세지를 출력하는 내기 경마(sweepstake)의 구현, 부적절한 보안을 제공하는 사용자의 플레이어에게 보안 경고의 전달, 및 어떤 사용자에게 보너스 컨텐츠의 제공을 제한없이 포함하는 다른 특성을 위해 사용될 수 있다.
물론, 워터마킹 방법들은 여기에 개시된 기술들 및 시스템들에 사용될 수 있다. 예를 들어, 종래 워터마크들(마크 검출 알고리즘이 표준화됨)은 컨텐츠의 코드 또는 외부 워터마크 삽입 회로(컨텐츠의 제어하에 있을 수 있거나 없을 수 있음)에 의해 출력에 삽입될 수 있다. 유사하게, 인입 컨텐츠의 워터마크들은 인증되지 않은 카피들을 형성하거나 인증되지 않은 컨텐츠를 도입하기 위한 시도들을 검출하기 위해 감지(다시, 컨텐츠의 코드 또는 외부 검출기들에 의해)될 수 있다. 어떤 워터마크들이 삽입되고 검출된 워터마크들에 어떻게 응답하는지의 선택은 플레이어 및/또는 컨텐츠로 실행될 수 있다.
예시적인 이동 경로: CD-오디오
방대한 대부분의 디지털 컨텐츠는 오늘날 보호되지 않거나 최소 보호되는 포맷으로 분배된다. 예를 들어, CD 오디오 표준들은 안티 카핑 피쳐들을 포함하지 않고 DVD 비디오의 보호 방법은 폭 넓게 나뉘어진다. 종래 매체 플레이어들은 적당한 보안을 지원하지 못하기 때문에, 상기 매체는 업그레이드되거나 대체될 필요가 있다. 새로운 보안 시스템의 결과는 호환 가능한 특정 부분의 플레이어들을 형성하는 것에 따른다.
카피 보호 CD들을 형성하기 위한 종래 방법들과 여기에 개시된 기술들 및 시스템들을 결합함으로써, 이후 호환할 수 있는 CD들을 형성하는 것은 가능하다. 상기 CD들은 대부분의 오디오 CD 플레이들에서 올바르게 플레이하지만 컴퓨터-기반 리핑(ripping) 소프트웨어를 혼란시키도록 비표준 CD 포맷팅을 사용한다. 인증된(예를 들어, 허가된) 개인용 컴퓨터 소프트웨어는 올바르게 판독하거나 그렇지 않으면 컴퓨터를 혼란시키는 위치들을 수정함으로써 디스크를 플레이할 수 있다. 따라서, 종래 오디오 플레이어들이 비표준(카피 보호된) 레드 북(Red Book) 오디오 부분을 플레이하기 때문에, 재생은 (대부분의) 종래 오디오 플레이어들에서 인에이블되고, 재생은 적당한 플레이어 소프트웨어(예를 들어 CD에 포함되거나 인터넷을 통해 다운로드될 수 있음)를 가진 개인용 컴퓨터들에서 인에이블된다. 비록 종래 CD 오디오 플레이어들과 이전 호환성을 위한 장기간 지원이 부가적인 보안 위험들을 도입할 수 있지만, 이것은 (궁극적으로) 컨텐츠가 보안 포맷으로만 팔리도록 새로운 보안 포맷을 플레이할 수 있는 오디오 플레이어들의 전개에 마주하는 장기간 전략의 일부로서 바람직할 수 있다.
실시예 : 고해상도 DVD
현재 DVD 비디오 플레이어들에 의해 사용된 카피 보호 시스템은 폭넓게 분할된다. 수백만의 DVD 플레이어들이 이미 팔렸고 새로운 보호 시스템들로 업그레이드할 수 없기 때문에, 이들 종래 사용자들에 대한 지원을 포기하지 않고 현재 DVD 포맷을 업그레이드할 수 있는 간단한 방법은 없다. 다행스럽게, DVD 플레이어들의 설치된 베이스는 "표준" 해상도 텔레비젼(예를 들어, NTSC에 대해 525 라인들, PAL 등에 대해 625 라인들)을 지원하도록 설계되고, 고해상도 텔레비젼(HDTV) 포맷들에 의해 제공된 보다 높은 품질의 신호들을 지원하도록 설계되지 않는다. 종래 플레이어들이 HDTV를 지원하지 못하기 때문에, 여기에 개시된 새로운 보안 피쳐들은 HDTV를 지원하는 DVD들에 통합될 수 있다.
예시적인 실시예에서, 플레이어는 회전되고 레이저를 사용하여 판독되는 스핀들에 매체를 로드하는 사용자 액세스 가능 매체 입력(하나 이상의 디스크들에 대한 기계화된 트레이로 구성됨)을 가진다. 매체로부터 판독된 데이터는 디스크의 용량, 포맷팅 형태, 및 보안 방법을 결정하기 위하여 인코딩하는 디스크를 분석하는 마이크로처리기-기반 회로로 가져오게 된다. 만약 디스크가 종래 보안 방법(CSS)을 사용하는 종래(저해상도) DVD이면, 디스크는 배경 기술에 공지된 방법들을 사용하여 플레이된다. 만약 디스크가 여기에 개시된 프로그램 가능한 보안 방법들을 사용하는 고해상도 DVD이면, 컨텐츠의 보안 정책들을 위한 프로그램 코드(데이터 처리 명령들)는 디스크로부터 로딩되고 플레이어에 의해 실행된다. 플레이어들은 선택적으로 종래 보호 방법들(비록 새로운 컨텐츠에 대한 폭넓게 분할된 보안 방법을 사용하는 거의 바람직하지 않을지라도)을 사용하여 고밀도 DVD들뿐 아니라 개선된 보안을 사용하는 저밀도 DVD들을 지원할 수 있다. DVD 플레이어로부터 출력 품질은 컨텐츠에 의해 제어될 수 있다. 예를 들어, 컨텐츠는 만약 플레이어 및/또는 HDTV 출력 장치가 적당한 보안을 제공하지 못하면 저해상도 출력을 출력하도록 선택할 수 있다. 이러한 경우, 컨텐츠는 저해상도(예를 들어, 이런 목적을 위하여 설계된 품질 저하 모듈을 사용함)로 HDTV 신호들을 다운 컨버트하도록 플레이어에게 지시하고(예를 들어 제한없이), 신호의 저해상도 부분들을 해독하기 위하여 요구된 키들(및 고해상도 부분들에 대하여 요구된 보류 키들)만을 플레이어에게 공급하거나, 고해상도 버젼으로부터 독립적으로 매체상에 인코드된 컨텐츠의 저해상도 버젼을 출력하도록 플레이어에게 지시한다.
번역기 아키텍쳐
예시적인 실시예에서, 해석된 언어는 DLX 어셈블리 언어를 바탕으로 한다. 기본적인 DLX 처리기 아키텍쳐는 배경 기술에서 잘 공지된다(예를 들어, Hennessy 등에 의한 컴퓨터 아키텍쳐: 양적 액세스, 제 2 판). 번역기의 메모리 공간(일실시예에서 RAM의 8 메가바이트로 구성됨)내에서 코드 실행은 이런 메모리 및 처리기의 레지스터 세트에만 액세스할 수 있도록 샌드박스된다. 유효 명령들(또는 다른 동작들)은 NOP들(즉, 아무것도 하지 않음)으로서 처리되거나 예외(exception)를 트리거할 수 있다. 유사하게, 제한 구역 외부의 메모리 액세스는 예외를 트리거하거나 수정될 수 있다(예를 들어, 8 메가바이트 어드레스 공간에서 판독된 32 비트의 경우, 메모리의 처음에 제한 구역 외부의 액세스를 포함하고 32 비트 정렬을 보장하도록 16진법 0x007FFFFC를 가진 어드레스를 ANDing함으로써).
DLX "트랩(trap)" 명령은 외부 절차 호출들에 대한 액세스를 제공하기 위하여 사용된다. "트랩" 명령은 샌드박스(즉, 정상 명령들에 액세스할 수 있는 레지스터들 및 메모리를 넘어) 외부로 확장할 수 있는 플레이어 동작을 호출한다. 상기 동작들의 설명을 위하여, "재생 환경 질의 및 제어" 섹션을 참조하라.
소프트웨어-기반 번역기/에뮬레이터 대신 DLX 처리기의 ASIC 또는 FPGA(또는 다른 하드웨어) 실행을 사용하기 위한 전용 하드웨어 실시예가 가능하고, 상기 경우 "트랩" 명령은 (예를 들어) 보다 높은 특권 레벨에 입장하도록 처리기를 트리거하고, ROM 또는 EEPROM 영역(예를 들어 부가적인 어드레스 라인을 인에이블링함으로써)을 포함하도록 어드레스 공간을 확장하고, 리턴 프로그램 카운터를 저장하고, 추가 처리를 위한 확장된 어드레스 공간의 미리 결정된 어드레스로 점프하도록 구성된다. 보다 높은 특권 레벨은 외부 주변부들과 상호작용하는 능력 같은 부가적인 명령들 또는 처리기 코어 능력들을 인에이블할 수 있다(예를 들어, 비휘발성 메모리, 암호법 가속기들, 키 관리 부품들, 광학 매체 드라이브들, 데이터 네트워크들, 위성 수신기들 등). 하드웨어 실행들에서 메모리 보호 능력들은 어드레스 라인들 수를 제한하고(이에 따라 제한구역 외부의 액세스를 방지함), 또는 배경 기술에 공지된 다른 메모리 보호 방법들을 사용하는 것을 포함할 수 있다. "트랩" 호출의 완료중, 처리기는 특권 레벨을 감소시키고 컨텐츠 코드의 실행을 계속한다.
고밀도 광학 디스크들상에 분배된 비디오를 해독하기 위한 예시적인 DLX 실행에서, "트랩" 동작은 컨텐츠가 디스크로부터 데이터를 판독하게 제공된다. 물리적 매체로부터 데이터를 로드하기 위하여, 컨텐츠 코드는 통상적으로 어드레스(예를 들어, 광학 디스크상 섹터 번호), DLX 메모리 공간에 대한 목적지 어드레스, 로드하기 위한 데이터 양, 및 선택적 디코딩 파라미터들(에러 수정 다항식/파라미터들, 디코딩 키들 등 같은)을 지정한다. 컨텐츠는 코드로서 데이터를 실행하는 것을 포함하는 데이터를 사용하는 임의의 방식의 처리 단계들을 수행할 수 있다. 광학 드라이브들, 하드 드라이브들, 및 다른 데이터 소스가 종종 상당한 레이턴시(특히 새로운 트랙을 찾는 것과 같은 동작을 수행할때)를 가지기 때문에, 독립된 "트랩" 동작들은 필요한 것으로 기대되는 영역들을 미리 지정하고, 데이터를 요구하고, 현재 요구들 상태를 검사하고, 및/또는 데이터를 DLX 메모리 공간에 실제로 로드하기 위하여 사용될 수 있다.
컨텐츠 코드는 또한 메모리상에서 고속 암호법 동작들을 수행하기 위한 트랩 동작들을 호출할 수 있다. 예를 들어, 예시적인 벌크 해독 "트랩" 동작은 AES 암호화 알고리즘을 사용하고 컨텐츠가 (a) 플레이어 내에 저장된(또는 플레이어에 액세스할 수 있는) 보안 키들 중에서 선택하는 인덱스, (b) 암호화된 키, (c) 해독을 위하여 데이터에 대한 DLX 메모리 공간의 어드레스, 및 (d) 해독하기 위한 데이터의 길이를 지정하게 한다. 트랩(a)은 컨텐츠로부터 수신된 암호화된 키를 해독하기 위하여 인덱스 값에 의해 식별된 키를 사용하고, (b) 지시된 어드레스에서 데이터 블록들의 특정 수를 해독하기 위하여 ECB 모드의 AES 알고리즘으로 해독된 키를 사용한다. 인덱스에 의해 선택될 수 있는 키 해독 키들은 플레이어내에 저장된 키들(암호화 능력들 및 내부 비휘발성 메모리를 가진 내부 변조 방지 칩들에 선택적으로 저장될 수 있는 제한없이 플레이어 지정 키들, 제조자 키들, 그룹 키들, 매체 키들 등을 포함함), 외부 장치들에 저장된 키들(제한없이 암호화 모듈들, 디스크 드라이브들, 원격 네트워크 액세스 가능 장치들/서버들, 디스플레이들, 스피커들 등을 포함함)을 포함할 수 있다. 어떤 키들을 사용할지를 결정하기 위하여, 컨텐츠 코드는 플레이어의 타입, 플레이어의 일련 번호, 플레이어와 함게 포함된 키 리스트들/디스크립션들(및 플레이어 제조자 또는 신뢰되는 해당자에 의해 선택적으로 디지털적으로 사인됨), 네트워크를 통하여 얻어진 데이터, 및 플레이어 또는 재생 환경(재생 환경을 질문하고 제어하는 섹션) 같은 정보를 분석할 수 있다. 다른 암호화 능력들의 임의의 방식은 제한없이 : 암호화, 해독, 시스템적 알고리즘들(임의의 동작 모드를 가진 스트림 부호들, 블록 부호들, 해싱 알고리즘들, 메시지 인증 코드들 등), 공용 키 알고리즘들(사인, 검증, 암호화, 해독, 키 승인, 제로 지식 동작들 등), 키 및 증명서 관리 등을 포함하는 컨텐츠에 의해 플레이어에 제공될 수 있다.
컨텐츠 코드는 디스크립션 결과상에서 부가적인 처리(또는 전처리) 동작들을 수행할 수 있다. 예를 들어, XOR 동작은 ECB 해독 결과를 CBC 해독 결과로 전환하기 위하여 수행될 수 있다. 디스크램블링 단계들은 해석된 코드를 실행하지 않고 컨텐츠를 해독하기 위하여 플레이어들로부터 추출된 키들을 상대가 사용하는 것을 방지하도록 제공될 수 있다. 제공될 수 있는 단계들의 실시예들은 제한없이 비트들을 토글링하고, 간단한 이진 동작들을 사용하여 변화들을 형성하고, 블록들을 재정렬하고, 오프셋들/어드레스들을 조정하거나 삽입하고(예를 들어 MPEG-2 또는 다른 비디오 압축 표준들을 거부하는 데이터 스트림을 어셈블리함), 공용 키 동작들을 적용하고(합성수를 바탕으로 모듈러 제곱 또는 세제곱 같은), 시스템적 암호화동작들 제공, 및 내부 체크썸(checksum)들을 업데이팅하는 것을 포함한다. 후처리 단계들은 예를 들어 특정 장치에 카피들이 복사되게 하도록 법정 워터마크들을 도입하거나 변형하기 위하여 사용된다. 디코드/처리 데이터는 번역기를 사용하여 실행될 수 있어서, 해독/재생 코드 그 자체의 부분들이 암호화된 형태로 분배되고 자체 변형 코드의 사용 같은 다양한 코드 잠복 및 난독화(obfuscation) 기술들을 사용하도록 컨텐츠를 인에이블한다. 다중 기능 데이터, 예를 들어 실행될 때 유용한 임무를 수행하지만 유효 압축 비디오를 제공하는 데이터를 구성하는 것도 가능하다.
처리가 완료되고 데이터가 출력될 준비가 될 때, 컨텐츠 코드는 사용자에게 데이터를 출력하기 위하여 플레이어에 부가적인 절차 호출들(예를 들어, DLX "트랩" 동작들)을 호출할 수 있다. 상기 호출들은 예를 들어 데이터를 하나 이상의 비디오 디코더들(예를 들어, MPEG-2 디코더), 오디오 디코더들(예를 들어, MP3 또는 AC-3 디코더), 또는 그래픽 오버레이(overlay) 시스템들(예를 들어, 투명/오버레이 능력들을 가지며 스틸 이미지들 및/또는 GL, 충격파, 또는 플래시 같은 애니메이션 엔진들을 지원함)에 전달할 수 있다. 데이터는 변형되고(예를 들어, 압축해제되고) 만약 적당하다면 제공된다. 프레젠테이션은 데이터를 오디오 스피커들 또는 비디오 플레이들 같은 하나 이상의 물리적으로 독립된 장치에 전달하는 것을 포함한다.
독립된 API 호출들로서 해독 및 압축해제/출력을 가진 실시예들은 컨텐츠에 의해 보다 잘 제어되는 장점을 가지지만, 컨텐츠가 메모리로부터 판독되고 기입될 필요가 있는 횟수가 증가하는 잠재적인 장점을 가진다. 그러나, 실제로 랜덤 액세스 메모리는 일반적으로 매우 빠르고 부가적인 레이턴시는 극장 품질 고해상도 비디오 같은 매우 높은 비트 속도 컨텐츠를 위해서 관리할 수 있다. 고속 실행들 중, 플레이어 코덱들은 압축해제가 해석된 코드에서 실행될 수 있을때 불필요할 수 있다. 플레이어들은 해석된 코드를 사용하여 실행되는 코덱들의 성능, 그래픽 처리 동작들 등을 개선하기 위하여 단일 명령, 다중 데이터 병렬 처리 능력들(예를 들어 x86 처리기들에서 발견되는 MMX, SSE 및 SSE2 명령들과 대체로 유사한, 절차 호출들을 통하여 액세스할 수 있는 단일 명령 다중 데이터 수리적 동작들을 제공함으로써)을 제공할 수 있다.
다양한 번역기 실행 전략들이 가능하다. 일실시예에서, 번역기는 정상 마이크로프로세서에서 운행하는 소프트웨어에서 구현된다. 다른 실시예에서, 번역기는 필드 프로그램 가능한 게이트 어레이 같은 재구성 가능한 논리를 사용하여 구현된다. 다른 실시예에서, 전용 하드웨어 장치는 번역기의 임무를 수행한다. 모두 3개의 경우들에서, 절차 호출들은 원시(native) 소프트웨어, 하드웨어 가속, 및 외부 장치들 또는 부품들에 대한 호출들의 임의의 결합을 사용하여 (제한없이) 구현될 수 있다.
원시 코드
플레이어-독립적 샌드박스된 코드를 해석하는 것 외에, 플레이어는 컨텐츠가 실행 및/또는 저장을 위한 원시 코드를 제출하게 한다. 키들 또는 다른 특권 리소스들에 액세스할 수 있는 소프트웨어 또는 논리를 받아들이기 전에, 플레이어는 코드를 검증한다. 검증은 예를 들어 코드가 플레이어 제조자 또는 다른 신뢰되는 해당자에 의해 제기된 검증 RSA 디지털 서명을 포함하는 것을 보장함으로써 수행될 수 있다. 연속적으로 검증된 원시 코드는 현재 로딩된 컨텐츠에 의해 실행을 위하여 휘발성 메모리에 저장되거나, 다른 타이틀로 이용 가능할 수 있는 플레이어의 비휘발성 메모리에 저장될 수 있다. 예를 들어, 다른 타이틀상에 가능한 역효과를 방지하기 위하여, 플레이어에 코스메틱 퀄크(cosmetic quirk)를 수정하거나 성능 최적화를 제공하기 위한 패치는 현재 로딩된 제목에 의해서만 이용하기 위해 휘발성 메모리에 저장될 수 있다. 대조적으로, 보안 취약성(vulnerability)을 수정하기 위한 업그레이드는 통상적으로 플레이어의 비휘발성 메모리에 영구적으로 저장된다.
원시 코드는 단일 플레이어 플랫폼 또는 플레이어 애플리케이션에 특정되고, 그것은 해석된 코드보다 휴대하기 불편하다. 그것의 장점은 해석된 코드를 사용하여 어드레스될 수 없는 것이 만약 필요하면 발생할 수 있게 사용될 수 있다는 것이다. 예를 들어, 원시 코드는 정당한 플레이어들 및 인증되지 않은 에뮬레이터들 또는 "클론들"을 구별하기 위한 방식으로서 컨텐츠에 의해 실행될 수 있고, 공격자들(attacker)이 제품의 설계시 주 보안 취약성을 발견하는 각각의 시간에 매 잠재적으로 영향을 받는 장치를 호출할 필요성을 방지한다. 상기 공격에 대한 방어로서 제품 판매인들은 엔지니어를 에뮬레이트하거나 리버스하기에 어려운 내장형 원시 코드 능력들 또는 번역기 동작을 포함할 수있다. 플레이어 지정 공격들을 검출하거나 응답하도록 돕는 능력들은, 그들이 플레이어 지정 문제에 응답하여 활성화되기 때문에 판매인 소유 및/또는 플레이어 지정일 수 있다. 특정 정책들은 제한없이 간단한 증거자료가 없는 피쳐들, 타이밍 감지 루틴들, 엔지니어를 리버스하거나 소프트웨어의 최고 속도를 에뮬레이트하기 어렵도록 명확하게 설계된 동작들(예를 들어, 전체적으로 여기에 참조로써 통합된 Kocher 등에 의한 미국특허 #6,289,455의 의사비대칭 기능 참조), 및 전체 암호 오라클들(대칭 또는 비대칭)을 포함할 수 있다. 번역기가 전용 하드웨어로 실행되는 장치의 경우, "원시" 코드 및 해석된 코드는 유사하거나 동일할 수 있다(그들은 다른 특권들로 동작하고, 상기 경우 플레이어들은 특정 인증 코드에 대해 보다 높은 특권 레벨에서 실행을 제한할 수 있다).
원시 코드를 사용하는 컨텐츠의 예시적인 실시예에서, 매체는 해석될 때 부가적인 해석 가능한 코드를 로드하는 해석된 코드로 구성된 초기 부트 부분을 포함한다. 그 다음 컨텐츠 코드(예를 들어, 부트 부분에 의해 로딩된 코드)는 플레이어에 대한 절차 호출들을 발행하고 플레이어 타입을 포함하는 재생 환경에 관한 정보를 결정하기 위하여 결과들을 분석한다. 컨텐츠는 플레이어(또는 다른 부품들)가 보고된 재생 환경 특성들(또는 특징)에 특정한 키들을 사용하여 암호화 동작들을 수행할 수 있는 것을 요구함으로써 재생 환경을 검증할 수 있다. 부당한 번역기들이 검증 결과들로 변조하는 것을 방지하기 위하여, 상기 동작들의 결과는 추후 디코딩 및 재생 고정에 사용될 수 있다. (예를 들어, 해독 키 계산시 플레이어로부터 암호화 결과들을 통합함으로써, 컨텐츠는 특정 플레이어 타입 또는 재생 환경 속성을 주장하지만 대응하는 암호화 키들이 결핍된 부당한 플레이어들에서의 재생을 굳기 방지할 수 있다. 결과들은 또한 예상된 값들과 비교되고, 공용 키 방법들 등을 사용하여 검증된다). 그 다음 컨텐츠는 플레이어가 디폴트에 의해 수정을 요구하는 보안 결함(또는 다른 문제)을 포함하는 형태인지를 결정한다. 이런 결정시, 컨텐츠 코드는 플레이어로부터 정보(예를 들어, 컨텐츠, 플레이어 등에서 클럭으로부터의 날짜/시간 정보에 액세스할수 있는 비휘발성 메모리 데이터) 및/또는 외부적으로 얻어진 정보(예를 들어 부속 장치들에게 질문하거나 네트워크를 통하여 통신함으로써)를 분석할 수 있다. 만약 문제가 식별되면, 대응하는 대응책은 얻어진다(예를 들어, 매체 또는 인터넷 같은 데이터 네트워크를 통해). 이슈의 성질로 인해, 대응책들은 해석된 코드 및/또는 원시 코드를 포함할 수 있다. 원시 코드 대응책이 필요한 경우, 컨텐츠는 코드가 미래 사용을 위해 비휘발성 메모리에 버퍼되고(예를 들어, 절차 호출을 통하여), 영구적으로 저장되고(예를 들어, 종래 비휘발성 메모리에 대해 버그를 수정하기 위하여), 및/또는 즉각적으로 실행되어야 하는지를 가리키는 명령들을 포함하는 플레이어에 디지털적으로 사인된 데이터로서 대응책 코드를 제출할 수 있다. 원시 코드는 또한 원시 코드가 실제로 플레이어에 의해 실행되는 것을 컨텐츠 코드가 보장하도록 색별 가능한 동작(컨텐츠 해독 처리가 통합될 수 있는 암호화 계산)을 수행하도록 구성된다. 원시 코드는 예를 들어 암호화 키들을 중복 기재함으로써 부당한 플레이어들을 디스에이블하도록 구성될 수 있다. 컨텐츠는 또한 디지털 인터페이스들을 통하여 접속된 디스플레이들 또는 스피커들 같은 다른 장치들에 질문, 분석 및 코드 전달 및 코드 업데이트(네이티브(native) 또는 해석됨)할 수 있다. 일단 재생 환경이 허용 가능하면, 그 다음 컨텐츠 코드는 매체로부터 데이터의 상당 부분들을 로딩하고, 법정(forensic) 워터마크들을 삽입하는 동안 디스크립션 동작들을 수행하고, 압축해제 및 출력을 위하여 해독된 데이터를 전달함으로써 사용자에 의해 요구된 바와 같은 재생을 진행한다.
표준화 및 성능 고려
제품들이 컴플라이언트 컨텐츠(보안 정책들 등에 영향을 받음)를 플레이할 수 있는 것을 컴플라이언트 플레이어들의 메이커들이 확신할 수 있는 충분한 항목에서 재생 환경을 정의하는 표준들이 필요하다. 상기 표준들은 해석자의 기본 명령 세트(또는 등가) 및 요구된 절차 호출들을 통상적으로 지정한다. 디코딩 처리의 실시간 부분들에 포함될 수 있는 절차 호출들 및 임의의 명령들에 대한 성능 요구를 정의하는 것이 필요하다. (성능 요구들은 일반적으로 시작, 중단, 및 비-실시간 동작들 동안만 수행되는 동작들에 대해 덜 임계적이다.)
예를 들어, 예시적인 사양은 컴플라이언트 번역기들이 초당 최소 8백만 "시간 유니트"(TU)를 실행할 수 있는 것을 요구하고, 여기서 정상적인 저레벨 번역기 동작들은 각각 하나의 TU를 차지하고 곱셈 및 나눗셈 동작들은 4TU를 차지한다. 플레이어 공급 절차들(예를 들어, DLX "트랩들")에 대한 호출을 위한 성능 요구들은 요구된 동작에 따른다. 예를 들어, AES 암호화 동작들은 블록 부호 계산당 100TU 플러스 12TU를 차지할 수 있다. 워드 정렬 메모리는 16 바이트(또는 그것의 일부)당 50TU 플러스 1TU를 차지할 수 있다. 매체 판독 요구를 버퍼링하거나, 버퍼된 요구의 완전한 상태를 검사하는 것은 100TU들을 차지할 수 있다. 판독 요구들은 오더 제출 시간에 한번 수행되지만 다른 처리와 병렬로 수행되고, 2048 바이트 섹터당 10,000TU들 플러스 1500TU들을 차지할 수 있다. 비연속 판독들은 오버헤드를 찾기 위하여 부가적인(20000+640000*섹터들에서 찾기 거리/매체당 최대 섹터들)을 차지할 수 있다. 완전한 판독으로부터 데이터를 로딩하는 것은(드라이브의 버퍼를 번역기의 메모리 공간에 전달하는 것)은 전달된 2048 바이트 섹터 당 100TU 플러스 128TU를 차지할 수 있다. 코덱들 또는 다른 출력들에 데이터를 전달하는 것은 전달된 16 바이트들(그 일부) 당 100 TU 플러스 1TU를 차지할 수 있다. 물론, 이들 타이밍 값들은 예시적인 목적들을 위하여 제공된다; 특정 성능 매트릭들은 시스템의 요구들에 따른다. 보다 복잡한 성능 명령(예를 들어, 명령 시퀀스들에 대한 총 계산 시간 지정)은 보다 큰 가요성을 가진 플레이어 번역기를 제공하거나 보다 나은 성능 보장을 가진 컨텐츠 창시자들을 제공하기 위하여 지정될 수 있다.
실제로, 많은 실행들은 최소 성능들보다 상당히 빨리 동작한다. 이것은 간단히 요구되기 전에 데이터가 미리 준비되는 것을 의미한다. 예를 들어, 정규 해석 명령당 40 클럭 사이클들을 가진 소프트웨어-기반 번역기는 2GHz 마이크로프로세서에서 약 5천만 TU들/초를 수행한다. 유사하게, 25MHz에서 운행하고 명령당 2 클럭 사이클들에서 운행하는 전용 하드웨어 실행은 초당 8백만 TU 이상을 수행한다.
표준 개발자들이 시스템 단순화와 성능 사이의 트레이드 오프에 직면한다는 것을 유념하라. 특히, 소프트웨어-기반 실행들에 대해, 절차에서 수행된 동작들은 해석된 코드에서 동일한 동작들보다 상당히 빠르게 동작한다. 다른 한편, 이들 동작들은 미리 정의되어야 하고 통상적으로 성능 가정시 인입/인출 오버헤드를 포함한다. 그럼에도 불구하고, 메모리 카핑, 검색, 다수의 계산, 및 암호화 계산들 같은 공통 동작들에 대한 절차 호출들은 상당한 성능 이익을 제공한다. 대안적인 성능 개선 방법은 최적화(예를 들어, 원시 코드로 전환됨)될 수 있는 영역들을 식별하기 위해 실행 이전 또는 실행 동안 번역기가 컨텐츠 코드를 분석하는 것이다. 컨텐츠 코드는 최적화를 위해 적당한 후보들인 영역들을 번역기에게 통보하는 "힌트들"을 포함할 수 있다. "힌트" 방법은 하드웨어 실행들(빠르지만, 복잡한 동작들 수행에 어려움을 갖는)이 힌트(예를 들어, NOP로서 처리함으로써)를 무시할 수 있고 추후 코드를 처리하는 것이 바람직하다. 소프트웨어 실행들(느리지만, 보다 높은 속도의 원시 코드 능력들을 갖는)은 기능적으로 호환할 수 있는 원시 코드 루틴들로 해석된 코드를 대체하기 위하여 힌트를 사용할 수 있다. 만약 원한다면, 성능 표준들은 공통 구성들에 대한 플레이어 성능 요구들을 지정할 수 있다. 플레이어들은 또한 성능 최소치(예를 들어, 실시간 임무들)을 충족시키도록 항상 보장되는 번역기 모드들과 보다 나은 평균-경우 성능(예를 들어 비-실시간 과업들)을 가진 모드들 사이에서 컨텐츠가 선택할 수 있게 한다.
컨텐츠를 인증할 때, 컨텐츠 개발자들은 그들이 기입한 소프트웨어가 표준에 의해 명시된 성능 최소치들을 충족시키는 것을 검증할 필요가 있다. 타이밍 준수를 검증하기 위한 특별 검사 시스템은 그것이 실행함에 따라 컨텐츠 코드의 최악의 경우 성능 특성들을 조작한다. 수행된 각각의 서브동작에 대해 플레이어가 가질 수 있는 최소 허용 시간을 조작하는 동안, 재생 처리를 에뮬레이트함으로써 동작한다. 만약 재생 처리가 너무 느리면(예를 들어, 측정된 가장 나쁜 경우 플레이어 성능이 코덱에 공급되는 데이터의 타임스탬프들에 뒤쳐지면 또는 만약 코덱이 "쇄약"해진 데이터가 될 수 있으면), 툴은 문제를 수정할 수 있는 매체 창시자에게 통지할 수 있다. 인증 툴들은 그들의 출력이 신뢰성 있게 플레이할 것을 보장하기 위한 동일한 방법을 이용할 수 있다.
보안 비휘발성 메모리
상기된 바와 같이, 플레이어 장치는 컨텐츠에 사용하기 위한 비휘발성(NV) 저장 능력들을 컨텐츠에 제공할 수 있다. 엔트리 인증 컨텐츠의 수가 클 수 있기 때문에(가능하면 작은 아티스트들, 학생들, 홈 사용자들 등뿐만 아니라, 주 스튜디오들을 포함함), 몇몇 컨텐츠가 빈약하게 기입되거나 심지어 부당하게 기입된다는 가정하에서 NV 저장소 사용을 컨텐츠 및 플레이어들이 제한하게 하는 것은 바람직할 수 있다. 결과적으로, 플레이어들은 NV 메모리를 리버스하고, 저장된 데이터를 판독, 변형 및 중복 기재하기 위하여 각각의 타이틀의 능력을 제한하기를 원할 수 있다. "보안 메모리들 및 카운터들"이라 불리는 섹션은 비휘발성 메모리를 액세스하는 코드를 검증하기 위하여 디지털 서명을 사용하는 것을 기술한다. 몇몇 상황들에서, 컨텐츠 타이틀들이 비휘발성 메모리 영역들을 할당하고 및/또는 제어하도록 하는 동안 집중화된 증명 인증없이 비휘발성 메모리 보안이 동작하는 것이 바람직할 수 있다(예를 들어, 정책적 및/또는 기술적 이유때문).
다음 섹션은 집중화된 사인 인증을 요구하지 않고 비휘발성 메모리에 대한 보안 액세스를 컨텐츠에게 제공하는 플레이어의 예시적인 실시예를 기술한다. 도 4를 참조하여, 예시적인 메모리 관리기는 256 바이트들의 511 슬롯들 및 부가적인 데이터에 대하여 256 바이트들로 분할되는 플래시 메모리의 128 킬로바이트들에 대한 액세스를 제어한다. 슬롯 0[410], 슬롯 1[412], 슬롯 2[414], 및 각각의 슬롯(440)은 슬롯에 본래 할당된 타이틀의 매체 ID를 식별하는 127 비트 매체 ID(420); 슬롯이 최근에 업데이트될 때 식별하는 40 비트 최근 업데이트 시퀀스 카운터(424); 슬롯이 중복 기재될 필요가 있는 슬롯의 랭크를 가리키는 8 비트 슬롯 우선권 값(426); 인증된 코드에 의해서만 액세스할 수 있는 사적 데이터(428)의 16 바이트들; 슬롯에 액세스하기 위하여 인증된 코드의 160 비트 해시(430); 및 메인 슬롯 페이로드 데이터(432)를 포함한다. 플레이어가 팩토리에서 시작될 때, 이들 값들은 슬롯이 비어있는 것을 가리키기 위하여 모두 0으로 초기화될 수 있다.
128 킬로바이트 비휘발성 메모리의 최종 256 바이트들은 시크릿 플레이어 키(444); 중복 기재되는 우선권 6 슬롯들의 수를 포함하는 카운터(445); 중복 기재되는 우선권 7 슬롯들의 수를 포함하는 카운터(446); 및 하이 부분(447) 및 로우(low) 부분(448)으로서 저장된 슬롯 기입 카운터를 포함하는 값들을 저장하기 위하여 사용된다. 슬롯 기입 카운터가 자주 업데이트되고 몇몇 휘발성 메모리 기술들이 너무 많은 기입 사이클들 후 소모되기 때문에, 이런 카운터는 임의의 특정 메모리 셀이 업데이트되는 시간들의 수를 제한하는 형태로 저장된다. 카운터는 로우 부분의 1024 비트들 중 1023이 풀(full)되지 않으면 로우 부분(448)에 하나의 비트를 설정함으로써 증가되고, 상기 경우 하이(high) 부분(449)은 증가되고 로우 부분(448)의 모두 1024 비트들은 클리어된다. 카운터 값은 1024를 하이 부분(447)에 곱하고 그 다음 로우 부분(449)에 설정된 비트들의 수를 부가함으로써 판독된다. 플레이어가 팩터로에서 시작될 때, 이들 값들은 플레이어 키가 시크릿(의사) 랜덤 값으로 시작되어야 하는 것을 제외하고 영에서 시작될 수 있다.
플레이어는 또한 비휘발성 메모리(예를 들어, 종래 RAM)에 저장될 수 있는 몇몇 값들을 유지한다. 이들은 매체 키(450), 매체 식별기(452), 슬롯(즉, 번호 0 내지 510)이 현재 첨부된 것을 가리키는 값(456), 및 NV 메모리의 가장 높은 우선권 슬롯이 현재 타이틀에 의해 기입되는 것을 가리키는 값을 포함한다. 타이틀이 시작될 때(예를 들어, 매체가 삽입되거나 플레이어가 리셋될 때), 첨부된 슬롯 식별기(454), 첨부된 슬롯 우선권(456), 및 최대 생성 우선권(458)은 리셋된다. 매체 키(450)는 바람직하게 고객 기록 가능 매체상에서 고객 기록 가능 장치들로 기입할 수 없는 매체 부분으로부터 바람직하게 로딩된다. 매체 식별기(452)는 그 다음 배경 기술에 공지된 보안 해시 알고리즘(SHA-1) 같은 일방향 암호 변환을 제공함으로써 매체 키로부터 유도된다. 부가적인 보증을 제공하기 위하여, 매체는 암호 서명 인증 매체 키(450) 및/또는 매체 식별기(452)를 보유하고, 플레이어 및/또는 컨텐츠 코드에 의해 인증될 수 있다. 다른 실시예들은 다른 값들을 포함할 수 있고(매체 및/또는 매체의 특정 부분에 지정된 식별기들이 제조되거나 프레스된 설비의 식별 같은) 식별기들 및 키들 사이에 고정된 관계를 가질 필요가 없다.
일반적으로, 컨텐츠 코드는 각각의 슬롯의 사적 데이터(428)를 제외하고 비휘발성 메모리 컨텐츠들에 제한받지 않는 판독 액세스가 허용될 수 있다. 이런 판독 액세스는 컨텐츠가 슬롯 번호를 지정하고 컨텐츠들을 검색하게 하는 절차 호출(예를 들어, DLX "트랩" 동작)을 사용하여 실행될 수 있다. 만약 요구된 슬롯이 현재 첨부되지 않으면(즉, 첨부된 슬롯 식별기 454에 의해 식별), 슬롯 사적 데이터(428)는 리턴되지 않는다(예를 들어, 0들이 이들 위치에 리턴된다).
예시적인 실시예에서, 컨텐츠는 비휘발성 메모리 슬롯들을 판독하고, 액세스("첨부")를 요구하고, 변형하기 위한 다음 기본 동작들을 갖는다 :
슬롯판독(SlotRead): 이 절차 호출은 컨텐츠 코드에 의해 액세스할 수 있는 메모리 공간에 지정된 슬롯의 컨텐츠를 판독한다. 이런 절차의 입력 파라미터들은 결과들이 저장되어야 하는 컨텐츠의 메모리내에 슬롯 번호 및 포인터를 포함한다. 전체 슬롯 컨텐츠들은 판독 결과들에서 일반적으로 제로인 사적 데이터 필드(428)를 제외하고 리턴된다. 만약 지정된 슬롯 번호가 (-1)이면, 첨부된 슬롯 식별기(454)에 의해 식별된 슬롯은 판독되고 완전한 컨텐츠들(사적 데이터 428 포함)은 검색되고 저장된다. 동작 리턴 값은 판독(예를 들어, 만약 슬롯(-1)이 지정되면 첨부된 슬롯 식별기 454)되는 슬롯 번호 또는 왜 요구가 실패했는지를 가리키는 에러 코드를 포함하는 정수이다.
슬롯첨부(SlotAttach): 이 절차 호출은 지정된 슬롯에 특권 액세스를 요구하기 위하여 사용된다. 상기 액세스를 승인하기 전에, 요구를 형성하는 코드는 인증된다. 절차의 입력 파라미터들은 슬롯 번호, 코드 길이, 및 요구된 우선권 레벨을 식별한다. 상기 절차는 액세스가 승인될 코드의 시작 어드레스를 결정한다(예를 들어, 슬롯첨부 동작을 호출하는 명령을 따른 컨텐츠의 메모리 어드레스). 어드레스 및 지정된 길이를 사용하여, 절차는 코드의 암호 해시(예를 들어, SHA-1)를 계산한다. 만약 해시 결과가 슬롯에 저장된 인증 해시(430)의 값에 매칭하지 않거나 만약 요구된 우선권이 검증되도록 결정되면(예를 들어, 도 5에 관련하여 기술될 바와 같이), 슬롯 제로가 첨부되고(즉, 첨부된 슬롯 식별기 454 및 첨부된 슬롯 우선권 456은 제로로 설정됨) 에러는 리턴된다. 그렇지 않으면, 요구된 슬롯 번호는 현재 첨부된 슬롯이 된다(예를 들어, 첨부된 슬롯 식별기 454는 요구된 슬롯 번호로 설정되고, 첨부된 슬롯 우선권 456은 설정됨). 특별한 경우로서, 호출 코드는 새로운 슬롯이 할당되는 것을 요구하기 위하여 (-1)의 슬롯 번호를 지정할 수 있다. 이러한 경우, 플레이어는 요구된 우선권(예를 들어 도 5에 관련하여 하기에 기술됨)을 검증하고 만약 우선권이 검증되면 에러를 리턴한다. 그렇지 않으면, 플레이어는 중복 기재(하기되는 바와 같이)하기 위해 슬롯을 선택하고, 그것을 클리어시키고(예를 들어 현재 매체 ID(452에 생성기 매체 ID(420)를 설정함으로써, 다른 슬롯 필드들을 제로로 하고, 기입 카운터 447/448를 증가시킴), 슬롯에 첨부하고(예를 들어, 슬롯의 번호에 첨부된 슬롯 식별기(454)를 설정하고 요구된 우선권에 우선권 456을 설정함), 및 보다 큰 현재 값 및 요구된 우선권(456)에 최대 생성 우선권(458)을 설정한다. 만약 번역기가 중단 및 잠재적으로 신뢰할 수 없는 코드의 예상되지 않은 실행을 유발할 수 있는 다른 능력들을 지원하면, 이들은 슬롯이 첨부되는 동안 부당한 코드의 도입을 방지하기 위하여 디스에이블된다. 리턴 값은 첨부된 슬롯 번호(454)이거나 만약 동작이 실패하면 에러 코드일 수 있다(예를 들어, 코드 해시 미스매칭 또는 검증반대 요구 우선권).
슬롯기입(SlotWrite): 이 절차 호출은 현재 첨부된 슬롯에 데이터를 기입한다. 이런 절차의 입력 파라미터는 다른 슬롯 필드들을 위한 업데이트 값들과 함께 기입되는 슬롯 사적 데이터(428), 인증 해시(430), 및 페이로드(432)를 위하여 새로운 컨텐츠들을 가리킨다. (특히, 생성기 매체 ID(420)는 변화하지 않고, 최종 업데이트 매체 ID(422)는 현재 매체 ID(452)로 설정되고, 최종 업데이트 시퀀스 카운터(424)는 슬롯 기입 카운터(445/448)에 설정되고, 슬롯 우선권(426)은 첨부된 슬롯 우선권(456)에 설정된다). 슬롯 기입 전에, 슬롯 기입 카운터는 로우 부분(448)을 업데이트함으로써 증가되고, 만약 필요하면 하이 부분(447)을 업데이트한다. 제한된 수명(예를 들어 많은 플래시 및 EEPROM 메모리들이 1백만 기입 사이클의 속도를 가짐)을 가진 비휘발성 메모리를 사용하는 플레이어들은 전력 인가/매체 삽입후 너무 많은(예를 들어 128 이상) 기입들이 수행되면 기입을 거절할 수 있다. 기입 동작은 첨부된 슬롯 식별기(454) 및 첨부된 슬롯 우선권(456) 모두를 제로로 리셋한다. 리턴 값은 기입이 성공적인 것을 가리키는 상태 코드이다.
슬롯 우선권 관리 지원부는 (a) 컨텐츠가 합리적으로 필요할 때 많은 비휘발성 메모리에 액세스하여야 하고; (b) 컨텐츠가 비휘발성 메모리가 의도하지 않고 중복 기재되지 않는다는 신뢰를 가져야 하고; (c) 하나의 타이틀이 과도한 양의 비휘발성 메모리를 비축할 수 없어서 다른 타이틀이 임의의 것을 비축할 수 없도록 하고; (d) 만약 비어있는 슬롯들이 비휘발성 메모리에서 이용되지 못하면, 거의 사용되지 않는 슬롯들이 몇몇 비휘발성 저장소에 새로운 컨텐츠를 제공하기 위하여 리사이클되어야 하며; 그리고 (e) 적법한 슬롯들이 리사이클되게 하도록 설계된 다량의 요구들을 타이틀이 제출할 수 없어야 하는 것을 포함하는 몇몇 잠재적 충돌 오브젝트들을 밸런싱하기 위하여 제공된다. 일반적으로, 보다 높은 우선권들을 가진 슬롯들은 만약 플레이어가 슬롯들을 소모하면 보다 적게 중복 기재된다. 예시적인 실시예에서, 우선권 룰들은 기껏 하나의 최상 우선권 슬롯(우선권 7)을 각각의 매체 타이틀이 가질 수 있는 것을 보장하도록 설계된다. 게다가, 매체는 각각의 삽입 또는 플레이어 전력 사이클에서 2 이상의 우선권을 가진 하나의 슬롯만을 형성하도록 허용된다. 컨텐츠는 플레이어들이 제조될 때 비축된 슬롯들이 비록 보다 높은 우선권 레벨들을 가질 수 있지만 7 이상의 우선권들을 가진 슬롯들을 형성할 수 없다.
도 5는 첨부된 슬롯에 대해 요구된 우선권이 허용되는지를 검증하기 위한 예시적인 처리를 도시한다. 슬롯이 첨부되거나 생성될 때(상기 슬롯첨부 참조), 컨텐츠는 요구된 우선권 값을 지정한다. 단계(500)에서, 플레이어는 새로운 슬롯이 할당되는지(예를 들어 슬롯 번호가 -1로서 지정됨)를 검사한다. 만약 그렇다면, 단계(510)에서, 플레이어는 요구된 우선권이 슬롯의 종래 우선권(426)을 초과하는지를 검사하고, 만약 그렇다면, 요구된 우선권이 너무 크다는 것을 표시하는 에러를 리턴한다. 그렇지 않으면, 단계(520)에서, 첨부 요구가 요구된 우선권을 사용하여 진행하도록 허용된다. 요구가 새로운 슬롯을 할당하는 것을 단계(500)가 결론내리면, 플레이어는 요구된 우선권이 7 또는 그 미만인지를 단계(530)에서 검사하고, 만약 그렇지 않으면 에러를 리턴한다. 그렇지 않으면, 단계(540)에서, 플레이어는 요구된 우선권이 2를 초과하는지를 검사하고, 만약 그렇지 않으면 요구된 우선권은 슬롯을 할당하기 위한 검증으로서 허용된다. 그렇지 않으면, 단계(550)에서, 매체가 삽입되거나 플레이어가 리셋되기 때문에 플레이어는 2 이상의 우선권을 가진 임의의 슬롯들이 생성되었는지를 결정하기 위하여 최대 생성 우선권(458)을 검사하고, 만약 그렇다면, 요구된 우선권은 거절된다. 그렇지 않으면, 단계(560)에서, 플레이어는 요구된 우선권이 7인지 검사하고, 만약 그렇지 않으면, 요구된 우선권은 슬롯을 할당하기 위한 검증으로서 허용된다. 그렇지 않으면, 단계(570)에서, 플레이어는 저장된 생성기 매체 ID(420)가 현재 매체 ID(452)와 동일한 우선권 7 슬롯인지를 검사하고, 만약 그렇다면 요구된 우선권 무효(invalid)로서 거절한다. 그렇지 않으면, 요구된 우선권은 슬롯을 할당하기 위하여 허용된다.
새로운 슬롯이 할당될 때(즉, 슬롯 -1을 가진 컨텐츠 호출 슬롯첨부), 플레이어는 중복 기재를 위한 가장 낮은 우선권(426)을 가진 슬롯을 선택한다. 팩터리에서, 비어있는 슬롯들은 가장 낮은 가능한 우선권(제로)에서 시작되고, 그러므로 일반적으로 제일 먼저 사용된다. 만약 다중 슬롯들이 가장 낮은 우선권을 공유하면, 가장 낮은 기입 시퀀스 컨텐츠를 가진 슬롯이 선택된다. 만약 우선권 6 또는 7을 가진 슬롯이 중복 기재를 위하여 선택되면, 대응하는 카운터(우선권 6이 카운트 445를 중복 기재하거나 우선권 7이 카운트 446을 카운트함)는 증가된다. 선택적으로, 매우 큰 수의 슬롯들을 위한 공간을 가진 플레이어들은 만약 요구가 요구되거나 그렇지 않으면 높은 우선권 슬롯을 중복 기재하는 것을 포함하면 간단히 실패할 수 있다.
팩토리에서, 몇몇 슬롯들은 인증 해시(432) 및 비-제로슬롯 우선권에 대한 미리 결정된 값들에서 시작될 수 있다. 슬롯에 대한 기능 및/또는 보안 요구들은 해시된 코드에 따른다. 예를 들어, 미리 결정된 인증 해시를 공식화하기 위하여 사용된 코드는 (a) "안전" 값들로 모든 레지스터들(예를 들어, 스택 포인터들 등)을 초기화하고; (b) 인증된 코드 영역 외측의 미리 결정된 어드레스로부터의 RSA 서명 값을 로딩하고; (c) 슬롯첨부 동작에 의해 인증된 영역에 내장된 공용키를 사용하여, RSA 서명이 번역기의 메모리 영역을 넘는 검증 서명을 결정하고; 및 (d) 만약 RSA 서명이 검증되지 않지만, 디지털적으로 사인되었던 영역의 제 1 어드레스로 점프하면 현재 슬롯(예를 들어, 일반적으로 액세스할 수 있는 슬롯 0에 첨부함으로써)으로부터 분리하는 단계들을 수행하도록 구성될 수 있다. 만약 디지털적으로 사인된 코드가 특정 플레이어상에서만 플레이되고자 한다면, 예를 들어 코드는 운행 전에 코드 부분을 해독하기 위하여 플레이어의 식별부(또는 다른 속성들)를 검사하고 및/또는 플레이어 키들을 사용하도록 구성될 수 있다.
선행하는 단락들에서 실시예는 해시-기반 슬롯 검증 방법을 사용하여 비대칭 서명 검증(예를 들어 "보안 메모리들 및 카운터들"이 제목인 섹션에 기술됨)을 실행하기 위한 방법을 도시한다. 이러한 방법은 미래 사용을 위하여 슬롯들이 비축되게 하고, 여기서 미래 사용은 플레이어들이 제조되거나 표준들이 이 정의될 때 명시될 필요는 없다. 또한 해시-기반 방법을 실행하는 코드를 사인하기 위하여 공용 키-기반 코드 검증 시스템을 사용하는 것도 가능하다.
다중 목적을 위하여 단일 슬롯을 사용하는 것도 가능하다. 예를 들어, 다중 코드 세그먼트들은 상기한 것과 같은 검증 처리를 통과하기 위하여 디지털적으로 사인될 수 있다. 각각의 이들 코드 세그먼트들은 슬롯의 다른 부분을 변형하고 완료될 때 적당히 분리하도록 구성될 수 있다.
슬롯의 사적 데이터 필드(428)은 슬롯 컨텐츠들을 코드가 암호화하도록 할 수 있기 때문에 주목할만하다. 비록 임의의 컨텐츠가 메인 슬롯 페이로드를 판독할 수 있지만, 인증된(예를 들어 슬롯첨부 처리) 코드만이 사적 데이터(428)를 판독할 수 있다. 그러므로 인증된 코드는 슬롯 컨텐츠들을 암호화 및 해독하기 위한 키(또는 키 유도)로서 사적 데이터(428)를 사용할 수 있다. 이런 방식에서, 슬롯들에 저장된 데이터 사생활은 보장될 수 있다. 만약 원한다면, 컨텐츠는 슬롯 컨텐츠들상에 인증 코드들 또는 디지털 서명들을 배치하는 능력을 가진다. 이러한 서명들은 컨텐츠 코드(선택적으로 플레이어 키들을 사용하여)에 의해 생성되고, 플레이어에 의해 생성되고, 또는 외부 당사자(party) 또는 장치(타이틀 공개자 또는 플레이어 제조자)에 의해 생성될 수 있다. 추후 타이틀들은 슬롯들을 통하여 검색하도록 구성될 수 있고, 특정 보안이 검사하는 것을 가리키는 디지털적으로 사인된(또는 인증된) 값들에 대한 검색이 필요하거나 특정 매체 ID는 해지된다.
슬롯-기반 피쳐들은 다중 타이틀에 의해 공유될 수 있다. 예를 들어, 가장 최근 공지 날짜에 컨텐츠를 제공하는 데이터 관리자를 실행하는 것은 가능하다. 이런 능력을 사용하는 타이틀은 마스터될 때 현재 날짜의 디지털적 사인 표현 및 슬롯의 인증 해시(430)와 매칭하는 몇몇 미리 결정된 코드를 보유한다. 슬롯을 관리하기 위한 코드는 (a) 컨텐츠가 보유된 데이터상 디지털 서명을 검사하고; (b) 현재 슬롯 컨텐츠들을 판독하고; (c) 슬롯의 페이로드(432)의 날짜와 타이틀로부터의 현재 검증된 날짜를 비교하고; (d) 만약 타이틀의 날짜가 늦으면, 변화되지 않은 슬롯의 나머지를 남기면서 비휘발성 메모리에 새로운 날짜를 저장하기 위하여 슬롯 컨텐츠들 및 호출 슬롯 기입부에 타이틀의 날짜를 배치하고; (e) 슬롯으로부터 분리하고, 및 (f) RAM으로부터 슬롯 사적 데이터(임의의 다른 필수적이 아닌 값들)를 제거한다. 상기 동작은 에러 또는 늦은 날짜 값(즉, 슬롯에 저장된 제목 및 날짜를 보유한 늦은 인증 데이터)을 리턴한다. 코드는 손상된 날짜들이 미래에 잘못 해석되지 않도록 상기 날짜를 가진 디지털 서명을 선택적으로 저장할 수 있다. 게다가, 상기 날짜는 현재 날짜를 포함하는 타이틀들에 저장된 날짜 값으로 판독 액세스를 제한하도록 암호화(예를 들어 하나의 키로서 사적 데이터 필드 428의 값을 사용함)하여 저장될 수 있다. 플레이어의 날짜 값들은 예를 들어 보안 업데이트들이 필요한지, 온라인 보안 검사들이 만기일인지, 페이-퍼-뷰 구매 기록들이 제출될 만기일인지 등을 결정하기 위하여 사용될 수 있다.
몇몇 실시예들에서(예를 들어, 실시간 네트워크 능력들을 제공함), 네트워크 지원부가 인에이블될 때 비휘발성 메모리에 플레이어 제한 액세스를 가지는 것은 바람직하다. 이런 제한은 예를 들어 부당한 컨텐츠가 비휘발성 저장소로부터 데이터를 추출하고 네트워크를 통하여 전송하는 것을 방지함으로써 사용자 사생활을 보장할 수 있다. 특정 예로서, 네트워크 액세스 능력들을 사용하는 타이틀들은 슬롯들로부터 판독되는 것을 방지할 수 있다(또는 사용자 식별 정보이거나 다른 타이틀들에 의해 생성된 것과 같은 특정 슬롯들을 판독하는 것). 플레이어들은 타이틀들이 네트워크 액세스 특권들을 종료하고 보다 넓은 슬롯 액세스를 얻도록 할 수 있다(예를 들어, 네트워크 액세스가 더 이상 요구되지 않으면 법정 워터마크들을 위한 값들을 얻기 위하여). 이런 데이터가 컨텐츠의 카피로부터 복구되기 때문에, 법정 워터마크들에 내장된 정보가 동일한 사생활 우려(concern)들을 발생할 수 없는 것을 유념하라.
상기 특정 비휘발성 메모리 관리 설명들은 특정 실시예들을 도시하기 위하여 의도된다. 많은 변형들이 물론 가능하다. 예를 들어, 특정 슬롯 구성, 슬롯 관리 동작들 및 우선권 관리 방법들은 도시하기 위하여 제공된다. 고정된 크기의 슬롯들에 메모리를 할당하기 보다, 다른 메모리 관리 방법들이 사용된다(슬롯들을 바탕으로 하지 않는 할당 방법들을 사용하는 것을 포함함). 다른 액세스 제어 메커니즘들(매체 식별기들을 바탕으로 하지 않는 것)이 사용될 수 있다. 슬롯들에 대한 비휘발성 메모리의 총 양은 가변할 수 있다(또는 하드 디스크들의 경우 또는 다른 고용량 저장 기술들에서 처럼 효과적으로 제한되지 않음). 독립된 비휘발성 저장 능력들은 매체/디스크 삽입 히스토리들을 추적하기 위하여 포함될 수 있다. 인증되지 않은 판독/변형을 방지하기 위하여 비휘발성 메모리(또는 컨텐츠에 의해 액세스 가능한 메모리 같은 다른 메모리들)의 컨텐츠들을 암호화 및/또는 인증화하는 암호법을 사용하는 것이 바람직할 수 있다. 소프트웨어 실행들에서, 다양한 코드, 어드레스, 데이터 및 알고리즘 난독화 기술들은 플레이어 키들의 추출(또는 변조)을 방지하기 위하여 사용될 수 있다. 임의의 방식의 데이터는 제한없이 : 페이-퍼-뷰 구매 기록들; 임의의 종류의 카운터들(예를 들어, 구매 카운터들, 신용/데빗 또는 다른 밸런스 카운터들, 실패 카운터들, 매체/디스크 삽입 카운터들 등); 온라인 또는 전화-기반 보안 검사들의 결과들; 기록들/히스토리들의 관찰; 코드(해석할 수 있거나 네이티브임); 해지 데이터(플레이어들, 주변부들 등을 위한); 다른 타이틀들에 대한 신호들; 리베이트(rebate)들 또는 디스카운트들에 대한 권한을 평가하기 위하여 사용된 정보; 트랜잭션 및 재생 히스토리 데이터; 디지털 서명들; 및 키들을 포함하는 슬롯들에 저장될 수 있다.
매체 해지
하나의 주목할만한 시나리오는 플레이어가 신뢰적이지만, 매체가 저작권 침해되는 상황이다. 이것은 그들이 적법한 카피들에 가능한 한 가까운 "제품"을 제공하기 때문에, 일반적으로 직업적 저작권 침해자들에 대한 통상적인 상황이다. 모든 오프 라인 매체 재생 장치들은 플레이어들이 본래 것으로부터 물리적으로 구별할 수 없는 적법한 매체의 카피들을 생성하기 위한 방법들을 저작권 침해자들이 개발하면 이런 성질의 공격들에 잠재적으로 영향을 받는다. 하드-투-카피 매체 피쳐들(광학 디스크들상 트랙들의 요동 특성들의 측정과 같은)은 정확한 복제를 보다 어렵게 하지만, 충분히 결정된 저작권 침해자들이 카피들을 형성하는 방법들을 여전히 발견할 수 있다. 유사하게, 법정 워터마킹은 컨텐츠 소유자들이 이전 컨텐츠를 저작권 침해하기 위하여 사용된 장비(여러 가지 중에서)를 식별하게 하지만, 저작권 침해 컨텐츠가 플레이되는 것을 방지하지 못한다.
매체의 인증되지 않은 카피들을 제조하는 저작권 침해 위험성을 처리하기 위하여, 컨텐츠 소유자들은 적법한 매체상에 유일한 카피 식별기를 배치할 수 있다. 광학 디스크들에 대하여, 이런 데이터는 팩토리에 고유하게 기입될 수 있는 영역(몇몇 종래 스탬프 광학 디스크들상에서 발견된 버스트 커팅 영역) 또는 기록 가능한 디스크 부분들(예를 들어 기록 가능한 CD들 및 DVD들, 자기 디스크들 등을 형성하기 위하여 현재 사용된 바와 같은 저장 기술들을 사용함)에 배치될 수 있다. 유일하게 기입 가능한 영역은 작은 양의 정보(예를 들어 몇백 바이트들 중 몇 바이트들)만을 보유할 필요가 있다. 특히, 이 영역은 일련 번호들, 사용자 정보(이름, 전화 번호 등), 암호법 키들 등뿐 아니라 이들 값들을 인증하는 디지털 서명을 보유할 수 있다. 소비자 기록 가능 매체, 유일한 매체 일련 번호(및 선택적으로 연관된 디지털 검증)는 제조된 블랭크 매체 각각의 부분에 기록될 수 있다.
매체상 컨텐츠 코드는 매체가 재생을 위하여 삽입될 때, 이런 유일한 데이터의 인증이 검증되도록 구성될 수 있다. 매체 형태 및 기록된 데이터에 따라, 이런 검증 처리는 매체 부분에 유일한 디지털 서명을 검증하는 것을 포함한다. 이런 검증 검사로부터 대항(adversary)들을 방지하기 위하여, 검증은 난독화된 코드를 사용하여 수행되고, 검사는 여러번 수행되고(예를 들어, 재생 동안 다양한 시간들에서), 검증 결과들은 추후 해독 처리와 통합된다. 만약 유일한 데이터가 무효되면, 컨텐츠 코드는 통상적으로 재생을 거절한다. 그렇지 않으면, 컨텐츠 코드는 (a) 매체가 적법하거나 (b) 제공된 유일한 데이터를 가진 적법한 매체의 일부로부터 카피되는 신뢰를 가진다.
다음, 유일한 매체가 검증되거나 무효화되는지를 결정하기 위하여, 컨텐츠는 현재 삽입된 매체의 해지 상태를 가리키는 데이터 필드들에 대한 플레이어의 비휘발성 메모리 영역을 검사한다. 만약 매칭 해지 정보가 발견되지 않으면, 매체는 검증된 것으로 가정된다. 부주의하거나 부당한 해지를 방지하기 위하여, 해지 데이터는 디지털 서명들 또는 다른 인증 데이터(암호 해시에 대한 사전 이미지 같은)를 검사함으로써 인증될 수 있다. 플레이어의 비휘발성 메모리의 데이터는 어떤 작동, (a) 카피가 불법인 것을 사용자에게 통보, (b) 재생이 감소된 해상도로 처리되게 하는 것, (c) 함께 재생을 방지하는 것, 또는 (d) 사용자가 합법적으로 컨텐츠를 구매하게 하는 것(예를 들어, 전화 번호를 호출하고 언록(unlock) 코드를 입력하거나, 인터넷을 통하여 서버와 상호작용함으로써)중 어떤 작동이 추전되는지를 가리킬 수 있다. 비휘발성 메모리는 또한 컨텐츠가 만약 원한다면 "해지되지 않도록(unrevoke)", 이전 해지 메시지들을 무효로 할 수 있다. 만약 다중 충돌 상태 지시기들이 존재하면, 일련 번호 또는 날짜는 가장 최근 것을 결정하기 위하여 사용될 수 있다.
몇몇 경우들에서, 미리 등록된 것과 같은 특히 인증된 장치들에서 재생할 수 있는 매체를 생성하는 것은 유용하다. 이러한 경우, 해지를 제공하는 대신, 유일한 매체 정보는 매체 활성화를 인에이블하기 위하여 사용될 수 있다. 예를 들어, 진보된 리뷰 카피들 및 미리 제작된 카피들은 일반적으로 모든 플레이어들에서 플레이할 필요가 없다. 기입 가능한 부분에 기록된 데이터는 각각의 매체 부분의 인증된 수령인들에 지정된 해독 키들 또는 다른 정보를 포함할 수 있다. 유일하게 기록된 영역은 이름들, e 메일 어드레스들, 계정 번호들, 또는 특정 수령인을 식별하는 다른 데이터(예를 들어, 법정 워터마킹 목적, 상호작용 피쳐들 등) 또는 수령인의 특성들(예를 들어, 시청 선호도들, 인증 데이터, 그룹 식별기들, 집 코드들 등)을 포함할 수 있다. 이들 필드들은 도난된 매체가 플레이되는 것을 방지하는 활성화 단계들로서 매체의 판매 동안 또는 판매 후 기입될 수 있다(이에 따라 쉘브(shelve)들에서 매체를 디스플레이하는 상점에서 도난 위험성을 감소시킨다). 백엔드(back-end) 시스템들은 결코 활성화되지 않을때 매체에 대한 표준 규격들을 상환하거나, 활성화될 때 매체에 대한 표준 규격들을 부담한다. 이런 능력의 다른 용도는 오피셜 릴리즈 날짜 전에 "록킹된" 매체를 분배하고, 그 다음 재생이 인증될 때 기입할 수 있는 영역에서 재생을 할 수 있는 키들을 기입한다. 정보는 매체, 예를 들어, 소매 설비, 선적 설비, 또는 보안 매체(예를 들어, 만약 처리 설비가 완전히 신뢰되지 않으면)를 제조한 것과 다른 엔티티 또는 설비에 의해 기록될 수 있다. 만약 최종 사용자 장치들이 매체의 부분들을 기록할 수 있으면, 매체가 플레이되거나 언록킹될 때 데이터를 기록하는 것은 가능하다(인증 키들, 플레이어 식별기들 등). 매체상 기입 가능한 부분들은 예를 들어 비용을 위하여 언록킹될 수 있는 "보너스" 자료 같은 피쳐들을 실행하기 위하여 사용되고 다중 플레이어들상에 플레이된다.
오프라인 플레이어들에 대하여, 해지 통지들은 통상적으로 추후 타이틀상에 전달된다. 예를 들어, 새로운 타이틀들은 해지된 매체를 식별하는 일련 번호들(인증 날짜 포함)의 리스트들을 보유할 수 있다. 만약 플레이어가 적당한 비휘발성 저장소(예를 들어, 하드 드라이브)를 가지면, 해지 리스트들은 전체적으로 플레이어들에 의해 저장될 수 있다. 그렇지 않으면, 해지 데이터는 플레이어에 의해 플레이된 임의의 매체가 해지되는지를 결정하기 위하여 플레이어의 삽입 히스토리 및/또는 비휘발성 메모리 슬롯들에 대해 검사될 수 있다. 만약 그렇다면, 대응하는 해지 데이터는 플레이어의 비휘발성 메모리에 저장된다. 이런 방법으로, 저작권 침해된 "클론" 매체는 삽입되는 첫번째 시간에 플레이할 것이고, 매체 부분이 삽입될 때 저작권 침해된 매체를 해지(그렇지 않으면 "알려짐")될 것이다. 일반적으로, 매체 해지는 적법한 매체보다 소비자들에게 덜 매력적인 저작권 침해된 매체를 형성하기 때문에 가치있다.
매체 활성화/해지는 다양한 판매 촉진 및 보안 피쳐들을 실행하기 위하여 사용될 수 있다. 예를 들어, 영화는 여러 버젼들(예를 들어, 와이드 스크린, 팬 스캔, 디렉터 컷 등)을 포함하는 다중 매체로 팔릴 수 있다. 사람들이 독립적으로 매체를 판매하거나 빌리지 못하도록 하기 위하여, 컨텐츠 코드는 하나 이상의 다른 매체가 플레이어의 비휘발성 메모리에 제공되는 것을 검증할 수 있다. 선택적으로, 다른 매체는 바로 삽입되도록 요구된다(예를 들어, 특정 시간량 또는 슬롯 기입 카운터 447/448로의 특정 개수의 증분(increment)들 내에). 다른 옵션으로서, 매체는 재생 동안 (예를 들어, 다른 매체로부터 키 값을 로딩함으로써) 매체의 다른 부분을 사용자가 삽입하는 것을 요구할 수 있다. 프로모션은 사용자들이 만약 다른 매체의 특정 결합들을 플레이하면 보너스 자료에 액세스하도록 제공되는 경우 생성될 수 있다. 물론, 재생 결정은 플레이어 및/또는 재생 환경의 특성들 같은 정보에 링크된다.
온라인 능력들을 가진 플레이어들은 플레이어의 매체 삽입 히스토리에 제공된 다른 타이틀들 및/또는 비휘발성 메모리 슬롯들뿐 아니라, 현재 삽입된 타이틀의 해지 상태를 검사할 수 있다. 이런 검사는 컨텐츠 코드에서 실행되거나 플레이어들에서 수행될 수 있다. 온라인 검사들은 다중 플레이어들이 단일 매체 부분(예를 들어 매체가 저작권 침해되는 것을 가리킴)을 동시에 플레이하거나 과도한 수의 플레이어들이 특정 매체 부분(예를 들어, 라이센스 승인의 위반으로 빌려진 것을 가리킴)을 사용하는 경우를 검출하기 위하여 사용될 수 있다.
저작권 침해자들은 컨텐츠의 코드를 변형함으로써 해지 검사들을 바이패스할 수 있도록 시도할 수 있다. 이러한 경우, 코드의 추후 부분들(예를 들어, 재생 동안 추후에 실행되는 코드)는 검사를 반복하거나 검증 코드를 포함하는 매체의 부분들을 재로딩하고 검증함으로써 변형을 검출할 수 있다. 해지 검사 결과들은 해독 처리와 통합될 수 있다.
물론, 매체 해지 방법상 변화들은 사용될 수 있다. 예를 들어, 플레이어들은 해지된 매체를 식별하기 위하여 구성된 디지털적으로 사인된 해석 코드를 저장할 수 있다. 이들 코드 부분들은 새롭게 삽입된 타이틀이 해지되는지를 결정하기 위하여 매체가 삽입되는 각각의 시간에 실행될 수 있다. 타이틀들은 플레이어가 미래 매체를 검사하기 위하여 유지하는 해지 검사 코드(바람직하게 플레이어들에 의해 검증되는 대응하는 디지털 서명들을 가짐)를 저장할 수 있다. 매체 해지 검사는 해지된 선택적 디스크의 섹터 번호들 및 해시 값들의 테이블을 플레이어의 비휘발성 메모리에 삽입함으로써 플레이어의 ROM내의 코드에 의해 수행될 수 있다. 만약 매체가 기입 가능하면, 컨텐츠는 매체 장치상에 데이터를 저장하고 해지 데이터를 얻는다(또는 사용자 선호도들, 사용자 정보 등 같은 매체상 임의의 다른 종류 및 목적의 데이터를 저장할 수 있다).
매체는 기록 장치들에 관한 해지 데이터를 운반하기 위하여 사용될 수 있다. 예를 들어, 만약 소비자 기록 장치들이 기록들상에 식별 데이터를 배치하도록 구성되면, 플레이어 장치들은 해지된 레코더들의 기록들을 유지할 수 있다. 이들 기록들은 매체상에 보유된 해지 데이터에 의해 업데이트된다. 기록 가능한 매체는 해지된 기록기들이 매체에 기입하는 것을 방지하기 위하여 정보 식별 해지 기록기들로 제조될 수 있다. 해지 관련 데이터 필드들은 예를 들어 적법한 장치들의 부당한 또는 부적당한 해지를 방지하기 위하여 암호적으로 인증될 수 있다. 예를 들어, 기록 장치들에 의해 배치된 식별 데이터는 매체 일련 번호상에 기록기 디지털 검증 및 디지털 서명을 포함할 수 있다. 기록 가능한 매체상에 배치된 식별 데이터는 사용자들의 사생활을 보호하기 위하여 암호화된다(예를 들어 제 3 해당자 매체의 공용 키를 사용함). 임계 암호법은 예를 들어 기록 장치를 식별하기 위하여 다중 매체를 요구하도록 사용될 수 있다. (임계 암호법은 특정양의 카피된 자료가 마크를 복구하기 위하여 요구되는 것을 보장하기 위하여 법정(forensic) 마크들을 사용하는, 여기에 개시된 기술들의 다른 측면들에서 사용될 수 있다).
매체 해지를 위한 하나의 다른 사용은 이용할 수 있는 다른 방법들 외에, 우연한 저작권 침해에 대해 부가적인 억제를 제공하는 것이다. 법정 워터마크들에 삽입된 데이터는 장치에 의해 플레이되는 이전 매체를 식별할 수 있다. 실행 선택에 따라, ID들이 저작권 침해자 카피의 법정 마크들로부터 결정되는 다른 매체를 해지하고, 일련 번호들이 저작권 침해된 자료를 분배하기 위하여 사용된 것과 유사한 기록 가능한 매체를 해지하고, 의심되는 매체 등으로부터 재생 전에 부가적인 인증 단계들을 요구하기 위하여 바람직할 수 있다.
다양한 피쳐들 및 능력들
보안 무효(over-ride) 키들: 컨텐츠는 보안 무효 키의 지식을 가진 플레이어들이 몇몇 또는 모든 보안 검사들을 바이패스할 수 있어서, 컨텐츠 일부 또는 모두에 액세스하게 한다. 상기 키들을 지원함으로써, 컨텐츠 소유자들은 작업의 제한된 부분들에 액세스를 허용한다(예를 들어, 컨텐츠 소유자들이 프레임 단위 바탕으로 비디오에 비판적인 "공정한 사용" 액세스를 승인하는 것을 재판권이 요구하면). 이들 무효 키들은 예를 들어 만약 보호 피쳐들이 빈약하게 설계되면(플레이능력 문제들 형성) 보호된 형태로부터 컨텐츠를 "릴리즈"하기 위하여 사용될 수 있다. 만약 요구되면, 이들 키들은 제 3 해당자에 기탁될 수 있다(또는 제 3 해당자의 공용키로 암호화된 매체상에 저장됨). 무효 키들은 컨텐츠가 공용 도메인에 진입하는 것을 해적 방지 메커니즘들이 방지할 수 있는 문제들을 처리하기 위하여 저작권이 종료할때 스케쥴이 릴리즈될 수 있다.
다수번 공모 분석: 몇몇 상황들에서, 결정된 대항자는 법정 워터마크들의 복구를 방지하기 위한 시도시 다량의 장치들로부터의 출력을 결합할 수 있다. 만약 컨텐츠가 직접적으로 위반 장치들을 식별하기 위하여 사용할 수 없는 많은 장치들과 대항자가 타협하면, 다중 컨텐츠 릴리즈로부터 모아진 법정 정보를 결합하는 것은 가능하다. 예를 들어, 제 1 타이틀로부터 모아진 정보는 대항자에 의해 사용되는 가능한 장치들의 범위를 좁히지만, 모든 위반 장치들을 식별할 수 없다. 이런 지식은 제 2 타이틀이 공격자 및/또는 그 장치에 관한 추가 정보를 제공할 법정 워터마크들을 생성하기 위하여 마스터될 때 사용될 수 있다. 이런 과정은 대항자들이 유일하게 식별될 수 있을때까지 반복될 수 있다.
부당한 번역기들에 대한 대응 방법들: 부당한 플레이어들은 컨텐츠의 보안 관련 코드를 인식하기 위하여 설계된다. 예를 들어, 부당한 플레이어는 RSA 서명 검증 동작들이 컨텐츠에 의해 식별되는 경우를 식별하고 무효 RSA 서명이 검증되도록 컨텐츠에 의해 수행되는 결과들을 변형한다. 만약 상기 플레이어들이 생성되면, 컨텐츠 소유자들은 이런 식별을 면하도록 설계된 다른 RSA 서명 계산 루틴들을 사용하기 위하여 새로운 컨텐츠를 창시할 수 있다. 사용될 수 있는 동작들의 예는 제한 없이 : 신뢰되지 않은 동작들; 난독화된(obfuscating) 코드; 메시지 블라인딩; 공격들을 검출하기 위한 시험 계산들 검사; 및 다른 암호 동작들(해독 단계들 같은)을 이용한 중간 및/또는 결과들을 통합하는 것을 포함한다.
비활성화: 가상 머신/번역기는 보안 목적뿐 아니라 비-보안 목적들을 위한 것일 수 있다. 예를 들어, 컨텐츠 코드는 메뉴들, 텍스트, 그래픽들, 애니메이션들, 사용자 인터페이스 엘리먼트들 등을 사용자에게 디스플레이하기 위하여 사용된다. 유사하게, 컨텐츠는 제한없이 마우스 입력들(예를 들어, 이동, 클릭), 버튼 누름(키보드 또는 원격 제어 입력들), 광 펜 입력들, 및 조이스틱 작동들을 포함하는 사용자 명령들 또는 응답들을 수신할 수 있다. 로컬 플레이어(카메라 입력들, 마이크로폰들 입력들, 사용자 몸 위치 변화들 등)에 관한 정보는 재생을 제어하기 위하여 모아지고 사용될 수 있다. 플레이어들은 다이알로그 박스들을 디스플레이하고, 디스플레이 윈도우들을 관리하고, 음성 인식을 수행하고, 사용자 선호도들을 관리하고 등등에 대한 능력을 제한없이 포함하는 사용자 인터페이스 실행으로 도움을 받는 피쳐들을 제공할 수 있다. 저작권 침해를 방지하기 위하여, 비활성화 사용자 피쳐들을 실행하는 코드는 대항자들이 서로 쉽게 분리시킬 수 없도록 보안 코드로 결합된다.
네트워크들을 통한 액세싱 및 교환 컨텐츠
비록 최근 소비자 비디오 및 오디오 컨텐츠가 현재 광학 매체상에서 분배되지만, 대중적인 스트리밍 다운로드들은 시간에 따라 증가하는 것으로 예상된다. 여기에 제공된 보안 방법들은 물리적 매체 대신, 또는 물리적 매체 외에 스트리밍 또는 로컬 캐시(cache) 컨텐츠를 지원하기 위하여 다시 설계될 수 있다. 플레이어에 물리적으로 배치된 매체로부터의 데이터를 로딩하는 대신, 컨텐츠 코드 및 데이터는 네트워크를 통하여 검색된다. 예를 들어, 매체로부터 데이터 섹터들을 요구하는 절차 호출들을 발행하는 대신, 컨텐츠는 네트워크를 통하여 데이터를 요구하는 절차 호출들을 발행한다. 패시브 매체와 달리, 원격 서버는 자체적으로 처리 능력들을 가질 수 있고, 예를 들어 컨텐츠에 요구들을 보낼수있고(예를 들어, 플레이어가 암호화 동작들을 수행할 수 있음) 결과들을 검증한다. 네트워크들(제한없이 SSL을 포함함)을 통하여 교환된 데이터를 보호하기 위한 보안 프로토콜들은 컨텐츠의 코드 또는 플레이어(또는 다른 부품들)에서 실행될 수 있다.
간단한 서버 실행은 검증된 사용자들(예를 들어, 컨텐츠에 대한 액세스할 수 있는 사람)으로부터 인입 요구들을 수신하고, 자신의 로컬 저장소로부터 대응 데이터를 판독하고, 그 결과를 전달한다. 보다 정교한 서버는 예를 들어 내장된 법정 워터마크들로 실시간으로 데이터를 선택 및/또는 변형하고, 다른 서버들과 상호작용한다. 서버들은 원격 플레이어들(예를 들어 플레이어-기반 비휘발성 메모리에 대한 대안으로서)에 관한 또는 상기 플레이어들 대신 정보를 저장하고, 최종 사용자를 위하여 주문 제작된 보안 코드를 전달하고, 실시간 해지 검사들을 수행하고, 컨텐츠에 보안 업그레이들을 자동으로 삽입하고, 인터넷/웹 프록시 능력들을 제공하고, 다른 서비스들에 컨텐츠 코드를 공급한다. 예를 들어, 예시적인 트랜잭션은 (a) 컨텐츠 서버가 최종 사용자의 플레이어로부터 구매 요구를 수신하고; (b) 컨텐츠 서버가 지불을 검증하고; (c) 컨텐츠 서버가 사용자의 플레이어의 기능 및/또는 보안 특성들을 분석하도록 구성된 해석 가능한 코드 부분을 전송하고; (d) 사용자의 플레이어가 해석된 코드를 운행하고 그 특성들에 관한 정보를 리턴하고; (e) 컨텐츠 서버가 응답을 분석하고 사용자의 플레이어에 보안 검증 논리(해석되고 및/또는 원시 코드를 포함하고, 맞춤 생성됨)를 전송하고; (f) 사용자의 검증 논리를 처리하고 플레이어가 서버에 응답하여 리턴하고; (g) 서버가 응답을 검증하고; (h) 컨텐츠 서버가 암호화된 디지털 컨텐츠(예를 들어, 오디오, 비디오, 및/또는 이미지들)을 사용자의 플레이어에게 전송하고(예를 들어, 스트림); 및 (i) 사용자의 플레이어가 컨텐츠(여기서 해독 처리의 올바른 동작은 올바른 키들을 요구하거나 보안 검증 논리로부터 발생함)를 해독하는 단계들을 포함한다.
서버 처리는 플레이어측 처럼 동일한 번역기 아키텍쳐(예를 들어, DLX)를 선택적으로 사용하여 해석된 코드에 의해 제어될 수 있다. 이것은 컨텐츠가 서버의 물리적 하드웨어 아키텍쳐에 무관하게 인증될 수 있다는 장점을 가진다. 홈 네트워크 환경들에서, 이것은 컨텐츠가 인증된 로컬 장치들에 스트림될 수 있는 동안, 보안 및 디코딩 "지능"이 서버에 유지되기 때문에 특히 매력적인 모델이다. 유사하게, 다양한 다른 인터넷 서비스들을 통하여 스트림될 컨텐츠에 대하여, 서버측 번역기들은 컨텐츠가 일단 인증되고 임의의 호환 가능한 서비스로부터 스트림되게 할 수 있다.
몇몇 경우들에서, 수신 장치는 수신 장치가 컨텐츠를 캐시하고 추후에 그것을 추후 장치들, 즉 식별이 초기 전달 동안 공지되지 않은 장치들에 전송하는 경우에서처럼, 자신의 보안 결정들을 형성하는 능력을 가질 수 있다. 이러한 경우, 초기 전달은 보안 관련 결정을 형성하는 수신 장치에 의해 사용하기 위하여 해석 가능하고 및/또는 네이티브적으로 실행 가능한 코드를 포함할 수 있다. 전송 장치에 의해 운행되는 코드가 수신 장치에 의한 코드와 동일한 것을 필수적으로 갖지 않기 때문에, 모든 장치들이 동일한 번역기 또는 프로그램 가능한 기술들을 지원하는 것을 요구하지 않는다.
몇몇 상황들에서, 다중 서버들 및/또는 컨텐츠 전달들은 포함될 수 있다. 예를 들어, 컨텐츠는 플레이어 제조자들 및 컨텐츠 소유자들 모두에 의해 동작되는 서버들을 포함하는 다중 엔티티들로부터 얻어진 보안 코드를 포함할 수 있다. 몇몇 개인용 컴퓨터 환경들에서, 다중 번역기들을 사용하는 것은 유용할 수 있다. 예를 들어, 번역기들은 매체 인터페이스(예를 들어, 광학 디스크 드라이브), 동작 시스템, 애플리케이션 소프트웨어(예를 들어, 플레이어), 출력 장치들(예를 들어, 증폭기) 등에 포함될 수 있다. 선택적으로 또는 부가적으로, 암호법 오라클들은 부품들에 제공될 수 있다.
플레이어 동작 실시 및 부호법
플레이어 장치는 다양한 개별 동작들을 컨텐츠 코드가 수행하도록 하는 (통상적으로 소프트웨어 실행) 번역기(가상 머신)를 제공한다. 상기 동작은 컨텐츠 코드에 속하는 가상 레지스터들 및 액세싱 메모리를 조정하는 것을 포함한다. 게다가, 컨텐츠 코드는 TRAP들(플레이어에서 실행된 외부 동작들)을 호출할 수 있다. TRAP들은 컨텐츠 코드가 자신의 리소스들을 조종함으로써 직접적으로 수행할 수 없는 동작들(주변부들 액세싱 같은)을 수행하거나, 컨텐츠 코드에 의해 보장될 수 있는 보다 높은 성능을 제공하기 위하여 사용될 수 있다.
이 섹션에서 사용된 부호법은 C/C++ 프로그래머들에게 친숙하도록 설계된다. UINT8, UINT32 및 UINT64 타입들은 각각 8, 32 및 64 비트 부호없는 정수들을 나타내기 위하여 사용된다. 예시적인 실시예에서, 각각의 표준은 적당한 TRAP 동작을 호출하기 전에 스택상에서 강요된 32 비트 값들의 시퀀스에 대응한다. 스택상 모든값들이 크기면에서 32 비트들이기 때문에, 32 비트들 보다 작은 파라미터들은 32 비트들로 확장되고, 보다 큰 값들은 다중 32 비트 값들을 사용하여 저장된다. 각각의 TRAP 동작에 포함된 32 비트 값들의 실제 수는 제로(만약 파라미터 리스트가 없으면)일 수 있다. 파라미터들의 수는 가변적이고, 상기 경우 표준은 "..."에서 끝날 것이다. 어레이들은 "타입 이름[크기]"로 도시되고, 예를 들어 "UINT32 검사[16]"은 16개의 32 비트 워드들의 어레이를 나타낸다. 포인터는 "타입 *이름"으로서 나타나고, 예를 들어 하나 이상의 32 비트 무부호 정수들에 대한 testptr의 포인터는 "UINT32 *testPtr"이다.
스택 자체는 컨텐츠 코드 및 각각의 TRAP를 실행하는 플레이어의 부분들에 의해 액세스할 수 있는 메모리 영역일 수 있다. 예를 들어, 예시적인 스택은 스택 포인터로서 컨텐츠 코드에 의해 액세스할 수 있는 에뮬레이트된 레지스터를 설계함으로써 실행될 수 있다. TRAP가 호출될 때, 이 레지스터의 값은 패스된 파라미터 값들을 배치하기 위하여 컨텐츠 코드에 의해 준비된다. (만약 스택 포인터 또는 스택 컨텐츠들이 무효라면, 적당한 행동은 TRAP 동작 또는 검증 값들 대체 같이 취해진다). 정수를 스택상에 푸시하는 예시적인 처리는 스택 포인터로부터 우선 감산(4)을 수행하고 새로운 스택 포인터에 의해 지정된 메모리 어드레스에서 그 값을 푸시하도록 저장하는 것을 포함한다. 값을 포핑(poping)하는 것은 스택 포인터에 의해 지정된 메모리 어드레스로부터 값을 판독하고 그 다음 4를 스택 포인터에 부가함으로써 수행된다. TRAP 동작 다음, 컨텐츠 코드 및/또는 TRAP를 실행하는 코드는 스택 포인터 값을 재저장함으로써 스택으로부터 파라미터들을 클리어한다. 다른 스택들 및, 특히 기능 실시 및 파라미터 패싱 기술들은 배경 기술에 공지되고 본 발명에 사용될 수 있다.
TRAP를 호출하기 위하여, 호출자는 먼저 각각의 파라미터들(표준 정의에서 최우측 파라미터에서 시작)를 푸시하고, 적당한 TRAP 동작을 실시하고 리턴 값을 얻는다(예를 들어, 레지스터 1에서 통상적으로 저장된 결과 값을 판독하여). 예를 들어, 다음 TRAP가 "UINT32 TRAP_Random(UINT8 *dst, UINT32 len);"로서 나타나는 것을 고려한다. 트랩 동작을 호출하기 전에, 호출자(컨텐츠 코드)는 32 비트 값 "len"을 우선 푸시하고, 그 다음 32 비트 포인터 값 "dst"(이것은 결과가 저장되는 메모리 어드레스임)을 푸시한다. 호출자는 적당한 로우 레벨 TRAP 동작을 호출한다. 일반적으로(필수적이 아님) TRAP를 호출하는 컨텐츠 코드 스레드는 요구된 동작이 수행되는 동안 중단될 것이다. TRAP의 리턴 값(예시적인 표준에서 좌측 "UINT32"로 표현됨)은 컨텐츠 코드(예를 들어 미리결정된 레지스트에 리턴 값을 배치함으로써)에 의해 검색되는 위치에 배치된다. 대부분의 예시적인 TRAP들은 상태 값을 리턴한다(예를 들어, 성공을 가리키는 상수 상태_OK, 또는 에러 조건을 가리키는 값, 또는 시스템 또는 동작의 결과 또는 상태를 기술함). 간략하게, 리턴 값의 컨텐츠들은 만약 값이 간단히 상태 값이면 하기된 TRAP 설명들에서 일반적으로 생략된다. 몇몇 TRAP들은 임의의 상태 값을 리턴하지 않고, 실패할 수 있고(예를 들어, 만약 불법 입력 파라미터들이 주어지면), 이 경우 컨텐츠 코드는 적당한 입력들이 제공되고 및/또는 예상된 바와 같이 동작이 완료되는 것을 보장하기 위하여 필요할 수 있다.
TRAP 동작들을 사용하여 교환된 값들은 암호화 및/또는 디지털 서명들을 사용하여 암호적으로 보호될 수 있다. 예를 들어, TRAP로 통과된 값들은 플레이어 또는 다른 장치(들)의 공용 키로 암호화된다. 값들은 블록 또는 스트림 부호법들을 사용하여 대칭적 암호법으로 암호화된다. 값들은 디지털적으로 사인된다. 응답은 암호적으로 보호될 수 있다. 예를 들어, 응답들은 플레이어, 플레이어의 제조자, 외부 장치들, 포맷 엔티티 등에 의해 디지털적으로 사인된다. 사용된 암호법 보호의 특정 결합(및 대응하는 키 등)은 지정되거나, 컨텐츠 코드 요구들, 플레이어 요구들, 외부 장치들, 플레이어 상태 등을 바탕으로 할 수 있다. 데이터를 보호하기 위하여 사용된 키들은 종점들이 컨텐츠 코드 및 외부 장치이지만 플레이어를 통하여 통과하는 데이터 통신의 경우, 플레이어에 포함(또는 액세스됨)되지 않을 수 있다.
TRAP 동작들은 종종 시스템 상태에 대한 변화들을 형성한다. 예를 들어, 컨텐츠 코드에 가시적인 레지스터 값들 및 메모리 컨텐츠들은 변화될 수 있다. 예를 들어, "TRAP_Random"은 컨텐츠 코드에 대한 사용을 위해 랜덤 수 생성기로부터 출력을 저장할 것이다. 컨텐츠 코드의 직접 제어 외측의 재생 시스템 부분들은 TRAP 동작들에 의해 공통적으로 액세스되거나 변형된다. 예를 들어 TRAP_SlotWrite는 플레이어 비휘발성 메모리 슬롯의 컨텐츠들을 변화시키고, TRAP_MediaReadRequest는 펜딩 매체 판독 큐에 요구를 부가한다. 이들 변화들은 컨텐츠 코드에 의해 직접적으로 관찰할 수 있거나 없을 수 있다.
플레이어 동작들
다음은 예시적인 실시예에 의해 지원되는 TRAP 동작들을 설명한다. 제한, 상수 및 설계의 다른 측면들은 필수적으로 다른 실시예가 아닌 예시적인 실시예를 반영한다.
void TRAP_Yield(UINT32 sleepTime);
생산들은 (a) 마이크로초의 특정 시간, 또는 (b) 이벤트 발생 중 더 빠른 것까지(예를 들어, 매체 판독 완료 등) 번역기를 통해 제어한다. 실행들은 TRAP_Yield가 호출될 때 번역기를 중단하도록 요구되지 않지만, 특히 다중스레드 시스템들상에서 처리기를 보호하거나 휴대용 장치들에서 배터리 전력을 절약하기 위하여 그렇게 하는 것이 바람직하다. 실행들은 sleepTime 파라미터를 무시하기 위한 옵션을 가진다. 이런 동작은 비록 보다 작은 값이 sleepTime을 위하여 지정되거나 이벤트가 곧 발생할지라도 1 마이크로초를 소비할 수 있다. 만약 이벤트가 발생하면, 제어는 이벤트의 1마이크로초 이내에 다시 시작한다. 만약 이벤트들이 발생하지 않으면, 실행은 sleepTime 마이크로초까지 중단될 수 있다. TRAP는 아무 것도 리턴하지 않는다; 실행은 플레이어가 준비될 때 다음 명령을 계속한다.
UINT32 TRAP_Random(UINT8 *dst, UINT32 len);
dst에서 플레이어에 의해 생성된 len 랜덤(또는 의사 저장) 바이트들을 저장한다.
UNIT32 TRAP_Sha(UINT8 *dst, UINT *src, UINT32 len, UINT32 op);
src에서 len 바이트들상 SHA-1 알고리즘을 수행하고 dst에서 결과를 저장한다.
op에 대한 값들은 : 종래 SHA 상태에 많은 데이터를 부가하는 SHA_UPDATE(0), 데이터 해싱 이전에 새로운 SHA 환경을 시작하는 SHA_INIT(1), 해시 업데이트가 완료될 때 마무리 동작을 수행하는 SHA_FINAL(2), 및 전체 블록 동작을 수행하는 SHA_BLOCK(3)(양쪽 SHA_INIT 및 SHA_FINAL을 설정하는 것과 등가)를 포함한다.
dst에서 적어도 512 바이트의 이용할 수 있는 공간, 및 마무리 동작(예를 들어, op=SHA_FINAL)이 발생할때까지 공간이 불확실할 컨텐츠들이 있다.
플레이어 실행들은 상태의 일시적 저장을 위하여 dst에서 512 바이트를 사용하지만, dst의 컨텐츠들이 컨텐츠 코드에 의해 부당하게 선택되는 것이 가정되어야 한다. 만약 성공적이면 STATUS_OK가 리턴하고, 그렇지 않으면 한정된 에러 코드들 중 하나를 리턴한다.
UINT32 TRAP_Aes(UINT8 *dst, UINT8 *src, UINT32 len, UINT8 *key, UINT32 opOrKeyID);
src로부터 len 블록들상 AES ECB 알고리즘을 수행하고 키(이하에서 변환됨)에서 키를 사용하여 dst에서 해독 결과를 저장하라. opOrKeyID에 대한 값은 키가 유도되는 방법 및 AES 암호화를 수행할지 해독을 수행하지를 지정한다. opOrKeyID에 대한 다음 값들은 지원된다:
opOrKeyID = AES_ECB_ENCRYPT(0xFFF10000) - 키에서 16 바이트 키를 가진 ECB 모드를 사용하여 데이터를 암호화.
opOrKeyID = AES_ECB_DECRYPT(0xFFF10001) - 키에서 16 바이트 키를 가진 ECB 모드를 사용하여 데이터를 해독.
opOrKeyID = AES_ECB_DECRYPT_MEDIA_KEY(0xFFF10002) - 현재 매체에 대한 매체 키를 사용하여 키에서 암호화된 키 값을 해독하고, ECB 모드를 사용하여 src에서 데이터를 해독하기 위하여 키와 같은 결과를 사용한다.
opOrKeyID = 임의의 다른 값. opOrKeyID에 의해 식별된 플레이어 키를 사용하여 포인트 키에서 부호법 키를 해독하고, ECB 모드를 사용하여 포인터 src에서 데이터를 해독하기 위하여 최종 해독된 키를 사용한다. (주의: 컨텐츠 코드는 플레이어의 메인 AES 키 세트에 대한 키 범위를 결정하기 위하여 플레이어의 검증을 검사할 수 있고; 이들 키들은 0에서 필수적으로 시작하지 않고, 다중 세트의 키들이 있다). opOrKeyID에 의해 선택된 키들이 플레이어 애플리케이션에 배치되는 동안, 키들은 드라이브, 장치 드라이버들, 디스플레이들/출력 장치들, 네트워크를 통하여 원격으로, 사용자 제거 가능한 스마트 카드들(또는 다른 변조 방지 칩들), 고정된 변조 방지 칩들, 다중 장치들에서 분할되게 배치된다. 제 1 해독 동작(컨텐츠 지정 암호화 키를 해독)은 벌크 처리(즉, src에서 데이터를 해독)가 다른 곳에서 수행되는 동안(예를 들어, 키 저장을 위한 비휘발성 메모리가 부족한 고속 암호법 모듈에서) 식별된 키를 포함하는 장치에 의해 수행될 수 있다.
암호법 동작들, 특히 외부 장치들을 포함하는 암호법 동작들은 TRAP_DeviceDiscovery 및/또는 TRAP_DeviceAccess를 통하여 실행될 수 있다. 부호법 블록 체인(CBC), 카운터 모드 및 다른 블록 부호법 모드들은 컨텐츠 코드(TRAP_Xor 같은 동작들과 함께 선택적으로)를 사용하여 ECB 동작들로부터 실행될 수 있다. 다른 실시예들은 AES과 다른 알고리즘들 및/또는 ECB와 다른 모드들을 직접 제공한다.
UINT32 TRAP_PrivateKey(UINT8 *dst, UINT8, UINT8 *src, UINT32 srcLen, UINT32 controlWord, UINT32 keyID);
이런 동작은 몇몇 데이터를 변환하기 위하여 keyID(일반적으로 0), 또는 플레이어에서 몇몇 다른 비대칭 키(또는 플레이어에 의해 액세스할 수 있는 장치)에 의해 선택된 rsa 사적 키를 사용한다. keyID로부터, 결과의 길이 및 동작 타입(예를 들어, 사이닝(signing) 또는 해독)은 내재된다. 대응하는 공용 키들 및 검증부들을 포함하는 이용 가능한 키들에 관한 정보(컨텐츠 코드가 검증할 수 있음)는 TRAP_DeviceDiscovery 및/또는 TRAP_DeviceAccess를 사용하여 얻어질 수 있다. 어떤 데이터를 제출할 것인가의 선택은 컨텐츠 코드에 달한다(예를 들어, 매체 및/또는 TRAP들로부터 임의의 데이터의 임의의 기능이 제출될 수 있다). 예를 들어, 사이닝 동작을 위하여 제출된 값은 사인된 데이터를 생성하는데 이벤트 데이터(TRAP_EventGet 참조)를 통합함으로써 사용자 인터페이스(및 다른) 이벤트들로 제한된다.
플레이어의 메인 RSA 사적 키(keyID = 0)에 대하여, 이 동작은 SHA-1 해시의 2048 비트 RSA 서명을 형성한다. 해시는 (a) 4 바이트(MSB 먼저)로서 인코드된 srcLen의 값을 해싱; (b) 사용자 지정 버퍼(즉, src에서 srcLen 바이트들)의 컨텐츠들을 해싱; (c) 4 바이트들(MSB 먼저)로서 인코드된 controlWord의 값을 해싱; (d) 만약 controlWord 비트(31)(MSB)가 설정되면, 매체 ID의 값을 해싱; (e) 만약 controlWord 비트(30)가 설정되면, PC+4로 목적 포인터를 설정하고, dst 무효화; (f) 만약 controlWord 비트(29)가 설정되면, 현재 프로그램 카운터에서 시작하는 (제어 워드 모드 216) 코드 바이트들을 해싱; (g) 만약 controlWord 비트(28)가 설정되면, 해시에 PC의 현재 값 통합이 계산된다. SHA-1 해시 결과는 "0x00∥0x01∥0xFF(233번 반복됨)∥를 SHA-1 해시에 프리펜딩함으로써 프리패드된다. 패드된 값은 플레이어의 공용 모듈을 바탕으로 플레이어의 보안 지수로 상승된다.
서명들을 검증하기 위하여, 플레이어의 공용 지수는 3이고, 공용 모듈은 시스템 와이드 공용 키(난독화된 형태에서 선택적으로 컨텐츠 코드에 포함된 상수일 수 있음)를 사용하여 플레이어의 검증을 검증함으로써 컨텐츠 코드에 의해 얻어질 수 있다.
제어 워드에 의해 제공된 옵션들은 서명이 번역기를 포함하는 것과 다른 컴플라이언트 장치에 의해 수행되는 상황을 검출하는 것과 같이, 실행 환경에 관한 인증들을 컨텐츠 코드가 얻게 한다. 번역기 및 컨텐츠 코드 사이의 검증할 수 있는 결합은 적법한 컨텐츠를 운행하는 부당한 플레이어에 의해 사용하기 위한 암호법 결과들을 형성하기 위하여 공격자가 적법한 플레이어상에서 운행하는 부당한 컨텐츠를 사용하기 원하는 상화들을 처리하는데 유용할 수 있다.
실시예들은 비대칭 암호법 알고리즘들(RSA, DSA, 타원 곡선 변형들, 디피-헬맨 등)의 임의의 결합을 지원하고, 동작들(사이닝, 검증, 키 승인 등), 및 키 크기들은 지원될 수 있다. 대칭적 동작들은 비대칭 동작들과 통합될 수 있다. RSA 서명 검증 같은 몇몇 암호법 동작들이 임의의 특정 트랩들 없이 또는 단지 범용 성능 가속 동작들(예를 들어, TRAP_AddWithCarry 등)을 사용하여 컨텐츠 코드에서 실행될 수 있다. 보다 복잡한 암호법 TRAP의 예는 (a) 데이터 블록상에서 서명을 검증하기 위하여 RSA 공용 키 동작을 수행, (b) 만약 서명이 검증되면, 대칭적 키를 복구하기 위하여 검증된 부분에서 블록 데이터를 해독하도록 RSA 사적 키 동작을 수행, (c) 만약 RSA 해독이 성공적이면, 몇몇 데이터(예를 들어 암호화된 키 다음 사인된 블록의 데이터)를 해독 및 검증(예를 들어, HMAC-SHA를 사용하여)하기 위한 대칭적 키를 사용, (d) 코드로서 해독된 데이터를 처리하기 위하여 번역기 사용의 일부 또는 모두를 행하는 것이다.
다른 실시예들에서, 암호법 지원은 사이닝, 검증, 해독, 암호화 또는 다른 계산 동작들(다른 TRAP들 같은)의 임의의 방식의 입력들 및 출력들을 처리하기 위하여 제공될 수 있다.
UINT32 TRAP_AddWithCarry(UINT32 *dst, UINT32 *src, UINT32 len);
이 동작은 운반 진행을 가진 다중 워드 부가 동작을 수행한다. src[0...len-1]에서 값은 dst[0..len-1]에 부가된다. 값들 src 및 dst는 len 워드들로서 저장되고 어드레스 src[0] 또는 dst[0]에서 최상위 워드로 인코드된 다수에 포인팅으로서 검증될 수 있다. 최하위 워드들은 각각 src[len-1] 및 dst[len-1]에 배치된다.
예를 들어, 수 0x08090A0B0C0D0E0F는 len=2를 가지며 포인터(예를 들어, src[0])에 의해 지정된 위치에서 0x08090A로 저장되고 포인터 플러스 4(예를 들어, src[1])에 의해 참조된 바이트 오프셋에서 값 0x0C0D0E0F로 저장된다.
만약 소스 및 목적 영역들이 오버랩되면, 올바른 동작은 만약 src=dst만 보장된다. 동작의 리턴 값은 만약 최종(최상위 또는 좌측) 부가적인 단계가 캐리(carry)를 생성하고, 그렇지 않으면 제로이다.
(주의 : 다른 TRAP 동작들과 함께 TRAP_AddWithCarry 동작은 독립된 TRAP없이 컨텐츠 코드를 사용하여 실행될 수 있지만, 전용 TRAP는 각각의 플랫폼 상에서 매우 효율적인 기술들을 플레이어 설계자들이 선택하게 하고, 이에 따라 넓은 범위의 가능한 플레이어 설계에 보다 우수한 성능을 보장한다).
UINT32 TRAP_SubtracWithBorrow(UINT32 *dst, UINT32 *src, UINT32 len);
이 동작은 차용(운반) 전달을 가진 다중 워드 감축 동작을 수행한다. 특히, src[0..len-1]에서 값은 dst[0..len-1]로부터 감산된다. 값들 src 및 dst는 각각 len 워드들로서 저장되고 어드레스 src 또는 dst에서 최상위 워드로 인코드된 다수를 가리킨다. 예를 들어, 수 0x08090A0B0C0D0E0F는 len=2를 가지며 포인터에서 지정된 위치에서 0x08090A0B로 저장된다(예를 들어, src[0] 및 포인터 플러스 4(예를 들어, src[1]에 의해 참조된 바이트 오프셋에서 값 0x0C0D0E0F). 만약 소스 및 목적 영역들이 오버랩되면, 올바른 동작은 src=dst일때만 보장된다. 동작의 리턴 값은 만약 최종(최상위, 또는 좌측) 감산 단계가 차용을 요구하면 1이고 그렇지 않으면 제로이다.
UINT3 TRAP_MultiplyWithRipple(UINT32 *dst, UINT32 *src, UINT32 multiplicand, UINT32 len);
이 동작은 dst[0..len-1]의 수들에 피승수를 곱한다. 결과는 len+1 워드 길이다. 결과의 최상위 워드는 리턴되고, 나머지는 dst[0..len-1]에 저장된다. dst의 값은 len 워드들로서 저장되고 dst에 의해 지적된 어드레스에서 최상위 워드로 인코드된 다수를 가리킨다.
결과의 최상위 32 비트는 리턴된다. (이것은 피승수 및 dst[0..len-1]의 적의 최상위 32 비트들과 동일하다).
void TRAP_XorBlock(UINT32 *dst, UINT32 *src, UINT32 len);
이 동작은 두개의 메모리 블록들의 배타적 OR를 계산한다. src[0..len-1]에 저장된 데이터는 dst[0..len-1]에서 데이터상에 XOR된다. 이러한 동작은 예를 들어 CBC 모드 블록 부호법 동작들을 형성할 때 유용하다. 만약 src 및 dst 블록들이 오버랩되면 동작은 정의되지 않는다. 리턴 값은 제공되지 않는다.
void TRAP_Memmove(UINT8 *dst, UINT8 *src, UINT32 len);
이 동작은 src로부터 dst로 len 바이트들을 카피한다. 결과는 비록 소스 및 목적 블록들이 오버랩되도 올바르다. 리턴 값은 제공되지 않는다.
UINT32 TRAP_Memcmp(UINT8 *ptrl, UINT8 *ptr2, UINT32 maxlen);
이 동작은 ptr2로 ptr1의 메모리를 비교하고, maxlen 바이트까지 비교한다. 리턴 값은 만약 차이가 발견되지 않으면 0이고, 만약 ptr1에서의 값이 제 1 차이보 다 크면 1이고, 만약 ptr1에서 값이 제 1 차이보다 작으면 0xFFFFFFFF이다.
void TRAP_Memset(UINT8 *dst, UINT8 fillvalue, UINT32 len);
이 동작은 fillvalue에 의해 지정된 바이트 값으로 메모리를 충전한다. 목적지 어드레스는 dst에 의해 지정되고 저장하기 위한 바이트들의 수는 len에 의해 지정된다. 리턴 값은 제공되지 않는다.
UINT8* TRAP_Memsearch(UINT8 *region, UINT32 regionLen, UINT8 *searchData UINT32 searchDataLen);
이 동작은 하나 이상의 바이트들에 대한 메모리를 검색한다. 특히, 영역(regionLen 바이트의 길이를 가짐) 내에서 searchData(searchDataLen 바이트의 길이를 가짐)의 제 1 발생을 발견한다. 매칭은 만약 그들이 영역[0..regionLen-1]내에서 전체적으로 발생되면 발견되고; 이 범위 내에서 시작하지만 최종을 넘어서는 매칭들은 카운트되지 않는다. 상기 동작은 제 1 매칭에 대한 포인터를 리턴한다. 만약 매칭이 region 내에서 발견되지 않으면, 리턴 값은 NULL(제로)이다.
UINT32 TRAP_SlotAttach(UINT32 slot, UINT32 codeLen, UINT32 reqPRIORITY);
이 동작은 종래 비휘발성 메모리 슬롯을 첨부하거나 새로운 슬롯(만약 슬롯에 대한 지정된 값이 제로이면)을 할당한다. 슬롯 첨부 동작들은 만약 지정된 코드(호출자의 PC에서 시작하고 codeLen 바이트에 대해 연장함)가 슬롯의 authorizationHash와 매칭하지 않으면 실패한다(슬롯 제로로 디폴팅). (비휘발성 메모리 지원에 관한 부가적인 정보에 대하여, "보안 비휘발성 메모리"가 제목인 섹 션 참조).
UINT32 TRAP_SlotRead(UINTS *dst, UINT32 slot);
이 동작은 비휘발성 메모리 슬롯을 판독하고자 하는 것이고 만약 성공하면 지정된 위치에 결과를 저장한다. 만약 지정된 슬롯이 현재 첨부된 슬롯이 아니면, 슬롯 컨텐츠들의 사적 데이터 부분(들)은 리턴되지 않는다. (부가적인 정보에 대하여, "보안 비휘발성 메모리"가 제목인 섹션 참조).
UINT32 TRAP_SlotWrite(UINT8 *newContents);
이 동작은 현재 첨부된 비휘발성 메모리 슬롯에 기입을 시도한다. (부가적인 정보를 위하여, "보안 비휘발성 메모리"가 제목인 섹션 참조). 슬롯 기입 동작들은 미미하고, 플레이어는 동작이 실패하면(예를 들어 예상되지 못한 전력 손실로 인해) 동작이 전체적으로 또는 전혀 완료되지 않을 것을 보장한다.
TRAP_SlotWrite 동작은 기입된 데이터가 creatorMediaID(매체의 식별기이고, 상기 매체의 식별기는 본래 슬롯이 생성됨), lastUpdateMediaID(컨텐츠 코드가 슬롯에 가장 최근에 기입된 매체의 식별기), lastUpdateSequenceCounter(모노적으로 기입당 한번 증가하는 글로벌 기입 카운터의 값), 및 slotPriority(슬롯에 대한 중복 기재 기입을 지정)을 포함하는 슬롯의 몇가지 부분들에 대한 올바른 값들을 가지는 것을 보장한다.
컨텐츠 코드는 범용 영역에 기입된 데이터를 제어한다. 저장될 수 있는 정보의 실시예들은 제한없이 재생 상태 정보(재생이 멈춰지고/중단되는 위치 및 구성 같은), 회계 감사 정보(회계 감사 데이터에 대한 해시들 또는 다른 암호법 인증), 비디오 게임들에 대한 높은 스코어들, 전자 구매들을 자동으로 완성하기 위한 디폴트 정보(사용자 이름, 사용자 어드레스, 신용 카드 번호, 신용 카드 만료일, 청구지 주소, 물건 발송 주소(shipping address), 전화 번호, 이메일 어드레스 등), 실행 가능한 코드(예를 들어, 새로운 보안 논리, 타이틀 또는 플레이어 등이 갖는 문제를 수정하기 위한 패치들), 키들(및 다른 보안 정보) 등을 포함한다.
리턴 값은 기록 동작이 성공적이었는지 여부 및 미디어의 일반적인 상태(예컨대, 비휘발성 메모리가 초과된 수의 기록 사이클로 인해 소모되어 폐쇄된 경우의 경고)를 나타낸다. 판독 동작은 기록이 성공적이었다는 추가적인 검증에 대한 기록 이후에 수행될 수 있다.
UINT 32 TRAP_MediaEject(void);
이 동작은 드라이브에서 현재 임의의 제거가능한 미디어를 배출하려 시도한다. TRAP_MediaEject()로의 성공적인 호출 이후에는, 비록 대부분의 경우에 번역기가 TRAP_Shutdown()을 호출함으로써 스스로 중단될 것이지만, 상기 번역기는 계속해서 동작할 수 있다. 플레이어들은 자동 배출을 지원할 필요가 없고, 이 경우에 동작은 실패할 것이다. (컨텐츠 코드는 TRAP_DeviceDiscovery를 사용하여 배출 지원 및 다른 플레이어 성능들을 검출할 수 있다.)
몇몇 경우에는, 미디어가 변경되더라도 컨텐츠 코드의 메모리 공간 부분들을 보존하는 것이 유리할 수 있다. 예컨대, 이는 멀티-디스크 세트에서 디스크들을 교환할 때 비휘발성 메모리에 쉽게 저장되는 것보다 더 큰 분량의 데이터를 보존하는데 유용할 수 있다. 이러한 경우에는, TRAP_MediaEject가 최초 미디어를 배출하기 위해 사용될 수 있다. 다음으로, 사용자는 다른 종류의 컨텐츠를 삽입한다(예컨대, 오버레이를 통해 촉구된 이후에). 새롭게 삽입된 컨텐츠의 신원은 TRAP_DeviceDiscovery를 통해 결정될 수 있다. 예상되지 않은 미디어 변경을 방지하기 위해서는, TRAP_DeviceAccess에 대한 명확한 호출이 새로운 미디어를 허용하기 위해서 필요하다. 이어서, 일반적인 판독이 허가되는 것으로서 표시되어 있는 새로운 미디어의 부분들이 로딩될 수 있다. (일부 부분들은 미디어 고유의 컨텐츠 코드에 의해서만 판독되도록 지정될 수 있다. 더욱 정교한 미디어들간의(예컨대, 디스크들 간의) 연결 성능들을 필요로 하는 실시예들은 제 1 미디어를 인증하기 위해 최초 미디어에 대한 코드를 허용할 수 있고, 또한 소스 미디어를 인증하기 위해 제 2 미디어에 대한 코드를 허용할 수 있다. 미디어 인증은 또한 예컨대 디지털적으로 서명된 규칙들과 소스 및 목적 디스크들을 통해 전달되는 증명서들에 기초하여 플레이어에 의해 수행될 수 있다.)
UINT 32 TRAP_MediaReadRequest(UINT 32 offsetHigh, UINT 32 offsetLow, UINT 32 len);
이 동작은 미디어 서브시스템에게 일부 데이터의 검색을 개시하라고 지시한다. 예시적인 실시예에서, len에 대한 값은 섹터 경계들을 포함해서 1 메가바이트(1048675 바이트들)을 초과할 수 없다. (만약 섹터 경계 상에 오프셋이 존재하지 않는다면, 즉 정확한 배수의 SECTOR_SIZE가 존재하지 않는다면, 길이는 1 메가바이트들에서 섹터 오프셋을 감산한 값을 초과하지 않을 수 있고, 상기 섹터 오프셋은 offsetLow 모듈로 SECTOR_SIZE로서 결정된다. SECTOR_SIZE는 일반적으로 2048 바이트들로 정해진다.) 플레이어들은 적어도 두 개의 완료되지 않은 요청들(예컨대, 현재 서비스되고 있는 요청과 다음에 서비스될 요청)이 버퍼링될 수 있게 한다. 이는 컨텐츠가 드라이브를 계속해서 사용 중인 상태로 유지할 수 있게 한다. 플레이어들은 통상적으로 각각의 펜딩(pending) 중인 요청에 대해서 별도의 1 메가바이트의 펜딩 버퍼를 사용할 것이다. 에러들이 없는 리턴은 판독이 시도될 것이라는 것(즉, 요청이 확실히 부당한 것은 아니다)을 의미하지만, 판독이 실제로 성공될 것이라는 것을 보장하지는 않는다(TRAP_MediaReadFinal을 참조).
비록 이 동작은 단순히 판독이 수행되어야 한다고 요청하지만(그리고, 임의의 실제로는 어떠한 데이터도 컨텐츠 코드의 메모리 영역에 로딩하지 않음), 다른 실시예들은 목표 어드레스를 정할 수 있고 또한 (예컨대) 이벤트를 수신함으로써 또는 목표 버퍼가 충만되었는지 여부를 검사함으로써 판독이 완료되었는지 여부를 검출할 수 있다. 만약 이러한 해결방법이 코드-기반의 NVRAM 보안 성능(예컨대, TRAP_SlotAttach 참조)에 이용된다면, 상대가 언록킹 상태의 NVRAM 슬롯들과 연관있는 보안 코드를 훼손시키거나 그렇지 않으면 보안을 침범하기 위해서 펜딩 중인 판독들을 사용하지 않도록 보장하기 위한 보안 방법이 필요할 수 있다. 예컨대, 플레이어들은 NVRAM 슬롯들이 언록킹 상태인 동안에는 미디어 판독을 중단시키거나 금지시킬 수 있고 및/또는 그러한 동작이 펜딩 중인 동안에는 NVRAM 슬롯 첨부 요청을 거절할 수 있다.
UINT 32 TRAP_MediaReadFinal(UINT 8 *dst);
이 동작은 가장 오래전에(선입) 요청된 판독이 완료되었는지 여부를 검사한다. 만약 그렇지 않다면, STATUS_DONE의 리턴 값이 리턴된다. 만약 판독들이 펜딩 중이라면, STATUS_NOT_FOUND의 리턴 값이 리턴된다. 만약 판독 요청이 실패하였다면, STATUS_ERROR이 리턴된다. 그렇지 않다면, 상기 요청된 데이터는 드라이브의 버퍼로부터 정해진 어드레스의 컨텐츠 코드 메모리 공간에 전송되고, 값 STATUS_OK가 리턴된다. 만약 어드레스가 0xFFFFFFFF이라면, 데이터가 폐기된다.
특수한 판독들(버스트 컷팅 영역들의 판독, 에러 검출/정정 디스에이블 등과 같은)이 이 동작이 아니라 TRAP_DeviceAccess를 사용하여 구성되고 수행된다는 것에 유념하라.
UINT 32 TRAP_MediaWrite(UINT 32 offsetHigh, UINT 32 offsetLow, UNITS *src, UINT 32 len);
이 동작은 정해진 데이터를 미디어에 기록하는데, 정해진 오프셋에서 시작한다. (상기 오프셋은 32-비트 상부 값들 및 32-비트 하부 값들로 인코딩되는 64-비트 값이다).
이 동작은 단지 기록을 지원하는 미디어 포맷에 적용가능하다. 기록가능 범위는 또한 미디어의 특정 부분들로 제한될 수 있다. 기록은 또한 특정 상황에서는 금지될 수 있다(예컨대, 미디어가 변경된 경우, 미디어 상의 레코더 식별자가 현재의 장치에 부합하지 않는 경우, 미디어가 기록 성능들의 사용을 인증하는 유효한 증명서를 가지고 있지 않은 경우, 등).
TRAP_DeviceAccess가 기록을 보호하거나 가능하게 하기 위해서 필요한 키 동의나 또는 임의의 필요한 인증을 제공하기 위해서 사용될 수 있다. 1회-기록 미디어에 있어서는, 이전에 기록된 부분들에 중복 기재하려는 시도(그리고, 그 지점에서 미디어를 손상시키는 위험)가 명확한 인증이 (예컨대, TRAP_DeviceAccess를 통해) 획득되지 않는 한 거절될 수 있다. (비록 일반적으로 바람직하지 않지만, 그러한 기록들은 예컨대 미디어가 공격에 응답하여 자연 붕괴되도록 하기 위해 특정 상황에서는 유용할 수 있다.) 만약 드라이브가 기록 헤드 변조, 트랙킹 제어, 에러 정정 코드들, 판독/기록 헤드 광 특성들, 또는 다른 구성 파라미터들을 통한 직접적인 제어를 허용한다면, 이들은 TRAP_DeviceAccess를 통해 또한 조정될 수 있다. 기록된 미디어의 특성들은 예컨대 컨텐츠 주인이 특정 종류의 광 미디어를 어떤 장치가 생성했는지를 결정할 수 있도록 하기 위해서 과학수사 용도로 변경될 수 있다.
UINT 32 TRAP_EventGet(UINT 8 *evBuf, UINT 32 len);
이 동작은 (사용자 인터페이스 동작들, 보안 변경들 등과 같은) 임의의 이벤트들이 펜딩 중인지 여부를 검사하고, 만약 그렇다면 event에 의해 정해지는 어드레스에서 첫 번째 이벤트(또는 가장 높은 우선순위의 이벤트)에 대한 정보를 저장한다. 만약 어떠한 이벤트도 발견되지 않는다면, 값 STATUS_NOT_FOUND이 리턴되고, event의 컨텐츠는 변경되지 않는다. 그렇지 않다면, 트랩은 STATUS_OK를 리턴하며, 상기 이벤트를 설명하는 정보를 evBut에 저장한다(그러나, len 바이트 이상은 저장하지 않을 것이다).
이벤트 버퍼(evBuf)에서 리턴된 데이터는 상기 이벤트에 의존적이다. 만약 사용자 인터페이스 이벤트가 리턴된다면, 후속하는 데이터 구조가 evBuf에 의해 정 해지는 메모리 어드레스에 저장된다:
Figure 112010020265987-pct00001
Source 필드는 이벤트가 발생한 장치를 식별한다. Source 필드의 해석이 미리 결정될 수 있거나, 또는 (예컨대 TRAP_DeviceDiscovery로부터 획득된 정보를 통해) 컨텐츠 코드에 의해서 결정될 수 있다. 지정될 수 있는 가능한 소스들의 예들로는 원격 제어부들, 키보드들, 면판 키들, 마우스들(그리고 다른 포인팅 장치들), 미디어 드라이브들, 외부 장치들, 타이머들, 코덱들, 비공지된/미지정된 소스들 등이 있지만, 그러한 것들로 제한되는 것은 아니다.
Action 필드는 이벤트에 대해 제안된 조치나 또는 그 이벤트를 트리거한 것에 대한 제안된 조치를 명시한다. 이러한 값은 지정될 수 있거나(즉, 플레이어의 현재 상태에 영향을 받음) 또는 일정할 수 있다. 조치들은 재생 상태를 바꾸거나 다른 효과들을 가질 수 있다. 가능한 조치들의 예들로는 플레이, 정지, 되감기(다양한 속도로), 앞으로 고속 감기(다양한 속도로), 슬로 모션(다양한 속도로), 꺼짐, 배출, 채널-업, 채널-다운, 선택, 입력, 볼륨 조정(또는 뮤트), 가이드/메뉴 선택, 시청각도 변경, 앞으로 건너 뛰기, 장면 선택, 사용자 언어 선택, 자막 조정, 비디오 각도 변경, 선택, 백, 포워드, 예, 아니오, 구입, 나감, 도움, 에러, 출력 장치 변경 통보, 재생 환경 재구성 통보, 보안 변경 등이 있지만, 이러한 것들로 제한되는 것은 아니다. 만약 (이벤트에 상응하는 어떠한 조치도 없는 경우와 같이) 비공지된다면, 상기 필드는 제로이다. (주의 : 상기 필드는 사용자 인터페이스 이벤트들 뿐만아니라 다른 이벤트들에 대해서 유효하다. 상기 값의 최상위 16 비트들은 예컨대 EventInfo_UserInterface, EventInfo_SecurityAlert 등과 같은 후속 필드들의 구조를 식별한다).
Char 필드는 (예컨대, ASCⅡ, 더블바이트 등을 사용하여 인코딩되는) 키에 상응하는 캐릭터를 정한다. 만약 공지되지 않는다면(이벤트에 상응하는 어떠한 캐릭터도 없는 경우와 같이), 상기 필드는 제로이다.
Direction 필드는 이벤트가 나타내는 방향을 명시하고, 없는 경우에는 제로이다. 비록 방향들이 특정의 미리 결정된 값들(예컨대, 북/위, 북동/위-우측, 우측/동 등)로 수량화될 수 있을지라도, 상기 방향은 임의의 각도일 수 있다.
Xpose 및 Ypose 필드들은 만약 이벤트가 표준 X/Y 그리드 상에서의 포인터 이동 또는 작동으로서 해석될 수 있다면 위치를 나타낸다. 만약 이벤트가 X 및/또는 Y 좌표에 상응하지 않는다면, 상응하는 필드(들)는 제로로 설정된다.
(원격 입력 장치 상에서의 버튼 누름과 같은) 단일 이벤트는 여러 방식으로 해석될 수 있다는 것에 유념하라. 예컨대, 일부 입력 장치들에서는, "up"을 위해 사용되는 버튼은 또한 번호 8에 상응한다. 이러한 경우에는, 하나의 이벤트가 생성될 것인데, "up"의 방향을 갖고 또한 번호 "8"을 갖는 Char 필드이다. 컨텐츠 코드는 어떤 것이 적합한지를 결정하기 위해서 어떤 입력이 요구되는지에 대해 자신이 인지하고 있는 것을 이용할 것이다. (다른 실시예에서, 플레이어들은 사용자 이벤트들을 해석하는데 있어 컨텐츠 코드를 보조하기 위해 별도의 성능들이나 정보를 제공할 수 있거나, 몇몇 가능한 해석들을 통해 이벤트들을 어떻게 해석할지를 컨텐츠 코드가 명시할 수 있게 한다). 만약 컨텐츠가 비공지된 이벤트 타입을 수신한다면, 상기 컨텐츠는 상기 이벤트 타입을 안전하게 무시한다(소스 필드에서 명시된 임계 비트가 다른 경우를 나타내지 않은 한).
(장치 추가, 장치 제거, 장치 재구성, 다른 재생 환경 구성 변경들, 외부 성분들로부터의 데이터 요청들, 동작이 완료되었다는 통보 등을 공표하는 이벤트들과 같은) 비-사용자-인터페이스 이벤트들에 있어서나, 또는 (사용자 몸짓을 관측하도록 구성된 디지털 카메라들이나 음성 인식 성능들과 같은) 다른 종류의 사용자 인터페이스들로부터의 이벤트들에 있어서, 다른 데이터 필드들이 제공될 수 있다. 일부 이벤트들에 있어서는, 추가 정보를 획득하기 위해서 컨텐츠 코드가 추가 TRAP들(벤더 특정 TRAP와 같은)을 호출하는 것이 또한 필요할 수 있다.
비록 TRAP_EventGet 동작이 변경들을 검출하기 위해 폴링을 사용할 지라도, 다른 실시예들은 이벤트들을 처리하기 위해서 인터럽트들 또는 다른 널리 공지된 메커니즘들을 사용할 수 있다는 것에 유념하라.
UINT 32 TRAP_CodecOutput(UINT 32 idx, UINT 8 *buf, UINT 32 len);
이 동작은 데이터를 코덱에 전송한다. 간단한 플레이어는 단지 하나의 코덱(예컨대, CODEC_AUDIO_AND_VIDEO) 또는 두 개의 코덱들(예컨대, CODEC_VIDEO_MPEG2 및 CODEC_AUDIO_MPEG)을 지원할 수 있는 반면에, 더욱 복잡한 플레이는 예컨대 여러 종류의 컨텐츠 스트림들을 지원하고 픽쳐-인-픽쳐와 같은 특징들을 허용하기 위해 많은 코덱들을 지원할 수 있다. 코덱 파라미터들은 TRAP_DeviceAccess 동작들을 사용하여 설정될 수 있다.
UINT 32 TRAP_CodecSetTime(UINT 64 time);
이 동작은 메인 코덱 시간 클록을 설정한다. 제로의 값을 정하는 것은 클록으로 하여금 TRAP_CodecOutput에 제공되는 데이터에 삽입되어 있는 비디오 타임스탬프들과 동기되도록 한다. 이러한 명령은 비디오 버퍼를 통해 버퍼링되고, 따라서 상기 명령이 인카운트될 때까지는 실행이 지연된다. TRAP_CodeFlush를 통해서, 이 동작은 실시간 비디오 스플라이싱(splicing)을 가능하게 하고 또한 컨텐츠 코덱으로 하여금 하나의 압축된 비디오/오디오 스트림으로부터 다른 압축된 비디오/오디오 스트림으로 끊임없이 교환할 수 있도록 하는데 사용된다.
UINT 32 TRAP_CodecSetRate(UINT 32 rate);
이 동작은 코덱들이 데이터를 소모하는 속도 및 방향을 설정한다. rate 값은 암호화된 정수로 변환되고 인자 64만큼 축소된다. 예컨대, 속도 0은 "중단"을 의미하고, 128은 2x 정상 재생 속도로 앞으로 고속 감기는 의미하고, -256(0xFFFFFF00)은 4x로 되감기를 의미하며, 16은 0.25x로 저속으로 앞으로 플레이를 의미한다. 만약 요청된 값이 지원되지 않는다면, 코덱은 플레이어의 최대 속도에 대해서 부호를 무시하고 더 높게 라운딩함으로써 그 다음의 가장 근접한 값을 고른다. 코덱이 0(중단) 또는 64(정상)로 결코 라운딩하지 않아야 하는 부분 재생 레이트들이 예외이다. 만약 음의 재생 속도(역)가 정해진다면, 코덱(TRAP_CodecStatus)은 통상적으로 비디오 GOP들을 역순으로 요청할 것이다. 디폴트에 의해서, 오디오는 64 이외의 재생 속도를 위해 뮤팅된다.
UINT 32 TRAP_CodecFlush(void);
이 동작은 비디오 및 오디오 코덱 버퍼들을 플러싱한다(flush). 이러한 명령은 통상적으로 컨텐츠 코드가 하나의 스트림으로부터 다른 스트림으로 빠르게 교환하기 위해서 코덱 버퍼들 내의 데이터를 삭제하길 원하는 경우에 사용된다. 예컨대, 만약 사용자가 1분만큼 앞으로 점프하길 요청한다면, 컨텐츠 코덱은 새롭게 제출된 데이터가 즉시 디코딩되도록 코덱 버퍼들 내의 임의의 데이터를 제거하기 위해서 이 동작을 사용할 수 있다.
UINT 32 TRAP_CodecStatus(CodecInfo *info);
이 동작은 코덱의 FIFO 대기열들 및 상기 코덱이 예상한 비디오 또는 오디오의 그 다음 청크(chunk)에 대한 정보를 검색한다. 리턴된 데이터 값들은 현재의 타임스탬프들(현재 디스플레이/출력되고 있는 시청각 정보, 현재 비압축되어 있는 정보, 및 코덱의 버퍼에 현재 있는 정보에 상응하는 타임스탬프들을 포함함), 코덱 버퍼들이 비게 될 때까지의 시간 양, 코덱의 버퍼들에서 입수가능한 바이트들의 수, 코덱 버퍼들에 그 다음으로 추가되어야 하는 데이터의 위치(예컨대, 그 다음, 이전, 자리 찾기) 및 타입(예컨대, 풀 GOP 또는 "I" 프레임)을 포함한다(예컨대, 이는 고속으로 MPEG-2 비디오를 역방향으로 플레이할 때 이전 "T"-프레임일 수 있다). 적용가능한 경우에는, 각각의 코덱을 위해 별도의 정보(오디오, 비디오 등)가 제공된다.
UINT32 TRAP_OverlaySetup(UINT32 idx, UINT32 width, UINT32 height);
이 동작은 규정된 디멘션들을 가지면서 블랭크(모두 투명)인 인덱스 값 idx 을 오버레이 플레이에 할당한다.
UINT32 TRAP_OverlaySetPosition(UINT32 idx, UINT32 x, UINT32 y);
이 동작은 디스플레이 상에서 정해진 오버레이 플레인의 (x,y) 위치를 설정한다(여기서, 0,0은 좌측 코너이다). 이러한 동작은 실질적으로 오버레이를 디스플레이하지 않는다; 이 동작은 단지 TRAP_OverlayShow()가 호출(invoke)될 때에 오버레이가 디스플레이되는 곳을 정한다.
UINT32 TRAP_OverlayShow(UINT32 idx, UINT64 pts);
이 동작은 오버레이를 디스플레이한다. pts 값은 오버레이가 예컨대 오버레이들을 밑에 있는 비디오와 동기시키는데 있어 사용하기 위해 나타날 때를 명시한다.
(실제로 적합한 이미지들을 생성하고 팔레트들을 설정하기 위해 다른 오버레이 동작들에 대한 호출과 함께) TRAP_OverlayShow에 대한 다중 호출들이 애니메이팅 메뉴, 간단한 픽쳐-인-픽쳐 비디오, 및 임의의 방식의 다른 애니메이팅 오버레이들을 생성하기 위해서 사용될 수 있다.
UINT32 TRAP_OverlayHide(UINT32 idx, UINT64 pts);
이 동작은 오버레이를 숨기지만 클리어시키지 않는다. 오버레이를 숨기는 것은 오버레이가 나중에 다시 나타나도록 하기 위해 입수가능하게 남겨 둔다. 오버레이는 정해진 시간(pts)에 숨겨진다.
UINT32 TRAP_OverlayClear(UINT32 idx);
이 동작은 오버레이를 클리어시킨다. 오버레이를 클리어시키는 것은 그것의 컨텐츠를 삭제하는 것이고, 그럼으로써 그것은 상기 컨텐츠를 다시 나타내기에 앞서 다시금 셋업될 필요가 있다(TRAP_OverlaySetup 참조).
UINT 32 TRAP_OverlaySetPalette(UINT32 idx, UINT32 *color, UINT8 *trans);
이 동작은 256개의 팔레트 값들 각각에 대한 컬러(예컨대, RGB 또는 YUV) 및 투명성(불투명성)을 포함해서 오버레이에 대한 팔레트를 정한다. 팔레트들에 대한 변경은 오버레이들을 애니메이트하거나 변경하기 위해 사용될 수 있다(예컨대, 선택된 영역 주위의 보더들(boarders)을 강조하고, 반투명한 오버레이 페인(pane)의 불투명성을 변경하고, 이미지를 가시적으로 만들기 위해).
UINT32 TRAP_OverlayBitmapDraw(UINT32 idx, UINT32 x, UINT32 y, UINT32 width, UINT32 height, UINT8 *bmp);
이 동작은 정해진 오버레이 상에 비트맵을 도시한다. 오버레이 영역의 경계들을 초과하는 오버레이들을 도시하는 것은 에러를 생성할 것이고, 또는 미학적으로 예상가능하지 않은 결과를 생성할 수 있다. 그러나, 플레이어는 버퍼들을 오버플로우하거나 그러한 상황들에서 임의의 다른 보안 침해를 야기하지 않아야 한다. 파라미터 bmp는 도시할 이미지를 정한다(상기 이미지는 압축되거나 비압축될 수 있다). 다른 실시예들이 도시 동작을 제공할 수 있거나, 스케일링 및 다른 이미지 조작을 수행하는 성능들이 제공될 수 있음으로써, 컨텐츠 코드로부터 이러한 (종종 계산-집약적인) 처리의 부담을 줄인다.
UINT32 TRAP_OverlayTextDraw(UINT32 idx, UINT32 x, UINT32 y, UINT32 size, UINTS *text);
이 동작은 정해진 오버레이 상에 텍스트를 도시한다. 팔레트의 제 1 이벤트 엔트리들은 (반투명한 에지들을 갖는 엘리어싱 방지를 포함해서)텍스트의 컬러링을 위해 사용된다. 컨텐츠 코드는 또한 예컨대 플레이어가 요구된 폰트, 캐릭터 세트 등이 부족한 경우에 텍스트를 디스플레이하기 위해 이미지 도시 성능을 사용할 수 있다.
만약 텍스트 라인이 오버레이 상에 맞지 않는다면, 상기 텍스트 라인을 잘라진다. 라인 단락에 대한 어떠한 지원도 제공되지 않는데, 이는 호출자의 책임이다. size 파라미터는 도시할 텍스트의 크기를 정하며, (예컨대, 사용자 선호도, 현재 디스플레이의 특성들 등을 반영하는) 플레이어 디폴트일 수 있다.
UINT32 TRAP_OverlayRectDraw(UINT32 idx, UINT32 x1, UINT32 y1, UINT32 x2, UINT32 y2, UINT32 color, UINT32 filled);
이 동작은 정해진 오버레이 상에 직사각형을 도시한다. 입력 파라미터들은 오버레이 인덱스(idx), 상위-좌측 좌표들(x1,y1), 하위-우측 좌표들(x2,y2), color, 및 직사각형이 채워져야 하는지 여부를 나타내는 불 값(Boolean value)(filled)을 지정한다.
UINT32 TRAP_SockConnect(UINT8 *name, UINT32 port);
이 동작은 port에 의해서 정해진 포트 상에 name에 의해 정해진 어드레스로의 소켓-기반 네트워크 접속을 오픈한다. TRAP_DeviceAccess는 소켓 세팅을 구성하고 또한 네트워크 접속이 현재 이용가능하지, 잠재적으로 이용가능한지(예컨대, 모뎀을 통해 다이얼링을 시도함으로써), 또는 절대로 이용가능하지 않은지 여부를 결정하는데 사용될 수 있다. 네트워크 접속들의 존재 및 신뢰성은 구현에 따라 다르다(예컨대, 셀 폰과 통합된 휴대용 장치는 네트워크 접속들을 갖기 쉽지만, 어떤 무선 접속 지원도 없는 것은 있을 수 없다).
소켓/네트워크 동작들을 위한 플레이어 지원은 선택적이지만, 컨텐츠가 이용가능할 경우에 원격 네트워크 자원들을 액세스할 수 있도록 하는 안정된 인터페이스를 제공하기 위해 표준화된다. 소켓 지원은 비동기적이고, 동기적인 엑세스를 필요로 하는 컨텐츠는 필요한 데이터가 검색될 때까지 폴링해야 한다. 네트워크 파라미터들의 검출 및 구성은 TRAP_DeviceDiscovery 및 TRAP_DeviceAccess를 통해 수행된다.
UINT32 TRAP_SockClose(void);
이 동작은 현재 오픈된 접속을 클로즈시킨다.
UINT32 TRAP_SockRecv(UINT8 *buf, UINT32 len);
이 동작은 오픈된 접속으로부터 buf에 데이터를 수신한다.
컨텐츠 코드는 수신된 데이터가 어떻게 사용되는지를 제어한다. 그 예로는 프레시 보안 코드를 획득하는 것, 해지 상태를 검사하는 것, 지불금액을 처리하는 것, 상품들/서비스들에 대한 쇼핑하는 것(그리고 구매하는 것), 보너스 컨텐츠를 다운로딩하는 것, 업데이팅된 오퍼들/광고들(가격책정 및 구매 정보를 포함해서)을 다운로딩하는 것, 다중-사용자 대화식 시스템들(영화 전문가 채팅 등)을 구현하는 것, 웹 브라우징(선택적으로 플레이어-구현 웹 페이지 렌더링 및/또는 브라우징 성능들의 보조를 통해) 등이 있지만, 이러한 것들로 제한되지는 않는다.
UINT32 TRAP_SockSend(UINTS8 *buf, UINT32 len);
이 동작은 오픈 접속으로 buf에 의해서 지적된 데이터를 전송한다.
UINT32 TRAP_DeviceDiscovery(UINT32 dev, UINT32 qID, UINT8 *buf, UINT32 *len);
플레이어 환경 발견 절차들(TRAP_DeviceDiscovery 및 TRAP_DeviceAccess)은 재생 환경에 대한 정보를 갖는 컨텐츠 코드를 제공하며, 그 환경을 제어할 능력을 제공한다. 예컨대, 컨텐츠는 (디폴트 플레이어 언어, 볼륨, 광도, 콘트라스트, 출력 해상도 등과 같은) 플레이어 세팅들을 (제한없이) 결정하는 것; 어떠한 선택적인 절차 호출들이 지원되는지를 발견하는 것; 재생 환경 구성(첨부된 장치들, 액티브한 소프트웨어 드라이버들/프로그램들, 재생 환경 성분들의 상태 등)을 결정하는 것; 출력 장치들을 인증하는 것; 성분들을 위치지정하는 것(국부적으로 존재하는지, 직접적으로 접속되는지, 네트워크를 통해 접속되는지 등) 및 선택적이거나 제거가능한 장치들을 액세싱하는 것과 같은 동작들을 수행하길 원할 수 있다.
TRAP_DeviceDiscovery는 dev에 의해 정해지는 장치에 대한 qID에 의해 정해지는 질문에 대한 대답을 제공한다. 재생 환경에 대한 정보를 학습하기 위해서, 컨텐츠 코드는 표준 질문 리스트를 각각의 장치에 요청할 수 있다. 제공되는 질문들의 예들로는 다음과 같은 것들이 있으나 그러한 것들로 제한되지는 않는다: 어떤 qID들(질문 ID들)이 장치에 의해서 지원되는가? 만약 있다면, 그 장치의 페어런트 및 차일드 장치(들)의 장치 ID들은 무엇인가? 시스템에서 그 장치들의 역할을 무엇인가(저장, 사용자 인터페이스, 비디오 디스플레이, 스피커, 휴대용, 네트워킹 성분 등)? 그 장치의 신원(일련 번호, 제작자 정보, 모델, 버전, 날짜, 만료일 등)은 무엇인가? 그 장치의 증명서들(그리고, 다른 암호 데이터 및 성능들)은 무엇인가? 장치들은 어떠한 암호 키들을 포함하는가(또는 그것으로 액세스하는가)? 장치의 어떠한 역할(레코딩, 재전송, 디스플레이 등)이 현재 사용 중에 있으며 어떤 역할이 실행되지 않는가? 장치를 어떠한 프로토콜을 지원하고 어떠한 프로토콜들(그리고, 프로토콜 파라미터들)이 현재 인에이블되는가? 그 장치는 실행가능한 코드를 수신하는 것을 지원하고 만약 그렇다면 어떤 실행 환경 특성들인가(해석되는 것 대 본래 그대로의 지원되는 규격 버전들, 다중 대 단일 처리된 보안 증명서들)? 그 장치들의 현재 타이머 값은 무엇인가(시간 존 등을 포함해서)? 장치들이 어떤 구성가능한 파라미터들은 무엇이고 그들의 현재 값들은 무엇인가? 그 장치의 상태는 어떤가?
표준 질문 리스트는 시간에 걸쳐 확장할 수 있고; 특정 질문(qID)이 표준 질문 리스트의 일부가 되기 이전에 제작된 장치들은 그 qID를 갖는 대기열에 에러 코드 STATUS_QUESTION_UNKNOWN으로 응답할 것이다. 또한, 표준 질문 리스트 상의 질문은 qID 클리어의 최상위 비트(비트 31)를 항상 가질 것이라는 것에 유념하라. 이러한 최상위 비트 세트를 갖는 질문 ID들은 확장된 장치-특정 질문들을 위해서 예비된다. (특정 장치에 대한 확장된 정보를 발견하도록 설계된 컨텐츠 코드는 장치의 확장된 qID 리스트 및 응답 방법들을 알아야 한다.)
루틴들을 호출하는 것은 len에 의해 인덱싱된 위치로서 buf에 의해 지적된 버퍼의 최대 길이(바이트 단위)를 통과해야 한다. len에 리턴된 값은 buf에 실제로 기록된 바이트들의 수를 나타낼 것이다.
장치가 시스템에 접속될 때, 플레이어는 장치 ID를 그 장치에 할당한다. 시스템으로부터 장치를 접속해제하는 것은 장치 ID가 손실되거나 또는 다른 장치에 재할당되도록 야기하지 않는다. 장치 ID 제로는 주 플레이어 그 자체를 위하여 예약된다(비록 플레이어가 추가 ID들을 가질 수 있을지라도). 장치 ID는 새로운 미디어가 삽입되거나, TRAP_DeviceDiscovery가 제로의 장치 ID(dev)와 함께 호출될 때까지 지속된다. TRAP_DeviceDiscovery가 제로로 세팅된 dev 및 제로로 세팅된 qID와 함께 호출될 때, 모든 현재 할당된 장치 ID는 무시되고, 모든 장치의 재스캔이 필요한 경우 실시되며, 장치 ID는 새롭게 할당된다. 장치 또는 장치 구성의 변화는 통상적으로 (TRAP_EventGet에 의해 획득되는)이벤트를 생성한다.
TRAP_DeviceDiscovery에 의해 제공된 정보는 플레이할지를 결정하고, 어떻게 또는 무엇을 플레이할지를 결정하고, 암호화 키 또는 다른 암호 파라미터를 유도하고, 코드로서 실질적으로 실행될 데이터를 전송하고, 호환성 문제를 식별(또는 살펴봄)하고, 리스크를 평가하고, 플레이어 성능을 결정하고, 사용자 기호를 식별하고, 다른 보안성 및 비-보안 롤을 실행하는데 있어서 컨텐츠 코드에 의해 사용될 수도 있다.
TRAP_DeviceDiscovery는 시스템의 상태를 변경시키지 않으며; 장치의 상태를 변경시키는 연산은 TRAP_DeviceAccess를 사용할 것이다.
UINT32 TRAP_DeviceAccess(UINT32 dev, UINT32 opID, UINT8 *buf, UINT32 *len);
이 연산은 dev에 의해 특정된 장치에 의해 실행될 opID에 의해 특정된 장치 연산을 요청한다. 연산은 통상적으로 장치 맞춤형이다. 이러한 TRAP(및/또는 소켓 TRAP)는 통상적으로 장치들 사이 또는 내부에서 통과하는 메시지는 물론, 구성 파라미터를 세팅하고 일반적으로 재생 환경을 유지하는데 사용된다. 통과된 파라미터의 컨텐츠는 opID에 의존한다. 버퍼(buf)는 opID에 의존하여 컨텐츠로부터 정보를 통과시키거나 또는 컨텐츠로 정보를 통과시키거나, 또는 이들 모두에 상용될 수 있다.
TRAP_DeviceAccess는 매우 넓은 영역의 성능을 실행하는데 사용될 수도 있다. 예를 들어, (데이터가 물리적 미디어로부터 어떻게 로딩되는지에 영향을 주는 키 및 다른 파라미터와 같은) 보안 파라미터는 TRAP_DeviceAccess를 사용하여 특정될 수 있다. 연산은 또한, 제한없이, 데이터를 송신, 데이터를 수신, 키 일치 실행, 해지 상태 결정, 인증 실행, 구성 상태 변경, 전력 관리 특성의 제어, 프로세스의 종료/제어를 포함하여, 원격 장치 및 다른 컴포넌트(하드웨어 및 소프트웨어 컴포넌트를 포함함)와 상호작용하는데 사용될 수 있다.
예를 들어, TRAP_DeviceAccess는 영화 카피를 원격 장치로 전송하는데 사용될 수도 있다. 전송 장치에서 실행하는 컨텐츠 코드는 목적 장치 및 전송을 위한 적절한 연산 ID를 우선 식별할 수 있다. 이는 소정 장치의 인증, 키 변경, 또는 다른 필요한 보안 연산을 실행할 수 있다. (비록 보안 분석이 전송에 앞서 가장 공통적으로 실행되지만, 키 분배 및 다른 보안 관련 프로세스가 메인 데이터 전송동안, 또는 전송 후 부가적으로 또는 선택적으로 실시될 수도 있다.) 다음으로, 이는 (수신측에 의해 지지될 경우 번역가능한 코드와 함께 선택적으로) 영화의 일부를 원격 장치로 전송할 것이다. 전송된 데이터의 포맷은 컨텐츠 코드 및 목적 장치에 의해 협상되고, 컨텐츠 코드에 의해 최종적으로 제어된다. 예를 들어, 전송을 실행하는 컨텐츠 코드는 목적 장치에 의해 지지된 다수의 포맷으로부터 컨텐츠에서 삽입된 법정 마크를 선택하고, 재스케일하거나 그렇지 않으면 컨텐츠를 전송하고, 이를 목적 장치로 제공하기에 앞서 컨텐츠를 해독/재암호화할 수 있다. 컨텐츠와 함께 전송된 코드는 전송 장치에 의해 실질적으로 번역된 코드와 상이할 수도 있다(예를 들어, 번역이 상이한 타입이면, 상이한 역할을 수행함). 코드, 키, 데이터 및 다른 부분은 연속한 카피를 만들 능력과 같은, 예를 들어 수신측 장치에 의해 지지되지 않는(또는 실행되도록 인가된) 기능을 제거하기 위해 생략 또는 변경될 수도 있다. 코드 또는 데이터는 암호화된 형태에 제공될 수 있으며 전송 컨텐츠 코드에 의해 해독될 필요는 없다. (일부의 경우, 전송 장치는 해독 키에 대해 액세스하지 않을 수도 있다.) 통상적으로 컨텐츠는 소정의 필요한 보안 프로세싱 또는 다른 변환이 되기 쉬운 미디어로부터 부분적으로 전송기에 의해 로딩되고 출력될 수 있다. 수신측 장치는 실행 번역 코드일 수도 있다. 예를 들어, 장치 대 장치 전송은 소정의 초기 코드를 수신측에 전송하는 것을 포함할 수 있으며, 이는 수신측에 대해 필요한 보안 체크를 실행하고 수신 연속 데이터를 관리할 수 있다. (수신단에서, 예를 들어, TRAP_DeviceAccess는 예를 들어, 파일 시스템에서 데이터를 수신하고 이를 저장하는 데 사용될 수도 있으며, TRAP_CodeOutput은 데이터를 디스플레이하는데 사용될 수도 있다.) 심지어 프로그램 가능하지 않은 장치로 전송할 경우, 전송 코드는 보안 및 해지 체크를 실행하고, 인터페이스 프로토콜의 보안 부분의 관리 등을 할 수도 있다. (예를 들어, 장치 및 전송 프로토콜이 컨텐츠 코드보다 더 새로운 경우와 같은) 몇몇 상황에서, 컨텐츠 코드는 (예를 들어, 보안 프로세스의 세부를 액세싱하고 보안 문제가 식별된 경우 전송을 방지함으로써) 프로세스를 필요한, 및/또는 실질적인 정도까지 감독하면서, 장치가 전송 프로세스의 보안을 관리하게 할 수도 있다. 전송은 예를 들어 "1회 복사" 정책과 같은 제한을 강제하기 위해 NVRAM 슬롯 기록, 미디어 기록, 외부 서버와의 핸드세이킹 또는 다른 프로세스와 동반될 수도 있다.
UINT32 TRAP_RunNative(UINT8 *signature, UINT32 sigLen, UINT *code, UINT32 codeLen);
이 연산은 컨텐츠 코드가 플레이어에 대한 원시 코드를 실행하게 하도록 의도된다. 플레이어는 원시 코드가 플레이어 제조자 또는 다른 신뢰 기관에 의해 디지털적으로 서명되는 것을 필요로 할 수도 있다. (이는 악성 컨텐츠가 악성 원시 코드를 실행하는 것을 방지하기 위해 실행된다.) 원시 코드의 동작은 통상적으로 플레이어 실행에 특정적이다(또는 유사한 다른 장치가 원시 코드의 실행을 최종적으로 종료함). 결과적으로, 컨텐츠 코드는 통상적으로 어떠한 코드가 플레이어에 의해 요구되는지(또는 역으로 플레이어가 소정의 다른 원시 코드와 호환하는 지)를 결정하기 위해, (예를 들어, TRAP_DeviceDiscovery로부터 결정된) 플레이어의 특성에 관한 정보를 통상적으로 사용한다.
TRAP_RunNative를 위한 사용의 예는, 제한 없이:
● (예를 들어, 소비자 전자 장치에 포함된 비휘발성 메모리에 업데이팅된 코드를 기록하고, PC상에 인스톨된 소프트웨어 프로그램의 변경 등에 의해) 시스템의 플레이어 또는 다른 부분으로 소프트웨어 업데이트를 인스톨하고;
● 플레이어에 저장된 키 또는 암호 파라미터를 업데이팅하고;
● 악성(또는 잠재적 악성) 소프트웨어(예를 들어, 비디오 드라이버와 같은 비디오 포착 소프트웨어 매스쿼레이딩(masquerading), 광 디스크 드라이브 또는 다른 미디어 입력 장치와 같은 미디어 에뮬레이션 소프트웨어 매스쿼레이딩, 실행 프로그램을 변조하는데 사용된 디버거(debugger), TRAP_DeviceDiscovery에 의해 정당하게 보고되지 않은 임의의 활성 소프트웨어, 해지되지 않은 유효한 디지털 서명이 없는 소정의 소프트웨어 등)에 대한 재생 환경(메모리, 저장장치 등)을 스캐닝하고;
● 악성(또는 잠재적 악성) 변경이 장치(예를 들어 인가되지 않은 펌 웨어 변경, FPGA의 재구성, 하드웨어 컴포넌트의 재배치 등)에 대해 실행되는지를 결정하고;
● 인증, 공용키, 대칭 키 및 다른 암호 속성(이하 참조)이 주어진 경우 장치가 원하는 타입인지를 증명하고;
● (오버레이/메뉴 성능, 메모리 누설, 메모리 오염 문제, 부정확한 번역기 연산, 성능 문제, 보안 정책 번역 결핍 등과 같은) 버그에 대한 제 2 의 해결책(work-around)들을 제공;
● (예를 들어, 시스템에 대한 액세스 불가능한 정보를 얻거나, 현재 TRAP에 의해 지지되지 않는 방식으로 시스템 상태를 변경하도록) 주변 장치에 대한 직접 액세스를 가능하게 하는 것을 포함한다.
TRAP_RunNative는 부당 사용자가 정당한 사용자로부터 암호 키를 추출하는 방식을 알아내어 악성 소프트 프로그램과 함께 암호 키를 사용하는 경우 보안을 재설정하는 것을 도와준다. 이러한 상황에서, 대부분의 상기한 플레이어는 자신의 환경을 해지하길 강요당하는 정당한 사용자에 의해 사용되므로 모든 공격당하기 쉬운 사용자의 키를 해지하는 것은 실질적으로 실행 불가능하다.
전형적인 미디어는 키 추출 공격에 대한 대응책을 실행하고 이하와 같은 컨텐츠 코드를 포함한다.
우선, 미디어 상의 컨텐츠 코드는 플레이어의 인증을 증명함으로써 사용자의 추정된 시리얼 번호를 결정한다. 플레이어 시리얼 번호는 플레이어의 타입 및 플레이어가 실행하는 (예를 들어, TRAP_Aes에서) 특정 암호 키를 모두 함축한다. (몇몇 전형적인 키 관리 방법은 "Exemplary Symmetric Key Management" 부분에 설명됨) 다음으로, 컨텐츠 코드는 플레이어가 알아야 하는 코드를 알고 있다는 것을 증명한다. (예를 들어, 이는 재생에 대해 필요한 암호화된 코드 또는 데이터를 포함하는 버퍼를 지칭하는 src 및 dst, 버퍼의 길이를 포함한 len, 관련 대상인 플레이어 키 및 플레이어 키를 참조하는 poOrKey와 함께 암호화된 버퍼의 해독 키의 값을 나타내는 key와 함께 TRAP_Aes를 호출함으로써 달성된다.) 앞선 연산으로부터의 출력이 어디에서 연속한 연산에 대한 공식적인 입력으로 사용될지를 포함하는 다중 TRAP_Aes 호가 실행될 수 있다. 다른 단계는 상수 입력을 갖는 TRAP_Aes 연산을 실행하고 이어 XOR 연산에 의해 결과를 "교정"하거나 "조정" 값을 부가하는 것을 포함할 수도 있다. 공격당하기 쉬운 사용자의 키의 경우, 키 인증 단계는, 이러한 플레이어가 재생이 공격받기 쉬운 사용자로부터 추출된 키를 사용하는 악성 플레이어에 사용되는 상황과 재생이 공격받기 쉬운 사용자에 실행되는 상황을 구별하도록 추가의 인증을 필요로 하기 때문에, 키 증명 단계는 실패(또는 완전히 성공하지 않음)할 것이다. 이는 에뮬레이팅된 플레이어 대 정당한 플레이어를 구별하기 위해 구성된 원시 코드를 실행하고 이어 (예를 들어, 결과 값을 복귀하고, 결과에 기초하여 번역기의 메모리 영역의 일부를 암호화 또는 다른 프로세싱에 의해) 결과에 따라 번역기 상태를 변경하는 TRAP_RunNative를 실행함으로써 행해진다. 택일적으로 또는 부가적으로, 원시 코드는 외부 장치와 통신하고, (예를 들어, 법정 마크를 도입하기 위해) 출력의 변경 등에 의해 번역기의 외부에 영향을 미칠 수 있다. 원시 코드에 의해 실행된 연산은 예를 들어, 비디오 또는 요구된 코드/데이터에 대한 해독 키의 유도에서 결과를 참조하거나 다른 요구함으로써 올바른 재생에 대한 컨텐츠 코드에 의해 요구된다.
에뮬레이터가 완벽하지 않으면(현대 컴퓨터 장치의 복잡성으로 인한 극도로 난해한 명제), 원시 코드가 성공적으로 구별하는 것이 가능할 것이다. 원시 코드가 정당한 플레이어를 에뮬레이팅된 플레이어와 구별하는 데 사용할 수 있는 특성의 예는, 제한 없이, 특정 타입의 원시 코드를 실행할 성능, 하드웨어 레지스터에 저장된 값, 하드웨어 레지스터를 변경하는 효과, 메모리 컨텐츠 및 체크섬/해시, 비표준 연산을 실행할 경우의 습성, 벤더 특정 보안 특성(예를 들어, 비디오 디코더 칩에서 문서화되지 않은 보안 성능)의 올바른 실행, 코덱 라운딩 에러, 에러 조건의 조절, 선택적 사용자 인터페이스 컴포넌트(예를 들어, LCD 디스플레이 또는 키보드 입력), 정당한 장치에 부재하는 성능의 존재, 및 연산의 성능 및 타이밍을 포함한다. 일 실시예에서, 컨텐츠는 하나 이상의 플레이어 보안 테스트를 실행하고, 테스트 결과에 기초하여 키를 유도하고, 번역기의 메모리 영역의 일부를 해독하기 위해 유도된 키를 사용하는 원시 코드를 특정한다. 이어 컨텐츠 코드는, 원시 코드 체크 모두 (또는 충분히 큰 수)가 플레이어가 정당하다고 나타내면, 올바르게 플레이하도록 구성된다. 만일 플레이어가 정당하지 않으면, 컨텐츠 코드 및/또는 원시 코드는 재생을 정지시키고, 에러를 보고하며, 추가의 인증을 요구하고, 플레이어 업그레이드를 요구하며, 영화의 결말을 디코딩하는 것을 거부하며, 보너스 특성을 거절하고, 감소된 해상도로 플레이하거나, 재생 환경과 관련한 더 높은 리스크를 반영하는 다른 방식으로 응답할 수도 있다.
UINT32 TRAP_VendorSpecific(UINT32 select, ...);
이 연산은 플레이어 마커가 자신 고유의 보안 및 비-보안 연산에 대한 지원을 부가하게 하도록 하기 위한 것이다. 예로써, 몇몇 실시예는 파일 액세스(개방, 판독, 기록, 검색, 폐쇄, 속성 세팅 등), 벤더 특정 보안 연산(예를 들어, 원초적인 암호화 성능이 처리된 경우 백업으로 작용하는 비표준 암호 지원, 보조 암호 전환, 하드웨어 비디오 디코딩 회로의 보안 특성 등)으로의 액세스, TRAP_DeviceAccess를 통해 이용불가능한 특정 성능(3차원 디스플레이, 향기 출력, 조이스틱 진동 등)으로의 액세스, 가공하지 않은 버퍼 컨텐츠로의 액세스 등을 제공할 수도 있지만 이에 한정되지 않는다.
통합 보안 서비스
실시예는 라이센싱 엔티티(또는 다른 엔티티)가 컨텐츠 저작에 대한 보안 서비스의 통합 슈트를 제공하게 할 수 있다. 보안 서비스가 컨텐츠 소유자 자신에 의해 제공될 수 있는 반면, 제3자에게 이러한 능력을 아웃소싱하는 것은 컨텐츠 소유자가, 예를 들어, 하나의 보안 제공자가 다중 컨텐츠 소유자에게 서비스하게 함으로써 스케일의 경제성을 가능하게 하면서 프로세스에 참여할 필요성을 감소시킬 수 있다. 보안 서비스가 단일 엔티티 또는 다중 엔티티에 의해 제공되는지의 여부에 무관하게, 관련 테스크는, 제한 없이;
● 보안 대책을 가진 시청각 컨텐츠, 해독 로직, 기능을 삽입한 법정 마크, 해지 정책의 강화, 비휘발성 메모리 성능과의 통합, 및 비-보안 특성 사용자 인터페이스와의 통합을 조합하는 보안 코드 또는 서비스를 향상시키고;
● 법정 마크에 삽입된 정보를 회복하기 위해, 컴퓨터 네트워크 또는 다른 분배 채널을 통해 이용가능한 잠재적으로 저작권 침해된 매체를 위치시키고, 수동 및/또는 자동으로 저작권 침해된 카피를 검사 및 분석하기 위한, 자동화된 검색 도구 및/또는 수동 프로세스를 사용하고;
● 예를 들어, 저작권 침해자 소프트웨어/장치 및 (예를 들어, 온라인 채팅 룸에서) 저작권 침해자들 사이의 논의를 분석하여 저작권 침해에 관한 다른 정보를 수집, 보관 및 분석하고;
● 저작권 침해자 장치를 해지하고, 저작권 침해자 공격에 대해 대응책을 형성하고, 의심되는 저작권 침해자에 대한 고발을 지원하는 것(이에 한정되지 않음)을 포함하는 저작권 침해를 완화하는데 도움이 되도록 수집된 정보를 사용하고;
● 키, 플레이어 및 절충되고, 불안정하고, 저작에 포함되는 것으로 예상되며, 그렇지 않으면 해독 컨텐츠에 사용되지 않을 것과 같은 다른 컴포넌트의 해지 리스트를 관리한다. 상기 리스트는 전기적으로 관리될 수 있으며, 한정 없이, 해지 데이터가 개별 타이틀, 프로세스 등과 관련한 리스크 프로파일에 대처하도록 커스터마이즈될 수 있도록 각각의 엔트리의 상태와 관련한 다중 파라미터를 포함하며;
● 해지되지 않은 장치에 의해서만 해독될 수 있도록 예를 들어, 컨텐츠를 인가하기 위해 블록 해독 연산(예를 들어, TRAP_Aes)에 대한 입력/출력을 생성 또는 획득하고;
● 특정 플레이어에 대한 공격을 포함하는 공격에 대한 대응착의 개발 또는 관리. 예를 들어, 원시 코드 기반 보안 대응책이 개발되어야 하고 플레이어 제조자에 의해 디지털적으로 서명되어야 하는 포맷에서, 상기 서비스는 제한 없이, 상기 대응책이 요구된 상태를 식별하고, 제조자에게 리스크에 관한 정보를 제공하고, 대응책 개발로 지원하고, 대응책에 대한 테스팅(보안 및 능력 테스팅을 포함)을 제공하고, 각각의 대응책이 사용되는 재생 환경을 식별하기 위해 컨텐츠에 의한 사용을 위해 코드 또는 정책을 개발하고, (예를 들어, 대응책이 스킵 또는 바이패스되는 것을 방지하기 위해) 다른 해독 프로세스 및 다른 보안 특성을 대응책 코드와 통합하고, 미디어상의 다수의 개별 플레이어 타입/마커로부터 대응책을 조합하는 것을 포함하며;
● 키, 코드, 식별, 보안 정책 및 다른 특성을 포함하는 비휘발성 메모리 슬롯과 관련한 데이터를 관리;
● (예를 들어, 디코딩이 의심되는 보안성을 갖는 하나 이상의 장치 또는 환경을 포함하는 경우, 강화된 사용자 또는 플레이어 제조 단계를 제공하기 위해) 온라인 또는 다른 네트워크 기반 또는 상호 작용 컴포넌트와 연산 또는 통합하고;
● 완전한 미디어에 대해 품질 제어를 실행하고;
● 특정 마케팅 특성, 사용자 특성, 개별 플랫폼 등에 대해 비표준 특성을 갖는 컨텐츠를 통합하고;
● 플레이어 능력 테스팅을 실행하고;
● (제한 없이, 버그, 코드 제한, 디스플레이 제한, 비작용 특성, 수정가능한 보안 결함 등을 포함하는) 문제점을 갖는 플레이어를 검출하고, (영향을 받은 연산을 회피하고, 영향을 받지 않은 간략화된 특성을 사용하고, 플레이어 패치를 인스톨하고, 문제를 해결하기 위해 원시 코드를 실행하는 것을 포함할 수도 있는) 적절한 제 2 의 해결책을 전개시키기 위한 코드를 사용한 개발 및 통합;
● 전술한 특성에 영향을 주기 위해 적절한 코드 및 데이터를 사용하여 미디어가 올바르게 생성되었음을 보장하기 위해 복합기로 통합하고; 및/또는
● 컨텐츠 소유자, 플레이어 개발자, 사용자, 법률적 강화, 또는 다른 대상자를 지원하기 위해 소정 방식의 다른 태스크를 제공하는 것을 포함한다.
법정 마킹 삽입 및 복구 기술
상대적으로 대형 공모 공격(collusion attack)(즉, 상대가 다중 디코딩 장치로부터 디코딩된 출력을 통상적으로 식별 및 공모 장치를 해지하는 데에도 사용될 수 있는 법정 마크를 제거할 의도와 결합하는 공격)에 대해 최상의 가능한 보안을 얻기 위해, 출력에서 상대적으로 다수의 변수를 도입하는 능력을 갖는 것이 통상적으로 유리하다. 비록 다수의 택일적 비디오 시퀀스가 저장(예를 들어, 영화 전체에 대해 수백만의 대체)되어야 할 경우 저장 요구가 금지될지라도, MPEG-2 비디오 GOP에 대한 완전하게 개별적인 버전을 저장하는 것은 물론 가능하다. 이러한 상황을 달성하기 위해, 요구된 저장의 양을 감소시키는 것이 유리하다.
비록 법정 마크에 대해 요구된 특정 요구 및 특성이 상황에 따라 변화하지만, 바람직한 속성은 통상적으로, 근본적인 변화가 간결하게 제공(상대적으로 적은 저장 공간 또는 대역폭이 변화를 엔코딩하기 위해 요구됨을 의미)되고, 지속가능(변화가, 텔레비젼 스크린으로부터 기록을 위해 소비자가 캠코더를 사용하여 생성된 카피와 같은, 감소된 카피으로부터 복구될 수 있음을 의미)하고, 실제(출력을 검사하여 자동으로 식별 및 제거될 수 있음을 의미)같으며, 예술적으로 수용가능(변화가 컨텐츠의 품질 또는 경험을 과도하게 감소시키지 않음을 의미)한 것을 포함한다. 이러한 요구는 (예를 들어, 타이틀, 컨텐츠 저작자의 요구, 재생 환경 특성 등의 사이에서) 변화할 수도 있다.
법정 마킹을 지원하는 광 비디오 디스크의 예의 경우, 컨텐츠 저작자는 압축된 비디오에 제공될 수도 있는 다수의 대체물(또는 다른 변경)을 배치 또는 생성한다. 이러한 대체물은 비디오 압축 프로세스의 일부로 식별되는데, 여기서 비디오 압축 프로세스는 잠재적 변화를 식별하도록 변경되어 다수의 표준들(예를 들어, 저장 크기, 지속성, 실제성, 예술적 수용성 등) 사이에서 이들의 안정성을 평가한다. 만일 변화가 적절하다면, 적절한 변화로서 출력된다. 예를 들어, 압축 로직은, 단일 비트(또는 단일 바이트, 단일 워드, 단일 블록 등)의 값을 변화시키는 것이 적절한 택일적 비디오 시퀀스를 생성할 위치를 식별하도록 구성될 수도 있다.
택일적 실시예에서, 통상의 압축 알고리즘이 사용될 수도 있고, 대체물이 사전 압축 단계로서 생성 및 유효화될 수도 있다. 예를 들어, 자동화된 소프트웨어는 (a) 압축된 비디오의 임의의 바이트 및 새로운 바이트의 값을 선택하기 위해 예를 들어 (의사)랜덤 번호 생성기를 사용하여 비디오 스트림에 대한 후보 변경을 식별하고, (b) 비디오의 시험 압축 해제를 실행하고, 만일 스트림이 변화에 의해 유효하지 않게 표현되면, 무용한 것으로 후보 변경을 거절하고, 및 (c) 시험 압축 해제의 결과를 최초 스트림의 압축 해제 결과와 비교하여 차이가 요구를 충족시키기 않으면 후보 변경을 거절하도록 사용될 수도 있다. 예를 들어, 단계(c)는 너무 작거나(즉, 충분히 지속적이지 않음) 너무 큰(즉, 실제성 및/또는 예술적 수용성이 없음) 변경을 거절할 수도 있다. 부가 테스트는 변경이 각각의 다른 것(예를 들어, 몇몇 경우에, 변경은 개별적으로 적용될 경우 수용가능하지만, 함께 적용되면 그렇지 않음)과 상호작용하지 않을 것을 증명하기 위해 실행될 수도 있다. 테스트를 통과한 변경이 저장된다.
법정 마킹을 사용하는 미디어의 예를 고안한 경우, 초기 압축된 비디오 데이터 스트림이 준비된다. 이러한 데이터는 선택적으로 (비디오를 손상시키는 몇몇 대체물 또는 다른 변경을 선택적으로 포함할 수 있는) 몇몇 변경이 이미 행해진 메인 압축 비디오로 구성된다. 비디오를 플레이 가능하게 하기 위해 필수적인 소정의 변경을 포함하는 비디오에 대한 유효한 변경(예를 들어, 앞서 식별되지만 적용되지 않은 변경을 적용하거나, 이미 적용된 변경을 실행하지 않음)을 식별하는 데이터 구조가 준비된다. 대체물은 매우 간결(예를 들어, MPEG GOP 및 8-비트 대체물 값에서 24-바이트 오프셋이 4바이트로 표현될 수 있음)할 있으며, 수백만 개의 변화를 단지 몇 메가바이트의 데이터로 한정할 수 있다.
따라서 컨텐츠 저작자는 재생 환경 특성에 기초한 변화를 선택 및 적용하는 프로그램 로직을 준비한다. 이러한 프로그램 로직은 비디오 시퀀스에 변화를 제공하도록 구성될 수 있으며, 적용된 변화의 조합은 통상적으로 법정 용도(예를 들어, 암호가 장치, 모델/제조자 정보, 연결된 장치의 정보 등을 식별하는 값인 시리얼 번호)를 위해 이용가능한 정보에 기초한다. 게다가, 프로그램 로직은 유효한 비디오 스트림(적어도 수용가능한 재생 환경에서 연산시)을 생성하기 위해 필요한 소정의 변화를 적용하도록 구성될 수도 있다. ("필수적" 변화는 상대가 변화를 적용하는 쓸모없는 컨텐츠 코드로 시도할 불리한 공격을 돕는데 유용할 수 있다.) 컨텐츠 코드 로직은 이러한 대체물을 적용할 플레이어에 대해서만 설정된 상황을 해독하기 위해 예를 들어 플레이어 키를 사용하도록 암호의 사용을 포함할 수도 있다. 유사하게, 컨텐츠 코드는 (예를 들어, 공격 또는 성능 저하로 인해) 마크 복구가 신뢰할 수 없는 경우에도, 예를 들어, 마킹된 비디오를 복구하는 대상이 플레이어 정보를 복구하게 하도록 에러 교정 코드의 사용을 포함할 수도 있다. 삽입된 값은 마크를 복구하는 대상이 복구된 정보의 유효성에 확신을 가질 수 있도록 삽입된 정보를 검증하는 디지털 서명, MAC, 또는 다른 값을 포함할 수도 있다.
저작권 침해된 카피가 복구될 경우, 컨텐츠 저작자는 현재 변화를 식별하기 위해 카피를 분석할 수 있다. 이러한 분석이 (예를 들어, 저작권 침해된 비디오와 각각의 위치에서 가능한 변형 각각과 비교하여 재생 환경 특성으로 복귀하는 변화의 리스트를 맵핑하여) 수동으로 실행될 수도 있지만, 분석 프로세스는 양호한 효율을 위해 그리고 매우 복잡한 마크의 분석을 가능하게 하기 위해 자동화될 수도 있다. 자동화된 법정 마크 분석 시스템의 예는 커스텀화된 소프트웨어를 사용한 컴퓨터로 구현된다. 분석 소프트웨어는 최초 압축 비디오, 변경 리스트, 및 복구된 저작권 침해 비디오의 디지털 표현으로 시작한다. 다음으로, 분석 소프트웨어는 저작권 침해된 비디오의 프레임과 최초 비디오의 프레임을 매칭시키고, 최초 비디오의 대응 프레임과 저작권 침해 비디오의 프레임(및/또는 최초와 적용된 변경)을 가장 근접하게 매칭시키기 위해 변환(회전, 스케일링, 벤딩, 컬러 시프팅, 강도 조절, 타임 시프팅 등)을 식별한다. 이어 분석 소프트웨어는 저작권 침해된 비디오 프레임(또는 프레임의 일부, 프레임의 세트 등)을 최초 비디오의 각각의 변형의 대응하는 일부와 비교한다. 이어 소프트웨어는 얼마나 근접하게 복구된 비디오가 각각의 변화에 매칭하는지를 나타내는 유사성/차이에 기초한 점수를 계산한다. 이러한 점수는 예를 들어 (변환된) 저작권 침해 비디오 이미지와 최초의 변화 사이의 최소 제곱차를 사용하여 계산될 수도 있다. 점수를 계산시, 변화에 의해 영향을 받지 않은 영역은 무시될 수도 있으며, 추가의 조절이 비월 주사, 프레임간 흐려짐 등과 같은 왜곡에 대해 행해질 수도 있다. 이미지 분석 소프트웨어는 조작자가 최초 비디오 변형(가상적으로 위치하는 변형을 지원하기 위해 선택적 크기 및 하이라이팅을 가짐) 다음의 (변환을 조정 또는 조정하지 않은) 최초 비디오의 프레임을 뷰잉하게 하고, 조작자가 어떤 변화가 저작권 침해 비디오에 존재하는지를 선택(또는 변화가 알려지지 않음을 나타냄)하고, 각각의 비디오 소스의 순방향 및 역방향으로 이동시키고, 신속하게 다음 변형으로 진행하고, 현재 프로그램 상태를 저장하게 하도록 사용자 인터페이스 옵션을 제공하는 "수동 모드" 사용자 인터페이스를 제공할 수도 있다. 이미지 분석 프로세스의 출력(수동 또는 자동 실행에 무관함)은 비디오에 존재할 수도 있는 가능한 변형에 할당된 관련 점수의 리스트이다. (리스크의 간략화된 형태는 출력이 간단히 각각의 변형에 대해 가장 가능한 옵션을 식별하는 경우이다.) 따라서 자동 및/또는 수동 프로세스가 복구된 변형 데이터를 재생 환경에 관한 정보로 변환하는 데 사용된다. 예를 들어, 만일 마크 삽입이 플레이어 시리얼 번호로 적용된 에러-교정 코드의 출력에 근본적으로 기초하면, 복구된 선택 값은 시리얼 번호를 복구할 적절한 디코딩 프로세스에 대한 입력으로 변환될 수 있다(에러 번호가 초과하지 않는다고 가정). 유사하게, 선택 프로세스가 시리얼 번호의 일부에 시딩된 의사랜덤 번호 생성기(PRNG)를 사용하여 행해진 경우, 분석 프로세스는 저작권 침해 비디오로부터의 관측을 갖는 각각의 가능한 시드 값을 사용하여 PRNG 출력을 상관하는 것을 포함한다.
변화는 압축된 비디오 스트림을 변경시키기 보다는 다른 수산을 사용하는 컨텐츠에 삽입될 수도 있다. 예를 들어, 컨텐츠 코드는 디코딩된 비디오의 상부의 이미지를 오버레이하기 위해 플레이어를 지향시킴으로써 변경을 도입할 수도 있다. 예를 들어, 법정 마크는 MPEG-2 디코딩된 비디오에 대해 하나 이상의 반투명 오버레이 프레임을 드로잉함으로써(또는 유사하게 컨텐츠 코드가 출력 프레임 버퍼를 직간접으로 변경시킴으로써) 삽입될 수 있다. 오버레이는 또한 매우 가시적일 수 있다. 예를 들어, "Screener for FirstName LastName's. Do Not Copy."라고 지시하는, 동적으로 생성된 이동 반투명 오버레이는 저작권 침해에 대한 명백한 억제작용을 제공할 수 있으며, (예를 들어, 광 디스크의 버스트 커팅 영역, NVRAM 슬롯, 서버 등으로부터) 뷰어의 이름을 결정하고 적절한 오버레이를 디스플레이함으로써 생성될 수 있다. 오버레이는 예를 들어, (고의로) 결합 부분에 대해 드로잉함으로써 비압축 비디오를 교정 또는 변경하는데 사용될 수 있다. 오버레이는 오버레이를 드로잉하기 위한 코드를 나타내는데 필요한 데이터의 양이 매우 작을 수 있기 때문에 미디어 상의 저장 공간에 대해 매우 효율적일 수 있다. 오버레이 기반 마크는 매우 많은 변화를 갖는 비디오 부분을 생성하는 것을 효율적이게 한다(예를 들어, 단일 비디오 프레임의 작은 부분은 상기 영역에서 플레이어 시리얼 번호의 표현을 간단하게 오버레잉함으로써 플레이어를 유일하게 식별하게 할 수 있음). 오버레이 기반 마킹은 광범위하게 변화하는 마크를 간략하게 만들 수 있는데, 이는 (예를 들어) 스크린 위치(x,y) 및 희미한 반투명 오버레이 이미지가 디스플레이 될 수도 있는 시간에 대한 선택의 광범위한 영역이 존재할 수도 있기 때문이다. 이러한 특성은 저작권 침해자들이 다중 플레이어로부터의 출력을 조합함으로써 저작권 침해 카피의 소스를 숨기게 할 수도 있는 상황에서 장치를 식별하는데 특히 도움을 줄 수 있다. 법정 마크는 제한 없이, 스틸 이미지, 제어 데이터, 미디어 기록 패턴 등을 포함하는 다른 데이터에 삽입될 수도 있다.
미디어 및 컨텐츠 인증
컨텐츠 코드 및/또는 플레이어는 미디어가 삽입 및/또는 이후 로딩될 때 미디어를 암호식으로 인증할 수도 있다.
실시예에서, 미디어의 모든 또는 일부 개별 데이터 부분(예를 들어, 섹터)은 해시 트리를 사용하여 디지털식으로 서명된다. 루트 해시는 포맷을 감독하는 엔티티(또는 다른 신뢰할만한 엔티티)에 의해 디지털적으로 서명되고 매체상에 위치된다. 루트 해시 서명은 복제 및/또는 마스터링 설비들, 저작권 소유자, 발행일, 매체 및 다른 정보를 액세스하기 위해 인가(또는 비-인가)된 플레이어 장치를 설명하는 표준을 식별할 수도 있다. 데이터 블록(예를 들어, 섹터, GOP, 트랙, 파일 등)이 미디어로부터(또는 그 이후에) 로딩될 경우, 이들은 루트 해시를 생성하기 위해, 로딩된 데이터를 적절한 미디어간 해시 값과 조합함으로써 드라이버, 컨텐츠 코드, 플레이어 애플리케이션, 및/또는 다른 플레이어 장치/부품에 의해 유효하게 된다. 루트 해시의 값은 (상대적으로 늦은) 공용 키 서명 증명 단계가 각각의 판독에 대해 반복될 필요가 없도록 미디어 서명이 증명된 후 캐싱될 수도 있다. 유사하게, 미디어 간 해시 값은 데이터 블록으로 저장되고, 캐싱되고, 필요에 따라 계산되거나 미디어로부터 검색될 수도 있다. 미디어는 다중 루트 해시를 포함할 수도 있거나, (섹터, GOP, 또는 다른 데이터 부분상의 디지털 서명을 증명하는 것과 같은) 다른 인증 설계를 포함할 수도 있다. 저장 오버해시를 감소시키기 위해, 서명 및 패딩 설계가 사용되어 메시지 복구를 가능하게 할 수도 있다. 디지털 서명은 (재)기록가능한 부분, 또는 모든 데이터에 저장된 디스크 또는 데이터에 포함된 부트 코드와 같은 디스크 컨텐츠의 일부를 인증할 수 있다.
연산을 특정 또는 한정할 수 있는 서명(또는 다른 암호 및 비암호 값)은 특정한 디스크 또는 코드 부분에 의해 실행될 수도 있다. 예를 들어, 디지털 서명은 컨텐츠가 특정 플레이어 특성 또는 능력을 액세스하게 인가 및 가능하게 하는 라이센싱 인가에 의해 생성된다. 이러한 인가는 라이센싱 요금이 비-인가된 저작권 침해 미디어의 도입을 제공 또는 방지하는 것을 보장하는데 사용될 수도 있다. 실시예에서, 영화를 포함하는 광 디스크의 대량 생산을 원하는 각각의 컨텐츠 저작자(또는 복제 설비)는 생성될 디스크를 식별하는 정보를 갖는 라이센싱 엔티티를 제공할 것이다. 이러한 정보는 제한 없이, 타이틀, 법적 저작 소유자의 식별, 인가된 카피의 수, 디스크 컨텐츠의 적어도 일부의 해시, 미디어 시리얼 번호, 요구되는 원하는 능력, 및 요청을 인증하는 디지털 서명을 포함할 수 있다. 응답으로, 저작 소유자는 미디어의 생산을 인가하는 하나 이상의 디지털 서명을 접수할 것이다. 라이센싱 엔티티는 컨텐츠 저작자(또는 대리인)로부터 대가를 받거나 요구할 수 있다. 이렇게 하여, 라이센싱 비용이 컨텐츠에 의해 실질적으로 사용된 특정 능력(보안 또는 기타)에 직접 연결되는 것이 가능하다. 컨텐츠 코드의 연산에 부과된 제약은 비암호 플래그(예를 들어, 방송 텔레비젼 신호가 카피될 수 있는지를 나타내는데 사용된 방송 플래그와 유사함)에 기초할 수도 있다. 허가는 앞선 작용(예를 들어, 사용자 사생활이 유지되는 것을 보장하는 것에 대한 개인 사용자 정보를 액세스하는 컨텐츠 코드에 의해 네트워크 소스로의 액세스를 거부, 사용자의 허가를 획득하거나 원격 서버로부터 인증을 획득한 컨텐츠 코드로의 대량 액세스 부여 등)에 기초할 수 있고, 다른 스레드, 컨텐츠 코드 부분 등에 대해 상이할 수도 있다.
디지털 서명은 컨텐츠로 또는 개별적으로 분배될 수도 있으며, 미디어의 소정 부분에 배치될 수도 있으며, 암호화된 키, 해독 키를 유도하는 로직, 보안 정책 정보 등에 의해 동반될 수도 있다. 예를 들어, 광 미디어의 경우, 각각의 디스크에 대해 개별적으로 기록될 수 있는 미디어의 일부에 디지털 서명을 배치시키는 것이 유리할 수도 있다(그로 인해, 어떤 장치가 미디어를 플레이할 수 있는지를 명확하게 특정하도록, 예를 들어 미디어 해지 능력을 사용하기 위해 인증된 유일한 디스크 시리얼 번호를 제공함).
비휘발성 메모리(EEPROM, 플래시 등)를 포함하는 미디어의 경우, 유일한 데이터는 정상적으로 저장될 수 있지만, 다른 미디어 타입은 다른 기술을 요구할 수도 있다. 예를 들어, 스탬핑된 광 미디어는 고전력 레이저를 사용하여 통상적으로 기록되는 버스트 커팅 영역(BCA)에서 데이터를 운반할 수 있다. 의도적인 결함의 패턴 또는 변화는 미디어 표면에 도입될 수도 있으며, 플레이어 및/또는 (예를 들어, 금지된 에러 검출 및 에러 교정으로 생성된 판독 결과를 직접 프로세싱함으로써) 컨텐츠 코드에 의해 판독될 수 있다. 반도체 기반 ROM의 경우, 퓨즈 및 다른 1회 기록 특성이 사용될 수도 있다.
서명 및 증명 외에, 미디어 유일 영역은 제한 없이, 국부화 정보, 암호 키(예를 들어, 특정 플레이어가 스크리너, 데모, 또는 제어된 분배를 위한 다른 디스크와 같은 현재 또는 미래의 미디어를 디코딩하게 하는 키; 판독, 해독, 및/또는 플레이어 비휘발성 메모리 데이터로의 기록을 가능하게 하는 키 등), 해독된 키(예를 들어, 미디어의 디코딩 또는 복제 설비들로부터 저작권 침해자들에 의해 데이터를 빼앗기는 것을 방지하기 위해 스탬핑된 미디어의 생성 후 기록), (예를 들어, 오버레이에 디스플레이를 위한 수취인 이름, 법정 마킹의 사용과 같은) 정보 식별, 마케팅 및 승진 데이터(예를 들어, 시험에 참가하게 하는 값, 내기 경마, 온라인 서비스 등), 전화 번호, 데이터 네트워크 주소, 실행가능한 코드, 또는 컨텐츠 코드 및/또는 플레이어에 의해 사용될 수도 있는 다른 암호 또는 비암호 데이터의 소정의 방식을 운반하는 데 사용될 수 있다. 디스크 유일 영역으로부터 데이터를 로딩하는 경우, 드라이브는 디스크 유일 영역의 컨텐츠를 위조하도록 요구되는 정보를 (예를 들어, 애플리케이션 또는 컨텐츠 코드로) 출력하지 않도록 드라이브는 일방향 변환(예를 들어, SHA 해시, 컨텐츠 코드에 의해 특정화된 값으로 키잉된 HMAC-SHA, RSA 공용 키 연산 등)을 제공할 수도 있다. 레코딩 장치는 또한 정밀한 불법 카피를 생성하기 위해 상대방이 정당한 미디어로부터 추출된 정보를 사용하는 것을 방지하기 위해 해싱 또는 다른 암호화 변환을 사용할 수 있다. 미디어 유일 영역은 (예를 들어, 블랭크 사용자 기록가능 미디어상의 시리얼 번호를 사용하여) 사전 레코딩될 수 있거나, (예를 들어, 디지털적으로 서명될 수도 있으며, 레코더가 해지되지 않음을 보장하기 위해 정당한 장치에 의해 증명될 수도 있으며, 불법 카피가 불법 카피를 위해 사용된 레코딩 장치를 식별 및/또는 해지하기 위해 복구될 경우 사용될 수도 있는 레코딩 장치의 식별자를 사용하여) 레코딩 장치에 의해 기록될 수 있다.
미디어 인증 및 위조 방지 기술(예를 들어, 미국 특허 번호 6,646,967에 개시된 피트 특성 변조 또는 워블 트랙 콘탠츠)을 지원하는 미디어 포맷의 경우, 이러한 특성으로부터 유도된 값들은 플레이어에 의해 판독(또는 검출)될 수도 있으며 플레이어 및/또는 컨텐츠 코드에 의해 인증될 수도 있다. 물리적 특성을 판독한 후, 드라이브는 변환된 특성을 알고 있는 부당한 대상이 변경되지 않은 드라이브에 의해 수용될 방식으로 근원적인 특성을 위조하는 능력을 결핍시키기 위해 이러한 값을 출력하기 전에 일방향 암호 변환을 적용할 수도 있다. 컨텐츠 코드(및/또는 드라이브, 플레이어 애플리케이션, 또는 다른 컴포넌트)는 (예를 들어, 미디어가 특성 값을 갖는 신뢰할 만한 대상으로부터 서명을 운반하는 것을 증명함으로써) 변환된 특성을 인증할 수 있다.
부트스트랩, 보안 분석 및 재생
예로든 광 디스크를 사용하는 예로든 플레이어의 실제 연산은 디스크를 드라이브에 삽입하면서 시작한다. 디스크로부터의 코드 및/또는 데이터의 초기 부분을 로딩 및 실행함으로써 번역기가 우선 부트스트랩된다. 이러한 초기 부분은 작고 간단할 수 있는데, 예를 들어, 타이틀이 로딩되고 이어 미디어로부터 추가 코드 및 데이터를 컨텐츠의 메모리 영역으로 로딩하기 시작하는 것을 사용자에게 간단하게 알릴 수도 있다. 이러한 코드는 차례로 추가의 코드를 로딩할 수도 있다(예를 들어, 플레이어 타입을 체크하고 플레이어 타입에 특정한 코드를 로딩함). 임의의 개수의 코드 로딩 체크가 플레이어 디자인 및 미디어에 따라 실행될 수도 있다. 플레이어는 삽입된 미디어가 코드(또는 코드 실행에 필요한 특성)를 방해하고, 만일 그런 경우, 플레이어에 내장된 능력을 사용하여 디스크를 플레이하는 경우를 검출할 수 있다. 예를 들어, 이러한 지원은 DVD, CD, DVD-오디오 등과 같은 레거시(legacy) 미디어 포맷으로부터 재생을 가능하개 하기 위해 유용하다.
그 후, 예시적 미디어는 하나 이상의 타이틀 특성 해독 키를 유도하기 위해 플레이어의 암호 인터페이스(예를 들어, TRAP_Aes)를 사용한다. 컨텐츠 코드는 비해지된 플레이어만이 유효한 해독 키를 유도할 수 있도록 구성된다. (이를 달성하기 위해, 컨텐츠 코드는 제한 없이 방송 암호, 키-암호-키, 모호화 소프트웨어 등과 같은 기술을 사용할 수도 있다.) 이러한 해독 키는 예를 들어, 추가의 암호화된 코드, 비디오 또는 다른 데이터를 해독하는 데 사용된다. 부트스트랩핑은 미디어로부터 데이터를 로딩하고, 필요한 경우 데이터를 압축해제하고, 임의의 방식의 보안 분석 연산을 실행하는 것을 포함한다(이하에서 상술됨).
실제 재생은 통상적으로 다양한 단계 또는 체크를 반복적으로 실행하는 것을 포함하며, 제한없이 이하를 포함할 수 있다;
● 핸들링 이벤트. 이는 사용자 인터페이스 이벤트(예를 들어, 키보드, 원격 제어 버튼 프레스, 마우스 움직임, 포인터/커서 움직임, 선택 입력 등) 및 다른 이벤트(예를 들어, 전력 다운 요청/통지, 하드웨어 구성 요청/통지, 소프트웨어 변경 요청/통지, 에러 경보, 미디어 이젝트 요청/통지 등)을 포함할 수도 있다(TRAP_GetEvent 참조). 이벤트를 조절하는 적절한 방법은 이벤트, 타이틀, 플레이어 속성 및 재생 프로세스의 상태(예를 들어, 메뉴가 디스플레이될 경우, 이벤트를 프로세스하기 위해 사용된 로직은 비디오가 플레이될 경우 사용된 로직과 상이할 수도 있음)에 의존할 수도 있다. 예로써, 소정의 이벤트는(제한 없이) 새로운 비디오 스트림으로 스위칭하고, 플레이어 구성 비트를 변경하고, 액션을 요청(예를 들어, 이젝트 요청에 응답하여 "미디어 이젝트"TRAP를 호출)하고, 메뉴를 업데이트하고, 오버레이 그래픽을 변경(예를 들어, 애니메이팅, 업데이팅 등)하고, 네트워크 접속을 초기화/업데이팅 등, 재생 구성(재생 스피드 등)을 변경, 새로운 컨텐츠 코드를 로딩 및 실행, (버퍼링된 미디어 요청을 변경/삭제, 데이터 버퍼링된 코드를 퍼징하는 것 등을 요구할 수도 있는) 비디오 스트림의 새로운 위치로 점핑, 재생 종료, 보안 체크를 실행, 에러를 디스플레이함으로써 조절될 수도 있다. 몇몇 이벤트는 컨텐츠 코드가 요청된 연산이 인가되었음을 체크하는 것을 필요로 할 수도 있다. 즉시 실행될 수 없는 연산은 이들이 실행될 수 있을 때까지 버퍼링될 수도 있다. 몇몇 이벤트는 무시될 수도 있다.
● 미디어 인터페이스를 관리. 실시예에서, 미디어 핸들링 루틴은 비디오 및 오디오 코덱을 위해, 그리고 다른 목적을 위해 이용가능한 데이터의 지속적 공급이 있다는 것을 보장하기 위해 책임이 있다. 예를 들어, 만일 미디어가 광 디스크이며, 컨텐츠 코드는 드라이브의 상태를 체크하고, 성공적으로 판독된 데이터를 검색하고, 새롭게 판독된 요청을 제공하고, 더이상 필요없다고 판독된 요청을 삭제하고, 능력 또는 캐시를 사전판독하기 위해(예를 들어, 방해없는 재생을 보장하기 위해 비디오에서 다가오는 브랜치의 각각의 가능한 포크에서 데이터를 로딩하기 위해) 힌트를 제공하고, 데이터가 로딩되고, 에러를 체크하고, 어떻게 에러를 다룰지를 지시하고, 드라이브 또는 다른 컴포넌트에 대한 암호 키를 특정하고, 드라이브 판독/기록 요청과 관련하여 인증 정보를 제공하고, 디코딩 파라미터(예를 들어, 에러 교정 정보, 키, 섹터 주소 맵핑, 판독 헤드 깊이/포커스 등, 파일 액세스 권한 등)을 특정하는 컨텐츠 코드의 메모리 영역(또는 코덱, 프레임 버퍼, 해독 모듈 등과 같은 다른 곳)의 장소를 특정할 수도 있다.
● 보안 프로세싱: 이 로직은 (예를 들어, MAC, 해시 트리, 디지털 서명 등을 사용하여) 유도 키, 로딩된 데이터 인증, 실행 가능한 부분(예를 들어, 오디오 또는 비디오의 특정 부분과 관련한 보안 코드)의 런닝과 같은 소정의 추가로 요청된 암호화 또는 프로세싱 스텝을 실행할 수도 있다. 이러한 스텝은 (예를 들어, 로딩된 데이터의 어떤 부분을 출력으로 선택하고, 데이터를 변경함으로써) 법정 마크를 삽입하는 것을 포함할 수도 있다. 실시예에서, 이러한 연산은 블록 AES 키 그 자체의 인지가 상대방이 디스크의 컨텐츠를 해독하지 못하게 하는 것은 보장하기 위해 해독 전/후에, MPEG GOP용 키를 유도하고, GOP 데이터에 대해 AES 해독 연산을 실행하고, 사전 프로세싱 및 사후 프로세싱(리오더링 데이터, 블록 XOR, 대체, 바이트 변경 등)을 실행하기 위해 컨텐츠 코드를 사용하는 것을 포함한다.
● 데이터를 코드로 변환. 이러한 코드는 미디어로부터 요구되는 데이터가 이용 불가능하기 때문에 코덱 결핍이 방지되지 못하는 상황과 같은 에러 조건을 검출 및 조절할 수도 있다. 이러한 코드는 코덱 버퍼가 오버플로우 또는 언더플로우하지 않는 것을 보장하고 미디어 인터페이스 코드가 교정 데이터를 로딩하는 것을 보장하는 코덱 상태를 검출할 수도 있다.
● 오버레이 및 특정 특성의 조절. 이러한 로직은 드로잉 및 메뉴 제거, 오버레이, 자막, 및 유사한 특성을 책임진다. 이는 또한 픽쳐-인-픽쳐 비디오 및 소정 종류의 법정 마크(예를 들어, 오버레이를 사용하는 드로잉된 것)를 조절한다.
특정 상황(예를 들어, 게임/퍼즐, 메뉴, 메뉴 선택의 조절, 숨겨진 "이스터 에그" 등)은 특정 코드를 필요로 할 수 있다. 만일 다중 스레딩된 번역기(예를 들어, 자바 가상 머신)가 제공되면, 개별 스레드는 다양한 연산(이벤트, 오버레이, 비디오 등의 관리)을 위해 사용될 수도 있으며, 스레드 및/또는 공유된 메모리 영역 사이를 통과하는 메시지에 대한 번역기의 지원은 동기화를 위해 사용되고 스레드들 사이를 제어할 수 있다. 유사하게, 상태 체크 및 메시지 전달은 번역기가 다른 컴포넌트와 동기화되었음을 보장하는데 사용될 수도 있다.
플레이어는 예를 들어, 사용자 인터페이스 일치를 개선하고, 컨텐츠 권한 효과를 감소시키고, 성능을 향상시키는 것 등을 위해 다양한 연산에 대해 디폴트 핸들러를 제공한다.
(사용자가 플레이어의 이젝트 버튼을 누른 경우와 같은) 완료시, 컨텐츠 코드는 미정의 셧다운을 통보받을 것이다. 컨텐츠 코드는 이어 원격 장치에게 자신의 내부 상태를 종결(예를 들어, 소정의 요구된 비휘발성 메모리 기록 등의 완료)하고 나갈 것을 통지할 수 있다. 만일 컨텐츠가 예정된 시간(예를 들어, 5초)내에 나가지 않으면, 플레이어 장치는 컨텐츠 코드를 종료하고 미디어를 이젝팅한다.
보안 분석 연산
컨텐츠 코드는 보안 문제를 찾기 위해 재생 환경을 분석할 수 있다. 이러한 프로세스는 통상적으로 플레이어 및 재생 환경의 다른 부분에 대한 정보를 획득 및 프로세싱하는 것을 포함한다. 이러한 정보는 디지털 서명, 및/또는 플레이어 또는 컨텐츠 코드가 증명할 수 있는 다른 컴포넌트에 대한 암호 인증을 포함할 수도 있다.
플레이어로부터 얻어진 이러한 정보는 플레이어 및 재생 환경의 특성(또는 추정된 특성)을 설명한다. (특정 TRAP의 존재와 같은) 몇몇 특성이 직접 보고된다. 다른 특성들은 간접적으로 추론되는데, 예를 들어, 플레이어의 암호 키의 특성 조합은 플레이어의 시리얼 번호에 의해 부분적으로 또는 완전하게 결정될 수도 있다. 정당하지만 올바른 암호 키가 없는 플레이어와 같은 플레이어 매스쿼레이딩은, 결여된 키를 사용하여 암호 연산(해독, 서명 등)을 실행할 수 없기 때문에, "거짓으로 포착"될 수 있다. 유사하게, 다른 불일치가 문제를 식별하기 위해 사용될 수 있다.
보안 분석 프로세스는 압축된 비디오, 코드, 오디오, 및/또는 다른 데이터에 대한 키의 유도를 포함하는 다양한 재생 관련 프로세스에 포함될 수도 있다. 예를 들어, 만일 특정 타입의 정당한 플레이어가 원시 코드(표준 번역기/가상 머신에서 실행하는 코드와는 대조적으로, 머신에서 로컬 프로세서에서 실행되는 코드)를 실행할 성능을 지원 및/또는 보고되지 않은 플레이어 타입 특정 계산을 지지한다면, 컨텐츠는 플레이어 타입을 인증하는 이러한 능력을 사용할 수 있다. 만일 컨텐츠가 특정 모델이기를 요구하지만 모델에 의해 지지되는 연산을 올바르게 실행할 수 없는 플레이어에 대해 실행되는 것을 발견하면, 컨텐츠는 예를 들어 이러한 타입의 부당하게 절충된 플레이어로부터 추출된 키를 사용하여, 이러한 플레이어 타입으로서 매스쿼레이딩하는 장치에 대해 자신이 실행되고 있다고 이치에 맞게 결론내릴 수 있다.
보안 체크는 컴포턴트 또는 속성의 소정 조합을 분석하는 것을 포함할 수 있다. 예를 들어, 미디어의 특성, 미디어 드라이브, 및 하드웨어 컴포넌트는 위조 플레이어를 검출하는데 유용하다. 사전 레코딩 또는 "스탬핑된" 미디어 상에서 판매된 컨텐츠는 드라이브에게 컨텐츠가 사용자 판독가능 매체상에서 실행하는 지의 여부를 결정하고, 만일 그렇다면, 발생하지 말아야 하므로 플레이를 거절할 것을 문의할 수 있다. 만일 특정 타이틀이 특정 상태(예를 들어, 지불이 된 경우)에서 소비자 판독가능 미디어에 기록을 허용한 경우, 컨텐츠는, (컨텐츠 사용자의 인가된 표현에 의해 발행된) 예를 들어, 특정 시리얼 번호를 사용하여 미디어로부터 재생을 명백하게 인가하고 및/또는 특정 레코딩 장치의 식별을 운반하는, 유효한 디지털 서명이 존재한다면, 소비자 판독가능 미디어로부터 재생만을 가능하게 할 수도 있다.
출력 장치, 장치 드라이버, 및 보안 체크는 컨텐츠를 수신할 수(도) 있는 다른 재생 컴포넌트 상에 실행될 수 있다. 이러한 능력은 컨텐츠가 부당하거나 절충된 출력 장치를 사용하여 레코딩될 수도 있는 상황을 해결하는데 유용하다. 출력 장치에 대한 증명 연산은 장치의 능력에 의해서만 제한된다. 예를 들어, 출력 장치 증명은 제한 없이, (예를 들어, 보안 문제를 검출하고, 버그를 고치는 것 등을 위해) 원시 코드를 입력 또는 출력 장치로 전송하고, 다른 장치와의 암호 핸드세이크를 실행하고, 미디어에 운반된 해지 리스트에 대해 장치의 키를 테스팅하는 것 등을 포함할 수도 있다. 출력 장치는 플레이어의 증명을 요청할 수도 있으며, 이 경우, 적절한 증명이 실제 플레이어, 컨텐츠 코드, 또는 이들의 조합(또는 다른 컴포넌트)에 의해 제공될 수도 있다. 만일 다중 출력 장치가 연속적으로 연결된 경우(예를 들어, 플레이어 장치가 디지털 오디오를 믹서로 전송하고, 믹서는 디지털 오디오를 증폭기로 전송하고, 증폭기는 차례로 아날로그 출력을 스피커로 전송함), 각각의 장치는 컨텐츠를 처리하는 것에 대해 플레이어로 정보를 제공하고, 시발(또는 다른) 장치가 연속한 장치를 통해 메시지를 전달하게 한다. 이렇게 하여, 컨텐츠 코드는 재생 프로세스에 포함된 장치의 임의의 긴 체인(또는 네트워크)에서 각각의 장치를 인증할 수 있다. 만일 믿을만한 가치가 없는 장치(또는 레코딩 장치와 같은 인가되지 않은 장치)가 검출된 경우, 컨텐츠 코드는 (제한없이, 플레이를 거절하고, 신뢰할 수 없는 장치로 출력하는 것을 거절하고, 미디어간 장치가 신뢰할 수 없는 장치로 컨텐츠를 전송하지 못하게 지시하고, 문제를 교정하기 위해 신뢰할 수 없는 장치를 재구성하고, 출력 품질을 감소시키고, 추가의 보안 인증 단계를 실행하는 등의) 적절한 응답이 행해지는 것을 보장할 수 있다. 만일 인터넷으로의 접속 또는 다른 데이터 접속이 존재하는 경우, 보안 체크는 원격 사이트로부터 추가의 보안 관련 정보를 다운로딩하는 것을 포함할 수 있다. 유사하게, 원격 장치 및 로컬 저장기(예를 들어, NVRAM)는 새로운 인증 해지 테이블 또는 미디어 상의 코드보다 더욱 새로운 디지털적으로 서명된 보안 코드와 같은 유용한 정보를 획득하는데 사용될 수 있다.
보안 체크가 통상적으로 재생에 앞서 시행되지만, 컨텐츠 코드는 소정의 시간에 보안 체크를 실행할 수 있다. 재구성될 수도 있는 재생 환경에 대해, 또는 다른 새로운 보안 관련 정보가 유용하게될 상황에서, 추가의 보안 체크를 주기적으로 또는 일정하게 실행하는 것이 유리할 수도 있다. 만일 주요한 변화가 검출되면, 재생 환경에서 확신이 다시 설 때까지, 컨텐츠 코드는 재생을 종료 또는 재생을 일시 정지할 수도 있다.
테이블 또는 결정 트리는 특정 플레이어 속성이 주어질 때, (만일 존재한다면) 어떠한 보안 분석 코드가 적절한지를 신속하게 선택하기 위해 사용될 수도 있다. 현재 플레이어에 적용불가능한 보안 코드는 실행(또는 미디어로부터 로딩)될 필요가 없으며, 소정의 불필요한 실행 충돌을 방지하고, 이를 지원하지 않는 플레이어에 대한 보안 코드를 실행하여 초래될 수 있는 호환성 문제를 방지한다. 전술한 바와 같이, 보안 체크는 암호 키 유도 연산에 구속될 수 있다(예를 들어, 특정 보안 체크를 필요로 하는 장치는 필요한 키를 올바르게 유도하기 위해 체크를 실행하지만, 보안 체크를 필요로 하지 않는 장치는 직접 키를 얻을 수 있음).
키 관리의 예
플레이어의 예는 키의 특정 조합을 사용하여 제조자에 의해 초기화된다. 이러한 키들은 미디어 포맷을 제어하는 엔티티에 의해 인가된 키 관리 권한으로부터 얻어진다. 키 관리 권한은 인가된 제조자로부터 요청을 수신하고, 요청을 확인하고, 플레이어 키 세트를 제공하고, 키에 대한 지불(라이센싱 요금에 대응함)을 접수한다. 예로든 플레이어에 대한 키 세트는, 각각이 128비트이고, 상위 레벨 256비트 AES 키(키 관리 권한으로 알려짐), 32비트 그룹 ID(플레이어의 제조자를 식별), 및 32비트 장치 ID(플레이어의 시리얼 번호를 식별)로부터 유도된 128AES키로 구성된다. 그룹 및 장치 식별자는 함께 플레이어를 유일하게 식별하고, 플레이어의 디지털 인증에 제공된다.
전형적인 실시예에서, 키 세트의 128개의 키들(키 ID 값들 0 내지 127)의 각각이 키 ID, 그룹 ID 및/또는 장치 ID로부터 키 선택 블록을 우선 계산함으로써 키 관리 권한부에 의하여 유도된다. 그 다음에, 키 선택 블록은 상위레벨 키를 사용하여 패딩(필요한 경우에) 및 암호화된다. 결과적인 값은 사전에 처리되어(예컨대, 절단되어) 실제 키를 생성한다. 특정 파라미터들로부터 키 선택 블록을 유도하기 위하여 사용되는 방법은 키 ID에 따른다. 이하의 테이블은 키 ID, 그룹 ID 및 장치 ID를 키 선택 블록으로 변환하기 위하여 사용가능한 전형적인 규칙들을 예시한다.
키 ID 키 ID 다음 키 선택 블록의 컨텐츠들
Figure 112010020265987-pct00002
키들을 의사랜덤 장치 부세트들에 할당하는(그들의 그룹 ID들 및 장치 ID들에 따라) 전형적인 기능 키선택기(그룹 ID, 장치 ID, g, d)는 다음과 같다.
Figure 112010020265987-pct00003
Figure 112010020265987-pct00004
Figure 112010020265987-pct00005
는 연결을 나타낸다는 것을 유의하라. "0x"는 다음이 32-비트 16진수 값인 것을 나타낸다. "<<"는 좌측 시프트 연산을 나타낸다. "-"는 감산을 나타낸다. "AND"는 비트 단위 논리 AND를 나타낸다. "XOR"는 비트단위 논리 배타적-OR를 나타낸다.
여러 종류의 키들이 포함된다는 것에 유의하라. 예컨대, 키 0 및 키들 101 내지 127은 장치에 고유하게 할당될 것이다. 대조적으로, 키들 1 내지 31은 동일한 그룹내의 장치들의 다수의 세트들사이에서 공유될 것이다. 키들 32 내지 63은 다중 그룹들사이에서 공유된다. 최종적으로, 세트들 64 내지 99는 장치들의 다양한(본 경우에, 의사랜덤) 부세트들 사이에서 공유된다. 키(100)는 동일한 ID를 가진 여러 그룹들 전반에 걸쳐 장치들에 의하여 공유된다.
장치 키들이 충분히 보호된다는 것이 중요하다. 예컨대, 매체상에 장치의 실제 키들을 배치하면 타이틀의 보안이 타협되는 경우에 플레이어의 키들에 위험성이 있다. 유사하게, 컨텐츠 발행자들에 장치 키들을 제공하면, 컨텐츠 발행자가 절충되어야 하는 상황들에 위험에 키들을 삽입할 수 있다. 이들 리스크들을 조절하기 위하여, 본 발명은 컨텐츠를 준비하여 암호화하는 엔티티들이 신뢰성있을 것을 요구하지 않는다. 예컨대, 키 관리 권한부는 서비스를 제공할 수 있어서 임의의 당사자는 플레이어 키들의 세트 및 하나 이상의 입력 값들을 식별할 수 있다. 이에 응답하여, 권한부는 식별된 키들의 각각의 키를 사용하여 특정 입력(들)을 해독(또는 암호화)하는 결과를 제공할 수 있다. 선택적으로, 컨텐츠 발행자는 선택적으로 평문/암호문 쌍들을 제공할 수 있다. 임의의 한 경우에, 당사자 저작 컨텐츠는 평문/암호문 쌍들을 획득할 수 있으나 키들 그 자체들을 획득할 수 없다. 이들 쌍들은 보안 매체의 제조시에 사용될 수 있다.
전형적인 매체의 제조는 다음과 같은 단계들, (a) 컨텐츠 발행자가 임의의 해지 플레이어에 알려지지 않으나 각각의 유효 플레이어가 세트에서 적어도 하나의 키를 포함하는 플레이어 키들의 세트를 한정하는 단계; (b) 컨텐츠 발행자가 임의의 평문값을 선택하는 단계; (c) 선택된 세트의 키들의 식별과 함께 적정 평문값을 키 관리 권한부에 보안적으로 전송하는 단계; (d) 평문값이 다른 당사자에 의하여 이전에 제출되지 않았다는 것을 키 관리 권한부가 검증하는 단계; (e) 키 관리 권한부 장치들이 요구된 세트에서 각각의 플레이어 키를 유도하고 각각의 키를 사용하여 평문 값을 암호화하는 단계; (f)키 관리 권한부가 컨텐츠 발행자에 결과적인 암호문들을 제공하는 단계; (g) 컨텐츠 발행자가 평문값을 사용하여 컨텐츠의 일부분(또는 일부 코드, 키들 또는 다른 데이터)를 암호화하는 단계, (h) 코드를 실행하는 플레이어가 세트에서 임의의 키(들)을 포함하는지를 식별하고 만일 그렇다면 플레이어에서 키 ID를 결정하고 암호문 리스트에 키 ID에 대응하는 암호문을 배치하며 소스 데이터로서 암호화된 컨텐츠 부분을 가지고, 키 파라미터로서 암호문을 가지며 선택된 ID 값을 가진 TRAP_Aes를 호출함으로써 암호화된 컨텐츠 부분을 해독하도록 구성된 암호문 리스트 및 대응 코드를 가진 암호화된 컨텐츠를 매체상에 저장하는 단계를 포함한다. 그 다음에, 컨텐츠 코드는 코덱에 해독된 결과를 제공하거나 그렇치 않은 경우에 데이터를 적절한 것으로 사용할 수 있다.
대안 실시예들은 다중 레벨들의 해독 연산들을 사용하고, 법정 마킹 및 다른 연산들과 암호화 결과들을 통합하며, 다중 키 권한부들을 사용하며 값들(키들, 평문들, 암호문들 등)을 보호하거나 또는 처리하는 보안 코드 또는 다른 프로세스들을 처리한다.
만일 공개 키 암호법이 사용되면, 키 관리 권한부는 플레이어(또는 발행자)의 플레이어의 공개 키들을 제공할 수 있다(또는 식별 기반 암호문이 키 리스트들을 불필요하게 하도록 사용될 수 있다). 디지털 서명 키들에 대하여, 키 관리 권한부는 컨텐츠 코드에 의하여 사용하기 위한 기준 서명들(예컨대, 메시지/서명 쌍들)을 제공할 수 있다. 공개/시크릿 키들은 (예컨대 키쌍들을 생성하는데 사용된 저장 PRNG에 대한 시드(seed)로서 키선택기와 같은 연산들을 사용하고 키들을 랜덤하게 생성 및 할당함으로써) 장치들의 그룹들사이에서 공유될 수 있다.
물론, 앞의 역할들은 다중 당사자들 사이에서 분할될 수 있다. 예컨대, 키 관리 권한부는 집중화된 폐기 리스트를 관리하여 컨텐츠 발행자가 키들이 유효한지 또는 유효하지 않은지를 결정하는 것을 필요치 않게 한다. 유사하게, 컨텐츠 발행자들은 보안 관련 태스크들을 다른 당사자들(키 관리 권한부 포함)에 아웃소싱할 수 있다.
플레이어 키들을 유도하기 위한 앞의 예시적인 프로세스는 결정론적이다. 다른 실시예들은 랜덤한 키 발생을 수반할 수 있고 다른 기술들을 이용할 수 있다. 키들(예컨대, AES 암호화)를 유도하는데 사용된 연산들은 예시적이며 다른 연산들(예컨대, MAC들, 공개키 연산들, 다른 알고리즘들 등)로 대체될 수 있다.
버저닝
컨텐츠가 디코딩될 때, 전형적으로 (a) 컨텐츠가 플레이어보다 오래되었거나 또는 (b) 플레이어가 컨텐츠보다 오래되었을 것이다. 양 경우에, 플레이어가 모든 필요한 TRAP들( 임의의 필요한 암호화 키를 포함함)을 구현하고 컨텐츠와 연관된 코드에 의하여 강화된 보안 규칙들을 충족하면, 보통 재생이 이루어져야 한다. 물론, 만일 컨텐츠 코드가 취약하게 기록되거나, 만일 플레이어가 결점이 있거나 또는 만일 중대한 보안 문제들이 저작후에 발생되면, 재생은 자동적으로 이루어지지 않는다.
컨텐츠 코드가 적법 플레이어상에서 정확하게 재생하지 못하는 상황들을 조절하기 위하여, 컨텐츠는 디스크-특정 보안 오버-라이드 키에 대한 플레이어들을 검사하고 만일 발견되면 하나 이상의 보안 검사들 또는 보통 수행되는 연산들을 바이패스하는 컨텐츠 코드 부분을 해독하기 위하여 키를 사용한다. 이러한 "바이패스" 논리는 해독 키가 실제로 해제되지 않으면 그것이 사용될 수 없도록 암호화된 형식으로 매체상에 반송될 수 있다. 만일 오버-라이드가 필요하면, 오버-라이드 키는 예컨대 플레이어 비휘발성 메모리(예컨대, 암호화된 형식으로)에 저장될 수 있으며 네트워크상에서 검색될 수 있으며 TRAP을 통해 액세스될 수 있다. 보안에 영향을 미치지 않는 측정들(디스플레이 제한들을 가진 플레이어들용 그래픽 메뉴들을 디스에이블하는 것과 같은)은 사용자 구성할 수 있으며 보안 인증을 필요로하지 않는다.
컨텐츠 코드는 사용자들이 보안 실폐들 또는 위험들이 검출되는 상황들을 조절하도록 구성될 수 있다. 예컨대, 만일 모뎀, 인터넷 접속 또는 다른 데이터 채널이 이용가능하면, 컨텐츠는 업데이트된 보안 코드를 획득하고 및/또는 재생 진행 허가를 획득하기 위하여 인증 서버와 통신할 수 있다. 활성화 값을 제공하는 자동화된 무료전화 서비스에 사용자가 제공할 수 있는 코드가 디스플레이될 수 있다(즉, 오디오로 재생될 수있다)(서비스는 예컨대 음성 인식 시스템들을 사용하거나, DTMF 톤들을 검출하거나 또는 사용자의 스피커들로부터 반송된 전화 수화기로 전송된 사운드들을 검출함으로써 전화를 통해 정보를 수신할 수 있다. 유사하게, 정보는 키보드 입력하는 사용자에게 리턴될 수 있으며 전화 수화기로부터 플레이어상의 마이크로폰으로 전송될 수 있다). 응답들은 컨텐츠 코드에 의하여 검증될 수 있고(디지털 서명, MAC, 부적절한 체크섬 등을 검사함으로써) 및/또는 다음 암호화 처리에서 (예컨대, 키로서) 사용될 수 있다. 챌린지/응답 인증 결과들은 특정 사용자 또는 식별자에게 카피들이 다시 추적되도록 법정 마킹과 함께 사용될 수 있다. 예컨대, 활성화 값이 고유하고 법정 마크들에 포함되면, 컨텐츠 소유자는 주어진 활성화 값을 발생시킨 트랜잭션에 복원된 저작권 침해 카피들을 추적하기 위하여 법정 마크들을 사용할 수 있다. 따라서, 컨텐츠 소유자가 활성화 값을 제공하기전에 사용자에 대한 정보(예컨대, ANI 또는 통화자 ID를 사용하는 통화자 전화번호, 이름, 신용카드 번호 등)을 획득하는데 유리할 수 있다. 활성화값들은 플레이어의 비휘발성 메모리(예컨대 미래용 및 다른 타이틀용)에 저장될 수 있다.
매체 인코딩 & 디코딩
전형적인 실시예에서, 컨텐츠 코드는 매체로부터 데이터를 판독하여 디코딩하는데 필요한 파라미터들을 (TRAP)를 통해 지정할 수 있다. 광학 매체로부터 판독된 섹터의 실제 처리는 다음과 같은 사항들 중 모드 또는 일부를 포함할 수 있다.
Figure 112006001192047-pct00006
섹터 디코딩 파라미터들은 광학 드라이브(또는 섹터 디코딩의 일부 또는 모두를 수행하는 다른 컴포넌트(들)에 제공된다.
Figure 112006001192047-pct00007
드라이브는 요구된 데이터(예컨대, 섹터)에 대응하는 생데이터를 판독한다. 실제 로딩은 섹터 식별자(또는 다른 어드레싱 정보)를 사용하여 데이터를 매체상에 위치시킨후 매체로부터 적정 데이터를 실제로 로딩하는 단계를 포함한다. 드라이브는 로딩된 데이터에 포함된 비암호화된 부분들(예컨대 네비게이션 필드들과 같은)을 제거 또는 처리할 수 있다.
Figure 112010020265987-pct00008
에러 정정이 생 섹터 데이터에 적용된다. 에러 정정 프로세스는 조절가능한 다항식 또는 다른 파라미터(들)을 포함할 수 있다. 컨텐츠 코드는 예컨대 만일 그들의 연산 그 자체를 수행하기를 원하면 에러 정정 및/또는 검출을 디스에이블할 수 있다.
Figure 112010020265987-pct00009
해독 또는 다른 암호화 변환들은 ECC 전에 수행되고 및/또는 ECC 이후에 수행되는 에러 정정과 함께 포함될 수 있다. 비에러 정정 데이터에 대하여 적용된 해독 프로세스들은 전파 에러들을 방지하도록 선택될 수 있다. 예컨대, 스트림 암호(예컨대, 카운터 모드에서 RC4 또는 AES)를 사용하는 해독은 비트 에러들을 정정하기 전에 수행될 수 있다. 암호 해독(또는 다른 처리 단계들)은 드라이브, 컨텐츠 코드, 코덱들, 드라이버들 또는 임의의 다른 컴포넌트에 의하여 적용될 수 있다.
해독 프로세스들은 상대방들이 다른 디코딩 파라미터들을 가지고 생성된 출력들을 계산하기 위하여 기록된 출력들을 사용하는 것을 방지하기 위하여 원-웨이 특성들을 가지도록 선택될 수 있다. 예컨대, 드라이브는 컨텐츠-특정 키를 사용하여 160 비트(또는 다른 크기) 리드-인 값(드라이브에 의하여 리턴되지 않음)의 HMAC-SHA로서 각각의 섹터의 키를 계산할 수 있다. 리드-인 값의 지식없이, 상대방들은 공지된 컨텐츠-특정 키들을 사용하여 생성된 해독된 출력을 다른 컨텐츠 특정 키 값들을 사용하여 생성된 출력으로 변환할 수 없다. 결과적으로, 상대방들은 매체를 복사하는데 필요한 정보가 부족하거나 또는 (예컨대 하드 드라이브 및 악성 장치 드라이버를 사용하여) 매체를 모방하는 정보가 부족하다. 상대방이 특정 키 값들에 대한 디코딩된 섹터 표현들을 저장하는 것이 가능한 반면에, 복사/에뮬레이팅은 컨텐츠 코드가 대응 출력이 알려지지 않은 키를 사용하여 섹터를 요구하지 못할 것이다. 전체 수의 디코딩 키들이 매우 클수 있기 때문에, 156-비트 키에 대하여 예컨대 2^256일 수 있기 때문에, 상대방이 모든 가능한 섹터 디코딩들을 저장하는 것은 불가능하다. 컨텐츠 코드는 요구들 및 요구들의 일부에 대한 가변 결합을 수행할 수 있으며 실제 데이터 로드를 사용하거나 검사할 수 있다.
플레이어들(또는 다른 컴포넌트들)은 섹터 데이터에 대하여 비대칭 암호화 변환들을 수행할 수 있다. 예컨대, 블록 서명들은 상대방이 허가없이 새로운 타이틀들을 마스터하는 것을 방지하기 위하여 사용될 수 있다. 일 실시예에서, 공개 키는 드라이브에 삽입된 2048-비트 RSA 모듈러스로 구성된다(비록 공개 키가 증명서 등으로부터 추출된 매체로부터 획득될 수 있을 지라도). 서명 검증 동작들의 효율성을 증가시키기 위하여, RSA 모듈러스는 2의 제곱에 근접하도록 생성되며, 예컨대 최상위 128비트가 1이도록 생성된다. 매체를 마스트하는 동안, 각각의 블록(예컨대, 섹터)는 매체 ID의 SHA 해시, 블록의 어드레스 및 블록 데이터를 사용하여 스트림 암호를 시딩함으로써 생성된 키스트림과 섹터 데이터를 배타적-OR를 수행함으로써 우선 랜덤화된다. 그 다음에, 블록 데이터는 RSA 시크릿키를 사용하여 천크에 대하여 모듈러 지수화를 수행함으로써 각각 디지털적으로 서명된다. 서명된 천크들은 SHA 해시와 함께 기록된다. 따라서, 블록은 단지 20 바이트들(즉 만일 블록들이 2048-바이트 섹터들인 경우에 1% 이하) 정도 확장된다. 스트림 암호가 효율적으로 랜덤화하면, 확률은 모듈러 확장 입력이 공개 모듈러들보다 큰 것을 (약 2^128)을 무시할 수 있다. 결과적으로, 이러한 경우에 대한 특별한 조절이 필요치 않다. 대응 검증 및 디코딩 프로세스는 데이터 블록(예컨대, 섹터)이 매체로부터 판독되어 디코딩될 때 수행되며, (a) 256-바이트 천크들 및 SHA 해시를 판독하는 단계, (b) 공개 모듈러스 및 공개 지수(예컨대, 3)을 사용하여 각각의 천크에 대하여 모듈러 지수화 동작을 수행하는 단계, (c) 천크들과 배타적-OR되는 키스트림을 계산하기 위하여 획득된 로드된 SHA 해시값을 사용함으로써 랜덤화 프로세스를 반전시키는 단계, (d) 매체 ID, 블록 어드레스 및 블록 데이터를 해싱하고 이 결과를 로드된 해시값과 비교함으로써 디코딩된 데이터의 보전성을 검증하는 단계, 및 (e) 해시들이 매칭되는 경우에 디코딩된 데이터 블록을 리턴하는 단계를 포함한다. 만일 해시들이 매칭되지 않으면, 에러가 리턴된다. 만일 성능에 문제가 있으면, 검증은 확률적으로 수행될 수 있으며(예컨대, 랜덤하게 선택된 섹터들에 대하여) 및/또는 더 많은 기준 데이터를 포함하는 영역들에 대해서만 확률적으로 수행될 수 있다.
판독가능 매체에 기록할때(또는 재생용 마스터를 생성할때), 기록장치는 암호화 원-웨이 함수(예컨대, SHA, HMAC-MD5, AES 등을 사용하여 구성된 원-웨이 함수들)을 사용하여 변환하여 매체상의 특정 위치(이하 참조)에 기록하는 값을 수신할 수 있다. 이러한 방식에서, 상대방들은 그들이 정확한 입력(예컨대, 해시 프리-이미지)를 알지 못하기 때문에 매체를 복사하기 위한 적법한 기록 장비를 사용할 수 없다. 다른 인증값들(예컨대 디지털 서명들)이 저장될 수 있다. 보안값들은 매체의 일부(또는 모두)에 적용가능할 수 있다.
매체 보안값들은 보통 데이터로서 저장될 수 있거나 또는 직접 판독을 방지하고 및/또는 특별하게 인코딩된 "특정" 영역에 저장될 수 있다. 보안 데이터량이 비교적 작을 수 있기 때문에(예컨대 128 비트 이하일 수 있기 때문에), 저밀도 및 저성능을 가진 저장기술들이 사용될 수 있다. 예컨대, 데이터가 광학 매체의 피트 인코딩 또는 트랙 위치들("워블")에 가변적으로 인코딩될 수 있다는 것이 알려져 있다. 데이터는 에러정정, 섹터기간 변동, 네비게이션 가능 필드들 등을 위하여 예약된 리던던트 비트들에 숨겨질 수 있다. 데이터는 다른 물리적 디스크 위치들(예컨대, 보통의 판독가능 영역의 내부 또는 외부, 또는 다른 초점 깊이에)에서 인코딩될 수 있다.
매체상의 데이터는 지시자 비트들, 피트 인코딩 변동들, 또는 임의의 처리 또는 보안 단계들이 데이터와 관련하여 수행되어야하는지를 지시하는 다른 마커들을 포함할 수 있다. 예컨대, 섹터 보안 플래그는 섹터에 포함된 데이터가 공개 키로 변환되어야 하고 및/또는 드라이브가 암호화 인증으로 먼저 수신된경우에 해제되어야 한다는 것을 지시하기 위하여 사용될 수 있다(이러한 인증은 섹터 컨텐츠들의 SHA 해시를 요구하는 단계, 매체가 마스터될 때 키들이 해지되지 않는 수신자를 사용하여 성공적인 챌린지-응답 인증을 수행하는 단계, 데이터의 해제를 허가하는 디지털 서명을 검증하는 단계, 및 섹터를 정확하게 디코딩하는 키를 수신하는 단계를 제한없이 포함할 수 있다). 데이터는 또한 암호화된 형태로 해제될 수 있도록 마크될 수 있다(이는 특히 퍼스널 컴퓨터들, 및 데이터가 비신뢰 버스들 또는 채널들을 통해 이동하는 다른 시스템들에서 중요하다).
비록 앞의 전형적인 실시예가 광학 매체와 관련하여 주로 기술되었을지라도, 자기 매체와 같은 다른 매체 타입들에 유사한 기술들이 적용될 수 있다. 고체상태 매체(예컨대 EEPROM/플래시 메모리들) 및 매체 그 자체가 계산들을 수행할 수 있는 다른 저장 기술들을 사용하여, 매체는 암호화 처리 그 자체를 사용할 수 있고 드라이브, 플레이어 애플리케이션 등(또한 해석자들을 가질 수 있음)과 통신하는 보안 해석자를 내부적으로 포함할 수 있다. 매체는 단지 압축 컨텐츠(예컨대, 고해상도 영화에 대하여 대략 30 기가바이트들)를 실제로 저장하는데 필요한 비휘발성 메모리량만을 포함할 필요성이 있으며 대량의(예컨대, 2^256 바이트들) "가상" 또는 "에뮬레이팅된" 어드레스 범위를 생성하기 위하여 암호문 또는 다른 기술들을 사용할 수 있다. 만일 이것이 수행되면, 전체 어드레스 범위를 저장(또는 판독)하는 것이 실행불가능하기 때문에 완전한 시크릿 카피들을 생성하는 것이 불가능하게 되며 당사자들이 어드레스 범위의 부분들이 실제로 사용될 수 있는 방법을 결정하는 일반적인 방법이 존재하지 않는다. 예컨대, 각각의 재생시에, 컨텐츠 코드가 사용된 다른 영역들을 필요로하지 않을 수 있다. 이러한 일반적인 방법은 주 플레이어 애플리케이션이 프로그램가능하지 않으나 매체(또는 매체 드라이브/인터페이스)가 존재하는 상황들에서 사용될 수 있다.
조건부 액세스 키스트림 포렌식스
유료 텔레비전 수신기들은 보안 실폐들이 스마트 카드를 대체함으로써 어드레싱될 수 있도록 스마트 카드 또는 다른 제거가능 장치에 모든 보안-임계 컴포넌트들을 배치하는 목적으로 보통 설계된다. 전형적으로, 대체가능한 모듈은 셋톱박스에 포함된 범용 해독 회로에 제공된 해독 키들을 유도하기 위하여 사용된다. 종래의 구현시의 주요 결함은 당사자가 인증된 장치로부터의 출력을 기록할 수 있고 비인증 장치에 키들(및 임의의 다른 필요한 데이터)를 재전송할 수 있다는 점이다. 관련 공격은 비디오 그 자체의 기록 및 재전송을 포함한다.
이러한 공격을 추적하는 것을 매우 어렵거나 또는 불가능할 수 있다. 예컨대, 절충된 컴퓨터들은 키들 및 데이터를 인터넷을 통해 비허가 뷰어들에게 익명으로 중계하기 위하여 저작권 침해자들에 의하여 사용될 수 있다. 키들은 어드레스들로부터의 위조품을 UDP 패킷들로 전송할 수 있어서 추적하기가 매우 어렵다. 비록 시스템 오퍼레이터가 저작권 침해자 서비스를 등록함으로써 비허가 데이터에 대한 액세스를 수신할 수 있을지라도, 공격의 소스를 추적하기 위한 방법이 존재하지 않는다. 다른 상황들에서, 데이터를 추적하는 것은 실제적일 수 있으나 소스는 사법이 유효하지 않는 사법권에 위치될 수 있다.
현재의 시스템들을 사용하면, 비디오를 해독하기 위하여 사용된 해독 키들(및 해독된 비디오 그 자체)의 시퀀스는 각각의 가입자에 대하여 동일하다. 이들 키들은 장치 특정 키들을 사용하여 암호화되어(예컨대, 조건부 액세스 스마트로부터 비디오 디코더 칩으로) 전송될 수 있으나, 실제 비디오 해독 키들은 아직 전역적이다. 결과로서, 하나의 셋톱박스(이들의 설계가 완전하게 표준화되기 때문에 반드시 어렵지 않은)을 역으로 사용하거나 또는 절충하고 적법하게 가입된 당사자는 비디오 해독 키들의 시퀀스를 결정하여 재전송할 수 있다. 이러한 공격은 보안 모듈 그 자체를 절충할 것을 요구하지 않으며 보안 모듈 고체가 유효 대응책이 되는 것을 방지한다.
이러한 공격들을 조절하기 위하여, 시스템 오퍼레이터는 재전송된 키들 및 다른 데이터를 추출하기 위하여 당사자에 의하여 사용되는 특정 계정(및 보안 모듈)을 식별할 필요가 있다. 일단 이러한 계정이 식별되면, 시스템 오퍼레이터는 계정(예컨대 당사자의 보안 모듈에 의하여 이용될 수 있는 형태로 액세스하는데 필요한 키들의 전송을 중지하고, 당사자의 보안 모듈 등을 일시적으로 또는 영구적으로 디스에이블하는 암호화된 메시지를 무선을 통해 전송함으로써) 종료할 수 있으며, 임의의 관련 계정들(예컨대, 동일한 전화라인에 접속된 장치들로부터의 계정들, 동일한 과금 어드레스를 공유하는 계정들, 거의 물리적 위치들을 가진 계정들, 동일한 신용카드 또는 다른 지불 명령 등을 위하여 지불되는 계정들)을 종료할 수 있다.
이러한 식별을 달성하기 위하여, 시스템의 오퍼레이터는 각각의 보안 모듈에 의하여 출력되는 해독 파라미터들에 사법정보를 포함한다.
일 실시예에서, 조건부 액세스 모듈은 비디오 디코딩전에 셋톱 박스에 의하여 해독된 평문에 공급될 바이트 대체물들과 함께 종래의 해독 키들을 출력한다. 비디오 시퀀스를 생성할때, 시스템 오퍼레이터는 바이트 대체가 허용가능한 변형들(다형체)을 생성하는 비디오 스트림에서 다수의 위치들을 식별한다. 더욱이, 비디오 스트림내의 일부 바이트들은 바이트 대체들이 유효(또는 즐겁게 볼 수 있는) 비디오 스트림을 형성하도록 변조된다. 적법하게 가입된 조건부 액세스 카드들은 볼 수 있는 스트림을 재생성하기 위하여 강제 바이트 대체들의 충분한 세트를 포함하는 바이트 대체들의 고유 결합을 출력하도록 구성된다. 각각의 모듈은 대체들의 고유 결합들을 출력할 수 있으며, 이에 따라 단일 장치에 재전송된 출력들을 다시 매칭시키는 것이 가능하다. 대안 실시예들은 반드시 바이트 대체를 사용할 필요가 없으며 변환들 중 임의의 방식은 가산들, 배타적-OR, 블록 이동, 삭제, 삽입, 비트 반전 및 다수의 복합 연산들(번역기 또는 마이크로프로세서에 의하여 실행되어야 하는 실제 코드를 디코딩 장치에 지정하는 것을 포함)을 포함하는 조건부 액세스 모듈에 의하여 지정될 수 있다.
앞서 기술된 방법은 셋톱 박스의 지원을 필요로하며, 이에 따라 많은 레거시 시스템들과 함께 사용될 수 없다. 레거시 환경들을 위하여, 컨텐츠 제공업자가 두개의 다른 키잉 상태들의 각각에서 해석될 때 유효한 스트림을 어셈블리하는 다른 실시예가 요구될 수 있다.
컨텐츠 제공업자는 두개의 다른 키들(또는 키잉 상태들)의 각각으로 해독될 때 허용가능하게 디코딩하는 비디오 스트림 부분을 어셈블리한다. 기존의 위성 또는 케이블 텔레비전 시스템들은 다른 키를 사용하여 비디오의 부분들(예컨대 10초 세그먼트들)을 각각 암호화한다. 본 발명에서, 하나 이상의 키를 사용하여 디코딩될 수 있는 하나 이상의 세그먼트들이 생성될 것이다.
일 실시예에서, 비디오 압축 프로세스는 압축된 비디오 데이터의 초기 블록에서 허용가능한 다수의 수정들을 식별하도록 수정된다. 다음으로, 블록은 제 1키를 사용하여 암호화되며, 이에 따라 제 1키를 사용하여 해독하는 셋톱 박스들에 전송하기에 적합한 암호문이 생성된다. 다음으로, 블록은 제 2키를 사용하여 해독된다. 만일 결과적인 평문이 제 2 키를 사용하여 장치들의 허용가능한 출력을 디코딩하면, 블록은 절약되고 프로세스는 각각의 다음 데이터 블록과 함께 반복된다. 만일 제 2키를 사용하여 키잉된 장치의 허용가능한 스트림을 형성하기 위하여 평문을 보정할 수 없다는 것을 제 2 키를 사용한 해독이 지시하면, 지시 블록에 대한 새로운 값이 시도된다. 충분한 시도로 인하여, 시스템 오퍼레이터는 두개의(또는 가능하면 이 이상) 키들의 각각으로 해독될 수 있는 비디오 스트림을 점진적으로 어셈블리할 수 있을 것이다. 각각의 키를 사용한 결과적인 비디오의 품질은 소비된 계산 노력, 후보 블록들을 선택하기 위하여 사용된 기술들, 사용된 비디오 압축 기술, 기준 비디오 및 다른 인자들에 의존할 것이다.
계산적으로 매우 효율적인 인코딩 방법들이 또한 가능하다. 예컨대, 대부분의 비디오 압축 방식들(MPEG-2를 포함)내에서는 각각의 키를 사용하여 암호화된 데이터 영역들을 인터리빙하기 위하여 필드들(명령 필드들과 같은)을 사용하는 것이 가능하다. 이러한 기술은 비디오 데이터의 크기를 증가시키나 계산적으로 효율적이고 출력 품질이 개선된다.
전형적인 비디오 스트림은 키 변화가 예상되는 위치를 통해 종래의 인코딩된 데이터(예컨대, 단일 키로 암호화되거나 또는 해독된 디지털 비디오 및/또는 오디오)와 함께 시작한다. 그 다음에, 키 변화 신호가 인코딩된다. 키 변화가 선택된후 제 1 암호문 블록은 (a) 제 1해독 키를 사용하여 압축된 비디오 스트림의 다음 8바이트들에 적절한 값으로 해독하고 (b) 제 2 해독 키를 사용하여 압축해제 장치가 다음 바이트들(예컨대 MPEG 코멘트들을 시작함으로써)을 무시하도록 하는 비트 시퀀스로 해독하거나 또는 압축해제된 출력에 대하여 다음 바이트들이 비교적 적게 영향을 미치도록 선택된다. 이러한 특성들을 가진 블록을 검색하기 위하여, 압축 장치 또는 프로세스는 제 2키를 사용하여 적절한 결과를 제공하는 키들의 쌍이 발견될 때까지 제 1 및/또는 제 2키들에 대한 랜덤 값들을 시도전에 제 1 키를 사용하여 암호화할 때 적절한 평문과 함께 시작한다.
스트림의 다음 부분들은 암호문이 (a) 제 1키를 사용하여 해독된 압축된 비디어를 산출하고 (b) 제 2 키를 사용하여 해독될 때 무시되도록(또는 비교적 작은 영향으로 진행하도록) 생성된다. 이러한 스트림은 제 1키를 사용하여 비디오 데이터를 암호화하고 (필요한 경우에) 결과가 적절한지를(예컨대, MPEG 코멘트를 너무 빨리 종료하지 않는지를) 검증하기 위하여 제 2 키를 사용하여 결과적인 데이터를 해독함으로써 준비될 수 있다. 평문을 미세하게 조절하고 부적절한 평문이 나타나는 임의의 상황들(예컨대 데이트의 무시를 너무 빨리 종료하거나 또는 부적절한 길이를 전송하거나 또는 그렇치 않으면 불법 스트림을 생성하거나 또는 스트림의 불량한 간섭을 야기하는 상황들)을 보정하는 것을 반복하는 것이 필요하다. 결국(MPEG 코멘트의 종단에 액세스할때, 제 1키로 인코딩된 비디오 블록이 거의 완료될 때와 같이), 암호문 스트림은 제 1키로 해독될 때 압축해제 프로세스가 데이터를 무시하기 시작하는 데이터를 포함할 수 있다. 이러한 시점에 또는 이 이후 즉시, 제 2키를 사용하는 "무시 데이터" 상태는 종료되며, 스트림은 제 2키로 해독될 때 유효 압축된 비디오를 산출하나 제 1키로 해독될 때 무시되는 암호문들로 계속된다. 스트림은 키들 중 하나로 해독할 때 압축된 비디오를 산출하고 다른 키로 해독할때 코멘트 데이터를 산출하는 데이터의 세그먼트들을 교번하여 계속된다. 결국, 키 변화는 트리거링되어(예컨대, 스트림에 존재하는 키 변화 통지로 인하여) 정상 비디오를 반전시키거나 또는 새로운 키들의 쌍으로 해독될 수 있는 비디오의 새로운 세그먼트를 시작한다.
만일 상대방이 키 시퀀스들을 재전송하면, 상대방은 두개의 해독 결과들이 압축해제될 때 동일한 비디오를 산출하는 경우에 허용가능하다. 그러나, 만일 상대방들이 압축해제된 비디오를 재전송하면, 각각의 키 값으로 해독됨으로서 생성된 비디오 시퀀스들은 서로 다르다.
대안 실시예들이 두개 이상의 키들로 정확하게 해독될 수 있는 데이터를 포함하거나 또는 하나 이상의 암호화 알고리즘을 사용하여(동일한 또는 다른 키 값들을 사용하여) 디코딩될 수 있다는 것에 유의해야 한다. 지원된 해독 알고리즘들의 예들은 DES, AES, 삼중 DES, DVB 블록 암호, IDEA, 임의의 모드의 임의의 다른 블록 암호(CBS, ECB 등), RC4, SEAL, 임의의 다른 스트림 암호 등을 포함할 수 있다(그러나, 이에 제한되지 않음). 암호화가 셋톱 박스상에서 디스에이블될 수 있는 실시예들에 대하여, 암호화 디스에이블 상태는 키잉 상태(예컨대, 전송된 데이터가 전송된 형태로 유효 비디오로서 성공적으로 해석될 때 그리고 적정 키로 해독될 때)로서 사용될 수 있다. 시스템 오퍼레이터는 시퀀스들로서 사용가능한 부분들(예컨대 유용한 암호문 블록들 및 대응 키들) 또는 압축된 비디오 시퀀스들을 미리 계산할 수 있다. 시스템들은 실시간 또는 미리 어셈블리될 수 있다. 예컨대, 공통 시퀀스에 대한 비디오(예컨대, 모든 블랙 디스플레이)는 미리 계산된후 삽입될 수 있다. 만일 키 검사가 디코딩 장치들에 의하여 수행되면, 시스템 오퍼레이터는 동일한 키 검사를 동시에 통과시키는 다중 키들을 위치시키기 위한 검색을 수행할 필요가 있을 수 있다. 이러한 검색들은 생일 파라독스의 장점을 취한 충돌 검색 기술들을 사용하여 단순화될 수 있다.
비디오 스트림을 위하여 요구된 대역폭이 앞서 기술된 바와 같이 인코딩된 비디오 세그먼트들에 대하여 증가하는 반면에, 전체 대역폭 효과는 추적될 필요가 있는 저작권 침해자의 공격이 진행중인 것으로 믿어지는 상황들에 대한 용도들을 제한함으로써 최소화될 수 있다. 만일 본 발명이 활성화되는(예컨대 스트림에서 무시된 데이터량을 분석함으로써) 비디오 세그먼트들을 식별 및 삭제하기 시작하면, 유사한 특징들이 공격자들을 혼란시키기 위하여 "레드 헤링스(red herrings)"를 생성하기 위하여 보통(비-마크된) 영역들에 배치될 수 있다.
미사용 비트들(단일 DES 또는 삼중 DES 키들에 공통으로 포함된 패리티 비트들과 같은)을 가진 암호들을 사용하는 시스템들에 대하여, 법정 정보는 이러한 방법의 유효성이 키들을 재전송하기 전에 이들 비트들의 값들을 덮어쓸 수 있을지라도 이들 비트들에 포함될 수 있다.
장치(들)에 대한 적절한 키 값들을 유도하기 위하여 사용되는 논리는 보안 장치에서 내부적으로 구현되어야 한다. 키 도출은 무선으로 수신되는 (예컨대, 암호화된 형태 및 비디오 또는 다른 컨텐츠과 혼합되어) 소프트웨어 및/또는 규칙들을 사용하여 수행될 수 있다. 예컨대, 다중 방식들로 해독될 수 있는 블록을 전송하기전에, 시스템 오퍼레이터는 뷰잉 베이스의 미리 결정된 부세트들이 각각의 키를 가지도록 (개별적으로 및/또는 그룹들로) 키들(또는 키-암호화-키들)을 전송할 수 있다. 이들 키들은 각각의 장치에 대한 적절한 비디오 키들을 해독하거나 또는 유도하도록 하기 위하여 사용될 수 있다. 부세트들은 지리적 위치에 기초하여(예컨대, 로컬 텔레비전 채널들을 전송하기 위하여 사용되는 스폿 빔 위성 신호들을 수신하는 능력, 케이블 네트워크의 위치 등에 기초하여), 가입자 ID, 전화 번호, 하나 이상의 키들의 지식, 장치 타입들, 또는 임의의 다른 특징(또는 특징들의 결합)에 기초하여 및/또는 랜덤하게 선택될 수 있다. 실행가능 코드는 키 도출/선택을 지원(또는 수행)하기 위하여 (실시간에 선택적으로) 전달될 수 있다.
악성으로 재분배된 키들 및/또는 비디오의 소스(들)를 추적하는 전형적인 실시예에 포함된 특정 단계들 및 컴포넌트들은 다음과 같은 단계들의 일부 단계 또는 모든 단계, 즉 (a) 두개의 다른 키잉 상태들의 각각으로 해독될 때 적어도 두개의 다른 평문들을 산출하는 압축 및 암호화된 비디오의 일부 및 평문들의 각각이 유효 압축된 컨텐츠 스트림의 일부로서 정확하게 디코딩될 수 있는 위치를 생성하는 단계, (b) 상기 조건부 액세스 장치들이 상기 적어도 두개의 키들 중 하나를 출력하도록 제어 데이터가 구성될 때 다수의 조건부 액세스 장치들에 제어 데이터를 전송하는 단계, (c) 상기 키들의 하나(또는 그 이상)를 포함하거나 또는 이에 대응하는 악성 소스(들)에 의하여 재전송된 키 및/또는 비디오(및/또는 다른 데이터)를 수신하는 단계, (d) 예컨대 수신된 키(또는 비디오)를 유도할 수 있는 장치를 악성 소스가 가진다는 것을 추론함으로써 악성 소스의 보안 모듈(들)에 대한 정보를 획득하기 위하여 악성으로 전송된 데이터에 어느 키들이 포함되는지(또는 어느 키들이 악성으로 전송된 데이터를 생성하기 위하여 사용되는지)에 대한 지식을 사용하는 단계, (e) 적어도 하나의 악성 장치가 식별될 때까지 앞의 단계들 일부 또는 모두를 반복하기 위하여 시크릿 그룹의 개선된 지식을 사용하는 단계, 및 (f) 예컨대 "킬(kill)" 메시지를 전송하거나 또는 미래의 키들을 억제함으로써 악성 장치를 디스에이블하는 단계중 일부 또는 모두를 포함한다.
비록 앞의 예들이 시청각 컨텐츠의 비디오 부분과 관련하여 주로 기술되었을 지라도, 동일한 기술들이 오디오 및 다른 종류의 컨텐츠에 동일하게 적용가능하다.
공격 & 대응책의 예들
본 섹션은 전형적인 일부 공격들 및 대응책들을 기술한다.
상대방들은 법정 마크들이 출력에 삽입되는 것을 방지하기 위한 플레이어의 능력의 디스에이블을 시도할 수 있다. 이러한 공격에 대한 한 대응책은 컨텐츠 소유자들로 하여금 압축된 시청각 스트림에 마크들을 직접 삽입하도록 하는 것이다.
상대방들은 법정 마크들을 제거하기 위하여 다중 장치들로부터의 출력들을 비교하여 결합하는 것을 시도할 수 있다. 예컨대, 장치의 출력들이 다른 위치들에서, 상대방은 비디오를 결합하거나, 비디오를 삭제/저하시키거나, 변형을 확률적으로 선택하거나, 가장 공통적인 변형을 선택하거나 또는 다른 기술들을 사용하여 추적하기가 곤란한 카피들을 생성하는 것을 시도할 수 있다. 만일 공모자의 수가 매우 작은 것으로 알려지면, 마크 복원 프로세스는 그룹의 멤버가 복원된 마크를 출력할 수 없는 공모자들의 임의의 그룹을 배제시키기 위하여 각각의 마크를 사용함으로써 공모자들을 식별할 수 있다. 컨텐츠 제공업자는 많은 다른 변형들(평균화 및 선택을 곤란하게 함)을 가진 법정 마크들을 포함할 수 있다. 높은 가시 법정 마크들은 악성 공격들에 의하여 유발된 성능저하를 방지하기 위하여 사용될 수 있다. 필요한 경우에, 다음 컨텐츠는 개선 법정 마킹 기술들을 사용하여 저작될 필요가 있을 수 있다. 컨텐츠 소유자들은 다수의 마크들을 삽입할 수 있으며 개별 장치들에 의하여 삽입된 시퀀스들 및 복원된 카피들간의 상관관계를 검사할 수 있다.
상대방들은 적법한 플레이어의 에뮬레이팅을 시도할 수 있다. 관련 공격은 부정확한(추측상 악성) 방식으로 동작하도록 적법한 플레이어의 번역기를 수정할 수 있다. 이러한 경우에, 적법한 플레이어 및 에뮬레이션(비공인 동작들, 원시 코드 지원, 타이밍/성능, 암호화 키들 등)간의 차이점들은 적법 및 악성 환경들사이에서 구별되도록 사용될 수 있다. 예컨대, 원시 코드 플레이어 업데이트는 취약성을 보정하도록 개발될 수 있다.
상대방들은 코덱들, 장치 드라이버들, 디스플레이/스피커 장치들 또는 압축해제전 또는 압축해제후 즉시 컨텐츠를 수신하는 다른 컴포넌트들을 절충시킴으로서 디지털 컨텐츠를 추출하는 것을 시도할 수 있다. 유사하게, 이들 또는 다른 컴포넌트들의 악성 버전들이 삽입될 수 있다. 이러한 공격들에 응답하여, 미래의 컨텐츠는 출력 장치들을 인증하고 절충된 장치들에 컨텐츠의 제공을 거절함으로써 응답할 수 있다. 컨텐츠는 공격받기 쉬운 또는 미지의 장치들에 보안 업그레이드들(원시 코드 패치들과 같은)을 전송할 수 있다. 법정 마킹은 이러한 방식으로 절충된 카피들을 추적하기 위하여 사용될 수 있으며 이에 따라 폐지를 위한 저작권 침해 장치들을 식별하는 방식뿐만 아니라 심리학적 및 법적 방해를 제공한다.
상대방들은 모든 TRAP 동작들에 대한 입력들 및 출력들을 사전에 기록하고 악성 번역기에 이들 데이터를 사용하는 것을 시도할 수 있다. 이러한 공격은 필요한 전체 저장량이 초과되도록 하거나, 원시 코드를 사용하거나, 법정 마킹을 사용하여 절충을 추적하거나 또는 원래의 장치의 보안을 업그레이드하는 등의 여러 방식들로 방해될 수 있다. 만일 소스 장치가 자동적으로 절충되지 않으면(예컨대 악성 컨텐츠 코드를 실행하면), 플레이어 암호화 연산들은 플레이어가 서명되고 해독된 컨텐츠 코드를 실제로 구동하도록 사용될 수 있다.
악의 상대방은 보안 검사들을 통과시키는 방식들로 부정확하게 동작하는 적대 번역기를 생성하는 것을 시도할 수 있다. 특정 예는 예컨대 예상된 중간 계산을 검색 및 대체함으로써 무효 RSA 서명들을 컨텐츠 코드가 승인하도록 하는 것을 악성 번역기가 시도하는 경우이다. 이러한 공격들을 방해하기 위하여, 플레이어는 서명(mod n)을 단순하게 큐빙하는 것과 다른 계산을 사용하고 예상된 값들과 비교하여 서명을 검증할 수 있다. 예컨대, 컨텐츠 코드는 초기값과 곱해질 수 있으며, 이후에 예상값과 초기값의 큐브를 곱한 값과 동일한지를 검증한다. 서명을 검증하기 위한 다른 방식은 서명에 상수를 추가한후 결과가 정확한지를 검증하는 단계를 포함한다. 서명 검증 코드는 서명이 유효한 경우에 결과적인 암호값이 단지 정확하도록 다른 연산들(예컨대 대칭 암호 키에 대한 수정들)과 서로 얽히게 될 수 있다. 자체 수정 코드, 코드 방해 기술들, 원시 코드, 및 임의의 다른 대응책들이 또한 적절하게 사용될 수 있다.
당사자들은 악성 펌웨어를 매체 인터페이스(예컨대, 광학 디스크 드라이브들)에 삽입하는 것을 시도할 수 있다. 이러한 공격은 컨텐츠 코드가 그 자체의 검사들을 수행하여 그 자체를 인증하고 데이터가 매체로부터 정확하게 로드되었는지를 검증하기 위하여 검출될 수 있다. 원시 및/또는 해석된 코드는 공격을 검출하기 위하여 드라이브에 의하여 실행될 수 있다. 컨텐츠는 공격에 의하여 수정되는 데이터를 포함하고 데이터가 변화되는 경우를 검출함으로써 공격을 검출할 수 있다.
상대방들은 직접 매체 대신에 하드 드라이브상의 파일로부터 데이터를 로드하는 악성 장치 드라이버를 사용함으로써 보안 특징들을 포함하는 매체를 에뮬레이팅하는 것을 시도할 수 있다. 이러한 공격은 드라이브가 유효 암호화 키들을 가지는지를 검사함으로써 검출 및 방해될 수 있다. 만일 상대방들이 적법 드라이브들로부터 키들을 추출하기 위한 방법을 발견하면(이에 따라 악성 에뮬레이터가 적법 드라이브의 암호화 연산들을 에뮬레이팅할 수 있다), 추가 드라이브 인증단계들(예컨대 드라이브에 대한 원시 코드, 타이밍 검사, 비표준 기능의 테스트 제공)이 수행될 수 있다. 더욱이, 악성 장치 드라이버가 검출될 수 있다(예컨대 TRAP_DeviceDiscovery, 원시 코드 등을 사용하여).
상대방들은 특정 타이틀의 보안 코드의 취약성들을 개발하는 것을 시도할 수 있다. 일부 대응책들이 가능할지라도(예컨대, 업데이트된 보안 논리를 전달함으로써), 주요 해결방법은 컨텐츠 저자로 하여금 미래의 컨텐츠가 더 주의깊게 저작되고 동일한 취약성들을 가지지 않도록 하는 것이다.
추가 고려사항 및 변형
매체는 제한된 사용 횟수(예컨대, 임의의 3가지 음악 비디오가 지켜볼 수 있다) 또는 액세스 기간(예컨대 액세스는 제 1 뷰잉 후 3일에 만료된다)을 허용하도록 구성될 수 있다. 그 다음에, 사용자는 추가(또는 비제한) 재생동안 인증을 획득하는데 필요한 요금을 지불하도록 요구될 수 있다. 뷰잉 카운터(및/또는 다른 보안 및 상태 정보)가 매체 그 자체 및/또는 플레이어 및/또는 원격 서버들에 저장될 수 있다. 예컨대, 데이터 인증 비제한 재생은 매체의 기록가능 부분상에서 수행될 수 있어서 임의의 플레이어에서 재생된다. 선택적으로, 인증은 플레이어의 비휘발성 메모리에 저장될 수 있으며 및/또는 컨텐츠 코드는 인증을 획득하기 위하여 네트워크를 통해 서버에 접촉하도록 구성될 수 있다.
매체상의 컨텐츠의 부분들(또는 모두)은 임의의 조건들이 충족될 때까지(예컨대, 과금, 다른 타이틀들의 임의의 결합의 재생 및 퍼즐이 해결되고 임의의 기간이 경과될 때까지) 액세스가능하지 않을 수 있다. 일례에서, 컨텐츠 코드는 구매 또는 활성화될 때까지 동작하지 않을 수 있다. 활성화 프로세스는 국부적으로 수행될 수 있거나 또는 원격 서버(들)와 상호작용할 수 있다. 예컨대, 컨텐츠 코드는 원격 서버와 접촉하고, 서버에 대한 로컬 재생 장치를 식별하며, 지불을 위하여 사용자 및 서버와 상호작용하며 임의의 키들, 해석가능한 보안 코드 또는 컨텐츠를 디코딩하는 다른 데이터를 수신할 수 있다. 구매가 완료된후에, 수신된 데이터는 컨텐츠의 디코딩을 달성하기 위하여 사용된다.
사용자가 새로운 플레이어를 구매할때, 기존 플레이어로부터 새로운 플레이어로 플레이어 비휘발성 메모리를 이동시키기 위한 프로비젼이 포함될 수 있다. 일 실시예에서, 이러한 프로세스는 스마트 카드 또는 기록가능 매체와 같은 물리적 캐리어를 통해 장치들간에 데이터를 전송시킴으로서 수행된다. 선택적으로, 전송은 유선 또는 무선 네트워크 또는 적외선 포트와 같은 디지털 접속을 통해 수행될 수 있다. 보다 강력한 보안을 위하여, 전송은 데이터가 정확하게 전송되고 수신 장치에서 사용가능하기 전에 도너 장치상에 제거(또는 비활성화)되도록 도너 및 수신 장치들과 통신하는 신뢰성있는 서버 장치를 통해 이루어지거나 또는 상기 서버 장치에 의하여 중개될 수 있다. 넓은 다른 컨텐츠 타이틀의 범위에 의하여 기록된 데이터를 수용하기 위하여, 단일 서버는 얼마나 많은 타이틀들이 비휘발성 메모리를 사용하는지에 관한 정보를 가질 수 있거나 또는 플레이어는 다중 서버(예컨대 비휘발성 메모리 슬롯들 그 자체에서 식별된)와 상호작용할 수 있다. 도너 및 수신자상의 암호 키들은 전송시 보안을 제공하기 위하여 사용될 수 있다.
매체는 다중 데이터 인코딩 방법들을 포함할 수 있다. 예컨대, 단일 광학 디스크는 고밀도 스탬프 부분, 기록-일회 부분, 및 기록가능 부분을 포함할 수 있다.
위치측정 및 거리 측정 기술들은 수신 장치들이 허용가능하지 않은 물리적 위치들(비허가 국가에서 가정용 컨텐츠를 사용하는 홈 네트워크 서버로부터 너무 멀리 있는 위치들)에 있지 않도록 사용될 수 있다. 라운드 통신들의 라운드 트립 시간은 장치까지의 거리에 대한 상부 제한치를 결정하기 위하여 광속이 곱해질 수 있다. 위성위치측정시스템 및 무선신호의 감쇠(예컨대 장치가 8.2.11b, 블루투스 등상의 범위내에 있거나 또는 장치들이 공통 무선/위성 신호 등을 액세스 할 수 있는 경우에)는 위치 및/또는 근접성을 측정하기 위하여 사용될 수 있다. 공통 와이어(전화 접속, 홈 전력 회로 등)를 공유하는 장치들의 능력이 사용될 수 있다. 인터넷 IP 어드레스들 및 전화 번호들은 위치정보(예컨대, 영역 코딩 애플리케이션들, 영역 스포츠 블랙아웃들, 디폴트 언어/현재 옵션의 선택 등에 대한)를 획득하기 위하여 사용될 수 있다. 위치정보는 법정 마크들에서 포함될 수 있다.
플레이어는 컨텐츠가 삽입된 다음 디스크에 데이터를 전송하도록 하나 컨텐츠가 이후에 즉시 삭제되는 메모리 슬롯들과 같은 휘발성 또는 "연성 비휘발성" 메모리 저장영역들을 제공할 수 있다. 휘발성 메모리는 전력이 손실될 때 컨텐츠들이 소거되는 경우에 문제가 없는 상황들에서 임시 저장을 위하여 사용될 수 있다.
신경망들은 법정 마크 검출/분석시에 사용될 수 있으며 이에 따라 최적 보안 정책들이 한정된다.
컨텐츠 코드는 적절한 인증이 존재하는 경우에 기록가능 매체로부터 재생되도록 구성될 수 있다. 예컨대, 이러한 능력은 소비자들에 대한 매체를 기록할 수 있는 광학 디스크 버닝 키오스크(또는 다른 시스템)을 생성하기 위하여, 예컨대 대규모 재고없이 소매점이 예측불가능한 소비자 요구를 만족시키도록 하기 위하여 사용될 수 있다. 키오스크는 내부 저장장치(하드 디스크 등) 및 데이터 네트워크들을 포함하는 일부 소스 또는 소스들의 결합으로부터의 (생) 컨텐츠를 검색할 수 있다. 기록된 데이터는 예컨대 식별 법정 마크들을 도입하고, 데이터의 부분들을 재암호화하며, 최근 보안 논리를 컨텐츠와 연관시키고, 소비자에 의하여 선택된 다중 컨텐츠 부분들을 결합하며, 사용자 요구/우선순위를 수용하며, 컨텐츠를 재압축하거나 또는 포맷들을 변화시켜 용량 또는 매체 또는 플레이어 장치 등의 용량 또는 코덱 요건들을 충족시키도록 키오스크(키오스크내에 포함된 번역기에서 실행되는 해석된 코드를 선택적으로 사용하여) 수정될 수 있다.
기록 및 인증 재생을 암호화하여 인증하는 값이 포함될 수 있다. 예컨대, 이는 신뢰성있는 당사자에 의하여 송출되고, 네트워크를 통해 키오스크에 전송되며, 매체상에서 저장되며 재생동안 컨텐츠 코드에 의하여 검증되는 디지털 서명일 수 있다. 이러한 디지털 서명은 예컨대 매체 식별자, SHA-1를 사용하여 계산된 컨텐츠의 해시 트리에 대한 루트(root), 키오스크의 기록 장치의 식별자, 및 목적지 매체의 일련번호를 포함할 수 있다.
키오스크는 계산서, 신용카드 또는 다른 지불수단을 수신하는 인터페이스; 터치 스크린 또는 사용자 선택을 수신하는 다른 입력 장치들; 주문 박스 삽입들, 매체 표면, 수신자 등을 프린트하는 능력들; 새로운 컨텐츠 데이터를 검색하고, 새로운 사용자 인터페이스 컴포넌트들 및 광고들/주문들을 수신하며, 계산서들을 검증 및 처리하며, 에러 상태들을 보고하는 네트워크 능력들; 데이터를 저겅 출력 포맷들로 변환하여 주문 메뉴들을 생성하는 오디오/비디오 조작 능력들을 포함한다.
물리 매체(예컨대, 광 디스크들)에 기록할때 고성능을 달성하기 위하여, 매체 기록 장치들은 다중 기록 레이저들을 동시에 사용할 수 있다. 물리 지원 베어러는 원심력으로 인하여 손상되는 것을 방지하기 위하여 매체 주변에 배치될 수 있다. 미러들 또는 다른 광학 엘리먼트들은 광학 매체를 물리적으로 회전시킬 필요성을 감소 또는 제거하기 위하여 매체 주변에 레이저 빔들을 이동시키기 위하여 사용될 수 있다. 비-레이저 기반 기록 기술들이 사용될 수 있다(예컨대, 원형 기판상에 에칭재료의 매우 작은 물방울을 배치하고 예컨대 잉크젯 프린터들에서 사용되는 것과 유사한 고해상도 기술들을 사용하고 그 다음에 기판에 보호층을 코팅함으로써 기록됨).
매체는 재생 장치에서 물리적으로 존재할 필요가 없다. 예컨대, 매체는 무선 또는 다른 네트워크들을 통해 플레이어 장치와 통신할 수 있다. 일 실시예에서, 매체는 (a) 유도 코일로부터 전력을 수신하고, (b) 유도 코일을 사용하여 데이터를 플레이어(또는 다른 장치)에 전송 및 수신하고, (c) 재기록가능 부분들을 포함하거나 또는 포함하지 않을 수 있는 컨텐츠(지원되는 경우에 컨텐츠 코드 포함)를 검색하며, (d) 매체의 유효성을 인증하기 위하여 컨텐츠 코드 또는 다른 장치들에 의하여 사용하는 암호화 핸드셰이크들을 수행하도록 구성된 적어도 하나의 반도체 칩 및 코일을 포함한다. 만일 이러한 다중 매체가 존재할 수 있으면(예컨대, 다중 매체를 포함할 수 있는 플레이어 장치내의 광-제거가능 트레이에 포함됨), 어드레싱 방법은 주어진 시간에 어느 매체가 통신해야 하는지를 선택하기 위하여 사용될 수 있다.
컨텐츠 코드는 플레이어 장치내에 포함될 수 있는 컴포넌트들(소프트웨어 프로그램들) 뿐만아니라 외부 장치들과 임의의 방식으로 상호작용할 수 있다. 예컨대, 스마트 토이(또른 다른 장치)는 장치(또는 일반적인 클래스의 장치들)를 지원하는 컨텐츠 코드와 상호작용하나. 이러한 대화들은 명령들(예컨대, 장난감 차가 이동하는 방향), 오디오 데이터(예컨대, 장치가 방사하는 사운드, 장치에 의하여 기록되는 사운드들 등), 이미지/비디오 데이터(예컨대, 장치가 디지털 카메라로부터 장치에 디스플레이하는), 논리(예컨대 장치에 의하여 실행되는), 이벤트 통지들 등을 포함하는 데이터 교환 방식을 포함할 수 있다. 일 실시예에서, 컨텐츠 코드는 외부 기구들 및 장치들(광, 가열, 공기 조건설정, 홈 보안 시스템, 가정용품, 페트 캐어/급전장치, 비디오 레코더 등)를 제어하기 위하여 상호작용한다. 플레이어 장치 및 외부 장치들간의 통신 방법은 플레이어 장치로부터 종래의 시청각 출력들을 통해 (예컨대, 마이크로폰들, CCD들 또는 원격장치상의 다른 센서들에) 데이터를 출력하는 단계, 그리고 원격제어(예컨대, 적외선) 인터페이스를 통해 데이터를 수신하는 단계를 포함할 수 있다. 다른 지원된 통신 방법들은 무선 및 유선 네트워킹 및 데이터 교환 프로토콜들을 포함할 수 있다. 일부 플레이어 장치들은 모든 적정 외부 상호작용들은 인에이블하기 위하여 필요한 인터페이스들을 가질 수 없으며, 이 경우에 외부 인터페이스 모듈은 직접 접속된다(예컨대, 양방향 데이터 통신하는 물리적 인터페이스를 통해). 외부 장치들은 예컨대 외부 장치에 의하여 제공된 특징들을 사용할때 계층 장치 및/또는 컨텐츠 코드를 지원하기 위하여 플레이어 장치에 전송된 코드(해석된 코드 포함)를 반송하는 비휘발성 메모리 또는 다른 저장장치를 포함할 수 있다.
재생 시스템의 양상은 개별적으로 구현될 수 있고 서로 통신할 수 있다. 예컨대, 임의의 플랫폼(예컨대, 퍼스널 컴퓨터와 같이)에서, 이들 컴포넌트들이 다른 컴포넌트들보다 더 자주 업데이트되기 때문에 주 플레이어 애플리케이션으로부터 발견 및/또는 보안 평가 능력들을 구현하는 부분들을 분리하는 것이 유리하다. 전형적인 실시예에서, 컨텐츠 코드는 악성, 비허가 및/또는 의심되는 소프트웨어의 존재와 같은 공지된 보안 문제들을 검출하도록 구성된 보안 스캐너와 통신한다. 스캐너는 어느 애플리케이션이 실행되는지, 어느 장치 드라이버가 설치되는지, 어느 장치가 접속되는지와 같은 장치의 상태에 대한 코드 및/또는 플레이어 애플리케이션들을 접속하기 위한 정보를 제공한다. 스캐너는 시스템이 보안 재생 요건들을 충족하는지와 같은 현재의 시스템의 보안상태에 대한 평가를 보고할 수 있다. 새로운 저작권 침해 리스크가 고속으로 발생하기 때문에, 예컨대 만일 새로운 소프트웨어 개발이 공개되면, 스캐너 프로그램은 인터넷을 통해 업데이트들을 다운로드하거나 또는 컨텐츠 코드와 함께 전송된 디지널 암호화된 업데이트들을 수신하는 것과 같이 자주 업데이트된다. 사용자는 업데이트 서비스를 위하여 과금될 수 있다(예컨대, 사용자에 대응하는 지불 도구를 자동적으로 그리고 주기적으로 충전시키고, 지불이 성공적인 경우에 사용자에게 자동적으로 통지하며, 및/또는 지불이 수신되지 않는 경우에 사용자 액세스를 자동적으로 중지시킴으로서). 스캐너는 그것의 결과를 사용자에게 통지하고, 문제를 자동적으로 보정하며 및/또는 대응책들 또는 업데이트들을 자동적으로 다운로드할 수 있다. 스캐너는 예컨대 인터럽트 또는 이벤트를 등록함으로써 시스템/보안 상태의 변화들을 컨텐츠 코드 또는 다른 컴포넌트들에 통지할 수 있다. 컨텐츠 코드 및 스캐너와 같은 컴포넌트들간의 통신들은 암호화하여 보안될 수 있다. 예컨대, 스캐너는 공격의 재연을 방지하기 위하여 챌린지 값과 함께 그의 결과들을 디지털적으로 암호화할 수 있다. 스캐너는 컴퓨터의 소유자 또는 오퍼레이터의 흥미의 보호에 대조적으로 컨텐츠 소유자에 의하여 사용가능한 머신의 상태에 대한 증명으로서 그것의 결과들의 암호화 인증을 제공한다는점에서 비록 스캐너의 기능이 종래의 바이러스 검출기들과 다를지라도 바이러스 방지 스캐너 또는 다른 취약성 스캐너를 통합할 수 있다.
자동화 프로그램은 비허가(예컨대, 저작권 침해) 컨텐츠를 검출하기 위하여 컴퓨터를 검색하도록 구성될 수 있다. 만일 이러한 컨텐츠가 저작권 침해 자료를 잠재적으로 사용자에게 통지할 수 있다. 프로그램은 예컨대 저작권 침해 자료가 없는 것으로 믿어지는 장치들에 컨텐츠의 재생을 허가하기 위하여 컨텐츠 코드 또는 다른 보안 컴포넌트들과 상호작용할 수 있다. 자료가 허가되는지를 결정하기 위하여, 스캐너는 라이센스 파일들, 디지털 서명들, 공지된 파일 해시들 등을 검사할 수 있다.
본 발명의 엘리먼트들(보안 및 비-보안 특징들 포함)은 비프로그램가능 컨텐츠 분배 시스템들, 번역기 또는 가상 머신대신에 임의의 소프트웨어 애플리케이션 또는 장치의 부분으로서 원시 코드를 사용하는 컨텐츠 보호 시스템들, 및 코드가 항상 자연적으로 실행되는(번역기/가상 머신을 사용하여 처리되는 것과 대조적으로) 프로그램가능 시스템과 함께 사용되고 또한 다른 시스템들(비디오 게임 콘솔 보호 및 보안 시스템들 포함)에서 사용될 수 있다(그러나, 이에 제한되지 않음). 예컨대 제한없이, 개별 양상들은 컴퓨터 보안 애플리케이션들, 네트워크 보안 애플리케이션들, 비프로그램가능 저작권 침해 방지 시스템, 사기 스크리닝 시스템들, 이메일 필터링 등을 위하여 사용될 수 있다.
본 발명은 디지털 데이터 방송 시스템들(모든 종류의 텔레비전 방송, 위성 전송, 케이블 네트워크를 통한 통신, 인터넷 방송 등)과 통합될 수 있다. 방송신호는 그 신호 또는 다른 컨텐츠에서 반송된 컨텐츠와 함께 사용하는 코드(보안 관련 정보 및 대응책들 포함)을 반송할 수 있다. 방송 신호는 컨텐츠 및/또는 다른 컨텐츠 타이틀들에 의하여 사용가능한 다른 데이터를 반송할 수 있다. 보안 능력들은 종래의 조건부 액세스 카드들 및 텔레비전 신호들을 보안하기 위하여 사용되는 시스템들과 통합될 수 있다.
본 발명의 컴포넌트들이 상호작용할때, 컴포넌트들은 그들의 통신을 보안하는 암호화 기술들을 사용할 수 있다. 이러한 보안 특징들은 데이터에 대한 메시지 인증 코드들(또는 다른 검사들) 및/또는 대칭 암호화의 사용을 포함할 수 있다. 이러한 통신을 보안하기 위하여 사용되는 대칭 키들은 공개키 암호화 기술들(디지털 서명/증명들, 지수 키 승인, 공개키 암호화/해독, 챌린지-응답 프로토콜 등)을 사용하여 교섭될 수 있으나 또는 비대칭 암호화 기술들은 데이터에 직접 적용될 수 있다. 대칭 및 비대칭 키들의 폐기 상태는 강요될 수 있다(예컨대, 폐기 리스트들을 검사하고, 원격 서버와 상호작용함으로써). 키들은 비대칭 암호화 프로토콜들(방송 암호화 기술들을 사용하여(그러나 이에 제한되지 않음))을 사용하여 교섭될 수 있다. 사용된 보안 측정치들은 모든 통신들에 대하여 동일할 필요가 없다(예컨대, 제어 메시지들, 보안 관련 파라미터들, 키들 및/또는 MPEG "I" 프레임이 암호화되는 반면에, 다른 통신들은 비암호화될 수 있다). 핸드셰이크들(각각의 키 또는 키 세트와 관련된 하나 이상의 관련된 증명들을 포함)을 보안하기 위하여 사용되는 키들은 컨텐츠 코드를 사용하여 및/또는 장치들에 의하여 직접 검증될 수 있다. 통신들이 암호화하여 보안하는데 적절할 수 있는 컴포넌트들의 예들은 광학 디스크 드라이브들, 다른 매체 인터페이스, 매체 인터페이스 장치 드라이버들, 플레이어 애플리케이션들, 컨텐츠 코드 실행 스레드들(예컨대, 동시에 실행되는 다른 컨텐츠 타이틀로부터 또는 동일한 컨텐츠 타이틀에 속하는 다른 스레드로부터), 연산 시스템들, 비디오 장치 드라이버들, 비디오 프로세서들(또는 비디오 카드 등), 오디오 장치 드라이버들, 오디오 프로세서들, 임의의 방식의 외부 장치들(국부적으로 접속되고, 네트워크를 통해 액세스되거나, 버스를 통해 액세스되는지의 여부), 다른 애플리케이션들(보안 스캐너들, 오디오 혼합기들, 비디오 효과 프로세서들 등), 코덱들 및 보안 모듈들을 포함한다(그러나, 이에 제한되지 않음).
디지털 서명들은 하나 이상의 증명들을 사용하여 인증되는 키들을 사용하여 생성되고 다른 보안 값들과 결합될 수 있다. 서명들의 다중 버전들이 제공될 수 있다(예컨대 다른 키들/서명자들, 키 사이즈들, 알고리즘들 등으로 생성된다).
실시예들은 본 발명의 권리범위를 제한하는 것으로 구성되지 않는다. 간략화를 위하여, 리스트는 특히 아이템들이 유사한 리스트들에 포함되는 상황들에서 반드시 완전히 열거되지 않는다. 용어 "포함한다"는 제한없이 포함한다는 것을 의미한다. 유사하게, "예컨대"는 논의된 것을 제한하지 않는 예시적인 예들이다. 유사하게 "등"은 추가 가능성이 존재하는 것을 의미하며, 리스트는 모든 공지된 가능성들을 열거하는 것으로 구성되지 않아야 한다.
전형적인 실시예에서, 컨텐츠는 특정 플레이어들을 위하여 주문될 수 있다. 이러한 경우에, 컨텐츠는 단일 플레이어 또는 소수의 플레이어에서 재생할 수 있으나, 수신 장치(들)상에서 재생을 위하여 요구되지 않는 코드는 전송될 필요가 없다. 따라서, 이러한 방법은 예컨대 저장공간이 제한되는 경우에 사용자들에게 정보를 전송하는데 곤란하거나 고가이거나 또는 저속일때 또는 컨텐츠가 저속 네트워크 접속을 통해 전송되어야 할때 중요한 값이다. 그러나, 컨텐츠는 재생 환경이 적절하게 보안되는지를 검증하기 위하여 플레이어에게 계속해서 질문할 수 있다.
재생이 해석되지 않고 왜곡되도록, 플레이어의 번역기들에 대한 특정 최소 성능 표준들을 요구하는 것이 도움이 될 수 있다.
전형적인 실시예에서, 시스템들 및 방법들은 컨텐츠가 장치마다 교환되도록 구성될 수 있다. 이러한 교환들의 특정 보안 특징들은 신뢰성있는(예컨대, 발행자-동작) 서버와의 온라인 통신이 이용가능하는지의 여부와 같은 인자들에 따른다. 컨텐츠가 전송되는 형식은 컨텐츠 및 장치의 하드웨어 능력들에 의하여 강제된 보안 정책들에 따른다. 예컨대, 장치들이 보안 번역기들을 포함하는 일 실시예에서, 전송장치는 재생을 제어하는 코드와 함께 원래의 암호화된 컨텐츠(원래의 매체상에 저장되거나 또는 다른 키로, 선택적으로 워터마크들로 암호화되는 것과 같이)를 전송한다. 재생 제어 코드는 수신 장치에 대하여 송신 장치에 의하여 주문될 수 있다. 다른 경우에, 송신 장치는 출력 포트 및 목적지 장치의 보안 특징들이 허용가능한지를 검증하고, 목적지 장치와 공유된 키를 교섭하며, 컨텐츠를 해독 및 워터마킹하며, 공유된 키를 사용하여 컨텐츠를 재암호화하며, 목적지에 재암호화된 컨텐츠를 전송한다.
충분한 비휘발성 저장장치를 가진 플레이어들은 번역기로 불리는 업데이트가능 코드를 저장하기 위하여 사용될 수 있다. 예컨대, 플레이어는 특정 발행자에 대한 최근 보안 코드를 항상 저장하도록 구성될 수 있다. 이러한 경우에, 만일 보안 코드의 새로운 버전에 부딪치면, 과거 버전은 업데이트될 수 있다(예컨대, 새로운 코드에 대한 디지털 서명을 검증한 후에). 이러한 방식에서, 과거 컨텐츠는 새로운 컨텐츠상에서 반송되는 보안 업데이트들로부터 도움을 받을 수 있다(이러한 방식은 예컨대 이전에 기술된 보안 메모리 방법을 사용하여 구현될 수 있다). 다른 실시예에서, 컨텐츠는 플레이어들이 플레이어로부터 현재의 일/시간을 획득하고 최근에 공지된 보안 업그레이드의 일/시간과 비교함으로써 현재의 보안 업데이트들을 포함할 것을 요구할 수 있다. 이러한 방식에서, 컨텐츠는 플레이어들이 최근의 보안 업그레이드들을 가지도록 할 수 있다.
일반적으로, 컨텐츠 보호 시스템은 적법 사용자들에 의한 적법 동작의 역할을 하는 것을 방지해야 한다. 그럼에도 불구하고, 일부 사용자 인터페이스 엘리먼트들은 에러들을 보고하거나 또는 정보를 제공하는데 필요하다. 컨텐츠가 다중 전송 출력 품질들(예컨대, 플레이어가 불충분한 보안을 제공하는 경우에 래거시 품질 및 보안이 만족되는 경우에 "높은" 품질)사이에서 선택할 수 있는 경우에, 지시자는 출력 품질을 사용자에게 통지하는데 유용할 수 있다. 예컨대, 일 실시예에서, 컨텐츠의 제어하에서 녹색 발광 다이오드(LED)는 출력이 높은 품질을 가진다는 것(즉, 보안이 만족되는 것)을 지시하며, 오랜지색 LED는 저하된 품질(즉, 미미한 보안)을 지시하며, 섬광 적색 LED는 플레이어가 폐기되기 때문에 출력이 제공되지 않는다는 것을 지시한다. 다른 실시예에서, 짧은 발화 또는 기록 통지(알려진 경우에 사용자의 언어에서)는 보안의 상태를 보고하도록 제공된다. 고품질 대 저품질을 보고 및/또는 사용하는지에 관한 결정은 강한 및/또는 약한 워터마크의 존재 및/또는 부재와 같은 다른 인자에 기초할 수 있다. 필요한 경우에, 저하 모듈은 보안 또는 다른 이유(저하 모듈들은 예컨대 고선명 텔레비전 신호들을 NTSC-해상도로 변환하거나 또는 고선명 멀티-채널 오디오를 2-채널 CD-품질 오디오로 변환하기 위하여 포함될 수 있다) 때문에 컨텐츠가 재생의 품질을 감소시키도록 플레이어에 포함될 수 있다.
만일 매체 인터페이스 및 플레이어 번역기가 충분한 성능을 제공하면, 벌크 해독 및 워터마크 삽입은 개별 해독 모듈 대신에 번역기에서 조절될 수 있다. 컨텐츠가 그 자체를 직접 해독하도록 하면 공격자들이 해독 모듈에 공격하지 못하도록 하는 것과 같은 일부 보안 장점들이 제공될 수 있다. 만일 번역기 성능이 충분하면, 번역기에서 컨텐츠 압축해제를 구현하는 것이 가능하며, 이에 따라 단일 플레이어 코덱 타입을 표준화할 필요성이 방지된다.
번역기를 사용한 구현이 여기에 개시된 기술들 및 시스템들에 대한 특정 하드웨어 지원을 가지지 않는 플랫폼들(예컨대 퍼스널 컴퓨터들)에 대하여 바람직한 반면에, 전용 하드웨어에서 많은 번역기 기능들을 구현하는 것이 가능하다. 애플리케이션에 따르면, 전용 구현들은 비록 기능이 감소될지라도 비용이 절감되거나 또는 전력소모가 감소될 수 있다.
물리적 매체상의 컨텐츠를 수신하는 실시예들은 임의의 매체 포맷을 가상으로 사용할 수 있다. 광학 디스크들(예컨대, CD 및 DVD)이 저비용으로 고밀도 저장을 제공하는 반면에, 자기 매체, 홀로그라피 메모리, 배터리 착탈가능 RAM, ROM, EEPROM 및 플래시 메모리를 포함하는 다른 저장 시스템들이 사용될 수 있다. 매체의 저장용량은 여기에 개시된 기술들 및 시스템들과 관련된 정보(예컨대 다양한 컴퓨터 플랫폼들에 대한 디코딩 방법을 구현하는 실행가능 프로그램들, 여기에 기술된 방법들을 사용하여 보호되는 컨텐츠 등) 뿐만아니라 여기에 개시된 기술 및 시스템들에 관련되지 않은 데이터(예컨대 비관련 실행가능 프로그램들, 레드 북 CD 오디오와 같은 비보호 컨텐츠, 다른 보안 방식들을 사용하여 보호된 컨텐츠 등)을 포함하는 많은 다른 타입들의 데이터를 저장하기 위하여 사용될 수 있다.
매체는 매체가 비허가 카피가 아닌지를 플레이어들이 검증하도록 하기 위하여 암호화 계산들을 실행하는 변조 방지 회로를 포함할 수 있다. 비록 이러한 능력이 전기 인터페이스들을 사용하는 매체를 구현하는데 매우 단순할지라도, 광학 매체는 암호화 능력들을 포함할 수 있다. 예컨대, 비접촉 암호화 모듈(예컨대, Gaumet 등에 의한 미국특허 제5,640,306호의 비접촉 스마트 카드)는 광학 디스크에 고정되거나 또는 삽입될 수 있다. 암호화 매체 인증이 바람직한 반면에, 다른 인증 메커니즘들이 대신 사용될 수 있다. 예컨대, 당업자에게 공지된 일반적인 매체 인증 방법들은 일련 번호들을 복사 곤란 위치들(예컨대, 상업적으로 기록가능한 매체 또는 드라이브들을 사용하여 기록할 수 없는 영역들)에 기록하는 단계, 및 원래의 물리적 매체의 다양한 특징들의 디지털 서명 "기술자"를 포함하는 단계를 포함한다. 물론, 암호화 메커니즘은 비록 공격자들이 기존의 매체를 절충하는 방법들을 발견할지라도 매래의 매체가 플레이어에 대하여 임의의 변화를 요구하지 않고 개선된 보안으로 송출될 수 있는 장점을 제공한다.
많은 소비자들이 레가시 포맷의 컨텐츠에 투자할지라도, 여기에 기술된 기술들 및 방법을 구현하는 플레이어들은 이들 레가시 포맷들을 지원하도록 구성될 수 있다. 유사하게, 번역기의 다른 버전들은 특정 플레이어들에 의하여 지원될 수 있다. 이러한 경우에, 플레이어는 사용중인 적절한 보안 시스템을 식별하기 위하여 매체 또는 컨텐츠를 분석할 필요가 있다. 예컨대, 디지털 비디오 플레이어는 디스크가 CSS를 사용하는 레가시 DVD인지(만일 그렇다면 CSS 해독 시스템을 선택하며) 또는 여기에 개시된 기술들 및 시스템들을 사용하는 DVD인지(만일 그렇다면 언어-기반 해독 시스템을 활성화한다)를 검출한다. 컨텐츠에 포함된 내성 워터마크들은 하나의 보안 시스템으로 원래 보호되는 컨텐츠가 원래의 보호들이 부족한 포맷으로 복사되는지를 검출하기 위하여 사용될 수 있다. 예컨대, 복사를 허용하지 않는 컨텐츠는 임의의 다른 포맷(예컨대 비보호 포맷)으로 복사를 만나는 임의의 장치가 비허가로서 카피를 인식할 수 있고 (예컨대) 재생을 거절할 수 있다.
여기에 개시된 기술들 및 시스템들은 오디오, 정지 이미지들, 3차원 이미지들, 및 3차원 비디오를 포함하는(그러나, 이에 제한되지 않음) 다양한 컨텐츠 타입과 함께 사용될 수 있다.
여기에 개시된 기술들 및 시스템들은 다양한 물리 장치들에서 구현될 수 있다. 만일 단지 하나의 장치만이 컨텐츠를 해독하는 책임을 가진다면, 상기 장치에 의하여 강제된 보안 정책들을 가지는 것이 바람직하다. 그러나, 출력 장치들 및 중간 처리 장치들(예컨대, 오디오 등화기 또는 혼합기)는 여기에 개시된 기술들 및 시스템들로부터 장점을 가질 수 있으며 및/또는 보안을 검증하기 위하여 상기 기술들 및 시스템들에 의하여 사용될 수 있는 질문 능력들을 제공함으로써 장점을 가질 수 있다. 일 실시예에서, 홈 엔터테인먼트 서버는 컨텐츠를 다운로드, 저장 및 관리하여 보안이 성공적으로 검증된 재생 장치들(스피커들, 헤드폰들, 비디오 디스플레이들 등)에 컨텐츠를 전송한다. 이들 장치들로의 접속들은 컨텐츠의 도난을 방지하기 위하여 여기에 개시된 기술들 및 시스템들 및 목적지 장치의 제어하에서 암호화된다.

Claims (29)

  1. 튜링-완료(Turing-complete) 번역기에서 명령들을 실행하도록 구성된 시청각 플레이어 장치 내에서 저장기에 대한 액세스를 조절하기(regulate) 위한 방법으로서,
    (a) 실행되는 제 1 세트의 명령들로부터의 요구를 수신하는 단계 ― 상기 요구는 (i) 액세스가 요구되고, 상기 장치에 의한 컨텐츠의 렌더링(rendering)을 인에이블시키기 위한 상기 저장기의 제 1 부분 및 (ⅱ) 다수의 추가의 실행가능한 명령들을 명시함 ―;
    (b) 해시 값(hash value)을 획득하기 위하여 상기 추가의 실행가능한 명령들에 암호화 해시 함수를 적용하는 단계;
    (c) 상기 해시 값을 인증하는 단계;
    (d) 상기 인증이 성공적이면, 상기 추가의 실행가능한 명령들을 실행하는 동안, 상기 저장기의 상기 요구된 제 1 부분에 대해 실행되는 상기 제 1 세트의 명령들에 의한 액세스를 인에이블시키는 단계; 및
    (e) 상기 인증이 성공적이지 않으면, (i) 상기 컨텐츠의 렌더링, 및 (ⅱ) 상기 컨텐츠와 연관되는 적어도 하나의 피쳐(feature)의 실행 중 적어도 하나를 금지하는 단계
    를 포함하는, 액세스를 조절하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 인증하는 단계는 상기 저장기에 저장된 해시 값과 상기 해시 값을 비교하는 단계를 포함하는, 액세스를 조절하기 위한 방법.
  3. 제 1 항에 있어서,
    상기 인증하는 단계는 실행되고 있는 상기 제 1 세트의 명령들에 의하여 제공되는 디지털 서명을 검증하는 단계를 포함하는, 액세스를 조절하기 위한 방법.
  4. 제 1 항에 있어서,
    상기 요구는 실행되고 있는 상기 제 1 세트의 명령들에 의하여 액세스가능한 메모리의 상기 추가의 실행가능한 명령들에 대한 포인터(pointer)를 포함하는, 액세스를 조절하기 위한 방법.
  5. 다수의 장치 아키텍처들 중 임의의 아키텍쳐상의 재생을 위해 암호화된 시청각 컨텐츠를 포함하고, 프로그램 로직을 포함하는 컴퓨터-판독가능 저장 매체로서,
    상기 프로그램 로직은:
    (a) 상기 프로그램 로직을 실행하는 장치의 적어도 하나의 특징을 식별하고;
    (b) 존재한다면, 상기 장치에 다수의 보안 취약성들 중 어느 것이 존재하는지 결정하기 위해, 상기 적어도 하나의 특징을 사용하며;
    (c) 상기 결정이 의심되는 취약성을 표시하는 경우,
    (i) 다수의 소프트웨어 대응책(countermeasure)들 중 적어도 하나를 선택하고 ― 상기 선택된 대응책은 상기 의심되는 취약성에 대응하고 상기 장치와 호환가능함 ― ;
    (ⅱ) 상기 장치에 상기 선택된 대응책을 호출(invoke)하도록 지시함으로써 상기 의심되는 취약성을 완화시키고;
    (ⅲ) 상기 암호화된 시청각 컨텐츠를 디코딩하며 ― 상기 디코딩은 상기 대응책의 로직의 성공적인 동작에 의하여 생성된 결과를 포함함 ― ; 및
    (d) 상기 결정이 의심되는 취약성을 나타내지 않는 경우, 상기 장치와 연관된 적어도 하나의 암호화 키를 사용함으로 인하여 유도된 적어도 하나의 해독 키를 사용함으로써 상기 시청각 컨텐츠를 디코딩하도록
    구성되는, 컴퓨터-판독가능 저장 매체.
  6. 제 5 항에 있어서,
    상기 프로그램 로직은 다수의 장치 아키텍처들에 공통인 번역기에서 실행되도록 구성되며, 상기 선택된 대응책의 적어도 일부는 상기 장치와 연관된 마이크로프로세서상에서 원시(native) 코드로서 직접 실행되도록 구성되는, 컴퓨터-판독가능 저장 매체.
  7. 제 6 항에 있어서,
    상기 원시 코드를 인증하는 디지털 서명을 더 포함하는, 컴퓨터-판독가능 저장 매체.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 소프트웨어의 일부가 시청각 플레이어 장치 내에서 메모리의 일부에 액세스하도록 허용하는지 여부를 결정하기 위한 자동화 방법으로서,
    (a) 상기 소프트웨어의 일부에 대한 기준을 수신하는 단계;
    (b) 상기 소프트웨어의 일부의 암호화 해시를 계산하는 단계;
    (c) 상기 메모리에 저장된 값과 상기 계산된 암호화 해시를 비교하는 단계;
    (d) 상기 계산된 암호화 해시가 상기 저장된 값과 매칭될 때, (i) 상기 소프트웨어 일부가 상기 메모리의 일부에 액세스하도록 허용하는 단계 ― 상기 메모리의 일부는 상기 장치에 의한 컨텐츠의 렌더링을 인에이블시키기 위한 것임 ― , 및 (ⅱ) 상기 컨텐츠와 연관된 적어도 하나의 피쳐의 실행을 허용하는 단계; 및
    (e) 상기 계산된 암호화 해시가 상기 저장된 값과 매칭되지 않을 때, 상기 소프트웨어의 일부가 상기 메모리에 액세스하도록 허용하지 않는 단계, 및 (i) 상기 컨텐츠의 렌더링 또는 (ⅱ) 상기 컨텐츠와 연관된 적어도 하나의 피쳐의 실행 중 적어도 하나를 금지하는 단계
    를 포함하는, 자동화 방법.
  12. 제 5 항에 있어서,
    상기 프로그램 로직은 추가적으로 제조자, 모델 및 상기 프로그램 로직을 실행하는 장치의 버전 중 적어도 하나를 암호화방식으로 인증하도록 구성되는, 컴퓨터-판독가능 저장 매체.
  13. 제 5 항에 있어서,
    상기 프로그램 로직은 제조자, 모델, 상기 장치의 버전 중 적어도 하나의 키(key) 특징을 사용하여 상기 장치가 블록 암호(cipher) 동작들을 수행할 수 있는지 여부를 상기 장치의 적어도 하나의 특성으로서 검증하도록 구성되는, 컴퓨터-판독가능 저장 매체.
  14. 제 5 항에 있어서,
    상기 프로그램 로직은 허용되지 않은 펌웨어가 상기 장치상에 존재하는지 여부를 적어도 하나의 특징으로서 검증하도록 구성되는, 컴퓨터-판독가능 저장 매체.
  15. 제 5 항에 있어서,
    상기 프로그램 로직은 네트워크를 통해 서버에 액세스하고, 새로운 특징을 식별하도록 구성되는 코드, 대응책을 구현하는 코드, 해지(revocation) 상태, 컨텐츠와 연관된 지불 정보, 보너스 컨텐츠의 다운로드, 및 광고의 다운로드 중 적어도 하나를 나타내는 데이터를 상기 서버로부터 수신하도록 구성되는, 컴퓨터-판독가능 저장 매체.
  16. 제 5 항에 있어서,
    상기 프로그램 로직은 상기 장치의 메모리의 일부를 검색함으로써 특징을 식별하도록 구성되는, 컴퓨터-판독가능 저장 매체.
  17. 제 5 항에 있어서,
    상기 프로그램 로직은 상기 장치의 비휘발성 저장기에 액세스함으로써 특징을 식별하도록 구성되는, 컴퓨터-판독가능 저장 매체.
  18. 제 5 항에 있어서,
    상기 프로그램 로직은 비디오 데이터 스트림에 변형들(modifications)을 적용함으로써 비디오를 플레이가능하게 하도록 추가로 구성되는, 컴퓨터-판독가능 저장 매체.
  19. 제 18 항에 있어서,
    상기 변형들이 적용될 때, 상기 프로그램 로직은 재생 환경과 연관된 법정(forensic) 정보를 내장하도록 시청각 컨텐츠를 변화시키도록 추가로 구성되는, 컴퓨터-판독가능 저장 매체.
  20. 제 1 항에 있어서,
    상기 시청각 플레이어 장치는 상기 컨텐츠를 수신하기 위해 이동식 디스크 플레이어를 포함하며,
    상기 튜링-완료 번역기는 상기 디스크 플레이어로부터 상기 제 1 세트의 명령들을 수신하고, 상기 요구가 디스크로부터 발생되도록 상기 시청각 플레이어 장치에서 상기 제 1 세트의 명령들을 실행하는, 액세스를 조절하기 위한 방법.
  21. 제 1 항에 있어서,
    상기 시청각 플레이어 장치는 상기 컨텐츠를 수신하기 위해 네트워크 접속을 포함하며,
    상기 튜링-완료 번역기는 상기 네트워크로부터 상기 제 1 세트의 명령들을 수신하고, 상기 요구가 네트워크 소스로부터 발생되도록 상기 시청각 플레이어 장치에서 상기 제 1 세트의 명령들을 실행하는, 액세스를 조절하기 위한 방법.
  22. 제 1 항에 있어서,
    상기 저장기의 일부는 적어도 하나의 프로그램 타이틀에 대해 예정된 슬롯을 포함하며,
    상기 방법은 새로운 컨텐츠가 새로운 슬롯에 대한 또는 현재 슬롯에 대한 액세스를 탐색하는지(seek) 여부를 결정하는 단계를 더 포함하는, 액세스를 조절하기 위한 방법.
  23. 제 22 항에 있어서,
    상기 액세스를 인에이블시키는 단계는 상기 현재 슬롯과 상기 새로운 슬롯 중 하나에 대한 액세스를 승인하는 단계를 포함하는, 액세스를 조절하기 위한 방법.
  24. 제 1 항에 있어서, 상기 액세스를 인에이블시키는 단계는,
    (i) 상기 컨텐츠와 연관된 지불 관련 정보;
    (ⅱ) 카운터 값;
    (ⅲ) 지출 한도(spending limit);
    (ⅳ) 컨텐츠 특정 피쳐들에 대한 액세스 허용;
    (v) 페이-퍼-뷰(pay-per-view) 히스토리;
    (ⅵ) 특권 레벨(privilege level); 또는
    (ⅶ) 가격 할인 정보
    중 적어도 하나를 저장하는 단계를 포함하는, 액세스를 조절하기 위한 방법.
  25. 제 1 항에 있어서, 상기 액세스를 인에이블시키는 단계는,
    (i) 보안 정책에 대한 정보;
    (ⅱ) 보안 취약성 고정(fix) 코드;
    (ⅲ) 암호화 키;
    (ⅳ) 보안 체크 데이터; 또는
    (v) 디지털 서명
    중 적어도 하나를 저장하는 단계를 포함하는, 액세스를 조절하기 위한 방법.
  26. 제 11 항에 있어서,
    상기 시청각 플레이어 장치는 상기 컨텐츠를 수신하기 위해 이동식 디스크 플레이어를 포함하며, 상기 기준이 디스크로부터 발생되도록, 상기 장치는 상기 디스크 플레이어로부터 상기 소프트웨어를 리트리브(retrieve)하고 상기 시청각 플레이어 장치에서 상기 소프트웨어를 실행시키는, 자동화 방법.
  27. 제 26 항에 있어서,
    상기 시청각 플레이어 장치는 네트워크 접속을 포함하며, 상기 소프트웨어 일부가 상기 메모리 일부에 액세스하도록 허용하는 단계는 네트워크 소스로부터 발생되는 값을 상기 메모리 일부에 기록하는 단계를 포함하는, 자동화 방법.
  28. 제 27 항에 있어서,
    상기 메모리 일부는 적어도 하나의 프로그램 타이틀을 위해 예정된 슬롯을 포함하고,
    상기 방법은 새로운 컨텐츠가 새로운 슬롯에 대한 또는 현재 슬롯에 대한 액세스를 탐색하는지 여부를 결정하는 단계를 더 포함하며,
    상기 소프트웨어의 일부가 상기 메모리 일부에 액세스하도록 허용하는 단계는 상기 현재 슬롯에 대한 액세스를 승인하는 단계를 포함하는, 자동화 방법.
  29. 제 11 항에 있어서,
    상기 컨텐츠의 렌더링 또는 상기 컨텐츠와 연관된 적어도 하나의 피쳐의 실행 중 적어도 하나를 금지하는 단계는,
    보너스 컨텐츠에 대한 액세스 금지, 재생 정지, 에러 보고, 추가의 인증 요구, 플레이어 업그레이드 요구, 영화 결말의 디코딩 거절, 보너스 피쳐들의 디스에이블링(disabling), 및 감소된 해상도에서의 재생의 그룹으로부터 선택된 동작을 취하는 단계를 포함하는, 자동화 방법.
KR1020067000444A 2003-07-07 2004-07-07 저작권 침해를 제어하고 쌍방향 컨텐츠를 인에이블시키기 위한 재프로그램가능한 보안 KR101081729B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10/614,765 2003-07-07
US10/614,765 US7987510B2 (en) 2001-03-28 2003-07-07 Self-protecting digital content
US53742104P 2004-01-16 2004-01-16
US60/537,421 2004-01-16

Publications (2)

Publication Number Publication Date
KR20060031681A KR20060031681A (ko) 2006-04-12
KR101081729B1 true KR101081729B1 (ko) 2011-11-08

Family

ID=34083671

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067000444A KR101081729B1 (ko) 2003-07-07 2004-07-07 저작권 침해를 제어하고 쌍방향 컨텐츠를 인에이블시키기 위한 재프로그램가능한 보안

Country Status (7)

Country Link
US (3) US8055910B2 (ko)
EP (3) EP2557521A3 (ko)
JP (2) JP2007535718A (ko)
KR (1) KR101081729B1 (ko)
CN (1) CN101241735B (ko)
AU (2) AU2004258523B2 (ko)
WO (1) WO2005008385A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101618169B1 (ko) * 2013-12-02 2016-05-04 (주)닥터소프트 소프트웨어 식별자 생성 방법, 서버 및 서버의 소프트웨어 관리 방법
WO2022080547A1 (ko) * 2020-10-15 2022-04-21 주식회사 디알엠인사이드 웹 브라우저 기반 컨텐츠의 보안을 위한 서비스 제공 방법
WO2022203180A1 (ko) * 2021-03-23 2022-09-29 삼성전자주식회사 뉴럴 네트워크에 대한 해시 인증을 수행하는 전자 장치 및 그 동작 방법

Families Citing this family (670)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7954056B2 (en) * 1997-12-22 2011-05-31 Ricoh Company, Ltd. Television-based visualization and navigation interface
US7596755B2 (en) 1997-12-22 2009-09-29 Ricoh Company, Ltd. Multimedia visualization and integration environment
US7532740B2 (en) * 1998-09-25 2009-05-12 Digimarc Corporation Method and apparatus for embedding auxiliary information within original data
US7418504B2 (en) 1998-10-30 2008-08-26 Virnetx, Inc. Agile network protocol for secure communications using secure domain names
US7188180B2 (en) 1998-10-30 2007-03-06 Vimetx, Inc. Method for establishing secure communication link between computers of virtual private network
US10511573B2 (en) 1998-10-30 2019-12-17 Virnetx, Inc. Agile network protocol for secure communications using secure domain names
US6502135B1 (en) 1998-10-30 2002-12-31 Science Applications International Corporation Agile network protocol for secure communications with assured system availability
US20050035970A1 (en) * 1999-08-03 2005-02-17 Wirtschafter Jenny Dana Methods and apparatuses for authoring declarative content for a remote platform
US7653925B2 (en) * 1999-11-17 2010-01-26 Ricoh Company, Ltd. Techniques for receiving information during multimedia presentations and communicating the information
US6976032B1 (en) * 1999-11-17 2005-12-13 Ricoh Company, Ltd. Networked peripheral for visitor greeting, identification, biographical lookup and tracking
US7299405B1 (en) 2000-03-08 2007-11-20 Ricoh Company, Ltd. Method and system for information management to facilitate the exchange of ideas during a collaborative effort
US6944765B1 (en) * 1999-12-21 2005-09-13 Qualcomm, Inc. Method of authentication anonymous users while reducing potential for “middleman” fraud
US6737957B1 (en) 2000-02-16 2004-05-18 Verance Corporation Remote control signaling using audio watermarks
US7253919B2 (en) * 2000-11-30 2007-08-07 Ricoh Co., Ltd. Printer with embedded retrieval and publishing interface
US20070288394A1 (en) 2000-12-01 2007-12-13 Carrott Richard F Transactional security over a network
US7209479B2 (en) 2001-01-18 2007-04-24 Science Application International Corp. Third party VPN certification
US9954686B2 (en) 2001-01-18 2018-04-24 Virnetx, Inc. Systems and methods for certifying devices to communicate securely
US7987510B2 (en) 2001-03-28 2011-07-26 Rovi Solutions Corporation Self-protecting digital content
US7749076B2 (en) * 2002-09-13 2010-07-06 Bally Gaming, Inc. System and method for an alterable storage media in a gaming machine
US8966527B1 (en) * 2001-10-16 2015-02-24 The Directv Group, Inc. System and method for media inserts in a media distribution system
US7495795B2 (en) * 2002-02-21 2009-02-24 Ricoh Company, Ltd. Interface for printing multimedia information
US20040181815A1 (en) * 2001-11-19 2004-09-16 Hull Jonathan J. Printer with radio or television program extraction and formating
US7415670B2 (en) * 2001-11-19 2008-08-19 Ricoh Co., Ltd. Printer with audio/video localization
US7424129B2 (en) * 2001-11-19 2008-09-09 Ricoh Company, Ltd Printing system with embedded audio/video content recognition and processing
US7747655B2 (en) * 2001-11-19 2010-06-29 Ricoh Co. Ltd. Printable representations for time-based media
US7861169B2 (en) * 2001-11-19 2010-12-28 Ricoh Co. Ltd. Multimedia print driver dialog interfaces
US8635531B2 (en) * 2002-02-21 2014-01-21 Ricoh Company, Ltd. Techniques for displaying information stored in multiple multimedia documents
CN1662980B (zh) * 2002-06-18 2011-07-13 皇家飞利浦电子股份有限公司 用于安全存储的系统
US7885896B2 (en) 2002-07-09 2011-02-08 Avaya Inc. Method for authorizing a substitute software license server
US8041642B2 (en) 2002-07-10 2011-10-18 Avaya Inc. Predictive software license balancing
US7698225B2 (en) * 2002-08-30 2010-04-13 Avaya Inc. License modes in call processing
US7681245B2 (en) * 2002-08-30 2010-03-16 Avaya Inc. Remote feature activator feature extraction
US7966520B2 (en) * 2002-08-30 2011-06-21 Avaya Inc. Software licensing for spare processors
US7707116B2 (en) * 2002-08-30 2010-04-27 Avaya Inc. Flexible license file feature controls
US20040138949A1 (en) * 2002-12-06 2004-07-15 Darnton James E. Sponsored appliances
US7890997B2 (en) * 2002-12-26 2011-02-15 Avaya Inc. Remote feature activation authentication file system
US7370212B2 (en) * 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US7260557B2 (en) * 2003-02-27 2007-08-21 Avaya Technology Corp. Method and apparatus for license distribution
US9240888B2 (en) * 2003-03-05 2016-01-19 Bally Gaming, Inc. Authentication system for gaming machines
KR20060022675A (ko) * 2003-06-02 2006-03-10 디즈니엔터프라이지즈,인크. 비디오 재생기 상거래 시스템 및 방법
KR101130368B1 (ko) * 2003-06-02 2012-03-27 디즈니엔터프라이지즈,인크. 소비자용 비디오 플레이어를 위한 프로그램된 윈도우 제어 시스템 및 방법
KR101032073B1 (ko) * 2003-06-02 2011-05-02 디즈니엔터프라이지즈,인크. 대화형 비디오 재생 시스템 및 방법
WO2005002198A2 (en) * 2003-06-02 2005-01-06 Disney Enterprises, Inc. Video playback image processing
EP1644802B1 (en) * 2003-06-27 2016-11-23 Disney Enterprises, Inc. Dual virtual machine and trusted platform module architecture for next generation media players
US7469346B2 (en) * 2003-06-27 2008-12-23 Disney Enterprises, Inc. Dual virtual machine architecture for media devices
US8055910B2 (en) 2003-07-07 2011-11-08 Rovi Solutions Corporation Reprogrammable security for controlling piracy and enabling interactive content
US7275159B2 (en) * 2003-08-11 2007-09-25 Ricoh Company, Ltd. Multimedia output device having embedded encryption functionality
US8077341B2 (en) 2003-09-25 2011-12-13 Ricoh Co., Ltd. Printer with audio or video receiver, recorder, and real-time content-based processing logic
US7440126B2 (en) * 2003-09-25 2008-10-21 Ricoh Co., Ltd Printer with document-triggered processing
JP2005108230A (ja) * 2003-09-25 2005-04-21 Ricoh Co Ltd オーディオ/ビデオコンテンツ認識・処理機能内蔵印刷システム
US7570380B2 (en) * 2003-09-25 2009-08-04 Ricoh Company, Ltd. Printer user interface
US7864352B2 (en) * 2003-09-25 2011-01-04 Ricoh Co. Ltd. Printer with multimedia server
US7511846B2 (en) * 2003-09-25 2009-03-31 Ricoh Co., Ltd. Printer having embedded functionality for printing time-based media
EP1671483B1 (en) * 2003-10-06 2014-04-09 Disney Enterprises, Inc. System and method of playback and feature control for video players
US7281274B2 (en) * 2003-10-16 2007-10-09 Lmp Media Llc Electronic media distribution system
US7689712B2 (en) 2003-11-26 2010-03-30 Ricoh Company, Ltd. Techniques for integrating note-taking and multimedia information
US8683024B2 (en) * 2003-11-26 2014-03-25 Riip, Inc. System for video digitization and image correction for use with a computer management system
US8666902B2 (en) * 2003-12-05 2014-03-04 Landis+Gyr Inc. System and method for accessing read only ANSI tables in an electricity meter
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
EP1695527A1 (en) * 2003-12-18 2006-08-30 Telefonaktiebolaget LM Ericsson (publ) Exchangeable module for additional functionality
JP2007515092A (ja) * 2003-12-18 2007-06-07 松下電器産業株式会社 プログラムデータファイル保存方法および認証プログラム実行方法
EP1551022A1 (en) * 2003-12-29 2005-07-06 Sony International (Europe) GmbH Method for copy protection of digital content
JP4036838B2 (ja) * 2004-03-12 2008-01-23 インターナショナル・ビジネス・マシーンズ・コーポレーション セキュリティ装置、情報処理装置、セキュリティ装置が実行する方法、情報処理装置が実行する方法、該方法を実行させるための装置実行可能なプログラムおよびチケット・システム
US7603615B2 (en) * 2004-03-30 2009-10-13 Ricoh Co., Ltd. Multimedia projector-printer
US8274666B2 (en) * 2004-03-30 2012-09-25 Ricoh Co., Ltd. Projector/printer for displaying or printing of documents
US20050235357A1 (en) * 2004-04-19 2005-10-20 Securemedia International Preventing cloning of high value software using embedded hardware and software functionality
US8639947B2 (en) * 2004-06-01 2014-01-28 Ben Gurion University Of The Negev Research And Development Authority Structure preserving database encryption method and system
US8402283B1 (en) 2004-08-02 2013-03-19 Nvidia Corporation Secure content enabled drive system and method
US8359332B1 (en) 2004-08-02 2013-01-22 Nvidia Corporation Secure content enabled drive digital rights management system and method
US8584257B2 (en) * 2004-08-10 2013-11-12 At&T Intellectual Property I, L.P. Method and interface for video content acquisition security on a set-top box
US20060041510A1 (en) * 2004-08-19 2006-02-23 Securemedia International Method for a secure system of content distribution for DVD applications
DE102004040462A1 (de) * 2004-08-20 2006-02-23 Giesecke & Devrient Gmbh Durch Authentisierung gesicherter Zugriff auf einen Datenträger mit Massenspeicher und Chip
US7707405B1 (en) 2004-09-21 2010-04-27 Avaya Inc. Secure installation activation
US8229858B1 (en) 2004-09-30 2012-07-24 Avaya Inc. Generation of enterprise-wide licenses in a customer environment
US7747851B1 (en) 2004-09-30 2010-06-29 Avaya Inc. Certificate distribution via license files
US8243925B2 (en) * 2004-10-18 2012-08-14 Syphermedia International, Inc. Method and apparatus for supporting multiple broadcasters independently using a single conditional access system
US10477151B2 (en) 2004-10-18 2019-11-12 Inside Secure Method and apparatus for supporting multiple broadcasters independently using a single conditional access system
JP5013477B2 (ja) 2004-11-09 2012-08-29 トムソン ライセンシング 別個の記憶媒体上のコンテンツの結合
US9489496B2 (en) 2004-11-12 2016-11-08 Apple Inc. Secure software updates
US8131804B2 (en) * 2004-11-19 2012-03-06 J Michael Greata Method and apparatus for immunizing data in computer systems from corruption
US8155306B2 (en) * 2004-12-09 2012-04-10 Intel Corporation Method and apparatus for increasing the speed of cryptographic processing
JP4857123B2 (ja) * 2004-12-13 2012-01-18 パナソニック株式会社 不正機器検出装置、不正機器検出システム、不正機器検出方法、プログラム、記録媒体及び機器情報更新方法
US8875309B1 (en) 2004-12-15 2014-10-28 Nvidia Corporation Content server and method of providing content therefrom
US8788425B1 (en) * 2004-12-15 2014-07-22 Nvidia Corporation Method and system for accessing content on demand
US8346807B1 (en) 2004-12-15 2013-01-01 Nvidia Corporation Method and system for registering and activating content
US8751825B1 (en) * 2004-12-15 2014-06-10 Nvidia Corporation Content server and method of storing content
US7603562B2 (en) * 2005-02-02 2009-10-13 Insyde Software Corporation System and method for reducing memory requirements of firmware
KR100739702B1 (ko) * 2005-02-07 2007-07-13 삼성전자주식회사 브로드캐스트 채널을 위한 사용 규칙 정보 생성 방법
WO2006083137A1 (en) * 2005-02-07 2006-08-10 Samsung Electronics Co., Ltd. Method of generating usage rule information for broadcast channel
US20060184454A1 (en) * 2005-02-11 2006-08-17 Mohan Ananda System and method for copy monitoring and automated invoicing
US20060190324A1 (en) * 2005-02-24 2006-08-24 Lexmark International, Inc. Method for providing reduced cost imaging to customers
US7716243B2 (en) * 2005-02-25 2010-05-11 Microsoft Corporation Provisions for validating content using a content registration authority
US7606953B2 (en) * 2005-02-25 2009-10-20 Microsoft Corporation Method and system for generating context-aware content from source content associated with a computing device
US20060205449A1 (en) * 2005-03-08 2006-09-14 Broadcom Corporation Mechanism for improved interoperability when content protection is used with an audio stream
US8887224B2 (en) 2005-03-09 2014-11-11 Vudu, Inc. Updating content libraries by transmitting release data
US8225083B2 (en) * 2005-03-09 2012-07-17 Vudu, Inc. Secured seeding of data in a distributed environment
JP4774766B2 (ja) * 2005-03-18 2011-09-14 株式会社日立製作所 コンテンツ受け渡しシステム、事業者端末装置及び再生端末装置
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
EP1879386A4 (en) * 2005-04-18 2009-12-02 Panasonic Corp RECORDING DEVICE
US7509250B2 (en) * 2005-04-20 2009-03-24 Honeywell International Inc. Hardware key control of debug interface
US8893299B1 (en) 2005-04-22 2014-11-18 Nvidia Corporation Content keys for authorizing access to content
US8375369B2 (en) * 2005-04-26 2013-02-12 Apple Inc. Run-time code injection to perform checks
WO2006120921A1 (ja) * 2005-05-02 2006-11-16 Matsushita Electric Industrial Co., Ltd. 記録媒体、オーサリング装置、オーサリング方法
US8464354B2 (en) 2005-05-13 2013-06-11 Cryptomill Inc. Content cryptographic firewall system
CA2623137C (en) 2005-05-13 2014-10-21 Cryptomill Technologies Ltd. Cryptographic control for mobile storage means
US20060265758A1 (en) 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US7554576B2 (en) * 2005-06-20 2009-06-30 Ricoh Company, Ltd. Information capture and recording system for controlling capture devices
US8805929B2 (en) 2005-06-20 2014-08-12 Ricoh Company, Ltd. Event-driven annotation techniques
US7908627B2 (en) * 2005-06-22 2011-03-15 At&T Intellectual Property I, L.P. System and method to provide a unified video signal for diverse receiving platforms
WO2007000993A1 (ja) * 2005-06-28 2007-01-04 Matsushita Electric Industrial Co., Ltd. 検証方法、情報処理装置、記録媒体、検証システム、証明プログラム及び検証プログラム
US8108787B2 (en) * 2005-07-01 2012-01-31 Microsoft Corporation Distributing input events to multiple applications in an interactive media environment
US8305398B2 (en) * 2005-07-01 2012-11-06 Microsoft Corporation Rendering and compositing multiple applications in an interactive media environment
US8656268B2 (en) 2005-07-01 2014-02-18 Microsoft Corporation Queueing events in an interactive media environment
US8020084B2 (en) * 2005-07-01 2011-09-13 Microsoft Corporation Synchronization aspects of interactive multimedia presentation management
US8799757B2 (en) 2005-07-01 2014-08-05 Microsoft Corporation Synchronization aspects of interactive multimedia presentation management
US7721308B2 (en) * 2005-07-01 2010-05-18 Microsoft Corproation Synchronization aspects of interactive multimedia presentation management
US7941522B2 (en) * 2005-07-01 2011-05-10 Microsoft Corporation Application security in an interactive media environment
JP4654806B2 (ja) * 2005-07-15 2011-03-23 ソニー株式会社 情報処理装置、情報記録媒体製造装置、情報記録媒体、および方法、並びにコンピュータ・プログラム
JP4613739B2 (ja) 2005-08-01 2011-01-19 ソニー株式会社 情報処理装置、情報処理方法、および情報記録媒体、並びにコンピュータ・プログラム
US8452604B2 (en) 2005-08-15 2013-05-28 At&T Intellectual Property I, L.P. Systems, methods and computer program products providing signed visual and/or audio records for digital distribution using patterned recognizable artifacts
CN101243513A (zh) 2005-08-23 2008-08-13 皇家飞利浦电子股份有限公司 使用物理单向函数的信息载体鉴别
US7814023B1 (en) * 2005-09-08 2010-10-12 Avaya Inc. Secure download manager
US20070061535A1 (en) * 2005-09-12 2007-03-15 Microsoft Corporation Processing unit enclosed operating system
JP4361894B2 (ja) * 2005-09-15 2009-11-11 株式会社エヌ・ティ・ティ・ドコモ 外部メモリ管理装置、及び外部メモリ管理方法
US7965922B2 (en) 2005-09-16 2011-06-21 Sony Corporation Information processing device, information recording medium manufacturing device, information recording medium, methods thereof, and computer program
JP4899442B2 (ja) 2005-11-21 2012-03-21 ソニー株式会社 情報処理装置、情報記録媒体製造装置、情報記録媒体、および方法、並びにコンピュータ・プログラム
JP4687424B2 (ja) 2005-11-25 2011-05-25 ソニー株式会社 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
US7681050B2 (en) 2005-12-01 2010-03-16 Telefonaktiebolaget L M Ericsson (Publ) Secure and replay protected memory storage
US20070136761A1 (en) * 2005-12-02 2007-06-14 Freelink Wireless Services, Llc Method and System for Content Distribution and Playback in a Mobile Telecommunication Network
WO2007063491A2 (en) * 2005-12-02 2007-06-07 Koninklijke Philips Electronics N.V. Protection of digital content
KR100717060B1 (ko) * 2005-12-05 2007-05-10 삼성전자주식회사 홈 네트워크를 통해 dvd 컨텐츠를 이용하는 방법 및장치
US8495389B2 (en) * 2005-12-16 2013-07-23 Safenet, Inc. Locking changing hard disk content to a hardware token
US20070162390A1 (en) * 2005-12-22 2007-07-12 Macrovision Corporation Techniques for distributing and monitoring content
US20070150723A1 (en) * 2005-12-23 2007-06-28 Estable Luis P Methods and apparatus for increasing security and control of voice communication sessions using digital certificates
US20070162761A1 (en) 2005-12-23 2007-07-12 Davis Bruce L Methods and Systems to Help Detect Identity Fraud
US8775314B2 (en) * 2005-12-29 2014-07-08 Intel Corporation Providing subscribed media content to portable media player devices associated with subscribers
US8176568B2 (en) * 2005-12-30 2012-05-08 International Business Machines Corporation Tracing traitor coalitions and preventing piracy of digital content in a broadcast encryption system
US9817831B2 (en) * 2005-12-30 2017-11-14 Microsoft Technology Licensing, Llc Monetization of multimedia queries
US7810072B2 (en) * 2006-01-06 2010-10-05 International Business Machines Corporation Exception thrower
US20070174472A1 (en) * 2006-01-20 2007-07-26 Verimatrix, Inc. Network security system and method
US8131995B2 (en) * 2006-01-24 2012-03-06 Vixs Systems, Inc. Processing feature revocation and reinvocation
US8417641B1 (en) * 2006-01-31 2013-04-09 Kyocera Corporation System for licensing mobile applications, features, and devices
JP4655951B2 (ja) 2006-02-06 2011-03-23 ソニー株式会社 情報処理装置、情報記録媒体製造装置、情報記録媒体、および方法、並びにコンピュータ・プログラム
US20090133124A1 (en) * 2006-02-15 2009-05-21 Jie Bai A method for detecting the operation behavior of the program and a method for detecting and clearing the virus program
KR100782847B1 (ko) * 2006-02-15 2007-12-06 삼성전자주식회사 복수의 컨텐트 부분들을 포함하는 컨텐트를 임포트하는방법 및 장치
US8978154B2 (en) * 2006-02-15 2015-03-10 Samsung Electronics Co., Ltd. Method and apparatus for importing content having plurality of parts
US20070220266A1 (en) * 2006-03-03 2007-09-20 Verimatrix, Inc. Security monitoring system and method for network distribution of digital content
WO2007106844A2 (en) 2006-03-14 2007-09-20 Divx, Inc. Federated digital rights management scheme including trusted systems
US8364965B2 (en) * 2006-03-15 2013-01-29 Apple Inc. Optimized integrity verification procedures
KR100755708B1 (ko) * 2006-03-22 2007-09-05 삼성전자주식회사 임시 라이센스를 사용하여 컨텐츠를 임시로 사용하는 방법및 장치
US7987365B2 (en) * 2006-03-24 2011-07-26 Microsoft Corporation Subscription-based computing implemented in hardware of computing device
US8285595B2 (en) 2006-03-29 2012-10-09 Napo Enterprises, Llc System and method for refining media recommendations
FR2899408B1 (fr) * 2006-03-29 2008-07-18 Airbus France Sas Procedes d'emission et de reception de donnees, en particulier pour des echanges securises entre un aeronef et une base au sol, dispositifs associes et aeronef equipe de tels dispositifs
US20070239605A1 (en) * 2006-04-06 2007-10-11 Peter Munguia Supporting multiple key ladders using a common private key set
US20070255576A1 (en) * 2006-04-26 2007-11-01 Macrovision Corporation Service providing an electronic market for the distribution of promotional material using software installation packages
US7965861B2 (en) * 2006-04-26 2011-06-21 The Board Of Regents Of The University Of Texas System Methods and systems for digital image security
US7596137B2 (en) * 2006-05-05 2009-09-29 Broadcom Corporation Packet routing and vectoring based on payload comparison with spatially related templates
EP1855438A1 (en) * 2006-05-09 2007-11-14 THOMSON Licensing Device, system and method for service delivery with anti-emulation mechanism
AU2015255247B2 (en) * 2006-05-11 2016-02-25 Cfph, Llc Methods and apparatus for electronic file use and management
WO2007133697A2 (en) 2006-05-11 2007-11-22 Cfph, Llc Methods and apparatus for electronic file use and management
JP2007318514A (ja) * 2006-05-26 2007-12-06 Sony Corp 情報処理装置および方法、並びにプログラム
US7970138B2 (en) * 2006-05-26 2011-06-28 Syphermedia International Method and apparatus for supporting broadcast efficiency and security enhancements
US9277295B2 (en) 2006-06-16 2016-03-01 Cisco Technology, Inc. Securing media content using interchangeable encryption key
US8577042B2 (en) * 2006-06-21 2013-11-05 Rf Code, Inc. Location-based security, privacy, access control and monitoring system
US20080071617A1 (en) * 2006-06-29 2008-03-20 Lance Ware Apparatus and methods for validating media
US9137480B2 (en) * 2006-06-30 2015-09-15 Cisco Technology, Inc. Secure escrow and recovery of media device content keys
US20080008321A1 (en) * 2006-07-10 2008-01-10 Syphermedia International, Inc. Conditional access enhancements using an always-on satellite backchannel link
US9003056B2 (en) * 2006-07-11 2015-04-07 Napo Enterprises, Llc Maintaining a minimum level of real time media recommendations in the absence of online friends
US8327266B2 (en) 2006-07-11 2012-12-04 Napo Enterprises, Llc Graphical user interface system for allowing management of a media item playlist based on a preference scoring system
JP4347322B2 (ja) * 2006-07-14 2009-10-21 ソニー株式会社 受信装置および方法、並びにプログラム
US8707459B2 (en) * 2007-01-19 2014-04-22 Digimarc Corporation Determination of originality of content
US8464073B2 (en) * 2006-09-13 2013-06-11 Stec, Inc. Method and system for secure data storage
US20080080711A1 (en) * 2006-09-28 2008-04-03 Syphermedia International, Inc. Dual conditional access module architecture and method and apparatus for controlling same
US9277259B2 (en) 2006-10-13 2016-03-01 Syphermedia International, Inc. Method and apparatus for providing secure internet protocol media services
US8761393B2 (en) * 2006-10-13 2014-06-24 Syphermedia International, Inc. Method and apparatus for providing secure internet protocol media services
EP2080314A2 (en) * 2006-10-25 2009-07-22 Spyrus, Inc. Method and system for deploying advanced cryptographic algorithms
US7986787B2 (en) * 2006-12-08 2011-07-26 International Business Machines Corporation System, method, and service for tracing traitors from content protection circumvention devices
US8243923B2 (en) * 2006-12-13 2012-08-14 The Directv Group, Inc. Method and system for providing a predeactivation warning in a system having a conditional access authorization expiration in a mobile receiving device
US10242415B2 (en) 2006-12-20 2019-03-26 Digimarc Corporation Method and system for determining content treatment
EP4184341A1 (en) 2007-01-05 2023-05-24 DivX, LLC Video distribution system including progressive playback
WO2008088201A1 (en) * 2007-01-19 2008-07-24 Lg Electronics Inc. Method for protecting content and method for processing information
KR101101440B1 (ko) * 2007-01-29 2012-01-02 소니 온라인 엔터테인먼트 엘엘씨 게임 이벤트에 기초한 블로그, 웹 페이지, 또는 파일-공유 사이트의 자동 엔트리 생성 시스템 및 방법
US8290157B2 (en) * 2007-02-20 2012-10-16 Sony Corporation Identification of a compromised content player
US20080250120A1 (en) * 2007-02-22 2008-10-09 Colin Kennedy Mick Method and apparatus for distributing a multimedia file to a public kiosk across a network
US9123204B2 (en) * 2007-02-27 2015-09-01 Igt Secure smart card operations
US8463711B2 (en) 2007-02-27 2013-06-11 Igt Methods and architecture for cashless system security
WO2008106691A1 (en) * 2007-03-01 2008-09-04 Dphi Acquisitions, Inc. Dvd download
US8538012B2 (en) * 2007-03-14 2013-09-17 Intel Corporation Performing AES encryption or decryption in multiple modes with a single instruction
WO2008116137A2 (en) * 2007-03-22 2008-09-25 Nielsen Media Research, Inc. Digital rights management and audience measurement systems and methods
US8837721B2 (en) 2007-03-22 2014-09-16 Microsoft Corporation Optical DNA based on non-deterministic errors
US8788848B2 (en) * 2007-03-22 2014-07-22 Microsoft Corporation Optical DNA
WO2008118146A1 (en) * 2007-03-23 2008-10-02 Thomson Licensing Modifying a coded bitstream
US8984265B2 (en) * 2007-03-30 2015-03-17 Intel Corporation Server active management technology (AMT) assisted secure boot
US7941764B2 (en) 2007-04-04 2011-05-10 Abo Enterprises, Llc System and method for assigning user preference settings for a category, and in particular a media category
US20080250067A1 (en) * 2007-04-06 2008-10-09 Concert Technology Corporation System and method for selectively identifying media items for play based on a recommender playlist
KR20080090939A (ko) * 2007-04-06 2008-10-09 삼성전자주식회사 펌웨어의 업데이트 파일 생성 방법, 펌웨어 업데이트파일을 이용한 업데이트 방법 및 그 장치
US20080250085A1 (en) * 2007-04-09 2008-10-09 Microsoft Corporation Backup system having preinstalled backup data
KR20080093332A (ko) * 2007-04-16 2008-10-21 삼성전자주식회사 펌웨어의 업데이트 파일 생성 방법, 펌웨어 업데이트파일을 이용한 업데이트 방법 및 그 장치
FR2915600B1 (fr) * 2007-04-27 2009-08-21 Att Sa Procede et dispositif d'identification d'objets ou documents
US7783876B2 (en) 2007-05-01 2010-08-24 Hewlett-Packard Development Company, L.P. Comparing characteristics prior to booting devices
US20100098250A1 (en) * 2007-05-08 2010-04-22 Mark Alan Schultz Movie based forensic data for digital cinema
KR101399357B1 (ko) * 2007-05-17 2014-05-26 삼성전자주식회사 컨텐츠 사용을 위한 소프트웨어의 설치 방법 및 장치
US8839141B2 (en) 2007-06-01 2014-09-16 Napo Enterprises, Llc Method and system for visually indicating a replay status of media items on a media device
JP2008305035A (ja) * 2007-06-06 2008-12-18 Hitachi Ltd 装置、更新方法、および制御ソフト。
JP4349441B2 (ja) 2007-06-12 2009-10-21 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US8488754B1 (en) 2007-10-17 2013-07-16 Accudata Technologies, Inc. IP-enabled information delivery
US11297180B2 (en) 2007-06-13 2022-04-05 First Orion Corp. Method and system for providing additional information to called parties
US8811575B2 (en) 2007-06-13 2014-08-19 I D You, Llc Delivering additional information to receiving parties for text messaging based caller ID
US10958781B2 (en) 2007-06-13 2021-03-23 First Orion Corp. Providing audio content to a device
US8625762B1 (en) 2007-06-13 2014-01-07 Accudata Technologies, Inc. Providing additional information to called parties
US8548140B2 (en) 2007-06-13 2013-10-01 I D You, Llc Providing audio announcement to called parties
US8879702B1 (en) 2007-10-17 2014-11-04 Accudata Technologies, Inc. Method and system for providing additional information to called parties
US8332907B2 (en) * 2007-06-22 2012-12-11 Microsoft Corporation Detection and management of controlled files
US7938727B1 (en) * 2007-07-19 2011-05-10 Tim Konkle System and method for providing interactive content for multiple networked users in a shared venue
US8767965B2 (en) * 2007-07-19 2014-07-01 Telcordia Technologies, Inc. Method for a public-key infrastructure providing communication integrity and anonymity while detecting malicious communication
US20090031429A1 (en) * 2007-07-23 2009-01-29 Nir Ben Zeev Prevention of software and movie piracy
EP2018934A1 (en) 2007-07-26 2009-01-28 Renishaw plc Measurement device having authentication module
EP2028439A1 (en) 2007-07-26 2009-02-25 Renishaw plc Deactivatable measurement apparatus
KR100880243B1 (ko) * 2007-07-30 2009-01-23 주식회사 골드엔키 이미지 퍼즐형 암호화이미지를 이용한 원본이미지암호화시스템
US8280057B2 (en) * 2007-09-04 2012-10-02 Honeywell International Inc. Method and apparatus for providing security in wireless communication networks
US9589152B2 (en) * 2007-09-19 2017-03-07 Visa U.S.A. Inc. System and method for sensitive data field hashing
US9350949B2 (en) * 2007-09-28 2016-05-24 Disney Enterprises, Inc. Flexible format media content and method for providing same
US8761402B2 (en) * 2007-09-28 2014-06-24 Sandisk Technologies Inc. System and methods for digital content distribution
US11811966B2 (en) 2007-10-17 2023-11-07 First Orion Corp. IP-enabled information delivery
KR20100106327A (ko) 2007-11-16 2010-10-01 디브이엑스, 인크. 멀티미디어 파일을 위한 계층적 및 감소된 인덱스 구조
US8301793B2 (en) 2007-11-16 2012-10-30 Divx, Llc Chunk header incorporating binary flags and correlated variable-length fields
US8224856B2 (en) 2007-11-26 2012-07-17 Abo Enterprises, Llc Intelligent default weighting process for criteria utilized to score media content items
US9069990B2 (en) * 2007-11-28 2015-06-30 Nvidia Corporation Secure information storage system and method
US8953795B2 (en) * 2007-11-30 2015-02-10 Sony Corporation Forensic decryption tools
US20090144341A1 (en) * 2007-12-03 2009-06-04 Apple Inc. Ad Hoc Data Storage Network
US8687650B2 (en) 2007-12-07 2014-04-01 Nsgdatacom, Inc. System, method, and computer program product for connecting or coupling analog audio tone based communications systems over a packet data network
US8196214B2 (en) * 2007-12-14 2012-06-05 Apple Inc. Method and apparatus for securing content using encryption with embedded key in content
KR101224319B1 (ko) * 2007-12-21 2013-01-21 제너럴 인스트루먼트 코포레이션 디지털 미디어의 비인가 사용을 방지하기 위한 시스템 및 방법
US8341751B2 (en) * 2007-12-26 2012-12-25 Wilson Kelce S Software license management
US9067150B2 (en) * 2008-01-19 2015-06-30 Lamplight Games System and method for providing interactive content for multiple networked users in a shared venue using short messaging service communication
US8719585B2 (en) * 2008-02-11 2014-05-06 Nvidia Corporation Secure update of boot image without knowledge of secure key
US9158896B2 (en) * 2008-02-11 2015-10-13 Nvidia Corporation Method and system for generating a secure key
US9069706B2 (en) * 2008-02-11 2015-06-30 Nvidia Corporation Confidential information protection system and method
US20090204801A1 (en) * 2008-02-11 2009-08-13 Nvidia Corporation Mechanism for secure download of code to a locked system
US20090204639A1 (en) * 2008-02-11 2009-08-13 Microsoft Corporation Selective content replacement for media players
US20090204803A1 (en) * 2008-02-11 2009-08-13 Nvidia Corporation Handling of secure storage key in always on domain
JP5333239B2 (ja) * 2008-02-19 2013-11-06 富士通株式会社 ストリームデータ管理プログラム、方法、及びシステム
US8369880B2 (en) * 2008-02-27 2013-02-05 Fisher-Rosemount Systems, Inc. Join key provisioning of wireless devices
US8555380B2 (en) * 2008-02-28 2013-10-08 Intel Corporation Automatic modification of executable code
FR2928235A1 (fr) * 2008-02-29 2009-09-04 Thomson Licensing Sas Procede d'affichage de contenus multimedia a perturbations variables en fonctions de droits locaux de recepteurs/ decodeurs.
KR101484110B1 (ko) * 2008-02-29 2015-01-28 삼성전자주식회사 메모리 컨트롤러 및 그에 따른 메모리 장치
US9613215B2 (en) 2008-04-10 2017-04-04 Nvidia Corporation Method and system for implementing a secure chain of trust
KR100971139B1 (ko) * 2008-04-25 2010-07-20 주식회사 비즈모델라인 문서 저작권 관리 방법 및 시스템과 이를 위한 기록매체
US8644513B2 (en) * 2008-05-16 2014-02-04 Oracle International Corporation Database processing on externally encrypted data
US8806659B1 (en) * 2008-05-22 2014-08-12 Rambus Inc. Secure remote content activation and unlocking
US8819839B2 (en) * 2008-05-24 2014-08-26 Via Technologies, Inc. Microprocessor having a secure execution mode with provisions for monitoring, indicating, and managing security levels
US8607034B2 (en) 2008-05-24 2013-12-10 Via Technologies, Inc. Apparatus and method for disabling a microprocessor that provides for a secure execution mode
US8898293B2 (en) 2009-01-28 2014-11-25 Headwater Partners I Llc Service offer set publishing to device agent with on-device service selection
US8725123B2 (en) 2008-06-05 2014-05-13 Headwater Partners I Llc Communications device with secure data path processing agents
US20100188993A1 (en) 2009-01-28 2010-07-29 Gregory G. Raleigh Network tools for analysis, design, testing, and production of services
US8924543B2 (en) 2009-01-28 2014-12-30 Headwater Partners I Llc Service design center for device assisted services
US8589541B2 (en) 2009-01-28 2013-11-19 Headwater Partners I Llc Device-assisted services for protecting network capacity
US8832777B2 (en) 2009-03-02 2014-09-09 Headwater Partners I Llc Adapting network policies based on device service processor configuration
US8635335B2 (en) 2009-01-28 2014-01-21 Headwater Partners I Llc System and method for wireless network offloading
US8340634B2 (en) 2009-01-28 2012-12-25 Headwater Partners I, Llc Enhanced roaming services and converged carrier networks with device assisted services and a proxy
US8924469B2 (en) 2008-06-05 2014-12-30 Headwater Partners I Llc Enterprise access control and accounting allocation for access networks
US8346225B2 (en) 2009-01-28 2013-01-01 Headwater Partners I, Llc Quality of service for device assisted services
US8275830B2 (en) 2009-01-28 2012-09-25 Headwater Partners I Llc Device assisted CDR creation, aggregation, mediation and billing
US8548428B2 (en) 2009-01-28 2013-10-01 Headwater Partners I Llc Device group partitions and settlement platform
US8402111B2 (en) 2009-01-28 2013-03-19 Headwater Partners I, Llc Device assisted services install
US8406748B2 (en) 2009-01-28 2013-03-26 Headwater Partners I Llc Adaptive ambient services
US8391834B2 (en) 2009-01-28 2013-03-05 Headwater Partners I Llc Security techniques for device assisted services
US8626115B2 (en) 2009-01-28 2014-01-07 Headwater Partners I Llc Wireless network service interfaces
US20090327741A1 (en) * 2008-06-30 2009-12-31 Zimmer Vincent J System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid)
US8468356B2 (en) * 2008-06-30 2013-06-18 Intel Corporation Software copy protection via protected execution of applications
JP4666015B2 (ja) * 2008-07-08 2011-04-06 ソニー株式会社 コンテンツ配信システム、コンテンツ受信端末、及びコンテンツ配信方法
US10459711B2 (en) * 2008-08-12 2019-10-29 Adobe Inc. Updating applications using migration signatures
FR2935058A1 (fr) * 2008-08-13 2010-02-19 Inst Nat Rech Inf Automat Outil de verification informatique
WO2010019916A1 (en) * 2008-08-14 2010-02-18 The Trustees Of Princeton University Hardware trust anchors in sp-enabled processors
WO2010021774A1 (en) * 2008-08-16 2010-02-25 The University Of Connecticut Detecting and revoking pirate redistribution of content
US8209309B1 (en) * 2008-08-27 2012-06-26 Bank Of America Corporation Download detection
US8463932B2 (en) * 2008-08-28 2013-06-11 Red Hat, Inc. Fast HTTP seeking
US9911457B2 (en) * 2008-09-24 2018-03-06 Disney Enterprises, Inc. System and method for providing a secure content with revocable access
US9268735B2 (en) * 2008-09-30 2016-02-23 Oracle America, Inc. Loadable and modular conditional access application
US8467278B2 (en) * 2008-10-06 2013-06-18 Microsoft Corporation Protecting optical media using random, moving radio frequency scatterers
WO2010042752A2 (en) * 2008-10-08 2010-04-15 Digiboo Llc System and method for distributing digital content
EP2337262A1 (en) * 2008-10-10 2011-06-22 Panasonic Corporation Information processing device, method, program, and integrated circuit
WO2010044102A2 (en) * 2008-10-13 2010-04-22 Valuable Innovations Private Limited Visibly non-intrusive digital watermark based proficient, unique & robust manual system for forensic detection of the point of piracy (pop) of a copyrighted, digital video content
US8479015B2 (en) * 2008-10-17 2013-07-02 Oracle International Corporation Virtual image management
US8898257B1 (en) 2008-10-20 2014-11-25 At&T Intellectual Property I, L.P. Multi-device complexity broker
US8208534B2 (en) * 2008-10-23 2012-06-26 At&T Intellectual Property I, Lp Media codec devices providing universality for encoded signal origination and decoded signal distribution
US8365279B2 (en) 2008-10-31 2013-01-29 Sandisk Technologies Inc. Storage device and method for dynamic content tracing
WO2010051545A1 (en) * 2008-10-31 2010-05-06 Divx, Inc. System and method for playing content on certified devices
US8744532B2 (en) * 2008-11-10 2014-06-03 Disney Enterprises, Inc. System and method for customizable playback of communication device alert media
KR20100055882A (ko) * 2008-11-18 2010-05-27 삼성전자주식회사 컨텐츠 제어 장치 및 컨텐츠 제어 방법
US20100125741A1 (en) * 2008-11-20 2010-05-20 Seagate Technology Llc Optical disc emulator
US20100132047A1 (en) * 2008-11-24 2010-05-27 Honeywell International Inc. Systems and methods for tamper resistant memory devices
US10419541B2 (en) * 2008-11-26 2019-09-17 Free Stream Media Corp. Remotely control devices over a network without authentication or registration
KR101547554B1 (ko) * 2008-11-27 2015-08-26 삼성전자주식회사 디지털 콘텐츠 서비스 제공 방법 및 시스템
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
JP2010157867A (ja) * 2008-12-26 2010-07-15 Visionere Corp 動画再生コード生成装置、動画配信システム、実行形式プログラム、同プログラムを記録した記録媒体、サーバー、及び動画再生コード生成方法
US8806220B2 (en) * 2009-01-07 2014-08-12 Microsoft Corporation Device side host integrity validation
JP5681641B2 (ja) 2009-01-07 2015-03-11 ソニック アイピー, インコーポレイテッド オンラインコンテンツのためのメディアガイドの特異的、収集的および自動的な生成
US8869290B2 (en) 2010-06-04 2014-10-21 Broadcom Corporation Method and system for secure content distribution by a broadband gateway
US9351193B2 (en) 2009-01-28 2016-05-24 Headwater Partners I Llc Intermediate networking devices
US9980146B2 (en) 2009-01-28 2018-05-22 Headwater Research Llc Communications device with secure data path processing agents
US9253663B2 (en) 2009-01-28 2016-02-02 Headwater Partners I Llc Controlling mobile device communications on a roaming network based on device state
US10264138B2 (en) 2009-01-28 2019-04-16 Headwater Research Llc Mobile device and service management
US10798252B2 (en) 2009-01-28 2020-10-06 Headwater Research Llc System and method for providing user notifications
US10779177B2 (en) 2009-01-28 2020-09-15 Headwater Research Llc Device group partitions and settlement platform
US9270559B2 (en) 2009-01-28 2016-02-23 Headwater Partners I Llc Service policy implementation for an end-user device having a control application or a proxy agent for routing an application traffic flow
US10237757B2 (en) 2009-01-28 2019-03-19 Headwater Research Llc System and method for wireless network offloading
US10492102B2 (en) 2009-01-28 2019-11-26 Headwater Research Llc Intermediate networking devices
US11973804B2 (en) 2009-01-28 2024-04-30 Headwater Research Llc Network service plan design
US9858559B2 (en) 2009-01-28 2018-01-02 Headwater Research Llc Network service plan design
US9706061B2 (en) 2009-01-28 2017-07-11 Headwater Partners I Llc Service design center for device assisted services
US9647918B2 (en) 2009-01-28 2017-05-09 Headwater Research Llc Mobile device and method attributing media services network usage to requesting application
US9955332B2 (en) 2009-01-28 2018-04-24 Headwater Research Llc Method for child wireless device activation to subscriber account of a master wireless device
US10484858B2 (en) 2009-01-28 2019-11-19 Headwater Research Llc Enhanced roaming services and converged carrier networks with device assisted services and a proxy
US8793758B2 (en) 2009-01-28 2014-07-29 Headwater Partners I Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US11218854B2 (en) 2009-01-28 2022-01-04 Headwater Research Llc Service plan design, user interfaces, application programming interfaces, and device management
US10715342B2 (en) 2009-01-28 2020-07-14 Headwater Research Llc Managing service user discovery and service launch object placement on a device
US9578182B2 (en) 2009-01-28 2017-02-21 Headwater Partners I Llc Mobile device and service management
US9572019B2 (en) 2009-01-28 2017-02-14 Headwater Partners LLC Service selection set published to device agent with on-device service selection
US9565707B2 (en) 2009-01-28 2017-02-07 Headwater Partners I Llc Wireless end-user device with wireless data attribution to multiple personas
US9392462B2 (en) 2009-01-28 2016-07-12 Headwater Partners I Llc Mobile end-user device with agent limiting wireless data communication for specified background applications based on a stored policy
US10783581B2 (en) 2009-01-28 2020-09-22 Headwater Research Llc Wireless end-user device providing ambient or sponsored services
US9557889B2 (en) 2009-01-28 2017-01-31 Headwater Partners I Llc Service plan design, user interfaces, application programming interfaces, and device management
US10200541B2 (en) 2009-01-28 2019-02-05 Headwater Research Llc Wireless end-user device with divided user space/kernel space traffic policy system
US11985155B2 (en) 2009-01-28 2024-05-14 Headwater Research Llc Communications device with secure data path processing agents
US10248996B2 (en) 2009-01-28 2019-04-02 Headwater Research Llc Method for operating a wireless end-user device mobile payment agent
US10326800B2 (en) 2009-01-28 2019-06-18 Headwater Research Llc Wireless network service interfaces
US8745191B2 (en) 2009-01-28 2014-06-03 Headwater Partners I Llc System and method for providing user notifications
US9571559B2 (en) 2009-01-28 2017-02-14 Headwater Partners I Llc Enhanced curfew and protection associated with a device group
US10841839B2 (en) 2009-01-28 2020-11-17 Headwater Research Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US10057775B2 (en) 2009-01-28 2018-08-21 Headwater Research Llc Virtualized policy and charging system
US9755842B2 (en) 2009-01-28 2017-09-05 Headwater Research Llc Managing service user discovery and service launch object placement on a device
US10064055B2 (en) 2009-01-28 2018-08-28 Headwater Research Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US9954975B2 (en) 2009-01-28 2018-04-24 Headwater Research Llc Enhanced curfew and protection associated with a device group
US8893009B2 (en) 2009-01-28 2014-11-18 Headwater Partners I Llc End user device that secures an association of application to service policy with an application certificate check
US9183881B2 (en) * 2009-02-02 2015-11-10 Porto Technology, Llc System and method for semantic trick play
JP2010178867A (ja) * 2009-02-05 2010-08-19 Fujifilm Corp 放射線撮影用ネットワークシステム及び放射線画像撮影システム制御方法
US8296564B2 (en) * 2009-02-17 2012-10-23 Microsoft Corporation Communication channel access based on channel identifier and use policy
US9141758B2 (en) * 2009-02-20 2015-09-22 Ims Health Incorporated System and method for encrypting provider identifiers on medical service claim transactions
US9135948B2 (en) * 2009-07-03 2015-09-15 Microsoft Technology Licensing, Llc Optical medium with added descriptor to reduce counterfeiting
US20100214894A1 (en) * 2009-02-20 2010-08-26 Microsoft Corporation Optical Medium with Added Descriptor to Reduce Counterfeiting
US20100218180A1 (en) * 2009-02-23 2010-08-26 Postalguard Ltd. Method, a system and a computer program product for updating applications using data embedded in downloaded content
JP2010220019A (ja) * 2009-03-18 2010-09-30 Panasonic Corp 鍵管理方法および鍵管理装置
US8380866B2 (en) * 2009-03-20 2013-02-19 Ricoh Company, Ltd. Techniques for facilitating annotations
KR101560185B1 (ko) * 2009-03-27 2015-10-15 삼성전자주식회사 Url을 이용한 분산 컨트롤 방법 및 장치
US8468070B1 (en) * 2009-04-16 2013-06-18 Amazon Technologies, Inc. Local rendering in lieu of streaming
TW201039170A (en) * 2009-04-28 2010-11-01 Thomson Licensing System and method for detecting genuine copies of pre-recorded digital media
US9075999B2 (en) * 2009-04-28 2015-07-07 Sandisk Technologies Inc. Memory device and method for adaptive protection of content
US9263085B2 (en) 2009-05-20 2016-02-16 Sony Dadc Austria Ag Method for copy protection
US9083685B2 (en) * 2009-06-04 2015-07-14 Sandisk Technologies Inc. Method and system for content replication control
US20100310076A1 (en) * 2009-06-04 2010-12-09 Ron Barzilai Method for Performing Double Domain Encryption in a Memory Device
US8332536B2 (en) * 2009-06-11 2012-12-11 International Business Machines Corporation Content protection continuity through authorized chains of components
US8578175B2 (en) 2011-02-23 2013-11-05 International Business Machines Corporation Secure object having protected region, integrity tree, and unprotected region
US8819446B2 (en) 2009-06-26 2014-08-26 International Business Machines Corporation Support for secure objects in a computer system
US9846789B2 (en) * 2011-09-06 2017-12-19 International Business Machines Corporation Protecting application programs from malicious software or malware
US9298894B2 (en) 2009-06-26 2016-03-29 International Business Machines Corporation Cache structure for a computer system providing support for secure objects
US9954875B2 (en) 2009-06-26 2018-04-24 International Business Machines Corporation Protecting from unintentional malware download
US8954752B2 (en) 2011-02-23 2015-02-10 International Business Machines Corporation Building and distributing secure object software
US8429365B2 (en) * 2009-06-26 2013-04-23 Sandisk Technologies Inc. Memory device and method for embedding host-identification information into content
US9047445B2 (en) * 2009-06-30 2015-06-02 Sandisk Technologies Inc. Memory device and method for updating a security module
US9323892B1 (en) * 2009-07-01 2016-04-26 Vigilytics LLC Using de-identified healthcare data to evaluate post-healthcare facility encounter treatment outcomes
US9118641B1 (en) 2009-07-01 2015-08-25 Vigilytics LLC De-identifying medical history information for medical underwriting
KR100933787B1 (ko) * 2009-07-13 2009-12-24 (주)명정보기술 하드디스크 포렌식용 쓰기방지장치
US8914874B2 (en) * 2009-07-21 2014-12-16 Microsoft Corporation Communication channel claim dependent security precautions
WO2011013120A1 (en) * 2009-07-30 2011-02-03 Rascalim Software Security Ltd. System and method for limiting execution of software to authorized users
WO2011011854A1 (en) * 2009-07-31 2011-02-03 Bce Inc. Controlling media conveyance at a customer receiver
JP4746693B2 (ja) * 2009-08-05 2011-08-10 株式会社東芝 情報送信装置
US10102352B2 (en) 2009-08-10 2018-10-16 Arm Limited Content usage monitor
US8189790B2 (en) * 2009-08-14 2012-05-29 Brocade Communications Systems, Inc. Developing initial and subsequent keyID information from a unique mediaID value
US20110145919A1 (en) * 2009-10-13 2011-06-16 Dafca, Inc. Method and apparatus for ensuring consistent system configuration in secure applications
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
GB0918479D0 (en) * 2009-10-22 2009-12-09 Qinetiq Ltd Data content checking
GB0918478D0 (en) * 2009-10-22 2009-12-09 Qinetiq Ltd Checking data content
US20110099591A1 (en) * 2009-10-28 2011-04-28 Men Long Secure wireless pairing of digital tv short-range transmitter and receiver
EP2336931B1 (fr) * 2009-11-18 2013-01-09 STMicroelectronics (Rousset) SAS Procédé de vérification de signature
US8584120B2 (en) * 2009-11-23 2013-11-12 Julian Michael Urbach Stream-based software application delivery and launching system
CA2782825C (en) 2009-12-04 2016-04-26 Divx, Llc Elementary bitstream cryptographic material transport systems and methods
EP2507991B1 (en) * 2009-12-04 2017-08-30 LG Electronics Inc. Digital broadcast receiver and booting method of digital broadcast receiver
CN101763875B (zh) * 2009-12-17 2011-09-21 中兴通讯股份有限公司 一种通过蓝牙控制字幕切换的系统及方法
US8769614B1 (en) * 2009-12-29 2014-07-01 Akamai Technologies, Inc. Security framework for HTTP streaming architecture
JP2013519295A (ja) 2010-02-03 2013-05-23 トムソン ライセンシング 符号化ビデオにおける有効な置換えデータ
EP2362635B1 (en) * 2010-02-25 2013-04-03 Irdeto B.V. Disabling a cleartext control word loading mechanism in a conditional access system
US8424099B2 (en) 2010-03-04 2013-04-16 Comcast Cable Communications, Llc PC secure video path
US8484451B2 (en) * 2010-03-11 2013-07-09 St-Ericsson Sa Method and apparatus for software boot revocation
US8370648B1 (en) * 2010-03-15 2013-02-05 Emc International Company Writing and reading encrypted data using time-based encryption keys
US8988456B2 (en) * 2010-03-25 2015-03-24 Apple Inc. Generating digital media presentation layouts dynamically based on image features
JP2011223281A (ja) * 2010-04-08 2011-11-04 Sony Corp 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
US9672363B2 (en) * 2010-04-14 2017-06-06 Mitsubishi Electric Corporation Security method for engineering tools and industrial products, and security system
WO2011139440A2 (en) * 2010-04-29 2011-11-10 Sonus Networks, Inc. Loosely-coupled encryption functionality for operating systems
US8539254B1 (en) 2010-06-01 2013-09-17 Xilinx, Inc. Method and integrated circuit for protecting against differential power analysis attacks
US8966253B1 (en) 2010-06-01 2015-02-24 Xilinx, Inc. Method and apparatus for authenticating a programmable device bitstream
US20120209770A1 (en) * 2010-07-08 2012-08-16 Subramanian Peruvemba System and Method for Monetizing Video Content
US8583944B1 (en) 2010-08-04 2013-11-12 Xilinx, Inc. Method and integrated circuit for secure encryption and decryption
US8234411B2 (en) * 2010-09-02 2012-07-31 Comcast Cable Communications, Llc Providing enhanced content
US8726403B2 (en) * 2010-09-02 2014-05-13 Verizon Patent And Licensing Inc. Secure video content provisioning using digital rights management
US8533849B2 (en) 2010-09-07 2013-09-10 International Business Machines Corporation Traitor tracing in a content protection system
US8832462B2 (en) 2010-09-08 2014-09-09 Xilinx, Inc. Protecting against differential power analysis attacks on sensitive data
US8650408B2 (en) 2010-09-08 2014-02-11 Xilinx, Inc. Protecting against differential power analysis attacks on decryption keys
JP2012084071A (ja) 2010-10-14 2012-04-26 Toshiba Corp デジタルコンテンツの保護方法、復号方法、再生装置、記憶媒体、暗号装置
WO2012049757A1 (ja) * 2010-10-14 2012-04-19 富士通株式会社 コンテンツデータ再生装置、更新管理方法、及び更新管理プログラム
US8584015B2 (en) 2010-10-19 2013-11-12 Apple Inc. Presenting media content items using geographical data
US8832686B2 (en) 2010-10-29 2014-09-09 Microsoft Corporation Inherited product activation for virtual machines
US8707448B2 (en) 2010-11-09 2014-04-22 International Business Machines Corporation Secure distribution of media data
US8543623B2 (en) 2010-11-09 2013-09-24 International Business Machines Corporation Secure distribution of media data
CN102469344B (zh) * 2010-11-16 2013-10-09 腾讯科技(深圳)有限公司 一种视频码流加、解密方法、装置及通信、存储终端
US8825846B2 (en) * 2010-12-10 2014-09-02 Max Goncharov Proactive intellectual property enforcement system
US9195810B2 (en) 2010-12-28 2015-11-24 Microsoft Technology Licensing, Llc Identifying factorable code
US8938619B2 (en) 2010-12-29 2015-01-20 Adobe Systems Incorporated System and method for decrypting content samples including distinct encryption chains
US8694548B2 (en) * 2011-01-02 2014-04-08 Cisco Technology, Inc. Defense-in-depth security for bytecode executables
US8677503B2 (en) * 2011-01-04 2014-03-18 Motorola Mobility Llc Mechanism for embedding device identification information into graphical user interface objects
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
US9667688B2 (en) * 2011-01-14 2017-05-30 Irdeto Bv Method and system for providing watermarked content to multiple end user devices
US8687807B2 (en) 2011-01-26 2014-04-01 Nagrastar, L.L.C. Cascading dynamic crypto periods
US10200756B2 (en) * 2011-02-11 2019-02-05 Sony Interactive Entertainment LLC Synchronization of favorites and/or recently viewed lists between registered content playback devices
US10114660B2 (en) 2011-02-22 2018-10-30 Julian Michael Urbach Software application delivery and launching system
US9864853B2 (en) 2011-02-23 2018-01-09 International Business Machines Corporation Enhanced security mechanism for authentication of users of a system
EP2503459B1 (en) * 2011-03-23 2021-01-20 Volvo Car Corporation Complete and compatible function
US8909941B1 (en) 2011-03-31 2014-12-09 Xilinx, Inc. Programmable integrated circuit and a method of enabling the detection of tampering with data provided to a programmable integrated circuit
US9239910B2 (en) * 2011-04-04 2016-01-19 Markany Inc. System and method for preventing the leaking of digital content
US9154826B2 (en) 2011-04-06 2015-10-06 Headwater Partners Ii Llc Distributing content and service launch objects to mobile devices
FR2974695B1 (fr) * 2011-04-29 2013-06-07 Tagattitude Module de gestion d'une transaction entre un terminal et un dispositif electronique
US9071924B2 (en) * 2011-06-20 2015-06-30 Aces & Eights Corporation Systems and methods for digital forensic triage
US20120331303A1 (en) * 2011-06-23 2012-12-27 Andersson Jonathan E Method and system for preventing execution of malware
RU2506638C2 (ru) * 2011-06-28 2014-02-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ аппаратного обнаружения и лечения неизвестного вредоносного программного обеспечения, установленного на персональном компьютере
US9721071B2 (en) * 2011-06-29 2017-08-01 Sonic Ip, Inc. Binding of cryptographic content using unique device characteristics with server heuristics
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
US20130006869A1 (en) * 2011-06-30 2013-01-03 Rovi Corp. Method to identify consumer electronics products
US8862889B2 (en) * 2011-07-02 2014-10-14 Eastcliff LLC Protocol for controlling access to encryption keys
US20130014058A1 (en) * 2011-07-07 2013-01-10 Gallagher Group Limited Security System
US20140149729A1 (en) 2011-07-18 2014-05-29 Ted A. Hadley Reset vectors for boot instructions
US8782420B2 (en) * 2011-07-22 2014-07-15 Netflix, Inc System and method for obfuscation initiation values of a cryptography protocol
US9064111B2 (en) * 2011-08-03 2015-06-23 Samsung Electronics Co., Ltd. Sandboxing technology for webruntime system
US9767840B2 (en) * 2011-08-18 2017-09-19 Apple Inc. Securing protected content during video playback
CN108989847B (zh) 2011-08-30 2021-03-09 帝威视有限公司 用于编码和流处理视频的系统和方法
US8818171B2 (en) 2011-08-30 2014-08-26 Kourosh Soroushian Systems and methods for encoding alternative streams of video for playback on playback devices having predetermined display aspect ratios and network connection maximum data rates
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8661527B2 (en) 2011-08-31 2014-02-25 Kabushiki Kaisha Toshiba Authenticator, authenticatee and authentication method
US8799647B2 (en) 2011-08-31 2014-08-05 Sonic Ip, Inc. Systems and methods for application identification
US8787570B2 (en) 2011-08-31 2014-07-22 Sonic Ip, Inc. Systems and methods for automatically genenrating top level index files
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
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US8893225B2 (en) 2011-10-14 2014-11-18 Samsung Electronics Co., Ltd. Method and apparatus for secure web widget runtime system
JP5275432B2 (ja) 2011-11-11 2013-08-28 株式会社東芝 ストレージメディア、ホスト装置、メモリ装置、及びシステム
US9047489B2 (en) * 2011-11-14 2015-06-02 Wave Systems Corp. Security systems and methods for social networking
JP5112555B1 (ja) 2011-12-02 2013-01-09 株式会社東芝 メモリカード、ストレージメディア、及びコントローラ
JP5204290B1 (ja) 2011-12-02 2013-06-05 株式会社東芝 ホスト装置、システム、及び装置
JP5100884B1 (ja) 2011-12-02 2012-12-19 株式会社東芝 メモリ装置
JP5204291B1 (ja) * 2011-12-02 2013-06-05 株式会社東芝 ホスト装置、装置、システム
US8751800B1 (en) 2011-12-12 2014-06-10 Google Inc. DRM provider interoperability
US9323902B2 (en) 2011-12-13 2016-04-26 Verance Corporation Conditional access using embedded watermarks
JP2013126225A (ja) 2011-12-16 2013-06-24 Internatl Business Mach Corp <Ibm> サーバから複数のクライアントにデータを配布するための方法、プログラムおよびシステム
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
US8645691B2 (en) * 2012-01-13 2014-02-04 Combined Conditional Access Development And Support, Llc System and method for securing data while minimizing bandwidth
JP5275482B2 (ja) 2012-01-16 2013-08-28 株式会社東芝 ストレージメディア、ホスト装置、メモリ装置、及びシステム
US9008308B2 (en) * 2012-02-08 2015-04-14 Vixs Systems, Inc Container agnostic decryption device and methods for use therewith
US9594578B2 (en) * 2012-02-28 2017-03-14 Red Hat, Inc. Hardware implementation of a virtual machine interpreter
JP5855234B2 (ja) * 2012-03-27 2016-02-09 三菱電機株式会社 デジタル放送受信装置及びデジタル放送受信方法
US8782727B1 (en) * 2012-04-04 2014-07-15 Google Inc. Adaptive video stream testing
US9489924B2 (en) 2012-04-19 2016-11-08 Nvidia Corporation Boot display device detection and selection techniques in multi-GPU devices
JP5377712B2 (ja) * 2012-05-31 2013-12-25 株式会社東芝 電子機器
US9235867B2 (en) * 2012-06-04 2016-01-12 Microsoft Technology Licensing, Llc Concurrent media delivery
US8762717B2 (en) * 2012-06-15 2014-06-24 Kabushiki Kaisha Toshiba Authentication device
US10706051B1 (en) * 2012-06-15 2020-07-07 Open Text Corporation Methods for updating reference count and shared objects in a concurrent system
US8990932B2 (en) * 2012-06-28 2015-03-24 Secureage Technology, Inc. System and method for prevention of malware attacks on data
US9258127B2 (en) * 2012-07-09 2016-02-09 Cisco Technology, Inc. System and method for providing cryptographic video verification
US20140325205A1 (en) * 2012-07-12 2014-10-30 Xsette Technology, Inc. Secure transmission between a source component and a node device
US9507933B2 (en) * 2012-08-01 2016-11-29 Mitsubishi Electric Corporation Program execution apparatus and program analysis apparatus
US9215269B2 (en) * 2012-08-23 2015-12-15 Amazon Technologies, Inc. Predictive caching for content
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
WO2014046974A2 (en) 2012-09-20 2014-03-27 Case Paul Sr Case secure computer architecture
WO2014052474A1 (en) * 2012-09-25 2014-04-03 Google Inc. Securing personal identification numbers for mobile payment applications by combining with random components
US12003514B2 (en) * 2012-10-02 2024-06-04 Mordecai Barkan Program verification and malware detection
US8768567B2 (en) * 2012-10-29 2014-07-01 Broadcom Corporation Intelligent power and control policy for automotive applications
JP5992295B2 (ja) * 2012-11-02 2016-09-14 株式会社東芝 通信制御装置、通信装置およびプログラム
US8898769B2 (en) 2012-11-16 2014-11-25 At&T Intellectual Property I, Lp Methods for provisioning universal integrated circuit cards
US8959331B2 (en) 2012-11-19 2015-02-17 At&T Intellectual Property I, Lp Systems for provisioning universal integrated circuit cards
US20140172690A1 (en) * 2012-12-17 2014-06-19 Sas Institute Inc. Systems and Methods For Matching Domain Specific Transactions
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9106692B2 (en) * 2013-01-31 2015-08-11 Northrop Grumman Systems Corporation System and method for advanced malware analysis
US9201811B2 (en) 2013-02-14 2015-12-01 Kabushiki Kaisha Toshiba Device and authentication method therefor
US8984294B2 (en) 2013-02-15 2015-03-17 Kabushiki Kaisha Toshiba System of authenticating an individual memory device via reading data including prohibited data and readable data
US11044076B2 (en) * 2013-02-25 2021-06-22 Hecusys, LLC Encrypted data processing
US9853979B1 (en) 2013-03-11 2017-12-26 Amazon Technologies, Inc. Immediate policy effectiveness in eventually consistent systems
WO2014159862A1 (en) 2013-03-14 2014-10-02 Headwater Partners I Llc Automated credential porting for mobile devices
US9262794B2 (en) 2013-03-14 2016-02-16 Verance Corporation Transactional video marking system
US9712531B2 (en) * 2013-03-14 2017-07-18 Wayne D. Lonstein Methods and systems for detecting, verifying, preventing and correcting or resolving unauthorized use of electronic media content
US9721086B2 (en) 2013-03-15 2017-08-01 Advanced Elemental Technologies, Inc. Methods and systems for secure and reliable identity-based computing
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9378065B2 (en) 2013-03-15 2016-06-28 Advanced Elemental Technologies, Inc. Purposeful computing
US20150012980A1 (en) * 2013-03-15 2015-01-08 Waldemar Mikolajczyk Systems and methods for secure singular computing environment
US10075384B2 (en) 2013-03-15 2018-09-11 Advanced Elemental Technologies, Inc. Purposeful computing
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
WO2014154288A1 (en) * 2013-03-28 2014-10-02 Irdeto B.V. Processing digital content
US9364754B1 (en) * 2013-05-16 2016-06-14 Kabam, Inc. System and method for facilitating communication between affiliated players in an online game via communication mediums external to the online game
WO2014184944A1 (ja) * 2013-05-17 2014-11-20 株式会社日立製作所 計算機システムの評価方法、計算機システムの制御方法及び計算機システム
US9058504B1 (en) * 2013-05-21 2015-06-16 Malwarebytes Corporation Anti-malware digital-signature verification
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
US9117056B2 (en) * 2013-06-11 2015-08-25 Vatari Corporation System and method for using digital strings to provide secure distribution of digital content
EP2827601A1 (fr) * 2013-07-19 2015-01-21 Nagravision S.A. Méthode et dispositif pour la protection des clés de déchiffrement d'un décodeur
US9276750B2 (en) * 2013-07-23 2016-03-01 Intel Corporation Secure processing environment measurement and attestation
US9251549B2 (en) 2013-07-23 2016-02-02 Verance Corporation Watermark extractor enhancements based on payload ranking
US9372965B2 (en) * 2013-07-24 2016-06-21 Erik Bargh Guffrey Methods and apparatus for displaying simulated digital content
WO2015017867A1 (en) * 2013-08-02 2015-02-05 Sirius Xm Radio Inc. Systems and methods for transmitting conditional access information
SE537697C2 (sv) * 2013-08-08 2015-09-29 Enigio Time Ab Förfarande för att skapa signaler för tidsstämpling av dokument och förfarande för tidsstämpling av dokument
US9367117B2 (en) * 2013-08-29 2016-06-14 Sony Interactive Entertainment America Llc Attention-based rendering and fidelity
US9036820B2 (en) 2013-09-11 2015-05-19 At&T Intellectual Property I, Lp System and methods for UICC-based secure communication
BR112016006928A2 (pt) * 2013-09-30 2017-08-01 Hewlett Packard Development Co codificação de informações em um elemento gráfico de uma imagem
US9124573B2 (en) 2013-10-04 2015-09-01 At&T Intellectual Property I, Lp Apparatus and method for managing use of secure tokens
US9208300B2 (en) 2013-10-23 2015-12-08 At&T Intellectual Property I, Lp Apparatus and method for secure authentication of a communication device
US9208334B2 (en) 2013-10-25 2015-12-08 Verance Corporation Content management using multiple abstraction layers
US9240994B2 (en) 2013-10-28 2016-01-19 At&T Intellectual Property I, Lp Apparatus and method for securely managing the accessibility to content and applications
US9313660B2 (en) 2013-11-01 2016-04-12 At&T Intellectual Property I, Lp Apparatus and method for secure provisioning of a communication device
US9240989B2 (en) 2013-11-01 2016-01-19 At&T Intellectual Property I, Lp Apparatus and method for secure over the air programming of a communication device
CN103546766B (zh) * 2013-11-14 2017-02-08 腾讯科技(成都)有限公司 视频处理方法和相关设备及通信系统
US9223965B2 (en) 2013-12-10 2015-12-29 International Business Machines Corporation Secure generation and management of a virtual card on a mobile device
US9235692B2 (en) 2013-12-13 2016-01-12 International Business Machines Corporation Secure application debugging
US9386067B2 (en) 2013-12-30 2016-07-05 Sonic Ip, Inc. Systems and methods for playing adaptive bitrate streaming content by multicast
US9294276B2 (en) 2014-02-10 2016-03-22 International Business Machines Corporation Countering server-based attacks on encrypted content
WO2015122020A1 (ja) 2014-02-17 2015-08-20 富士通株式会社 受信装置及び受信方法
US20150242597A1 (en) * 2014-02-24 2015-08-27 Google Inc. Transferring authorization from an authenticated device to an unauthenticated device
WO2015128960A1 (ja) * 2014-02-26 2015-09-03 三菱電機株式会社 車載制御装置および車載制御方法
FR3018130B1 (fr) * 2014-03-03 2016-03-25 Advanced Track & Trace Procede de marquage d'une matrice holographique et matrice holographique ainsi obtenue
US10671947B2 (en) * 2014-03-07 2020-06-02 Netflix, Inc. Distributing tasks to workers in a crowd-sourcing workforce
CN106170988A (zh) 2014-03-13 2016-11-30 凡瑞斯公司 使用嵌入式代码的交互式内容获取
EP3123335B1 (en) * 2014-03-26 2018-08-29 TiVo Solutions Inc. Multimedia pipeline architecture
US9537934B2 (en) 2014-04-03 2017-01-03 Facebook, Inc. Systems and methods for interactive media content exchange
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
US9672163B2 (en) 2014-04-17 2017-06-06 Thomson Licensing Field lockable memory
US8997226B1 (en) 2014-04-17 2015-03-31 Shape Security, Inc. Detection of client-side malware activity
US9713006B2 (en) 2014-05-01 2017-07-18 At&T Intellectual Property I, Lp Apparatus and method for managing security domains for a universal integrated circuit card
US9544388B1 (en) 2014-05-09 2017-01-10 Amazon Technologies, Inc. Client-side predictive caching for content
US10838378B2 (en) * 2014-06-02 2020-11-17 Rovio Entertainment Ltd Control of a computer program using media content
US9584530B1 (en) * 2014-06-27 2017-02-28 Wickr Inc. In-band identity verification and man-in-the-middle defense
US10068012B2 (en) * 2014-06-27 2018-09-04 Sonos, Inc. Music discovery
KR102277666B1 (ko) * 2014-06-30 2021-07-15 삼성전자 주식회사 영상처리장치 및 그 제어방법
US9819488B2 (en) * 2014-07-10 2017-11-14 Ohio State Innovation Foundation Generation of encryption keys based on location
SG11201609457UA (en) 2014-08-07 2016-12-29 Sonic Ip Inc Systems and methods for protecting elementary bitstreams incorporating independently encoded tiles
US20170251254A1 (en) * 2014-08-27 2017-08-31 Verance Corporation Tracing piracy of live broadcasts
US9830479B2 (en) * 2014-09-16 2017-11-28 Nxp Usa, Inc. Key storage and revocation in a secure memory system
US10356303B1 (en) 2014-10-07 2019-07-16 State Farm Mutual Automobile Insurance Company Systems and methods for controlling smart devices based upon image data from image sensors
DE102015210734B4 (de) 2014-10-31 2021-03-04 Hewlett Packard Enterprise Development Lp Verwaltung kryptographischer schlüssel
US10360051B2 (en) * 2014-12-22 2019-07-23 International Business Machines Corporation Emulated device firmware testable by native operating system tools
CN104539865B (zh) * 2014-12-31 2018-01-09 福建鑫诺通讯技术有限公司 一种二维码解码库与配套摄像头绑定的方法及其系统
WO2016112112A1 (en) 2015-01-06 2016-07-14 Sonic Ip, Inc. Systems and methods for encoding and sharing content between devices
US11269621B2 (en) * 2015-01-27 2022-03-08 Arris Enterprises Llc Obfuscation for protection of streaming media and other data flows
US20160253501A1 (en) * 2015-02-26 2016-09-01 Dell Products, Lp Method for Detecting a Unified Extensible Firmware Interface Protocol Reload Attack and System Therefor
WO2016138493A1 (en) 2015-02-27 2016-09-01 Sonic Ip, Inc. Systems and methods for frame duplication and frame extension in live video encoding and streaming
ES2881632T3 (es) * 2015-02-27 2021-11-30 Ericsson Telefon Ab L M Disposiciones de seguridad en la comunicación entre un dispositivo de comunicación y un dispositivo de red
US9674162B1 (en) 2015-03-13 2017-06-06 Amazon Technologies, Inc. Updating encrypted cryptographic key pair
US9326046B1 (en) 2015-03-19 2016-04-26 Amazon Technologies, Inc. Uninterrupted playback of video streams using lower quality cached files
US9479340B1 (en) 2015-03-30 2016-10-25 Amazon Technologies, Inc. Controlling use of encryption keys
US20180027301A1 (en) * 2015-04-21 2018-01-25 Sharp Kabushiki Kaisha Methods for media playback state information exchange
US10690762B2 (en) 2015-05-29 2020-06-23 Qualcomm Incorporated Systems and methods for determining an upper bound on the distance between devices
US10650142B1 (en) * 2015-06-24 2020-05-12 Ca, Inc. Systems and methods for detecting potentially malicious hardware-related anomalies
US10484513B2 (en) 2015-07-17 2019-11-19 Nsgdatacom, Inc. System, method, and computer program product for connecting or coupling audio communications systems over a software defined wide area network
US10642962B2 (en) 2015-07-28 2020-05-05 Western Digital Technologies, Inc. Licensable function for securing stored data
EP3136268B1 (de) * 2015-08-31 2019-06-19 Siemens Aktiengesellschaft Verfahren zur sicherheitsanalyse einer logischen schaltung
US10045092B2 (en) 2015-10-16 2018-08-07 Disney Enterprises, Inc. Device-resident content protection
US10069833B2 (en) * 2015-11-29 2018-09-04 International Business Machines Corporation Computer network cross-boundary protection
US11025407B2 (en) * 2015-12-04 2021-06-01 Verisign, Inc. Hash-based digital signatures for hierarchical internet public key infrastructure
US10657634B2 (en) * 2015-12-05 2020-05-19 Indiana University Research And Technology Corporation Systems and methods for image processing
US10320897B2 (en) * 2015-12-15 2019-06-11 Microsoft Technology Licensing, Llc Automatic system response to external field-replaceable unit (FRU) process
US10181956B2 (en) 2015-12-21 2019-01-15 Hewlett-Packard Development Company, L.P. Key revocation
WO2017117148A1 (en) * 2015-12-29 2017-07-06 Radical App Llp A system, method, and computer program product for securely delivering content between storage mediums
US10075292B2 (en) 2016-03-30 2018-09-11 Divx, Llc Systems and methods for quick start-up of playback
KR102550672B1 (ko) * 2016-04-05 2023-07-04 삼성전자주식회사 영상처리장치 및 그 제어방법
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
US10395231B2 (en) * 2016-06-27 2019-08-27 Altria Client Services Llc Methods, systems, apparatuses, and non-transitory computer readable media for validating encoded information
US11222263B2 (en) * 2016-07-28 2022-01-11 Samsung Electronics Co., Ltd. Neural network method and apparatus
KR102608467B1 (ko) * 2016-07-28 2023-12-04 삼성전자주식회사 뉴럴 네트워크의 경량화 방법, 이를 이용한 인식 방법, 및 그 장치
TWI616095B (zh) * 2016-08-26 2018-02-21 配信裝置、配信系統、配信方法、電子機器、播放裝置及接收程式
JP2018056840A (ja) * 2016-09-29 2018-04-05 セイコーエプソン株式会社 印刷装置、印刷装置の制御方法、及びネットワークシステム
US11763343B2 (en) * 2016-11-04 2023-09-19 Google Llc Systems and methods for validating interaction with third-party interactive media
WO2018117747A1 (en) * 2016-12-22 2018-06-28 Samsung Electronics Co., Ltd. Electronic device, method for controlling thereof and computer-readable recording medium
US10965967B2 (en) * 2016-12-31 2021-03-30 Turner Broadcasting System, Inc. Publishing a disparate per-client live media output stream based on dynamic insertion of targeted non-programming content and customized programming content
US11051061B2 (en) 2016-12-31 2021-06-29 Turner Broadcasting System, Inc. Publishing a disparate live media output stream using pre-encoded media assets
US11503352B2 (en) 2016-12-31 2022-11-15 Turner Broadcasting System, Inc. Dynamic scheduling and channel creation based on external data
US12022142B2 (en) 2016-12-31 2024-06-25 Turner Broadcasting System, Inc. Publishing a plurality of disparate live media output stream manifests using live input streams and pre-encoded media assets
US10992973B2 (en) 2016-12-31 2021-04-27 Turner Broadcasting System, Inc. Publishing a plurality of disparate live media output stream manifests using live input streams and pre-encoded media assets
US10075753B2 (en) 2016-12-31 2018-09-11 Turner Broadcasting System, Inc. Dynamic scheduling and channel creation based on user selection
US11109086B2 (en) 2016-12-31 2021-08-31 Turner Broadcasting System, Inc. Publishing disparate live media output streams in mixed mode
US11546400B2 (en) 2016-12-31 2023-01-03 Turner Broadcasting System, Inc. Generating a live media segment asset
US11962821B2 (en) 2016-12-31 2024-04-16 Turner Broadcasting System, Inc. Publishing a disparate live media output stream using pre-encoded media assets
US10856016B2 (en) 2016-12-31 2020-12-01 Turner Broadcasting System, Inc. Publishing disparate live media output streams in mixed mode based on user selection
US11134309B2 (en) 2016-12-31 2021-09-28 Turner Broadcasting System, Inc. Creation of channels using pre-encoded media assets
US11051074B2 (en) 2016-12-31 2021-06-29 Turner Broadcasting System, Inc. Publishing disparate live media output streams using live input streams
US11038932B2 (en) 2016-12-31 2021-06-15 Turner Broadcasting System, Inc. System for establishing a shared media session for one or more client devices
US10284885B1 (en) 2017-01-30 2019-05-07 Noa, Inc. Method and apparatus for redacting video for compression and identification of releasing party
US10789571B1 (en) * 2017-02-17 2020-09-29 Corelogic Solutions, Llc Persona-based application platform
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
US10749692B2 (en) 2017-05-05 2020-08-18 Honeywell International Inc. Automated certificate enrollment for devices in industrial control systems or other systems
US10827220B2 (en) 2017-05-25 2020-11-03 Turner Broadcasting System, Inc. Client-side playback of personalized media content generated dynamically for event opportunities in programming media content
US10902098B2 (en) * 2017-07-11 2021-01-26 Northwestern University Logic encryption for integrated circuit protection
US10922385B2 (en) * 2017-08-02 2021-02-16 Dell Products, L.P. Generating license files in an information handling system
US10607035B2 (en) * 2017-08-31 2020-03-31 Yeo Messaging Ltd. Method of displaying content on a screen of an electronic processing device
US11620657B2 (en) * 2017-10-03 2023-04-04 Visa International Service Association System, method, and computer program product for authenticating identification documents
WO2019112574A1 (en) * 2017-12-06 2019-06-13 Hewlett-Packard Development Company, L.P. Grids for led displays
US10826690B2 (en) * 2017-12-28 2020-11-03 Intel Corporation Technologies for establishing device locality
US10825318B1 (en) 2018-04-09 2020-11-03 State Farm Mutual Automobile Insurance Company Sensing peripheral heuristic evidence, reinforcement, and engagement system
US10810324B2 (en) 2018-04-20 2020-10-20 At&T Intellectual Property I, L.P. Methods, systems and algorithms for providing anonymization
US10783857B2 (en) * 2018-08-02 2020-09-22 Dell Products, Lp Apparatus and method for fast memory validation in a baseboard management controller
EP3611854B1 (en) * 2018-08-13 2021-09-22 Nokia Technologies Oy Method and apparatus for defending against adversarial attacks
CN110858246B (zh) * 2018-08-24 2023-04-11 阿里巴巴集团控股有限公司 安全代码空间的认证方法和系统、及其注册方法
US11750395B2 (en) 2018-09-03 2023-09-05 Icncast Co., Ltd System and method for blockchain-based multi-factor security authentication between mobile terminal and IoT device
US10402817B1 (en) * 2018-10-12 2019-09-03 Capital One Services, Llc Relaxed fraud detection for transactions using virtual transaction cards
US11082734B2 (en) 2018-12-21 2021-08-03 Turner Broadcasting System, Inc. Publishing a disparate live media output stream that complies with distribution format regulations
US10880606B2 (en) 2018-12-21 2020-12-29 Turner Broadcasting System, Inc. Disparate live media output stream playout and broadcast distribution
US10873774B2 (en) 2018-12-22 2020-12-22 Turner Broadcasting System, Inc. Publishing a disparate live media output stream manifest that includes one or more media segments corresponding to key events
US11184149B2 (en) * 2019-02-19 2021-11-23 International Business Machines Corporation Computing range queries over encrypted data
US11323270B2 (en) * 2019-02-24 2022-05-03 Ondefend Holdings, Llc System and apparatus for providing authenticable electronic communication
US11102010B2 (en) * 2019-02-24 2021-08-24 Ondefend Holdings, Llc System and apparatus for providing authenticable electronic communication
US11539531B2 (en) 2019-02-24 2022-12-27 Ondefend Holdings, Llc System and apparatus for providing authenticable electronic communication
EP4398582A3 (en) 2019-03-21 2024-08-07 DivX, LLC Systems and methods for multimedia swarms
CN113515727B (zh) * 2019-05-13 2024-05-07 创新先进技术有限公司 基于区块链的图片处理方法及装置
US10922422B2 (en) 2019-05-13 2021-02-16 Advanced New Technologies Co., Ltd. Blockchain-based image processing method and apparatus
US10963542B2 (en) 2019-05-13 2021-03-30 Advanced New Technologies Co., Ltd. Blockchain-based image processing method and apparatus
US10904251B2 (en) 2019-05-17 2021-01-26 Advanced New Technologies Co., Ltd. Blockchain-based copyright protection method and apparatus, and electronic device
JP7184188B2 (ja) * 2019-06-27 2022-12-06 京セラドキュメントソリューションズ株式会社 画像形成装置、ファームウェアの改竄防止方法及び改竄防止プログラムを記憶したコンピューター読取可能な非一時的な記録媒体
US11450165B2 (en) * 2019-07-03 2022-09-20 Sebastien de Ghellinck Blockchain-based system and method for securing transactions and controlling access to worksites
CN110493261B (zh) * 2019-09-16 2021-07-27 腾讯科技(深圳)有限公司 基于区块链的验证码获取方法、客户端、服务器及存储介质
CN114503105A (zh) * 2019-09-25 2022-05-13 联邦科学和工业研究组织 用于浏览器应用的密码服务
KR102289018B1 (ko) * 2019-12-09 2021-08-11 이승현 포렌식 마크가 적용된 인쇄물 제작 관리 방법 및 그 장치와 시스템
US11228423B2 (en) 2020-01-12 2022-01-18 Advanced New Technologies Co., Ltd. Method and device for security assessment of encryption models
US11546133B2 (en) * 2020-03-31 2023-01-03 Intuit Inc. Validation as a service for third parties using homomorphic encryption
US11423160B2 (en) 2020-04-16 2022-08-23 Bank Of America Corporation System for analysis and authorization for use of executable environment data in a computing system using hash outputs
US11528276B2 (en) 2020-04-16 2022-12-13 Bank Of America Corporation System for prevention of unauthorized access using authorized environment hash outputs
US11425123B2 (en) 2020-04-16 2022-08-23 Bank Of America Corporation System for network isolation of affected computing systems using environment hash outputs
US11481484B2 (en) * 2020-04-16 2022-10-25 Bank Of America Corporation Virtual environment system for secure execution of program code using cryptographic hashes
CN111601158B (zh) * 2020-05-14 2021-11-02 青岛海信传媒网络技术有限公司 一种流媒体管道切音轨的优化方法及显示设备
CN111601144B (zh) * 2020-05-19 2021-10-08 青岛海信传媒网络技术有限公司 流媒体文件播放方法及显示设备
US11314876B2 (en) 2020-05-28 2022-04-26 Bank Of America Corporation System and method for managing built-in security for content distribution
US11671314B2 (en) * 2020-06-11 2023-06-06 Dell Products L.P. Configuring HCI management network via management controller
DE102020120656A1 (de) 2020-08-05 2022-02-10 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Vorrichtung und Verfahren zur Authentifizierung in einem Steuergerät
WO2022040574A1 (en) 2020-08-21 2022-02-24 Beam, Inc. Integrating overlaid digital content into displayed data via graphics processing circuitry
US11663300B2 (en) * 2020-10-09 2023-05-30 Capital One Services, Llc Systems and methods for localized file transfer with file degradation
US11870747B2 (en) * 2020-11-09 2024-01-09 Mitel Networks Corporation Blockchain-driven certification of iterative electronic communications
US20220166762A1 (en) * 2020-11-25 2022-05-26 Microsoft Technology Licensing, Llc Integrated circuit for obtaining enhanced privileges for a network-based resource and performing actions in accordance therewith
CN112714351A (zh) * 2020-12-14 2021-04-27 杭州趣链科技有限公司 一种取证方法、取证装置及服务器
US11797713B2 (en) 2020-12-16 2023-10-24 International Business Machines Corporation Systems and methods for dynamic control of a secure mode of operation in a processor
US12008149B2 (en) 2020-12-16 2024-06-11 International Business Machines Corporation Method and system for on demand control of hardware support for software pointer authentification in a computing system
US11880229B2 (en) * 2020-12-21 2024-01-23 Micron Technology, Inc. Security capsule for enabling restricted features of a memory device
US11810062B2 (en) * 2020-12-30 2023-11-07 Dell Products L.P. Validating secure modifications to information handling systems
US11269624B1 (en) * 2021-01-12 2022-03-08 International Business Machines Corporation Automated software application bundling
US11609750B2 (en) * 2021-01-25 2023-03-21 Rockwell Automation Technologies, Inc. Industrial automation multi-developer control code synchronization
CN113157309B (zh) * 2021-01-26 2024-02-13 上海商米科技集团股份有限公司 一种利用nvram保存激活文件的软件设计方法
US20220284113A1 (en) * 2021-03-05 2022-09-08 Eclypses, Inc. System and method for securely transferring data using encryption keys
US11656866B2 (en) 2021-03-19 2023-05-23 Rockwell Automation Technologies, Inc. Industrial automation distributed project control with milestone rollback
US11481933B1 (en) 2021-04-08 2022-10-25 Mobeus Industries, Inc. Determining a change in position of displayed digital content in subsequent frames via graphics processing circuitry
US11586835B2 (en) 2021-04-30 2023-02-21 Mobeus Industries, Inc. Integrating overlaid textual digital content into displayed data via graphics processing circuitry using a frame buffer
US11483156B1 (en) 2021-04-30 2022-10-25 Mobeus Industries, Inc. Integrating digital content into displayed data on an application layer via processing circuitry of a server
US11477020B1 (en) 2021-04-30 2022-10-18 Mobeus Industries, Inc. Generating a secure random number by determining a change in parameters of digital content in subsequent frames via graphics processing circuitry
US11601276B2 (en) 2021-04-30 2023-03-07 Mobeus Industries, Inc. Integrating and detecting visual data security token in displayed data via graphics processing circuitry using a frame buffer
US11682101B2 (en) 2021-04-30 2023-06-20 Mobeus Industries, Inc. Overlaying displayed digital content transmitted over a communication network via graphics processing circuitry using a frame buffer
US11475610B1 (en) 2021-04-30 2022-10-18 Mobeus Industries, Inc. Controlling interactivity of digital content overlaid onto displayed data via graphics processing circuitry using a frame buffer
US11562153B1 (en) 2021-07-16 2023-01-24 Mobeus Industries, Inc. Systems and methods for recognizability of objects in a multi-layer display
JP7043672B1 (ja) * 2021-10-08 2022-03-29 チームラボ株式会社 非代替性トークンを利用したコンテンツ出力システム、方法及びプログラム
EP4441642A1 (en) * 2021-11-29 2024-10-09 Verimatrix, Inc. Systems and methods for injecting code for tamper detection in a playback application
TWI808670B (zh) * 2022-03-07 2023-07-11 華碩電腦股份有限公司 視覺化顯示音訊的方法及其系統
WO2023225078A1 (en) 2022-05-20 2023-11-23 Advanced Elemental Technologies, Inc. Systems and methods for a connected computing resource and event/activity identification information infrastructure using near existential or existential biometric identification of humans
CN115001710B (zh) * 2022-06-01 2024-06-25 山东福生佳信科技股份有限公司 一种基于签名参数更新的视频播放请求管理方法
US20240070239A1 (en) * 2022-08-30 2024-02-29 Nuance Communications, Inc. System and Method for Watermarking Data for Tracing Access
US20240070299A1 (en) * 2022-08-31 2024-02-29 Youjean Cho Revealing collaborative object using countdown timer

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010021926A1 (en) 1996-01-11 2001-09-13 Paul B. Schneck System for controlling access and distribution of digital property

Family Cites Families (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4405829A (en) 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
US4598288A (en) 1979-04-16 1986-07-01 Codart, Inc. Apparatus for controlling the reception of transmitted programs
US4658093A (en) 1983-07-11 1987-04-14 Hellman Martin E Software distribution system
US4890319A (en) 1984-09-21 1989-12-26 Scientific-Atlantic, Inc. Method for controlling copying of protected information transmitted over a communications link
JPH01188659A (ja) 1988-01-22 1989-07-27 Toyota Motor Corp セラミック溶射層の形成方法
US5214702A (en) * 1988-02-12 1993-05-25 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US5191611A (en) * 1989-04-03 1993-03-02 Lang Gerald S Method and apparatus for protecting material on storage media and for transferring material on storage media to various recipients
US5172413A (en) 1990-12-20 1992-12-15 Sasktel Secure hierarchial video delivery system and method
JP3073590B2 (ja) * 1992-03-16 2000-08-07 富士通株式会社 電子化データ保護システム、使用許諾者側装置および使用者側装置
JPH0644755A (ja) 1992-07-24 1994-02-18 Sony Corp ビデオ信号の伝送方法及び記録装置
JP3010930B2 (ja) 1992-09-24 2000-02-21 松下電器産業株式会社 記録再生装置
US5315448A (en) 1993-03-18 1994-05-24 Macrovision Corporation Copy protection for hybrid digital video tape recording and unprotected source material
US5418553A (en) * 1993-03-26 1995-05-23 Eastman Kodak Company Thermal print head with optimum thickness of the thermal insulation under-layer and method of designing the same
IL106796A (en) 1993-08-25 1997-11-20 Algorithmic Res Ltd Broadcast encryption
US5343527A (en) 1993-10-27 1994-08-30 International Business Machines Corporation Hybrid encryption method and system for protecting reusable software components
US5450489A (en) * 1993-10-29 1995-09-12 Time Warner Entertainment Co., L.P. System and method for authenticating software carriers
US5822436A (en) 1996-04-25 1998-10-13 Digimarc Corporation Photographic products and methods employing embedded information
JP2853727B2 (ja) 1994-02-22 1999-02-03 日本ビクター株式会社 再生プロテクト方法及びプロテクト再生装置
US5553139A (en) 1994-04-04 1996-09-03 Novell, Inc. Method and apparatus for electronic license distribution
US5521812A (en) * 1994-05-06 1996-05-28 David L. Feder Emergency information apparatus and method
FR2721732B1 (fr) 1994-06-22 1996-08-30 Solaic Sa Carte à mémoire sans contact dont le circuit électronique comporte un module.
US5513260A (en) 1994-06-29 1996-04-30 Macrovision Corporation Method and apparatus for copy protection for various recording media
US6041316A (en) * 1994-07-25 2000-03-21 Lucent Technologies Inc. Method and system for ensuring royalty payments for data delivered over a network
US5574787A (en) 1994-07-25 1996-11-12 Ryan; John O. Apparatus and method for comprehensive copy protection for video platforms and unprotected source material
US5606612A (en) 1994-07-25 1997-02-25 General Instrument Corporation, Jerrold Communications Division Method and apparatus for television signal scrambling using a line expansion technique
US5590194A (en) 1994-08-09 1996-12-31 Macrovision Corporation Method of and apparatus for scrambling a video signal with full network transmission and recording capability
EP1691315A1 (en) 1994-10-27 2006-08-16 Intarsia Software LLC Data copyright management system
US5638443A (en) * 1994-11-23 1997-06-10 Xerox Corporation System for controlling the distribution and use of composite digital works
DE69521977T2 (de) 1994-12-13 2002-04-04 International Business Machines Corp., Armonk Verfahren und System zur gesicherten Programmenverteilung
US5745569A (en) 1996-01-17 1998-04-28 The Dice Company Method for stega-cipher protection of computer code
EP1526472A3 (en) 1995-02-13 2006-07-26 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5613004A (en) 1995-06-07 1997-03-18 The Dice Company Steganographic method and device
EP0769780B1 (en) * 1995-10-18 2003-01-29 Matsushita Electric Industrial Co., Ltd. Information recording device and information output device
JPH09163339A (ja) 1995-12-06 1997-06-20 Toshiba Corp 画像処理端末装置及び画像検出装置並びに画像処理装置
DE69632965T2 (de) 1996-01-03 2005-08-25 Sony Electronics Inc. Kopiergeschütztes aufnahme- und wiedergabesystem
US5862218A (en) 1996-04-04 1999-01-19 Fotonation, Inc. Method and apparatus for in-camera image marking and authentication
US5802592A (en) * 1996-05-31 1998-09-01 International Business Machines Corporation System and method for protecting integrity of alterable ROM using digital signatures
US5892899A (en) 1996-06-13 1999-04-06 Intel Corporation Tamper resistant methods and apparatus
US6064967A (en) 1996-11-08 2000-05-16 Speicher; Gregory J. Internet-audiotext electronic advertising system with inventory management
WO1998029869A1 (en) 1996-12-17 1998-07-09 Leske Lawrence A Access to information using protectable authorization messages
US6073124A (en) 1997-01-29 2000-06-06 Shopnow.Com Inc. Method and system for securely incorporating electronic information into an online purchasing application
US6542610B2 (en) * 1997-01-30 2003-04-01 Intel Corporation Content protection for digital transmission systems
US6141681A (en) * 1997-03-07 2000-10-31 Advanced Micro Devices, Inc. Method of and apparatus for transferring and interpreting a data package
US6314565B1 (en) 1997-05-19 2001-11-06 Intervu, Inc. System and method for automated identification, retrieval, and installation of multimedia software components
US6272631B1 (en) * 1997-06-30 2001-08-07 Microsoft Corporation Protected storage of core data secrets
JP3803178B2 (ja) 1997-09-08 2006-08-02 株式会社東芝 画像形成システム
US6393568B1 (en) * 1997-10-23 2002-05-21 Entrust Technologies Limited Encryption and decryption system and method with content analysis provision
US6216152B1 (en) * 1997-10-27 2001-04-10 Sun Microsystems, Inc. Method and apparatus for providing plug in media decoders
JPH11185383A (ja) 1997-12-24 1999-07-09 Ricoh Co Ltd 光ディスク記録装置と光ディスク記録装置に対する装置識別情報の付与方法
JP4496440B2 (ja) * 1998-01-12 2010-07-07 ソニー株式会社 暗号化コンテンツ送信装置
JP3569123B2 (ja) 1998-02-13 2004-09-22 松下電器産業株式会社 管理基準作成方法、及び記録媒体
US6587948B1 (en) * 1998-02-13 2003-07-01 Sony Corporation Recording apparatus, recording medium, playback apparatus, recording method and playback method
US6141316A (en) * 1998-03-02 2000-10-31 Eastman Kodak Company Optical disk for high speed data recording and playback
JP2000067522A (ja) 1998-08-25 2000-03-03 Sony Corp 情報再生装置および方法、情報記録装置および方法、提供媒体、並びに記録媒体
ATE343169T1 (de) * 1998-08-31 2006-11-15 Irdeto Access Bv System um verschlüsselte daten zu liefern, system um verschlüsselte daten zu entschlüsseln und verfahren um eine kommunikationsschnittstelle in einem solchen system zur verfügung zu stellen
EP0984346A1 (en) * 1998-09-02 2000-03-08 Hitachi Europe Limited Copy protection apparatus and method
JP2000076787A (ja) 1998-09-02 2000-03-14 Sony Corp 情報記録再生装置および方法、並びに提供媒体
JP2000090567A (ja) 1998-09-09 2000-03-31 Sony Corp ディジタル信号の伝送装置、ディジタル信号の伝送方法及びディジタル信号の記録媒体
JP4209564B2 (ja) 1998-09-22 2009-01-14 パナソニック株式会社 光ディスク、および、光ディスクの追記情報の記録再生方法並びに光ディスクの再生装置と記録再生装置
CN1231911C (zh) 1998-10-08 2005-12-14 松下电器产业株式会社 用于实现超发行的系统
US6487663B1 (en) * 1998-10-19 2002-11-26 Realnetworks, Inc. System and method for regulating the transmission of media data
US6820063B1 (en) * 1998-10-26 2004-11-16 Microsoft Corporation Controlling access to content based on certificates and access predicates
SE513356C2 (sv) * 1998-11-20 2000-08-28 Ericsson Telefon Ab L M Förfarande och anordning för kryptering av bilder
JP2000175188A (ja) 1998-12-01 2000-06-23 Victor Co Of Japan Ltd 情報記録装置
US20020026638A1 (en) 2000-08-31 2002-02-28 Eldering Charles A. Internet-based electronic program guide advertisement insertion method and apparatus
US6470450B1 (en) * 1998-12-23 2002-10-22 Entrust Technologies Limited Method and apparatus for controlling application access to limited access based data
EP1069567A1 (en) * 1999-02-08 2001-01-17 Sony Corporation Information recording/reproducing system
JP2000251395A (ja) 1999-02-26 2000-09-14 Matsushita Electric Ind Co Ltd 記録媒体、記録装置及び再生装置
US6973444B1 (en) 1999-03-27 2005-12-06 Microsoft Corporation Method for interdependently validating a digital content package and a corresponding digital license
JP3751163B2 (ja) 1999-06-16 2006-03-01 株式会社神戸製鋼所 データ再生装置,データ供給装置,及びデータ供給システム
US6529950B1 (en) * 1999-06-17 2003-03-04 International Business Machines Corporation Policy-based multivariate application-level QoS negotiation for multimedia services
JP3689593B2 (ja) 1999-07-02 2005-08-31 シャープ株式会社 コンテンツ流通管理装置およびプログラム記録媒体
US7065216B1 (en) * 1999-08-13 2006-06-20 Microsoft Corporation Methods and systems of protecting digital content
WO2001015162A2 (en) 1999-08-13 2001-03-01 Microsoft Corporation Methods and systems of protecting digital content
EP1076279A1 (en) 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
JP2001057019A (ja) 1999-08-17 2001-02-27 Sony Corp 情報記録媒体および情報処理装置
WO2001015380A1 (fr) 1999-08-20 2001-03-01 Sony Corporation Systeme et procede d'emission d'informations, lecteur et procede d'acces, support d'enregistrement d'informations, et dispositif et procede de production de supports d'enregistrement
US6289455B1 (en) 1999-09-02 2001-09-11 Crypotography Research, Inc. Method and apparatus for preventing piracy of digital content
US6164853A (en) * 1999-09-09 2000-12-26 Foote; Lisa L. Ergonomic housing for a handheld device
KR20030044898A (ko) * 1999-10-18 2003-06-09 인텔 코오퍼레이션 착탈가능한 대용량 저장 매체로부터 컨텐츠의 안전한 자동재생을 위한 방법 및 장치
JP2001175606A (ja) * 1999-12-20 2001-06-29 Sony Corp データ処理装置、データ処理機器およびその方法
JP4348818B2 (ja) * 2000-03-10 2009-10-21 ソニー株式会社 データ配信システムとその方法およびデータ記録媒体
US6687384B1 (en) * 2000-03-27 2004-02-03 Sarnoff Corporation Method and apparatus for embedding data in encoded digital bitstreams
BR0106326A (pt) * 2000-05-10 2002-03-19 Koninkl Philips Electronics Nv Processos para distribuição controlada de informação digital, particularmente áudio, e para prover códigos de acesso personalizados, portadora de informação, sinal de acesso, dispositivo de renderização, produto de software de controle de acesso, e, portadora de gravação
US7412605B2 (en) * 2000-08-28 2008-08-12 Contentguard Holdings, Inc. Method and apparatus for variable encryption of data
JP2002132141A (ja) * 2000-10-20 2002-05-09 Sony Corp データ記憶装置、およびデータ記録方法、データ再生方法、並びにプログラム提供媒体
US7111175B2 (en) * 2000-12-28 2006-09-19 Intel Corporation Method and apparatus for verifying the integrity of a media key block
US20030018895A1 (en) * 2001-02-02 2003-01-23 Morrison Gregg B. Processes and systems for enabling secure and controlled distribution and use of information
US8112311B2 (en) * 2001-02-12 2012-02-07 Ochoa Optics Llc Systems and methods for distribution of entertainment and advertising content
US7088822B2 (en) * 2001-02-13 2006-08-08 Sony Corporation Information playback device, information recording device, information playback method, information recording method, and information recording medium and program storage medium used therewith
US20020116533A1 (en) * 2001-02-20 2002-08-22 Holliman Matthew J. System for providing a multimedia peer-to-peer computing platform
US7987510B2 (en) * 2001-03-28 2011-07-26 Rovi Solutions Corporation Self-protecting digital content
US20020141582A1 (en) 2001-03-28 2002-10-03 Kocher Paul C. Content security layer providing long-term renewable security
US7058284B2 (en) * 2001-03-29 2006-06-06 Matsushita Electric Industrial Co., Ltd. Universal multimedia optic disc player and its application for revocable copy protection
US6957343B2 (en) 2001-03-30 2005-10-18 Intel Corporation Validating keying material by using a validation area of read-only media to prevent playback of unauthorized copies of content stored on the media
US20040156613A1 (en) * 2001-07-06 2004-08-12 Hempel Andrew Kosamir Henry Method and system for computer software application execution
JP2003085321A (ja) * 2001-09-11 2003-03-20 Sony Corp コンテンツ利用権限管理システム、コンテンツ利用権限管理方法、および情報処理装置、並びにコンピュータ・プログラム
US7171466B2 (en) * 2001-09-27 2007-01-30 Koninklijke Philips Electronics N. V. Method and system and article of manufacture for IP radio stream interception for notification of events using synthesized audio
US6889207B2 (en) * 2002-06-18 2005-05-03 Bellsouth Intellectual Property Corporation Content control in a device environment
US7428751B2 (en) * 2002-12-05 2008-09-23 Microsoft Corporation Secure recovery in a serverless distributed file system
US7302057B2 (en) * 2003-01-31 2007-11-27 Realnetworks, Inc. Method and process for transmitting video content
US8055910B2 (en) 2003-07-07 2011-11-08 Rovi Solutions Corporation Reprogrammable security for controlling piracy and enabling interactive content

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010021926A1 (en) 1996-01-11 2001-09-13 Paul B. Schneck System for controlling access and distribution of digital property

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101618169B1 (ko) * 2013-12-02 2016-05-04 (주)닥터소프트 소프트웨어 식별자 생성 방법, 서버 및 서버의 소프트웨어 관리 방법
WO2022080547A1 (ko) * 2020-10-15 2022-04-21 주식회사 디알엠인사이드 웹 브라우저 기반 컨텐츠의 보안을 위한 서비스 제공 방법
WO2022203180A1 (ko) * 2021-03-23 2022-09-29 삼성전자주식회사 뉴럴 네트워크에 대한 해시 인증을 수행하는 전자 장치 및 그 동작 방법

Also Published As

Publication number Publication date
EP2557521A2 (en) 2013-02-13
EP1642206A4 (en) 2008-10-01
EP2557521A3 (en) 2014-01-01
AU2004258523B2 (en) 2009-12-10
US20110255690A1 (en) 2011-10-20
CN101241735B (zh) 2012-07-18
KR20060031681A (ko) 2006-04-12
EP2570918A1 (en) 2013-03-20
JP2011086313A (ja) 2011-04-28
WO2005008385A2 (en) 2005-01-27
AU2004258523A1 (en) 2005-01-27
JP5192556B2 (ja) 2013-05-08
US8571993B2 (en) 2013-10-29
US8131646B2 (en) 2012-03-06
CN101241735A (zh) 2008-08-13
US20070033419A1 (en) 2007-02-08
EP1642206A2 (en) 2006-04-05
AU2010200153A1 (en) 2010-02-04
US20080137848A1 (en) 2008-06-12
WO2005008385A3 (en) 2005-05-19
EP1642206B1 (en) 2017-12-20
JP2007535718A (ja) 2007-12-06
US8055910B2 (en) 2011-11-08

Similar Documents

Publication Publication Date Title
KR101081729B1 (ko) 저작권 침해를 제어하고 쌍방향 컨텐츠를 인에이블시키기 위한 재프로그램가능한 보안
US7996913B2 (en) Self-protecting digital content
US7760876B2 (en) Content security layer providing long-term renewable security
JP2004532495A5 (ko)
EP1942391B1 (en) Computer-readable medium, device and method for playing encrypted digital video

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
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: 20141008

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151020

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161021

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee