一种通信安全的实现方法及系统与流程

文档序号:12067802阅读:175来源:国知局
一种通信安全的实现方法及系统与流程

本发明实施例涉及通信安全技术领域,尤其涉及一种通信安全的实现方法及系统。



背景技术:

随着智能终端的广泛应用,各种应用程序(Application,APP)被开发出来。APP在开发的过程中,远程端会为APP提供基于超文本传输协议(HyperText Transfer Protocol,HTTP)的通信接口。

在因特网上传输的HTTP协议是超文本格式的协议,在通信过程中如果没有进行安全防护,在通信过程中如果没有进行任何加密,在网络中传输侧HTTP数据很容易被抓数据包软件通过抓包的方式获取到,通过非法伪造、篡改的方式通过远程端获取更多的敏感数据,对APP产品的业务运营及用户隐私带来非常大的危害。



技术实现要素:

本发明提供一种通信安全的实现方法及系统,提高本地端和远程端之间通信的安全性。

第一方面,本发明实施例提供了一种通信安全的实现方法,该通信安全的实现方法包括:

本地端根据业务处理需求,向远程端发起第一接入请求,所述第一接入请求包括所述本地端的本地当前时间;

所述远程端根据所述本地当前时间与远程当前时间计算第一时间戳差值,并采用预存的加密秘钥生成第一通信令牌,将所述第一时间戳差值和第一通信令牌携带在接入响应中发送给所述本地端;

所述本地端根据所述第一时间戳差值和本地当前时间确定本地时间戳,利用本地端预存的加密秘钥解密所述第一通信令牌生成第二通信令牌;

所述本地端根据所述第二通信令牌和所述业务处理需求的请求参数生成第一请求参数签名;

所述本地端向所述远程端发起第二接入请求,所述第二接入请求包括所述本地时间戳、所述请求参数和所述第一请求参数签名;

所述远程端根据所述第一通信令牌和所述请求参数生成第二请求参数签名,将远程当前时间作为远程端时间戳;

所述远程端将所述第一请求参数签名与所述第二请求参数签名进行比对,生成第一比对结果,将所述本地时间戳和所述远程端时间戳之间的第二时间戳差值与预设值进行比对,生成第二比对结果;

所述远程端根据所述第一比对结果和所述第二比对结果判断接入请求是否合法。

进一步地,所述根据所述第二通信令牌和所述业务处理需求的请求参数生成第一请求参数签名,包括:

所述本地端对所述业务处理需求的请求参数进行字典序排列;

所述本地端根据排列后的请求参数和所述第二通信令牌生成第一请求参数签名。

进一步地,所述本地端根据所述第一比对结果和所述第二比对结果判断接入请求是否合法,包括:

若所述第一请求参数签名与所述第二请求参数签名比对结果一致,且所述第二时间戳差值小于预设值,则请求接入合法。

进一步地,所述预设值为30ms。

进一步地,所述远程端预存的加密秘钥为RSA私钥,所述本地端预存的加密秘钥为RSA公钥。

进一步地,所述本地端为应用软件客户端,所述远程端为服务器端,所述应用软件客户端与所述服务器端之间通过HTTP协议进行通信。

第二方面,本发明实施例还提供了一种通信安全的实现系统,该通信安全的实现系统包括:

第一接入请求发起模块,配置在本地端中,用于本地端根据业务处理需求,向远程端发起第一接入请求,所述第一接入请求包括所述本地端的本地当前时间;

接入响应发送模块,配置在所述远程端中,用于所述远程端根据所述本地当前时间与远程当前时间计算第一时间戳差值,并采用预存的加密秘钥生成第一通信令牌,将所述第一时间戳差值和第一通信令牌携带在第一接入响应中发送给所述本地端;

时间戳和第二通信令牌生成模块,配置在所述本地端中,用于所述本地端根据所述第一时间戳差值和所述本地当前时间确定本地时间戳,利用本地端预存的加密秘钥解密所述第一通信令牌生成第二通信令牌;

第一请求参数签名生成模块,配置在所述本地端中,用于所述本地端根据所述第二通信令牌和所述业务处理需求的请求参数生成第一请求参数签名;

第二接入请求发起模块,配置在所述本地端中,用于所述本地端向所述远程端发起第二接入请求,所述第二接入请求包括所述本地时间戳、所述请求参数和所述第一请求参数签名;

第二请求参数签名生成模块,配置在所述远程端中,用于所述远程端根据所述第一通信令牌和所述请求参数生成第二请求参数签名,将所述远程当前时间作为远程端时间戳;

比对结果生成模块,配置在所述远程端中,用于所述远程端将所述第一请求参数签名与所述第二请求参数签名进行比对,生成第一比对结果,将所述本地时间戳和所述远程端时间戳之间的第二时间戳差值与预设值进行比对,生成第二比对结果;

请求合法判断模块,配置在所述远程端中,用于所述远程端根据所述第一比对结果和所述第二比对结果判断接入请求是否合法。

进一步地,所述第一请求参数签名生成模块,具体用于:

所述本地端对所述业务处理需求的请求参数进行字典序排列;

所述本地端根据排列后的请求参数和所述第二通信令牌生成第一请求参数签名。

进一步地,所述请求合法判断模块,具体用于:

若所述第一请求参数签名与所述第二请求参数签名比对结果一致,且所述第二时间戳差值小于预设值,则请求接入合法。

本发明实施例,通过引入时间戳来计算请求参数签名,使得通信令牌具有时效性,远程端每次返回的接入响应中携带新的通信令牌和时间戳参数,本地端每次请求接入时需根据新的通信令牌和时间戳参数重新计算请求参数签名,克服了现有技术中数据被抓包后被非法伪造和篡改的问题,提高了本地端和远程端之间通信的安全性。

附图说明

图1是本发明实施例一中的一种通信安全的实现方法的流程图;

图2是本发明实施例二中的一种通信安全的实现方法的流程图;

图3是本发明实施例三中的一种通信安全的实现系统的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

实施例一

图1为本发明实施例一提供的一种通信安全的实现方法的流程图,本实施例可适用于本地端与远程端进行数据交互及通信的情况,该方法可以由本地端可远程端共同来执行,如图1所示,该通信安全的实现方法具体包括如下步骤:

S110,本地端根据业务处理需求,向远程端发起第一接入请求,第一接入请求包括所述本地端的本地当前时间。

其中,本地端可以是安装在电子设备中的各种APP,该电子设备可以移动电话、掌上电脑、平板电脑或台式计算机等。远程端可以是云端服务器。业务处理需求可以是用户根据自身实际需求而选择的应用软件中的业务,示例性的,以微信应用为例,业务处理可以是收发聊天信息、收发微信红包或发朋友圈等。第一接收请求可以是本地端根据业务处理请求向远程端发起的第一次接入请求,包括本地端的本地当前时间、本地端接入远程端的账号和密码,其中本地端接入远程端的密码是经过RSA加密过的密文。

本应用场景下,本地端根据业务处理需求,向远程端发起第一接入请求的过程可以是,本地端根据业务处理需求,将本地端的本地当前时间、本地端接入远程端的账号和密码发送给远程端,以发起第一次接入请求。

优选的,本地端为应用软件客户端,远程端为服务器端,应用软件客户端与服务器端之间通过HTTP协议进行通信。

S120,远程端根据本地当前时间与远程当前时间计算第一时间戳差值,并采用预存的加密秘钥生成第一通信令牌,将第一时间戳差值和第一通信令牌携带在接入响应中发送给本地端。

其中,第一时间戳差值可以是将远程当前时间与本地当前时间相减得到的,数值可以是正数或负数,计算公式为:第一时间戳差值=远程当前时间-本地当前时间。第一通信令牌可以经过RSA加密后的密文,本应用场景下,采用预存的加密秘钥生成第一通信令牌的方法可以是,将以远程当前时间或本地当前时间为种子的随机数和通用唯一识别码(Universally Unique Identifier,UUID)进行哈希运算,得到第一通信令牌。

S130,本地端根据第一时间戳差值和本地当前时间确定本地时间戳,利用本地端预存的加密秘钥解密所述第一通信令牌生成第二通信令牌。

本地时间戳可以是与远程端时间同步的时间,其计算公式可以是:本地时间戳=第一时间戳差值+本地当前时间。本地端收到远程端响应的第一通信令牌后,利用本地端预存的加密秘钥解密第一通信令牌生成第二通信令牌。

优选的,远程端预存的加密秘钥为RSA私钥,本地端预存的加密秘钥为RSA公钥。

S140,所述本地端根据所述第二通信令牌和所述业务处理需求的请求参数生成第一请求参数签名。

其中,请求参数可以包括与业务处理需求对应的请求参数集合和时间戳参数。第一请求参数签名可以是进行本次请求接入唯一对应的签名,只适用于本次请求接入。

在本应用场景下,本地端根据第二通信令牌和业务处理需求的请求参数生成第一请求参数签名的过程可以是,本地端对业务处理需求的请求参数进行字典序排列,然后将排序后的请求参数和第二通信令牌进行哈希计算得到第一请求参数签名。

S150,本地端向所述远程端发起第二接入请求,第二接入请求包括本地时间戳、请求参数和第一请求参数签名。

本地端将本地时间戳、请求参数和第一请求参数签名发送给远程端,向远程端发起第二次接入请求。

S160,远程端根据第一通信令牌和请求参数生成第二请求参数签名,将远程当前时间作为远程端时间戳。

在本应用场景下,远程端根据第一通信令牌和请求参数生成第二请求参数签名的实现过程可以是,远程端接收到本地端发起的第二次请求及携带的本地时间戳、请求参数和第一请求参数签名后,将请求参数和第一通信令牌进行哈希运算得到第二请求参数签名,同时将远程当前时间作为远程端时间戳。

S170,远程端将第一请求参数签名与第二请求参数签名进行比对,生成第一比对结果,将本地时间戳和远程端时间戳之间的第二时间戳差值与预设值进行比对,生成第二比对结果。

其中,第一比对结果可以是,第一请求参数签名与第二请求参数签名一致或第一请求参数签名与第二请求参数签名不一致。第二时间戳差值的计算公式可以是:第二时间戳差值=远程端时间戳-本地时间戳。预设值可以是根据本地端和远程端进行数据交互时消耗时间的经验值和确定的值,可以是20ms-100ms间的任意整数。第二比对结果可以是,第二时间戳差值小于等于预设值或第二时间戳大于预设值。

优选的,预设值为30ms。

S180,远程端根据第一比对结果和第二比对结果判断接入请求是否合法。

优选的,远程端根据第一比对结果和第二比对结果判断接入请求是否合法的方法可以是,第一请求参数签名与第二请求参数签名比对结果一致,且第二时间戳差值小于预设值,则请求接入合法。

本实施例的技术方案,通过引入时间戳来计算请求参数签名,使得通信令牌具有时效性,远程端每次返回的接入响应中携带新的通信令牌和时间戳参数,本地端每次请求接入时需根据新的通信令牌和时间戳参数重新计算请求参数签名,克服了现有技术中数据被抓包后被非法伪造和篡改的问题,提高了本地端和远程端之间通信的安全性。

实施例二

图2为本发明实施例二提供的一种通信安全的实现方法的流程图,以上述实施例为基础,如图2所示,S140包括:

S141,本地端对业务处理需求的请求参数进行字典序排列。

其中,字典序即字母序,可以是字典序升序或字典序降序。在本应用场景下,本地端对业务处理需求的请求参数进行字典序排列的过程可以是,对请求参数进行字典序排序,然后将排序后的参数进行字符串连接。示例性的,参数的名值对格式为key1=value1,假设有N个这样的名值对,将这N个名值对按照字典序升序的方式排列并进行字符串连接得到排列后的参数,可以用KVS表示,则KVS=key1value1key2value2...keyNvalueN。

S142,本地端根据排列后的请求参数和第二通信令牌生成第一请求参数签名。

将排序后的请求参数和第二通信令牌进行哈希计算得到第一请求参数,计算公式可以表示为:第一请求参数=哈希算法(KVS+第二通信令牌)。

本实施例提供的技术方案,本地端对业务处理需求的请求参数进行字典序排列,然后本地端根据排列后的请求参数和第二通信令牌生成第一请求参数签名。对请求参数进行字典序排序后,更利于对生成的请求参数签名的管理。

实施例三

图3为本发明实施例二提供的一种通信安全的实现系统的结构示意图,如图3所示,该通信安全的实现系统包括本地端和远程端:第一接入请求发起模块310,接入响应发送模320,时间戳和第二通信令牌生成模块330,第一请求参数签名生成模340,第二接入请求发起模块350,第二请求参数签名生成模360,比对结果生成模块370和请求合法判断模块380。

第一接入请求发起模块310,配置在本地端中,用于本地端根据业务处理需求,向远程端发起第一接入请求,第一接入请求包括所述本地端的本地当前时间;

接入响应发送模块320,配置在远程端中,用于远程端根据本地当前时间与远程当前时间计算第一时间戳差值,并采用预存的加密秘钥生成第一通信令牌,将第一时间戳差值和第一通信令牌携带在第一接入响应中发送给本地端;

时间戳和第二通信令牌生成模块330,配置在本地端中,用于本地端根据第一时间戳差值和本地当前时间确定本地时间戳,利用本地端预存的加密秘钥解密第一通信令牌生成第二通信令牌;

第一请求参数签名生成模块340,配置在本地端中,用于本地端根据第二通信令牌和业务处理需求的请求参数生成第一请求参数签名;

第二接入请求发起模块350,配置在本地端中,用于本地端向所述远程端发起第二接入请求,第二接入请求包括本地时间戳、请求参数和第一请求参数签名;

第二请求参数签名生成模块360,配置在远程端中,用于远程端根据第一通信令牌和请求参数生成第二请求参数签名,将远程当前时间作为远程端时间戳;

比对结果生成模块370,配置在远程端中,用于远程端将第一请求参数签名与第二请求参数签名进行比对,生成第一比对结果,将本地时间戳和远程端时间戳之间的第二时间戳差值与预设值进行比对,生成第二比对结果;

请求合法判断模块380,配置在远程端中,用于远程端根据第一比对结果和第二比对结果判断接入请求是否合法。

优选的,第一请求参数签名生成模块340,具体用于:

本地端对业务处理需求的请求参数进行字典序排列;

本地端根据排列后的请求参数和第二通信令牌生成第一请求参数签名。

优选的,请求合法判断模块380,具体用于:

若第一请求参数签名与第二请求参数签名比对结果一致,且第二时间戳差值小于预设值,则请求接入合法。

上述装置可执行本发明前述所有实施例所提供的方法,具备执行上述方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明前述所有实施例所提供的方法。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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