一种税控专用计算机软硬件绑定的认证方法与流程

文档序号:12068099阅读:404来源:国知局
一种税控专用计算机软硬件绑定的认证方法与流程

本发明涉及税控领域,尤其是涉及一种税控专用计算机软硬件绑定的认证方法。



背景技术:

在税控领域,税控系统有其专用的税控计算机和运行的软件,为了保证税控安全,对税控专用计算机上运行的上层软件保护是必须考虑的内容,以防止税控软件被拷贝运行于其他设备上;另外,还要对软件数据进行加密存储,如果每台设备的硬件序列号均有差异的话,安全性会大大提高。

现有技术中软件的保护方法一般有许可证法、软件加密法及软硬件绑定法等。

许可证的方式,是将许可证存于税控专用计算机端。这种方式存在被盗用和被破解的风险。

软件加密法常用的是使用加密狗,这就引入了第三方的产品,造成软件的保护依赖于其他产品或软件,不适用于一些专用系统,尤其是税控系统。

对于软硬件绑定法,一般都是计算硬件的信息产生序列号给软件商,软件商再发回软件序列号方可使用。这种方法,存在严重的局限性,如果自己的登录机器硬件设备更换了部分硬件,就可能造成网银登录失败。这种方法用户参与过多,不方便用户使用。

另外,软件保护还应包括对软件运行时产生的数据进行保护,传统的方式采用明文或者使用软件厂商的私钥进行对称加密。假设有两台设备A与B,如果采用上述方法,则A上的数据拷贝于B上,那么A中的数据也能被B设备解密成明文,故这种方式也不适用于一些保密性要求很高的系统。



技术实现要素:

鉴于上述问题,提出了本发明,以便提供一种克服上述问题或至少部分地解决上述问题的一种税控专用计算机软硬件绑定的认证方法。

本发明提供的一种税控专用计算机软硬件绑定的认证方法,步骤包括:

认证服务器提取税控专用计算机的N个硬件信息,并且对每一个硬件信息通过同一个算法得到固定长度的摘要值,将得到的所有摘要值拼接到一起,构成硬件序列号key,其中N为2≤N≤5的整数;同时对所述税控专用计算机分配专用软件,该专用软件有唯一的序列号sid;将<sid,key>值存于认证数据库中;

在所述专用软件每次运行前,所述专用软件先计算所述税控专用计算机的硬件序列号key值,结果记成key′,并将所述软件序列号sid值和key′值发送给所述认证服务器,所述key′值的计算方法和所述key值的计算方法相同;

所述认证服务器接收到所述sid值和key′值后,对所述key′值按照提取的N个硬件信息数量分成等长的N段,每一段记录为key_segment值,并根据所述sid值从所述认证数据库中查询出之前存储的所述key值;

所述认证服务器判断每一段key_segment值是否在所述key值中出现,只要至少有M段及以上出现则判断为认证成功,否则判断为认证失败,其中M为2≤M≤N的整数。

进一步的,所述硬件信息为CPU信息、内存信息,硬盘信息,网卡信息、主板信息中的两个或多个,所述硬件信息内容包括所述硬件部件的参数、型号、大小、序列号、生产厂家等等信息。

进一步的,所述算法为散列算法,所述散列算法为MD2算法、MD4算法、MD5算法或SHA-1算法。

进一步的,所述认证数据库设置在税局局端的认证服务器上,每配一套税控专用计算机及专用软件产生一个<sid,key>值,该<sid,key>值存储在所述认证数据库中。

进一步的,所述方法还包括:判断认证成功后,所述认证服务器将key值传回所述税控专用计算机;判断认证失败后,所述税控专用计算机上的专用软件运行终止。

进一步的,所述方法还包括:所述税控专用计算机用收到的所述key值解密所述税控专用计算机中的数据,软件正常运行,并用刚刚计算出来的所述key′值重新对数据进行加密。

进一步的,所述N=4,所述M=3。

本发明还提供一种税控专用计算机和认证服务器通信过程中数据加密的密钥产生方法,包括如下步骤:

所述税控专用计算机请求连接所述认证服务器,所述认证服务器生成会话id,并将会话id和公钥key_pub发送给所述税控专用计算机;

所述税控专用计算机生成会话密钥q,并计算加密值r = id xor q;

所述税控专用计算机将所述加密值r用所述公钥key_pub进行加密,并将加密结果发送给所述认证服务器;

所述认证服务器用私钥Key_prv进行解密,获得所述加密值r;

所述认证服务器进行q = r xor id的运算,获得会话密钥q;

之后通信过程中的数据传输都将被所述会话密钥 q 加密。

进一步的,将通过散列算法计算某一硬件信息的哈希值作为会话密钥q。

进一步的,所述硬件信息为网卡的mac地址信息。

根据本发明的技术方案,本发明可实现对软件运行的硬件设备的合法性进行认证,并对软件明文和数据进行密钥有差异的对称加密存储。通过上述方法,采用税控专用计算机硬件信息认证、基于硬件信息的数据加解密,有效的防止了软件拷贝、软件数据窃取等等有害软件的行为,数据的安全性进一步提高,从而提高软件产品的整体安全性,达到了保护软件的目的。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一个实施例的一种税控专用计算机软硬件绑定的认证方法流程示意图。

图2为本发明一个实施例的提取硬件信息的方法流程示意图。

图3为本发明一个实施例的产生会话密钥的方法流程示意图。

图4为本发明一个实施例的税控专用计算机端和认证服务器的认证过程的流程示意图。

具体实施方式

下面将参照附图更详细的描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明,而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能更透彻的理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的一种税控专用计算机软硬件绑定的认证方法,步骤包括:

步骤S110,认证服务器提取税控专用计算机的N个硬件信息,并且对每一个硬件信息通过同一个算法得到固定长度的摘要值。

考虑到运行速度和认证难度,提取的硬件信息数量N在2个到5个之间较为合适即N为2≤N≤5的整数,优选为4个。硬件信息比如有CPU信息、内存信息,硬盘信息,网卡信息、主板信息等,可以选择其中的两个或多个,硬件信息内容涉及这些硬件部件的参数、型号、大小、序列号、生产厂家等等信息。这里的算法可以采用现有技术中的任何算法,比如使用散列算法,对于每个硬件部件提取到的硬件信息通过同一个散列算法得到固定长度的哈希值(hash值),比如CPU的哈希值记为k1,内存的哈希值记为k2,硬盘的哈希值记为k3,网卡的哈希值记为k4,主板的哈希值记为k5,k1、k2、k3、k4和k5具有相同的固定长度。常用的散列算法有MD2算法、MD4算法、MD5算法和SHA-1算法。

步骤S120,将得到的所有摘要值拼接到一起,构成硬件序列号key。

例如,在步骤S110中如果对5个硬件信息进行提取并计算各自的哈希值,则硬件序列号key=k1k2k3k4k5,即硬件序列号key的长度是每个硬件信息哈希值的5倍。将这些等长的哈希值拼接成硬件序列号key,这个key值就是硬件设备的唯一标识。

步骤S130,对税控专用计算机分配专用软件,该专用软件有唯一的序列号sid,将<sid,key>值存于认证数据库中,供后续认证使用。

对发给用户的每一台税控专用计算机都分配一个具有唯一序列号的专用软件,认证数据库设置在税局局端的认证服务器上,每配一套税控专用计算机及专用软件,则产生一组<sid,key>值,将每一组<sid,key>值存储在认证数据库中。

步骤S140,在税控专用计算机上每次使用专用软件前,税控软件计算当前税控专用计算机的硬件序列号key值,结果记成key′,并将软件序列号sid值和key′值发送给认证服务器进行合法性认证。

key′值的计算方法与步骤S120中计算key值的计算方法一样,在此不再赘述。

步骤S150,认证服务器接收到sid值和key′值后,对key′值按照提取的N个硬件信息数量分成等长的N段,每一段记录为key_segment值,并根据sid值从认证数据库中查询出之前存储的key值。

比如,key′值是由提取的3个硬件信息通过散列算法的哈希值拼接而成,则对key′值分成等长的3段,即还原成每个硬件信息的哈希值。认证服务器根据sid查询出key值和key′值做比较,进而判断硬件的信息是否合法。

步骤S160,认证服务器判断每一段key_segment值是否在key值中出现,只要至少有M段及以上出现则判断为认证成功,并将key值传回税控专用计算机;否则判断为认证失败,税控专用计算机上的专用软件运行终止,其中M为2≤M≤N的整数。

进一步的,如果认证服务器通过认证并且发现key′值不等于key值,则将<sid,key′>值更新进数据库中。

步骤S170,税控专用计算机用收到的key值解密税控专用计算机中的数据,软件正常运行,并用刚刚计算出来的key′值重新对数据进行加密。

通过上述实施例可以看出,步骤S110-S130适用于专用软件初始安装时,对于每一个出厂的设备都经过这些步骤之后交付给用户使用;步骤S140-S170是用户使用过程中的软件保护,当用户使用软件时,首先进行硬件信息的合法性认证。本方法利用了硬件固有的信息与软件进行绑定,生成密码差异大,不可推断,有着良好的加密特性,比其他加密方法更加安全可靠。

根据上述原理,本发明的具体实施例详述如下:

图2示出了提取硬件信息的流程图,以提取4个硬件信息为例,在软件初始安装时,步骤如下:

步骤21,提取税控专用计算机的如下硬件信息:

CPU信息:CPU的型号、生产厂家、出厂序列号,拼接构成字符串v_cpu;

硬盘信息:硬盘序列号、生产厂家、硬盘大小,拼接构成字符串v_hd;

内存信息:内存型号、内存大小、生产厂家,拼接构成字符串v_mem;

网卡信息:物理地址,构成字符串v_mac;

步骤22,通过同一个散列算法(这里比如采用MD5算法)计算v_cpu、v_hd、v_mem和v_mac的长度为n比特的哈希值(hash值),记为k_cpu、k_hd、k_mem和k_mac;

步骤23,将上步得到的所有哈希值拼接成硬件序列号key = k_cpu + k_hd + k_mem + k_mac,长度为4n比特。

步骤24,给这个税控专用计算机分配专用软件的软件序列号sid,将<sid,key>值存于认证数据库中,供后续认证使用。

步骤25,将序列号为sid的专用软件安装到税控专用计算机上,到此这个税控专用计算机就可以交付用户使用了。

用户使用过程中实时涉及软件保护问题。当用户使用软件时,首先进行硬件信息的合法性认证,该过程需要税控专用计算机端和认证服务器通信,为了保证数据通信的安全,需要对通信过程中的数据进行加密,产生会话密钥的方法如图3所示:

步骤31,税控专用计算机端请求连接认证服务器,认证服务器生成会话id,并将会话id和公钥key_pub发送给税控专用计算机端;

步骤32,税控专用计算机端生成会话密钥q,并计算加密值r = id xor q(xor异或运算)。产生的q方式可以有多种,简单的为计算某一硬件信息的哈希值,比如通过散列算法计算网卡mac地址的哈希值并作为会话密钥q;

步骤33,税控专用计算机端将加密值r用公钥key_pub进行加密,并将加密结果发送给认证服务器;

步骤34,认证服务器用私钥Key_prv进行解密,获得加密值r;

步骤35,认证服务器进行q = r xor id(xor异或运算)的运算,获得会话密钥q;

步骤36,至此认证服务器和税控专用计算机端都知道了会话密钥q,之后通信过程中的数据传输都将被 q 加密。

用户在使用过程中,在每次使用专用软件时,都先要向认证服务器发送硬件信息的合法性认证请求,认证通过后专用软件才能使用。税控专用计算机端和认证服务器的认证过程,通信的数据都通过上述过程产生的密钥q进行对称加解密。认证过程如图4所示:

步骤41,税控专用计算机端生成硬件序列号key′,并将软件序列号sid值和key′值发送给认证服务器。这里key′值的计算方法与图2中计算key值的方法一样,也是对4个硬件信息进行提取、计算,在此不再赘述。

步骤42,认证服务器接收到sid值和key′值后,对key′值按照提取的硬件数量分成等长的4段key_segment值,并根据sid值从认证数据库中查询出存储的key值。

步骤43,认证服务器判断每一段key_segment值是否在key值中出现,只要有3段及以上出现则判断为认证成功,否则判断为认证失败。

步骤44,如果认证成功,认证服务器将key发回税控专用计算机端,并更新认证数据库的key为key′;如果认证失败,认证服务器发送失败标识到税控专用计算机端,税控专用计算机端上的专用程序终止运行。

步骤45,税控专用计算机端用收到的key值解密税控专用计算机中的数据,专用软件正常运行,并用刚刚计算出来的key′值重新对数据进行加密。

这样,即使税控专用计算机端的某一硬件发生损害需要更换时,都不影响其专用软件的使用,有效提高了使用效率,简便了用户的操作。

作为上述实施例的进一步改进,算法并不局限于散列算法,可以采用任意公开的算法,比如对称加解密算法、非对称加解密算法等,本发明不限定于特定的算法。

通过上述实施例可以看出,本发明可实现对软件运行的硬件设备的合法性进行认证,并对软件明文和数据进行密钥有差异的对称加密存储。通过上述方法,采用税控专用计算机硬件信息认证、基于硬件信息的数据加解密,有效的防止了软件拷贝、软件数据窃取等等有害软件的行为,数据的安全性进一步提高,从而提高软件产品的整体安全性,达到了保护软件的目的。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

需要说明的是:

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定的编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明内容。

本领域那些技术人员可以理解,可以对实施例中各模块进行自适应性的改变并且把它们设置在与该实施例不同的一个或多个设备中。除非另有明确陈述,本说明书中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。

以上所述仅为本发明之较佳实施例,并非用以限定本发明的权利要求保护范围。同时以上说明,对于相关技术领域的技术人员应可以理解及实施,因此其他基于本发明所揭示内容所完成的等同改变,均应包含在本权利要求书的涵盖范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1