挑战响应方法和相关联的计算设备与流程

文档序号:12513004阅读:516来源:国知局
挑战响应方法和相关联的计算设备与流程

本发明涉及一种用于客户端设备的挑战响应方法,以及用于实现挑战响应方法的计算设备。本发明的挑战响应方法可以在用于计算设备的节点锁定(即,硬件锚定)应用中使用。



背景技术:

应用软件(也称为应用或app)是被设计为帮助用户执行特定任务的计算机软件。示例包括企业软件、会计软件、办公套件、图形软件和媒体播放器。在近年,缩写“app”具体来意指针对移动设备编写的应用软件。应用软件将特定计算平台或系统软件的能力应用于特定目的。换句话说,应用利用计算设备的操作系统来获得对硬件资源的访问。应用还要求对图形环境的访问以用于与最终用户交互。这些软件应用(通常称为原生应用)使用诸如中央处理单元(CPU)之类的硬件执行引擎。应用对特定计算设备中的现有资源的依赖意味着软件提供商可能需要提供应用的不同版本以在不同设备平台上执行。虚拟机执行模型使得软件提供商能够分发单个应用以在多个不同的设备平台上执行。脚本语言与图形环境结合是针对虚拟机执行模型的替代,从而提供类似的多平台益处。该方法已针对web(网络)应用并且在HTML-5 W3C推荐中采用。

许多应用要求软件限于单个最终用户计算设备(或客户端设备)。这可以通过依赖于特定于单个最终用户设备的硬件功能来做出对软件应用的执行而实现。

所谓的“节点锁定”(或“硬件锚定”)技术向软件应用提供硬件依赖的功能以用于集成到其执行路径中(参见例如EP2506174和EP2506175)。这提供了将应用的执行锁定到特定最终用户设备的机制。节点锁定功能还使得应用能够生成证明应用正在特定最终用户设备上操作的消息。这可以用于认证目的。这些节点锁定应用描述了特定于特定硬件电路的挑战响应功能。挑战响应方法一般依赖于硬件设备中的秘密。知晓秘密使得能够生成挑战响应对,所述挑战响应对使得应用能够验证应用正在预期平台上执行。如上所述的EP2506174和EP2506175描述了用于结合安全软件应用使用节点锁定功能(挑战响应功能)的系统和方法。

用于软件应用的节点锁定技术要求特定于特定最终用户设备的功能的可用性。EP2506175通过例如在移动电话中利用标准订户身份模块(SIM)的特定功能来实现这一点。由于操作系统通常不将SIM功能暴露给在设备上执行的应用,所以EP2506175的SIM锁定机制要求对设备的操作系统的修改。因此,在一些情况下,该挑战响应解决方案是不合期望的。EP2506174要求设备中的特定硬件特征,这使得该挑战响应解决方案不适合供现有设备基础设施使用。

即使节点锁定技术可用于本地应用,在浏览器中操作的基于web的应用(例如基于HTML5)也不能访问这样的节点锁定设施,因为浏览器应用编程接口(API)不向web应用暴露这样的功能/设施。

数字版权管理(DRM)技术众所周知用于控制对受保护内容文件的访问。受保护内容文件包括加密的内容部分和使用规则部分。客户端DRM系统首先处理使用规则以生成用于解密内容部分的内容解密密钥。注意,使用规则部分通常包括加密元素。在最终用户设备中的DRM实现以防篡改的方式实现,以便防御针对实现的攻击。

DRM系统通常由电影和音乐版权持有人使用,以便保护他们的视频和音频内容免受未经授权的分发。存在广泛范围的DRM系统,其已被集成用于在不同的最终用户设备(诸如平板电脑、音乐播放器、移动电话、游戏控制台、以及甚至PC)中使用。这些DRM系统通常以防篡改的方式实现,从而使攻击者难以获得剥离DRM保护或模拟DRM客户端实现所需的敏感信息。

许多最终用户设备(特别是移动智能电话)使用Android作为操作系统。该开源操作系统允许由最终用户的容易修改,这可能潜在地导致关于内容的未经授权分发的显著问题。嵌入式硬件DRM实现的部署使得能够实现向这样的平台的内容分发,而同时保护其免受未经授权的分发。例如,Galaxy S3移动智能电话包含DRM客户端的硬件辅助和非常鲁棒的实现。诸如所使用的硬件电路、鲁棒性标准和用于密钥的安全存储之类的DRM客户端的实现细节是各种硬件提供商和/或DRM系统提供商所专有的。

PCT/CN2013/073241描述了一种用于客户端设备(即,最终用户设备)的挑战响应方法。具体地,PCT/CN2013/073241涉及客户端设备中的挑战响应节点锁定功能的DRM实现。“挑战”是包括随机数的DRM保护内容。客户端设备能够使用其自己的DRM系统来从挑战提取随机数以便提供随机数作为响应。挑战数据可以是使用加密密钥加密的任何内容,该内容包括随机数。然而,在下文参照图1和图2描述的具体实现中,挑战数据是DRM保护音频内容(例如DRM保护音频文件或流送DRM保护音频内容)。

图1的系统10包括乱数发生器12、误差保护模块14、音频数据插入模块16和安全DRM模块18。乱数发生器12(其可以是伪乱数发生器)可操作(或布置)成生成随机数。应当注意,对于一些应用,随机数可以包含非随机信息。误差保护模块14是系统的可选元件,并且可操作成利用误差校正码(ECC)对随机数进行编码,以便保护其免受随机数恢复过程中的数据失真。换句话说,误差保护模块14用于向随机数添加冗余,使得即使在例如不完全数据传输的情况下,也可以由客户端设备恢复随机数。

音频内容(例如音频文件)和ECC保护的随机数被提供为对音频数据插入模块16的输入。音频数据插入模块16可操作成将ECC保护的随机数插入到音频内容中。存在ECC保护的随机数可以嵌入到音频内容中的多种方式。ECC保护的随机数可以被添加为音频水印。可替代地,使用调制编码技术将ECC保护的随机数包括在内容中。例如,ECC保护的随机数可以使用音频频移键控(AFSK)或类似的调制编码格式来编码/嵌入。嵌入ECC保护的随机数作为音频水印产生与使用AFSK等进行嵌入相比更令人愉快的音频输出,但是可能需要更长的音频片段来嵌入ECC保护的随机数。音频数据插入模块16的输出是明文/明码(即未加密的)音频内容(即明文音频文件)。

安全DRM模块18可操作成为具有特定“DRM客户端ID”的特定客户端设备生成音频内容的DRM保护版本。事实上,“DRM客户端ID”与特定客户端设备的安全DRM模块相关联。图1的安全DRM模块18可操作成使用DRM客户端ID来处理明文音频内容,以便生成适于在所标识的客户端设备上回放的音频内容的DRM保护版本。安全DRM模块18使用基于用于所标识的客户端设备的一个或多个加密密钥(即,与客户端设备的安全DRM模块相关联的密钥)的加密来实现这一点。加密密钥和加密算法仅为DRM系统所知。例如,加密密钥可以仅为安全DRM模块18所知,并且对应的解密密钥可以仅为特定客户端设备的安全DRM模块所知。存在适于在这样的DRM系统中使用的许多密码技术。DRM保护音频内容20由安全DRM模块18输出。

图2示意性地图示了用于实现PCT/CN2013/073241的挑战响应方法的客户端设备30(例如,移动电话或平板计算机)。客户端设备30包括输入模块32、安全DRM模块34、音频解码器36、扬声器38、麦克风40、音频记录器42、处理器44和输出模块48。客户端设备30的这些元件一起执行节点锁定功能(由图2中的虚线52示意性地示出)。

由图1的安全DRM模块18输出的DRM保护音频内容20形成“挑战”(或挑战数据)。输入模块32可操作成接收挑战数据20并将其传递到客户端设备30的安全DRM模块34。例如,输入模块32可以将具有再现请求的挑战数据发送到安全DRM模块34。安全DRM模块API(未示出)可以用于激活安全DRM模块34。

安全DRM模块34可操作成使用安全DRM模块34的解密密钥来解密挑战数据20。具体而言,安全DRM模块解析与DRM保护音频内容20相关联的DRM编码使用规则,然后根据这些规则来解密DRM保护音频内容20。使用安全数据信道将解密后的音频内容传送到音频解码器36。

音频解码器36使用客户端设备30的扬声器38产生可听输出。因此,安全DRM模块通过音频解码器36和扬声器38有效地输出音频内容的可听版本。

客户端设备30的麦克风40可操作成接收由扬声器38输出的音频内容的可听版本。音频记录器42可操作成记录由麦克风40捕获的声音,以便提供音频内容的记录。音频内容的这样的记录将是不完美的,而使得记录是(如由音频解码器36和扬声器38输出的)原始音频内容的修改版本。例如,扬声器38和麦克风40的质量将影响记录(特别是在某些频带中)。记录还将捕获环境噪声。因此,由麦克风40接收(并且由音频记录器42记录)的音频内容的可听版本通常将略微不同于由扬声器38输出的音频内容的可听版本。

处理器44可操作成处理记录以获得随机数。处理器包括音频数据提取模块45和误差校正模块46。音频数据提取模块45可操作成访问由音频记录器42做出的音频内容的记录。音频数据提取模块45还可操作成使用信号处理技术从记录恢复ECC保护的随机数。换句话说,音频数据提取模块45可操作成使用信号处理技术从由麦克风40所接收的音频内容的版本提取随机数。由音频数据提取模块45使用的信号处理技术将依赖于随机数被包括在音频内容中所采用的方式(例如作为音频水印或使用调制编码技术)。

因此,图2示意性地图示了PCT/CN2013/073241的布置,其中通过捕获模拟输出(即,通过记录音频文件的回放)并处理内容的所捕获的模拟输出以提取嵌入的数据信号来获得解密的内容。

在从音频内容提取了ECC保护的随机数之后,音频数据提取模块45将ECC保护的随机数传递到可选的误差校正模块46。误差校正模块46可操作成对ECC保护的随机数进行解码,以提供原始的随机数。输出模块48可操作成从处理器44的误差校正模块46接收随机数,并且将随机数提供为节点锁定功能52的输出。因此,随机数可以被认为是“响应”。

因此,DRM保护音频内容20在客户端设备30中用作对节点锁定功能52的挑战输入,以便获得响应50。响应50应当等于随机数(参见上文),并且将仅可由包含具有相关解密密钥的特定安全DRM模块34的特定客户端设备30获得。所使用的解密密钥可以对于特定的安全DRM模块34是唯一的(即仅为其所知),使得所有其他客户端安全DRM模块都不能解密挑战数据20。在其他情况下,所使用的解密密钥可以对于一组客户端安全DRM模块是唯一的(即仅为其所知),使得仅该组中的安全DRM模块能够解密挑战数据20,并且不在该组中的安全DRM模块不能解密挑战数据20。

在PCT/CN2013/073241的挑战响应方法中,应用发布包含挑战的DRM保护内容。保护内容只能在特定计算平台上再现。PCT/CN2013/073241的挑战响应方法由此使得安全应用能够防止克隆在不同的计算平台(例如,不同的客户端设备)上执行。



技术实现要素:

本发明提供了对于应用、虚拟机应用和web应用(脚本应用)可访问的用于现有设备的替代节点锁定(挑战响应)功能。

根据本发明的第一方面,提供了一种用于计算设备的挑战响应方法。该方法包括以下步骤:(a)在计算设备的安全模块处接收挑战数据,所述挑战数据包括使用加密密钥加密的图像内容,并且所述图像内容包括随机数;(b)所述安全模块通过使用与所述加密密钥相关联的一个或多个密钥的解密来恢复图像内容;(c)所述计算设备的安全模块输出所恢复的图像内容;(d)捕获如由所述安全模块输出的图像内容;(e)处理所捕获的图像内容以便获得随机数;以及(f)将所述随机数提供为响应。

有利地,所述挑战数据还包括权限对象,所述权限对象包括与所述图像内容相关的使用规则,并且所述安全模块可操作成根据所述使用规则输出所恢复的图像内容。

有利地,所述挑战数据还包括与所述加密密钥相关联的所述一个或多个密钥中的至少一个的加密版本,并且所述方法还包括所述安全模块通过解密恢复所述至少一个密钥。更有利地,在权限对象中提供所述至少一个密钥的加密版本。

在一个实施例中,挑战响应方法还包括从另一计算设备接收挑战数据。例如,可以从服务器接收挑战数据。

在另一实施例中,挑战响应方法还包括在计算设备上使用安全软件以通过使用加密密钥加密图像内容来生成挑战数据。

在又另一个实施例中,挑战响应方法还包括在计算设备上使用安全软件以基于随机数生成图像内容。在一个示例中,通过将随机数包括在预先存在的图像内容中来生成图像内容(例如,可以将随机数作为数字水印提供在预先存在的图像上)。在另一示例中,可以通过将随机数转换为图像来生成图像内容(即,从随机数的直接图像内容生成)。

有利地,所述挑战数据包括包含所述图像内容的视频内容。

有利地,所述挑战响应方法还包括再现如由所述安全模块输出的图像内容。更有利地,使用计算设备上的媒体播放器应用来执行所述再现。在一个实施例中,所述再现包括进行再现使得图像内容对于计算设备的最终用户是不可观察的。

有利地,所述捕获包括屏幕抓取(scraping)或数据抓取。

有利地,所述捕获包括直接访问如由所述安全模块输出的图像内容。

根据本发明的第二方面,提供了一种被布置为执行第一方面的挑战响应方法的计算设备。

根据本发明的第三方面,提供了一种计算机程序,所述计算机程序当由处理器执行时使得所述处理器执行第一方面的挑战响应方法。

根据本发明的第四方面,提供了一种存储根据第三方面的计算机程序的计算机可读介质。

本发明的其他优选特征在所附权利要求中阐述。

附图说明

现在将参照附图通过示例的方式描述本发明的实施例,其中:

图1示意性地图示了用于生成DRM保护音频内容以形成PCT/CN2013/073241的挑战响应方法中的挑战的系统;

图2示意性地图示了用于实现PCT/CN2013/073241的挑战响应方法的客户端设备;

图3示意性地图示了用于生成DRM保护视频内容以形成本发明的挑战响应方法中的挑战的系统;

图3A示意性地图示了用于生成DRM保护视频内容以用于在本发明的挑战响应方法中使用的示例性安全DRM模块;

图4示意性地图示了用于实现本发明的挑战响应方法的计算设备;以及

图5示意性地图示了用于实现本发明的本地挑战响应方法的计算设备。

具体实施方式

在下文的描述中和在附图中,描述了本发明的某些实施例。然而,将理解,本发明不限于所描述的实施例,并且一些实施例可以不包括下文描述的所有特征。然而,将显而易见的是,可以在本文中进行各种修改和改变而不脱离如所附权利要求中阐述的本发明的更广泛的精神和范围。

视频内容实施例

与PCT/CN2013/073241的音频节点锁定(如上文参照图1和图2所描述的)相比,本发明涉及基于图像的节点锁定。优选实施例涉及基于视频的节点锁定,如下文参照图3和图4所描述的。

在图3中示意性地示出了用于生成DRM保护视频内容的系统100。系统100包括随机数发生器112、误差保护模块114、内容数据插入模块116和安全DRM模块118。系统100可以是计算机服务器或其他计算设备。

随机数发生器112可操作(或布置)成生成随机数。随机数发生器可以包括乱数发生器和/或伪乱数发生器。应当注意,对于一些应用,随机数可以包含非随机信息。

误差保护模块114可操作成利用误差校正码(ECC)对随机数进行编码,以便保护其免受随机数恢复过程中的数据失真。换句话说,误差保护模块114用于向随机数添加冗余,使得即使在例如不完全数据传输(即,不完全数据恢复)的情况下,也可以由客户端(即,最终用户)计算设备恢复随机数。虽然向随机数添加误差保护是有利的,但这不是必要的。因此,误差保护模块114是系统的可选元件。

视频内容(例如视频文件)115和ECC保护随机数被提供为对内容数据插入模块116的输入。(当然,将理解,如果省略误差保护模块114,则随机数本身被提供为对内容数据插入模块116的输入,而不是输入ECC保护随机数。)内容数据插入模块116可操作成将ECC保护随机数插入到视频内容115中。存在ECC保护随机数可以被嵌入到视频内容115中所采用的多种方式。在一个实施例中,ECC保护随机数可以被添加为图像水印或视频水印。可替代地,使用另一编码技术在视频内容115中包括ECC保护随机数。例如,相当简单的方法是使一些编码参数(DCT系数、运动矢量等)适应于将ECC保护随机数嵌入到视频内容115中。内容数据插入模块116的输出是明文/明码(即,未加密的)视频内容(即,明文视频文件)。

安全DRM模块118可操作成为具有特定“DRM客户端ID”的特定计算设备(客户端设备)生成视频内容的DRM保护版本。实际上,“DRM客户端ID”与特定计算设备的安全DRM模块相关联。图3的安全DRM模块118可操作成使用DRM客户端ID来处理明文视频内容,以便生成适于在所标识的计算设备上回放的视频内容的DRM保护版本。安全DRM模块118通过使用一个或多个内容加密密钥(CEK)加密视频内容来实现这一点。当使用对称加密密码时,(多个)解密密钥(其将由所标识的客户端计算设备用来解密加密的视频内容)与(多个)加密密钥相同。换句话说,(多个)解密密钥是(多个)CEK。在该对称情况下,还必要的是,向所标识的客户端计算设备提供(多个)CEK(或与CEK相关联的一个或多个密钥)。这可以通过以加密形式将(多个)CEK包括在权限对象中来完成,所述权限对象通过安全DRM模块118而与加密的视频内容封装。下文提供进一步的细节。当使用非对称加密密码时,(多个)解密密钥与(多个)加密密钥不相同,但是与(多个)加密密钥相关联(即,(多个)解密密钥是与(多个)CEK相关联的(多个)密钥)。例如,加密密钥可以是与客户端计算设备及其DRM客户端ID相关联的公钥,并且解密密钥可以是客户端计算设备的对应的私钥。加密密码/算法可以是已知的(标准的)密码功能,诸如DES或AES。(多个)CEK中的至少一些(以及用于非对称密码的相关联的(多个)解密密钥)将仅为DRM系统所知(即,仅为安全DRM模块118和/或将用于内容的解密的客户端计算设备中的对应的DRM模块所知)。将理解,存在适于在这样的DRM系统中使用的许多密码技术,并且这些将不在此进一步描述。

有利地,安全DRM模块118还可操作成将加密的视频内容与相关联的权限对象219封装,以便形成DRM保护视频内容120,如在图3A中示意性地图示的。安全DRM模块118包括加密模块和内容封装器或多路复用器(multiplexer)223。此外,安全DRM模块118可访问特定客户端计算设备的DRM客户端ID,安全DRM模块118可操作成为所述特定客户端计算设备提供DRM保护内容120。在一个实施例中,安全DRM模块118包含其中存储多个DRM客户端ID和相关联的密钥的数据库。在该情况下,安全DRM模块118可以通过访问数据库来生成用于特定客户端计算设备的权限对象219,以便获得对于生成权限对象219所需的DRM客户端ID及相关联的使用规则和(多个)CEK。

包括随机数的视频内容被输入到安全DRM模块118的加密模块217中,并且使用CEK来加密。加密的视频内容然后由加密模块217输出,并由安全DRM模块118的内容封装器223与相关联的权限对象219封装。由安全DRM模块118输出的内容120然后包括加密的视频内容和权限对象219二者。权限对象219内的数据可以被加密或可以不被加密。下文进一步描述权限对象219。

权限对象219可以包括限定一旦解密则如何允许使用加密的视频内容的数据。具体地,权限对象219可以用于配置对解密的视频内容的访问权限。重要地,权限对象219可以被配置为允许解密的内容的屏幕抓取(或数据抓取),以使得客户端计算设备130的数据捕获模块142能够获得相关数据以提供响应(以下参照图4提供进一步的细节)。权限对象219可以包括限定视频内容可以仅对于客户端计算设备中的(多个)特定软件应用是可访问的数据,和/或可以包括限定视频内容仅被查看预定次数、或在特定时间窗口期间被查看等的数据。权限对象的使用规则可以替代地/另外地实施对节点锁定功能的最大调用数(再次参见图4和相关联的描述以获得进一步的细节)。

权限对象219还可以包括与(多个)加密密钥相关联的一个或多个密钥的加密版本。例如,(多个)解密密钥可以以加密形式提供为权限对象219的部分。可替代地,有可能提供可以用于获得(多个)解密密钥或类似物的种子(或密钥)的加密版本。如上所述,对于对称加密密码,这意味着权限对象219包括以加密形式的(多个)CEK(或与(多个)CEK相关联的一个或多个密钥)。对于非对称密码,还可以包括(多个)解密密钥的(或与加密密钥相关联的一个或多个其他密钥的)加密版本,如果期望的话。重要的因素是仅指定的客户端计算设备(即,与DRM客户端ID相关联的最终用户设备)应当能够解密加密的内容。因此,(多个)解密密钥应当仅为该计算设备所知(如在上文的示例中,其中CEK是设备的公钥,并且解密密钥是设备的私钥),或者足够的信息应当作为权限对象219的一部分以加密形式提供给设备,使得该设备单独能够获得(多个)解密密钥。例如,在对称密码示例中,(多个)CEK可以以加密形式作为权限对象219的一部分以使得需要知晓该设备的DRM客户端ID或私钥来使得能够解密(多个)CEK的方式被提供。权限对象219可以进一步限定对(多个)解密密钥的使用的任何限制。例如,使用限制可以包括可以使用(多个)解密密钥的次数、在其期间可以使用(多个)解密密钥的时间窗口等。

安全DRM模块输出DRM保护视频内容120,其包括加密的视频内容和相关联的权限对象。

图4示意性地图示了用于实现本挑战响应方法的计算设备130。计算设备130可以是客户端设备(即,最终用户设备),并且旨在处理由图3的安全DRM模块118输出的受保护的DRM内容120。示例性计算设备130包括移动设备(诸如智能电话或平板电脑)、PC和膝上型电脑。还设想了其他计算设备130。

计算设备130包括输入模块132、安全DRM模块134、内容解码器136、内容再现模块138、内容输出模块140、数据捕获模块142、处理器144和输出模块148。计算设备130的这些元件一起执行节点锁定功能(由图4中的虚线152示意性地示出)。显然,计算设备130可以包括与计算设备130的其他功能相关的其他模块/元件。一些模块/元件(包括图4中所示的那些中的一些)可以由计算设备130的多个功能块共享。因此,图4仅是计算设备130的一些元件的示意性描绘。

由图3的安全DRM模块118输出的DRM保护视频内容120形成本挑战响应方法中的“挑战”(或挑战数据)。输入模块132可操作成接收挑战数据120并将其传递给计算设备130的安全DRM模块134,使得在安全模块134处接收挑战数据120。例如,输入模块132可以将具有再现请求的挑战数据发送到安全DRM模块134。可以使用安全DRM模块API(未示出)来激活安全DRM模块134。输入模块132可以与安全DRM模块134分离(如在图4中示意性地示出),或者可以形成安全DRM模块134的一部分,使得安全DRM模块134本身接收挑战数据120。

安全DRM模块134可操作成使用与(多个)加密密钥相关联的一个或多个密钥来解密挑战数据120。换句话说,安全模块134能够通过解密来恢复视频内容。如上所述,与(多个)加密密钥相关联的一个或多个密钥已经为安全DRM模块134所知(例如,解密密钥是安全DRM模块134的私钥),或者与(多个)加密密钥相关联的一个或多个密钥基于作为挑战数据120的一部分而接收的权限对象219对于安全DRM模块134是可访问的(例如,权限对象219包括与(多个)加密密钥相关联的一个或多个密钥的加密版本)。具体地,安全DRM模块134解析与DRM保护视频内容120相关联的DRM编码的使用规则,然后根据这些规则解密DRM保护视频内容120。在上述非对称加密密码实施例中,解密密钥可以是安全DRM模块134的私钥,并且加密密钥可以是与安全DRM模块134相关联的公钥,其为图3的安全DRM模块118所知。可替代地,在上述对称加密密码实施例中,解密密钥与加密密钥相同。在该情况下,加密密钥是由计算设备的安全DRM模块134和被用于加密视频内容以形成挑战数据120的安全DRM模块118二者共享的对称秘密CEK。在通过解密恢复了视频内容之后,安全DRM模块134根据在权限对象219中指定的任何使用规则输出所恢复(即,解密)的视频内容。

将解密的视频内容传送到内容解码器136。在解码了视频内容之后,内容再现模块138以某种方式在计算设备130上再现视频内容。在优选实施例中,内容再现模块138是用于在计算设备130上再现DRM保护内容的媒体播放器应用。所再现的内容可以经由可选的内容输出模块140输出。

根据权限对象219中的任何使用规则由计算设备130的数据捕获模块142捕获解密的视频内容(即,安全DRM模块134的输出)的至少一个片段。该捕获可以发生在使用内容解码器136解码内容之前或之后,以及在使用内容再现模块138再现内容之前或之后。因此,图4示出了从安全DRM模块134到数据捕获模块142的三个单独路径。在每种情况下,在经由内容输出模块140输出内容之前,由数据捕获模块142捕获数据。在一些DRM系统中,权限对象219内包含的DRM使用规则可以用于控制计算设备130上的哪些软件应用具有对安全DRM模块134的输出的访问权限。因此,权限对象219可以被配置为限定哪个数据捕获路径由特定软件应用使用。使用哪个数据捕获路径可以影响是否在安全DRM模块134和内容解码器136之间、在内容解码器136和内容再现模块138之间、以及在内容再现模块138和内容输出模块138之间使用安全数据信道。安全数据信道旨在防止其他应用访问解密的视频内容。上述三个数据信道中的至少一个应当是不安全的(至少对于节点锁定功能),以便使得节点锁定功能152能够直接拦截解密的数据。这可以通过权限对象219基于使用规则将三个数据信道中的至少一个配置为对于特定软件应用不安全来实现。由数据捕获模块142捕获的视频片段的版本通常将是原始视频内容120的确切副本(即,未经修改的版本)。安全DRM模块134的输出通常不可由非特权软件应用(即,应用的DRM可信区域之外的软件应用)观察。然而,为了实现节点锁定功能,权限对象219的DRM使用规则被配置为使得安全DRM模块134的输出在某些情况下是可观察的。例如,权限对象219可以用于将安全DRM模块134配置为允许对安全DRM模块134的输出的第三方访问。这样的第三方访问可以具有所应用的限制(例如仅由指定的(多个)非特权软件应用访问,仅访问特定的次数等)。在另一示例中,权限对象可以用于将安全DRM模块134配置为将消息(使用通信信道或共享数据文件)发送到指定的非特权软件应用。

在优选实施例中,数据捕获模块142通过屏幕抓取来捕获视频片段。换句话说,数据捕获模块142为屏幕抓取模块,或至少包括屏幕抓取模块。这提供了与上文参照图1和图2描述的音频捕获机制相比更鲁棒的数据捕获机制。屏幕抓取通常与来自源的视觉数据的程序化集合相关联,而不是如在web抓取中那样解析数据。一些屏幕抓取技术包括从设备的屏幕捕获位图数据并且通过OCR引擎运行它,或者在GUI应用的情况下,通过程序化地获得对其底层编程对象的引用来查询图形控件。在当前情况下,计算设备130可以包括在其上再现内容的屏幕或监视器。换句话说,内容输出模块140可以被认为是屏幕。可替代地,可以再现受保护的内容,以使得图像或视频片段对于最终用户不可观察(即不可见回放)。例如,视频片段的图像内容可以显示在屏幕外(off-screen)窗口中或不可见窗口中,并且视频片段的音频内容可以以非常低的音量在静音扬声器上或在虚拟扬声器上回放。应当注意,仍然有可能对内容的这样的不可见或静音回放进行屏幕抓取或数据抓取。如果使用不可见的回放,则节点锁定应用可以使用大范围的数据嵌入技术来嵌入随机数,因为不必要插入不可见的水印。

处理器144可操作成访问由数据捕获模块142捕获的视频片段。处理器144可操作成处理由数据捕获模块142捕获的视频片段以获得随机数。处理器144进一步可操作成使用信号处理技术从所捕获的视频片段恢复ECC保护的随机数。换句话说,处理器144可操作成使用信号处理技术来从由数据捕获模块142捕获的视频片段提取随机数。由处理器144使用的信号处理技术将依赖于随机数被包括在视频内容中所采用的方式(例如,作为视频水印或使用调制编码技术)。这样的技术对于本领域技术人员将是熟悉的。

在从所捕获的数据提取了ECC保护的随机数之后,处理器144将ECC保护的随机数传递到误差校正模块146。误差校正模块146可操作成解码ECC保护的随机数,以提供原始随机数。类似于误差保护模块114,误差校正模块146是系统的可选元件。如果随机数不具有用于误差保护目的的附加冗余,则不需要误差校正模块146。

输出模块148可操作成从误差校正模块146接收随机数,并将随机数提供为节点锁定功能152的输出。因此,在本挑战响应方法中,随机数可以被认为是“响应”。

因此,DRM保护视频内容120在计算设备130中用作对节点锁定功能152的挑战输入,以便获得响应150。响应150应当等于随机数(参见上文),并且将仅可由包含具有相关密钥信息的特定安全DRM模块134的特定计算设备130获得。通常,密钥信息对于特定的安全DRM模块134将是唯一的(即,仅为其所知),使得所有其他客户端安全DRM模块不能解密挑战数据120。在其他情况下,设想密钥信息对于一组客户端安全DRM模块将是唯一的(即,仅为其所知),使得仅该组中的安全DRM模块能够解密挑战数据120,并且不在该组中的安全DRM模块不能解密挑战数据120。然而,对于每个安全DRM模块134唯一的解密密钥(或密钥集合)是优选实施例。

虽然使用模拟路径来捕获图2的安全DRM模块34的所再现的音频输出,但是图4中所示的布置使用数据捕获模块142,其在保护内容回放链的更早阶段处捕获安全DRM模块134的数字输出。这可能需要将安全DRM模块134配置为禁用一些数据保护措施(measure),例如这是通过在受保护的DRM内容120中的权限对象219的使用规则中包括相关参数。例如,受保护的DRM内容120可以被配置用于在没有防止屏幕抓取的安全措施的情况下回放。如上所述,这样的配置可以特定于在计算设备130上执行的(多个)特定软件应用。

依赖于由数据捕获模块142拦截和捕获数据所处的位置,需要由处理器144使用不同的算法来生成响应。在非常简单的示例中,视频是包含具有对随机数进行编码的DCT系数的单个DCT块的单个图像的重复。DCT系数可以直接(即,在不需要将随机数插入到预先准备的或预先存在的视频/图像内容115中的情况下)编码随机数。可替代地,可以基于随机数来修订预先准备的图像/视频115的至少几个DCT系数。在该简单的DCT编码示例中,由处理器144的数据处理将包括(a)所捕获的数据的DCT的计算,以及(b)处理DCT系数来获得编码的随机数。另一个简单的变体可以涉及基于随机数编码运动矢量。由处理器144的数据处理然后将包括(a)使用“零”移位(shift)图像来估计运动矢量,以及(b)处理(多个)运动矢量来获得编码的随机数。如将由本领域技术人员所理解的,存在音频和视频水印嵌入的领域中描述的广泛范围的更复杂的数据插入机制。

出于上述视频内容示例的目的,视频内容是否包括音频内容以及图像是不相关的。因此,术语“视频”在本文旨在包括静音视频以及包括伴随音频音轨的视频。

另外,将理解,视频内容不需要包括运动图片,而是可以作为代替包括静止图像或通过静止图像的重复所制作的视频。在任一情况下,可以使用相同的节点锁定方法,但是嵌入随机数所采用的方式可以改变——例如运动矢量的使用将不适于静止图像。

软件应用中的节点锁定

当前基于DRM的挑战响应方法可以用于软件应用中的节点锁定。特别地,上文关于图3和图4描述的方法提供了用于软件应用的节点锁定技术,其捕获包含标识数据模式(或随机数)的DRM保护视频片段(即挑战),处理所捕获的片段以提取标识模式(即响应),并且在软件应用的执行期间在进一步的计算中使用它。由于DRM保护文件120被配置用于特定的最终用户设备,所以视频文件不能在其他最终用户设备上回放。DRM客户端(即,安全DRM模块134)的基于硬件的实现因此将标识模式(或随机数)链接到特定的最终用户设备130。该节点锁定功能可用于原生软件应用。用于(DRM保护的)视频文件的回放的广泛可用浏览器支持使得本发明能够为web应用提供节点锁定功能。

例如,软件应用(例如,web应用或原生应用)可以包含一些个性化数据,其包括目标针对特定的最终用户设备130的DRM保护视频内容120。如上所述,DRM保护视频内容120可以看作挑战。应用将该挑战120呈现给DRM保护视频回放模块(即,图4的节点锁定功能),并且从所捕获的视频片段的信号处理获得对应的响应150,如上所述。应用可以具有存储在个性化数据中的若干挑战120,以便避免重放攻击。回复攻击涉及在除了预期的最终用户设备130之外(即,除了应用针对其个性化的设备之外)的最终用户设备上成功地执行个性化应用。这通过从预期设备130的屏幕捕获视频片段并使用该先前记录的视频信号在另一个最终用户设备中提供有效响应来完成。防止重放攻击还可以通过在DRM保护视频内容120的权限对象219中设置适当的使用规则(例如,播放一次)来实现。

用于认证的节点锁定

当前基于DRM的挑战响应方法可以用于诸如web应用的软件应用中的计算设备的认证。在该情况下,在计算设备130上执行的软件应用从用于生成挑战120的远程web服务器100接收挑战120(即,DRM保护视频内容120)。该认证实现可以被认为是一系列顺序步骤,如下文参照图3和图4中所示的特征所描述的:

1. 应用(在计算设备130上执行)向服务器100发送针对挑战的请求。该请求包括计算设备130的DRM身份(即,请求包括计算设备130的安全DRM模块134的DRM客户端ID)。

2. 服务器100使用随机数发生器112生成随机数。

3. 服务器100可选地使用误差保护模块114向随机数添加误差保护。

4. 服务器100使用内容数据插入模块116将(误差保护的)随机数嵌入到某个视频内容中。

5. 服务器100使用其安全DRM模块118对视频内容进行DRM保护。可替代地,服务器100可以请求外部DRM服务器系统对所生成的视频内容进行DRM保护。DRM保护视频内容形成挑战120。

6. 然后,服务器100将挑战120发送到在计算设备130上执行的web应用,如步骤1中所请求的。

7. 运行在计算设备130上的应用在解码、再现和输出DRM保护视频内容之前(分别使用计算设备的内容解码器136、内容再现模块138和内容输出模块140)接收并通过解密恢复挑战120(分别使用计算设备的输入模块132和安全DRM模块134)。

8. 计算设备130然后使用数据捕获模块142来捕获DRM保护视频内容的至少一个片段。

9. 然后,计算设备130使用处理器44处理所捕获的片段,以便获得ECC保护的随机数。

10. 计算设备130可选地使用误差校正模块146从ECC保护的随机数获得随机数。随机数由输出模块148输出为响应150。

11. 响应150被返回(即发送)到服务器100,以证明应用正在预期平台上(即,在经授权的计算设备130上)执行。该方法可以用于认证。

12. 计算设备130可以在应用的执行中使用响应150。例如,响应150可以在应用内使用,以至少部分地使得能够在最终用户设备130上继续执行应用。

如上所述,还有可能在DRM保护视频内容120中包括权限对象219,以用于进一步配置计算设备130的安全DRM模块。

本地节点锁定实施例

如上文关于软件应用中的节点锁定所描述的,可以由软件应用存储多个服务器生成的挑战,以使得能够在计算设备130上实现节点锁定。这样的挑战将需要被加载到计算设备130上的软件应用中。该加载可以使用到服务器100的通信接口或软件应用的安装期间的预先封装步骤。这对软件应用造成一些约束,因为通信链路必须可用,或者可以使用有限数量的预先封装挑战。类似地,上述认证实现需要服务器100和计算设备130之间的通信链路,以使得能够执行步骤1、6和11,因为这些步骤中的每一个都需要服务器100和计算设备130之间的通信。因此,在本发明的替代实施例中,提供了完全在诸如计算设备130之类的本地计算设备上执行的本地节点锁定功能。

(当使用对称加密密码时)DRM系统工作的方式是使用权限对象来递送内容加密密钥(CEK)。内容的封装使用内容封装器来完成,所述内容封装器取得CEK,使用它来加密内容,并且将具有权限对象的加密内容封装到受保护的内容文件中。因此,如果内容封装器功能(例如,图3的挑战生成功能)在软件应用本身内(即,在计算设备130上)实现,则变得有可能发布随机节点锁定挑战。下文描述这样的实施例。

节点锁定操作的一个重要方面是应当存在验证响应的方式,因此软件应用可以确信它正在预期的平台(即经授权的计算设备)上运行。从所捕获的数据计算响应的过程可以在不安全的软件段中实现。换句话说,图4的数据捕获模块142、处理器144、误差校正模块146和输出模块148都可以被实现为计算设备130上的不安全软件模块。然而,为了防止攻击,有必要使用安全软件技术来实现图3的挑战生成功能。挑战生成功能将随机数发生器112用于生成随机数(其在该本地节点锁定实施例中充当挑战),将可选的误差保护模块114用于随机数的可选误差保护,将内容数据插入模块116用于将(误差保护的)随机数嵌入到视频内容段中,并且使用在该情况下充当内容封装器的安全DRM模块118。另外,配置软件应用的继续执行以依赖于预期响应的任何软件应当使用安全软件技术。

存在本领域中已知的许多安全软件技术。例如,软件混淆(obfuscation)和/或白盒密码可以用于实现上述安全软件。这样的技术在下文的附件中简要讨论,并且一些技术使用变换的数据域来以安全的方式处理敏感数据。特别地,原始数据被存储和处理为经变换数据,使得攻击者难以或不可能导出原始数据。一般,安全软件被布置成使得相关联的软件代码具有针对白盒攻击的抵抗力。

在一个实施例中,预先封装的内容样本可以与软件应用(在计算设备130上)一起包括为经变换数据。然后,嵌入过程(使用内容数据插入模块116)可以使用经变换的(并且可能误差保护的)随机数在经变换数据域中发生。这有效地对攻击者隐藏嵌入进程。具有嵌入响应的变换内容可以被传递到白盒加密模块,以使用配置为对变换数据进行操作的白盒加密进行加密。白盒加密模块配置有固定CEK或具有加载CEK的设施。

图5示意性地图示了完全在诸如计算设备130的本地计算设备上执行的本地节点锁定功能252的示例。图5中的与图3、3A和4中所描绘的那些组件类似的组件利用与图3、3A和4中使用的那些参照标记相同的参照标记进行描绘。计算设备130包括随机数发生器112、误差保护模块114、内容数据插入模块116、安全DRM模块118(包括白盒加密模块317(代替通用加密模块217)和内容封装器223,如由虚线示意性地示出)、安全DRM模块134、内容解码器136、内容再现模块138、内容输出模块140、数据捕获模块142、处理器144和输出模块148。除了随机数发生器112之外,计算设备130的这些元件一起执行节点锁定功能(由图5中的虚线252示意性地示出)。在替代实施例中,误差保护和误差校正可以发生在节点锁定功能252之外,如果期望的话。

在使用图5的计算设备时,考虑计算设备130上的希望使用(即调用)节点锁定功能252的软件应用。软件应用使用随机数发生器112来生成随机数作为经变换数据。如上所述,随机数可以是随机的、伪随机的或非随机的。随后使用随机数来生成“挑战”。经变换的随机数由节点锁定功能252的(可选的)误差保护模块114接收,以在需要时对经变换的随机数应用误差保护。然后,将经变换的随机数嵌入在预先封装的内容样本115中,其与软件应用一起被包括为经变换数据。嵌入过程(使用内容数据插入模块116)使用经变换的(并且可能误差保护的)随机数在经变换数据域中发生。具有嵌入的随机数的经变换内容被传递到白盒加密模块317,以使用配置为对经变换数据进行操作的白盒加密进行加密。白盒加密模块317配置有固定CEK或具有加载CEK的设施。安全软件(白盒密码)技术在白盒攻击场景下使CEK安全。然后将加密的内容和随机数数据传递到内容封装器或多路复用器223,以将加密的数据与关联于内容的使用的权限对象219一起封装,从而输出充当挑战的受保护的DRM内容120。上文在“视频内容实施例”部分中详细描述了权限对象219。然而,应当注意,当安全DRM模块118(其生成受保护的DRM内容120)可操作成在客户端计算设备130上(如图5中)而不是在服务器计算设备100上(如图3中)执行时,该模块118缺少权限对象生成能力。作为代替,它使用具有合适的密钥和使用规则的预先封装的(多个)权限对象。

安全DRM模块134接收受保护的DRM内容120,并且可操作成通过使用与加密密钥相关联的一个或多个密钥的解密来恢复组合的内容和随机数数据。具体地,安全DRM模块134解析封装在受保护的DRM内容120内的权限对象219中的DRM编码的使用规则,然后根据这些规则解密加密的视频内容。关于(多个)相关密钥的进一步细节在上文在“视频内容实施例”部分中给出。

在解密了组合的内容和随机数数据之后,来自安全DRM模块134的输出依次传递到内容解码器136、内容再现模块138和内容输出模块140。在该链中的某个点处,如上文参照图4所述,数据由数据捕获模块142捕获并且依次传递到处理器144、误差校正模块146和输出模块148,以便生成响应150。再次,该过程在上文参照图4描述。当然,在该本地实施例中,响应是经变换的随机数(即随机数在经变换数据域中)。

因此,图5的本地节点锁定实施例示出了受保护的内容回放以及从回放处理链生成响应150的步骤。此外,图5示出了内容保护和DRM封装。内容115和权限对象219与计算设备134的安全软件应用134相关联。图5未示出配置软件应用以验证来自受保护的内容回放的特定响应的步骤。尽管如此,上文已经描述了该验证过程。

变化

除非另有说明,否则以下变化可以以任何方式组合。

图3和图4图示了其中受保护的DRM内容120由服务器系统100生成并且该内容120形成对计算设备130的挑战的实施例,所述计算设备130本地地实现后续的节点锁定功能。相反,图5图示了其中所有功能(包括内容生成)在计算设备130中本地地实现的实施例。必要时使用安全软件技术。还设想了中间实现,其中图3的一些(但非所有)内容生成模块被移动到本地计算设备130。例如,误差保护模块114和内容数据插入模块116(或上述的等效的编码模块)可以在服务器100处实现,而用于生成DRM保护内容120的安全DRM模块118可以使用安全软件技术在计算设备130中本地地实现。

在替代实施例中,不需要提供其中嵌入随机数的视频内容115。作为代替,有可能将随机数本身编码为图像或视频文件,而不需要将随机数插入到另一段图像或视频内容115中。因此,本实施例涉及基于随机数的直接图像或视频内容生成。例如,可以使用条形码将随机数编码到图像中。甚至更简单的示例使用灰度值将随机数编码到图像中,其中每个像素是数据的字节的编码。因此,在本实施例中,预先封装的内容样本115和内容数据插入模块116被替换为用于将随机数编码为图像(或视频)格式的编码模块(未示出)。换句话说,使用编码模块将随机数本身转换为图像。

将理解,所描述的方法已经被示出为以特定次序执行的单独步骤。然而,技术人员将理解,这些步骤可以以不同的次序组合或执行,而仍然实现所期望的结果。

将理解,本发明的实施例可以使用各种不同的信息处理系统来实现。具体地,尽管附图及其讨论提供了示例性计算系统和方法,但是这些仅仅是为了在讨论本发明的各个方面时提供有用的参照而呈现的。本发明的实施例可以在任何合适的数据处理设备上执行,诸如个人计算机、膝上型电脑、个人数字助理、移动电话、机顶盒、电视、服务器计算机等。当然,系统和方法的描述已经被简化以用于讨论的目的,并且它们仅是可以被用于本发明的实施例的许多不同类型的系统和方法之一。将理解,逻辑块(例如,输入模块132和安全模块134)之间的边界仅仅是说明性的,并且替代实施例可以合并逻辑块或元件,或者可以对各种逻辑块或元件施加替代的功能分解。

将理解,上述功能可以被实现为作为硬件和/或软件的一个或多个对应的模块。例如,上述功能可以被实现为用于由系统的处理器执行的一个或多个软件组件。可替代地,上述功能可以被实现为诸如在一个或多个现场可编程门阵列(FPGA)上和/或一个或多个专用集成电路(ASIC)和/或一个或多个数字信号处理器(DSP)上的硬件,和/或其他硬件布置。在本文包含的或如上所述的流程图中实现的方法步骤可以均通过对应的相应模块来实现;在本文包含的或如上所述的流程图中实现的多个方法步骤可以一起由单个模块实现。

将理解,在本发明的实施例由计算机程序实现的情况下,则携带计算机程序的存储介质和传输介质形成本发明的各方面。计算机程序可以具有一个或多个程序指令或程序代码,其当由计算机执行时执行本发明的实施例。如本文所使用的术语“程序”可以是被设计用于在计算机系统上执行的指令序列,并且可以包括子例程、函数、过程、模块、对象方法、对象实现、可执行应用、小应用、小服务程序、源代码、目标代码、共享库、动态链接库和/或被设计用于在计算机系统上执行的其他指令序列。存储介质可以是磁盘(诸如硬盘驱动器或软盘)、光盘(诸如CD-ROM、DVD-ROM或蓝光盘)或存储器(诸如ROM、RAM、EEPROM、EPROM、闪存或便携式/可移动存储器设备)等。传输介质可以是通信信号、数据广播、两个或多个计算机之间的通信链路等。

附件——软件混淆和白盒密码

混淆的软件项可以以受保护的或混淆的方式存储秘密信息(诸如密码密钥),以由此使得攻击者更难以(如果不是不可能的话)推断或访问该秘密信息(而如果用户设备以未受保护的形式提供有软件项,则用户设备的操作者可能已经能够推断或访问该秘密信息)。

例如,软件项可以包括至少部分地基于要由软件项处理的一个或多个数据项的决策(或决策块或分支点)。如果软件项以未受保护的形式提供给用户设备(例如计算设备130),则攻击者可能能够迫使软件项执行,使得在处理决策之后遵循执行路径,即使该执行路径并不意味着被遵循。例如,决策可以包括测试程序变量B是TRUE(真)还是FALSE(假),并且软件项可以被布置成使得如果决策标识B是TRUE则遵循/执行执行路径PT,而如果决策标识B为FALSE则遵循/执行执行路径PF。在该情况下,如果决策标识B是TRUE,则攻击者可以(例如通过使用调试器)迫使软件项遵循路径PF,和/或如果决策标识B是FALSE,则迫使软件项遵循路径PT。因此,一些软件混淆技术旨在通过将一个或多个软件保护技术应用于软件项内的决策来防止攻击者这样做(或至少使攻击者更难以这样做)。

在另一示例中,软件项可以包括安全相关功能;访问控制功能;密码函数;以及权限管理功能中的一个或多个。这样的功能通常涉及使用秘密数据,诸如一个或多个密码密钥。该处理可以涉及使用一个或多个密码密钥和/或对或利用一个或多个密码密钥进行操作。如果攻击者能够标识或确定秘密数据,则发生了安全漏洞,并且可以避开由秘密数据保护的数据(诸如音频和/或视频内容)的控制或管理。因此,在一些软件混淆技术中,旨在通过将一个或多个软件保护技术应用于软件项内的这样的功能来防止攻击者标识或确定一段或多段秘密数据(或至少使攻击者更难以标识或确定一段或多段秘密数据)。

“白盒”环境是用于软件项的执行环境,其中软件项的攻击者被假定为具有对正被操作的数据(包括中间值)、存储器内容和软件项的执行/处理流程的完全访问和可见性。此外,在白盒环境中,假设攻击者能够例如通过使用调试器修改正被操作的数据、存储器内容和软件项的执行/处理流程——以该方式,攻击者可以在软件项上实验并尝试操纵软件项的操作,其中目的为避开初始预期的功能和/或标识秘密信息和/或出于其他目的。实际上,人们甚至可以假定攻击者觉知正在由软件项执行的底层算法。然而,软件项可能需要使用秘密信息(例如,一个或多个密码密钥),其中该信息需要对攻击者保持隐藏。类似地,将期望防止攻击者修改软件项的执行/控制流程,例如防止攻击者迫使软件项在决策块之后代替合法执行路径而采取一个执行路径。存在本文被称为“白盒混淆技术”的许多技术,其用于变换软件项,使得其抵抗白盒攻击。在“White-Box Cryptography and an AES Implementation”,S.Chow等人,Selected Areas in Cryptography,9th Annual International Workshop,SAC 2002,Lecture Notes in Computer Science 2595(2003),第250-270页和“A White-box DES Implementation for DRM Applications”,S.Chow等人,Digital Rights Management,ACM CCS-9 Workshop,DRM 2002,Lecture Notes in Computer Science 2696(2003),第1-15页中可以找到这样的白盒混淆技术的示例中可以找到这样的白盒混淆技术的示例,其全部公开内容通过引用并入本文。附加的示例可以在US61/055,694和WO2009/140774中找到,其全部公开内容通过引用并入本文。一些白盒混淆技术实现数据流混淆——参见例如US7,350,085、US7,397,916、US6,594,761和US6,842,862,其全部公开内容通过引用并入本文。一些白盒混淆技术实现控制流混淆——参见例如US6,779,114、US6,594,761和US6,842,862,其全部公开内容通过引用并入本文。然而,将理解,存在其他白盒混淆技术,并且其示例可以使用任何白盒混淆技术。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1