信息安全设备固件程序的远程升级方法

文档序号:6649922阅读:286来源:国知局
专利名称:信息安全设备固件程序的远程升级方法
技术领域
本发明涉及一种软件的远程升级方法,特别是一种信息安全设备固件程序的远程升级方法。
背景技术
远程升级,指直接在用户端更新信息安全设备固件程序。
固件程序,固化到硬件内的程序。
信息安全设备,指软件加密保护以及身份验证等硬件。
卡内操作系统,即COS(Chip/Card Operating System),是运行在智能卡芯片内的小型操作系统,固件程序的一种。
外置程序,开发商软件中受信息安全设备保护,并外置于信息安全设备内部,且作为其固件程序的一部分的程序,是进行远程升级的对象。
升级程序,由硬件生产商预置在信息安全设备内部或直接在COS内部实现的用来控制信息安全设备进行升级的程序。
一般地,对于软件的升级可以通过Internet的方式进行升级,方便用户使用,但是硬件的升级通常使用邮寄的方式,受地理的限制,用户拿到新硬件就需要几天的时间,同时比较麻烦。并且,对于软件保护产品和其他信息安全设备,其作为软件产品的一部分,通过邮寄的方式更新用户的产品,严重影响了用户的正常使用。
在目前的PC机中,其中主板的固件程序,我们通常称之为CMOS,在经过其厂家的努力,实现了远程升级的功能,用户可以通过Internet下载新的固件程序并通过工具更新他自己机器内的固件程序完成升级;同样,目前流行的手机,用户也可以通过类似的方式来完成手机的升级。但是,包括PC机、手机等产品的销售模式是开发商——用户,对硬件升级都是在没有权限级别控制的情况下做的,开发商可以直接对用户的硬件进行固件升级,即任何用户拿到了这个程序都可以对自己的硬件进行升级,而对于软件保护及身份验证等信息安全设备如果通过此方式进行升级,那么它就没有任何安全性可言。而且软件保护和身份验证产品的运作模式是硬件生产商——软件开发商——用户,这样就需要保护每个软件开发商的利益和每一个用户的利益,而不能一次统一进行升级。

发明内容
本发明克服了上述缺点,提供一种安全可靠的信息安全设备固件程序的远程升级方法,并保证软件开发商对每个用户的相同或不同的升级控制。
本发明解决其技术问题所采取的技术方案是一种信息安全设备固件程序的远程升级方法,硬件生产商将信息安全设备提供给软件开发商,在软件升级过程中由软件开发商根据信息安全设备的硬件信息对要升级的用户授权,升级过程如下用户将认证信息发送给软件开发商,所述认证信息包含有信息安全设备的硬件信息;软件开发商根据所述硬件生产商提供的硬件信息,对用户发来的认证信息中包含的硬件信息进行认证,并将升级信息发送给通过认证的合法用户,对合法用户进行授权,所述升级信息中也包含有硬件信息,还包含有用于对固件程序进行升级的升级代码。
所述升级信息可以是对所述升级代码和硬件信息加密后形成的密文,由合法用户进行解密和对外置程序升级。
所述升级代码可包括标记或/和程序代码,其中,所述标记用于控制执行固件程序中的不同算法,所述算法是软件开发商预置在信息安全设备中的,所述程序代码为可执行代码或替换代码,用户通过工具对将软件开发商提供的升级信息对固件程序中的软件开发商的外置程序进行升级,或直接替换软件开发商的外置程序来实现软件升级过程。
所述认证信息还可包括软件的当前代码,所述当前代码包括当前标记或/和当前程序代码。
所述升级信息还可包括当前密钥,所述当前密钥由软件开发商预置的算法生成,用于获得用户升级权限。
所述升级信息中的密钥可在一次升级结束后被修改,即信息安全设备每次升级所用的密钥不相同,每个密钥只能升级一次。
所述标记可包括显式标记和隐式标记,所述显式标记供软件开发商使用,用于控制算法,实现外置程序的升级;所述隐式标记,软件开发商需要通过工具或其他接口来间接修改所述隐式标记,控制外置程序的运行情况。
所述显式标记可为一个全局变量,通过改变变量的值控制执行不同的算法。
所述隐式标记可为硬件生产商通过信息安全设备固件程序内部接口对信息安全设备内部数据文件或程序加上访问控制的标记。
所述硬件信息包括硬件序列号、标识用户的信息。
本发明通过硬件生产商将信息安全设备提供给软件开发商,在软件升级过程中由软件开发商根据信息安全设备的硬件信息对要升级的用户授权,从而保证软件开发商提供给用户的升级信息的安全性,实现从硬件生产商到软件开发商到用户进行一个全面的软件发行管理,硬件生产商提供每个软件开发商不同的升级方式,包括软件开发商根据硬件生产商的硬件提供所有用户相同的升级方式,软件开发商根据硬件生产商的硬件提供每个用户或部分用户不同的升级方式。


图1为本发明中所采用的信息安全设备的一种结构示意2为本发明中所采用的信息安全设备的另一种结构示意3为本发明中公开的升级过程示意图具体实施方式
本发明中的信息安全设备为用于软件保护和身份认证的硬件,包括CPU和分别与CPU相连的接口芯片和存储器,并可以通过集成的MCU实现,所述接口芯片也可以为通用串行总线芯片。例如,如图1中所示,为所述信息安全设备14的一种结构形式,包括一个集成MCU芯片5,所述集成MCU芯片5集成了CPU 8和分别与CPU相连的通用串行总线接口芯片7和存储器,CPU 8可以是任意的如Intel8051、Philips 80C31等一系列微处理器,接口芯片7是任意可以和PC机的接口通讯的接口芯片,如通用串行总线接口芯片,存储器可以是FLASH 9、RAM 10、ROM 11、EPROM 12等,与所述信息安全设备14相连的PC机13中的操作系统,包括软件开发商应用程序1、硬件生产商API 2和设备驱动程序3。也可以如图2中所示,包括一个集成MCU芯片6和通用串行总线接口芯片7,所述集成MCU芯片6集成了CPU 8和与CPU相连的存储器,所述通用串行总线接口芯片7与集成MCU芯片中的CPU 8相连。CPU 8可以是任意的如Intel8051、Philips 80C31等一系列微处理器,通用串行总线接口芯片7可以是任意可以和PC机13的通用串行总线接口通讯的接口芯片,存储器可以是FLASH 9、RAM 10、ROM 11、EPROM 12等。
如图3中所示,所述信息安全设备304中包括固有的不可升级的固件程序306和外置程序305,对应于用户PC机301中包含有软件开发商应用程序302和升级工具303。所述固件程序306中,除执行其功能的基本程序(如卡内操作系统307)外,还包括升级程序308,所述升级工具303控制所述升级程序308,对外置程序进行升级,这个固件程序可以是普通的一段程序,也可以是软件保护和身份验证设备的卡内操作系统。
本发明中公开的对所述信息安全设备的升级方法包括修改固件程序和修改固件标记,修改固件程序是一次升级中最基本的方法,直接替换程序而达到升级的目的。
修改固件标记,是在固件中设置一个或多个全局变量作为标记,里面的程序通过这些标记来进行不同的动作,当升级的时候修改了这些标记,外置程序的运行情况也不同,而标记由硬件生产商预置在固件程序中,可以使软件开发商提供给用户的程序得以升级。所述标记还包括显式标记和隐式标记,当采用显式的标记,软件开发商使用它来控制自己的算法,以用于外置程序的升级。当采用隐式的标记,软件开发商需要通过工具或其他接口来间接修改该标记,以用于控制外置程序的运行情况。
下面结合具体实施例,对本发明内容做进一步阐述。
实施例1提供使用一个显式标记来控制程序升级,本实施例包含以下几个步骤一、通过在固件程序中提供给软件开发商软件开发工具包(SDK)里的一个接口,该接口用于取得标记(Tag)。
二、软件开发商发售前,将多个预置算法和初始的标记放置所述信息安全设备中,并通过下述程序来判断该标记的运行情况。
例如,所述程序中可以通过类似以下伪码的方法来进行控制一个程序用来运行哪一个算法Get TagIf Tag=0 thenDo Arithmetic1Else if Tag=1 thenDo Arithmetic2…End if所述程序也可以通过类似以下伪码的方法来控制一个或一组程序的运行,如果Tag是个32位的数,它可以控制32个外置程序的运行,如果Tag是64位数,它就可以控制64个外置程序的运行。
Get TagIf Tag&1<>Tag thenExit()End if以上代码中如果Tag的第1位不为1则程序退出拒绝执行,同理其他程序可以判断它的第2位、第3位……。
三、用户进行升级时,先将包含了硬件信息、当前密码与当前标记的认证信息发送给软件开发商,这些信息对于用户来说是可见的。所述硬件信息采用硬件的序列号,保证了每个用户设备对应唯一的认证信息,四、软件开发商根据用户的上述认证信息,生成新的升级密钥。
其中,密钥(Key)是通过一些基本信息并由特定的加密算法生成,这些基本信息包括硬件序列号(A)、当前密码(B)和当前标记(C)。可以采用如下算法如Key=A+B+C,或Key=A^B^C,等。
密钥可以通过类似以上算法的一系列计算生成,在以上最简单的算法中,由A、B、C可以推导出Key,但是不能从Key推导出A、B和C。
五、软件开发商将升级信息发送给用户进行升级。
升级信息主要为新的密钥,而密钥安全性包括算法安全性、信息不可修改性和密钥独特性。同理,验证密钥算法也是由硬件生产商预置在信息安全设备中并在信息安全设备内部运行,任何人无法得到该算法的实现;同时,用户没有对所持有的信息安全设备的信息进行修改的权限;在开发商发送密钥给用户时,不必保证期间不被截获,因为密钥是由开发商根据用户当前的信息安全设备的硬件信息生成,其他任何人获得密钥后无法对自己的信息安全设备进行升级。
当用户进行完一次升级后,用户所持有的信息安全设备的标记信息和当前升级密钥已经被修改,再次升级所需要的密钥已经改变,因此保证一个密钥只能升级一次。
软件的发行管理过程中,软件开发商可以根据硬件生产商的信息安全设备提供所有用户相同的升级方式,由硬件生产商提供给软件开发商的唯一信息或使用相同的自定义标记,用此为种子生成远程升级密钥,该开发商下所有用户密钥相同,均可升级。
同时,软件开发商也可以根据硬件生产商的信息安全设备提供各类用户不同的升级方式,软件开发商使用自定义的标记作为种子生成远程升级密钥,这个标记可定义为部分用户相同,则相同密钥的用户使用相同的升级方式。
软件开发商还可以根据硬件生产商的信息安全设备提供每个用户不同的升级方式,硬件生产商所提供的所有信息安全设备中都含有一个唯一的硬件序列号,通过该序列号为种子生成的密钥进行远程升级,则每个用户使用不同的升级方式。
密钥算法安全性包括算法的不可读性和密钥生成权限。算法是在智能卡(MCU)内运行,任何人都无法“看”到它的运行情况,只能获得运行结果。通过硬件生产商内置的升级程序生成密钥时取出前面所提到的认证信息(硬件序列号、当前密码、当前标记)并经过复杂运算生成密钥,因此软件开发商或其他人在离开本发明装置的情况下无法生成密钥;同时,密钥的生成需要通过安全验证,如软件开发商PIN码验证,即只有该软件开发商才具有生成属于他们的信息安全设备的密钥的权限。
在硬件上,使用例如包括中兴ZI1221在内的智能卡芯片作为该发明装置的芯片之后,可以保证内部数据不会被非法获取,同时具有可编程运算功能。
在软件上,信息安全设备内部使用卡内操作系统,使用它来控制管理所有的硬件资源和外置程序的访问权限,信息安全设备硬件内部的硬件资源包括RAM、ROM、EPROM、E2PROM;外置程序的访问权限包括外置程序不能访问的非法数据区、外置程序必须在卡内操作系统的控制下运行。
本实施例的有益效果在于●某一软件开发商所提供的升级信息只能提供给属于该软件开发商自己的用户使用。
●软件开发商可以任意控制升级信息只可用于设定某个或某一类用户的使用●升级控制简单,软件开发商只需用程序进行简单判断就可以完成升级的功能。
●升级安全,软件开发商提供给特定用户的升级信息,其他用户即使获取该数据也无法使用该数据进行升级。
●防篡改,从软件开发商到用户这一渠道过程中,可能会导致数据被非法篡改,通过对数据进行校验或签名,同时校验和签名过程不可知,可以防止被篡改的数据被升级到固件中。
实施例2提供一个使用隐式标记来控制程序升级的实施方式。这个方法包含以下几个步骤一、硬件生产商将特定的一些标记内置于信息安全设备中,用来控制与标记对应的模块或文件的可访问或运行;二、硬件生产商将修改标记作为封装的API接口或工具提供给软件开发商硬件生产商通过对提供的硬件文件系统接口中对某一类文件加上特定的标记,即开通或关闭标记,并提供一个安全的修改这个标记的接口。
三、软件开发商通过硬件生产商提供的工具进行设置软件开发商在授权情况下设置和修改相关的标记,如下所示

FileID是用来标识系统的文件的,可以使用字符或整数,OpenFlag即为当前的所述隐式标记,可以是一个字节或一个位。
首先,软件开发商可以使用接口或工具将这个表送入所述信息安全设备中做初始状态,所述设备通过升级程序直接修改这个标记,标记为关闭的程序或文件不能运行和被访问。
四、用户根据软件开发商提供的内容选择对全部或部分升级;软件开发商可以将这样一个文件列表提供给他的用户,用户根据自己购买的情况选择相关的部分,其中FileID中的每一项对应要升级的一个部分,并把包含这个列表和用户的硬件信息的认证信息发送给他的软件开发商,修改后的表如下所示


五、软件开发商根据用户的需求授权用户进行全部或部分升级。软件开发商在接收并认证用户发来的认证信息后,再根据用户的选择,将这个表送入到软件开发商硬件中进行加密,加密后生成密文送给用户。这个密文是由软件开发商硬件进行加密的,同时这个密文也是和用户信息安全设备的硬件信息是相关的,即同样的数据其他类型的信息安全设备不能生成同样的密文。最后,用户将这个密文通过硬件生产商或软件开发商提供的工具将自己的信息安全设备的固件程序升级。
在本实施例中就是一个先解密后升级的过程,这两个过程是通过信息安全设备一起完成的,和加密一样解密也是同该型号信息安全设备的硬件信息相关的,这样,某一型号的信息安全设备生成的密文只能由同一型号的信息安全设备进行解密。
通过硬件生产商和软件开发商的控制,同样可以完成每个软件开发商的所有用户相同而不同软件开发商间的用户不同的升级,或者同一软件开发商的一批用户和另一批用户不同,也可以是每个用户均不相同的升级。
本实施例的特点是在软件出厂前,需要由软件开发商将所有的程序预置在信息安全设备之中。
实施例3提供一种直接替换外置程序的升级方式。
本实施方式主要由以下几个步骤完成一、由硬件生产商提供的信息安全设备中预置升级算法,并提供给软件开发商调用的接口或工具;二、软件开发商将自己的软件开发完毕,连同信息安全设备分发到用户手中;三、当用户需要对固件程序进行升级时,使用的密钥生成算法,将相应的硬件信息发送给软件开发商,由软家开发商对用户的硬件信息进行认证后,对合法用户的软件进行升级;四、软件开发商将要升级的固件程序通过信息安全设备加密,并将加密后的密钥文件发送给用户,用户利用硬件生产商或软件开发商提供的工具进行升级。
使用该种方法,将信息安全设备内的程序文件或数据文件直接进行更新,同时它的传输过程是安全的,即升级信息数据是经过加密的。任何不合法的用户无法使用该升级文件,并且即使合法用户也无法获取其内容而转让他人,只能通过固有的接口并通过发售的信息安全设备来完成解密和升级,升级后升级文件失效。
根据本发明的第一个实施例,本实施例中使用与实施例1相似的密钥生成算法,包括软件保护和升级方案均可用于本实施例中进行实施。
本实施例的有益效果是●某一软件开发商所提供的升级信息只能提供给属于该软件开发商自己的并且是自己授权的用户使用;
●软件开发商可以任意控制升级信息只可用于设定某个或某一类用户的使用;●直接替换原来的程序,升级效果明显;●升级安全,软件开发商提供给特定用户的升级信息,其他用户即使获取该数据也无法使用该数据进行升级;●防篡改,从软件开发商到用户这一渠道过程中,可能会导致数据被非法篡改,通过对数据进行校验或签名,同时校验和签名过程不可知,可以防止被篡改的数据被升级到固件程序中。
根据本发明提供的信息安全设备的升级方法,实现了一种安全的升级策略,防止用户非法升级,该策略包括安全数据传输、一人一密、一次一密。
安全数据传输是保护算法安全的一个方面,它的作用是某一升级数据只是针对某一个或一批信息安全设备的,而其他信息安全设备无法使用。
一人一密是在软件保护产品中,每个用户所购买的软件模块不尽相同,每个用户之间的升级数据不能互相使用。
一次一密是用户在进行固件升级时,每升级一次,密钥就失效,再次升级的时候需要使用新的密钥。
以上对本发明所提供的信息安全设备固件程序的远程升级方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种信息安全设备固件程序的远程升级方法,其特征在于硬件生产商将信息安全设备提供给软件开发商,在软件升级过程中由软件开发商根据信息安全设备的硬件信息对要升级的用户授权,升级过程如下用户将认证信息发送给软件开发商,所述认证信息包含有信息安全设备的硬件信息;软件开发商根据所述硬件生产商提供的硬件信息,对用户发来的认证信息中包含的硬件信息进行认证,并将升级信息发送给通过认证的合法用户,对合法用户进行授权,所述升级信息中也包含有硬件信息,还包含有用于对固件程序进行升级的升级代码。
2.根据权利要求1所述的信息安全设备固件程序的远程升级方法,其特征在于所述升级信息是对所述升级代码和硬件信息加密后形成的密文,由合法用户进行解密和升级。
3.根据权利要求1或2所述的信息安全设备固件程序的远程升级方法,其特征在于所述升级代码包括标记或/和程序代码,其中,所述标记用于控制执行固件程序中的不同算法,所述算法是软件开发商预置在信息安全设备中的,所述程序代码为可执行代码或替换代码,用户通过工具对将软件开发商提供的升级信息对固件程序中的软件开发商的外置程序进行升级,或直接替换软件开发商的外置程序来实现软件升级过程。
4.根据权利要求1或2所述的信息安全设备固件程序的远程升级方法,其特征在于所述认证信息还包括软件的当前代码,所述当前代码包括当前标记或/和当前程序代码。
5.根据权利要求1或2所述的信息安全设备固件程序的远程升级方法,其特征在于所述升级信息还包括当前密钥,所述当前密钥由软件开发商预置的算法生成,用于获得用户升级权限。
6.根据权利要求5所述的当前密钥,其特征在于所述升级信息中的密钥在一次升级结束后被修改,即信息安全设备每次升级所用的密钥不相同,每个密钥只能升级一次。
7.根据权利要求3所述的信息安全设备固件程序的远程升级方法,其特征在于所述标记包括显式标记和隐式标记,所述显式标记供软件开发商使用,用于控制算法,实现外置程序的升级;所述隐式标记,软件开发商需要通过工具或其他接口来间接修改所述隐式标记,控制外置程序的运行情况。
8.根据权利要求7所述的信息安全设备固件程序的远程升级方法,其特征在于所述显式标记为一个全局变量,通过改变变量的值控制执行不同的算法。
9.根据权利要求7所述的信息安全设备固件程序的远程升级方法,其特征在于所述隐式标记为硬件生产商通过信息安全设备固件程序内部接口对信息安全设备内部的数据文件或程序加上访问控制的标记。
10.根据权利要求1或2所述的信息安全设备固件程序的远程升级方法,其特征在于所述硬件信息包括硬件序列号、标识用户的信息。
全文摘要
本发明涉及一种软件的远程升级方法,特别是一种信息安全设备固件程序的远程升级方法。本发明通过硬件生产商将信息安全设备提供给软件开发商,在软件升级过程中由软件开发商根据信息安全设备的硬件信息对要升级的用户授权,从而保证软件开发商提供给用户的升级信息的安全性,实现从硬件生产商到软件开发商到用户进行一个全面的软件发行管理,硬件生产商提供给每个软件开发商不同的升级方式,包括软件开发商根据硬件生产商的硬件提供所有用户相同的升级方式,软件开发商根据硬件生产商的硬件提供每个用户/部分用户不同的升级方式。
文档编号G06F9/445GK1746848SQ20051011457
公开日2006年3月15日 申请日期2005年10月25日 优先权日2005年10月25日
发明者陆舟, 于华章 申请人:北京飞天诚信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1