CN105453094A - 使用安全操作***的受保护媒体解码 - Google Patents

使用安全操作***的受保护媒体解码 Download PDF

Info

Publication number
CN105453094A
CN105453094A CN201380075915.2A CN201380075915A CN105453094A CN 105453094 A CN105453094 A CN 105453094A CN 201380075915 A CN201380075915 A CN 201380075915A CN 105453094 A CN105453094 A CN 105453094A
Authority
CN
China
Prior art keywords
media information
information
decoding
media
safe
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.)
Granted
Application number
CN201380075915.2A
Other languages
English (en)
Other versions
CN105453094B (zh
Inventor
G.F.埃文斯
S.萨赫瓦尼
吴勇军
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105453094A publication Critical patent/CN105453094A/zh
Application granted granted Critical
Publication of CN105453094B publication Critical patent/CN105453094B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4405Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream decryption
    • H04N21/44055Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream decryption by partially decrypting, e.g. decrypting a video stream that has been partially encrypted
    • 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
    • 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
    • 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/1064Restricting content processing at operating system level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
    • H04N21/23476Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption by partially encrypting, e.g. encrypting the ending portion of a movie
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/241Operating system [OS] processes, e.g. server setup

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

本文公开的是用于使用安全操作***促进受保护的媒体信息的解码的工具和技术的代表性实施例。根据一个示例性技术,在计算***的安全操作***的安全进程处接收经加密的编码媒体信息。在安全进程中对经加密的编码媒体信息的至少一部分进行解密。编码媒体信息的该部分包括标头信息。附加地,将标头信息从安全操作***发送到软件解码器以用于控制解码硬件。软件解码器包括在针对应用的进程中。另外,为解码硬件安全地提供对编码媒体信息的访问以用于对编码媒体信息解码来产生解码的媒体信息。

Description

使用安全操作***的受保护媒体解码
背景技术
随着数字视频的使用已经变得更加普遍,已经开发各种设备或数字版权管理(DRM)***来保护视频内容。已经开发一些传统DRM***来使用对利用加密保护的视频内容进行解码的媒体管线。这些传统DRM***具有媒体管线,其具有对经加密的压缩视频内容进行解密的处理组件以及带有用于解析压缩视频内容的复杂软件代码的其它处理组件。尽管已经开发这些传统DRM***来保护视频内容,但是这些传统DRM***具有限制。
发明内容
除本文描述的其它创新之外,本公开内容呈现用于在解码和/输出期间使用安全操作***来保护媒体信息的工具和技术的各种相应实施例。根据一个示例技术,在计算***的安全操作***的安全进程处接收经加密的编码媒体信息。经加密的编码媒体信息的至少一部分在安全进程中被解密。编码媒体信息的该部分包括标头信息。例如,标头信息可以包括用于编码媒体信息的总数据中的受约束量的数据。附加地,将标头信息从安全操作***发送到软件解码器以用于控制解码硬件。软件解码器包括在针对应用的进程中。另外,解码硬件被安全地提供有对编码媒体信息的访问以用于解码编码媒体信息来产生解码媒体信息。
根据示例工具,在安全操作***的安全进程处接收经加密的编码媒体信息和解密密钥。包括在经加密的编码媒体信息中的标头信息由安全进程使用解密密钥来解密。将标头信息从安全操作***发送到软件解码器以用于控制解码硬件。软件解码器包括在针对应用的进程中。附加地,解码硬件被安全地提供有来自安全操作***的解密密钥以促进经加密的编码媒体信息的解密和经解密的编码媒体信息的解码以便产生解码媒体信息。
根据另一示例性技术,在安全操作***的安全进程处接收至少部分地加密的编码媒体信息。编码媒体信息包括没有加密的标头信息。将标头信息从安全操作***发送到软件解码器以用于控制解码硬件。附加地,解码硬件被安全地提供有对至少部分地加密的编码媒体信息的至少加密部分的访问以用于至少部分地加密的编码媒体信息的解码以便产生解码媒体信息。
提供本发明内容来以简化形式引入以下进一步描述的概念的选择。本发明内容并不意图标识所要求保护的主题的关键特征或必要特征,也不意图用于限制所要求保护的主题的范围。技术的前述和其它目标、特征和优点将从参照附图进行的以下具体实施方式变得更明显。
附图说明
图1是图示了用于至少通过将标头信息发送给软件解码器并且使用安全操作***为解码硬件安全地提供对编码媒体信息的访问来解码媒体信息的示例性计算***的图。
图2是图示了用于至少通过将标头信息发送给软件解码器并且使用安全操作***为解码硬件安全地提供对编码媒体信息的访问来解码的示例性方法的流程图。
图3是图示了用于使用安全操作***解码受保护媒体的示例性计算***的示意图。
图4是图示了部分地通过使用安全操作***发送所存储的编码媒体信息的媒体信息的解码的图。
图5是图示了部分地通过使用安全操作***将解密密钥安全地发送给解码硬件的经加密的编码媒体信息的解码的图。
图6是图示了部分地通过使用安全操作***将安全存储的解密密钥安全地发送给解码硬件的受保护媒体信息的解码的图。
图7是图示了部分地通过使用安全操作***向解码硬件安全地发送安全存储的解密密钥和安全存储的经加密的编码媒体信息的经加密的编码媒体信息的解码的图。
图8是图示了用于将标头信息发送给软件解码器并且为解码硬件安全地提供来自安全操作***的解密密钥以促进经加密的编码媒体信息的解密和解码的示例性方法的流程图。
图9是图示了用于将标头信息发送给软件解码器并且为解码硬件安全地提供来自安全操作***的解密密钥以促进经加密的编码媒体信息的解密和解码的示例性计算***的示意图。
图10是用于至少通过将标头信息发送给软件解码器并且使用安全操作***为解码硬件安全地提供对编码媒体信息的访问来对至少部分地加密的编码媒体信息进行解码的示例性方法的流程图。
图11是用于发送标头信息的副本并且为解码硬件安全地提供解密密钥以促进经加密的编码媒体信息的解码的示例性方法的流程图。
图12是图示了用于使用安全操作***解码并且推行受保护媒体信息的输出保护的示例性计算***的示意图。
图13是图示了用于使用安全操作***保护媒体信息的保护策略的推行的图。
图14是图示了用于至少一些所公开的实施例的适当实现环境的一般化示例的示意图。
图15是图示了用于至少一些所公开的实施例的适当计算环境的一般化示例的示意图。
具体实施方式
本公开内容呈现用于在解码和/或输出期间使用安全操作***来保护媒体信息的工具和技术的各种相应实施例。安全操作***(OS)的使用可以向设备或数字版权管理(DRM)***提供增加的保护水平,因为安全OS可以至少用于保护计算***的媒体管线中所使用的敏感信息。例如,利用安全OS,安全解密器可以暴露包括来自加密媒体信息的标头信息的受约束量的数据而同时维持加密形式的非标头信息的至少一部分。例如,标头信息可以包括媒体信息中所包括的总数据的小部分。在一些实现中,在由安全OS接收时对包括在编码媒体信息中的标头信息进行解密,并且标头信息的解密部分可以由标头解析器提取和/或复制。标头信息可以包括以下中的一个或多个:序列参数集(SPS)、图片参数集(PPS)、切片标头、或者根据一个或多个压缩格式中的任一个所提供的其它类似标头信息。例如,压缩格式可以包括视频压缩格式,诸如H.264/AVC、SMPTEVC-1、MPEG-2、MPEG-4Pt2、HEVC/H.265等。受约束量的数据还可以包括可以从数位流导出的其它控制信息,诸如数据类型(例如视频、音频、或其它类型数据)等。标头信息可以包括于在安全OS处所接收的编码媒体信息中。另外,安全OS可以接收指示诸如视频、音频等的类型的编码媒体信息的描述。编码媒体信息的描述可以被安全地编码并且包括在传递给安全OS的媒体策略数据中。例如,媒体策略数据可以包括于在安全OS处所接收的签署策略证书中。所暴露的标头信息可以从安全OS传出到应用的软件解码器。充足的标头数据被发送给应用进程以允许软件解码器至少执行诸如媒体管线对接、时序功能、解码硬件控制等的控制处理。计算***可以包括不止一个操作***,使得应用可以由与安全操作***不同的操作***管理。
通过限制应用的进程内的软件解码器的复杂功能性的演进,可以防止可能受攻击(例如经由缓冲器越程等)的软件解码器的复杂功能性存在于安全OS中。通过限制应用的进程内的软件解码器的复杂功能性的演进,可以通过媒体管线更好地保护媒体信息。例如,复杂代码,诸如执行复杂解析的软件解码器,可能易于受到致力于暴露通过加密保护的媒体信息的攻击,使得媒体信息可能以解密形式被盗窃。通过允许软件解码器仅访问加密媒体信息的标头部分,加密媒体信息的不可访问其余部分可以得到保护。在标头部分被解密之后,对经加密的编码媒体信息或其经加密的其余部分的访问可以由安全OS安全地提供给解码硬件以用于解密和/或解码(例如解压缩)。因为安全OS的安全解密器可以使用软件代码实现,所以使用安全OS保护媒体信息可以被适配用于与各种硬件配置中的一种或多种一起使用。在一些实现中,安全解密器可以将以第一加密格式加密的数据的抄本提供给以较轻的第二加密格式加密的数据。在一些实现中,从安全解密器发送给软件解码器的编码媒体信息的所提取部分可以使用基于会话密钥的较便宜加密方案来重新加密。安全解密器所提供的到第二加密格式中的信息的抄本可以保护较低值数据和/或可以用于验证一个或多个软件组件以防止数据的无意泄露。
在本文描述的各种示例中,编码媒体信息、密钥和其它信息在计算***内发送和接收。如本文使用的,术语“发送”和“接收”一般指示计算***内的信息的任何形式的递送。术语“发送”和“接收”不暗示关于计算***内的通信方式或机制的任何限制。取决于实现和实践考虑(例如信息量、安全性),“发送”和“接收”操作可以通过其值作为方法调用的一个或多个参数、作为消息、作为事件等传递信息;通过藉由参考(作为存储器中的位置)或者通过计算***内的任何其它形式的通信传递信息来实现。从“发送器”传达到“接收器”的信息可以直接传达或通过一个或多个中间代码层被处理,潜在地包括改变信息的类型、结构、字段等的处理,或者将信息转换成另一形式。
将标头信息发送给软件解码器并且使用安全操作***为解码硬件安全地提供对编码媒体信息的访问的用于解码的示例性***
图1是图示了用于至少通过将标头信息110发送给软件解码器120并且使用安全操作***(OS)150为解码硬件130安全地提供对编码媒体信息140的访问来解码受保护媒体信息的示例性计算***100的图。在图1中,在安全OS150的安全进程160处接收编码媒体信息140,如在155处所图示的。在由安全进程从应用105或另一源接收时对编码媒体信息140进行加密。编码媒体信息140的加密可以在传送和/或处理期间向编码媒体信息提供安全性和/或保护。
编码媒体信息140包括标头信息110。标头信息110可以包括编码媒体信息140中所包括的总数据的小部分。安全进程160对包括标头信息110的所接收的编码媒体信息140的至少一部分进行解密,并且提取标头信息110以将标头信息110发送(165)给软件解码器120。在一些实现中,标头信息的至少一部分可以在由安全进程160接收时解密,并且提取标头信息的至少解密部分以用于发送给软件解码器120。在一些实现中,从安全OS150发送给软件解码器120的信息可以使用较便宜成本的加密方案被加密以便进一步缓解从安全OS150的泄漏。软件解码器120可以使用包括在标头信息110中的控制信息以至少用于控制解码硬件130。安全进程160可以提取包括足够控制信息的标头信息,以至少使得软件解码器120可以控制包括软件解码器120和解码硬件130二者的媒体管线。通过将软件解码器120暴露给经解密的标头信息110,编码媒体信息140的其余加密部分可以通过加密进行保护并且没有以非加密形式暴露给软件解码器120。例如,应用105的媒体管线可以至少通过适配视频硬件加速(DXVA)解码管线来实现。在一些实现中,关于所接收的内容流的信息(例如编码媒体信息)可以在安全OS150处被接收。关于所接收的内容流的信息可以包括关于编码媒体信息的编码格式(例如视频压缩格式、音频压缩格式等)、编解码器、媒体类型的信息或者关于内容流的其它信息。关于所接收的内容流的信息可以用于鉴别安全OS150内的一个或多个组件。在一些实现中,关于内容流的信息可以在签署策略证书中所包括的安全OS150处接收。在一些实现中,安全OS150可以接收一个或多个解密密钥,其可以用于解密所接收的编码媒体信息140的加密。在一些实现中,除了将标头信息110发送给软件解码器120之外,安全进程发送用于编码媒体信息140的媒体类型。
软件解码器120包括在由计算***100执行的应用105的应用进程125中。在175处,对编码媒体信息140的访问被安全地提供给解码硬件130。解码硬件130对编码媒体信息140进行解码以产生解码媒体信息170。至少通过将解密标头信息110传递给软件解码器120,软件解码器120对控制信息的复杂解析和/或生成可以维持在应用进程125中并且不包括在安全OS150中。
至少通过将标头信息发送给软件解码器并且使用安全操作***为解码硬件安全地提供对编码媒体信息的访问来解码的示例性方法
图2是图示了用于至少通过将标头信息发送给软件解码器并且使用安全操作***(安全OS)为解码硬件安全地提供对编码媒体信息的访问来解码的示例性方法200的流程图。在图2中,在210处,在计算***的安全操作***的安全进程处接收经加密的编码媒体信息。例如,经加密的媒体信息可以从计算***的应用安全地接收。在一些实现中,经加密的编码媒体信息在安全进程的安全解密器处被接收。
编码媒体信息可以由内容源和/或提供者发送且加密以保护编码媒体信息。在一些实现中,内容源可以是计算机可读介质(例如介质盘等)或媒体内容服务器(例如在云中或其它地方),其向应用和/或安全OS提供内容。例如,内容可以包括以下中的一个或多个:媒体信息、签署策略证书、媒体信息策略、解密密钥等。内容源可以发送经加密的编码媒体信息以通过计算***的应用在安全OS处接收。在一些实现中,包括在编码媒体信息中的标头的至少一部分可以在由安全进程接收时是非加密的。在一些实现中,安全进程接收从内容源所发送的解密密钥,其可以用于对经加密的编码媒体信息进行解密。在一些实现中,安全进程可以接收从内容源所发送的签署策略证书,其与所接收的经加密的编码媒体信息相关联。可以建立解密直通模式使得应用进程的输入可信权限可以将解密密钥(例如通过安全信道等)和经加密的内容向下游传递给安全OS的安全解密器。
在一些实现中,媒体信息可以包括用于诸如数字视频、音频等的一个或多个数字媒体的信息。媒体信息可以使用一个或多个格式被编码。在一些实现中,格式包括压缩格式和/或用于媒体信息的传送的格式。在一些实现中,可以对媒体信息进行加密。媒体信息可以在编码格式中和/或解码格式中被加密。在一些实现中,编码媒体信息和/或编码媒体信息的描述可以用于核实适当的软件解码器和/或硬件解码卸载算法用于媒体管线和/或编码媒体信息的解码中。
在一些实现中,编码媒体信息可以是存储在一个或多个媒体容器格式中的内容。容器格式可以包括MP4、分段MP4、高级***格式(ASF)、帧水平容器等。在一些实现中,在媒体信息是视频数据的情况下,视频数据可以以帧为单位被封装。在一些实现中,经加密的媒体信息可以处于可支持基于帧水平的样本的流送协议格式。例如,流送协议格式可以包括互联网信息服务平缓流送等。在一些实现中,经加密的媒体信息可以是流送容器格式,诸如MPEG2TS、DTCPIP、MPEGDASH/TS,或者具有其它类似流送容器格式。当经加密的媒体信息具有流送容器格式时,标头解析器和/或安全解密器可以适配成确定清晰的区域偏移以确定要传递给软件解码器的编码媒体信息中所定位的标头信息的位置和/或大小。在一些实现中,当经加密的媒体信息具有流送容器格式时,可以解析包括媒体信息的容器以解复用该流。在一些实现中,媒体信息可以在一个或多个压缩格式中被编码,包括H.264、WindowsMediaVideoTM(WMV)、VC-1、MPEF或其它类似的压缩格式。
在图2的220处,在安全进程中对经加密的编码媒体信息的至少一部分进行解密。被解密的编码媒体信息的该至少一部分包括编码媒体信息的标头信息。例如,编码媒体信息的一部分可以被解密,并且经解密的部分可以包括标头信息。在一些实现中,标头信息可以包括编码媒体信息中所包括的总数据的小部分。编码媒体信息的其余部分可以保持加密。在一些实现中,安全解密器可以使用软件代码(例如计算机可执行指令等)实现。安全解密器可以在运行安全OS的处理器(例如CPU或其它处理器)上执行。在一些实现中,安全解密器可以接收解密密钥,其可以用于对经加密的编码媒体信息进行解密。在一些实现中,当包括于编码媒体信息中的标头信息的至少一部分在由安全进程接收到时是非加密的时候,标头信息的至少非加密部分由标头解析器提取以用于发送给软件解码器。例如,安全OS的安全解密器不对所接收的非加密的标头信息进行解密,并且标头解析器可以提取标头信息。
在一些实现中,安全解密器确定经加密的编码媒体信息的哪一部分包括标头信息。例如,安全解密器可以包括标头解析器,其可以至少通过解析编码媒体信息的一个或多个起始代码来确定一个或多个标头的位置。在一些实现中,标头解析器可以至少通过解析已经被解码的编码媒体信息的一部分来确定一个或多个标头的长度。标头解析器可以基于包括在一个或多个标头中的信息(诸如标头类型或所指示的标头大小和/或长度)来确定标头的长度。在一些实现中,标头解析器可以对照已知长度的表格检查标头并且复制直到针对编码格式确定的最高数据量或标头的结尾。
在一些实现中,安全进程还可以接收编码媒体信息的描述,其指示它的编码格式,诸如视频格式、音频格式等。编码媒体信息的描述可以由安全OS的安全解密器使用以验证标头解析器正在根据所接收到的编码媒体信息的描述所指示的编码格式提取信息。编码媒体信息的描述可以被安全地编码并且包括在传递给安全OS的媒体策略数据中。例如,媒体策略数据可以包括于在安全OS处所接收的签署策略证书中。在一些实现中,从包括在签署策略证书中的信息,安全解密器可以选择解密密钥,其可以用于对经加密的编码媒体信息进行解密。
在一些实现中,安全解密器可以解密最高量的加密媒体信息。基于用于编码媒体信息的编码格式,最高数据量可以被设定成要包括标头信息的数据量。例如,最高数据量可以被设定成包括用于如被解密的编码媒体信息的标头信息的数据量,并且不包括编码媒体信息中所包括的非标头信息的至少一部分。在一些实现中,最高数据量可以包括标头信息和编码媒体信息中所包括的其它信息(例如数据)直到最高数据量。在一些实现中,不包括在最高数据量中的编码媒体信息的部分可以包括编码媒体信息的有效载荷部分的一部分或全部。例如,媒体信息可以包括标头信息部分和有效载荷部分(例如切片数据等),并且最高数据量可以防止相当量的有效载荷部分被解密和/或发送给软件解码器。
在图2的230处,将标头信息从安全操作***发送给软件解码器以用于控制解码硬件。软件解码器可以包括在用于应用的进程中。例如,软件解码器可以是加载在作为用于应用的媒体管线的一部分的进程中的组件。在一些实现中,标头信息从编码媒体信息的解密部分被提取并且发送给软件解码器。应用进程的保护可以保护应用进程内的标头信息。例如,应用进程可以包括作为可以为标头提供保护的可信进程的受保护应用进程。在一些实现中,基于安全会话的加密信道(例如经由RC4等)可以利用软件解码器来建立以将信息从安全OS的安全组件传递给软件解码器以便进一步保护信息使其不被偷窃。
在一些实现中,将包括在确定包括标头信息的编码媒体信息的部分中的标头信息发送给软件解码器。例如,标头信息可以包括在经解密的最高数据量中并且通过安全进程发送给软件解码器。在一些实现中,高达最高数据量的媒体信息的解密部分的副本可以从编码媒体信息被提取。在一些实现中,标头解析器可以沿着被解密的标头信息的长度连同标头信息一起传递。例如,解密的标头信息的长度可以作为元数据传递。在一些实现中,安全解密器的标头解析器可以将用于标头信息的媒体类型从安全OS发送到安全OS的软件解码器。在一些实现中,用于编码媒体信息的媒体类型可以包括于签署策略证书中所包括的策略信息中。
在一些实现中,编码媒体信息的非标头信息的至少一部分可以包括在发送给软件解码器的最高数据量中;然而,最高数据量可以设定成使得所泄露的非标头信息(例如切片数据、图片数据等)是不足以渲染媒体(例如视频、图片或其它媒体)的显著部分的信息。通过在安全进程中提取经解密的标头信息以将经解密的标头信息暴露给软件解码器,编码媒体信息的其余加密部分可以通过加密来保护并且不会以非加密形式暴露给软件解码器。利用包括在标头信息中的控制信息,软件解码器可以管理解码功能。然而,软件管理器不能在其存储于安全存储器仓库中时访问媒体信息的所有或者基本上所有的其余非标头部分(例如切片数据等),和/或软件管理器不能够在其被加密时对媒体信息的其余非标头部分进行解密。
在一些实现中,为了将标头信息发送给软件解码器,标头解析器可以从编码媒体信息提取经解密的标头信息,并且然后标头解析器可以将所提取的标头信息置于由应用的软件解码器分配的缓冲器中以用于将标头信息传递给软件解码器。在一些实现中,标头信息可以通过对所提供的缓冲器或存储器中的数据进行覆写而传递给应用进程和/或软件解码器以将编码媒体信息发送给安全OS。例如,在安全OS的安全进程中加载的安全解密器和/或标头解析器可以通过重新使用包括软件解码器的应用进程所分配的缓冲器来将标头信息传递给软件解码器。安全解密器和/或标头解析器可以对缓冲器中的标头信息进行解密,其中经加密的编码媒体信息被提供给安全解密器。在一些实现中,为了连同利用标头信息覆写加密数据一起传递用于解密密钥的密钥索引,安全解密器可以利用密钥索引覆写所提供的缓冲器内的一些其余加密数据。在其它实现中,密钥索引可以使用所建立的安全信道或者传递数据的其它安全方式而从安全OS传递给应用进程。密钥索引可以包括对安全OS所管理的存储器的引用。例如,密钥索引可以引用可由解码硬件使用的安全OS所管理的存储器。
软件解码器可以进行一个或多个帧的标头信息中所包括的一个或多个标头的深入解析。软件解码器可以解析所接收的标头信息以至少提取控制信息。控制信息可以用于***体信息的处理和/或解码。在一些实现中,软件解码器可以使用标头信息以至少用于为解压缩的媒体分配足够的存储器和/或用于对媒体的帧进行排序。在一些实现中,控制信息可以用于控制解码硬件。例如,控制信息可以用于确定可发送到解码硬件以控制解码硬件的解码操作命令。在一些实现中,解码操作命令可以包括一个或多个DXVA解码操作。至少通过将标头信息传递给软件解码器,复杂解码功能性,诸如控制信息的解析和生成,可以保留在应用进程中。
在图2的240处,为解码硬件提供对用于解码的编码媒体信息的访问以产生解码媒体信息。在一些实现中,为解码硬件提供对存储在安全OS的安全存储器中的编码媒体信息的访问。例如,可以为解码硬件安全地提供其中存储编码媒体信息的安全存储器仓库中的位置,并且解码硬件可以访问作为可信组件的安全存储器仓库以检索编码媒体信息。在一些实现中,编码媒体信息非加密地存储在安全存储器仓库中。在另一实现中,编码媒体信息加密地存储在安全OS的安全存储器仓库中。例如,媒体信息有效载荷(例如切片数据等)的非标头信息可以存储在安全存储器中并且随后安全地发送给解码硬件以用于解密和解码。
在一些实现中,至少通过经由安全信道从安全OS安全地提供解密密钥来为解码硬件提供对编码媒体信息的访问,使得解码硬件可以通过对经加密的编码媒体信息进行解密来访问编码媒体信息。例如,安全解密器可以将诸如AEC解密密钥之类的解密密钥传递给应用进程的软件解码器,以通过诸如用于DXVA解码硬件的DXVA解码接口之类的一个或多个硬件驱动器向解码硬件传递。在一些实现中,在建立安全信道时,可以在安全OS与解码硬件之间进行信息交换。例如,DXVA解码接口可以适配成允许建立安全信道以将解密密钥从安全解密器的标头解析器传递到解码硬件。在一些实现中,安全OS可以建立安全信道以鉴别解码硬件。在一些实现中,可以建立到远程硬件的安全链路以从安全OS传递信息。例如,硬件(例如解码硬件或其它硬件)可以远离运行安全OS的计算设备定位,并且远程硬件可以是经由网络环境可访问的。可以从安全OS建立安全链路以经由网络环境向远程硬件传递信息。在一些实现中,安全OS使用所接收的解密密钥对经加密的编码媒体信息进行解密,并且对编码媒体信息进行重新加密,使得重新加密的编码媒体信息可以使用不同的解密密钥被解密。用于对重新加密的编码媒体信息进行解密的解密密钥可以安全地传递给解码硬件以至少为解码硬件提供对已经被重新加密的编码媒体信息的访问。
在另一实现中,至少通过从安全OS的安全密钥仓库安全地提供解密密钥来为解码硬件提供对编码媒体信息的访问。例如,解密密钥存储在安全OS的密钥仓库中,并且用于引用密钥仓库中的解密密钥的密钥索引被发送给硬件解码器并且由其接收。解码硬件可以是可访问安全密钥仓库的可信组件,并且通过使用密钥索引,可以引用解密密钥并且然后将其从安全密钥仓库传递到解码硬件。在一些实现中,解码硬件由安全OS所信任并且作为可信硬件可以由安全OS允许能够对安全OS所控制的安全存储器进行读取和/或写入访问。
用于使用安全OS的受保护媒体信息的解码和策略推行的示例性***
图3是图示了用于使用安全操作***305对受保护的媒体进行解码的示例性计算***300的示意图。在图3中,计算***300包括一个或多个安全操作***,诸如安全OS305。示例性计算***300包括一个或多个应用,诸如应用310。
应用310包括应用进程315。在一些实现中,应用进程315可以包括不可信进程和受保护进程。应用进程315可以包括由应用创建的媒体管线,其可以解码和/或处理媒体信息。媒体管线可以拥有包括在媒体管线中的一个或多个可***组件,并且媒体管线可以至少通过用于处理目的的组件传递信息。在创建用于应用进程的媒体管线的实例时,应用可以针对媒体信息的指定编码格式在进程中加载适当组件。应用进程315的一个或多个组件可以提供要加载到安全OS305中的安全代码以实现安全OS305的安全进程中的对应安全组件。在一些实现中,安全OS可以基于应用进程315中所加载的组件中的一个或多个而在其安全进程中加载适当组件。例如,当在应用进程315中加载组件时,在安全OS305中可以加载代理应用进程315中所加载的组件的安全组件。在一些实现中,应用310可以加载与针对应用的受保护进程中的组件通信的代理组件。例如,应用可以具有包括代理组件的不可信进程,该代理组件代理用于创建媒体管线的可信保护进程中所加载的数字签署的或以其它方式受保护的组件。在一些实现中,当组件被加载到应用的进程和/或受保护进程中时,组件可以被验证为授权和/或受保护的组件。
参照图3,安全OS305可以是本文描述的任何安全OS。在一些实现中,安全OS可以包括加载到安全OS的安全进程中的一个或多个安全组件。安全组件可以利用签署有数字签名的软件代码(例如一个或多个计算机可执行指令)实现。数字签名可以用于证实组件是使用作为安全的而可信任的代码实现的。安全OS305的安全组件可以包括以下中的一个或多个:安全解密器320、标头解析器322、安全输出可信权限326以及硬件管理器328。安全OS305控制安全存储器仓库,诸如安全存储器324。
安全OS305可以具有数字签名,其可以由内容源和/或提供者使用以证实安全OS是可信的以向其发送受保护内容,诸如经加密的编码媒体信息或其它信息。例如,服务器(例如在云中或其它地方)可以是内容提供者,并且服务器可以使用计算***300的安全OS305的数字签名来验证安全OS305是可信的(例如可信客户端)和授权的以接收经加密的编码媒体信息。在一些实现中,加载到安全OS305中的安全组件可以具有数字签名,其可以用于通过用于提供安全OS305内容的内容提供者或源来验证安全OS305的真实性/有效性。
在一些实现中,安全OS305的组件可以具有比应用进程315中的其相应代理组件更低的复杂性。至少通过具有减小的复杂性,可以使得安全组件比旨在规避媒体管线的组件所提供的保护的传统开发技术较不易受攻击。
安全OS305可以是与运行应用310和/或应用进程315的操作***不同的操作***。在一些实现中,安全OS305可以在计算***300的独立处理器(例如CPU)上运行。例如,安全OS305可以在不运行应用进程315的处理器上运行。在一些实现中,安全OS305可以在运行应用进程315的相同处理器上运行,但是安全OS305可以在与应用进程315不同的模式(例如受限制的模式)中运行。
在图3中,安全OS305的安全进程包括安全解密器320。安全解密器320可以是本文描述的任何安全解密器。安全解密器320可以解密经加密的媒体信息。安全解密器320可以解密经加密的媒体信息的全部和/或一部分。例如,安全解密器320可以解密包括在经加密的编码媒体信息中的标头信息直到被设定用于经加密的编码媒体信息的最高数据量。在一些实现中,当包括在编码媒体信息中的标头信息的至少一部分在由安全进程接收时是非加密的时,标头信息的至少非加密部分由标头解析器322提取以用于发送给软件解码器334。安全解密器320可以将信息传递给软件解码器,如在340处所示。在一些实现中,安全解密器320可以以解密形式将标头信息传递给应用进程315的软件解码器334。标头信息可以包括编码媒体信息中所包括的总数据的一小百分比。在一些实现中,经加密的编码媒体信息可以从安全OS305的安全解密器320传递到应用进程315。通过提取标头信息并且将标头信息发送给软件解码器334,软件解码器334以及其与其它组件的交互的复杂性可以维持在用于应用的进程内。
在一些实现中,安全解密器320可以以加密形式(例如AES加密或其它重加密)从内容提供者或源接收编码媒体信息。在由安全解密器320解密之后,经解密的媒体信息可以存储在安全存储器324中。例如,安全解密器320可以具有所分配的安全存储器324的一部分并且安全解密器可以将经解密的编码媒体信息存储到所分配的安全存储器中。安全存储器324可以向所存储的媒体信息提供保护以防止未经授权的访问。在一些实现中,位置指示符(例如安全句柄、密钥、网络***、令牌等)可以指示其中经解密的编码媒体信息存储在安全存储器324中的位置。位置指示符可以安全地传递给解码硬件350或其它可信组件和/或硬件以访问安全存储器324中的编码媒体信息。在一些实现中,安全解密器可以使用媒体类型信息、编码媒体信息或解密密钥中的一个或多个来对编码媒体进行解密以控制和/或鉴别软件解码器344和/或解码硬件350。
在一些实现中,在解密编码媒体信息之后,安全解密器利用不同的加密对编码信息进行加密。例如,编码媒体信息可以以重加密来接收,并且在对重加密的媒体信息解密之后,安全解密器可以使用较轻的加密(例如RC4加密或其它轻加密)来加密媒体信息。轻加密可以在较少影响处理工作量的情况下在输运期间向编码媒体信息提供某种保护。例如,轻加密可以用于防止标头信息的窃听和/或防止数据向监听数据通讯的实体的有意泄露。在一些实现中,可以在解密器与解码器之间进行信号交换以建立用于轻量加密的会话密钥的阵列(例如RC4会话密钥或其它会话密钥)。在一些实现中,在解密编码媒体信息之后,安全解密器可以不利用不同的加密对编码信息进行加密。
在一些实现中,存储经解密的编码媒体信息的所分配的存储器可以被传递给安全OS305的安全进程中所包括的标头解析器322和/或由其访问。标头解析器322可以是本文描述的任何标头解析器。标头解析器322可以确定和/或提取(例如复制等)可以发送到应用进程315的标头信息。在图3中,安全解密器320包括标头解析器322。在一些实现中,可以提供代码片段以合并安全解密器320和标头解析器322的功能性。在另一实现中,标头解析器322可以是与安全OS305的安全进程中的安全解密器320不同的组件。例如,安全解密器320作为组件可以将经解密的编码媒体信息传递给作为另一组件的标头解析器322以用于解析和/或提取。
标头解析器322可以确定编码媒体信息的哪一部分包括标头信息。例如,至少通过解析标头,标头解析器可以确定标头所包含的数据的量。在一些实现中,标头解析器322可以基于编码媒体信息的编码格式而约束所读取和/或传递到软件解码器的数据量。在一些实现中,标头解析器322可以拒绝对于特定编码格式无效的所接收的数据。在标头解析器322定位一个或多个标头之后,然后标头解析器可以将一个或多个标头中至少一个复制到存储器中,直到标头的结尾或者直到基于媒体信息的编码格式所设定的最高数据量。在一些实现中,标头可以至少通过使标头解析器322解析编码媒体信息以寻找包括在标头信息中的一个或多个起始代码而被标识。起始代码可以指示帧的开头和/或结尾所位于的地方。例如,标头解析器322可以解析起始代码并且确定标头数据的量以复制直到最高数据量和/或复制标头数据直到包括切片数据的有效载荷主体部分的开头。媒体信息的非标头部分,诸如切片数据主体部分,可以被传递用于由解码硬件350解码和/或解密。
在一些实现中,对于H.264编码格式,网络抽象层单元(NALU)标头和切片标头可以包括在标头信息中并且被解密为标头信息。对于H.264编码格式,在NALU起始代码之后,下一字节指示标头类型和/或长度。在另一示例中,对于WMV编码格式,在起始代码之后,接下来的字节可以指示数据类型。标头解析器322可以通过标头(例如NALU标头或其它标头)解析以计算切片数据的字节偏移。对于H.264编码格式,切片数据的字节偏移可以少于1024字节的数据。因为切片数据偏移可以被确定为处于1024字节最高数据量内,所以安全解密器可以被适配成不进行解密和/或标头解析器可以被适配成不提取多于最高数据量,因为最高数据量至少包括用于媒体信息的标头信息。
在一些实现中,标头解析器可以允许安全解密器解密直到媒体信息的最高数据量以至少确定包括标头信息的媒体信息的部分。最高数据量可以基于媒体信息的编码格式确定。在一些实现中,标头解析器可以根据格式解析数据以从经解密的编码媒体信息提取标头信息。例如,对于特定编码格式,标头信息可以已知为至少包括在已经使用该特定编码格式编码的数据量内,并且最高量可以设定在该数据量处或者达到该数据量。在提取要发送给软件解码器的标头信息时,标头解析器提取高达针对媒体信息设定的最高量数据。通过对解密的数据的量封顶并且保持一些编码媒体信息处于加密格式,编码媒体信息的加密部分可以受到加密保护。
在一些实现中,标头解析器322和/或安全解密器320可以确定编码媒体信息的格式。例如,标头解析器322和/或安全解密器320可以评估媒体信息流以确定格式,或者标头解析器322和/或安全解密器320可以提取和/或引用针对媒体信息的签署策略证书中所包括的格式信息。在一些实现中,标头解析器322和/或安全解密器320可以基于所接收的对经加密的编码媒体信息进行解密的解密密钥来确定编码媒体信息的编码格式。在一些实现中,安全解密器320可以使用媒体类型信息、编码媒体信息、或者用于解密编码媒体信息的解密密钥中的一个或多个来控制和/或鉴别软件解码器334和/或解码硬件350。在一些实现中,标头解析器322可以适配成与预确定的格式一起使用。例如,标头解析器322可以预期到编码媒体信息是以预确定的格式编码的。
在一些实现中,标头解析器322可以适配成通过基于预测的媒体信息的编码格式检测解析帧被破坏或者以其它方式为未经授权的帧来推行针对媒体信息的保护。例如,标头解析器可以评估帧的大小和/或帧中的起始代码的数目以确定帧是否被破坏和/或是否为未经授权的。
在一些实现中,安全解密器和/或标头解析器不包括用于解析编码媒体信息的有效载荷部分的功能性。例如,标头解析器可以适配用于解密针对标头的解密媒体信息并且确定和/或提取标头信息直到最高数据量,但是不包括用于解析编码媒体信息的有效载荷部分的切片数据的功能性。在一些实现中,安全OS中的安全解密器不包括用于对编码媒体信息的有效载荷部分(例如切片数据等)进行解码的固件或硬件。
参照图3,安全OS305包括可以是本文描述的任何安全存储器的安全存储器324。在一些实现中,安全存储器324可以从计算***的可用存储器中保留和/或分配出来以用于由安全OS305使用。安全OS305可以拥有安全存储器324并且可以防止对安全存储器324的未经授权访问。例如,安全OS305可以通过不从安全存储器324向未经授权的设备、硬件或组件发送信息和/或通过使数据归零来防止对安全存储器324的未经授权访问。安全存储器324可以包括安全密钥仓库。安全密钥仓库可以存储用于可存储媒体信息的存储器的密钥。媒体信息可以以加密和/或编码的格式存储在安全存储器324中。在一些实现中,存储在存储器中的信息是加密的。在一些实现中,安全OS305可以为一个或多个可信组件和/或硬件传递一个或多个密钥(例如解密密钥或其它密钥)和/或用于存储在可信组件和/或硬件可访问的安全存储器中的解密密钥的一个或多个索引。
安全OS305包括安全硬件管理器328。安全硬件管理器328可以是本文描述的任何硬件管理器。安全硬件管理器328加载在安全OS305的安全进程中并且可以分配安全存储器、程序硬件以读取和/或写入到安全存储器,并且向可信硬件分发密钥和/或令牌。
安全OS305可以包括一个或多个安全媒体输出可信权限,诸如安全媒体输出可信权限326。安全媒体输出可信权限326可以是本文描述的任何安全媒体输出可信权限(安全媒体OTA)。从安全OS305,安全媒体OTA326可以推行与媒体信息相关联的输出保护。例如,安全媒体OTA可以基于设定用于媒体信息的输出策略而授权安全存储器324中的媒体信息向可信输出设备和/或位置的输出。在一些实现中,安全媒体OTA326可以限制媒体信息向不可信和/或未经授权的输出设备的输出。在一些实现中,安全媒体OTA可以允许将解码的媒体信息放置到可信组件所拥有的存储器中。例如,安全媒体OTA可以适配成允许要经由网络(例如有线和/或无线网络)存储和/或传输的解码媒体信息的安全代码转换。安全OS中的安全媒体OTA326可以代理和/或监控包括在应用进程315中的一个或多个媒体输出可信权限(诸如媒体OTA338)的行动。在一些实现中,安全媒体OTA326可以检查输出设备的特性以核实应用和/或应用进程不试图将内容重定向到未经授权的输出设备。
应用进程315可以是作为用于计算***300的应用310的媒体管线的部分的进程。计算***300可以包括一个或多个应用,诸如应用310。应用310可以包括一个或多个进程,诸如应用进程315。应用进程315包括用于媒体处理的一个或多个组件。组件可以实现至少解码和/或输出媒体信息的媒体管线的部分。进程315的组件包括输入可信权限330、媒体解密器332、软件解码器334、媒体处理器336和媒体输出可信权限338。应用进程315可以包括渲染器342,其包括媒体输出可信权限338。
应用310包括一个或多个媒体源组件,诸如媒体源344。媒体源344可以将媒体流解复用成各种类型的媒体信息,诸如视频数据和/或音频数据。在一些实现中,安全解复用组件可以用于将所接收的内容安全地划分成多个流。媒体源344可以从字节流组件346接收媒体流,字节流组件346可以执行来自一个或多个计算机可读介质或通信网络的网络和/或读取数据。媒体源344还可以确定用于媒体信息的(多个)编码格式并且向安全OS的进程和/或应用进程的一个或多个组件提供媒体类型,该媒体类型至少指示媒体信息的编码格式。例如,媒体源344可以将从内容提供者所接收的编码媒体信息的编码格式告知媒体管线。媒体信息的编码格式可以用于基于编码格式而加载适当的组件,诸如媒体解密器、标头解析器和软件解码器。在一些实现中,一旦组件基于媒体信息的所报告的媒体类型而加载于应用进程和/或安全OS中,则包括在针对媒体信息的签署策略证书中的格式信息可以用于核实适当的格式被报告以加载组件。
应用进程315包括一个或多个输入可信权限,诸如输入可信权限330,其可以是本文描述的任何输入可信权限(ITA)。在一些实现中,ITA330可以与内容提供者通信以接收可以用于对媒体信息进行解码的信息。在一些实现中,ITA330提供要加载到用于应用进程315的媒体管线中的媒体解密器332。在一些实现中,ITA可以提供用于一个或多个媒体流的媒体解密器组件。例如,当媒体数据被解复用成多于一个媒体流时,ITA可以在相应媒体流中加载一个或多个适当的组件,诸如媒体解密器等。在一些实现中,用于相应的媒体流的内容信息可以包括在被接收用于媒体流的编码媒体信息的签署策略证书中。例如,一个或多个解密密钥可以包括在针对相应的媒体流的签署策略证书中。从包括在签署策略证书中的信息,安全解密器可以选择适当的解密密钥,其可以用于对安全解密器处所接收的经加密的编码媒体信息进行解密。ITA330可以接收诸如加密媒体信息、与加密媒体信息相关联的解密密钥、数字签署的策略证书中的一个或多个之类的信息,或者可以用于媒体处理和/或组件选择的其它信息。例如,可以接收在选择一个或多个软件解码器组件或媒体管线中所包括的其它组件时使用的信息。ITA330可以接收可包括一个或多个策略的描述的签署策略证书,所述策略指示媒体信息和与签署策略证书相关联的其它加密信息的保护和/或授权使用。在一些实现中,签署策略证书可以使用基于加密的数字签名来签署。可以评估数字签名以确定策略信息尚未被破解并且已经在传送期间保护策略。
在一些实现中,ITA330可以核实基于策略而允许和/或授权加载在应用进程315中的组件作为媒体管线的一部分。ITA330可以管理和/或核实由策略针对媒体信息所设定的保护的推行。在一些实现中,用于媒体信息的策略可以包括关于DRM保护的指令,所述DRM保护可以在媒体信息的解码和/或输出期间针对媒体信息推行。在一些实现中,用于媒体信息的策略可以包括关于被授权输出媒体信息的输出设备和/或被授权处理媒体信息的组件的一个或多个功能性、性质、协议或类型的信息。在一些实现中,ITA330可以向诸如媒体输出可信权限338之类的一个或多个输出可信权限传达要由相应的输出可信权限针对媒体信息而应用和推行的输出策略和/或保护。在一些实现中,ITA330可以至少通过检查应用进程的媒体管线中的一个或多个输出可信权限来核实针对媒体信息的签署策略证书中所指定的输出策略的推行。例如,在媒体OTA338允许将解码的媒体信息输出到输出设备之后,媒体OTA338可以向ITA330报告回以指示遵守输出推行策略。
媒体OTA338可以是本文描述的任何媒体输出可信权限(媒体OTA)。应用进程315包括一个或多个媒体输出可信权限,诸如媒体输出可信权限338。作为媒体管线的组件的媒体OTA338可以基于用于媒体信息的策略来管理媒体信息向一个或多个输出设备的输出。例如,媒体OTA338可以推行与媒体信息相关联的输出保护,其由内容源或提供者在一个或多个策略中设定。
计算***300可以包括解码硬件350。解码硬件350可以包括一个或多个解密和/或解码硬件,诸如总线解密硬件(例如DXVA总线解密硬件等)、高级加密标准(AES)硬件、图形处理单元(GPU)等。在一些实现中,可以修改总线以允许向前跳过AES计数器模式以便在安全OS中已经对一个或多个标头解密之后恢复经加密的编码媒体信息中所包括的切片数据和/或其它图片数据的解密。在一些实现中,到缓冲器中的开始偏移可以被传递给解码硬件。在另一实现中,到缓冲器中的开始偏移没有被传递给解码硬件。在一些实现中,不修改AES计数器以允许向前跳过AES计数器模式以便恢复包括在经加密的编码媒体信息中的切片数据的解密。
计算***300可以包括一个或多个合成组件,诸如合成组件352。合成组件352可以由媒体OTA338引导以将解码的媒体信息输出到一个或多个位置或输出设备。计算***可以包括一个或多个输出设备,诸如输出设备356。输出设备356可以输出用于显示的解码媒体信息。
部分地通过使用安全操作***发送所存储的编码媒体信息的受保护媒体信息的示例性解码
图4是图示了部分地通过使用安全操作***发送所存储的编码媒体信息来解码媒体信息的图。在图4中,在405处,应用进程410发送要在安全OS415处接收的经加密的编码媒体信息。在420处,应用进程410发送在安全OS415处接收的解密密钥420。在425处,使用解密密钥来对经加密的编码媒体信息进行解密。在一些实现中,包括在编码媒体信息中的标头信息的至少一部分在由安全OS415接收时是非加密的,并且使用解密密钥对编码媒体信息的加密部分进行解密。在430处,已经解密的编码媒体信息被存储在安全OS415的安全存储器中。在435处,安全OS415从编码媒体信息提取经解密的标头信息,并且发送要在应用进程410的软件解码器处接收的标头信息。在440处,安全OS415将经解密的编码媒体信息在安全存储器中存储的位置发送给应用进程410的软件解码器,以转发给解码硬件450。在455处,应用进程410将安全存储器中的编码媒体信息的位置转发给解码硬件450。另外,在460处,应用进程410的软件解码器使用所接收的标头信息中的控制信息来生成一个或多个解码操作命令并且将解码操作命令发送给解码硬件450。在465处,存储在安全存储器中的编码媒体信息由可信解码硬件450使用位置信息来访问,并且安全OS415发送经解密的编码媒体信息以由解码硬件450接收。在470处,解码硬件450至少使用一个或多个所接收的解码操作命令来对编码媒体信息进行解码以产生解码媒体信息。
部分地通过使用安全操作***将解密密钥安全地发送到解码硬件的受保护媒体信息的示例性解码
图5是图示了部分地通过使用安全操作***将解密密钥安全地发送给解码硬件来对经加密的编码媒体信息进行解码的图。在图5中,在505处,应用进程510将存储在应用进程510处的经加密的编码媒体信息的副本发送给安全OS515。在520处,应用进程510发送在安全OS515处接收的解密密钥。在525处,使用解密密钥至少对经加密的编码媒体信息中所包括的标头信息进行解密。在530处,安全OS515提取编码媒体信息中所包括的经解密的标头信息并且将它发送到应用进程510的软件解码器。在535处,安全OS515通过安全信道将解密密钥发送给应用进程510的软件解码器,以便转发给解码硬件550。在540处,应用进程510的软件解码器将解密密钥转发给解码硬件550。在545处,应用进程510将经加密的编码媒体信息的副本发送给解码硬件550。在一些实现中,经加密的编码媒体信息的副本可以通过应用进程510从安全OS515发送到解码硬件550。在图5中,在555处,解码硬件550使用所接收的解密密钥对经加密的所接收的编码媒体信息解密以访问处于解密的形式的编码媒体信息。在560处,应用进程510使用所接收的经解密的标头信息来生成解码操作命令并且将解码操作命令发送给解码硬件550。在565处,解码硬件部分地使用所接收的解码操作命令对经解密的编码媒体信息进行解码以产生解码媒体信息。
部分地通过使用安全操作***将所存储的解密密钥安全地发送给解码硬件的受保护媒体信息的示例性解码
图6是图示了部分地通过使用安全操作***向解码硬件安全地发送安全存储的解密密钥对经加密的编码媒体信息进行解码的图。在图6中,在605处,应用进程610将经加密的编码媒体信息发送给安全OS615。在620处,应用进程610发送在安全OS615处接收的解密密钥。在625处,使用解密密钥至少对经加密的编码媒体信息中所包括的标头信息进行解密。在一些实现中,包括在编码媒体信息中的标头信息的至少一部分在由安全OS615接收时是非加密的并且在安全OS处没有被解密。在630处,将解密密钥存储在安全OS615的安全存储器中。在635处,安全OS615从经编码的媒体信息提取经解密的标头信息并且将它发送给应用进程610的软件解码器。在645处,安全OS615将用于对经加密的编码媒体信息进行解密的解密密钥的索引发送给应用进程610,以便转发给解码硬件640。用于解密密钥的索引可以用于引用安全OS615的安全密钥仓库中的解密密钥。在660处,应用进程610将解密密钥的索引发送给解码硬件640。另外,在650处,应用进程610的软件解码器使用所接收的标头信息中的控制信息来生成一个或多个解码操作命令并且将解码操作命令发送给解码硬件640。在655处,应用进程610将经加密的编码媒体信息的副本发送给解码硬件640。在一些实现中,经加密的编码媒体信息的副本可以通过应用进程610从安全OS615发送到解码硬件640。在665处,存储在安全OS的安全密钥仓库中的解密密钥由可信解码硬件640使用解密密钥的索引(即密钥索引)被访问,并且安全OS615将解密密钥发送给解码硬件640。在670处,解码硬件640使用所接收的解密密钥对经加密的编码媒体信息进行解密以访问编码媒体信息。在675处,解码硬件640至少使用所接收的解码操作命令中的一个或多个来对编码媒体信息进行解码以产生解码的媒体信息。
部分地通过使用安全操作***安全地发送安全存储的解密密钥和安全存储的媒体信息的示例性解码
图7是图示了部分地通过使用安全操作***向解码硬件安全地发送安全存储的解密密钥和安全存储的经加密的编码媒体信息来对经加密的编码媒体信息进行解码的图。在图7中,在700处,应用进程710将经加密的编码媒体信息发送到安全OS715。在705处,将经加密的编码媒体信息存储在安全OS715的安全存储器中。在720处,应用进程710发送在安全OS715处接收的解密密钥。在725处,使用解密密钥至少对经加密的编码媒体信息中所包括的标头信息进行解密。在一些实现中,编码媒体信息中所包括的标头信息的至少一部分在由安全OS615接收时是非加密的并且不在安全OS处被解密。在735处,解密密钥存储在安全OS715的安全存储器中。在730处,应用进程710发送在安全OS715处接收的签署策略证书。在一些实现中,签署策略证书可以包括解密密钥和/或关于与媒体信息相关联的编解码器的信息。在740处,安全OS715从编码媒体信息至少提取经解密的标头信息并且将它发送给应用进程710的软件解码器。
在745处,安全OS715将用于对经加密的编码媒体信息解密的解密密钥的索引发送给应用进程710,以便转发给解码硬件750。解密密钥的索引可以用于引用安全OS715的安全密钥仓库中的解密密钥。在755处,应用进程710将解密密钥的索引发送给解码硬件750。另外,在760处,应用进程710的软件解码器使用所接收的标头信息中的控制信息来生成一个或多个解码操作命令并且将解码操作命令发送给解码硬件750。
在765处,安全OS715将经解密的编码媒体信息在安全存储器中存储的位置发送给应用进程710的软件解码器,以便转发给解码硬件750。在770处,应用进程710将安全存储器中的编码媒体信息的位置发送给解码硬件750。在775处,存储在安全存储器中的经加密的编码媒体信息由可信解码硬件750使用位置信息来访问,并且安全OS715将经加密的编码媒体信息发送给解码硬件750。在780处,存储在安全OS的安全密钥仓库中的解密密钥由可信解码硬件750使用用于解密密钥的索引(即密钥索引)来访问,并且安全OS715将解密密钥发送给解码硬件750。在785处,解码硬件750使用所接收的解码密钥对经加密的编码媒体信息解密以访问编码媒体信息。在790处,解码硬件750至少使用所接收的解码操作命令中的一个或多个来对编码媒体信息解码以产生解码的媒体信息。
至少通过使用安全操作***将标头信息发送给软件解码器并且为解码硬件安全地提供解密密钥来促进受保护编码媒体信息的解码的示例性方法
图8是图示了用于将标头信息发送给软件解码器并且从安全操作***为解码硬件安全地提供解密密钥以促进编码媒体信息的解密和解码的示例性方法800的流程图。在图8中,在810处,解密密钥和经加密的编码媒体信息在安全操作***的安全进程处被接收。例如,应用进程的ITA可以将经加密的编码媒体信息和解密密钥发送给安全OS的安全进程中所加载的安全解密器。在一些实现中,编码媒体信息中所包括的标头信息的至少一部分在安全解密器处从ITA接收时是非加密的。
在820处,通过安全进程,包括在编码媒体信息中的标头信息使用解密密钥被解密。例如,在安全OS的安全进程中所加载的安全解密器解密标头信息直到经加密的编码媒体信息的最高数据量。在一些实现中,标头信息可以包括编码媒体信息中所包括的总体数据的小的量。在一些实现中,当编码媒体信息中所包括的标头信息的至少一部分在由安全进程接收时是非加密的时,至少标头信息的非加密部分可以由标头解析器来提取以用于发送给软件解码器。在一些实现中,安全解密器可以接收解密密钥,其可以用于对经加密的编码媒体信息进行解密。在一些实现中,从签署策略证书中所包括的信息,安全解密器可以选择解密密钥,其可以用于对经加密的编码媒体信息进行解密。
在830处,标头信息从安全操作***发送到软件解码器以用于控制解码硬件。在一些实现中,软件解码器包括在应用的进程中。例如,安全OS中所包括的标头解析器可以提取高达包括标头信息的最高数据量。标头解析器可以从安全OS将高达最高数据量的所提取的信息发送给应用进程中所包括的软件解码器。
在840处,从安全操作***将解密密钥安全地提供给解码硬件以促进经加密的编码媒体信息的解密并且促进经解密的编码媒体信息的解码以便产生解码的媒体信息。例如,解密密钥可以使用安全信道提供给解码硬件,或者解码硬件可以使用安全传递的解密密钥索引来从安全密钥仓库接收解密密钥。解码硬件可以使用解密密钥来解密经加密的编码媒体信息,使得解码硬件能够访问解密形式的编码媒体信息以进行解码。在一些实现中,安全OS使用所接收的解密密钥来对经加密的编码媒体信息解密并且对编码媒体信息重新加密,使得重新加密的编码媒体信息可以使用不同的解密密钥被解密。用于解密重新加密的编码媒体信息的解密密钥可以安全地传递给解码硬件以至少为解码硬件提供对已经重新加密的编码媒体信息的访问。
至少通过使用安全操作***将标头信息发送给软件解码器并且为解码硬件安全地提供解密密钥来促进受保护编码媒体信息的解码的示例性***
图9是图示了用于将标头信息发送给软件解码器920并且从安全操作***935为解码硬件910安全地提供解密密钥915以促进经加密的编码媒体信息925的解密和解码的示例性计算***900的示意图。在图9中,在940处,在安全操作***935的安全进程930处接收经加密的编码媒体信息925和解密密钥915。安全进程930使用解密密钥915来至少解密包括在经加密的编码媒体信息925中的高达最高数据量的标头信息。在一些实现中,包括在编码媒体信息中的标头信息的至少一部分可以在由安全进程接收时是非加密的,并且至少标头信息的非加密部分可以由标头解析器来提取以用于发送给软件解码器920。在945处,标头信息950从安全操作***935发送到软件解码器920以用于至少控制解码硬件910。软件解码器920可以使用包括在标头信息950中的控制信息以至少用于控制解码硬件910。在960处,软件解码器至少通过将一个或多个解码操作命令发送给解码硬件来控制解码硬件。软件解码器920包括在应用975的应用进程970中。在980处,解密密钥915从安全操作***935安全地提供到解码硬件910以促进经加密的编码媒体信息925的解密并且促进经解密的编码媒体信息的解码以便产生解码的媒体信息990。
用于至少通过使用安全操作***将标头信息发送给软件解码器并且为解码硬件安全地提供对编码媒体信息的访问来对至少部分地被加密的编码媒体信息进行解码的示例性方法
图10是用于至少通过使用安全OS将标头信息发送给软件解码器并且为解码硬件安全地提供对编码媒体信息的访问来对至少部分地加密的编码媒体信息进行解码的示例性方法1000的流程图。在图10中,在1010处,在计算***的安全操作***的安全进程处接收至少部分地加密的编码媒体信息。编码媒体信息可以包括没有被加密的标头信息。例如,可以接收编码媒体信息,其包括诸如是非加密的一个或多个标头之类的标头信息,并且可以对包括切片数据的所接收的编码媒体信息的部分进行加密。在一些实现中,安全进程可以接收其它信息,诸如签署策略证书、解密密钥、媒体类型等中的一个或多个。
在1020处,将标头信息发送给软件解码器以用于控制解码硬件。例如,安全OS的安全进程的标头解析器可以提取非加密的标头信息并且将标头信息发送给软件解码器。在一些实现中,标头信息连同媒体类型一起从安全进程发送到软件解码器。在一些实现中,信息可以安全地发送到软件解码器以便安全地传递(例如经由安全信道)给一个或多个解码硬件。安全传递的信息可以包括以下中的一个或多个:引用解密密钥的密钥索引、编码媒体信息的加密部分、解密密钥、或者经解密的编码媒体信息在安全OS的安全存储器中存储的位置。在一些实现中,从安全进程发送到软件解码器的信息,诸如标头信息和/或媒体类型,可以在发送到软件解码器之前在安全进程处被加密。
编码媒体信息的加密部分可以通过以其加密形式维持加密部分而受到安全OS的保护。在一些实现中,安全OS使用第一解密密钥对编码媒体信息的加密部分解密,并且至少对编码媒体信息的解密部分重新加密,使得可以使用第二解密密钥来解密该部分。在一些实现中,编码媒体信息的加密部分可以通过对加密部分进行解密并且至少将经解密的编码媒体信息的部分存储在安全存储器中而受到安全OS的保护。在一些实施例中,所接收的编码媒体信息可以至少部分加密地或者至少部分非加密地存储在安全OS的安全存储器中。
在1030处,为解码硬件安全地提供至少对至少部分地被加密的编码媒体信息的加密部分的访问以产生解码的媒体信息。例如,解码硬件可以至少通过对编码媒体信息的加密部分进行解密来访问编码媒体信息的加密部分。在一些实现中,可以为解码硬件安全地传递解密密钥以对加密部分进行解密。在一些实现中,解密密钥可以从安全OS的安全密钥仓库被传递,或者解密密钥可以通过安全信道从安全OS传递到解码硬件。在一些实现中,经加密的编码媒体信息的部分可以在安全进程处被解密并且存储在安全存储器中,所述安全存储器可以由解码硬件访问以为解码硬件给出对在由安全进程接收时为加密的编码媒体信息的部分的访问。在一些实现中,至少编码媒体信息的加密部分可以存储在由可信解码硬件可访问的安全OS的安全存储器中。在一些实现中,可以为解码硬件安全地提供其中编码媒体信息以至少部分地加密的形式或以至少部分地非加密的形式在安全存储器中所位于的位置。
至少通过为解码硬件安全地提供解密密钥并且从安全解密器发送标头信息的副本以用于发送解码操作命令来促进编码媒体信息的解码的示例性方法
图11是用于发送标头信息的副本并且为解码硬件安全地提供解密密钥以促进经加密的编码媒体信息的解密和解码的示例性方法1100的流程图。在图11中,在1110处,在包括于安全操作***的安全进程中的安全解密器处接收经加密的编码媒体信息和解密密钥。
在1120处,至少包括在经加密的编码媒体信息中的标头信息由安全解密器使用解密密钥来解密。标头信息可以包括编码媒体信息中所包括的总体数据的一小百分比。在一些实现中,编码媒体信息中所包括的标头信息的至少一部分在由安全进程接收时是非加密的,并且至少标头信息的非加密部分的副本可以由标头解析器提取以用于从安全OS发送到软件解码器。
在1130处,至少标头信息的副本从安全解密器发送到软件解码器以用于基于标头信息将一个或多个解码操作命令发送给解码硬件。软件解码器包括在用于实现媒体管线的应用的进程中。
软件解码器可以解析包括在标头信息中的控制信息。足够的标头数据可以暴露用于软件解码器以促进媒体管线对接和时序功能。在一些实现中,可以使用控制信息来确定媒体的宽度、媒体的高度、媒体的帧组织、为了处理媒体信息应当分配多少存储器等。
在一些实现中,控制信息可以包括关于媒体的信息,诸如图片组织、分辨率、编码结构(例如渐进的、交错的等)、切片数目、压缩方法(例如编码格式)或者媒体的大小。在一些实现中,软件可以使用控制信息来分配存储器、管理存储器、排序帧等。
控制信息可以用于生成一个或多个解码操作命令。解码操作命令可以包括用于控制解码引擎/硬件的指令。在一些实现中,解码操作命令被推送到用于解码硬件的工作队列中以控制解码硬件。在一些实现中,软件解码器可以与其它组件通信以控制解码。
在1140处,从安全操作***为解码硬件安全地提供解密密钥以促进经加密的编码媒体信息的解密以便产生经解密的编码媒体信息并且通过执行一个或多个解码操作命令中的至少一个来促进经解密的编码媒体信息的解码。
至少通过为解码硬件安全地提供解密密钥并且从安全解密器发送标头信息的副本以用于发送解码操作命令来促进编码媒体信息的解码的示例性***
图12是图示了用于使用安全操作***1204解码和/或输出受保护媒体的示例性计算***1200的示意图。计算***1200包括一个或多个安全操作***,诸如安全OS1204。计算***包括一个或多个输出设备,诸如输出设备1206。计算***1200包括解码硬件1208和一个或多个应用,诸如应用1210。
应用1210使用一个或多个应用进程来实现媒体管线。应用1210使用受保护的应用进程1214和不可信进程。应用1210的不可信进程可以包括和/或实现字节流组件1276,其可以从一个或多个计算机可读介质读取数据和/或执行网络操作。应用1210的不可信进程可以包括媒体源组件1236。媒体源组件1236可以将所接收的媒体数据解复用成不同流。媒体源组件1236可以具有受保护应用进程1214中的媒体源代理组件1226。应用1210的不可信进程可以包括一个或多个代理组件1220,其代理作为可信进程的受保护应用进程1214中的一个或多个组件。
受保护应用进程1214实现可以处理媒体信息的媒体管线的一部分。例如,媒体管线包含控制组件,诸如一个或多个输入可信权限和一个或多个输出可信权限。媒体管线可以包括一个或多个处理组件,诸如媒体解密器1224、软件解码器1270、渲染器1238、媒体处理器1230或其它处理组件。例如,通过渲染器,媒体信息可以发送给合成组件1294以用于在将媒体信息输出到一个或多个输出设备和/或位置之前进行合成。
在创建媒体管线时,应用1210可以部分地基于媒体信息的指定编码格式来在进程中加载一个或多个经核实的组件。基于受保护应用进程1214中所加载的一个或多个签署组件,安全OS1204可以在安全OS1204的安全进程中加载适当安全组件。例如,当组件加载在受保护应用进程1214中时,安全组件可以加载在安全OS1204中,其可以是加载在受保护应用进程1214中的经核实的组件的安全代理。由应用1210加载在不可信进程中的代理组件1220是针对应用1210的受保护应用进程1214中的经核实的组件的代理组件。
包括在受保护应用进程1214中的经核实的组件可以是数字地签署的或者以其它方式受保护的,使得组件可以用于创建针对应用1210的媒体管线。经核实的组件可以被核实和/或验证为将加载到受保护应用进程1214中的授权和/或受保护的组件。例如,组件可以被签署为可信组件,并且组件的签名可以用于在将组件加载到受保护应用进程1214中之前将组件核实为可信组件。在一些实现中,一个或多个软件模糊技术可以用于增加受保护应用进程1214的环境中的经核实组件的安全性。
受保护应用进程1214可以包括一个或多个输入可信权限,诸如输入可信权限1222。输入可信权限(ITA)1222从内容源接收内容。所接收的内容可以包括信息,诸如一个或多个签署策略证书、解密密钥和媒体信息。在图12中,在1246处,输入可信权限1222通过安全信道将签署策略证书1240、解密密钥1242和媒体信息1244发送给安全OS1204的安全解密器1250。内容可以通过受保护应用进程1214中所加载的媒体解密器1224而发送到安全解密器1250。媒体解密器1224可以是安全OS1204中的安全解密器1250在受保护应用进程1214中的代理组件。安全解密器1250可以是本文描述的任何安全解密器。安全解密器1250包括标头解析器1252。标头解析器1252可以是本文描述的任何标头解析器。
在图12中,使用解密密钥1242,安全解密器1250对包括标头信息1260的经加密的编码媒体信息1244的部分进行解密。标头解析器1252从经解密的编码媒体信息提取标头信息1260的副本直到最高数据量。在一些实现中,包括在编码媒体信息中的标头信息的至少一部分可以在由安全进程接收时是非加密的,并且至少标头信息的非加密部分可以由标头解析器1252提取以用于发送给软件解码器1270。安全解析器1250将经加密的编码媒体信息1244存储在安全OS1204的安全存储器1256中。另外,安全解密器1250将解密密钥存储在安全OS1204的安全密钥仓库1254中。
在1262处,标头解析器将标头信息1260发送给软件解码器1270。在1266处,安全解密器发送存储在安全密钥仓库1254中的解密密钥1242的索引1264,其可以用于引用和/或访问安全密钥仓库1254中的解密密钥1242。在1266处,安全解密器1250通过安全信道安全地将解密密钥1242的索引1264发送给软件解码器1270。软件解码器1270可以是本文描述的任何软件解码器。在1268处,软件解码器1270通过安全信道将所接收的解密密钥的索引1264安全地发送给解码硬件1208。软件解码器1270针对控制信息解析所接收的标头信息1260并且使用控制信息来生成一个或多个解码操作命令1272。在1274处,将一个或多个解码操作命令1272发送给解码硬件1208以控制解码硬件1208来解码经加密的编码媒体信息1244的至少一部分。
在1278处,解密硬件1208使用解密密钥1242的索引1264来从安全OS1204的安全密钥仓库1254检索解密密钥1242。如1280处所示,作为可信硬件的解密硬件1208可以与安全OS1204通信以发送和/或接收信息。解码硬件与安全OS1204通信以检索存储在安全存储器1256中的经加密的编码媒体信息1244。解码硬件1208使用解密密钥1242来对经加密的编码媒体信息1244解密并且然后解码媒体信息以产生解码的媒体信息1282。解码的媒体信息1282从解码硬件1208发送到安全存储器1256以便存储。在一些实现中,解码硬件基于与媒体信息相关联的一个或多个策略而请求将输出的解码媒体信息分配给硬件保护的存储器,诸如安全OS1204的安全存储器1256。例如,解码硬件1208可以检测用于媒体信息的媒体类型,并且可以响应于检测而根据用于媒体信息的策略来请求将输出表面分配在安全OS的安全存储器中。在一些实现中,ITA1222可以利用元数据标记来标记媒体信息的媒体类型,所述元数据标记指示输出保护的水平。在一些实现中,媒体解密器1224可以由ITA1222加载并且可以使用安全信道来使解码硬件解码到受保护的存储器。如果对媒体信息的保护指示解码媒体信息要被解码到安全OS的安全存储器并且解码硬件没有将输出表面分配给安全存储器,则解码可以暂停。在一些实现中,所产生的解码媒体信息1282可以由解码硬件基于针对媒体信息的保护策略而分配给软件保护的存储器。
受保护应用进程1214可以包括一个或多个媒体处理器,诸如媒体处理器1230,以用于在媒体信息已经被解码之后对它进行处理。媒体处理器1230可以是本文描述的任何媒体处理器。媒体处理器1230可以是可信组件,其是可***的并且加载在受保护应用进程1214中,可以为受保护应用进程1214给出对存储在安全存储器1256中的解码媒体信息1282的访问。
在图12中,在1284处,由媒体处理器1230检索解码的媒体信息1282以用于处理。媒体处理器1230将经处理的媒体信息1286写入到安全存储器1256中以进行存储。例如,媒体处理器1230可以分配硬件保护的存储器并且可以将输出的经处理的媒体信息1286写入到所分配的存储器。
媒体处理器可以包括视频处理器、音频处理器、媒体过滤器、媒体变换等中的一个或多个。例如,受保护应用进程1214可以具有视频处理器以作为可以处理(例如修改或改变)解码视频信息的媒体处理器组件。视频处理器可以转换媒体信息的大小和/或颜色空间。
为了维持解码媒体信息1282的安全性,当媒体处理器1230检测到媒体信息是从安全OS1204的安全存储器1256接收的时,媒体处理器1230可以将经处理的媒体信息1286写入到安全OS1204的安全存储器1256中,如在1288处所示。作为可信组件,媒体处理器1230可以通过安全OS1204而被给予对存储在安全存储器1256中的解码媒体信息1282的访问。可以为媒体处理器1230提供安全存储器1256中的解码媒体信息1282的位置以及用于对安全存储器1256进行读取和写入的访问。
在媒体信息被解码并且存储在安全存储器1256中之后,媒体输出可信权限1234可以管理媒体信息的输出。媒体输出可信权限1234可以是本文描述的任何媒体输出可信权限(媒体OTA)。媒体OTA1234可以基于用于媒体信息的策略来管理媒体信息向一个或多个输出设备的输出。例如,媒体OTA1234可以推行与媒体信息相关联的输出保护,其由内容源或提供者在一个或多个策略中设定。在应用1210的进程中所处理的媒体信息可以具有相关联的策略,其指示媒体信息可以输出到一个或多个授权类型的输出设备。媒体OTA1234可以设立用于和/或连接到诸如监控器或其它输入设备之类的授权输出设备,并且媒体OTA1234可以授权媒体信息向授权输出设备的输出。如果输出设备不是授权输出设备,则媒体OTA1234可以防止将媒体信息输出到该设备和/或可以通过使媒体信息的输出模糊而推行保护。
媒体OTA1234从受保护应用进程1214中所加载的ITA1222接收策略。在一些实现中,媒体OTA1234可以向ITA1222报告媒体信息的输出符合从ITA1222所接收的策略。在一些实现中,媒体OTA1234可以向合成组件1294指示授权将媒体信息发送出到诸如输出设备1206之类的输出设备。在由媒体OTA1234授权之后,合成组件1294可以将媒体信息输出到输出设备1206。
媒体OTA1234向安全媒体输出可信权限1258提供输出管理信息。安全媒体输出可信权限1258可以是本文描述的任何安全媒体输出可信权限(安全媒体OTA)。安全媒体OTA1258可以推行与媒体信息相关联的输出保护。例如,安全媒体OTA1258可以基于针对媒体信息设定的输出策略而授权将安全存储器中的媒体信息(例如视频、音频或其它媒体信息)输出到可信输出设备和/或位置。在一些实现中,安全媒体OTA1258可以评估并且核实由受保护应用进程1214的媒体OTA1234授权的输出遵守从内容源所接收的策略。在一些实现中,安全媒体OTA可以限制媒体信息向不可信和/或未经授权输出设备输出。例如,安全媒体OTA1258可以防止未经授权和/或不可信输出设备从安全OS的安全存储器读取媒体信息。安全媒体OTA1258可以通过使媒体信息模糊来防止未经授权的输出设备输出媒体信息。例如,媒体信息可以被扰乱、无声、中断、或以其它方式被模糊。在一些实现中,安全媒体OTA1258可以使用视频叠层以用于推行针对媒体信息的输出保护。例如,视频叠层可以包括显示元件,其能够访问和/或被允许从安全存储器读取媒体信息以用于显示目的,但是被限制将媒体信息用于其它目的。
在图12中的1290处,用于媒体信息的保护策略从媒体OTA1234安全地传递到如由签署策略证书1240所签署的安全媒体OTA1258。例如,数字地签署的策略证书1240可以使用加密来签署包括用于媒体信息的保护策略的二进制对象(blob)。包括策略的数字签署的二进制对象可以通过媒体OTA1234从ITA1222安全地传递到安全媒体OTA1258。ITA1222可以从内容源或提供者接收数字签署的二进制对象。由媒体输出可信权限1234通过安全信道将签署策略证书1240和策略提供给安全媒体输出可信权限1258。可以检查签署策略证书1240以核实其相关联的策略在策略从内容源的传送期间尚未改变或被篡改。在一些实现中,如果签署策略证书被检查并且无效,则与签署策略证书相关联的策略可以被确定为破解的和/或未经授权使用的。在一些实现中,安全媒体OTA1258可以解密数字签署的二进制对象以确定由内容提供者针对媒体信息所设定的策略。数字签署的二进制对象可以使用诸如重加密或轻加密之类的加密来维持其信息内容的安全性。在一些实现中,如果没有接收到签署策略证书,或者如果签署策略证书二进制对象已经被篡改,则安全媒体OTA1258可以确定媒体OTA1234与媒体信息的输出保护不相容。响应于确定媒体OTA1234是不相容的,安全媒体OTA1258可以防止媒体信息输出到由媒体OTA1234所报告和/或授权的一个或多个输出设备。
安全媒体OTA1258至少监控媒体输出可信权限1234与用于保护媒体信息的输出策略相容。例如,安全媒体OTA1258可以至少通过比较数字签署的策略与从媒体OTA所接收的输出管理信息来确定用于保护媒体信息的策略是否由媒体OTA1234所遵从。由安全媒体OTA1258接收的输出管理信息可以指示关于媒体OTA1234已经授权哪些输出设备输出媒体信息的信息。例如,媒体OTA1234可以传递关于媒体信息要输出到哪些输出设备和/或位置的信息,并且安全媒体OTA1258可以核实根据签署保护策略授权所引用的输出设备和/或位置输出媒体信息。
在一些实现中,为了保护解码媒体信息,安全媒体OTA1258可以通过一个或多个媒体输出可信权限来监控媒体信息要输出到的输出设备的数目。如果输出设备的数目与用于媒体信息的策略相容,则安全媒体OTA1258可以防止将媒体信息输出到一个或多个所指示的输出设备。
在一些实现中,安全媒体OTA1258可以与安全解密器1250通信。安全媒体OTA1258可以接收针对安全存储器1256中所存储的数据的密钥或访问。一旦接收到,安全媒体OTA1258可以向授权输出设备和/或位置提供针对所存储的数据的密钥和/或访问。例如,安全媒体OTA1258可以使用从安全解密器所得到的安全密钥来管理媒体信息的输出,所述安全密钥允许对安全存储器1256中的媒体信息(例如表面信息等)的访问。
用于使用安全操作***保护媒体信息的输出策略的示例性推行
图13是图示用于使用安全OS保护媒体信息的输出策略的推行的图。在图13中,在1305处,应用进程1310将签署策略证书(以及可选地经加密的编码媒体信息)发送给安全OS1315。在1320处,应用进程1310将输出管理信息发送给安全OS1315。输出管理信息可以包括关于应用进程的媒体OTA已经授权哪些输出设备和/或位置输出解码媒体信息的信息。在1325处,应用进程1310发送在安全OS1315处接收的解密密钥。在1330处,解密密钥由安全OS1315的安全OTA用来解密签署策略证书以用于核实。在1335处,安全OS1315的安全媒体OTA将输出管理信息与输出策略相比较以确定应用进程1310的媒体OTA是否与媒体信息的输出策略相容。在1340处,安全媒体OTA基于相容性检查来推行输出策略。例如,如果安全媒体OTA确定媒体OTA与输出策略相容,则可以允许由输出管理信息所引用的一个或多个输出设备1350通过安全OS1315的安全媒体OTA对媒体信息的访问,如在1345处所示。如果安全媒体OTA确定媒体OTA不与输出策略相容,则可以拒绝由输出管理信息引用的输出设备通过安全OS1315的安全媒体OTA对媒体信息的访问。
示例性实现环境
图14图示了其中可以实现所描述的实施例、技巧和技术的适当实现环境1400的一般化示例。
在示例环境1400中,通过云1400提供各种类型服务(例如计算服务)。例如,云1410可以包括可能集中地或分布地定位的计算设备的集合,其向经由诸如互联网之类的网络连接的各种类型用户和设备提供基于云的服务。实现环境1400可以以不同方式使用以完成计算任务。例如,一些任务(例如处理用户输入和呈现用户接口)可以在本地计算设备(例如所连接的设备1430,1440,1450)上执行,而其它任务(例如要在随后的处理中使用的数据的存储)可以在云1410中执行。
在示例环境1400中,云1410为诸如所连接的设备1430,1440,1450之类的具有各种屏幕能力的所连接的计算设备提供服务。所连接的设备1430表示具有计算机屏幕1435(例如中型屏幕)的设备。例如,所连接的设备1430可以是个人计算机,诸如台式计算机、膝上型电脑、笔记本、上网本等。所连接的设备1440表示具有移动设备屏幕1445(例如小型屏幕)的设备。例如,所连接的设备1440可以是移动电话、智能电话、个人数字助理、平板计算机等。所连接的设备1450表示具有大屏幕1455的设备。例如,所连接的设备1450可以是电视屏幕(例如智能电视)或连接到电视的另一设备(例如机顶盒或游戏控制台)等。所连接的设备1430,1440和1450中的一个或多个可以包括触摸屏能力。触摸屏可以以不同方式接受输入。例如,电容式触摸屏在物体(例如指尖或触笔)干扰或打断跨表面运行的电流时检测到触摸输入。作为另一示例,触摸屏可以使用光学传感器来在来自光学传感器的射束被打断时检测到触摸输入。与屏幕表面的物理接触对于要由一些触摸屏检测的输入而言不是必要的。没有屏幕能力的设备也可以在示例环境1400中使用。例如,云1410可以为没有显示器的一个或多个计算机(例如服务器计算机)提供服务。
可以由云1410通过服务提供者1420或者通过在线服务的其它提供者(未描绘)来提供服务。例如,云服务可以针对特定所连接的设备(例如所连接的设备1430,1440,1450)的屏幕尺寸、显示能力和/或触摸屏能力来定制。内容可以由云1410通过一个或多个内容源和/或提供者1424来提供。
在示例环境1400中,云1410可以至少部分地使用服务提供者1420来向各种所连接的设备1430,1440,1450提供本文描述的一个或多个技术和解决方案。例如,服务提供者1420可以提供用于各种基于云的服务的集中式解决方案。服务提供者1420可以管理用于用户和/或设备(例如,针对所连接的设备1430,1440,1450和/或其相应用户)的服务订阅。云1410可以提供一个或多个资源,以用于实现本文描述的一个或多个技术,诸如用于使用安全OS促进受保护媒体信息的解码,如1465处所示。
示例计算环境
图15描绘了其中可以实现所描述的创新的适当计算环境1500的一般化示例。计算环境1500不意图建议关于使用或功能性的范围的任何限制,因为创新可以在多种通用或专用计算***中实现。例如,计算环境1500可以是各种计算设备(例如桌上型计算机、膝上型计算机、服务器计算机、平板计算机、媒体播放器、游戏***、移动设备等)中的任何计算设备。
参照图15,计算环境1500包括一个或多个处理单元1510,1515和存储器1520,1525。在图15中,该基本配置1530包括在虚线内。处理单元1510,1515执行计算机可执行指令。处理单元可以是通用中央处理单元(CPU)、专用集成电路(ASIC)中的处理器或者任何其它类型的处理器。在多处理***中,多个处理单元执行计算机可执行指令以增加处理能力。例如,图15示出中央处理单元1510以及图形处理单元或协同处理单元1515。有形存储器1520,1525可以是易失性存储器(例如寄存器、缓存器、RAM)、非易失性存储器(例如ROM、EEPROM、闪速存储器等)或者两者的某种组合,其由(多个)处理单元可访问。存储器1520,1525以适用于由(多个)处理单元执行的计算机可执行指令的形式存储实现本文描述的一个或多个技术的软件1580,诸如以用于使用安全操作***促进受保护媒体信息的解码的技术。在一些实现中,存储器1520可以包括如本文描述的安全存储器。
计算***可以具有附加特征。例如,计算环境1500包括存储装置1540、一个或多个输入设备1550、一个或多个输出设备1560以及一个或多个通信连接1570。互连机制(未示出),诸如总线、控制器或网络,互连计算环境1500的组件。通常,一个或多个操作***软件(未示出)实现一个或多个操作***,其可以为在计算环境1500中执行的其它软件提供一个或多个操作环境,并且协调计算环境1500的组件的活动。例如,操作***可以包括如本文描述的安全操作***。
有形存储装置1540可以是可移除或不可移除的,并且包括磁盘、磁带或磁盒、硬盘、诸如固态驱动器之类的固态存储装置、或者诸如CD-ROM或DVD之类的光盘。存储装置1540可以存储用于实现本文描述的一个或多个技术的软件1580的指令,诸如以用于使用安全操作***促进受保护媒体信息的解码。
(多个)输出设备1550可以是触摸输入设备(诸如键盘、鼠标、笔或追踪球)、语音输入设备、扫描设备、或者向计算环境1500提供输入的另一设备。对于视频编码,(多个)输入设备1550可以是相机、视频卡、TV调谐器卡、或者以模拟或数字形式接受视频输入的类似设备、或者将视频样本读取到计算环境1500中的CD-ROM或CD-RM。(多个)输出设备1560可以是显示器、打印机、扬声器、CD-写入器、或者从计算环境1500提供输出的另一设备。
(多个)通信连接1570使得能够经由通信介质向另一计算实体通信。通信介质传达信息,诸如计算机可执行指令、音频或视频输入或输出、或者调制数据信号中的其它数据。调制数据信号是使得其一个或多个特性以对信号中的信息进行编码的这样的方式设定或改变的信号。作为示例而非限制,通信介质可以使用电、光学、RF或其它载体。
尽管出于方便呈现的目的而以特定的序列顺序描述了所公开的方法中的一些的操作,但是应当理解到,这种描述方式涵盖重新布置,除非通过下文阐述的具体语言要求特定的次序。例如,顺序描述的操作可以在一些情况下并行地执行或重新布置。此外,出于简单性目的,附图可能没有示出其中可以结合其他方法使用所公开的方法的各种方式。
所公开的方法中的任一个可以实现为存储在一个或多个计算机可读存储介质(例如,计算机可读介质,诸如一个或多个光学介质盘、易失性存储器组件(诸如DRAM或SRAM)或非易失性存储器组件(诸如闪速存储器或硬盘驱动器))上并且在计算机(例如任何商业可获得的计算机,包括智能电话或者包括计算硬件的其它移动设备)上执行的计算机可执行指令。如应当容易理解到的,术语计算机可读存储介质不包括通信介质,诸如调制数据信号。用于实现所公开的技术的任何计算机可执行指令以及在所公开的实施例的实现期间所使用和创建的任何数据可以存储在一个或多个计算机可读介质(例如计算机可读存储介质,其包括传播信号)上。计算机可执行指令可以是例如经由web浏览器或其它软件应用(诸如远程计算应用)访问或下载的软件应用或者专用软件应用的一部分。这样的软件可以例如在单个本地计算机(例如任何适当的商业可获得的计算机)上或者使用一个或多个网络计算机的网络环境(例如经由互联网、广域网、局域网、客户端-服务器网络(诸如云计算网络)或其它这样的网络)中执行。
为了清楚,仅描述了基于软件的实现的某些所选方面。忽略现有技术中众所周知的其它细节。例如,应当理解到,所公开的技术不限于任何具体的计算机语言或程序。例如,所公开的技术可以通过以C++、C#、J++、Java、Perl、JavaScript、AdobeFlash或任何其他适当编程语言编码的软件来实现。同样地,所公开的技术不限于任何特定计算机或硬件类型。适当计算机和硬件的某些细节是众所周知的并且不需要在该公开内容中详细阐述。
还应当很好地理解到,本文描述的任何功能性可以至少部分地通过一个或多个硬件逻辑组件而不是软件来执行。例如,并且不作为限制,可以使用的说明性类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、程序特定集成电路(ASIC)、程序特定标准产品(ASSP)、片上***的***(SOC)、复杂可编程逻辑器件(CPLD)等。
此外,任何基于软件的实施例(包括例如用于使得计算机执行任何所公开的方法中的任何方法的计算机可执行指令)可以通过适当的通信措施来上载、下载或远程地访问。这样的适当通信措施包括例如互联网、万维网、内联网、软件应用、线缆(包括光纤线缆)、磁通信、电磁通信(包括RF、微波和红外通信)、电子通信或其它这样的通信措施。
所公开的方法、装置和***不应当解释为以任何方式进行限制。相反,本公开内容是针对单独的以及以与彼此的各种组合和子组合的各种公开实施例的所有新颖和非显而易见的特征和方面。所公开的方法、装置和***不限于任何具体方面或特征或其组合,所公开的实施例也不要求存在任何一个或多个具体优点或者解决问题。鉴于所公开的发明的原理可以适用于的许多可能的实施例,应当认识到的是,所说明的实施例仅是本发明的优选示例并且不应当被视为限制本发明的范围。相反,本发明的范围由以下权利要求限定。因此,我们声明落入这些权利要求及其等同方案的范围内的全部内容作为我们的发明。

Claims (10)

1.一种方法,包括:
在计算***的安全操作***的安全进程处,接收经加密的编码媒体信息;
在安全进程中,对经加密的编码媒体信息的至少一部分进行解密,编码媒体信息的所述至少一部分包括标头信息;
从所述安全操作***,将所述标头信息发送给软件解码器以用于控制解码硬件;以及
为所述解码硬件安全地提供对编码媒体信息的访问以用于解码编码媒体信息来产生解码的媒体信息。
2.如权利要求1所述的方法,其中对编码媒体信息的所述至少一部分进行解密包括至少部分地基于最高数据量或者编码媒体信息的编码格式来确定包括所述标头信息的编码媒体信息的量。
3.如权利要求1所述的方法,其中将所述标头信息发送给所述软件解码器通过所述软件解码器基于所述标头信息将一个或多个解码操作命令发送给所述解码硬件而促进对所述解码硬件的控制。
4.如权利要求1所述的方法,其中为所述解码硬件安全地提供对编码媒体信息的访问包括向所述解码硬件提供解密密钥以用于使用所述解密密钥对编码媒体信息进行解密。
5.如权利要求1所述的方法,还包括:
在所述安全进程中所包括的安全解密器处,接收解密密钥;以及
在安全存储器中,存储经解密的编码媒体信息;
其中对经加密的编码媒体信息的至少一部分进行解密包括使用所述解密密钥来对编码媒体信息进行解密;
其中为所述解码硬件安全地提供对编码媒体信息的访问包括为所述解码硬件提供指示编码媒体信息在安全存储器中存储的位置的信息。
6.如权利要求1所述的方法,其中所述软件解码器包括在针对应用的进程中,并且其中针对应用的进程包括针对应用的受保护媒体进程。
7.如权利要求1所述的方法,其中经加密的媒体信息在第一加密中进行加密,所述方法还包括:
在将所述标头信息发送给所述软件解码器之前,在第二加密中对所述标头信息进行加密。
8.一种包括至少一个处理器和存储器的计算设备,所述存储器存储用于使计算设备执行方法的计算机可执行指令,所述方法包括:
在安全操作***的安全进程处,接收解密密钥和经加密的编码媒体信息;
通过安全进程,使用解密密钥对经加密的编码媒体信息中所包括的标头信息进行解密;
从安全操作***,将标头信息发送给软件解码器以用于控制解码硬件,其中软件解码器包括在针对应用的进程中;以及
从安全操作***,为解码硬件安全地提供解密密钥以促进经加密的编码媒体信息的解密以及经解密的编码媒体信息的解码来产生解码的媒体信息。
9.如权利要求8所述的计算设备,还包括:
在安全进程中所包括的媒体输出可信权限处接收签署策略证书;以及
基于签署策略证书,推行针对解码的媒体信息的输出保护。
10.存储用于使计算***执行方法的计算机可执行指令的一个或多个计算机可读存储介质,所述方法包括:
在计算***的安全操作***的安全进程处,接收至少部分地被加密的编码媒体信息,该编码媒体信息包括没有被加密的标头信息;
从安全操作***,将标头信息发送给软件解码器以用于控制解码硬件;以及
至少为解码硬件安全地提供对至少部分地被加密的编码媒体信息的加密部分的访问以用于至少部分地被加密的编码媒体信息的解码,来产生解码的媒体信息。
CN201380075915.2A 2013-04-23 2013-09-09 使用安全操作***的受保护媒体解码 Active CN105453094B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/868,981 US9247316B2 (en) 2013-04-23 2013-04-23 Protected media decoding using a secure operating system
US13/868981 2013-04-23
PCT/US2013/058831 WO2014175910A1 (en) 2013-04-23 2013-09-09 Protected media decoding using a secure operating system

Publications (2)

Publication Number Publication Date
CN105453094A true CN105453094A (zh) 2016-03-30
CN105453094B CN105453094B (zh) 2018-10-19

Family

ID=49261751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380075915.2A Active CN105453094B (zh) 2013-04-23 2013-09-09 使用安全操作***的受保护媒体解码

Country Status (4)

Country Link
US (1) US9247316B2 (zh)
EP (1) EP2989580B1 (zh)
CN (1) CN105453094B (zh)
WO (1) WO2014175910A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107659818A (zh) * 2017-09-28 2018-02-02 福州瑞芯微电子股份有限公司 一种视频解码装置
CN113141380A (zh) * 2016-12-14 2021-07-20 微软技术许可有限责任公司 用于经模糊处理的媒体的编码优化

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104427388A (zh) * 2013-09-10 2015-03-18 国家广播电影电视总局广播科学研究院 一种智能电视操作***
CN110543747B (zh) * 2014-03-26 2023-07-21 TiVo解决方案有限公司 多媒体流水线架构
US9590952B2 (en) * 2014-09-05 2017-03-07 Microsoft Technology Licensing, Llc Lossy data stream decoder
US10283091B2 (en) * 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Buffer optimization
GB2533279B (en) * 2014-12-08 2019-08-14 Gurulogic Microsystems Oy Secure media player
FR3030827B1 (fr) 2014-12-19 2017-01-27 Stmicroelectronics (Grenoble 2) Sas Procede et dispositif de traitement securise de donnees cryptees
US20160182952A1 (en) * 2014-12-23 2016-06-23 Microsoft Technology Licensing, Llc Protected Media Decoding System Supporting Metadata
US9979983B2 (en) 2015-03-16 2018-05-22 Microsoft Technology Licensing, Llc Application- or context-guided video decoding performance enhancements
US10129566B2 (en) 2015-03-16 2018-11-13 Microsoft Technology Licensing, Llc Standard-guided video decoding performance enhancements
US10372935B1 (en) * 2015-11-13 2019-08-06 Google Llc Selectively encrypting commit log entries
HUE049080T2 (hu) 2017-06-13 2020-09-28 Liberty Global Europe Holding B V Eljárás és eszköz biztonságos video feldolgozáshoz
US20190034617A1 (en) 2017-07-31 2019-01-31 Intel Corporation Flexible container attestation
EP3467697A1 (en) * 2017-10-06 2019-04-10 Nagravision S.A. Masking technique
US11362824B2 (en) * 2018-05-25 2022-06-14 Intertrust Technologies Corporation Content management systems and methods using proxy reencryption
CN111988640A (zh) * 2020-07-15 2020-11-24 北京数字太和科技有限责任公司 一种基于原始视频数据变换加密的内容版权保护的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040139335A1 (en) * 2003-01-14 2004-07-15 General Instrument Corporation System for secure decryption of streaming media using selective decryption of header information and decryption of reassembled content
CN101383672A (zh) * 2008-10-06 2009-03-11 武汉天喻信息产业股份有限公司 Sim和移动多媒体广播授权解扰模块的集成方法及装置
US20110248986A1 (en) * 2010-04-07 2011-10-13 Apple Inc. Intelligent media decoding
US20120102307A1 (en) * 2010-10-20 2012-04-26 Advanced Micro Devices, Inc. Method and apparatus including architecture for protecting sensitive code and data

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6985591B2 (en) * 2001-06-29 2006-01-10 Intel Corporation Method and apparatus for distributing keys for decrypting and re-encrypting publicly distributed media
US7130911B2 (en) 2002-02-11 2006-10-31 Intel Corporation Method for monitoring unauthorized access to data stored in memory buffers
US7296154B2 (en) * 2002-06-24 2007-11-13 Microsoft Corporation Secure media path methods, systems, and architectures
EP1795993B1 (en) 2002-07-30 2018-02-28 Fujitsu Limited Method and apparatus for reproducing information using a security module
WO2004070585A2 (en) * 2003-01-31 2004-08-19 Kaleidescape, Inc. Detecting collusion among multiple recipients of fingerprinted information
US9342662B2 (en) 2003-09-16 2016-05-17 Media Rights Technologies, Inc. Method and system for controlling video media
US7665143B2 (en) 2005-05-16 2010-02-16 Microsoft Corporation Creating secure process objects
US7978848B2 (en) 2007-01-09 2011-07-12 Microsoft Corporation Content encryption schema for integrating digital rights management with encrypted multicast
US8688991B1 (en) * 2007-06-01 2014-04-01 Adobe Systems Incorporated Media player embodiments and secure playlist packaging
US9788018B2 (en) 2008-06-30 2017-10-10 Microsoft Technology Licensing, Llc Error concealment techniques in video decoding
US8837908B2 (en) 2009-01-06 2014-09-16 Cyberlink Corp. Systems and methods for performing secure playback of media content
US8457311B1 (en) * 2010-04-27 2013-06-04 Adobe Systems Incorporated Protecting video as it is decoded by a codec
US8724696B2 (en) 2010-09-23 2014-05-13 Vmware, Inc. System and method for transmitting video and user interface elements
US8625788B2 (en) 2011-01-05 2014-01-07 Intel Corporation Method and apparatus for building a hardware root of trust and providing protected content processing within an open computing platform
KR20120089980A (ko) 2011-01-12 2012-08-16 엘지전자 주식회사 복수개의 그래픽 데이터 처리가 가능한 오퍼레이팅 시스템을 탑재하고 있는 멀티미디어 디바이스 및 그 제어 방법
US8532290B2 (en) 2011-03-04 2013-09-10 Netflix, Inc. Content playback APIS using encrypted streams
US20120284804A1 (en) 2011-05-02 2012-11-08 Authentec, Inc. System and method for protecting digital contents with digital rights management (drm)
US9202024B2 (en) 2011-05-02 2015-12-01 Inside Secure Method for playing digital contents projected with a DRM (digital rights management) scheme and corresponding system
CN103765428A (zh) 2011-07-01 2014-04-30 诺基亚公司 软件验证
US9008308B2 (en) 2012-02-08 2015-04-14 Vixs Systems, Inc Container agnostic decryption device and methods for use therewith
US11349699B2 (en) 2012-08-14 2022-05-31 Netflix, Inc. Speculative pre-authorization of encrypted data streams

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040139335A1 (en) * 2003-01-14 2004-07-15 General Instrument Corporation System for secure decryption of streaming media using selective decryption of header information and decryption of reassembled content
CN101383672A (zh) * 2008-10-06 2009-03-11 武汉天喻信息产业股份有限公司 Sim和移动多媒体广播授权解扰模块的集成方法及装置
US20110248986A1 (en) * 2010-04-07 2011-10-13 Apple Inc. Intelligent media decoding
US20120102307A1 (en) * 2010-10-20 2012-04-26 Advanced Micro Devices, Inc. Method and apparatus including architecture for protecting sensitive code and data

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113141380A (zh) * 2016-12-14 2021-07-20 微软技术许可有限责任公司 用于经模糊处理的媒体的编码优化
CN113141380B (zh) * 2016-12-14 2024-04-30 微软技术许可有限责任公司 用于经模糊处理的媒体的编码优化
CN107659818A (zh) * 2017-09-28 2018-02-02 福州瑞芯微电子股份有限公司 一种视频解码装置

Also Published As

Publication number Publication date
US9247316B2 (en) 2016-01-26
US20140314233A1 (en) 2014-10-23
WO2014175910A1 (en) 2014-10-30
CN105453094B (zh) 2018-10-19
EP2989580A1 (en) 2016-03-02
EP2989580B1 (en) 2019-07-24

Similar Documents

Publication Publication Date Title
CN105453094A (zh) 使用安全操作***的受保护媒体解码
US9853957B2 (en) DRM protected video streaming on game console with secret-less application
CN103210396B (zh) 包括用于保护敏感代码和数据的架构的方法和装置
US8549606B2 (en) Device for protecting digital content, device for processing protected digital content, method for protecting digital content, method for processing protected digital content, storage medium storing program for protecting digital content, and storage medium storing program for processing protected digital content
CN100421102C (zh) 便携式存储装置和使用该便携式存储装置的内容管理方法
US8660964B2 (en) Secure device licensing
US8359657B2 (en) Method and apparatus for enabling secure distribution of digital content
US9798888B2 (en) Data management
CN104794388B (zh) 应用程序存取保护方法及应用程序存取保护装置
EP1686504A1 (en) Flexible licensing architecture in content rights management systems
CN1679273A (zh) 用于数字权利管理的集成电路
CN104156642A (zh) 一种基于安全触控屏控制芯片的安全密码输入***和方法
JPWO2004109972A1 (ja) ライセンス受信用ユーザ端末
CN101802833A (zh) 向在应用执行环境中运行的应用提供本地存储服务
CN109040134B (zh) 一种信息加密的设计方法及相关装置
CN103390124A (zh) 安全输入和处理口令的设备、***和方法
CN106850638B (zh) 一种车载设备访问控制方法及***
JP6146476B2 (ja) 情報処理装置及び情報処理方法
WO2020075396A1 (ja) 推論装置、推論方法及び推論プログラム
CN104246784A (zh) 用于保护和安全地传输媒体内容的方法、设备和***
CN109690537A (zh) 用于解密和呈现内容的***
KR20120042469A (ko) 부가 정보와 암호키 결합을 이용한 콘텐츠 보호 장치 및 그 방법
KR20060030164A (ko) 동영상 데이터 보호를 위한 공유키 풀 기반의 drm 시스템
JPH0997175A (ja) ソフトウエア利用制御方法
CN112434327B (zh) 信息保护方法、装置及电子设备

Legal Events

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