验证失败后可疑软件对象和签名的检测的制作方法

文档序号:6540504阅读:318来源:国知局
专利名称:验证失败后可疑软件对象和签名的检测的制作方法
本申请是共同转让的未决美国专利申请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),作为软件对象本身所独特的证明形式。本领域技术人员可以理解,可以使用任何公知的签名技术。如果几个软件对象与一种服务有关,每一个又可以与一个签名相关,那么无论何时需要这个高层组合的验证,都可以给整个组提供一个总的签名。
进行到图2的步骤22,每一个软件对象的“指印”与一个服务层相关。卫星和有线电视的访问控制系统都使用“分层(tiering)”的概念。对于视听服务,层就是节目或服务的逻辑分组(退化的情况是一个节目或服务)。生成组是为了有利于根据MSO的用户概况(也就是指定的用户预定了哪些服务)控制用户对这些服务组的访问。如果把每一个可用的程序或对象的访问权作为单独的标志存储,则需要占用机顶终端中的大量存储器。层通常表示成能动态地定义和再定义的单一的二进制数位(比特)。因为每一层(或组)被表示为单一的比特,并且层被定义为与特定时间点提供的服务相关,所以层为用户的访问权提供了最紧凑的描述。紧凑是很重要的,因为访问权必须被存储在有限数量的安全存储器中,并且必须频繁地传输,这样可以减小带宽的要求。
一个或多个对象可以与一个指定的服务/应用相关并指定到相应的层。另外,这样的授权可以存储在网络另一端的服务器上(与机顶终端相对),在那儿机顶终端可以通过与服务器实时通讯而查询它的权利,但将这种信息分布在机顶终端内以达到安全、稳固、有效的目的,以及减小失败效果的单一点,是特别有好处的。一旦事件(或程序)结束,或对象不再作为特定服务而提供,更新层定义以反映这个改变。用户已被授权的授权层在相应的授权管理消息(EMM)(在下面的图1,步骤50中有进一步详细的描述)中传递。
有两种常见的层。第一种是预定层,预定层与在一段时间内有效并且要在实际使用之前购买的服务(和相应的对象)相关。第二种是每次使用付费层(Impulse Pay Per Use,IPPU,类似于视频节目的每幅图像付费),允许与特定服务/应用相关的一个或一组对象的即时购买(impulse purchase),可以有一个时间段与之相关。本领域的技术人员可以理解,在这两种层的基础上可以有其它使用、组合或条件。
再一次参照图2的步骤20,“指印”与服务层的关联可以由MSO利用附加条件访问(CA)控制器和现有的访问控制器(AC)指定。MSO的现有AC可以包括,例如,数字访问控制器(DAC),这可以从美国宾夕法尼亚州horsham的通用仪器公司(General InstrumentCorporation)得到。附加CA与相关于MSO网络的对象所特有的签名功能相对。当对象验证/签名装置(OASD)作为MSO的AC的相对设备时,可以有利于这项功能。象前面提及的那样,OASD功能可以由独立的装置(软件和硬件)实施,该装置与AC或DAC进行通讯,以获得访问请求的指配(该对象的相应层)。
附加的MSO特殊签名采取先前签名的对象的签名(也就是由OASD生成的“指印”或“数字签名”),并给它添加一个独特的对象标识符(如果需要MSO特殊对象标识符)。它也添加一个或多个授权层比特(这定义了与相应的软件对象相关的访问要求)和整个结构(下文中称为授权控制结构)(ECS)的总签名。这个独特的和保密的ECS编码在图2的步骤22中显示。
ECS可以包含对象的访问要求和相关的资源,或者可以将它分成两个ECS,一个用于对象的访问要求,另一个用于资源。如果资源授权独立于特定的对象且可以在机顶宽泛的基础上执行,则后一种方法通常是更适合的方法。但是,这两种方法(也就是说组合的ECS或单独的ECS)都可以使用,且不会影响怎样进行授权步骤。
付费和免费时期,和全球机顶终端资源限制,例如,可以由AC或DAC(它们又可以由计费系统接口指定)指定的设备来指定。这些参数也在ECM内作为ECS的一部分进行传输。
正如优选实施例这样,OASD的功能和MSO的签名和ECS的生成(步骤10-24)可以对于AC或DAC而组合成单一的装置中,因为这样更为简单。不管怎样,实际产品的划分不应该改变需要执行的功能步骤(但可以优化这些步骤)。
进行到图2的步骤26,在MSO,独特的ECS的集合形成关联表,用于分别与AC或DAC相关的全国或本地下载功能(下载器),并下载到数字机顶终端(下载的时候可以下载全部,或一次下载适当消息的入口)。无论何时下载器下载被保护的软件对象,它把保密的“服务层关联的软件对象指印”(ECS)提供给机顶终端,在传输之前这个指印最好通过公知的方式加密。下载器轮番地下载软件对象,而相关ECM中的ECS可以独立传送。本领域的技术人员可以理解,这种独立性提供了附加的安全措施。
申请人注意到,在本发明的一个可选实施例中,如果不需要授权,那么ECS可以只包含ECR(也就是说,不执行图2的步骤20)。在这个实施例中,ECS捎带在被下载的对象上。机顶终端检查ECS以执行验证检查。机顶下载功能下载对象的前N字节(由下载对象的报头信息所指出),忽略组成ECS的尾字节。但是,上述优选实施例比这个实施例更可取,有两个原因首先,ECS与对象的结合去掉了一个可取的安全措施,第二,这个实施例带来了只包含ECR的ECS和包含ECR与服务层关联的ECS之间的不一致的处理。然而该优选实施例不限制ECS怎样传送,也不把ECS限制于指定它的消息类型(EMM或其它控制消息)。
再回到图2的步骤26,下载器可以是AC或DAC的一部分,因为它可以看作是软件任务,它也可以从DCA分离出来,也就是说,运行于自己的硬件平台上的软件任务。
然后MSO利用先前提到的机顶终端特有的授权管理消息(EMM)来控制机顶终端对特定服务和相关对象或对象集的访问。这是通过计费系统设置的参数,根据客户概况,利用AC或DAC(都是硬件和软件装置)来完成的。这些消息还确定是否允许机顶终端使用那个软件对象,也可以指定允许该对象使用哪种机顶终端资源(如通讯端口、打印机端口、键盘等) (当需要用户层控制时)。另外,当用户明确地请求资源授权时,AC或DAC可以选择性地指定即时(impulse)授权层(用同样的信息传递该设定),以便于被请求的资源的即时授权。在资源被授权的情况下,例如在可即时授权的资源(通过在消息中把它和即时授权相关联)中,用户可以请求这个资源的即时(即立刻的)授权,从而避免了用户需要呼叫MSO来请求这样的授权。
最后,在步骤28,AC或DAC把EMM发送到每一个机顶终端,使它能下载和使用对象。当所有机顶终端中有一个对象需要资源控制时,在ECS中可以有资源控制的许可列表;否则,在EMM中将许可(访问权)分别传递到每一个机顶终端。然后访问控制器(或DAC)将授权发送到被授权接收这项服务和相关对象的机顶终端(这些授权在先前描述的EMM中指定)。
系统程序在机顶终端中生成和提供,并在机顶终端要检查与所请求的服务相关的软件对象的授权和验证时激活。该系统程序可以是机顶终端核心代码(BIOS)的一部分。也可以在操作系统(OS)或中间设备中提供。当下载操作系统或JVM(例如)时,驻留程序被激活以在下载之前检查授权,并在下载后验证这些对象。也可以有第二授权阶段(对同一个对象),以检查这些对象的使用/启用是否被允许。一旦操作系统被下载,接下来的任何涉及到该操作系统或JVM的对象使用激活OS中相应的授权和验证程序。
更明确地,机顶终端利用与指定的机顶终端和对象相关联的EMM和ECM分别验证和授权下载的软件对象。机顶终端可以在下载对象前、下载对象时或要使用对象时对于软件对象的授权请求检查授权。接下来的授权检查是可选的。
图3是一个流程图,说明了在机顶终端激活软件对象时的执行步骤。在步骤100出现了下载请求。然后在步骤110,当请求下载和使用软件对象时,BIOS、操作系统和/或Java虚拟机(JVM)调用机顶CA程序进行验证和授权检查。如果检查通过,则允许对象的使用或启用。机顶终端提供的安全处理器使CA检查更加容易。另外,可以补充一个寿命特征,其中安全处理器记录对象寿命,并检查它以防过期,对象说明(例如)从第一次(也就是安全处理器第一次进行对象验证和授权)使用时开始。如果对象过期,则安全处理器可以中断操作系统或JVM使对象失效或删除它。如果任一检查失败,则机顶终端可以记录结果并报告给访问控制器。这项特征也优选利用软件和硬件功能的结合实现。
特别的,如图3的步骤120所示,确定是否需要检查授权。如果不需要,如步骤130所示,软件对象可以在授权之前下载到机顶终端。如果在步骤120确定需要检查授权,那么程序运行到步骤200,在那里条件访问(CA)程序可以在下载对象之前确定机顶终端是否被授权下载该对象。这步是可选的,取决于软件对象的性质(也就是说,对于某些对象是必要的,某些对象不需要这个预先授权)。如果执行步骤200,并确定机顶终端被授权下载该对象,则程序进行到步骤210。然而,如果在步骤200确定机顶终端无权下载对象,则过程继续到步骤160,在这种情况下对象不被使用。
在步骤210,软件对象下载到机顶终端,程序进行到步骤150以进行验证,以下进行详细描述。
可选择的是,如果在步骤120确定没有必要检查授权,则软件对象被下载(步骤130),并且如步骤140所示,条件访问(CA)程序确定机顶终端是否有权使用/启用软件对象。在该确定的基础上,软件对象或可以或不可以被使用。所有未授权的软件对象不会有相应的层联系。软件对象(或此例中的“应用程序”)的编码“软件对象指印对层值”关联(ESC)只有MSO知道,并且通过定义对于每一个软件对象是唯一的,并受到保护。因此,如果在步骤140确定机顶终端无权使用/启用软件对象,则过程继续到步骤140,其中软件对象不被下载(或使用)。但是,如果与软件对象相应的层被授权,则过程继续到步骤150。
在步骤150,CA程序在安全处理器的帮助下,检查软件对象是否有相应的“指印”联系。依据结果,软件对象能或不能被使用。例如,所有的未授权软件对象没有相应的“指印”(因为未授权的软件对象不能“猜出”相应的ECR值)。这种情况下,过程继续到步骤160,其中软件对象不被使用。被保护的软件对象的指印只有MSO知道,通过定义对于每一个软件对象是唯一的。如果软件对象有相应的指印联系,则程序继续到步骤170,其中机顶终端给下载的软件对象授权并验证它。
本领域的技术人员可以理解,图3的步骤140到步骤200列举的每一个授权步骤都是可选的,不一定要执行。另外,虽然步骤200执行的授权检查继续到步骤210,然后到步骤150的验证,但是CA程序可以执行额外的后续检查,这也在本发明的范围之内。
另外,在本发明的第二个实施例中,如果软件对象要求使用特定的机顶终端资源,则有一个类似的检查过程以确定软件对象是否被许可使用所请求的资源。这些许可(授权)可以与所有机顶终端的特定对象相关联或与特定的机顶终端的特定对象相关联。使用机顶终端资源的授权通过EMM以相似的方式传递。
如上面指出的,授权也可以指定为即时层以说明用户可以请求可即时授权的资源的即时授权。机顶终端又以相似的方式检查请求,如果设置了即时层,则它将授权登记为已发生(为了后来可能的计费)。
这些选项的每一个都在图4中显示,在步骤122,确定软件对象是否请求了机顶终端资源(也就是说,软件对象是否通过OS请求了资源使用)。如果在步骤122确定有效的机顶终端资源未被要求,就不采取进一步的行动。
然而,如果步骤122确定已经请求了有效的机顶终端资源,则过程继续到步骤124,其中OS激活与被请求的机顶终端资源相关的驱动器。然后到步骤126,相关的驱动器(只在资源的第一次使用时)激活“第二条件访问程序”(可以是BIOS或操作系统的一部分)以确定发出请求的软件对象是否被允许使用这个资源。
特别的,驱动器程序调用第二访问控制程序(第二访问控制程序与安全处理器连接),确定软件对象是否可以使用被请求的资源(也就是说确定它是否被授权)。资源使用授权也存储在安全存储器中。在步骤128,确定EMM是否提供了使用被请求的资源的许可。如果EMM没有提供这样的许可,则如步骤130所示,程序不允许使用被请求的资源(也就是说控制返回到驱动器,然后带着否定的结果回到OS,说明被请求的资源不被允许)。然而如果EMM提供了许可,则在步骤132允许被请求的机顶资源的使用。
另外,在许可被设置为即时层(需要来自用户的明确的授权生效的请求)的情况下,程序赋予授权并在安全处理器登记该即时请求(为以后可能的计费目的,通过报告回馈机制返回给AC或DAC)。
在本发明优选实施例的另一个方面中,与被请求的资源相关的驱动器只有在软件对象第一次使用资源时才可以激活第二CA程序,其中接下来的访问第二条件访问程序是可选的。
最后,本领域的技术人员可以理解,为了检查避开上述过程的任何企图,可以补充进不同的方法。这些方法可以包括,但不限于,参照预先计算和保护的值对软件对象存储器、指印(可以包括存储器大小、校验和等)的周期性的后台检查,包括机顶终端管理BIOS、操作系统等。例如,机顶终端的安全处理器可以和用户处理器一起对软件的关键组件进行存储器校验。无论何时,只要用户处理器和安全处理器有足够的空闲时间就可以执行这个功能,从而减小了对其它功能的负面影响。做为故障诊断和监控过程的一部分,如果MSO想要检验软件对象的完整性,这样的校验验证也可以在操作者的请求下通过收到的控制消息(例如来自于MSO控制器)而激活。安全处理器检查软件组件的加密校验和。用户处理器在操作系统的控制下把组成这个对象的存储器段传给安全处理器。
如果安全处理器确定检查失败,它可以用加密格式体现这个状态,将其结合在送到(例如)MSO控制器的信息中。可以将对用户处理器的依赖性减到最小以确保这些操作不会被中途截取。另外,如果发现纂改或传输错误这样的偏差,则可以提供额外的标识。例如,机顶终端独特的地址可以提供给MSO/头端,以切断全部或部分的用户服务。可选择的,可以将事件、其时间、独特的机顶终端地址、终端的地理位置等通报给本地或全国访问控制中心。这样的通报使得可以采取适当的更正行动。
现在清楚了,上述方法生成签名,并将签名和下载的用于用户终端(例如机顶终端)的软件对象相关联。用户终端的条件访问子系统包括用以检查信号有效性的适当程序,检查是通过把系统控制器(如头端)发出的签名值(s)与对象下载时在用户终端本地生成的的签名值(s’)进行比较而进行的。然而,如果这个比较失败,则没有办法确定是(i)下载的对象可疑,还是(ii)接收到的签名值可疑。
本发明提供了用图5所示程序来判定的方法。程序从框符300开始。在步骤302,从消息M(S)(它把签名值发送到用户终端)中提取出系统操作员发出的签名值”s”。注意M(s)也携带了其它与本论题无关的参数。
在步骤304,由下载的软件对象O生成本地签名值”s”。然后在步骤306,确定是否s=s’。如果是,那么如框符308所示,验证被确认。否则由下载的软件对象O提取出签名变换函数f(s)的值v,并将值v附加在软件对象O上(O+v)。函数f(s)是压缩变换函数(compacttransformation function),对(s)进行运算,并且只有被信任的一方,如系统设备生产商才知道。举例说明,f(s)可能是一个特定的散列函数(hashing function)(例如,结合众所周知的数字加密标准(DES)),并有可以容易确定的反函数f(s)-1。也可以使用任何其它适合的函数,本领域的技术人员可以理解发明不依赖于任何特定的函数类型。
要进一步指出的是,可以附加v的多个实例到下载的软件对象。例如,v可以附加在软件对象O的开始和结束位置作为冗余。这减少了在用户终端只收到一个可疑v的机会。为了讨论的方便,将附加到对象的两个v实例的第一个称为v1,第二个称为v2。
在图5中,第一个实例vN=1在步骤310中从对象中提取出。如步骤312所示,通过将所述的签名变换函数f(s)的反函数f(s)-1应用于提取出的v值生成签名值s”(在图中称为SN”,即,在V1的情况下是S1”)。然后在步骤314,确定是否sN”=s’。如果是,在步骤316,m(s)中的签名值s被指定为可疑,因为只有在(i)步骤306中验证失败和(ii)s可疑的情况下,sN”才和s’相等。
如果sN”s’,在步骤318确定是否sN”=s。如果是,那么在步骤320,对象O被指定为可疑,因为步骤306的验证失败加上sN”=s的条件只能意味着对象可疑。
然而,如果sN”不等于s或s’,那么很有可能s和下载的软件对象都是可疑的,尽管也可能是sN”可疑。在软件对象附加了两个v的实例的情况下,对v2进行第二次测试,以在v1的测试结果不确定时减少v1被怀疑的可能性。在步骤322,确定s1”和s2”是否都已经被处理过。如果是,就在步骤324报告不匹配状况。在这种情况下,签名s和对象O都可能是可疑的,虽然这并不确定。如果s1”和s2”都还未被处理过,则如步骤326所示,将值v的第二个实例v2从其附加在下载软件对象O的位置点处提取出来。然后在步骤312,由v2生成s2”,程序继续与v1系统的处理。
图6以框图的形式显示了一个用户终端,如电视机顶盒的相关部分。数据接收器400接收传送要下载的软件对象的数据流。它也接收传送签名值s的消息m(s)。主处理器402(例如微处理器)用来运行存储在存储器406的固件。这个固件包括流程图3,4,5中显示的的程序。主处理器主要运行所有的与安全无关的功能。
安全处理器404提供上述的验证功能,虽然根据具体的实施选择,这些功能有一部分也可以和主处理器402共同执行。设备接口408以传统的方式提供。这个接口包括,例如,用于视频显示的视频处理器,音频处理器,电视RF调制器,屏幕显示处理器等。接口408还可以包括从用户处接收遥控和/或字母数字命令的红外接收器。
至此可以理解,本发明提供了这样一项技术确定失败的验证是由被下载的软件对象的讹误(如纂改)导致的,还是由单独传送的下载对象签名的讹误所导致的。在软件对象传输设施上使用对签名进行运算的压缩变换函数来生成表示签名的值。在下载软件对象的用户终端,如电视机顶盒使用它的反函数。为了冗余可以提供值的多重传送。该系统在分析对下载软件对象的方案的安全性的实际的或企图的攻击上特别有用。
虽然在这里特别例举和描述了不同的实施例,但是可以理解,本发明的内容包含了它的修改和变化,并且本发明的修改和变化处于本
权利要求
1.一种分析失败的软件对象验证以确定是软件对象还是软件对象的签名可疑的方法,包括以下步骤从承载签名值的消息m(s)中提取出被传输的软件对象签名值s;由软件对象计算对象签名值s’;从软件对象提取出签名变换函数f(s)的值v;通过将所述的签名变换函数f(s)的反函数f(s)-1应用于提取出的值v而生成签名值s”;将所述的签名值s”与所述被传输的软件对象签名值s和所述计算出的对象签名值s’中的至少一个进行比较;如果s”=s’,则将消息m(s)中的签名值指定为可疑;以及如果s”=s,则将软件对象指定为可疑。
2.根据权利要求1所述的方法,其特征在于,所述的函数是一个保密的函数。
3.根据权利要求1所述的方法,其特征在于所述值v的第一和第二拷贝携带在所述软件对象的不同位置作为冗余;从所述的软件对象中提取出每个所述的拷贝;所述签名值s”对应于所述值v的第一拷贝;为所述值v的第二拷贝生成第二个签名值s2”;所述的方法包括以下进一步的步骤将所述的签名值s2”与所述被传输的软件对象签名值s和所述计算出的对象签名值s’中的至少一个进行比较;如果s2”=s’,则将所述消息m(s)中的签名值指定为可疑;如果s2”=s,则将所述软件对象指定为可疑;以及如果s2”不等于s’或s,则将所述软件对象和所述消息m(s)都指定为可疑。
4.根据权利要求3所述的方法,其特征在于,所述值v附加在所述软件对象的开始和所述软件对象的末尾。
5.根据权利要求1所述的方法,其特征在于,如果s”不等于s’或s,则将所述软件对象和所述消息m(s)都指定为可疑。
6.一种验证下载的软件对象的方法,包括以下步骤从携带签名值的消息m(s)中提取出被传输的软件对象签名值s;由软件对象计算对象签名值s’;将所述被传输的软件对象签名值s和计算出的对象签名值s’进行比较;如果值s和s’相等,将所述的验证指定为成功;以及如果值s和s’不相等将所述计算出的对象签名值s’和签名值s”进行比较,所述的签名值s”通过以下步骤获得(i)从软件对象中提取出签名变换函数f(s)的值v,以及(ii)通过将所述签名变换函数f(s)的反函数应用于提取出的值v而生成s”;如果s”=s’,则将所述消息m(s)中的签名值指定为可疑;如果s”=s,则将软件对象指定为可疑。
7.根据权利要求6所述的方法,其特征在于,所述的函数是一个保密的函数。
8.根据权利要求6所述的方法,其特征在于在所述软件对象的不同位置携带有所述值v的第一和第二拷贝以作为冗余;从所述软件对象中提取出每一个所述的拷贝;所述的签名值s”对应于所述值v的第一拷贝;为所述值v的第二拷贝生成第二个签名值s2”;所述的方法还包括以下步骤将所述的签名值s2”与所述被传输的软件对象签名值s和计算出的对象签名值s’中的至少一个进行比较;如果s2”=s’,则将所述消息m(s)中的签名值指定为可疑;如果s2”=s,则将软件对象指定为可疑;以及如果s2”不等于s’或s,则将所述软件对象和所述消息m(s)都指定为可疑。
9.根据权利要求8所述的方法,其特征在于,所述值v附加在所述软件对象的开头和所述软件对象的末尾。
10.根据权利要求6所述的方法,其特征在于,如果s”不等于s’或s,则将所述软件对象和所述消息m(s)的签名都指定为可疑。
11.一种从通信网络接收和验证软件对象的用户终端,包括至少一个计算机处理器;存储器,与所述计算机处理器相连,用于存储所述处理器用来验证接收到的软件对象的软件;所述的软件包括用于(i)从携带签名值的消息m(s)中提取被传输的软件对象签名值s和(ii)由接收到的软件对象计算对象签名值s’的程序;以及比较操作,用于对所述传输的软件对象签名值s和计算出的对象签名值s’进行比较;其中如果值s和s’相等,则所述验证被指定为成功;如果值s和s’不相等,则将所述计算出的对象签名值s’和签名值s”进行比较,所述签名值s”由以下步骤获得(i)从软件对象中提取出签名变换函数f(s)的值v,以及(ii)通过将所述签名变换函数f(s)的反函数f(s)-1应用于提取出的值v而生成s”;如果s”=s’,则将所述消息m(s)中的签名值指定为可疑;以及如果s”=s,则将所述软件对象指定为可疑。
12.根据权利要求11所述的用户终端,其特征在于,如果s”不等于s’或s,则所述软件对象和所述消息m(s)都被指定为可疑。
13.根据权利要求11所述的用户终端,其特征在于在软件对象的不同位置携带有所述值v的第一和第二拷贝以作为冗余;从所述软件对象中提取出每一个所述的拷贝;所述的签名值s”对应于所述值v的第一拷贝;为所述值v的第二拷贝生成第二签名值s2”;将所述的签名值s2”与所述传输的软件对象签名值s和所述计算出的对象签名值s’中的至少一个进行比较;如果s2”=s’,则将所述消息m(s)中的签名值指定为可疑;如果s2”=s,则将所述软件对象指定为可疑;以及如果s2”不等于s’或s,则将所述软件对象和所述消息m(s)都指定为可疑。
14.根据权利要求13所述的设备,其特征在于,所述的用户终端包含电视机顶盒。
15.根据权利要求11所述的设备,其特征在于,所述的用户终端包含电视机顶盒。
全文摘要
在验证下载软件对象的系统中提供了一种技术,确定失败的验证是由可疑的下载对象还是由可疑的单独传输的下载对象签名导致的。在软件对象传输设施中利用对签名进行运算的保密的压缩变换函数来生成表示签名的值。在接收下载软件对象的用户终端,如电视机顶盒中使用其反函数。为了冗余可以提供值的多重传输。在分析对软件对象下载方案的安全性的实际的或企图的攻击时这个系统特别有用。
文档编号G06F21/51GK1384930SQ00814952
公开日2002年12月11日 申请日期2000年8月29日 优先权日1999年9月2日
发明者雷姆·萨法迪 申请人:通用仪表公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1