具体实施方式
以下结合附图提供的详细说明旨在描述现有示例,而非旨在表示可构建或利用现有示例的唯一形式。该描述阐明示例的功能以及构建和操作该示例的步骤序列。然而,相同或等效的功能和序列可通过不同示例来完成。
尽管现有示例在本文中被描述和说明为在基于PC系统中实现,但所述系统仅被提供为一个示例而非限制。如本领域技术人员将理解地,现有示例适合各种不同类型计算系统中的应用程序。
图1是示出不带硬件功能扫描(“HFS”)系统180、可用来播放常规的受保护媒体文件130的常规PC或CE设备150的框图。这种不带硬件功能扫描系统的PC160可使受保护媒体文件130易于被黑客或另一未经授权方拦截。内容提供者110通常与媒体服务器120耦合。内容提供者110通常将受保护媒体文件130置于媒体服务器130之上。该受保护媒体文件130可根据服务提供者提供的内容在媒体服务器上创建,或者服务提供者可向媒体服务器120提供受保护的媒体文件130。该受保护媒体文件130通常包括音频或视觉信息等。媒体服务器120通常耦合于因特网140,而因特网140通常耦合于PC 160或CE设备150。PC 150或CE设备150仅仅是装有处理器的设备的两个示例。具体地可构想各种设备可等效地替代PC 160或CE设备150。在以下描述中,可以理解,术语PC可包括CE设备、处理器板设备等。CE设备150因为其固定配置而不易被篡改。相反,PC 160是容易被访问的开放系统。
PC 160通常是常规安全系统170的一部分,该安全系统170通常包括PC组件和可满足内容提供者110不会发生黑客195的未经授权访问的保护方法。
常规安全系统170可包括CPU和通常再现图像信息使其可以观看的显示器190。在常规PC系统中,PC 160耦合于外部显示器或监视器190。图形密集型的系统可利用一常规图形处理器来帮助再现所显示对象。CPU中处理器与图形设备的处理器之间的连接可使黑客195能在此点上进行未经授权访问。这种“安全系统”170可使受保护媒体文件130能在显示器190上播放。通常提供给图形处理器175的内容是未经加密的。
图2是示出装有硬件功能扫描系统220的PC 210的框图。内容提供者110通常耦合至媒体服务器120。内容提供者110通常将受保护媒体文件130置于媒体服务器120之上,该受保护媒体文件130通常包括音频和视觉信息等。媒体服务器120通常耦合于因特网140,而因特网140通常耦合于PC 210。
安全系统270中的PC 210可被耦合于通常再现图像信息使其可以观看的显示器190。PC 210及其安全系统270包括硬件功能扫描系统220。硬件功能扫描(“HFS”)系统可进一步验证内容提供者110所请求的安全许可,以确保黑客或其它未经授权方195没有在易受攻击点340上访问受保护媒体文件130的未受保护版本。硬件功能扫描通常被执行以验证PC 160上的安全许可,该安全许可通常指示正确硬件配置(的一部分),以防止黑客195在点340上对受保护媒体文件130的未经授权访问。
图3是示出在带有硬件功能扫描系统的PC210上的CPU 320与图形设备350之间执行的硬件功能扫描的框图。具有硬件功能扫描功能的PC 210通常包括可包含耦合于总线340的CPU 320的计算机处理器板310。总线340又可耦合于图形设备350。该图形设备350可表示可以唯一方式再现现状的复杂IC。一般而言,图形设备的典型复杂性和它所拥有的任何唯一再现签名可用来验证图形设备350而非黑客出现。
黑客195的未经授权访问可通过使用试图模拟真正图形设备的设备仿真来尝试,并会允许黑客访问和复制不受保护媒体360。在这种配置中,CPU 320不会具有只有“真正”的图形设备出现的信息。CPU 320不会接收到仿真程序在拦截不受保护内容的任何指示。模拟真正图形设备的图形设备仿真可能不能模拟真正图形设备的复杂性,因而可能不能生成真正图形设备的硬件功能扫描系统220的唯一再现签名,该硬件功能扫描系统220测试复杂性而唯一再现签名可检测黑客。因而,模拟真正图形设备的设备可能不由包括硬件功能扫描220的系统来验证。
内容提供者110通常通过数字加密受保护的媒体文件130来防止对受保护媒体文件130的未经授权复制或查看。这种系统通常取决于信任链结构。受保护媒体文件130可使用任一可接受的当前加密方法来加密以传递给CE设备150或PC210。例如,如果PC 210被内容提供者110授权查看一受保护媒体文件130,则PC210将被给予(通过一安全机制)允许解密受保护媒体文件130的加密密钥。
数字权限管理加密系统的一个示例在1999年4月12日提交的美国专利申请No.09/290,363、在2002年6月28日提交的美国专利申请No.10/185,527、10/185,278和10/185,511中提供,这些申请通过引用全部结合于此。获授权的PC 210可使用CPU 320来解密受保护媒体文件130并生成不受保护媒体360。该不受保护媒体360通常以再次加密或不加密形式经由总线340传递给图形设备350,该图形设备350可将不受保护媒体360转换成可由显示器190显示的视频信号370。
如前所述,不受保护媒体360易于被黑客195未经授权地访问,所采取的形式为在总线340上拦截不受保护媒体360的黑客或任何未经授权用户。一旦受保护媒体文件130已被CPU 320解密,它就变成不受保护媒体360,从而易于被可用能捕捉和复制不受保护媒体360的另一设备替换图形设备350的黑客未经授权地复制。注意保护内容传递的内容提供者110也希望采取保护内容免受黑客195攻击的步骤。
PC通常具有使它们在一定程度上易于被篡改的开放架构。CE设备150可以是对黑客而言难以用能够复制不受保护媒体360的设备替换图形设备170的密闭箱系统,而PC 210则是对黑客或任何其它未经授权方而言易于用模拟图形设备350、并能够复制不受保护媒体360的设备替换图形设备350的开放箱系统。因此,在内容提供者110可允许受保护媒体文件130被下载或流入到PC 210之前,内容提供者110可要求PC 210具有HFS 220所提供的安全许可,并耦合于图形设备350而非由黑客或任何未经授权用户替换的模拟图形设备350的某其它捕捉设备。
图形设备350可包含经数字签名的证书,该证书可由CPU 320查询以验证图形设备350的真实性。然而,由于用来创建图形设备350的制造工艺的性质,在每个图形设备350中编码唯一的证书或其它唯一的标识符是不合算的。可使用更简单或更为合算的证明图形设备350真实性的方案,或可使用该方案来增加一设备证书方案。CPU 320可采用硬件功能扫描系统220。
图形设备350通常是可由在复杂配置中彼此耦合的一个或多个集成电路上的大量逻辑门构成的一个复杂设备。图形设备350还可以唯一方式再现形状或其它图元。图形设备350可再现形状或其它图元的唯一方式可由CPU 320用来验证它耦合于真正的图形设备350,而不是模拟图形设备350的其它某设备。CPU 320可通过执行查询来测试图形设备350的唯一复杂硬件结构,诸如向图形设备350提交形状或其它图元以再现和比较再现结果与预期结果,来执行硬件功能扫描220。通常由于图形设备350的复杂性,通过仿真是难以复制或生成黑客或另一未经授权方对硬件功能扫描220的正确响应的。
为了唯一地标识图形设备350,可用只有特定图形设备350能提供验证图形设备350的回应或响应的方式来构建图形设备350的查询或请求。这通常是可能的,因为图形设备350和一般的图形设备由大量门的复杂排列构成,并基于它们实现了通常复杂的状态模型。因此,由两个不同的图形设备制造模型作出的相同询问或请求可导致不同的回应、或返回不同的结果。对回应或所返回结果的分析通常将标识出图形设备350。
例如,CPU 320可向图形设备350发送一三维形状并请求该图形设备350在三维空间中执行一变换,诸如加阴影。图形设备350然后可向CPU 320发送结果所得的经变换或再现的三维形状。CPU 320可检查所返回的结果以确定经变换的复杂三维形状的数学表示是否符合CPU 320所期望的结果。可通过参考查寻表或硬件的软件仿真等来作比较。
在另一示例中,CPU 320可能已储存了一复杂的数学表达式。典型的表达式将运行图形设备350的通常将计算制造模型的唯一和已知回应的区域。此外,典型的表达式还可包括表达式的商定随机参数形式的随机数据,和/或表达式本身可随机地选择的随机数据。例如,计算结果可具有唯一位数或者可采用已知的舍入误差。此外,在又一示例中,图形设备350可被制造成可添加集成电路内的附加边界扫描电路以验证图形设备350在厂内的运行。边界扫描电路对图形设备350的每个型号都可以是唯一的,并且CPU 320可查询该边界扫描电路并分析结果来验证图形设备350。
图4是示出用于执行一硬件功能扫描的示例性过程的流程图。序列400通常在CPU 320(图3)上执行,但可在任何处理器上执行。
在框410,CPU通常向图形设备发送查询以便于验证该图形设备的真实性。如前所述,该查询可用使用商定随机值、并且只有真正的图形设备才能提供验证该图形设备的回应或响应的方法来构建。
进一步地,在框415,图形设备通常将处理该查询以生成一结果,并将该结果发送给CPU以作评估。
接着在框420,CPU通常接收到来自图形设备的查询结果。注意,CPU可能不需要接收该查询结果来确定图形设备是否是真的。(Zero-knowledge-proof)可针对图形设备与该图形设备一起使用,以在不将查询结果发送给CPU的情况下证明该图形设备具有正确的回应。例如,图形设备和CPU可将查询结果用作发给该图形设备的后续消息的密钥,并且只有在图形设备可能不能接收到已允许其继续发挥作用的后续消息时该图形设备已生成了对查询的正确回应,图形设备才能继续发挥作用。
在框430,CPU然后将从图形设备接收的查询结果与预期结果作比较。然后CPU可分析该比较结果,并确定比较是通过还是失败。如果比较失败,则验证通常将在框440结束。
在框440终止过程可能是CPU确定从图形设备返回的结果与预期结果不同的结果,这可指示未经授权的图形设备或黑客存在。执行流通常在此时结束,因为安全许可因其未被确认而不能被签发给图形设备。
在框450继续过程可能是CPU确定从图形设备返回的结果在与预期结果作比较时是可接受的结果。安全系统可得出结论:该图形设备已经通过了硬件功能扫描并且是一真正的图形设备而不是使用仿真设备的黑客。CPU然后可代表图形设备发出一安全许可,该安全许可指示图形设备已经被确认。
图5是示出其中可实现硬件功能扫描系统的一示例性计算环境的框图。
带有硬件功能扫描系统的PC 210(见图2)通常执行操作系统505以运行应用程序510。应用程序510通常耦合于互用性网关520。该互用性网关520通常耦合于硬件驱动器530,并且此外互用性网关520还可具有与硬件驱动器530的安全耦合。硬件驱动器530通常耦合于硬件抽象层535,而硬件抽象层535可耦合于硬件设备540。
操作系统505可实现用户模式580和内核模式590。应用程序510通常以用户模式580执行,而互用性网关520通常也以用户模式580执行。硬件驱动器530通常以内核模式590执行。操作系统505通常出于安全原因实现用户模式580和内核模式590。与操作系统505可向内核模式590提供的相比,操作系统505可向用户模式580提供较少的安全许可,因为内核模式590可具有对更易受黑客攻击的PC 210元件的访问权。操作系统505可能不会允许未经数字签名和不被信任的组件以内核模式590执行。操作系统505通常向用户模式580提供较少的安全许可,并相应地提供较少的对更易受黑客攻击的PC 210元件的访问权。操作系统505通常还可并发地执行用户模式580和内核模式590,并且还可进一步地一次执行用户模式580的一个以上实例。
进一步地,操作系统505通常可通过包括不同级别的安全执行环境来实现附加安全层。
操作系统505可包括不受保护的执行环境580和受保护的执行环境570,其中不受保护的执行环境580包括比受保护执行环境570少的安全许可。在操作系统505可允许互用性网关520或硬件驱动器530被载入受保护执行环境570或在其中执行时,操作系统505通常可强加一组安全要求。例如,安全要求可以是某种形式的数字签名或其它数字信任证明。用这种方式,操作系统505可信任互用性网关520或硬件驱动器530,并准许该互用性网关520或硬件驱动器530对操作系统505所控制的PC 210的资源有较多的访问权。此外,在操作系统505允许应用程序510被载入或执行之前,操作系统505通常可实现较小的一组安全要求,但操作系统505可准许应用程序510对操作系统505所控制的PC 210的资源有较少的访问权。
因为硬件驱动器530既可以内核模式590执行又可在受保护执行环境570中执行,所以该安全级别对内容提供者认证硬件设备540而言是令人满意的。此外,内核模式590在硬件驱动器530可被载入并以内核模式590执行之前可要求它被数字签名并且证明是可信任的,从而提供硬件驱动器530是从合法来源接收的证明。注意,只有受信任的驱动器可被载入也是重要的。例如,仅仅因为530是受信任的并不解决内核模式问题,除非内核模式的所有其它驱动器也都是受信任的。该概念需要在本文档的某些地方记录。
操作系统505可实现数字权限管理(“DRM”)。内容提供者信任DRM,而内容提供者又可要求该DRM实现针对该内容赋予DRM的策略。然后DRM可验证内容与经数字签名的组件(驱动器以及用户模式组件)一起使用,以及是否要求图形驱动器进行硬件功能扫描220。内容提供者可对硬件驱动器530已代表内容提供者认证了硬件540感到满意,并且因此内容提供者可对黑客没有用硬件设备540的仿真替换真正的硬件设备540以在此易受攻击点上复制内容提供者的内容感到满意。
尽管例如图形硬件545的真正的硬件设备540可通过实现防止未经授权复制的安全元件来提供防止复制的保护,但黑客或其它未经授权的第三方可创建硬件设备540的仿真并将其插入PC 210。这种假冒硬件设备可显现为真正的硬件设备540,但是黑客或其它未经授权的第三方可构建仿真硬件设备来在未启用安全部件时报告已启用了安全部件。在这样做时,例如图形驱动器535的设备驱动器530可向假冒硬件设备提供来自内容提供者110的信息的易受攻击版本,而该假冒硬件设备可自由地复制该信息。
因此,操作系统505可通过使用经签名和受信任的驱动器530验证硬件设备540是真的,并要求硬件驱动器530使用硬件抽象层535执行硬件功能扫描220。硬件功能扫描220可确定该硬件设备540是否是真正的硬件设备,而不是黑客设置的仿真。此外,为了确保内核模式590的完整性,操作系统505可验证所有组件被载入到内核模式,并被签名和信任。
硬件功能扫描220通常是由硬件驱动器530发送给硬件540的查询。该查询可被写成是测试硬件设备540的唯一复杂硬件结构。该硬件设备540可以是一复杂设备,并且对于硬件设备540的仿真而言要复制或生成正确的回应是困难的。即,由硬件驱动器530在执行硬件功能扫描220时构建的查询可用对这些查询的回应通常唯一地标识该硬件设备540的方式来构建。
此外,硬件驱动器530可储存它发送给硬件设备540的查询的表格500。这些查询可接受随机的输入数据,并且硬件驱动器530又可针对该查询随机地选择输入。硬件驱动器530然后可对硬件540返回的回应和它所期望的回应作比较。这种比较可通过请求来自硬件540的回应来直接实现,或者可替换地可通过使用只有在硬件已产生正确回应时才会成功的进一步操作中的回应来间接实现。如果硬件驱动器530确定回应相等,则硬件驱动器530可进一步确定硬件设备540被验证并且是真实的。
在另一示例中,硬件驱动器530可实现硬件540的任一部分的仿真器560。仿真器560可以是硬件540的仿真,从而硬件驱动器530可选择一值并使用该仿真器560执行一操作,然后可将该相同值和请求传送给硬件540使该硬件540可用相同的值执行相同的操作。该硬件驱动器530然后可验证由仿真器550和硬件540执行的操作的结果,以确定硬件540被验证并且是真实的。
一旦硬件驱动器530已执行了硬件功能扫描220并确定真正的硬件设备540到位,则硬件驱动器530就可执行认证并验证硬件设备540的功能,并满足先前所述与内容提供者商定的职责。
在另一示例中,PC 210可使用例如输出保护管理器525的互用性网关520,来管理可由硬件驱动器530响应于使用硬件功能扫描220对硬件设备540的验证而提供的安全证明。此外,互用性网关520可提供由硬件驱动器530所提供功能的缩减子集,从而防止黑客对硬件驱动器530所提供的、但互用性网关并不提供的功能有任何类型的访问权。
图6是示出与输出保护管理软件模块耦合的硬件功能扫描过程的框图,该输出保护管理软件模块可将硬件功能扫描的结果传送给媒体管线523。
硬件功能扫描系统可被配置成将硬件功能扫描的结果传送给诸如媒体管线523的系统控制内容分发。该系统可包括输出保护管理模块525、图形驱动器535、以及图形硬件545。
该输出保护管理模块525可以是用在PC的受保护环境中执行并且还可用PC的用户模式执行的软件来实现的模块。输出保护管理模块525可用作接收安全证书或其它形式的安全证明的安全授权机构,这些安全证明指示该图形驱动器545是受信任的、并且已经执行了硬件功能扫描220,该硬件功能扫描220包括硬件功能扫描查询410和硬件功能扫描响应420。此外,输出保护管理模块525可接收指示内核模式590是受信任的安全证书或其它形式的安全证明。输出保护管理模块525可将存在的安全证书或其它形式的安全证明传送给内容提供者。
图形驱动器535通常在常规PC中实现,以提供如前所述对图形硬件545的持续和单点访问。图形硬件545可以是用来将形状或其它图形信息如PC所指示地呈现的任何硬件设备。图形硬件545可包括单个的集成电路芯片,或可由集成电路芯片的任意组合构成。
在内容提供者可信任图形驱动器545在PC上播放优质或高值内容之前,内容提供者可请求图形硬件545是可信的和经验证的证明。内容提供者可能不能直接与图形驱动器610通信,并且可能不能确定图形驱动器545是否已执行了硬件功能扫描查询410,并且是否已接收到已经验证图形硬件545的硬件功能扫描响应420。
然而,因为操作系统505是受信任的,该操作系统505可通过验证互用性网关520、输出保护管理器525、以及硬件驱动器530、图形驱动器535是受信任的来验证受保护环境570是受信任的,所以内容提供者可信任操作系统505以迫使硬件驱动器530使用硬件功能扫描220来在可能需要这种信任的内容从互用性网关520给予硬件驱动器530之前验证硬件540是受信任的。
例如,图形驱动器535可创建一硬件功能扫描查询410,并将该硬件功能扫描查询410发送给图形硬件545。该硬件功能扫描查询410通常以硬件功能扫描回应420确认该图形硬件545合法并且不是由黑客出于复制内容的目的而放置的伪造品或其它设备的方式来构建。此外,硬件功能扫描查询410可采取任何形式,但通常是以将在图形硬件545的黑客难以仿真的区域中执行的功能的形式。此外,硬件功能扫描回应420可采取任何形式来确定图形硬件545已独立地生成了适当的回应,但通常是以可与期望回应作对比的数据的形式。
然后,图形驱动器535确定硬件功能扫描回应。例如,图形驱动器535可从存储在图形驱动器535内的查寻表中提取回应,或者图形驱动器535可随机地或从一组值中选取一值,并将该值传递给图形硬件545的内部仿真,或可使用其部分组合。此外,在一替换示例中,图形硬件545和图形驱动器535可约定图形硬件545和图形驱动器535将用作查询410的输入的随机值。存储在图形驱动器535内的图形硬件545的内部仿真然后可将选定值用作内部仿真的输入来计算回应。
然后,图形硬件545计算硬件功能扫描回应420,并且通常将其返回给图形驱动器535。
然后图形驱动器535确定图形硬件545所产生的硬件功能扫描回应420与图形驱动器535所计算的回应相匹配。如果图形驱动器535确定回应等于期望回应,则图形驱动器535可确认图形硬件545的真实性。例如,图形驱动器535然后可向输出保护管理模块525发送安全通知。
然后,输出保护管理模块525或图形驱动器535可存储安全状态达必要长的时间。该输出保护管理模块还可向图形驱动器535发出请求,使图形驱动器535发出新的硬件功能扫描查询410来重新验证图形硬件545的真实性。
最后,一旦输出保护管理模块525已接收到安全状态,输出保护管理模块525可请求图形驱动器535验证图形驱动器535和图形硬件545之间的通道660。一旦图形驱动器535已验证了图形驱动器535和图形硬件545之间的通道660,输出保护管理模块525就可与内容提供者通信,并指示图形驱动器535和图形硬件545之间的耦合是安全的,可播放优质的或受保护的内容。
图7是示出用来构建总线上向经适当认证的图形芯片的安全传送的事件序列的流程图。首先,驱动器进行身份验证(701)。受保护环境软件将不会暂停用驱动器对系统的处理。
然后在图形硬件和独立硬件供应商(“IHV”)内核模式图形驱动器之间使用Diffie Hellman,以构建2048位Diffie Hellman密钥702。此时在该过程中,已构建了仅为图形硬件和IHV的驱动器所知的密钥。
执行散列化以生成会话密钥703。IHV内核模式驱动器将2048位DiffieHellman数传递给服务提供者的设备驱动器模型(“DDM”)内核模式组件。该DDM组件然后执行AES Davis Meyer散列化来生成128位会话密钥。图形硬件还制作AES Davis Meyer散列来获取会话密钥。IHV KMD和图形硬件都不可存储DiffieHellman密钥。在一替换示例中,Diffie Hellman密钥被弃用。此时可构建仅为图形硬件和服务提供者DDM内核模式组件所知的会话密钥。
然后在Diffie Hellman位中选取一种子(704)。图形驱动器如前所述地进行硬件功能扫描以认证图形硬件705。它可将来自Diffie Hellman数的6个或多个位用作种子值,以将认证与缓和中间人攻击的Diffie Hellman过程联系在一起。可使用被确定为在给定应用程序中提供充分安全性的任何数目的位。图形驱动器现在可信任图形硬件是真实的,并且Diffie Hellman过程不易受到中间人攻击。
然后,ProtectedDXVA软件组件,例如可执行对可经由总线提供给图形卡的数据的加密的操作系统软件组件,可检验驱动器706中受保护视频路径-用户可访问总线(“PVP-UAB”)证书。这可构建驱动器是真实的并且符合所有PVP-UAB要求,例如密钥的硬件解密和适当构建的信任。介质互用性网关(“MIG”)软件现在可信任图形硬件并可允许优质内容流动。
然后,ProtectedDXVA组件创建一内容密钥,并将该内容密钥发送给图形硬件707。在新的内容密钥可能为新的优质视频流所需的任何时候,ProtectedDXVA组件通过请求服务提供者DDM内核组件用会话密钥加密内容密钥来发送内容密钥。现在内容密钥为ProtectedDXVA软件组件和图形硬件所知。
最后,ProtectedDXVA组件使用内容密钥来加密优质视频流,并将经加密的视频流流传送图形硬件,在该图形硬件中经加密的视频流在接收时被解密(708)。现在优质内容已从MIG软件受保护环境安全地传递给图形硬件。
本领域技术人员将理解,用来存储程序指令的存储设备可在网络上分发。例如,远程计算机可存储作为软件描述的进程的一个示例。本地或终端计算机可访问远程计算机并下载部分或全部软件来运行该程序。可替代地,本地计算机可按需下载软件的片段,或通过在本地终端执行部分软件指令并在远程计算机(或计算机网络)上执行部分软件指令来分布式地处理。本领域技术人员还将理解,通过利用本领域技术人员公知的常规技术,全部或部分的软件指令可通过诸如DSP、可编程逻辑阵列等的专用电路来实现。