JP5192556B2 - 海賊行為を規制し、インタラクティブコンテンツを使用可能にするための再プログラマブルなセキュリティ - Google Patents

海賊行為を規制し、インタラクティブコンテンツを使用可能にするための再プログラマブルなセキュリティ Download PDF

Info

Publication number
JP5192556B2
JP5192556B2 JP2011010472A JP2011010472A JP5192556B2 JP 5192556 B2 JP5192556 B2 JP 5192556B2 JP 2011010472 A JP2011010472 A JP 2011010472A JP 2011010472 A JP2011010472 A JP 2011010472A JP 5192556 B2 JP5192556 B2 JP 5192556B2
Authority
JP
Japan
Prior art keywords
content
player
digital content
media
code
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP2011010472A
Other languages
English (en)
Other versions
JP2011086313A (ja
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 JP2011086313A publication Critical patent/JP2011086313A/ja
Application granted granted Critical
Publication of JP5192556B2 publication Critical patent/JP5192556B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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)

Description

本願は一般に、デジタルコンテンツおよび他のデータの配布を、海賊行為、および、他の無許可の使用または再配布から保護することに関する。
幅広い種類のシステムが、デジタルコンテンツを保護するために提案されている。大部分のこのようなスキームは、コンテンツがメディア上に格納される間、または、コンテンツが信頼できない通信チャネルを介して送信される間、コンテンツを暗号化して、無許可の使用およびコピーからコンテンツを保護する。復号化アルゴリズムおよびキーは次いで、耐タンパ性を有する(tamper-resistant)信頼できるソフトウェアまたはハードウェアモジュールによって管理され、これらのモジュールは、コンテンツをどのように使用することができるかを指定するアクセス制御ルール(固定であっても構成可能であってもよい)を実施するように設計される。
コンテンツ保護スキームは一般に、特定の再生環境に合わせてカスタマイズされる。例えば、パーソナルコンピュータに合わせて設計されたソフトウェア専用ストリーミングコンテンツプレイヤにおけるアンチパイラシ(anti-piracy)システムは、耐タンパ性を有するハードウェアのセキュリティの利点を欠いているが、一般に大きな困難なしにアップグレードすることができる(例えば、ユーザがプレイヤをアンインストールし、最新のバージョンをメーカのウェブサイトからダウンロードする場合)。結果として、このようなシステムは、ハードウェアベースのプレイヤよりも堅牢でないセキュリティを提供する可能性があるが、コンテンツストリームを修正すること、および、ユーザが自分のソフトウェアをアップグレードすることを要求することにより、アップグレードされたセキュリティ機能を利用する(deploy)ことができるため、攻撃の影響は比較的小さい。
反対に、光メディアを再生する家電ハードウェアデバイスに組み込まれた保護方法は、知ってのとおりアップグレードすることが困難である。セキュリティの課題には、(後方互換性のないセキュリティアップグレードを妨げる)光メディアの長い耐用期間、アップデートをプレイヤに配信するための好都合で信頼性のある方法の欠如、および、複数のプレイヤ実装の間の標準化の欠如が含まれる。これらの難点は、再生デバイスの長い耐用期間、および、すべての新しいコンテンツが古いプレイヤ上で再生されるようになるという消費者の期待と相まって、セキュリティアップグレードの導入を非常に困難にする。結果として、大部分の家電デバイスは、コピーに対する実際上の保護をほとんど、あるいはまったく提供せず、家電デバイスにおいて利用される少数のコンテンツ保護標準は、柔軟性および更新可能性(renewabilty)をほとんど提供しない、単純で柔軟性のないスキームとなる傾向がある。図1は、背景技術の典型的なコンテンツ保護システムを示している。コンテンツプレイヤ100は、ソフトウェアを不揮発性プログラムメモリ105内に含み、このソフトウェアは、プレイヤのセキュリティポリシ110、復号化コード120、およびプレイヤキー130を実装する。このコードおよびキーは、プロセッサ140によって使用されて、メディア150から読み取られたコンテンツが有効であるかどうかの妥当性検査を行い、コンテンツが有効である場合、このコードおよびキーは、コンテンツを復号化し、その結果を出力インターフェース160に提供する。図1に示したような保護システムの実施例には、デジタルオーディオテープによって使用されるコピー制御スキーム、DVDビデオを保護するように意図されたコンテンツスクランブリングシステム(CSS)、および、DVDオーディオを保護するために提案されたCPPMスキームが含まれる。
様々な異なる技術が背景技術において知られている。
アクセス制御ポリシ:幅広い種類のアクセスポリシ、および、このようなポリシを指定するための方法が、背景技術において知られている。例えば、Hellmanの米国特許第4658093号明細書に記載のソフトウェア保護システムは、パブリッシャによって発行された単純な認証コードを使用する。反対に、Ginterらの米国特許第5982891号明細書には、大多数の関係者(participant)を含む種々の非常に複雑なアクセスルールが説明されている。PolicyMakerおよびX.509証明書フォーマットなどのアクセスポリシをエンコードするための標準規格(コンテンツ配布による使用および他のアプリケーションによる使用の双方のため)も提案されている。
アンチウィルスソフトウェア:既知のウィルス、トロイの木馬、および、他の悪意のあるコードを検出し、かつブロックするための方法が、背景技術においてよく知られている。これらの方法は一般に、既知の命令シーケンスなどの既知のウィルスの属性をスキャンすることを含む。これらのプログラムは、起動中にファイルをスキャンする、ファイルをオンザフライでスキャンする、プログラムを実行する際にプログラムをスキャンする、メモリをスキャンする、新しいメディアをスキャンする、ネットワーク通信をスキャンするなど、様々な方法で動作することができる。
コンテンツ保護システムおよびDRM:幅広い種類の保護システム(しばしば、デジタル著作権管理(DRM)システムとも呼ばれる)が提案されている。背景技術におけるDRMシステムは一般に、コンテンツが暗号化形式で配布されるように準備をし、次いで、正当な購入者のために復号化キーを供給するか、または復号化オペレーションを実行する。多数の機能が提案されている、または多数の機能が市販のDRMに含まれてきているが、これらの機能には、(暗号化されたコンテンツをユーザ間で交換することができる)スーパーディストリビューションのサポート、ペイパーユースビリング(電話回線を介したレポーティングを伴うオフラインのペイパーユースを含む)、可変ビリングレート(プロモーション、使用回数または使用期間、要求されたユーザオペレーション、ユーザ履歴などに基づいて、異なる金額を請求する)、様々なデータタイプ(オーディオ、ビデオ、テキスト、ソフトウェアなど)の保護、様々なフォーマットのサポート、および、様々な再生デバイスタイプ(ポータブル、セットトップ、ハードウェア支援付きのコンピュータベース、ソフトウェア専用など)のサポートが含まれる。
コピープロテクト:パーソナルコンピュータソフトウェアをコピープロテクトするための複数の方法が知られており、これらの方法が、コンピュータゲームなどの特定の種類のソフトウェアのために広く利用されている。これらの方法にはしばしば、(例えば、故意にエラーを組み込むことによって、または、複製することが困難である非標準的なフォーマッティングによって)コピーすることが困難となるように設計される物理的メディアにソフトウェアプログラムをバインドすることが含まれる。他のコピープロテクトシステムには、例えば、認証コードをサーバから取得するようユーザに要求することにより、インストレーションプロセスを保護することが含まれる。場合によっては、コピープロテクト機能がシステム内に設計される。他の場合には(コンピュータソフトウェア、ビデオカセットテープ、およびオーディオCDのために使用されたコピープロテクトシステムを含む)、大部分のプレイヤ上で再生が可能であるが、メディアをコピーしようとする大部分の試みを混乱させる非標準的なエンコードによりメディアを作成することによって、コピープロテクトは実装される。コピープロテクトシステムに関する主要な設計課題は、正当なユーザへの影響を最小限にする(すなわち、高いプレイヤビリティ(playablity)およびユーザアクセプタンス(user acceptance)を得る)と同時に、望ましくないアクションをできるだけ効果的に防止すること(すなわち、十分なセキュリティを得ること)である。
暗号化機能:幅広い種類の基本的な暗号化機能が知られており、これらの機能には、ブロック暗号、ハッシュ関数、デジタル署名システム(および他の公開キーシステム)、キー管理システムなどが含まれる。基本的な暗号化についてのさらなる情報については、Bruce SchneierによるApplied Cryptographyを参照されたい。
暗号化オラクル:ブロック暗号または他の暗号化機能を使用して、「暗号化オラクル」を構築することができ、暗号化オラクルは、任意の外部供給された入力メッセージに秘密暗号化変換(secret cryptographic transformation)を適用し、結果を返す。オラクルのアルゴリズムおよびプロトコルを知っている攻撃者がオラクルのキーを決定することが計算的にできないように、暗号化オラクルを構築することができる。加えて、オラクルへの可能な入力の数を極度に大きくすることができる(例えば、256ビットのブロック暗号から構築されたオラクルでは、2^256)ので、攻撃者は、ランダムな問い合わせに対する応答を予想または事前計算することができない。
インタープリタ、エミュレータおよび仮想マシン:様々なインタープリタコンピュータ言語が背景技術において知られている。Java(登録商標)などの一部のインタープリタ言語では、ソースコードを実行可能または解釈可能な形式に変換するコンパイルプロセスが必要となる。反対に、大部分のBASICインタープリタは、直接ソースコードに基づいて動作する。一部のインタープリタは、自己書き換えコードを可能にするが、他のインタープリタは自己書き換えコードを可能にしない。インタープリタを実行するための技術、および、アセンブリ言語をエミュレートするための技術も、背景技術において知られている。例えば、Virtual PC(登録商標)およびSoftWindows(登録商標)などの高度なエミュレータは、Microsoft Windows(登録商標)用に設計されたプログラムをApple Mac(登録商標)コンピュータ上で実行させることができる。Java(登録商標)およびJavaCard(登録商標)用に使用されるものなどの仮想マシン(VM)設計が知られており、VMがコンピュータ上のネイティブコードと対話すること、または、異なるメモリ空間内の他のVM関数を呼び出すことができることも知られている(多数のJava(登録商標)実装によって、これらの機能が提供される)。インタープリタ言語は通常、アプリケーションのため、または、クロスプラットフォーム互換性が必要とされるところで、プロセッサ非依存デバイスドライバフォーマット(processor-independent device driver format)を作成するためなどに使用される(例えば、Writing FCode 2.x Programs, Sun Microsystems, 1993, page 5参照)。
キー管理:暗号化キーを割り当て、かつ管理するための幅広い種類の方法が提案されている。デバイスがデバイス固有のキー、グループキー、公開キー、秘密キー、証明書などを有することができることが知られている。キーを、個々のデバイスに、(例えば、Fiatの米国特許第5592552号明細書に記載されたような)選択されたデバイスのグループに、すべてのデバイスになど、割り当てることができる。デバイスは、異なるタイプの様々なキーを含むことができ、これらのキーには、対称キー、公開キー(例えば、証明書およびデジタル署名を検証するため)、および非対称秘密キーが含まれる。
メディア:多大なストレージ容量、低製造コスト、および十分な耐久性を提供することができる、メディア技術が知られている。現在のメディア技術の例には、光ディスク(CD、DVDなど)、磁気メディア、フラッシュメモリおよびROMが含まれる。ホログラフィックメモリなどのより新しい技術も開発されている。単一のメディアが多数の異なるタイプのデータを含むことができることが知られている。例えば、コンパクトディスクには、標準のレッドブックのオーディオトラック、ならびに、パーソナルコンピュータ上で使用するためのデータセッション(例えば、ソフトウェア、圧縮されたボーナストラック、イメージ、ビデオ、歌詞などを含む)を含めることができる。パーソナルコンピュータで使用するためのコンパクトディスクには、暗号化されたコンテンツ、ならびに、コンテンツを再生するために必要とされる再生ソフトウェアの両方を含めることができる。
ネットワーク通信:インターネットを含む高度なデータネットワークが知られている。これらのネットワークは、柔軟性のある、信頼性のある、高帯域データ通信を提供することができる。物理的接続を伴うネットワークは通常、より高い帯域幅を提供することができるが、無線通信チャネルもまた普及している。
更新可能セキュリティ(renewable security):場合によっては、可能性のある攻撃のすべてを確実に防止することができるセキュリティシステムを作成することは、現実的ではない。結果として、例えば、任意の危殆化されたキーの使用を中断し、脆弱性を是正することによって、攻撃の後にセキュリティを更新することができることが望ましい。更新可能なセキュリティは望ましいが、多数の利用されているシステムおよび提案されているシステムは、多数の種類の攻撃に対する効果的な復旧メカニズムを欠く。
サンドボクシング:サンドボクシングは、制御された環境内でソフトウェアプログラムを実行することを含み、この環境では、プログラムは、システムに損害を与える可能性のあるいかなるオペレーションにもアクセスすることができない。Java(登録商標)「仮想マシン」はサンドボクシングをサポートするので、信頼できないアプレット(インターネットを介してダウンロードされるものなど)を実行することができる。
セキュリティモジュール:多数のセキュリティシステムは、リムーバブルなセキュリティモジュールを使用できるので、システムの他の部分を置き換える難点または費用なしに、セキュリティアップグレードを実行することができる。例えば、リムーバブルなセキュリティモジュールは、多数の有料テレビシステムにおいて使用される。
ソフトウェアアップデート:提示されたソフトウェアアップデートを受信し、アップデートの妥当性検査を行うデジタル署名またはメッセージ認証コードを検証し、次いで、(署名が有効である場合、)アップデートを実行することによって、安全なソフトウェアアップデートを実行することができる。例えば、デジタルオーディオプレイヤはコードアップデートを受信し、アップデートにおけるデジタル署名またはメッセージ認証コードを検証し、(有効である場合、)それらのコードをアップデートすることができることが知られている。アップデートを正しい順序で確実に行うための方法(例えば、シーケンスカウンタを使用する)、および、(例えば、以前のソフトウェアバージョンに戻ることによって、または、特別な復旧コードを実行することによって)失敗または不成功のアップデートから復旧するための方法も知られている。インターネット、光メディア、ROMカートリッジなどの幅広い種類の配布メカニズムを介して、ソフトウェアアップデートを配信することができることも知られている。コードアップデートを信号とともにデスクランブラ(descrambler)へ配布することによって有料テレビに対する海賊行為を防止するために、ソフトウェアアップデートは使用されており、デスクランブラは新しいコードを適用し、首尾よく実行して、次のビデオセグメントのための正しい復号化キーを計算する。これらのアップデートは、通常、無許可のデスクランブラを無効にすることによって、または、さらに言えば破壊することによって、無許可の視聴を防止するために使用される。
ステガノグラフィ:ステガノグラフィは、情報をデータ内に隠すことを含む。例えば、暗号化されたデータをイメージまたは録音の最下位ビットに配置することができることが知られている。このイメージまたは録音を得るが復号化キーを知らない攻撃者は、隠されたデータがあるかどうかを判断することもできない。これは、下位ビットがしばしばランダムに見え、強力な暗号化アルゴリズムによって作成された暗号文を、そのキーなしにランダムデータと区別することができないからである。
耐タンパ性:攻撃に強いデバイスを設計および構築するための多数の方法が知られている。耐タンパ性を有するハードウェアは、通常、攻撃者がデバイスをリバースエンジニアリングすること、または、キーを暗号化モジュールから抽出することを防止することが望ましいシステムにおいて使用される。例えば、Wave Systemsは、「Embassy」と呼ばれる、耐タンパ性を有するマイクロプロセッサベースの集積回路製品を市場に出しているが、この製品は、コンテンツプレイヤまたは汎用コンピュータに組み入れることができ、デジタルコンテンツの配布を保護する際に使用するよう宣伝されている。耐タンパ性を有するソフトウェアを実装するための方法もまた提案されている(例えば、Aucsmithらの米国特許第5892899号明細書参照)。
トレイタトレーシング(Traitor Tracing):通常、無許可のデバイスにおいて使用されたキーを顧客の特定デバイスまたは危殆化されたデバイスに遡ってトレースすることによって危殆化元または攻撃元を特定するために、トレイタトレーシングスキームが提案されている。
ウォータマーキング:ウォータマークは、特別な検出器によって検出することはできるが、コンテンツが再生されるときに人間によるコンテンツの知覚に影響を与えない(または影響を最小限にする)、コンテンツ内に埋め込まれた信号である。ピクチャ、録音およびイメージ内に埋め込まれたウォータマークは、コピーが許可されないことを明示するために、著作権保持者によって使用されている。「堅牢な」ウォータマークが知られており、このウォータマークは、フォーマット間の変換(アナログ出力からの再記録を含む)に抵抗し、ウォータマークを除去しようとする攻撃に対して様々な程度のセキュリティを提供することができる。反対に、「脆弱な」ウォータマークは、フォーマット変換に抵抗する能力をほとんど、またはまったく有していないが、より設計しやすく、より多くの情報を伝達することができる。
どのアンチパイラシシステムも可能性のある攻撃のすべてを完全に防止することはできないが、背景技術におけるシステムは、保護フォーマット(protected format)から非保護フォーマット(unprotected format)へのデジタル−デジタルコピーを使用する、または保護フォーマットから無保護フォーマットへの高速リッピングを使用するちょっとした(casual)海賊行為などの解決可能な問題に対する実用的な解決策を提供することができない。背景技術における多数のシステムの重大な制限には、以下のものが含まれるが、これらに限定されるものではない。
グローバルシークレットへの依存:多数の保護システムでは、暗号化アルゴリズム、キー、および、復号化するために必要とされる他の情報が秘密に保たれることが必要である。結果として、システムのセキュリティを危殆化させることなく、復号化プロセスをオープンスタンダードのドキュメントの形で文書化することができない。また、多数の実装が使用可能である場合、攻撃者は、最も弱い実装を攻撃することによって、おそらくはスキーム全体を破壊することができる(このような攻撃は、DVDビデオプロテクトシステムで最近発生した)。このようなシステムは、閉じられた単一ベンダ環境内では有用であるが、このようなシステムを標準化することはできず、このようなシステムは有効な長期のセキュリティを提供しない。
標準化の欠如:コンテンツパブリッシャはすでに、互換性のない様々なデータフォーマットおよび復号化アルゴリズムにコミットしている。異なるコンテンツ保護システムは異なるビジネスモデルを可能にし、あるモデルにコミットしているパブリッシャは、異なるモデルを必要とする任意のセキュリティシステムに反対する可能性が高い。
製品タイプとの非互換性:多数のセキュリティ機能をすべての製品タイプと統合することはできない。例えば、パーソナルコンピュータ用のダウンロード可能なソフトウェア専用プレイヤは、耐タンパ性を有するハードウェアを含むことはできない。同様に、インターネット接続性を欠くプレイヤに、頻繁にソフトウェアアップデートを配信することは困難である。
ユーザインターフェース:多数の提案は、複雑なユーザインターフェースを含む。セキュリティは、真正なユーザにとって不可視であるべきである。ユーザは、明示的なユーザの関与(例えば、認証コードを取得する、または認証コードを入力すること)を必要とするスキームを拒否する可能性が高い。一般に、カーステレオおよびビデオディスクプレイヤなどの家電デバイスは使いやすい必要がある。これは、多数のユーザが、文書を読まない場合、技術に及び腰である場合、視力が弱い、もしくは他のハンディキャップを有する場合、または、プレイヤによってサポートされた言語に精通していない場合でも、そのユーザを満足させなければならないからである。
法的な課題:一部のセキュリティシステムは、競業者間の協力を必要とする。このような協力は、反トラスト規制により違法になる可能性がある。
メーカの利点の欠如:メーカは、プレイヤのコストを増し、かつ製品化までの時間を増す、正当な機能の包含を妨げるセキュリティ機能に反対するようになるし、または、それらの製品の効果を弱め、もしくは製品の効果をより望ましくないようにするセキュリティ機能に反対するようになる。半導体技術における進歩は、セキュリティシステムを実装するために必要とされるコストを下げつつあるが、耐タンパ性を有する有効なハードウェアを設計および製造することは困難なままであり、高価なままである。結果として、優れた実装を作成するメーカに依拠するコンテンツ保護システムは、その提供物がより安全であるメーカに実際の市場優位性を提供しない限り、失敗する。
不明確なセキュリティポリシ:有効なセキュリティシステムでは、ユーザが要求した特定のアクションを許可すべきであるか、防止すべきであるかを判断するためのルールまたは他の意思決定プロシージャが指定されなければならない。多数のシステムでは、これらのルールまたはプロシージャがうまく指定されない。
柔軟性のないセキュリティポリシ:コンテンツ保護システムは、異なるパブリッシャ、コンテンツタイプ、権限(jurisdiction)、再生環境などに対して異なるモデルをサポートするための柔軟性を有することが望ましい。システムは、複雑になりすぎることなく、必要な柔軟性を提供すべきである。
脆弱な長期セキュリティ:セキュリティシステムは、長期にわたって有効であり続けるために十分に堅牢であり、柔軟性がなければならない。普及しているフォーマットは30年を超えて存続することができるが、背景技術におけるコンテンツ保護システムのほとんどは、著名なフォーマットの一部として、数年を超えて存続することができない。
攻撃の非トレース可能性(untraceability):攻撃者が生じる場合、システムは、危殆化された(または悪用された)デバイスを無効にすることができるように、および、犯人を起訴することができるように、攻撃のソースを特定することができる必要がある。
本願は、幅広い種類の相互運用可能なプラットフォームにわたって柔軟性のある更新可能なコンテンツ保護を提供するように実施することができる、標準化されたコンテンツ保護システムの様々な実施形態および態様に関する。このシステムは、関係者(メーカ、パブリッシャ、アーティスト、および/または消費者など)に、セキュリティおよび機能性に関する意思決定を行うための比類のない柔軟性を提供する。
このシステムと共に使用可能な例示的プレイヤ(すなわち、保護されたコンテンツを復号化することを望むデバイス、またはそうでない場合は、保護されたコンテンツにアクセスすることを望むデバイス)は、複数のコンポーネントを備える。第1のコンポーネントは、例えば光ディスクドライブ用の、データまたはメディア入力インターフェースである。再生を開始するため、プレイヤは一連のデータ処理コマンドを入力インターフェースからロードし、インタープリタまたは他の実行モジュールを使用することにより、これらのコマンドの実行を開始する。この実行環境は、チューリング完全言語(Turing-complete language)(プレイヤのメモリ、ユーザインターフェースおよびパフォーマンスの制限を受ける、任意のアルゴリズムを実行することができる言語)を提供することが好ましい。この実行環境からコンテンツはプレイヤに問い合わせて、再生環境の構成を決定することができ、プレイヤのキーを使用することにより暗号化オペレーションを実行することができる。したがって、問い合わせに対して満足のいく応答を提供するプレイヤ上でのみ再生が進行することになるように、コンテンツを設計することができる。パブリッシャもまた、制限された再生を提供することができる。例えば、より安全でないプラットフォームでは、CD音質のステレオオーディオまたは通常の精細度のイメージを提供することができるが、より安全なプラットフォームでは、より多くのオーディオチャネル、高精細度のイメージ、より高いサンプリングレート、および、より高品質の圧縮を提供することができる。再生が開始した後でも、再生はコンテンツのデータ処理コマンドの制御下に残ることができる。1つの例示的実施形態には、堅牢な、本質的にオンザフライのウォータマーキングを実行する機能が含まれる。どのデータ領域が再生されるかをコンテンツ自体が制御できるようにすることで、極めて小さい差異を伴う複数の出力データバージョンから選択することにより、情報を出力内に埋め込むことが可能となる。これらの差異を解析することにより、特定のプレイヤに遡って海賊コピーをトレースすることができる。
コンテンツは、コンテンツ固有のセキュリティポリシを含み、これを実施するので、耐性のある新しいコンテンツを設計し、かつ発行することによって、発生する攻撃に対処することができる。コンテンツがコンテンツ固有のセキュリティポリシを実施することを可能にすることによって得られた柔軟性は、さらに、アーティストのプリファレンス、地域的な「公正使用」の規制などに対するサポートも可能にする。コンテンツにアクセス可能な新しいプレイヤ関数を追加することによって、新しいプレイヤ機能を容易に追加することができる。
ビジネスの観点から、コンテンツパブリッシャおよび家電メーカのビジネスおよびオペレーション上の制約と一致する、最良となり得るセキュリティを提供するという共通の目標においてコンテンツパブリッシャと家電メーカとを結び付けるように、任意のコンテンツ保護システムが使用できることが望ましい。本明細書で開示するシステムにより、パブリッシャはパブリッシャ固有のセキュリティ要件を決定することができるようになり、次いで、コンテンツ自体が、幅広い種類の要素を考慮するポリシを実装して、各環境内で再生されるべきであるかどうか(またはどのように再生されるべきであるか)を決定することができるようになる。さらに、優れたセキュリティを提供し、海賊行為を容易にしない製品を設計するようメーカを動機付けることができるので、それらの顧客はコンテンツに対して幅広くアクセスできるようになる。
背景技術のコンテンツ保護方法を使用するメディアプレイヤを示す図である。 本明細書で開示したコンテンツ保護方法を使用する例示的メディアプレイヤを示す図である。 例示的実施形態の復号化部分を例示する図である。 集中コード署名局を必要とすることなく、不揮発性メモリへのアクセスを保護するための、プレイヤ方法の例示的実施形態を示す図である。 不揮発性メモリスロットにアタッチするときの例示的妥当性検査プロセスを示す図である。
図2は、物理的メディア200を使用するプレイヤの例示的実施形態を示している。再生プロセスはプロセッサ210によって制御され、プロセッサ210はメディアインターフェース205を介してメディア200にアクセスすることができる。メディア200がマウントされるとき(例えば、メディアが最初に挿入される、または、システムが再初期化されるときなど)、プロセッサ210は、メディアインターフェースを初期化すること、メディアの目次を読み取ること、および、サポートされた保護システムを認識することによって、開始する。そのような場合、プロセッサはメディア200の小さな初期部分を実行およびデータRAM220にロードする。
インタープリタ215を使用することにより、プロセッサ210は、ロードされたメディア部分によって指定されたデータ処理オペレーションの実行を開始する。インタープリタ215は所定のデータ処理オペレーションのセットを提供し、このセットによって、より複雑なタスクを実行することができる。インタープリタ言語は、好ましくはチューリング完全である。チューリング完全プログラミング言語は、1つのこのような言語において実装可能なアルゴリズムを、他の任意の言語においても実装することができ、これらの実装が類似の漸近パフォーマンス特性(asymptotic performance characteristic)を有するようになることを特徴とする。チューリング完全プログラミング言語の例には、C、C++、BASIC、Fortran、Pascal、Java(登録商標)および実質的にすべてのアセンブリ言語が含まれるが、これらに限定されるものではない。
ロードされた部分は、インタープリタ215によって提供されるプロシージャコールを呼び出すことによって進行する。RAM220にロードされた初期データは比較的小さい場合があるが、インタープリタ215上で実行されるコードは、追加のデータ(コードを含む)を、プロシージャコールを介してメディアからロードすることができ、それによってより複雑なオペレーションを実行することができる。
他のプロシージャコールによって、コンテンツは再生環境構成225を決定することができる。したがって、コンテンツは再生環境特性(例えば、プレイヤのタイプ、要求されたユーザクションなど)を解析して、再生が進行すべきであるかどうかを判断することができる。例示的実施形態では、是正可能な問題が検出される場合(例えば、メディアがプレイヤ用のセキュリティファームウェアアップグレードを含む場合)、これらに対処することができる。サポートされる場合、コンテンツは、出力インターフェース250、および、サポートされる場合、送信先プログラム/デバイス260(例えば、増幅器、デジタルスピーカ、スピーカドライバなど)に問い合わせて、セキュリティ特性を調べ、暗号化キーをロードし、出力パラメータを指定する(例えば、セキュリティが不確実である場合、低下した出力品質を指定する)ことなどもできる。
例示的実施形態では、コンテンツは、暗号化オラクル230に問い合わせることもでき、セキュリティハードウェアアップグレードを可能にするために、(スマートカードなどの)外部のリムーバブルセキュリティモジュール235内に暗号化オラクル230を実装することができる。プロセッサ210内、プレイヤ内の他のハードウェア、メディア内、スピーカなどのアタッチされたデバイス内などに、オラクルを実装することもできる。暗号化オラクル230は、プレイヤ識別に関する検証可能な証をコンテンツに提供することができる。オラクル230への問い合わせの結果は、後続のコンテンツまたはコード部分を復号化する際に使用することができ、それによって、オラクル230は、有効なキーを欠く(またはそのキーが無効となる)プレイヤがコンテンツを復号化することができないという強力な暗号化の保証を提供することができる。
例示的実施形態では、インタープリタは、「サンドボックス」内のコンテンツによって指定されたデータ処理コマンドを実行するが、これは、コンテンツが暗号化秘密(cryptograpchic secret)(オラクルキーなど)に対してアクセスしないことを意味し、そうでない場合、コンテンツは、プレイヤを危殆化させるおそれがある。サンドボクシングは、すべてのコンテンツが必ずしも信頼できるとは限らない場合に有用である。例えば、攻撃者は、プレイヤから暗号化キーを抽出しようと試みた悪意のあるコンテンツを作成しようとする可能性があった。(以下で、例示的暗号化オラクルおよびそれらのオペレーションについてのさらなる情報を提供する。)
コンテンツが、再生が進行するべきでないと判断する場合(例えば、ユーザがコピーを作成しようとしていて、コンテンツがコピーを禁止するように構成されている場合)、コンテンツはエラーを報告し、要求されたアクションを拒否することができる。代替として、コンテンツはレンダリングプロセスおよび/または出力プロセスを制御して、出力の品質を低下させることができるので、無許可のコピーの品質が落ち、このため無許可のコピーは魅力的でなくなる。
コンテンツが、再生が進行するべきであると判断する場合、コンテンツは次いで、再生がメディア上の特定の位置(例えば、特定のトラック)から開始すべきであると指示するプレイヤからの信号を待つ。インタープリタ215は、メディアがマウントされたとき、実行/データRAM220にロードされたデータ処理命令を使用して、要求を処理する。コンテンツは、再生が進行するべきであると決定する場合、プロシージャコールを使用して、暗号化されたコンテンツをメディア200上の適切な位置からロードすることを開始するようメディアインターフェース205に命令する。コンテンツは有効な復号化キーおよびパラメータをバルク復号化モジュール240に対して指定し、バルク復号化モジュール240は、暗号化されたコンテンツをRAM220から(または代替として、メディアインターフェース205から直接)読み出して、これを復号化する。復号化されたコンテンツは次いで出力インターフェース250に供給され、出力インターフェース250はこのコンテンツを、送信先プログラムまたはデバイス260に合わせて適切なアナログまたはデジタルフォーマットに変換する。再生が継続するとき、インタープリタ215によって処理されているデータ処理命令は新しい復号化パラメータをロードし、新しいデータのブロックを指定してメディア200から読み取ることなどができる。再生が完了するとき、コンテンツはRAM220を再初期化することができる。
以下のセクションにおいて、インタープリタ、再生システム、ならびに、他の実施形態および態様について、追加の情報を提供する。
(攻撃への対処)
ソフトウェアにおいて、および、低コスト家電デバイスにおいて幅広く実装されているアンチパイラシシステムは、可能性のある攻撃のすべてを防止することはできない。本明細書に開示する技術は、ある攻撃の後に続いて、既存の攻撃を実質的にブロックする方法で新しいコンテンツをマスタリングすることを容易にするように使用することができる。専門的な海賊行為者は継続的に新しい回避システムを探し出してインストールしようと試みる可能性がある一方で、ちょっとした海賊行為は、攻撃ツールを開発および維持するための継続的な努力を必要とするため、したがって、うまくいけば単にコンテンツを正当に購入するよりも困難となる。以下のセクションでは、本明細書で説明する技術をどのように使用することにより、一部の一般的な攻撃に対処することができるかを説明する。
第1の攻撃のカテゴリは、危殆化されていないプレイヤを使用して、無許可のアクションを実行しようとする試行を含む。例えば、コンテンツをマスタリングして、オリジナルのメディアからのコピーを可能にするが、コピーからのコピーを許可しないようにすることができる。このようなコンテンツをコピーからコピーしようとする試行がなされる場合(コンテンツは、例えば、コピープロセス中に挿入された変更を検出することによって、または、現在のメディアのシリアルナンバおよび/またはタイプをオリジナルと比較することによって、認識することができる)、再生をインタープリタコードによってブロックすることができる。代替として、インタープリタは、コンテンツが低下した品質で(より高いサンプルレートのマルチチャネルオーディオが使用できる可能性があるにもかかわらず、44.1キロヘルツのサンプルレートのステレオオーディオを再生するなど)、または、追加のアンチパイラシ警告を挿入することによって、再生を認めることができる。したがって、インタープリタに提供された情報を解析することによって、不適切なユーザ要求を、危殆化されていないプレイヤ上で検出し、処理することができる。
第2の攻撃のカテゴリは、プレイヤの暗号化キーの危殆化を含む。プレイヤの暗号化キーが危殆化されている場合、攻撃者は、(少なくとも理論的には、)暗号化オラクルをエミュレートすることによって、および(任意で)再生環境についての問い合わせに対して偽の応答を提供することによって、危殆化された再生環境を完全にエミュレートすることができる。このような攻撃の後、それ以後のコンテンツ内のインタープリタコードが危殆化されたデバイス内に存在しなかった少なくとも1つの暗号化キーを要求するようにすることによって、セキュリティを再確立することができる。特定のプレイヤモデルまたはメーカが多数の攻撃のソースである場合(例えば、プレイヤ実装が不十分なセキュリティしか有さないため)、パブリッシャは、このようなプラットフォーム上で再生されないようになる(または、低下した品質で再生されるようになる)コンテンツを作成することができる。
第3の攻撃のカテゴリは、類似のインタープリタセキュリティコードを含む、コンテンツの特定の部分またはタイトルのグループを危殆化させることを含む。セキュリティチェックを回避するようにコンテンツ自体を変更することによって、または、ターゲットタイトルを再生するように調整された悪意のあるインタープリタを作成することによって、おそらくはこのような攻撃を開始することができる。以後のコンテンツにおいて、異なる保護ソフトウェア、またはより良い保護ソフトウェアを利用することによって、このような攻撃に対処することができる。
第4の攻撃のカテゴリは、コンテンツを保護メディア(protected media)から非保護フォーマットへコピーし、次いでコンテンツをその新しいフォーマットで再配布することを含む。どのコンテンツ保護システムもこのような攻撃を完全に防止することはできないが、本明細書で開示する技術およびシステムは、強力で柔軟性のあるウォータマーキング機能を備え、この機能を使用して、特定のデバイスに遡って危殆化をトレースすることができ、次いで、以後の攻撃を防止するために、この特定のデバイスを失効させることができる。海賊行為目的で活発にコンテンツをアップロードするユーザの数は比較的少ないので、これらのユーザのプレイヤを特定し、失効することによって、海賊行為を大幅に減らすことができる。暗号文の諸部分を選択的にスキップすることによって、知覚できない差異を復号化出力内に導入することができる。例えば、例示的実施形態では、第1の暗号文の一部分を復号化および出力し、次いで第2の暗号文の一部分をスキップするよう、コンテンツがプレイヤの復号化モジュールに命令することによって、「0」ビットにウォータマークを入れることができる。「1」ビットにウォータマークを入れるため、第1の暗号文の一部分をスキップし、第2の暗号文の一部分を出力するよう、コンテンツはモジュールに命令することができる。一連のこのようなビットをエンコードすることにより、インタープリタコードにとって使用可能な任意のデータによって、コンテンツにウォータマークを入れることができる。このデータには、プレイヤの識別、暗号化オペレーションの結果、ユーザアクション説明、出力デバイス情報などが含まれるが、これらに限定されるものではない。コンテンツの海賊コピーが発見される場合、ウォータマークを解析して、不法コピーを単一のプレイヤまで遡ってトレースすることができ、次いで、このプレイヤを以降のコンテンツリリースにおいて失効させることができる。この機能は、法的処置(law enforcement)および科学捜査(forensic)の目的においても有用である。なぜならば、特定のコピーが特定のプレイヤから生じたことを、確信をもって証明することができるからである。コピーをトレースするための機能は、海賊行為に対する阻害要因としての機能を果たすこともできる。なぜならば、違法コピーの作成を検討する人は、自分が特定され、逮捕され、起訴される可能性があることを知ることによって、コピーする気がそがれるようになるならである。
言うまでもなく、すべての環境における可能性のある攻撃のすべてを確実に防止することができる、消費者が扱いやすい(consumer-friendly)アンチパイラシシステムはない。例えば、オーディオおよびビデオは、アナログ出力から記録することができる(ウォータマークがコンテンツ内に埋め込まれる場合でも、ウォータマーク検出器を有していないレコーダを使用できる)。アナログ出力から取り込まれたデータは次いで、新しいデジタルまたはアナログメディア上にリマスタリングされ、元々のセキュリティ機能を有することなく再配布される可能性がある。同様に、メディアの正確なコピーを作成するために必要とされる機器を有する専門の海賊行為者によって作成されたコピーを、プレイヤによって検出することはできないが、本明細書で開示する技術およびシステムは、メディアのコピーを防止する上で役立つことができる。例えば、メディア上のディスクメーカ識別子はコンテンツによって調べられ、真正の、または不注意な複製施設が海賊行為者によってだまされないようにすることを確実にすることができる。メディアタイプ識別子は、読み取り専用メディアの形態で販売されたコンテンツが、記録可能メディアの形態で再配布されることを防止できる。インターネット、電話/モデム、または他のネットワークサポートを使用するプレイヤでは、コンテンツは(例えば)再生(または最初の再生)に先立って、サーバから認証を受け、そのメディアが有効であることを検査することができる。不揮発性ストレージを有するプレイヤは、既知の不良メディアシリアルナンバのテーブルを格納することもでき、コンテンツおよび/またはプレイヤがこのテーブルに問い合わせて、メディアが失効しているどうかを判断することができる。
(再生環境への問い合わせおよび再生環境の制御)
コンテンツを、コンテンツによってコンテンツ自体が復号化されることが可能になるかどうかを決定するように、構成することができる。この決定を支援するため、プレイヤは再生環境についての情報をコンテンツに提供することができる。多くの場合は非常に限られた情報(ユーザにより要求されたアクションおよびプレイヤモデルなど)だけで十分である可能性が高いが、再生が進行すべきであるかどうかについて、コンテンツがより確かな情報に基づいて評価することができるように、より詳細で正確な情報が望ましい。コンテンツに提供される特定の情報および機能はプレイヤ実装に依存するが、以下では、コンテンツに提供することができる一部の例示的関数および機能(ただし、以下に限定はされない)を説明する。複数の接続されたコンポーネント(出力ポート、接続された出力デバイス、オペレーティングシステムデバイスドライバ、セキュリティモジュールなど)から構築されたプレイヤでは、これらの接続されたデバイス、ならびに、インタープリタを含むプレイヤの主要部分が、以下の情報の一部またはすべてを含むことができることに留意されたい。
セキュリティサポート情報:セキュリティ仕様バージョン、サポートされた問い合わせ機能、および/または、セキュリティモジュール形状因子(form factor)(置換可能なハードウェア、組み込みハードウェア、アップデート可能なファームウェア、ROMファームウェア、PCソフトウェアなど)など。(例示的暗号化処理機能および再生制御/復号化機能については、以下で詳述する。)
メーカ情報:名前、識別子、ウェブサイト、公開キー/証明書、製造バッチ、製造日/時間、製造地域、製造国、メーカ住所、技術サポート連絡先情報、および/または、メーカ保証情報など。
デバイス情報:製造ライン、シリアルナンバ、モデルナンバ、ファームウェア/ソフトウェアバージョン、デバイス公開キー/証明書識別子、GPS位置または他の物理的位置/地域、コンテンツによりサポートされたコーデックタイプ、ネットワーク/インターネットサポート情報、ネットワークアドレス、デバイス電話番号、IPアドレス、ウォータマークサポート、インタープリタパフォーマンス評価、セキュリティ証明評価、デバイスディストリビュータ、デバイス小売業者、デバイス形状因子、および/または、セキュリティ仕様など。
ユーザ情報:ユーザ名、地理的地域、国、住所、GPS位置または他の物理的位置/地域/国など、ユーザ電話番号、IPアドレス、電子メールアドレス、ウェブアドレス、希望する言語、問題となるマテリアルに対する許容範囲、希望する支払い方法/口座、支払い制限、購入履歴、および/または、プライバシプリファレンスなど。
メディア制御:問い合わせメディアフォーマット、記録可能または記録不能、メディアシリアルナンバ、記録デバイスタイプ、記録デバイス所有者、記録デバイスシリアルナンバ、記録デバイスセキュリティ情報、および/または、記録デバイスウォータマークチェック機能など。関数は、メディアからの読み取り、メディアへの書き込み、メディアのフォーマット、メディアのテスト、および/または、メディアの排出なども可能にする。追加の関数は、特定のメディアフォーマットによってサポートされる暗号化機能または他の特別な機能へのアクセスを提供することができる。
要求されたユーザオペレーション:例えば、再生、記録、新しいフォーマットへの変換、ポータブルデバイスへのロード、最初のコピーの作成、複数のコピーの作成、および/または、同時再生/記録など。要求されたオペレーションを開始または変更する能力をコンテンツに与えることもできる。
出力情報:出力ポート、出力ポート構成、出力ポートセキュリティ特性、接続されたデバイス、出力データフォーマット、および/または、出力データ品質/解像度などについての情報。サポートされる場合、コンテンツは出力デバイスに直接問い合わせて、デバイスについての追加の情報を得ること、および/または、暗号化オペレーションを要求することなどができる。プレイヤは、コンテンツがこれらのパラメータを変更して、例えば、セキュリティが不十分である場合には低下した品質の出力を指定することを可能にすることもできる。
環境:プラットフォーム上の他の実行中のプログラムおよびデバイスドライバの識別/ハッシュ/バージョン、メモリのコンテンツまたはハッシュ、インストールされた攻撃検出モジュールのバージョン、攻撃に関するシステムスキャンの結果、および/または、改ざん検出器の状況など。これらの機能によって、コンテンツはメモリを修正して、例えば、他のプログラム内のセキュリティ弱点を是正することもできる。
時間:日付、時間、時間帯、経過クロックサイクル数、最終リセットからの時間、製造からの時間、最終セキュリティアップグレードからの時間、最終バッテリ交換からの時間、および/または、推定の残りバッテリ寿命など。
接続性:プレイヤ通信機能の決定、現在の接続状況のチェック、ネットワーク接続の確立、モデム接続の確立、ネットワーク接続を確立する臨界の指定、接続セキュリティ特性のチェック/指定、データ送信、データ受信、接続を閉じること、および/または、接続のアイドリングなど。
ユーザインターフェース:ユーザメッセージの表示、歌詞の表示、グラフィックスイメージの表示、グラフィックスイメージの印刷、広告/プロモーションメッセージの表示、使用可能なユーザインターフェース制御の識別、ユーザ入力の取得、プレイヤの音声シンセサイザを使用して音声をユーザに再生すること、および/または、エラーの報告など。
ウォータマーク制御:出力すべきコンテンツ領域の選択、外部ウォータマーキングアルゴリズムの選択、外部ウォータマーク検出器の制御、および/または、マーク検出器状況のチェックなど。
その他:プレイヤ/再生状況情報、ペイパープレイビリング制御(例えば、プレイヤベースの資金源)、エラー処理、再生終了、安全な不揮発性メモリサポート(下記参照)、プレイヤファームウェアアップデートの適用、および/または、外部モジュール(動的にリンクされたライブラリなど)の呼び出しなど。
関数およびパラメータの標準化の一部は、複数の実装の間の相互運用性を確実にするため(例えば、コンテンツが最初に発行された後に設計されたプレイヤ環境内で、コンテンツが効果的に機能することができるようにする)、および、安全なコンテンツを作成するタスクを単純化するために有用である。標準化は、様々な異なるメーカの製品が同じタイプの情報またはオペレーションを提供すべきである機能に関して特に有用である。例えば、コンテンツがプレイヤ形状因子(ホームオーディオ/ビデオ、ポータブル、自動車用、パーソナルコンピュータソフトウェア専用、ハードウェア支援を有するパーソナルコンピュータソフトウェア、専門スタジオ、映画館など)を決定することを可能にするための関数および応答コードを、標準化することができる。標準化は、以前から存在するコンテンツが理解できない非標準フォーマットで適切なリスク関連情報を報告することによって、メーカがセキュリティ制御を回避しようと試みることを防止するという、さらなる利点を有する。
言うまでもなく、メーカがさらなるメーカ独自の関数を追加して、それらを使用することを選択するコンテンツ作成者によって使用されるように、このシステムをさらに構成することもできる。新しい関数を追加するための能力は、新しい機能を自社製品に追加することを望むメーカにとって特に貴重である。なぜならば、メーカがこれらの機能を追加し、次いでコンテンツパブリッシャと共に協調的なビジネス関係を確立して、これらの機能をサポートすることができるからである。このような一実施形態は、(望まれる場合は)後方互換性を維持しながら、容易に拡張することができる。
メーカは、正確な情報をコンテンツに提供する責任がある。コンテンツは一般に、受信する情報の多くの精度を直接検証することはできないが、メーカが、この情報が正しいことを保証するための強力なインセンティブを有する場合には、これは厳密には必要ではない。例えば、パブリッシャは、パブリッシャ自身の将来のコンテンツが、不正なメーカによって作成された製品上で再生されることを防止することができる。
プレイヤが、コンテンツに提供する情報の暗号化認証を提供する(例えば、認証されたプレイヤまたはメーカキーを使用することによって発行されたデジタル署名を含むことによる)場合、有効となり得るが、このような認証は大部分のデータにとって必須ではない。出力デバイス(高品質デジタルオーディオデータを要求するデジタルスピーカなど)、または、潜在的に信頼できないインターフェースを介して接続するシステムの他の部分にとって、信頼できるデバイスとして装う悪意のあるデバイスを検出し、かつ、回避することができるようにするため、暗号認証はより重要である。
(暗号化処理)
再生環境を説明する情報を提供することに加えて、例示的プレイヤは、さらに、コンテンツによって呼び出すことができる暗号化オペレーションを実装する。これらのオペレーションは暗号化オラクルのように振る舞うことができ、コンテンツが入力データ(例えば、64ビット平文ブロック)を供給することを可能にし、暗号化計算の結果を返す。例示的実施形態では、暗号化計算への入力には、少なくとも1つのキー(その値は通常、コンテンツにとって未知であり、コンテンツによってアクセスできない)、および、コンテンツにより指定された入力データが含まれる。
以下は、再生環境を認証すること、コンテンツ復号化キーを導出することなど(ただし、これらに限定されない)に使用するために、コンテンツに提供することができる暗号化プリミティブの例(ただし、以下のものに限定されない)である。
ブロック暗号オラクル:このオラクルは、秘密キーを使用して入力メッセージを暗号化(または復号化)し、暗号文(または平文)の結果を作成する。
ハッシュ関数オラクル:入力メッセージが通常は秘密キーにより(例えば、HMAC−SHAなどのアルゴリズムを使用して)ハッシュされ、結果が作成される。
デジタル署名オラクル:秘密(公開)キーを使用して入力メッセージにデジタル署名が付けられ、結果が作成される。この関数は、秘密キーおよび(1つまたは複数の)秘密キーの証明書をコンテンツに提供することもできる。
乱数生成器:乱数生成器はコンテンツに予測不能な情報を提供して、例えば、オンライン接続におけるリプレイアタックを防止する上で使用することができる。
数学関数:基本的な数学演算を提供して、コンテンツがその計算プロセスを最適化することを助けることができる。例えば、コンテンツが最適化されたモジュラ乗算または指数関数を使用して、Rivestらの米国特許第4405829号明細書に記載のRSAアルゴリズムを実行し、デジタル署名を作成かつ検証して、メッセージを暗号化および復号化することができる。
最適化された暗号化プリミティブ:標準暗号化アルゴリズムの最適化された実装は、パフォーマンスを向上させるのに役立つことができる。これらのオペレーションを使用して、データのブロックを復号化すること、またはハッシュすることを助けることができる。これらのデータのブロックには、インタープリタコード空間の領域、または、メディアからロードされたコンテンツのセクタが含まれるが、これらに限定されるものではない。
復号化制御:コンテンツが、再生が許可されると決定する場合、インタープリタコードはコンテンツ復号化モジュールを、コンテンツの各セグメントのための正しい復号化キーによって初期化することができる。加えて、インタープリタコードは、レンダリングされるべきであるか、またはスキップされるべきであるコンテンツの諸部分を指定することができる(例えば、再生中にリアルタイムウォータマーク挿入を可能にするため)。インタープリタと、メディアからのコンテンツストリーミングとの間の同期を確実にするために、キー変更(またはスキップされた領域)をあらかじめ指定し、次いで、コンテンツ内の信号によってキー変更を引き起こすことができる。例えば、例示的実施形態では、コンテンツは、暗号文内で発見したときにキー変更を引き起こす64ビット値、キー変更の後に続いてスキップすべき暗号文バイトの数、および、使用すべき新しいキー値を指定することができる。
キー管理:これらの機能によって、どのキーがプレイヤに知られるかをコンテンツは決定することができる。
オペレーションがランダムなパラメータまたは他のこのような可変データを組み込まない暗号化オラクルに関する例示的実施形態では、特定の入力に対して期待される結果をあらかじめ(例えば、コンテンツがマスタリングされるときに)計算することができるように、このシステムを構成することができる。したがって、パブリッシャはコンテンツをプログラムして、選択された入力をオラクルに提供し、次いで、期待された結果が得られることを検証することができる。許可された暗号化キーを欠く悪意のあるプレイヤは、正しいオラクル応答を計算することができないようになる。可能なオラクル入力の数は莫大である(例えば、128ビットのブロックサイズを有するブロック暗号を使用したオラクルでは、2^128である)ので、攻撃者が可能な問い合わせのすべてに対する結果を事前計算すること、または格納することは、実際的に実現可能でない。
有効なプレイヤを検査することに加えて、暗号化オラクルを使用して、無効なプレイヤを識別することもできる。例えば、正当なプレイヤから抽出されたキーが無許可の目的のために使用されている場合、コンテンツをマスタリングし、これによって、失効したオラクルを含むプレイヤ上でコンテンツが再生されることを拒否することができる。コンテンツは、有効なキーがないと再生されないので、無許可のプレイヤは盗んだキー(stolen key)を含まなければならない。しかし、これらの盗んだキーを使用することによって、無許可のデバイスはそれらの状況を、危殆化を認識している新しいコンテンツに対して示すことになる。
オラクル結果を組み込むための、または、特定のオラクル問い合わせ応答が有効であるかどうかを調べるための幅広い種類の方法を使用することができる。最も単純な方法は、単に期待値と比較することである。これは、(少なくとも理論的には、)すべての比較が合致するかのように振る舞う、悪意をもって設計されたインタープリタによって回避することができるので、コンテンツは、失敗すると期待される「ダミー」比較、または、悪意のあるインタープリタを防止するように設計された他のそのようなテストを含むことができる。さらに、オラクル自体を使用して、コードを復号化することもできるし、または自己書き換えコードに影響を与えることもできる。例えば、オラクルへの入力を、所望のコードの暗号化されたバージョンとすることができる。したがって、それらの構成に応じて、このようなオラクルによって、コンテンツパブリッシャは、許可されたプレイヤまたはプレイヤのサブセットによってのみ復号化することができるコードをメディア上に含むことができ、それにより、このようなオラクルは、コンテンツコードを攻撃者となり得る者から離しておく助けとなる。オラクルを使用するもう1つの方法は、それらの出力を、暗号化キーとして、またはキーを導出するために、使用することである。次いで、例えば、コード、コンテンツ、他のキー、または他の任意のデータを復号化するために、これらのキーを使用することができる。この柔軟性のある復号化機能を使用して、幅広い種類のプロトコルおよびポリシをコンテンツ内に実装することができる。例えば、プレイヤが適切なキーの組合せを有する場合、FiatおよびNaorの方法(A. Fiat and M. Naor, "Broadcast Encryption," Advances in Cryptology, Douglas Stinson, editor, p.480; Springer Verlag, 1993 参照)などのスキームを使用するように、コンテンツをプログラムすることができる。望まれる場合、Ginterらの米国特許第5982891号明細書で説明されているシステムなどの高度なアクセス制御システムを実装することもできる(言うまでもなく、プレイヤが必要なユーザインターフェース、ネットワーク、データストレージおよび暗号化機能を提供するならば)。
コンテンツのマスタリングに関して、パブリッシャは、オラクル入力/出力のペアへのアクセスを有することから利点を得ることができる。オラクルがRSAなどの非対称暗号化システムに対して秘密キーを使用する場合では、パブリッシャは単に公開キーを取得し、かつ、これを使用して、オラクルオペレーションとは逆のオペレーションを実行する。ブロック暗号を使用して構築された対称オラクルでは、プレイヤのメーカは、パブリッシャのために、各プレイヤ内に提供された対称オラクルの逆を計算することができる。例えば、プレイヤオラクルがブロック暗号を使用して、秘密キーの下で256ビットデータブロックを復号化する場合、メーカはパブリッシャに、対応する暗号化関数へのアクセスを提供することができる。逆オラクルへのアクセスは、オラクルが危殆化されることを可能にしないので、メーカは、(例えば、)SSLを使用して公的にアクセス可能なウェブサーバにアクセスすることによって、逆オラクル計算を提供することができる。メーカはまた、ランダムに選択されたオラクル入力からの出力をパブリッシャに提供することもできる。(メーカは、プレイヤ内に実装された実際のオラクル関数をパブリッシャに提供することができるが、正当なプレイヤをエミュレートする無許可のプレイヤを構築するために、これらの関数が悪用されるおそれがある。)
キーをプレイヤおよびメーカに割り当てるために使用される特定の方法は、特定の実施形態およびセキュリティ目標によって決まる。例えば、1つの例示的実施形態では、プレイヤには様々な対称暗号化オラクルキーが割り当てられ、これらのキーには、次のようなものが含まれる(ただし、以下に限定されるものではない):このようなキーのより大きなグローバルプールから(擬似)ランダムに選択されたプレイヤ対称キー、メーカによって(擬似)ランダムに生成されたプレイヤ固有の対称キー、メーカ、プレイヤモデルなどに一意の対称キー、および/または、プレイヤが特定の特性を有していない(例えば、特定のメーカによって作成されなかった)ことを認証する対称キー。この例示的実施形態では、コンテンツは、サポートされたキーのリストを返す別の関数を呼び出すことによって、どのキーがプレイヤ内に実装されるかを識別することができる。プレイヤには、非対称キーを含めることもできる。例えば、例示的実施形態では、プレイヤは、プレイヤ固有の公開/秘密キーペア、メーカの秘密キーを使用してプレイヤ公開キーに署名することによってメーカにより発行されたプレイヤ証明書、メーカの公開キーの妥当性を検査するルートキー発行局(root key issuing authority)によって発行された証明書、プレイヤの安全なメモリ領域(下記参照)にアクセスする要求の妥当性を検査するために使用される公開キー、および/または、プレイヤファームウェアアップデートの妥当性を検査するために使用される公開キーを有する。
複数のプレイヤメーカを含むインフラストラクチャでは、1つまたは複数の中央管理組織にプレイヤ、メーカなどのためのキーを管理させることが有効である場合がある。中央管理者はまた、最小限のセキュリティ標準を実装すること、プレイヤが正確な情報をコンテンツコードに提供することを確実にすること、(メーカの製品が古いコンテンツを再生することができるように)キーを新しいメーカのために予約すること、危殆化されたキーを追跡すること、暗号化オラクルオペレーションをコンテンツパブリッシャのために実行することなどのために有効である場合もある。
(安全なメモリおよびカウンタ)
コンテンツにとって使用可能なメモリは通常、揮発性であり、コンテンツが実行されるたびに、コンテンツに「クリーン」な実行環境を提供する。しかし、一部の機能にとっては、コンテンツが複数の再生の間および複数のタイトルの間でデータを格納できることが有効である。この必要性を満たすため、プレイヤは、複数の再生の間で状態を維持するための安全な不揮発性ストレージをコンテンツに提供することができる。このようなストレージは、許可されたインタープリタコードのみが不揮発性メモリコンテンツを読み取ることができること、または変更することができることを確実にするために、さらなるセキュリティ保護を必要とする可能性がある。不揮発性メモリのセキュリティを確実なものにすることは、このメモリを信頼して、例えば、後の支払請求のためにオフラインのペイパービュー視聴履歴を追跡することができるようにするために、パブリッシャにとって重要である。各メモリスロットのロックを解除するために、単にキーをメディア上に有するだけでは十分ではない。なぜならば、このキーがまもなく海賊行為者によって発見され、すべてのプレイヤのメモリスロットを危殆化させるようになるからである。したがって、一実施形態は、これらの安全な不揮発性メモリ領域にアクセスするコードの明示的な暗号化認証を提供する。
この実施形態では、プレイヤは複数の不揮発性メモリのブロックを含み、これらのブロックはデフォルト設定ではロックされる(すなわち、読み取りおよび書き込みが許可されない)。プレイヤはまた、メモリブロックのロックを解除する要求を認証するために使用される公開キーも含む。このメモリブロックへのアクセスを得るために、コンテンツは、メモリにアクセスすることを許可されるコードのブロック上で、デジタル署名を入力として受け取る関数を呼び出す。この署名は、プレイヤ内に埋め込まれた公開キーを使用することによって検証可能であり、ロックを解除すべきメモリブロック、および、ブロックの各部分内で許可されるアクセス特権(任意の読み取り、任意の書き込み、インクリメント、デクリメント、ゼロ化など)を指定する。インタープリタはデジタル署名を検証し、署名が有効である場合、メモリのロックを解除し、デジタル署名付きコードを実行する。以下に、時折(例えば、毎月)の監査によってオフラインのペイパーユースコンテンツの支払請求をする際に使用するための、このプロセスの一例を示す。
(a)パブリッシャXは、プレイヤのメーカYと、メーカYのプレイヤの不揮発性メモリ内の4バイトカウンタを制御するための権利について協議する。
(b)パブリッシャXは、メモリコンテンツをチェックするインタープリタ用の関数を記述する。値が支出制限より小さい場合、関数はカウンタをインクリメントする。値が支出制限以上の場合、関数はパブリッシャとのインターネット接続を確立し、カウンタ値、乱数、および支払情報(クレジットカード番号、または、プレイヤ内に格納された他の資金源など)を含む支払要求を送信する。パブリッシャが、カウンタによって示された過去の購入に加えて現在の購入のための支払を受け入れる場合、パブリッシャは、カウンタを消去するための暗号化認証をプレイヤに送信し、この暗号化認証をプレイヤが検証し、(有効な場合)カウンタをゼロにする。プレイヤは、メモリを再ロックすること、および、成功または失敗を示すコードを返すことによって、終了する。
(c)メーカYは、パブリッシャXのメモリ領域、アクセス特権などを識別するパラメータを含むメモリアップデートコードにデジタル署名する。
(d)パブリッシャXは、署名付きコードを含むコンテンツを作成し、これをユーザに配布する。
(e)ユーザのプレイヤはコンテンツのロードを開始し、これはユーザに購入オプションを提示する。ユーザが購入を断る場合、再生は進行しない。
(f)コンテンツは、ステップ(b)で記述されたコードへのポインタ、および、ステップ(c)で作成されたデジタル署名をもってメモリアンロック関数を呼び出す。
(g)メモリアンロック関数は、ステップ(b)で説明したように購入しようと試み、成功または失敗を報告する。
(h)購入が成功した場合、コンテンツはユーザのために再生される。購入が失敗した場合、再生は終了する。
言うまでもなく、上述の安全なカウンタメカニズムを使用して、はるかに高度な購入メカニズムを利用することができる。コンテンツ内で何を実装することができるかについての実際の制限は、プレイヤの機能およびパブリッシャの創造性のみによって決まる。
様々なストレージ技術を、本明細書で開示するシステムおよび技術と共に使用することができる。これらのストレージ技術には、フラッシュメモリ、磁気ストレージ(例えば、ハードディスク)、バッテリバックRAM(battery-backed RAM)などが含まれるが、これらに限定されるものではない(不揮発性ストレージを提供するための、および、このようなストレージを暗号化するか、またはそうでない場合はそのようなストレージを保護するための、幅広い種類の方法が背景技術において知られている)。安全なストレージをプレイヤの外部に配置することができ、例えば、これらに限定されるものではないが、リムーバブルモジュール内(スマートカードなど)、アタッチされた出力ペリフェラル内(スピーカ、ディスプレイ、ホームネットワーク内のリモートデバイスなど)、コンピュータネットワークを介してリモートに安全なストレージを配置することができる。メモリブロック割り当てを、例えば使用可能な空間に基づいて提供し、確実にし(例えば、スロット番号により)、または、優先順位に基づいて割り振り/リサイクルすることができる。メモリスロットを消去または解放することは、報告されないペイパービュー記録を失う結果となる可能性があるので、スロットを上書きすることができる条件を指定する能力をコンテンツに与えることができる。複数のタイトルを同時に再生することができるが、1セットの不揮発性メモリスロットしか有さないプレイヤでは、ロッキングメカニズムは、コンテンツの一部分が、コンテンツの別の部分によって変更されているスロットにアクセスすることを確実にするよう要求される場合がある。
一実施形態では、プリペイドスマートカードが消費者によって購入され、プレイヤ上のスロットに挿入される。このカードは複数の追記型メモリスロットを含み、プレイヤは、このメモリスロットへペイパービューコンテンツタイトルに対応する識別子を書き込むことができる。識別子が書き込まれると、コンテンツ識別子は、カード内に実装された暗号化オラクル計算に組み込まれる。したがって、コンテンツは、再生可能となる前に正しいオラクルが存在することを検証することによって、購入が完了していることを検証することができる。
上述の、プレイヤ関数へのコールを認証するための全般的な手法は、安全なカウンタと共に使用することに限定されないことに留意されたい。例えば、同じ手法を使用して、許可されたパブリッシャにのみ使用可能な特別なプレイヤ機能へのアクセスを保護することができる。この手法は、さらに、本明細書で開示する技術およびシステムの他の態様とは異なる適用可能性を有する。なぜならば、この手法は、計算関数へのアクセスを保護するための、汎用的ではあるが非常に柔軟性のある方法を提供するためである。
(暗号および言語ベースのセキュリティ機能の比較)
セキュリティポリシを複数の異なる方法で実装することができる。暗号化保護は、失効したプレイヤ、または無許可のプレイヤがコンテンツを復号化するために必要な暗号化キーを欠くようなコンテンツの構築を可能にする。無許可のプレイヤは、キーを欠くコンテンツにアクセスすることはできない(言うまでもなく、優れた暗号が使用されるならば)。この手法は、コンテンツ所有者に、特定のデバイス上での再生をブロックする能力のみを提供するので、比較的柔軟性がない。(より高度な実施形態では、異なるキーセットを使用して、幾分より詳細な制御を提供することができる一方で、キーベースの制御は、より複雑なアクセス制御の課題を解決するために必要とされる柔軟性を欠く。)それにもかかわらず、特定のプレイヤが危殆化される場合、または、コンテンツを復号化する能力を有するために信頼できないと見なされる場合に対処する点で、これは、極めて有効である。
反対に、言語ベースの制御は、プレイヤが危殆化される(または、何らかの他の理由のためにまったく信頼できない)場合にそれほど有効ではないが、極めて高度なセキュリティポリシを実装することができる。前述のように、コンテンツは再生環境を解析することができ、暗号化オラクルへコールすることができ、結果が不満足であると見なされる場合、再生を拒否することができる。この手法は実質的に無制限の柔軟性を提供し、一般に真正に振る舞うが、一部のパブリッシャが所定のコンテンツにおいて防止することを望む可能性のあるオペレーション(非保護フォーマットへのリッピングなど)をサポートする場合のある、プレイヤ上での再生に関連するリスクを管理することに、理想的に適するようになる。攻撃者は、少なくとも理論的には、コンテンツの個々の部分を解析し、解読することができるが(特に、コンテンツのコードが不十分に書かれる場合)、これらの攻撃を一般化することはできず、暗号化オラクルを慎重に使用して、これらの攻撃に確実に対処することができる。さらに、本明細書で説明した復号化制御機能によって自らのコンテンツの海賊コピーを監視するパブリッシャは、危殆化されたデバイスを識別し、脆弱でない新しいコンテンツを作成することができる。
(進化)
長期にわたって安全であり続ける配布インフラストラクチャをコンテンツ所有者に提供することが望ましい。以前のコンテンツ保護システムはこの点でひどく失敗しており、実装者はコンテンツ所有者を新しいフォーマットへと勧誘するとき、最初はセキュリティに熱心である可能性が高いが、セキュリティレベルは、フォーマットの成功が確実になった後で著しく低下する傾向がある。様々な要因がこの低下を導くが、これらの要因には、攻撃するためのより多くの実装が入手可能であること(容易に解読される製品が販売されるようになる可能性が増す)、より保護されたコンテンツが入手可能になるために海賊行為に対する需要が増すこと、および、攻撃者の高度な知識が増すことが含まれる。本明細書で開示するシステムおよび技術の例示的実施形態を構成して、コンテンツ所有者が、メディアフォーマットが標準化された後でも自分のコンテンツがどのように保護されるかを指定し続けることを可能にすると同時に、攻撃が発見される場合にセキュリティが永遠に失われないように、実質的に無制限の更新可能性を可能にすることができる。
セキュリティポリシが静的でない場合、メーカは、有効なセキュリティを提供するための継続的な長期インセンティブを有する。例えば、コンテンツ所有者は、キーが危殆化されるデバイス上で、または、通常海賊行為のために使用される製品上で、再生をブロックする(または、高品質再生を防止する)能力を有することができる。結果として、従来のシステムとは異なり、製品メーカは、自社製品を可能な限りの低価格で提供するために競争するとき、セキュリティを犠牲にすることはできない。なぜならば、消費者もまた、堅牢なセキュリティを有する製品を探し出すようになるからであり、これらの製品は最良で最も信頼性の高い再生体験を提供するようになるからである。
善意のメーカでさえ、後にセキュリティ欠陥を有すると認められる製品を、偶然に製造する可能性がある。したがって、発明者らは、危殆化およびセキュリティ弱点に対処するために使用することができる様々な方法を開示する。例えば、プレイヤ暗号化キーおよびソフトウェアを、デジタル署名付きコードまたはキーアップデートを使用してアップデートすることができる。これらのアップデートを、キーアップデートを実行するソフトウェアを含むメディアの形態でプレイヤに配信することができる。例えば、正当なユーザのプレイヤが、以前の所有者がそのセキュリティを危殆化させたために、最終的に失効する場合、新しい所有者は製品のテクニカルサポートラインに電話して、新しいキーを取得することができる。(言うまでもなく、カスタマサービス担当者は、海賊行為者が無許可の目的のために新しいキーを要求する電話をかけさせないように、名前、住所、クレジットカード番号、電話番号、電子メールアドレス、IPアドレスなど、何らかのユーザ情報を得ることを望む場合がある。)アップデートを、インターネット(または他のネットワーク接続)、モデムコール、リモートコントロールまたはキーボードを介した入力などを介して配布することもできる。言うまでもなく、攻撃者がアップデートプロセスを使用して、危殆化されたキーを投入すること、またはそうでない場合はプレイヤを攻撃することができないように、アップデートは、可能なときは常に、暗号的に保護されるべきである。
メーカが危殆化の影響を低減させることができるもう1つの方法は、スマートカードなどのリムーバブルなセキュリティモジュールを含めることである。スマートカードは、暗号化オラクルの一部またはすべて、ならびに、コンテンツに提供された他のセキュリティ関連機能を実装するようになる。危殆化が発生する場合、またはセキュリティ欠陥が発見される場合、プレイヤ全体を取り替えるか、またはアップグレードするのではなく、スマートカードを取り替えることができる。単にスマートカードスロットを提供するが、スマートカードがセキュリティ上の理由で必要になるようなときまでスマートカードを利用しなくても十分である場合があることに留意されたい。スマートカードが正当なプレイヤから取り除かれないように、および、悪意のあるプレイヤで使用されないようにするため、プレイヤおよび/またはカードが消費者に送られる前に、(例えば、これらに対称キーを共有させることにより)スマートカードを受信器へ暗号的にリンクさせることができる。
(マスタリングおよびDRM)
コンテンツのマスタリングに伴うすべての新しいコストが、コンテンツ所有者にとって当然の関心事である。単純なセキュリティ手段が使用される場合、マスタリングプロセスに対する莫大な新しいコストを回避するために、本明細書で開示する技術およびシステムを利用することができる。複雑なセキュリティポリシを実装するコンテンツを開発するには明らかにより多くの開発およびテスト活動が必要となるが、この費用は完全に任意である。(他の保護システムは単にこの選択を排除し、すべてのコンテンツパブリッシャに強制的に同じセキュリティシステム、ポリシなどを使用させる。)
言うまでもなく、パブリッシャはセキュリティシステム自体を開発する必要はない。なぜならば、本明細書に開示するシステムおよび技術は、サードパーティDRMベンダがセキュリティモジュールおよびマスタリングシステムを提供することも可能にするからである。これらのベンダは、最良の機能、最良のセキュリティ、最低のコスト、最大の柔軟性、最良の使いやすさ、最良のパフォーマンス、最小のコードサイズ、最も広範な失効リストなどを提供することによって、パブリッシャのビジネスを求めて競争するようになる。本明細書で開示する技術およびシステムは、コンテンツ所有者がセキュリティについて自分自身で意思決定する能力を有するプラットフォームとしての機能を果たすことができる。
(ウォータマーキングおよび危殆化トレーシング)
大部分の従来のウォータマーキング方法によって、マーク検出プロセスが、多数の幅広く利用された製品において標準化および実装される。この静的なアルゴリズムは不運にも重大なリスクをもたらす。なぜならば、検出アルゴリズムを知ることで、一般に、攻撃者がコンテンツの品質をひどく低下させることなく、ウォータマークを除去することが可能となるからである。例示的実施形態において、本明細書で開示するシステムおよび技術は、マークフォーマット、エンコードプロセスおよび検出プロセスがすべてパブリッシャによって選択されるために一般的なマーク除去攻撃の影響を受けにくい、オンザフライのウォータマーク挿入を含むことができる。
1つの例示的実施形態では、パブリッシャ(または、より正確には、パブリッシャによって記述された制御プログラム)は、所定の情報を所定の出力コンテンツ内に埋め込むことを望む。第1のコンテンツ部分または第2の部分の一方を復号化し、出力することによって、この情報の各ビットをエンコードすることができる。これらの部分はメディア上の異なる暗号化された領域とすることができ、これらの部分を異なるキーにより暗号化することができる。コンテンツがマスタリングされるときにパブリッシャはこれらの部分の間の差異を選択することができ、これらの部分の間の差異は、知覚できないほど微妙なバリエーションからまったく類似しないものまで、どのようなものにもすることができる。2つの部分の間には所定の関係がないので、一方の部分(その部分用の復号化キーを含む)のみを知っている海賊行為者が他方の部分を決定するための方法はない。
暗号化およびプログラムベースの制御を使用して、どの領域が復号化されるかを選択することができるので、攻撃者は、代替領域が何を含むか判断することができない。実際、攻撃者が代替領域が存在するかどうかを確認することすらできないように、例えば、(異なるプレイヤが異なるコードを使用するように)制御コードを暗号化することにより、および、どのプレイヤも復号化することができない、または非常に少数のプレイヤのみが復号化することができるダミー領域を含めることにより、コンテンツを設計することができる。
1つの例示的実施形態では、すべてのプレイヤのサブセットのみがコンテンツの領域の各バージョンを復号化するために必要なキーを有するが、実質的にすべてのプレイヤがその領域の少なくとも1つのバージョンを復号化するために必要なキーを有するように、コンテンツは作成される。したがって、この領域の無許可のコピーを解析することによって、パブリッシャは攻撃者に関する情報を割り出すことができる。このことは、攻撃者が何とか(脆弱な)プログラムを解析し、複数の代替領域を復号化することができる場合にも当てはまり、これは、結果として生じる複数の領域の組合せがなお、どのバージョンが復号化されたかをパブリッシャに対して示すからであることに留意されたい。最終的に、ユーザが自分の識別(または自分のプレイヤの識別)をパブリッシャのアンチパイラシ実施専門家に明らかにすることを回避できる唯一の確実な方法は、まず第一に海賊行為に参加することをやめることである。
マーク検出プロセスを標準化する必要はないので、この汎用マーキング手法は、従来のウォータマーキングとは異なる。この違いは非常に強化されたセキュリティを可能にし、実際には、このマーキングスキームに対する一般的な攻撃はないことを示すことができる。さらに、ウォータマーク付きビットは出力において差異を生じるので、これらのウォータマークは極めて堅牢となることができ、デジタル/アナログ変換、編集、フォーマット変換、悪意のある攻撃などを切り抜けて存続するように設計することができる。
どのようにコンテンツマーキング機能を構成し、かつ使用するかを決定することは通常、パブリッシャによってなされる。一部のアーティストは、ウォータマーキング機能の使用を除いて、(変更がどんなに小さくても)自分の作品に対して変更を加える可能性のある技術を回避することを望む場合がある。他の場合には、所定のタイプのコンテンツは幅広く海賊行為を受け、マーキング機能を非常に積極的に使用するためのよい候補である。諸部分は通常、知覚できないほどの差異のみを有するように選択されるが、どの代替バージョンをエンコードするかを選択すること、可能性のある複数の出力バージョンの間でどのように選択するか、および、これらの部分のための復号化キーの管理は、コンテンツによって制御される。マーキング機能は、コンテンツと統合されたデータ処理命令によって制御されるので、この技術を他の機能のために使用することができる。これらの機能には、勝者のプレイヤが祝辞を出力するくじを実施すること、プレイヤが不十分なセキュリティを提供するユーザにセキュリティアラートを配信すること、および、ボーナスコンテンツをあるユーザに提供することが含まれるが、これらに限定されるものではない。
言うまでもなく、他のウォータマーキングスキームもまた、本明細書で開示する技術およびシステムと共に使用することができる。例えば、従来のウォータマーク(ウォータマークに対してマーク検出アルゴリズムが標準化されるもの)を、コンテンツのコード、または、外部ウォータマーク埋め込み回路(コンテンツの制御下にあっても、なくてもよい)のいずれかによって、出力に埋め込むこともできる。同様に、(やはり、コンテンツのコード、または外部の検出器のいずれかによって)受信コンテンツ内のウォータマークを感知して、例えば、無許可コピーの作成または無許可コンテンツの導入の試行を検出することができる。どのウォータマークを埋め込むか選択すること、および、検出されたウォータマークにどのように応答するかを、プレイヤ内および/またはコンテンツ内に実装することができる。
(移行パスの実施例:CD−オーディオ)
デジタルコンテンツの大部分は今日、非保護フォーマット、または最小限に保護されたフォーマットで配布される。例えば、CDオーディオ規格はアンチコピー機能を含んでおらず、DVDビデオにおける保護スキームは幅広く解読されている。レガシーメディアプレイヤは十分なセキュリティをサポートしていないので、アップグレードまたは取り替えの必要がある。新しいセキュリティシステムの成功は、互換性のあるプレイヤの臨界数量(critical mass)を確立することにかかっている。
本明細書で開示する技術およびシステムと、コピープロテクトされたCDを作成するための既存の方法とを組み合わせることによって、後方互換性のあるCDを作成することができる。このようなCDは非標準CDフォーマッティングを利用して、大部分のオーディオCDプレイヤ上で正しく再生されるがコンピュータベースのリッピングソフトウェアを混乱させるディスクを作成するようになる。許可された(例えば、ライセンスを受けた)パーソナルコンピュータソフトウェアもまた、不正確に読み取られるか、またはそうでない場合はコンピュータを混乱させる部分を是正することによって、このディスクを再生することができる。したがって、再生は、(大部分の)レガシーオーディオプレイヤ上で可能になり、これは、これらのレガシーオーディオプレイヤが非標準(コピープロテクトされた)レッドブックオーディオ部分を再生することができるからであり、また、再生は、(例えば、CD上に含めることができ、または、インターネットを介してダウンロードすることができる)適切なプレイヤソフトウェアを有するパーソナルコンピュータ上で可能になる。既存のCDオーディオプレイヤとの後方互換性に対する長期サポートはさらなるセキュリティリスクをもたらす可能性があるが、新しい安全なフォーマットを再生することができるオーディオプレイヤの利用を奨励し、(最終的には)コンテンツを安全なフォーマットでのみ販売することができるようにすることは、長期戦略の一部として、有益となり得る。
(実施例:高精細度DVD)
現在のDVDビデオプレイヤによって使用されるコピープロテクトシステムは、幅広く解読されている。何百万のDVDプレイヤがすでに販売されており、新しいプロテクトシステムにアップグレード可能ではないので、これらのレガシーユーザのためのサポートを中止することなく、現在のDVDフォーマットをアップグレードする直接的な方法はない。幸いにも、インストールベースのDVDプレイヤは、「標準」の精細度のテレビ(例えば、NTSCでは525本、PALでは625本など)のみをサポートするが、高精細度テレビ(HDTV)フォーマットによって提供されるはるかに高品質の信号をサポートしないように設計される。レガシープレイヤはHDTVをサポートしないので、本明細書で開示する新しいセキュリティ機能を、HDTVをサポートするDVD上に組み込むことができる。
1つの例示的実施形態では、プレイヤは、(1つまたは複数のディスク用の機械化されたトレイからなる)ユーザがアクセスできるメディア入力を有し、このメディア入力はメディアをスピンドルへロードし、そこでメディアが回転され、レーザを使用して読み取られる。メディアから読み取られたデータはマイクロプロセッサベースの回路に提供され、この回路はディスクエンコーディングを解析して、ディスクの容量、フォーマッティングタイプ、およびセキュリティ方法を決定する。ディスクが、レガシーセキュリティスキーム(CSS)を使用するレガシー(低解像度)DVDである場合、このディスクは、背景技術で知られている方法を使用して再生される。ディスクが、本明細書で開示されるようなプログラマブルなセキュリティ方法を使用する高密度DVDである場合、コンテンツのセキュリティポリシのためのプログラムコード(データ処理命令)がディスクからロードされ、プレイヤによって実行される。プレイヤはまた、任意で、改良されたセキュリティを使用する低密度DVD、ならびに、レガシーな保護方法を使用する高密度DVDをサポートすることもできる(しかし、新しいコンテンツのために幅広く解読されたセキュリティスキームを使用することは、一般にほとんど利点を提供しない)。DVDプレイヤからの出力の品質を、コンテンツによって制御することができる。例えば、コンテンツは、プレイヤおよび/またはHDTV出力デバイスが十分なセキュリティを提供しない場合、より低い解像度の出力を出力するように選択することができる。この場合、コンテンツは、HDTV信号をより低い解像度へダウンコンバートする(例えば、このために特に設計された品質低下モジュール(degradation module)を使用する)ようプレイヤに命令すること、信号のより低い解像度部分を復号化するために必要とされるキーのみをプレイヤに供給する(および、より高い解像度部分のために必要とされるキーを与えないでおく)こと、または、より高い解像度バージョンとは分離して、メディア上でエンコードされるコンテンツの低解像度バージョンを出力するようプレイヤに命令することができる(これらは例であり、これらに限定されるものではない)。
(インタープリタキテクチャ)
1つの例示的実施形態では、インタープリタ言語はDLXアセンブリ言語に基づく。基本的なDLXプロセッサアーキテクチャは背景技術においてよく知られている(例えば、Computer Architecture: A Quantitative Approach by Hennessy et al., Second Edition 参照)。インタープリタのメモリ空間(1つの例示的実施形態では、8メガバイトのRAMからなる)内で実行するコードは、このメモリおよびプロセッサのレジスタセットのみにアクセスすることができるようにサンドボックスされる。無効な命令(または、他のオペレーション)は、NOP(すなわち、何もしない)として処理される場合があり、または例外を引き起こす場合がある。同様に、区域外のメモリアクセスは、例外を引き起こす場合があり、または(例えば、8メガバイトのアドレス空間からの32ビット読み取りの場合、アドレスと、16進の0x007FFFFCとでAND演算を行い、区域外のアクセスをメモリの開始にラップアラウンドして、32ビットのアラインメントを確実にすることによって)是正される場合がある。
DLX「トラップ」命令は、外部プロシージャコールへのアクセスを提供するために使用される。「トラップ」命令はプレイヤ内で、サンドボックスの外部に拡張する(すなわち、標準の命令がアクセス可能なレジスタおよびメモリを越える)ことができるオペレーションを呼び出す。このようなオペレーションの説明については、「再生環境への問い合わせおよび再生環境の制御」のセクションを参照されたい。
専用ハードウェア実施形態では、ソフトウェアベースのインタープリタ/エミュレータではなく、DLXプロセッサのASICまたはFPGA(または他のハードウェア)実装を使用することも可能であり、この場合、(例えば、)プロセッサがより高い特権レベルに入るように、(例えば、追加のアドレス行を使用可能にすることによって)アドレススペースを拡大してROMまたはEEPROM領域を含むように、リターンプログラムカウンタを格納するように、および、さらなる処理のために、拡大されたアドレススペース内の所定のアドレスにジャンプするように、「トラップ」命令を構成することができる。より高い特権レベルは、外部ペリフェラル(例えば、不揮発性メモリ、暗号化アクセラレータ、キー管理コンポーネント、光メディアドライブ、データネットワーク、衛星受信器など)と対話する能力などのさらなる命令または機能をプロセッサコア内で使用可能にすることもできる。ハードウェア実装におけるメモリ保護機能には、アドレス行の数を制限すること(それにより、区域外アクセスを防止する)、または、背景技術において知られている他のメモリ保護方法を使用することを含めることができる。「トラップ」コールの完了時に、プロセッサは特権レベルを下げて、コンテンツコードの実行を進める。
高密度光ディスク上に格納されて配布されたビデオを復号化するための例示的DLX実装では、「トラップ」オペレーションは、コンテンツがデータをディスクから読み取ることを可能にするために提供される。データを物理的メディアからロードするため、コンテンツコードは通常、アドレス(例えば、光ディスク上のセクタ番号)、DLXメモリ空間内のデータのための宛先アドレス、ロードすべきデータの量、および、任意でデコードパラメータ(エラー訂正多項式/パラメータ、デコードキーなど)を指定する。コンテンツは、データをコードとして実行することも含めて、データを使用する任意の方式の処理ステップを実行することができる。光ドライブ、ハードドライブ、および他のデータソースはしばしばかなりの待ち時間を有するので(特に、新しいトラックにシークするなどのオペレーションを実行中であるとき)、別の「トラップ」オペレーションを使用して、必要とされると予想される領域を事前に指定し、データを要求し、保留中の要求の状況をチェックし、および/または、実際にデータをDLXメモリ空間にロードすることができる。
コンテンツコードは、高速暗号オペレーションをメモリ上で実行するためにトラップオペレーションを呼び出すこともできる。例えば、例示的バルク復号化「トラップ」オペレーションはAES暗号化アルゴリズムを利用し、(a)プレイヤ内に(またはプレイヤがアクセスできる)格納された複数の秘密キーの中から選択するインデックス、(b)暗号化されたキー、(c)復号化すべきデータのためのDLXメモリ空間内のアドレス、および(d)復号化すべきデータの長さを、コンテンツが指定することができるようにする。トラップは(a)インデックス値によって識別されたキーを使用して、コンテンツからの受信した暗号化されたキーを復号化し、(b)復号化されたキーをAESアルゴリズムと共にECBモードで使用して、指定された数のデータブロックを示されたアドレスで復号化する。インデックスによって選択することができるキー復号化キーには、プレイヤ内に格納されたキー(プレイヤ固有のキー、メーカキー、グループキー、メディアキーなどが含まれ(ただし、これらに限定されない)、任意で、これらを暗号機能および内部不揮発性メモリを備える耐タンパ性を有するチップに格納することができる)、外部デバイス(暗号モジュール、ディスクドライブ、リモートネットワークアクセス可能デバイス/サーバ、ディスプレイ、スピーカなど(ただし、これらに限定されない))内に格納されたキーを含めることができる。どのキーが使用可能であるかを判断するため、コンテンツコードは、プレイヤのタイプ、プレイヤのシリアルナンバ、プレイヤ内に含まれる(および、任意で、プレイヤのメーカまたは信頼できるパーティによってデジタル署名された)キーリスト/説明、ネットワークを介して得られたデータ、および、プレイヤまたは再生環境についての他の任意の入手可能なデータなどの情報を解析することができる(「再生環境への問い合わせおよび再生環境の制御」のセクションを参照)。コンテンツコードは、任意の方法の他の暗号化機能をプレイヤに提供することもできる。これらの暗号化機能には、暗号化、復号化、対称アルゴリズム(いずれかのオペレーションのモードによる、ストリーム暗号、ブロック暗号、ハッシングアルゴリズム、メッセージ認証コードなど)、公開キーアルゴリズム(署名、検証、暗号化、復号化、キー合意、ゼロ知識オペレーションなど)、キーおよび証明書管理などが含まれるが、これらに限定されるものではない。
コンテンツコードは、追加の処理(または前処理)オペレーションを復号化結果に対して実行することができる。例えば、XOR演算を実行して、ECB復号化結果をCBC復号化結果に変換することができる。スクランブル解除ステップを適用して、敵対者がプレイヤから抽出したキーを使用してそのインタープリタコードを実行することなくコンテンツを復号化することを、防止することができる。適用することができるステップの例には、ビットをトグルすること、単純な2項演算を使用して変更を行うこと、ブロックを再配列すること、(例えば、MPEG−2または他のビデオ圧縮規格に不服のあるデータストリームを組み立てるために)オフセット/アドレスを修正または挿入すること、公開キー演算を適用すること(合成数を法とするモジュラ平方または立方など)、対称暗号化オペレーションを適用すること、および、内部チェックサムを更新することが含まれるが、これらに限定されるものではない。後処理ステップを使用して、例えば、コピーを特定のデバイスまでトレースできるように、フォレンシックウォータマーク(forensic watermark)を導入または修正することもできる。インタープリタを使用して、デコード/処理済みデータを実行し、復号化/再生コード自体の諸部分を暗号化された形式で配布することを可能にし、自己書き換えコードの使用などの幅広い種類のコード隠蔽および難読化(obfuscation)技術をコンテンツが利用することを可能にすることもできる。多機能データ、例えば、実行されるときに有用なタスクを実行し、有効な圧縮ビデオも表すデータを構築することも可能である。
処理が完了し、データが出力される準備ができているとき、データをユーザに出力するために、コンテンツコードはさらなるプロシージャコール(例えば、DLX「トラップ」オペレーション)をプレイヤ内で呼び出すことができる。このようなコールは例えば、データを1つまたは複数のビデオデコーダ(例えば、MPEG−2デコーダ)、オーディオデコーダ(例えば、MP3またはAC−3デコーダ)、または、グラフィックスオーバーレイシステム(例えば、透過性/オーバーレイ機能を有し、さらに、GL、ShockWaveまたはFlashなどのイメージおよび/またはアニメーションエンジンをサポートする)に転送することができる。データは、適切な場合、変換(例えば、圧縮解除)され、次いで提示される。提示には、オーディオスピーカまたはビデオディスプレイなどの1つまたは複数の物理的に分離したデバイスにデータを転送することを含めることができる。
別々のAPIコールとしての復号化機能および圧縮解除/出力機能を有する実施形態は、コンテンツによるより大きな制御を可能にするという利点を有するが、コンテンツがメモリから読み取られ、メモリに書き込まれる必要のある回数を増すという、潜在的な欠点を有する。しかし、実際には、RAMは通常十分に高速であり、映画館品質の高精細度ビデオなどの非常に高ビットレートのコンテンツに対しても、追加の待ち時間を管理できる。高速の実装では、プレイヤコーデックは不必要である場合がある。なぜならば、圧縮解除をインタープリタコード内に実装することができるからである。プレイヤはまた、一命令複数データ並列処理機能(single-instruction, multiple-data parallel processing capability)を提供して(例えば、x86プロセッサで見られたMMX、SSEおよびSSE2命令にほぼ類似した、プロシージャコールを介してアクセス可能な一命令複数データ数学演算を提供することによる)、インタープリタコードを使用して実行されたコーデック、グラフィックス処理演算などのパフォーマンスを向上させることもできる。
様々なインタープリタ実装戦略が可能である。一実施形態では、インタープリタは、標準のマイクロプロセッサ上で実行されるソフトウェア内に実装される。別の実施形態では、インタープリタは、フィールドプログラマブルゲートアレイなどの再構成可能ロジックを使用して実装される。別の実施形態では、専用ハードウェアデバイスがインタープリタの役割を実行する。3つの場合すべてにおいて、プロシージャコールを、ネイティブソフトウェア、ハードウェアアクセラレーション、および、外部デバイスまたはコンポーネントへのコールの任意の組合せを使用して実装することができる(ただし、これらに限定されるものではない)。
(ネイティブコード)
プレイヤ独立のサンドボックスされたコードを解釈することに加えて、プレイヤは、コンテンツが実行および/または格納のためにネイティブコードを提供することを可能にすることもできる。キーまたは他の特権付きリソースへアクセスすることができるソフトウェアまたはロジックを受け入れることに先立って、プレイヤはコードの妥当性を検査する。例えば、プレイヤメーカまたは別の信頼できるパーティによって発行された有効なRSAデジタル署名をコードが含むことを確認することによって、妥当性検査を行うことができる。現在ロードされているコンテンツによる実行のために、妥当性検査を通過したネイティブコードを揮発性メモリ内に格納することができ、または、他のタイトルが使用可能なプレイヤの不揮発性メモリ内に格納することができる。例えば、可能性のある他のタイトルへの悪影響を回避するため、現在ロードされているタイトルのみが使用できるように、プレイヤにおける表面的な特異な動作を是正するためのパッチ、または、パフォーマンス最適化を提供するためのパッチを揮発性メモリ内に格納することができる。反対に、セキュリティ脆弱性を是正するためのアップグレードは通常、プレイヤの不揮発性メモリ内に永続的に格納されるようになる。
ネイティブコードは通常、単一のプレイヤプラットフォームまたはプレイヤアプリケーションに固有であり、インタープリタコードよりも移植性が低くなる。その利点は、インタープリタコードを使用して対処することができない必要性が生じる場合、ネイティブコードを使用することができることである。例えば、コンテンツは、正当なプレイヤと、無許可のエミュレータまたは「クローン」とを区別するための方法としてネイティブコードを使用し、攻撃者が製品の設計における主要なセキュリティ脆弱性を発見するたびに、影響を受ける可能性のある任意のデバイスを失効させる必要性を回避することができる。このような攻撃に対する防御として、製品ベンダは、エミュレートまたはリバースエンジニアリングすることが困難となる、ビルトインのネイティブコード機能またはインタープリタオペレーションを含むことができる。プレイヤ特有の攻撃の検出、またはそれに対する対処の助けとなるように設計された機能はベンダ独自および/またはプレイヤに特有である可能性があり、これは、それらの機能がプレイヤ特有の問題に応答してのみ作動されるようになるからであることに留意されたい。特有の手段には、単純な非文書化機能(simple undocumented feature)、タイミング依存ルーチン、ソフトウェアにおいてフルスピードでリバースエンジニアリングまたはエミュレートすることが困難となるように明示的に設計されるオペレーション(例えば、全体を参照することにより本明細書に組み込まれる、Kocherらの米国特許第6289455号明細書に記載の擬似非対称関数を参照)、および、完全暗号化オラクル(対称または非対称)を含めることができるが、これらに限定されるものではない。インタープリタが専用ハードウェア内に実装されるデバイスの場合には、「ネイティブ」コードおよびインタープリタコードは類似している、または等しい場合がある(しかし、これらのコードは異なる特権をもって動作する場合があり、この場合、プレイヤはより高い特権レベルでの実行を、特別に認証されたコードに制限することができる)。
ネイティブコードを使用するコンテンツの例示的実施形態では、メディアは、解釈されるときにさらなる解釈可能コードをロードするインタープリタコードからなる初期ブート部分を含む。コンテンツコード(例えば、ブート部分によってロードされたコード)は次いで、プロシージャコールをプレイヤに発し、結果を解析して、プレイヤタイプを含む再生環境についての情報を決定するようになる。コンテンツは、例えば、プレイヤ(または他のコンポーネント)が、報告された再生環境特性に特有の(またはその特性を示す)キーを使用して暗号化オペレーションを実行するよう要求することによって、再生環境を検証することもできる。悪意のあるインタープリタが妥当性検査の結果を改ざんすることを防ぐため、このようなオペレーションの結果を後続のデコードおよび再生プロセスにおいて使用することができる。(例えば、プレイヤからの暗号化の結果を復号化キー計算に組み込むことによって、コンテンツは、特定のプレイヤタイプまたは再生環境属性を主張するが対応する暗号化キーを欠く、悪意のあるプレイヤ上での再生を堅牢に防止することができる。結果を期待値と比較し、公開キースキームを使用して検証することなどもできる。)コンテンツは次いで、プレイヤが是正を必要とするセキュリティ欠陥(または、他の問題)をデフォルトで含むタイプであるかどうかを判断する。この判断を行う際、コンテンツコードは、プレイヤ内からの情報(例えば、コンテンツがアクセス可能な不揮発性メモリ内のデータ、プレイヤ内のクロックからの日付/時間情報など)、および/または、外部で得られた情報(例えば、アタッチされたデバイスに問い合わせること、または、ネットワークを介して通信することによる)を解析することができる。問題が特定される場合、(例えば、メディアから、または、インターネットなどのデータネットワークを介して)対応する対策が得られる。問題の性質に応じて、対策はインタープリタコードおよび/またはネイティブコードを含むことができる。ネイティブコード対策が必要である場合には、コンテンツは対策コードをデジタル署名付きデータとしてプレイヤに提供することができ、このデータは、コードが将来の使用のために(例えば、プロシージャコールを通じて)揮発性メモリ内でバッファリングされるべきであるか、(例えば、既存の不揮発性メモリ内のバグを修正するため)永続的に格納されるべきであるか、および/または、即時に実行されるべきであるかを示す命令を含む。ネイティブコードは、識別可能オペレーション(コンテンツ復号化プロセスと統合することができる暗号化計算など)を実行するように構成することができるので、ネイティブコードが実際にプレイヤによって実行されたことを、コンテンツコードに対して保証することができる。例えば、暗号化キーを上書きすることによって、悪意のあるプレイヤを無効にするように、ネイティブコードを構成することもできる。コンテンツはまた、コードおよびコードアップデート(ネイティブまたはインタープリタ)に問い合わせ、これらを解析し、デジタルインターフェースを介して接続されたディスプレイまたはスピーカなどの他のデバイスに配信することもできる。再生環境が受け入れ可能になると、コンテンツコードは次いで、例えば、データのチャンクをメディアからロードすること、フォレンシックウォータマークを挿入しながら復号化オペレーションを実行すること、および、復号化されたデータを圧縮解除および出力のために配信することにより、ユーザによって要求されたように再生を進行する。
(標準化およびパフォーマンスの考慮事項)
再生環境を十分詳細に定義し、準拠プレイヤのメーカが(セキュリティポリシなどにしたがう)準拠コンテンツをそれらのメーカの製品で再生できることを確信することができる、標準を有することがしばしば必要である。このような標準は通常、インタープリタの基本命令セット(またはその均等物)、および要求されたプロシージャコールを指定する。デコードプロセスのリアルタイム部分に含まれる場合のある任意の命令およびプロシージャコールについてのパフォーマンス要件を定義することも必要である場合がある。(パフォーマンス要件は一般に、起動、シャットダウン、および、他の非リアルタイムオペレーション中にのみ実行されるオペレーションでは、それほど重要ではない。)
例えば、例示的仕様は、準拠インタープリタが毎秒最低800万「タイムユニット」(TU)を実行できることを要求する場合があり、この場合、標準の低レベルインタープリタオペレーションはそれぞれ最大1TUを要する場合があり、乗算および除算演算はそれぞれ4TUを要する場合がある。プレイヤにより供給されたプロシージャ(例えば、DLX「トラップ」)へのコールのためのパフォーマンス要件は、要求されるオペレーションによって決まる。例えば、AES暗号化オペレーションは、最大100TUに加えて、12TUをブロック暗号計算毎に要する場合がある。ワードアラインされたメモリコピーは、最大50TUに加えて、1TUを16バイト(またはその部分)毎に要する場合がある。メディア読み取り要求のバッファリング、または、バッファリングされた要求の完了状況のチェックは、最大100TUを要する場合がある。読み取り要求は一度に1つ、提示された順序で、しかし、他の処理と並列で実行され、最大10000TUに加えて、1500TUを2048バイトセクタ毎に要する場合がある。不連続の読み取りは、追加(20000+640000*セクタ内のシーク距離/メディア毎の最大セクタ)のTUをシークオーバーヘッドとして要する場合がある。完了された読み取りからデータをロードすること(すなわち、データをドライブのバッファからインタープリタのメモリ空間に転送すること)は、最大100TUに加えて、128TUを、転送された2048バイトセクタ毎に要する場合がある。データをコーデックまたは他の出力に転送することは、最大100TUに加えて、1TUを、転送された16バイト(またはその一部)毎に要する場合がある。言うまでもなく、これらのタイミング値は例示のために提供され、特定のパフォーマンスメトリックスは、システムの要件によって決まるようになる。(例えば、命令シーケンスの合計計算時間を指定する)より複雑なパフォーマンス指令を指定して、プレイヤ実装者により大きな柔軟性を提供し、または、コンテンツ作成者によりよいパフォーマンス保証を提供することもできる。
実際には、多数の実装は、最低限のパフォーマンスよりかなり高速に動作するようになる。このことは単に、データが必要とされる前に準備ができるようになることを意味する。例えば、通常のインタープリタ命令につき40クロックサイクルを要するソフトウェアベースのインタープリタは、約5000万TU/秒を2GHzマイクロプロセッサ上で実行するようになる。同様に、25MHzで実行し、命令につき2クロックサイクルで実行する専用ハードウェア実装もまた、毎秒800万TUよりも大幅に多く実行するようになる。
標準の開発者は、システムの簡素化と、パフォーマンスとの間のトレードオフに直面することに留意されたい。具体的には、ソフトウェアベースの実装では、プロシージャコールにおいて実行されるオペレーションは一般に、インタープリタコードにおける同じオペレーションよりもかなり高速に動作すると仮定することができる。他方では、これらのオペレーションは通常、前もって定義されなければならず、また通常は、それらのパフォーマンスの仮定においてエントリ/終了オーバーヘッドを含まなければならない。それにもかかわらず、メモリコピー、検索、大数の計算、および暗号化計算などの一般的なオペレーションのためのプロシージャコールは、大きなパフォーマンス利点を提供することができる。代替のパフォーマンス向上手法は、インタープリタがコンテンツコードを実行前または実行中に解析して、最適化すること(例えば、ネイティブコードに変換すること)ができる領域を識別することである。コンテンツコードには、最適化のための適切な候補である領域をインタープリタに知らせるための「ヒント」を含めることもできる。「ヒント」の手法は、(高速になる傾向があるが、複雑なオペレーションを実行するという難点を有する)ハードウェア実装が、(例えば、NOPとして処理することによって)ヒントを無視し、後続のコードを通常に処理することができるという利点を有する。(低速になる傾向があるが、より高速なネイティブコード機能を有する)ソフトウェア実装はヒントを使用して、インタープリタコードを、機能的に互換性のあるネイティブコードルーチンと置換することができる。望まれる場合、パフォーマンス基準は共通の構造のためのプレイヤパフォーマンス要件を指定することができる。プレイヤはまた、コンテンツが、最低限のパフォーマンスを満たすよう常に保証されるインタープリタモード(例えば、リアルタイムタスク用)と、よりよい平均の場合のパフォーマンスを有するモード(例えば、非リアルタイムタスク用)とから選択することを可能にすることもできる。
コンテンツを作成しているとき、コンテンツ開発者は、自分が書いたソフトウェアが、基準によって指定された最低限のパフォーマンスを満たすことを検証する必要がある。タイミング準拠を検証するための専門のテストシステムは、コンテンツコードが実行するときのその最悪の場合のパフォーマンス特性を作表する。このシステムは、実行される各サブオペレーションに対してプレイヤが取ることのできる最大許容時間を作表しながら、再生プロセスをエミュレートすることによって動作する。再生プロセスが低速すぎる場合(例えば、測定された最悪の場合のプレイヤパフォーマンスが、コーデックに供給されているデータにおけるタイムスタンプに遅れを取る場合、または、コーデックがデータ「不足」になる可能性がある場合)、ツールはメディア作成者に通知することができ、メディア作成者は次いで問題を是正することができる。オーサリングツールは同じ手法を使用して、それらの出力が確実に再生されるようにすることができる。
(不揮発性メモリの保護)
前述のように、プレイヤデバイスは、コンテンツによる使用のために不揮発性(NV)ストレージ機能をコンテンツに提供することができる。コンテンツを作成するエンティティの数が大きい場合があるので(場合により、少数のアーティスト、学生、ホームユーザなど、ならびに大規模のスタジオが含まれる)、あるコンテンツが不十分に、または悪意をもってさえ書かれる場合があるという仮定の下で、コンテンツおよびプレイヤがNVストレージ使用において制限を実施することは、有効である場合がある。結果として、プレイヤは、各タイトルがNVメモリを予約し、格納されたデータを読み取り、修正し、上書きする能力を制限することを望む場合がある。「安全なメモリおよびカウンタ」というタイトルのセクションでは、デジタル署名を使用して不揮発性メモリにアクセスするコードの妥当性を検査することを、説明する。しかし、状況によっては、コンテンツタイトルが不揮発性メモリ領域を割り振りおよび/または制御することを可能にしながら、不揮発性メモリセキュリティが集中認証局なしに動作することが望ましい場合がある(例えば、政治的および/または技術的な理由のため)。
以下のセクションでは、集中署名局を必要とすることなく、不揮発性メモリへの安全なアクセスをコンテンツに提供する、プレイヤの例示的実施形態を説明する。図4を参照すると、例示的メモリマネージャは128キロバイトのフラッシュメモリへのアクセスを制御し、この128キロバイトは、各々が256バイトである511のスロット、および、追加のデータのための256バイトに分割される。スロット0[410]、スロット1[412]、スロット2[414]、および、その後の各スロット440は、最初にスロットを割り振ったタイトルのメディアIDを識別する128ビットの作成者メディアID420、最後にスロットを変更したタイトルのメディアIDを識別する128ビットの最終アップデートメディアID422、スロットが最後にアップデートされたときを識別する40ビットの最終アップデートシーケンスカウンタ424、スロットが上書きされる必要がある場合にスロットのランクを示す8ビットのスロット優先順位値426、許可されたコードによってのみアクセス可能である16バイトのプライベートデータ428、スロットにアクセスすることを許可されるコードの160ビットのハッシュ430、および、メインスロットペイロードデータ432を含む。プレイヤが工場で初期化されるとき、これらの値をすべてゼロに初期化して、スロットが空であることを示すことができる。
128キロバイトの不揮発性メモリの最後の256バイトを使用して、秘密プレイヤキー444、上書きされている優先順位6スロットの数を含むカウンタ445、上書きされている優先順位7スロットの数を含むカウンタ446、および、高部分447および低部分448として格納されたスロット書き込みカウンタを含む値を格納する。スロット書き込みカウンタは頻繁に更新され、一部の不揮発性メモリ技術は、非常に多くの書き込みサイクル後に消耗するので、このカウンタは、いずれかの特定のメモリセルが更新される回数を制限する形態で格納される。低部分における1024ビットのうち1023が満たされていない限り、1ビットを低部分448に設定することによって、このカウンタはインクリメントされ、低部分における1024ビットのうち1023が満たされる場合、高部分449がインクリメントされ、低部分448のすべての1024ビットは消去される。高部分447を1024で乗算し、次いで低部分449に設定されたビットの数を加算することによって、カウンタ値は読み取られる。プレイヤが工場で初期化されるとき、これらの値をすべてゼロに初期化することができるが、ただし、プレイヤキーはシークレット(擬似)ランダム値により初期化されるべきである。
プレイヤはまた、揮発性メモリ(例えば、従来のRAM)内に格納することができる、複数の値も維持する。これらには、メディアキー450、メディア識別子452、どのスロット(すなわち、番号0ないし510)が現在アタッチされているかを示す値456、および、現在のタイトルによってこれまでに書かれたNVメモリ内の最高優先順位スロットを示す値が含まれる。タイトルが初期化されるとき(例えば、メディアが挿入されるか、またはプレイヤがリセットされるとき)、アタッチされたスロット識別子454、アタッチされたスロット優先順位456、および、最大作成優先順位458がリセットされる。メディアキー450は好ましくは、コンシューマ記録可能メディア上でコンシューマ記録可能デバイスにより書き込み可能ではないメディアの一部分からロードされる。メディア識別子452は、次いで、背景技術においてよく知られているセキュアハッシュアルゴリズム(SHA−1)などの一方向の暗号化変換を適用することによって、メディアキーから導出される。追加の保証を提供するために、メディアは暗号化署名認証メディアキー450および/またはメディア識別子452を運ぶことができ、次いで、これらをプレイヤおよび/またはコンテンツコードによって認証することができる。代替実施形態は、他の値(メディアを製造またはプレスした施設の識別、および/または、代わりにメディアの特定の部分に特有の識別子など)を含むことができ、必ずしも識別子とキーの間の固定関係を有する必要はない。
一般に、コンテンツコードは、各スロットのプライベートデータ428を除く不揮発性メモリコンテンツに対する実質的に自由な読み取りアクセスが認められる可能性がある。この読み取りアクセスは、コンテンツがスロット番号を指定してコンテンツを検索することを可能にするプロシージャコール(例えば、DLX「トラップ」オペレーション)を使用して、実施することができる。要求されたスロットが現在アタッチされていない(すなわち、アタッチされたスロット識別子454によって識別されない)場合、スロットプライベートデータ428は返されない(例えば、ゼロがこれらの位置に返される)。
例示的実施形態では、コンテンツには、不揮発性メモリスロットから読み取り、不揮発性メモリスロットへのアクセス(アタッチ)を要求し、および、不揮発性メモリスロットの修正を行うための、以下の基本的オペレーションが提供される。
SlotRead:このプロシージャコールは、指定されたスロットのコンテンツを、コンテンツコードによってアクセス可能なメモリ空間に読み込む。このプロシージャの入力パラメータには、スロット番号、および、結果が格納されるべきコンテンツのメモリ内のポインタが含まれる。スロットコンテンツ全体は、プライベートデータフィールド428を除いて返され、プライベートデータフィールド428は通常、読み取り結果においてゼロにされる。指定されたスロット番号が(−1)である場合、アタッチされたスロット識別子454によって識別されたスロットが読み取られ、完全なコンテンツ(プライベートデータ428を含む)が検索および格納される。オペレーションの戻り値は、読み取られたスロット番号(例えば、スロット(−1)が指定された場合、アタッチされたスロット識別子454)、または、なぜ要求が失敗したかを示すエラーコードのいずれかを含む整数である。
SlotAttach:このプロシージャコールは、指定されたスロットへの特権付きアクセスを要求するために使用される。このようなアクセスを付与することに先立って、要求を行うコードが認証される。プロシージャの入力パラメータは、スロット番号、コードの長さ、および要求された優先順位レベルを指定する。プロシージャは、アクセスを付与されるべきコードの開始アドレス(例えば、SlotAttachオペレーションを呼び出す命令の後に続く、コンテンツのメモリ内のアドレス)を割り出す。このアドレスおよび指定された長さを使用して、プロシージャは次いで、(例えば、SHA−1を使用して)コードの暗号化ハッシュを計算する。ハッシュ結果が、スロット内に格納された許可ハッシュ430の値に合致しない場合、または、(例えば、図5に関連して後述するように)要求された優先順位が無効であると判定される場合、スロットゼロがアタッチされ(すなわち、アタッチされたスロット識別子454およびアタッチされたスロット優先順位456がゼロに設定され)、エラーが返される。そうでない場合、要求されたスロット番号は、現在アタッチされているスロットになる(すなわち、アタッチされたスロット識別子454が、要求されたスロット番号に設定され、アタッチされたスロット優先順位456が設定される)。特別な場合として、呼び出し元コードは(−1)のスロット番号を指定して、新しいスロットが割り振られるよう要求することができる。この場合、プレイヤは(例えば、図5に関連して後述するように)要求された優先順位の妥当性を検査し、優先順位が無効である場合、エラーを返す。そうでない場合、プレイヤは(後述のように)上書きすべきスロットを選択し、(例えば、作成者メディアID420を現在のメディアID452に設定し、他のスロットフィールドをゼロにし、書き込みカウンタ447/448をインクリメントすることにより)これを消去して、(例えば、アタッチされたスロット識別子454をこのスロットの番号に設定し、優先順位456を要求された優先順位に設定することにより)このスロットにアタッチし、最大作成優先順位458を、その現在値および要求された優先順位456のうち大きい方に設定する。潜在的に信頼できないコードを不意に実行させる可能性のある他の機能、または、割り込みをインタープリタがサポートする場合、スロットがアタッチされる間に悪意のあるコードが開始されることを回避するために、これらは無効にされるべきである。戻り値は、アタッチされたスロット番号454であり、または、オペレーションが失敗した場合(例えば、コードハッシュのミスマッチのため、または要求された優先順位が無効であるため)、エラーコードである。
SlotWrite:このプロシージャコールは、現在アタッチされているスロットにデータを書き込む。このプロシージャの入力パラメータは、スロットプライベートデータ428、認証ハッシュ430、およびペイロード432のための新しいコンテンツを示し、これらは、他のスロットフィールドのための更新値と共に書き込まれる。(詳細には、作成者ID420は不変のまま残され、最終アップデートメディアID422は現在のメディアID452に設定され、最終アップデートシーケンスカウンタ424はスロット書き込みカウンタ447/448に設定され、スロット優先順位426は、アタッチされたスロット優先順位456に設定される。)スロット書き込みに先立って、スロット書き込みカウンタは、その低部分448、および、必要な場合は高部分447を更新することによって、インクリメントされる。有限のライフタイム(例えば、多数のフラッシュおよびEEPROMメモリは、100万書き込みサイクルと見積もられる)を有する不揮発性メモリを使用するプレイヤは、電源投入/メディア挿入後に、(例えば、128を超える)非常に多くの書き込みが実行されている場合、書き込みを拒否することができる。書き込みオペレーションは、アタッチされたスロット識別子454およびアタッチされたスロット優先順位456を共にゼロにリセットする。戻り値は、書き込みが成功したかどうかを示すステータスコードである。
スロット優先順位管理サポートは、複数の相反し得る目的のバランスを取るために提供され、これらの目的には、(a)コンテンツは、適度に必要とする可能性のある量の不揮発性メモリへアクセスすべきであること、(b)コンテンツは、その不揮発性メモリが不意に上書きされないことを確実にすべきであること、(c)あるタイトルが過度に多くの不揮発性メモリを予約して、それにより他のタイトルが予約できないようにすることが、可能であるべきではないこと、(d)空のスロットが不揮発性メモリ内で使用できない場合、新しいコンテンツに何らかの不揮発性ストレージを提供するために、めったに使用されないスロットがリサイクルされるべきであること、および、(e)タイトルが、正当なスロットをリサイクルさせるように設計された多数の要求を提示することができないようにするべきであることが含まれる。一般に、より高い優先順位を有するスロットは、プレイヤがスロットを使い切っている場合、上書きされる可能性が低い。例示的実施形態では、優先順位ルールは、各メディアタイトルが多くても1つの最高優先順位スロット(優先順位7)を確実に有することができるように設計される。加えて、メディアは、各挿入または各プレイヤパワーサイクルにおいて、2以上の優先順位を有するスロットを1つだけ作成することが認められる。コンテンツは、7より大きい優先順位を有するスロットを作成することはできないが、プレイヤが製造されるときに予約されたスロットは、より高い優先順位レベルを有することができる。
図5は、アタッチされたスロットのための要求された優先順位が受け入れられるかどうかの妥当性を検査するための例示的プロセスを示している。スロットがアタッチされるとき、または作成されるとき(上記のSlotAttachを参照)、コンテンツは、要求された優先順位値を指定する。ステップ500で、プレイヤは、新しいスロットが割り振られている(例えば、スロット番号が−1として指定される)かどうかをチェックする。そうである場合、ステップ510で、プレイヤは、要求された優先順位がスロットの既存の優先順位426を超えるかどうかをチェックし、超える場合は、要求された優先順位が大きすぎることを示すエラーを返す。要求された優先順位がスロットの既存の優先順位426を超えない場合は、ステップ520で、アタッチメント要求が認められて、要求された優先順位を使用して進行する。ステップ500で、要求は新しいスロットを割り振ることであると判断する場合、プレイヤはステップ530で、要求された優先順位が7以下であるかどうかをチェックし、そうでない場合、エラーを返す。要求された優先順位が7より大きい場合、ステップ540で、プレイヤは、要求された優先順位が2より大きいかどうかをチェックし、そうでない場合、要求された優先順位が、スロットを割り振るために有効であるとして受け入れられる。要求された優先順位が2より大きい場合、ステップ550で、プレイヤは、最大作成優先順位458をチェックして、メディアが挿入された後、またはプレイヤがリセットされた後、2より大きい優先順位を有する任意のスロットがすでに作成されているかどうかを判定し、そうである場合、要求された優先順位が拒否される。2より大きい優先順位を有するスロットが作成されていない場合、ステップ560で、プレイヤは、要求された優先順位が7であるかどうかをチェックし、そうでない場合、要求された優先順位は、スロットを割り振るために有効であるとして受け入れられる。要求された優先順位が7である場合、ステップ570で、プレイヤは、その格納された作成者メディアID420が現在のメディアID452に等しい優先順位7スロットがすでに存在しているかどうかをチェックし、そうである場合、無効であるとして、要求された優先順位を拒否する。優先順位7スロットが存在していない場合、要求された優先順位は、スロットを割り振るために受け入れられる。
新しいスロットが割り振られる(すなわち、コンテンツがSlotAttachをスロット−1をもって呼び出す)とき、プレイヤは、上書きするために最も低い優先順位426を有するスロットを選択する。工場で、空のスロットが、最も低いと考えられる優先順位(ゼロ)で初期化され、したがって、一般に最初に使用されるようになる。複数のスロットが最も低い優先順位を共通して有する場合、最も低い書き込みシーケンスカウンタを有するスロットが選択される。上書きするために優先順位6または7を有するスロットが選択される場合、対応するカウンタ(優先順位6上書きカウント445、または、優先順位7上書きカウント446)がインクリメントされる。代替として、非常に多数のスロット用のスペースを有するプレイヤでは、要求が高優先順位スロットを上書きすることを必要とする場合、あるいは、高優先順位スロットを上書きすることを伴う場合、単に失敗する可能性がある。
工場において、認証ハッシュ432およびゼロでないスロット優先順位用の所定の値をもって一部のスロットを初期化することができる。スロットのための機能性および/またはセキュリティ要件は、ハッシュされるコードによって決まる。例えば、所定の認証ハッシュを定式化するために使用されるコードは、以下のステップを実行するように構成することができる:(a)すべてのレジスタ(例えば、スタックポインタなど)を「安全な」値に初期化し、(b)RSA署名値を、認証されたコード領域の外部の所定のアドレスからロードし、(c)SlotAttachオペレーションによって認証された領域に埋め込まれた公開キーを使用して、RSA署名がインタープリタのメモリの領域にわたって有効な署名であるかどうかを判定し、および、(d)RSA署名が無効である場合、(例えば、一般にアクセス可能なスロット0にアタッチすることにより)現在のスロットからデタッチするが、RSA署名が有効である場合は、デジタル署名された領域の最初のアドレスにジャンプする。デジタル署名付きコードが特定のプレイヤ上でのみ再生されるよう意図される場合、このコードは、例えば、プレイヤの識別(または、他の属性)をチェックし、および/または、プレイヤキーを使用して、コードの一部を実行する前に復号化するように、構成することができる。
先の段落の実施例では、(例えば、「安全なメモリおよびカウンタ」というタイトルのセクションで説明したように、)ハッシュベースのスロット妥当性検査スキームを使用して、非対称署名妥当性検査を実施するための方法を例示している。この手法は、スロットが将来の使用のために予約されることを可能にするが、将来の使用は、プレイヤが製造されるとき、または標準が定義されるときに、指定される必要はない。公開キーベースのコード妥当性検査システムを使用して、ハッシュベースの手法を実装するコードに署名することも可能である。
単一のスロットを複数の目的に使用することが可能である。例えば、複数のコードセグメントにデジタル署名して、上述のものなどの検証プロセスを通過することができる。これらの各コードセグメントを、スロットの異なる部分を修正するように、および、完了時に適切にデタッチするように構成することができる。
スロットのプライベートデータフィールド428も注目すべきである。なぜならば、このフィールドにより、コードがスロットコンテンツを暗号化できるようになるからである。いずれのコンテンツもメインスロットペイロードを読み取ることができるが、許可されているコードしかプライベートデータ428を読み取ることができない(例えば、SlotAttachプロセスを使用することにより)。したがって、許可されたコードは、プライベートデータ428をキーとして(または、キーを導出するために)使用して、スロットコンテンツを暗号化および復号化することができる。このようにして、スロットに格納されたデータのプライバシを確実にすることができる。望まれる場合、コンテンツは、認証コードまたはデジタル署名をスロットコンテンツ上に配置することもできる。このような署名を、コンテンツコードによって(任意で、プレイヤキーを使用することにより)生成することができ、プレイヤによって生成することができ、または、外部のパーティまたはデバイス(タイトルのパブリッシャまたはプレイヤのメーカなど)によって生成することができる。次いで、すべてのスロットを検索し、(例えば)所定のセキュリティチェックが必要であること、または、特定のメディアIDが失効されていることを示す、デジタル署名付きの(または、そうでない場合は認証された)値を検索するように、後続のタイトルを構成することができる。
複数のタイトルがスロットベースの機能を共有できる。例えば、最新の既知の日付をコンテンツに提供するデータマネージャを実装することができる。この機能を使用する各タイトルは、それがマスタリングされた現在の日付のデジタル署名付き表現、および、スロットの認証ハッシュ430に合致する所定のコードを含むようになる。スロットを管理するためのコードは、(a)コンテンツと共に含まれた日付におけるデジタル署名をチェックし、無効である場合、スロットからデタッチして、停止し、(b)現在のスロットコンテンツを読み取り、(c)タイトルからの新たに検証された日付を、スロットのペイロード432における日付と比較し、(d)タイトルの日付の方が遅い場合、タイトルの日付をスロットコンテンツ内に入れ、SlotWriteを呼び出して、新しい日付を不揮発性メモリに格納するが、スロットの残りを不変のまま残し、(e)スロットからデタッチし、および、(f)RAMからスロットプライベートデータ(ならびに、他の不必要な値)を消去するようになる。このオペレーションは、エラーまたは後の日付値(すなわち、タイトルと共に含まれた認証日、および、以前にスロット内に格納された日付のうちの遅い方)のいずれかを返す。損なわれた日付が遠い将来であると誤って解釈されないように、コードは、任意でデジタル署名を日付と共に格納することができる。加えて、(例えば、プライベートデータフィールド428の値をキーとして使用することにより)データを暗号化して格納し、格納された日付値への読み取りアクセスを、現在の日付を含むタイトルに制限することもできる。プレイヤにおける日付値を、例えば、コンテンツが使用して、セキュリティアップデートが必要とされるかどうか、オンラインセキュリティチェックが予定されているかどうか、ペイパービュー購入記録が提示される予定であるかどうかなどを判断することができる。
一部の実施形態(例えば、リアルタイムネットワーク機能を提供するものなど)では、ネットワークサポートが可能であるとき、プレイヤに不揮発性メモリへのアクセスを制限させることが有利である場合がある。この制限は、例えば、悪意のあるコンテンツがデータを不揮発性ストレージから抽出し、かつ、ネットワークを介して送信することを防止することによって、ユーザのプライバシを確実にするのに役立つことができる。特定の実施例として、ネットワークアクセス機能を使用するタイトルは、データをスロットから読み取ること(または、ユーザ識別情報を含むと考えられる特定のスロット、もしくは他のタイトルによって作成された所定のスロットを読み取ること)を防止することができる。プレイヤは、タイトルがそれらのネットワークアクセス特権を打ち切ること、および、(例えば、ネットワークアクセスがもはや必要とされなくなった後に、フォレンシックウォータマーク用の値を得るため)より幅広いスロットアクセスを得ることを可能にすることもできる。フォレンシックウォータマークに埋め込まれた情報は同一のプライバシ上の懸念を生じさせることはなく、これは、このデータをコンテンツのコピーからのみ復旧できるためであることに留意されたい。
上記の特定の不揮発性メモリ管理の説明は、特定の実施形態を例示するよう意図されている。言うまでもなく、多数の変形形態が可能である。例えば、特定のスロット構成、スロット管理オペレーション、および優先順位管理手法は、例示のために提供されている。メモリを固定サイズのスロットに割り振る代わりに、他のメモリ管理手法を使用することができる(スロットに基づかない割り振り方法の使用を含む)。他のアクセス制御メカニズム(メディア識別子に基づかないものなど)も使用することができる。スロット用の不揮発性メモリの総量は可変とすることができる(または、ハードディスクまたは他の大容量ストレージ技術の場合のように、事実上無制限である)。別々の不揮発性ストレージ機能を、メディア/ディスク挿入履歴を追跡するために含めることができる。不揮発性メモリ(または、コンテンツによってアクセス可能なメモリなどの他のメモリ)のコンテンツを暗号化および/または認証し、無許可の読み取り/変更を防止するために、暗号技術を使用することが有効である。ソフトウェア実装においては、様々なコード、アドレス、データ、およびアルゴリズム難読化技術を使用して、プレイヤキーの抽出(または改ざん)を防止することができる。任意の形のデータをスロット内に格納することもでき、これらのデータには、ペイパービュー購入記録、何らかの種類のカウンタ(例えば、購入カウンタ、クレジット/デビットまたは他のバランスカウンタ、障害カウンタ、メディア/ディスク挿入カウンタなど)、オンラインまたは電話ベースのセキュリティチェックの結果、視聴記録/履歴、コード(インタープリタまたはネイティブ)、失効データ(プレイヤ、ペリフェラル用など)、他のタイトルへの信号、リベートまたはディスカウントのための資格を評価するために使用された情報、トランザクションおよび再生履歴データ、デジタル署名、ならびにキーが含まれるが、これらに限定されるものではない。
(メディア失効)
1つの注目すべきシナリオは、プレイヤは信頼できるが、メディアが海賊行為を受けている状況である。これは専門的な海賊行為者にとって通常の状況である。なぜならば、海賊行為者は一般に、正当なコピーにできる限り近い「製品」を提供しようとするからである。海賊行為者が、プレイヤが物理的にオリジナルと区別することができない正当なメディアのコピーを作成する方法を開発する場合、すべてのオフラインメディア再生デバイスはおそらく、この性質の攻撃の影響を受けやすい。メディアのコピーが困難な機能(光ディスク上のトラックのウォブル特性の測定など)を使用して、正確な複製をより困難にすることはできるが、決意の固い海賊行為者はなお、コピーを作成する方法を発見する場合がある。同様に、フォレンシックウォータマーキングは、コンテンツ所有者が、(数ある中でも)以前のコンテンツに対して海賊行為を行うために使用された機器を特定することを可能にするが、海賊行為を受けたコンテンツが再生されることを防止しない。
海賊行為者がメディアの無許可のコピーを作成するというリスクに対処するため、コンテンツ所有者は、コピー毎に一意の識別子を正当なメディア上に配置することができる。光ディスクでは、工場において一意に書き込むことができる領域内(一部の既存のスタンプ付き光ディスク上で発見されるバーストカッティングエリア(burst cutting area)など)に、または、記録可能ディスク部分上に、(例えば、記録可能CDおよびDVD、磁気ディスクなどを作成するために現在使用されているものなどのストレージ技術を利用して、)このデータを配置することができる。一意に書き込み可能な領域は、少量の情報(例えば、数バイトから数百バイト)のみを保持するだけでよい。具体的には、この領域は、記録されたシリアルナンバ、ユーザ情報(名前、電話番号など)、暗号化キーなど、ならびに、これらの値を認証するデジタル署名を保持することができる。コンシューマ記録可能メディアでは、製造される空のメディアの各々について、一意のメディアシリアルナンバ(および、任意で、関連付けられたデジタル証明書)を記録することができる。
メディアが再生のために挿入されるときに、その一意のデータの認証性が検証されるように、メディア上のコンテンツコードを構成することができる。メディアタイプおよび記録されたデータに応じて、この検証プロセスは通常、そのメディアに固有のデジタル署名を検証することを含む。敵対者がこの検証チェックを回避することを防止するために、難読化コードを使用して検証を実行することができ、チェックを複数回(例えば、再生中の様々な時間に)実行することができ、検証結果を後続の復号化プロセスと統合することができる。一意のデータが妥当でない場合、コンテンツコードは通常、再生を拒否する。一意のデータが有効である場合、コンテンツコードは、(a)メディアが正当である、または(b)そのメディアが、提供された一意のデータを有した正当なメディアの1つからコピーされた、という確信を得る。
次に、一意のメディアが有効であるか、失効しているかを判断するため、コンテンツは、現在挿入されているメディアの失効状況を示すデータフィールドに関するプレイヤの不揮発性メモリ領域をチェックする。合致する失効情報が発見されない場合、このメディアは有効であると推定される。不注意による失効または悪意のある失効を防止するために、デジタル署名または他の認証データ(暗号ハッシュに対するプレイメージ(pre-image)など)をチェックすることによって、失効データを認証することができる。プレイヤの不揮発性メモリ内のデータは、存在するならば、どのようなアクションが推奨されるかを示すこともできる。アクションには、(a)コピーが違法であることをユーザに通知すること、(b)低下した解像度で再生が進行することを可能にすること、(c)再生を完全に防止すること、または、(d)(例えば、電話番号に電話してアンロックコードを入力することにより、または、インターネットを介してサーバと対話することにより)ユーザがコンテンツを正当に購入できるようにすることなどがある。不揮発性メモリは、例えば、望まれる場合、コンテンツが「失効されない」ようにすることができるように、以前の失効メッセージを無効にすることもできる。複数の相反する状況インジケータが存在する場合、シリアルナンバまたは日付を使用して、どれが最新であるかを判定することができる。
場合によっては、事前に登録されたものなどの特に許可されたデバイス上でのみ再生可能であるメディアを作成することが有用である。この場合、失効させる代わりに、一意のメディア情報を使用して、メディアアクティベーション(media activation)を可能にすることができる。例えば、事前のレビューコピー(review copy)および製造前のコピーは一般に、すべてのプレイヤ上で再生可能である必要はない(そして、そうであるべきではない)。書き込み可能部分に記録されたデータは、各々のメディアの許可された受信者に固有の復号化キーまたは他の情報を含むことができる。一意に記録された領域もまた、名前、電子メールアドレス、口座番号、または、特定の受信者(例えば、フォレンシックウォータマーキングの目的、インタラクティブ機能などのため)または受信者の特性(例えば、視聴のプリファレンス、許可データ、グループ識別子、郵便番号など)を特定する他のデータを含むことができる。メディアの販売中または販売後に、例えば、万引きされたメディアが再生されることを防止する(、それにより、メディアを棚の上に陳列する店における万引きのリスクを減らす)アクティベーションステップとして、これらのフィールドに書き込むこともできる。バックエンドシステムは、決してアクティベートされないメディアについて商店に払い戻すか、または、アクティベートされるときにメディアについて商店に請求することができる。この機能のもう1つの使用は、公式リリース日より前に「ロックされた」メディアを配布し、次いで、再生が許可されるべきであるとき、書き込み可能領域上に再生を可能にするキーを書き込むことである。例えば、小売施設、出荷施設、またはセキュリティエージェント(例えば、プレス施設が完全には信頼できない場合)などのメディアを製造したもの以外の団体または施設が情報を記録できる。エンドユーザデバイスがメディアの諸部分に書き込むことができる場合、メディアが再生またはロック解除されるとき、データ(許可キー、プレイヤ識別子など)を記録することも可能である。メディア上の書き込み可能部分を使用して、例えば、有料でロック解除を行い、次いで複数のプレイヤ上で再生することができる、「ボーナス」マテリアルなどの機能を実装することができる。
オフラインプレイヤでは、失効通知が通常、後続のタイトル上で配信されるようになる。例えば、新しいタイトルは、失効しているメディアを識別する(認証データを伴う)シリアルナンバのリストを含むことができる。プレイヤが十分な不揮発性ストレージ(例えば、ハードドライブ)を有する場合、プレイヤが失効リスト全体を格納できる。プレイヤが十分な不揮発性ストレージを有さない場合、失効データをプレイヤの挿入履歴および/または不揮発性メモリスロットに対してチェックして、プレイヤによって再生されているいずれかのメディアが失効されるかどうかを判断することができる。失効される場合、対応する失効データはプレイヤの不揮発性メモリ内に格納される。この手法により、海賊行為を受けた「クローン」メディアは、初めて挿入されるときには再生されるが、海賊行為を受けたメディアを失効させるメディアが挿入されるとき、失効される(または、そうでない場合は「フラグが立てられる」)。一般に、メディア失効は有用である。なぜならば、メディア失効により、消費者にとって、海賊行為を受けたメディアは正当なメディアよりも魅力的ではなくなるからである。
メディアアクティベーション/失効を使用して、様々なプロモーションおよびセキュリティ機能を実装することができる。例えば、(例えば、ワイドスクリーン、パンスキャン、ディレクターズカットなどの)異なるバージョンを含む複数のメディアをもって映画を販売することができる。人々がこのようなメディアを別々に販売またはレンタルすることを防止するために、それらのコンテンツコードは、1つまたは複数の他のメディアがプレイヤの不揮発性メモリ内で表現されることを検証することができる。任意で、他のメディアが、最近(例えば、所定の時間内に、または、スロット書き込みカウンタ447/448の所定のインクリメント回数以内に)挿入されていることを要求することもできる。別のオプションとして、メディアは、(例えば、他のメディアからのキー値をロードすることによって、)ユーザが再生中に別のメディアを挿入することを要求することもできる。ユーザが所定の組合せの他のメディアを再生している場合、ユーザにボーナスマテリアルへのアクセスが与えられる、プロモーションを作成することができる。言うまでもなく、再生決定は、プレイヤおよび/またはプレイヤ環境の特性などの他の情報にもリンクされる。
オンライン機能を有するプレイヤは、現在挿入されているタイトル、ならびに、プレイヤのメディア挿入履歴および/または不揮発性メモリスロットで表現された他のタイトルの失効状況をチェックすることができる。このチェックをコンテンツコード内で実施することができ、または、プレイヤによって実行することができる。オンラインチェックを使用して、複数のプレイヤが同時に単一のメディアを再生している(例えば、メディアが海賊行為を受けていることを示す)、または、過剰な数のプレイヤが特定のメディアを使用している(例えば、それが使用許諾契約に違反してレンタルされていることを示す)場合を検出することもできる。
海賊行為者は、コンテンツのコードを変更することによって、失効チェックを回避するように試みる場合がある。この場合、コードの後続の部分(例えば、再生中に、後に実行されるコード)は、例えば、チェックを繰り返すことによって、または、検証コードを含むメディアの部分をリロードおよび検証することによって、変更を検出することができる。失効チェック結果を復号化プロセスと統合することもできる。
言うまでもなく、メディア失効手法の変形形態を使用することができる。例えば、プレイヤは、失効したメディアを識別するように構成された、デジタル署名付きのインタープリタコードを格納することができる。これらのコードスニペット(code snippet)を、メディアが挿入されるたびに実行して、新たに挿入されたタイトルが失効されるかどうかを判断することができる。タイトルは失効チェックコードを(好ましくは、プレイヤによって検証されるようになる対応するデジタル署名と共に)格納することができるようになり、プレイヤは、以降のメディアをチェックするためにこのコードを保持するようになる。例えば、プレイヤの不揮発性メモリ内に、失効した光ディスクのセクタ番号およびハッシュ値のテーブルを格納することにより、メディア失効チェックを、プレイヤのROM内のコードによって実行することもできる。メディアが書き込み可能である場合、コンテンツはまた、失効データをメディア自体に格納し、得ることもできる(または、ユーザプリファレンス、ユーザ情報など、他の任意の種類および目的のデータをメディア上に格納することもできる)。
メディアはまた、記録デバイスについての失効データを保持するように使用される場合もある。例えば、コンシューマ記録デバイスが、識別データをそれらの記録上に配置するように構成される場合、プレイヤデバイスは、失効したレコーダの記録を保持することができる。これらの記録は、メディア上に保持された失効データによってアップデートされる場合がある。記録可能メディアをまた、失効したレコーダを識別する情報と共に製造して、失効したレコーダがメディアに書き込むことを防止することもできる。失効関連データフィールドを暗号的に認証して、例えば、正当なデバイスの悪意のある、または不注意の失効を防止することができる。例えば、記録デバイスによって配置された識別データには、メディアシリアルナンバについてのレコーダデジタル証明書およびデジタル署名が含まれる場合がある。記録可能メディア上に配置された識別データを(例えば、サードパーティエージェントの公開キーにより)暗号化して、ユーザのプライバシを保護することができる。閾値暗号技術を使用して、例えば、複数のメディアが記録デバイスを識別することを必要とすることもできる。(本明細書で開示した技術の他の態様においては、閾値暗号技術を、例えば、ある量のコピーされたマテリアルがマークを復旧するために必要とされることを確実にするために、フォレンシックマークと共に使用することもできることに留意されたい。)
メディア失効に関する1つの他の有用性は、使用可能である他の手法に加えて、ちょっとした海賊行為に対する追加の抑止力を提供することである。フォレンシックウォータマークに埋め込まれたデータは、デバイスによって再生された以前のメディアを識別することができる。実装選択に応じて、そのIDが海賊コピーのフォレンシックウォータマークから決定された他のメディアを失効させること、そのシリアルナンバが海賊行為を受けたマテリアルを配布するために使用されたものに近い記録可能メディアを失効させること、問題のあるメディアからの再生に先立って追加の許可ステップを必要とすることなどが有用である場合がある。
(各種特徴および機能)
セキュリティオーバーライドキー:セキュリティオーバーライドキーを知るプレイヤは、一部またはすべてのセキュリティチェックを回避することができるように、コンテンツを設計することができ、コンテンツの一部分またはすべてへのアクセスを可能にすることができる。このようなキーをサポートすることによって、コンテンツ所有者は作品の限られた部分に対するアクセスを付与することができる(例えば、権限者が、コンテンツ所有者が批評家にフレーム毎のビデオに対する「公正使用」アクセスを付与するよう要求した場合)。これらのオーバーライドキーを使用して、例えば、保護機能が不十分に設計された(再生可能性の問題を生じる)場合に、コンテンツを保護された形態から「リリース」することもできる。必要に応じて、これらのキーを、サードパーティに預託することができる(または、サードパーティの公開キーにより暗号化されたメディア上に格納することができる)。オーバーライドキーを、著作権が切れるときにリリースされるようにスケジュールして、例えば、コンテンツがパブリックドメインに入ることをアンチパイラシメカニズムが防止する可能性があるという、懸念に対処することもできる。
マルチラウンドコリュージョン解析(Multiple Round Collusion Analysis):状況によっては、決意の固い敵対者は、フォレンシックウォータマークの復旧を防止しようとして、多数のデバイスからの出力を結合する可能性がある。敵対者が非常に多数のデバイスを危殆化させており、害を及ぼすデバイスをコンテンツが直接識別することができない場合、複数のコンテンツリリースから収集されたフォレンシック情報を結合することが可能である。例えば、第1のタイトルから収集された情報は、敵対者によって使用されている可能性のあるデバイスの範囲を狭める場合があるが、害を及ぼすデバイスのすべてを一意に識別しない場合がある。第2のタイトルがマスタリングされるとき、この知識を使用して、攻撃者および/またはそれらの機器についてさらなる情報を提供するフォレンシックウォータマークを作成することができる。このプロセスは、敵対者が一意に識別されるまで、繰り返すことができる。
悪意のあるインタープリタへの対策:悪意のあるプレイヤは、コンテンツ内のセキュリティ関連コードを認識しようと試みるように設計される可能性がある。例えば、悪意のあるプレイヤは、どこでRSA署名検証オペレーションがコンテンツによって実行されているかを特定し、結果を変更して、例えば、無効なRSA署名が有効であるように見えるようにしようと試みる可能性がある。このようなプレイヤが作成される場合、コンテンツ所有者は新しいコンテンツを作成して、この識別を回避するように設計した異なるRSA署名計算ルーチンを使用することができる。使用できるオペレーションの例には、信頼できないオペレーションを回避するようにコードを書き換えること、コードを難読化すること、メッセージ隠し、試算をチェックして攻撃を検出すること、および、中間物および/または結果を他の暗号オペレーション(復号化ステップなど)と統合することが含まれるが、これらに限定されるものではない。
インタラクティブ性:仮想マシン/インタープリタは、非セキュリティタスク、ならびにセキュリティの目的のためである場合がある。例えば、コンテンツコードを使用して、メニュー、テキスト、グラフィックス、アニメーション、ユーザインターフェース要素などをユーザに表示することができる。同様に、コンテンツはユーザコマンドまたは応答を受信することができる。これらのコマンドまたは応答には、マウス入力(例えば、移動、クリック)、ボタン押下(キーボードまたはリモートコントロール入力など)、ライトペン入力、およびジョイスティックアクションが含まれるが、これらに限定されるものではない。ローカルプレイヤについての情報(カメラ入力、マイクロフォン入力、ユーザの体の位置の変化など)を収集および使用して、例えば、再生を制御することもできる。プレイヤは、ユーザインターフェース実装を支援するための機能を提供することもできる。これらの機能には、ダイアログボックスの表示、表示ウィンドウの管理、音声認識の実施、ユーザプリファレンスの管理などが含まれるが、これらに限定されるものではない。海賊行為に対する抑止力として、インタラクティブなユーザ機能を実装するコードをセキュリティコードと結合し、敵対者があるコードを他のコードから容易に分離することができないようにすることができる。
(ネットワークを介したコンテンツへのアクセスおよびコンテンツの交換)
大部分のコンシューマビデオおよびオーディオコンテンツは現在、光メディアで配布されているが、ストリーミングダウンロードの人気は時間とともに増すと予測される。物理的メディアの代わりに、または物理的メディアに加えて、ストリーミングまたはローカルでキャッシュされたコンテンツをサポートするように、本明細書で提示したセキュリティ手段を再設計することができる。プレイヤに物理的に位置するメディアからデータをロードする代わりに、コンテンツコードおよびデータはネットワークを介して検索される。例えば、メディアからデータセクタを要求するプロシージャコールを呼び出す代わりに、コンテンツは、ネットワークを介してデータを要求するプロシージャコールを呼び出すようになる。受動的なメディアとは異なり、リモートサーバはそれ自体が処理能力を有することができ、例えば、(例えば、プレイヤに暗号化オペレーションを実行させるために)リモートサーバが要求をコンテンツに送信し、結果の妥当性を検査することが可能となる。ネットワークを介して交換されたデータを保護するためのセキュリティプロトコル(このようなプロトコルにはSSLが含まれるが、これに限定されない)を、コンテンツコード内またはプレイヤ(または他のコンポーネント)内に実装することができる。
単純なサーバ実装は、妥当性検査されたユーザ(例えば、コンテンツにアクセスするための代金を支払っているユーザ)からの要求を受信し、対応するデータをサーバ自体のローカルストレージから読み取り、結果を配信する。より高度なサーバはデータをリアルタイムで選択および/または修正して、例えば、フォレンシックウォータマークを埋め込み、他のサーバと対話することができる。サーバはまた、リモートプレイヤについての、またはそれに代わる(例えば、プレイヤベースの不揮発性メモリの代替としての)情報を格納し、エンドユーザに合わせてカスタマイズされたセキュリティコードを配信し、リアルタイム失効チェックを実行し、セキュリティアップグレードをコンテンツに自動的に挿入し、インターネット/ウェブプロキシ機能を提供し、他のサービスをコンテンツコードに供給することもできる。例えば、例示的トランザクションには以下のステップが含まれる。(a)コンテンツサーバが購入要求をエンドユーザのプレイヤから受信するステップ、(b)コンテンツサーバが支払いを検証するステップ、(c)コンテンツサーバが、ユーザのプレイヤの機能的な、および/またはセキュリティのプロパティを解析するように構成された解釈可能コードの部分を送信するステップ、(d)ユーザのプレイヤがインタープリタコードを実行し、そのプロパティについての情報を返すステップ、(e)コンテンツサーバが応答を解析し、(インタープリタコードおよび/またはネイティブコードを含み、カスタム生成される場合がある)セキュリティ検証ロジックをユーザのプレイヤに送信するステップ、(f)ユーザのプレイヤが検証ロジックを処理し、応答をサーバに返すステップ、(g)サーバが応答の妥当性を検査するステップ、(h)コンテンツサーバが、暗号化されたデジタルコンテンツ(例えば、オーディオ、ビデオおよび/またはイメージ)をユーザのプレイヤに送信(例えば、ストリーミング)するステップ、および、(i)ユーザのプレイヤがコンテンツを復号化するステップ(ただし、復号化プロセスの正しいオペレーションは、正しいキー、または、セキュリティ検証ロジックからの結果を必要とする場合がある)。
サーバプロセス自体は、インタープリタコードによって制御することができ、任意で、プレイヤ側と同じインタープリタキテクチャ(例えば、DLX)を使用することができる。これは、サーバの物理的ハードウェアアーキテクチャを意識せずにコンテンツを作成することができるという利点を有する。ホームネットワーク環境では、これは特に魅力的なモデルである。なぜならば、セキュリティおよびデコード「インテリジェンス」はサーバに残るが、認証されたローカルデバイスへコンテンツをストリーミングすることができるからである。同様に、様々な異なるインターネットサービスを介してストリーミングされるコンテンツに関して、サーバ側のインタープリタは、コンテンツが一度作成されると、互換性のあるサービスのいずれからもストリーミングされることを可能にすることができる。
場合によって、受信デバイスもまた、受信デバイス自体のセキュリティの決定を行う能力を有することがあるが、これは、受信側デバイスがコンテンツをキャッシュして、後にそのコンテンツを、識別が初期転送中に知られていない後続のデバイスへ送信することを望む場合などである。この場合、初期転送には、受信デバイスによってそのセキュリティ関連の決定を行う際に使用するための、解釈可能および/またはネイティブで実行可能なコードが含まれる場合がある。すべてのデバイスが同じインタープリタまたはプログラマブル技術をサポートする必要はない。なぜならば、送信側デバイスによって実行されるコードは必ずしも受信側デバイスによるコードと同じである必要はないからである。
状況によっては、複数のサーバおよび/またはコンテンツ転送が含まれる場合がある。例えば、コンテンツは、(例えば)プレイヤのメーカおよびコンテンツ所有者の両方によって運営されるサーバを含む、複数のエンティティから取得したセキュリティコードを含む場合がある。一部のパーソナルコンピュータ環境では、複数のインタープリタを使用することも有用である場合がある。例えば、インタープリタは、メディアインターフェース(例えば、光ディスクドライブ)、オペレーティングシステム、アプリケーションソフトウェア(例えば、プレイヤ)、出力デバイス(例えば、増幅器)などに含まれる場合がある。代替として、または加えて、暗号化オラクルもまたコンポーネントにおいて提供される場合がある。
(プレイヤオペレーションの呼び出しおよび表記法)
プレイヤデバイスは、(通常はソフトウェア実装の)インタープリタ(仮想マシン)を提供し、これによりコンテンツコードは様々な個々のオペレーションを実行することができる。このようなオペレーションには、仮想レジスタを操作すること、および、コンテンツコードに属するメモリにアクセスすることが含まれる。加えて、コンテンツコードはTRAP(プレイヤ内に実装された外部オペレーション)を呼び出すこともできる。TRAPを使用して、コンテンツコードがそれ自体のリソースを操作することによっては直接実行することができないオペレーション(ペリフェラルへのアクセスなど)を実行すること、または、そうでない場合はコンテンツコードによって保証されることが可能である、より高いパフォーマンスを提供することができる。
このセクションで使用される表記法は、C/C++プログラマに良く知られているように設計される。型UINT8、UINT32およびUINT64は8ビット、32ビットおよび64ビット符号なし整数をそれぞれ示すために使用される。例示的実施形態では、各プロトタイプは一連の32ビット値に対応し、これは、適切なTRAPオペレーションを呼び出すことに先立ってスタック上にプッシュされるべきである。スタック上のすべての値は32ビットのサイズなので、32ビットより小さいパラメータは32ビットに拡張され、より大きい値は、複数の32ビット値を使用して格納される。各TRAPオペレーションにおいて関連する32ビット値の実際の数は、ゼロである場合がある(パラメータリストがvoidである場合)。パラメータの数もまた可変である場合があり、この場合、プロトタイプは「...」で終了する。配列は「type name[size]」として示され、例えば、「UINT32 test[16]」は、16個の32ビットワードの配列を表す。ポインタは「type *name」として示され、例えば、1つまたは複数の32ビット符号なし整数に対するtestPtrという名前のポインタは、「UINT32 *testPtr」となる。
スタック自体を単に、コンテンツコードによって、および、各TRAPを実装するプレイヤの部分によって、アクセス可能なメモリ内の領域にすることができる。例えば、コンテンツコードによってアクセス可能なエミュレートされたレジスタをスタックポインタとして指定することにより、例示的スタックを実装することができる。TRAPが呼び出されるとき、このレジスタの値はコンテンツコードによって読み取られて、渡されたパラメータ値を設定する。(スタックポインタまたはスタックコンテンツが無効である場合、TRAPオペレーションを無視する、または、有効な値を代用するなどの適切なアクションが取られる。)整数をスタックにプッシュする例示的プロセスは、最初に4をスタックポインタから減算し、次いでこの値を格納して、新しいスタックポインタによって指定されたメモリアドレスにプッシュすることを含む。値をスタックから取り出すことは、最初に、スタックポインタによって指定されたメモリアドレスから値を読み取り、次いで4をスタックポインタに加算することによって、実行される。TRAPオペレーションに続いて、TRAPを実装するコンテンツコードおよび/またはコードは、例えばスタックポインタ値を元に戻すことによって、パラメータをスタックから消去する。他のスタック、ならびに、より一般には、関数コールおよびパラメータ受け渡し技術が背景技術において知られており、本発明と共に使用することもできる。
TRAPを呼び出すため、呼び出し元は最初に(プロトタイプ定義における最も右側にあるパラメータから開始して)パラメータの各々をプッシュし、適切なTRAPオペレーションを呼び出し、(例えば、慣例により、レジスタ1内に格納された結果値を読み取ることにより)戻り値を得る。例えば、「UINT32 TRAP_Random(UINT8 *dst, UINT32 len);」と示される以下のTRAPを考察する。トラップオペレーションを呼び出すことに先立って、呼び出し元(コンテンツコード)は最初に32ビット値「len」をプッシュし、次いで32ビットポインタ値「dst」(これは、結果が格納されるべきであるメモリアドレスである)をプッシュする。呼び出し元は、次いで適切な低レベルTRAPオペレーションを呼び出す。通常(必ずではないが)、TRAPを呼び出したコンテンツコードスレッドは、要求したオペレーションが実行される間、停止する。TRAPの戻り値(この実施例のプロトタイプでは、左側の「UINT32」をもって示される)は、コンテンツコードが取得できる位置に入れられる(例えば、戻り値を所定のレジスタ内に入れることによる)。例示的TRAPの大部分はステータス値(例えば、成功を示す定数STATUS_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);
プレイヤによって生成されたlenランダム(または強擬似ランダム)バイトをdstに格納する。
UINT32 TRAP_Sha(UINT8 *dst, UINT8 *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を返し、失敗の場合は、定義済みエラーコードのうちの1つを返す。
UINT32 TRAP_Aes(UINT8 *dst, UINT8 *src, UINT32 len, UINT8 *key, UINT32 opOrKeyID);
AES ECBアルゴリズムをsrcからlenブロックに対して実行し、(以下で変換されるように)keyにおけるキーを使用して、復号化結果をdstに格納する。opOrKeyIDの値は、キーがどのように導出されるべきであるか、および、AES暗号化または復号化を実行するべきであるかどうかを指定する。opOrKeyIDについて、以下の値がサポートされる。
・opOrKeyID=AES_ECB_ENCRYPT(0xFFF10000)−ECBモードを使用して、keyにおける16バイトキーにより、データを暗号化する。
・opOrKeyID=AES_ECB_DECRYPT(0xFFF10001)−ECBモードを使用して、keyにおける16バイトキーにより、データを復号化する。
・opOrKeyID=AES_ECB_DECRYPT_MEDIA_KEY(0xFFF10002)−keyにおける暗号化されたキー値を、現在挿入されているメディアのためのメディアキーを使用して復号化し、次いで、結果をキーとして使用して、srcにおけるデータを、ECBモードを使用して復号化する。
・opOrKeyID=他の任意の値。opOrKeyIDによって特定されるプレイヤキーを使用して、ポインタkeyにおける暗号化されたキーを復号化し、次いで、結果として生じる復号化されたキーを使用して、ポインタsrcにおけるデータを、ECBモードを使用して復号化する。(コンテンツコードはプレイヤの証明書をチェックして、プレイヤのメインAESキーセット用のキー範囲を決定することができ、これらのキーは必ずしも0で開始するとは限らず、複数のキーのセットが存在する場合があることに留意されたい。)opOrKeyIDによって選択されたキーはプレイヤアプリケーション内に配置される場合があるが、キーはドライブ内、デバイスドライバ内、表示/出力デバイス内、ネットワークを介してリモートに、ユーザリムーバブルなスマートカード(または、他の耐タンパ性を有するチップ)内に、リムーバブルでない耐タンパ性を有するチップ内に、複数のデバイスの間で分割されて、配置される場合もある(ただし、これらに限定されない)。最初の復号化オペレーション(コンテンツにより指定された暗号化されたキーの復号化)を、識別されたキーを含むデバイスによって実行することができる一方で、バルク処理(すなわち、srcにおけるデータの復号化)を他の場所(例えば、キーストレージのための不揮発性メモリを欠く高速暗号モジュール内)で実行することができる。
暗号化オペレーション、特に外部デバイスに伴って生じる暗号化オペレーションは、TRAP_DeviceDiscoveryおよび/またはTRAP_DeviceAccessを介して実行することもできる。暗号ブロックチェーン(CBC)、カウンタモード、および他のブロック暗号モードを、コンテンツコードを(任意で、TRAP_Xorなどのオペレーションと共に)使用して、ECBオペレーションから実行することができる。代替実施形態は、AES以外のアルゴリズムおよび/またはECB以外のモードを直接提供することもできる。
UINT32 TRAP_PrivateKey(UINT8 *dst, UINT8 *src, UINT32 srcLen, UINT32 controlWord, UINT32 keyID);
このオペレーションは、keyID(通常は0)によって選択されたRSA秘密キー、または、プレイヤ内(または、プレイヤによってアクセス可能なデバイス内)の所定の他の非対称キーを使用して、一部のデータを変換する。keyIDから、結果の長さおよびオペレーションタイプ(例えば、署名または復号化)は暗示される。使用可能なキーについての情報には、対応する公開キーおよび証明書(コンテンツコードが検証できるもの)が含まれ、この情報は、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が設定される場合、現在のプログラムカウンタで開始する(2^16を法とした制御ワード)コードバイトをハッシュし、次いで、(g)controlWordビット28が設定される場合、PCの現在の値をハッシュに組み込む。SHA−1ハッシュ結果は次いで、「0x00||0x01||0xFF(233回繰り返し)||00」をSHA−1ハッシュの先頭に追加することによって、パディングされる。パディングされた値は次いで、プレイヤの公開モジュラス(public modulus)を法として、プレイヤの秘密指数(secret exponent)まで引き上げられる。
署名を検証するため、プレイヤの公開指数は3であり、コンテンツコードにより、システム全体の公開キー(コンテンツコード内に含まれる定数とすることができ、任意で難読化した形態をとる)を使用してプレイヤの証明書を検証することによって、公開モジュラスを得ることができる。
制御ワードによって提供されたオプションは、コンテンツコードが実行環境についてのアテステーション(attestation)を得ることを可能にし、これは、インタープリタを含むもの以外の準拠デバイスによって署名が実行されている状況を検出することなどである。インタープリタと、コンテンツコードとの間の検証可能なバインディングは、攻撃者が正当なプレイヤ上で実行される悪意のあるコンテンツを使用して、正当なコンテンツを実行する悪意のあるプレイヤによる使用のために暗号化結果を作成しようと試みる状況に対処するために、有用である可能性がある。
実施形態は、非対称暗号化アルゴリズム(RSA、DSA、楕円曲線のバリアント(variant)、Diffie−Hellmanなど)、オペレーション(署名、検証、キー合意など)、および任意の組合せのキーサイズをサポートすることもできる。対称オペレーションを非対称オペレーションと統合することもできる。RSA署名検証などの一部の暗号化オペレーションを、いかなる特別なトラップもなしに、または、汎用パフォーマンス加速オペレーション(例えば、TRAP_AddWithCarryなど)のみを使用して、コンテンツコード内に実装できることに留意されたい。より複雑な暗号TRAPの一実施例は、以下のうち一部またはすべてを行うものである。(a)RSA公開キーオペレーションを実行して、データのブロック上の署名を検証すること、(b)署名が有効である場合、RSA秘密キーオペレーションを実行して、検証された部分におけるブロックデータを復号化して、対称キーを復旧すること、(c)RSA復号化が成功する場合、対称キーを使用して、一部のデータ(例えば、暗号化されたキーに続く署名付きブロックにおけるデータ)を(例えば、HMAC−SHAを使用して)復号化および検証すること、次いで(d)インタープリタを使用して、復号化されたデータをコードとして処理すること。
代替実施形態では、任意の方法の他の計算オペレーション(他のTRAPなど)の入力および出力の署名、検証、復号化、暗号化、またはそうでない場合は処理のために暗号化サポートを提供することができる。
UINT32 TRAP_AddWithCarry(UINT32 *dst, UINT32 *src, UINT32 len);
このオペレーションは、桁上げ伝搬(carry propagation)によりマルチワード加算オペレーションを実行する。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])によって指定された位置0x08090A0B、および、ポインタに4を加えたもの(例えば、src[1])によって参照されたバイトオフセットにおける値0x0C0D0E0Fと共に格納される。
ソースおよび宛先領域が重なる場合、正しいオペレーションは、src=dstである場合にのみ保証される。最後の(最上位または左側の)加算ステップで桁上げが生じた場合、このオペレーションの戻り値は1であり、そうでない場合は、戻り値はゼロである。
(別のTRAPなしにコンテンツコードを使用してTRAP_AddWithCarryオペレーションを、様々な他のTRAPオペレーションと共に実装することもできるが、専用のTRAPは、プレイヤ設計者が各プラットフォーム上で使用可能な最も効率的な技術を選択することを可能にし、それにより、幅広い種類の可能なプレイヤ設計にわたってよりよいパフォーマンス保証を可能にすることに留意されたい。)
UINT32 TRAP_SubtractWithBorrow(UINT32 *dst, UINT32 *src, UINT32 len);
このオペレーションは、桁借り(borrow)(桁上げ)伝搬によりマルチワード減算オペレーションを実行する。具体的には、src[0..len−1]における値はdst[0..len−1]から減算される。srcおよびdstの値を各々、lenワードとして格納され、それぞれアドレスsrcまたはdstにおける最上位ワードでエンコードされた、大数を示す。例えば、数0x08090A0B0C0D0E0Fは、len=2を有し、ポインタ(例えば、src[0])によって指定された位置0x08090A0B、および、ポインタに4を加えたもの(例えば、src[1])によって参照されたバイトオフセットにおける値0x0C0D0E0Fと共に格納される。ソースおよび宛先領域が重なる場合、正しいオペレーションは、src=dstである場合にのみ保証される。最後の(最上位または左側の)減算ステップで桁借りの必要がある場合、このオペレーションの戻り値は1であり、そうでない場合は、戻り値はゼロである。
UINT32 TRAP_MultiplyWithRipple(UINT32 *dst, UINT32 *src, UINT32 multiplicand, UINT32 len);
このオペレーションは、multiplicandを、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);
このオペレーションは、メモリの2つのブロックの排他的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 *ptr1, UINT8 *ptr2, UINT32 maxlen);
このオペレーションは、ptr1におけるメモリとptr2におけるメモリとを、最大maxlenバイトについて比較する。差異が見つからない場合、戻り値は0であり、最初の差異においてptr1における値の方が大きい場合、戻り値は1であり、最初の差異においてptr1における値が小さい場合、戻り値は0xFFFFFFFFである。
void TRAP_Memset(UINT8 *dst, UINT8 fillvalue, UINT32 len);
このオペレーションは、fillvalueによって指定されたバイト値でメモリを満たす。宛先アドレスはdstによって指定され、格納すべきバイトの数はlenによって指定される。戻り値は提供されない。
UINT8* TRAP_Memsearch(UINT8 *region, UINT32 regionLen, UINT8 *searchData, UINT32 searchDataLen);
このオペレーションは、1つまたは複数のバイトについてメモリを検索する。具体的には、region(regionLenバイトの長さを有する)内でsearchData(searchDataLenバイトの長さを有する)の最初の出現を発見する。それらがregion[0..regionLen−1]内全体に出現する場合、合致が見つかる。この範囲内で開始するが最後を越える合致は、カウントされない。このオペレーションは、最初の合致に対するポインタを返す。region内で合致が見つからない場合、戻り値はNULL(ゼロ)である。
UINT32 TRAP_SlotAttach(UINT32 slot, UINT32 codeLen, UINT32 reqPriority);
このオペレーションは、既存の不揮発性メモリスロットにアタッチするか、または、(slotの指定された値がゼロである場合)新しいスロットを割り振る。スロットアタッチオペレーションは、指定されたコード(呼び出し元PCで開始し、codeLenバイトまで広がる)がスロットのauthorizationHashに合致しない場合、失敗する(デフォルトのスロットゼロになる)。(不揮発性メモリサポートについてのさらなる情報については、「不揮発性メモリの保護」というタイトルのセクションを参照。)
UINT32 TRAP_SlotRead(UINT8 *dst, UINT32 slot);
このオペレーションは、不揮発性メモリスロットを読み取ることを試み、成功する場合、指定された位置に結果を格納する。指定されたスロットが、現在アタッチされているスロットではない場合、スロットコンテンツのプライベートデータ部分は返されない。(さらなる情報については、「不揮発性メモリの保護」というタイトルのセクションを参照。)
UINT32 TRAP_SlotWrite(UINT8 *newContents);
このオペレーションは、現在アタッチされている不揮発性メモリスロットに書き込むことを試みる。(さらなる情報については、「不揮発性メモリの保護」というタイトルのセクションを参照。)スロット書き込みオペレーションはアトミック(atomic)であり、これは、(例えば、不意の停電のため)オペレーションが失敗する場合、オペレーションは全体として完了されるか、またはまったく完了されないかのいずれかであることを、プレイヤが保証することを意味する。
TRAP_SlotWriteオペレーションは、書き込まれたデータがスロットの複数の部分について正しい値を有することを確実にする。これらの部分には、creatorMediaID(コンテンツコードが最初にスロットを作成したメディアの識別子)、lastUpdateMediaID(コンテンツコードが直前にスロットに書き込んだメディアの識別子)、lastUpdateSequenceCounter(書き込みにつき1回単調増加する、グローバル書き込みカウンタの値)、および、slotPriority(スロットのための上書き優先順位を指定する)が含まれる。
コンテンツコードは、汎用領域に書き込まれたデータを制御する。格納することができる情報の例には、再生状態情報(再生が休止/中断された位置および構成など)、監査情報(監査データのための実行ハッシュまたは他の暗号化認証を含む)、ビデオゲーム用のハイスコア、電子購入を自動的に完了するためのデフォルト情報(ユーザ名、ユーザ住所、クレジットカード番号、クレジットカード期限、請求先住所、出荷先住所、電話番号、電子メールアドレスなど)、実行可能コード(例えば、新しいセキュリティロジック、タイトルまたはプレイヤにおける問題を是正するパッチなど)、キー(および他のセキュリティ情報)などが含まれるが、これらに限定されるものではない。
戻り値は、書き込みオペレーションが成功したかどうか、および、メディアの全般的状況(例えば、不揮発性メモリが過剰な数の書き込みサイクルにより使い尽くされる寸前である場合の警告)を示す。読み取りオペレーションは、書き込みが成功したという追加の検証のために、書き込みの後に実行される場合がある。
UINT32 TRAP_MediaEject(void);
このオペレーションは、現在ドライブ内にあるいずれかのリムーバブルメディアを排出することを試みる。TRAP_MediaEject()に対する呼び出しが成功した後、インタープリタは動作を続ける場合があるが、多くの場合、インタープリタは次いでTRAP_Shutdown()を呼び出すことによって、それ自体をシャットダウンする。プレイヤが、自動排出をサポートすることは必要とされず、その場合、オペレーションは失敗する。(コンテンツコードは、TRAP_DeviceDiscoveryを使用して、排出サポートおよび他のプレイヤ機能を検出することができる。)
状況によっては、メディアが交換される間、コンテンツコードのメモリ空間の諸部分を保存することが有用である場合がある。例えば、これは、マルチディスクセットにおいて複数のディスクの間で切り替えるとき、不揮発性メモリスロット内に容易に保存されるよりも多い量のデータを保存するために、有用である場合がある。この状況では、TRAP_MediaEjectを使用して、最初のメディアを排出する。ユーザは次いで、(例えば、オーバーレイにより指示された後)コンテンツの別の部分を挿入する。新たに挿入されたコンテンツの識別を、TRAP_DeviceDiscoveryを介して決定することができる。予期しないメディア交換を防止するため、新しいメディアを使用可能にするために、TRAP_DeviceAccessに対する明示的なコールが必要とされる。全体的な読み取りについて許可済みとしてマークが付けられた新しいメディアの部分を、次いでロードすることができる。(いくつかの部分は、メディア自体のコンテンツコードによってのみ読み取られるべきであると指定される場合がある。より高度なメディア−メディア(例えば、ディスク−ディスク)チェーニング(chaining)機能を必要とする実施形態は、最初のメディア上のコードが2番目のメディアを認証することを可能にし、また、2番目のメディア上のコードがソースメディアを認証することも可能にすることができる。例えば、ソースおよび宛先ディスク上に保持されたデジタル署名付きルールおよび証明書に基づいて、プレイヤがメディア認証を実行することもできる。)
UINT32 TRAP_MediaReadRequest(UINT32 offsetHigh, UINT32 offsetLow, UINT32 len);
このオペレーションは、一部のデータの検索を開始するようメディアサブシステムに伝える。例示的実施形態では、len値は、セクタ境界を含めて1メガバイト(1048675バイト)を超えることができない。(オフセットがセクタ境界上にない、すなわち、SECTOR_SIZEの正確な倍数でない場合、この長さは1メガバイトからセクタオフセットを引いた値を超えることができず、これは、SECTOR_SIZEを法としたoffsetLowとして計算される。SECTOR_SIZEは現在2048バイトとして定義される。)プレイヤは少なくとも2つの未完了の要求(例えば、現在提供されているもの、および、次に提供されるようになるもの)がバッファされることを可能にする。これは、コンテンツがドライブを継続的にビジーに保つことを可能にする。プレイヤは通常、各保留中の要求について別々の1メガバイトの保留バッファを使用する。いずれのエラーもないリターンは、その読み取りが試みられるようになる(、すなわち、要求は明らかに悪くはない)ことを意味するが、その読み取りが実際に成功するかは保証しない(TRAP_MediaReadFinalを参照)。
このオペレーションは単に、読み取りが実行されることを要求する(、および、実際にはいかなるデータもコンテンツコードのメモリ領域にロードしない)一方で、代替実施形態は宛先アドレスを指定して、(例えば)イベントを受信することによって、または、宛先バッファが満たされているかどうかをチェックすることによって、読み取りが完了したかどうかを検出することができる。このような手法がコードベースのNVRAMセキュリティ機能と共に使用される場合(TRAP_SlotAttachを参照)、セキュリティ手段は、ロック解除されたNVRAMスロットに関連付けられたセキュリティコードを破損するか、またはそうでない場合はセキュリティを攻撃するために、敵対者が保留中の読み取りを利用しないことを確実にすることを要求される場合がある。例えば、プレイヤは、NVRAMスロットがロック解除されている間にメディア読み取りを一時停止または禁止すること、および/または、このようなオペレーションが保留中である間にNVRAMスロットアタッチ要求を拒否することができる。
UINT32 TRAP_MediaReadFinal(UINT8 *dst);
このオペレーションは、最も古い(先頭の)要求された読み取りが完了しているかどうかをチェックする。完了していない場合、STATUS_NOT_DONEの戻り値が返される。読み取りが保留中でない場合、STATUS_NOT_FOUNDの戻り値が返される。読み取り要求が失敗した場合、STATUS_ERRORが返される。読み取り要求が成功した場合、要求されたデータはドライブのバッファからコンテンツコードのメモリ空間の指定されたアドレスへ転送され、STATUS_OKの値が返される。アドレスが0xFFFFFFFFである場合、データは廃棄される。
特別な読み取り(バーストカッティングエリアの読み取り、無効にされたエラー検出/修正を伴うデータ読み取りなど)は、このオペレーションではなく、TRAP_DeviceAccessを使用して構成および実行されることに留意されたい。
UINT32 TRAP_Mediawrite(UINT32 offsetHigh, UINT32 offsetLow, UINT8 *src, UINT32 len);
このオペレーションは、指定されたデータをメディアに書き込み、指定されたオフセットで開始する(オフセットは、32ビット上位値および32ビット下位値としてエンコードされた64ビット値である)。
このオペレーションは、書き込みをサポートするメディアフォーマットに対してのみ適用可能である。書き込み可能領域はまた、メディアの所定の部分に制限される場合もある。書き込みはまた、所定の状況では禁止される場合もある(例えば、メディアが交換されている場合、メディア上のレコーダ識別子が現在のデバイスに対応しない場合、メディアが、書き込み機能の使用を許可する有効な証明書を欠く場合など)。
TRAP_DeviceAccessを使用して、書き込みを保護または可能にするために必要とされるいずれかの必要な認証またはキー合意を提供することができる。追記型メディアでは、以前に書き込まれた部分を上書きしようとする試行(、および、その位置でメディアを破損するリスク)を、(例えば、TRAP_DeviceAccessを介して)明示的な許可が得られない限り、拒否することができる。(通常は望ましくないが、このような書き込みは、ある状況では、例えば、攻撃に応答して、メディアに自己破壊させるために、有用である可能性がある。)ドライブが、書き込みヘッドの調節、トラッキング制御、エラー訂正コード、読み取り/書き込みヘッドの光学特性、または他の構成パラメータの直接制御を可能にする場合、これらもまたTRAP_DeviceAccessを介して調整することができる。書き込まれたメディアの特性は、例えば、どの書き込みデバイスが特定の光メディアを作成したかをコンテンツ所有者が割り出すことができるように、科学捜査の目的のために修正することができる。
UINT32 TRAP_EventGet(UINT8 *evBuf, UINT32 len);
このオペレーションは、(ユーザインターフェースオペレーション、セキュリティ変更などの)いずれかのイベントが保留中であるかどうかをチェックし、保留中である場合、最初のもの(または最高優先順位のもの)についての情報を、eventによって指定されたアドレスに格納する。イベントが発見されない場合、STATUS_NOT_FOUNDの値が返され、eventの内容は変わらない。イベントが発見された場合、トラップはSTATUS_OKを返し、イベントを説明する情報をevBufに格納する(が、lenバイトを超えて格納しない)。
イベントバッファ(evBuf)内の返されるデータは、イベントによって決まる。ユーザインターフェースイベントが返される場合、以下のデータ構造は、evBufによって指定されたメモリアドレスに格納される。
typedef struct{
UINT32 Source; /* Device type that produced event */
UINT32 Action; /* Actual/suggested action for event */
UINT32 Char; /* UTF-8 value of event (if applicable) */
UINT32 Direction; /* Compass values for event */
UINT32 Xpos; /* Pointer X position for event */
UINT32 Ypos; /* Pointer Y position for event */
UINT32 Reserved[10]; /* Do not interpret (future use) */
} EventInfo_UserInterface;
Sourceフィールドは、イベントが発生したデバイスを示す。Sourceフィールドの解釈はあらかじめ定められていてもよいし、または、(例えば、TRAP_DeviceDiscoveryから得られた情報を介して)コンテンツコードによって決定されてもよい。指定することができる可能なソースの例には、リモートコントロール、キーボード、フェースプレートキー(faceplate key)、マウス(および、他のポインティングデバイス)、メディアドライブ、外部デバイス、タイマ、コーデック、未知/不特定のソースなどが含まれるが、これらに限定されるものではない。
Actionフィールドは、イベントのための、または、イベントを引き起こした、推奨されるアクションを示す。この値はモーダル(、すなわち、プレイヤの現在の状態に影響を及ぼす)であっても、一定であってもよい。アクションは再生状態を変更するか、または他の効果を有する場合がある。可能なアクションの例には、再生、休止、停止、巻き戻し(様々な速度で)、早送り(様々な速度で)、スローモーション(様々な速度で)、電源オフ、排出、チャネルアップ、チャネルダウン、選択、エンター、音量調節(または消音)、ガイド/メニュー選択、表示アングルの変更、前方スキップ、シーン選択、ユーザ言語選択、サブタイトル制御、ビデオアングル変更、選択、戻る、進む、イエス、ノー、購入、終了、ヘルプ、エラー、出力デバイス変更通知、再生環境再構成通知、セキュリティアラートなどが含まれるが、これらに限定されるものではない。未知である場合(イベントに対応するアクションがない場合など)、このフィールドはゼロである。(このフィールドは、ユーザインターフェースイベントに対して、ならびに他のイベントに対して有効である。この値の最上位の16ビットは後続のフィールドの構造、例えば、EventInfo_UserInterface、EventInfo_SecurityAlertなどを示す。)
Charフィールドは、キーに対応する文字(例えば、ASCII、ダブルバイトなどを使用してエンコードされた文字)を示す。未知の場合(イベントに対応する文字がない場合など)、このフィールドはゼロである。
Directionフィールドは、イベントが指示する方向を示すか、ない場合はゼロである。この方向はいかなる角度にすることもできるが、方向は所定の値(例えば、北/上、北東/右上、右/東など)に量子化される(quantized)場合がある。
イベントを標準のX/Yグリッド上のポインタ移動またはアクションとして解釈することができる場合、XposおよびYposフィールドは位置を示す。イベントがXおよび/またはY座標に対応しない場合、対応するフィールドはゼロに設定される。
単一のイベント(リモート入力デバイス上でのボタン押下など)が複数の用途で解釈される場合があることに留意されたい。例えば、一部の入力デバイスでは、「上」用に使用されるボタンは、数字8にも対応する。この場合、一イベントが生成されると、方向は「上」であり、Charフィールドは数字「8」である。コンテンツコードは、どちらが適切であるかを判断するためにどの入力が望まれるかについて現在知っていることを利用する。(代替実施形態では、プレイヤは別々の機能または情報を提供して、ユーザイベントを解釈することによりコンテンツコードを支援し、または、コンテンツコードが、複数の可能な解釈によりどのようにイベントを解釈すべきであるかを指定することを可能にすることができる。)コンテンツが未知のイベントタイプを受信する場合、(ソースフィールド内で指定された臨界ビット(criticality bit)が別の方法を示さない限り、)コンテンツは安全にこのイベントタイプを無視する場合がある。
非ユーザインターフェースイベント(デバイス追加、デバイス除去、デバイス再構成、他の再生環境構成の変化、外部コンポーネントからのデータ要求、オペレーションが完了したという通知などを知らせるイベント)では、または、他の種類のユーザインターフェース(音声認識機能、または、ユーザのジェスチャを観察するように構成されたデジタルカメラなど)からのイベントでは、他のデータフィールドを提供することができる。一部のイベントでは、コンテンツコードが追加のTRAP(ベンダ固有のTRAPなど)を呼び出して、追加の情報を得ることが必要である場合もある。
TRAP_EventGetオペレーションはポーリングを使用して変更を検出する一方で、代替実施形態は、割り込み、または、イベントを処理するための他の周知のメカニズムを使用することができることに留意されたい。
UINT32 TRAP_CodecOutput(UINT32 idx, UINT8 *buf, UINT32 len);
このオペレーションは、データをコーデックに送信する。単純なプレイヤは、1つのコーデック(例えば、CODEC_AUDIO_AND_VIDEO)のみ、または2つのコーデック(例えば、CODEC_VIDEO_MPEG2およびCODEC_AUDIO_MPEG)をサポートする可能性がある一方で、より複雑なプレイヤは多数をサポートして、例えば、複数の種類のコンテンツストリームをサポートし、ピクチャインピクチャなどの機能を可能にする可能性がある。TRAP_DeviceAccessオペレーションを使用して、コーデックパラメータを設定することができる。
UINT32 TRAP_CodecSetTime(UINT64 time);
このオペレーションは、メインコーデックタイムクロックを設定する。ゼロの値を指定すると、クロックは、TRAP_CodecOutputに提供されたデータに埋め込まれたビデオタイムスタンプと再同期される。このコマンドはビデオバッファにバッファされ、そのため、このコマンドに出会うまで、効果は遅延される。TRAP_CodecFlushを使用することにより、このオペレーションを使用して、リアルタイムビデオスプライシングを可能にし、かつ、コンテンツコードがある圧縮されたビデオ/オーディオストリームから別のものへシームレスに切り替えることを可能にする。
UINT32 TRAP_CodecSetRate(UINT32 rate);
このオペレーションは、コーデックがデータを消費する速度および方向を設定する。rate値は符号付き整数に変換され、64の係数をもって縮小される。例えば、0の速度は「休止した」ことを意味し、128は、標準の再生速度の2倍の早送りであり、−256(0xFFFFFF00)は4倍の巻き戻しであり、16は、0.25倍のスロー再生である。要求された値がサポートされない場合、コーデックは、プレイヤの最大速度に関して、符号を無視してより高く丸めることによって、次に最も近い値を選ぶ。例外は部分再生速度であり、ここではコーデックは決して0(休止した)または64(標準)に丸めるべきではない。負の再生速度(逆)が指定される場合、コーデックは(TRAP_CodecStatusを通じて)通常、ビデオGOPを逆の順序で要求する。デフォルトでは、オーディオは64以外の再生速度においては消音される。
UINT32 TRAP_CodecFlush(void);
このオペレーションは、ビデオおよびオーディオコーデックバッファをフラッシュする。このコマンドは通常、コンテンツコードが、あるストリームから別のストリームに高速で切り替えるためにコーデックバッファ内のデータを削除することを望む場合、使用される。例えば、ユーザが1分だけ前方にジャンプすることを要求する場合、コンテンツコードはこのオペレーションを使用して、コーデックバッファ内のいかなるデータも消去し、新たに提供されたデータが即時にデコードされるようにすることができる。
UINT32 TRAP_CodecStatus(CodecInfo *info);
このオペレーションは、コーデックのFIFOキュー、および、コーデックが予想するビデオまたはオーディオの次のチャンクについての情報を検索する。返されるデータ値には、現在のタイムスタンプ(現在表示/出力されているオーディオビジュアル情報に対応するタイムスタンプ、現在圧縮されていない情報のタイムスタンプ、および、現在コーデックのバッファ内にある情報のタイムスタンプが含まれる)、コーデックバッファが空になるまでの総時間、コーデックのバッファ内で使用可能なバイト数、次にコーデックバッファに追加されるべきデータ(例えば、これは、MPEG−2ビデオを高速で後方に再生中であるとき、前の「I」フレームである可能性がある)の位置(例えば、次、前、シーク距離)およびタイプ(例えば、フルGOPまたは「I」フレーム)が含まれる。適切な場合、別々の情報が各コーデック(オーディオ、ビデオなど)に対して提供される。
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()が呼び出されるときに、オーバーレイがどこに表示されるかを指定するだけである。
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を参照)必要がある。
UINT32 TRAP_OverlaySetPalette(UINT32 idx, UINT32 *color, UINT8 *trans);
このオペレーションは、オーバーレイのためのパレットを指定する。パレットには、256パレット値の各々に対する色(例えば、RGBまたはYUV)および透過度(不透明度)が含まれる。パレットを変更して、オーバーレイをアニメ化または修正することができる(例えば、選択された領域の周囲の境界を強調表示するため、半透明のオーバーレイ枠の不透明性を変更するため、イメージを可視にするためなど)。
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, UINT8 *text);
このオペレーションは、指定されたオーバーレイ上にテキストを描画する。パレット内の最初の11個のエントリは、テキストの色付けのために使用される(半透明エッジによるアンチエイリアシング(anti-aliasing)を含む)。コンテンツコードはまた、例えば、プレイヤが必要とされたフォント、文字セットなどを欠く場合に、イメージ描画機能を使用して、テキストを表示することもできる。
テキスト行がオーバーレイ上に適合しない場合、テキスト行は切り取られる。改行のサポートは提供されず、これは呼び出し元が担う。sizeパラメータは、描画すべきテキストのサイズを指定し、プレイヤのデフォルトにすることができる(例えば、ユーザプリファレンス、現在の表示の文字などを反映する)。
UINT32 TRAP_OverlayRectDraw(UINT32 idx, UINT32 x1, UINT32 y1, UINT32 x2, UINT32 y2, UINT32 color, UINT32 filled);
このオペレーションは、指定されたオーバーレイ上に長方形を描画する。入力パラメータは、オーバーレイインデックス(idx)、左上側の座標(x1,y1)、右下側の座標(x2,y2)、color、および、長方形が塗りつぶされるべきであるかどうかを示すブール値(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(UINT8 *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)をもって呼び出されるまで、デバイスIDは持続する。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);
このオペレーションは、opIDによって指定されたデバイスオペレーションが、devによって指定されたデバイスによって実行されることを要求する。オペレーションは通常、デバイスに固有である。このTRAP(および/またはソケットTRAP)は通常、デバイス間またはデバイス内でのメッセージの受け渡しのため、ならびに、構成パラメータを設定し、再生環境を全体的に管理するために使用される。渡されるパラメータの内容は、opIDによって決まる。バッファ(buf)は、opIDに応じて、情報をコンテンツから渡される、もしくはコンテンツへ渡す、またはその両方のために使用することができる。
TRAP_DeviceAccessを使用して、非常に幅広い範囲の機能を実施することができる。TRAP_DeviceAccessを使用して、例えば、セキュリティパラメータ(データがどのように物理的メディアからロードされるかに影響を及ぼす、キーおよび他のパラメータなど)を指定することができる。このオペレーションはまた、リモートデバイスおよび他のコンポーネント(ハードウェアおよびソフトウェアコンポーネントの両方を含む)と対話するためにも使用される。この対話には、データの送信、データの受信、キー合意の実行、失効状況の決定、認証の実行、構成状態の変更、電源管理機能の制御、プロセスの終了/制御などが含まれるが、これらに限定されるものではない。
例えば、TRAP_DeviceAccessを使用して、映画のコピーをリモートデバイスに転送することができる。送信元デバイス上で実行されるコンテンツコードは最初に、転送のための送信先デバイスおよび適切なオペレーションIDを識別することができる。コンテンツコードはまた、任意のデバイス認証、キー交換、または他の必要とされたセキュリティオペレーションも実行する。(セキュリティ解析は、転送に先立って一般に実行されるが、キー配布および他のセキュリティ関連プロセスが、追加で、または代替として、メインデータ転送中またはその後に実行される場合がある。)次に、コンテンツコードは映画の諸部分を(受信側によってサポートされる場合は、任意で、解釈可能コードと共に)リモートデバイスに提供する。送信されたデータのフォーマットはコンテンツコードおよび送信先デバイスによってネゴシエートされ、最終的にコンテンツコードによって制御される。例えば、送信を行っているコンテンツコードは、送信先デバイスによってサポートされた複数のフォーマットから選択し、コンテンツをスケール変更またはそうでない場合は変換し、フォレンシックマークをコンテンツ内に埋め込み、コンテンツを送信先デバイスに提供することに先立って復号化/再暗号化することができる。コンテンツと共に送信されるコードはまた、送信元デバイスによって現に解釈されているコードとは異なる場合もある(例えば、インタープリタが異なるタイプである場合、異なる役割を実行する場合など)。コード、キー、データおよび他の部分もまた削除または修正される場合があり、これは例えば、後続のコピーを作成する能力などの、受信側デバイスによってサポート(、または、受信側デバイスによって実行されるように許可)されない機能を除外するためである。コードまたはデータを暗号化された形式で提供することもでき、これらは、送信元コンテンツコードによって復号化される必要はない。(場合によっては、送信元デバイスは、復号化キーへのアクセスさえ有することができない。)通常、メディアの諸部分におけるコンテンツは、いずれかの必要なセキュリティ処理または他の変換がなされて、送信元によってロードされ、次いで出力される。受信側デバイスは、インタープリタコードを実行中である場合もある。例えば、デバイス間転送は、最初に所定の初期コードを受信側に送信することを含む場合があり、この初期コードは、受信側においていずれかの必要とされたセキュリティチェックを実行し、次いで受信後続データを管理する。(受信側では、例えば、TRAP_DeviceAccessを使用してデータを受信し、例えばファイルシステム内に格納することができ、または、TRAP_CodecOutputを使用してデータを表示することができる。)非プログラマブルデバイス(non-programmable device)に送信中であるときでも、送信元コードはセキュリティおよび失効チェックを実行し、インターフェースプロトコルのセキュリティ部分を管理することなどができる。状況によっては(例えば、デバイスおよび転送プロトコルがコンテンツコードよりも新しい場合)、コンテンツコードは、必要および/または実行可能な範囲でプロセスを監視しながら、デバイスが(例えば、セキュリティプロセスの詳細にアクセスすること、および、セキュリティ問題が識別される場合に転送を防止することにより)転送プロセスのセキュリティを管理することを可能にすることができる。転送には、NVRAMスロット書き込み、メディア書き込み、外部サーバとのハンドシェーク、または他のプロセスが伴って生じ、例えば、「コピーワンス」ポリシなどの制限を実施することができる。
UINT32 TRAP_RunNative(UINT8 *signature, UINT32 sigLen, UINT8 *code, UINT32 codeLen);
このオペレーションは、コンテンツコードがネイティブコードをプレイヤ上で実行することを可能にするように意図される。プレイヤは、ネイティブコードがプレイヤのメーカまたは別の信頼できるパーティによってデジタル署名されることを要求する場合がある。(これは、悪意のあるコンテンツが悪意のあるネイティブコードを実行することを防止するために行われる。)ネイティブコードのオペレーションは通常、プレイヤ実装(または、最終的にネイティブコードを実行することになる他のデバイス)に固有である。結果として、コンテンツコードは通常、プレイヤの特性(例えば、TRAP_DeviceDiscoveryから決定される)についての情報を使用して、どのネイティブコードがプレイヤによって必要とされるか(または反対に、プレイヤがあるネイティブコードとの互換性を有するか)を判断する。
TRAP_RunNativeの使用の実施例には以下のものが含まれるが、これらに限定されるものではない。
・(例えば、アップデートされたコードを家電デバイスに含まれる不揮発性メモリに書き込むこと、PC上にインストールされたソフトウェアプログラムを修正することなどにより、)ソフトウェアアップデートをプレイヤまたはシステムの他の部分にインストールすること。
・プレイヤ内に格納されたキーまたは暗号化パラメータをアップデートすること。
・悪意のある(または、潜在的に悪意のある)ソフトウェア(ビデオドライバとして装う(masquerade)ビデオキャプチャソフトウェア、光ディスクドライブまたは他のメディア入力デバイスとして装うメディアエミュレーションソフトウェア、実行中のプログラムを改ざんするために使用されるデバッガ、TRAP_DeviceDiscoveryによって正しく報告されないいずれかのアクティブなソフトウェア、有効な失効されていないデジタル署名を欠くいずれかのソフトウェアなど)のために再生環境(メモリ、ストレージなど)をスキャンすること。
・悪意のある(または、潜在的に悪意のある)変更がデバイス上でなされているかどうかを検出すること(無許可のファームウェア変更、FPGAの再構成、ハードウェアコンポーネントの取り替えなど)。
・証明書、公開キー、対称キー、および他の暗号化属性(以下参照)が与えられると、デバイスが予想されるタイプであることを検証すること。
・バグ(プレイヤのオーバーレイ/メニュー機能における欠陥、メモリリーク、メモリ破損の問題、間違ったインタープリタオペレーション、パフォーマンスの問題、セキュリティポリシ解釈の欠陥など)に対する次善策を提供すること。
・(例えば、別の方法でアクセス不能なシステムについての情報を得るため、または、既存のTRAPによってはサポートされない方法でシステム状態を修正するために、)ペリフェラルへの直接アクセスを可能にすること。
TRAP_RunNativeは、敵対者が、暗号化キーを正当なプレイヤのタイプから抽出し、これらのキーを悪意のあるソフトウェアプログラムにより使用するための方法を発見する状況において、セキュリティを再確立する助けとなることができる。このシナリオでは、すべての脆弱なプレイヤのキーを失効させることは、通常は実現できない。なぜならば、それらの機器が失効されてがっかりするような正当ユーザが多数のこのようなプレイヤを所有するようになるからである。
例示的メディアはキー抽出攻撃への対策を保持し、以下のように動作するコンテンツコードを含む。
最初に、メディア上のコンテンツコードは、プレイヤの証明書を検証することによって、プレイヤの疑わしいシリアルナンバを判定する。プレイヤシリアルナンバは、プレイヤのタイプ、および、プレイヤが保持する特定の暗号化キー(例えば、TRAP_Aes内)の両方を暗示する。(一部の例示的キー管理方法を、「例示的対称キー管理」のセクションで説明する。)次に、コンテンツコードは、プレイヤが知るべきキーを知っていることを検証する。(例えば、src、dst、key、およびopOrKeyIDをもってTRAP_Aesを呼び出すことにより、これを実施することができる。srcおよびdstは、再生のために必要な暗号化されたコードまたはデータを含むバッファを示し、lenはバッファの長さを含み、keyは、関連するプレイヤキーにより暗号化されているバッファの復号化キーの値を示し、opOrKeyIDはプレイヤキーを参照する。複数のTRAP_Aesコールを実行することができ、これには、後続のオペレーションへの入力を定式化するために、以前のオペレーションからの出力が使用される場合が含まれる。他のステップも含まれる場合があり、一定の入力をもってTRAP_Aesオペレーションを実行して、次いで、「修正(fixup)」値をXORまたは加算することによって結果を「訂正する」ことなどである。)脆弱なプレイヤのキーでは、キー検証ステップは失敗する(または、少なくとも完全に完了しない)べきである。なぜならば、これらのプレイヤは、再生が脆弱なプレイヤ上で実行されている状況と、脆弱なプレイヤから抽出されたキーを使用して悪意のあるプレイヤ上で再生が実行されている状況とを区別するために、追加の認証を必要とするからである。これは、エミュレートされたプレイヤと正当なプレイヤとを区別し、次いで、(例えば、結果の値を返すこと、インタープリタのメモリ領域の部分を結果に基づいて復号化またはそれ以外の方法で処理することなどにより)結果に従ってインタープリタ状態を修正するように構成されたネイティブコードを実行させるTRAP_RunNativeを実行することによって、実行することができる。代替として、または加えて、ネイティブコードは、例えば、外部デバイスと通信すること、出力されるものを修正すること(例えば、フォレンシックマークを導入するため)などによって、インタープリタの外部で効果を有することができる。次いで、コンテンツコードは、正しい再生のために、例えば、ビデオまたは必要とされるコード/データのための復号化キーを導出する際の結果を組み込むことにより、またはそうでない場合はその結果を要求することにより、ネイティブコードによって実行されたオペレーションを要求することができる。
エミュレータが完璧でない限り(現代のコンピューティングデバイスの複雑さを考えると、極度に困難な提案)、ネイティブコードがうまく区別することは可能となる。ネイティブコードが正当なプレイヤをエミュレートされたプレイヤから区別するために使用することができる特性の例には、特定のタイプのネイティブコードを実行する能力、ハードウェアレジスタ内に格納された値、ハードウェアレジスタを修正することに起因する効果、メモリコンテンツおよびチェックサム/ハッシュ、非標準オペレーションを実行するときの挙動、ベンダ固有のセキュリティ機能の正しい実装(例えば、ビデオデコーダチップにおける文書化されていないセキュリティ機能)、コーデックの丸め誤差、エラー状態の処理、選択可能なユーザインターフェースコンポーネント(LCDディスプレイまたはキーボード入力など)、正当なデバイス上にない機能の存在、および、オペレーションのパフォーマンスおよびタイミングが含まれるが、これらに限定されるものではない。例示的実施形態では、1つまたは複数のプレイヤセキュリティテストを実行し、テスト結果に基づいてキーを導出し、導出されたキーを使用してインタープリタのメモリ領域の一部を復号化するネイティブコードを、コンテンツは指定する。コンテンツコードは次いで、ネイティブコードのチェックのすべて(または、十分に多数)によりプレイヤが正当であると示される場合、正しく再生するように構成される。プレイヤが正当ではない場合、コンテンツコードおよび/またはネイティブコードは、再生を停止し、エラーを報告し、追加の認証を要求し、プレイヤアップグレードを要求し、映画の終了をデコードすることを拒否し、ボーナス機能を無効にし、低下した解像度で再生し、または、再生環境に関連付けられたより高いリスクを反映する他の方法で応答することができる。
UINT32 TRAP_VendorSpecific(UINT32 select, ...);
このオペレーションは、プレイヤメーカが自身のセキュリティおよび非セキュリティオペレーションのためのサポートを追加することを可能にするように意図される。例えば(ただし、以下に限定はされない)、一部の実施形態は、ファイルアクセス(開く、読み取る、書き込む、シークする、閉じる、属性を設定するなど)、ベンダ固有のセキュリティオペレーション(主要な暗号化機能が危殆化される場合のバックアップとしての機能を果たすことができる非標準暗号化サポート、補助暗号変換、ハードウェアビデオデコード回路におけるセキュリティ機能など)へのアクセス、TRAP_DeviceAccessを通じて使用可能ではない特殊機能(3次元表示、香りの出力、ジョイスティックの振動など)へのアクセス、生フレームバッファコンテンツへのアクセスなどを提供することができる。
(統合されたセキュリティサービス)
例示的実施形態では、ライセンス団体(または他のエンティティ)がコンテンツ作成者のための統合されたセキュリティサービス一式を提供することができる。コンテンツ所有者自身がセキュリティサービスを提供することができるが、これらの機能をサードパーティにアウトソーシングすることは、コンテンツ所有者がプロセスに関与する必要性を低減することができると同時に、例えば、あるセキュリティプロバイダが複数のコンテンツ所有者にサービスを提供することを可能にすることによって、規模の経済(economy of scale)を可能にする。セキュリティサービスが単一のエンティティによって提供されるか、複数のエンティティによって提供されるかにかかわらず、関連のタスクには以下のこと(ただし、これらに限定されない)を含めることができる。
・オーディオビジュアルコンテンツを、セキュリティ対策、復号化ロジック、フォレンシックマーク埋め込み機能、失効ポリシの実施、不揮発性メモリ機能との統合、および、非セキュリティ機能ユーザインターフェースとの統合と結合する、セキュリティコードまたはサービスを開発すること。
・自動化された検索ツールおよび/または手動のプロセスを使用して、コンピュータネットワークまたは他の流通経路を介して入手可能な海賊行為を受けたと考えられるマテリアルを探し出し、海賊コピーを手動でおよび/または自動で検査および解析して、フォレンシックマーク内に埋め込まれた情報を復旧し、次いで、復旧された情報を使用して、海賊行為者のデバイスまたは方法についての情報を収集すること。
・例えば、海賊ソフトウェア/デバイスおよび海賊行為者間の議論(例えば、オンラインチャットルームにおける)を解析することによって、海賊行為についての他の情報を収集、アーカイブおよび解析すること。
・海賊デバイスを失効させること、海賊攻撃に対する対策を公式化すること、疑わしい海賊行為者に対する起訴を支援すること(ただし、これらに限定されない)などにより、海賊行為を軽減する助けとするために収集された情報を使用すること。
・例えば危殆化されている、安全でない、海賊行為に関与していると疑われるか、またはそうでない場合はコンテンツを復号化するために使用されるべきでないキー、プレイヤおよび他のコンポーネントの失効リストを管理すること。このようなリストを電子的に管理することができ、これらのリストは、各エントリの状況に関連付けられた複数のパラメータを含む(ただし、これに限定されない)ので、個々のタイトル、プロセスなどに関連付けられたリスクプロファイルを満たすように失効データをカスタマイズすることができる。
・例えば、失効していないデバイスによってのみコンテンツを復号化することができるようにコンテンツを作成するために、ブロック復号化オペレーション(TRAP_Aesなど)用の入力/出力を生成または取得すること。
・特定のプレイヤに対する攻撃を含む、攻撃への対策を開発すること、または管理すること。例えば、ネイティブコードベースのセキュリティ対策がプレイヤメーカによって開発およびデジタル署名されなければならないフォーマットで、このようなサービスには、このような対策が必要とされる状況を識別すること、リスクについての情報をメーカに提供すること、対策開発を支援すること、対策のためのテスト(セキュリティおよび互換性のテストを含む)を提供すること、各対策が使用されるべき再生環境を識別するためにコンテンツによって使用するためのコードまたはポリシを開発すること、対策コードを他の復号化プロセスおよび他のセキュリティ機能と統合すること(例えば、対策がスキップまたは回避されないようにするため)、および、メディア上の複数の別々のプレイヤタイプ/メーカからの対策を結合すること、が含まれる場合があるが、これらに限定されるものではない。
・キー、コード、識別子、セキュリティポリシおよび他の属性を含む、不揮発性メモリスロットに関連付けられたデータを管理すること。
・オンラインまたは他のネットワークベースまたはインタラクティブなコンポーネントと共に動作すること、または、これらと統合すること(例えば、デコードが、問題のあるセキュリティを有する1つまたは複数のデバイスまたは環境と関連するときに、拡張ユーザ認証ステップまたはプレイヤ認証ステップを提供するため)。
・完成されたメディアの品質管理を実行すること。
・コンテンツを、個々のプラットフォーム上にある特別なマーケティング機能、ユーザ機能、非標準機能などと統合すること。
・プレイヤ互換性テストを実行すること。
・問題(バグのメニュー化(menuing bug)、コーデック制限、ディスプレイ制限、正常に機能しない機能、是正可能なセキュリティ欠陥などが含まれるが、これらに限定はされない)を有するプレイヤを検出し、適切な次善策(影響を受けたオペレーションを回避すること、影響を受けない簡素化された機能を使用すること、プレイヤパッチをインストールすること、および、ネイティブコードを実行して問題に対処することが含まれる場合がある)を利用するためのコードの開発および統合。
・レプリケータと統合して、上述の機能を実施するために適切なコードおよびデータと共にメディアが正しく作成されることを確実にすること。および/または、
・いずれかの方法の他のタスクを提供して、コンテンツ所有者、プレイヤ開発者、ユーザ、法執行機関または他のパーティを支援すること。
(フォレンシックマーキング埋め込みおよび復旧技術)
比較的大規模の共謀攻撃(すなわち、複数の敵対者が、そうでない場合は共謀デバイスを識別および失効させるために使用することができるフォレンシックマークを消し去る意図を通常は有して、複数のデコードデバイスからのデコードされた出力を結合することによる攻撃)に対して最良の可能なセキュリティを得るため、比較的多数のバリエーションを出力において導入する能力を有することが、しばしば有効である。完全なMPEG−2ビデオGOP用のまったく別のバージョンを格納することは確かに可能ではあるが、多数の代替ビデオシーケンスが格納されなければならない場合(映画全体にわたる数百万の代替など)、ストレージ要件は厳しく(prohibitive)なる。このような状況に対応するため、必要とされるストレージの総量を最小限に抑えることが有効である。
フォレンシックマークのために必要とされる特定の要件および属性は状況に応じて変わるが、望ましい属性には通常、基礎となるバリエーションがコンパクトに表現されること(バリエーションをエンコードするために、比較的わずかなストレージ空間または帯域幅が必要とされることを意味する)、耐久性があること(コンシューマカムコーダ(consumer camcorder)を使用してテレビ画面から記録することによって作成されたコピーなどの品質が低下したコピーからバリエーションを復旧することができることを意味する)、もっともらしい(plausible)こと(出力を調べることによって、それらを自動的に識別および除去することができないことを意味する)、および、これらが芸術的なものとして受け入れ可能(acceptable)であること(バリエーションが過度にコンテンツの品質または履歴(experience)を損なわないことを意味する)が含まれる。これらの要件は(例えば、タイトル、コンテンツ作成者の要件、再生環境特性などに応じて)変わる場合がある。
フォレンシックマーキングをサポートする例示的光ビデオディスクでは、コンテンツ作成者は、圧縮されたビデオに適用される場合のある複数の代替(または他の修正)を探し出し、または生成する。これらの代替はビデオ圧縮プロセスの一部として識別され、この場合、考えられるバリエーションを識別し、次いで複数の基準(例えば、ストレージサイズ、耐久性、もっともらしさ、芸術的受け入れ可能性など)と照らし合わせてそれらの適合性を評価するように、ビデオ圧縮プロセスが修正される。バリエーションが適切である場合、適切なバリエーションとして出力される。例えば、単一ビット(または単一バイト、単一ワード、単一ブロックなど)の値を変更することが適切な代替ビデオシーケンスを作成する位置を識別するように、圧縮ロジックを構成することができる。
代替実施形態では、従来の圧縮アルゴリズムを使用することができ、圧縮後ステップとして、代替を生成し、かつ、代替の妥当性を検査することができる。例えば、自動化されたソフトウェアを使用して、(a)例えば、(擬似)乱数生成器を使用して、圧縮されたビデオの任意のバイトと、そのバイトのための新しい値とを選択することによって、ビデオストリームへの修正候補を識別すること、(b)ビデオの試験的な圧縮解除を実行し、ストリームが変更によって無効にされた場合、修正候補を無効として拒否すること、および、(c)試験的な圧縮解除の出力を、オリジナルのストリームを圧縮解除した結果と比較し、差異が要件を満たさない場合、修正候補を拒否することができる。例えば、ステップ(c)では、小さすぎる(すなわち、耐久性が十分でない)または大きすぎる(すなわち、もっともらしくない、および/または、芸術的に受け入れ可能ではない)修正を拒否することができる。追加のテストを実行して、修正が相互に作用しないようにすることを検証することができる(例えば、状況によって、別々に適用された場合、修正は受け入れ可能である場合があるが、共に適用された場合、受け入れ可能でない)。テストを通過する修正は保存される。
フォレンシックマーキングを使用する例示的メディアを作成するとき、最初の圧縮されたビデオデータストリームが準備される。このデータは、メインの圧縮されたビデオからなり、任意で、すでに適用された一部の修正を伴う(任意で、ビデオを破損する一部の代替または他の修正が含まれる場合がある)。ビデオに対する有効な修正を識別するデータ構造が準備され(例えば、以前に識別されたが適用はされなかった修正を適用する、または、すでに適用されている修正を取り消す)、これらの有効な修正には、ビデオを再生可能にするために必須であるいずれの修正も含まれる。代替を非常にコンパクトにして(例えば、MPEG GOPにおける24ビットバイトオフセット、および、8ビット代替値を4バイトで表現することができる)、文字通り(literally)数百万の変更がわずか数メガバイトのデータ内で定義されることを可能にすることができる。
コンテンツ作成者は次いで、再生環境特性に基づいてバリエーションを選択および適用するためのプログラムロジックを準備する。このプログラムロジックは、変更をビデオシーケンスに適用するように構成されるべきであるが、ただし、適用される変更の組合せは通常、科学捜査の目的のために有用となるであろう情報に基づく(シリアルナンバ、デバイスを暗号的に識別する値、モデル/メーカ情報、接続されたデバイスについての情報など)。加えて、このプログラムロジックは、有効なビデオストリームを作成するために必要ないずれの変更も適用するように構成されることが可能であるべきである(少なくとも、受け入れ可能な再生環境において動作中であるとき)。(「必須」の変更を有することは、変更を適用するコンテンツコード部分を敵対者が無効にしようと試みる攻撃を防止する助けとするために、有用である場合がある。)コンテンツコードロジックには暗号技術の使用が含まれる場合があり、これは例えば、プレイヤキーを使用して、代替を適用すべきプレイヤ上でのみ、代替セットを復号化するためである。同様に、コンテンツコードにはエラー訂正コードの使用が含まれる場合があり、これは例えば、マークが付けられたビデオを復旧するパーティが、(例えば、攻撃または品質低下により)マーク復旧が信頼できない場合でも、プレイヤ情報を復旧することができるようにするためである。埋め込まれる値には、デジタル署名、MAC、または、マークを復旧するパーティが復旧された情報の妥当性において確信を有することができるように埋め込まれた情報を認証する、他の値が含まれる場合がある。
海賊コピーが復旧されるとき、コンテンツ作成者はこのコピーを解析して、現存するバリエーションを識別することができる。この解析を手動で行うことができるが(例えば、海賊ビデオのフレームを、各位置における可能なバリアント(variant)の各々と比較し、次いで、バリエーションのリストを再度再生環境特性にマッピングすることによる)、この解析プロセスを、より効率的にするために、および、より複雑なマークの解析を可能にするために、自動化することができる。例示的な自動フォレンシックマーク解析システムは、カスタマイズされたソフトウェアを備えたコンピュータを使用して実装される。解析ソフトウェアは、オリジナルの圧縮されたビデオ、修正のリスト、および、復旧した海賊ビデオのデジタル表現をもって開始する。次に、解析ソフトウェアは、オリジナルのビデオ内のフレームと海賊ビデオ内のフレームとを照合し、海賊ビデオのフレームとオリジナルのビデオ(および/または、修正が適用されたオリジナル)の対応するフレームとを最も近くマッチさせるための変換(回転、拡大縮小、ベンド、カラーシフト、強度調整、タイムシフトなど)を特定する。解析ソフトウェアは次いで、海賊ビデオのフレーム(またはフレームの諸部分、またはフレームのセットなど)を、オリジナルのビデオのバリアントの各々の対応する部分に対して比較する。ソフトウェアは次いで、復旧されたビデオが各バリエーションにどの程度マッチしているかを示す、類似/相違に基づいたスコアを計算する。例えば、(変換された)海賊ビデオイメージとオリジナルのバリエーションとの間の最小二乗誤差を使用して、このスコアを計算することができる。スコアを計算する際、変更によって影響を受けない領域を無視することができ、インターレーシング(interlacing)、フレーム間のぼかしなどのひずみ(distortion)のためにさらなる調整を行うことができる。イメージ解析ソフトウェアはまた、オペレータが海賊ビデオのフレームを(変換の調節の有無にかかわらず)オリジナルのビデオのバリアントに隣接して(バリエーションを視覚的に探し出すことを支援するための選択可能な拡大および強調表示によって)表示することを可能にする「手動モード」ユーザインターフェースを提供することもでき、また、オペレータが、どのバリエーションが海賊ビデオ内にあるかを選択し(または、バリエーションが未知であることを示し)、フレームを各ビデオソース内で前方および後方に移動させ、次のバリエーションまで高速に進め、現在のプログラム状態を保存することを可能にするためのユーザインターフェースオプションを提供する。イメージ解析プロセスの出力は(手動で実行されるか、自動で実行されるかにかかわらず)、ビデオ内に存在する場合のある可能なバリエーションに割り当てられた相対スコアのリストである。(これの簡素化された形態は、出力が単に、各バリアントについての最も可能性の高いオプションを識別する場合である。)自動化された、および/または、手動のプロセスは次いで、復旧したバリエーションデータを再生環境についての情報に変換するために使用される。例えば、マーク埋め込みが、元々はプレイヤシリアルナンバに適用されたエラー訂正コードの出力に基づいていた場合、復旧された選択値を、シリアルナンバを復旧するようになる適切なデコードプロセスへの入力に変換することができる(エラーの数が過剰でないと仮定する)。同様に、選択プロセスが、シリアルナンバの一部をもってシードされた擬似乱数生成器(PRNG)を使用して実行される場合、解析プロセスは、可能なシード値の各々を使用したPRNG出力を海賊ビデオからの監視と相関させることを含む場合がある。
バリエーションはまた、圧縮されたビデオストリームを修正するという手段とは異なる手段を使用して、コンテンツ内に埋め込まれる場合もある。例えば、コンテンツコードは、デコードされたビデオの上にイメージを重ねるようプレイヤに命令することによって、修正を導入することができる。例えば、MPEG−2デコードされたビデオの上に1つまたは複数の半透明オーバーレイフレームを描画することによって(または、同様に、コンテンツコードに出力フレームバッファを直接的または間接的に修正させることによって)、フォレンシックマークを埋め込むことができる。オーバーレイを目立つようにすることもできる。例えば、「名前 名字用スクリーナ。コピーしないでください。(Screener for FirstName LastName's.Do Not Copy.)」と表示される、動的に生成された移動する半透明オーバーレイは、海賊行為への明示的な抑止力を提供することができ、(例えば、光ディスクのバーストカッティングエリア、NVRAMスロット、サーバなどから)視聴者の名前を決定すること、および適切なオーバーレイを表示することによって、これを作成することができる。オーバーレイを使用して、例えば、(意図的に)欠陥のある部分上に描画することによって、圧縮されていないビデオを訂正または修正することもできる。オーバーレイは、メディア上のストレージ空間によって、非常に効率的にすることができる。なぜならば、オーバーレイを描画するためのコードを表すのに必要とされるデータの量を非常に小さくすることができるからである。オーバーレイベースのマークによって、多数のバリアントを有するビデオ部分の生成が効率的になる(例えば、単一のビデオフレームのごく一部を容易に作成して、そのエリア内のプレイヤシリアルナンバの表現を簡単にオーバーレイすることによって、プレイヤを一意に識別することができる)。オーバーレイベースのマーキングは、幅広く変わるマークの作成を簡素化することもできる。なぜならば、(例えば、)淡い半透明なオーバーレイイメージが表示される場合があるとき、スクリーン位置(x,y)および時間のための幅広い範囲のオプションが存在する可能性があるからである。海賊行為者が、複数のプレイヤからの出力を結合することによって、それらのコピーのソースを隠そうと試みる場合がある状況においてデバイスを識別する際に、これらの特性は特に有用となる可能性がある。フォレンシックマークを他のデータに埋め込むこともできる。このデータには、オーディオ、静止画像、制御データ、メディア書き込みパターンなどが含まれるが、これらに限定されるものではない。
(メディアおよびコンテンツ認証)
コンテンツコードおよび/またはプレイヤは、メディアが挿入されるとき、および/または、データがその後にロードされるとき、メディアを暗号的に認証することができる。
例示的実施形態では、メディアの全部または一部の個々のデータ部分(例えば、セクタ)は、ハッシュツリーを使用してデジタル署名される。ルートハッシュは、フォーマットを監督するエンティティ(または別の信頼できるエンティティ)によってデジタル署名され、メディア上に配置される。ルートハッシュ署名はまた、レプリケーションおよび/またはマスタリング施設、著作権所有者、発行日、メディアにアクセスすることを許可される(または許可されない)プレイヤデバイスを記述する基準、および他のこのような情報を識別することもできる。データブロック(例えば、セクタ、GOP、トラック、ファイルなど)がメディアからロードされるとき(またはその後)、ロードされたデータを適切な中間ハッシュ値と結合して、ルートハッシュを再作成することにより、これらのデータブロックの妥当性を検査することができ、この妥当性検査はドライブ、コンテンツコード、プレイヤアプリケーション、および/または、他のプレイヤデバイス/部分によってなされる。ルートハッシュの値を、メディア署名が検証された後にキャッシュすることができるので、(比較的遅い)公開キー署名検証ステップを各読み取りごとに繰り返す必要はない。同様に、中間ハッシュ値をデータブロックと共に格納し、キャッシュし、必要に応じて計算し、またはメディアから検索することができる。メディアはまた複数のルートハッシュを含むこともでき、または、他の認証スキームを使用することができる(各セクタ、GOP、または他のデータ部分上のデジタル署名を検証することによるなど)。ストレージオーバーヘッドを低減するために、メッセージ復旧を可能にする署名およびパディングスキームを使用することができる。デジタル署名はまた、ディスク上に含まれるブートコードもしくは(再)書き込み可能部分内に格納されたデータ、またはすべてのデータなど、ディスクのコンテンツの部分を認証することもできる。
署名(または、他の暗号値もしくは非暗号値)はまた、特定のディスクまたはコード部分によって実行される可能性のあるオペレーションを指定または制限することもできる。例えば、コンテンツが特定のプレイヤの特徴または機能にアクセスすることを許可し、可能にする、ライセンス機関によってデジタル署名を発行することができる。このような許可を使用して、ライセンス料が確実に支払われるようにすること、または、無許可の海賊メディアの製造を防ぐことができる。例示的実施形態では、映画を含む光ディスクを大量生産することを望む各コンテンツ作成者(またはそのレプリケーション施設)は、生産されるべきディスクを識別する情報をライセンス団体に提供する。このような情報には、タイトル、合法的な著作権保持者の識別、許可されるべきコピーの数、ディスクコンテンツの少なくとも一部のハッシュ、メディアシリアルナンバ、必要とされる所望の機能、および、要求を認証するデジタル署名を含めることができるが、これらに限定されるものではない。それに応じて、著作権保持者は、メディアの生産を許可する1つまたは複数のデジタル署名を受信する。ライセンス団体はまた、コンテンツ作成者(またはそのエージェント)からの支払いを受け取り、かつ処理することもできる。このように、ライセンス料が、コンテンツによって実際に使用された特定の機能(セキュリティまたはそうでないもの)に直接結合されることが可能である。コンテンツコードのオペレーションに課せられた制限を、(例えば、放送テレビ信号をコピーすることができるかどうかを示すために使用される放送フラグに類似する)非暗号フラグ(non-cryptographic flag)に基づくようにすることもできる。パーミッションもまた、(例えば、ユーザのプライバシが確実に維持されるように、プライベートユーザ情報にアクセスしているコンテンツコードによるネットワークリソースへのアクセスを拒否すること、ユーザの許可を得ている、または、リモートサーバからの認証を得ているコンテンツコードに大きなアクセスを付与することなどの)以前のアクションに基づくようにすることができ、異なるスレッド、コンテンツコード部分などでは異なるようにすることができる。
デジタル署名はコンテンツと共に、またはコンテンツとは別々に配布される場合があり、メディアのいかなる部分上にも配置される場合があり、また、暗号化されたキー、復号化キーを導出するためのロジック、セキュリティポリシ情報などを伴う場合もある。例えば、光メディアの場合では、各ディスクについて別々に書き込むことができるメディアの部分上にデジタル署名を配置することが有用である場合がある(それにより、認証された一意のディスクシリアルナンバを、例えば、メディア失効機能と共に使用するために提供して、どのデバイスがメディアを再生することができるべきであるかなどを明示的に指定する)。
不揮発性メモリ(EEPROM、フラッシュなど)を含むメディアでは、一意のデータを通常に格納することができるが、他のメディアタイプは他の技術を必要とする場合がある。例えば、スタンプ付き光メディアはバーストカッティングエリア(BCA)内のデータを保持することができ、これは通常、強力なレーザを使用して書き込まれる。意図的な欠陥または変更のパターンをメディア表面に導入することもでき、プレイヤおよび/またはコンテンツコードによって読み取ることもできる(例えば、エラー検出およびエラー訂正を無効にすることで得られた読み取り結果を直接処理することによる)。半導体ベースのROMでは、ヒューズおよび他の追記機能が使用される場合がある。
署名および証明書に加えて、メディア固有の領域を使用して、ローカリゼーション情報、暗号化されたキー(例えば、特定のプレイヤが現在または将来のメディアを、例えばスクリーナ、デモ、または、規制された配布のために意図された他のディスクとしてデコードすることを可能にするキー、プレイヤ不揮発性メモリデータの読み取り、復号化、および/または書き込みを可能にするキーなど)、暗号化されないキー(例えば、海賊行為者によってレプリケーション施設から盗まれたメディアまたはデータのデコードを防止するために、スタンプ付きメディアの製作の後に書き込まれたもの)、識別情報(例えば、オーバーレイにおける表示のための、および、フォレンシックマーキングにおける使用のための、受信者名など)、マーケティングおよびプロモーションデータ(例えば、トライアル、くじ、オンラインサービスなどへの参加を可能にする値)、電話番号、データネットワークアドレス、実行可能コード、または、コンテンツコードおよび/またはプレイヤによって使用することができる任意の方法の他の暗号または非暗号データも保持することができるが、これらに限定されるものではない。データをディスク固有の領域からロードするとき、ディスク固有の領域のコンテンツを偽造するために必要とされる情報を(例えば、アプリケーションまたはコンテンツコードへ)出力しないように、ドライブは一方向変換(例えば、SHAハッシュ、コンテンツコードにより指定された値によってキーが付けられた(keyed)HMAC−SHA、RSA公開キーオペレーションなど)を適用することができる。記録デバイスはまた、ハッシングまたは他の暗号化変換を使用して、敵対者が正当なメディアから抽出された情報を使用して正確な不法コピーを作成することを防止することもできる。メディア固有の領域をまた、記録デバイスによって事前に記録する(例えば、空のコンシューマ記録可能メディア上のシリアルナンバにより)か、または書き込むこともできる(例えば、デジタル署名することができる、記録デバイスの識別子による。この識別子を正当なデバイスによって検証して、レコーダが失効されないことを確実にすることができ、また、違法コピーが復旧されるときにこの識別子を使用して、違法コピーを作成するために使用された記録デバイスを識別し、および/または失効させることができる)。
メディア認証および偽造防止(anti-forgery)技術(例えば、米国特許第6646967号明細書において概説される、ピット特性またはウォブルトラックコンテンツを調節することなど)をサポートするメディアフォーマットでは、これらの特性から導出された値を、プレイヤによって読み取り(または検出し)、プレイヤおよび/またはコンテンツコードによって認証することもできる。物理的特性を読み取った後、ドライブは、この値を出力する前に、一方向暗号化変換を適用し、修正されないドライブによって受け入れられるような方法で、変換された特性を知る悪意のあるパーティが基礎となる特性を偽造する能力を欠くようにすることができる。コンテンツコード(および/または、ドライブ、プレイヤアプリケーション、または他のコンポーネント)は、(例えば、メディアが信頼できるパーティからの署名を特性値と共に保持することを、検証することにより)変換された特性を認証することができる。
(ブートストラップ、セキュリティ解析および再生)
例示的光ディスクを伴う例示的プレイヤの実際のオペレーションを説明する。オペレーションは、ドライブにディスクを挿入することで開始する。インタープリタは最初に、コードおよび/またはデータの最初の部分をディスクからロードし、これらを実行することによって、ブートストラップされる(bootstrapped)。この最初の部分を小さく単純にすることができ、例えば、この最初の部分は単に、タイトルがロード中であることをユーザに通知することができ、次いで追加のコードおよびデータをメディアからコンテンツのメモリ領域にロードすることを開始することができる。このコードは追加のコードを順にロードすることができる(例えば、このコードはプレイヤタイプをチェックし、次いでプレイヤタイプに固有のコードをロードすることができる)。プレイヤ設計およびメディアに応じて、任意の数のコードロードチェックを実行することもできる。プレイヤはまた、挿入されたメディアがコード(または、コードを実行するために必要とされた特性)を欠く場合を検出することもでき、そうである場合、プレイヤ内に組み込まれた機能を使用してディスクを再生することもできる。このようなサポートは例えば、DVD、CD、DVD−Audioなどのレガシーメディアフォーマットからの再生を可能にするために有用である。
例示的メディアは次いで、ユーザの暗号化インターフェース(例えば、TRAP_Aes)を使用して、1つまたは複数のタイトル固有の復号化キーを導出する。失効していないプレイヤのみが有効な復号化キーを導出することができるように、コンテンツコードは構成される。(これを実施するために、コンテンツコードは、放送暗号化、キー暗号化キー、難読化されたソフトウェアなどの技術を使用することができるが、これらの技術に限定されるものではない。)次いで、これらの復号化キーを使用して、例えば、追加の暗号化されたコード、ビデオまたは他のデータを復号化することができる。ブートストラップにはまた、データをメディアからロードすること、データを必要に応じて圧縮解除すること、および、任意の方法のセキュリティ解析オペレーションを実行することが含まれる場合もある(以下のサブセクションでさらに詳細に説明する)。
次いで、実際の再生には、通常、様々なステップまたはチェックを繰り返し実行することが含まれ、これらのステップまたはチェックには以下が含まれる場合があるが、以下のものに限定されるものではない。
・イベントを処理すること。この処理には、ユーザインターフェースイベント(キーストローク、リモートコントロールボタンの押下、マウスの移動、ポインタ/カーソルの移動、選択入力など)および他のイベント(例えば、電源を落とす要求/通知、ハードウェア再構成要求/通知、ソフトウェア変更要求/通知、エラーアラート、メディア排出要求/通知など)を検出すること、および処理することが含まれる場合がある。(TRAP_GetEventを参照。)イベントを処理するための適切な方法は、イベント、タイトル、プレイヤ属性、および、再生プロセスの状態によって決まる場合がある(例えば、メニューが表示されるときにイベントを処理するために使用されるロジックは、ビデオが再生中であるときに使用されるロジックとは異なる場合がある)。一例では、新しいビデオストリームに切り替えること、プレイヤ構成ビットを変更すること、アクションを要求すること(例えば、排出要求に応答して「メディア排出」TRAPを呼び出すこと)、メニューをアップデートすること、オーバーレイグラフィックスを変更すること(例えば、アニメ化、アップデートなど)、ネットワーク接続の開始/アップデート/その他を行うこと、再生構成(再生速度など)を変更すること、新しいコンテンツコードをロードし、実行すること、ビデオストリーム内の新しい位置にジャンプすること(これは、バッファされたメディア要求を変更/消去すること、データバッファされたコーデックを消去することなどを必要とする場合がある)、再生を終了すること、セキュリティチェックを実行すること、エラーを表示することなど(ただし、これらに限定はされない)によって、一部のイベントを処理することができる。一部のイベントは、要求されたオペレーションが許可されることをコンテンツコードがチェックすることを、必要とする場合もある。すぐには実行することができないオペレーションは、実行できるようになるまで、バッファされる場合がある。一部のイベントは無視される場合もある。
・メディアインターフェースを管理すること。例示的実施形態では、メディア処理ルーチン(media handling routine)には、ビデオおよびオーディオコーデックのために、および、他の目的のために、使用可能なデータの安定した供給があることを確実にする責任がある。例えば、メディアが光ディスクである場合、コンテンツコードは、ドライブの状況をチェックし、うまく読み取られているデータを検索し、新しい読み取り要求を提示し、もはや必要ではない読み取り要求を消去し、(例えば、割り込まれない再生を確実にするために、ビデオ内の近づきつつあるブランチの可能な各フォーク(fork)にデータをロードするため)ヒントを提供して機能またはキャッシュを先読みし、コンテンツコードのメモリ領域内(または、他の場所、例えば、コーデック、フレームバッファ、復号化モジュールなど)でデータがロードされるべき場所を指定し、エラーをチェックし、どのようにエラーが処理されるべきであるかを命令し、ドライブまたは他のコンポーネントに対する暗号化キーを指定し、ドライブ読み取り/書き込み要求に関連する認証情報を提供し、デコードパラメータ(エラー訂正情報、キー、セクタアドレスマッピング(sector address mapping)、読み取りヘッド深度/焦点など、ファイルアクセス特権など)を指定することなどができる。
・セキュリティ処理:このロジックは、キーの導出、ロードされたデータの認証(例えば、MAC、ハッシュツリー、デジタル署名などを使用)、および、実行可能部分(例えば、オーディオまたはビデオの特定の部分に関連付けられたセキュリティコード)の実行などの追加の必要とされる復号化または処理ステップのいずれも実行することができる。このステップには、(例えば、ロードされたデータのどの部分を出力するべきかを選択すること、データに修正を加えることなどにより、)フォレンシックマークを埋め込むことが含まれる場合もある。例示的実施形態では、このオペレーションには、MPEG GOP用のキーを導出すること、GOPのデータ上でAES復号化オペレーションを実行すること、および、ブロックAESキーを知っていても敵対者はディスクのコンテンツを復号化できないことを確実にするために、復号化の前/後に前処理および後処理(データの再順序付け(reordering)、ブロックXOR、置換、バイト修正など)を行うよう、コンテンツコードを使用すること、が含まれる。
・データをコーデックに転送すること。このコードはまた、エラー状態を検出し、処理することもでき、この状態は、必要とされるメディアからのデータが使用可能ではないためにコーデックのスターベーション(starvation)を避けることができない状況などである。このコードはまた、コーデック状況を検出して、コーデックバッファがオーバーフローまたはアンダーフローしないことを確実にすること、および、メディアインターフェースコードが正しいデータをロードしていることを確実にすることもできる。
・オーバーレイおよび特殊な機能を処理すること。このロジックは、メニューの描画および除去、オーバーレイ、サブタイトル、および類似の機能を担う。このロジックはまた、ピクチャインピクチャビデオおよび所定の種類のフォレンシックマーク(オーバーレイを使用して描画されるものなど)も処理する。
特殊な状況(ゲーム/パズル、メニュー、メニュー選択の処理、隠された「イースターエッグ」など)は、特殊なコードを必要とする場合がある。マルチスレッドインタープリタ(Java(登録商標)仮想マシンなど)が提供される場合、別々のスレッドが異なるオペレーション(イベント、オーバーレイ、ビデオなどの管理)のために使用される場合があり、スレッドおよび/または共有メモリ領域の間で受け渡されるメッセージのためのインタープリタによるサポートを、スレッド間での同期および制御のために使用することができる。同様に、状況チェックおよびメッセージの受け渡しを使用して、インタープリタが他のコンポーネントと同期されることを確実にすることできる。
プレイヤはまた、様々なオペレーションのためのデフォルトハンドラを提供して、例えば、ユーザインターフェースの一貫性を改善し、コンテンツ作成努力を低減し、パフォーマンスを向上させることなどもできる。
完了すると(ユーザがプレイヤ上の排出ボタンを押す場合など)、コンテンツコードに、保留中のシャットダウンを通知することができる。コンテンツコードは次いで、リモートデバイスに通知し、その内部状態を整理し(clean up)(例えば、いずれかの要求された不揮発性メモリ書き込みを完了するなど)、終了することができる。コンテンツコードが所定の期間(例えば、5秒)以内に終了しない場合、プレイヤデバイスはコンテンツコードを終了させ、メディアを排出する。
(セキュリティ解析オペレーション)
コンテンツコードは再生環境を解析してセキュリティの問題を探すことができる。このプロセスには通常、プレイヤおよび再生環境の他の部分についての情報を得ること、および、それらの情報を処理することが含まれる。この情報には、プレイヤのための、または、コンテンツコードが検証することができる他のコンポーネントのための、デジタル署名および/または暗号化証明書が含まれる場合がある。
プレイヤから得られたこの情報は、プレイヤおよび再生環境の特性(または、疑わしい特性)を示す。一部の特性(特定のTRAPの存在など)は直接報告される。他の特性は間接的に推論され、例えば、プレイヤ内の暗号化キーの特定の組合せは、部分的にまたは完全にプレイヤのシリアルナンバによって決定される場合がある。正当なプレイヤとして装うが、正しい暗号化キーを欠くプレイヤは、「嘘で捕まる」可能性がある。なぜならば、プレイヤが有していないキーを使用して暗号化オペレーション(復号化、署名など)を実行することはできないからである。同様に、他の矛盾を利用して、問題を識別することができる。
セキュリティ解析プロセスは、圧縮されたビデオ、コード、オーディオおよび/または他のデータのためのキーの導出を含む、様々な再生関連プロセスに含まれる場合がある。例えば、特定のタイプの正当なプレイヤがネイティブコード(標準化されたインタープリタ/仮想マシン内で実行されるコードではなく、マシン内のローカルプロセッサ上で実行されるコード)を実行する能力をサポートし、および/または、文書化されていないプレイヤタイプ固有の計算をサポートする場合、コンテンツはこれらの機能を使用して、プレイヤタイプを認証することができる。特定のモデルであると主張するがそのモデルによってサポートされるオペレーションを正しく実行することができないプレイヤ上でコンテンツが実行されていることにそのコンテンツが気付く場合、コンテンツは、例えば、悪意をもって危殆化されたこのタイプのプレイヤから抽出されたキーを使用して、このプレイヤタイプとして装っているデバイス上で実行されていると、合理的に結論を出すことができる。
セキュリティチェックには、コンポーネントまたは属性の任意の組合せを解析することを含めることができる。例えば、メディア、メディアドライブ、およびハードウェアコンポーネントの特性は、偽造プレイヤを検出するために有用である。事前に記録されたメディア上、または「スタンプ付きの」メディア上の販売されたコンテンツは、ドライブに問い合わせて、そのコンテンツがコンシューマ記録可能メディア上で実行されているかどうかを判断し、コンシューマ記録可能メディア上で実行されている場合、このことは決して起こるべきではないので、再生されることを拒否することができる。ある状況(例えば、支払いが行われる場合)において特定のタイトルがコンシューマ記録可能メディアへの記録を可能にする場合、例えば、特定のシリアルナンバを有するメディア、および/または特定の記録デバイスの識別子を保持するメディアからの再生を明示的に許可する(コンテンツ所有者が許可した担当者によって発行された)有効なデジタル署名が存在する場合にのみ、コンテンツはコンシューマ記録可能メディアから再生することができる。
出力デバイス上、デバイスドライバ上、および、コンテンツを受信する(または、受信する可能性のある)コンポーネントなどの他の再生コンポーネント上で、セキュリティチェックを実行することができる。この機能は、悪意のある出力デバイス、または危殆化された出力デバイスを使用してコンテンツが記録される場合のある状況に対処するために、特に有用である。出力デバイスのための検証オペレーションは、デバイスの機能によってのみ制限される。例えば、出力デバイス検証には、ネイティブコードを入力または出力デバイスに送信すること(例えば、セキュリティの問題を検出するため、バグを修正するためなど)、他のデバイスとの暗号ハンドシェーク(cryptographic handshake)を実行すること、メディア上に保持された失効リストに対してデバイスのキーをテストすることなどが含まれる場合があるが、これらに限定されるものではない。出力デバイスはまたプレイヤの検証を要求することもでき、この場合、適切な検証は、実際のプレイヤ、コンテンツコード、またはこれら(または他のコンポーネント)の組合せによって提供される場合がある。複数の出力デバイスがチェーン状に(in a chain)接続される場合(例えば、プレイヤデバイスはデジタルオーディオをミキサに送信することができ、ミキサはデジタルオーディオを増幅器に提供し、増幅器はアナログ出力をスピーカに提供する)、各デバイスはそれがコンテンツと共に何を行うことを予定しているかについての情報をプレイヤに提供し、発信元(または他の)デバイスがメッセージを後続のデバイスへ渡すことを可能にすることができる。このように、コンテンツコードは、再生プロセスに関係するデバイスの任意に長いチェーン(またはネットワーク)内の各デバイスを認証することができる。信頼できないデバイス(または、記録デバイスなどの許可されないデバイス)が検出される場合、コンテンツコードは、適切な応答が返されることを確実にすることができる(適切な応答には、再生を拒否すること、信頼できないデバイスへの出力を拒否すること、信頼できないデバイスにコンテンツを送信しないよう中間デバイスに命令すること、信頼できないデバイスを再構成して問題を是正すること、出力品質を低下させること、追加のセキュリティ認証ステップを実行することなどが含まれるが、これらに限定されるものではない)。インターネット接続または別のデータ接続が存在する場合、セキュリティチェックには、追加のセキュリティ関連情報をリモートサイトからダウンロードすることを含めることができる。同様に、リモートデバイスおよびローカルストレージ(例えば、NVRAM)を使用して、新たな証明書失効テーブルなどの有用な情報、または、メディア上のコードよりも新しいデジタル署名付きセキュリティコードを取得することもできる。
セキュリティチェックは通常、再生に先立って実行されるが、コンテンツコードはセキュリティチェックをいつでも実行することができる。再構成される可能性のある再生環境では、または、他の新しいセキュリティ関連情報が入手可能になる可能性のある状況では、追加のセキュリティチェックを定期的または絶えず実行することが有効である場合がある。大きな変更が検出される場合、コンテンツコードは再生を終了するか、または、再生環境における確信を再確立することができるようになるまで、再生を休止することができる。
テーブルまたは判断ツリー(decision tree)を使用して、特定のプレイヤ属性が与えられるとどのセキュリティ解析コード(もしあれば)が適切であるかを、迅速に選択することができる。現在のプレイヤに適用できないセキュリティコードが実行される必要はなく(または、セキュリティコードがメディアからロードされる必要もなく)、不必要なパフォーマンスへの影響を回避し、それをサポートしないプレイヤ上でセキュリティコードを実行する結果として生じる可能性のある互換性の問題を回避する。前述のように、セキュリティチェックを暗号化キー導出オペレーションに結合することができる(例えば、その場合、特定のセキュリティチェックを必要とするデバイスは実際にチェックを実行して、必要なキーを正しく導出しなければならないが、そのセキュリティチェックを必要としないデバイスは、キーを直接得ることができる)。
(例示的キー管理)
例示的プレイヤはそのメーカによって、キーの一意の組合せをもって初期化される。これらのキーは、メディアフォーマットを制御するエンティティによって許可されるキー管理局から得られる。キー管理局は、許可されたメーカから要求を受け、その要求の妥当性を検査し、プレイヤキーセットを提供し、それらのキーのための支払い(および、対応するライセンス料)を受ける。例示的プレイヤのためのキーセットは128のAESキーからなり、これらのキーは各々が128ビットであり、(キー管理局にのみが知る)トップレベルの256ビットAESキー、(プレイヤのメーカを識別する)32ビットグループID、および(プレイヤのシリアルナンバを識別する)32ビットデバイスIDから導出される。グループおよびデバイス識別子は共にプレイヤを一意に識別し、プレイヤのデジタル証明書内に表現される。
例示的実施形態では、キーセット内の128のキー(キーID値0ないし127)の各々は、キー管理局によって、最初にキー選択ブロックをキーID、グループIDおよび/またはデバイスIDから計算することにより導出される。キー選択ブロックは次いで、(必要な場合)パディングされ、トップレベルキーを使用して暗号化される。結果として生じる値を後処理し(例えば、切り捨て)、実際のキーを作成することができる。キー選択ブロックを指定されたパラメータから導出するために使用される方法は、キーIDによって決まる。以下の表は、キーID、グループIDおよびデバイスIDをキー選択ブロックに変換するために使用可能な例示的ルールを示す。
キーを(それらのグループIDおよびデバイスIDに応じて)擬似ランダムデバイスサブセットに割り当てる、例示的関数KeySelector(GroupID,DeviceID,g,d)は、以下の通りである。
Let hash[0..19] equal the bytes of the SHA hash of KeyID || GroupID.
Let AND_MASK = (1 << g) - 1.
For i = 0 upto d-1:
Let n = hash[i] mod (g - i).
Clear the nth set bit in AND_MASK.
EndFor.
Let XOR_MASK = hash[16..19] AND (AND_MASK XOR ((1 << g) -1)).
Compute deviceHash[0..19] as the SHA hash of KeyID || GroupID || DeviceID.
Return 0x00000000 || ((deviceHash[16..19] AND AND_MASK) XOR XOR_MASK).
「||」は連結(concatenation)を示し、「0x」は、以下に続くものが32ビット16進数値であることを示し、「<<」は左シフト演算を示し、「−」は減算を示し、「AND」はビット単位の論理ANDを示し、「XOR」はビット単位の論理排他的ORを示すことに留意されたい。
異なる種類のキーが含まれることに留意されたい。例えば、キー0およびキー101ないし127は、一意にデバイスに割り当てられるようになる。反対に、キー1ないし31は、同じグループ内のデバイスのデバイスの次第に大きいセットの間で共有されるようになる。キー32ないし63は、複数のグループの間で共有される。最後に、キー64ないし99は、デバイスの様々な(この場合、擬似ランダム)サブセットの間で共有される。キー100は、同じデバイスIDを有する異なるグループにわたって複数のデバイスにより共有される。
デバイスキーが十分に保護されることは重要である。例えば、デバイスの実際のキーをメディア上に配置することは、タイトルのセキュリティが危殆化された場合、プレイヤのキーを危殆化させるおそれがある。同様に、デバイスキーをコンテンツパブリッシャに提供することは、コンテンツパブリッシャが危殆化されるようになる状況においてキーを危険にさらす可能性がある。これらのリスクに対処するため、本発明は、コンテンツを準備し、かつ暗号化するエンティティが信頼できることを必要としない。例えば、キー管理局はサービスを提供することができ、それにより、任意のパーティがプレイヤキーのセットおよび1つまたは複数の入力値を識別できる。それに応じて、このキー管理局は、識別されたキーの各々によって指定された入力を復号化(または暗号化)した結果を提供することができる。代替として、コンテンツパブリッシャは、その選択の平文/暗号文のペアを提供することができる。いずれの場合も、コンテンツを作成するパーティは平文/暗号文のペアを得ることができるが、キー自体を得ることはできない。次いで、安全なメディアを作成する際に、これらのペアを使用することができる。
例示的メディアの作成には以下のステップが含まれる。(a)コンテンツパブリッシャが、いずれの失効したプレイヤにも知られていないプレイヤキーのセットを定義する、ただし各有効なプレイヤはそのセット内の少なくとも1つのキーを含む、(b)コンテンツパブリッシャが任意の平文値を選択する、(c)コンテンツパブリッシャが、所望の平文値を選択されたセット内のキーの識別と共にキー管理局に安全に送信する、(d)キー管理局が、この平文値が以前に別のパーティによって提供されていないことを検証する、(e)キー管理局が、要求されたセット内の各プレイヤキーを導出し、各キーを使用して、平文値を暗号化する、(f)キー管理局が、結果として生じる暗号文をコンテンツパブリッシャに提供する、(g)コンテンツパブリッシャがコンテンツの一部分(または、あるコード、キーもしくは他のデータ)を平文値により暗号化する、および、(h)コンテンツパブリッシャが、暗号文リスト、および、コードを実行するプレイヤがセット内のいずれかのキーを含むかどうかを識別するように構成される対応するコードと共に、暗号化されたコンテンツをメディア上に格納し、コードを実行するプレイヤがセット内のいずれかのキーを含む場合は、プレイヤ内のキーIDを決定し、キーIDに対応する暗号文を暗号文リスト内で探し出し、例えば、ソースデータとしての暗号化されたコンテンツ部分と、キーパラメータとしての暗号文と、および、選択されたキーIDとをもってTRAP_Aesを呼び出すことによって暗号化されたコンテンツ部分を復号化する。コンテンツコードは次いで、復号化された結果をコーデックに提供し、またはそうでない場合はこのデータを必要に応じて使用することができる。
代替実施形態は、以下に限定されるものではないが、複数のレベルの復号化オペレーションを使用でき、暗号化結果をフォレンシックマーキングおよび他のオペレーションと統合でき、複数のキー局を使用でき、セキュリティコードまたは他のプロセスを使用して、値(キー、平文、暗号文など)をさらに保護または処理できる。
公開キー暗号技術が使用される場合、キー管理局はプレイヤの公開キーを提供(または発行)することができる(または、識別ベースの暗号技術を使用して、キーリストを不必要にすることができる)。キーにデジタル署名するため、キー管理局は、参照署名(例えば、メッセージ/署名のペア)をコンテンツコードによる使用のために提供することもできる。(例えば、KeySelectorなどのオペレーションを、キーペアを生成するために使用される強力なPRNGのためのシードとして使用し、キーをランダムに生成して割り当てることなどによって、)公開/秘密キーをデバイスの複数のグループの間で共有することができる。
言うまでもなく、上記の役割を複数のパーティの間で分割することができる。例えば、キー管理局は、集中失効リスト(centralized revocation list)を管理し、どのキーが有効でありどのキーが有効でないかをコンテンツパブリッシャが判断することを不要にすることもできる。同様に、コンテンツパブリッシャはセキュリティ関連タスクを(キー管理局を含む)他のパーティにアウトソースすることができる。
プレイヤキーを導出するための上記の例示的プロセスは、決定論的である(deterministic)。他の実施形態は、キーをランダムに生成することを含む場合があり、他の技術を使用する場合がある。キーを導出するために使用されるオペレーション(例えば、AES暗号化)は例示的であり、他のオペレーション(MAC、公開キーオペレーション、他のアルゴリズムなど)で代用される場合がある。
(バージョニング)
コンテンツがデコードされるとき、通常は(a)コンテンツがプレイヤよりも古くなるか、または(b)プレイヤがコンテンツよりも古くなるかのいずれかである。両方の場合、プレイヤがすべての必要とされるTRAP(必要な暗号化キーのいずれをも含む)を正しく実装し、コンテンツに関連付けられたコードによって実装されるセキュリティルールを満たすならば、再生は正常に発生すべきである。言うまでもなく、コンテンツコードが不十分に書かれる場合、プレイヤに欠陥がある場合、または、重大なセキュリティの問題が作成後に生じている場合、再生は自動的に正常に機能しない場合がある。
コンテンツコードが正当なプレイヤ上で正しく再生されていない状況に対処するため、(例えば)プレイヤをディスク固有のセキュリティオーバーライドキーについてチェックし、キーが発見される場合、そのキーを使用して、1つまたは複数のセキュリティチェックまたは正常に実行されるであろう他のオペレーションを回避するコンテンツコード部分を復号化するように、コンテンツが作成される場合がある。この「回避」ロジックをメディア上で、暗号化された形式で保持し、復号化キーが実際にリリースされない限りこれを使用することができないことを確実にすることができる。オーバーライドキーが必要とされる場合、そのオーバーライドキーは、例えば、プレイヤの不揮発性メモリ内に(例えば、暗号化された形式で)格納され、ネットワークを介して検索され、TRAPを介してアクセスされる場合などがある。セキュリティに影響を及ぼすこと(ディスプレイ制限によりプレイヤのためのグラフィカルメニューを使用できなくすることなど)のない手段は、ユーザによって構成可能であり、安全な認証を必要としない。
セキュリティ障害またはリスクが検出される状況にユーザが対処できるように、コンテンツコードを構成することもできる。例えば、モデム、インターネット接続、または他のデータチャネルが使用可能である場合、コンテンツは認証サーバと通信して、アップデートされたセキュリティコードを得ることができ、および/または、再生を進めるための許可を得ることができる。アクティベーション値を提供する自動の通話料無料電話サービスにユーザが提供することができる、コードを表示する(または、可聴的に再生する)こともできる。(このサービスは、例えば、音声認識システムを使用することによって、DTMFトーンを検出することによって、または、ユーザのスピーカから受話器に伝送された音を検出することによって、電話を介して情報を受信することができる。同様に、情報を、キーボード入力のためにユーザに返すこと、受話器からプレイヤ上のマイクロフォンに伝送することなどができる。)コンテンツコードによって応答を検証し(例えば、デジタル署名、MAC、難読化されたチェックサムなどをチェックすることによる)、および/または、後続の暗号化処理において(例えば、キーとして)応答を使用することができる。チャレンジ/レスポンス認証結果をフォレンシックマーキングと共に使用して、例えば、特定のユーザまたは識別子まで遡ってコピーをトレースすることを可能にすることができる。例えば、アクティベーション値が一意であり、フォレンシックマークに含まれる場合、コンテンツ所有者はフォレンシックマークを使用して、復旧された海賊コピーを、所与のアクティベーション値を作成したトランザクションまで遡ってトレースすることができる。したがって、コンテンツ所有者が、アクティベーション値を提供することに先立って、ユーザについての情報(例えば、ANIを使用する発呼者の電話番号または発呼者のID、名前、クレジットカード番号など)を得ることは、有用である場合がある。アクティベーション値はプレイヤの不揮発性メモリ内に格納される場合がある(例えば、将来の使用のため、および、他のタイトルによる使用のため)。
(メディアのエンコードおよびデコード)
例示的実施形態では、コンテンツコードは、メディアからデータを読み取り、そのデータをデコードするために必要とされるパラメータを(TRAPを通じて)指定することができる。光メディアから読み取られたセクタの実際の処理には、以下のいずれかまたはすべてが含まれる場合がある。
・セクタデコードパラメータが光ドライブ(または、セクタデコードの一部または全部を実行することを担う他のコンポーネント)に提供される。
・ドライブが、要求されたデータに対応する生データ(例えば、セクタ)を読み取る。実際のロードには、セクタ識別子(または、他のアドレッシング情報)を使用してメディア上のデータを探し出し、次いで実際に適切なデータをメディアからロードすることが含まれる場合がある。ドライブはまた、ロードされたデータと共に含まれた、暗号化されていない部分(ナビゲーションフィールドなど)を除去または処理することもできる。
・エラー訂正が生セクタデータに適用される。エラー訂正プロセスは、調節可能な多項式または他のパラメータを含む場合がある。コンテンツコードはまた、例えば、これらのオペレーション自体を実行することを望む場合、エラー訂正および/または検出を無効にすることもできる。
・復号化または他の暗号化変換もまたエラー訂正と共に含まれる場合があり、ECCの前に実行される場合があり、および/または、後で実行される場合がある。エラー訂正されていないデータ上に適用される復号化プロセスは、エラーを伝える(propagate)ことを回避するように選択される場合がある。例えば、ストリーム暗号(例えば、カウンタモードにおけるRC4またはAES)による復号化が、ビットエラーの訂正に先立って実行される場合がある。復号化(または他の処理ステップ)が、ドライブ、コンテンツコード、コーデック、ドライバ、または他の任意のコンポーネントによって適用される場合がある。
復号化プロセスはまた、一方向プロパティを有するように選択される場合もあるが、これは、例えば、敵対者が、記録された出力を使用して、他のデコードパラメータにより作成されていたであろう出力を計算することができるようにすることを防止するためである。例えば、ドライブはコンテンツ指定(content-specified)のキーを使用して、160ビット(または他のサイズ)の(ドライブによって返されない)リードイン値(lead-in value)のHMAC−SHAとして、各セクタのキーを計算することができる。リードイン値を知らなければ、敵対者は、既知のコンテンツ指定のキーを使用して作成された復号化された出力を、他のコンテンツ指定のキー値を使用して作成されていたであろう出力に変換することはできない。結果として、敵対者は、(例えば、ハードドライブおよび悪意のあるデバイスドライバを使用して)メディアをコピーするために必要とされる、またはメディアをエミュレートするために必要とされる情報を欠く。敵対者が、特定のキー値のためのデコードされたセクタ表現を格納することは可能となる一方で、コンテンツコードが、対応する出力が知られていないキーを使用するセクタを要求するときは常に、コピー/エミュレーションは失敗する。例えば、256ビットキーについて2^256など、デコードキーの総数を極度に大きくすることができるので、敵対者がすべての可能なセクタデコードを格納することは不可能である。コンテンツコードは、様々な組合せの要求を実行し、それらの一部について、ロードされた実際のデータを使用し、かつチェックすることができる。
プレイヤ(または他のコンポーネント)は、非対称暗号化変換をセクタデータ上で実行することができる。例えば、ブロック署名を使用して、敵対者が許可なく新しいタイトルをマスタリングすることを防止することができる。一実施形態では、公開キーは、ドライブに埋め込まれた(が、メディアから得られる、証明書から抽出されるなどの可能性もある)2048ビットのRSAモジュラスからなる。署名検証オペレーションの効率を高めるために、RSAモジュラスは、正確な2の累乗に近づくよう、例えば、「1」に等しい最上位の128ビットを有して、生成される。メディアをマスタリングする間、各ブロック(例えば、セクタ)は最初に、セクタデータと、メディアIDのSHAハッシュ、ブロックのアドレスおよびブロックデータを使用してストリーム暗号をシードすることによって作成されたキーストリームとを排他的ORすることによって、ランダム化される。ブロックデータは次いで、256バイト(2048ビット)チャンクに分割され、これらのチャンクは各々、RSA秘密キーを使用してチャンク上でモジュラ指数計算(modular exponentiation)を実行することによって、デジタル署名される。署名付きチャンクは、SHAハッシュと共に記録される。よって、このブロックは20バイト分拡大される(ブロックが2048バイトセクタである場合、1%未満)。ストリーム暗号が効果的にランダム化するならば、この確率は無視することができるほど小さく(約2^(−128))、モジュラ指数計算入力は公開モジュラスより大きくなる。結果として、この場合には特別な処理は必要ではない。対応する検証およびデコードプロセスは、データブロック(例えば、セクタ)がメディアから読み取られ、デコードされるときに実行される。このプロセスには、(a)256バイトチャンクおよびSHAハッシュを読み取ること、(b)公開モジュラスおよび公開指数(例えば、3)を使用して、モジュラ指数計算オペレーションを各チャンク上で実行すること、(c)例えば、チャンクと排他的ORされるキーストリームを計算するために含まれた、ロードされたSHAハッシュ値を使用することによって、ランダム化プロセスをリバースすること、(d)メディアID、ブロックアドレス、およびブロックデータをハッシュすることによって、ならびに、その結果と、ロードされたハッシュ値とを比較することによって、デコードされたデータの完全性(integrity)を検証すること、および、(e)これらのハッシュが合致する場合、デコードされたデータブロックを返し、これらのハッシュが合致しない場合、エラーが返されることが含まれる。パフォーマンスが問題である場合、検証を確率的に(例えば、ランダムに選択されたセクタ上で)、および/または、より重要なデータを含む領域上でのみ、実行することができる。
記録可能メディアに書き込む(または、複製のためにマスタを作成する)とき、記録デバイスは、暗号化一方向関数(SHA、HMAC−MD5、AESを使用して構築された一方向関数など)を使用して、それが変換する値を受信することができ、メディア上の特別な位置に書き込む(下記参照)。このように、敵対者は正しい入力(例えば、ハッシュプレイメージ)を知るようにならないので、正当な記録機器を使用してメディアをコピーすることはできない。他の認証値(デジタル署名など)もまた格納される場合がある。セキュリティ値は、メディアの任意の部分(またはすべて)に適用可能である場合がある。
メディアセキュリティ値は通常のデータとして格納される場合があり、または、直接の読み取りからの追加の保護を含む、および/または、特別にエンコードされる、「特別な」領域に格納される場合がある。セキュリティデータの量を比較的小さくすることができるので(例えば、128ビット以下)、比較的低い密度およびパフォーマンスを有するストレージ技術が使用される場合がある。例えば、光メディアのピットエンコードまたはトラック位置(「ウォブル」)において、データは様々な形でエンコードされる場合があることが知られている。データはまた、通常はエラー訂正のために予約された冗長ビット内、セクタ期間におけるバリエーション内、ナビゲーションフィールド内に隠される場合もある。データはまた、異なる物理的ディスク位置の上で(例えば、標準可読領域(normally-readable)の内側もしくは外側で、または、異なる焦点深度で)エンコードされる場合もある。
メディア上のデータには、インジケータビット、ピットエンコードバリエーション、または、所定の処理またはセキュリティステップがデータに関連して実行されるべきであるかどうかを示す他のマーカーが含まれる場合がある。例えば、セクタセキュリティフラグを使用して、そのセクタに含まれるデータが公開キーと共に変換されるべきであり、および/または、最初に受信された暗号許可をドライブが有する場合にのみ、そのセクタに含まれるデータがリリースされるべきであることを、示すことができる。(このような許可には、セクタコンテンツのSHAハッシュを必要とすること、メディアがマスタリングされたときに、キーが失効されなかった受信者により、成功したチャレンジ−レスポンス認証を実行すること、データのリリースを許可するデジタル署名を検証すること、セクタを正しくデコードするキーを受信することなどが含まれる場合があるが、これらに限定されるものではない。)データにマークを付けて、データが暗号化された形式でのみリリースされるようにすることもできる(これは、パーソナルコンピュータ、および、信頼できないバスまたはチャネルを介してデータが移動する場合のある他のシステムにおいて、特に重要である)。
上記の例示的実施形態は主として、光メディアに関して説明されたが、類似の技術を、磁気メディアなどの他のメディアタイプに適用することができる。ソリッドステートメディア(EEPROM/フラッシュメモリなど)、および、メディア自体が計算を実行することができる他のストレージ技術では、メディアは暗号化処理自体を実行することができ、また、ドライブ、プレイヤアプリケーションなど(これらもまたインタープリタを有する場合がある)と通信するセキュリティインタープリタを内部に含むこともできる。メディアは、圧縮されたコンテンツ(例えば、高精細度の映画では約30ギガバイト)を実際に格納するために必要な不揮発性メモリの量のみを含むことのみが必要であるが、メディアは、暗号技術または他の技術を使用して、非常に大きい(例えば、2^256バイト)「仮想」または「エミュレートされた」アドレス範囲を作成することができる。このアドレス範囲が作成される場合、敵対者が完全な海賊コピーを作成することはできなくなる。なぜならば、アドレス範囲全体を格納すること(または、読み取ることさえ)は実行不可能であり、アドレス範囲の諸部分がどのように実際に使用されるようになるかを敵対者が決定するための汎用の方法がないからである。例えば、各再生において、コンテンツコードは、異なる領域が使用されることを要求することができる。この汎用的な手法を、メインプレイヤアプリケーションがプログラマブルではないが、メディア(または、メディアドライブ/インターフェース)がプログラマブルである状況においても、使用することができる。
(条件付きアクセスキーストリームフォレンシック)
有料テレビ受信器は一般に、すべてのセキュリティクリティカルなコンポーネント(security-critical component)をスマートカードまたは他のリムーバブルデバイスに入れるという目的をもって設計されるので、スマートカードを取り替えることによってセキュリティ障害に対処することができる。通常、取り替え可能なモジュールは、復号化キーを導出するために使用され、これらの復号化キーは、セットトップボックス内に含まれる汎用復号化回路に提供される。従来の実施態様の主な欠陥は、敵対者が出力を、許可されたデバイスから記録し、キー(および他の任意の必要とされたデータも)を無許可のデバイスに再送信することができたことである。関連した攻撃には、ビデオ自体を記録および再送信することが含まれる。
このような攻撃をトレースすることは、非常に困難であるか、または不可能である可能性がある。例えば、海賊行為者が危殆化したコンピュータを使用して、キーおよびデータを無許可の視聴者に、インターネットを介して匿名でリレーすることができた。UDPパケットにおいて、偽造された「from」アドレスでキーを送信し、トレーシングを大変困難にすることができる。システムオペレータは、海賊サービスに登録することによって、無許可のデータへのアクセスを受信することができるが、攻撃のソースをトレースする方法はない。他の状況では、データのトレーシングは実用的である場合があるが、ソースは、法執行機関が権限を有さない区域に位置する場合がある。
現在のシステムでは、ビデオを復号化するために使用される一連の復号化キー(ならびに、復号化されたビデオ自体)は、各サブスクライバについて同一である。これらのキーは(例えば、条件付きアクセススマートカードからビデオデコーダチップへ)移送され、デバイス固有のキーにより暗号化されるが、実際のビデオ復号化キーはなおグローバルである。結果として、あるセットトップボックスを危殆化またはリバースエンジニアリングし(それらの設計はしばしば完全に標準化されるので、これは必ずしも大変困難ではない)、正当にサブスクライブされたアカウントを有する敵対者は、一連のビデオ復号化キーを決定および再送信することができる。この攻撃は通常、実際にセキュリティモジュール自体を危殆化させることを必要とはせず、セキュリティモジュールの置換が効果的な対策とならないようにする。
このような攻撃に対処するため、システムオペレータは、敵対者によって、再送信されているキーおよび他のデータを抽出するために使用されている特定のアカウント(、および、したがってセキュリティモジュール)を識別することが必要である。このアカウントが識別された後、システムオペレータは、このアカウント、および、任意の関連アカウント(例えば、同じ電話回線に接続されたデバイスからのアカウント、同じ請求先住所を共有するアカウント、物理的位置が近いアカウント、同じクレジットカードまたは他の支払い手段により支払われたアカウントなど)を取り消すことができる(例えば、敵対者のセキュリティモジュールによって利用することができる形態でアクセスのために必要とされたキーを送信することをやめることによる、敵対者のセキュリティモジュールを一時的または永続的に使用できなくする暗号化されたメッセージを無線で(over the air)送信することによる、など)。
この識別を実施するため、システムのオペレータは各セキュリティモジュールによって出力される実際の一連の復号化パラメータ内にフォレンシックマーキング情報を組み込む。
一実施形態では、条件付きアクセスモジュールは、従来の復号化キーを、ビデオデコードに先立ってセットトップボックスによって復号化された平文に適用されるべきバイト代替(byte substitution)と共に出力する。ビデオシーケンスを作成するとき、システムオペレータは、バイト置換(byte replacement)が、受け入れ可能なバリエーション(ポリモーフ(polymorph))を作成することができる、ビデオストリーム内の複数の位置を識別する。加えて、有効な(すなわち、快適に視聴できる)ビデオストリームを形成するためにバイト置換が必須であるように、ビデオストリーム内の一部のバイトは破損される。正当にサブスクライブされた条件付きアクセスカードは、視聴可能なストリームを再作成するために必須のバイト代替の十分なセットを含む、一意の組合せのバイト代替を出力するように構成される。各モジュールは一意の組合せの代替を出力し、単一のデバイスに返された、再送信された出力と照合することを可能にすることができる。代替実施形態では必ずしもバイト代替を使用する必要はなく、任意の方法の変換を条件付きアクセスモジュールによって指定することができる。これらの変換には、加算、排他的OR、ブロック移動、削除、挿入、ビット反転、および、より複雑なオペレーション(インタープリタまたはマイクロプロセッサ、デコードデバイスによって実行されるべき実際のコードを指定することを含む)が含まれるが、これらに限定されるものではない。
上述の方法はセットトップボックスにおけるサポートを必要とし、したがって、多数のレガシーシステムと共に使用することはできない。レガシー環境では、2つの異なるキーイング状態(keying state)の各々において解釈されるときに、有効であるストリームをコンテンツプロバイダが構築する(assemble)、異なる実施形態が必要とされる場合がある。
コンテンツプロバイダは、2つの異なるキー(またはキーイング状態)の各々により復号化されるとき、受け入れられるようにデコードするビデオストリーム部分を構築する。既存の衛星またはケーブルテレビシステムは通常、ビデオの部分(10秒セグメントなど)の各々を異なるキーにより暗号化する。本発明では、1つまたは複数のセグメントが作成され、これらのセグメントを複数のキーによりデコードすることができる。
一実施形態では、ビデオ圧縮プロセスは、圧縮されたビデオデータの初期ブロックに対する複数の受け入れ可能な修正を識別するように修正される。次に、このブロックは第1のキーにより暗号化され、第1のキーにより復号化するセットトップボックスへの送信のために適切となる暗号文が作成される。次に、このブロックは第2のキーにより暗号化される。結果として生じる平文もまた、第2のキーによりキーが付けられたデバイス上で受け入れ可能な出力にデコードするようになる場合、このブロックは保存され、このプロセスは後続の各データブロックごとに繰り返される。第2のキーによる復号化が、暗号文は、第2のキーによりキーが付けられたデバイス上での受け入れ可能なストリームの形成の影響を受けにくいことを示す場合、開始ブロックのための新しい値が試される。十分な試行により、システムオペレータは、2つの(または場合によってはより多くの)キーの各々により復号化することができるビデオストリームを徐々に構築することができるようになる。各キーを使用することで得られるビデオの品質は、費やされた計算の試行、ブロック候補を選択するために使用された技術、使用されたビデオ圧縮技術、参照ビデオ、および他の要素によって決まる。
より計算効率の高いエンコード方法もまた可能である。例えば、大部分のビデオ圧縮スキーム(MPEG−2を含む)においては、フィールド(コメントフィールドなど)を使用して、各キーを使用して暗号化されるデータ領域を交互配置する(interleave)ことができる。この技術は通常、ビデオデータのサイズを増大させるが、計算効率を高くすることができ、出力品質を低下させない。
例示的ビデオストリームは、従来のようにエンコードされたデータ(例えば、単一のキーにより暗号化されるか、または暗号化されないデジタルビデオおよび/またはオーディオ)が、キー変化が期待される位置まで移動することで開始する。キー変化信号が次いでエンコードされる。(a)第1の復号化キーを使用して、圧縮されたビデオストリームの次の8バイトのための適切な値へ復号化するように、および、(b)第2の復号化キーを使用して、(例えば、MPEGコメントを開始することによって)後続のバイトを無視するよう圧縮解除デバイスに命令するか、またはそうでない場合は、後続のバイトに、圧縮解除された出力に対して比較的わずかな影響しか及ぼさないようにさせる、ビットシーケンスに復号化するように、キー変化後の第1の暗号文ブロックは選択される。これらのプロパティを有するブロックを発見するため、圧縮デバイスまたはプロセスは(例えば)、最初のキーを使用して復号化する際の所望の平文をもって開始し、次いで、第2のキーによっても適切な結果を出すキーのペアが発見されるまで、第1および/または第2のキーのためのランダムな値を試す。
(a)暗号文が、第1のキーにより復号化された、圧縮されたビデオを生成するように、および、(b)第2のキーにより復号化されるときに暗号文が無視される(または、比較的少ない試行で処理される)ように、ストリームの後続の部分は生成される。ビデオデータを第1のキーにより暗号化することによって、および、(必要な場合)結果として生じるデータを第2のキーにより復号化して、この結果が適切である(例えば、時期を早めてMPEGコメントを終了させない)ことを検証することによって、このストリームを準備することができる。平文にわずかな調整を施し、かつ、不適切な平文が生じる任意の状況(例えば、時期を早めてデータを無視することを終了するようになるか、または、不適切な長さを伝送するようになるか、またはそうでない場合は、不正なストリームを作成するようになるか、または、ストリームの不快な割り込みを引き起こすようになるなど)を改善することを繰り返し行うことが、必要である場合がある。最終的に(MPEGコメントの終了が近づきつつあるとき、第1のキーにより暗号化されているビデオブロックがほとんど完了するときなど)、暗号文ストリームは、第1のキーにより復号化されるときに、圧縮解除プロセスにデータの無視を開始させる、データを含むことができる。この時点で、またはその後間もなく、第2のキーによる「データ無視」状態は終了し、第2のキーにより復号化されるときに有効な圧縮されたビデオを生成するが、第1のキーにより復号化されるときには無視される暗号文をもって、ストリームは継続する。キーの一方により復号化するときに圧縮されたビデオを生成し、他方により復号化するときにコメントデータを生じる、データのセグメントを互い違いにしながら、ストリームは継続する。最終的に、(例えば、ストリーム内に存在するキー変化通知のために)キー変化が引き起こされ、通常のビデオに戻るか、または、新しいキーのペアにより復号化することができるビデオの新しいセグメントを開始する。
敵対者が、キーシーケンスの再送信のみを行っている場合、これは、2つの復号化結果が、圧縮解除されるときに同じビデオを生成する場合、受け入れ可能である場合がある。しかし、敵対者が、圧縮解除されたビデオを再送信中である場合、キー値の各々により圧縮解除することによって作成されたビデオシーケンスは異なるべきである。
代替実施形態は、3つ以上のキーにより正しく復号化することができるか、または、複数の暗号化アルゴリズムを使用して(同じかまたは異なるキー値により)デコードすることができる、データを含むことができることに留意されたい。サポートされる復号化アルゴリズムの例には、DES、AES、トリプルDES、DVBブロック暗号、IDEA、いずれかのモード(CBC、ECBなど)におけるいずれかの他のブロック暗号、RC4、SEAL、いずれかの他のストリーム暗号などが含まれる場合があるが、これらに限定されるものではない。暗号化をセットトップボックス上で無効にすることができる実施形態では、暗号化無効状態をキーイング状態として使用することができる(例えば、送信されたデータを、送信された形式において有効なビデオとしてうまく解釈することができる状態、および、適切なキーにより復号化されるときも)。システムオペレータは、圧縮されたビデオシーケンスまたはシーケンス内で使用可能な部分(有用な暗号文ブロックおよび対応するキーなど)を事前計算することができる。ストリームをリアルタイムで、または前もって構築することができる。例えば、共通のシーケンスのためのビデオ(全黒表示など)を、事前計算し、挿入することができる。キーチェックがデコードデバイスによって実行される場合、システムオペレータは、同じキーチェックを同時に通過することができる複数のキーを探し出すための検索を実行する必要のある場合がある。バースディパラドックス(birthday paradox)を利用する衝突検索技術(collision searching technique)を使用して、このような検索を簡素化することができる。
ビデオストリームのために必要とされる帯域幅は通常、上述のようにエンコードされたビデオセグメントでは増大するが、トレースされる必要のある海賊攻撃が進行中であると思われる状況に使用を制限することによって、帯域幅全体にわたる影響は最小限にすることができる。敵対者が、本発明がアクティブである状況においてビデオセグメントを識別し、削除しようと試みる場合(例えば、ストリーム内で無視されたデータ量を解析することによる)、類似の特性を通常の(マークが付いていない)領域に入れて、攻撃者を混乱させるための「レッドへリング(red herring)」を作成することができる。
未使用ビット(シングルDESまたはトリプルDESキーに通常は含まれるパリティビットなど)と共に暗号を使用するシステムでは、フォレンシック情報をこれらのビットに含めることができるが、敵対者がキーを再送信することに先立ってこれらのビット内の値を上書きすることができる場合、この手法の効果は制限される場合がある。
デバイス上で適切なキー値を導出するために使用されるロジックは、セキュリティデバイスに内部で実装されるべきである。キー導出は、無線で(例えば、暗号化された形式で、および、ビデオまたは他のコンテンツと混ぜられて)受信されるソフトウェアおよび/またはルールを使用して、実行される場合がある。例えば、複数の方法で復号化することができるブロックを送信することに先立って、視聴ベース(viewing base)の所定のサブセットが各キーを有するように、システムオペレータはキー(またはキー暗号化キー)を(個々に、および/または、グループで)送信することができる。これらのキーを使用して、各デバイス上で適切なビデオキーを復号化、またはそうでない場合は導出することができる。サブセットはランダムに選択される場合があり、および/または、地理的位置(例えば、ローカルテレビチャネルを送信するためにも使用されるスポットビーム衛星信号を受信する能力、ケーブルネットワーク内の位置などに基づく)、サブスクライバID、電話番号、1つまたは複数のキーの知識、デバイスタイプ、または、他の任意の特性(または特性の組合せ)に基づくようにされる場合がある。実行可能コードはまた、キー導出/選択を支援する(またはこれらを実行する)ために、(任意で、リアルタイムで)導出される場合もある。
悪意をもって再配布されたキーおよび/またはビデオのソースをトレースするための例示的実施形態に含まれる特定のステップおよびコンポーネントには、以下のいずれかまたはすべてが含まれ、これらのステップおよびコンポーネントはいかなる順序でもよい。(a)2つの異なるキーイング状態の各々により復号化されるときに、少なくとも2つの異なる平文を生成し、ただし、有効な圧縮されたコンテンツストリームの一部として各平文を正しくデコードすることができる、圧縮された、暗号化されたビデオの部分を作成すること、(b)制御データを複数の条件付きアクセスデバイスに送信することであって、ただし、前記制御データは、前記条件付きアクセスデバイスの各々に前記少なくとも2つのキーのうちの1つを出力させるように構成されること、(c)前記キーの1つ(または複数)を含むか、または、前記キーの1つ(または複数)に対応する、前記悪意のあるソースによって再送信されたキーおよび/またはビデオ(および/または他のデータ)を受信すること、(d)どのキーが、悪意をもって送信されたデータに含まれるか(または、悪意をもって送信されたデータを作成するために使用されたか)の知識を使用して、例えば、悪意のあるソースが、受信されたキー(またはビデオ)を導出することができるデバイスを有することを推論することにより、悪意のあるソースのセキュリティモジュールについての情報を得ること、(e)海賊グループについてのさらなる知識を使用して、少なくとも1つの悪意のあるデバイスが識別されるまで、上記のステップの一部または全部を繰り返すこと、および、(f)例えば、「キル(kill)」メッセージを送信することによって、または、将来のキーを与えないでおくことによって、前記悪意のあるデバイスを無効にすること。
上記の実施例は、主としてオーディオビジュアルコンテンツのビデオ部分に関連して説明されるが、同じ技術はオーディオおよび他の種類のコンテンツにも同様に適用可能である。
(攻撃および対策の実施例)
このセクションでは、一部の例示的攻撃および対策を説明する。
敵対者は、オーバーレイベースのフォレンシックマークが出力に埋め込まれないように、プレイヤのオーバーレイ機能を無効にしようと試みる場合がある。この攻撃に対する1つの対策は、コンテンツ所有者が、圧縮されたオーディオビジュアルデータストリームにマークを直接埋め込むことである。
敵対者は、フォレンシックマークを除去するために、複数のデバイスからの出力を比較し、かつ結合しようと試みる場合がある。例えば、デバイスの出力が異なる位置において、敵対者は、ビデオを結合し、ビデオを削除/品質低下させ、確率論的に(probabilistically)バリアントを選択し、最も一般的なバリアントを選択し、または、他の技術を使用して、トレースがより困難であるコピーを作成するように、試みる場合がある。共謀者の数がかなり少ないことが知られている場合、マーク復旧プロセスは、各マークを使用することによって、共謀者を識別することができ、復旧されたマークを出力することがグループのどのメンバーにもできていなかったであろう、いかなる共謀者のグループも排除する。コンテンツプロバイダはまた、フォレンシックマークを(平均化および選択を困難にする)多数の異なるバリアントと共に含めることもできる。目立つフォレンシックマークを使用して、悪意のある攻撃によって引き起こされた品質低下または難読化に対する強化された耐性を得ることもできる。必要な場合、後続のコンテンツは、改良されたフォレンシックマーキング技術により作成されることが必要である場合がある。コンテンツ所有者はまた多数のマークを埋め込むことができ、個々のデバイスによって埋め込まれたシーケンスと、復旧されたコピーとの間の相関を探すこともできる。
敵対者は、正当なプレイヤをエミュレートしようと試みる場合がある。関連する攻撃には、(悪意のあるものと思われる)誤った方法で動作するよう正当なプレイヤ内のインタープリタを変更することが含まれる。この場合、正当なプレイヤとエミュレーションの間の差異(これには、文書化されていないオペレーション、ネイティブコードサポート、タイミング/パフォーマンス、暗号化キーなどが含まれるが、これらに限定されない)を使用して、正当な環境と悪意のある環境とを区別することができる。例えば、ネイティブコードプレイヤアップデートを、脆弱性を是正するために利用することもできる。
敵対者は、コーデック、デバイスドライバ、ディスプレイ/スピーカデバイス、または、圧縮解除の直前または直後のいずれかにおいてコンテンツを受信する他のコンポーネントを危殆化させることによって、デジタルコンテンツを抽出しようと試みる場合がある。同様に、これらまたは他のコンポーネントの悪意のあるバージョンが挿入される場合がある。このような攻撃に対応するため、将来のコンテンツは、出力デバイスを認証することによって、および、危殆化されたデバイスにコンテンツを提供することを拒否することによって、対応することができる。コンテンツは、セキュリティアップグレード(ネイティブコードパッチなど)を脆弱なデバイス、または未知のデバイスに配信することができる。フォレンシックマーキングもまた、このように危殆化されたコピーをトレースするために使用される場合があり、フォレンシックマーキングは心理的および合法的な抑止力、ならびに、失効させるための海賊行為者のデバイスを識別する方法を提供する。
敵対者は、すべてのTRAPオペレーションへの入力および出力を「事前記録」し、悪意のあるインタープリタによりこのデータを使用しようと試みる場合がある。ネイティブコードを使用して、必要とされるストレージの総量を過剰にすること、フォレンシックマーキングを使用して危殆化をトレースすること、または、オリジナルデバイスのセキュリティをアップグレードすることなどの多数の方法によって、この攻撃を防止することができる。ソースデバイスが実際に危殆化されない(例えば、それが悪意のあるコンテンツコードを実行中である)場合、プレイヤ暗号化オペレーションを使用して、プレイヤが実際に、署名が付けられている、復号化されているなどのコンテンツコードを実行中であることを、確実にすることができる。
悪意のある敵対者は、セキュリティチェックを回避するように意図された方法で誤って動作する、悪意のあるインタープリタを作成しようと試みる場合がある。特定の例は、悪意のあるインタープリタが、例えば、予想される計算上の中間物を検索し、これを置換することによって、コンテンツコードに無効なRSA署名を受け入れさせようと試みる場合である。このような攻撃を防止するために、プレイヤは、単に(nを法として)署名を3乗し、期待値に対して比較するという計算以外の計算を使用して、署名を検証することができる。例えば、コンテンツコードは初期値で乗算をし、次いで、結果が、期待値と初期値の3乗倍にしたものとが等しいことを検証することができる。署名を検証するもう1つの方法には、定数を署名に加算し、次いで、結果が正しいことを検証することが含まれる。署名検証コードを他のオペレーション(対称暗号化キーの修正など)と組み合わせて、結果として生じる暗号値が、署名が有効である場合にのみ正しくなるようにすることもできる。自己書き換えコード、コード難読化技術、ネイティブコード、および、他の任意の対策もまた、必要に応じて使用することができる。
敵対者は、悪意のあるファームウェアをメディアインターフェース(光ディスクドライブなど)に挿入しようと試みる場合がある。コンテンツコードに自己チェックを実行させてそれ自体を認証させ、データがメディアから正しくロードされることを検証することによって、この攻撃を検出することができる。ネイティブコードおよび/またはインタープリタコードをドライブによって実行して、この攻撃を検出することもできる。コンテンツはまた、攻撃によって変更されるであろうデータを含むこと、および、それが変更される場合を検出することによって、この攻撃を検出することもできる。
敵対者は、例えば、データを正当なメディアからではなく、ハードドライブ上のファイルからロードする、悪意のあるデバイスドライバを使用することによって、セキュリティ機能を含むメディアをエミュレートしようと試みる場合がある。ドライブが有効な暗号化キーを有することを検証することによって、この攻撃を検出し、防止することができる。敵対者が、キーを正当なドライブから抽出する方法を発見する(、それにより、悪意のあるエミュレータが、正当なドライブの暗号化オペレーションをエミュレートすることができるようになる)場合、追加のドライブ認証ステップ(ドライブのためのネイティブコードの提供、タイミングチェック、非標準機能性のためのテストなど)が実行される場合がある。加えて、(例えば、TRAP_DeviceDiscovery、ネイティブコードなどを使用して、)悪意のあるデバイスドライバを検出することができる。
敵対者は、特定のタイトルのセキュリティコードにおける脆弱性を不当に活用しようと試みる場合がある。いくつかの対策が可能である可能性があるが(例えば、アップデートされたセキュリティロジックを配信することによる)、主な解決策は、コンテンツ作成者が、将来のコンテンツがより注意深く作成されて同じ脆弱性を有することのないことを、確実にすることである。
(追加の考慮事項および変形形態)
メディアは、制限された回数の使用(例えば、いずれかの3つの音楽ビデオを見ることができる)、または、アクセスの継続期間(例えば、最初の視聴後3日間でアクセスが期限切れになる)を可能にするように構成される場合がある。その後、ユーザは、将来の(または無制限の)再生のための許可を得るために支払いを要求される場合がある。視聴カウンタ(および/または、他のセキュリティおよび状態情報)が、メディア自体の上に、および/または、プレイヤ内に、および/または、リモートサーバ上に格納される場合がある。例えば、無制限の再生を許可するデータがメディアの書き込み可能部分に配置され、それにより任意のプレイヤ上で再生できる場合がある。代替として、この許可をプレイヤの不揮発性メモリ内に格納することができ、および/または、ネットワークを介してサーバにアクセスして許可が得られるように、コンテンツコードを構成することができる。
所定の条件が満たされる(例えば、支払い、所定の組合せの他のタイトルの再生、パズルが解決されること、所定の時間が経過していることなど)まで、メディア上のコンテンツの部分(または全部)にアクセスできなくすることができる。一実施例では、コンテンツコードは、購入またはアクティベートされるまで動作できない。アクティベーションプロセスはローカルで実施される場合があり、または、リモートサーバとの対話を含む場合がある。例えば、コンテンツコードはリモートサーバにアクセスし、ローカル再生デバイスをサーバに対して識別し、ユーザおよびサーバと対話して支払いを生じさせ、一部のキー、解釈可能なセキュリティコード、または、コンテンツのデコードを可能にする他のデータを受信することができる。購入が完了した後、受信されたデータを使用して、コンテンツのデコードをアクティベートする。
ユーザが新しいプレイヤを購入するとき、古いプレイヤから新しいプレイヤへのプレイヤ不揮発メモリの移行を可能にするために、プロビジョン(provision)が含められる場合がある。一実施形態では、複数のデバイス間で、スマートカードまたは書き込み可能メディアなどの物理的キャリア(carrier)上のデータを移動させることによって、このプロセスは実行される。代替として、この転送は、有線もしくは無線ネットワークまたは赤外線ポートなどのデジタル接続を介して実行される場合がある。最大のセキュリティのために、この転送は、信頼できるサーバデバイスを通じてなされる(または信頼できるサーバデバイスによって仲介される)場合があり、この信頼できるサーバデバイスは送信側デバイスおよび受信側デバイスと通信して、データが正しく転送されること、および、データが受信側デバイス上で使用可能になる前に送信側デバイス上で除去される(または無効にされる)ことを確実にする。幅広い範囲の異なるコンテンツタイトルによって書かれたデータに対応するため、単一のサーバは、どれだけの数のタイトルが不揮発性ストレージを使用するかについて知っている場合があり、または、プレイヤは(例えば、不揮発性メモリスロット自体内で識別されるような)複数のサーバと対話する場合がある。送信側および受信側の両方における暗号化キーを使用して、転送のためのセキュリティを提供することができる。
メディアは複数のデータエンコード方法を含む場合がある。例えば、単一の光ディスクには、高密度スタンプ付き部分、追記部分、および記録可能部分が含まれる場合がある。
位置および距離測定技術を使用して、受信側デバイスが、認められない物理的位置内(無許可の国内、家庭内使用専用のコンテンツを提供するホームネットワークサーバから遠すぎるなど)に存在しないことを、確実にすることができる。ラウンド通信の往復時間と光速とを乗算して、デバイスまでの距離について上限を決定することができる。全地球測位システムおよび無線信号の減衰(例えば、デバイスが、802.11b、ブルートゥースなどに関して範囲内である場合、または、デバイスが共通の無線/衛星信号にアクセスすることができる場合など)もまた、位置および/または近接性を推定するために使用される場合がある。共通のワイヤ(電話接続、家庭の電力回路など)を共有するためのデバイスの能力もまた使用することができる。インターネットIPアドレスおよび電話番号もまた、位置情報を得るために使用される場合がある(例えば、領域コーディングアプリケーション(region coding application)、局地的なスポーツブラックアウト(blackout)、デフォルト言語/通貨オプションの選択などのため)。位置情報はフォレンシックマークに含まれる場合がある。
プレイヤは、揮発性または「壊れやすい不揮発性」メモリストレージ領域を提供することができ、これらの領域は、挿入される次のディスクへコンテンツがデータを転送することを可能にするが、コンテンツがその直後に削除される、メモリスロットなどである。電源が落とされるときにコンテンツが消去されるかどうかは問題ではない状況において、揮発性メモリを、一時的ストレージのために使用することができる。
ニューラルネットワークをフォレンシックマーク検出/解析の際に使用して、最適なセキュリティポリシなどを定義することができる。
コンテンツコードは、適切な認証が存在する場合、記録可能メディアからの再生を可能にするように構成される場合がある。例えば、この機能を使用して、消費者用のメディアを記録することができる光ディスク焼付けキオスク(optical disc burning kiosk)(または他のシステム)を作成して、例えば、小さい店が多大な在庫を有する必要なく、予測できない消費者の需要を満たすことができる。キオスクは、内部ストレージ(ハードディスクなど)およびデータネットワークを含む、任意のソースまたはソースの組合せから、(生)コンテンツを検索することができる。記録されたデータをキオスクによって修正して(任意で、キオスク内に含まれるインタープリタにおいて実行するインタープリタコードを使用して)、例えば、識別フォレンシックマークを導入し、データの部分を再暗号化し、最新のセキュリティロジックをコンテンツに関連付け、消費者によって選択された複数のコンテンツ部分を結合し、ユーザ要求/プリファレンスに対応し、コンテンツを(再)圧縮するかまたはフォーマットを変更して、メディアまたはプレイヤデバイスの容量またはコーデック要件を満たすことなどができる。
再生の記録および許可を暗号的に認証する値もまた含まれる場合がある。例えば、これを、信頼できるパーティによって発行されたデジタル署名にし、ネットワークを介してキオスクに転送し、メディア上に焼付け、再生中にコンテンツコードによって検証することができる。このデジタル署名には例えば、メディア識別子、SHA−1を使用して計算されたコンテンツのハッシュツリーのルート、キオスクの記録ドライブの識別子、発行日、および、宛先メディアのシリアルナンバが含まれる場合がある。
キオスクにはまた、請求書、クレジットカード、または他の支払いを受けるためのインターフェース、ユーザ選択を受信するためのタッチスクリーンまたは他の入力デバイス、カスタマイズされたボックスインサート、メディア表面、レシートなどを印刷するための機能、新しいコンテンツデータを検索し、新しいユーザインターフェースコンポーネントおよび広告/オファーを受信し、支払いを検証および処理し、エラー状態を報告するためなどのネットワーク機能、および、データを所望の出力フォーマットに変換し、カスタマイズされたメニューを作成するためなどのオーディオ/ビデオ操作機能が含まれる場合もある。
物理的メディア(光ディスクなど)への書き込みにおいて高パフォーマンスを実現するため、メディア記録デバイスは複数の記録レーザを同時に使用することができる。物理的サポートバリアをメディアの周囲に配置して、遠心力による粉砕または損傷を防止することができる。ミラーまたは他の光要素を使用して、レーザビームをメディアの周りで移動させて、光メディアを物理的に回転させる必要性を低減またはなくすことができる。非レーザベース(non-laser-based)記録技術が使用される場合がある(例えば、インクジェットプリンタで使用されるものに類似した高解像度技術を使用して、円形の基板上にエッチング物質のマイクロ液を滴下し、次いで、基板を保護層によりコーティングすることによって、記録するなど)。
メディアは、再生デバイスに物理的に存在する必要はない。例えば、メディアは無線または他のネットワークを介してプレイヤデバイスと通信することができる。一実施形態では、メディアはコイルと、少なくとも1つの半導体チップとを含み、これらは(a)誘導コイルから電力を受け取り、(b)誘導コイルを使用して、プレイヤ(または他のデバイス)によりデータを送受信し、(c)再書き込み可能部分であっても、そうでなくてもよいローカルメモリからコンテンツ(サポートされる場合、コンテンツコードを含む)を検索し、(d)コンテンツコードまたは他のデバイスによる使用のために暗号化ハンドシェークを実行して、メディアの妥当性を認証するように構成される。複数のこのようなメディアが存在する可能性がある(例えば、複数のメディアを含むことができるプレイヤデバイス内の自由に取り外すことができるトレイに含まれる)場合、アドレッシング方法を使用して、どのメディアが所与の時間に通信中であるべきであるかの選択を可能にすることができる。
コンテンツコードは、任意の方法の外部デバイスだけでなく、プレイヤデバイス内に含まれる場合のあるコンポーネント(ソフトウェアプログラムなど)と対話することができる。例えば、スマートトイ(smart toy)(または他のデバイス)は、デバイス(またはこのようなデバイスの汎用クラス)をサポートするコンテンツコードと対話することができる。このような対話は、任意の種類のデータ交換を含むことができ、これらのデータ交換には、コマンド(例えば、おもちゃの車が動く方向)、オーディオデータ(例えば、デバイスが発する音、デバイスによって記録された音など)、イメージ/ビデオデータ(例えば、デバイスが表示するデータ、デバイス内のデジタルカメラからのデータなど)、ロジック(例えば、デバイスによる実行のため)、イベント通知などが含まれる。一実施形態では、コンテンツコードは外部電気機器およびデバイス(ライト、暖房、エアコン、ホームセキュリティシステム、電気機器、ペットケア/フィーディング(feeding)デバイス、ビデオレコーダなどが含まれるが、これらに限定されない)と対話し、これらを制御するのに役立つ。プレイヤデバイスと、外部デバイスとの間の通信の方法には、従来のオーディオビジュアル出力を通じてプレイヤデバイスからデータを(例えば、マイクロフォン、CCD、または、リモートデバイス上の他のセンサへ)出力すること、および、リモートコントロール(例えば、赤外線)インターフェースを介してデータを受信することが含まれる場合がある。他のサポートされた通信方法には、無線および有線ネットワーキングおよびデータ変換プロトコルが含まれる可能性がある。一部のプレイヤデバイスは、すべての所望の外部対話を可能にするために必要なインターフェースを有していない場合があり、この場合、(例えば、双方向データ通信および電力の物理的インターフェースを通じて、)外部インターフェースモジュールが直接接続される場合がある。外部デバイスはまた、プレイヤデバイスに配信されるコード(インタープリタコードを含む)を格納するための不揮発性メモリまたは他のストレージを備え、例えば、このような外部デバイスによって提供された機能を利用する際にプレイヤデバイスおよび/またはコンテンツコードを支援することもできる。
再生システムの態様は別々に実装される場合があり、互いに通信する場合がある。例えば、あるプラットフォーム(パーソナルコンピュータなど)上で、発見および/またはセキュリティ評価機能を実装する部分をメインプレイヤアプリケーションから分離することが有用である場合がある。なぜならば、これらのコンポーネントは他のコンポーネントよりも頻繁なアップデートを必要とする場合があるからである。例示的実施形態では、コンテンツコードは、悪意のある、無許可の、および/または疑わしいソフトウェアの存在などの、既知のセキュリティの問題を検出するように構成されたセキュリティスキャナと通信する。スキャナはまた、システムの状態についての情報をコンテンツコードおよび/またはプレイヤアプリケーションに提供するが、この情報は、何のアプリケーションが実行されているか、何のデバイスドライバがインストールされるか、何のデバイスが接続されることが知られるか、などである。スキャナはまた、システムが安全な再生のための要件を満たすかどうかなどの現在のシステムのセキュリティ状況の評価を報告することもできる。新しい海賊行為のリスクは瞬時に発生する可能性があるので、例えば、新しいソフトウェアの弱点が公にされる場合、スキャナプログラムは好ましくは、インターネットを介してアップデートをダウンロードすること、または、コンテンツコードにより配信されたデジタル署名付きアップデートを受信することなどによって、頻繁にアップデートされる。ユーザは、アップデートサービスのために課金される場合がある(例えば、ユーザに対応する支払い手段に自動的および定期的に課金すること、支払いがうまくいかなかった場合にユーザに自動的に通知すること、および/または、支払いが最終的に認められない場合、ユーザのアクセスを自動的に打ち切ることによる)。スキャナはまたユーザにその結果を通知し、自動的に問題を是正し、および/または、自動的に対策またはアップデートをダウンロードすることもできる。スキャナはまた、例えば割り込みまたはイベントを登録することによって、コンテンツコードまたは他のコンポーネントに、システム/セキュリティ状況における変化を通知することもできる。コンテンツコードおよびスキャナなどの複数のコンポーネント間の通信を、暗号的に保護することができる。例えば、スキャナはその結果に、チャレンジ値と共にデジタル署名して、リプレイ攻撃を防止することができる。スキャナは、アンチウィルススキャナまたは他の脆弱性スキャナ(vulnerability scanner)と統合される場合があるが、その機能性は従来のウィルス検出器とは異なり、単にコンピュータの所有者またはオペレータの利益を保護することとは対照的に、このスキャナは、コンテンツ所有者によって使用可能であるマシンの状態についてのアテステーションとして、その結果の暗号化認証を提供する。
コンピュータを検索して無許可の(例えば、海賊行為を受けた)コンテンツを検出するように、自動化されたプログラムを構成することもできる。このようなコンテンツが発見される場合、プログラムは、権利を侵害していると考えられるマテリアルをユーザに通知することができる。プログラムはまたコンテンツコードまたは他のセキュリティコンポーネントと対話(、およびアテステーションをこれらに提供)して、例えば、海賊行為を受けたマテリアルがないと思われるデバイス上でコンテンツの再生を許可することもできる。マテリアルが許可されるかどうかを判断するため、スキャナはライセンスファイル、デジタル署名、既知のファイルハッシュなどを探すことができる。
本発明の要素(セキュリティ機能および非セキュリティ機能を含む)は、以下に限定されるものではないが、非プログラマブルコンテンツ配布システム、インタープリタまたは仮想マシンの代わりにネイティブコードを使用するコンテンツ保護システムと共に、いずれかのソフトウェアアプリケーションまたはデバイスの一部として、コードが(インタープリタ/仮想マシンを使用して処理されるのではなく)常にネイティブで実行されるプログラマブルシステム上で、使用される場合があり、他のシステム(ビデオゲームコンソールコピー保護およびセキュリティシステムを含む)において使用される場合がある。例えば、個々の態様を、以下に限定はされないが、コンピュータセキュリティアプリケーション、ネットワークセキュリティアプリケーション、非プログラマブルなアンチパイラシシステム、フロードスクリーニング(fraud screening)システム、電子メールフィルタリングなどのために使用することができる。
本発明は、デジタルデータ放送システム(以下に限定されないが、すべての種類のテレビ放送、衛星送信、ケーブルネットワークを介した通信、インターネットマルチキャストなどが含まれる)と統合される場合がある。放送信号は、その信号または他のコンテンツ内の伝送されたコンテンツと共に使用するために、コード(セキュリティ関連情報および対策を含む)を伝送することができる。放送信号はまた、他のコンテンツタイトルによって使用可能なコンテンツおよび/または他のデータを伝送することもできる。セキュリティ機能はまた、テレビ信号を保護するために使用された従来の条件付きアクセスカードおよびシステムと統合される(、および、これらと通信する)場合もある。
本発明の複数のコンポーネントが対話するとき、これらのコンポーネントは暗号技術を使用して、それらの通信を保護することができる。このようなセキュリティ機能には、対称暗号化および/またはメッセージ認証コード(または他のチェック)をデータ上で使用することが含まれる場合がある。このような通信を保護するために使用される対称キーを、公開キー暗号技術(デジタル署名/証明書、指数キー合意、公開キー暗号化/復号化、チャレンジ−レスポンスプロトコルなどを含む)を使用してネゴシエートすることができ、または、非対称暗号技術をデータに直接適用することができる。(例えば、失効リストをチェックすること、リモートサーバと対話することなどにより、)対称および非対称キーの失効状況を実施することができる。対称暗号化プロトコルを使用して、キーをネゴシエートすることもできる(放送暗号化技術を使用することを含むが、これに限定はされない)。使用されるセキュリティ手段は、すべての通信に対して同じである必要はない。(例えば、制御メッセージ、セキュリティ関連パラメータ、キー、および/または、MPEG「I」フレームは暗号化される可能性があるが、他の通信は暗号化されない可能性がある。)ハンドシェークを保護するために使用されるキー(各キーまたはキーのセットに関係付けられた、1つまたは複数の関連証明書を含む)を、コンテンツコードを使用して、および/または、デバイスによって直接検証することができる。コンポーネントの通信が暗号的に保護するために適切である可能性のある場合、そのコンポーネントの例には、以下に限定されるものではないが、光ディスクドライブ、他のメディアインターフェース、メディアインターフェースデバイスドライバ、プレイヤアプリケーション、コンテンツコード実行スレッド(例えば、同時に実行されている異なるコンテンツタイトルから、または、同じコンテンツタイトルに属する別のスレッドから)、オペレーティングシステム、ビデオデバイスドライバ、ビデオプロセッサ(またはビデオカードなど)、オーディオデバイスドライバ、オーディオプロセッサ、任意の方法の外部デバイス(ローカルで接続されるか、ネットワークを介してアクセスされるか、バスを介してアクセスされるかなどにかかわらず)、他のアプリケーション(セキュリティスキャナ、オーディオミキサ、ビデオイフェクトプロセッサ(video effect processor)など)、コーデック、およびセキュリティモジュールが含まれる。
1つまたは複数の証明書を使用して認証されるキーを使用して、デジタル署名を作成することもでき、デジタル署名と他のセキュリティ値とを組み合せることができる。複数のバージョンの署名を提供することができる(例えば、異なるキー/署名者、キーサイズ、アルゴリズムなどにより作成される)。
実施例は、限定を課すものとして解釈されるべきではない。簡潔にするため、特に、アイテムが類似のリストに含まれる状況では、リストは必ずしも完全に列挙されているとは限らない。「〜を含む」という語は、「〜を含むが、これに限定されない」ということを意味する。同様に、「例えば」は、説明されているものの一般性を限定しない、例示的な例を示す。同様に、「など」は、追加の可能性があることを意味し、リストは、必ずしもすべての知られている可能性を列挙するものと解釈されるべきではない。
例示的実施形態では、コンテンツを特定のプレイヤに合わせてカスタマイズすることができる。この場合、コンテンツは、単一のプレイヤまたは少数のプレイヤ上でのみ再生可能であるが、受信側デバイス上での再生のために必要とされないコードは、送信される必要はない。したがって、情報をユーザに送信することが困難であるか、高価であるか、または遅いとき、例えば、ストレージスペースが制限される場合、または、コンテンツが低速ネットワーク接続を介して送信されなければならない場合、この手法は特に有用である。しかし、コンテンツはなお、プレイヤに問い合わせて、再生環境が適切に安全であることを検証することができる。
再生が割り込まれない、またはゆがめられないことを確実にするため、プレイヤのインタープリタのための特定の最低限のパフォーマンス標準を必要とすることが有用である可能性がある。
例示的実施形態では、コンテンツをあるデバイスから別のデバイスへ交換できるように、システムおよび方法を構成することができる。このような交換の特定のセキュリティ特性は、信頼できる(例えば、パブリッシャにより運営される)サーバとのオンライン通信が利用可能であるかどうかなどの要素によって決まる。コンテンツが転送される形式は、コンテンツによって実装されたセキュリティポリシ、および、デバイスのハードウェア機能によって決まる。例えば、両方のデバイスが安全なインタープリタを含む一実施形態では、送信側デバイスは生の暗号化されたコンテンツ(オリジナルメディア上に格納されるか、または、別のキーにより暗号化され、任意でウォータマークが含められる)を、再生を制御するためのコードと共に送信する。送信側デバイスによって、受信側デバイスに合わせて再生制御コードをカスタマイズすることができる。別の場合では、送信側デバイスは、出力ポートおよび送信先デバイスのセキュリティ特性が受け入れ可能であることを検証し、共有キーについて送信先デバイスとネゴシエートし、コンテンツを復号化およびウォータマーキングし、コンテンツを共有キーにより再暗号化し、再暗号化されたコンテンツを送信先に送信することができる。
十分な不揮発性ストレージを有するプレイヤを使用して、インタープリタから呼び出されるアップデート可能なコードを格納することができる。例えば、常に特定のパブリッシャ用の最新セキュリティコードを格納するように、プレイヤを構成することができる。この場合、より新しいバージョンのセキュリティコードが見つかる場合、(例えば、新しいコードにおけるデジタル署名を検証した後)古いバージョンはアップデートされる。このように、より古いコンテンツは、新しいコンテンツ上に含まれるセキュリティアップデートから利点を得ることができる。(例えば、前述の安全なメモリ方法を使用して、この手法を実施することができる。)もう1つの実施形態では、現在の日付/時間をプレイヤから取得し、最新の既知のセキュリティアップグレードの日付/時間と比較することによって、コンテンツは、プレイヤが現在のセキュリティアップデートを含むことを要求することができる。このように、コンテンツは、プレイヤが合理的に最新のセキュリティアップグレードを有することを確実にすることができる。
一般に、コンテンツ保護システムは、正当なユーザによる正当なアクションにおいていかなる可視的な役割を果たすことも回避すべきである。それにもかかわらず、エラーの報告または情報の提供のためなど、一部のユーザインターフェース要素は必要である。コンテンツが複数のサポートされた出力品質から選択することができる(例えば、プレイヤが不十分なセキュリティを提供する場合は「レガシー」品質、セキュリティが十分なものである場合は「高」品質)場合では、ユーザに出力品質を通知するためにインジケータが有用である可能性がある。例えば、一実施形態では、コンテンツの制御下にある緑色の発光ダイオード(LED)は、出力が高品質である(すなわち、セキュリティが十分なものである)ことを示し、オレンジ色のLEDは、低減した品質(すなわち、最低限のセキュリティ)を示し、点滅する赤色のLEDは、プレイヤが失効しているために出力が提供されないことを示すことができる。もう1つの実施形態では、(既知の場合は、ユーザの言語により)短く発話された、または書かれた通知が提供されて、セキュリティの状況が報告される。堅牢なおよび/または脆弱なウォータマークの有無などの他の要因に基づいて、より低い品質出力またはより高い品質を報告および/または使用するかどうかを決定することができる。必要な場合、品質低下モジュールをプレイヤと共に含めて、コンテンツがセキュリティまたは他の理由のために再生の品質を(例えば、レガシーフォーマットの品質へ)低下させることができるようにする。(例えば、高精細度テレビ信号をNTSC解像度へ変換するため、または、高解像度マルチチャネルオーディオを2チャンネルCD品質オーディオに変換するために、品質低下モジュールを含めることができる。)
メディアインターフェースおよびプレイヤインタープリタが十分なパフォーマンスを提供する場合、別の復号化モジュールにおいてではなく、インタープリタにおいてバルク復号化およびウォータマーク埋め込みを処理することができる。コンテンツがそれ自体を直接復号化できるようにすることは、攻撃者が復号化モジュールに対して攻撃をしかけないようにすることを確実にすることなどの、いくつかのセキュリティの利点を提供することができる。インタープリタのパフォーマンスが十分なものである場合、コンテンツ圧縮解除をインタープリタ内でも実装して、単一のプレイヤコーデックタイプを標準化する必要性を回避することもできる。
本明細書で開示した技術およびシステムのための特定のハードウェアサポートを有していない(パーソナルコンピュータなどの)プラットフォーム上のインタープリタを使用する実装が好ましいが、多数のインタープリタ関数を専用ハードウェア内に実装することができる。用途(application)によって、専用の実装はコストまたは電力消費量を節約する場合があるが、低減した機能を提供する場合もある。
物理的メディア上のコンテンツを受信する実施形態では、実質的にいかなるメディアフォーマットも使用することができる。(CDおよびDVDなどの)光ディスクは高ストレージ密度を低コストで提供するが、他のストレージシステムを使用することもでき、これらのシステムには、磁気メディア、ホログラフィックメモリ、バッテリバックRAM、ROM、EEPROM、およびフラッシュメモリが含まれるが、これらに限定されるものではない。メディアのストレージ容量を、多数の異なるタイプのデータを格納するために使用することができ、これらのデータには、(様々なコンピュータプラットフォームのためのデコード方法を実装する実行可能プログラム、本明細書で開示した方法を使用することにより保護されたコンテンツなどの)本明細書で開示した技術およびシステムに関連する情報、ならびに、(無関係の実行可能プログラム、レッドブックCDオーディオなどの保護されていないコンテンツ、他のセキュリティスキームを使用することにより保護されたコンテンツなどの)本明細書で開示した技術およびシステムとは直接的に関連しないデータが含まれる。
メディアは、暗号化計算を実行して、メディアが無許可のコピーではないことをプレイヤが検証することができるようにするための、耐タンパ性を有する回路を含むことができる。このような機能は、電気的インターフェースを使用するメディアについて実施するために最も単純なものであるが、光メディアでさえ暗号化機能を含むことができる。例えば、(Gaumetらの米国特許第5640306号明細書に記載の非接触スマートカードなどの)非接触暗号化モジュールを光ディスクに加えるか、または埋め込むことができる。暗号化メディア認証が好ましいが、他の認証メカニズムを代わりに使用することもできる。例えば、背景技術において知られる汎用メディア認証方法は、コピーが困難な位置(市販の記録可能メディアまたはドライブを使用する書き込み可能ではない領域など)にシリアルナンバを書き込むこと、および、オリジナルの物理的メディアの様々な特性のデジタル署名付き「記述」を含めることを含む。言うまでもなく、暗号化メカニズムは、既存のメディアを危殆化させるための方法を攻撃者が発見する場合でも、プレイヤに対するいずれの変更を必要とすることなく、将来のメディアを改善されたセキュリティと共に発行することができるという、利点を提供する。
多数の消費者はすでにレガシーフォーマットのコンテンツに投資をしているので、これらのレガシーフォーマットをサポートするように、本明細書で開示した技術およびシステムを実装するプレイヤを構成することができる。同様に、異なるバージョンのインタープリタを特定のプレイヤによってサポートすることができる。この場合、プレイヤはメディアまたはコンテンツを解析して、使用すべき適切なセキュリティシステムを識別する必要がある。例えば、デジタルビデオプレイヤは、ディスクがCSSを使用するレガシーDVDであるか(および、そうである場合、CSS復号化システムを選択する)、または、本明細書で開示した技術およびシステムを使用するDVDであるか(および、そうである場合、言語ベースの復号化システムをアクティベートする)を検出する可能性がある。コンテンツに含まれる堅牢なウォータマークを使用して、あるセキュリティシステムにより元は保護されていたコンテンツが、その元々の保護を欠くフォーマットにコピーされているかどうかを検出することができる。例えば、コピーすることができないコンテンツはウォータマークを含み、任意の他のフォーマットのコピー(例えば、保護されていないフォーマット)を発見したいずれのデバイスも、そのコピーを無許可のものとして認識し、(例えば)再生を拒否することができることを、示すことができる。
本明細書で開示した技術およびシステムを幅広い種類のコンテンツタイプと共に使用することができる。これらのタイプには、オーディオ、静止画像、ビデオ、3次元イメージ、および3次元ビデオが含まれるが、これらに限定されるものではない。
本明細書で開示した技術およびシステムを、様々な物理的デバイスにおいて実施することもできる。1つのデバイスのみが、コンテンツを復号化することを担う場合、セキュリティポリシはそのデバイスにより実装されることが好ましい。しかし、出力デバイスおよび(オーディオイコライザまたはミキサなどの)中間処理デバイスもまた、本明細書で開示した技術およびシステムから、および/または、このような技術およびシステムによってそれらのセキュリティを検証するために使用することができる問い合わせ機能を提供することによって、利点を得ることができる。一実施形態では、ホームエンタテインメントサーバは、コンテンツをダウンロードし、格納し、かつ管理して、セキュリティが成功裡に検証されている(スピーカ、ヘッドフォン、ビデオディスプレイなどの)再生デバイスにコンテンツを転送する。これらのデバイスへの接続は、好ましくは、本明細書で開示した技術およびシステムならびに送信先デバイスの共同制御下で暗号化されて、転送中のコンテンツの盗難を防止する。

Claims (17)

  1. デジタルコンテンツと、前記デジタルコンテンツに固有でかつ前記デジタルコンテンツの少なくとも一部分の再生に影響を与えるように再生デバイスのコンピュータ言語インタープリタによって実行可能であるデータ処理命令とを含むデータを受信することと、
    前記再生デバイスの前記コンピュータ言語インタープリタを用いて前記データ処理命令を実行することと、
    を備え、
    前記データ処理命令は、前記コンピュータ言語インタープリタによって実行されると、
    失効ステータスのデジタル署名にアクセスし、前記失効ステータスの前記デジタル署名に基づいて前記失効ステータスが真正であることを判断し、
    前記再生デバイスの、前記デジタルコンテンツに対応しかつ前記デジタルコンテンツに関連する認証が失効したことを示す前記失効ステータスを格納するメモリにアクセスし、ここで、前記失効ステータスを格納することは、前記失効ステータスが真正であるとの判断に応答したものであり、
    前記失効ステータスに基づいて、前記再生デバイスによる、前記デジタルコンテンツに関連し、かつ、前記デジタルコンテンツの低下した解像度、すなわち、前記受信したデータ内に含まれる前記デジタルコンテンツの最大解像度より低い解像度での前記デジタルコンテンツの前記少なくとも一部分の前記再生を可能にすることを含むオペレーションの実行を開始する
    ように、前記コンピュータ言語インタープリタを構成する、方法。
  2. 前記オペレーションは、
    前記再生デバイスのユーザに前記デジタルコンテンツが違法であることを通知することと、
    前記ユーザが前記デジタルコンテンツに関する購入トランザクションを開始することを可能にすることと、
    前記デジタルコンテンツの更なる部分の再生を防止することと、
    のうちから少なくとも1つを含む、請求項1に記載の方法。
  3. 前記デジタルコンテンツに固有の前記データ処理命令は、第1のデータ処理命令であり、
    前記再生デバイスの前記メモリは、前記デジタルコンテンツに関連する前記オペレーションを実行するように前記再生デバイスの前記コンピュータ言語インタープリタによって実行可能な第2のデータ処理命令を格納し、前記第2のデータ処理命令は前記失効ステータスに対応しかつ、実行されると、前記オペレーションを実行するように前記再生デバイスを構成する、請求項1に記載の方法。
  4. 前記データは、前記デジタルコンテンツに対応する識別子を含み、
    前記データ処理命令は、前記オペレーションの前記実行を開始するように前記コンピュータ言語インタープリタを構成する際に、前記識別子の認証性に基づいて前記実行を開始するように前記コンピュータ言語インタープリタを構成し、
    前記データ処理命令は、前記コンピュータ言語インタープリタによって実行されると、前記識別子の前記認証性を判断するように、前記コンピュータ言語インタープリタを構成する、請求項1に記載の方法。
  5. 前記データ処理命令は、前記コンピュータ言語インタープリタによって実行されると、前記識別子のデジタル署名にアクセスするように前記コンピュータ言語インタープリタを構成し、
    前記データ処理命令は、前記識別子の前記認証性を判断するように前記コンピュータ言語インタープリタを構成する際に、前記識別子の前記デジタル署名に基づいて前記認証性を判断するように前記コンピュータ言語インタープリタを構成する、請求項4に記載の方法。
  6. 前記再生デバイスの前記メモリは不揮発性メモリである、請求項1に記載の方法。
  7. 前記デジタルコンテンツの前記失効ステータスを受信することと、
    前記失効ステータスを前記再生デバイスの前記メモリ内に格納することと、
    をさらに備える、請求項1に記載の方法。
  8. 前記データを受信することは、メディアドライブからまたはネットワークを介して前記データの少なくとも一部を受信することを含む、請求項1に記載の方法。
  9. デジタルコンテンツと、
    前記デジタルコンテンツに固有でかつ前記デジタルコンテンツの少なくとも一部分の再生に影響を与えるように再生デバイスのコンピュータ言語インタープリタによって実行可能であるデータ処理命令と、
    を備え、
    前記データ処理命令は、前記再生デバイスの前記コンピュータ言語インタープリタによって実行されると、
    失効ステータスのデジタル署名にアクセスし、前記失効ステータスの前記デジタル署名に基づいて前記失効ステータスが真正であることを判断し、
    前記再生デバイスの、前記デジタルコンテンツに対応しかつ前記デジタルコンテンツに関連する認証が失効したことを示す前記失効ステータスを格納するメモリにアクセスし、ここで、前記失効ステータスを格納することは、前記失効ステータスが真正であるとの判断に応答したものであり、
    前記失効ステータスに基づいて、前記再生デバイスによる、前記デジタルコンテンツに関連しかつ前記デジタルコンテンツの低下した解像度、すなわち、前記デジタルコンテンツの最大解像度より低い解像度での前記デジタルコンテンツの前記少なくとも一部分の前記再生を可能にすることを含むオペレーションの実行を開始するように、前記コンピュータ言語インタープリタを構成する、非一時的マシン可読媒体。
  10. 前記オペレーションは、
    前記再生デバイスのユーザに前記デジタルコンテンツが違法であることを通知することと、
    前記ユーザが前記デジタルコンテンツに関する購入トランザクションを開始することを可能にすることと、
    前記デジタルコンテンツの更なる部分の再生を防止することと、
    のうちから少なくとも1つを含む、請求項に記載の非一時的マシン可読媒体。
  11. 前記デジタルコンテンツに固有の前記データ処理命令は、第1のデータ処理命令であり、前記再生デバイスの前記メモリにアクセスするように前記コンピュータ言語インタープリタを構成する際に、前記メモリ内に格納されかつ前記デジタルコンテンツに関連する前記オペレーションを実行するように前記再生デバイスの前記コンピュータ言語インタープリタによって実行可能な第2のデータ処理命令にアクセスするように前記コンピュータ言語インタープリタを構成し、前記第2のデータ処理命令は前記失効ステータスに対応しかつ、実行されると、前記オペレーションを実行するように前記再生デバイスを構成する、請求項に記載の非一時的マシン可読媒体。
  12. 前記デジタルコンテンツに対応する識別子をさらに備え、
    前記データ処理命令は、前記オペレーションの前記実行を開始するように前記コンピュータ言語インタープリタを構成する際に、前記識別子の認証性に基づいて前記実行を開始するように前記コンピュータ言語インタープリタを構成し、
    前記データ処理命令は、前記コンピュータ言語インタープリタによって実行されると、前記識別子の前記認証性を判断するように前記コンピュータ言語インタープリタを構成する、請求項に記載の非一時的マシン可読媒体。
  13. 前記識別子のデジタル署名をさらに備え、
    前記データ処理命令は、前記コンピュータ言語インタープリタによって実行されると、前記識別子の前記デジタル署名にアクセスするように前記コンピュータ言語インタープリタを構成し、
    前記データ処理命令は、前記識別子の前記認証性を判断するように前記コンピュータ言語インタープリタを構成する際に、前記識別子の前記デジタル署名に基づいて前記認証性を判断するように前記コンピュータ言語インタープリタを構成する、請求項12に記載の非一時的マシン可読媒体。
  14. 前記識別子は、前記非一時的マシン可読媒体のシリアルナンバである、請求項12に記載の非一時的マシン可読媒体。
  15. 前記データ処理命令は、前記コンピュータ言語インタープリタによって実行されると、ネットワークを介して前記失効ステータスのアップデートを受信するように前記コンピュータ言語インタープリタを構成し、
    前記データ処理命令は、前記オペレーションの前記実行を開始するように前記コンピュータ言語インタープリタを構成する際に、前記失効ステータスの前記アップデートに基づいて前記実行を開始するように前記コンピュータ言語インタープリタを構成する、請求項に記載の非一時的マシン可読媒体。
  16. メモリと、
    前記メモリに通信可能に結合されたコンピュータ言語インタープリタと、
    前記コンピュータ言語インタープリタに通信可能に結合されたメディアインターフェイスと、
    を備え、
    前記メディアインターフェイスは、デジタルコンテンツとデータ処理命令とを含むデータを受信するように構成され、前記データ処理命令は前記デジタルコンテンツに固有でかつ前記デジタルコンテンツの少なくとも一部分の再生に影響を与えるように前記コンピュータ言語インタープリタによって実行可能であり、前記データ処理命令は、前記コンピュータ言語インタープリタによって実行されると、
    失効ステータスのデジタル署名にアクセスし、前記失効ステータスの前記デジタル署名に基づいて前記失効ステータスが真正であることを判断し、
    前記再生デバイスの、前記デジタルコンテンツに対応しかつ前記デジタルコンテンツに関連する認証が失効したか否かを示す前記失効ステータスを格納するメモリにアクセスし、ここで、前記失効ステータスを格納することは、前記失効ステータスが真正であるとの判断に応答したものであり、
    前記失効ステータスに基づいて、前記再生デバイスによる、前記デジタルコンテンツに関連しかつ前記デジタルコンテンツの低下した解像度、すなわち、前記受信したデータ内に含まれる前記デジタルコンテンツの最大解像度より低い解像度での前記デジタルコンテンツの前記少なくとも一部分の前記再生を可能にすることを含むオペレーションの実行を開始するように、前記コンピュータ言語インタープリタを構成する、装置。
  17. 不揮発性メモリと、
    デジタルコンテンツとデータ処理命令とを含むデータを受信する手段であって、前記データ処理命令は前記デジタルコンテンツに固有でかつ前記デジタルコンテンツの少なくとも一部分の再生に影響を与えるように実行可能である、手段と、
    前記データ処理命令を実行する手段と、
    を備え、
    前記データ処理命令は、実行されると、
    失効ステータスのデジタル署名へのアクセス、及び、前記失効ステータスの前記デジタル署名に基づいて前記失効ステータスが真正であることの判断と、
    前記デジタルコンテンツに対応しかつ前記デジタルコンテンツに関連する認証が失効したことを示す前記失効ステータスを格納する前記不揮発性メモリのアクセス、ここで、前記失効ステータスを格納することは、前記失効ステータスが真正であるとの判断に応答したものであること、と、
    前記失効ステータスに基づいた前記再生デバイスによる、前記デジタルコンテンツに関連しかつ前記デジタルコンテンツの低下した解像度、すなわち、前記受信したデータ内に含まれる前記デジタルコンテンツの最大解像度より低い解像度での前記デジタルコンテンツの前記少なくとも一部分の前記再生を可能にすることを含むオペレーションの開始と、
    をもたらす、システム。
JP2011010472A 2003-07-07 2011-01-21 海賊行為を規制し、インタラクティブコンテンツを使用可能にするための再プログラマブルなセキュリティ Expired - Fee Related JP5192556B2 (ja)

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

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006518845A Division JP2007535718A (ja) 2003-07-07 2004-07-07 海賊行為を規制し、インタラクティブコンテンツを使用可能にするための再プログラマブルなセキュリティ

Publications (2)

Publication Number Publication Date
JP2011086313A JP2011086313A (ja) 2011-04-28
JP5192556B2 true JP5192556B2 (ja) 2013-05-08

Family

ID=34083671

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2006518845A Pending JP2007535718A (ja) 2003-07-07 2004-07-07 海賊行為を規制し、インタラクティブコンテンツを使用可能にするための再プログラマブルなセキュリティ
JP2011010472A Expired - Fee Related JP5192556B2 (ja) 2003-07-07 2011-01-21 海賊行為を規制し、インタラクティブコンテンツを使用可能にするための再プログラマブルなセキュリティ

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2006518845A Pending JP2007535718A (ja) 2003-07-07 2004-07-07 海賊行為を規制し、インタラクティブコンテンツを使用可能にするための再プログラマブルなセキュリティ

Country Status (7)

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

Families Citing this family (673)

* 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 腾讯科技(成都)有限公司 视频处理方法和相关设备及通信系统
KR101618169B1 (ko) * 2013-12-02 2016-05-04 (주)닥터소프트 소프트웨어 식별자 생성 방법, 서버 및 서버의 소프트웨어 관리 방법
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
KR102355235B1 (ko) * 2020-10-15 2022-02-07 주식회사 디알엠인사이드 웹 브라우저 기반 컨텐츠의 보안을 위한 서비스 제공 방법
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
KR20220132161A (ko) * 2021-03-23 2022-09-30 삼성전자주식회사 뉴럴 네트워크에 대한 해시 인증을 수행하는 전자 장치 및 그 동작 방법
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

Family Cites Families (103)

* 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
EP0880840A4 (en) * 1996-01-11 2002-10-23 Mrj Inc DEVICE FOR CONTROLLING ACCESS AND DISTRIBUTION OF DIGITAL PROPERTY
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

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
US8571993B2 (en) 2013-10-29
US8131646B2 (en) 2012-03-06
CN101241735A (zh) 2008-08-13
KR101081729B1 (ko) 2011-11-08
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
JP5192556B2 (ja) 海賊行為を規制し、インタラクティブコンテンツを使用可能にするための再プログラマブルなセキュリティ
US8949624B2 (en) Method and system for secure access to non-volatile memory
US7756272B2 (en) Interpreter using cryptographic values of a playback device&#39;s keys to authorize the playback device
JP2004532495A5 (ja)
EP1942391B1 (en) Computer-readable medium, device and method for playing encrypted digital video

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120215

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120530

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120927

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20121101

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130131

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160208

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees