基于非对称算法的移动终端安全锁网锁卡保护和解锁方法

文档序号:7650417阅读:228来源:国知局
专利名称:基于非对称算法的移动终端安全锁网锁卡保护和解锁方法
技术领域
本发明涉及移动通讯终端中一种高效安全的防止手机被非法破解和正常使用的方法,具体地涉及一种基于非对称算法的移动终端安全锁网锁卡保护和解锁方法。
背景技术
随着3G网络在全球的普及以及运营商之间竞争的加剧,手机的销售方式除了传统的生产厂商销售渠道销售,大多数采用的是运营商定制,大规模补贴低价出售给最终用户,这时手机中针对特定运营商的锁网锁卡功能就显得特别重要。手机的锁网锁卡功能主要是根据运营商的要求,定制的手机只能在特定的网络下,采用特定的SIM/USIM卡才能使用,这样才能维护运营商的利益,防止非法解锁到别的地区别的运营商下使用。同时也提供给运营商软件工具进行合法的解锁。
早期国内CDMA手机也有简单的锁网锁卡功能,但是要求简单,相应的实现也很简单,仅仅通过手机内存储的一两个字节数据来作为判断是否锁网锁卡的标准,容易破解,没有任何安全的意义。
而目前全球范围内流行的知名品牌水货机、改版机,如Nokia,Samsung,SE,Moto,LG等,它们为世界一流的运营商定制,如H3G,Vodafone等,但是仍然遭到广泛的非法破解。国外的定制手机拿回国内一般都能迅速的重新刷机并被破解。
目前的手机上均有FLASH(闪存)存储器,一般是NOR FLASH或者NAND FLASH,两种FLASH均可自由读写并存储数据,不同的是NORFLASH上的代码可以直接执行,而NAND FLASH则不行,需要把代码拷贝到SDRAM中去运行。

发明内容
本发明所要解决的技术问题在于提供一种基于非对称算法的移动终端安全锁网锁卡保护和解锁方法,以解决现有锁网锁卡技术中简单的方案易于破解、复杂的方案难于实现等的缺点。
为了解决上述问题,本发明提供了一种基于非对称算法的移动终端安全的锁网锁卡保护方法,其特征在于,包括以下步骤(1)用户通过个人计算机向移动终端发起对锁网锁卡参数的预设,并分配一对非对称公私密钥给该移动终端;(2)个人计算机接收到锁网锁卡参数后,使用非对称私钥对锁网锁卡参数及该参数的摘要加密,并和分配的非对称公钥一起保存在移动终端的FLASH存储器上;(3)当该移动终端开机后,调用FLASH存储器上加密后的锁网锁卡参数和参数的摘要,用非对称公钥进行解密,将解密后的摘要与解密后的锁网锁卡参数通过散列算法运算出来的摘要值进行比较,判断是否被非法修改过,如果是则直接关机,否则等待移动终端的SIM或USIM卡初始化完成后,读取锁网锁卡标志位数据,判断是否是锁网锁卡的锁状态,如果不是锁状态则允许用户对该移动终端继续正常使用,如果是锁状态则读取SIM/USIM卡上一些特定参数与该移动终端的特定参数相比较,如果一致则允许用户对该移动终端继续正常使用,否则拒绝该用户继续使用该移动终端。
本发明所述的锁网锁卡保护方法,其中,锁网锁卡参数,包括机密数据和关键代码,而机密数据指的是锁网锁卡解锁码、锁网锁卡状态标志等其他相关参数。
本发明所述的锁网锁卡保护方法,其中,所述步骤(2)包括(21)所述个人计算机接收到锁网锁卡参数后,用散列算法取得要保护的锁网锁卡参数的摘要;
(22)个人计算机接收到锁网锁卡参数后,使用非对称私钥对锁网锁卡参数及该参数的摘要加密,并和分配的非对称公钥一起保存在移动终端的FLASH存储器上;所述步骤(3)包括(31)当该移动终端开机后,调用FLASH存储器上加密后的用散列算法取得加密后的锁网锁卡参数及其摘要,用非对称公钥进行解密;(32)将解密后的摘要与解密后的锁网锁卡参数通过散列算法运算出来的摘要值进行比较是否相同,从而判断是否被非法修改过,如果是则直接关机,否则等待移动终端的SIM或USIM卡初始化完成后,读取锁网锁卡标志位数据,判断是否是锁网锁卡的锁状态,如果不是锁状态则允许用户对该移动终端继续正常使用,如果是锁状态则读取SIM/USIM卡上一些特定参数与该移动终端的私钥加密保存的特定参数用公钥解密后相比较,如果一致则允许用户对该移动终端继续正常使用,否则拒绝该用户继续使用该移动终端。
上述的锁网锁卡保护方法,其中,所述特定参数,为HPLMN值或EF_GID1值;其中,所述锁网锁卡标志位数据,为采用两个双字节的锁网锁卡标志位数据;其中,所述散列算法,为MD5算法或SHA-1算法。
本发明所述的锁网锁卡保护方法,其中,所述加密、解密,为采用1024位密钥的非对称通用算法。
本发明所述的锁网锁卡保护方法,其中,所述步骤(1)包括用户通过个人计算机采用usb、串口、红外线或蓝牙之一通讯方式,向移动终端发起对锁网锁卡参数的预设,并分配一对非对称公私密钥给该移动终端。
为了解决上述问题,本发明还提供了一种基于非对称算法的移动终端安全的锁网锁卡解锁方法,其特征在于,包括以下步骤
(1)所述移动终端随机生成16位阿拉伯数字字符串组成锁网锁卡的锁网解锁码和锁卡解锁码,并将锁网解锁码和锁卡解锁码保存在本地的同时传输给个人计算机,所述个人计算机收到后,利用分配给该移动终端的非对称私钥将该锁网解锁码和锁卡解锁码加密后与移动终端的IMEI代码一起存储在个人计算机数据库中;(2)当该移动终端开机后,用户发出解锁请求,该移动终端接受到这个请求后,读取锁网锁卡标志位数据,判断当前锁网锁卡处于锁状态还是解锁状态,如果是解锁状态则不需要再解锁,否则该移动终端开始检查解锁所需要的数据的完整性,如果移动终端内没有所需要的数据或者发现数据被非法篡改过,则提示解锁失败,否则该移动终端根据其IMEI代码调出个人计算机数据库中保存的相应的加密后的锁网解锁码和锁卡解锁码,并用该移动终端的非对称公钥解密,解密后的锁网解锁码和锁卡解锁码与该移动终端内存储的锁网解锁码和锁卡解锁码进行比较,如果一致则表明解锁合法,改变锁网锁卡为解锁状态。
本发明所述的锁网锁卡解锁方法,其中,步骤(2)所述需要的数据,包括移动终端内存储的锁网解锁码和锁卡解锁码,以及非对称公钥。
本发明所述的锁网锁卡解锁方法,其中,所述加密、解密,为采用1024位密钥的非对称通用算法。
本发明所述的锁网锁卡解锁方法,其中,所述锁网锁卡标志位数据,为采用两个双字节的锁网锁卡标志位数据。
本发明所述的锁网锁卡解锁方法,其中,所述步骤(1)包括所述移动终端随机生成16位阿拉伯数字字符串组成锁网锁卡的锁网解锁码和锁卡解锁码,并将锁网解锁码和锁卡解锁码保存在本地的同时通过采用usb、串口、红外线或蓝牙之一通讯方式传输给个人计算机,所述个人计算机收到后,利用分配给该移动终端的非对称私钥将该锁网解锁码和锁卡解锁码加密后与移动终端的IMEI代码一起存储在个人计算机数据库中。
采用本发明所述方法,与现有技术相比,在当前通用的硬件条件上实现了安全可靠,易于实现的方案。即采用了高强度的非对称加解密算法,安全性和防破解上达到了较高的层次,充分利用了移动终端自身的特点,不需要额外的硬件,节省了成本,并且在任何支持FLASH读写的移动终端即手机上都可以轻易的实现和扩展,是一种实用的安全的手机锁网锁卡方法。


图1是本发明现有技术中的非对称公私钥加解密数据示意图;图2是本发明现有技术中的使用HASH算法进行加密防止数据被修改过程的流程示意图;图3是本发明实施例所述的手机的锁网锁卡参数的初始化写入步骤图;图4是本发明实施例所述的基于非对称算法的手机安全锁网锁卡保护的操作流程图;图5是本发明实施例所述的基于非对称算法的手机安全锁网锁卡合法解锁的操作流程图。
具体实施例方式
本发明为了解决传统技术方案存在的弊端,通过以下具体实施例进一步阐述本发明所述的一种基于非对称算法的移动终端安全锁网锁卡保护和解锁方法,以下对具体实施方式
进行详细描述,但不作为对本发明的限定。
本发明所述实施例在现有移动终端即手机自身硬件条件下,利用普通手机的存储条件,不外加特殊存储硬件或加密硬件,从而提供一个安全有效、易于实现、具有可行性和高度安全的锁网锁卡安全手机方案。本方案提出的方法在背景技术中提到的两种FLASH上均可实现,因此不需要考虑它们之间的差异。
本发明实施例所述的锁网锁卡保护和解锁方法包括两个要点,一个是基于FLASH存储机密数据,另外一个方面是采用非对称算法来保护锁网锁卡参数(机密数据和关键代码)。下面分别从几个方面来介绍这个方案本发明实施例所述方法中现有技术对于机密数据的存储基于FLASH存储可以采用手机自身带有的文件系统,也可以按照二进制直接存在FLASH特定位置上。机密数据包含锁网解锁码、锁卡解锁码等。对于所采取的方式没有太大的差别。
本发明实施例所述方法中现有技术对于密钥的存储,从安全的角度来讲,手机是不安全的,也是不可被信任的,因此只能将非对称公私钥对中的公钥放到手机上,私钥要保存在手机外的一个可被信任的单独载体上,例如个人计算机(PC)的数据库中;手机只能做被加密数据的解密操作,无法对于更新的数据进行加密。如附图1所示,本发明现有技术中的非对称公私钥加解密数据示意图。
如图2所示,为本发明现有技术中的使用HASH算法进行加密防止数据被修改过程的流程示意图;对于机密数据使用非对称私钥加密后保存在手机FLASH存储器上,非对称私钥是不公开的,使用这些数据时用非对称公钥解密即可,因此这些机密数据不能被非法篡改。加密后的机密数据还要防止被破坏,否则用公钥解密出来跟正确的明文就不一致了,因此这里与下面提及的关键代码同样使用一个HASH摘要算法来保护。
对于一些关键代码,比如进行解密操作的,锁网锁卡判断的关键代码,和上面提及的加密后的机密数据一样都要防止被非法修改破坏,因此如图2所示,使用如下步骤进行保护步骤201,用散列(HASH)算法(MD5,SHA-1或其他)取得想要保护的数据(如机密数据、关键代码等)的摘要(Digest);步骤202,将取得想要保护的数据的摘要使用非对称私钥加密后保存;步骤203,当手机运行时,对于所述数据进行校验运算;
步骤204,用非对称公钥解密保存的用HASH算法取得的数据摘要,将解密后的值与校验运算出来的值进行比较,如果一致则就可以知道没有被篡改。
本发明实施例所述的方法首先进行锁网锁卡参数的初始化写入;因为锁网锁卡的相关数据不能明文存储在手机中,而进行加密的非对称私钥也不能放在手机上,因此这些数据的加密和写入手机都是通过外部的个人计算机(PC)侧工具来实现的,这样也能保证每个手机的加解密的非对称公私钥对是不相同的。在PC侧工具中存储了一定数量的公私钥对,使用时随机抽取一对给当前的手机即可。如图3所示,步骤如下步骤301,PC侧工具向手机发起锁网锁卡参数初始化请求,并分配一对非对称公私钥给当前的手机;步骤302,所述手机利用非对称私钥将要锁网锁卡参数进行加密处理,和分配给手机的非对称公钥一起传输给该手机的FLASH存储器;步骤303,所述手机接收到上述这些数据后保存在FLASH存储器上,然后生成锁网锁卡参数的锁网解锁码和锁卡解锁码(即两组16位随机阿拉伯数字字符串),将解锁码保存在本地同时传输给PC侧工具;步骤304,PC侧收到锁网解锁码和锁卡解锁码(明文)后,利用分配给该手机的非对称私钥将锁网解锁码和锁卡解锁码加密后,与该手机的IMEI号一起保存在数据库中,以后就可以利用IMEI号来检索锁网解锁码和锁卡解锁码。
其中,锁网解锁码、锁卡解锁码都采用16位的阿拉伯数字字符串即可,因为明文数据是由手机随机产生的,而非对称私钥又不在手机上,因此采用手机生成明文并保存,PC侧负责加密后保存的方法;PC侧工具与手机间的通讯依照各种手机平台的不同,采用串口通讯或者红外或者蓝牙或者其他,并不影响本发明实施例下面所述方法的实现。由于PC侧软件保存有大量机密数据,因此建议使用USB Dongle来保护PC侧软件并存储非对称私钥;同样,本发明实施例所述方法中的加解密算法采用1024位密钥的非对称通用算法(如RSA),上面提及的HASH算法采用MD5或者SHA-1即可。上面所述的锁网锁卡参数与锁网锁卡功能实现相关,主要是SIM/USIM卡上某些文件的内容,具体的数据结构根据该文件的内容来确定。
如图4所示,本发明实施例所述的基于非对称算法的手机安全锁网锁卡保护的操作流程图;在手机开机后按照如下步骤进行手机安全锁网锁卡保护的检查步骤401,按照上述的锁网锁卡判断关键代码保护流程,检查要保护的代码部分是否被非法改过;如果没有,则继续下面的步骤,否则直接关机;步骤402,同样按照锁网锁卡判断机密数据保护流程,检查要保护的机密数据是否被非法改过;具体地说,在锁网解锁码、锁卡解锁码及其相关参数保存至手机中时,用HASH算法取得要保护的数据的摘要并用非对称私钥加密保存,这一步检查,能够防止这些数据被非法的修改,如果发现最后的HASH算法结果不一致,则直接关机,否则继续下面的步骤;步骤403,等待手机的SIM/USIM卡初始化完成后,读取锁网锁卡标志位数据,如果此标志为锁网锁卡的锁状态,则执行步骤404,否则认为手机已经解锁,不进行检查,继续进行开机流程;步骤404,进行锁网锁卡的检查,锁网锁卡检查的定义是读取SIM/USIM卡上一些特定参数(如HPLMN值,EF_GID1值等)与该手机内预设的参数相比较,如果一致则认为是合法的用户,允许用户继续正常的使用,否则认为是非法的使用,提示用户并限制其进一步使用。
如图5所示,为本发明实施例所述的基于非对称算法的手机安全锁网锁卡合法解锁的操作流程图;上述提供锁网锁卡检查保护的同时,也提供合法的解锁。解锁的步骤如下步骤501,向手机发出解锁的请求,可以使用PC侧工具与手机通讯,也可以在手机上提供这样的功能(比如提供一个解锁的菜单);手机接受到这个请求后检查手机当前处于锁的状态还是已经解锁的状态,如果已经是解锁状态则不需要再解锁了;步骤502,否则,开始检查解锁所需要的数据(解锁码、公钥等)的完整性,具体算法如前面所述;如果手机内没有这些数据或者发现被非法篡改过,则提示解锁失败;步骤503,否则,提示用户输入相应的解锁码(解锁网或解锁卡),或该移动终端根据其IMEI代码调出个人计算机数据库中保存的相应的加密后的锁网解锁码和锁卡解锁码,解锁码为16位随机的阿拉伯数字字符串;步骤504,手机内存储的是锁网解锁码和锁卡解锁码的明文,而调用PC数据库或用户输入的实际上是真实解锁码用非对称私钥加密后的密文,手机收到密文后用手机端的非对称公钥解密,然后比较解密后的内容与其内存储的明文是否一致,一致则表明解锁合法,改变锁网锁卡标志位为解锁状态,这样该手机下次开机就不会再进行锁网锁卡保护检查了。
上面实施例所述的方法中的锁网锁卡标志位数据采用两个双字节的数据来表示,而不是采用简单的0或者1,比如我们可以采用0xAAF0和0xF0AA来表示锁网和解锁网两个状态。
综上所述,本发明实施例所述方法涉及了实现手机安全方案的各个方面,包括密钥分配,参数生成,锁网锁卡检测,合法解锁等,整个方法严密,安全度高,并且也充分结合了手机具有FLASH存储这一特点,易于实现和验证。同时,此发明已经在实践中得到充分验证。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种基于非对称算法的移动终端安全的锁网锁卡保护方法,其特征在于,包括以下步骤(1)用户通过个人计算机向移动终端发起对锁网锁卡参数的预设,并分配一对非对称公私密钥给该移动终端;(2)个人计算机接收到锁网锁卡参数后,使用非对称私钥对锁网锁卡参数及该参数的摘要加密,并和分配的非对称公钥一起保存在移动终端的FLASH存储器上;(3)当该移动终端开机后,调用FLASH存储器上加密后的锁网锁卡参数和参数的摘要,用非对称公钥进行解密,将解密后的摘要与解密后的锁网锁卡参数通过散列算法运算出来的摘要值进行比较,判断是否被非法修改过,如果是则直接关机,否则等待移动终端的SIM或USIM卡初始化完成后,读取锁网锁卡标志位数据,判断是否是锁网锁卡的锁状态,如果不是锁状态则允许用户对该移动终端继续正常使用,如果是锁状态则读取SIM/USIM卡上一些特定参数与该移动终端的特定参数相比较,如果一致则允许用户对该移动终端继续正常使用,否则拒绝该用户继续使用该移动终端。
2.如权利要求1所述的锁网锁卡保护方法,其特征在于,锁网锁卡参数,包括机密数据和关键代码。
3.如权利要求1所述的锁网锁卡保护方法,其特征在于,所述步骤(2)包括(21)所述个人计算机接收到锁网锁卡参数后,用散列算法取得要保护的锁网锁卡参数的摘要;(22)个人计算机接收到锁网锁卡参数后,使用非对称私钥对锁网锁卡参数及该参数的摘要加密,并和分配的非对称公钥一起保存在移动终端的FLASH存储器上;所述步骤(3)包括(31)当该移动终端开机后,调用FLASH存储器上加密后的用散列算法取得加密后的锁网锁卡参数及其摘要,用非对称公钥进行解密;(32)将解密后的摘要与解密后的锁网锁卡参数通过散列算法运算出来的摘要值进行比较是否相同,从而判断是否被非法修改过,如果是则直接关机,否则等待移动终端的SIM或USIM卡初始化完成后,读取锁网锁卡标志位数据,判断是否是锁网锁卡的锁状态,如果不是锁状态则允许用户对该移动终端继续正常使用,如果是锁状态则读取SIM/USIM卡上一些特定参数与该移动终端的私钥加密保存的特定参数用公钥解密后相比较,如果一致则允许用户对该移动终端继续正常使用,否则拒绝该用户继续使用该移动终端。
4.如权利要求1或3所述的锁网锁卡保护方法,其特征在于,所述特定参数,为HPLMN值或EF_GID1值。
5.如权利要求1或3所述的锁网锁卡保护方法,其特征在于,所述锁网锁卡标志位数据,为采用两个双字节的锁网锁卡标志位数据。
6.如权利要求3所述的锁网锁卡保护方法,其特征在于,所述散列算法,为MD5算法或SHA-1算法。
7.如权利要求1所述的锁网锁卡保护方法,其特征在于,所述加密、解密,为采用1024位密钥的非对称通用算法。
8.如权利要求1所述的锁网锁卡保护方法,其特征在于,所述步骤(1)包括用户通过个人计算机采用usb、串口、红外线或蓝牙之一通讯方式,向移动终端发起对锁网锁卡参数的预设,并分配一对非对称公私密钥给该移动终端。
9.一种基于非对称算法的移动终端安全的锁网锁卡解锁方法,其特征在于,包括以下步骤(1)所述移动终端随机生成16位阿拉伯数字字符串组成锁网锁卡的锁网解锁码和锁卡解锁码,并将锁网解锁码和锁卡解锁码保存在本地的同时传输给个人计算机,所述个人计算机收到后,利用分配给该移动终端的非对称私钥将该锁网解锁码和锁卡解锁码加密后与移动终端的IMEI代码一起存储在个人计算机数据库中;(2)当该移动终端开机后,用户发出解锁请求,该移动终端接受到这个请求后,读取锁网锁卡标志位数据,判断当前锁网锁卡处于锁状态还是解锁状态,如果是解锁状态则不需要再解锁,否则该移动终端开始检查解锁所需要的数据的完整性,如果移动终端内没有所需要的数据或者发现数据被非法篡改过,则提示解锁失败,否则该移动终端根据其IMEI代码调出个人计算机数据库中保存的相应的加密后的锁网解锁码和锁卡解锁码,并用该移动终端的非对称公钥解密,解密后的锁网解锁码和锁卡解锁码与该移动终端内存储的锁网解锁码和锁卡解锁码进行比较,如果一致则表明解锁合法,改变锁网锁卡为解锁状态。
10.如权利要求9所述的锁网锁卡解锁方法,其特征在于,步骤(2)所述需要的数据,包括移动终端内存储的锁网解锁码和锁卡解锁码,以及非对称公钥。
11.如权利要求9所述的方法,其特征在于,所述加密、解密,为采用1024位密钥的非对称通用算法。
12.如权利要求9所述的锁网锁卡保护方法,其特征在于,所述锁网锁卡标志位数据,为采用两个双字节的锁网锁卡标志位数据。
13.如权利要求9所述的锁网锁卡解锁方法,其特征在于,所述步骤(1)包括所述移动终端随机生成16位阿拉伯数字字符串组成锁网锁卡的锁网解锁码和锁卡解锁码,并将锁网解锁码和锁卡解锁码保存在本地的同时通过采用usb、串口、红外线或蓝牙之一通讯方式传输给个人计算机,所述个人计算机收到后,利用分配给该移动终端的非对称私钥将该锁网解锁码和锁卡解锁码加密后与移动终端的IMEI代码一起存储在个人计算机数据库中。
全文摘要
本发明公开一种基于非对称算法的移动终端安全锁网锁卡保护和解锁方法,包括基于非对称算法的移动终端安全的锁网锁卡保护方法和基于非对称算法的移动终端安全的锁网锁卡解锁方法。本发明解决了现有锁网锁卡技术中简单的方案易于破解、复杂的方案难于实现等的缺点问题。
文档编号H04L9/32GK101043327SQ20071008743
公开日2007年9月26日 申请日期2007年3月16日 优先权日2007年3月16日
发明者胡红雷, 史幸川 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1