一种基于客户端/服务器模式的通讯数据加密方法及装置
技术领域
本发明涉及数据加密领域,尤其涉及一种基于客户端/服务器模式的通讯数据加密方法及装置。
背景技术
在安全对于IT行业的重要性越来越高的今天,如何保证网络通讯的安全已成为一个广泛关注的课题,故通常会采用各式各样的加密算法或加密方法来保证数据传输的安全性。
由于数据算法和数据本身的问题,加密后数据容易被破解,导致数据传输的不安全。
现有技术中,客户端与服务器之间加密通讯中使用的会话密钥一般采用硬件标识作为种子或采用时间作为种子,本加密方法采用多种方式结合,可以进一步提高加密内容的随机性,从而使破解难度增大。
发明内容
本发明通过多种加密技术结合,并保证在客户端与服务端进行通讯时,随着时间的变化通讯所使用的密钥发生变化,以提高通讯的安全性,增大密钥破解的难度。
本发明提供的技术方案是:
一种基于客户端/服务器模式的通讯数据加密方法,包括:
S1、运行客户端程序,获取主板BIOS中的主板ID和CPU的ID;
S2、客户端依据所获得的主板ID和CPU的ID生成密钥段,所述密钥段的生成公式为:当前UTC时间+BIOSID+客户端IP+CPUID+GUID-md5(GUID+当前UTC时间+BIOSID+客户端IP+CPUID)+10位随机字符串;
S3、服务器检验客户端所生成的密钥段是否合法,若合法,则允许将所获取的密钥段上传至服务器,若不合法,则不回应客户端;
S4、服务器根据所获取的密钥段生成N组通讯密钥组,其中N为大于200的自然数,所述通讯密钥组的生成公式为:sha(密钥段+服务器IP+GUID);
S5、将步骤S4中的N组通讯密钥组加密传送给客户端,客户端解密得到密钥,实现服务器与客户端的安全通讯。
进一步的,步骤S3中服务器具体是通过MD5来检验客户端所生成的密钥段是否合法。
进一步的,将步骤S4中所述的N组通讯密钥组分隔以形成字符串,并使用步骤S2中所形成密钥段的MD5值作为密钥进行对称加密。
进一步的,所述步骤S4中N组通讯密钥组具体是通过英文半角逗号分隔成字符串;所述进行对称加密所用的密钥具体为步骤S2中所形成密钥段的MD5值。
进一步的,客户端与服务器的通讯随机从一组通讯密钥组中的某个密钥对数据进行加密。
进一步的,当某个密钥到达生命周期后,则跳转到下一个密钥对通讯数据进行加密。
进一步的,当一组通讯密钥组到达生命周期后,则通过客户端发起生成新的通讯密钥组请求。
此外,本发明还提供一种基于客户端/服务器模式的通讯数据加密装置,包括:
参数获取模块,用于运行客户端程序,以获取主板BIOS中的主板ID和CPU的ID;
密钥组生成模块,用于通过客户端依据所获得的主板ID和CPU的ID生成密钥段,所述密钥段的生成公式为:当前UTC时间+BIOSID+客户端IP+CPUID+GUID-md5(GUID+当前UTC时间+BIOSID+客户端IP+CPUID)+10位随机字符串;
检验模块,用于通过服务器检验客户端所生成的密钥段是否合法,若合法,则允许将所获取的密钥段上传至服务器,若不合法,则不回应客户端;
通讯密钥组生成模块,用于通过服务器根据所获取的密钥段生成N组通讯密钥组,其中N为大于200的自然数,所述通讯密钥组的生成公式为:sha(密钥段+服务器IP+GUID);
通讯运行模块,用于将通过密钥组生成模块所获得的N组通讯密钥组加密传送给客户端,客户端解密得到密钥,实现服务器与客户端的安全通讯。
进一步的,所述通讯数据加密装置还包括,第一阈值判断模块,用于当某个密钥到达生命周期后,则跳转到下一个密钥对通讯数据进行加密。
进一步的,所述通讯数据加密装置还包括,第二阈值判断模块,用于当一组通讯密钥组到达生命周期后,则通过客户端发起生成新的通讯密钥组请求。
本发明通过采用唯一的硬件ID号作为密钥生成公式的参数,且随时间的变化密钥发生变化,同时采用多种加密算法对客户端与服务器的交互数据进行加密,增大了密钥破解的难度,提高了客户端与服务器通讯交互的安全性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例所提供的通讯数据加密方法流程图;
图2为本发明实施例所提供的通讯数据加密装置框架图。
具体实施方式
下面可以参照附图1-2以及文字内容理解本发明的内容以及本发明与现有技术之间的区别点。下文通过附图以及列举本发明的一些可选实施例的方式,对本发明的技术方案(包括优选技术方案)做进一步的详细描述。需要说明的是:本实施例中的任何技术特征、任何技术方案均是多种可选的技术特征或可选的技术方案中的一种或几种,为了描述简洁的需要本文件中无法穷举本发明的所有可替代的技术特征以及可替代的技术方案,也不便于每个技术特征的实施方式均强调其为可选的多种实施方式之一,所以本领域技术人员应该知晓:可以将本发明提供的任意技术手段进行替换或将本发明提供的任意两个或更多个技术手段或技术特征互相进行组合而得到新的技术方案。本实施例内的任何技术特征以及任何技术方案均不限制本发明的保护范围,本发明的保护范围应该包括本领域技术人员不付出创造性劳动所能想到的任何替代技术方案以及本领域技术人员将本发明提供的任意两个或更多个技术手段或技术特征互相进行组合而得到的新的技术方案。
下面结合图1-2对本发明提供的技术方案进行更为详细的阐述。
实施例一
一种基于客户端/服务器模式的通讯数据加密方法,如图1所示,包括:
S1、运行客户端程序,获取主板BIOS中的主板ID和CPU的ID;
S2、客户端依据所获得的主板ID和CPU的ID生成密钥段,所述密钥段的生成公式为:当前UTC时间+BIOSID+客户端IP+CPUID+GUID-md5(GUID+当前UTC时间+BIOSID+客户端IP+CPUID)+10位随机字符串;
S3、服务器检验客户端所生成的密钥段是否合法,若合法,则允许将所获取的密钥段上传至服务器,若不合法,则不回应客户端;
S4、服务器根据所获取的密钥段生成N组通讯密钥组(其中N为大于200的自然数),所述通讯密钥组的生成公式为:sha(密钥段+服务器IP+GUID);
S5、将步骤S4中的N组通讯密钥组加密传送给客户端,客户端解密得到密钥,实现服务器与客户端的安全通讯。
本实施例所提出的通讯数据加密方法,首先通过启动客户端程序时运行芯片编码,以获得客户端所在终端主板BIOS中的主板ID号以及CPU的ID号,然后通过公式:当前UTC时间+BIOSID+客户端IP+CPUID+GUID-md5(GUID+当前UTC时间+BIOSID+客户端IP+CPUID)+10位随机字符串,以形成密钥段,其中由于终端主板BIOS中的主板ID号以及CPU的ID号均属于唯一的,所以,通过采用这两个参数所获得的密钥段是不可重复的、唯一的,因而依据此所获得的密钥段具有更高的安全性;其次,通过服务器检验所获得的密钥段是否合法,其中是否合法具体是指服务器识别所接收的密钥段是否是其所对应的客户端所生成的,其实质是某种标识的认证过程,为了避免服务器信息接收的准确性,当服务器校验到客户端所生成的密钥段是相匹配的信息时,则允许将客户端所生成的密钥段上传至服务器,否则,将不予回应;服务器将所获取的密钥段生成N组通讯密钥组(其中N为大于200的自然数),并将通讯密钥组加密传送给客户端,客户端解密得到密钥,以实现服务器与客户端的安全通讯。
进一步的,步骤S3中服务器具体是通过MD5来检验客户端所生成的密钥段是否合法。这是由于MD5具有不可逆性,所以采用MD5检验客户端所生成的密钥是否合法具有难于破解,安全性更高的特性。
进一步的,将步骤S4中所述的N组通讯密钥组分隔以形成字符串,并采用对称加密算法进行加密。将通讯密钥组分隔以形成字符串,并进行加密处理,便于在客户端与服务器进行通讯时,能够采用密钥组内的某个密钥对通讯数据进行加密,使得密钥能够从通讯密钥组中随机提取,或者是随着时间的变化产生变化,而不是采用统一的密钥对通讯数据进行加密,同时在采用MD5加密算法的基础上,结合对称加密算法对通讯数据进行加密,从而提高客户端与服务器交互时的安全性。
具体的,所述步骤S4中N组通讯密钥组具体是通过英文半角逗号分隔成字符串;所述进行对称加密所用的密钥具体为步骤S2中所形成密钥段的MD5值。通过采用英文半角逗号将通讯密钥组分隔成字符串,由于采用了特殊的符号,所以增大了密钥的破解难度,提高了通讯交互的安全性。
进一步的,客户端与服务器的通讯随机从一组通讯密钥组中的某个密钥对数据进行加密。通过不采用固定的密钥对通讯数据进行加密,而是从通讯密钥组中随机提取某一密钥对通讯数据进行加密,由于密钥产生的不确定性,从而实现破解难度的增大。
进一步的,当某个密钥到达生命周期后,则跳转到下一个密钥对通讯数据进行加密。当通讯密钥组内的某一密钥到达生命周期,则采用该通讯密钥组内的下一个密钥继续对数据进行加密,其中生命周期是某个密钥的使用阈值,使用次数达到使用阈值时,则不再使用该密钥,而是跳转到下一个密钥继续对通讯数据进行加密。通过控制某一密钥的使用次数,以实现增大破解的难度的目的。
进一步的,当一组通讯密钥组到达生命周期后,则通过客户端发起生成新的通讯密钥组请求。当通某一通讯密钥组到达生命周期,即是该通讯密钥组内的所有密钥均达到使用阈值时,则回到步骤S1以重新开始密钥获取过程。
此外,本发明还提供一种基于客户端/服务器模式的通讯数据加密装置,如图2所示,包括:
参数获取模块10,用于运行客户端程序,以获取主板BIOS中的主板ID和CPU的ID;
密钥组生成模块20,用于通过客户端依据所获得的主板ID和CPU的ID生成密钥段,所述密钥段的生成公式为:当前UTC时间+BIOSID+客户端IP+CPUID+GUID-md5(GUID+当前UTC时间+BIOSID+客户端IP+CPUID)+10位随机字符串;
检验模块30,用于通过服务器检验客户端所生成的密钥段是否合法,若合法,则允许将所获取的密钥段上传至服务器,若不合法,则不回应客户端;
通讯密钥组生成模块40,用于通过服务器根据所获取的密钥段生成N组通讯密钥组(其中N为大于200的自然数),所述通讯密钥组的生成公式为:sha(密钥段+服务器IP+GUID);
通讯运行模块50,用于将通过密钥组生成模块所获得的N组通讯密钥组加密传送给客户端,客户端解密得到密钥,实现服务器与客户端的安全通讯。
进一步的,所述通讯数据加密装置还包括,第一阈值判断模块,用于当某个密钥到达生命周期后,则跳转到下一个密钥对通讯数据进行加密。
进一步的,所述通讯数据加密装置还包括,第二阈值判断模块,用于当一组通讯密钥组到达生命周期后,则通过客户端发起生成新的通讯密钥组请求。
本实施例通过采用唯一的硬件ID号作为密钥生成公式的参数,且随时间的变化密钥发生变化,同时采用多种加密算法对客户端与服务器的交互数据进行加密,增大了密钥破解的难度,提高了客户端与服务器通讯交互的安全性。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。