验证失败后可疑软件对象和签名的检测制造技术

技术编号:3613521 阅读:326 留言:0更新日期:2012-04-11 18:40
在验证下载软件对象的系统中提供了一种技术,确定失败的验证是由可疑的下载对象还是由可疑的单独传输的下载对象签名导致的。在软件对象传输设施中利用对签名进行运算的保密的压缩变换函数来生成表示签名的值。在接收下载软件对象的用户终端,如电视机顶盒中使用其反函数。为了冗余可以提供值的多重传输。在分析对软件对象下载方案的安全性的实际的或企图的攻击时这个系统特别有用。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】
本申请是共同转让的未决美国专利申请No.09/257,274(1999年2月24日提交)的继续。这样的软件对象可以包括,但不限于,存在于电视机顶终端中的应用代码、操作系统和相关组件(例如动态链接库—DLL)、基本输入/输出结构(BIOS)、Java虚拟机(JVM)、Java应用程序和小程序(applet),等等。这些对象(和/或它们的相关签名)可能由于纂改(tampenig)而变得“可疑”,这通常发生在盗版者或黑客企图攻击系统(对象在其上通讯)的安全保护的情况下。可疑的对象或签名的合法性有问题,不能被相信。PC环境下代码对象的验证的一个已知尝试是微软公司的“Authenticode”。这个产品使软件销售商能取得发行的可执行代码的数字签名。Authenticode只给数字签名提供一个签名者(Signer);代码用微软的私用密钥(不公开的)签名,用微软的公用密钥核对,公用密钥捆绑于操作系统的Authenticode验证码中。然而,在Authenticode对可执行代码提供数字签名保护的同时,它不为访问控制的目的(和产生收入的目的)而提供确定可执行代码的访问要求的任何手段。并且它仅能用于可执行代码。Java applet控制的另一个已知尝试是“Java Security”,用来防止Java applet检查或改变客户系统的文件,防止利用网络连接来躲避文件保护或数据保密措施。然而,就象Authenticode一样,如果软件对象不是基于Java的,则Java Security不提供任何验证,而且它也不为访问控制和产生收入的目的而提供与访问要求的联系。虽然上述的每一个产品都试图在PC环境中提供软件对象的保护和控制,以免未经授权的使用,但是它们都没有充分地解决与授权、验证和访问控制相关的问题,因此也没有提供一个满足MSO要求的最优解决方案。通过使用可下载的软件对象,诸如操作系统、库、Java虚拟机、应用软件、applet等,机顶终端呈现一个以娱乐为目的的计算环境,所以保护和控制软件对象以防止某个机顶终端未经许可的使用就显得极为重要。不仅每个软件对象本身需要验证,而且它的使用必须借助于授权许可以及控制特定软件对象可以使用哪些机顶终端资源而受MSO控制。这些措施实现了对象的确认和验证,确保不使用未经验证的软件对象。采取这些措施,机顶终端就不会出现与不遵循安全设计规则的对象,甚至是会对MSO网络和相关的机顶终端造成损害的病毒感染的对象相关的问题。共同转让的未决美国专利申请No.09/257,274(1999年2月24日提交)公开了一种生成签名并将签名与要下载应用于机顶终端的软件对象关联的方法和装置。机顶终端中的条件访问子系统具有检验签名的有效性的适当程序,这里的检验通过比较(i)由(例如)电视系统头端(headend)发来的签名和(ii)对象下载后在机顶终端处本地生成的签名而进行。如果检验失败,就没有办法确定是(a)下载的对象可疑还是(b)签名和传递它的消息可疑。在机顶终端,当验证操作失败时,提供一个确定对象是否经过验证或收到的签名是否可疑的方案是很有用的。本专利技术提供了具有上述和其它优点的方法和装置。在一个具体的实施例中,值v的第一和第二拷贝携带于软件对象的不同位置作为冗余。从软件对象提取出每一个拷贝。签名值s”对应于值v的第一拷贝。为值v的第二拷贝生成第二个签名值s2”。这个实施例的方法包括进一步地把签名值s2”与被传递的对象签名值s或计算出的对象签名值s’中的至少一个进行比较。如果s2”=s’,则消息m(s)中的签名值被指定为可疑。如果s2”=s,则软件对象被指定为可疑。如果s2”不等于s’或s,则与软件对象相关联的签名和消息m(s)被指定为可疑,虽然可以理解这是可能性最小的情况,并且也是不确定的,因为s2”也可能是可疑的。在这个实施例中,例如,值v可以附加在软件对象的开头和末尾,尽管其它位置也一样符合要求。还提供了另外的实施例和相应的装置。优选实施例说明为了防止信息信号,如有线或卫星信号的盗版,访问控制必须扩展到用户终端中的下载软件对象。在有线电视的环境下,这样的用户终端就是机顶盒。然而,本专利技术并不限于这样的机顶盒,它可以容易地应用于其它的终端用户设备。根据本专利技术的访问控制的目标是仅当下载软件对象的使用被授权并且该对象通过了验证检查时才允许使用。根据本专利技术的一个方面,软件对象的访问控制包括三个部分。第一部分定义特定服务(和相关对象)的访问要求,第二部分定义授权以让特定用户终端访问这些服务(和相关对象)。第三部分提供附加的识别信息以使用户终端(例如机顶盒)在对象使用之前对其进行验证。访问要求可以认为是锁,授权可以认为是钥匙。当授权与访问权利匹配(并且不要求上级控制(parental control))时,用户终端被允许访问该服务(和相关对象)。有两种消息帮助实现访问控制功能。第一种消息被称为授权控制消息(ECM),其传递包含授权控制记录(ECR)(在下面详细解释)的授权控制结构(ECS)(也在下面详细解释)。ECS也列举了使用服务(例如收看电视节目)或使用对象所需要的授权信息。第二种消息即授权管理信息(EMM)传递消费者所购买或被批准的授权。每一个消息的功能下面有更详细的描述。以下概述在软件对象验证之后如何授权运行。没有以这种方式授权(和验证)的所有软件对象不推荐在机顶盒或其它终端用户设备中使用。如果所有防止未授权软件对象存在于用户终端的预防性措施失效,则这种方法有助于发现这样的程序并阻止它们的使用或执行。在数字用户终端中,所有软件对象(包括与特定服务相关的应用程序)的使用必须由访问控制系统授权。软件对象被指定为包括可下载的代码或数据,这些代码和数据可以根据用户或MSO的意愿在用户终端中使用。首先,就象附图说明图1的方框图所说明的一样,对象验证签名装置10(OASD)使用全国访问控制器12(NAC)(在全国性的控制方案中)或本地访问控制器14(LAC)(在本地控制方案中),它们和多个机顶终端16a,16b等进行通信,以进行初始化、服务配置、管理和其它各种功能。这些装置的相互作用的细节在下文中详细描述。参照图2的流程图,在步骤20,为每一个软件对象(如应用程序,OS,DLL,JVM,Java应用程序和applet等)生成“指印”,也就是数字签名。软件对象的“指印”(签名)作为唯一的授权控制记录。例如,系统控制器(如MSO)想要放在这个范畴之内,即访问控制下的每一个软件对象与一个“指印”相关。注意“指印”可能只是能用已知方式加密的密钥的种子,也可能是由初始值通过把它作为图像或其它处理后得到的值(也就是说“指印”可能包括对象大小、校验和等。)特别地,“指印”(数字签名)可以由软件/硬件对象验证/签名装置(OASD)生成。这是在软件对象被校验和验证(例如通过本领域公知的检查、测试等)之后执行的。软件校验和验证的目的在于确保对象的设计和实施遵守一套预定的规则和要求,以求安全。这可以在与系统操作员协调下进行。签名可以基于独特的(可以是系统操作员特定的,也可以不是)对象标识符和加密循环冗余码(CRC),作为软件对象本身所独特的证明形式。本领域技术人员可以理解,可以使用任何公知的签名技术。如果几个软件对象与一种服务有本文档来自技高网...

【技术保护点】
一种分析失败的软件对象验证以确定是软件对象还是软件对象的签名可疑的方法,包括以下步骤: 从承载签名值的消息m(s)中提取出被传输的软件对象签名值s; 由软件对象计算对象签名值s’; 从软件对象提取出签名变换函数f(s)的值v; 通过将所述的签名变换函数f(s)的反函数f(s)↑[-1]应用于提取出的值v而生成签名值s”; 将所述的签名值s”与所述被传输的软件对象签名值s和所述计算出的对象签名值s’中的至少一个进行比较; 如果s”=s’,则将消息m(s)中的签名值指定为可疑;以及 如果s”=s,则将软件对象指定为可疑。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:雷姆萨法迪
申请(专利权)人:通用仪表公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1