密钥更新方法、装置、系统、存储介质及计算设备制造方法及图纸

技术编号:28118673 阅读:28 留言:0更新日期:2021-04-19 11:21
本申请公开一种密钥更新方法、装置、系统、存储介质及计算设备,该方法包括:使用签发机构签发的第一令牌向目标服务器发起访问请求,其中第一令牌使用与第一公钥对应的第一私钥加密;接收目标服务器使用本地公钥对第一令牌进行验证的响应,响应中打包有本地公钥的标识;解析响应,当响应指示验证无效时获取签发机构签发的第二令牌,其中第二令牌使用与所述本地公钥对应的第二私钥加密,且第二令牌中打包有第一公钥;使用第二令牌向目标服务器发起访问请求,以使目标服务器使用本地公钥验证第二令牌有效,并将本地公钥更新为第二令牌中打包的第一公钥,使得能够通过第一令牌访问目标服务器。本申请解决现有技术中密钥更新不及时的技术问题。的技术问题。的技术问题。

【技术实现步骤摘要】
密钥更新方法、装置、系统、存储介质及计算设备


[0001]本申请涉及信息安全
,具体而言,涉及一种密钥更新方法、装置、系统、存储介质及计算设备。

技术介绍

[0002]用户认证技术一般采用Cookies+Session来进行认证。即用户第一次请求服务器的时候,服务器根据用户提交的相关信息,创建对应的 Session,请求返回时将此Session 的唯一标识信息 SessionID 返回给浏览器;浏览器接收到服务器返回的 SessionID 信息后,会将此信息存入到 Cookie 中,同时 Cookie 记录此 SessionID 属于哪个域名;当用户第二次访问服务器的时候,请求会自动判断此域名下是否存在 Cookie 信息,如果存在自动将 Cookie 信息也发送给服务端,服务端会从 Cookie 中获取 SessionID,再根据 SessionID 查找对应的 Session 信息,如果没有找到说明用户没有登录或者登录失效,如果找到 Session 证明用户已经登录可执行后面操作。
[0003]而分布式web应用的普及,通过session管理用户登录状态成本越来越高,慢慢发展成为使用令牌(token)的方式做登录身份校验。即客户端使用用户名跟密码请求登录服务器。服务器收到请求,去验证用户名与密码;验证成功后,服务器会签发一个 token 并把这个 token 发送给客户端。客户端收到 token 以后,会把它存储起来,客户端每次向服务器请求资源的时候需要带着服务端签发的 token,服务器收到请求,然后去验证客户端请求里面带着的 token ,如果验证成功,就向客户端返回请求的数据。
[0004]JWT,全称是Json Web Token,是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).定义了一种简洁的,自包含的方法用于通信双方之间以JSON对象的形式安全的传递信息。因为数字签名的存在,这些信息是可信的,JWT可以使用HMAC算法或者是RSA的公私秘钥对进行签名。采用公私秘钥对进行签名的方式,例如使用私钥签发JWT,公钥验证JWT,私钥可以提取公钥,但从公钥无法算出私钥,公钥和私钥是成对的。
[0005]在非对称场景下,客户端C程序使用非对称加密的JWT Token连接服务器程序S。Token使用私钥签发,服务器程序使用预先获取的与签发私钥相匹配的公钥验证token中签名,确认token有效性。图1所示为现有技术中基于JWT的验证流程,包括:1. 用户在客户端C使用账号和密码登录服务器程序S;2. 服务器S验证通过后使用私钥创建一个JWT;3. 服务器S返回这个JWT给客户端C,客户端C保存该JWT;4. 客户端C将该JWT串在请求头中像服务器S发送请求;5. 服务器S验证该JWT:a. 验证通过,服务器返回响应的数据给客户端浏览器,客户端浏览器展示该数据;b. 验证未通过,服务器返回错误信息给客户端浏览器,客户端浏览器展示错误提
示。
[0006]在非对称加密场景中,token一般由第三方签发机构的程序A签发,而目标服务器S仅需要通过可信的途径(如HTTPS连接)获取第三方签发机构的程序A签名时使用的私钥所对应的公钥。目标服务端S仅使用该公钥即可完成token验证。然而,当目标服务器S离线,断开与第三方token签发机构的程序A的连接,而又恰逢签发机构的程序A更新了秘钥对时,此后签发的token均使用更新后的私钥,而目标服务器S中的公钥由于离线未被更新,导致新签发的token无法使用目标服务器S所持有的已经过期的公钥完成验证。
[0007]针对上述现有技术中密钥更新不及时的技术问题,目前尚未提出有效的解决方案。

技术实现思路

[0008]本申请实施例提供了一种密钥更新方法、装置、系统、存储介质及计算设备,以至少解决现有技术中密钥更新不及时的技术问题。
[0009]根据本申请实施例的一个方面,提供了一种密钥更新方法,应用于移动终端,该方法包括:使用签发机构签发的第一令牌向目标服务器发起访问请求,其中第一令牌使用与第一公钥对应的第一私钥加密;接收目标服务器使用本地公钥对第一令牌进行验证的响应,其中目标服务器被配置为在令牌验证无效时将本地公钥的标识打包在响应中;解析响应,当响应指示验证无效时获取签发机构签发的第二令牌,其中第二令牌使用与本地公钥对应的第二私钥加密,且第二令牌中打包有第一公钥;使用第二令牌向目标服务器发起访问请求,以使目标服务器使用本地公钥验证第二令牌有效,并将本地公钥更新为第二令牌中打包的第一公钥,使得能够通过第一令牌访问目标服务器。
[0010]根据本申请实施例的一个方面,还提供了一种密钥更新方法,应用于目标服务器,该方法包括:接收移动终端使用第一令牌发起的访问请求,其中第一令牌由签发机构签发,且第一令牌使用与第一公钥对应的第一私钥加密;使用本地公钥验证第一令牌是否有效;若验证无效,则向移动终端发送打包有本地公钥的标识的响应,以使得移动终端获取签发机构签发的第二令牌,其中第二令牌使用与本地公钥对应的第二私钥加密,且第二令牌中打包有第一公钥;接收移动终端使用第二令牌发起的访问请求;使用本地公钥验证第二令牌有效,将本地公钥更新为第二令牌中打包的第一公钥,使得能够通过第一令牌访问目标服务器。
[0011]根据本申请实施例的一个方面,还提供了一种密钥更新方法,应用于签发机构,该方法包括:更新密钥对,使用更新后的与第一公钥对应的第一私钥加密第一令牌;向移动终端签发第一令牌,使得移动终端使用第一令牌向目标服务器发起访问请求,其中目标服务器被配置为使用本地公钥对第一令牌进行验证,并在验证无效时将本地公钥的标识打包在响应中返回给移动终端;接收移动终端发来的第二令牌签发请求,其中第二令牌签发请求中包含本地公钥的标识;将第一公钥打包在第二令牌中,使用与本地公钥对应的第二私钥加密第二令牌;向移动终端签发第二令牌,使得移动终端使用第二令牌向目标服务器发起访问请求,以使目标服务器使用本地公钥验证第二令牌有效,并将本地公钥更新为第二令牌中打包的第一公钥,使得能够通过第一令牌访问目标服务器。
[0012]根据本申请实施例的一个方面,还提供了一种密钥更新方法,应用于签发机构,该
方法包括:更新密钥对,得到新私钥和新公钥;生成验证第一令牌,其中所述验证第一令牌采用所述新私钥加密;生成更新第二令牌,其中所述更新第二令牌采用旧私钥加密,且其中打包有所述新公钥;向移动终端签发所述验证第一令牌和所述更新第二令牌,其中移动终端被配置为:使用所述第一令牌向目标服务器发起访问请求,接收所述目标服务器使用本地公钥对所述第一令牌进行验证的响应,当所述响应指示因目标服务器的本地公钥为旧公钥而导致验证无效时,使用所述第二令牌向目标服务器发起访问请求,以使所述目标服务器使用所述旧公钥验证所述第二令牌有效,并将所述本地公钥更新为所述第二令牌中打包的新公钥。
[0013]根据本申请实施例的一个方面,还提供了一种密钥更新装置,应用于移动终本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种密钥更新方法,其特征在于,应用于移动终端,包括:使用签发机构签发的第一令牌向目标服务器发起访问请求,其中所述第一令牌使用与第一公钥对应的第一私钥加密;接收所述目标服务器使用本地公钥对所述第一令牌进行验证的响应,其中所述目标服务器被配置为在令牌验证无效时将所述本地公钥的标识打包在所述响应中;解析所述响应,当所述响应指示验证无效时获取签发机构签发的第二令牌,其中所述第二令牌使用与所述本地公钥对应的第二私钥加密,且所述第二令牌中打包有所述第一公钥;使用所述第二令牌向目标服务器发起访问请求,以使所述目标服务器使用所述本地公钥验证所述第二令牌有效,并将所述本地公钥更新为所述第二令牌中打包的第一公钥,使得能够通过所述第一令牌访问所述目标服务器。2.根据权利要求1所述的方法,其特征在于,当所述响应指示验证无效时获取签发机构签发的第二令牌包括:向所述签发机构发起第二令牌签发请求,其中所述第二令牌签发请求中包含所述本地公钥的标识,接收所述签发机构返回的第二令牌,其中所述签发机构被配置为将所述第一公钥打包在所述第二令牌中,并使用与所述本地公钥对应的第二私钥加密所述第二令牌;或者根据所述本地公钥的标识,确定与所述本地公钥对应的第二私钥,从移动终端本地存储的多个令牌中,查找使用所述第二私钥加密的第二令牌,其中所述第二令牌中打包有所述第一公钥。3.根据权利要求1所述的方法,其特征在于,在将所述本地公钥更新为所述第二令牌中打包的第一公钥之后,所述方法还包括:使用签发机构签发的第一令牌向目标服务器发起访问请求;所述目标服务器使用更新后的本地公钥对所述第一令牌验证有效;所述目标服务器返回所述访问请求指示的资源。4.根据权利要求1所述的方法,其特征在于,在使用签发机构签发的第一令牌向目标服务器发起访问请求之前,所述方法还包括:监测目标服务器是否在线;当监测到目标服务器离线后,触发所述移动终端与所述目标服务器建立局域网连接,以通过所述移动终端向所述目标服务器发起所述访问请求。5.根据权利要求4所述的方法,其特征在于,在所述移动终端与所述目标服务器建立局域网连接之后,所述方法还包括:移动终端与所述签发机构建立连接;移动终端验证所述签发机构的有效性;在移动终端验证所述签发机构有效后,通过预存的用户名密码登录所述签发机构,以触发所述签发机构签发令牌。6.根据权利要求1

5任一项所述的方法,其特征在于,所述第一令牌和第二令牌为非对称JWT令牌,所述目标服务器使用本地公钥对所述第一令牌进行验证包括:从所述第一令牌的头部读取验证所需的公钥;
判断本地公钥与读取的验证所需的公钥是否一致;若是,则目标服务器验证所述第一令牌有效;若否,则目标服务器验证所述第一令牌无效。7.根据权利要求5所述的方法,其特征在于,将所述第一公钥打包在所述第二令牌中包括:将第一公钥写入所述第二令牌的负载部。8.一种密钥更新方法,其特征在于,应用于目标服务器,包括:接收移动终端使用第一令牌发起的访问请求,其中所述第一令牌由签发机构签发,且第一令牌使用与第一公钥对应的第一私钥加密;使用本地公钥验证所述第一令牌是否有效;若验证无效,则向移动终端发送打包有所述本地公钥的标识的响应,以使得移动终端获取签发机构签发的第二令牌,其中所述第二令牌使用与所述本地公钥对应的第二私钥加密,且所述第二令牌中打包有所述第一公钥;接收移动终端使用所述第二令牌发起的访问请求;使用本地公钥验证所述第二令牌有效,将所述本地公钥更新为所述第二令牌中打包的第一公钥,使得能够通过所述第一令牌访问所述目标服务器。9.一种密钥更新方法,其特征在于,应用于...

【专利技术属性】
技术研发人员:徐贵洲
申请(专利权)人:北京翼辉信息技术有限公司
类型:发明
国别省市:

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

1