技术领域
[0001] 本
发明涉及信息安全技术领域,尤其涉一种基于分散密钥加密的终端身份验证方法及系统。
背景技术
[0002] 目前电
力行业内各厂商的自助营业终端产品
硬件或模
块,大多数型号相同或者指令通用,因此底层驱动和应用
软件极其容易出现被其他厂家或不法人员直接盗用或挪用的情况,同时因为终端机所对接的平台端没有非常严格的接入限制和验证,一旦客户端软件被不法分子盗用后顺利接入,就可以进行账户交易,造成直接经济损失。
发明内容
[0003] 本发明所要解决的技术问题是针对
现有技术的不足,提供一种基于分散密钥加密的终端身份验证方法及系统。
[0004] 本发明解决上述技术问题的技术方案如下:
[0005] 本发明一方面提供了一种基于分散密钥加密的终端身份验证方法,包括以下步骤:
[0006] 平台端接收合法终端发送的注册
请求,并为合法终端生成一个唯一的终端编号,所述注册请求携带所述合法终端的硬件参数;
[0007] 平台端根据所述注册请求通过分散密钥管理方法为所述合法终端生成唯一的加密密钥;
[0008] 平台端根据合法终端的硬件参数和加密密钥,采用第一预设加密
算法,为所述合法终端生成唯一的激活码,并将所述加密密钥、激活码以及第一预设加密算法发送至所述合法终端内存储;
[0009] 待验证终端内的客户端软件启动运行时,自动获取待验证终端的硬件参数,使用待验证终端内存储的加密密钥以及第一预设加密算法对所述终端的硬件参数进行加密,生成验证码;
[0010] 所述客户端软件将所述验证码和激活码进行比对,根据比对结果验证终端是否合法,进而判断是否允许客户端软件运行。
[0011] 本发明另一方面,提供了一种基于分散密钥加密的终端身份验证系统,包括平台端和终端,所述平台端和终端之间进行数据通信:
[0012] 所述平台端包括:
[0013] 注册请求响应模块,用于接收合法终端发送的注册请求,并为合法终端生成一个唯一的终端编号,所述注册请求携带所述合法终端的硬件参数;
[0014] 加密密钥生成模块,用于根据所述注册请求通过分散密钥管理方法为所述合法终端生成唯一的加密密钥;
[0015] 激活码生成模块,用于根据合法终端的硬件参数和加密密钥,采用第一预设加密算法,为所述合法终端生成唯一的激活码,并将所述加密密钥、激活码以及第一预设加密算法发送至所述合法终端内存储;
[0016] 所述终端包括:
[0017] 验证码生成模块,用于在待验证终端内的客户端软件启动运行时,自动获取待验证终端的硬件参数,使用待验证终端内存储的加密密钥以及第一预设加密算法对所述终端的硬件参数进行加密,生成验证码;
[0018] 终端身份验证模块,用于进行验证码与激活码的对比判断验证码是否有效进而验证终端是否合法。
[0019] 本发明的有益效果是:通过分散加密得到的终端加密密钥,对终端机的硬件参数信息进行加密生成终端唯一的激活码,客户端软件在上线运行时对激活码进行本地验证,只有验证通过的客户端软件才能继续进行业务交易。本发明通过加密密钥和激活码与硬件绑定的双重措施,保证了即使在加密密钥、激活码和客户端软件全部泄露的情况下,客户端软件也不能在未激活的终端机上非法运行,杜绝了一切软件盗用和套用的带来的信息安全和经济损失
风险,极大提升了软件接入的安全验证力度。同时终端激活码的加密验证过程全部在本地完成,无需连接任何平台和系统,防止激活验证过程在网络传输过程中被恶意劫持和篡改,同时节省实现成本,方法简单有效。
附图说明
[0020] 图1为本发明
实施例提供的基于分散密钥加密的终端身份验证方法
流程图;
[0021] 图2为本发明实施例提供的基于分散密钥加密的终端身份验证方方法中加密密钥生成过程示意图;
[0022] 图3为本发明实施例提供的基于分散密钥加密的终端身份验证方法中终端激活码生成过程示意图;
[0023] 图4为本发明实施例提供的基于分散密钥加密的终端身份验证系统结构
框图。
具体实施方式
[0024] 以下结合实例对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0025] 图1为本发明实施例提供的基于分散密钥加密的终端身份验证方法流程图,包括以下步骤:
[0026] S1,平台端接收合法终端发送的注册请求,并为合法终端生成一个唯一的终端编号,所述注册请求携带所述合法终端的硬件参数;
[0027] S2,平台端根据所述注册请求通过分散密钥管理方法为所述合法终端生成唯一的加密密钥;
[0028] S3,平台端根据合法终端的硬件参数和加密密钥,采用第一预设加密算法,为所述合法终端生成唯一的激活码,并将所述加密密钥、激活码以及第一预设加密算法发送至所述合法终端内存储;
[0029] S4,待验证终端内的客户端软件启动运行时,自动获取待验证终端的硬件参数,使用待验证终端内存储的加密密钥以及第一预设加密算法对所述终端的硬件参数进行加密,生成验证码;
[0030] S5,所述客户端软件将所述验证码和激活码进行比对,根据比对结果验证终端是否合法,进而判断是否允许客户端软件运行。
[0031] 通过分散加密得到的终端加密密钥,对终端机的硬件参数信息进行加密生成终端激活码,客户端软件在上线运行时对激活码进行本地验证,只有验证通过的客户端软件才能继续进行业务交易。本发明通过加密密钥的分散加密和激活码的硬件绑定双重措施,保证了即使在加密密钥、激活码和客户端软件全部泄露的情况下,客户端软件也不能在未激活的终端机上非法运行,杜绝了一切软件盗用和套用的带来的信息安全和经济损失风险,极大提升了软件接入的安全验证力度。同时终端激活码的加密验证过程全部在本地完成,无需连接任何平台和系统,防止激活验证过程在网络传输过程中被恶意劫持和篡改,同时节省实现成本,方法简单有效。
[0032] 优选地,作为本发明的另一个实施例,在图1所示的方法的
基础上,步骤S2包括以下子步骤,如图2所示:
[0033] S21,平台端根据手动输入或随机产生的预设位数的数据,优选为32位数据,通过预设算法,例如异或运算,生成母密钥Km;
[0034] S22,将所述母密钥Km分别与多个互异的随机数,以5个互异的随机数为例,混合后通过第二预设加密算法,如3des加密算法,进行加密运算,得到5组发行密钥;5组发行密钥独立分开保存,由5人分别保存一组发行密钥,彼此保密互不相知,保证5组发行密钥的独立性和
保密性;
[0035] S23,将所述5组发行密钥作为生成加密密钥的分散因子同时输入,根据实际情况可以将5组发行密钥进行顺序组合或乱序组合成一组数据或者将5组发行密钥进行算术运算或逻辑运算等操作得到混合密钥,然后结合合法终端的终端编号或者将混合密钥与新的随机数结合,通过第三预设加密算法,如MD5,为合法终端生成加密密钥Kn。因为发行密钥分散保存,必须以特定的组合方式组合或运算后同时输入才能生成加密密钥,同时混入合法终端编号或新的随机数,有效保证加密密钥的保密性。
[0036] 具体的,所述硬件参数包括IP地址、MAC地址、
主板ID、
硬盘ID、产品出厂编码中的多种。
[0037] 进一步的,所述步骤S3,如图3所示,
[0038] 平台端根据输入的合法终端的IP地址、MAC地址、主板ID、硬盘ID、产品出厂编码中的几项或全部,组合生成数据串源;
[0039] 利用分配的加密密钥Kn通过第一预设加密算法,对数据串源进行加密运算,得到终端对应的激活码Vk。因为该激活码既包含了这台终端的硬件信息,同时由独立的加密密钥进行加密,理论上激活码是唯一的。
[0040] 进一步的,组合生成所述数据串源的数据还包括平台端在响应合法终端的注册请求时生成的与合法终端唯一对应的约定盐值;所述约定盐值在激活码生成后,连同加密密钥、激活码以及第一预设加密算法一起,由平台端发送至所述合法终端内存储。
[0041] 平台端在生成数据串源时,优选地选择IP地址、MAC地址、主板ID、硬盘ID和产品出厂编码组合生成数据串源,但是当其中一项或几项未知时则加入约定盐值组合生成数据串源。
[0042] 第一预设加密算法选用常见的开源加密算法中具有不可逆特性的加密算法,例如
哈希算法,防止在加密算法和激活码泄露时,通过逆向解析得到合法终端的硬件信息和约定盐值。
[0043] 进一步,所述步骤S4具体包括:
[0044] 客户端软件自动获取本机的IP地址、MAC地址、主板ID、硬盘ID、产品出厂编码以及约定盐值,客户端软件通过加密密钥Kn以及第一预设加密算法对本机的硬件信息进行加密运算得到本机的验证码Pk。
[0045] 加密密钥、激活码以及第一预设加密算法存储在本地,客户端软件在验证终端是否合法时,验证码的加解密验证过程全部在本地完成,无需连接任何平台和系统,防止激活验证过程在网络传输过程中被恶意劫持和篡改。
[0046] 平台端根据输入的终端硬件信息生成终端对应的激活码,而终端上的客户端软件自动采集本机的硬件信息生成本机对应的验证码,且生成验证码的方法与生成激活码的方法一致,因此若本机的硬件信息与平台端输入的终端硬件信息一致,则生成的激活码和验证码必然是一致的。由此实现了客户端软件与终端的绑定,防止客户端软件被劫持,引起的加密密钥、激活码等加密信息
泄漏的情况。
[0047] 进一步,所述步骤S5具体为:
[0048] 客户端软件对比得到的验证码Pk和激活码Vk,若两者一致,则表示该验证码有效,认为待验证终端为合法终端,允许客户端程序运行,否则认为验证码无效,待验证终端为非法终端,终止客户端程序运行。
[0049] 如图4所示,本发明另一方面提供了一种基于分散密钥加密的终端身份验证系统,包括平台端和终端,所述平台端和终端之间进行数据通信,
[0050] 所述平台端包括:
[0051] 注册请求响应模块,用于接收合法终端发送的注册请求,并为合法终端生成一个唯一的终端编号,所述注册请求携带所述合法终端的硬件参数;
[0052] 加密密钥生成模块,用于根据所述注册请求通过分散密钥管理方法为所述合法终端生成唯一的加密密钥;
[0053] 激活码生成模块,用于根据合法终端的硬件参数和加密密钥,采用第一预设加密算法,为所述合法终端生成唯一的激活码,并将所述加密密钥、激活码以及第一预设加密算法发送至所述合法终端内存储;
[0054] 所述终端包括:
[0055] 验证码生成模块,用于在待验证终端内的客户端软件启动运行时,自动获取待验证终端的硬件参数,使用待验证终端内存储的加密密钥以及第一预设加密算法对所述终端的硬件参数进行加密,生成验证码;
[0056] 终端身份验证模块,用于进行验证码与激活码的对比判断验证码是否有效进而验证终端是否合法。
[0057] 系统通过分散加密得到终端加密密钥,对终端机的硬件参数信息进行加密生成终端激活码,终端上的客户端软件在上线运行时对激活码进行本地验证,只有验证通过的客户端软件才能继续进行业务交易。本发明通过加密密钥的分散加密和激活码的硬件绑定双重措施,保证了即使在加密密钥、激活码和客户端软件全部泄露的情况下,客户端软件也不能在未激活的终端机上非法运行,杜绝了一切软件盗用和套用的带来的信息安全和经济损失风险,极大提升了软件接入的安全验证力度。同时终端激活码的加密验证过程全部在本地完成,无需连接任何平台和系统,防止激活验证过程在网络传输过程中被恶意劫持和篡改,同时节省实现成本,方法简单有效。
[0058] 进一步,所述加密密钥生成模块具体用于:平台端根据手动输入或随机产生的预设位数的数据,优选为32位数据,通过预设算法,例如异或运算,生成母密钥Km,将所述母密钥Km分别与多个互异的随机数混合后,以5个互异的随机数为例,通过第二加密算法,如3des加密算法,进行加密运算,得到5组发行密钥5组发行密钥独立分开保存,由5人分别保存一组发行密钥,彼此保密互不相知,保证5组发行密钥的独立性和保密性;将所述5组发行密钥作为生成加密密钥的分散因子,同时输入,根据实际情况可以将5组发行密钥进行顺序组合或乱序组合成一组数据或者将5组发行密钥进行算术运算或逻辑运算等操作得到混合密钥,然后结合合法终端的终端编号或者将混合密钥与新的随机数结合,通过第三预设加密算法,如MD5,为合法终端生成加密密钥Kn。因为发行密钥分散保存,必须以特定的组合方式组合或运算后同时输入才能生成加密密钥,同时混入合法终端编号或随机数,有效保证加密密钥的保密性。
[0059] 具体地,所述硬件参数包括IP地址、MAC地址、主板ID、硬盘ID、产品出厂编码中的多种。
[0060] 进一步,所述激活码生成模块具体用于:根据输入的终端的IP地址、MAC地址、主板ID、硬盘ID、产品出厂编码中的几项或全部,组合生成数据串源,利用分配的加密密钥Kn通过第一预设加密算法对数据串源进行加密运算,得到终端的激活码Vk,因为该激活码既包含了这台终端的硬件信息,同时由独立的密钥进行加密,理论上该激活码是唯一的。
[0061] 进一步的,组合生成所述数据串源的数据还包括平台端在响应合法终端的注册请求时生成的与合法终端唯一对应的约定盐值;所述约定盐值在激活码生成后,连同加密密钥、激活码以及第一预设加密算法一起,由平台端发送至所述合法终端内存储。
[0062] 平台端在生成数据串源时,优选地选择IP地址、MAC地址、主板ID、硬盘ID和产品出厂编码组合生成数据串源,但是当其中一项或几项未知时则加入约定盐值组合生成数据串源。
[0063] 进一步,客户端软件启动运行后,验证码生成模块配合客户端软件自动获取本机的IP地址、MAC地址、主板ID、硬盘ID、产品出厂编码以及约定盐值,通过加密密钥Kn以及第一预设加密算法对本机的硬件信息进行加密运算得到本机的验证码Pk。
[0064] 平台端根据输入的终端硬件信息生成终端对应的激活码,而终端上的客户端软件自动采集本机的硬件信息生成本机对应的验证码,且生成验证码的方法与生成激活码的方法一致,因此若本机的硬件信息与平台端输入的终端硬件信息一致,则生成的激活码和验证码必然是一致的。由此实现了客户端软件与终端的绑定,防止客户端软件被劫持,引起的加密密钥、激活码等加密信息泄漏的情况。
[0065] 进一步,所述终端身份验证模块,具体用于:
[0066] 对比终端验证码生成模块生成的验证码Pk和平台端激活码生成模块生成的的激活码Vk,若两者一致,则表示该验证码有效,终端为合法终端,允许客户端程序运行,否则认为验证码无效,终端为非法终端,终止客户端程序运行。
[0067] 本发明的一种基于分散密钥加密的终端身份验证方法及系统,根据多重加密产生的密钥结合终端硬件参数信息的绑定,生成终端唯一的身份验证识别激活码,即使在加密密钥、激活码和客户端软件全部泄露的情况下,仍然无法盗用或挪用客户端软件,同时身份验证的加解密过程全部离线完成,无需架设
服务器和网络拓扑,方法可靠且实现成本小,填补了行业内软件安全和接入验证的盲区和空白,极大提升信息安全保障。
[0068] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何
修改、等同替换、改进等,均应包含在本发明的保护范围之内。