CN100504818C - 调控对非易失性存储区访问的方法和判定访问的自动方法 - Google Patents

调控对非易失性存储区访问的方法和判定访问的自动方法 Download PDF

Info

Publication number
CN100504818C
CN100504818C CNB2004800239483A CN200480023948A CN100504818C CN 100504818 C CN100504818 C CN 100504818C CN B2004800239483 A CNB2004800239483 A CN B2004800239483A CN 200480023948 A CN200480023948 A CN 200480023948A CN 100504818 C CN100504818 C CN 100504818C
Authority
CN
China
Prior art keywords
content
player
code
key
data
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
CNB2004800239483A
Other languages
English (en)
Other versions
CN1839375A (zh
Inventor
保罗·C·科赫尔
捷士瓦·M·杰富
本杰明·C·骏
卡特·C·拉伦
彼得·K·培尔森
纳旦尼尔·J·罗森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ai Dide Technology Co., Ltd.
Original Assignee
Cryptography Research Inc
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 Cryptography Research Inc filed Critical Cryptography Research Inc
Publication of CN1839375A publication Critical patent/CN1839375A/zh
Application granted granted Critical
Publication of CN100504818C publication Critical patent/CN100504818C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/18Legal services; Handling legal documents
    • 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
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • 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
    • 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, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4405Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 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/60Digital content management, e.g. content distribution
    • H04L2209/606Traitor tracing
    • 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

Abstract

本发明揭示的技术通过启用安全逻辑和内容的结合而将对安全性的责任和控制从播放器制造者转移到内容作者。一示范性光盘(200)承载与数据处理运算组合的加密数字视频主题,所述数据处理运算实施所述主题的安全策略和解密过程。播放器装置包括一处理环境(例如,一实时虚拟机),其通过解释内容的处理运算来播放内容。播放器也提供过程调用以允许内容代码从媒体载入数据、执行网络通信、判定重放环境配置(225)、访问安全的非易失性存储装置、向编码译码器提交数据以供输出(250)、和/或执行密码运算。为追踪盗版拷贝,内容可在解码的输出中插入取证水印。如果盗版者危害一播放器或主题,可制作未来内容使其具有,例如,阻止攻击、撤销盗版媒体或使用本地代码来改正播放器弱点的安全特征。

Description

调控对非易失性存储区访问的方法和判定访问的自动方法
技术领域
本申请案大体涉及保护数字内容和其它数据的分发,防止盗版和其它未授权的使用或再分发。
背景技术
已提出很多种系统来保护数字内容。多数所述方案对内容加密以在将其存储于媒体上或经由非受信的通信信道发送时保护其免于未授权的使用和复制。接着解密算法和密钥由经设计以执行访问控制规则(其可为固定的或可配置的)的受信的防篡改软件或硬件模块加以管理,所述访问控制规则规定可如何使用所述内容。
内容保护方案通常是针对特定的重放环境而定制的。举例而言,为个人计算机设计的纯软件流内容播放器中的反盗版系统缺少防篡改硬件的安全性益处,但是其通常可较方便地升级(例如,如果用户卸载播放器并从制造商网站下载更新版)。因此,所述系统比基于硬件的播放器提供较不可靠的安全性,但是因为可通过修改内容流并要求用户升级其软件来运用升级的安全性特征,所以攻击的后果相对较小。
相反,嵌入于播放光学媒体的消费性电子硬件装置中的保护方法众所周知是难于升级的。安全性挑战包括:光学媒体的长寿命(其阻止了不是向后兼容的安全性升级)、缺少将更新传递给播放器的便利且可靠的方式、和缺乏播放器实施之间的标准化。与重放装置的长寿命和所有新颖内容在旧播放器上播放的消费者期望相结合的这些困难使得引入安全性升级极其困难。因而,多数消费性电子装置提供很少保护或没有提供实际保护来防止复制,且在消费性电子装置中运用的少数内容保护标准常常是提供较少灵活性和可更新性的简单、死板的方案。图1图示了背景技术的典型内容保护系统。内容播放器100包括在非易失性程序存储器105中的软件,其实施播放器的安全策略110、解密代码120和播放器密钥130。此代码和密钥由处理器140使用以验证从媒体150读取的内容是否有效,且如果有效,那么对内容解密并将结果提供到输出接口160。类似图示于图1中的保护系统的实例包括:用于数字音频磁带的复制控制方案、用以保护DVD视频的内容扰乱系统(CSS)和为保护DVD音频而提出的CPPM方案。
在背景技术中已知多种不同技术:
访问控制策略:在背景技术中已知很多种访问策略和用于规定所述策略的方法。举例而言,Hellman的第4,658,093号美国专利的软件保护系统使用了一种直接了当的由出版商发布的授权码。相反,Ginter等人的第5,982,891号美国专利描述了涉及大量参与者的多种非常复杂的访问规则。诸如PolicyMaker和X.509证书格式的用于对访问策略编码的标准(用于配合内容分发和其它应用一起使用)也已提出。
杀毒软件:在背景技术已熟知用于检测并阻止已知病毒、特洛伊木马程序和其它恶意代码的方法。这些方法大体涉及扫描已知病毒的诸如已知指令序列的属性。这些程序可采用多种方式工作,诸如在启动期间扫描文件、实时(on-the-fly)扫描文件、当程序执行时扫描程序、扫描存储器、扫描新的媒体、扫描网络通信等等。
内容保护系统和DRM:已提出很多种内容保护系统(其有时也被称为数字权限管理(DRM)系统)。背景技术的DRM系统大体提供以加密的形式分发内容,接着为合法的购买者提供解密密钥或执行解密运算。商业DRM中已提出或包括了许多特征,包括支持超分发(加密的内容可在用户之间交换)、按次付费计费(包括具有经由电话线的报告(reporting)的离线按次付费)、可变费率(基于促销、使用的数量或持续时间、请求的用户操作、用户历史等等收取不同费用)、保护各种数据类型(音频、视频、文本、软件,等等)、支持各种格式和支持各种重放装置类型(便携式、置顶式、具有硬件辅助的基于计算机的、纯软件的,等等)。
复制保护:用于复制保护个人计算机软件的方法为已知的且广泛运用于某些种类的软件,诸如计算机游戏。这些方法一般涉及将软件程序绑定到经设计为难于复制的物理媒体(例如,通过有意地并入难于复制的错误或非标准的格式编排)。其它复制保护系统涉及(例如)通过要求用户从服务器获取授权码来保护安装过程。在某些情形下,复制保护特征设计于系统中。在其它情形下(包括用于计算机软件、录像带和音频CD的复制保护系统),复制保护通过产生具有非标准编码的媒体而实施,所述非标准编码允许在多数播放器上进行重放但会干扰复制媒体的多数尝试。复制保护系统的主要设计挑战为最小化对合法用户的影响(意即,获取较高的可播放性和用户认可度)同时尽可能有效地防止不当的动作(意即,获取良好的安全性)。
密码函数:包括块密码、散列函数、数字签名系统(和其它公开密钥系统)、密钥管理系统等等的很多种基本密码函数为已知的。关于基础的密码学的更多信息,参见Bruce Schneier的《应用密码学》(AppliedCryptography)。
密码启示器:使用块密码或其它密码函数,有可能构造对任意的外部提供的输入消息应用秘密的密码转换并返回结果的“密码启示器”。可对密码启示器进行构造使得了解启示器的算法和协议的攻击者无法用计算的方式判定启示器的密钥。另外,因为对启示器的可能的输入的数量可非常大(例如,对于由256-位块密码构造的启示器达到2256),所以攻击者不可能预测或预计算对随机查询的回应。
解释器、仿真器和虚拟机:多种解释型计算机语言在背景技术中是已知的。诸如Java的某些解释型语言要求一编译过程以将源代码转换成可执行的或可解释的形式。相反,多数BASIC解释器直接对源代码操作。某些解释器允许自修改代码,而其它的不允许。用于实施解释器和用于仿真汇编语言的技术在背景技术中也是已知的。举例而言,诸如Virtual PC和SoftWindows的复杂的仿真器可在Apple Mac计算机上运行为MicrosoftWindows设计的程序。诸如那些用于Java和JavaCard的虚拟机(VM)设计是已知的,且VM可与计算机上的本地代码(native code)交互作用或调用在不同存储器空间中的其它VM函数也是已知的。(许多Java实施提供这些能力。)解释型语言普遍用于应用程序或要求跨平台兼容性的场合下,诸如用于创建独立于处理器的装置驱动程序格式。(例如,参见Writing FCode2.x Programs,Sun Microsystems,1993,第5页。)
密钥管理:已提出用于分配和管理密码编译密钥的很多种方法。已知装置可具有对装置为特定的密钥、群组密钥、公开密钥、私人密钥、证书,等等。密钥可分配到个别装置、选定的装置群组(例如,如在Fiat的第5,592,552号美国专利中所描述的)、所有装置,等等。装置可包含多种不同类型的密钥,包括对称密钥、公开密钥(例如,用以检验证书和数字签名)和不对称私人密钥。
媒体:已知可提供极大的存储容量、低制造成本和良好的耐久性的媒体技术。当前媒体技术的实例包括光盘(CD、DVD,等等)、磁性媒体、闪存和ROM。诸如全息存储器的更新颖的技术也在开发。已知单片媒体可包括许多不同类型的数据。举例而言,压缩光盘(compact disc)可包含标准红皮书(Red Book)音频歌曲以及用于个人计算机上的数据会话(例如,包含软件、压缩的附送歌曲、图像、视频、歌词,等等)。用于个人计算机的压缩光盘可包含加密的内容以及播放内容所需的重放软件。
网络通信:包括因特网的复杂的数据网络是已知的。这些网络可提供灵活的、可靠的、高带宽的数据通信。尽管具有物理连接的网络一般提供较高的带宽,但无线通信信道也为流行的。
可更新的安全性:在某些情形下,提出保证能够防止所有可能的攻击的安全系统是不实际的。因此,需要在受到攻击后有可能更新安全性,(例如)通过中止使用任何已泄漏的密钥并改正弱点。尽管可更新的安全性是理想的,但许多已运用和提议的系统缺乏任何针对许多种攻击的有效的恢复机制。
沙盒技术:沙盒技术涉及在程序不能够进行任何可损害系统的操作的受控环境中执行软件程序。Java“虚拟机”支持沙盒技术,使得可执行非受信的小程序(applet)(诸如那些经由因特网下载的)。
安全模块:许多安全系统使用抽取式安全模块,使得安全性升级可在不必费力花钱地替换系统的其它部分的情况下执行。举例而言,抽取式安全模块用于许多付费电视系统中。
软件更新:安全的软件更新可通过接收提议的软件更新、检验验证所述更新的数字签名或消息鉴别代码、接着(如果签名有效)执行更新而执行。举例而言,已知数字音频播放器可接收代码更新、检验关于更新的数字签名或消息鉴别代码并(如果有效)更新其代码。用于确保以正确的顺序(例如,使用顺序计数器)应用更新和用于从失败的或不成功的更新恢复(例如,通过回复到前一软件版本或通过激活专用恢复代码)的方法也是已知的。软件更新可实质上经由诸如因特网、光学媒体、盒式只读存储器等等的很多种分发机制而传递也为已知的。软件更新已用于通过将代码更新与信号一起分发到解扰器来防止付费电视盗版,所述解扰器应用并成功执行新的代码以计算下一视频片段的正确的解密密钥这些更新被普遍用于通过禁用或甚至破坏未授权的解扰器来防止未授权的观看。
隐写术(Steganography):隐写术涉及将信息隐藏于数据中。举例而言,已知可将加密数据置于图像或录音的最低有效位中。因为低阶位一般显现为随机的,且由强加密算法产生的密文在没有密钥的情况下无法区别于随机数据,所以获取此图像或录音但不知道解密密钥的攻击者甚至不能够判定是否存在任何隐藏数据。
防篡改:已知许多用于设计和构造抗攻击的装置的方法。防篡改硬件普遍用于需要防止攻击者对装置进行逆向工程或从密码模块提取密钥的系统中。举例而言,Wave Systems出售被称为“Embassy”的基于微处理器的防篡改集成电路产品,所述产品可与内容播放器或通用计算机集成且据宣传可用于保护数字内容分发的安全。用于实施防篡改软件的方法也已提出(例如,参见Aucsmith等人的第5,892,899号美国专利。)
叛逆者追踪:已提出叛逆者追踪方案,通常通过追踪用于未授权装置中的密钥而回溯到为消费者特定的装置或已泄漏的装置来识别泄漏或攻击的来源。
水印技术:水印为嵌入于内容中的可由专用检测器检测但在播放时不影响(或最小地影响)人对内容的感知的信号。嵌入于图片、录音和图像中的水印已由版权持有者用于指示复制为未授权的。“稳固”的水印已知可承受格式之间的转换(包括从模拟输出重新记录)且针对试图去除水印的攻击提供不同程度的安全性。相反,“脆弱”的水印具有较少或没有承受格式转换的能力,但较容易设计且可承载更多信息。
尽管没有反盗版系统可完全地防止所有可能的攻击,但背景技术的系统不能提供对可解决问题的实际解决方案,所述问题诸如使用数字到数字复制或将受保护格式高速拆解为不受保护格式的偶然盗版行为。背景技术的许多系统的显著的限制包括(无限制性):
依赖于全局秘密:许多保护系统要求将解码所需的密码算法、密钥和其它信息保持秘密。因此,无法将解码过程记录于开放的标准文献中而不危害系统的安全性。同样,如果存有大量的实施,那么攻击者通过攻击最薄弱的实施可潜在地破坏整个方案。(此种攻击最近在DVD视频保护系统上发生了。)虽然所述系统可用于封闭的单一销售商环境中,但其不能够标准化且不提供有效的长期安全性。
缺乏标准化:内容出版商已热衷于不兼容的多种数据格式和解密算法。不同内容保护系统使得可使用不同商务模型,且已热衷于一模型的出版商很可能反对任何要求不同模型的安全系统。
与产品类型不兼容:许多安全特征不能够与所有产品类型结合。举例而言.用于个人计算机的可下载的纯软件播放器不能够包括防篡改硬件.类似地,频繁的软件更新难于传递给没有因特网连接的播放器。
用户界面:许多提议涉及复杂的用户界面。对于诚实的用户来说安全性应为不可见的。用户很可能会拒绝要求明确的用户参与的方案(例如,获取或输入授权代码)。一般而言,诸如汽车音响和视盘播放器的消费性电子装置必须易于使用,因为必须使许多用户满意,即使他们不阅读说明文档、讨厌技术问题、具有较差的视力或其它缺陷、或不熟悉播放器支持的语言。
法律挑战:某些安全系统要求竞争者之间的合作。归因于反托拉斯法规,所述合作可为违法的。
制造商得不到利益:制造商将反对会增加播放器成本、上市时间(time-to-market)、防止包括合法特征或以其它方式使其产品较不有效或较不理想的安全性特征。尽管半导体技术的进步在减少实现安全系统所需的成本,但设计并生产有效的防篡改硬件仍然为困难且昂贵的。因此,依赖制造商生产良好实施的内容保护系统将失败,除非其向供应的产品(offering)更安全的制造商提供真正的市场优势。
不确定的安全性策略:有效的安全系统必须规定用于判定是否允许或阻止用户请求的特定动作的规则或其它决策过程。在许多系统中,这些规则或过程并未很好地规定。
不灵活的安全性策略:内容保护系统具有支持用于不同出版商.内容类型、范围、重放环境等等的不同模式的灵活性是理想的。系统应当提供必要的灵活性而不变得过于复杂。
薄弱的长期安全性:安全系统必须足够的稳固和灵活以保持长期有效。背景技术的内容保护系统很少能够作为高级类(high-profile)格式的一部分持续使用超过几年,而流行的格式可持续超过30年。
攻击的不可跟踪性:如果攻击真的发生,那么系统应当能够识别攻击的来源,以使得可撤销已泄漏(或误用)的装置且起诉罪犯。
发明内容
本申请涉及一可采用在很多种互通性平台上提供灵活的且可更新的内容保护的方式而实施的可标准化的内容保护系统的各种实施例和方面。所述系统为参与者(制造商、出版商、艺术家和/或消费者,等等)提供了作出关于安全性和功能性的决定时的无比的灵活性。
一可与所述系统一起使用的示范性播放器(意即,一希望对受保护的内容解密或以其它方式访问其的装置)包括若干组件。第一个为一诸如用于一光盘驱动器的数据或媒体输入接口。为起始重放,播放器从所述输入接口载入数据处理命令的序列并使用一解释器或其它执行模块开始执行这些命令。此执行环境优选地提供一图灵完整性语言(Touring-completelanguage)(一可执行任何算法、服从播放器的存储器、用户界面和性能限制的语言)。从所述执行环境,所述内容可查询所述播放器以判定重放环境的配置并使用所述播放器的密钥执行密码运算。因此可对内容进行设计使得重放将仅在向查询提供满意的回应的播放器上进行。出版商也可提供有限制的重放。举例而言,较不安全的平台可提供CD音质的立体声音频或常规清晰度的图像,而更为安全的平台可提供更多的音频信道、高清晰度图像、更高采样速率和更高质量的压缩。即使在重放开始后,重放可保持由内容的数据处理命令控制。一示范性实施例包括执行稳固的、实质上实时(on-the-fly)的水印处理的能力。允许内容本身控制播放哪些数据区域使得通过在具有微小差别的输出数据版本之间选择而在输出中嵌入信息成为可能。通过分析这些差别可追踪盗版拷贝而回溯到一具体播放器。
因为所述内容包含并强制实施其自己的安全策略,所以出现的攻击可通过设计并发布有抵抗力的新的内容来应付。通过允许内容强制实施其自己的安全策略而提供的灵活性也允许支持艺术家的偏好、区域性“合理使用”规定,等等。新的播放器特征可通过增加新的内容可访问(content-accessible)的播放器功能而容易地增加。
从商业角度看,任何可用于将内容出版商和消费电子制造商联合在提供最大可能的安全性的共同目标下的内容保护系统需要符合于所述出版商和制造商的商业和操作限制。本文中所揭示的系统允许出版商判定其自己的安全要求、接着允许内容本身实施考虑到多种因素并判定是否(或如何)在每一环境中播放的策略。同样,可激励制造商设计可提供良好安全性且不促进盗版的产品,使得其消费者可接触可能的最广泛内容。
附图说明
图1展示使用背景技术的内容保护方法的媒体播放器。
图2说明使用本文揭示的内容保护方法的示范性媒体播放器。
图3说明一示范性实施例的解密部分。
图4说明用于在不需要集中的代码签名机关的情形下保护对非易失性存储器的访问的播放器方法的一示范性实施例。
图5说明当附着到非易失性存储器插槽时的示范性验证过程。
具体实施方式
图2展示使用物理媒体200的播放器的一示范性实施例。重放过程由可通过媒体接口205访问媒体200的处理器210控制。当安装媒体200时(例如,当将其首次插入或重新初始化系统时,等等),处理器210以初始化媒体接口、读取媒体的目录(table of contents)并认出所支持的保护系统而开始。如果这样,那么处理器将媒体200的较小初始部分载入执行和数据RAM 220中。
处理器210使用解释器215开始执行由所载入媒体部分规定的数据处理运算。解释器215提供一组预定的数据处理运算,根据其可完成更复杂的任务。解释型语言优选地为巡回完整的(Touring-Complete)。图灵完整性程序设计语言的特征在于在一所述语言中可实施的算法可在任何其它语言中实施,且实施将具有类似的渐近性能特征。图灵完整性程序设计语言的实例包括(无限制)C、C++、BASIC、Fortran、Pascal、Java和实质上所有的汇编语言。
所载入部分通过调用由解释器215提供的过程调用而继续。尽管载入RAM 220中的初始数据可相对较小,但是运行于解释器215上的代码通过过程调用可从媒体载入额外的数据(包括代码),从而允许执行更复杂的运算。
其它过程调用允许内容判定重放环境配置225。内容因此可分析重放环境特征(例如,播放器类型、请求的用户动作,等等)来判定重放是否应继续。在一示范性实施例中,如果检测到可改正的问题(例如,如果媒体包含用于播放器的安全性固件升级),那么可处理这些问题。如果支持,那么内容也可查询输出接口250和(如果支持)目标程序/装置260(例如,放大器、数字扬声器、扬声器驱动程序,等等)以检查安全性特征、载入密码编译密钥、规定输出参数(例如,如果安全性不确定,那么规定降低的输出质量),等等。
在一示范性实施例中,内容也可查询密码启示器230,其可实施于外部抽取式安全模块235(诸如智能卡,等等)中以允许安全硬件升级。启示器也可实施于(无限制性)处理器210、播放器中的其它硬件、媒体、诸如扬声器的附加装置等等中。密码启示器230可提供给内容关于播放器身份的可验证的证据。对启示器230查询的结果可用于对随后的内容或代码部分解密,从而提供没有有效密钥(或密钥已撤销)的播放器不能够对内容解密的强加密保证。
在一示范性实施例中,解释器执行由“沙盒”中的内容所规定的数据处理命令,意谓内容不能够接触密码秘密(诸如启示器密钥),其原本可能危害播放器的安全。在不一定所有内容均为值得信赖的情况下,沙盒技术是有用的。举例而言,攻击者可设法产生试图从播放器提取密码编译密钥的恶意内容。(下文提供关于示范性密码启示器及其操作的额外信息。)
如果内容判定重放应不继续(例如,如果用户试图复制且内容经配置成禁止复制),那么内容可报告错误并拒绝所请求的动作。或者,内容可控制再现和/或输出过程以降低输出的质量,使得未授权的拷贝的质量降低,且因此具有较低吸引力。
如果内容判定重放应继续,那么内容等候来自播放器的规定重放应从媒体上的特定位置(例如,特定的轨道)开始的信号。解释器215使用当安装媒体时载入执行/数据RAM 220中的数据处理指令来处理请求。如果内容决定重放应继续,那么其使用过程调用以控制媒体接口205开始从媒体200上的适当位置载入加密的内容。内容规定用于块解密模块240的有效解密密钥和参数,所述块解密模块240从RAM 220(或者,直接从媒体接口205)检索加密的内容并将其解密。经解密的内容接着提供到输出接口205,其将所述内容转换成适于目标程序或装置260的模拟或数字格式。随着重放继续,由解释器215处理的数据处理指令可载入新的解密参数、规定将从媒体200读取的新的数据区块,等等。当重放完成时,内容可重新初始化RAM 220。
在以下部分提供了关于解释器、重放系统的和其它实施例及方面的额外信息。
回应攻击
广泛实施于软件和低成本消费性电子装置中的反盗版系统并不能够防止所有可能的攻击。本文中所揭示的技术可用于在受到攻击后促进以实质上阻止现有攻击的方式来制作新的内容。虽然职业盗版者可设法不断地寻求并安装新的规避系统,但是偶然的盗版将涉及不断争取开发和维护攻击工具,且因此将有希望比仅合法地购买内容更加困难。以下部分描述如何将本文中揭示的技术用于处理某些常见攻击。
第一种攻击涉及试图使用未泄漏的播放器执行未授权的动作。举例而言,可制作内容以允许从原始媒体复制但不允许从拷贝复制。如果试图从拷贝复制所述内容(内容可(例如)通过检测在复制过程期间插入的修改或通过将当前媒体的序号和/或类型与原始媒体比较而识别这种情况),那么解释器代码可阻止重放。或者,解释器可允许以降低的保真度播放内容(诸如,即使具有较高采样速率的多信道音频为可用的,但仍播放具有44.1千赫采样速率的立体声音频)或通过插入额外的反盗版警告来播放内容。因此,通过分析提供到解释器的信息,在未泄漏的播放器上可检测并处理不适当的用户请求。
第二种攻击涉及播放器的密码编译密钥的泄漏。如果播放器的密码编译密钥已泄漏,那么攻击者可通过仿真密码启示器和(视情形)提供对关于重放环境的查询的虚假回应而(至少在理论上)完全地仿真已泄漏的重放环境。在受到所述攻击后,安全性可通过使未来内容中的解释型代码要求并未提供于已泄漏的装置中的至少一密码编译密钥而重新建立。如果特定的播放器模型或制造商是许多攻击的来源(例如,因为播放器实施具有不充分的安全性),那么出版商可产生无法在所述平台上播放(或将以降低的质量播放)的内容。
第三种攻击涉及使特定的一段内容或包含类似的解释器安全代码的一组主题泄漏。可潜在地通过修改内容本身以避开安全检查或通过产生经定制以播放目标主题的恶意解释器(malicious interpreter)而发起所述攻击。所述攻击可通过在未来内容中运用不同或更好的保护软件来应付。
第四种攻击涉及将内容从受保护媒体复制为不受保护的格式,接着以新格式再分发所述内容。没有内容保护系统可完全地防止所述攻击,但是本文中揭示的技术和系统提供了可用于追踪一泄漏而回溯到特定装置的强大的、灵活的水印能力,接着可撤销所述特定装置以防止未来攻击。因为主动地上载内容以进行盗版的用户数量相对较少,所以盗版行为可通过识别并撤销这些用户的播放器而显著地减少。可通过选择性地略过密文的一些部分而在解密输出中引入极细微的差别。举例而言,在一示范性实施例中,内容可通过控制播放器的解密模块解密并输出第一密文部分、接着略过第二密文部分而水印“零”位。为水印“一”位,内容可控制所述模块略过第一密文部分并输出第二密文部分。通过对一系列所述位编码,内容可水印有解释器代码可利用的任何数据,包括(无限制)播放器身份、密码运算结果、用户动作描述、输出装置信息等等。如果发现了内容的盗版拷贝,那么可对水印进行分析以追踪非法拷贝而回溯到单一播放器,接着可在未来内容版本中撤销所述播放器。因为有可能确切地证明特定的拷贝源自特定的播放器,所以此能力也适用于执法和取证用途。因为考虑制造非法拷贝的人会由于知道其可能被识别、抓住和起诉而被吓阻,所以用于追踪拷贝的特征也可用于抑制盗版。
当然,没有消费者易用(consumer-friendly)的反盗版系统可以可靠地防止在所有环境中的所有可能的攻击。举例而言,可从模拟输出记录音频和视频。(即使水印已嵌入于内容中,但没有水印检测器的记录器是可用的。)从模拟输出截获的数据接着可被重新制作于新的数字或模拟媒体上,并在没有原始的安全性特征的情况下被再分发。类似地,由具有制造精确的媒体拷贝所需的设备的职业盗版者所制造的拷贝不能够由播放器检测到,但是本文中揭示的技术及系统可帮助防止媒体克隆。举例而言,媒体上的光盘制造商标识符可由内容检查以确保诚实的或粗心的复制设施不会被盗版者欺骗。媒体类型标识符可防止在只读媒体上出售的内容被再分发于可记录媒体上。对于具有因特网、电话/调制解调器或其它网络支持的播放器而言,内容在重放(或首次重放)之前可(例如)从服务器获取鉴别以验证媒体是有效的。具有非易失性存储器的播放器甚至可存储已知为坏的媒体序号的表格,内容和/或播放器可查询所述表格以判定媒体是否已撤销。
查询和控制重放环境
可对内容进行配置以决定其是否会允许其本身被解码。为辅助作出此决定,播放器可提供给内容关于重放环境的信息。尽管非常有限的信息(诸如用户所请求的动作和播放器模型)在许多情形下可为足够的,但是需要更加详细且准确的信息,使得内容可针对重放是否应继续而作出更加全面的评估。尽管提供给内容的具体信息和能力取决于播放器实施,下文描述了(无限制)可提供到内容的某些示范性功能和能力。应注意,对于由多个连接的组件(诸如输出端口、连接的输出装置、操作系统装置驱动程序、安全模块,等等)构造的播放器而言,可为这些连接的装置以及包含解释器的播放器的主要部分提供某些或所有以下信息。
安全支持信息:安全规范版本、所支持的查询功能、和/或安全模块构成因素(可替代的硬件、嵌入的硬件、可更新的固件、ROM固件、PC软件,等等),等等。(下文详细论述示范性密码处理功能和重放控制/解密功能。)
制造商信息:名称、标识符、网站、公开密钥/证书、制造批次、制造日期/时间、制造区域、制造国家、制造商地址、技术支持联系信息和/或制造商保证信息,等等。
装置信息:生产线、序号、模型号、固件/软件版本、装置公开密钥/证书标识符、GPS位置或其它物理位置/区域、支持内容(content supported)的编码译码器类型、网络/因特网支持信息、网络地址、装置电话号码、IP地址、水印支持、解释器性能等级、安全认证等级、装置销售商、装置零售商、装置构成因素和/或安全规范,等等。
用户信息:用户名、地理区域、国家、地址、GPS位置或其它物理位置/区域/国家/等等、用户电话号码、IP地址、e-mail地址、网址、首选语言、对有争议材料的容忍度、首选支付方法/帐号、支付限制、购买历史和/或隐私首选项,等等。
媒体控制:查询媒体格式(可记录的对不可记录的)、媒体序号、记录装置类型、记录装置所有者、记录装置序号、记录装置安全性信息和/或记录装置水印检查能力,等等。功能也可允许从媒体读取、写入媒体、格式化媒体、测试媒体和/或弹出媒体,等等。额外的功能可提供对密码函数或由特定媒体格式支持的其它特殊能力的应用。
请求的用户操作:例如,播放、记录、转化成新的格式、载入到便携式装置、制造首个拷贝、制造多个拷贝、和/或同时播放/记录,等等。也可给予内容起始或修改所请求的操作的能力。
输出信息:关于输出端口、输出端口配置、输出端口安全性特征、连接的装置、输出数据格式和/或输出数据质量/分辨率等等的信息。如果支持,内容可直接查询输出装置以获取关于装置的额外信息、和/或请求密码操作,等等。播放器也可允许内容修改这些参数,例如,如果安全性较差,则规定质量降低的输出。
环境:平台上其它运行的程序和装置驱动程序的身份/散列值/版本;存储器的内容或散列值;已安装的攻击检测模块的版本;系统扫描攻击的结果和/或篡改检测器的状态,等等。这些功能也可允许内容修改存储器,例如,改正其它程序中的安全性弱点。
时间:日期、时间、时区、消逝的时钟周期计数、自上次重置以来的时间、自制造以来的时间、自上次安全性升级以来的时间、自上次更换电池以来的时间和/或电池估计剩余寿命,等等。
连接性:判定播放器通信能力、检查当前连接状态、建立网络连接、建立调制解调器连接、规定建立网络连接的临界状态、检查/规定连接安全性特征、传输数据、接收数据、关闭连接和/或使连接空闲,等等。
用户界面:显示用户消息、显示歌词、显示图形图像、打印图形图像、显示广告/促销消息、识别可用的用户界面控制、获取用户输入、使用播放器的语音合成器来对用户播放语音和/或报告错误,等等。
水印控制:选择待输出的内容区域、选择外部水印算法、控制外部水印检测器和/或检查标记检测器(mark detector)状态,等等。
其它:播放器/重放状态信息、按次付费计费控制(例如,基于播放器的资金来源)、错误处理、重放终止、保护非易失性存储器支持(见下文),应用播放器固件更新和/或调用外部模块(诸如动态链接库),等等。
为确保实施之间的互用性(例如,使得内容可在内容最初出版之后所设计的播放器环境中有效地发挥作用)和简化编辑安全性内容的任务,功能和参数的某些标准化是有用的。对于其中多种不同制造商的产品会提供相同类型的信息或操作的功能来说标准化尤其是有用的。举例而言,可标准化用来允许内容判定播放器构成因素(家庭音频/视频、便携式、汽车用的、纯个人计算机软件、具有硬件辅助的个人计算机软件、专业制片厂、影院,等等)的功能和回应代码。标准化的额外益处是,防止了制造商设法通过以预先存在的内容不能理解的非标准格式来报告有关的风险相关(risk-related)信息而避免安全性控制。
当然,也可对系统进行配置以允许制造商增加所有权功能,以供选用其的内容制造者使用。对于希望为其产品增加新的特征的制造商而言增加新功能的能力尤其有价值,因为他们可增加这些特征,然后与内容出版商建立合作的商业关系以支持所述特征。可容易地对所述实施例进行扩展,同时(视需要)维持向后兼容性。
制造商负责向内容提供准确的信息。虽然内容一般不能够直接检验其所接收的大多数信息的准确性.但是在制造商具有确保此信息正确的强烈动机的情况下,这并不是严格地必需的。举例来说,出版商可防止其未来内容在由无信誉的制造商制造的产品上播放。
尽管播放器为提供给内容的信息提供密码鉴别可为有益的(例如,通过包括使用已认证的播放器或制造商密钥而发布的数字签名),但是所述鉴别对于多数数据并非为强制的。对于系统的经由潜在地非受信接口而连接的其它部分或输出装置(诸如要求高质量的数字音频数据的数字扬声器)来说,密码鉴别更为重要,以使得可检测并避免模仿受信装置的恶意装置。
密码处理
除提供描述重放环境的信息以外,示范性播放器也实施可由内容调用的密码运算。这些运算可具有类似密码启示器的行为,从而允许内容提供输入数据(例如,64-位明文区块),并返回密码计算的结果。在一示范性实施例中,密码计算的输入包括至少一密钥(其值一般未知且内容无法访问)和内容规定的输入数据。
以下为可提供给内容的用于包括(无限制性)鉴别重放环境、导出内容解密密钥等等用途的密码原语(cryptographic primitive)的实例(无限制性):
块密码启示器:启示器使用秘密密钥对输入消息加密(或解密),从而产生密文(或明文)结果。
散列函数启示器:通常使用秘密密钥来对输入消息进行散列处理(例如使用诸如HMAC-SHA的算法)以产生结果。
数字签名启示器:使用秘密(私人)密钥对输入消息进行数字签名以产生结果。所述功能也可向内容提供公开密钥和其证书。
随机数字产生器:随机数字产生器可提供给内容不可预测的信息,(例如)以用于防止在线连接中的回复攻击。
数学函数:可提供基础数学运算以帮助内容最优化其计算过程。举例来说,最优化的模乘法或指数函数可由内容使用以执行Rivest等人的第4,405,829号美国专利的RSA算法,以产生并检验数字签名并对消息加密和解密。
最优化的密码原语:标准密码算法的最优化实施可帮助提高性能。这些运算可用于帮助对数据区块进行解密或散列处理,所述数据区块包括(无限制)解释器代码空间的区域或从媒体载入的内容的区段。
解密控制:如果内容判定重放已授权,那么解释器代码可使用每一内容片段的正确的解密密钥来初始化内容解密模块。另外,解释器代码可规定应被再现或略过的内容部分(例如,以允许重放期间的实时水印插入)。为确保解释器与来自媒体的内容流之间的同步,密钥改变(或略过的区域)可被预先规定,接着由内容中的信号触发。举例来说,一示范性实施例可允许内容规定当在密文中出现时触发密钥改变的64-位的值、在密钥改变之后将略过的密文字节数和将使用的新的密钥值。
密钥管理:这些函数允许内容判定哪些密钥是播放器已知的。
在运算未并入随机参数或其它所述可变数据的密码启示器的一示范性实施例中,可对系统进行配置以使得可预先计算特定输入的预期结果(例如,当制作内容时)。出版商可因此规划所述内容以向启示器提交经选择的输入,接着检验预期的结果已被获取。缺少授权的密码编译密钥的恶意播放器将不能够计算正确的启示器回应。因为可能的启示器输入的数量是庞大的(例如,对于使用具有128位的块大小的块密码的启示器为2128),所以攻击者预先计算或存储所有可能查询的结果实际上是不可行的。
除验证有效播放器以外,密码启示器也可用于识别无效播放器。举例来说,如果从合法播放器提取的密钥被用于未授权的用途,那么可制作内容使得其将拒绝在包含被撤销的启示器的播放器上播放。因为没有有效密钥的情况下内容将不播放,所以未授权的播放器必须包括窃取的密钥。然而,通过使用这些窃取的密钥,未授权的装置将其状态暴露给意识到泄漏的新内容。
很多种方法可用于并入启示器结果或检查特定启示器查询回应是否有效。最简单的方法为仅仅执行与预期值的比较。因为这可(至少在理论上)由表现为似乎所有比较均匹配的恶意设计的解释器所回避,所以内容可包括预期会失败的“假”比较或经设计以挫败恶意解释器的其它所述测试。启示器本身也可用于解密代码或影响自修改代码。举例来说,启示器的输入可为所要代码的加密版本。取决于其配置,所述启示器因此允许内容出版商将其包括在仅可由授权的播放器或播放器的子集解密的媒体代码上,从而帮助使潜在的攻击者不能得到内容的代码。使用启示器的另一方式为使用其输出作为密码编译密钥或使用其以导出密钥。这些密钥可接着(例如)用于解密代码、内容、其它密钥或任何其它数据。此灵活的解密能力可用于在内容中实施很多种协议和策略。举例来说,如果播放器具有足够分类的密钥,那么可对内容进行规划以使用诸如Fiat和Naor的方法的方案(参见A.Fiat和M.Naor的“广播加密(BroadcastEncryption)”,Advances in Cryptology,编者Douglas Stinson,第480页;Springer Verlag,1993)。视需要甚至可实施诸如Ginter等人的第5,982,891号美国专利中描述的复杂的访问控制系统(当然,前提为播放器提供必需的用户界面、网络、数据存储器和密码函数)。
对于制作内容,出版商可得益于能够访问启示器输入/输出对。在启示器使用诸如RSA的不对称密码系统的私人密钥的情形下,出版商简单地获取公开密钥并使用其以执行启示器运算的逆运算。对于使用块密码所构造的对称启示器,播放器制造商可为出版商计算提供于每一播放器中的对称启示器的逆运算。举例来说,如果播放器启示器使用块密码解密具有一个秘密密钥的256-位数据区块,那么制造商可提供给出版商对对应的加密功能的访问。因为对逆启示器的访问不允许泄漏启示器,所以制造商可(例如)使用SSL经由公众可访问的网络服务器来提供逆启示器计算。制造商也可提供给出版商来自随机选择的启示器输入的输出。(尽管制造商可向出版商提供如在播放器中实施的实际启示器函数,但是这些函数可潜在地被误用于构造仿真合法播放器的未授权播放器。)
用于将密钥分配到播放器和制造商的具体方法取决于具体实施例和安全目标。举例来说,在一示范性实施例中,播放器被分配了多种对称密码启示器密钥,包括(无限制):从所述密钥的较大全局池(伪)随机选择的播放器对称密钥;由制造商(伪)随机生成的播放器专用对称密钥;对制造商、播放器模型等等来说是唯一的对称密钥;和/或鉴别播放器不具有特定特征(例如,不是由特定制造商制造的)的对称密钥。在此示范性实施例中,内容可通过调用可返回所支持密钥的列表的单独函数而识别哪些密钥实施于播放器中。播放器也可包含不对称密钥。举例来说,在示范性实施例中,播放器具有:播放器专用的公开/私人密钥对;由制造商通过使用制造商的私人密钥签名播放器的公开密钥而发布的播放器证书;由验证制造商的公开密钥的根密钥发证机关(root key issuing authority)发布的证书;用于验证访问播放器的安全存储区域的请求的公开密钥(见下文);和/或用于验证播放器固件更新的公开密钥。
在涉及多个播放器制造商的基础设施中,使一个或一个以上中央管理组织管理播放器、制造商等等的密钥可为有帮助的。中央管理者也可有助于强制推行最低的安全标准、确保播放器向内容代码提供准确的信息、保留用于新制造商的密钥(使得其产品能够播放旧的内容)、跟踪泄漏的密钥、为内容出版商执行密码启示器运算,等等。
安全存储器和计数器
可用于内容的存储器通常为易失性的,从而在内容每次运行时提供给内容“干净的”执行环境。然而,对于某些特征来说,内容能够在播放之间和在主题之间存储数据是有用的。为满足此需要,播放器可提供给内容用于在播放之间维持状态的安全的、非易失性存储器。所述存储器可要求额外的安全保护以确保只有授权的解释型代码能够读取或修改非易失性存储器内容。对于出版商而言确保非易失性存储器的安全是重要的,以使得(例如)可信任此存储器来追踪离线按次付费观看历史,以用于后来的计费。在媒体上仅具有一个用于解锁每一存储器插槽的密钥是不够的,因为此密钥将很快被盗版者发现.从而危害到所有播放器的存储器插槽的安全.因此,一实施例提供了对访问这些安全的非易失性存储器区域的代码的清楚的密码鉴别。
在此实施例中,播放器包含非易失性存储器的若干区块,其默认地被锁定(意即,拒绝读取和写入)。播放器也包含用于鉴别解锁存储器区块的请求的公开密钥。为获得对此存储器区块的访问,内容调用一个将经授权以访问所述存储器的代码区块的数字签名当作输入的函数。此签名可使用嵌入于播放器中的公开密钥来检验,且规定了要解锁的存储器区块和在区块的每一部分中所授权的访问特权(任意的读取、任意的写入、增量、减量、归零,等等)。解释器检验数字签名并(如果签名有效)解锁存储器且执行数字签名的代码。以下展示此过程的用于对具有偶尔(例如,每月)的审计的离线按次付费内容计费的一实例:
(a)出版商X与播放器制造商Y协商对制造商Y的播放器的非易失性存储器中的4-字节计数器的控制权。
(b)出版商X为解释器编写一个检查存储器内容的函数。如果值低于支出限度,那么函数使计数器增量。否则,函数建立与出版商之间的因特网连接、传输包括计数器值、随机数和支付信息(诸如信用卡号或存储于播放器中的其它资金来源)的支付请求。如果出版商接受由计数器指示的过去购买加上当前购买的支付,那么出版商将密码授权传输到播放器以清除计数器,播放器检验所述密码授权且(如果有效)归零计数器。播放器通过重新锁定存储器并返回指示成功或失败的代码而结束。
(c)制造商Y用识别出版商X的存储器区域、访问特权等等的参数来数字签名存储器更新代码。
(d)出版商X制造包括已签名的代码的内容并将其分发到用户。
(e)用户的播放器开始载入内容,所述内容提供给用户一个购买选项。如果用户拒绝购买,那么重放不会继续。
(f)内容使用指向步骤(b)处编写的代码和步骤(c)处产生的数字签名的指针来调用存储器解锁函数。
(g)存储器解锁函数试图执行如在步骤(b)中描述的购买,并报告成功或失败。
(h)如果购买成功,那么为用户播放内容。否则,重放终止。
当然,通过使用上文所描述的安全计数器机制可采用更加复杂的购买机制。对于在内容中可实施什么的唯一真正限制来自播放器的能力和出版商的创造力。
包括(无限制)闪存、磁性存储装置(例如,硬盘)、有电池支持(battery-backed)的RAM等等的各种存储技术可与本文中揭示的系统和技术一起使用。(在背景技术中已知用于提供非易失性存储装置和用于加密或以其他方式保护所述存储装置的很多种方法。)安全存储装置可(无限制)定位于播放器之外,包括(无限制):在抽取式模块(诸如智能卡)中、在附着的输出外围设备(诸如扬声器、显示器、家庭网络中的远程装置,等等)中、远程地在计算机网络上,等等。例如,可基于可用空间、以保证的方式(例如,通过插槽号)或基于优先级而配置/再循环来提供存储器区块分配。因为清除或释放存储器插槽可导致未报告的按次付费记录的丢失,所以可给予内容规定可重写插槽的条件的能力。对于可同时播放多个主题但仅具有一组非易失性存储器插槽的播放器而言,锁定机制可为需要的以确保一段内容将访问正由另一段内容修改的插槽。
在一实施例中,预付智能卡由消费者购买并插入播放器上的插槽内。所述卡包含播放器可写入对应于按次付费内容主题的标识符的多个一次写入的存储器插槽。一旦写入,内容标识符被并入实施于所述卡中的密码启示器计算中。因此,通过在允许重放之前检验已存在正确的启示器,内容可检验购买已完成。
应注意,上文所描述的用于鉴别对播放器函数的调用的一般方法并不限于配合安全计数器一起使用。举例来说,相同的方法可用于保护对仅可由授权的出版商利用的特殊播放器特征的访问。因为所述途径提供了用于保护对计算函数的访问的通用但极其灵活的方法,所以其也具有区别于本文中所揭示的技术和系统的其它方面的适用性。
基于密码的安全特征对比基于语言的安全特征
安全策略可采用若干不同方式而执行。密码保护允许构造内容使得撤销的或未授权的播放器将没有解密内容所必需的密码编译密钥。未授权的播放器不能够访问其没有密钥的内容(当然,前提为使用有效的密码)。因为此途径仅提供给内容所有者在特定装置上阻止重放的能力,所以其相对较不灵活。(虽然更加复杂的实施例可使用不同的密钥集来提供更加详细的控制,但是基于密钥的控制缺少解决更加复杂的访问控制挑战所需的灵活性。)然而,其在处理特定播放器已泄漏或以其他方式被认为不应被信赖以具有解密内容的能力的情形时是极其有效的。
相反,基于语言的控制在播放器已泄漏(或出于某些其它原因为完全非受信)的情形下有效性较差,但是其可执行极其复杂的安全策略。如前文所提及的,内容可分析重放环境并调用密码启示器,且如果认为结果为不满意的,那么拒绝播放。此途径实质上提供无限的灵活性,从而使其理想地适于控制在通常表现诚实地但可支持某些出版商会希望防止的关于特定内容的操作(诸如拆解为不受保护的格式)的播放器上进行重放所涉及的风险。尽管攻击者可(至少在理论上)分析并攻击个别段内容(尤其是如果内容的代码编写地不好).但是这些攻击无法普遍化且可通过小心地使用密码启示器而可靠地对付。此外,本文中描述的解密控制能力使得观察到其内容的盗版拷贝的出版者能够识别已泄漏的装置并产生不易受攻击的新内容。
进展
需要向内容所有者提供长期保持安全的分发基础结构。先前的内容保护系统在此方面已极度失败;虽然实施者最初在寻求内容所有者对新格式的支持时对安全性是尽心尽力的,但是安全级别倾向于在一种格式确保成功后显著地降低。多种因素造成此下降趋势,包括:可攻击更多的实施(增加了出售易损产品的可能性)、随着更多受保护的内容变得可用而对盗版的需求的增长、和攻击者的技巧的增加。可对本文中揭示的系统和技术的示范性实施例进行配置以允许内容所有者即使在媒体格式已标准化后继续规定将如何保护其内容,同时允许实质上无限的可更新性,使得如果发现攻击,安全性不会永远丧失。
如果安全策略不是静态的,那么制造商具有持续的长期动力来提供有效的安全性。举例来说,内容所有者可有能力阻止在密钥已泄漏的装置或普遍用于盗版的产品上进行重放(或防止高质量的重放)。因此,与传统系统不同的是,产品制造商在进行竞争来以最低可能的价格提供其产品时不能够牺牲安全性,因为消费者也将寻求具有稳固的安全性的产品,因为这些产品将提供最好的和最可靠的重放体验。
即使本意良好的制造商也会偶然地制造出后来发现具有安全性缺陷的产品。因此,我们揭示了可用于回应泄漏和安全性弱点的多种方法。举例来说,播放器密码编译密钥和软件可使用数字签名的代码或密钥更新来更新。可在包含执行密钥更新的软件的媒体上将这些更新传递到播放器。举例来说,如果合法用户的播放器因为先前所有者泄漏其安全性而被撤销,那么新的所有者可拨打所述产品的技术支持电话并获取新的密钥。(当然,客户服务人员可希望获取诸如姓名、地址、信用卡号、电话号码、e-mail地址、IP地址等等的某些用户信息,以阻止盗版者拨打电话请求新的密钥以用于未授权的用途。)更新也可经由因特网(或其它网络连接)、调制解调器呼叫、经由远端控制或键盘的输入等等而分发。当然,只要有可能就应对更新进行密码保护,使得攻击者不能够使用更新过程注入泄漏的密钥或以其他方式攻击播放器。
制造商减少泄漏的后果的另一方式为包括一抽取式安全模块,诸如智能卡。智能卡将实施某些或所有密码启示器以及提供给内容的其它与安全性相关的功能。如果泄漏确实发生或如果发现安全性缺陷,有可能替换智能卡而不替换或升级整个播放器。应注意,可以仅仅提供智能卡插槽,且直至当出于安全原因有必要时才部署智能卡。为防止智能卡被从合法的播放器取下并用于恶意播放器中,可在将播放器和/或卡发送到消费者之前将智能卡密码地联系到接收器(例如,通过使其共享一个对称密钥)。
制作和DRM
内容所有者关注制作内容所涉及的任何新的成本是合理的。如果使用简单的安全措施,那么可运用本文中揭示的技术和系统以避免制作过程的新的重大成本。虽然开发执行复杂的安全策略的内容明显地会要求更多的开发和测试努力,但是此花费是完全可选择的。(其它保护系统完全消除此选择权,从而迫使所有内容出版商使用相同的安全系统、策略,等等。)
当然,因为本文中揭示的系统和技术也允许第三方DRM销售商提供安全模块和制作系统,所以出版商无需自主开发安全系统。这些销售商将通过提供最好的特征、最好的安全性、最低的成本、最大的灵活性、最大易用性、最好的性能、最小的代码大小、范围最广的撤销列表等等来竞争以得到出版商的生意。本文中揭示的技术和系统可充当一个平台,内容所有者能够基于所述平台做出其自己的安全性决策。
水印和泄漏追踪
在多数常规水印方法中,标记检测过程是标准化的并实施于大量广泛运用的产品中。此静态算法令人遗憾地造成了严重的风险,因为对检测算法的了解通常允许攻击者去除水印而不严重降低内容的质量。在一示范性实施例中,本文中揭示的系统和技术可包括实时水印插入,其不易受普通标记去除攻击的影响,因为标记格式、编码过程和检测过程全部由出版商选择。
在一示范性实施例中,出版商(或更准确地说,由出版商编写的控制程序)希望在某些输出内容中嵌入某些信息。可通过解密和输出第一内容部分或第二部分而编码此信息的每一位。这些部分可为媒体上的不同的加密区域且可使用不同的密钥而加密。这些部分之间的差别可由出版商在制作内容时选择,且可为从微小的变化直至完全的不同的任何差异。因为两个部分之间没有预定的关系,所以仅知道一部分(包括所述部分的解密密钥)的盗版者无法判定另一部分。
因为密码控制和基于程序的控制可用于选择哪些区域被解密,所以攻击者不能够判定替代的区域包含什么。实际上,(例如)通过对控制代码加密(使得不同播放器使用不同代码)和通过包括没有播放器或仅有极少数播放器可解密的假区域,可对内容进行设计使得攻击者甚至不能够识别替代的区域是否存在。
在一示范性实施例中,对内容进行编辑使得仅仅所有播放器的一个子集具有解密内容的某区域的每一版本所需的密钥,然而大体上所有的播放器都具有解密所述区域的至少一版本所需的密钥。因此,通过分析此区域的未授权的拷贝,出版商可判定关于攻击者的信息。应注意,此甚至在攻击者设法分析了一个(易受攻击的)程序并解密了一个以上替代区域的情形下仍是成立的,因为若干区域的所得组合仍向出版商揭示了哪些版本被解密。最终,用户避免将其身份(或其播放器的身份)暴露给出版商的反盗版执行专家的唯一可靠的方式是开始就不参与盗版。
因为标记检测过程无需标准化,所以此通用标记方法不同于常规的水印处理。此差别允许显著增大的安全性;实际上,可显示不存在对此标记方案的普通攻击。此外,因为经水印的位在输出中产生差别,所以这些水印可极其稳固且可经设计而在数字/模拟转换、编辑、格式转换、恶意攻击等等后继续存在。
如何配置和使用内容标记能力的决定通常由出版商作出。某些艺术家会希望避免任何会进行任何修改(无论多小)的技术,从而排除了在其作品上使用水印特征的可能性。在其它情形下,某些类型的内容被广泛地盗版,且是大量使用标记能力的适合的候选物。虽然各部分通常被选择而仅具有细微的差别,但是编码哪些替代版本的选择、如何在可能的输出版本之间选择和这些部分的解密密钥的管理是由内容控制的。因为标记能力由与内容结合的数据处理指令所控制,所以所述技术可用于其它特征,包括(无限制性):实施其中赢家的播放器输出一个祝贺消息的抽奖(sweepstake)、向其播放器安全性不足的用户传递安全警告、和向某些用户提供附送内容。
当然,其它水印方案也可与本文中揭示的技术和系统一起使用。举例来说,传统水印(对于其标记检测算法是标准化的)也可由内容的代码或由外部水印嵌入电路(其可由内容控制或可不由内容控制)嵌入于输出中。类似地,可读出(同样地,由内容的代码或由外部检测器)传入内容中的水印,(例如)以检测制造未授权的拷贝或引入未授权的内容的尝试。对嵌入哪些水印和如何回应已检测的水印的选择可实施于播放器和/或内容中。
实例迁移路径:CD音频
如今,数字内容的绝大多数以未受保护的或受最小程度保护的格式分发。举例来说,CD音频标准不包含反复制特征,且DVD视频中的保护方案已受到很大地破坏。因为旧式媒体播放器不支持足够的安全性,所以需要升级或替换其。新的安全系统的成功取决于建立巨量的兼容播放器。
通过使本文中揭示的技术和系统与用于制造受复制保护的CD的现有方法组合,制造向后兼容的CD是可能的。所述CD将利用非标准CD格式化以制造在多数音频CD播放器上正确地播放但使基于计算机的拆解软件混淆的光盘。经授权的(例如,得到许可的)个人计算机软件也可通过改正不正确读取的或以其他方式使计算机混淆的部分来播放光盘。因此,允许在(多数)旧式音频播放器上重放,因为其可播放非标准的(受复制保护的)红皮书音频部分,且允许在具有适当播放器软件(其可(例如)包括于CD上或可经由因特网下载)的个人计算机上进行重放。尽管长期支持对现有CD音频播放器的向后兼容性可引入额外的安全性风险,但是其作为鼓励运用可播放新的安全格式的音频播放器的长期策略的一部分可为有益的,以使得(最终)内容可仅以安全格式出售。
实例:高清晰度DVD
由当前DVD视频播放器使用的复制保护系统已受到很大地破坏。因为数百万的DVD播放器已出售且不可升级到新的保护系统,在不放弃对这些旧用户的支持的情况下没有直接的方式来升级当前DVD格式。幸运地是,DVD播放器的已安装的基座仅设计用于支持“标准”清晰度电视(例如,NTSC的525线,PAL的625线,等等),但不支持由高清晰度电视(HDTV)格式提供的更高质量的信号。因为旧式播放器不支持HDTV,所以本文揭示的新的安全特征可并入于支持HDTV的DVD上。
在一示范性实施例中,播放器将具有用户可接近的媒体输入端(由用于一个或一个以上光盘的机械化托盘组成),所述输入端将媒体装载到一个主轴,在所述主轴上媒体被旋转并使用激光被读取。从媒体读取的数据传输到一个基于微处理器的电路,其分析光盘编码以判定光盘容量、格式化类型和安全方法。如果光盘为使用旧式安全方案(CSS)的旧式(低分辨率)DVD,那么使用背景技术中已知的方法播放光盘。如果光盘为使用如本文所揭示的可编程安全方法的高密度DVD,那么从光盘载入用于内容的安全策略的程序代码(数据处理指令)并由播放器予以执行。播放器视情形也可支持使用改良的安全性的低密度DVD以及使用旧式保护方法的高密度DVD(尽管对于新的内容使用已受到很大破坏的安全方案一般无甚益处)。从DVD播放器的输出的质量可由内容控制。举例来说,如果播放器和/或HDTV输出装置不提供足够的安全性,那么内容可选择输出较低分辨率的输出。在此情形下,内容可(举例来说且无限制)控制播放器将HDTV信号向下转换到较低分辨率(例如,使用专门设计用于此用途的降级模块)、仅提供给播放器解密所述信号的较低分辨率部分所需的密钥(且拒给较高分辨率部分所需的密钥)或控制播放器输出内容的与较高分辨率版本分离地编码于媒体上的低分辨率版本。
解释器结构
在一示范性实施例中,解释型语言基于DLX汇编语言。基本DLX处理器结构在背景技术中是熟知的(例如,参见Hennessy等人的Computer Architecture:A Quantitative Approach,第二版)。执行于解释器的存储器空间(在一示范性实施例中,其由8兆字节的RAM组成)中的代码经沙盒处理(sandboxed)使得其仅可访问此存储器和处理器的寄存器组。无效指令(或其它运算)可作为NOP处理(意即,什么都不做)或可触发一个异常(exception)。类似地,逾界(out-of-bounds)存储器访问可触发异常或可被改正(例如,在从8兆字节地址空间进行32-位读取的情形下,通过使地址与十六进制0x007FFFFC逻辑乘来使逾界访问绕回到存储器的开始并确保32-位对准)。
DLX“trap(自陷)”指令用于提供对外部过程调用的使用。“trap”指令调用播放器中的可扩展到沙盒外的运算(意即,超出正常指令可访问的寄存器和存储器)。对于所述运算的描述,参见“查询和控制重放环境”部分。
对于专用的硬件实施例而言也可能使用DLX处理器的ASIC或FPGA(或其它硬件)实施而不是基于软件的解释器/仿真器,在此情形下“trap”指令可(例如)经配置以触发处理器进入一个更高特权级别、扩大其地址空间以包括一ROM或EEPROM区域(例如,通过启用额外的地址线)、存储返回程序计数器(return program counter)并跳转到经扩大的地址空间中的预定地址以进行进一步处理。更高特权级别也可启用处理器核心中的额外的指令或能力,诸如与外部外围设备(例如,非易失性存储器、密码加速器、密钥管理组件、光学媒体驱动器、数据网络、卫星接收器,等等)互相作用的能力。硬件实施中的存储器保护能力可包括限制地址线的数量(从而防止逾界访问)或使用背景技术中已知的其它存储器保护方法。在完成“trap”调用后,处理器将减少特权级别并继续执行内容代码。
在用于解密分发于高密度光盘上的视频的一示范性DLX实施中,提供“trap”运算以允许内容从光盘读取数据。为从物理媒体载入数据,内容代码通常规定一个地址(例如,光盘上的扇区号)、数据在DLX存储器空间中的目标地址、将载入的数据量和(视情形)解码参数(诸如错误改正多项式(error correction polynomial)/参数、解码密钥,等等)。内容可使用数据执行任何方式的处理步骤,甚至包括将数据作为代码执行。因为光学驱动器、硬盘驱动器和其它数据源一般具有相当大的等待时间(尤其当执行诸如搜寻新的轨道的操作时),所以单独的“trap”运算可用于预先规定预期会需要、请求数据、检查待处理请求的状态和/或实际地将数据载入于DLX存储器空间中的区域。
内容代码也可调用trap运算以在存储器上执行高速密码运算。举例来说,示范性批量解密“trap”运算利用AES加密算法并允许内容规定(a)从存储于播放器中(或播放器可访问)的秘密密钥之中选择的指数、(b)加密的密钥、(c)待解密的数据在DLX存储器空间中的地址和(d)待解密的数据的长度。trap(a)使用由指数值识别的密钥来对从内容接收的加密密钥解密,并(b)使用已解密的密钥在ECB模式中利用AES算法对在指示的地址处的规定数量的数据区块解密。可由指数选择的密钥-解密-密钥可包括存储于播放器中的密钥(包括(无限制性)播放器专用密钥、制造商密钥、群组密钥、媒体密钥等等,其视情形可存储于具有密码能力的内部防篡改芯片和内部非易失性存储器中)、存储于外部装置中的密钥(包括(无限制性)密码模块、光盘驱动器、可访问远程网络的装置/服务器、显示器、扬声器等等)。为判定哪些密钥是可利用的,内容代码可分析诸如播放器的类型、播放器的序号、播放器所包括的密钥列表/描述(且视情形由播放器制造商或一信任方数字签名)、经由网络获取的数据、和关于播放器或重放环境的任何其它可利用的数据(参见“查询和控制重放环境”部分)。任何方式的其它密码能力也可由内容提供给播放器,包括(无限制):加密、解密、对称算法(具有任何操作模式的流密码、块密码、散列算法、消息鉴别代码等等)、公开密钥算法(签名、验证、加密、解密、密钥管理、零知识(zero knowledge)操作,等等)、密钥和证书管理,等等。
内容代码可对解密结果执行额外的处理(或预处理)操作。举例来说,可执行XOR运算以将ECB解密结果转换成CBC解密结果。可应用解扰步骤以防止盗版者使用从播放器提取的密钥解密内容而不执行其解释型代码。可应用的步骤的实例包括(无限制):切换(toggle)位、使用简单的二进制运算进行改变、重排序区块、安置或插入偏移/地址(例如,以组合一个符合MPEG-2或其它视频压缩标准的数据流)、应用公开密钥运算(诸如以复合数为模求模平方或立方)、应用对称密码运算和更新内部检验和。也可将后处理步骤用于引入或修改取证水印(例如)以允许追踪拷贝到具体装置。经解码/经处理的数据也可使用解释器执行,从而允许解密/重放代码本身的部分以加密的形式分发并允许内容利用很多种代码隐藏和模糊技术,诸如使用自修改代码。甚至可能构造多功能数据,例如,当被执行时执行有用的任务但也表示有效的压缩视频的数据。
当处理完成且预备好输出数据时,内容代码可调用播放器中的额外的过程调用(例如,DLX“trap”运算)以向用户输出数据。所述调用可(例如)传送数据到一个或一个以上视频解码器(例如,MPEG-2解码器)、音频解码器(例如,MP3或AC-3解码器)或图形重叠系统(例如,具有透明/重叠能力且支持静态图像和/或动画引擎,诸如GL、ShockWave或Flash)。如果适当,那么数据将被转换(例如解压缩),接着被呈现。呈现可包括将数据传送到诸如音频扬声器或视频显示器的一个或一个以上物理分离的装置。
将解密和解压缩/输出作为独立的API调用的实施例的优点为,其允许内容进行更大控制、但潜在缺点为,会增加内容需从存储器读取和写入存储器的次数。然而,实际上随机存取存储器通常充分地快,使得甚至对于诸如具有影院播放质量的高清晰度视频的极高位速率的内容来说,额外的等待时间也是可控制的。在高速实施上,因为解压缩可实施于解释型代码中,所以播放器编码译码器可为不需要的。播放器也可提供单指令多数据并行处理能力(例如,通过提供经由大致类似于x86处理器上的MMX、SSE和SSE2指令的过程调用可访问的单指令多数据数学运算)以改进使用解释型代码实施的编码译码器、图形处理运算等等的性能。
可能使用多种解释器实施策略。在一实施例中,解释器实施在运行于一般微处理器上的软件中。在另一实施例中,解释器使用诸如现场可编程门阵列的可重新配置的逻辑而实施。在另一实施例中,专用的硬件装置履行解释器的角色。在所有三种情形下,过程调用可使用(无限制)本地软件、硬件加速和对外部装置或组件的调用的任何组合而实施。
本地代码
除解释独立于播放器的沙盒化代码以外,播放器也可允许内容提交本地代码以供执行和/或存储。在接受可访问密钥或其它特许资源的软件或逻辑之前,播放器验证代码。验证可(例如)通过确定代码包括一个由播放器制造商或另一受信方发布的有效RSA数字签名而执行。经成功验证的本地代码可存储于易失性存储器中以用于由当前载入的内容执行,或其可存储于播放器的非易失性存储器中,在其中所述代码可由其它主题利用。举例来说,为避免对其它主题可能的负面影响,可在易失性存储器中存储仅由当前载入的主题使用的用以改正播放器中的装饰(cosmetic quirk)或提供性能优化的修补程序。相反,用于改正安全弱点的升级将通常永久地存储于播放器的非易失性存储器中。
本地代码通常特定于单一播放器平台或播放器应用,从而使其可移植性比解释型代码较差。其优点为当使用解释型代码不能够处理的需要出现时可使用其。举例来说,本地代码可由内容用作区别合法播放器与未授权的仿真器或“复制品”的方式,从而避免在每次攻击者发现产品的设计中的严重的安全弱点时撤销每一潜在受影响的装置的必要。作为对所述攻击的防御,产品销售商可包括难于仿真或进行逆向工程的内置的本地代码能力或解释器运算。应注意,设计用以帮助检测或回应对特定播放器的攻击的能力可为销售商所有的和/或播放器特定的,因为其将仅回应特定播放器的问题而被激活。具体措施可包括(无限制):简单的无记录的特征、定时敏感的常用程序、明确地设计成难于以软件全速地逆向工程或仿真的操作(例如,参见Kocher等人的第6,289,455号美国专利PseudoasymmetricFunction,其全文以引用的方式并入本文中)、和完全的密码启示器(对称或不对称)。在其中的解释器实施于专用硬件中的装置的情形下.“本地”代码和解释型代码可为类似的或相同的(尽管其可以不同特权操作,在此情形下播放器可将在较高特权级别的执行限制于经特殊鉴别的代码)。
在使用本地代码的内容的一示范性实施例中,媒体包括由当解释时载入额外的可解释代码的解释型代码组成的初始引导程序部分。内容代码(例如,由引导程序部分载入的代码)接着将向播放器发出过程调用并分析结果以判定包括播放器类型的关于重放环境的信息。内容也可(例如)通过要求播放器(或其它组件)使用对已报告的重放环境特征为特定(或表示所述环境特征的特点)的密钥来执行密码运算而检验重放环境。为阻止恶意解释器篡改验证结果,所述运算的结果可用于随后的解码和重放过程。(例如,通过将来自播放器的密码结果并入解密密钥计算中,内容可稳固地防止在自称具有某特定播放器类型或重放环境属性但缺少对应的密码编译密钥的恶意播放器上重放。结果也可与预期值比较、使用公开密钥方案检验,等等。)内容接着判定播放器是否为(默认地)包括需要改正的安全性缺陷(或其它问题)的类型。在进行此判定时,内容代码可分析来自播放器中的信息(例如,在可由内容访问的非易失性存储器中的数据、来自播放器中的时钟的日期/时间信息,等等)和/或从外部获取的信息(例如,通过查询附加的装置或经由网络通信)。如果识别出问题,那么获取对应的反措施(例如,从媒体或经由诸如因特网的数据网络)。取决于问题的本质,反措施可涉及解释型代码和/或本地代码。在本地代码反措施为必需的情形下,内容可将反措施代码作为数字签名的数据提交到播放器,包括指示所述代码是否应缓存在易失性存储器中用于未来用途(例如,经由过程调用)、是否应永久存储(例如,以改正在现有非易失性存储器中的程序错误)和/或是否应立即执行的指令。本地代码也可经配置以执行可识别的运算(诸如可与内容解密过程结合的密码计算),以使得内容代码可确定所述本地代码确实由播放器执行。本地代码也可经配置以禁用恶意播放器,(例如)通过重写密钥。内容也可查询、分析代码及代码更新(本地或解释型)并将其传递到诸如经由数字接口连接的显示器或扬声器的其它装置。一旦重放环境为可接受的,那么内容代码(例如)通过从媒体载入数据块、在插入取证水印的同时执行解密运算并传递供解压缩和输出的解密数据而按用户请求继续重放。
标准化和性能考虑
通常需要具有足够详细地定义重放环境的标准,以使兼容播放器的制造者可确信其产品将能够播放兼容的内容(服从安全策略,等等)。所述标准一般会规定解释器的基本指令集(或均等物)和所需的过程调用。可能也需要为可包括于解码过程的实时部分中的任何指令和过程调用定义性能要求。(对于仅在启动、关闭和其它非实时操作期间执行的运算而言,性能要求通常为较不关键的。)
举例来说,一个示范性规范可要求兼容解释器能够每秒钟最少执行八百万“时间单位”(TU),其中正常的低级别解释器运算可各占用达到一个TU,且乘法和除法运算可各占用4TU。对播放器提供的过程(例如,DLX“trap”)的调用的性能要求取决于所请求的运算。举例来说,AES加密运算可占用多达100TU加上每块密码计算的12TU。字对准的存储器复制可占用多达50TU加上每16字节(或其分数)的1TU。缓冲一个媒体读取请求或检查已缓冲的请求的完成状态可占用达到100TU。读取请求以提交的顺序但与其它处理并行地一次执行一个,且可占用多达10,000TU加上每2048-字节扇区的1500TU。非顺序读取可占用额外的(20000+640000×扇区中的寻道距离/每媒体最大扇区数)个TU以用于寻道开销。从完成的读取载入数据(意即,将数据从驱动器的缓冲器传送到解释器的存储器空间)可占用多达100TU加上每传送2048-字节扇区的128TU。将数据传送到编码译码器或其它输出端可占用多达100TU加上每传送16字节(或其分数)的1TU。当然,这些时序值是出于示范性用途而提供的;具体性能指标将取决于系统的要求。也可规定更复杂的性能要求(例如,规定指令序列的总的计算时间)以为播放器实施者提供更大的灵活性或为内容作者提供更好的性能保证。
实际上,许多实施将比性能最低值运行地快得多。此仅仅意谓数据将在需要其之前就已准备好。举例来说,每常规解释型指令占用40时钟周期的基于软件的解释器在2GHz微处理器上将表现为约50百万TU/秒的处理速度。类似地,以25MHz的频率和每指令2时钟周期的速度运行的专用硬件实施也将比每秒钟8百万TU快得多。
应注意,标准开发者面临系统的简单性与性能之间的平衡。具体来说,对于基于软件的实施,一般可假定执行于过程调用中的运算比解释型代码中的相同运算运行地快得多。另一方面,这些运算通常必须提前定义且在其性能假定中通常也包括进入/退出开销。然而,用于诸如存储器复制、搜索、大数目算术和密码计算的普通运算的过程调用可提供显著的性能益处。一种替代性能增强方法是使解释器在执行之前或执行期间分析内容代码以识别可最优化的区域(例如,转换成本地代码)。内容代码也可包括“提示”以通知解释器适合于最优化的候选区域。“提示”方法的好处是,硬件实施(其倾向于较快的,但执行复杂运算较困难)可忽略提示(例如,通过将其视为NOP)并正常地处理随后代码。软件实施(其倾向于较慢,但具有更高速度的本地代码能力)可使用提示来用功能兼容的本地代码常用程序替代解释型代码。如果需要,性能标准可规定普通构造的播放器性能要求。播放器也可允许内容在始终保证满足性能最低值的解释器模式(例如用于实时任务)与具有较好的平均状况性能的模式(例如,用于非实时任务)之间选择。
当编辑内容时,内容开发者需要检验其已编写的软件满足由所述标准规定的性能最低值。用于检验时序符合程度的专门的测试系统将内容代码在执行时的最差状况性能特征制表(tabulate)。其通过仿真重放过程同时将播放器执行每一子运算可占用的最大允许时间制表而操作。如果重放过程太慢(例如,如果测量到的最差状况播放器性能落后于提供到编码译码器的数据中的时间戳记,或如果编码译码器变得缺乏数据),那么所述工具可通知媒体作者,媒体作者接着可改正问题。编辑工具可使用相同的方法以确保其输出将可靠地播放。
保护非易失性存储器
如前文所描述的,播放器装置可为内容提供由内容使用的非易失性(NV)存储能力。因为编写内容的实体的数量可为较大的(可能包括小艺术家、学生、家庭用户等等以及大制片厂),在假定某些内容可为不严谨地写入或甚至恶意地写入的情形下,内容和播放器强制执行对NV存储器用途的限制可为有利的。因此,播放器可希望限制每一主题的能力以保存NV存储器和读取、修改及重写已存储的数据。题为“安全存储器和计数器”的部分描述使用数字签名来验证访问非易失性存储器的代码。然而,在某些情形下,可需要(例如,出于政治和/或技术原因)非易失性存储器安全机制在没有集中的认证机关的情况下操作同时仍允许内容主题配置和/或控制非易失性存储器区域。
以下部分描述了播放器的一示范性实施例,其在不需要集中的签名机关的情形下为内容提供了对非易失性存储器的安全访问。参看图4,示范性存储器管理器控制对128千字节闪存的访问,所述128千字节闪存分成511个各为256字节的插槽(slot)和用于额外数据的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的插槽写入计数器。因为插槽写入计数器频繁更新且某些非易失性存储器技术在过多写入周期后会用坏,所以此计数器以限制任何特定存储器单元更新的次数的形式来存储。所述计数器的增量方式为,设置在低部分448中的位,除非在低部分的1024个位中的1023个已满,在后一情形下高部分447增量且低部分448的所有1024个位被清除。通过将高部分447乘以1024再加上在低部分449中设置的位的数字而读取计数器值。当播放器在工厂初始化时,除播放器密钥应当初始化为秘密(伪)随机值之外,这些值可全部初始化到零。
播放器也保持了可存储于易失性存储器(例如,常规RAM)中的若干值。这些值包括媒体密钥450、媒体标识符452、指示当前附着哪一插槽(意即,从数字0到510)的值456和指示在NV存储器中到目前为止由当前主题写入的最高优先级插槽的值。当主题被初始化时(例如,当媒体插入或播放器重置时),附着的插槽标识符454、附着的插槽优先级456和最大创作优先级458被重置。媒体密钥450优选地从媒体的在消费者可记录媒体上以消费者可记录装置不可写入的部分载入。接着通过应用诸如背景技术中熟知的安全散列算法(SHA-1)的单向密码转换而从媒体密钥得到媒体标识符452。为提供额外的保证,媒体可承载一个鉴别媒体密钥450和/或媒体标识符452的密码签名,其接着可由播放器和/或内容代码鉴别。替代实施例可包括其它值(诸如制造或压制所述媒体的设施的身份和/或对于媒体的某特殊段为特定的标识符)且不一定要在标识符与密钥之间具有固定的关系。
一般而言,可允许内容代码具有对除每一插槽的私有数据428以外的非易失性存储器内容的相当无限制的读取访问权。此读取访问可使用允许内容规定插槽号并检索内容的过程调用(例如,DLX“trap”运算)而实施。如果所请求的插槽当前未附着(意即,由附着的插槽标识符454所识别),那么不返回插槽私有数据428(例如,对于这些位置,返回零)。
在示范性实施例中,内容具备以下基本运算以从非易失性存储器插槽读取、请求对非易失性存储器插槽的访问(“附着”)和修改非易失性存储器插槽:
插槽读取(SlotRead):此过程调用将规定的插槽的内容读取到可由内容代码访问的存储器空间中。此过程的输入参数包括插槽号和指示将结果存储在内容的存储器中的何处的指针。返回全部插槽内容(除私有数据域428外,其在读取结果中一般设为零)。如果规定的插槽号为(-1),那么读取由附着的插槽标识符454所识别的插槽且检索并存储全部内容(包括私有数据428)。所述操作的返回值为一整数,其包含所读取的插槽号(例如,如果规定了插槽(-1),则为所附着的插槽标识符454)抑或指示为何请求失败的错误代码。
插槽附着(SlotAttach):此过程调用用于请求对规定插槽的特许访问权。在准许此访问之前,鉴别进行请求的代码。所述过程的输入参数识别插槽号、代码长度和所请求的优先等级。所述过程判定待准许访问的代码的起始地址(例如,内容的存储器中的在调用插槽附着操作的指令之后的地址)。使用地址和规定的长度,所述过程接着计算代码的密码散列值(例如,使用SHA-1)。如果散列结果与存储于所述插槽中的授权散列430的值不匹配或如果所请求的优先级经判定为无效的(例如,如下文关于图5所描述的),那么附着插槽零(意即,将附着的插槽标识符454和附着的插槽优先级456设置为零)且返回一个错误信息。否则,所请求的插槽号变为当前附着的插槽(意即,将附着的插槽标识符454设置为所请求的插槽号,且设置附着的插槽优先级456)。作为特殊情形,调用代码可规定为(-1)的插槽号以请求配置新的插槽。在此情形下,播放器验证所请求的优先级(例如,如下文关于图5所描述)且如果优先级无效,那么返回一个错误信息。否则,播放器选择一个插槽来重写(如下文所描述的),将其清除(例如,通过将创作者媒体ID 420设置为当前媒体ID 452、归零其它插槽域并增量写入计数器447/448),附着到所述插槽(例如,通过将附着的插槽标识符454设定为插槽号并将优先级456设定为所请求的优先级),并将最大创作优先级458设定为其当前值与所请求的优先级456的较大者。如果解释器支持中断或可引起潜在非受信代码的意外执行的其它能力,那么应禁用这些能力以避免在附着插槽的同时引入恶意代码。返回值为所附着的插槽号454,或如果操作失败,那么为错误代码(例如,由于代码散列值不匹配或无效的所请求优先级)。
插槽写入(SlotWrite):此过程调用写入数据到当前附着的插槽。此过程的输入参数指向插槽私有数据428、鉴别散列430和有效载荷432的新内容,所述新内容与其它插槽域的更新值一起写入。(具体来说,创作者媒体ID 420未改变,最后更新媒体ID 422被设置为当前媒体ID 452,最后更新顺序计数器424被设置为插槽写入计数器447/448,且插槽优先级426被设置为附着的插槽优先级456。)在插槽写入之前,通过更新插槽写入计数器的低部分448和(如果需要)高部分447而增量插槽写入计数器。如果自从上电/媒体插入以来已执行过多(例如,多于128次)写入,那么使用具有有限寿命的非易失性存储器(例如,许多闪存和EEPROM存储器额定为一百万写入周期)的播放器可拒绝写入。写入操作将附着的插槽标识符454和附着的插槽优先级456都重置到零。返回值为指示写入是否成功的状态码。
提供插槽优先级管理支持以平衡若干潜在矛盾的目标,包括:(a)内容应当能够按其合理的需要访问尽量多的非易失性存储器:(b)内容应当确信其非易失性存储器不会被意外地重写;(c)一主题不应当能够保留过量的非易失性存储器且从而阻止其它主题保留任何非易失性存储器;(d)如果在非易失性存储器中没有可用的空插槽,则应当再循环很少使用的插槽以为新的内容提供一些非易失性存储空间;和(e)一主题不应当能够提交有意使合法插槽被再循环的大量请求。一般而言,如果播放器的插槽用完,那么具有较高优先级的插槽较不易被重写。在一示范性实施例中,优先级规则被设计成确保每一媒体主题能够具有至多一个最高优先级插槽(优先级7)。另外,仅允许媒体在每一插入或播放器关机再开机(power cycle)期间创建一个具有2或更高优先级的插槽。虽然当制造播放器时保留的插槽可具有高于7的优先级级别,但是内容不能够创建优先级高于7的插槽。
图5说明了一个用于验证为所附着插槽请求的优先级是否可接受的一示范性过程。当附着或创建插槽时(见上文的“插槽附着”部分),内容规定所请求的优先级值。在步骤500处,播放器检查是否分配了新的插槽(例如,插槽号规定为-1)。如果是,在步骤510处,播放器检查所请求的优先级是否超过插槽的现有优先级426,且如果是,播放器返回一个指示所请求的优先级过大的错误信息。否则,在步骤520处,允许附着请求使用所请求的优先级继续。若步骤500断定所述请求是要分配新的插槽,那么在步骤530处,播放器检查所请求的优先级是否等于或小于7,且如果不是,那么返回错误信息。否则,在步骤540处,播放器检查所请求的优先级是否超过2,且若不是,那么将所请求的优先级接受为对于分配插槽为有效的。否则,在步骤550处,播放器检查最大创建优先级458以判定自从媒体插入或播放器重置以来是否已创建具有大于2的优先级的任何插槽,且如果是,那么拒绝所请求的优先级。否则,在步骤560处,播放器检查所请求的优先级是否为7,且如果不是,那么将所请求的优先级接受为对于分配插槽为有效的。否则,在步骤570处,播放器检查是否已存在其所存储的创作者媒体ID 420等于当前媒体ID 452的优先级为7的插槽,且如果是,那么播放器将所请求的优先级作为无效的而拒绝。否则,接受所请求的优先级以分配插槽。
当分配新的插槽时(意即,内容以插槽-1调用插槽附着(SlotAttach)),播放器选择具有最低优先级426的插槽用于重写。在工厂,空插槽以最低可能的优先级(零)初始化且因此通常将被首先使用。如果多个插槽共享最低优先级,那么选择具有最低写入顺序计数器值的插槽。如果具有优先级6或7的插槽被选择用于重写,那么对应的计数器(优先级6重写计数445或优先级7重写计数446)增量。或者,如果请求将要求或以其它方式涉及重写高优先级插槽,那么具有用于大量插槽的空间的播放器可仅仅失败。
在工厂,某些插槽可用用于鉴别散列432的预定值和非零插槽优先级来初始化。插槽的功能性和/或安全要求取决于经散列处理的代码。举例来说,可配置用于确定预定鉴别散列的代码以执行以下步骤:(a)初始化所有寄存器(例如,堆栈指针,等等)到“安全”值;(b)从在经鉴别的代码区域外部的预定地址载入RSA签名值;(c)使用嵌入于由插槽附着操作所鉴别的区域中的公开密钥来判定RSA签名是否为解释器的存储器的某区域的有效签名;和(d)如果RSA签名为无效的,那么从当前插槽分离(例如,通过附着到通常可访问的插槽0),否则跳转到经数字签名的区域的第一地址。如果仅希望经数字签名的代码在特定播放器上播放,那么可(例如)配置代码以检查播放器的身份(或其它属性)和/或使用播放器密钥在运行所述代码的一部分之前对其解密。
在前述段落中的实例说明了一种用于使用基于散列的插槽验证方案来实施不对称签名验证的方法(例如,如在题为“安全存储器和计数器”的部分中所描述)。此方法允许将插槽保留用于未来用途,其中当制造播放器或定义标准时,无需规定所述未来用途。也有可能使用基于公开密钥(public-key based)的代码验证系统来签名实施基于散列(hash-based)的方法的代码。
可能将单一插槽用于多个用途。举例来说,多个代码片段可经数字签名以通过诸如上文所描述的检验过程。可配置这些代码片段中的每一个以修改插槽的不同部分并在完成时适当地分离。
因为插槽的私有数据域428使得代码能够加密插槽内容,所以其也值得注意。虽然任何内容都可读取主要插槽有效载荷,但是只有已授权(例如,使用插槽附着过程)的代码可读取私有数据428。授权的代码因此可使用私有数据428作为密钥(或导出一个密钥)以对插槽内容加密和解密。以此方式,可确保存储于插槽中的数据的私密性。如果需要,内容也具有为插槽内容附加鉴别代码或数字签名的能力。所述签名可由内容代码(视情形使用播放器密钥)而产生,可由播放器而产生,或可由外部方或装置(诸如主题的出版商或播放器制造商)而产生。然后可配置随后的主题以搜寻所有插槽,寻找指示(例如)某些安全检查为必要的或特定媒体ID已撤销的经数字签名(或以其它方式鉴别)的值。
基于插槽的特征可由多个主题共享。举例来说,可能实施为内容提供最新已知日期的日期管理器。使用此能力的每一主题将带有当其被制作时的当前日期的一个经数字签名的表示和与插槽的鉴别散列430匹配的若干预定代码。用于管理插槽的代码将:(a)检查内容所带有的日期的数字签名,且如果无效,那么从插槽分离并停止;(b)读取当前插槽内容;(c)将来自主题的现已检验的日期与插槽的有效载荷432中的日期比较;(d)如果主题的日期较后,那么将主题的日期置于插槽内容中并调用插槽写入以将新的日期存储于非易失性存储器中同时保持插槽的剩余部分不变;(e)从插槽分离;和(f)从RAM擦除插槽私有数据(以及任何其它不重要的值)。所述操作将返回错误信息或所述较后的日期值(意即,主题所带有的经鉴别日期和先前存储于插槽中的日期的较后者)。代码可视情形存储具有日期的数字签名以使得遭破坏的日期不会被误解释为在遥远的未来。另外,日期也可被加密地存储(例如,使用私有数据域428的值作为密钥)以将对已存储的数据值的读取访问限制于包括当前日期的主题。播放器中的日期值可(例如)由内容用以判定安全更新是否需要、是否到达进行在线安全检查的时间、是否到达提交按次付费购买记录的时间,等等。
在某些实施例(例如,提供实时网络能力的实施例)中,当启用网络支持时使播放器限制对非易失性存储器的访问可为有利的。此限制可帮助确保用户的隐私,(例如)通过防止恶意内容从非易失性存储器提取数据并经由网络将其传输。作为特定的实例,可防止使用网络访问能力的主题从插槽读取数据(或读取某些插槽,诸如那些可包含用户识别信息或由其它主题创建的插槽)。播放器也可允许主题终止其网络访问特权并获取更广泛的插槽访问权(例如,在一旦不再需要网络访问后获取用于取证水印的值)。应注意,嵌入于取证水印中的信息并不引起相同的隐私关注,因为此数据仅可从内容的拷贝恢复。
上文对具体的非易失性存储器管理的描述意欲说明特定实施例。当然,可能有许多变化。举例来说,出于说明的目的,提供了具体的插槽配置、插槽管理操作和优先权管理方法。除将存储器配置成固定大小的插槽以外,可使用其它存储器管理方法(包括使用并不基于插槽的配置方法)。也可使用其它访问控制机制(诸如并不基于媒体标识符的机制)。用于插槽的非易失性存储器总量可为可变的(或实际上无限的,如在硬盘或其它高容量存储技术的情形下)。可包括单独的非易失性存储能力以跟踪媒体/光盘插入历史。使用密码学来加密和/或鉴别非易失性存储器(或诸如可由内容访问的存储器的其它存储器)的内容以防止未授权的读取/修改可为有利的。在软件实施中,可使用多种代码、地址、数据和算法模糊技术以防止播放器密钥被提取(或篡改)。也可在插槽中存储任何形式的数据,包括(无限制):按次付费购买记录、任何种类的计数器(例如,购买计数器、信用/借记或其它余额计数器、失败计数器、媒体/光盘插入计数器,等等)、在线或基于电话的安全检查的结果、观看记录/历史、代码(可解释的或本地的)、撤销数据(对于播放器、外围设备等等而言)、到其它主题的信号、用于评估回扣或折扣的资格的信息、交易和重放历史数据、数字签名和密钥。
媒体撤销
一值得注意的情形为播放器是可信赖的但媒体已被盗版的情况。这是职业盗版者的典型情况,因为他们一般会寻求提供与合法的拷贝尽可能接近的“产品”。如果盗版者开发出了用于生产播放器不能与原始媒体物理地区分开的合法媒体的拷贝的方法,那么所有离线媒体重放装置都潜在地易受此类攻击。可使用难于复制的媒体特征(诸如光盘上的轨道的摆动特征的测量)来使精确的复制更加困难,但很坚决的盗版者仍可找到制造拷贝的方式。类似地,取证水印允许内容所有者识别用于盗版先前的内容的设备,但是不阻止盗版内容的播放。
为应付盗版者制造媒体的未授权拷贝的风险,内容所有者可在合法媒体上设置每一拷贝的一个唯一的标识符。对于光盘来说,此数据可置于可在工厂中被唯一地写入的区域中(诸如在某些现有的压制的光盘上的烧录区)或可记录光盘部分上(例如,利用诸如当前用于制造可记录CD和DVD、磁光盘等等的技术的存储技术)。可唯一地写入的区域仅需要承载少量的信息(例如,几个字节到几百个字节)。具体来说,此区域可承载所记录的序号、用户信息(姓名、电话号码,等等)、密码编译密钥等等,以及鉴别这些值的数字签名。对于消费者可记录的媒体而言,可为所制造的每片空白媒体记录一个唯一的媒体序号(以及视情形一个相关数字证书)。
媒体上的内容代码可经配置以使得当插入媒体以进行重放时,其唯一数据的真实性受到检验。取决于媒体类型和记录的数据,此检验过程通常包括检验对于某片媒体为唯一的数字签名。为防止对手避开此检验检查,检验可使用模糊代码而执行,检查可执行多次(例如,在重放期间的不同时间)且检验结果可与随后的解密过程结合。如果唯一数据无效,那么内容代码通常将拒绝重放。否则,内容代码可确信(a)媒体是合法的,抑或(b)其是从一片具有所述唯一数据的合法媒体复制的。
接着,为判定所述唯一媒体是有效的还是撤销的,内容检查播放器的非易失性存储器区域中的指示当前插入的媒体的撤销状态的数据域。如果没有发现匹配的撤销信息,那么假定所述媒体为有效的。为防止疏忽的或恶意的撤销,可通过检查数字签名或其它鉴别数据(诸如密码散列的预映射)来鉴别撤销数据。播放器的非易失性存储器中的数据也可指示哪些动作(如果有的话)是推荐的,诸如(a)通知用户拷贝为违法的、(b)允许重放在降低的分辨率下进行、(c)完全防止重放、或(d)允许用户合法地购买内容(例如,通过拨打一个电话号码并输入解锁码,或通过经由因特网与一台服务器互动)。非易失性存储器也可覆盖(over-ride)前一撤销讯息,(例如)使得如果需要内容可被“解除撤销”。如果存在多个矛盾的状态指示器,那么可将序号或日期用于判定哪个是最新的。
在某些情形下,创建仅可在诸如已预注册的装置的经特别授权的装置上播放的媒体是有用的。在此情形下,可将唯一的媒体信息用于启用媒体激活,而不是提供撤销。举例来说,预览(advance review)的拷贝和试制的拷贝一般无需(且不应当)可在所有播放器上播放。记录于可写入部分中的数据可包括解密密钥或对于每片媒体的经授权接受者为特定的其它信息。唯一记录的区域也可包括姓名、e-mail地址、帐号、或识别具体接受者的其它数据(例如,用于取证水印用途、交互特征,等等)或接受者的特征(例如,观看偏好、授权数据、群组标识符、邮政编码,等等)。这些域也可在媒体出售期间或之后写入,例如作为防止偷自商店的媒体被播放的激活步骤(从而降低将媒体陈列于其货架上的商店遭入店行窃的风险)。后端系统可针对一直未激活的媒体而赔偿商人,或当媒体激活时针对媒体向商人收费。此能力的另一用途为在官方发布日期之前分发“锁定的”媒体,接着当重放被授权时在可写区域上写入启用重放的密钥。信息可由制造媒体者以外的实体或设施记录,例如零售设施、运输设施或安全代理机构(例如,如果压制设施不是完全可信的)。如果最终用户的装置可对媒体的部分进行写入,那么也可能当播放或解锁媒体时记录数据(诸如授权密钥、播放器标识符、等等)。媒体上的可写入部分可(例如)用于实施诸如“附送”材料的特征,可付费而解锁所述“附送”材料接着在多个播放器上播放。
对于离线播放器,通常将在随后的主题上传递撤销通知。举例来说,新的主题可承载识别已撤销媒体的序号列表(具有随附的鉴别数据)。如果播放器具有足够的非易失性存储空间(例如,硬盘),那么整个撤销列表可由播放器存储。否则,可对照播放器的插入历史和/或非易失性存储器插槽检查撤销数据以判定已由播放器播放的任何媒体中是否有撤销的。如果是,那么将对应的撤销数据存储于播放器的非易失性存储器中。以此方法,盗版“克隆”媒体在其第一次插入时将可播放,但在插入了一片撤销所述盗版媒体的媒体后将被撤销(或以其它方式“标记”出)。一般来说,媒体撤销是有价值的,因为其使得对于消费者来说盗版媒体比合法媒体更没有吸引力。
媒体激活/撤销可用于实施多种促销和安全特征。举例来说,可以包含不同版本(例如,宽银幕、拉移(pan-scan)、导演剪辑版,等等)的多个媒体来出售一部电影。为防止有人单独地出售或出租所述媒体,其内容代码可检验一个或一个以上其它媒体被表现于播放器的非易失性存储器中。视情形,也可要求已在最近(例如,在一定时间内或插槽写入计数器447/448的一定数目的增量内)插入其它媒体。作为另一选择,媒体也可需要用户在重放期间插入另一片媒体(例如,通过从所述另一媒体载入密钥值)。可建立一种促销模式,其中如果用户已播放其它内容的某些组合,那么用户将可访问附送材料当然,重放决定也与其它信息相联系.诸如播放器的特征和/或重放环境。
具有在线能力的播放器可检查当前插入的主题的撤销状态以及表示于播放器的媒体插入历史和/或非易失性存储器插槽中的其它主题。此检查可实施于内容代码中或可由播放器执行。在线检查也可用于检测多个播放器同时播放单片媒体(例如,指示媒体已被盗版)或过多数量的播放器已使用过特定的一片媒体(例如,指示其已违反许可协议而被出租)的情形。
盗版者可设法通过修改内容的代码来避开撤销检查。在此情形下,代码的随后部分(例如,在重放期间稍后执行的代码)可(例如)通过重复所述检查或通过重新载入并检验媒体的包含验证代码的部分而检测所述修改。撤销检查结果也可与解密过程结合。
当然,可使用所述媒体撤销方法的变体。举例来说,播放器可存储经配置以识别撤销的媒体的经数字签名的解释型代码。这些代码片断(snippet)可在每次媒体被插入时执行以判定新插入的主题是否是撤销的。主题将能够存储撤销检查代码(优选地具有将由播放器检验的对应的数字签名),播放器将保留所述撤销检查代码以用于检查未来媒体。媒体撤销检查也可由播放器的ROM中的代码来执行,(例如)通过在播放器的非易失性存储器中存储已撤销的光盘的扇区号和散列值的表格。如果媒体为可写的,那么内容也可在媒体本身上存储并获取撤销数据(或可在媒体上存储任何其它种类和用途的数据,诸如用户偏好、用户信息等等)。
媒体也可用于承载关于记录装置的撤销数据。举例来说,如果消费者记录装置经配置成将识别数据置于其记录物上,那么播放器装置可维持已撤销的记录器的记录。这些记录可由承载于媒体上的撤销数据来更新。可记录媒体也可经制造而具有识别已撤销的记录器的信息以防止已撤销的记录器写入媒体。与撤销相关的数据域可经密码鉴别,(例如)以防止对合法装置的恶意或疏忽的撤销。举例来说,由记录装置设置的识别数据可包括记录器数字证书和关于媒体序号的数字签名。可加密(例如使用第三方代理机构的公开密钥)设置于可记录媒体上的识别数据以保护用户的隐私。也可使用门槛密码学(Threshold cryptography),(例如)以要求多个媒体识别一个记录装置。(应注意,门槛密码学也可使用于本文所揭示的技术的其它方面,例如配合取证标记使用以确保需要一定数量的已复制材料来恢复标记。)
媒体撤销的另一用途是提供除可利用的其它方法外的一种额外的针对偶然的盗版行为的威慑。嵌入于取证水印中的数据可识别由一装置播放的先前的媒体。取决于实施选择,撤销其ID是从盗版拷贝的取证水印判定的其它媒体、撤销其序号接近于用于分发盗版材料的媒体的可记录媒体、在从有问题的媒体进行重放之前要求额外的授权步骤等等可为有利的
杂项特征和能力
安全覆盖密钥(Security Over-Ride Key):可对内容进行设计使得了解安全覆盖密钥的播放器可避开某些或所有安全检查,从而允许对部分或所有内容的访问。通过支持所述密钥,内容所有者可准许对作品的限制部分的访问(例如,如果一个区域要求内容所有者准许评论家对视频进行基于逐帧的“合理使用”的访问)。(例如)如果保护特征设计地不好(造成可播放性问题),那么这些覆盖密钥也可用于将内容从其受保护的形式中“释放”出来。如果需要,这些密钥可由第三方保管(或存储于以第三方的公开密钥加密的媒体上)。也可将覆盖密钥预定为在版权期满时释放,(例如)以处理反盗版机制可能防止内容进入公众领域的问题。
多回合共谋分析(Multiple Round Collusion Analysis):在某些情形下,坚定的盗版者可组合来自大量装置的输出以试图防止取证水印的恢复。如果盗版者已危害了如此多的装置使得内容不能够直接识别不法装置,那么有可能组合从多个内容版本搜集的取证信息。举例来说,从第一主题搜集的信息可缩小可能由盗版者使用的装置的范围,但并不唯一地识别所有不法装置。当制作第二主题时,可使用此知识以创建将提供关于攻击者和/或其设备的进一步信息的取证水印。可重复此过程直至已唯一地识别盗版者。
对恶意解释器的反措施:可能设计恶意播放器以设法认出内容中与安全相关的代码。举例来说,恶意播放器可试图识别内容在哪里执行RSA签名检验操作并修改结果,(例如)使无效RSA签名看似有效。如果制成所述播放器,那么内容所有者可编辑新的内容来使用经设计以规避此识别的不同RSA签名计算例行程序。可使用的操作的实例包括(无限制):重写代码以避免不可靠的操作;使代码模糊;消息堵塞;检查试计算结果以检测攻击;和将中间值和/或结果与其它密码运算(诸如解密步骤)结合。
交互性:虚拟机/解释器可用于非安全任务以及安全用途。举例来说,内容代码可用于将菜单、文本、图形、动画、用户界面要素等等显示给用户。类似地,内容可接收包括(无限制)鼠标输入(例如,移动、点击)、按键(诸如键盘或远端控制输入)、光笔输入和控制杆动作的用户命令或回应。也可搜集并使用关于本地播放器的信息(诸如相机输入、麦克风输入、用户身体位置的改变,等等)以(例如)控制重放。播放器也可提供特征以辅助进行用户界面实施,包括(无限制)显示对话框、管理显示窗口、进行语音识别、管理用户偏好等等的能力。作为对盗版行为的威慑,实施交互式用户特征的代码可与安全代码组合,使得盗版者不能够容易地将其区分开。
经由网络访问和交换内容
虽然多数消费性视频和音频内容当前是在光学媒体上分发的,但是可预计流下载的流行性会不断增加。本文提供的安全措施可经重新设计以支持替代物理媒体或除物理媒体以外的流内容或本地高速缓冲存储的内容。作为从实际定位于播放器处的媒体载入数据的替代,经由网络检索内容代码和数据。举例来说,作为发布从媒体请求数据扇区的过程调用的替代,内容将发布经由网络请求数据的过程调用。与被动媒体不同的是,远端服务器本身可具有处理能力,例如允许其向内容发送请求(例如,以使播放器执行密码运算)并验证结果。用于保护经由网络交换的数据的安全协议(包括(无限制性),SSL)可实施于内容的代码或播放器(或其它组件)中。
简单的服务器实施将从已验证的用户(例如,为访问内容已付费的用户)接收传入请求、从其自己的本地存储装置读取对应的数据并传递结果。更加复杂的服务器可实时选择和/或修改数据(例如)以嵌入取证水印,且可与其它服务器交互作用。服务器也可存储关于或代表远端播放器的信息(例如,作为基于播放器的非易失性存储器的替代)、传递为最终用户定制的安全代码、执行实时撤销检查、将安全升级自动插入到内容中、提供因特网/网络代理能力和向内容代码提供其它服务。举例来说,示范性事务处理包括以下步骤:(a)内容服务器从最终用户的播放器接收购买请求;(b)内容服务器检验支付;(c)内容服务器传输经配置以分析用户的播放器的功能特性和/或安全特性的可解释代码的部分;(d)用户的播放器运行解释型代码并返回关于其特性的信息;(e)内容服务器分析回应并将安全检验逻辑(其包括解释型代码和/或本地代码且可自定义生成)传输到用户的播放器;(f)用户的播放器处理检验逻辑并将回应返回到服务器;(g)服务器验证回应;(h)内容服务器将加密的数字内容(例如,音频、视频和/或图像)传输(例如,连续播送(stream))到用户的播放器;和(i)用户的播放器对内容解密(解密过程的正确运算可要求正确的密钥或来自安全检验逻辑的结果)。
服务器进程本身可由解释型代码控制,其视情形使用与播放器端相同的解释器结构(例如,DLX)。这样作的好处是,可在不考虑服务器的物理硬件结构的情况下编辑内容。对于家庭网络环境,因为服务器保持安全性和解码“智能”,同时内容可向外连续播送到已鉴别的本地装置,所以此为尤其具有吸引力的模式。类似地,对于将经由多种不同因特网服务而连续播送的内容,服务器端的解释器可允许内容被编辑一次并从任何兼容服务连续播送。
在某些情形下,接收者装置也可拥有作出其自己的安全决策的能力,诸如在接收装置希望高速缓存内容并稍后将其传输到在初始传送期间身份未知的随后的装置的情形下在此情形下,初始传送可包括由接受者装置用于作出其与安全相关的决策的可解释的代码和/或本地可执行的代码。因为由传输装置运行的代码并不必与接收装置所运行的代码相同,所以所有的装置支持相同的解释器或可编程技术是不必需的。
在某些情形下,可涉及多个服务器和/或内容传送。举例来说,内容可包括从多个实体获取的安全代码,所述实体包括(例如)由播放器制造商和内容所有者操作的服务器。在某些个人计算机环境中,使用多个解释器也可为有用的。举例来说,解释器可包括于媒体接口(例如,光盘驱动器)、操作系统、应用软件(例如,播放器)、输出装置(例如,放大器)等等中。或者或另外地,密码启示器也可提供于组件中。
播放器操作调用和标记法
播放器装置提供允许内容代码执行多种个别操作的(通常以软件实施的)解释器(虚拟机)。所述操作包括操纵虚拟寄存器和访问属于内容代码的存储器。另外,内容代码也可调用TRAP(实施于播放器中的外部操作)。TRAP可用于执行内容代码通过操纵其自己的资源不能够直接执行的操作(诸如访问外围设备),或用于提供比原本可由内容代码保证的性能更高的性能。
用于此部分的标记法被设计成为C/C++程序设计员所熟悉。类型UINT8、UINT 32和UINT 64分别用于表示8-、32-和64-位无符号整数。在一示范性实施例中,每一原型对应于在调用适当的TRAP运算之前应当进入堆栈的32-位值的序列。因为堆栈中的所有值大小为32位,所以小于32位的参数被扩展到32位,且较大值使用多个32位值来存储。在每一TRAP运算中涉及的32位值的实际数量可为零(如果参数列表为空)。参数的数量也可为可变的,在此情形下原型将以“...”结束。表示为“type name[size]”的阵列,例如“UINT32 test[16]”代表十六个32位字的阵列。指针表示为“type*name”,例如一或多个32位无符号整数的命名为testPtr的指针将为“UINT32*testPtr”。
堆栈本身可仅为可由内容代码和实施每一TRAP的播放器的部分访问的存储器中的区域。举例来说,示范性堆栈可通过将可由内容代码访问的仿真寄存器指定为堆栈指针而实施。当调用TRAP时,此寄存器的值由内容代码读取以定位已传递的参数值。(如果堆栈指针或堆栈内容无效,那么采取诸如忽略TRAP运算或替换有效值的适当动作。)使一整数进栈的示范性进程涉及首先从堆栈指针减去4、接着存储该值以前进到由新的堆栈指针所规定的存储器地址。使一值出栈是通过首先从由堆栈指针指定的存储器地址读取值、接着使堆栈指针增加4而执行。在TRAP运算之后,内容代码和/或实施TRAP的代码(例如)通过恢复堆栈指针值而从堆栈清除所述参数。其它堆栈.且更一般地,函数调用和参数传递技术在背景技术中是已知的且也可配合本发明使用。
为调用TRAP,调用者首先推动每一参数(从原形定义中最右边的参数开始)、调用适当的TRAP运算并获取返回值(例如,通过读取常规地存储于寄存器1中的结果值)。举例来说,考虑以下表示为“UINT32TRAP_Random(UINT8*dst,UINT32 len);”的TRAP。在调用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参数。此操作可消耗1微秒,即使对sleepTime规定了较小值或一事件先发生。如果事件发生,那么控制将在事件后的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处存储结果。0p的值包括:增加更多数据到现有SHA状态的SHA_UPDATE(0);在散列处理数据之前开始新的SHA上下文的SHA_INIT(1);当散列更新完成时执行结束运算的SHA_FINAL(2);和执行完整区块运算的SHA_BLOCK(3)(等效于设置SHA_INIT和SHA_FINAL两者)。
在dst处应当存在至少512字节的可用空间,且所述空间的内容在结束运算(例如,op=SHA_FINAL)发生之前将为不确定的。
播放器实施可使用dst处的512字节用于状态的暂时存储,但应假定dst的内容是由内容代码恶意地选择的。如果成功,那么返回STATUS_OK,否则返回定义的错误代码中的一个。
UINT32 TRAP_Aes(UINT8*dst,UINT8*src,UINT32 len,UINT8*key,UINT32 opOrKeyID);
使用key处的密钥对来自src的len区块执行AES ECB算法(如下文所转换)并存储解密结果于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处的已加密的密钥值解密,接着使用结果作为密钥使用ECB模式对src处的数据解密。
●opOrKeyID=任何其它值。使用由opOrKeyID识别的播放器密钥对指针key处的加密密钥解密.接着使用所得的解密密钥使用ECB模式对指针src处的数据解密。(注意:内容代码可检查播放器的证书以判定播放器的主AES密钥集的密钥范围;这些密钥不一定要在0处开始,且可存在多个密钥集。)虽然由opOrKeyID选定的密钥可位于播放器应用程序中,但密钥也可(无限制)位于驱动器中、装置驱动程序中、显示器/输出装置中、远程地位于网络上.位于用户抽取式智能卡(或其它防篡改芯片)中、位于非抽取式防篡改芯片中、分置于多个装置中,等等。第一解密运算(解密规定内容的加密密钥)可由包含已识别密钥的装置所执行,同时成批处理(意即,解密src处的数据)可在别处执行(例如,在缺乏用于密钥存储的非易失性存储器的高速密码模块中)。
密码运算,尤其是涉及外部装置的密码运算也可经由TRAP_DeviceDiscovery和/或TRAP_DeviceAccess而实施。可使用内容代码由ECB运算实施密码块链接(CBC)、计数器模式和其它块密码模式(视情况使用诸如TRAP_Xor的运算)。替代实施例也可直接提供除AES以外的算法和/或除ECB以外的模式。
UINT32TRAP_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字节编码的srcLen的值(MSB首先);(b)散列处理规定用户的缓冲器的内容(意即,src处的srcLen字节);(c)散列处理作为4字节编码的controlWord的值(MSB首先);(d)如果设置了controlWord位31(MSB),散列处理媒体ID的值;(e)如果设置了controlWord位30,设置目标指针为PC+4,覆盖dst;(f)如果设置了controlWord位29,散列处理以当前程序计数器开始的(control word mod 216)代码字节;接着(g)如果设置了controlWord位28,将PC的当前值并入散列中。接着通过将“0x00||0x01||0xFF(重复233次)||00”加到SHA-1散列开始处(prepend)而填补SHA-1散列结果.填补的值接着被提高到播放器的秘密指数(secret exponent),以播放器的公开模数为模。
对于检验签名,播放器的公开指数为3,且公开模数可由内容代码通过使用系统范围的公开密码(其可为包含于内容代码中的常数,视情形为模糊形式)来检验播放器的证书而获取。
由控制字提供的选项允许内容代码获取关于执行环境的证明,诸如检测其中签名是由不同于包含解释器的装置的兼容装置所执行的情形。解释器与内容代码之间的可验证的绑定可用于应付以下情形,即攻击者设法使用运行于合法播放器上的恶意内容来产生用于由运行合法内容的恶意播放器使用的密码结果。
实施例可支持不对称密码算法(RSA、DSA、椭圆曲线变量、Diffie-Hellman,等等)的任何组合,可支持多个运算(签名、检验、密钥协议,等等)和多个密钥大小。对称运算也可与不对称运算结合。应注意,诸如RSA签名检验的某些密码运算可实施于内容代码中而没有任何特殊的trap(自陷),或仅使用通用性能加速运算(例如,TRAP_AddWithCarry,等等)。更复杂的密码TRAP的实例将进行某些或所有以下步骤:(a)执行RSA公开密钥运算以检验数据区块的签名;(b)如果签名有效,执行RSA私人密钥运算以对已检验部分中的区块数据解密以恢复对称密钥;(c);如果RSA解密成功,使用对称密钥对某些数据(例如,在加密密钥后的签名区块中的数据)解密和检验(例如,使用HMAC-SHA).接着(d)使用解释器将已解密的数据处理为代码。
在替代实施例中,可提供密码支持以用于签名、检验、解密、加密或以其它方式处理其它计算操作(诸如其它TRAP)的任何方式的输入和输出。
UINT32 TRAP_AddWithCarry(UINT32*dst,UINT32*src,UINT32 len);
此运算执行具有进位传送的多字加法运算。将src[0..len-1]处的值加到dst[0..len-1]。值src和dst可各自被检验为指向存储为len字的较大数且分别使用地址src[0]或dst[0]处的最高有效字进行编码。最低有效字分别位于src[len-1]和dst[len-1]处。
举例来说,数0x08090AOBOCODOEOF将具有len=2,且将以0x08090AOB在由指针规定的位置处(例如,src[0])和值0x0CODOEOF在由指针加上4所引用的字节偏移处(例如,src[1])的方式来存储。
如果源和目标区域重叠,则只有在src=dst时才能保证正确的运算。如果最后(最高有效或左侧)的加法步骤产生进位,那么运算的返回值为1,且否则为0。
(注意:TRAP_AddWithCarry运算连同各种其它TRAP操作也可在没有单独的TRAP的情况下使用内容代码而实施,但是专用的TRAP使得播放器设计者能够选择在每一平台上可用的最有效的技术.从而允许在很多种可能的播放器设计中实现更好的性能保证。)
UINT32 TRAP_SubtractWithBorrow(UINT32*dst,UINT32*src,UINT32len);
此运算执行具有借位(进位)传送的多字减法运算。具体来说,从dst[0..len-1]减去src[0..len-1]处的值。值src和dst各自指向存储为len字的较大数且分别使用地址src或dst处的最高有效字进行编码。举例来说,数0x08090AOBOCODOEOF将具有len=2,且将以0x08090AOB在由指针规定的位置处(例如,src[0])和值0x0CODOEOF在由指针加上4所引用的字节偏移处(例如,src[1])的方式来存储。如果源和目标区域重叠,则只有在src=dst时才能保证正确的运算。如果最后(最高有效,或左侧)的减法步骤要求借位,那么运算的返回值为1,且否则为0。
UINT32 TRAP_MultiplyWithRipple(UINT32*dst,UINT32*src,UINT32multiplicand,UINT32 len);
此运算使multiplicand与dst[0..len-1]中的数相乘。结果的长度为len+1字。结果的最高有效字被返回,且其余部分存储于dst[0..len-1]中。dst的值应当指向存储为len字的较大数且使用由dst指向的地址处的最高有效字进行编码。
返回结果的最高有效32位。(此等于multiplicand与dst[0..len-1]的乘积的最高有效32位。)
voidTRAP_XorBlock(UINT32*dst,UINT32*src,UINT32 len);
此运算计算两个存储器区块的异或运算结果。将存储于src[0...len-1]处的数据与dst[0...len-1]处的数据进行异或运算。此运算(例如)在产生CBC模式块密码运算时是有用的。未定义src和dst区块重叠时的运算。不提供返回值。
void TRAP_Memmove(UINT8*dst,UINT8*src,UINT32 len);
此运算将len字节从src复制到dst。即使源与目标区块重叠,结果也是正确的。不提供返回值。
UINT32 TRAP_Memcmp(UINT8*ptrl,UINT8*ptr2,UINT32 maxlen);
此运算将ptrl处的存储器与ptr2处的存储器比较,比较多达maxlen字节。如果没有发现差别,返回值为0;如果在第一个差别处ptrl处的值较大,返回值为1;且如果在第一个差别处ptrl处的值较小,返回值为0xFFFFFFFF。
void TRAP_Memset(UINT8*dst,UINT8 fillvalue,UINT32 len);
此运算以由fillvaIue规定的字节值填充存储器。目标地址由dst规定且待存储的字节的数目由len规定。不提供返回值。
UINT8*TRAPMemsearch(UINT8*region,UINT32 regionLen,UINT8*searchData,UINT32 searchDataLen);
此运算搜索存储器寻找一个或一个以上字节。具体来说,其在region(其具有regionLen字节的长度)中发现searchData(其具有searchDataLen字节的长度)的第一次出现。如果searchData完全在region[0..regionLen-1]中,那么将找到匹配;不计数在此范围内开始但延伸超出末端的匹配。运算返回指向第一匹配的指针。如果在region中未发现匹配,那么返回值为NULL(零)。
UINT32TRAP_SlotAttach(UINT32 slot,UINT32 codeLen,UINT32reqPriority);
此运算对现有非易失性存储器插槽进行附着或配置新的插槽(如果slot的规定值为零)。如果规定的代码(在调用者的PC处开始并延伸codeLen字节)与插槽的authorizationHash不匹配,那么插槽附着运算将失败(默认为插槽零)。(要获得关于非易失性存储器支持的额外的信息,参见题为“保护非易失性存储器”的部分。)
UINT32TRAP_SlotRead(UINT8*dst,UINT32 slot);
此运算试图读取非易失性存储器插槽,且如果成功,将结果存储于规定的位置处。如果规定的插槽不是当前附着的插槽,那么不返回插槽内容的私有数据部分。(要获取额外的信息,参见题为“保护非易失性存储器”的部分。)
UINT32 TRAP_SlotWrite(UINT8*newContents);
此运算试图写入当前附着的非易失性存储器插槽。(为获取额外的信息,参见题为“保护非易失性存储器”的部分。)插槽写入运算为极快的(atomic),意谓播放器保证如果运算失败(例如,归因于无法预期的停电)运算将全部完成或根本没有开始。
TRAP_SlotWrite运算确保写入的数据具有用于插槽的若干部分的正确值,包括creatorMediaID(最初创建插槽的内容代码所在的媒体的标识符)、lastUpdateMedia ID(最近写入插槽的内容代码所在的媒体的标识符)、lastUpdateSequenceCounter(全局写入计数器的值,其每次写入单调地增加一次)和slotPriority(其规定插槽的重写优先级)。
内容代码控制写入通用区域的数据。可存储的信息的实例包括(无限制)重放状态信息(诸如暂停/停止重放的位置和配置)、审计信息(包括运行散列或其它密码鉴别法以审计数据)、电子游戏的高得分、用于自动完成电子购买的默认信息(用户姓名、用户地址、信用卡号、信用卡期限、邮寄账单地址、运输地址、电话号码、e-mail地址,等等)、可执行的代码(例如,新的安全逻辑、改正主题或播放器的问题的修补程序,等等)、密钥(和其它安全信息).等等。
返回值指示写入操作是否成功和媒体的大体状态(例如,如果非易失性存储器归因于过多数目的写入循环而接近耗尽则为警告)。读取操作可在写入之后执行,以额外地检验写入已成功。
UINT32 TRAP_MediaEject(void);
此运算试图弹出当前驱动器中的任何抽取式媒体。在成功的调用TRAP_MediaEject()后,解释器可继续操作,尽管在许多情形下解释器接着将通过调用TRAP_Shutdown()而自己关闭。不要求播放器支持自动弹出,在此情形下所述操作将失败。(内容代码可使用TRAP_DeviceDiscovery来检测弹出支持和其它播放器能力。)
在某些情形下,在改换媒体的同时保存内容代码的存储器空间的部分可为有利的。举例来说,此可有用于当在多光盘集中的光盘之间切换时比容易地存储于非易失性存储器中保存更大量的数据。在此情形下,TRAP_MediaEject用于弹出初始媒体。用户接着插入另一片内容(例如,在受到一个重叠(overlay)的提示后)。可经由TRAP_DeviceDiscovery判定新插入的内容的身份。为防止未预期的媒体改变,要求对TRAP_DeviceAccess的明确的调用以启用新的媒体。接着可载入新的媒体的标记为授权进行通常读取的部分。(某些部分可被指定了其仅应由媒体自己的内容代码读取。)要求更复杂的媒体到媒体(例如,光盘到光盘)链接能力的实施例可允许初始媒体上的代码鉴别第二媒体,且也允许第二媒体上的代码鉴别源媒体。媒体鉴别也可由播放器执行,例如基于数字签名的规则和承载于源光盘和目标光盘上的证书。
UINT32 TRAP_MediaReadRequest(UINT32 offsetHigh,UINT32offsetLow,UINT32 len);
此运算通知媒体子系统开始检索某些数据。在示范性实施例中,len的值可不超过1兆字节(1048675字节),包括扇区边界在内。(如果偏移不在扇区边界上,意即,不是SECTOR_SIZE的整数倍,那么长度不得超过1兆字节减去扇区偏移,所述扇区偏移按照offsetLow模SECTOR_SIZE来计算。当前将SECTOR_SIZE定义为2048字节。)播放器允许缓冲至少两个未完成的请求(例如,一个当前正在被服务和一个接着将被服务)。此允许内容保持驱动器连续地忙碌。播放器通常将为每一待处理请求使用单独的一兆字节的等待缓冲器。一没有任何错误的返回意谓将试图读取(意即,所述请求不是明显地有错误),但是不保证读取将实际地成功。(参见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);
此运算将规定的数据写入媒体,在规定的偏移处开始。(偏移为64-位值,作为32-位上方值和32-位下方值而被编码。)
此运算仅适用于支持写入的媒体格式。可写入区域也可限于媒体的特定部分。在特定情形下也可禁止写入(例如,如果已改变媒体、如果媒体上的记录器标识符与当前装置不匹配、如果媒体没有授权使用写入能力的有效证书,等等)。
TRAP_DeviceAccess可用于提供保护或启用写入所需的任何必需的鉴别或密钥协议。对于一次写入的媒体,可拒绝重写先前已写入部分的尝试(和冒破坏所述位置处的媒体的风险),除非已获取明确的授权(例如,经由TRAP_DeviceAccess)。(虽然通常为不需要的,但是所述写入在特定情形下可为有用的,例如,用以使媒体回应于攻击而自毁。)如果驱动器允许对写入头调制、循轨控制、纠错码、读取/写入头光学特性或其它配置参数的直接控制,那么也可经由TRAP_DeviceAccess调整这些。出于取证用途可对已写入的媒体的特征进行修改,例如允许内容所有者判定哪一写入装置制造特定的一片光学媒体。
UINT32 TRAP_EventGet(UINT8*evBuf,UINT32 len);
此运算检查是否有任何事件(诸如用户界面操作、安全改变,等等)为待处理的,且如果是,存储关于第一个(或优先级最高的)事件的信息于由event规定的地址处。如果没有发现事件,返回值STATUS_NOT_FOUND且event的内容不改变、否则、trap返回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) */
}  Event Info_UserInterface;
Source域识别事件所起始于的装置。Source域的解释可预先判定或由内容代码判定(例如,经由从TRAP_DeviceDiscovery获取的信息)。可指定的可能的来源的实例包括(无限制):远程控制、键盘、面板键、鼠标(和其它指向装置)、媒体驱动器、外部装置、计时器、编码译码器、未知/未规定的来源,等等。
Action域规定对于事件所建议的动作或触发事件的动作。此值可为模态的(例如,影响播放器的当前状态)或可为恒定的。动作可改变重放状态或具有其它效应。可能的动作的实例包括(无限制):播放、暂停、停止倒回(以各种速率)、快进(以各种速率)、慢动作(以各种速率)、断电、弹出、频道升高、频道下调、选择、进入、音量调整(或静音)、引导/菜单选择、改变视角、跳进(skip-forward)、情景选择、用户语言选择、字幕控制、视频角度(video angle)改变、选择、后退、前进、是、否、购买、退出、帮助、错误、输出装置改变通知、重放环境重新配置通知、安全警告,等等。如果为未知的(诸如没有对应于事件的动作的情形),那么此域为零。(注意:此域对于用户界面事件以及其它事件都是有效的。所述值的最高有效的16位识别例如EventInfo_UserInterface、EventInfo_SecurityAlert等等的随后域的结构。)
Char域规定对应于键的字符(例如,使用ASCII编码的、双字节,等等)。如果为未知的(诸如没有对应于事件的字符的情形),那么此域为零。
Direction域规定事件指示的方向,或如果没有,那么为零。尽管可将方向量化为某些预定值(例如,北/上、东北/右上、右/东,等等),方向可为任何角度。
如果可将事件解释为指针在标准X/Y栅格上的移动或动作,那么Xpos和Ypos域指示一位置。如果事件与X和/或Y座标不对应,那么设置对应的域为零。
应注意,可采用多种方式解释单一事件(诸如远程输入装置上的按键动作)。举例来说,在某些输入装置上,用作“上”的按钮也对应于数字8。在此情形下,将产生一具有“上”的方向和数字“8”的Char域的事件。内容代码将使用其对需要什么输入的当前认识来判定哪一个是适当的。(在一替代实施例中,播放器可提供单独的能力或信息以辅助内容代码解释用户事件,或允许内容代码规定如何解释具有若干可能的解释的事件。)如果内容接收未知的事件类型,那么其可安全地忽略其(除非规定于source域中的关键位另作指示)。
对于非用户界面事件(诸如宣布装置添加、装置去除、装置重新配置、其它重放环境配置改变、来自外部组件的对数据的请求、操作已完成的通知等等的事件)或对于来自其它种类的用户界面(诸如语音识别能力或经配置以监视用户姿态的数码相机)的事件,可提供其它数据域。对于某些事件,内容代码调用额外的TRAP(诸如销售商专用的TRAP)以获取额外的信息可为必需的。
应注意,虽然TRAP_EventGet运算使用轮询来检测改变,但是替代实施例可使用中断或其它熟知的机制来处理事件。
UINT32 TRAP_CodecOutput(UINT32 idx,UINT8*buf,UINT32 len);
此运算将数据传输到编码译码器。简单的播放器可支持仅仅一个编码译码器(例如,CODEC_AUDIO_AND_VIDEO)或两个编码译码器(例如,CODEC_VIDEO_MPEG2和CODEC_AUDIO_MPEG),而更复杂的播放器可支持许多个,例如支持多个种类的内容流并启用诸如画中画(picture-in-picture)的特征。可使用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,UINT32height);
此运算配置具有指数值idx的重叠平面,所述重叠平面具有规定的尺寸且是空白的(完全透明的)。
UINT32 TRAP_OverlaySetPosition(UINT32 idx,UINT32 x,UINT32 y);
此运算设置规定的重叠平面在显示器上(其中0,0为左侧角落)的(x,y)位置。此运算实际并不显示重叠;其仅规定当调用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)和透明度(不透明性)。对调色板的改变可用于使重叠具有动画效果或修改重叠(例如,以增亮围绕选定区域的边缘、改变半透明重叠窗格(overlay pane)的不透明性、使图像可见,等等)。
UINT32TRAP_OverlayBitmapDraw(UINT32 idx,UINT32 x,UINT32 y,UINT32 width,UINT32 height,UINT8*bmp);
此运算在规定的重叠上绘制位图。绘制超过重叠区域的边界的重叠将产生错误,或可产生美学上不可预测的结果。然而,在所述情形下播放器不应使缓冲区溢出或造成任何其它安全性缺口(security breach)。参数bmp规定要绘制的图像(其可为压缩的或未压缩的)。替代实施例可提供绘制操作或可提供执行缩放和其它图像操纵的能力,从而从内容代码卸载这些进程(一般为计算频繁的)。
UINT32 TRAP_OverlayTextDraw(UINT32 idx,UINT32 x,UINT32 y,UINT32 size,UINT8*text);
此运算在规定的重叠上绘制文本。调色板中的头十一个项用于文本的着色(包括与半透明边缘的抗锯齿)。内容代码也可使用图像绘制能力来显示文本,例如如果播放器缺乏所需的字体、字符集,等等。
如果文本行与重叠不配合,那么将其剪修(crop)。没有提供对换行符的支持;此为调用者的责任。size参数规定要绘制的文本的大小,且可为播放器默认的(例如,反映用户偏好、当前显示器的特征,等等)。
UINT32 TRAP_OverlayRectDraw(UINT32 idx,UINT32 x1,UINT32 y1,UINT32 x2,UINT32 y2,UINT32 color,UINT32 filled);
此运算在规定的重叠上绘制一矩形。输入参数规定重叠指数(idx)、上-左侧座标(x1,y1)、下-右侧座标(x2,y2)、color和指示是否应填充矩形的布林(Boolean)值(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)成为标准问题列表的部分之前制造的装置将用错误代码STATUS_QUESTION_UNKNOWN回应具有所述qID的查询。同样应注意,标准问题列表上的问题将始终使qID的最高有效位(位31)清除。此最高有效位已设定的问题ID是保留用于扩展的装置专用的问题的。(经设计以发现关于具体装置的扩展信息的内容代码必须知道装置的扩展qID列表和回应方法。)
调用例行程序应传递由作为位置的buf所指向的缓冲器的最大长度(以字节计),其由len指出。于Len中返回的值将指示实际写入buf的字节的数目。
当将装置连接到系统时,播放器向所述装置分配装置ID。将装置从系统断开连接并不引起装置ID丢失或被重新分配到另一装置。装置ID零保留用于主播放器本身(尽管播放器也可具有额外的ID)。装置ID在插入新的媒体或以装置ID(dev)零调用TRAP_DeviceDiscovery之前是不变的。当在dev设置为零和qID设置为零时调用TRAP_DeviceDiscovery时,放弃所有当前分配的装置ID,如果适当则执行对所有装置的重新扫描,且重新分配装置ID。装置或装置配置的改变通常产生事件(由TRAP_EventGet获取)。
由TRAP_DeviceDiscovery提供的信息可由内容代码用于判定是否播放、判定怎么播放或播放什么、导出解密密钥或其它密码参数、转换随后将作为代码被执行的数据、识别(或解决)兼容性问题、评估风险、判定播放器能力、识别用户偏好并执行其它安全和非安全角色。
TRAP_DeviceDiscovery不应当改变系统的状态;改变装置状态的操作应当使用TRAP_DeviceAccess。
UINT32 TRAP_DeviceAccess(UINT32 dev,UINT32 opID,UINT8*buf,UINT32 * len);
此运算请求由dev规定的装置执行由opID规定的装置操作。操作通常为针对特定装置的。此TRAP(和/或套接字TRAP)通常用于在装置之间或装置内的消息传递,以及用于设置配置参数和一般地管理重放环境。所传递的参数的内容取决于opID。取决于opID,缓冲器(buf)可用于从内容传递信息或传递信息到内容或上述两种情形。
TRAP_DeviceAccess可用于实施非常广泛的能力。举例来说,安全参数(诸如密钥和影响如何从物理媒体载入数据的其它参数)可使用TRAP_DeviceAccess而规定。所述运算也用于与远程装置和其它组件(包括硬件和软件组件)交互作用,包括(无限制):传输数据、接收数据、执行密钥协议、判定撤销状态、执行鉴别、改变配置状态、控制电源管理特征、终止/控制进程,等等。
举例来说,TRAP_DeviceAccess可用于将电影的拷贝传送到远程装置。运行于发送装置上的内容代码可首先识别目标装置和用于该传送的适当操作ID。其也将执行任何装置鉴别、密钥交换或其它所需安全操作。(尽管最普遍地在传送之前进行安全分析,但是可额外地或替代地在主要的数据传送期间或之后执行密钥分发和其它与安全相关的过程。)接着,其将向远程装置提交电影的部分(如果接受者支持,视情形还连同可解释的代码)。发送的数据的格式由内容代码和目标装置协商且最终地由内容代码控制。举例来说,进行传输的内容代码可从由目标装置支持的多个格式选择、重新调节或以其它方式转换内容、将取证标记嵌入于内容中和在将内容提供到目标装置之前对其解密/重新加密。与内容一起发送的代码也可不同于实际上正由发送装置解释的代码(例如,如果解释器为不同的类型、执行不同的作用,等等)。也可省略或修改代码、密钥、数据和其它部分,例如去除接收者装置不支持的(或未授权由其执行的)功能性,诸如制造随后的拷贝的能力。代码或数据也可采用加密的形式提供且无需由发送内容代码解密。(在某些情形下,发送装置甚至不可访问解密密钥。)通常在经受任何必需的安全处理或其它转换后 .内容将由发送者从媒体部分地载入、接着输出。接收方装置也可运行解释型代码。举例来说,装置到装置的传送可涉及首先将某些初始代码传输到接收者,所述代码将执行对所述接收者的任何所需的安全检查、接着管理随后数据的接收。(例如,在接收端,TRAP_DeviceAccess可用于接收数据并将其存储于(例如)文件系统中,或TRAP_CodecOutput可用于显示数据。)甚至在发送到不可编程的装置时,发送代码也可执行安全和撤销检查、管理接口协议的安全部分,等等。在某些情形下(例如,如果装置和传送协议比内容代码更新),内容代码可允许装置管理传送过程的安全,同时在需要的和/或可实行的范围内监视该过程(例如,通过访问安全过程的细节并在识别到安全问题的情形下阻止传送)。传送可伴随有NVRAM插槽写入、媒体写入、与外部服务器的“握手”或其它过程(例如)以强制实施诸如“只限复制一次”策略的限制。
UINT32 TRAP_RunNative(UINT8 * signature,UINT32 sigLen,UINT8* code,UINT32 codeLen);
此运算用以允许内容代码在播放器上执行本地代码。播放器可要求本地代码由播放器制造商或另一受信方数字签名。(其目的是为了阻止恶意内容运行恶意的本地代码。)本地代码的操作通常对于播放器实施(或最终运行本地代码的任何其它装置)为特定的。因此,内容代码通常使用关于播放器的特征的信息(例如,从TRAP_DeviceDiscovery判定的)以判定播放器要求什么本地代码(或相反地,判定播放器是否与某本地代码兼容)。
TRAP_RunNative的使用的实例包括(无限制):
●安装软件更新到播放器或系统的其它部分(例如,通过将更新的代码写入包含于消费性电子装置中的非易失性存储器、修改安装于PC上的软件程序,等等);
●更新存储于播放器中的密钥或密码参数;
●扫描重放环境(存储器、存储装置,等等)以搜寻恶意的(或潜在地恶意的)软件(诸如伪装为视频驱动程序的视频捕获软件、伪装为光盘驱动器或其它媒体输入装置的媒体仿真软件、用于篡改执行程序的调试器、TRAP_DeviceDiscovery未正确地报告的任何活动中软件、任何缺乏有效的未撤销的数字签名的软件,等等);
●检测在装置上是否已执行恶意的(或潜在地恶意的)修改(诸如未授权的固件改变、FPGA的重新配置、硬件组件的替换,等等);
●就装置的证书、公开密钥、对称密钥和其它密码属性方面检验某装置属于预期的类型(见下文);
●提供对程序错误(诸如播放器的重叠/菜单能力中的缺陷、存储器泄漏、存储器破坏问题、不正确的解释器运算、性能问题、安全策略解释缺陷,等等)的解决方案;和
●启用对外围设备的直接访问(例如,以获取关于系统的原本不可访问的信息或以现有TRAP不支持的方式修改系统状态)。
TRAP_RunNative可帮助在盗版者找到从一类合法播放器提取密码编译密钥的方式并配合恶意的软件程序一起使用那些密钥的情形下重新建立安全性。在此情形下,撤销所有易受攻击的播放器的密钥通常是不可行的,因为许多这样的播放器将由合法用户所拥有,他们会对将其设备撤销感到不满。
一示范性媒体承载针对密钥提取攻击的反措施且包括进行以下操作的内容代码:
首先,媒体上的内容代码通过检验播放器的证书来判定播放器的据称的序号。播放器序号暗示播放器的类型和播放器承载的具体的密码编译密钥(例如,在TRAP_Aes中)两者。(某些示范性密钥管理方法描述于“示范性对称密钥管理”部分中。)接着,内容代码检验播放器了解其应当了解的密钥。(举例来说,此可通过调用其中src和dst指向包含重放所需的加密的代码或数据的缓冲器、len包含缓冲器长度的、key指向已使用所关心的播放器密钥加密的缓冲器的解密密钥的值、和opOrKeyID参考播放器密钥的TRAP_Aes而完成。可执行多个TRAP_Aes调用,包括来自先前运算的输出被用于制定随后运算的输入的情形。也可包括其它步骤,诸如执行具有恒定输入的TRAP_Aes运算、接着通过异或运算或增加“修正”值来“改正”结果。)对于易受攻击的播放器的密钥,因为这些播放器要求额外地鉴别以区别在易受攻击的播放器上执行重放的情形与在使用从易受攻击的播放器提取的密钥的恶意播放器上执行重放的情形,所以密钥验证步骤将失败(或至少没有完全地完成)。此可通过执行TRAP_RunNative而执行,TRAP_RunNative运行经配置以区别仿真的与合法的播放器接着根据结果修改解释器状态(例如,通过返回结果值、基于结果对解释器的存储器区域的部分解密或以其它方式处理,等等)的本地代码。替代地或额外地,本地代码可在解释器外有影响,例如通过与外部装置通信、修改输出(例如,以引入取证标记)等等。由本地代码执行的运算接着可由内容代码要求以用于正确的重放,例如通过并入或以其它方式要求视频或所需的代码/数据的解密密钥的导出的结果。
除非仿真器是理想的(考虑到现代计算装置的复杂性,其为极其难以实现的前提),本地代码才有可能成功地区别。本地代码可用于区别合法播放器与仿真播放器的特征的实例包括(无限制):运行特定类型的本地代码的能力、存储于硬件寄存器中的值、修改硬件寄存器的效果、存储器内容和校验和/散列值、当执行非标准运算时的行为、销售商专用的安全特征的正确实施(例如,视频解码器芯片中的未正式记录的安全能力)、编码译码器四舍五入错误、错误条件的处理、可选择的用户界面组件(诸如LCD显示器或键盘输入)、合法装置所没有的能力的存在和运算的性能和时序。在一示范性实施例中,内容规定了执行一个或一个以上播放器安全测试、导出基于测试结果的密钥并使用导出的密钥对解释器的存储器区域的一部分解密的本地代码。接着内容代码经配置以在本地代码的所有(或充分多的)检查指示播放器为合法的情况下进行正确地播放。如果播放器不合法,那么内容代码和/或本地代码可停止重放、报告错误、要求额外的鉴别、要求播放器升级、拒绝对电影的末尾解码、禁用附送特征、以降低的分辨率播放或以反映与重放环境相关联的更高风险的其它方式回应。
UINT32 TRAP_VendorSpecific(UINT32 select,...);
此运算用以允许播放器制造者增加对其自己的安全性和非安全性操作的支持。举例来说(且无限制),某些实施例可提供文件访问(打开、读取、写入、搜索、关闭、设置属性,等等)、对销售商专用的安全操作的访问(诸如可在主要密码能力遭破坏的情形下充当备份的非标准密码支持、辅助密码转换、硬件视频解码电路中的安全特征 .等等)、对经由TRAP_DeviceAccess不可利用的特殊能力(三维显示、气味输出、操纵杆振动,等等)的访问、对原始帧缓冲器内容的访问,等等。
集成的安全服务
示范性实施例可允许发证实体(或其它实体)向内容作者提供一套集成的安全服务。虽然安全服务可由内容所有者自己提供,但是将这些能力外包给第三方可减少内容所有者参与该过程的需要,同时(例如)通过使一个安全提供者能够服务于多个内容所有者而允许了规模经济效益。无论安全服务是由单一实体还是由多个实体提供,相关任务可包括(无限制):
●开发安全代码或服务,其将视听内容与安全反措施、解密逻辑、取证标记嵌入功能性、撤销策略的实施、与非易失性存储能力的结合、和与非安全特征用户界面的结合相组合;
●使用自动搜索工具和/或手动过程来查找经由计算机网络和其它分发渠道可利用的潜在盗版材料,手动和/或自动检查并分析盗版拷贝以恢复嵌入于取证标记中的信息,接着使用已恢复的信息搜集关于盗版者的装置或方法的信息;
●收集、存档并分析关于盗版的其它信息,例如通过分析盗版软件/装置和盗版者之间(例如,在在线聊天室中)的讨论;
●使用收集的信息来帮助减少盗版,包括(无限制)撤销盗版者装置、制定针对盗版者攻击的反措施、协助对有嫌疑的盗版者的起诉,等等;
●管理密钥、播放器和其它组件的撤销列表,诸如怀疑为已泄漏的、不安全的、涉及盗版的或原本不应当用于解密内容的密钥、播放器和其它组件。所述列表可用电子方法管理且包括(无限制)与每一项的状态相关联的多个参数,以使得可定制撤销数据以满足与个别主题、过程等等相关联的风险轮廓;
●产生或获取用于块解密运算(诸如TRAP_Aes)的输入/输出,例如用于编辑内容使得其仅可由未撤销的装置解密;
●开发或管理攻击的反措施,包括针对特定播放器的攻击的反措施。举例来说,在播放器制造商必须开发并数字签名基于本地代码的安全反措施的格局中,所述服务可包括(无限制):识别要求所述反措施的情形、向制造商提供关于风险的信息、辅助反措施开发、提供对反措施的测试(包括安全测试和兼容性测试)、开发由内容用于识别每一反措施应当被使用的重放环境的代码或策略、使反措施代码与其它解密过程和其它安全特征结合(例如,用以防止反措施被略过或绕过)和组合媒体上的来自多个单独的播放器类型/制造者的反措施:
●管理与非易失性存储器插槽相关联的数据,包括密钥、代码、标识符、安全策略和其它属性;
●配合在线的或其它基于网络的或交互式的组件操作或与之结合(例如,用于在解码涉及一个或一个以上具有不可靠的安全性的装置或环境时提供增强的用户或播放器鉴别步骤);
●对完成的媒体执行质量控制;
●将内容与特殊的营销特征、用户特征、存在于个别平台上的非标准特征等等结合;
●执行播放器兼容性测试;
●开发代码并与之结合,所述代码用于检测具有问题(包括(无限制性)菜单程序错误、编码译码器限制、显示器限制、非工作特征、可改正的安全性缺陷等等)的播放器并运用适当的解决方案(其可包括避免受影响的操作、使用未受影响的简化特征、安装播放器修补程序和执行本地代码来处理所述问题);
●与复制器(replicator)结合以确保用适当的代码和数据正确地制造媒体,从而实现上文所描述的特征;和/或
●提供任何方式的其它任务以辅助内容所有者、播放器开发者、用户、执法者或其它方。
取证标记嵌入和恢复技术
为获得针对相对较大规模的共谋攻击(意即,盗版者组合来自多个解码装置的解码输出的攻击,通常意图是清除原本可用于识别并撤销共谋装置的取证标记)的最大可能的安全性,具有在输出中引入相对较大数量的变化的能力一般为有利的。为完全的MPEG-2视频GOP存储完全单独的版本当然是可能的,尽管如果必须存储大量替代视频序列(诸如电影中的几百万个替代),存储要求会高得令人无法接受。为适应所述情形,最小化所需存储空间的量是有利的。
尽管取证标记所需的具体要求和属性取决于情形而变化,但是理想的属性通常包括底层的变化被紧凑地表现出来(意谓为编码变化要求较小的存储空间或带宽)、耐久(意谓所述变化可从质量降低的拷贝恢复,诸如通过使用消费性可携式摄像机从电视屏幕记录而制造的拷贝)、似是而非(意谓无法通过检查输出而自动地识别和去除其)和其为艺术上可接受的(意谓变化不会过度降低内容的质量或对内容的体验)。这些要求可变化(例如,在主题、内容作者的要求、重放环境特征等等之间)。
对于支持取证标记的示范性光学视频光盘来说,内容作者查找或产生可应用于压缩的视频的多个替代(或其它修改)。这些替代被识别为视频压缩过程的部分,其中对所述视频压缩过程进行修改以识别潜在的变化、接着根据多个标准(例如,存储大小、耐久性、似真性、艺术可接受性,等等)评价其适用性。如果变化为适合的,那么将其作为适合的变化输出。举例来说,可对压缩逻辑进行配置以识别变化单一位(或单一字节、单一字、单一区块,等等)的值会产生适合的替代视频序列的位置。
在一替代实施例中,可使用常规压缩算法,且可作为一后压缩步骤产生并验证替代。举例来说,可使用自动化软件来(a)识别对视频流的候选修改,例如通过使用(伪)随机数生成器来选择压缩视频的任意字节和该字节的新值;(b)执行视频的试验解压缩,且如果流被变化变得无效,那么将候选修改作为无效的而拒绝;和(c)将试验解压缩的输出与对原始流解压缩的结果比较,且如果差别不满足所述要求,那么拒绝候选修改。举例来说,步骤(c)可拒绝过小的修改(意即,不够耐久的)或过大的修改(意即,并非似是而非的和/或艺术上可接受的)。可执行额外的测试以检验修改彼此将不交互作用(例如,在某些情形下,如果单独应用修改,那么其可为可接受的;如果同时应用修改,那么其可为不可接受的)。保存通过测试的修改。
当编辑使用取证标记的示范性媒体时,准备初始压缩视频数据流。此数据由视情形已应用了某些修改的主压缩视频组成(其视情形可包括某些替代或破坏视频的其它修改)。准备识别对视频的有效修改的数据结构(例如,应用先前已识别但未应用的修改或解除已应用的修改),包括对于使视频可播放为强制性的任何修改。替代可为非常紧凑的(例如,在MPEG GOP中的24-位字节偏移及8-位替代值可用4字节表示),从而使得能够在仅仅几兆字节的数据中定义差不多数百万的改变。
内容作者接着准备程序逻辑以基于重放环境特征而选择并应用变化。应当对此程序逻辑进行配置以对视频序列应用改变,其中所应用的改变的组合通常是基于对取证用途有用的信息(诸如序号、密码地识别装置的值、型号/制造商信息、关于连接的装置的信息,等等)。另外,应当可对程序逻辑进行配置以应用产生有效视频流所需的任何改变(至少在操作于可接受的重放环境中时)。(具有“强制的”改变可适用于帮助挫败盗版者试图禁用应用所述改变的内容代码部分的攻击)。内容代码逻辑可包括密码学的使用,例如仅在应当应用那些替代的播放器上使用播放器密钥来对替代集解密。类似地,内容代码可包括错误校正码的使用(例如)以使得恢复已标记视频的一方在即使标记恢复不可靠时(例如,归因于攻击或质量降低)也能够恢复播放器信息。嵌入的值可包括数字签名、MAC或鉴别嵌入的信息的其它值,使得恢复标记的一方能够对已恢复信息的有效性有信心。
当恢复盗版拷贝时,内容作者可分析拷贝以识别存在的变化。虽然此分析可手动进行(例如,通过将盗版视频的帧与在每一位置处的每一可能的变体相比较,接着将变化的列表映射回到重放环境特征),但是为了更高的效率和使得能够分析具有更高复杂性的标记,此分析过程可为自动的。示范性自动取证标记分析系统使用具有定制的软件的计算机而实施。分析软件以原始的压缩视频、修改的列表和已恢复的盗版视频的数字表示而开始。接着,分析软件使原始视频中的帧与盗版视频中的帧匹配,并识别盗版视频的与原始视频(和/或已应用了修改的原始视频)的对应帧最接近地匹配的帧的转换(旋转、缩放、弯曲、色移、亮度调整 ,时移,等等)。分析软件接着比照原始视频的每一变体的对应部分来比较盗版视频的帧(或帧的部分、或帧的集合,等等)。软件接着基于指示已恢复的视频与每一变体匹配的接近程度的相似性/差别来计算一得分。此得分可(例如)使用(已转换的)盗版视频图像与原始视频的变体之间的最小平方差而计算。在计算得分时,可忽略未受改变影响的区域,且对于诸如交错、帧间模糊等等的失真可进行进一步的调整。图像分析软件也可提供“手动模式”用户界面,所述“手动模式”用户界面允许操作者在原始视频的变体(具有可选择的放大和突出显示以辅助视觉上定位变化)旁边观看盗版视频的帧(具有或不具有调整的转换);且提供用户界面选项以允许操作者选择哪一变化存在于盗版视频中(或指示变化为未知的)、前移和后移每一视频源中的帧、快速前进到下一变化和保存当前程序状态。图像分析过程的输出(无论是手动执行还是自动执行)为分配给可存在于视频中的可能变化的相对得分的列表。(其简化形式为输出仅仅识别每一变体的最可能的选项)。自动和/或手动过程接着用于将已恢复的变化数据转换成关于重放环境的信息。举例来说,如果标记嵌入最初是基于应用于播放器序号的错误校正码的输出,那么可使恢复的选择值转换成一适当解码过程的输入,所述解码过程将恢复序号(假定错误的数目不是过多的)。类似地,如果选择过程使用以序号的一部分为种子的伪随机数生成器(PRNG)而执行,那么分析过程可涉及将使用每一可能的种子值的PRNG输出与对盗版视频的观测结果相关联。
变化也可使用除修改压缩视频流以外的其它手段而嵌入于内容中。举例来说,内容代码可通过控制播放器将图像重叠于已解码的视频上而引入修改。举例来说,取证标记可通过在MPEG-2解码视频上绘制一个或一个以上半透明的重叠帧(或类似地,通过使内容代码直接或间接地修改输出帧缓冲区)而嵌入。重叠也可为高度可见的。举例来说,陈述“Screener forFirstName LastName’s.Do Not Copy.”的动态生成的移动半透明重叠可提供对盗版的公开的威慑,且可通过判定观众的名称(例如,从光盘的烧录区、从NVRAM插槽、从服务器,等等)并显示适当的重叠而产生。重叠也可用于(例如)通过在(有意地)有缺陷的部分上绘制来改正或修改未压缩的视频。因为表示用于绘制重叠的代码所需的数据量可非常少 .所以对于媒体上的存储空间来说重叠可为非常有效率的。基于重叠的标记使产生具有大量变体的视频部分变得有效率(,可容易地使单一视频帧的较小部分唯一地识别播放器,例如,通过简单地将播放器序号的表示重叠在那个区域中)。基于重叠的标记也可简化制造标记过程,所述标记变化广泛,因为(例如)当可能显示微弱的半透明重叠图像时对于屏幕位置(x,y)和时间可存在很多选项。这些特征可尤其有助于在盗版者设法通过组合来自多个播放器的输出而隐藏其拷贝的来源的情形下识别装置。取证标记也可嵌入于包括(无限制)音频、静态图像、控制数据、媒体写入模式等等的其它数据中。
媒体和内容鉴别
当插入媒体和/或其后载入数据时,内容代码和/或播放器可密码地鉴别媒体。
在一示范性实施例中,使用散列树对媒体的所有或某些个别数据部分(例如,扇区)进行数字签名。根散列由监督格式的实体(或另一受信实体)数字签名并置于媒体上。根散列签名也可识别复制和/或制作设施、版权所有者、发布日期、描述得到授权(或未得到授权)访问媒体的播放器装置的标准和其它所述信息。当数据区块(例如,扇区、GOP、轨道、文件,等等)从媒体载入时(或其后),其可由驱动器、内容代码、播放器应用程序和/或其它播放器装置/部分通过使载入数据与适当的中间散列值组合以重新产生根散列而验证。可在检验媒体签名后缓存根散列的值.使得无需为每一读取重复(相对较慢的)公开密钥签名检验步骤。类似地,中间散列值可与数据区块一起被存储、缓存、视需要计算或从媒体检索。媒体也可包含多个根散列或可使用其它鉴别方案(诸如通过检验每一扇区、GOP或其它数据部分上的数字签名)。为减少存储开销,可使用允许消息恢复的签名和填补方案。数字签名也可鉴别光盘内容的部分,诸如包含于光盘上的启动代码或存储于可写入部分(或可重写入)部分中的数据,或所有数据。
签名(或其它密码值或非密码值)也可规定或限制可由特定的光盘或代码部分执行的运算。举例来说,数字签名可由授权和允许内容访问特定的播放器特征或能力的发证机关所发布。所述授权可用于确保已支付许可费或阻止未授权的盗版媒体的生产。在一示范性实施例中,希望大量生产包含电影的光盘的每一内容作者(或其复制设施)将向发证实体提供识别待生产的光盘的信息。所述信息可包括(无限制)主题、合法版权持有者的身份、待授权的拷贝的数目、光盘内容的至少一部分的散列、媒体序号、要求的所要能力和鉴别请求的数字签名。作为回应,版权持有者将接收授权生产媒体的一个或一个以上数字签名。发证实体也可接收并处理来自内容作者(或其代理人)的支付.以此方式,许可费有可能直接与由内容实际使用的具体能力(安全性或其他)相关。施加于内容代码的操作的限制也可基于非密码旗标(例如,与用于指示是否可复制广播电视信号的广播旗标类似)。许可也可基于先前动作(例如,拒绝已访问私人用户信息的内容代码对网络资源的访问以确保维护用户隐私、授予已获取用户的许可或已从远程服务器获取鉴别的内容代码更大访问权,等等),且对于不同线程、内容代码部分等等可为不同的。
数字签名可与内容一起分发或单独地分发,且可设置于媒体的任何部分上,且还可附有加密密钥、用于导出解密密钥的逻辑、安全策略信息,等等。举例来说,在光学媒体的情形下,将数字签名设置于对于每一光盘可单独地写入的媒体部分上可为有利的(从而提供已鉴别的唯一的光盘序号,例如用于配合媒体撤销能力一起使用,以便清楚地规定哪些装置应当能够播放媒体,等等)。
对于包含非易失性存储器(EEPROM、闪存,等等)的媒体来说,可正常地存储唯一性数据,而其它媒体类型可要求其它技术。举例来说,压制的光学媒体可在烧录区(BCA)中带有数据,其通常是使用高能量激光而写入的。有意的缺陷或改变的模式也可被引入于媒体表面中且由播放器和/或内容代码读取(例如,通过在错误检测和错误校正被禁用的情况下直接处理所产生的读取结果)。对于基于半导体的ROM来说,可使用熔丝和其它一次写入特征。
除签名和证书以外,媒体唯一性区域可用于承载(无限制):定位信息、加密密钥(例如,允许具体播放器对例如样片(screener)、演示或希望用于受控分发的其它光盘的当前或未来媒体解码的密钥;允许读取、解密和/或写入播放器非易失性存储器数据的密钥,等等)、未加密密钥(例如,在压制的媒体的生产后写入以防止对由盗版者从复制设施窃取的媒体或数据进行解码)、识别信息(诸如接收者名称,例如用于在重叠中显示和用于取证标记中)、营销和促销数据(例如,允许参与试用、抽奖、在线服务等等的值)、电话号码、数据网络地址、可执行代码或可由内容代码和/或播放器使用的任何方式的其它密码数据或非密码数据。当从光盘唯一性区域载入数据时,驱动器可应用单向转换(例如,SHA散列、以由内容代码规定的值为键值的HMAC-SHA、RSA公开密钥运算,等等),使得其不输出(例如,不输出到应用程序或内容代码)伪造光盘唯一性区域的内容所需的信息。记录装置也可使用散列处理或其它密码转换以阻止盗版者使用从合法媒体提取的信息来制造精确的非法拷贝。媒体唯一性区域也可被预先记录(例如,具有在空白的消费者可记录媒体上的序号)或由记录装置写入(例如,具有记录装置的标识符,其可经数字签名,其可由合法装置检验以确保记录器未撤销且可在恢复非法拷贝以识别和/或撤销用于制造其的记录装置时使用)。
对于支持媒体鉴别和防伪技术的媒体格式来说(诸如调制凹区(modulating pit)特征或摆动轨道内容,如在第6,646,967号美国专利中所概述的),从这些特征导出的值也可由播放器读取(或检测)并由播放器和/或内容代码鉴别。在读取所述物理特征后,驱动器可在输出此值之前应用单向密码转换,使得知道所转换的特征的恶意方不能够以可由未修改的驱动器接受的方式来伪造底层的特征。内容代码(和/或驱动器、播放器应用程序或其它组件)可鉴别已转换的特征(例如,通过检验媒体带有来自受信方的具有所述特征的值的签名)。
引导、安全分析和重放
将描述具有示范性光盘的示范性播放器的实际操作,以将光盘插入驱动器中开始。通过从光盘载入并执行代码和/或数据的初始部分而首先引导解释器。此初始部分可较小且较简单,例如,其可简单地通知用户主题正在载入、接着开始将额外的代码和数据从媒体载入到内容的存储器区域中。此代码可接着载入额外的代码(例如,其可检查播放器类型、接着载入对于那个播放器类型为特定的代码)。取决于播放器设计和媒体,可执行任何数目的代码载入检查。播放器也可检测插入的媒体缺少代码(或运行代码所需的特征)的情形,且如果检测到,那么播放器使用内置于播放器中的能力来播放光盘。所述支持适用于(例如)允许从诸如DVD、CD、DVD音频等等的旧式媒体格式进行重放。
示范性媒体接着使用播放器的密码接口(例如,TRAP_Aes)以导出一个或一个以上主题专用的解密密钥。对内容代码进行配置使得只有未撤销的播放器能够导出有效的解密密钥。(为完成此,内容代码可使用(无限制性)诸如广播加密、密钥-加密-密钥、模糊软件等等的技术。)这些解密密钥可接着(例如)用于解密额外的加密代码、视频或其它数据。引导也可包括从媒体载入数据、视需要解压缩数据和执行任何方式的安全分析运算(在以下子部分中更详细地论述)。
实际的重放接着通常包括重复地执行多种步骤或检查,其可包括(无限制):
●处理事件。此可包括检测并处理用户界面事件(诸如按键、按压远程控制按钮、鼠标移动、指针/光标移动、选择输入,等等)和其它事件(例如,断电请求/通知、硬件重新配置请求/通知、软件改变请求/通知、错误警告、媒体弹出请求/通知,等等)(参见TRAP_GetEvent。)用于处理一事件的适当方法可取决于事件、主题、播放器属性和重放过程的状态(例如,当显示菜单时用于处理事件的逻辑可不同于当播放视频时使用的逻辑),举例来说 ,某些事件可(无限制)通过切换到新的视频流、改变播放器配置位、请求动作(例如,回应弹出请求而调用“媒体弹出”TRAP)、更新菜单、改变(例如,动画化、更新,等等)重叠图形、将网络连接起始/更新/等等、改变重放配置(重放速度,等等)、载入并运行新的内容代码、跳转到视频流中的新的位置(其可要求改变/清空缓冲的媒体请求、清除数据缓冲的编码译码器,等等)、终止重放、执行安全检查、显示错误等等而处理。某些事件也可要求内容代码检查所请求的操作是得到授权的。不能够立即执行的操作可被缓冲直至其可执行。也可忽略某些事件。
●管理媒体接口。在一示范性实施中,处理例行程序的媒体负责确保有可用于视频和音频编码译码器和其它用途的稳定的数据供应。举例来说,如果媒体为光盘,那么内容代码可检查驱动器的状态、检索已成功读取的数据、提交新的读取请求、清除不再需要的读取请求、为预读(read-ahead)能力或高速缓冲存储器提供提示(例如,载入视频中的即将到来的分支的每一可能的分叉中的数据以确保不间断的重放)、规定数据应载入内容代码的存储器区域中的何处(或其它地方,例如编码译码器、帧缓冲器、解密模块,等等)、检查错误、控制应当如何处理错误、规定驱动器或其它组件的密码编译密钥、提供与驱动器读取/写入请求相结合的鉴别信息、规定解码参数(诸如错误校正信息、密钥、扇区地址映射、读取头深度/焦距/等等、文件访问特权、等等)、等等。
●安全性处理:此逻辑可执行任何额外需要的解密或处理步骤,诸如导出密钥、鉴别载入数据(例如,使用MAC、散列树、数字签名,等等)和运行可执行的部分(例如,与音频或视频的特定部分相关联的安全性代码)。此步骤也可包括嵌入取证标记(例如,通过选择输出载入数据的哪些部分、对数据进行修改,等等)。在一示范性实施例中,此运算包括导出MPEG GOP的密钥、对GOP的数据执行AES解密运算和使用内容代码在解密前/后进行预处理和后处理(重排序数据、区块XOR、替代、字节修改,等等)以确保对区块AES密钥本身的了解不会允许盗版者解密光盘的内容。
●将数据传送到编码译码器。此代码也可检测并处理错误条件,诸如由于从媒体需要的数据不可利用而无法避免编码译码器缺乏数据(codec starvation)的情形。此代码还可检测编码译码器状态以确保编码译码器缓冲区不溢出或下溢,且确保媒体接口代码正载入正确的数据。
●处理重叠和特殊特征。此逻辑负责绘制和去除菜单、重叠、字幕和类似的特征。其还处理画中画视频和某些种类的取证标记(诸如使用重叠而绘制的取证标记)。
特殊的情形(诸如游戏/字谜、菜单、菜单选择的处理、隐藏的“复活节彩蛋”、等等)可要求特殊的代码。如果提供多线程解释器(诸如Java虚拟机),那么单独的线程可用于不同运算(管理事件、重叠、视频、等等),且解释器对在线程和/或共享的存储器区域之间传递的消息的支持可用于线程之间的同步和控制。类似地,状态校验和消息传递可用于确保解释器与其它组件同步。
播放器也可提供用于各种操作的默认处理器(例如)以改进用户界面一致性、减少内容编辑努力、增加性能,等等。
在完成之后(诸如用户按压播放器上的弹出按钮的情形),可通知内容代码正在进行关闭。内容代码接着可通知远程装置、清理其内部状态(例如,完成任何所需的非易失性存储器写入,等等)并退出。如果内容代码在预定的一段时间内(例如,5秒)未退出,那么播放器装置终止内容代码并弹出媒体。
安全分析运算
内容代码可分析重放环境以寻找安全问题。此过程通常包括获取并处理关于播放器和重放环境的其它部分的信息。此信息可包括用于播放器或内容代码可检验的其它组件的数字签名和/或密码证书。
从播放器获取的此信息描述播放器和重放环境的特征(或据称的特征)。某些特征(诸如特定TRAP的存在)被直接报告。其它特征可间接推断,例如,播放器中的密码编译密钥的具体组合可由播放器的序号部分地或完全地判定。伪装为合法播放器但没有正确的密码编译密钥的播放器由于其不能够执行使用其没有的密钥的密码运算(解密、签名,等等),因而可被“捉住”。类似地,其它不一致性可用于识别问题。
安全分析过程可涉及于多种与重放相关的过程中,包括导出用于压缩视频、代码、音频和/或其它数据的密钥。举例来说,如果特定类型的合法播放器支持运行本地代码(运行于机器中的本地处理器上的代码,与运行于标准的解释器/虚拟机中的代码相对)的能力和/或支持未记录的对播放器类型为特定的计算,那么内容可使用这些能力来鉴别播放器类型。如果内容发现其运行于声称为特定的型号但不能够正确地执行由那种型号所支持的操作的播放器上,那么内容可合理地推断出其运行于一(例如)使用从一遭恶意泄漏的此类型播放器所提取的密钥而伪装为此播放器类型的装置上。
安全检查可涉及分析组件或属性的任何组合。举例来说,媒体、媒体驱动器和硬件组件的特征可用于检测伪造播放器出售于预先记录的或“压制”的媒体上的内容可查询驱动器以判定其是否运行于消费者可记录媒体上,且如果是,那么其拒绝播放,因为此绝对不应当发生。如果特定的主题在某些情形下(例如,如果已完成支付)允许记录到消费者可记录的媒体,那么内容仅在存有(例如)明确地授权从具有特定的序号和/或带有特定记录装置的标识符的媒体重放的有效数字签名(由内容所有者的授权代表发布)的情况下,才可允许从消费者可记录的媒体重放。
可对输出装置、装置驱动程序和其它重放组件(包括将(或可能)接收内容者)执行安全检查。此能力尤其适用于处理内容可能是使用恶意或泄漏的输出装置所记录的情形。输出装置的检验操作仅由装置的能力所限制。举例来说,输出装置检验可包括(无限制)将本地代码发送到输入或输出装置(例如,用以检测安全性问题、修正程序错误,等等)、执行与其它装置的密码“握手”、比照承载于媒体上的撤销列表来测试装置的密钥,等等。输出装置也可请求播放器的检验,在此情形下适当的检验可由该播放器、内容代码或这些(或其它组件)的组合来提供。如果多个输出装置连接成串(例如,播放器装置可将数字音频发送到混频器,混频器将数字音频提供到放大器,放大器接着将模拟输出提供到扬声器),那么每一装置可向播放器提供关于其计划怎样处理内容的信息,并允许始发(或其它)装置将消息传递到随后的装置。以此方式,内容代码可鉴别重放过程中涉及的任意一长串装置(或装置网络)中的每一装置。如果检测到非受信装置(或诸如记录装置的未授权的装置),那么内容代码可确保作出适当的回应(包括(无限制性)拒绝播放、拒绝输出到非受信装置、控制中间装置不发送内容到非受信装置、重新配置非受信装置以改正问题、降低输出质量、执行额外的安全鉴别步骤等等)。如果存在与因特网的连接或另一数据连接,那么安全检查可包括从远程网站下载额外的与安全相关的信息。类似地,远程装置和本地存储装置(例如,NVRAM)也可用于获取有用的信息,诸如最新的证书撤销表格或比媒体上的代码更新的数字签名的安全代码。
虽然安全检查通常在重放之前执行,但是内容代码可在任何时候执行安全检查。对于可重新配置的重放环境,或在可利用其它新的与安全相关的信息的情形下,周期性或经常地执行额外的安全检查可为有利的。如果检测到重大的改变,那么内容代码可终止重放或暂停重放直至可重新建立对重放环境的信心。
可使用表格或决策树以迅速地选择在特定播放器属性的情形下哪一安全分析代码(如果有的话)是适当的。不适用于当前播放器的安全代码无需运行(或甚至无需从媒体载入),从而防止任何不必要的性能影响且防止可由在不支持某安全代码的播放器上运行该安全代码而导致的兼容性问题。如前文所描述的,安全检查可与密码编译密钥导出运算结合(例如,在要求特定安全检查的装置必须实际执行检查以正确地导出所需的密钥而不要求安全检查的装置能够直接获取密钥的情形下)。
示范性密钥管理
一示范性播放器由其制造商用唯一的密钥组合来初始化。这些密钥从由控制媒体格式的实体所授权的密钥管理机关获取。密钥管理机关接收来自授权的制造商的请求、验证请求、提供播放器密钥集并接收对密钥的支付(和对应的许可费)。示范性播放器的密钥集由从最高级别256-位AES密钥(仅为密钥管理机关所知)导出的128个各为128位的AES密钥、一32-位群组ID(识别播放器的制造商)和一32-位装置ID(识别播放器的序号)组成。群组标识符和装置标识符共同唯一地识别播放器且表示于播放器的数字证书中。
在示范性实施例中,密钥集内的128个密钥(密钥ID值从0到127)的每一个由密钥管理机关通过首先从密钥ID、群组ID和/或装置ID计算密钥选择区块而导出。接着(如果需要)填补密钥选择区块并使用最高级别的密钥加密。可对所得的值进行后处理(例如,舍位),从而产生实际的密钥。用于从规定的参数导出密钥选择区块的方法取决于密钥ID。以下表格说明可用于将密钥ID、群组ID和装置ID转换成密钥选择区块的示范性规则。
密钥ID  按照密钥ID列出的密钥选择区块的内容
0...31      群组ID||(装置ID>>密钥ID)
32..63            (群组ID>>(密钥ID-32))||0x00000000
64..79            KeySelector(群组ID,装置ID,15,8)
80..83            KeySelector(群组ID,装置ID,16,8)
84                KeySelector(群组ID,装置ID,17,9)
85                KeySelector(群组ID,装置ID,18,9)
86                KeySelector(群组ID,装置ID,19,10)
87                KeySelector(群组ID,装置ID,20,10)
88                KeySelector(群组ID,装置ID,21,11)
89                KeySelector(群组ID,装置ID,22,11)
90                KeySelector(群组ID,装置ID,23,12)
91                KeySelector(群组ID,装置ID,24,12)
92                KeySelector(群组ID,装置ID,25,13)
93                KeySelector(群组ID,装置ID,26,13)
94                KeySelector(群组ID,装置ID,27,14)
95                KeySelector(群组ID,装置ID,28,14)
96                KeySelector(群组ID,装置ID,29,15)
97                KeySelector(群组ID,装置ID,30,15)
98                KeySelector(群组ID,装置ID,31,16)
99                KeySelector(群组ID,装置ID,32,16)
1000   x00000000||装置ID
101..127群组ID||装置ID
将密钥分配到伪随机装置子集(根据其群组ID和装置ID)的示范性函数KeySelector(群组ID,装置ID,g,d)为:
Let hash[0..19]equal the by tes of the SHA hash of密钥ID||群组ID.
LetAND_MASK=(1<<g)-1.
For i=0uptod-1:
Let n=hash[i]mod(g-i).
Clear the nth set bitin AND_MASK.
EndFor.
LetXOR_MASK=hash[16..19]AND(AND_MASK XOR((1<<g)-1)).
Compute deviceHash[0..19]as the SHA hash of密钥ID||群组ID||装置ID.
Return 0x00000000||((deviceHash[16..19]AND AND_MASK)XORXOR_MASK).
注意:“||”表示串联。“0x”表示以下为32-位十六进制值。“<<”表示左移位运算。“-”表示减法。“AND”表示逐位逻辑与。“XOR”表示逐位逻辑异或。
应注意,包括不同种类的密钥。举例来说,密钥0和密钥101到127将被唯一地分配到装置。相反,密钥1到31将在相同群组中的越来越大的装置集合中共享。密钥32到63在多个群组之间共享。最后,密钥64到99在装置的各种(在此情形下为伪随机的)子集之间共享。密钥100由跨越不同群组的具有相同装置ID的装置共享。
充分地保护装置密钥是重要的。举例来说,将装置的实际密钥设置于媒体上有在主题的安全被破坏的情况下泄漏播放器的密钥的风险。类似地,在内容出版商的安全遭破坏的情形下,将装置密钥提供给内容出版商可将密钥置于风险中。为应付这些风险,本发明并不要求准备并加密内容的实体为受信的。举例来说,密钥管理机关可提供一服务,任何一方可借以识别播放器密钥的集合和一个或一个以上输入值。作为回应,机关可提供以每一已识别的密钥对规定的输入解密(或加密)的结果。或者,内容出版商可提供其选择的明文/密文对。在任一情形下,编辑内容的各方可获取明文/密文对,但不可获取密钥本身这些对接着可用于安全媒体的生产。
示范性媒体的生产包括以下步骤:(a)内容出版商定义任何已撤销的播放器都不知道的播放器密钥的集合,但每一有效的播放器包含所述集合中的至少一密钥;(b)内容出版商选择任意的明文值;(c)内容出版商将所要的明文值连同所选定集合中密钥的识别信息一起安全地传输到密钥管理机关;(d)密钥管理机关检验明文值先前并未由另一方提交;(e)密钥管理机关导出所请求的集合中的每一播放器密钥并使用每一密钥对明文值加密;(f)密钥管理机关向内容出版商提供所得的密文;(g)内容出版商对具有明文值的内容(或某些代码、密钥或其它数据)的一部分加密;和(h)内容出版商将已加密的内容与密文列表和对应的代码存储于媒体上,所述代码经配置以识别运行代码的播放器是否包含所述集合中的任何密钥;且如果包含:判定播放器中的密钥ID、在密文列表中查找对应于密钥ID的密文、和解密已加密的内容部分,(例如)通过以加密的内容部分作为源数据、以密文作为密钥参数、以及选定的密钥ID值来调用TRAP_Aes。接着内容代码可向编码译码器提供解密的结果或以其它方式适当地使用数据。
替代实施例可(无限制性)使用多个级别的解密运算、使密码结果与取证标记和其它运算结合、使用多个密钥机关和使用安全代码或其它过程以进一步保护或处理值(密钥、明文、密文,等等),等等。
如果使用公开密钥密码学,那么密钥管理机关可提供(或公开)播放器的公开密钥(或,也可使用基于身份的密码学以使密钥列表不必要)。对于数字签名密钥,密钥管理机关也可提供由内容代码使用的参考签名(例如,消息/签名对)。公开/私人密钥可在装置群组之间共享(例如,通过将诸如KeySelector的运算作为用来生成密钥对的强PRNG的种子来使用、随机地生成和分配密钥,等等)。
当然,上文的角色可在多方之间划分。举例来说,密钥管理机关还可管理集中的撤销列表,从而使内容出版商不需要判定哪些密钥有效和哪些无效。类似地,内容出版商可将与安全相关的任务外包给其它方(包括密钥管理机关)。
上文的用于导出播放器密钥的示范性过程是确定的。其它实施例可涉及随机地生成密钥且可使用其它技术。用于导出密钥的运算(例如,AES加密)为示范性的且可使用其它运算(诸如MAC、公开密钥运算、其它算法,等等)而替代。
版本
当对内容解码时,通常地要么(a)内容会比播放器旧,要么(b)播放器会比内容旧。在两种情形下,假定播放器正确地实施所有的所需TRAP(包括任何必需的密码编译密钥)且满足由与内容相关联的代码强制实施的安全规则,那么重放应当正常地发生。当然,如果内容代码为不严谨地写入,如果播放器有缺陷或如果在编辑后已出现严重的安全性问题,那么重放可不自动工作。
为处理内容代码未能在合法播放器上正确地播放的情形,内容可(例如)经编辑以检查播放器来寻找针对特定光盘的安全覆盖密钥,且如果发现,那么使用密钥来对一个避开通常会执行的一个或一个以上安全检查或其它运算的内容代码部分解密。此“避开”逻辑可采用加密的形式承载于媒体上,从而确保其不可被使用,除非确实已释放解密密钥。如果要求覆盖,那么覆盖密钥可(例如)存储于播放器的非易失性存储器中(例如,以加密的形式)、经由网络而被检索、经由TRAP访问,等等。不影响安全性的措施(诸如禁用具有显示限制的播放器的图形化菜单)可为用户可配置的且不要求安全性鉴别。
也可对内容代码进行配置以使得用户能够应付检测到安全性失败或风险的情形。举例来说,如果调制解调器、因特网连接或其它数据信道是可利用的,那么内容可与鉴别服务器通信以获取更新的安全代码和/或获取继续进行重放的许可。也可显示(或可听见地播放)一代码,用户可将其提供到提供一激活值的自动免费电话服务。(所述服务可(例如)通过使用语音识别系统、通过检测DTMF音频或通过检测从用户的扬声器传到电话听筒中的声音来经由电话接收信息。类似地,信息可返回给用户用于键盘输入、从电话听筒传到播放器上的麦克风,等等。)回应可由内容代码检验(例如,通过检查数字签名、MAC、模糊校验和,等等)和/或用于随后的密码处理(例如,作为密钥)。挑战/回应鉴别结果可与取证标记一起使用(例如)以允许追踪拷贝而回溯到特定的用户或标识符。举例来说,如果激活值为唯一的且包括于取证水印中,那么内容所有者可使用取证水印以追踪已恢复的盗版拷贝而回溯到产生给定激活值的处理。因此,内容所有者在提供激活值之前获取关于用户的信息(例如,拨号者的使用ANI的电话号码或拨号者ID、姓名、信用卡号,等等)可为有利的。激活值可存储于播放器的非易失性存储器中(例如,用于未来用途和供其它主题使用)。
媒体编码和解码
在一示范性实施例中,内容代码可规定(经由TRAP)为从媒体读取并解码数据所需的参数。对从光学媒体读取的扇区的实际处理可包括以下步骤中的任何或所有步骤:
●向光学驱动器(或负责执行部分或所有扇区解码的其它组件)提供扇区解码参数。
●驱动器读取对应于所请求的数据(例如,扇区)的原始数据。实际载入可包括使用扇区标识符(或其它寻址信息)以在媒体上查找数据、接着从媒体实际载入适当的数据驱动器也可去除或处理与载入数据包括在一起的未加密部分(诸如导航域)。
●对原始扇区数据应用纠错。纠错过程可涉及一可调整的多项式或其它参数。内容代码也可禁用纠错和/或检错,例如如果其希望自己执行这些操作。
●解密或其它密码转换也可与纠错包括在一起,并在ECC之前执行和/或在其后执行。可选择应用于未纠错数据的解密过程以避免传送错误。举例来说,可在纠正位错误之前执行具有流密码的解密(例如,以计数器模式的RC4或AES)。解密(或其它处理步骤)可由驱动器、内容代码、编码译码器、驱动程序或任何其它组件应用。
也可选择解密过程以具有单向特性(例如)以使盗版者不能够使用已记录的输出来计算使用其它解码参数将会产生的输出。举例来说,驱动器可将每一扇区的密钥作为160-位(或其他大小)导入值(其不由驱动器返回)的使用由内容规定的密钥的HMAC-SHA来计算。在不知道导入值的情况下,盗版者不能够将使用已知的由内容规定的密钥产生的解密输出转换成应该使用其它由内容规定的密钥值产生的输出。因此,盗版者缺乏复制媒体或仿真其(例如,使用硬盘驱动器和恶意的装置驱动程序)所需的信息。虽然盗版者有可能存储对于特定密钥值的解码扇区表示,但是拷贝/仿真将在任何时候内容代码使用对应的输出未知的密钥请求扇区时失败。因为解码密钥的总的数目可极其大,例如对于256-位密钥为2256,所以盗版者不可能存储所有可能的扇区解码。内容代码可执行不同组合的请求,且对于某些请求,使用或检查所载入的实际数据。
播放器(或其它组件)可对扇区数据执行不对称密码转换。举例来说,可使用分块签名以阻止盗版者在没有获得许可的情况下制作新的主题。在一实施例中,公开密钥由嵌入于驱动器中的2048-位RSA模数组成(尽管其也可从媒体获取、从证书提取,等等)。为了提高签名检验操作的效率,将RSA模数产生为接近2的整幂,例如使最高有效128位等于“1”。当制作媒体时,每一区块(例如,扇区)通过使扇区数据与密钥流进行异或运算而首先随机化,所述密钥流是通过将媒体ID、区块的地址和区块数据的SHA散列种入(seeding)流密码而产生。接着将区块数据分成若干256-字节(2048-位)块,所述块各自通过使用RSA私人密钥对所述块执行模指数运算而被数字签名。签名的块与SHA散列记录在一起。因此,区块仅扩展20字节(如果区块为2048字节的扇区,那么小于1%)。假定流密码有效地随机化,那么模指数运算的输入大于公开模数的概率为可忽略的(约2-128)。因此,对于此情形无需特殊处理。当从媒体读取并解码数据区块(例如,扇区)时,执行对应的检验和解码过程,且包括(a)读取256字节块和SHA散列;(b)使用公开模数和公开指数(例如,3)对每一块执行模指数运算;(c)逆转所述随机化过程,例如通过使用包含的载入SHA散列值来计算一密钥流,将所述密钥流与所述块进行异或运算;(d)通过散列处理媒体ID、区块地址和区块数据并使结果与载入的散列值比较来检验解码数据的完整性;和(e)如果散列匹配,那么返回解码数据区块。如果散列不匹配,那么返回一错误。如果性能是一个问题,可概率地来执行检验(例如,在随机选择的扇区上)和/或仅在包含更关键的数据的区域上进行。
当写入可记录的媒体(或制造用于复制的原版)时,记录装置可接收其使用单向密码函数(诸如SHA、HMAC-MD5、使用AES而构造的单向函数,等等)进行转换并写入媒体上的特殊位置的值(见下文)。以此方式,因为盗版者不会知道正确的输入(例如,散列预映射),所以其不能够使用合法的记录设备来复制媒体。也可存储其它鉴别值(诸如数字签名)。安全值可为可应用于媒体的任何(或所有)部分的。
媒体安全值可作为普通数据存储或可存储于包括防止直接读取的额外保护和/或经特殊地编码的“特殊”区域中。因为安全数据的数量可相对较少(例如,小到128位或更小),所以可使用具有相对较低密度和性能的存储技术。举例来说,已知数据可编码于光学媒体的凹区编码或轨道位置(摆动)的变化中。数据也可隐藏于通常为纠错、扇区使用时间的不同、导航域等等保留的冗余位中。数据也可编码于不同物理光盘位置上(例如,在通常可读取的区域的内侧或外侧、或在不同的焦深处)。
媒体上的数据可包括指示器位、凹区编码变化或指示是否应当执行与数据有关的某些处理或安全步骤的其它标记。举例来说、一扇区安全旗标可用于指示包含于所述扇区中的数据应当使用公开密钥加以转换和/或仅当驱动器首先已接收了密码授权的情况下才可被释放。(所述授权可包括(无限制性)要求扇区内容的SHA散列。与当制作该媒体时其密钥未撤销的接收者执行一成功的挑战-回应鉴别、检验授权释放数据的数字签名、接收正确地解码扇区的密钥等等。)也可对数据进行标记使得仅可采用加密的形式释放其。(此在其中数据可能通过非受信总线或信道传送的个人计算机和其它系统中是尤其重要的)。
尽管主要地关于光学媒体而描述了上述示范性实施例,但是类似的技术可应用于诸如磁性媒体的其它媒体类型。就媒体本身可执行计算的固态媒体(诸如EEPROM/闪存)和其它存储技术来说,媒体本身可执行密码处理,且也可在内部包括与驱动器、播放器应用程序等等通信的安全解释器(其也可具有解释器)。媒体只需要包含实际存储压缩的内容所需的非易失性存储器的量(例如,对于高清晰度电影大致为30千兆字节),但是其可使用密码学或其它技术来产生超大(例如.2256字节)的“虚拟”或“仿真”的地址范围。如果此完成,那么盗版者将不可能制造完美的盗版拷贝,因为存储(或甚至读取)整个地址范围是不可行的,且没有通用的方式供盗版者判定实际将如何使用地址范围的部分。举例来说,在每一重放中内容代码可要求使用不同的区域。此一般途径甚至可在主播放器应用程序不可编程但媒体(或媒体驱动器/接口)可编程的情形下使用。
条件访问密钥流取证
付费电视接收器的设计一般以将所有对安全关键的组件置于智能卡或其它抽取式装置中为目标,使得可通过替换智能卡来处理安全故障。通常,可替换的模块用于导出解密密钥,其被提供到包含于机顶盒中的通用解密电路。常规实施的主要缺陷为盗版者可记录来自授权的装置的输出并将密钥(和任何其它所需数据)转发到未授权的装置。一种相关攻击涉及记录和转发视频本身。
追踪所述攻击可为极其困难的或不可能的。举例来说,泄漏的计算机可被盗版者用于经由因特网将密钥和数据匿名地转发给未授权的观众。可在具有伪造的“源”地址的UDP封包中发送密钥,从而使追踪非常困难。尽管系统操作者可通过加入盗版服务而访问未授权数据,但是没有方法追踪攻击的来源。在其它情形下,追踪数据可为实用的,但是来源可能位于执法不力的区域中。
使用当前系统,对于每一订户用于对视频解密的解密密钥的序列(以及解密的视频本身)是相同的。可在使用对装置为特定的密钥加密的情况下传送这些密钥(例如,从条件访问智能卡到视频解码器芯片),但实际的视频解密密钥仍为全局的。因此,已危害或对一个机顶盒进行逆向工程(因为机顶盒的设计一般完全地标准化,所以这并不是非常困难)且具有合法预定的帐户的盗版者可判定并转发视频解密密钥的序列。此攻击通常不要求实际危害安全模块本身,从而阻止安全模块替换成为有效的反措施。
为应付所述攻击,系统操作者需要识别由盗版者用于提取密钥和其它被转发的数据的具体帐户(且因此,安全模块)。一旦已识别此帐户,系统操作者可终止该帐户(例如,通过停止以可由盗版者的安全模块利用的形式传输访问所需的密钥、通过无线传输一暂时地或永久地禁用盗版者的安全模块的加密消息,等等)和任何相关帐户(例如,来自连接到相同电话线的装置的帐户、共享相同的计费地址的帐户、具有邻近物理位置的帐户、使用相同的信用卡或其它支付工具付费的帐户,等等)。
为完成此识别,系统操作者将取证标记信息包括于由每一安全模块输出的解密参数的实际序列中。
在一实施例中,在视频解码之前,条件访问模块输出常规解密密钥以及由机顶盒应用于解密明文的字节替代.当创建视频序列时,系统操作者识别视频流中的多个位置,在所述位置的字节替换可产生可接受的变化(多形体)。另外,破坏视频流中的某些字节,使得为形成有效的(或可舒服地观看的)视频流,字节替换为强制的。合法订购的条件访问卡经配置以输出字节替代的唯一组合,包括一个足够大的强制性字节替代的集合,从而重新产生可观看的流。每一模块可输出替代的唯一组合,从而使得有可能匹配所转发的输出而回溯至单一装置。替代实施例不一定要使用字节替代;条件访问模块可规定任何方式的转换,包括(无限制):加法、异或、区块移动、删除、插入、位反转和更复杂的运算(包括规定应当由解码装置的解释器或微处理器执行的实际代码)。
上文描述的方法要求在机顶盒中的支持,且因此不能够配合许多旧式系统一起使用。对于旧式环境,可要求一种不同的实施例,其中内容提供者组合出一个当在两个不同密钥状态的每一个中解释时为有效的流。
内容提供者组合出当使用两个不同密钥(或密钥状态)的每一个加以解密时可接受地解码的视频流部分。现有的卫星或有线电视系统通常对视频的部分(诸如10秒的片段)各自使用不同的密钥进行加密。对于本发明,将产生可使用一个以上密钥解码的一个或一个以上片段。
在一实施例中,对视频压缩过程进行修改以识别对压缩视频数据的初始区块的多个可接受的修改。接着,使用第一密钥对区块加密,从而产生将适合于传输到使用第一密钥进行解密的机顶盒的密文。接着,使用第二密钥对区块解密。如果所得的明文在以第二密钥为密钥的装置上也将解码为可接受的输出,那么保存区块且对每一随后的数据区块重复该过程。如果使用第二密钥的解密指示密文将不能在以第二密钥为密钥的装置上形成可接受的流,那么尝试用于启始区块的新值。经过足够的尝试后,系统操作者将能够逐渐组合出可使用两个(或可能更多的)密钥中的每一个密钥来解密的视频流。使用每一密钥的所得的视频的质量将取决于花费的计算努力、用于选择候选区块的技术.使用的视频压缩技术、参考视频和其它因素。
计算上更加有效率的编码方法也是可能的。举例来说,在多数视频压缩方案中(包括MPEG-2),有可能使用域(诸如注释域)来交错使用每一密钥加密的数据区域。此技术通常增加视频数据的大小,但是在计算上有效率且不会使输出质量降低。
示范性视频流以常规编码的数据(例如,使用单一密钥加密的或未加密的数字视频和/或音频)开始,直至预期密钥改变的位置。接着对密钥改变信号编码。选择在密钥改变后的第一个密文区块,使得(a)使用第一解密密钥,其解密为下8字节的压缩视频流的适合的值,和(b)使用第二解密密钥.其解密为一位序列.所述位序列控制解压缩装置以忽略随后字节(例如,通过启始MPEG注释)或以其它方式导致随后的字节对解压缩的输出具有相对较小影响。为找到具有这些特性的区块,压缩装置或过程可(例如)在使用第一密钥解密时以所要的明文开始,接着尝试第一和/或第二密钥的随机值,直至找到在第二密钥的情况下也给出适当的结果的密钥对。
产生流的随后部分,使得密文(a)产生使用第一密钥解密的压缩视频,且(b)在使用第二密钥解密时被忽略(或以相对较小的影响处理)。此流可通过使用第一密钥对视频数据加密并(如果需要)使用第二密钥对所得数据解密以检验结果是适当的(例如,不过早地终止MPEG注释)而制备。可能需要对明文进行较小的调整并反复以改正任何会出现不适当的明文的情形(例如,将过早地终止数据的忽略、或将传送不适当的长度、或以其它方式将产生非法流、或将引起不美观的流中断,等等)。最后(诸如当接近MPEG注释的末尾时,当使用第一密钥编码的视频区块接近完成时,等等),密文流可包括当使用第一密钥解密时导致解压缩过程开始忽略数据的数据。此时或其后不久,“忽略数据”状态随着第二密钥而结束,且所述流以在使用第二密钥解密时产生有效压缩视频但在使用第一密钥解密时被忽略的密文继续。所述流继续,交替出现在使用所述密钥中的一个解密时产生压缩视频且在使用另一个解密时产生注释数据的数据片段。最后,触发密钥改变(例如,归因于存在于流中的密钥改变通知),要么回复到正常视频,要么开始可使用新的密钥对解密的新的视频片段。
如果盗版者仅转发密钥序列,那么在解压缩时两个解密结果产生相同的视频可为可接受的。然而,如果盗版者转发解压缩的视频,那么通过使用所述密钥值中的每一者来解密而产生的视频序列应当不同。
应注意,替代实施例可包括可使用两个以上密钥正确地解密的数据或可使用一个以上密码算法解码(使用相同或不同的密钥值)的数据。支持的解密算法的实例可包括(无限制性):DES、AES、三重DES、DVB块密码、IDEA、任何模式(CBC、ECB,等等)的任何其它块密码、RC4、SEAL、任何其它流密码,等等。对于可在机顶盒上禁用加密的实施例,禁用加密的状态可用作密钥状态(例如,在所传输的数据可成功地以传输的形式以及在使用适当的密钥解密时被解释为有效视频的情况下。)系统操作者可预计算序列中可用的压缩的视频序列或部分(诸如有用的密文区块和对应的密钥)。可实时地或预先组合出流。举例来说,可预计算并插入普通序列的视频(诸如全黑显示)。如果密钥检查由解码装置执行,那么系统操作者可需要执行搜索以查找可同时地通过相同密钥检查的多个密钥。可使用利用生日悖论(birthday paradox)的碰撞搜索技术来简化所述搜索。
虽然对于如上文描述地编码的视频片段来说,视频流所需的带宽通常会增加.但是总的带宽影响可通过将其使用限制在据信需要追踪的盗版者攻击正在进行的情形下而最小化。如果盗版者试图识别并删除本发明起作用的视频片段(例如,通过分析流中忽略的数据的量),那么可将类似的特征置于普通(未标记的)区域中以产生“熏青鱼(red herring)”从而干扰攻击者。
对于使用具有未使用位(诸如通常包括于单重DES或三重DES密钥中的奇偶校验位)的密码的系统,在这些位中可包括取证信息,尽管如果盗版者在转发密钥之前可重写这些位中的值,此途径的有效性可为有限制的。
用于导出装置上的适当的密钥值的逻辑应当实施于安全装置内部。可使用软件和/或通过无线电接收的规则(例如,以加密的形式且与视频或其它内容掺杂)来执行密钥导出。举例来说,在传输可采用多种方式解密的区块之前,系统操作者可传输(个别地和/或成组地)密钥(或密钥-加密-密钥),使得观看基础(viewing base)的预定子集具有每一密钥。这些密钥可用于解密或以其它方式导出每一装置上的适当的视频密钥。可随机地选择和/或可基于地理位置(例如,基于接收同样用于传输本地电视频道的点波束卫星信号的能力、电缆网络中的位置、等等)、订户ID、电话号码、对一个或一个以上密钥的了解、装置类型、或任何其它特征(或特征的组合)选择子集。也可(视情形实时地)传递可执行代码以辅助(或执行)密钥导出/选择。
在一示范性实施例中涉及的用于追踪恶意重新分发的密钥和/或视频的来源的具体步骤和组件包括任何或所有以下步骤(按任何顺序):(a)创建压缩的、加密的视频的一部分,当使用两个不同密钥状态的每一个对其进行解密时产生至少两个不同明文,且其中可将每一所述明文正确地解码为有效的压缩内容流的部分;(b)将控制数据传输到多个条件访问装置,其中对所述控制数据进行配置以使得每一所述条件访问装置输出所述至少两个密钥中的一个;(c)接收由所述恶意来源所转发的包含或对应于所述密钥中的一个(或多个)的密钥和/或视频(和/或其它数据);(d)使用对哪些密钥包含于(或用于产生)恶意传输的数据中的认识以获取关于恶意来源的安全模块的信息,例如通过推断恶意来源具有能够导出所接收的密钥(或视频)的装置;(e)使用对盗版团体的增多的认识来重复上述某些或所有步骤,直至已识别至少一恶意装置;和(f)禁用所述恶意装置,例如通过发送“删除”消息或通过拒给未来的密钥。
尽管主要关于视听内容的视频部分描述上述实例,但是相同的技术同样可应用于音频和其它种类的内容。
攻击和反措施的实例
此部分描述某些示范性攻击和反措施。
盗版者可设法禁用播放器的重叠能力以阻止基于重叠的取证标记被嵌入于输出中。对于此攻击的一反措施为内容所有者直接将标记嵌入于压缩的视听数据流中。
盗版者可试图比较并组合来自多个装置的输出以试图去除取证标记。举例来说,在装置的输出有不同的位置中,盗版者可试图组合视频、删除/降低视频的质量、概率地选择变体、选择最普通的变体或使用其它技术来制造更加难于追踪的拷贝。如果共谋装置(colluder)的数目已知为相当小,那么标记恢复过程可通过使用每一标记来识别共谋装置以排除任何其中没有成员能够输出所恢复的标记的共谋装置群组。内容提供者也可包括具有许多不同变体的取证标记(从而使得平均和选择变得困难)。也可将高度可见的取证标记用于获得对由恶意攻击引起的质量降低或模糊的增强的抵抗力。如果必要,可需要使用改进的取证标记技术对随后的内容进行编辑。内容所有者也可嵌入大量的标记并寻找由个别装置嵌入的序列与所恢复的拷贝之间的相关性。
盗版者可试图仿真合法播放器。相关攻击涉及修改合法播放器中的解释器而以不正确的(可能为恶意的)方式操作。在此情形下,合法播放器与仿真之间的差别(包括(无限制性)未记录的操作、本地代码支持、时序/性能、密码编译密钥等等)可用于区别合法环境与恶意环境。举例来说,也可运用本地代码播放器更新以改正弱点。
盗版者可试图通过危害编码译码器、装置驱动程序、显示器/扬声器装置或在解压缩之前或之后接收内容的其它组件而提取数字内容。类似地,可插入这些或其它组件的恶意版本。为回应所述攻击,未来内容可通过鉴别输出装置并拒绝向已泄漏的装置提供内容而回应。内容可向易受攻击的或未知的装置传递安全升级(诸如本地代码修补程序)。取证标记也可用于追踪以此方式泄漏的拷贝,从而提供心理威慑和法律威慑以及识别盗版者的装置以加以撤销的方式。
盗版者可试图“预记录”所有TRAP运算的输入和输出并将此数据用于恶意解释器。可采用多种方式挫败此攻击,包括通过使用本地代码使所需的存储空间的总量过量、通过使用取证标记来追踪泄漏或通过升级原始装置的安全性。如果源装置实际上没有被泄漏(例如,其在运行恶意的内容代码),那么可将播放器密码运算用于确保播放器实际在运行被签名、解密等等的内容代码。
恶意的盗版者可试图产生一以意欲避开安全检查的方式不正确地操作的敌对解释器。具体实例为恶意的解释器试图(例如)通过搜索并替换预期的计算中间值而使内容代码接受无效RSA签名的情形。为挫败所述攻击,播放器可使用除简单地求签名的立方(取n的模数)之外的计算并与预期值比较来检验签名,举例来说,内容代码可乘以一初始值.接着检验结果等于预期值与初始值的立方相乘。检验签名的另一方式涉及增加一常数至签名、接着检验结果是正确的。签名检验代码也可与其它运算(诸如对对称密码编译密钥的修改)混合,使得仅当签名有效时,所得的密码值才为正确的。自修改代码、代码模糊技术、本地代码和任何其它反措施也可被适当使用。
盗版者可试图将恶意的固件插入到媒体接口(诸如光盘驱动器)中。可通过使内容代码执行自检以鉴别自身并检验数据从媒体正确地载入而检测此攻击。本地代码和/或解释型代码也可由驱动器运行以检测攻击。内容还可通过包括将由攻击所修改的数据并检测所述数据是否改变而检测攻击。
盗版者可试图(例如)通过使用从硬盘驱动器上的文件而不是从合法媒体载入数据的恶意装置驱动程序来仿真媒体(包括安全特征)。可通过检验驱动器具有有效的密码编译密钥而检测并挫败此攻击。如果盗版者找到从合法驱动器提取密钥的方式(从而使得恶意仿真器能够仿真合法驱动器的密码运算),那么可执行额外的驱动器鉴别步骤(诸如提供用于驱动器的本地代码,时序检查、测试非标准功能性,等等)。另外,可检测恶意的装置驱动程序(例如,使用TRAP_DeviceDiscovcry、本地代码,等等)。
盗版者可试图利用具体主题的安全代码中的弱点。虽然某些反措施可为可能的(例如,通过传递更新的安全逻辑),但是主要的解决方案是内容作者确保未来内容被更加仔细地编辑且不具有相同的弱点。
额外的考虑和变化
可对媒体进行配置以允许有限数量的使用(例如,可观看任何三个音乐视频)或访问的持续时间(例如,在首次观看3天后访问权到期)。其后,可要求用户进行支付以获取进一步(或无限制的)重放的授权。观看计数器(和/或其它安全和状态信息)可存储于媒体本身上和/或播放器中和/或远程服务器上。举例来说,授权无限制的重放的数据可设置于媒体的可写部入分上,从而允许在任何播放器上重放。或者,授权可存储于播放器的非易失性存储器中和/或可对内容代码进行配置以经由网络联系服务器来获取授权。
媒体上的内容的部分(或所有部分)可在满足某些条件(例如,支付、重放其它主题的某个组合、解开谜题、某个量的时间已消逝,等等)之前为不可访问的。在一实例中,内容代码在被购买或激活之前是不起作用的。激活过程可在本地执行或可涉及与远程服务器的交互作用。举例来说,内容代码可联系远程服务器、向服务器识别本地重放装置、与用户和服务器互动以实现支付,和接收某些密钥、可解释的安全代码或允许内容的解码的其它数据。在购买完成后,接收的数据用于激活内容的解码。
当用户购买新的播放器时,可包括一规定以允许播放器非易失性存储器从旧的播放器到新的播放器的迁移。在一实施例中,此过程通过在诸如智能卡或可写入媒体的在物理载体上的装置之间移动数据而执行。或者,传送可经由诸如有线网络或无线网络或红外线端口的数字连接而执行。为了最大的安全性,传送可经由受信服务器装置进行(或以其为媒介),所述受信服务器装置与供应方装置和接收者装置通信以确保正确地传送数据且在数据可用于接收者装置上之前在供应方装置上去除所述数据(或使其无效)。为接纳由许多不同内容主题写入的数据,单一服务器可了解有多少主题使用非易失性存储装置,或播放器可与多个服务器交互作用(例如,如在非易失性存储器插槽本身中所识别的)。供应方和接收者上的密码编译密钥可用于为传送提供安全。
媒体可包括多个数据编码方法。举例来说,单一光盘可包含高密度的压制部分、一次写入部分和可记录部分。
位置和距离测量技术可用于确保接收者装置未处在不可接受的物理位置(诸如在未授权的国家中、过于远离仅为家庭使用提供内容的家庭网络服务器、等等)。巡回通信(round communication)往返时间可乘以光速以判定到装置的距离上限。全球定位系统和无线电信号的衰减(例如,如果装置在802.11b规范、蓝牙技术等等的范围内,或如果装置可访问普通的无线电/卫星信号,等等)也可使用于估计位置和/或接近性。也可使用装置共享一共用电线(电话连接,家庭的电力电路,等等)的能力。因特网IP地址和电话号码也可用于获取位置信息(例如,用于区域编码应用、区域性体育信号中断、默认语言/货币单位选项的选择)。位置信息可包括于取证标记中。
播放器可提供易失性或“脆弱的非易失性”的存储器存储区域,诸如允许内容将数据传递到插入的下一光盘但是其后立刻删除内容的存储器插槽。易失性存储器可用于当断电时内容是否擦除无关紧要的情形下的暂时存储。
在取证标记检测/分析中可使用神经元网络,从而定义最佳的安全策略,等等。
可对内容代码进行配置以允许在存在正确的鉴别的情况下从可记录媒体重放。举例来说,此能力可用于产生可为消费者记录媒体的光盘刻录信息站(optical disc burning kiosk)(或其它系统),例如以允许较小的商店满足无法预测的消费者需求而不必保持较大库存。信息站可从任何来源或来源的组合(包括内部存储装置(硬盘,等等)和数据网络)检索(原始)内容。记录的数据可由信息站修改(视情形使用运行于信息站中所包含的解释器中的解释型代码),(例如)以引入对取证标记的识别、对数据的部分重新加密、使最新的安全逻辑与内容相关联、组合由消费者选定的多个内容部分、接纳用户请求/偏好、压缩(重新压缩)内容或改变格式以满足媒体或播放器装置的容量或编码译码器要求,等等。
也可包括密码地鉴别记录和授权重放的值。举例来说,此可为由受信方发布的、经由网络传送到信息站的、刻录于媒体上的和在重放期间由内容代码检验的数字签名。此数字签名可(例如)包括媒体标识符、使用SHA-1计算的内容的散列树的根、信息站的记录驱动器的标识符、发布日期和目标媒体的序号。
信息站也可包括:用于接收票据、信用卡或其它支付的接口;用于接收用户选择的触摸屏或其它输入装置;用于印刷定制的盒子衬套、媒体表面、收据等等的能力;用于检索新的内容数据、接收新的用户界面组件和广告/报价单、检验并处理支付、报告错误条件等等的网络能力;和用于将数据转换成所要的输出格式、创建定制的菜单等等的音频/视频操纵能力。
为在写入物理媒体(诸如光盘)时达到高性能,媒体记录装置可同时地使用多个记录激光器。媒体周围可设置一物理支撑屏蔽以防止归因于离心力的震动或损害。镜面或其它光学元件可用于使激光束围绕媒体移动以减少或消除物理地旋转光学媒体的需要。可使用不基于激光器的记录技术(诸如通过在圆形衬底上设置蚀刻物质的微液滴,例如使用与用于喷墨打印机中的技术类似的高分辨率技术,接着用保护层涂覆所述衬底来进行记录)。
媒体无需物理地存在于重放装置处。举例来说,媒体可经由无线网络或其它网络与播放器装置通信。在一实施例中,媒体包括一线圈和至少一半导体芯片,所述至少一半导体芯片经配置以(a)接收来自感应线圈的功率;(b)使用感应线圈与播放器(或其它装置)之间发送和接收数据;(c)从本地存储器检索内容(如果支持,包括内容代码),所述本地存储器可包括或可不包括可写入部分;(d)执行供内容代码或其它装置使用的密码“握手”以鉴别媒体的有效性。如果可存在多个所述媒体(例如,包含于可包含多个媒体的播放器装置中的视情形可抽取的托盘中),那么可使用一种寻址方法以允许选择在给定时刻哪一媒体应当在通信。
内容代码可与任何方式的外部装置以及与可包含于播放器装置中的组件(诸如软件程序)交互作用。举例来说,智能玩具(或其它装置)可与支持所述装置(或一大类所述装置)的内容代码交互作用。所述交互作用可包括任何方式的数据交换,包括命令(例如,玩具车移动的方向)、音频数据(例如,装置发出的声音、由装置记录的声音,等等)、图像/视频数据(例如,用于由装置显示、来自装置中的数码相机,等等)、逻辑(例如,用于由装置执行)、事件通知,等等。在一实施例中,内容代码与外部设备和装置(包括(无限制性)灯、供暖装置、空调、家庭安全系统、电器.宠物照料/喂食装置、视频记录器等等)交互作用,并帮助控制其。播放器装置与外部装置之间的通信方法可包括经由常规视听输出端从播放器装置输出数据(例如,输出到麦克风、CCD或远程装置上的其它传感器)和经由远程控制(例如,红外线)接口接收数据。其它支持的通信方法可包括无线和有线网络和数据交换协议。某些播放器装置可不具有启用所有所要的外部交互作用必需的接口,在此情形下可直接连接外部接口模块(例如,经由进行双向数据通信和供电的物理接口)。外部装置也可包括用于承载传递到播放器装置的代码(包括解释型代码)的非易失性存储器或其它存储装置,例如以辅助播放器装置和/或内容代码使用由所述外部装置提供的特征。
重放系统的各方面可单独地实施且可彼此通信。举例来说,在某些平台上(诸如个人计算机),使实施发现和/或安全评估能力的部分与主要的播放器应用程序分离可为有利的,因为这些组件可比其它组件要求更频繁的更新。在一示范性实施中,内容代码与经配置以检测诸如恶意的、未授权的和/或可疑的软件的存在的已知安全性问题的安全扫描器通信。扫描器也向内容代码和/或播放器应用程序提供关于系统状态的信息,诸如哪些应用程序在运行、安装了哪些装置驱动程序、已知连接了哪些装置,等等。扫描器还可报告其对当前系统的安全状态的评估,诸如系统是否满足安全重放的要求。因为新的盗版风险可很快出现,例如如果新的软件漏洞(software exploit)被公开,那么优选地对扫描器程序进行经常地更新,诸如通过经由因特网下载更新或接收与内容代码一起传递的已数字签名的更新。可为更新服务向用户收费(例如,通过自动地且定时地收取对应于用户的支付凭证、自动地通知用户支付是否不成功和/或在最终没有收到支付时自动地终止用户的访问)。扫描器也可向用户通知其结果、自动地改正问题和/或自动地下载反措施或更新。扫描器也可(例如)通过登记中断或事件而向内容代码或其它组件通知系统/安全状态的改变。可密码地保护组件之间(诸如内容代码与扫描器之间)的通信。举例来说,扫描器可对其结果连同挑战值进行数字签名以防止回复攻击(repl ayattack)。所述扫描器可集成反病毒扫描器或其它脆弱性扫描器,尽管其功能性与常规的病毒检测器不同,差异在于:其提供对其结果的密码鉴别作为关于可由内容所有者使用的机器的状态的证明,而不是仅仅保护计算机的所有者或操作者的利益。
也可配置自动的程序以搜索计算机来检测未授权的(例如,盗版的)内容。如果找到所述内容,程序可向用户通知所述潜在侵权材料。程序还可与内容代码或其它安全组件交互作用(并向其提供证明),(例如)以授权在据信没有盗版材料的装置上重放内容。为判定材料是否为经授权的,扫描器可寻找许可文件、数字签名、已知文件散列,等等。
本发明的要素(包括安全特征和非安全特征)可(无限制性)与不可编程的内容分发系统一起使用、可与使用本地代码而不是解释器或虚拟机的内容保护系统一起使用、可作为任何软件应用程序或装置的部分使用、可在始终在本地运行代码(与使用解释器/虚拟机进行处理相反)的可编程系统上使用、和可用于其它系统中(包括电子游戏机复制保护和安全系统)。举例来说且无限制性,个别方面可用于计算机安全应用、网络安全应用、不可编程的防盗版系统、欺骗屏蔽系统(fraud screening system)、e-mail过滤,等等。
本发明可与数字数据广播系统(包括(无限制性)所有种类的电视广播、卫星传输、经由电缆网络的通信、因特网多点传送等等)结合。广播信号可承载用于与承载于所述信号中的内容或其它内容一起使用的代码(包括与安全相关的信息和反措施)。广播信号也可承载可由其它内容主题使用的内容和/或其它数据。安全能力也可与常规的条件访问卡和用于保护电视信号的系统结合(且与其通信)。
当本发明的组件交互作用时,其可使用密码技术以保护其通信。所述安全特征可包括对数据使用对称加密和/或消息鉴别代码(或其它检查)。可使用公开密钥密码技术(包括数字签名/证书、指数密钥协议、公开密钥加密/解密、挑战-回应协议,等等)来协商用于保护所述通信的对称密钥,或可直接对数据应用不对称密码技术。可强制实施对称和不对称密钥的撤销状态(例如,通过检查撤销列表、与远程服务器交互作用,等等)。也可使用对称密码协议(包括(无限制性)使用广播加密技术)来协商密钥。所使用的安全措施无需对于所有通信都相同。(举例来说,可加密控制消息、与安全相关的参数、密钥、和/或MPEG“1”帧,同时可不加密其它通信。)用于保护“握手”的密钥(包括与每一密钥或密钥集相关的一个或一个以上相关证书)可使用内容代码而检验和/或直接由装置检验。可适当地密码地保护其通信的组件的实例包括(无限制性):光盘驱动器、其它媒体接口、媒体接口装置驱动程序、播放器应用程序、内容代码执行线程(例如,来自正在同时运行的不同内容主题或来自属于相同内容主题的另一线程)、操作系统、视频装置驱动程序、视频处理器(或视频卡,等等)、音频装置驱动程序、音频处理器、任何方式的外部装置(无论是本地连接的、经由网络访问的、经由总线访问的,等等)、其它应用程序(安全扫描器、音频混频器、视频效果处理器,等等)、编码译码器和安全模块。
数字签名也可使用通过使用一个或一个以上证书所鉴别的密钥而产生,且可与其它安全值组合。可提供多个版本的签名(例如,以不同密钥/签名人、密钥大小、算法等等所产生的)
所述实例不应当解释为强加的限制。为了简洁起见,尤其是在各项目包括于类似的列表中的情形下,不一定完全地列举列表。词语“包括”意谓包括而无限制性。类似地,“例如”和“举例来说”表示并不限制正论述事物的一般性的说明性实例。类似地,“等等”意谓存在额外的可能性,且列表不应当解释为一定列举所有已知可能性。
在一示范性实施例中,可为特定的播放器定制内容。在此情形下,内容仅可在单一播放器或少数播放器上播放,但在接收者装置上重放所不需要的代码无需被传输。因此,当向用户发送信息困难、昂贵或缓慢时,例如如果存储空间有限制或如果必须经由缓慢的网络连接发送内容,此途径特别有价值。然而,内容仍可查询播放器以检验重放环境为适当安全的。
为确保重放不中断或失真,对播放器的解释器要求具体的最小性能标准可为有用的。
在一示范性实施例中,可对系统和方法进行配置以允许内容从一装置交换到另一装置。所述交换的具体的安全特征取决于诸如与受信(例如,由出版商所操作的)服务器的在线通信是否可利用的因素。传送内容的形式取决于由内容强制实施的安全策略和装置的硬件能力。举例来说,在两个装置都包括安全解释器的一实施例中,发送装置传输原始加密内容(如存储于原始媒体上或以另一密钥加密,视情形包括有水印)连同用于控制重放的代码。重放控制代码可由发送装置为接收者装置定制。在另一情形下,发送装置可检验输出端口和目标装置的安全特征为可接受的、与目标装置协商一共享的密钥、对内容解密和水印处理、使用共享的密钥对内容重新加密和将重新加密的内容发送到目标。
具有足够的非易失性存储空间的播放器可用于存储从解释器调用的可更新的代码。举例来说,可对播放器进行配置以始终存储用于特定出版商的最新的安全代码。在此情形下,如果遇到较新版本的安全代码,那么将更新旧的版本(例如,在检验新的代码上的数字签名之后)。以此方式,较旧的内容可从承载于新内容上的安全更新得益。(此途径可(例如)使用前面描述的安全存储器方法而实施。)在另一实施例中,内容可通过从播放器获取当前日期/时间并与已知的最新安全升级的日期/时间比较来要求播放器包括当前安全更新。以此方式,内容可确保播放器具有合理地最新安全升级。
一般来说,内容保护系统应当避免在合法用户的合法动作中扮演任何可见的角色。然而,某些用户界面元件是必需的,诸如用于报告错误或提供信息。在内容可在多个支持的输出质量(例如,当播放器提供不充分的安全性时的“旧式”质量与当安全性为满意的时的“高”质量)之间选择的情形下,指示符可用于向用户通知输出的质量。举例来说,在一实施例中,由内容控制的绿色发光二极管(LED)指示输出具有高质量(意即,安全性为满意的)、橙色LED指示降低的质量(意即,安全性不高),且闪烁的红色LED可指示由于播放器已撤销而没有提供输出。在另一实施例中,提供简短的口头或书面通知(如果已知,以用户的语言)以报告安全的状态。报告和/或使用较高质量输出还是较低质量输出的决定可基于其它因素,诸如存在和/或不存在稳固的和/或脆弱的水印。如果需要,质量降低模块可包括于播放器中以允许内容为了安全或其它原因而降低重放的质量(例如,降低到旧式格式的质量)。(例如,可包括质量降低模块以将高清晰度电视信号转换成NTSC分辨率或将高分辨率多通道音频转换成双通道CD音质音频。)
如果媒体接口和播放器解释器提供充分的性能,那么可在解释器中而不是在单独的解密模块中处理批量解密和水印嵌入。允许内容直接对其本身解密可提供若干安全益处,诸如可确保攻击者不会发动针对解密模块的攻击。如果解释器性能为充分的,那么也有可能在解释器中也实施内容解压缩,从而避免了使单一播放器编码译码器类型标准化的需要。
虽然使用解释器的实施最好是在不具有对本文中揭示的技术和系统的特定硬件支持的平台上(诸如个人计算机),但是有可能在专用硬件中实施许多解释器功能。取决于应用,尽管专用的实施提供减少的功能性,但其可节约成本或功耗。
接收物理媒体上的内容的实施例可使用实质上任何媒体格式。虽然光盘(诸如CD和DVD)以较低成本提供较高存储密度,但是也可使用其它存储系统,包括(无限制性):磁性媒体、全息存储器、有电池支持的RAM、ROM、EEPROM和闪存。媒体的存储容量可用于存储许多不同类型的数据,包括与本文中揭示的技术和系统相关的信息(诸如实施用于各种计算机平台的解码方法的可执行程序、使用本文中揭示的方法来保护的内容,等等)以及与本文中揭示的技术和系统不直接相关的数据(诸如不相关的可执行程序、诸如红皮书CD音频的未受保护的内容、使用其它安全方案保护的内容,等等)。媒体可包括用于执行密码计算的防篡改电路以允许播放器检验媒体并非未授权的拷贝。尽管对于使用电接口的媒体来说执行所述能力是最简单的,但是甚至光学媒体可包括密码能力。举例来说,可将非接触式的密码模块(诸如Gaumet等人的第5,640,306号美国专利的非接触式智能卡)固定到或嵌入于光盘中。虽然密码媒体鉴别是优选地,但是可替代使用其它鉴别机制。举例来说,背景技术中已知的一般媒体鉴别方法包括:将序号写入到难于复制的位置(诸如使用商业上的可记录媒体或驱动器不可写入的区域)和包括原始物理媒体的各种特征的数字签名的“描述”。当然,密码机制提供以下优点:即使攻击者发现用于危害现有媒体的方法,也可发布具有改进的安全性的未来媒体而不要求对播放器进行任何改变。
因为许多消费者已投资于旧式格式的内容,所以可对实施本文中揭示的技术和系统的播放器进行配置以支持这些旧式格式。类似地,不同版本的解释器可由特定播放器所支持。在此情形下,播放器需要分析媒体或内容以识别将使用的适当安全系统。举例来说,数字视频播放器可检测光盘是使用CSS的旧式DVD(且如果是,那么选择CSS解密系统)还是使用本文中揭示的技术和系统的DVD(且如果是,那么激活基于语言的解密系统)。包括于内容中的稳固的水印可用于检测最初使用一安全系统加以保护的内容是否已被复制为缺乏最初保护的格式。举例来说,不允许复制的内容可包括一水印以指示遇到任何其它格式(例如,为未受保护的格式)的拷贝的任何装置可认出该拷贝为未授权的并(例如)拒绝重放。
本文中揭示的技术和系统可与包括(无限制性)音频、静态图像、视频、三维图像和三维视频的很多种内容类型一起使用。
本文中揭示的技术和系统也可实施于多种物理装置中。如果只有一装置负责对内容解密,那么由所述装置强制实施安全策略是优选地。然而,输出装置和中间处理装置(诸如音频均衡器或混频器)也可从本文中揭示的技术和系统得益和/或通过提供可由所述技术和系统使用的查询能力来检验其安全。在一实施例中,家庭娱乐服务器下载、存储并管理内容,且将内容转递到已成功检验其安全性的重放装置(扬声器、耳机、视频显示器,等等)。优选地在本文中揭示的技术和系统与目标装置的联合控制下对到这些装置的连接加密以防止内容在传送中被窃取。

Claims (5)

1.一种用于调控对非易失性数字存储区域的访问的方法,所述非易失性数字存储区域包含于一在一图灵完整性解释器中执行指令的装置中,所述方法包含:
(a)接收一来自正被执行的指令的请求,其中所述请求规定:
(i)所述存储区域的被请求访问的一部分,和
(ii)多个额外的可执行指令;
(b)对所述额外的可执行指令应用一密码散列函数以获取一散列值;
(c)鉴别所述散列值;以及
(d)假如所述鉴别是成功的,那么允许对所述存储区域的所述被请求访问的一部分的访问,同时执行所述额外的可执行指令。
2.根据权利要求1所述的方法,其特征在于所述鉴别步骤包含将所述散列值与一存储于所述非易失性数字存储区域中的散列值比较。
3.根据权利要求1所述的方法,其特征在于所述鉴别步骤包含检验一由所述正被执行的指令提供的数字签名。
4.根据权利要求1所述的方法,其特征在于所述请求包括一指向可由所述正被执行的指令访问且包含于所述装置中的存储器中的所述额外的可执行指令的指针。
5.一种用于判定是否允许存储于一计算机可读取存储器中的软件的一部分访问一非易失性存储器的一部分的自动方法,所述方法包含:
(a)接收一对软件的所述部分的引用;
(b)计算所述软件部分的一密码散列;
(c)将所述计算得到的密码散列与一存储于所述非易失性存储器中的值比较;
(d)当所述计算得到的密码散列与所述存储的值匹配时,允许所述软件部分访问所述非易失性存储器的一部分;以及
(e)当所述计算得到的密码散列与所述存储的值不匹配时,不允许所述软件部分访问所述非易失性存储器的一部分。
CNB2004800239483A 2003-07-07 2004-07-07 调控对非易失性存储区访问的方法和判定访问的自动方法 Expired - Fee Related CN100504818C (zh)

Applications Claiming Priority (3)

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
US60/537,421 2004-01-16

Related Child Applications (2)

Application Number Title Priority Date Filing Date
CN2008100822994A Division CN101241735B (zh) 2003-07-07 2004-07-07 重放加密的视听内容的方法
CN2008101114428A Division CN101364415B (zh) 2003-07-07 2004-07-07 用于控制盗版和启用交互式内容的可重编程的安全性

Publications (2)

Publication Number Publication Date
CN1839375A CN1839375A (zh) 2006-09-27
CN100504818C true CN100504818C (zh) 2009-06-24

Family

ID=37016201

Family Applications (2)

Application Number Title Priority Date Filing Date
CNB2004800239483A Expired - Fee Related CN100504818C (zh) 2003-07-07 2004-07-07 调控对非易失性存储区访问的方法和判定访问的自动方法
CN2008101114428A Expired - Fee Related CN101364415B (zh) 2003-07-07 2004-07-07 用于控制盗版和启用交互式内容的可重编程的安全性

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2008101114428A Expired - Fee Related CN101364415B (zh) 2003-07-07 2004-07-07 用于控制盗版和启用交互式内容的可重编程的安全性

Country Status (1)

Country Link
CN (2) CN100504818C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107580765A (zh) * 2015-01-27 2018-01-12 艾锐势有限责任公司 用于保护流媒体和其它数据流的混淆

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4780179B2 (ja) * 2008-11-20 2011-09-28 富士ゼロックス株式会社 情報処理装置および情報処理プログラム
EP2515499B1 (de) * 2011-04-21 2015-10-28 Wibu-Systems AG Verfahren zum Erzeugen eines kryptographischen Schlüssels für ein geschütztes digitales Datenobjekt auf Basis von aktuellen Komponenten eines Rechners
CN102915414A (zh) * 2011-08-02 2013-02-06 中国银联股份有限公司 用于安全性信息交互的数据存储系统及方法
US9767259B2 (en) * 2012-05-07 2017-09-19 Google Inc. Detection of unauthorized content in live multiuser composite streams
US10454671B2 (en) * 2014-10-15 2019-10-22 Verimatrix, Inc. Securing communication in a playback device with a control module using a key contribution
CN108064381B (zh) * 2015-03-30 2021-06-18 爱迪德技术有限公司 用于数据保护的方法
US10129035B2 (en) * 2015-08-10 2018-11-13 Data I/O Corporation Device birth certificate
US10534724B2 (en) * 2015-12-24 2020-01-14 Intel Corporation Instructions and logic to suspend/resume migration of enclaves in a secure enclave page cache
CN109074433B (zh) * 2016-05-13 2023-07-21 区块链控股有限公司 使用分布式散列表和点对点分布式分类账验证数字资产完整性的方法和系统
US10659509B2 (en) * 2016-12-06 2020-05-19 Google Llc Detecting similar live streams ingested ahead of the reference content
CN108694054A (zh) * 2017-04-10 2018-10-23 南昌欧菲生物识别技术有限公司 微处理器固件的升级方法及智能终端
JP6742971B2 (ja) * 2017-09-20 2020-08-19 キヤノン株式会社 画像形成装置、制御方法及びプログラム
EP3710974B1 (en) * 2017-11-17 2023-07-26 Telefonaktiebolaget LM Ericsson (publ) Method and arrangement for detecting digital content tampering
US11321466B2 (en) * 2018-03-09 2022-05-03 Qualcomm Incorporated Integrated circuit data protection
CN110569205A (zh) * 2018-06-06 2019-12-13 旭景科技股份有限公司 安全系统单芯片及其操作方法
CN108762791B (zh) * 2018-06-07 2022-09-16 深圳市元征科技股份有限公司 固件升级方法及装置
US11316687B2 (en) * 2019-03-04 2022-04-26 Cypress Semiconductor Corporation Encrypted gang programming
CN112015407A (zh) * 2019-05-31 2020-12-01 北京字节跳动网络技术有限公司 一种插件式播放器实现方法、装置及电子设备
CN112445539A (zh) * 2019-09-02 2021-03-05 珠海市魅族科技有限公司 识别伪装音乐播放的方法、装置、电子设备和存储介质
CN113242121B (zh) * 2021-04-15 2023-07-25 哈尔滨工业大学 一种基于组合加密的安全通信方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU4839899A (en) * 1998-06-29 2000-01-17 Recording Industry Association Of America Security marking system and method for minimizing pirating of data on data media
JP2000067522A (ja) * 1998-08-25 2000-03-03 Sony Corp 情報再生装置および方法、情報記録装置および方法、提供媒体、並びに記録媒体
US20020073317A1 (en) * 2000-12-08 2002-06-13 Philips Electronics North America Corporation. System and method for protecting digital media

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
漫谈数字光盘. 高亚军,朱一之.电脑技术,第10期. 2000
漫谈数字光盘. 高亚军,朱一之.电脑技术,第10期. 2000 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107580765A (zh) * 2015-01-27 2018-01-12 艾锐势有限责任公司 用于保护流媒体和其它数据流的混淆
CN107580765B (zh) * 2015-01-27 2021-10-26 艾锐势有限责任公司 用于保护流媒体和其它数据流的混淆
US11269621B2 (en) 2015-01-27 2022-03-08 Arris Enterprises Llc Obfuscation for protection of streaming media and other data flows
US11816477B2 (en) 2015-01-27 2023-11-14 Arris Enterprises Llc Obfuscation for protection of streaming media and other data flows

Also Published As

Publication number Publication date
CN101364415A (zh) 2009-02-11
CN101364415B (zh) 2013-03-20
CN1839375A (zh) 2006-09-27

Similar Documents

Publication Publication Date Title
CN101241735B (zh) 重放加密的视听内容的方法
CN100504818C (zh) 调控对非易失性存储区访问的方法和判定访问的自动方法
US7996913B2 (en) Self-protecting digital content
US7756272B2 (en) Interpreter using cryptographic values of a playback device&#39;s keys to authorize the playback device
JP2004532495A5 (zh)
EP1942391B1 (en) Computer-readable medium, device and method for playing encrypted digital video

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: JUSHI CO., LTD.

Free format text: FORMER OWNER: PASSWORD RESEARCH CO., LTD.

Effective date: 20080328

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20080328

Address after: california

Applicant after: Cryptography Res Inc.

Address before: california

Applicant before: Cryptography Res Inc.

C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: LUOWEI SUOLUOSHENG CO., LTD.

Free format text: FORMER NAME: CRYPTOGRAPHY RES INC.

CP01 Change in the name or title of a patent holder

Address after: california

Patentee after: Rovi Solutions Corp.

Address before: california

Patentee before: Cryptography Res Inc.

ASS Succession or assignment of patent right

Owner name: IRDETO USA CO., LTD.

Free format text: FORMER OWNER: LUOWEI SUOLUOSHENG CO., LTD.

Effective date: 20131128

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20131128

Address after: American California

Patentee after: Edid USA Ltd

Address before: california

Patentee before: Rovi Solutions Corp.

ASS Succession or assignment of patent right

Owner name: IRDETO B. V.

Free format text: FORMER OWNER: IRDETO USA CO., LTD.

Effective date: 20150601

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150601

Address after: Holland Hoofddorp

Patentee after: Ai Dide Technology Co., Ltd.

Address before: American California

Patentee before: Edid USA Ltd

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090624

Termination date: 20200707

CF01 Termination of patent right due to non-payment of annual fee