具体实施方式
本发明实施例提供一种防盗版的方法和装置,以有效的防止非法使用盗版软件。
下面结合附图和具体实施例对本发明提供的方法和装置进行详细说明。
本发明的实施例一提供一种防盗版加密的方法,如图1所示,包括:
步骤S101、根据标识信息和软件映像获取第一摘要信息。
具体的,将标识信息和软件映像通过散列算法获取到第一摘要信息。标识信息指置入终端的软件的某种特征,与终端中存储的绑定信息相对应,如版本类型信息。软件映像指将置入终端的软件的源码编译成二进制目标码,该二进制目标码以文件形式存在并可以在对应的硬件环境中运行。该软件映像与终端中存储的标准软件映像相对应。散列算法具体为:把任意长度的输入通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。
步骤S102、利用第一公钥对存储的校验信息进行解密,得到第一解密信息。
具体的,第一公钥可以存储在终端的芯片中,同时终端芯片中还存储有第二公钥和唯一标识号码。第一公钥和第二公钥对应于外部非对称加密机的私钥,唯一标识号码对每个芯片都是唯一的,即两个芯片的唯一标识号码不能相同。
校验信息具体为:由绑定信息和标准软件映像生成第三摘要信息,利用外部非对称加密机对所述第三摘要信息进行加密生成校验信息。绑定信息指软件版本信息、重要的私密信息等与芯片绑定的信息。标准软件映像指将官方使用的软件源码编译成二进制目标码,并存储在终端中,以此作为判断置入软件是否可以在终端中使用。
所述外部非对称加密机对生成的摘要信息进行加密,可以保证加密后的数据的安全性。因为该加密机的私钥不能被读出,只能将预加密的信息送入加密机内,取出加密数据。
步骤S103、根据标识信息和终端中唯一标识号码获取第二摘要信息。
具体的,可以将置入终端的软件的标识信息和终端芯片中存储唯一标识号码进行合并处理,再通过散列算法获取第二摘要信息。合并处理指将该标识信息和唯一标识号码进行异或算法,当然也可以将该标识信息和唯一标识号码进行叠加处理。
步骤S104、利用第二公钥对存储的机要信息进行解密,得到第二解密信息。
所述机要信息具体为:由绑定信息和唯一标识号码生成第四摘要信息,利用外部非对称加密机对所述第四摘要信息进行加密生成机要信息。
步骤S105、所述第一摘要信息与所述第一解密信息一致、且所述第二摘要信息与所述第二解密信息一致时,启动终端。
具体的,第一摘要信息与所述第一解密信息不一致或/和第二摘要信息与所述第二解密信息不一致时,禁止启动终端。
通过上述实施例提供的防盗版的方法,比较标准软件与置入软件的一些特征可以有效地防止盗版软件在终端中的使用。
以下以手机软件版本的防盗版为例,说明本发明实施例二的具体实施方式,如图2所示,包括以下步骤:
步骤S201、在手机芯片内的一次性写入区中写入安全信息。
具体的,该过程主要是将公钥A、公钥B和芯片中的唯一标识号码写入芯片的一次性写入区中。所述芯片的唯一标识号码对每个芯片都是唯一的,是芯片的唯一标识,所以需要保证其唯一性,即两个芯片的唯一标识号码不能相同。
同时在芯片中包含两个公钥信息:公钥A和公钥B。利用公钥A解密得到的信息,用于软件使用的合法性校验,且公钥A对应于外部非对称加密机A中的加密私钥;利用公钥B解密得到的信息,用于软件版本类型信息的合法性校验,且公钥B对应于外部非对称加密机B中的加密私钥。
步骤S202、预置手机版本类型信息。
具体的,手机生产时根据需要升级成不同类型的软件版本,同时将版本类型信息写入手机,因此手机只能升级和所述版本类型信息一致的手机软件版本。所述版本类型信息和每一个芯片绑定,并使用外部非对称加密机加密签名,保证该版本类型信息不可被非法更改。
步骤S203、发布官方承认的合法的手机软件版本。
具体的,对于一个型号的手机可能会发布多个不同类型的版本,在手机软件版本中包含了版本类型信息。同时,对手机软件的版本类型信息和软件映像进行散列处理并利用外部非对称加密机进行加密,由此保证了发布的软件不能被非法的篡改,经过所述过程的手机软件版本即为官方发布软件版本。
步骤S204、手机启动过程时对软件版本进行校验。
具体的,手机启动过程需要完成手机软件的校验,用于防止在手机中使用非官方发布的软件版本。在保证了软件版本是官方发布版本的基础上,检查该版本类型信息是否和手机中预置的版本类型信息一致,防止不同版本类型信息的软件非法使用。
手机启动过程中软件的校验包括两部分:首先校验该手机中使用的软件的合法性,即保障手机中运行的软件是官方发布的完整的软件;然后检查软件的版本类型信息和手机中预置的版本类型信息是否一致,如果一致,表明手机中使用的软件版本和手机中预置的可合法使用的软件版本信息一致,即该软件可以在该手机中合法使用。
步骤S205、根据实际需要对手机中使用的合法软件版本类型进行合法更改。
具体的,手机需要更改不同的版本类型时,可以通过重新写入版本类型和升级新的软件来实现。
上述步骤S202预置手机版本类型信息的步骤,如图3所示,具体包括:
步骤S301、将版本类型信息和手机芯片中写入的唯一标识号码进行合并处理。
步骤S302、将合并处理的信息使用散列算法进行处理,生成摘要信息。
步骤S303、使用外部非对称加密机B对散列生成的摘要信息进行加密处理,生成机要数据。
步骤S304、将生成的机要数据写入手机的存储器中。
由于机要信息存储在手机存储器中,当手机的软件版本需要合法升级时,只需要重新生成机要数据即可并存入存储器即可。
使用芯片内写入的唯一标识号码可以防止非法的将另一部手机的机要数据信息写到本手机中。保证了即使同一版本类型中每部手机的机要数据的唯一性。
所述步骤S203版本发布流程主要包括以下几个步骤,如图4所示,包括:
步骤S401、加入软件版本类型信息。
所述软件版本类型信息包括两部分:软件版本类型和软件版本号。
所述软件版本类型用于标识该软件版本的类型,如中文版,英文版等,或者某运营商定制的软件版本类型,对于使用不同的软件版本类型的手机不能相互升级。
所述软件版本号用于表示同一软件版本类型手机的软件版本演进情况,如V100R001等。软件版本升级只能升级更新版本的软件,不能回退升级。
步骤S402、编译生成软件映像。所述软件映像主要是指将源码编译成二进制目标码,软件映像以文件形式存在并可以在对应的硬件环境中运行。
步骤S403、对所述版本类型和所述编译生成的软件映像进行散列计算,生成对应的摘要信息。
步骤S404、使用外部非对称加密机A对步骤S403散列计算生成的摘要信息进行外部非对称加密处理,生成校验信息。
将生成的校验信息放入软件映像文件的尾部后,得到最终发布的官方发布软件版本,形式如图5所示。
所述校验置入手机的软件合法性的流程,如图6所示,包括:
步骤S601、手机启动时,将置入手机内的软件版本信息和软件映像使用散列算法进行计算,生成摘要信息。
步骤S602、使用手机芯片中的公钥A对手机中存储的校验信息进行解密,得到解密信息。
步骤S603、将步骤S601生成的摘要信息和步骤S602生成的解密信息进行比较。如果比较结果为不一致,说明手机使用的软件是非法软件;如果比较结果为一致,说明手机使用的软件是合法软件。确定手机使用的软件是合法软件后,继续检查软件的版本类型信息和手机中预置的版本类型信息是否一致。
所述检查软件的版本类型信息和手机中预置的版本类型信息是否一致的流程,如图7所示,包括:
步骤S701、获取置入手机内的软件的版本类型信息。
步骤S702、将该软件的版本类型信息和手机芯片内的唯一标识号码进行合并处理,对处理后的信息进行散列计算,生成摘要信息。
步骤S703、使用手机芯片中的公钥B解密手机中存储的预设的机要数据,得到解密数据。
步骤S704、将步骤S702生成的摘要信息和步骤S703得到的解密数据进行对比。如果一致说明手机中使用的软件的版本类型信息和预置的一致,是合法使用的手机版本,可以正常启动。否则为非法版本,禁止手机启动。
上述实施例提供的方法不但可以保护手机软件版本信息,同样适用于其他包含软件和硬件的终端的版本保护,如固网终端,网络终端等。
同时,本发明实施例三还提供了一种防盗版的装置,用于实现本发明提供防盗版加密的方法,如图8所示,具体包括:
第一摘要信息生成模块101,用于由标识信息和软件映像通过散列算法生成第一摘要信息;
第一解密模块102,用于利用第一公钥对存储的校验信息进行解密,得到第一解密信息;
第二摘要信息生成模块103,用于由标识信息和终端中唯一标识号码通过散列算法生成第二摘要信息;
第二解密模块104,用于利用第二公钥对存储的机要信息进行解密,得到第二解密信息;
第一比较模块105,用于比较所述第一摘要信息和所述第一解密信息,并将比较结果发送到启动模块107;
第二比较模块106,用于比较所述第二摘要信息和所述第二解密信息,并将比较结果发送到启动模块107;
启动模块107,用于当所述第一比较模块105和所述第二比较模块106的比较结果皆为一致时,启动终端。
所述防盗版的装置,还包括:
校验信息生成模块108,用于根据绑定信息和标准软件映像生成校验信息;
机要信息生成模块109,用于根据绑定信息和唯一标识号码生成机要信息。
所述校验信息生成模块108进一步包括:
第三摘要信息生成子模块208,用于由绑定信息和标准软件映像通过散列算法生成第三摘要信息;
第三摘要信息加密子模块308,用于通过外部非对称加密机对所述第三摘要信息生成子模块生成的第三摘要信息进行加密,生成校验信息。
所述机要信息生成模块109进一步包括:
第四摘要信息生成子模块209,用于由绑定信息和唯一标识号码通过散列算法生成第四摘要信息;
第四摘要信息加密子模块309,用于通过外部非对称加密机对所述第四摘要信息生成子模块生成的第四摘要信息进行加密,生成机要信息。
所述防盗版的装置,还包括:
第一存储模块110,用于存储所述第一公钥、第二公钥和唯一标识号码;
第二存储模块120,用于存储所述校验信息生成模块108生成的校验信息和所述机要信息生成模块109生成的机要信息。
通过本发明实施例提供的防盗版的装置,可以实现本发明实施例提供的方法,有效的保证终端使用软件的安全性,防止非法软件在终端中的使用以及非法升级终端软件。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以可借助软件加必要的通用硬件平台的方式来实现基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。