消息的处理方法和装置转让专利

申请号 : CN201710604593.6

文献号 : CN107566335B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 姜海舟王鹏安晓江

申请人 : 北京海泰方圆科技股份有限公司

摘要 :

本发明公开了一种消息的处理方法和装置。其中,该方法包括:获取客户端的加密参数,其中,客户端的加密参数包括;第一随机数、第一密钥和计时时间;根据预设算法对加密参数进行运算,得到用于对当前待传输数据进行加密的第二密钥;通过第二密钥将对当前待传输数据进行加密。本发明解决了现有技术中密文传输在每一次传输之前都需要进行一次密钥协商流程,导致系统负担较大的技术问题。

权利要求 :

1.一种消息的处理方法,其特征在于,包括:

获取客户端的加密参数,其中,所述客户端的加密参数包括:第一随机数、第一密钥和计时时间;

根据预设算法对所述加密参数进行运算,得到用于对当前待传输数据进行加密的第二密钥;

通过所述第二密钥对当前待传输数据进行加密;

其中,所述计时时间是所述客户端和服务器同时启动计时器得到的计时时间;

获取所述客户端的第一密钥,包括:

当客户端和服务器进行第一次通信时,通过所述客户端和所述服务器协商得到所述第一密钥,所述服务器把所述第一密钥保存在数据表中,所述数据表用于维护每个客户端的标识与其第一密钥的对应关系。

2.根据权利要求1所述的方法,其特征在于,获取所述客户端的第一随机数,包括:发布客户端时为每个客户端生成一个对应的第一随机数;

通过服务器保存数据表,其中,所述数据表用于表征所述每个客户端的标识与所述客户端对应的第一随机数的关系。

3.根据权利要求1所述的方法,其特征在于,获取所述客户端的计时时间,包括:在所述客户端和所述服务器协商得到所述第一密钥的情况下,所述客户端生成第二随机数,并用所述第一密钥进行加密后传输至服务器;

在所述第二随机数对应的时间之后,在所述客户端启动计时器的同时,所述服务器启动与所述客户端对应的计时器;

在获取传输数据的指令之后,所述客户端获取所述客户端的计时时间,所述服务器获取与所述客户端对应的计时时间。

4.根据权利要求1至3中任意一项所述的方法,其特征在于,根据预设算法对所述加密参数进行运算,得到用于对当前待传输数据进行加密的第二密钥,包括:对所述加密参数进行杂凑运算,得到用于所述当前数据传输的所述第二密钥。

5.根据权利要求4所述的方法,其特征在于,所述方法还包括:在接收到数据的情况下,通过所述第二密钥对接收到的数据进行解密。

6.一种消息的处理装置,其特征在于,包括:

获取模块,获取客户端的加密参数,其中,所述客户端的加密参数包括:第一随机数、第一密钥和计时时间;

运算模块,用于根据预设算法对所述加密参数进行运算,得到用于对当前待传输数据进行加密的第二密钥;

加密模块,用于通过所述第二密钥对当前待传输数据进行加密;

其中,所述计时时间是所述客户端和服务器同时启动计时器得到的计时时间;

所述获取模块还包括:

第一获取子模块,用于当客户端和服务器进行第一次通信时,通过客户端和服务器协商得到第一密钥,所述服务器把所述第一密钥保存在数据表中,所述数据表用于维护每个客户端的标识与其第一密钥的对应关系。

7.根据权利要求6所述的装置,其特征在于,所述获取模块包括:生成子模块,用于发布客户端时为每个客户端生成一个对应的第一随机数;

保存子模块,用于通过服务器保存数据表,其中,所述数据表用于表征所述每个客户端的标识与所述客户端对应的第一随机数的关系。

8.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至5中任意一项所述的消息的处理方法。

9.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至5中任意一项所述的消息的处理方法。

说明书 :

消息的处理方法和装置

技术领域

[0001] 本发明涉及数据处理领域,具体而言,涉及一种消息的处理方法和装置。

背景技术

[0002] 随着浏览器发展更新速度越来越快,浏览器的功能也越来越全面。服务器和客户端进行通信的常规方式目前有如下两种:
[0003] 1、服务器和客户端之间直接发送明文数据;
[0004] 2、服务器和客户端在每次会话之前先做密钥协商,得到一个当前会话使用的会话密钥,然后使用会话密钥进行密文通信。
[0005] 但上述两种通信方式都存在一定的缺陷:
[0006] 对于第一种服务器和客户端之间直接发送明文数据的通信方式,由于数据在互联网上以明文传输,因此数据可能被篡改,数据的安全性较差。
[0007] 对于第二种服务器和客户端在每次会话前,先做密钥协商,得到出一个当前会话使用的会话密钥,然后使用会话密钥密文通信,数据在互联网上以密文传输,数据的完整性和保密性可以得到保证。但由于每次会话前需要进行密钥协商,因此导致服务器的开销(包括时间开销和系统资源的开销)较大,尤其当服务器和客户端只需要传输少量几个字节的数据时,前期准备工作的开销远远比实际传输数据的开销大,传输效率低,而且增加了网络冗余数据,增大了网络传输压力。
[0008] 针对现有技术中密文传输在每一次传输之前都需要进行一次密钥协商流程,导致系统负担较大的问题,目前尚未提出有效的解决方案。

发明内容

[0009] 本发明实施例提供了一种消息的处理方法和装置,以至少解决现有技术中密文传输在每一次传输之前都需要进行一次密钥协商流程,导致系统负担较大的技术问题。
[0010] 根据本发明实施例的一个方面,提供了一种消息的处理方法,包括:获取客户端的加密参数,其中,客户端的加密参数包括;第一随机数、第一密钥和计时时间;根据预设算法对加密参数进行运算,得到用于对当前待传输数据进行加密的第二密钥;通过第二密钥将对当前待传输数据进行加密。
[0011] 进一步地,发布客户端时为每个客户端生成一个对应的第一随机数;通过服务器保存数据表,其中,数据表用于表征每个客户端的标识与客户端对应的第一随机数的关系。
[0012] 进一步地,当客户端和服务器进行第一次通信时,通过客户端和服务器协商得到第一密钥。
[0013] 进一步地,在客户端和服务器协商得到第一密钥的情况下,客户端生成第二随机数,并用第一密钥进行加密后传输至服务器;在第二随机数对应的时间之后,在客户端启动计时器的同时,服务器启动与客户端对应的计时器;在获取传输数据的指令之后,客户端获取客户端的计时时间,服务器获取与客户端对应的计时时间。
[0014] 进一步地,对加密参数进行杂凑运算,得到用于当前数据传输的第二密钥。
[0015] 进一步地,在接收到数据的情况下,通过第二密钥对接收到的数据进行解密。
[0016] 根据本发明实施例的另一方面,还提供了一种消息的处理装置,包括:获取模块,获取客户端的加密参数,其中,客户端的加密参数包括;第一随机数、第一密钥和计时时间;运算模块,用于根据预设算法对加密参数进行运算,得到用于对当前待传输数据进行加密的第二密钥;加密模块,用于通过第二密钥将对当前待传输数据进行加密。
[0017] 进一步地,获取模块包括:生成子模块,用于发布客户端时为每个客户端生成一个对应的第一随机数;保存子模块,用于通过服务器保存数据表,其中,数据表用于表征每个客户端的标识与客户端对应的第一随机数的关系。
[0018] 根据本发明实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述任意一项的消息的处理方法。
[0019] 根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项的消息的处理方法。
[0020] 在本发明实施例中,获取客户端的加密参数,根据预设算法对加密参数进行运算,得到用于对客户端的当前待传输数据进行加密的第二密钥,通过第二密钥将对当前待传输数据进行加密。上述方案在客户端和服务器密文传输时,无需每次会话都通过协商确定密钥,能够在保证数据的安全性的情况下降低系统开销。从而解决了现有技术中密文传输在每一次传输之前都需要进行一次密钥协商流程,导致系统负担较大的技术问题,提高传输数据的效率,减少了不必要的网络冗余数据,减轻网络负担,提高网络利用效率。进一步地,对于同一个客户端,由于加密参数中包括计时时间,因此每次和服务器通信都有计时器时间数据的参与,因此可以避免同一客户端的不同会话使用的密钥重复的问题。

附图说明

[0021] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0022] 图1是根据本发明实施例的一种消息的处理方法的流程图;以及
[0023] 图2是根据本发明实施例的一种消息的处理装置的示意图。

具体实施方式

[0024] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0025] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0026] 实施例1
[0027] 根据本发明实施例,提供了一种消息的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0028] 图1是根据本发明实施例的消息的处理方法的流程图,如图1所示,该方法包括如下步骤:
[0029] 步骤S102,获取客户端的加密参数,其中,客户端的加密参数包括;第一随机数、第一密钥和计时时间。
[0030] 具体的,上述客户端可以是服务器发布的,部署在用户终端上的客户端,例如:当服务器接收到用户安装应用程序的指令时,则向用户的终端发布客户端。以一个浏览器为例,该浏览器的一个或多个服务器上维护着该浏览器的所有客户端的数据。每个客户端都具有与其对应的加密参数,每个客户端在通信时,都具有当前数据传输所使用的加密参数。
[0031] 上述第一随机数可以是服务器为客户端生成的随机数,上述第一密钥可以是通过预设的非对称加密算法得到的密钥,上述计时时间可以是客户端和服务器同时启动计时器得到的计时时间。
[0032] 在上述步骤中,获取客户端的加密参数是客户端和与该客户端通信的服务器都需要进行的步骤,区别在于客户端只需要获取其自身的加密数据,而服务器需要获取与其通信的所有客户端在当前数据传输过程中所使用的加密参数。
[0033] 步骤S104,根据预设算法对加密参数进行运算,得到用于对当前待传输数据进行加密的第二密钥。
[0034] 在上述步骤中,客户端和服务器在获取到加密参数之后,采用相同的运算方法对加密参数进行运算,得到第二密钥。
[0035] 步骤S106,通过第二密钥将对当前待传输数据进行加密。
[0036] 具体的,在服务器和客户端进行数据传输时,任意一方都需要采用第二密钥对待传输数据进行加密后再进行传输。
[0037] 在一种可选的实施例中,以浏览器的客户端和服务器为例,当浏览器的客户端和服务器需要进行通信时,客户端取出自身的加密参数,服务器维护着所有客户端的加密参数,因此服务器需要根据客户端的标识信息在数据表中查找出该客户端对应的加密参数。然后客户端和服务器依据预先设定的运算规则,对多个加密参数进行运算,得到最终用于加密的第二密钥。
[0038] 此处需要说明的是,现有技术中的中服务器和客户端在进行数据传输时,通常在每次会话前通过协商的方式确定加密的密钥。采用这种方式不仅会加重服务器的运行负担,产生较多的冗余数据,还会由于在协商过程中出现的数据劫持导致密钥泄露,而本申请上述方案并不在每一次数据传输时都进行协商,从而减轻服务器的运行负担,并减小了由于劫持数据带来的密钥被破解的风险。
[0039] 由上可知,本申请上述实施例获取客户端的加密参数,根据预设算法对加密参数进行运算,得到用于对客户端的当前待传输数据进行加密的第二密钥,通过第二密钥将对当前待传输数据进行加密。上述方案在客户端和服务器密文传输时,无需每次会话都通过协商确定密钥,能够在保证数据的安全性的情况下降低系统开销。从而解决了现有技术中密文传输在每一次传输之前都需要进行一次密钥协商流程,导致系统负担较大的技术问题,提高传输数据的效率,减少了不必要的网络冗余数据,减轻网络负担,提高网络利用效率。进一步地,对于同一个客户端,由于加密参数中包括计时时间,因此每次和服务器通信都有计时器时间数据的参与,因此可以避免同一客户端的不同会话使用的密钥重复的问题。
[0040] 可选地,根据本申请上述实施例,获取客户端的第一随机数,包括:
[0041] 步骤S1021,发布客户端时为每个客户端生成一个对应的第一随机数。
[0042] 在上述步骤中,第一随机数可以在服务器发布客户端时为客户端生成,也可以由客户端直接生成,生成的随机数在客户端和服务器中都需要留存,客户端中存储有与其对应的随机数,而服务器中存储有所有客户端的随机数。
[0043] 步骤S1023,通过服务器保存数据表,其中,数据表用于表征每个客户端的标识与客户端对应的第一随机数的关系。
[0044] 在一种可选的实施例中,仍以浏览器为例,当用户通过移动终端安装浏览器的客户端时,即当服务器发布客户端时,服务器为发布的客户端生成一个随机数,该随机数存储在服务器的数据表中,并存储于客户端中。由于客户端和服务器中都包含该随机数,因此该随机数可以作为加密参数进行第二密钥的运算。且由于每个客户端对应的随机数只有客户端本身和服务器知晓,该随机数无需再进行传输,因此能够有效的避免数据拦截带来的密钥泄露的问题。
[0045] 可选地,根据本申请上述实施例,获取客户端的第一密钥,包括:
[0046] 步骤S1025,当客户端和服务器进行第一次通信时,通过客户端和服务器协商得到第一密钥。
[0047] 在上述步骤中,客户端在每次启动后,如果需要和服务器端通信,首先按照正常的密钥协商流程协商出第一密钥Key,服务器把最后一次密钥协商成功的密钥保存在用户数据表中,该用户数据表用于维护每个客户端的标识与其第一密钥的对应关系。
[0048] 此处还需要说明的是,因特网连接有不可靠,不可信的特点,网络连接可能会由于物理原因、软件程序软件等各种原因中断。而每次网络连接断开或者会话超时后,都重新做密钥协商,会浪费很大系统开销。而上述方案只在客户端与服务器第一次通信时通过密钥协商,上述第一次通信用于表征客户端在重新启动后与服务器的首次通信,网络连接超时、会话中断之后的通信不属于上述第一次通信的范围。例如,用于将安装有浏览器客户端的移动终端关机后重新启动,并启动浏览器,则此时如果客户端需要与服务器进行通信,则为第一次通信。
[0049] 可选地,根据本申请上述实施例,获取客户端的计时时间,包括:
[0050] 步骤S1027,在客户端和服务器协商得到第一密钥的情况下,客户端生成第二随机数,并用第一密钥进行加密后传输至服务器。
[0051] 步骤S1029,在第二随机数对应的时间之后,在客户端启动计时器的同时,服务器启动与客户端对应的计时器。
[0052] 在上述步骤中,可以以服务器接收到第二随机数为时间起点,从这一时间起点开始经过第二随机数对应的时间之后,客户端启动其计时器,服务器启动该客户端对应的计时器。
[0053] 第二随机数对应的时间可以是第二随机数与预设时间单位组成的时间,例如,第二随机数为5,则对应的时间为5ms。
[0054] 步骤S1031,在获取传输数据的指令之后,客户端获取客户端的计时时间,服务器获取与客户端对应的计时时间。
[0055] 可选地,根据本申请上述实施例,根据预设算法对加密参数进行运算,得到用于客户端进行当前数据传输的第二密钥,包括:对加密参数进行杂凑运算,得到用于当前数据传输的第二密钥。
[0056] 可选地,根据本申请上述实施例,上述方法还包括:在接收到数据的情况下,通过第二密钥对接收到的数据进行解密。
[0057] 在上述步骤中,由于客户端和服务器均能够获取到加密参数,且能够用相同的运算方法对加密参数进行运算,得到相同的密钥,因此发送方将数据进行加密发送后,接收方能够采用相同的密钥进行解密,得到发送方传输的数据。
[0058] 下面以浏览器为例,对上述方案的一种可选的实施例进行描述。
[0059] 步骤S201,当浏览器客户端发布时,服务器预先生成该客户端对应的随机数R,保存在浏览器客户端的受保护区。具体的,上述随机数R即为第一随机数。
[0060] 步骤S202,浏览器客户端进程启动后,第一次和服务器通信时,按照密钥协商流程,协商出第一密钥key。
[0061] 步骤S203,浏览器客户端生成一个0-100之间的一个随机数RT,使用第一密钥Key加密后发给服务器。具体的,上述随机数RT即为第二随机数。
[0062] 步骤S204,浏览器客户端和服务器在随机数RT毫秒后,以用户ID为索引,同时启动计时器。
[0063] 具体的,上述用户表征一个客户端,用户ID可以为客户端的标识。服务器中维护的是多个浏览器客户端的计时器,因此在经过RT毫秒之后,服务器以用户ID为索引,启动客户端对应的计时器,同时,客户端也同步启动自身的计时器。
[0064] 步骤S205,当前会话结束后,浏览器的客户端和服务器需要再次进行通信时,客户端和服务器均取出计时器时间T,使用杂凑算法对R+Key+T计算出第n次会话密钥Kn。
[0065] 具体的,上述计时器的计时从第一次通信开始启动后不中断,从而保证同一客户端与服务器在每次通信时使用的加密密钥都不相同。而每当客户端和服务器的通信终止之后,计时器的计时才停止,并在下一次重新通信开始后,按照步骤S204的方式重新启动。
[0066] 步骤S206,服务器根据用户ID,从用户数据表中查到随机数R和第一会话密钥Key,根据用户ID,取得计时器时间T,使用和客户端相同的杂凑算法对R+Key+T计算出第n次会话密钥Kn。
[0067] 步骤S207,浏览器的服务器和客户端使用新的Kn进行密文通信。
[0068] 实施例2
[0069] 根据本发明实施例,提供了一种消息的处理装置,图2是根据本发明实施例的一种消息的处理装置的示意图。结合图2所示,该装置包括:
[0070] 获取模块20,用于获取客户端的加密参数,其中,客户端的加密参数包括;第一随机数、第一密钥和计时时间。
[0071] 运算模块22,用于根据预设算法对加密参数进行运算,得到用于对当前待传输数据进行加密的第二密钥。
[0072] 加密模块24,用于通过第二密钥将对当前待传输数据进行加密。
[0073] 由上可知,本申请上述实施例通过获取模块获取客户端的加密参数,通过运算模块根据预设算法对加密参数进行运算,得到用于对客户端的当前待传输数据进行加密的第二密钥,采用加密模块通过第二密钥将对当前待传输数据进行加密。上述方案在客户端和服务器密文传输时,无需每次会话都通过协商确定密钥,能够在保证数据的安全性的情况下降低系统开销。从而解决了现有技术中密文传输在每一次传输之前都需要进行一次密钥协商流程,导致系统负担较大的技术问题,提高传输数据的效率,减少了不必要的网络冗余数据,减轻网络负担,提高网络利用效率。进一步地,对于同一个客户端,由于加密参数中包括计时时间,因此每次和服务器通信都有计时器时间数据的参与,因此可以避免同一客户端的不同会话使用的密钥重复的问题。
[0074] 可选地,根据本申请上述实施例,获取模块包括:
[0075] 生成子模块,用于发布客户端时为每个客户端生成一个对应的第一随机数。
[0076] 保存子模块,用于通过服务器保存数据表,其中,数据表用于表征每个客户端的标识与客户端对应的第一随机数的关系。
[0077] 可选地,根据本申请上述实施例,获取模块还包括:
[0078] 第一获取子模块,用于当客户端和服务器进行第一次通信时,通过客户端和服务器协商得到第一密钥。
[0079] 可选地,根据本申请上述实施例,获取模块还包括:
[0080] 传输子模块,用于在客户端和服务器协商得到第一密钥的情况下,客户端生成第二随机数,并用第一密钥进行加密后传输至服务器。
[0081] 计时子模块,用于在第二随机数对应的时间之后,在客户端启动计时器的同时,服务器启动与客户端对应的计时器。
[0082] 第二获取子模块,用于在获取传输数据的指令之后,客户端获取客户端的计时时间,服务器获取与客户端对应的计时时间。
[0083] 可选地,根据本申请上述实施例,运算模块包括:运算子模块,用于对加密参数进行杂凑运算,得到用于当前数据传输的第二密钥。
[0084] 可选地,根据本申请上述实施例,上述装置还包括:
[0085] 解密模块,用于在接收到数据的情况下,通过第二密钥对接收到的数据进行解密。
[0086] 实施例3
[0087] 根据本发明实施例,提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行实施例1中任意一项的消息的处理方法。
[0088] 实施例4
[0089] 根据本发明实施例,提供了一种处理器,处理器用于运行程序,其中,程序运行时执行实施例1中任意一项的消息的处理方法。
[0090] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0091] 在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0092] 在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0093] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0094] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0095] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0096] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。