防止终端软件被盗用的方法及装置的制作方法

文档序号:6559216阅读:179来源:国知局
专利名称:防止终端软件被盗用的方法及装置的制作方法
技术领域
本发明涉及一种防止终端软件被盗用技术,特别是指软件加密解密方法 及装置。
技术背景计算机软件作为一种特殊的商品,极易被复制使用,所以软件加密就成 为了保护软件的一种必要手段。在移动通信领域中,终端软件对相关移动设 备能否正常启动运行起着决定性作用,为此,对终端软件的保护成为移动通 信领域中的一大焦点。当前较为流行的终端软件加密解密技术是终端方案提供方与芯片开发商 共同合作对其终端软件实现保护。芯片开发商在芯片内部写入校验码,终端方案提供方在外部FLASH中写入校验码,终端软件启动时二者校验成功才能 正式启动运行软件。用户作为第三方只能购买到芯片和所保护软件的下载文 件,芯片的版本和软件的版本呈一一对应关系,盗版者以非正规途径获得的 软件,因得不到相对应的芯片而无法正常运行。参见图1所示,图1为一个典型的移动通信终端的系统架构示意图。图 中包括的模块分别为射频天线101,用于接收射频信号;射频前端功率放 大器\开关\低通滤波器(PA\SW\LPF) 102和射频收发信机(RFTRX) 103, 共同用于实现无线射频信号和模拟基带信号之间的转换;模拟基带(ABB) 104,用于实现模拟基带和数字基带信号间的转换;数字基带(DBB) 105, 数字基带又包括以下子模块用于运行鉴权软件的处理器内部集成的只读存 储器(ROM) 111;运行鉴权软件的处理器112;用以存储代码和各种数据的 外部存储器(FLASH) 113。现有技术中,其加密过程为步骤1:芯片开发商在芯片内部的保密区域,即在主要用于维护芯片正常工作和内部测试的ROM中设置一串序列号,称为第1序列号。
步骤2:终端方案提供方在外部存储器FLASH中固定位置存储对应的序 列号,称为第2序列号。参见图2所示,其解密流程为-步骤201:芯片启动时,运行鉴权软件的处理器从外部存储器F1ASH中 读取终端方案提供方保存的第2序列号,然后把该序列号与存放在ROM中 的第1序列号进行匹配校验。步骤202:校验正确则解密成功,激活并启动相应的终端软件,整个鉴 权过程结束。步骤203:校验错误则解密失败,运行鉴权软件的处理器将直接启动关 机流程,关闭手机。现有的加密方法对于终端方案提供方来说,并不是一个合理的加密方法。 因为该加密方法使得终端方案提供方需要得到芯片开发商的大力配合,让芯 片开发商为自己设置唯一的密码和匹配法则,为此,对于芯片开发商来说, 作为密码和匹配法则的设定者,只要从外部存储器FLASH的固定区域读取到 密钥,就可轻易破解此加密方法保护下的终端软件。对于终端方案提供方而 言,所生产的终端软件必须与用于加密的芯片捆绑销售,从而影响了其终端 方案提供方的利润空间。这种加密方法完全受制于芯片开发商提供的密码和 算法,终端方案提供方自己却没有完全自主的一套保护机制。就好比买了密 码箱,密码箱的卖家却有一把万能钥匙。 发明内容有鉴于此,本发明的主要目的在于提供一种防止终端软件被盗用的方法 及装置,使终端方案提供方建立一套完全自主的终端软件保护机制,同时提 高对终端软件的加密保护程度。基于上述目的,本发明提供了一种防止终端软件被盗用的方法,包括 加密流程设定一个明码、密钥1和密钥2,用密钥l对明码加密后得到密码,用密钥2对密钥1加密得到密钥3,把密码和密钥3存入微处理器中,密钥2 存入存储器;解密流程从所述微处理器中读取密码和密钥3,从所述存储器中读取密 钥2,采用加密过程的逆过程解密得到明码,将得到的明码与预先设定的明码
进行比较鉴权。该方法所述的微处理器包含具有熔丝烧断功能的JTAG链,在将密码和密 钥3存入该微处理器后,烧断JTAG链的熔丝。该方法所述的明码是由一个软件接入控制号码和该软件接入控制号码所 对应的一个硬件序列号码组成的码序列。该方法所述的软件接入控制号码是终端软件的提供方授权给不同厂商不 同功能时加以区分的序列号;硬件接入控制号是终端方案提供方针对每个终 端分配的一个序列号。该方法所述的解密流程由处理器单元执行;所述的处理器单元包括处理 器CoreO、处理器Corel和处理器Core2;所述解密流程包括系统启动后,所 述处理器Core2发送鉴权命令给所述处理器Corel;所述处理器Corel接到鉴权 请求后,通知所述处理器CoreO,所述处理器Core0读取所述密码和密钥3,并 通过处理器Corel传给处理器Core2;所述处理器Core2收到所述密码和密钥3 后,使用从所述存储器中读出的密钥2对所述密钥3进行解密得到密钥1,使用 密钥l对所述密码进行解密得到明码;所述处理器Core2将得到的明码与预先 设定的明码进行比较鉴权。该方法所述鉴权进一步包括如果鉴权解密成功,则正常运行终端软件; 如果鉴权解密失败,则启动关机程序。基于上述目的,本发明还提供了一种防止终端软件被盗用的装置,包括-微处理器,用于存储用密钥1对明码加密得到的密码和用密钥2对密钥1 加密得到的密钥3;存储器,用于存放密钥2;处理器单元,用于从所述微处理器中读取密码和密钥3,从所述存储器中 读取密钥2,进行解密操作,比较解密得到的明码与预先设定的明码来进行鉴 权。该装置所述的微处理器是单片机、或数字信号处理器、或可编程逻辑控 制器。该装置所述的处理器单元包括处理器Core0,用于运行物理层软件;处 理器Corel,用于运行高层软件;处理器Core2,用于运行应用层软件。
该装置所述处理器Core2发送鉴权命令给所述处理器Corel;所述处理器 Corel接到鉴权请求后,通知所述处理器CoreO,所述处理器CoreO读取所述密 码和密钥3,并通过处理器Corel传给处理器Core2;所述处理器Core2收到所 述密码和密钥3后,使用从所述存储器中读出的密钥2对所述密钥3进行解密得 到密钥l,使用密钥l对所述密码进行解密得到明码;所述处理器Core2将得到 的明码与预先设定的明码进行比较鉴权。该装置所述的微处理器包含具有熔丝烧断功能的JTAG链,在将密码和密 钥3存入该微处理器后,烧断JTAG链的熔丝。从上面所述可以看出,本发明提供的一种防止终端软件被盗用的方法及 装置通过由终端方案提供方对其所生产的终端软件自行设定整个加密和解密 流程,使终端方案提供方拥有一套完全自主的终端软件保护机制,实现了对 终端软件加密的目的。并具有以下积极效果避免了被芯片开发商掌握终端 软件的加密权,从而避免了终端方案提供方必须将其生产的终端软件与用于 加密的芯片捆绑销售,提高了终端方案提供方的终端方案销售利润。


图1为一个现有典型的防止终端软件被盗用的移动通信终端示意图; 图2为一个现有典型的防止终端软件被盗用的鉴权流程图; 图3为本发明的一个较佳实施例中防止终端软件被盗用的移动通信终端 示意图;图4为本发明的一个较佳实施例中防止终端软件被盗用的鉴权流程图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。本发明的 较佳实现方案分为加密流程和解密流程两部分,具体表述如下-加密流程设定一个明码、密钥1和密钥2,用密钥l对明码加密后得到密码,用密钥2对密钥1加密得到密钥3,把密码和密钥3存入微处理器中,密钥2 存入一个存储器;解密流程从所述微处理器中读取密码和密钥3,从所述存储器中读取密 钥2,采用加密过程的逆过程解密得到明码,将得到的明码与预先设定的明码 进行比较鉴权,判断是否相同,如果相同,则解密成功,否则解密失败。
本发明的较佳实现方案参见图3所示,图中采用包含本发明装置的移动 通信终端,包括射频天线301,用于接收射频信号;射频前端功率放大器\开关V[氐通滤波器(PA\SW\LPF) 302和射频收发信机(RF TRX) 303,共同 用于实现无线射频信号和模拟基带信号之间的转换;模拟基带(ABB) 304, 用于实现模拟基带和数字基带信号间的转换;数字基带(DBB) 305。数字基 带又包括以下子模块处理器Core0 311,用于运行物理层软件;处理器Corel 312,用于运行高层软件;处理器Core2 313,用于运行应用层软件;MSP430 单片机314,用于存放密码和密钥;闪存(FLASH) 315,作为外部存储器用 于存储代码和各种数据。整个系统装置的加密和解密流程具体表述如下本发明中,具体加密流程步骤为步骤l:将一个软件接入控制号码和它所对应的一个硬件序列号组成明码。软件接入控制号是指终端软件的提供方授权给不同下游厂商不同功能时 加以区分的号码,它由多位数字组成的。硬件序列号具体解释为,作为终端方案的提供方,并不直接销售手机给 普通消费者,而是销售终端方案给其下游厂商,然后由下游厂商用以生产自 有品牌的手机。由于不同的下游厂商所购买的软件模块功能会有所不同,终 端软件的提供方将会根据不同的客户要求划定客户的所属类型,然后根据客 户所属类型提供一套对应的终端解决方案,其中包括终端软件。下游厂商根 据最终的生产数量向终端方案提供方交纳版权使用费。为此,终端方案提供 方为下游厂商提供一套用来防止恶意用户盗用的核心软件,该核心软件针对 每一个终端分配一个序列号,该序列号即为所述的硬件序列号。它是由多位 数字组成的。步骤2:终端方案提供方通过预先设定的密钥l对明码进行加密形成密码。 步骤3:终端方案提供方通过预先设定的密钥2对所使用的密钥1进行加密形成密钥3。在步骤2或3中,密钥l、密钥2和密钥3均由若干符号组成的符号组,符号 可以是字母,数字以及其它各种符号。所采用的加密方式可以采用任何一种
现有加密技术,如基于DES算法的加密方法。数据加密标准(DES, Data Encryption Standard)算法是由IBM公司在70年代发展起来的,并经过政府的 加密标准筛选后,于1976年11月被美国政府采用,DES随后被美国国家标准 局和美国国家标准协会(ANSI , American National Standard Institute)承认。DES算法的基本思想是把整个明文分块为一系列64位(8个字节)的明文 块,并在一个64位(实用中只使用56位,另外的8位为奇偶校验位)的密钥控 制下,对每个64位的明文块进行加密,形成64位的密文块。最后,串接所有 的密文块形成整个密文。明文在本发明实施例中特指明码、密钥1和密钥2; 密文特指密码和密钥3。步骤4:把通过步骤2所得到的密码和步骤3所得到的密钥3都以支持JTAG 协议的写入方式存入单片机MSP430中。JTAG协议联合测试行动小组(JTAG, Joint Test Action Group)是1985 年制定的检测PCB和IC芯片的一个标准,1990年被修改后成为正EE的一个标 准,即IEEE1149.1, 一般也俗称JTAG调试标准。JTAG测试允许多个器件通过 JTAG接口串联在一起,形成一个JTAG链。JTAG 口由 TDIVrDOVTESTVTCKVrMS等5根信号组成JTAG链,用来调试单片机或者访问 内部空间用,TDI作为输入信号在单片机内部串联一段熔丝(Fuse),该熔丝 可以被烧录工具烧断,烧断后主机无法继续通过TDI向单片机发送命令,JTAG 链无法再正常工作。以支持JTAG协议的写入方式指当数据被写入单片机MSP430后,烧录工 具把与输入信号TDI串联的那段熔丝烧断,熔丝烧断后,不可以再通过JTAG 链来读取密码和密钥3,即使是设计单片机MSP430的德州仪器公司也无法读 取该密码和密钥3。单片机MSP430是美国德州仪器TI公司的一款单片机,它支持标准JTAG 协议,而且具有熔丝烧断功能,在数据写入完成之后可以烧断JTAG线上的熔 丝,导致JTAG无法再读取该单片机内部的内容。步骤5:把终端方案提供方预先设定的密钥2保存在与处理器2相连的外部 存储器FLASH中。外部存储器FLASH,用于存放代码和数据,在本发明中是 用来存放密钥2,同时也可用来存放要保护的终端软件。
参见图4所示,具体解密流程包括以下步骤步骤401:系统启动后,首先由处理器Core2发送鉴权命令给处理器 Corel,请求启动解密流程。步骤402:处理器Corel接到鉴权命令后,立刻按照终端方案提供方预先 设定的通信模式通知处理器Core0,然后处理器CoreO按照终端方案提供方预 先设定的通信模式读取所述的单片机MSP430中存放的密码和密钥3。其中, 处理器Core0按照终端方案提供方预先设定的通信模式读取所述的单片机 MSP430中存放的密码和密钥3举例说明为在单片机内设定好一个变量, 当它为1时,送出密码和密钥,当它不为1时,则不动作。为此,要想让单 片机送出密码和密钥,处理器0程序中即必须对该变量设定为1并发送给单 片机,从而成功读取密码和密钥。步骤403:处理器Core0获得所述的单片机MSP430中存放的密码和密钥 3后,按照终端方案提供方预先设定的通信模式上传给处理器Corel 。步骤404:处理器Corel收到单片机MSP430中存放的密码和密钥3后, 立即按照终端方案提供方预先设定的通信模式上传给处理器Core2。步骤405:处理器Core2收到单片机MSP430中存放的密码和密钥3后, 使用从外部存储器FLASH中读出的密钥2对密钥3进行解密,得到加密明码 的密钥1,然后使用密钥1对从单片机MSP430所读到的密码进行解密,从 而得出明码。解密方法为对应加密过程中所采用的密钥加密方法的解密方法。步骤406:对明码采用加密流程中加密明码时所用算法的逆算法进行分 析,得到接入控制号码和硬件序列号,将这两各序列号与终端方案提供方预 先设定在终端软件中的接入控制号码和硬件序列号进行校验,校验完全匹配, 则解密成功,激活并启动相应的终端软件。步骤407:校验不匹配,则解密失败,处理器2将直接启动关机程序, 关闭移动通信终端。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本 发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在 本发明的保护范围之内。
权利要求
1.一种防止终端软件被盗用的方法,其特征在于,包括加密流程设定一个明码、密钥1和密钥2,用密钥1对明码加密后得到密码,用密钥2对密钥1加密得到密钥3,把密码和密钥3存入微处理器中,密钥2存入存储器;解密流程从所述微处理器中读取密码和密钥3,从所述存储器中读取密钥2,采用加密过程的逆过程解密得到明码,将得到的明码与预先设定的明码进行比较鉴权。
2. 根据权利要求l所述的方法,其特征在于,所述的微处理器包含具有 熔丝烧断功能的JTAG链,在将密码和密钥3存入该微处理器后,烧断JTAG链 的熔丝。
3. 根据权利要求l所述的方法,其特征在于,所述的明码是由一个软件 接入控制号码和该软件接入控制号码所对应的一个硬件序列号码组成的码序 列。
4. 根据权利要求3所述的方法,其特征在于,所述的软件接入控制号码 是终端软件的提供方授权给不同厂商不同功能时加以区分的序列号;硬件接 入控制号是终端方案提供方针对每个终端分配的一个序列号。
5. 根据权利要求l所述的方法,其特征在于,所述的解密流程由处理器 单元执行;所述的处理器单元包括处理器CoreO、处理器Corel和处理器Core2; 所述解密流程包括系统启动后,所述处理器Core2发送鉴权命令给所述处理 器Corel;所述处理器Corel接到鉴权请求后,通知所述处理器CoreO,所述处 理器Core0读取所述密码和密钥3,并通过处理器Corel传给处理器Core2;所 述处理器Core2收到所述密码和密钥3后,使用从所述存储器中读出的密钥2对 所述密钥3进行解密得到密钥1,使用密钥l对所述密码进行解密得到明码;所 述处理器Core2将得到的明码与预先设定的明码进行比较鉴权。
6. 根据权利要求1或5所述的方法,其特征在于,所述鉴权进一步包括 如果鉴权解密成功,则正常运行终端软件;如果鉴权解密失败,则启动关机 程序。
7. —种防止软件被盗用的装置,其特征在于,包括微处理器,用于存储用密钥1对明码加密得到的密码和用密钥2对密钥1加密得到的密钥3;存储器,用于存放密钥2;处理器单元,用于从所述微处理器中读取密码和密钥3,从所述存储器中 读取密钥2,进行解密操作,比较解密得到的明码与预先设定的明码来进行鉴 权。
8. 根据权利要求7所述的装置,其特征在于,所述的微处理器是单片机、 或数字信号处理器、或可编程逻辑控制器。
9. 根据权利要求7所述的装置,其特征在于,所述的处理器单元包括 处理器CoreO,用于运行物理层软件;处理器Corel,用于运行高层软件;处 理器Core2,用于运行应用层软件。
10. 根据权利要求9所述的装置,其特征在于,所述处理器Core2发送鉴 权命令给所述处理器Corel;所述处理器Corel接到鉴权请求后,通知所述处 理器CoreO,所述处理器Core0读取所述密码和密钥3,并通过处理器Corel传 给处理器Core2;所述处理器Core2收到所述密码和密钥3后,使用从所述存储 器中读出的密钥2对所述密钥3进行解密得到密钥1,使用密钥l对所述密码进 行解密得到明码;所述处理器Core2将得到的明码与预先设定的明码进行比较 鉴权。
11. 根据权利要求7所述的装置,其特征在于,所述的微处理器包含具有 熔丝烧断功能的JTAG链,在将密码和密钥3存入该微处理器后,烧断JTAG链的熔丝。
全文摘要
本发明公开了一种防止终端软件被盗用的方法,加密流程设定一个明码,一个密钥1和一个密钥2,用密钥1对明码加密后得到密码,用密钥2对密钥1加密得到密钥3,最后把密码和密钥3存入微处理器,密钥2存入存储器;解密流程鉴权软件从微处理器中读取密码和密钥3,从存储器中读取密钥2,进行解密得到明码,判断该明码与预先设定的明码是否相同,如果相同,则解密成功,否则解密失败。同时还公开了一种防止终端软件被盗用的装置,包括微处理器,用于存储密码和密钥3;存储器,用于存放密钥2;处理器单元,用于执行终端软件的鉴权。通过本发明使得终端方案提供方拥有一套完全自主的终端软件保护机制。
文档编号G06F21/00GK101118577SQ200610089140
公开日2008年2月6日 申请日期2006年8月4日 优先权日2006年8月4日
发明者陶小平 申请人:大唐移动通信设备有限公司;上海大唐移动通信设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1