CN110073357B - 解密和变体处理 - Google Patents

解密和变体处理 Download PDF

Info

Publication number
CN110073357B
CN110073357B CN201780077364.1A CN201780077364A CN110073357B CN 110073357 B CN110073357 B CN 110073357B CN 201780077364 A CN201780077364 A CN 201780077364A CN 110073357 B CN110073357 B CN 110073357B
Authority
CN
China
Prior art keywords
byte ranges
secure
memory
byte
unsecure
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.)
Active
Application number
CN201780077364.1A
Other languages
English (en)
Other versions
CN110073357A (zh
Inventor
D·布兰肯贝克勒
N·科拉罗维奇
N·兹穆基克
T·安德烈
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.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies 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
Application filed by Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of CN110073357A publication Critical patent/CN110073357A/zh
Application granted granted Critical
Publication of CN110073357B publication Critical patent/CN110073357B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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]
    • G06F21/106Enforcing content protection by specific content processing
    • G06F21/1063Personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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/46Multiprogramming arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/164Implementing security features at a particular protocol layer at the network layer
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/467Embedding additional information in the video signal during the compression process characterised by the embedded information being invisible, e.g. watermarking
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4334Recording operations
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4344Remultiplexing of multiplex streams, e.g. by modifying time stamps or remapping the packet identifiers
    • 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/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/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4435Memory management
    • 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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/488Data services, e.g. news ticker
    • H04N21/4884Data services, e.g. news ticker for displaying subtitles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • 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/603Digital right managament [DRM]
    • 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/608Watermarking

Abstract

本发明涉及包括至少一个加密字节范围的多个字节范围,该多个字节范围形成用于在播放器设备输出的内容中提供数字水印的变体样本。将包括一个或多个加密字节范围的多个字节范围在安全存储器中进行排序并存储在不安全存储器中,以对所述排序的多个字节范围进行进一步处理。在另一方面,多个字节范围形成从播放器设备输出的内容的样本并且包括至少一个双重加密的字节范围。多个字节范围存储在安全存储器中,并且至少一个双重加密的字节范围被部分地解密以生成至少一个解密的单次加密字节范围。多个字节范围使用至少一个解密的单次加密字节范围代替至少一个双重加密的字节范围而存储在不安全存储器中。

Description

解密和变体处理
技术领域
本申请涉及解密和变体处理。
背景技术
越来越多的内容诸如电影和音乐正在以电子方式进行分发。可使用各种形式的数字版权管理(DRM)诸如加密来帮助防止未经授权的内容分发。另外,可使用数字加水印来唯一地标识内容的来源。例如,这样的数字加水印可以在识别盗版内容的来源时用于取证目的。
由于改进的视频格式诸如4K和8K超高清(UHD)和改进的音频格式,媒体内容文件大小变得更大,因此DRM或数字加水印所需的处理和存储器资源变得更大。内容文件大小越大,进行无缝回放的比特率要求就越高,这可能受到用于解码设备处的实时解密或数字加水印的处理或存储器资源的消耗的影响。另外,解密或数字加水印可能需要由安全存储器或安全处理器执行,这增加了解码设备的成本和复杂性。
发明内容
在一个方面,提供了一种播放器设备,其包括:不安全存储器;安全存储器;解码器;不安全处理器;和安全处理器,该安全处理器被配置为:从不安全存储器接收多个字节范围,多个字节范围形成用于在播放器设备输出的内容中提供数字水印的变体样本,并且其中多个字节范围包括至少一个加密字节范围;将所接收的多个字节范围存储在安全存储器中;对存储在安全存储器中的多个字节范围进行排序;将所排序的多个字节范围存储在不安全存储器中以便对所排序的多个字节范围进行进一步处理,所排序的多个字节范围包括至少一个加密字节范围中的一者或多者;在对所排序的多个字节范围进行进一步处理之后,从不安全存储器接收所排序的多个字节范围;对一个或多个加密字节范围进行解密以提供一个或多个对应的解密字节范围;以及将包括一个或多个解密字节范围的所排序的多个字节范围存储在安全存储器中以供解码器呈现。
在另一方面,还提供了一种操作播放器设备的方法,该方法包括使用播放器设备的安全处理器,以用于:从播放器设备的不安全存储器接收多个字节范围,多个字节范围形成用于在播放器设备输出的内容中提供数字水印的变体样本,其中多个字节范围包括至少一个加密字节范围;将所接收的多个字节范围存储在播放器设备的安全存储器中;对存储在安全存储器中的多个字节范围进行排序;以及将所排序的多个字节范围存储在不安全存储器中以便对所排序的多个字节范围进行进一步处理,所排序的多个字节范围包括至少一个加密字节范围中的一者或多者,进一步处理包括使用播放器设备的不安全处理器以用于在不安全存储器中执行以下中的至少一个操作:对所排序的多个字节范围进行网络提取层重新打包;响应于用户输入而选择用于播放其他字节范围组中的所排序的多个字节范围的顺序;将音频数据与所排序的多个字节范围相关联;以及将字幕数据添加到所排序的多个字节范围。
附图说明
通过下文所述的具体实施方式并且结合附图,本公开的实施方案的特征和优势将变得更加显而易见。提供附图和相关描述是为了说明本公开的实施方案,而不是限制所要求保护的范围。
图1是根据一个实施方案的加密内容传递系统的框图。
图2是根据一个实施方案的播放器设备的框图。
图3是根据一个实施方案的用于对内容进行解复用、解密和解码的并行线程实施方式。
图4是根据一个实施方案的并行线程过程的流程图。
图5是根据一个实施方案的用于利用变体样本对视频样本进行解密的示例性数据流。
图6A是根据一个实施方案的变体样本过程的流程图。
图6B是根据一个实施方案的解密和解码过程。
图7A是根据一个实施方案的用于包括双重加密字节范围的样本的部分解密过程的流程图。
图7B是根据一个实施方案的用于包括解密的单次加密字节范围的部分解密的样本的解密和解码过程。
具体实施方式
在以下具体实施方式中阐述了许多具体细节,以便提供对本公开的彻底理解。然而,对于本领域普通技术人员显而易见的是,可在没有这些具体细节中的一些细节的情况下实践所公开的各种实施方案。在其他情况下,并未详细示出众所周知的结构和技术以避免不必要地模糊各种实施方案。
示例性系统概述
图1示出了根据一个实施方案的内容传递系统的示例。如图1所示,内容传递系统包括下载服务器和许可证服务器301、播放器设备101、以及存储设备201和202。存储设备201和202可以包括例如安全数字(SD)闪存卡、通用串行总线(USB)驱动器、硬盘驱动器(HDD)、固态驱动器(SSD)或混合驱动器,该混合驱动器包括旋转磁存储介质和固态存储介质两者。播放器设备101可以包括例如机顶盒、DVD播放器、加密狗设备、PC、平板电脑、膝上型电脑或智能电话。在一些实施方式中,存储设备201或202可以与播放器设备101一起包括在内作为单个设备。在其他实施方式中,播放器设备101、存储设备201和/或存储设备202可以不在物理上位于一处。
本领域的普通技术人员将会知道,其他实施方案可以包括比图1中所示的那些元件更多或更少的元件,并且可以在具有不同配置的其他环境中实现所公开的过程。例如,其他实施方案可以包括不同数量的存储设备和播放器设备。在其他示例中,内容传递系统可以不包括下载服务器和许可证服务器301。在这样的示例中,内容可以来自诸如光盘(例如,蓝光盘)的可移动存储介质或来自诸如存储设备202的另一设备。
如图1的示例中所示,存储设备201连接到播放器设备101,该播放器设备可以充当管道设备,用于将加密内容保存在存储设备201的公共文件系统203中。例如,加密内容可以使用诸如通用文件格式(CFF)中的高级加密标准(AES)的对称加密来加密。
图1中的管道设备为播放器设备101,但在其他实施方式中,管道设备可以为例如信息亭、PC或下载服务器。作为管道设备,播放器设备101从下载服务器和许可证服务器301接收最新证书修订列表(CRL)和加密内容文件。在一些实施方式中,下载服务器和许可证服务器可以是分开的,使得播放器设备101从下载服务器接收加密内容文件,并从单独的许可证服务器接收用于访问内容文件的最新CRL和/或许可证。
如上面所指出的,数据源可以为例如因特网下载、超级分发系统或从另一个存储设备复制内容文件的软件应用程序。还可以下载许可证文件、CRL和许可证密钥,以授权访问加密内容文件。可以由存储设备201经由播放器设备101使用例如可以以存储设备201与一个或多个下载服务器和许可证服务器301之间的公钥握手开始的安全会话来从一个或多个下载服务器和许可证服务器301接收许可证文件、最新CRL和许可证密钥。在其中单独的服务器用作许可证服务器的实施方式中,播放器设备101可以仅连接到许可证服务器。
如图1的示例中所示,加密内容文件、最新CRL和许可证存储在存储设备201的公共文件系统203中。在一些实施方式中,可以对用于播放内容文件的最新CRL和许可证文件进行加密签名以检测未经授权的修改。在其他实施方式中,可以对CRL和许可证文件进行加密以防止未经授权的使用。CRL可以允许确认、覆盖或撤销用于播放内容文件、或者用于播放特定质量水平的内容文件(例如,UHD对标准清晰度)的证书。在一个实施方式中,存储设备(例如,存储设备201或202)必须具有与播放器设备101相同的CRL版本才能播放内容。作为附加安全措施,一些实施方式可能要求将许可证文件和许可证密钥存储在与内容文件相同的存储设备上才能播放内容。
存储设备201可以将当从一个或多个下载服务器和许可证服务器301获取许可证文件时或者当准备使用播放器设备101回放内容文件时也使用的密钥存储在安全控制器205中。安全控制器205可以包括诸如用于执行指令的一个或多个处理器的电路,并且可以包括微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、硬连线逻辑、模拟电路和/或其组合。在一些实施方式中,处理器102可以包括片上系统(SoC)。安全控制器205可以包括防篡改计算环境,其具有针对与公共文件系统203分开保存的密钥的内部存储。这样的密钥可以包括例如存储设备基础密钥、存储设备私钥或证书、用于与一个或多个下载服务器和许可证服务器301通信的公钥、以及与存储在公共文件系统203中的加密许可证文件一起使用的许可证密钥。
数字接口204提供用于与播放器设备101通信的接口。数字接口204可以使用例如总线或网络,并且可以通过使用例如以太网或WiFi、或者诸如串行高级技术附件(SATA)、PCI express(PCIe)、小型计算机系统接口(SCSI)或串行附接SCSI(SAS)的总线标准来与播放器设备101进行交互。在一些实施方式中,播放加密内容文件可能需要播放器设备101连接到存储设备201以建立安全会话。这可以从播放器设备101和存储设备201之间的公钥握手开始。然后,存储设备201可以验证用于播放请求的内容文件的证书。
在一个示例中,存储设备201和播放器设备101中的每一个都可以通过使用特定于设备的安全密钥和许可证密钥来导出它们自己的影子密钥或中间密钥。然后,可以使用用于请求的内容文件的许可证文件,以通过使用在存储设备201和播放器设备101中的每一个处的导出的影子密钥来执行一系列操作。在已经执行了所有操作之后,可以将回放映射或其他数据结构存储在播放器设备101的存储器中。该数据结构可以包括加密内容文件中的偏移范围列表、每个范围的解密密钥列表、以及用于回放内容文件的附加处理指令。如本领域的普通技术人员将会知道的,在其他示例中可以使用播放器设备101准备使用来对内容文件进行解密和处理的其他方法。
图2是根据一个实施方案的播放器设备101的框图。如图2所示,播放器设备101经由存储接口110与存储设备201通信以获取加密内容文件。存储接口110被配置为经由总线或网络来与播放器设备101进行交互,并且可以使用例如以太网或WiFi、或者诸如SATA、PCIe、SCSI或SAS的总线标准来进行交互。
如图2所示,播放器设备101包括不安全处理器102,该不安全处理器包括诸如用于执行指令的一个或多个处理器的电路,并且可以包括微控制器、DSP、ASIC、FPGA、硬连线逻辑、模拟电路和/或其组合。在一些实施方式中,处理器102可以包括SoC。
处理器102还与输出接口112通信,该输出接口可以向显示设备401提供视频数据和/或音频数据。输出接口112可以使用例如高清晰度多媒体接口(HDMI)、显示端口、以太网或WiFi来进行交互。在一些实施方式中,播放器设备101和显示设备401可以集成到一个设备中。
不安全的共享存储器108被配置为存储播放器应用程序10、操作系统(OS)12、样本读取缓冲器14和组合的加密样本16。本领域的普通技术人员将会知道,其他实施方案可以包括与被描绘为存储在存储器108中的所有项相比更多或更少的项。存储器108可以表示播放器设备101的易失性存储器诸如动态随机存取存储器(DRAM),用于临时存储由处理器102、安全CPU 104和解码器106使用的数据。在其他实施方案中,存储器108可以为非易失性存储器(NVM),诸如磁阻随机存取存储器(MRAM)。
如下面更详细讨论的,播放器应用程序10包括用于操作播放器设备101并经由输出接口112向显示设备401提供用户界面的计算机可执行指令。OS 12可以管理播放器设备101的硬件和软件资源,并且可以包括例如Linux OS、Android OS、Windows OS、Mac OS或定制的OS。由应用程序OS 12管理的硬件资源可以包括例如存储接口110、输出接口112、不安全的共享存储器108、安全的中央处理单元(CPU)104和解码器106。由应用程序OS 12管理的软件资源可以包括例如一个或多个文件系统、用于与显示设备401和存储设备201进行交互的驱动器、以及诸如播放器应用程序10的应用程序。
样本读取缓冲器14包括存储器108的用于存储从存储设备201所接收的加密内容文件的样本和变体样本以供安全CPU 104处理的一部分。如下面参考图5至图7B的示例所讨论的那样,组合的加密样本16可以包括已由安全CPU 104排序的多个视频数据字节范围,并且包括至少一个加密字节范围。在其他实施方式中,组合的加密样本16可以对应于音频数据字节范围而不是视频数据字节范围。
与处理器102一样,安全CPU 104可以包括诸如用于执行指令的一个或多个处理器的电路,并且可包括微控制器、DSP、ASIC、FPGA、硬连线逻辑、模拟电路和/或其组合。在一些实施方式中,安全CPU 104可以包括具有安全存储器105的SoC。
安全CPU 104和安全存储器105被保护以免受到比处理器102和共享存储器108更高安全级别的访问。可以通过限制安全CPU 104可以利用的存储器、安全CPU可以执行的功能和/或可以对安全CPU的固件执行的编程来保护安全CPU。可以通过限制可以访问安全存储器105的部件来类似地保护安全存储器105。可以例如通过要求认证或限制特定部件的访问或对特定部件的访问来实现对安全存储器105和安全CPU 104的这些保护。
在一些实施方式中,安全存储器105可以存储由安全CPU 104基于加密文件而使用影子密钥或中间密钥生成的回放映射或其他数据结构。回放映射可以包括与密钥标识符(KID)相关联的密钥。回放映射中的密钥可以包括例如AES音频密钥、元数据密钥、公共音频和视频密钥、字节范围密钥或用于计数器模式下的AES解密的视频密钥。如下面更详细地讨论的,这些密钥中的一些可以为特殊的字节范围密钥,用于对视频样本的特定字节范围进行解密,然后再用公共视频密钥对整个样本进行解密。例如,这种双重解密可以为在显示设备401上播放内容时用作数字水印的变体样本数据的特定字节范围提供附加的安全性。
将样本数据,其包括存储在样本读取缓冲器14中的多个字节范围,转发到安全CPU104以进行变体处理或解密。可以经由安全音频/视频路径上的进程间通信(IPC)调用来将样本数据转发到安全CPU 104。如下面参考图3至图7B所讨论的那样,安全CPU 104可以使用安全存储器105来对字节范围进行解密。在某些情况下,安全CPU 104还可以使用安全存储器105来对字节范围进行排序或对双重加密字节范围部分地解密。可以执行字节范围的排序,例如,以提供数字水印或提供附加的安全级别。多个字节范围可以形成变体样本,用于在播放器设备101输出的内容中提供数字水印。
在一些实施方式中,当在内容文件中存在时间平行变体或替代样本可用时或者当主视频样本或基础视频样本不能以其他方式解密时(诸如当在回放映射中对于特定样本或字节范围无密钥可用时),可以触发视频样本的字节范围的排序。在对字节范围进行排序之后,将所排序的字节范围存储在不安全存储器108中作为组合的加密样本16,以由不安全处理器102进一步处理。在由不安全处理器102执行附加处理之后,然后由安全CPU104对组合的加密样本16进行解密,然后再由解码器106使用安全存储器107对其进行解码。
在不安全处理器102确定不需要对样本中的字节范围进行排序的情况下,诸如当基础样本具有密钥时或者当无变体样本时,安全CPU 104可以从不安全存储器108访问组合的加密样本16,并且继续进行以对样本进行完全解密,而无需对字节范围进行排序以及将排序的字节范围返回到不安全存储器108。
通过使用不安全的共享存储器108来存储组合的加密样本16,通常可以使用于处理样本的安全存储器105所需的尺寸减小。组合的加密样本16在不安全存储器108中保持受保护,因为它仍然是加密的。另外,使用不安全存储器108来存储组合的加密样本16还可以在加密文件的解密和解码期间改善播放器设备101的性能。通过将组合的加密样本16存储在不安全存储器108中,安全CPU 104和不安全处理器102两者都能够分别对样本执行安全和不安全的操作。这通常可以改进以高的比特率对大的加密文件进行实时解密和解码,而不必增加播放器设备101的安全处理和安全存储器资源。就这一点而言,安全存储器和安全处理器通常比不安全存储器和不安全处理器更昂贵,并且通常必须专用于仅执行安全操作。
在图2的示例中,解码器106为安全处理器,其包括用于使用安全存储器107对组合的样本16的完全解密版本进行解码的电路。解码器106经由安全音频/视频路径上的IPC调用来访问安全存储器105,以检索解密的样本以进行解码。解码器106可以使用诸如高效率视频编码(HEVC)(即,H.265)标准或MPEG-4高级视频编码(AVC)(即,H.264)的标准来对诸如视频样本的样本进行解码。然后将解码的样本提供给输出接口112,以输出到显示设备401。
与处理器102一样,解码器106可以包括诸如用于执行指令的一个或多个处理器的电路,并且可包括微控制器、DSP、ASIC、FPGA、硬连线逻辑、模拟电路和/或其组合。在一些实现方式中,解码器106可以包括具有安全存储器107的SoC。
解码器106和安全存储器107被保护以免受到比不安全处理器102和不安全存储器108更高安全级别的访问。可以通过限制解码器可以利用的存储器、解码器可以执行的功能和/或可以对解码器的固件执行的编程来保护解码器106。可以通过限制可以访问安全存储器107的部件来类似地保护安全存储器107。对安全存储器107和解码器106的这些保护可以例如通过要求认证或限制特定部件的访问或者对特定部件的访问来实现。
解密和变体处理示例
图3是根据一个实施方案的用于对内容进行解复用、解密和解码的并行线程实施方式。如图3所示,样本的处理可以由生产者线程和消费者线程执行。这种并行处理通常可以提高播放器设备101在以高比特率对大文件进行实时解复用、解密和解码时的性能。
在图3的示例中,不安全处理器102可以执行生产者线程的所有阶段、以及消费者线程的大多数阶段,其中消费者线程的某些阶段由安全CPU 104和解码器106执行。除了通过在不安全处理器102、安全CPU 104和解码器106之间分配阶段来改善样本的处理时间之外,大多数阶段由不安全处理器102执行,并且可以访问不安全存储器108。与使用安全处理器和安全存储器执行图3中的所有或大多数阶段相比,这通常需要使用较少的安全存储器和安全处理。
如图3的示例中的交叉影线所示,安全存储器和安全处理器仅用于消费者线程的变体处理阶段以及解密和解码阶段。安全CPU 104执行变体处理阶段以及解密和解码阶段的解密部分。解码器106执行解密和解码阶段的解码部分。消费者线程的剩余阶段由不安全处理器102执行。
由不安全处理器102执行的生产者线程读取音频、视频和变体分组,并从加密内容文件中提取元数据。元数据可以包括加密参数,诸如用于对样本数据进行解密的格式参数(例如,MPEG-公共加密(CENC)参数)。如图3所示,由生产者线程通过对文件或部分文件进行高速缓存和解压缩来处理加密文件。可以例如经由存储接口110从存储设备201接收加密内容文件并将其缓存在不安全存储器108中。生产者线程通过读取包括在加密文件中的样本元数据和样本数据并将它们存储在样本读取缓冲器14中来执行进一步处理。如下面所讨论的,在使用了数字加水印的实施方式中,生产者线程还可以针对可以包括在文件中的辅助轨道中的一些或所有视频样本读取匹配变体样本。
消费者线程从样本读取缓冲器14检索视频样本和音频样本。可以由不安全处理器102以如不安全处理器102所确定的呈现时间戳(PTS)顺序来检索视频样本和音频样本。在一些实施方式中,如果用于对来自视频样本的字节范围进行解码的密钥是不可访问的,则执行如下面针对图5和图6A所讨论的变体处理,该变体处理可以将匹配的PTS(即,时间平行)变体样本替换为基础样本以对内容数字地加水印。在其他实施方式中,变体处理可以在其他条件下执行,诸如仅在变体样本可用时执行。在图3的示例中,不安全处理器102获取变体样本并将变体样本传递到安全CPU 104以进行变体处理。
变体样本的使用可以提供对来自播放器设备101的内容输出的取证标记或数字加水印。在一个实施方式中,内容提供商可以包括用于不同播放器设备的不同的可能变体样本,使得解密内容文件的每个拷贝都可以唯一地标识对内容文件进行解密和解码的播放器设备和/或存储内容文件的存储设备。在一些实施方式中,可以将诸如内容播放的日期和时间的信息编码到数字水印中以用于取证分析。例如,唯一地分配给播放器设备的密钥的使用可以允许播放器设备仅处理包括在内容文件中的许多变体样本中的一个对应的变体样本或一组变体样本。然后可以通过识别诸如未授权拷贝中的视觉指示符的数字水印来跟踪到播放器设备的内容文件的未授权拷贝。图1中的一个或多个下载服务器和许可证服务器301处的更新的CRL然后可以允许撤销或修订播放器设备,使得播放器设备不再能够对内容文件进行解密。
在一个示例中,使用播放器设备的序列号和/或存储设备序列号为特定播放器设备生成的回放映射可以不包括用于某些视频样本数据字节范围的KID和密钥。无密钥的字节范围可以取决于所使用的播放器设备和/或存储设备。替换的变体字节范围可以包括例如在所呈现的内容的某些帧中简要地提供视觉指示符的数据。
在变体处理之后(如果有的话),安全CPU 104将样本作为组合的加密样本16返回到不安全存储器108。不安全处理器102通过执行样本网络抽象层(NAL)重新打包到附件B格式来继续消费者线程处理。然后,不安全处理器102将样本有效载荷(组合的加密样本16,包括解密参数和解码参数)馈送到安全存储器105,以便由安全CPU 104进行解密并由解码器106进行解码。组合的加密样本16中包括的解密参数和解码参数可以包括元数据,例如关键帧标记PTS和样本持续时间。
除了上面讨论的处理的改进之外,并行线程以及多个处理器和存储器的使用还可以更好地促进回放搜索和特技模式的随机访问,诸如快进和倒带。随机访问可能需要附加的处理来对具有与回放搜索或特技模式的给定时间戳最接近的PTS的视频轨道、变体轨道和音频轨道的样本进行快速地识别、解密和解码。就这一点而言,与其中可以使用一个安全处理器对样本进行访问和解密的布置相比,不安全处理器102和不安全存储器108可能能够更快地访问无序样本。生产者线程和消费者线程的使用还可以允许消费者线程时间完成对当前样本的处理,同时生产者线程为消费者线程准备下一个样本,这可以改善回放搜索和特技模式期间的处理。
在一个实施方式中,当接收到搜索播放命令或特技播放命令时,处理器102的生产者线程可以尝试跳转到各自具有与回放搜索或特技模式所指示的时间戳最接近的PTS的视频轨道和变体轨道的对应样本。在一个示例中,这可以通过识别具有包括所指示的时间戳的PTS范围的视频轨道和变体轨道中的每一个的电影片段(例如,一组样本)来完成。然后,不安全处理器102可以针对每个轨道来确定表示时间戳的位置的电影片段的PTS范围的一部分,并且通过使用电影片段的样本集的总数,确定在执行搜索命令或特技播放时要处理的下一个视频样本和变体样本。
例如,如果电影片段包括40个视频样本,则不安全处理器102可以在某些情况下使用四舍五入来确定给定时间戳位于从PTS范围开始时的所识别的电影片段的总PTS范围的25%或大约25%处。在这种情况下,处理器102将读取第十个视频样本和变体样本(就PTS而言)并将它们存储在样本读取缓冲器14中,因为给定的时间戳将是进入电影片段的40个样本的路径的四分之一或大约四分之一。
然后,消费者线程可以处理视频样本和变体样本以进行解密和解码。消费者线程还可以执行音频样本的同步。通过执行对用于在安全处理器和安全存储器之外进行随机访问的样本的初始识别,通常可以更好地保存这些资源以执行解密和变体样本处理,以便即使对于搜索或特技播放模式也提供改进的回放性能。
图4是根据一个实施方案的可由播放器设备101执行的并行线程过程的流程图。在图4的示例过程中,框402至406可以由不安全处理器102在生产者线程中执行,并且框408和410可以分别由不安全处理器102和安全CPU 104在消费者线程中执行。
在框402中,生产者线程接收内容文件的至少一部分。在框404中,将内容文件或部分内容文件处理成多个样本。参考图3,如上面所讨论的,框404的处理可以包括例如文件或文件部分的高速缓存和解压缩、以及样本元数据和样本数据的读取。在框406中,生产者线程将样本数据存储在不安全存储器中,诸如存储在不安全存储器108的样本读取缓冲器14中。存储在不安全存储器中的样本数据包括至少一个加密字节范围。
在框408中,安全CPU 104接收样本数据,该样本数据可以从不安全处理器102转发,作为IPC调用的一部分。在框410中,至少一个安全处理器(诸如安全CPU 104)对至少一个加密字节范围进行解密。解密或其他处理(诸如对样本数据的字节范围的排序)可以由单个安全处理器执行,或者可以在多个安全处理器之间,诸如在安全CPU 104和解码器106之间划分。下面参考图5至图7B讨论这种安全处理的示例。
图5是根据一个实施方案的用于利用变体样本对视频样本进行解密的示例性数据流。图5的解密和变体处理可以作为上面关于图3和图4所讨论的消费者线程的一部分来执行。如图5所示,图5的解密和变体处理以五个阶段布置,从图5的顶框中的阶段1开始,向下朝着图5的底框中的第五阶段前进。阶段1和3是使用了不安全存储器108的不安全阶段,而阶段2、4和5是使用了安全存储器105和107的安全阶段。
安全CPU 104经由IPC调用从不安全存储器108的样本读取缓冲器14接收视频样本(即,视频样本mdat)和变体样本(即,变体样本mdat)。变体样本包括具有变体构造器列表的第一部分和包括加密变体构造器、加密字节范围和明文(即,未加密)字节范围的第二部分。
加密变体构造器在安全存储器105中使用变体构造器列表进行解密,并用于对样本数据的子样本或字节范围进行排序。由安全CPU 104生成的回放映射用于确定是否使用视频样本,或者在具有为给定样本所分配的视频KID的解密密钥不可用的情况下,是否执行变体处理以基于变体构造器中的信息来对新变体样本进行排序和组合。在一个实施方式中,安全CPU104可以通过关联来自每个视频样本的回放映射的KID来处理来自视频样本的字节范围的子样本。当在特定视频样本的回放映射中未找到KID时,安全CPU 104然后可以使用来自变体构造器的信息来对新样本进行排序或组合。在一个实施方式中,安全CPU 104对变体字节范围进行排序或组合以生成新样本。
安全CPU 104还可以使用回放映射来识别双重加密字节范围诸如图4的阶段2中所示的双重加密字节范围#1。使用第一密钥(即,K(vbrKID1))来对双重加密字节范围部分地解密。
在图5的示例中,安全CPU 104已确定使用变体样本来代替基础样本。在阶段2中,安全CPU 104将字节范围以变体构造器规定的顺序组合为阶段3中的不安全存储器108中的组合的加密样本16。在图5的示例中,组合的加密样本16可以为MPEG-CENC格式,其中组合的加密样本16包括遵循部分跳过/加密模式的加密字节范围和未加密字节范围,该部分跳过/加密模式使得加密在组合的加密样本16的切片主体上扩展。
就这一点而言,阶段3中的不安全处理器102对不安全存储器108中的组合的样本16执行进一步处理。这样的进一步处理可以包括NAL重新打包,该NAL重新打包可以每个MPEG-CENC提供未加密的NAL单元报头和视频切片报头,所述报头允许解码器106读取某些元数据而无需解密。在一些实施方式中,阶段3中的不安全处理器102的进一步处理可以包括响应于用户输入而选择用于处理存储在不安全存储器108中的样本的顺序,该用户输入诸如用于其中来自播放器的输入改变场景的游戏应用程序或者用于如上面所讨论的搜索或特技播放,包括快进、倒带或跳转到特定书签或章节。在其他实施方式中,进一步处理可以包括通过将音频数据与存储在不安全存储器108中的样本相关联或者为样本添加字幕数据来对音频轨道进行音频处理。在图5的示例中,还可以将在对组合的加密样本16进行解密时要使用的公共视频密钥的KID(即,mediaKID)和初始化矢量(IV)(即,mediaIV)提供给不安全存储器108以在阶段4中由安全CPU104进行解密(例如,使用AES)。
在阶段4中,安全CPU 104经由IPC调用将来自不安全存储器108的具有视频KID和IV的组合的加密样本16接收到安全存储器105中。安全CPU 104使用与从不安全存储器108所检索的KID相关联的公共视频密钥来对组合的加密样本16的加密字节范围(即,加密字节范围#4、#1和#j)进行解密以产生解密的样本。
然后使用允许解码器106访问安全存储器105的安全音频/视频路径来将解密的样本传递到解码器106。解码器106使用例如H.265或H.264来对安全存储器107中的样本进行解码。然后将解码的内容馈送给输出接口112,以在显示设备401上显示。
图6A是根据一个实施方案的可以由诸如安全CPU 104的安全处理器执行的变体处理的流程图。可以在使用变体样本代替基础样本的情况下执行图6A的操作。变体样本可以包括一个或多个双重加密字节范围,如图5的示例中那样,或者变体样本可以仅包括一个或多个单次加密字节范围而无任何双重加密字节范围。
在框602中,安全处理器从诸如不安全存储器108的不安全存储器接收样本数据。所接收的样本数据包括多个字节范围,其中至少一个字节范围被加密。
在框604中,安全处理器将所接收的多个字节范围存储在安全存储器诸如安全存储器105中。在访问仅限于安全存储器的意义上,可以诸如仅从安全处理器或通过认证过程来保护安全存储器。
在框606中由安全处理器对多个字节范围进行排序。字节范围的排序可以由对在框602中所接收的样本数据中包括的元数据的解密引起,和/或通过使用如上参考图5所述的变体构造器引起。在一些实施方式中,除此之外或另选地,安全处理器可以在框606中对一些加密字节范围进行解密,同时保留加密的其他字节范围以存储在不安全存储器108中。
在框608中,安全处理器存储所排序的多个字节范围以便在诸如不安全存储器108的不安全存储器中进一步处理样本,所排序的多个字节范围包括至少一个加密字节范围中的一者或多者。参考图2,所排序的多个字节范围可以作为组合的加密样本16存储在不安全存储器108中。然后,可以由不安全处理器102访问组合的加密样本16,该不安全处理器可以例如执行NAL重新打包,然后再将组合的加密样本16转发回安全CPU 104以使用公共视频密钥对至少一个加密字节范围进行解密。
通过将样本数据的排序和解密、以及NAL重新打包分解成分别由安全处理器和不安全处理器执行的不同阶段,通常可以使用较少的安全处理和存储器资源来以提高高比特率的回放性能。就这一点而言,不安全存储器诸如不安全存储器108可用于支持解密和/或变体样本过程而不损害样本的安全性,因为样本的至少一个字节范围保持加密,而组合的加密样本16存储在不安全存储器108中。
图6B是根据一个实施方案的可以由诸如CPU 104和解码器106的至少一个安全处理器执行的解密和解码过程。可以在图6A的变体处理之后执行图6B的过程。
在框610中,安全处理器从不安全存储器诸如不安全存储器108接收所排序的多个字节范围。在框610中可以接收多个字节范围,作为将字节范围转发到安全处理器的IPC调用的一部分。多个字节范围可以形成已经由安全处理器或另一安全处理器排序并且存储在不安全存储器中的变体样本,其中一个或多个字节范围被加密。如上面关于图6A所讨论的那样,这可能通常允许由不安全处理器诸如不安全处理器102对样本进行进一步处理,然后再由安全处理器进行完全解密。
在框612中,安全处理器对在框610中所接收的多个字节范围的一个或多个加密字节范围进行解密。框612中的解密提供对应于一个或多个加密字节范围的一个或多个解密字节范围。安全处理器可以使用安全存储器诸如存储器105以使用可以在安全存储器中可用的密钥和/或可以包括在从不安全存储器所接收的多个字节范围中的加密密钥来执行解密。如上面讨论的图5的阶段4的示例中所示,安全处理器可以接收用于使用IV(例如,mediaIV)对一个或多个加密字节范围进行解密的加密公共视频密钥(例如,mediaKID)。在其他实施方式中,安全处理器可以仅使用密钥或安全存储器诸如安全存储器105中可用的其他数据来对一个或多个加密字节范围进行解密。
在框616中,在多个字节范围已被安全处理器完全解密之后,解码器诸如解码器106从安全存储器访问所排序的多个字节范围,其包括在框612中解密的一个或多个字节范围。解码器可以使用允许解码器访问安全存储器的安全音频/视频路径上的IPC调用来访问解密的多个字节范围。
在框618中,解码器对所排序的多个字节范围进行解码。可以使用安全存储器诸如安全存储器107来执行解码。解码器可以使用诸如H.265或H.264的标准来对多个字节范围进行解码以呈现内容。然后将解码的内容馈送到播放器设备的输出接口。
图7A是根据一个实施方案的可以由安全处理器诸如安全CPU 104执行的解密过程的流程图。在图7A的示例中,样本包括至少一个双重加密字节范围,并且第一安全处理器可以执行至少一个双重加密的字节范围的部分解密。在一些实施方式中,可以在处理阶段期间执行部分解密,该处理阶段可以包括,也可以不包括如上针对图6A的框606所描述的排序。例如,图7A的过程可以大致对应于上面针对图5所讨论的阶段2中的部分解密。然而,本领域的普通技术人员将会知道,图7A的过程可以用与上面针对图5和图6A所讨论的过程不同的过程来实现,而不是用其他并发过程实现。
在框702中,安全处理器从不安全存储器诸如不安全存储器108接收包括多个字节范围或子样本的样本数据。多个字节范围包括至少一个双重加密字节范围。在一些实施方式中,除了至少一个双重加密字节范围外,多个字节范围还可以包括至少一个单次加密字节范围,以便对样本数据的附加保护。
在框704中,安全处理器将所接收的多个字节范围存储在安全存储器诸如安全存储器105中。在访问仅限于安全存储器的意义上,可以诸如仅从安全处理器或通过认证过程来保护安全存储器。
在框706中,安全处理器任选地对存储在安全存储器中的多个字节范围进行排序。字节范围的排序可以由对在框702中所接收的样本数据中包括的元数据的解密引起,和/或通过使用如上所述的变体构造器引起。就这一点而言,字节范围的任选排序可以在播放器设备的内容输出中提供数字水印。
在框708中,安全处理器对至少一个双重加密字节范围部分地解密或执行第一级解密,以生成至少一个解密的单次加密字节范围。可以利用与多个字节范围相关联的密钥(例如,图5的阶段2中的K(vbrKID1))来执行部分解密。如上面所讨论的,一个或多个双重加密的字节范围可以保护用于对内容数字地加水印的变体样本。在其他情况下,至少一个双重加密字节范围可以为基础样本、音频数据或并非变体样本的一部分的其他数据(例如,元数据或密钥)提供附加的安全性。
在框710中,使用至少一个解密的单次加密字节范围代替对应的至少一个双重加密字节范围来将所排序的多个字节范围存储在不安全存储器(例如,不安全存储器108)中。例如,可以将所排序的多个字节范围作为组合的加密样本16存储在不安全存储器108中。在一些实现方式中,不安全处理器诸如不安全处理器102然后可以访问存储在不安全存储器中的多个字节范围,以在第二解密阶段之前进行进一步处理。
图7B是根据一个实施方案的用于包括解密的单次加密字节范围的部分解密的样本的解密和解码过程。可以在字节范围已被部分解密并存储在不安全存储器诸如不安全存储器108中之后,由诸如安全CPU 104或其他安全处理器的安全处理器来执行图7B的过程。
在框712中,安全处理器从不安全存储器接收包括至少一个解密的单次加密字节范围的多个字节范围。在一些情况下,在安全处理器在框712中接收多个字节范围之前,可以已经由不安全处理器(例如,不安全处理器102)对字节范围进行了进一步处理。在一些实施方式中,可以将多个字节范围使用IPC调用从不安全处理器转发到安全处理器。
在框714中,安全处理器对在框712中所接收的多个字节范围进行完全解密。安全处理器可以使用安全存储器诸如安全存储器105来进行解密。在一些实施方式中,可以将至少一个解密的单次加密字节范围可以与先前未双重加密的一个或多个其他加密字节范围一起解码。在这样的实施方式中,安全处理器可以使用公共密钥(例如,图5的阶段4中的K(mediaKID))来对所有加密字节范围进行解密,或者可以使用不同的密钥来对不同的字节范围进行解密。
在框716中,安全处理器将完全解密的多个字节范围存储在安全存储器中,以由另一个安全处理器诸如解码器106访问。在框718中,解码器从安全存储器访问完全解密的多个字节范围。可以通过使用安全音频/视频路径上的IPC调用来执行访问,使得解码器可以访问安全存储器中的完全解密的多个字节范围。
在框720中,解码器对完全解密的多个字节范围进行解码。可以使用标准诸如H.265或H.264在安全存储器诸如安全存储器107中执行解码。在解码之后,可以将从解码多个字节范围而呈现的内容提供给播放器设备的输出接口,以将内容输出到显示器或其他输出设备。
如上所述,将包括双重加密字节范围的样本的解密分解成单独的安全阶段可能通常允许在中间处理阶段期间使用不安全存储器而不损害加密样本的安全性。这可以帮助降低对播放器设备中的安全存储器的要求,并且还可以促进不同安全处理器的解密共享,以提高大的加密文件的解密和解码速度。
其他实施方案
本领域的普通技术人员将会知道,结合本文公开的示例所描述的各种例示性逻辑块、模块和过程可以实现为电子硬件、计算机软件或两者的组合。此外,前述过程可以体现在计算机可读介质上,该计算机可读介质使处理器或计算机执行或实施某些功能。
为了清楚地说明硬件和软件的这种可互换性,上面已经在其功能方面对各种例示性部件、块和模块进行了总体描述。将此功能性实施为硬件还是软件取决于特定应用和强加于整个系统的设计约束。本领域的普通技术人员可以针对每个特定应用以不同方式实现所描述的功能,但这种实现决策不应被解释为导致脱离本公开的范围。
结合本文公开的示例所描述的各种例示性逻辑块、单元、模块和控制器可以用被设计用于执行本文所述功能的通用处理器、DSP、ASIC、FPGA或其他可编程逻辑器件、离散门或晶体管逻辑、分立硬件部件或其任何组合来实现或执行。通用处理器可以是微处理器,但是在替代方案中,处理器可以是任何传统的处理器、控制器、微控制器或状态机。处理器还可以实现为计算设备的组合,例如DSP和微处理器、SoC、多个微处理器、一个或多个微处理器结合DSP内核、或任何其他这样的配置的组合。
结合本文公开的示例而描述的方法或过程的活动可直接体现于硬件中、由处理器执行的软件模块中或两者的组合中。该方法或算法的步骤也可以以与示例中提供的顺序另选的顺序执行。软件模块可以驻留在RAM存储器、闪存存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动介质、光学介质或本领域中已知的任何其他形式的计算机可读介质中。示例性存储介质可以耦合到处理器,使得处理器可以从存储介质读取信息和向存储介质写入信息。在替代方案中,存储介质可以是处理器的组成部分。处理器和存储介质可以驻留在ASIC中。
提供了本公开的示例性实施方案的上述描述,以使得任何本领域普通技术人员能够制作或使用本公开的实施方案。对这些示例的各种修改对于本领域普通技术人员而言将是显而易见的,并且在不脱离本公开的实质或范围的情况下,本文公开的原理可以应用于其他示例。所述实施方案将在所有方面被认为仅仅是示例性的而非限制性的。

Claims (12)

1.一种播放器设备,包括:
不安全存储器;
安全存储器;
解码器;
不安全处理器;和
安全处理器,所述安全处理器被配置为:
从所述不安全存储器接收多个字节范围,所述多个字节范围形成用于在所述播放器设备输出的内容中提供数字水印的变体样本,并且其中所述多个字节范围包括至少一个加密字节范围;
将所接收的多个字节范围存储在所述安全存储器中;
对存储在所述安全存储器中的所述多个字节范围进行排序;
将所排序的多个字节范围存储在所述不安全存储器中以便对所排序的多个字节范围进行进一步处理,所排序的多个字节范围包括所述至少一个加密字节范围中的一者或多者;
在对所排序的多个字节范围进行所述进一步处理之后,从所述不安全存储器接收所排序的多个字节范围;
对所述一个或多个加密字节范围进行解密以提供一个或多个对应的解密字节范围;以及
将包括所述一个或多个解密字节范围的所排序的多个字节范围存储在所述安全存储器中以供所述解码器呈现。
2.根据权利要求1所述的播放器设备,其中所述不安全处理器被配置为通过执行以下中的至少一个操作来对存储在所述不安全存储器中的所排序的多个字节范围执行进一步处理:对所排序的多个字节范围进行网络提取层重新打包;响应于用户输入而选择用于播放其他字节范围组中的所排序的多个字节范围的顺序;将音频数据与所排序的多个字节范围相关联;以及将字幕数据添加到所排序的多个字节范围。
3.根据权利要求1所述的播放器设备,其中所述解码器被配置为:
从所述安全存储器访问包括所述一个或多个解密字节范围的所排序的多个字节范围;以及
对所排序的多个字节范围进行解码。
4.根据权利要求3所述的播放器设备,其中所述解码器被进一步配置为使用安全音频/视频路径上的进程间通信从所述安全存储器访问所排序的多个字节范围。
5.根据权利要求1所述的播放器设备,其中所述不安全处理器被配置为在所述安全处理器从所述不安全存储器接收到所述多个字节范围之前执行生产者线程,所述生产者线程包括以下中的至少一个操作:对由所述播放器设备所接收的文件进行高速缓存;对所接收的文件进行解压缩;从解压缩的文件读取样本元数据;从所述解压缩的文件读取包括所述多个字节范围的样本数据;以及将所述样本数据存储在所述不安全存储器的读取缓冲器中。
6.根据权利要求5所述的播放器设备,其中所述不安全处理器被进一步配置为执行消费者线程的一部分,所述消费者线程包括以特定顺序从所述读取缓冲器获取样本数据,以便由所述安全处理器进一步执行所述消费者线程。
7.一种操作播放器设备的方法,所述方法包括使用所述播放器设备的安全处理器,以用于:
从所述播放器设备的不安全存储器接收多个字节范围,所述多个字节范围形成用于在所述播放器设备输出的内容中提供数字水印的变体样本,其中所述多个字节范围包括至少一个加密字节范围;
将所接收的多个字节范围存储在所述播放器设备的安全存储器中;
对存储在所述安全存储器中的所述多个字节范围进行排序;以及
将所排序的多个字节范围存储在所述不安全存储器中以便对所排序的多个字节范围进行进一步处理,所排序的多个字节范围包括所述至少一个加密字节范围中的一者或多者,所述进一步处理包括使用所述播放器设备的不安全处理器以用于在所述不安全存储器中执行以下中的至少一个操作:对所排序的多个字节范围进行网络提取层重新打包;响应于用户输入而选择用于播放其他字节范围组中的所排序的多个字节范围的顺序;将音频数据与所排序的多个字节范围相关联;以及将字幕数据添加到所排序的多个字节范围。
8.根据权利要求7所述的方法,还包括使用所述安全处理器,以用于:
在对所排序的多个字节范围进行所述进一步处理之后,从所述不安全存储器接收所排序的多个字节范围;
对所述一个或多个加密字节范围进行解密以提供一个或多个对应的解密字节范围;以及
将包括所述一个或多个解密字节范围的所排序的多个字节范围存储在所述安全存储器中。
9.根据权利要求7所述的方法,还包括使用所述播放器设备的解码器,以用于:
从所述安全存储器访问包括所述一个或多个解密字节范围的所排序的多个字节范围;以及
对所排序的多个字节范围进行解码。
10.根据权利要求9所述的方法,其中所述解码器使用安全音频/视频路径上的进程间通信从所述安全存储器访问所排序的多个字节范围。
11.根据权利要求10所述的方法,还包括使用所述不安全处理器以用于在所述安全处理器从所述不安全存储器接收到所述多个字节范围之前执行生产者线程,所述生产者线程包括以下中的至少一个操作:对由所述播放器设备所接收的文件进行高速缓存;对所接收的文件进行解压缩;从解压缩的文件读取样本元数据;从所述解压缩的文件读取包括所述多个字节范围的样本数据;以及将所述样本数据存储在所述不安全存储器的读取缓冲器中。
12.根据权利要求11所述的方法,还包括使用所述不安全处理器以用于执行消费者线程的一部分,所述消费者线程包括以特定顺序从所述读取缓冲器获取样本数据,以便由所述安全处理器进一步执行所述消费者线程。
CN201780077364.1A 2017-01-02 2017-12-23 解密和变体处理 Active CN110073357B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762441511P 2017-01-02 2017-01-02
US62/441,511 2017-01-02
US15/801,037 2017-11-01
US15/801,037 US10944572B2 (en) 2017-01-02 2017-11-01 Decryption and variant processing
PCT/US2017/068374 WO2018125849A1 (en) 2017-01-02 2017-12-23 Decryption and variant processing

Publications (2)

Publication Number Publication Date
CN110073357A CN110073357A (zh) 2019-07-30
CN110073357B true CN110073357B (zh) 2023-07-21

Family

ID=62708528

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780077364.1A Active CN110073357B (zh) 2017-01-02 2017-12-23 解密和变体处理

Country Status (3)

Country Link
US (2) US10944572B2 (zh)
CN (1) CN110073357B (zh)
WO (1) WO2018125849A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11457290B2 (en) * 2017-02-24 2022-09-27 Telefonaktiebolaget Lm Ericsson (Publ) System and method for watermarking of media segments using sample variants for normalized encryption (SVNE)
CN113330438A (zh) * 2019-01-30 2021-08-31 惠普发展公司,有限责任合伙企业 安全代码映像分发
CN113127701A (zh) * 2019-12-31 2021-07-16 中兴通讯股份有限公司 字幕语种识别方法、装置、计算机设备及计算机可读介质
US20210240801A1 (en) * 2020-02-03 2021-08-05 Arris Enterprises Llc Digital rights management system resource manager
CN112291189B (zh) * 2020-06-28 2023-09-26 神州融安数字科技(北京)有限公司 发送、校验密文的方法、装置、设备以及存储介质
CN114117366B (zh) * 2022-01-25 2022-04-08 合肥高维数据技术有限公司 基于全字符变换的字符变形方法及系统
CN116436619B (zh) * 2023-06-15 2023-09-01 武汉北大高科软件股份有限公司 一种基于国密算法的流媒体数据签名验证方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1812541A (zh) * 2005-12-27 2006-08-02 浪潮电子信息产业股份有限公司 一种视频节目的数字版权和数字水印保护方法
CN101309391A (zh) * 2007-04-27 2008-11-19 巴比禄股份有限公司 使用加密和解密技术播放广播节目内容的方法
CN101950343A (zh) * 2002-08-08 2011-01-19 晟碟以色列有限公司 数字权利管理方法及集成电路

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6959288B1 (en) * 1998-08-13 2005-10-25 International Business Machines Corporation Digital content preparation system
AU761317B2 (en) 1999-01-29 2003-06-05 General Instrument Corporation Self-generation of certificates using a secure microprocessor in a device for transferring digital information
US6231066B1 (en) * 1999-03-03 2001-05-15 Shimano Inc. Active highback system for a snowboard boot
US8055899B2 (en) * 2000-12-18 2011-11-08 Digimarc Corporation Systems and methods using digital watermarking and identifier extraction to provide promotional opportunities
JP2002232685A (ja) * 2001-01-31 2002-08-16 Canon Inc 電子透かし処理装置、情報処理装置、ディジタルコンテンツ配布システム、電子透かし挿入方法、及び記憶媒体
US7831990B2 (en) * 2002-04-29 2010-11-09 Sony Corporation Generic adaptation layer for JVT video
US11734393B2 (en) * 2004-09-20 2023-08-22 Warner Bros. Entertainment Inc. Content distribution with renewable content protection
KR100846787B1 (ko) * 2006-02-15 2008-07-16 삼성전자주식회사 트랜스포트 스트림을 임포트하는 방법 및 장치
JP4234770B1 (ja) * 2007-10-10 2009-03-04 株式会社東芝 再生装置および再生制御方法
PT2338076E (pt) 2008-09-23 2013-09-06 Corning Cable Sys Llc Conjuntos e cabos de fibra ótica para fibra para as aplicações de subscritor
EP2290943B1 (en) 2009-08-28 2012-05-16 Irdeto Access B.V. Reliable and non-manipulatable processing of data streams in a receiver
US9100693B2 (en) * 2010-06-08 2015-08-04 Intel Corporation Methods and apparatuses for securing playback content
JP5605146B2 (ja) * 2010-10-08 2014-10-15 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
US8631430B2 (en) * 2010-11-18 2014-01-14 Sony Corporation Enabling DRM-encrypted broadcast content through gateway into the home
US9137214B2 (en) * 2010-12-15 2015-09-15 Microsoft Technology Licensing, Llc Encrypted content streaming
EP2759088A1 (en) * 2011-09-23 2014-07-30 Koninklijke KPN N.V. Secure distribution of content
US9317702B2 (en) * 2011-11-29 2016-04-19 Sony Corporation System and method for providing secure inter-process communications
US9445112B2 (en) * 2012-12-06 2016-09-13 Microsoft Technology Licensing, Llc Secure transcoding of video data
US9247291B2 (en) * 2013-03-13 2016-01-26 Echostar Technologies L.L.C. Systems and methods for securely providing adaptive bit rate streaming media content on-demand
KR101730754B1 (ko) * 2013-03-15 2017-04-26 제너럴 인스트루먼트 코포레이션 안전한 미디어 재생을 위한 dlna/dtcp 스트림 변환
US9430619B2 (en) * 2014-09-10 2016-08-30 Microsoft Technology Licensing, Llc Media decoding control with hardware-protected digital rights management
GB201418815D0 (en) 2014-10-22 2014-12-03 Irdeto Bv Providing access to content
US10402566B2 (en) * 2016-08-01 2019-09-03 The Aerospace Corporation High assurance configuration security processor (HACSP) for computing devices
US11184331B1 (en) * 2016-12-30 2021-11-23 Alarm.Com Incorporated Stream encryption key management
US10565354B2 (en) * 2017-04-07 2020-02-18 Intel Corporation Apparatus and method for protecting content in virtualized and graphics environments

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101950343A (zh) * 2002-08-08 2011-01-19 晟碟以色列有限公司 数字权利管理方法及集成电路
CN1812541A (zh) * 2005-12-27 2006-08-02 浪潮电子信息产业股份有限公司 一种视频节目的数字版权和数字水印保护方法
CN101309391A (zh) * 2007-04-27 2008-11-19 巴比禄股份有限公司 使用加密和解密技术播放广播节目内容的方法

Also Published As

Publication number Publication date
US20210184861A1 (en) 2021-06-17
US11606214B2 (en) 2023-03-14
US10944572B2 (en) 2021-03-09
CN110073357A (zh) 2019-07-30
US20180191507A1 (en) 2018-07-05
WO2018125849A1 (en) 2018-07-05

Similar Documents

Publication Publication Date Title
CN110073357B (zh) 解密和变体处理
US9100693B2 (en) Methods and apparatuses for securing playback content
KR102363264B1 (ko) 하드웨어로 보호되는 디지털 권한 관리를 구비한 미디어 디코딩 제어
TWI427501B (zh) 具安全處理庫的數位內容播放器之系統及方法
US9342666B2 (en) Providing security support for digital rights management in different formats
US8532290B2 (en) Content playback APIS using encrypted streams
KR20120030419A (ko) 호스트-식별 정보를 콘텐트에 내장시키기 위한 메모리 디바이스 및 방법
TW201404122A (zh) 用於安全傳輸媒體內容之系統、方法及裝置
KR102597985B1 (ko) 독립적으로 인코딩된 타일을 포함한 기본 비트스트림을 보호하는 시스템 및 방법
US9032535B2 (en) Storage device and method for providing a scalable content protection system
US9047445B2 (en) Memory device and method for updating a security module
JP2023014134A5 (zh)
TW201214191A (en) Protecting video content using virtualization
US10102386B2 (en) Decrypting content protected with initialization vector manipulation
US9197407B2 (en) Method and system for providing secret-less application framework
EP3317798B1 (en) Decrypting and decoding media assets through a secure data path
AU2018285336B2 (en) Method and device for secure video processing
US9026794B2 (en) Information processing device and information processing method, and program
US10419789B2 (en) Information processing method, information processor, and recording medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant