掌桥专利:专业的专利平台
掌桥专利
首页

一种用户身份ID加密传输方法及其系统

文献发布时间:2023-06-19 19:27:02


一种用户身份ID加密传输方法及其系统

技术领域

本发明涉及互联网技术领域,尤其涉及一种用户身份ID加密传输方法及其系统。

背景技术

目前用户身份详情只做一层JWT(JSONWeb Tokens)加密,生成身份凭证Token输出到用户端,用户端携带身份凭证Token传入网关,网关对该Token仅做一些简单的规则验证,再将Token带入到业务操作系统,业务操作系统负载将Token解密后,从数据库里获取用户身份的详细信息,因此,业务操作系统会重复的调用数据库,并从数据库获取身份信息,由于只有一层加密,身份凭证很容易被破解,导致用户身份信息会存在暴露的风险,存在较高的安全隐患。

发明内容

本发明的目的在于提供一种用户身份ID加密传输方法及其系统,解决了目前业务操作系统频繁调用只有一层加密的身份信息,导致用户身份信息会存在暴露的风险,安全隐患较高的问题。

为实现上述目的,第一方面,本发明提供了一种用户身份ID加密传输方法,包括以下步骤:

通过鉴权中心判断获取的用户身份信息是否正确,并在所述用户身份信息正确的条件下,将所述用户身份信息存入缓存服务器中进行加密,完成登录;

当用户登录成功后,基于获取业务操作系统发出的请求指令,将包含加密数据的请求头传输至API网关;

当所述API网关接收到所述请求头后,将所述请求头传输至所述鉴权中心,并在验证合法后,验证所述加密数据中的缓存密钥是否存在,同时将验证结果传输至用户端;

通过所述API网关将所述缓存密钥添加至所述请求头中,并传输至所述业务操作系统,根据所述缓存密钥获取用户身份信息。

其中,通过鉴权中心判断获取的用户身份信息是否正确,并在所述用户身份信息正确的条件下,将所述用户身份信息存入缓存服务器中进行加密,完成登录,包括:

获取用户身份信息,并通过API网关调用鉴权中心接口验证所述用户身份信息是否正确;

若正确,则将所述用户身份信息存入缓存服务器,并利用双重加密方法对所述用户身份信息进行加密,并将加密数据返回至用户端,完成登录。

其中,用双重加密方法对所述用户身份信息进行加密,包括:

当所述缓存服务器接收到所述用户身份信息后,将获取的GUID随机码作为缓存密钥,并利用JWT对所述缓存密钥进行加密,生成身份凭证。

其中,所述缓存密钥的有效期为2天,所述身份凭证的有效期为2小时。

其中,当所述API网关接收到所述请求头后,将所述请求头传输至所述鉴权中心,并在验证合法后,验证所述加密数据中的缓存密钥是否存在,同时将验证结果传输至用户端,包括:

当所述API网关接收到所述请求头后,获取所述请求头中的身份凭证,并将所述身份凭证传输至上述鉴权中心验证所述身份凭证是否合法;

当所述身份凭证验证合法后,将所述身份凭证进行解密,获取对应的所述缓存密钥,并利用所述鉴权中心验证所述缓存密钥是否存在;

将验证结果传输至用户端。

其中,利用所述鉴权中心验证所述缓存密钥是否存在,包括:

若所述缓存密钥存储,则所述身份凭证和所述缓存密钥均合法,则所述用户身份信息合法;

若所述所述缓存密钥不存在,则判断所述用户身份信息不合法。

其中,若所述鉴权中心判断所述身份凭证不符合,则验证所述用户身份信息不合法。

第二方面,本发明提供一种用户身份ID加密传输系统,适用于如权第一方面所述的一种用户身份ID加密传输方法,包括用户端,

还包括API网关、鉴权中心、业务操作系统和缓存服务器,所述用户端与所述API网关连接,所述鉴权中心与所述API网关连接,所述业务操作系统与所述API网关连接,所述缓存服务器与所述鉴权中心和所述业务操作系统连接;

所述用户端,用于获取用户身份信息并接收验证结果;

所述API网关,用于将所述用户身份信息传输至鉴权中心进行判断,并接收请求头;

所述鉴权中心,用于判断所述用户身份信息是否正确,并验证身份凭证和缓存密钥是否合法,并将验证结果传输至上述用户端或将所述缓存密钥传输至上述API网关;

所述业务操作系统,用于发出请求指令,并根据含有所述缓存密钥的请求头中的所述缓存密钥获取所述用户身份信息;

所述缓存服务器,用于将所述用户身份信息进行加密,并根据接收到的请求指令,将请求头传输至上述API网关。

本发明的一种用户身份ID加密传输方法及其系统,通过鉴权中心判断获取的用户身份信息是否正确,并在所述用户身份信息正确的条件下,将所述用户身份信息存入缓存服务器中进行加密,完成登录;当用户登录成功后,基于获取业务操作系统发出的请求指令,将包含加密数据的请求头传输至API网关;当所述API网关接收到所述请求头后,将所述请求头传输至所述鉴权中心,并在验证合法后,验证所述加密数据中的缓存密钥是否存在,同时将验证结果传输至用户端;通过所述API网关将所述缓存密钥添加至所述请求头中,并传输至所述业务操作系统,根据所述缓存密钥获取用户身份信息,业务操作系统通过加密后的数据获取身份信息,并且采用双重加密的方法,保证用户身份信息不会被暴露出去,降低安全隐患。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1是本发明提供的一种用户身份ID加密传输方法的步骤示意图。

图2是本发明提供的用户授权登录的流程图。

图3是本发明提供的用户身份ID加密传输流程图。

图4是本发明提供的一种用户身份ID加密传输系统的结构示意图。

图中:

1-用户端、2-API网关、3-鉴权中心、4-业务操作系统、5-缓存服务器。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

请参阅图1-图3,本申请提供的一种用户身份ID加密传输方法,包括以下步骤:

S101、通过鉴权中心3判断获取的用户身份信息是否正确,并在所述用户身份信息正确的条件下,将所述用户身份信息存入缓存服务器5中进行加密,完成登录。

具体的,如图2所示,用户输入身份信息(账号和密码),通过API网关2调用鉴权中心3接口,该接口验证账号和密码是否正确,若正确则将用身份信息存入缓存服务器5(缓存Redis),使用GUID随机码作缓存密钥值,|再将该密钥加密处理,生成JWT的身份凭证Token值,返回给用户端1,用户端1提示登录成功。

用户授权登录时,将用户身份信息存入缓存Redis(Redis(Remote DictionaryServer)即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、密钥-Value数据库,并提供多种语言的API。它是一个高性能的密钥-value数据库。),生成GUID(Globally Unique Identifier全局唯一标识符)随机码作为缓存Redis的缓存密钥;使用JWT对缓存密钥加密生成身份凭证Token。JWT是为了在网络应用环境间传递声明而执行的一种基于JSON(一种轻量级的数据交换格式)的开放标准;即便JWT被破解,拿到的也只是缓存密钥。这种方式在网络传输在任意一个环节,用户身份ID都不会暴露出去,极大的提升的安全性。

S102、当用户登录成功后,基于获取业务操作系统4发出的请求指令,将包含加密数据的请求头传输至API网关2。

具体的,用户登录成功后,通过控制业务操作系统4操作相关业务动作,则需要调用后端服务接口,因此,所述业务操作系统4发出对应的请求指令,利用所述缓存服务器5传输业务参数,并且请求头中携带S101中获取的Token。

S103、当所述API网关2接收到所述请求头后,将所述请求头传输至所述鉴权中心3,并在验证合法后,验证所述加密数据中的缓存密钥是否存在。

具体的,如图3所示,请求指令到达API网关2,网关获取请求头中的身份凭证Token,将Token传给鉴权中心3,鉴权中心3立即验证Token是否合法,若合法则解密Token获取到缓存密钥,再验证该密钥在缓存中是否存在,若存在,则缓存密钥也是合法的。身份凭证Token和缓存密钥都合法,则将密钥返回给API网关2。否则告知网关用户身份ID非法,网关再将该信息返回前端。

在API网关2里统一验证Token,并且对身份凭证Token双重验证,验证Token和缓存密钥,俩值都验证正确后,将缓存密钥传给后端的业务操作系统4;业务操作系统4无需再关注Token和密钥的合法性。

S104、|通过所述API网关2将所述缓存密钥添加至所述请求头中|,并传输至所述业务操作系统4,根据所述缓存密钥获取用户身份信息。

具体的,API网关2将缓存密钥添加到请求头,与业务参数一起传输到业务操作系统4。业务操作系统4可通过缓存密钥从缓存里获取用户身份信息。业务操作系统4在需要用户身份信息的时候,通过密钥从Redis里直接取数据;而不是从数据库里取数,性能高又减少对数据库的压力。API网关2与业务操作系统4,业务操作系统4内部都是通过密钥来取用户的身份信息,从来保证的用户身份ID在内部接口之间也是安全的。

有益效果

1、用户身份ID的加密方法是使用GUID生成的缓存密钥与JWT加密结合。GUID(Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符,GUID的总数达到了2^128(3.4×10^38)个,所以随机生成两个相同GUID的可能性非常小,但并不为0。用于生成GUID的算法通常都加入了非随机的参数(如时间),以保证这种重复的情况不会发生。JWT(Jsonweb token)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC7519).该token被设计为紧凑且安全的。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。相比通用的加密方法,随机码和JWT双重加密的安全性更高,被破解的可能性更低。

2、随机码GUID作为密钥值,用户ID和用户详细信息为Value值保存到缓存Redis里,有效期设置2天;JWT使用HS256算法,将密钥值加密生成身份凭证Token,有效期设置2个小时。既能保存数据,保证所有程序都可以正确的获取到数据,同时也增加Token的安全性。传统的做法则无法两者兼顾。

3、传统的做法里无法保证全链路加密,我们的做法是:在网关外使用用户凭证Token标识用户身份ID,在网关内的业务操作系统4使用缓存密钥标识用户身份ID;用户身份ID在整个链路都是加密的,其在所有模块里都被保护起来。

4、在API网关2里对Token进行统一验证,业务操作系统4只关注自身的业务逻辑而无需关注Token。相比传统做法,我们可以保证微服务的各个模块之间各司其职。

5、业务操作系统4会经常使用到用户ID以及用户的相信信息。在传统的做法里,用户身份加密和解密的过程会带对性能带来很大的开销,取数耗时都在100毫秒以上。我们的做法是:我们从Redis里取用户ID和用户详细信息,而不调用鉴权中心3取数据的做法,利用redis的高性能可将取数控制在10毫秒内,极大的提升的性能。即便在高并发场景下也能很好的使用。

请参阅图4,本发明提供一种用户身份ID加密传输系统,包括用户端1,还包括API网关2、鉴权中心3、业务操作系统4和缓存服务器5,所述用户端1与所述API网关2连接,所述鉴权中心3与所述API网关2连接,所述业务操作系统4与所述API网关2连接,所述缓存服务器5与所述鉴权中心3和所述业务操作系统4连接;

所述用户端1,用于获取用户身份信息并接收验证结果;

所述API网关2,用于将所述用户身份信息传输至鉴权中心3进行判断,并接收请求头;

所述鉴权中心3,用于判断所述用户身份信息是否正确,并验证身份凭证和缓存密钥是否合法,并将验证结果传输至上述用户端1或将所述缓存密钥传输至上述API网关2;

所述业务操作系统4,用于发出请求指令,并根据含有所述缓存密钥的请求头中的所述缓存密钥获取所述用户身份信息;

所述缓存服务器5,用于将所述用户身份信息进行加密,并根据接收到的请求指令,将请求头传输至上述API网关2。

在本实施方式中,用户端1请求接口必须先通过API网关2;API网关2是用户端1与业务操作系统4之间的桥梁;网关根据路由规则将请求转发给鉴权中心3或后端的业务操作系统4;业务操作系统4处理完数据后,通过网关返回给前端。鉴权中心3是整个用户授权系统的维护中心,网关认证授权的具体逻辑是调用鉴权中心3来实现的;鉴权中心3还负责缓存用户缓存密钥、用户身份ID和用户的详细信息;这些重要的缓存信息是业务操作系统4获取用户身份ID和用户详细系统的唯一源头。业务操作系统4调用缓存Redis来取用户身份ID和用户详细信息。业务操作系统4之间也会相互调用。详细的传输流程如本申请所提供的一种用户身份ID加密传输方法所描述的内容一致,因此,此处不在赘述。

以上所揭露的仅为本申请一种或多种较佳实施例而已,不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于本申请所涵盖的范围。

相关技术
  • 用户身份在线验证方法及用户身份在线验证系统
  • 一种用于移动支付的用户身份验证方法及其系统
  • 一种用户身份确定方法、装置及电子设备
  • 一种知识问答中答题用户的身份验证方法、装置和终端设备
  • 一种加密传输的用户身份更新方法
  • 一种加密传输的用户身份更新方法
技术分类

06120115915756