一种基于JWT协议的信息传递安全方法与流程

文档序号:16434087发布日期:2018-12-28 20:21阅读:293来源:国知局
一种基于JWT协议的信息传递安全方法与流程

本发明涉及一种信息传递安全方法,更具体地说,涉及一种基于jwt协议的信息传递安全方法。



背景技术:

身份认证场景下,一旦用户完成了登陆,在接下来的每个请求中需要包含可信token,可以用来验证用户身份以及对路由,服务和资源的访问权限进行验证。jwt由于它的开销非常小,可以轻松的在不同域名的系统中传递,所有目前在单点登录(sso)中比较广泛的使用了该技术。信息交换在通信的双方之间使用jwt对数据进行编码是一种非常安全的方式,由于它的信息是经过签名的,可以确保发送者发送的信息是没有经过伪造的风险。jsonwebtoken(jwt),是一种基于json的、用于在网络上声明某种主张的令牌(token)。jwt通常由三部分组成:头信息(header),消息体(payload)和签名(signature)。在localstorage中保存敏感信息并不安全,容易受到跨站脚本攻击,跨站脚本(crosssitescript,简称xss)是一种“html注入”,由于攻击的脚本多数时候是跨域的,所以称之为“跨域脚本”,这些脚本代码可以盗取cookie或是localstorage中的数据。所有的认证信息都在jwt中,由于在服务端没有状态,即使你知道了某个jwt被盗取了,也没有办法将其作废。在jwt过期之前,对此无能为力。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术中的缺陷,提供一种基于jwt协议的信息传递安全方法,解决在使用jwt过程中,暴露出的token被盗取滥用导致用户隐私泄露及系统安全受损等问题。

本发明解决其技术问题所采用的技术方案是:构造一种基于jwt协议的信息传递安全方法,即payload内容扩展,存储令牌标识,以实现令牌注销的功能;客户端携带jwt令牌由协议中的原样发出,优化为增加客户端动态一次性口令,以校验客户端身份。

在本发明所述的基于jwt协议的信息传递安全方法中,所述基于jwt协议的信息传递安全方法中在payload部分增加state字段,state属性由服务端生成随机唯一的数,并在redis中以state其值为key,申请方id为value进行保存;客户端携带jwt令牌由协议中的原样发出,优化为增加客户端动态一次性口令,以校验客户端身份。

在本发明所述的基于jwt协议的信息传递安全方法中,所述基于jwt协议的信息传递安全方法步骤为:

s1首先由令牌申请方发起认证请求,请求时应包含申请方id等信息;

s2服务端接受到请求后,判断用户是否已登录,未登录则需完成登录校验,最后服务端生成传统jwt的三段式票据信息,其中在payload部分需增加state字段,state属性由服务端生成随机唯一的数,并在redis中以state其值为key,申请方id为value进行保存;

s3令牌申请方获取到令牌后进行缓存,在需要请求服务端某些资源时,需要在原令牌基础上加上第四段信息,第四段信息内容应当以竹云otp(一次性动态密码)算法用申请方独有seed生成。格式如下

base64(header).baes64(payroad).serversignature.clientotp;

s4服务端收到请求后,首先检查令牌内容及签名信息是否正确,签名信息校验无误后取出payroad中的state,从redis中取出对应应用id,如未取到说明该令牌已被强制销毁;如存在则根据应用id及对应seed校验客户端动态令牌是否正确。全部无误后返回对应资源。

实施本发明的一种基于jwt协议的信息传递安全方法,具有以下有益效果:本发明校验客户端凭证,使得jwt令牌被盗取后也不可冒用,增强安全防护;本发明可以解决原jwt协议中令牌只能自动过期无法主动销毁的问题,加大企业内部安全内控能力。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明的基于jwt协议的信息传递安全方法流程图

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,所述基于jwt协议的信息传递安全方法中在payload部分增加state字段,state属性由服务端生成随机唯一的数,并在redis中以state其值为key,申请方id为value进行保存;客户端携带jwt令牌由协议中的原样发出,优化为增加客户端动态一次性口令,以校验客户端身份。

进一步地,所述基于jwt协议的信息传递安全方法步骤为:

s1首先由令牌申请方发起认证请求,请求时应包含申请方id等信息;

s2服务端接受到请求后,判断用户是否已登录,未登录则需完成登录校验,最后服务端生成传统jwt的三段式票据信息,其中在payload部分需增加state字段,state属性由服务端生成随机唯一的数,并在redis中以state其值为key,申请方id为value进行保存;

s3令牌申请方获取到令牌后进行缓存,在需要请求服务端某些资源时,需要在原令牌基础上加上第四段信息,第四段信息内容应当以竹云otp(一次性动态密码)算法用申请方独有seed生成。格式如下

base64(header).baes64(payroad).serversignature.clientotp;

s4服务端收到请求后,首先检查令牌内容及签名信息是否正确,签名信息校验无误后取出payroad中的state,从redis中取出对应应用id,如未取到说明该令牌已被强制销毁;如存在则根据应用id及对应seed校验客户端动态令牌是否正确。全部无误后返回对应资源。

尽管通过以上实施例对本发明进行了揭示,但本发明的保护范围并不局限于此,在不偏离本发明构思的条件下,对以上各构件所做的变形、替换等均将落入本发明的权利要求范围内。



技术特征:

技术总结
本发明涉及一种基于JWT协议的信息传递安全方法,所述基于JWT协议的信息传递安全方法中在Payload部分增加state字段,state属性由服务端生成随机唯一的数,并在redis中以state其值为key,申请方ID为value进行保存;客户端携带JWT令牌由协议中的原样发出,优化为增加客户端动态一次性口令,以校验客户端身份。本发明校验客户端凭证,使得JWT令牌被盗取后也不可冒用,增强安全防护;本发明可以解决原JWT协议中令牌只能自动过期无法主动销毁的问题,加大企业内部安全内控能力。

技术研发人员:杨一蛟;谢坚
受保护的技术使用者:深圳竹云科技有限公司
技术研发日:2018.09.26
技术公布日:2018.12.28
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1