一种基于椭圆曲线公钥密码的无线终端安全锁网锁卡方法

文档序号:7649780阅读:264来源:国知局
专利名称:一种基于椭圆曲线公钥密码的无线终端安全锁网锁卡方法
技术领域
本发明涉及移动通信终端,特别涉及一种基于椭圆曲线公钥密码的无线终端安全锁网锁卡方法。
背景技术
随着WCDMA网络在全球范围内的大规模商用,以及WCDMA用户数量的增多,各运营商为了扩大和巩固用户数量,在无线终端或手机销售模式上采用话费补贴或附送手机方式来吸引用户。在一些国家和地区,运营商为了保证手机用户不流失,要求所采购的手机只能在自己的网络使用,并且使用运营商自己发行的SIM/USIM卡,因此对手机提出了锁网锁卡的要求。通过锁网及锁卡技术,可以防止部分3G运营商通过某个地区运营商低价获得手机,然后转到其它地区高价出售,从而赚取运营商为发展市场所进行的补贴。另一方面,为了防止黑客攻击,各运营商对手机锁网锁卡的安全性提出了很高要求。
手机锁网是指依照当初运营商与手机制造商达成的协议,此手机机型只能使用该运营商网内的SIM/USIM卡,其他运营商提供的SIM/USIM卡均不能使用。手机锁卡是指该手机只认插入的第一张卡,其他卡均不能使用。不能使用的技术原因在于,该手机是通过安全软件加了锁,解锁需要进行软件重写。
关于锁网锁卡要求的相关标准规范有3GPP TS 22.022,但在安全实现方面,不存在任何3GPP相关标准,也没有解决上述问题的方便可靠的方法从锁网锁卡安全技术及安全管理的角度来说,要求提供网络锁网锁卡的安全实现及方法,在手机制造商内仍然需要严格保密。另外,为保证锁网锁卡软件不被伪造,要求只有经过授权或数字签名的相关软件才可以在手机内运行,同时,对锁网锁卡的敏感数据要进行安全保护。
为保障安全的锁网锁卡功能,对手机软件进行编程/重编的软件也应严格进行安全管理,以便不能使用或发现任何软件对手机进行去锁网锁卡功能,这就要求在手机安全引导进程中,要进行锁网相关的软件完整性检查,同时,保证每种软件使用之前经过授权,或要通过数字签名与验证。另外,也不能通过降低软件版本,对软件进行重新构造,从而对锁网锁卡功能造成威胁。
按相关标准规范3GPP TS22.022要求,手机内锁网锁卡功能的解锁功能,只有通过解锁密钥DCK,即解锁密码,才可以解除。并要求解锁密钥不可被重新编码,并且要阻止任何伪造/反向工程推导。解锁密钥DCK是需要严格保密的信息,在存储与传输时要采取必要的安全手段和安全级别。只有厂家或运营商才有可能存取DCK。除了解锁密钥外,要防止任何黑客在可用商业机上,使用任何物理或软件方法来解锁手机的锁网锁卡功能。
基于以上锁网锁卡的安全技术与管理需求,要求手机锁网锁卡软件安全机制应足够强,不能被逆向推导或受到一个非授权第三方的危害,同时要求安全机制不能被绕过。
而解决以上问题的有效途径就是借助于公钥密码体制PKI技术。
目前实用的公钥密码体制根据其所依据的难题一般分为三类大整数分解问题类-RSA算法、离散对数问题类-数字签名算法DSA、椭圆曲线类-椭圆曲线密码ECC。
椭圆曲线密码体制是目前已知公钥密码体制中,每比特所提供加密强度最高的一种体制。RSA公钥密码算法的特点之一是数学原理简单、在工程应用中比较易于实现,但它的单位安全强度相对较低。目前国际上公认的对于RSA算法最有效的攻击方法--数域筛NFS方法去破译和攻击,证明RSA算法的破译或求解难度是亚指数级的。而ECC算法的数学理论非常深奥和复杂,在工程应用中比较难于实现,但它的单位安全强度相对较高。用国际上公认的对于ECC算法最有效的攻击方法--Pollard rho方法去破译和攻击ECC算法,它的破译或求解难度基本上是指数级的。正是由于RSA算法和ECC算法这一明显不同,使得ECC算法的单位安全强度高于RSA算法,也就是说,要达到同样的安全强度,ECC算法所需的密钥长度远比RSA算法低。这就有效地解决了为了提高安全强度必须增加密钥长度所带来的工程实现难度的问题,特别是对于手机这样处理能力不强,内存资源比较紧张的情况。例如,当RSA算法密钥使用2048位时,ECC密钥仅使用234位,而所获得的安全强度要高出许多。它们之间的密钥长度相差达9倍以上,当ECC密钥更大时它们之间差距将更大。ECC密钥短的优点是非常明显的,随加密强度的提高,密钥长度变化不大。
随着全球范围内为避免预先设置的锁网锁卡功能不被运营商或用户非法取消,各大运营商对手机安全锁网锁卡提出的越来越高的安全强度的需求。

发明内容
本发明需要解决的技术问题是提供一种基于椭圆曲线公钥密码的无线终端安全锁网锁卡方法,能够实现锁网锁卡,同时在一定密钥长度可以提供更高的安全强度。
本发明的上述第一个技术问题这样解决,提供一种基于椭圆曲线公钥密码的无线终端安全锁网锁卡方法,包括以下步骤1.1)使用椭圆曲线公钥证书签名生成的数字签名和存储在该终端内的椭圆曲线私钥密码在开机初始阶段进行软件的合法性检查;1.2)通过验证的软件根据终端当前注册的网络与预存网络信息比较结果决定提供网络服务与否或者读取USIM/SIM卡内的IMSI号并与预存的IMSI号比较决定是否提供服务。
按照本发明提供的锁网锁卡方法,所述预存的网络信息和IMSI号是基于ElGamal算法模拟的椭圆曲线进行加密保存并解密读取的;这些安全数据还保存在终端内的安全存储区域中,保证它们不被非法篡改。
按照本发明提供的锁网锁卡方法,所述预存的网络信息和IMSI号也可直接设置在软件中,保证它们不被非法篡改但这种架构不利于功能的完善和增加。(建议保留用于支撑较大的权利要求1)按照本发明提供的锁网锁卡方法,所述步骤1.1)还包括使用对应数字签名对所述加密保存进行合法和完整性检查;进一步确保了这些安全数据的安全和正确性。
按照本发明提供的锁网锁卡方法,所述网络信息可以是MNC,还可以是MNC和MCC。
按照本发明提供的锁网锁卡方法,所述加密保存,即安全数据,还包括软件签名的认证码、HPLMN、FLEXFILE、EF_GID1、软件版本号、网络控制锁NCK、运营商控制锁SPC、锁网锁卡状态标志、网络/卡解锁剩余尝试次数、锁卡校验码、公钥、版本校验码、IMEI号校验码或锁卡校验码,并保存在终端内的安全存储区域中。
按照本发明提供的锁网锁卡方法,该方法还包括位于步骤1.1)和1.2)之间的步骤解密读取锁网锁卡状态标志,“锁网/卡状态”进入步骤1.2)“不锁网/卡状态”则跳过步骤1.2)进入正常开机流程。
按照本发明提供的锁网锁卡方法,该方法还包括根据所述软件版本号与通过椭圆曲线公钥密码加密、椭圆曲线私钥密码解密的待下载软件版本号的比较是否在版本号的安全区域决定是否允许下载;进行版本控制。
按照本发明提供的锁网锁卡方法,所述网络/卡解锁剩余尝试次数不为零,该方法还包括根据输入所述网络控制锁NCK将锁网锁卡状态标志从“锁网/卡状态”改为“不锁网/卡状态”。
按照本发明提供的锁网锁卡方法,所述网络/卡解锁剩余尝试次数为零,该方法还包括根据输入所述运营商控制锁SPC将锁网锁卡状态标志从“锁网/卡状态”改为“不锁网/卡状态”,同时再输入所述网络控制锁NCK锁网锁卡状态标志不发生变化。
按照本发明提供的锁网锁卡方法,所述步骤1.1)中数字签名源于所述软件的二进制可加载格式映像文件。
按照本发明提供的锁网锁卡方法,所述无线终端包括但不限制于2G或3G终端。
本发明提供的一种基于椭圆曲线公钥密码的无线终端安全锁网锁卡方法,采用的椭圆曲线密码体制在已知公钥密码系统中具有每比特最高强度安全性,最快的处理速度和最低的开销,特别适用于具有低内存与低处理能力手机终端实现锁网锁卡公钥密码安全技术。


下面结合附图和具体实施例进一步对本发明进行详细说明。
图1为本发明实施例方法的手机锁网锁卡软件及数据保护流程图;图2为本发明实施例方法手机终端基于椭圆曲线的加密解密流程图;图3为本发明实施例方法安全数据编码为椭圆曲线上的点的流程图;图4为本发明实施例方法锁网锁卡安全软件签名流程图;图5为本发明实施例方法锁网锁卡安全软件合法性认证流程图;图6为本发明实施例方法锁网锁卡的解锁网/锁卡功能流程图。
具体实施例方式
首先,说明本发明关键(一)从椭圆曲线离散对数出发,辅以抗碰撞散列函数,利用椭圆曲线公钥证书数字签名方法,实现手机的锁网与锁卡方法,包括手机锁网锁卡软件授权使用确认、软件完整性检查,对锁网锁卡相关安全参数的加密保存,及锁网锁卡安全实现及锁网锁卡的安全解锁等方法。
(二)本发明安全基础是基于椭圆曲线离散对数问题。给定一条定义在有限域GF(p)上椭圆曲线E,一个阶为n的点P∈E及一个点Q=kP,其中0≤k≤n-1,确定k。椭圆曲线离散对数问题具有可证明的安全性,相对于目前流行的RSA公钥密码体制,具有速度快,安全性高及对终端的处理能力要求低等优点。
(三)本发明实现3G网络下的手机安全锁网锁卡方法,就是通过对手机开机引导过程中,通过对系统软件或手机锁网锁卡相关软件实施椭圆曲线数字签名,保证保证手机锁网锁卡软件是合法授权的,并且没有经过窜改的。在保证了锁网锁卡软件的安全性后,通过对USIM/SIM卡内锁网锁卡相关字段或信息的检查,并与手机内的锁网锁卡相关信息进行比较判断,实现手机安全的锁网与锁卡技术。对于锁网锁卡相关的需要高强度安全保护的信息或数据,利用椭圆曲线公钥密码技术实施加密进行保护。通过以上高安全强度的基于椭圆曲线数字签名,加密与解密安全技术手段,保证手机只有在运营商网络范围及所发行的USIM/SIM卡上安全使用。
第二步,具体说明本发明工作原理本发明基于椭圆曲线上离散对数困难问题假设出发,借助于哈希函数,椭圆曲线公钥密码或证书,利用椭圆曲线加密及数字签名方法实现3G手机安全锁网锁卡方法,包括手机安全锁网锁卡的安全实现过程;手机引导时安全软件完整性或系统性检测;锁网锁卡相关安全数据,如IMEI手机软件版本号、锁网状态等安全加密与解密方法,手机锁网锁卡安全解锁过程等内容。
所述手机锁网锁卡过程包括锁网锁卡安全软件数字签名,相关安全数据的加密。首先借助PC侧软件对手机锁网锁卡安全软件进行编译,构造,其次对构造的二进制映象文件进行椭圆曲线数字签名;再次,对锁网锁卡相关安全信息基于椭圆曲线公钥密码技术进行加密与解密处理;最后,通过PC侧提供的手机下载软件,将相关软件与安全数据通过数据线下载到手机内存区域中,对于安全相关数据,借助于物理手段,保存到手机内安全存储区域中,如公钥证书,锁网锁卡相关数据,锁网锁卡状态等,防止外部用户进行窃取,窜改等。本发明假定手机内的椭圆曲线私钥,是安全保存在手机中,不能被外部软件、硬件所读取。
所述手机锁网锁卡安全软件的数字签名方法,用于该软件完整性与合法性检查。首先对于安全软件程序中的各种源文件,包括C语言程序,汇编程序,经过编译器编译后生成嵌入式可加载格式ELF文件。这些目标文件与手机处理器系统所带的C/C++运行时库文件,经过连接器处理后,生成ELF格式的映象文件image,这种映象文件然后写入到手机ROM Flash内。为实现数字签名,本发明假设运营商或制造商有一个支持椭圆曲线公钥密码的证书中心CA网站,也可以利用一个支持椭圆曲线密码的政府或商业公共CA。用户安全申请一个椭圆曲线密码公钥证书,用于手机软件安全与锁网锁卡实现中的根CA证书,以此证书完成对其它公钥证书签名,保证手机公钥证书的不可伪造性及合法性证明。本发明利用根CA证书签名的手机公钥证书,完成手机安全软件的签名,及相关安全数据的签名,以实现安全软件的完整性及合法性等检查,防止第三方恶意代码的入侵。
所述手机锁网锁卡安全软件的数字签名过程,首先给出椭圆曲线密码参数集D=(p,a,b,G,n,h),其中p为一个大素数,如大于160bit的素整数,指定了有限域GF(p);a,b指定椭圆曲线E;G=(xG,yG)∈E(GF(p))为一个基点;素数n为基点G的阶; h=#E(GF(p))/n为协因子整数;#E(GF(p))表示椭圆曲线点群的阶;同时也得到了密钥对(d,Q),其中d是私钥,Q=dG是公钥;其次,使用哈希函数对所构造的手机安全软件映象文件进行散列运算,生成固定长度的映象文件摘要,如20字节长。再次,针对映象文件摘要数据进行椭圆曲线签名过程,生成一个签名数据并存入到手机存储器中。
生成了手机安全软件数字签名后,在手机引导时,可通过对手机锁网锁卡安全软件的签名认证过程完成手机安全软件合法性及完整性检查。首先,基于椭圆曲线根CA证书或手机公钥证书,取出公共椭圆曲线参数集D={p,a,b,G,n,h}与相关公钥Q。然后,手机引导程序检查验证手机锁网锁卡安全软件文件的签名(r,s)是否合法的签名,如果是合法的,则进行手机锁网锁卡判别过程;如果是不合法的安全软件,对于研发过程中的手机,则进入到JTAG普通文件映象文件下载模式;对于产品阶段,手机终端检测到安全不一致性,则直接关机,防止手机被非法使用。
所述手机安全加密与解密方法,是基于EIGamal算法模拟的椭圆曲线加密与解密方案来实现安全数据的加密保护。首先对加密的数据按椭圆曲线参数集中的模大小进行分组,然后对分组数据进行编码,将加密的分组数据转换成椭圆曲线上的点,然后利用ElGamal算法进行数据的加密运算。解密过程中,通过椭圆曲线根证书公钥与手机内安全存储的椭圆曲线私钥完成加密分组数据的解密,最后通过快速的解码方法,恢复出明文安全数据。所给出的解密方法的特点是解密速度快,特别适于手机终端这种内存与处理能力受限的设备。
借助于以上所述发明方法,可以实现手机开机过程中的软件合法性安全检查及锁网锁止的判断,包括手机安全软件完整性检测,IMEI号、软件版本号等安全数据的完整性检查,以及网络服务状态确定后的锁网锁卡状态检测。
本发明所述锁网实现方法、首先手机开机时,检查手机锁网状态标识是否有效,如果是要求锁网,则把当前手机注册上的MNC,MCC和手机内安全区域中椭圆曲线加密或安全保存的移动网络码MNC,移动国家码MCC列表相比较,如果在锁网范围内,则继续运行;否则,弹出提示框,并限制手机业务。
锁网锁卡的状态检查过程中,手机判断USIM卡或SIM卡型号,借助于USIM卡或SIM卡驱动接口函数读出USIM/SIM卡内的IMSI号,并从中析出HPLMN字段,读出EF_GID1与运营商相关信息。检查手机锁网状态标识是否有效,如果是要求锁网或锁卡,则把当前手机注册上的MNC,MCC和手机中加密保存的锁网锁卡相关信息,如MNC,MCC值,解密出来后进行比较。如果一致,则说明手机是合法的,否则,手机可能是非法的,阻止手机进行网络相关的业务或关机。手机锁网锁卡相关的网络状态值有锁网,不锁网,无效网络状态三种状态。
手机安全版本号用于控制软件版本的下载,对于不同型号的手机,分配不同的安全版本号区间。
所述手机软件版本控制与版本号校验方法是,利用PC侧专门软件与数据线连上手机,手机软件下载工具连上手机后选择待下载安全软件版本。开始下载时,下载工具对下载的软件进行数字签名,软件安全版本号数据通过椭圆曲线加密算法进行加密,发送给手机。手机接收到软件安全版本号,与保存在手机中的安全版本号进行比较;如果待下载软件安全版本号在合法安全版本号区间,并且下载的新的软件版本通过手机内的安全认证,则手机接受下载,继续下载流程,否则手机应拒绝下载。
以上所述方法中,所需要通过椭圆曲线密码实施安全保护的相关数据有,软件签名的认证码,HPLMN,FLEXFILE,EF_GID1,软件版本号,网络控制锁NCK,运营商控制锁SPC,MNC,MCC,锁网锁卡状态标示,网络/卡解锁剩余尝试次数,锁卡校验码,公钥,版本校验码,IMEI号校验码,锁卡校验码等数据。
第三步,结合软件流程和具体实现进一步详细说明本发明本发明实施例方法所述的手机所实施的锁网锁卡软件流程,具体如图1所示,包括以下步骤步骤101中,为了完成锁网锁卡软件的数字签名,相关安全数据的加密,需要借助PC侧软件2实现手机1锁网锁卡等安全相关软件的编译,构造与进行椭圆曲线数字签名,及对相关安全信息进行加密处理。然后通过PC侧提供的手机下载软件,将相关软件与安全数据通过数据线下载到手机内存区域中,对于安全相关数据,借助于物理手段,保存到手机内安全存储区域中,如公钥证书,锁网锁卡相关数据,锁网锁卡状态等,防止外部用户进行窃取,窜改等。
步骤102中,为实现手机1锁网锁卡数据安全及相关软件合法性与完整性检查,本发明假设运营商或制造商已经建立起一个支持椭圆曲线公钥密码的证书中心CA网站,也可以利用一个支持椭圆曲线密码的政府或商业公共CA,也可以运营商或制造商自己提供一个椭圆曲线安全软件,可以生成制造商或运营商的根证书CA,以及手机终端或用户使用椭圆曲线证书或公、私钥的密钥对。通过运营商或制造商的根证书,保证手机终端或用户的证书是合法签名的证书,而不是伪造的。另外在本发明中,根证书的作用除验证软件与数据完整性外,还完成对锁网锁卡相关安全数据的加密与解密功能。
所述方法步骤102中,椭圆曲线数字签名证书内部格式由CCITT X.509规定,可以包含以下几方面内容证书版本号、数字证书序列号、证书拥有者姓名(可以是手机的IEMI号)、签名算法、颁发数字证书的单位(可以是运营商或手机制造商)、颁发数字证书的单位(可以是运营商或制造商)签名、公开秘钥有效期等。
步骤103所述方法中,用椭圆曲线公钥加密相关锁网锁卡安全相关数据有,软件签名认证码,HPLMN,相关配置数据,锁运营商卡相关信息EF_GID1,软件版本号,网络控制锁NCK,运营商控制锁SPC,MNC,MCC,锁网锁卡状态标示,网络/卡解锁剩余尝试次数,锁卡校验码,IMEI号校验码,锁卡认证码等数据。如锁网锁卡状态标示、(MCC,MNC)列表、软件版本号等数据。本发明后面给出具体椭圆曲线实现安全数据加密与解密的过程。
步骤104中,对于锁网锁卡安全相关各种源文件,包括C语言程序或汇编程序,经过编译器(如ARM处理器系统)编译后生成嵌入式可加载格式ELF二进制目标文件。这些目标文件与手机终端处理器系统所带的C/C++运行时库文件,经过ARM连接器处理后,生成ELF格式的映象文件image,这种映象文件,通过PC侧下载软件下载到手机ROM Flash内。
步骤105中,利用手机终端证书对构造的安全软件进行椭圆曲线数字签名,生成签名数据,用于手机开机时安全锁网锁卡软件的合法性认证。
步骤106中,将安全软件及签名,相关加密数据下载到手机步骤107中,手机内部生成锁网锁卡的解锁码,并保存在手机中。
步骤108中,手机将锁网解锁码和IMEI号发送给PC侧工具步骤109中,PC侧软件在数据库中保存锁网锁卡的解锁码及手机IMEI号,与手机终端椭圆曲线公钥证书与对应私钥,以方便制造商或运营商为手机进行锁网锁卡的解锁之用。
上面步骤103所述安全数据加密与解密方法中,本发明给出ElGamal算法模拟的椭圆曲线加密与解密方案来实现安全数据的加密保护。
该方法的特点是解密速度快,特别适于手机终端这种内存与处理能力受限的设备,下面结合图2,详细说明基于椭圆曲线加密与解密过程。
步骤201中,PC侧安全软件从根证书导出椭圆曲线参数集D={p,a,b,G,n,h},其中p为一个大素数,如大于160bit的素整数,指定了有限域GF(p);a,b指定椭圆曲线E;G=(xG,yG)∈E(GF(p))为一个基点;素数n为基点G的阶;h=#E(GF(p))/n为协因子整数;#E(GF(p))表示椭圆曲线点群的阶;同时也得到了密钥对(d,Q),其中d是私钥,Q=dG是公钥。
步骤202中,将要加密的安全数据,如软件版本号,软件数字签名、锁网锁卡密钥等安全数据,如果长度大于n的话就进行分组,如果加密的安全数据长度不够,则在高字节处填充0。基于ECC的密码体制中,在传输一个明文数据m之前,我们必须把它编码嵌入到曲线E上的一个点。假设消息A是一个整数,0<A<p/256-1以及曲线E是由椭圆曲线参数集D给出。我们试着填加二位十进制数字到A上,直到我们得到一个整数x,256A≤x<p,其中f(x)=x3+ax2+b=yA mod p是一个平方剩余(q.r.)。然后,我们解这个二次同余方程y2=f(x)mod p,以得到曲线E上的一个明文消息点PA=(xA,yA)。很明显,只要去掉xA坐标中的最后2位十进制数,我们可以容易地从PA中解出A。
步骤203中,将加密的数据转换成椭圆曲线方程上的点的横坐标xA,计算A=xA3+axA+b(mod p),Q=p,利用数论相关定理及图3给出的平方剩余判断算法,判断大整数A是否模平方剩余数。如果A不是模p的平方剩余数时,则说明xA不是椭圆曲线上的点,即不满足椭圆曲线方程等式成立。在最低字节内重新选取xA并重复这个平方剩余算法进行判断,直到满足为止。在图3的算法中,Q为椭圆曲线范围Domain参数D中的模p的值,A为模Q或模p上的平方剩余时,xA则为所选的横坐标。图3中的J表示Jacobi符号,则J为1是表示A为模平方剩余,为-1是表示A为一个模平方非剩余。基于J与模p的值情况可以计算出yA。
步骤203与步骤204为根据明文安全数据转换成椭圆曲线的点的横坐标后,利用二次同余方程解的计算法,给出对应横坐标xA的纵坐标yA,从而完成了把明文的安全数据编码为椭圆曲线上的点。然后基于椭圆曲线上的点完成安全数据的加密与解密步骤205中,如果p具有2u+1,u为奇数的形式时,即满足p≡3(mod 4)或p≡7(mod 8)时,椭圆曲线方程的解为yA≡±A((p+1)/4)(mod p)步骤206中,当p具有4u+1,u为奇数的形式时,即满足p≡1(mod 4)或p≡5(mod 8),如果A((p-1)/4)≡1(mod p),则yA≡±A((p+3)/8)(mod p);如果A((p-1)/4)≡1(mod p),则yA≡±2((p-1)/4)·A((p+3)/8)(mod p)步骤207,通过步骤202到步骤206的过程及图3所示的过程,完成了将安全数据编码为椭圆曲线上的点PA=(yA,yA)。为以后数据加密奠定基础。
步骤208中是安全数据的加密运算。对安全数据编码为椭圆曲线上的点后,就可能利用根证书私钥dR及手机终端证书公钥QR对数据进行加密运算。加密计算过程如下PA+dR QR=PA+dR(dAG),然后将根证书公钥,与加密的点保存到手机内存区域中,即点对(QR,PA+dR(dAG))。
步骤209中,手机在进行锁网锁卡过程中,当需要解密出安全数据时,使用其私钥dA完成如下计算PA+dR(dAG)-dA(QR)=PA+dR(dAG)-dA(dRG)=PA;对解密出的点PA中的横坐标xA进行解码处理,即去掉xA中的最后二位数字即可,然后将该整数转换成字节串,即可恢复出安全数据来。
本发明给出的基于椭圆曲线数据加、解密方案的优点是解密与解码速度快。编码较复杂,但没有实时性的要求。另外,通过运营商或制造商根证书与手机公钥证书来实施数据的加密与解密,除了可以通过PC侧软件与手机相连完成手机安全锁网锁卡外,还可以便于通过网上下载来实现手机的锁网锁卡技术。
本发明中所述步骤105中,利用要证书可以验证手机证书的合法性,利用手机终端证书对构造的安全软件进行椭圆曲线数字签名,生成签名数据,用于手机开机时安全锁网锁卡软件的合法性认证。下面结合图4的代码签名流程,说明本发明中给出的手机安全软件完整性与合法性检查。
本发明实施例中,图4所给出的流程假设以ARM系列嵌入式处理器系统进行代码构造说明。
步骤601中,对于安全引导程序中各种源文件,包括C语言程序或汇编程序,经过ARM编译器编译后生成嵌入式可加载格式ELF文件。这些目标文件与ARM处理器系统所带的C/C++运行时库文件,经过ARM连接器处理后,生成ELF格式的映象文件image,这种映象文件然后写入到手机ROMFlash内。
步骤602中,为实现手机终端软件安全与锁网锁卡技术实现,假设运营商或制造商有一个支持椭圆曲线公钥密码的证书中心CA网站,也可以利用一个支持椭圆曲线密码的政府或商业公共CA。用户通过椭圆曲线密码CA中心,安全申请一个椭圆曲线密码公钥证书,用于手机软件安全与锁网锁卡实现中的根CA证书,以此证书完成对其它公钥证书签名,保证手机公钥证书的不可伪造性及合法性证明。本发明要利用根CA证书签名的手机公钥证书,完成手机安全软件的签名,及相关安全数据的签名,以实现安全软件的完整性及合法性等检查,防止第三方恶意代码的入侵。
所述方法步骤602中,椭圆曲线数字签名证书内部格式由CCITT X.509规定,可以包含以下几方面内容证书版本号、数字证书序列号、证书拥有者姓名、签名算法、颁发数字证书的单位、颁发数字证书的单位的签名、公开秘钥有效期等。
步骤603所述方法中,基于步骤602中所获得的椭圆曲线根公钥证书,生成椭圆曲线密码参数集D=(p,a,b,G,n,h),其中p为一个大素数,如大于160bit的素整数,指定了有限域GF(p);a,b指定椭圆曲线E;G=(xG,yG)∈E(GF(p))为一个基点;素数n为基点G的阶;h=#E(GF(p))/n为协因子整数;#E(GF(p))表示椭圆曲线点群的阶;同时也得到了密钥对(d,Q),其中d是私钥,Q=dG是公钥;向网守发送哈希函数,椭圆曲线参数a,b和公钥Q。
步骤604所述方法是使用安全哈希函数SHA,使用哈希函数对所构造的操作系统软件系统或应用系统软件映象文件进行散列运算,生成固定长度的映象文件摘要,如20字节长。
步骤605-步骤610的过程,是针对映象文件摘要数据进行椭圆曲线签名的过程步骤606选择一个随机或伪随机数k,1≤k≤n-1;步骤607计算kG=(x1,y1),r=x1 mod n,如果r=0,说明所选择的椭圆曲线随机点是一个特殊点,不符合签名安全要求,返回步骤606进行重新选取。
步骤608计算s=k-1(e+dr)mod n,如果s=0,则返回步骤606。
步骤609完成对手机安全软件映象文件的签名(r,s)。该签名将随映象文件一起放到手机ROM Flash中;如图5所示,为根据本发明实施例所述的手机引导过程中,对锁网锁卡安全软件进行合法性检查,其具体步骤为步骤701手机引导程序,基于椭圆曲线根CA证书或手机公钥证书,取出公共椭圆曲线参数集D={p,a,b,G,n,h}与相关公钥Q。
步骤702手机引导程序检查验证手机锁网锁卡安全软件文件(操作系统或应用系统软件)的签名(r,s)是否超过椭圆曲线基点群阶的范围,如果是,则表示不合法的签名。引导程序转到步骤708,安全认证失败对于产品研发阶段,则进入到JTAG普通文件映象文件下载模式,对于产品阶段,手机终端检测到安全不一致性,直接关机,防止手机非法使用。
步骤703生成手机安全软件映象文件的消息摘要e。
步骤704分别计算w=s-1 mod n;u1=ew mod n;u2=rw mod n;及X=u1G+u2Q=(x1,y1)的值。
步骤705当X的横坐标x1为0时,说明签名无效,手机引导程序转到步骤708,安全认证失败,而后进到产品研发阶段的JTAG普通文件映象文件下载模式,或手机终端检测到安全不一致性,直接关机,防止手机非法使用。
步骤706当X的横坐标x1不等于r时,则表示不合法的签名。手机引导程序转到步骤708,安全认证失败。对于产品研发阶段,则进入到JTAG普通文件映象文件下载模式,对于产品阶段,手机终端检测到安全不一致性,直接关机,防止手机非法使用。
步骤707验证了手机安全软件签名的正确性后,说明了该软件映象文件签名没有被窜改,手机引导程序可以完成锁网锁卡状态检查。
借助于以上所述发明方法,可以实现手机开机过程中的软件合法性安全检查及锁网锁止的判断,包括手机安全软件完整性检测,IMEI号、软件版本号等安全数据的完整性检查,以及网络服务状态确定后的锁网锁卡状态检测。
锁网锁卡的状态检查过程中,手机判断USIM卡或SIM卡型号,借助于USIM卡或SIM卡驱动接口函数读出USIM/SIM卡内的IMSI号,并从中析出HPLMN字段,读出EF_GID1与运营商相关信息。检查手机锁网状态标识是否有效,如果是要求锁网或锁卡,则把当前手机注册上的MNC,MCC和手机中加密保存的锁网锁卡相关信息,如MNC,MCC值,解密出来后进行比较。如果一致,则说明手机是合法的,否则,手机可能是非法的,阻止手机进行网络相关的业务或关机。手机锁网锁卡相关的网络状态值有锁网,不锁网,无效网络状态三种状态。
对于手机锁网锁卡的解锁方案,下面结合图6说明具体过程。
步骤301用户选择手机锁网/锁卡的解锁功能。用户可以通过PC侧专利软件来实现,也可以在手机提供相关解锁网锁卡界面实现。
步骤302判断解锁次数是否超过5次,这包括以前进行的已保存的安全解锁次数累加比较。因此包括对安全解锁次数数据的的解密过程,如前所述的椭圆曲线加密与解密过程。如果解锁次数超过5次,则按标准要求,则手机将处于永远锁定状态。
步骤303判断手机是否在解锁状态。
步骤304如果手机已解锁,则相关的解锁密钥,即锁网控制密钥NCK与运营商加锁控制密钥SPC,将恢复出明文状态,放在手机NV项中,即非易失内存中。
步骤305如果手机在锁定状态,则可通过手机或专门的PC侧软件提供一种提示用户输入解锁码,包括锁网控制码NCK,或SPC。
步骤306手机或PC侧软件解密出相关的NCK或SPC,与用户输入的相关值进行比较?步骤307判断手机解密出的NCK或SPC与用户输入的解锁码是否相等?步骤308如果相等,则解锁成功,相关的解锁密钥,即锁网控制密钥NCK与运营商加锁控制密钥SPC,将恢复出明文状态,放在手机NV项中。
步骤309在步骤307中比较值如果不相等,则失败次数加1,并且用户退出锁网锁卡应用时,要将与此相关的安全数据进行加密保存。
步骤310提示用户已进行失败的解锁次数,并将返回到步骤305用户解锁码输入界面,给用户尝试解锁机会。
最后,要特别说明的是(一)对于手机引导来说,无论什么时候手机安全软件代码发生改变或软件版本发生变化,都要重新进行软件签名,以保证软件的完整性、一致性。
(二)本领域技术人员在实施本发明实施例时,为简化描述本发明思想,对于手机安全软件及安全数据签名认证中,采用的是同一个CA根证书,可选地也可以通过证书链方式对手机公钥证书进行签名,以验证手机公钥的合法性。其思想是本发明给的代码签名与认证思想相同。
(三)本发明方法所采用的椭圆曲线密码体制在已知公钥密码系统中具有每比特最高强度安全性,最快的处理速度和最低的开销,特别适用于具有低内存与低处理能力的3G手机终端实现网络锁网锁卡及其它安全接入。
(四)基于本发明思想,也完全可以实现3GPP TS22.022其它安全需求,如锁内容提供商应用,锁公司应用及网络子网锁定等安全应用。本发明思想也可以为手机终端提供一个3G终端可信计算平台,以使手机安全接入3G网络。
权利要求
1.一种基于椭圆曲线公钥密码的无线终端(1)安全锁网锁卡方法,其特征在于,包括以下步骤1.1)使用椭圆曲线公钥证书签名生成的数字签名和存储在该终端(1)内的椭圆曲线私钥密码在开机初始阶段进行软件的合法性检查;1.2)通过验证的软件根据终端当前注册的网络与预存网络信息比较结果决定提供网络服务与否或者读取USIM/SIM卡内的IMSI号并与预存的IMSI号比较决定是否提供服务。
2.根据权利要求1所述锁网锁卡方法,其特征在于,所述预存的网络信息和IMSI号是基于ElGamal算法模拟的椭圆曲线进行加密保存并解密读取的。
3.根据权利要求1或2所述锁网锁卡方法,其特征在于,所述步骤1.1)还包括使用对应数字签名对所述加密保存进行合法和完整性检查。
4.根据权利要求1或2所述锁网锁卡方法,其特征在于,所述网络信息可以是MNC,还可以是MNC和MCC。
5.根据权利要求2所述锁网锁卡方法,其特征在于,所述加密保存还包括软件签名的认证码、HPLMN、FLEXFILE、EF_GID1、软件版本号、网络控制锁NCK、运营商控制锁SPC、锁网锁卡状态标志、网络/卡解锁剩余尝试次数、锁卡校验码、公钥、版本校验码、IMEI号校验码或锁卡校验码,并保存在终端内的安全存储区域中。
6.根据权利要求1或5所述锁网锁卡方法,其特征在于,该方法还包括位于步骤1.1)和1.2)之间的步骤解密读取锁网锁卡状态标志,“锁网/卡状态”进入步骤1.2)“不锁网/卡状态”则跳过步骤1.2)进入正常开机流程。
7.根据权利要求5所述锁网锁卡方法,其特征在于,该方法还包括根据所述软件版本号与通过椭圆曲线公钥密码加密、椭圆曲线私钥密码解密的待下载软件版本号的比较决定是否允许下载。
8.根据权利要求5所述锁网锁卡方法,其特征在于,所述网络/卡解锁剩余尝试次数不为零,该方法还包括根据用户输入所述网络控制锁NCK将锁网锁卡状态标志从“锁网/卡状态”改为“不锁网/卡状态”。
9.根据权利要求5所述锁网锁卡方法,其特征在于,所述网络/卡解锁剩余尝试次数为零,该方法还包括根据运营商输入所述运营商控制锁SPC将锁网锁卡状态标志从“锁网/卡状态”改为“不锁网/卡状态”,同时再输入所述网络控制锁NCK锁网锁卡状态标志不发生变化。
10.根据权利要求1所述锁网锁卡方法,其特征在于,所述步骤1.1)中数字签名源于所述软件的二进制可加载格式映像文件。
全文摘要
本发明涉及一种基于椭圆曲线公钥密码的无线终端(1)安全锁网锁卡方法,包括使用椭圆曲线公钥证书签名生成的数字签名和在该终端内的椭圆曲线私钥密码在开机初始阶段进行软件合法性检查;通过验证的软件根据终端当前注册的网络与预存网络信息比较结果决定提供网络服务与否或者读取USIM/SIM卡内的IMSI号并与预存的IMSI号比较决定是否提供服务;进一步基于ElGamal算法模拟的椭圆曲线对数据进行加密和解密。这种方法基于椭圆曲线公钥PKI技术,实现了身份认证、访问控制、信息加密和数字签名,保障了锁网锁卡的安全性,同时相对于RSA公钥在同等安全情况下密钥长度又相对小许多,更适于处理能力和内存较主机差的终端。
文档编号H04L9/32GK101018125SQ20071008032
公开日2007年8月15日 申请日期2007年3月2日 优先权日2007年3月2日
发明者卢忱, 王云峰, 胡焰龙, 张瑞娟, 于宏全, 郭艳玲 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1