一种安全通信方法、系统及终端设备技术方案

技术编号:19702988 阅读:24 留言:0更新日期:2018-12-08 14:23
本申请适用于通信技术领域,提供了一种安全通信方法、系统及终端设备,包括:接收客户端发送的登录请求,根据所述登录请求生成身份安全令牌JWT,发送所述JWT和所述服务端公钥到所述客户端,以指示所述客户端生成签名值;接收所述客户端发送的服务请求,验证所述JWT和所述签名值;若二者均通过验证,则向所述客户端返回所述服务请求的请求数据。通过生成加密的JWT,并在客户端每次向服务端发送服务请求时,将所述JWT作为服务请求的一部分发送到服务端,建立了一个信息安全通道,来保证数据传输的安全性,防止第三方对数据的窃取或篡改,服务端对接收到的服务请求验证其中的JWT和签名值,确保了请求认证的合法性。

【技术实现步骤摘要】
一种安全通信方法、系统及终端设备
本申请属于通信
,尤其涉及一种安全通信方法、系统及终端设备。
技术介绍
客户端登录服务器时,往往需要对登录过程进行通信认证,目前常用的通信认证方法有OAuth或BasicAuth等,OAuth是一个开放的授权标准,它允许用户让第三方应用访问该用户在某一web服务上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。但其只可让用户可以授权第三方网站访问他们存储在另外服务提供者的某些特定信息,而非所有内容。BasicAuth则在每次请求API时都需要提供用户名以及用户的登录密码,因此,很容易将用户的用户名和密码等信息暴露给第三方的客户端。用户的客户端与服务器之间的安全通信得不到保障。
技术实现思路
有鉴于此,本申请实施例提供了一种安全通信方法、系统及终端设备,以解决现有技术中客户端与服务器通讯过程中数据传输的安全性得不到保障的问题。本申请实施例的第一方面提供了一种安全通信方法,所述安全通信方法包括:接收客户端发送的登录请求,根据所述登录请求生成身份安全令牌JWT,所述JWT中的载荷数据已经过加密处理;发送所述JWT和所述服务端公钥到所述客户端,以指示所述客户端生成签名值;接收所述客户端发送的服务请求,所述服务请求中包括所述JWT和所述签名值以及请求数据;验证所述JWT和所述签名值;若二者均通过验证,则向所述客户端返回所述服务请求的请求数据。本申请实施例的第二方面提供了一种安全通信方法,所述安全通信方法包括:发送登录请求至服务端;接收所述服务端发送的JWT和所述服务端公钥,所述JWT是所述服务端根据所述登录请求生成;根据所述述服务端的公钥生成签名值;发送服务请求到所述服务端,指示所述服务端对所述服务请求进行验证。所述服务请求中包含所述JWT、所述签名值和请求数据;接收所述服务端发送的请求数据。本申请实施例的第三方面提供了一种安全通信系统,所述安全通信系统包括:服务端和客户端;所述服务端包括:接收单元,用于接收客户端发送的登录请求,根据所述登录请求生成身份安全令牌JWT,所述JWT中的载荷数据已经过加密处理;还用于接收所述客户端发送的服务请求,所述服务请求中包括所述JWT和所述签名值以及请求数据;发送单元,用于发送所述JWT和所述服务端公钥到所述客户端,以指示所述客户端生成签名值;验证单元,用于验证所述JWT和所述签名值;若二者均通过验证,则向所述客户端返回所述服务请求的请求数据。所述客户端包括:请求发送单元,用于发送登录请求至服务端;还用于发送服务请求到所述服务端,指示所述服务端对所述服务请求进行验证。所述服务请求中包含所述JWT、所述签名值和请求数据;生成单元,用于根据所述述服务端的公钥生成签名值;数据接收单元,用于接收所述服务端发送的JWT和所述服务端公钥,所述JWT是所述服务端根据所述登录请求生成;还用于接收所述服务端发送的请求数据。本申请实施例的第四方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如所述安全通信方法中任一项所述方法的步骤。本申请实施例的第五方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如所述安全通信方法中任一项所述方法的步骤。本申请提供的实施例中客户端在与服务端进行通信时,服务端根据客户端的登录请求生成加密的身份安全令牌JWT,将所述JWT和服务端公钥一起发送到客户端,以使客户端在向服务端发送服务请求时生成签名值,服务端接收客户端发送的服务请求,并对所述服务请求中包含的JWT和签名值进行验证,若二者均验证通过,则向客户端返回其所请求的数据。这一过程中通过生成加密的JWT,并在客户端每次向服务端发送服务请求时,将所述JWT作为服务请求的一部分发送到服务端,建立了一个信息安全通道,来保证数据传输的安全性,防止第三方对数据的窃取或篡改,服务端对接收到的服务请求验证其中的JWT和签名值,确保了请求认证的合法性。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本申请实施例提供的安全通信方法的实现流程示意图;图2是本申请另一实施例提供的安全通信方法的实现流程示意图;图3是本申请实施例提供的安全通信系统的示意图;图4是本申请实施例提供的终端设备的示意图。具体实施方式以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。本申请提供的实施例中客户端在与服务端进行通信时,服务端根据客户端的登录请求生成加密的身份安全令牌JWT,将所述JWT和服务端公钥一起发送到客户端,以使客户端在向服务端发送服务请求时生成签名值,服务端接收客户端发送的服务请求,并对所述服务请求中包含的JWT和签名值进行验证,若二者均验证通过,则向客户端返回其所请求的数据。为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。实施例一:图1示出了本申请实施例提供的一种安全通信方法的实现流程示意图,详述如下:步骤S11,服务端接收客户端发送的登录请求,根据所述登录请求生成身份安全令牌JWT,所述JWT中的载荷数据已经过加密处理;本申请提供的实施例中客户端向服务端发送登录请求,所述登录请求中包含客户端的用户名、登录密码以及客户端的公钥;所述客户端的公钥在客户端向服务端发送登录请求之前通过Diffie-Hellman算法生成,同时通过Diffie-Hellman算法生成客户端的私钥。所述身份安全令牌(JsonWebToken,JWT)包括头部、载荷以及签名。进一步地,所述根据所述登录请求生成身份安全令牌JWT,包括:根据所述登录请求获取所述客户端的登录信息;加密所述登录信息,得到身份安全令牌JWT的签名;根据所述签名、所述载荷数据和加密所述登录信息时使用的加密算法生成所述JWT。该步骤中根据所述登录请求获取登录信息,所述登录信息包括客户端的用户名、登录密码以及客户端的公钥之外,还包括JWT的有效期限等内容。所述JWT包括头部、载荷以及签名。加密所述头部和所述载荷数据后得到JWT的签名部分,然后根据签名部分、所述登录信息和加密所述登录信息时使用的加密算法生成JWT。下面举例说明:JWT的头部用于描述该JWT的最基本的信息,如JWT的类型或签名所用的算法等,形如:{"typ":"JWT","alg":"HS256"}即上述为一个JSON对象,所使用的签名算法是HS256算法,对要进行Base64编码之后的字符串就成了JWT的头部(Header):eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9所述载荷包含登录请求中的登录信息,如签发者(即用户名)、JWT的本文档来自技高网...

【技术保护点】
1.一种安全通信方法,其特征在于,所述安全通信方法包括:接收客户端发送的登录请求,根据所述登录请求生成身份安全令牌JWT,所述JWT中的载荷数据已经过加密处理;发送所述JWT和所述服务端公钥到所述客户端,以指示所述客户端生成签名值;接收所述客户端发送的服务请求,所述服务请求中包括所述JWT和所述签名值以及请求数据;验证所述JWT和所述签名值;若二者均通过验证,则向所述客户端返回所述服务请求的请求数据。

【技术特征摘要】
1.一种安全通信方法,其特征在于,所述安全通信方法包括:接收客户端发送的登录请求,根据所述登录请求生成身份安全令牌JWT,所述JWT中的载荷数据已经过加密处理;发送所述JWT和所述服务端公钥到所述客户端,以指示所述客户端生成签名值;接收所述客户端发送的服务请求,所述服务请求中包括所述JWT和所述签名值以及请求数据;验证所述JWT和所述签名值;若二者均通过验证,则向所述客户端返回所述服务请求的请求数据。2.如权利要求1所述的安全通信方法,其特征在于,所述根据所述登录请求生成身份安全令牌JWT,包括:根据所述登录请求获取所述客户端的登录信息;加密所述登录信息,得到身份安全令牌JWT的签名;根据所述签名、所述载荷数据和加密所述登录信息时使用的加密算法生成所述JWT。3.如权利要求1所述的安全通信方法,其特征在于,所述验证所述JWT和所述签名值,包括:解析所述服务请求中包含的JWT和签名值;根据所述JWT验证所述用户的身份是否合法以及所述客户端登录所述服务器是否超时;若所述客户端的身份合法且所述客户端登录所述服务器未超时,则根据所述服务端的本地密钥验证所述签名值是否合法,其中,所述服务端的本地密钥根据所述服务端私钥和所述客户端公钥生成。4.如权利要求3所述的安全通信方法,其特征在于,所述根据所述服务端的本地密钥验证所述签名值是否合法,包括:根据所述服务请求获取此次请求的相关信息,所述相关信息包括请求消息内容、请求方式、请求API、随机数、时间戳中的一种或多种;将所述相关信息和所述服务端的本地密钥进行组合,得到第一组合结果;根据所述第一组合结果通过SM3算法中的验签方法对所述签名值进行验签,以确定所述签名值是否合法。5.一种安全通信方法,其特征在于,所述安全通信方法包括:发送登录请求至服务端;接收所述服务端发送的JWT和所述服务端公钥,所述JWT是所述服务端根据所述登录请求生成;根据所述述服务端公钥生成签名值;发送服务请求到所述服务端,指示所述服务端对所述服务请求进行验证。所述服务请求中包含所述JWT、所述签名值和请求数据;接收所述服务端发送的请求数据。6.如...

【专利技术属性】
技术研发人员:黄佳鹏何鹏程方春冬
申请(专利权)人:深圳市中信网安认证有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1