将计算机数据下载至手机时进行版本比较的方法

文档序号:6390551阅读:159来源:国知局
专利名称:将计算机数据下载至手机时进行版本比较的方法
技术领域
本发明涉及通讯领域,尤其涉及一种将计算机数据下载至手机的方法。
背景技术
随着通讯业的不断发展,手机(如PHS手机,CDMA手机,GSM手机)的需求量也在增加。但现在市场上存在不少不法商贩受利益驱使对手机的代码进行篡改后非法下载到手机中,对手机内部代码进行恶意攻击和破坏,或者是将厂家较低版本(无某些新功能)的代码通过非法途径下载到手机中,使得厂家商家均蒙受巨大损失。
目前的手机下载程序没有任何限制,只要知道手机与计算机(PC)通讯的命令就可通过数据线将要下载的文件数据包直接传至手机。如中国专利申请第01118379号揭示了一种类似的方法,一种分布式PHS基站系统本地程序下载装置包括PC侧人机界面、PC侧数据处理器,串口及基站侧内核处理器;其方法是建立数据通道,通过人机界面向基站下达程序下载命令,PC侧数据处理器处理该命令并通过串口向基站发送程序下载请求,并处理,传送数据。这样的方法导致随意更改后的程序也可以非常方便地下载到手机中,使得我们手机原有的功能被破坏,并且还能进行硬件拷贝。
较早的手机有引导区(Boot区),而现在新的手机很多没有Boot区(新手机的硬件决定)。以前对手机的保护都是基于引导区的,且没有很有效的方法。下载数据时会通过串口将存储在计算机上的手机程序(一个二进制的文件包)传送到手机,实现对手机程序的更新。不法分子可以通过修改这个二进制文件包修改手机程序。修改的程序下载到手机,手机就会具有不法分子想拥有的特性,以达到他们的目的。
原有技术的下载方式不能防止空片(从未进行过下载的只读存储器ROM芯片,ROM中没有任何数据)的硬件拷贝,不能很好的保护手机的程序代码,会带来各方面的利益损失1.厂家利益损失厂家为开拓新市场而增加一些新功能,但是这些功能通过以前的下载方式可以被不法商贩所破坏,使得厂家的新开发没有起到效果,尤其是信誉受到极大的损害。
2.商家利益损失商家因为看中厂家新研发的一些新功能,而这些新功能往往能够增加商家的利益,如果这些功能被破坏了,商家的利益也被大大损害。
3.消费者利益损失消费者使用非法途径的手机,这些手机的质量无法保证,这种手机一旦有问题,很难有及时、准确的服务,消费者利益无法完全保障。
通过以上说明可见,以前的手机程序下载方法对厂家、商家和消费者都会造成损失。所以,有必要提供一种确实有效的防护措施,使手机不会被恶意的攻击和破坏而造成各方面的损失。

发明内容
本发明的目的在于针对上述现有技术的不足,提供一种将计算机数据下载至手机的方法,使下载过程可以进行关键代码保护,程序版本规则的比较以及数字签名认证等,使手机代码不易被任意篡改。
本发明的目的是通过以下技术方法来实现的计算机数据下载至手机的方法包括如下步骤首先由计算机向手机发送握手信号,手机接收上述握手信号后发送应答信号到计算机,从而建立起计算机与手机之间的通信,然后发送版本信息至手机,由手机根据预设的版本规则进行判断是否可以下载,如果判断为可以下载,则计算机开始发送数据包到手机,手机会将接收到的数据存储至手机的存储器中,下载过程中对关键代码进行加密,直至全部数据都发送至手机,下载结束后的根据新的版本信息对数字签名进行更新,最后结束通信。通过以上过程可以防止他人篡改手机程序,篡改代码以保证手机的安全。
由于每个手机在出厂前都会经历程序下载这个过程,所以本发明的方法在下载之前会进行规则判定看是否允许下载该程序,如果判定符合规则后会进行正常的下载,并在下载的过程中对部分关键代码进行加密,在下载之后会对手机更新数字签名。不符合规则的视为非法下载使其无法继续进行,减少非法下载的机会。通过数字签名作最后的保证,即使非法下载在极小可能的情况下成功,也会因为没有数字签名而使其无法顶替正品。更好的保护厂家、商家和消费者的利益。并且使用方便,安全性高,给用户的感觉是计算机下载工具和以前的使用起来并无不同。


图1为现有技术中计算机数据下载至手机的程序流程图。
图2为本发明将计算机数据下载至手机的整体流程图。
图3为本发明的方法在下载前进行版本规则比较的流程图。
图4为本发明的方法进行关键代码加密的流程图。
图5为本发明的方法进行数字签名的流程图。
图6为采用本发明的方法后,手机开机检测的流程图。
具体实施例方式
本发明由将计算机数据下载到手机上的过程和手机开机检测部分共同体现。在计算机数据下载到手机的流程中加入版本比较模块,从而使只有符合预定版本规则的程序可以被下载到手机上;加入关键代码加密模块,对使用频率高的一段代码进行加密,从而使代码不易被篡改;在下载之后会对手机更新数字签名,作为最后的保证。手机开机检测功能可在手机开机时进行程序完整性校验,进一步防止手机代码遭到非法篡改。
请参阅图1,现有的计算机下载工具和手机之间通信的流程为计算机(PC)和手机之间通过串口建立的一种通信方式,先由计算机向手机发送握手信号,手机接收上述握手信号后发送应答信号到计算机,从而建立起计算机与手机之间的通信,然后计算机开始发送数据包到手机,手机会将接收到的数据存储至手机的存储器中,直至全部数据都发送至手机,结束通信。
请参阅图2,本发明的计算机下载工具和手机之间通信的流程比较现有下载流程加入了下载之前的版本规则比较模块,下载过程中对关键代码的加密模块以及在下载结束后的数字签名模块。
执行规则比较模块首先要进行版本规则的定义,在版本信息中增加了基础版本信息(Base Version),为了区分将手机中原有的版本信息称为当前版本信息(Current Version),在版本信息中规定当前版本信息必须大于或等于基础版本信息。如基础版本信息是2.0,则当前版本定义成2.4是正确的,而如果定义成1.3就不对了。
版本规则比较比的就是当前版本和基础版本。比较规则是跨基础版本的两个版本可以从低版本升到高版本,但是不可以将高版本降到低版本,同一基础版本之间的版本可以任意升降。具体的说,如果手机中原有版本的基础版本比欲下载版本的基础版本高,则不能将欲下载版本的程序下载到手机中,若手机中原有版本的基础版本比欲下载版本的基础版本低,则可以将欲下载版本的程序下载到手机中。如果手机中原有版本的基础版本与欲下载版本的基础版本相同,则无论当前版本是哪个高,都可以将欲下载版本的程序下载到手机中。
例如,版本(1.0,1.3)和版本(1.0,2.3)的两个版本可以互相升降,而版本(1.0,1.4)和版本(1.5,1.5)只能从版本(1.0,1.4)升级到版本(1.5,1.5)。(以上例子前一个数字表示基础版本,后一个数字表示当前版本)。这样,将有新功能的版本设定为高的基础版本,实现手机不允许将低版本的程序下载到高版本的手机中。以上版本规则仅是一种实施方式,也可以根据需要而做一些改动,由厂家自行设定,用来保护某些新研发的功能。
由于直接比较当前版本会导致版本只能升级不能降级或者只能降级不能升级,本发明增加基础版本信息,目的是要使版本的升降级受到控制,版本制定者可以允许某些版本间是可以互相升降的,而某些版本是不允许相互升降的。而升级的需求的正常的,而降级的需求是可控的,所以用基础版本控制降级。
下载之前手机的版本规则比较模块进行版本规则比较的流程请参考图31.建立计算机与手机之间的通信连接后,由计算机下载工具通过数据线向手机发送要下载的文件的版本信息,手机的版本规则比较模块会将手机里原有版本信息和计算机传送过来的版本信息按照版本比较规则进行比较,并将比较结果返回给计算机;2.如果比较结果是允许下载,则计算机根据手机发送的比较结果信息继续进行文件下载,由计算机向手机发送文件数据包;3.如果比较结果是不允许下载,手机开始拒收后续的文件数据包;计算机则根据手机发送的比较结果提示不能下载,从而终止下载,使不符合版本比较规则的程序无法下载到手机上。此时计算机即使仍然继续发送文件数据包,手机会拒绝接受,向计算机回非确认数据包。将下载控制权设在手机侧,即使计算机下载工具遭篡改,也无法绕过版本规则比较。
请参阅图4,下载过程中对关键代码加密的流程为1.计算机下载工具通过数据线向手机发送文件的数据包,手机侧监测程序会判断接受到的数据包是否是关键代码数据包;2.如果是关键代码则将其用数据加密标准(DES)算法加密后存储并继续接收数据,加密所用的密钥与手机的硬件序列号相关;手机开机执行到这段代码时手机会自行解密,如果在下载的时候不能正确加密,开机运行到那段错误解密的关键代码时,程序执行的代码不可预测,使手机无法正常工作。详细过程请参阅图6的开机检测流程。
3.如果不是关键代码则直接存储至手机后继续接收数据。
关键代码选取应遵循以下原则1.关键代码由于要解密,所以代码不能太大。通常大小控制在几十到上百字节上。
2.关键代码是执行频率很高的代码,最好是任何操作都会执行到的代码,这样如果关键代码不正确,系统就难以运行。
判断是否为关键代码是根据代码存储的位置判断,通常定义了关键代码后会给出代码的存放地址和长度,如存放在以0x10FD00为起始,长度为200字节的位置,下载数据包的格式就是地址+数据,所以根据地址可以判断是否关键代码。
加密所用的密钥与手机的硬件序列号相关,可以用以下算式表示
密钥=F(硬件序列号)F表示一个简单一元函数。
增加关键代码加密模块后,可防止下载程序的仿制,同时也防止手机上存储器(ROM)的硬件复制。关键代码的具体定义并不需要强制,如果按以上的所提的原则定义,对保护较为有效。
请参阅图5,数字签名模块是在下载后进行数字签名更新的流程为1.计算机下载工具通过数据线向手机发送下载完毕的命令;2.手机接到命令后首先查看手机内原有数字签名否有效;3.如果有效,则利用新下载文件的版本信息更新旧的数字签名;4.如果无效,则不进行更新;用户在开机时手机监测到无效数字签名就会有“未经UT认证禁止销售”等类似的错误提示,警告用户该手机已遭非法破坏。详细过程请参阅图6的开机检测流程。
数字签名是确认手机合法身份的一串数据,为了防止伪造签名信息,要求对于不同的手机,不同的版本此签名信息是唯一的。数字签名可以用算式E=e(H,V)表示,其中E数字签名,e签名算法,H手机硬件序列号,V手机版本信息。数字签名信息会存储在手机ROM中,检查数字签名时,手机会根据以上算式计算签名信息,计算结果同存储的数字签名信息比较,如果一致则认为签名有效,否则认为无效。如果下载新的版本后仍然用原来的签名必定会出错。故手机在判断原先签名有效的前提下会根据新的版本信息,重新计算数字签名,然后将新的数字签名覆盖原来的数字签名。
数字签名模块的作用是保证空片的下载是受控的。
本发明的关键代码加密模块和数字签名模块的最终反应表现在手机的开机检测模块,该模块不属于下载过程,是手机侧程序采用本发明后的一种改善,现有技术中是没有这个开机检测模块的。开机检测的操作流程请参阅图61.手机开机首先对关键代码解密,如果用的是合法的下载工具,如前所述会在下载的时候就对关键代码加密,所以开机相应的对这段代码解密,然后手机正常运行;如果用的是非法下载工具,则下载的时候未经加密但开机仍作了解密,那么这段代码就称为乱码,手机运行不正常。这样保障了必须用合法的下载工具下载。
2.手机会将自身代码做CRC(循环冗余码校验)计算,同真实的结果做比较。如果相同则进入下一步,否则有错误提示。假设手机真实代码为C1,C2,C3,…,Cn,我们将其作为CRC算法的输入产生输出K,我们将K和代码存储在手机存储器中,交验时首先读出手机代码c1,c2,…,cn(注意这里是小写的C),计算的CRC结果k,如果k等于K则交验通过,否则交验失败。交验失败的情况多为c1,c2,…,cn中有不和C1,C2,…,Cn相等的。
手机软件的二进制文件每一位(Bit)都是正确的,与此相对的就是二进制文件有至少一个Bit的数据不正确,这种不正确会导致手机在运行到错误的地方,会有不可预计的错误。因此交验代码正确是必须的。从安全角度考虑,生产厂商考虑手机的代码是根据自己的设计产生的,不希望有人改写代码,所以会交验代码,交验匹配认为代码(即二进制文件)没有被修改。基于以上两点,我们对手机代码完整性进行交验。
3.手机会计算正确的签名,并和当前手机的签名比较。如果签名检测结果相同则正常开机。如果不同,则开机会有“未经UT认证禁止销售”等类似的错误提示信息,警告用户该手机已遭非法破坏。
采用本发明的方法后,最终可以实现以下四大功能(1)用带有加密模块的计算机下载工具下载程序,防止非法下载工具进行下载。加密所用的密钥与手机的硬件序列号相关。因此每个手机存储在只读存储器(ROM)上的代码是不完全相同的。手机在开机的时候会对这段代码进行解密,然后运行这段代码。这样就可以防止非法批量复制,必须用对应的下载程序下载到手机的ROM上才可以正常使用。在手机开机过程增加解密模块,使得在下载过程中必须要加上加密模块。而加密模块不容易被模仿,从而减少了很多非法下载的途径。同时,由于我们采用特有的硬件信息作为加密的一部分,使得每个手机的加密信息都是独一无二的,由此可以大大防止硬件拷贝。
(2)本发明的方法在下载之前会进行规则判定看是否允许下载该程序,不符合规则的视为非法下载使其无法继续进行,减少非法下载的机会。版本升级或者降级受规定的比较规则控制(由下载过程中的规则比较实现)。这样可以防止商贩随意将高版本手机(含新开发功能的手机)降级到低版本手机(不含新开发功能的手机),升降版本必须符合一定的规则方可。
(3)空片(从未进行过下载的ROM芯片,ROM中没有任何数据)下载完程序不包含数字签名,需经过手机生产线的特殊流程才有数字签名。未做数字签名的手机,开机会给予警告提示。数字签名对于每个手机,手机软件的每个版本都是唯一的。经特殊流程作数字签名的手机在之后的每次下载过程中都会被自动更新。通过数字签名作最后的保证,即使非法下载在极小可能的情况下成功,也会因为没有数字签名而使其无法顶替正品,用户在看到“未经UT认证禁止销售”等类似的提示后仍然购买这种手机的数量会大大减少,这样厂家商家用户的利益都得到了很好的改善。
(4)最后,手机开机检测功能可在手机开机时进行程序完整性校验,防止手机代码遭到非法篡改。
本发明的方法通过软硬件加密增强手机的安全性能,有效控制不法商贩对手机代码的恶意攻击和破坏。更好的保护厂家、商家和消费者的利益。并且使用方便,给用户的感觉是下载工具和以前的使用起来并无不同。安全性高,设置几道关卡大大增强了手机自我保护的能力。并在自身遭到恶意攻击后发出告警提示信息告知用户。
本发明的下载之前的规则比较模块,下载过程中对关键代码的加密模块以及在下载结束后的数字签名模块之间并无必然联系,但都是为了增加手机本身的防护功能,所以三个模块可以单独使用,也可以任意组合使用。
显而易知的是,本发明的构思不仅限于手机,也可以用于其它可从计算机上下载的程序数据的数字设备,如个人数字助理(PDA),数码相机等。
权利要求
1.一种将计算机数据下载至手机时进行版本比较的方法,其特征在于手机中具有程序版本规则比较模块,该模块使手机在下载程序数据之前,比较欲下载程序的版本信息与手机中现有的程序版本信息,使只有符合预定版本规则的程序可以被下载到手机,而不能将不符合预定版本规则的程序下载到手机。
2.如权利要求1所述的将计算机数据下载至手机时进行版本比较的方法,其特征在于下载数据之前手机的版本规则比较模块进行版本比较的流程为1)建立计算机与手机之间的通信连接后,由计算机通过数据线向手机发送要下载的文件的版本信息,手机的版本规则比较模块会将手机里原有版本信息和计算机传送过来的版本信息按照版本比较规则进行比较,并将比较结果返回给计算机;2)如果比较结果是允许下载,则计算机根据手机发送的比较结果信息继续进行文件下载;由计算机向手机发送文件数据包;3)如果比较结果是不允许下载,手机开始拒收后续的文件数据包;计算机则根据手机发送的比较结果提示不能下载,从而终止下载过程,使不符合版本比较规则的程序无法下载到手机上。
3.如权利要求2所述的将计算机数据下载至手机时进行版本比较的方法,其特征在于规则比较模块的版本规则的定义为版本信息中包括基础版本信息和当前版本信息,当前版本信息为手机中现有的程序的版本的信息,基础版本信息为一个参考版本信息,且当前版本信息必须大于或等于基础版本信息;版本比较的规则是跨基础版本的两个版本可以从低版本升到高版本,但是不可以将高版本降到低版本,同一基础版本之间的版本可以任意升降。
4.一种终端设备,包括中央处理器及存储器,其特征在于存储器的中具有程序版本规则比较模块,该模块使终端设备在下载程序数据之前,比较欲下载程序的版本信息与终端设备中现有的程序版本信息,使只有符合预定版本规则的程序可以被下载到终端设备,而不能将不符合预定版本规则的程序下载到终端设备。
5.如权利要求4所述的终端设备,其特征在于版本规则比较模块进行版本比较的流程为1)建立计算机与终端设备之间的通信连接后,由计算机通过数据线向终端设备发送要下载的文件的版本信息,终端设备的版本规则比较模块会将终端设备里原有版本信息和计算机传送过来的版本信息按照版本比较规则进行比较,并将比较结果返回给计算机;2)如果比较结果是允许下载,则计算机根据终端设备发送的比较结果信息继续进行文件下载;由计算机向终端设备发送文件数据包;3)如果比较结果是不允许下载,终端设备开始拒收后续的文件数据包;计算机则根据终端设备发送的比较结果提示不能下载,从而终止下载过程,使不符合版本比较规则的程序无法下载到终端设备上。
6.如权利要求5所述的终端设备,其特征在于规则比较模块的版本规则的定义为版本信息中包括基础版本信息和当前版本信息,当前版本信息为终端设备中现有的程序的版本的信息,基础版本信息为一个参考版本信息,且当前版本信息必须大于或等于基础版本信息;版本比较的规则是跨基础版本的两个版本可以从低版本升到高版本,但是不可以将高版本降到低版本,同一基础版本之间的版本可以任意升降。
7.如权利要求6所述的终端设备为手机。
8.一种将计算机数据下载至数字设备时进行版本比较的方法,其特征在于数字设备中具有程序版本规则比较模块,该模块使数字设备在下载程序数据之前,比较欲下载程序的版本信息与数字设备中现有的程序版本信息,使只有符合预定版本规则的程序可以被下载到数字设备,而不能将不符合预定版本规则的程序下载到数字设备。
9.如权利要求8所述的将计算机数据下载至数字设备时进行版本比较的方法,其特征在于下载数据之前数字设备的版本规则比较模块进行版本比较的流程为1)建立计算机与数字设备之间的通信连接后,由计算机通过数据线向数字设备发送要下载的文件的版本信息,数字设备的版本规则比较模块会将数字设备里原有版本信息和计算机传送过来的版本信息按照版本比较规则进行比较,并将比较结果返回给计算机;2)如果比较结果是允许下载,则计算机根据数字设备发送的比较结果信息继续进行文件下载;由计算机向数字设备发送文件数据包;3)如果比较结果是不允许下载,数字设备开始拒收后续的文件数据包;计算机则根据数字设备发送的比较结果提示不能下载,从而终止下载过程,使不符合版本比较规则的程序无法下载到数字设备上。
10.如权利要求2所述的将计算机数据下载至数字设备时进行版本比较的方法,其特征在于规则比较模块的版本规则的定义为版本信息中包括基础版本信息和当前版本信息,当前版本信息为数字设备中现有的程序的版本的信息,基础版本信息为一个参考版本信息,且当前版本信息必须大于或等于基础版本信息;版本比较的规则是跨基础版本的两个版本可以从低版本升到高版本,但是不可以将高版本降到低版本,同一基础版本之间的版本可以任意升降。
全文摘要
本发明涉及一种计算机数据下载至手机的方法,包括如下步骤首先由计算机向手机发送握手信号,手机接收上述握手信号后发送应答信号到计算机,从而建立起计算机与手机之间的通信,然后计算机发送欲下载程序的版本信息至手机,由手机根据预设的版本规则进行判断是否可以下载,如果判断为可以下载,则计算机开始发送数据包到手机,手机会将接收到的数据存储至手机的存储器中,下载过程中对关键代码进行加密,直至全部数据都发送至手机,下载结束后根据新的版本信息对数字签名进行更新,最后结束通信。通过以上过程可以防止他人篡改手机代码以保证手机的安全。
文档编号G06F9/445GK1570866SQ20041001820
公开日2005年1月26日 申请日期2004年5月10日 优先权日2004年5月10日
发明者张江峰, 刘青琥, 朱小燕 申请人:杭州斯达康通讯有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1