发明内容
鉴于上述的一个或多个问题,本发明提供了一种防止非法升级移动终端的应用程序的方法。
根据本发明的防止非法升级移动终端的应用程序的方法包括以下步骤:S102,移动终端和应用程序升级装置进行升级交互;S104,移动终端对应用程序升级装置进行验证,如果应用程序升级装置通过验证,进行以下步骤,否则结束与应用程序升级装置的升级交互;S106,移动终端对存储在应用程序升级装置中的应用程序升级版本进行验证,如果应用程序升级版本通过验证,则移动终端从应用程序升级装置下载应用程序升级版本,否则结束与应用程序升级装置的升级交互。
其中,步骤S104包括以下步骤:S1042,应用程序升级装置使用第一RSA(Rivest Shamir Adleman)密钥对的公钥对移动终端的公共信息进行加密;S1044,移动终端使用第一RSA密钥对的私钥对经过加密的公共信息进行解密,如果正确解密公共信息,则应用升级装置的身份合法,移动终端进行步骤S106,否则移动终端结束与应用程序升级装置的升级交互。
其中,步骤S106包括以下步骤:S1062,应用程序升级装置使用第二RSA密钥对的公钥对应用程序升级版本的版本信息进行加密;S1068,移动终端使用第二RSA密钥对的私钥对经过加密的版本信息进行解密,并根据版本验证规则对解密出的版本信息进行验证,如果应用程序升级版本是合法版本,则移动终端从应用程序升级装置下载应用程序升级版本,否则移动终端结束与应用程序升级装置的升级交互。
其中,步骤S106还包括以下步骤:S1064,应用程序升级装置将经过加密的版本信息保存在应用程序升级版本中;S1066,移动终端从应用程序升级版本中获取经过加密的版本信息。
其中,移动终端和应用程序升级装置通过扩展的自定义指令进行通信。移动终端是手机和/或PDA。不同型号的手机具有不同的公共信息。公共信息是手机的IMEI号。
采用根据本发明的方法,可以对手机下载软件环节进行有效控制,从而实现防止采用软件方式进行非法手机软件下载的目的。本发明中的机制原理可以推广到各种制式的手机,具有很广阔的通用性。另外,根据本发明的方法结合了手机开发的多方面知识,并巧妙引入了RSA加密算法,从而增加了手机软件的抗攻击能力,保证了手机软件系统的安全性。
具体实施方式
下面参考附图,详细说明本发明的具体实施方式。
本发明采用加密算法,并结合手机通讯能力,提出了一种新的防止非法升级移动终端的应用程序的方法。
RSA加密算法是一种公钥基础设施(Public Key Infrastructure,简称PKI)技术,其是以公开密钥为基础的非对称算法,其采用两个非常大的素数来产生完全不同的公钥(即,加密密钥)和私钥(即,解密密钥)。采用RSA算法进行加密和身份验证具有很高的抗攻击能力,在手机中引入该算法进行安全方面的设计,可以大大提高手机的安全性能。
图1A至图1C示出了根据本发明实施例的防止非法升级移动终端的应用程序的方法及其步骤的流程图。
如图1A所示,该方法包括以下步骤:S102,移动终端和应用程序升级装置进行升级交互;S104,移动终端对应用程序升级装置进行验证,如果应用程序升级装置通过验证,进行以下步骤,否则结束与应用程序升级装置的升级交互;S106,移动终端对存储在应用程序升级装置中的应用程序升级版本进行验证,如果应用程序升级版本通过验证,则移动终端从应用程序升级装置下载应用程序升级版本,否则结束与应用程序升级装置的升级交互。
如图1B所示,,步骤S104包括以下步骤:S1042,应用程序升级装置使用第一RSA密钥对的公钥对移动终端的公共信息进行加密;S1044,移动终端使用第一RSA密钥对的私钥对经过加密的公共信息进行解密,如果正确解密公共信息,则应用升级装置的身份合法,移动终端进行步骤S106,否则移动终端结束与应用程序升级装置的升级交互。
如图1C所示,步骤S106包括以下步骤:S1062,应用程序升级装置使用第二RSA密钥对的公钥对应用程序升级版本的版本信息进行加密;S1068,移动终端使用第二RSA密钥对的私钥对经过加密的版本信息进行解密,并根据版本验证规则对解密出的版本信息进行验证,如果应用程序升级版本是合法版本,则移动终端从应用程序升级装置下载应用程序升级版本,否则移动终端结束与应用程序升级装置的升级交互。
其中,步骤S106还可以包括以下步骤:S1064,应用程序升级装置将经过加密的版本信息保存在应用程序升级版本中;S1066,移动终端从应用程序升级版本中获取经过加密的版本信息。
其中,移动终端和应用程序升级装置通过扩展的自定义指令进行通信。此处所说的移动终端包括手机或PDA,但不限于手机和PDA,其可以是可用于进行通信的任何移动装置。其中,不同型号的手机具有不同的公共信息。此处所说的公共信息可以是手机的IMEI号。
图2示出了根据本发明另一实施例的防止非法升级移动终端的应用程序的方法的流程图。其中,在图2所示的方法中,移动终端是手机。如图2所示,防止非法升级手机的应用程序的方法包括下列步骤:
S202,在手机代码中预留一个固定位置的数组空间Array_ver,用于存放加密的身份验证信息。通过修改分布装载描述文件,将该预留数组空间编译的地址固定并记录下来。步骤S202具体包括下列内容:在一个特定文件中,在文件靠前的位置定义一个128位的char类型空数组(采用128位RSA加密算法);在分布装载描述文件中,将该特定文件的编译地址固定为某个地址;通过该数组在该文件中的位置,计算出该数组编译地址并记录下来。
S204,选择一对RSA密钥对Key1用于身份验证,确定一种版本验证规则,选择另一对RSA密钥对Key2用于版本验证。此处的Key1和Key2可以采用同一对RSA密钥。步骤S204具体包括下列内容:确定一种版本验证规则(例如,版本验证信息为某个数a,只有新软件版本的版本验证信息b为b=a+1,才能通过身份验证);利用RSA工具随机生成两对RSA密钥对:Key1和Key2;将版本验证信息a作为常量保存在手机软件代码中,供后续步骤调用。其中,Key1和Key2的公钥供PC侧软件加密使用,Key1和Key2的私钥供手机侧软件解密使用。
S206,利用公共信息和密钥对Key1进行身份验证,分别在手机侧和PC侧中加入身份验证代码。其原理为:PC侧软件用Key1的公钥对手机的公共信息进行加密,PC侧软件将加密过的公共信息发送给手机软件,手机软件用Key1私钥对其进行解密以验证PC侧软件的身份。其安全性主要利用了RSA算法的身份验证功能,其安全性靠Key1的安全性来保证。本步骤具体包括下列内容:公共信息一般可以考虑手机的IMEI号。每个手机都有一个不同且唯一的IMEI号,PC侧软件可以通过一些接口来获取手机的IMEI号。PC侧软件将IMEI号用Key1的公钥加密后发送给手机软件。手机软件用Key1的私钥对该信息进行解密,如果能正确解密为手机的IMEI号,则表示PC侧软件为合法软件,允许进行下一步的版本信息验证过程。
S208,生成加密的版本信息,存放于新的软件版本的Array_ver数组空间,用于版本验证。本步骤具体包括下列内容:用Key2公钥对版本验证信息进行加密处理,得到一个公钥加密的版本信息。该加密的版本信息在手机软件版本生成后将写入到手机软件版本下载文件的预留的、已知位置的Array_ver数组空间中。
S210,利用版本信息和密钥对Key2进行版本信息验证,分别在手机侧和PC侧中加入版本验证代码。PC侧读取要下载的新版本手机软件文件的Array_ver数组空间中的已加密数据,将其根据约定接口通过已有通讯机制发送给手机。手机对接收到的已加密数据用Key2私钥进行解密,并根据版本验证规则进行验证。
S212,手机侧软件根据身份验证和版本验证结果决定是否进入正常下载过程,只有经过身份验证和版本验证才能正常下载手机软件。本步骤具体包括下列内容:对进行身份验证过程和进入正常下载程序分别设置开关。首先进行身份验证,如身份验证通过则打开进行下一步版本验证的开关,否则进行身份验证时直接返回错误提示,下载失败。根据版本验证结果,决定是否打开进入正常下载程序的开关。
图3是图2所示的方法中的PC侧软件和手机软件进行的信息交互的流程图。如图3所示,PC侧软件和手机软件进行交互的过程包括以下步骤:
S302,PC侧通过指令从手机侧读取手机的公共信息(如IMEI号,每个手机的IMEI号都是唯一的,具有个体差异性)。
S304,PC侧软件用Key1公钥对获取的公共信息IMEI号进行加密处理,由于Key1密钥对是保密的,且每个手机IMEI号不同,所以其加密结果也不同,加密结果具有身份验证功能,用于识别非法下载软件。
S306,手机侧对PC侧软件的合法身份进行判断,如合法,则下载相关处理可以进行下去,否则后续处理都将被手机侧拒绝。PC侧对手机侧返回的结果进行判断无法决定其是否能进行下一步操作,能否进行下一步操作由手机侧来决定。
S308,PC侧软件从新的手机软件版本文件的预留位置读取手机中已用Key2公钥加密过的128byte版本信息。发送给手机软件,手机软件对该版本信息进行解密。根据版本验证规则手机侧可以判断新的手机软件版本是否是合法版本。由于用保密的Key2公钥加密过,所以该加密信息在没有密钥对的情况下是安全的。
S310,手机侧对新的软件版本的合法性进行判断,如合法则打开正常下载的开关,否则无法进入正常下载的后续操作。PC侧对手机侧返回的结果进行判断无法决定其是否能进行下一步操作,能否进行下一步操作由手机侧来决定。
S312,下载流程在一般情况下都是关闭状态。
S314,只有通过了身份验证和版本验证的PC侧软件才能进入正常下载流程。下载流程开关的设置位置应该设在下载的关键流程中。
综上所述,本发明提供了一种新的防止非法下载移动终端的应用程序的方法。在该方法中,引入了RSA算法,采用身份验证和版本验证的方式保证了软件升级版本的合法性。在制作移动终端软件版本时,对版本内容通过RSA算法加入版本验证信息。同时,在下载前,移动终端需要通过密钥方式对PC侧软件进行身份鉴别。不能通过身份验证和版本验证的非法软件,阻止其进入正常的下载状态。由于验证规则、身份信息和版本信息自身具有保密性,加上采用RSA算法的高安全性,进而可以从移动终端侧和PC侧两方面来控制应用程序升级的合法性,从而提高了其抗破解能力。根据本发明的方法的实现原理思路主要包括以下内容:移动终端和PC侧软件通过扩展的自定义指令进行通讯,实现双方信息的交互;采用RSA密钥算法,结合公共信息,实现移动终端对PC侧软件的身份验证,以判断该PC侧下载软件的合法性;在移动终端软件版本中附加已加密的版本信息,根据版本验证规则对该下载的软件版本进行验证,以判断该移动终端软件版本的合法性;根据以上验证结果是否合法对下载过程设置开关,以控制下载的正常进行。
其中,移动终端和PC侧软件通讯的方式随着各个平台特点的不同,可以采用不同方式来实现。其中,通讯指令必须具有扩展性以满足该方法中PC侧和移动终端侧信息的交互,这个是必备条件。自由扩展指令的能力也提高了该方法的安全性。
其中,公共信息指移动终端公开的和PC侧软件容易获取的信息。此公共信息应选择具有移动终端个体差异性的信息,利用具有移动终端个体差异性的公共信息进行身份验证可以提高其破解难度。RSA算法是是实现认证功能的最常用和可靠的一种算法,具有很强的抗攻击能力,也可以根据实际情况采用其它可替代算法来实现。该处身份验证的安全性主要靠算法的安全性来保证。
其中,该处的版本验证规则和版本信息可以根据用户的需要来定义,该处的安全性依靠版本信息、版本验证规则和算法来多重保证。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。