分布式整合之jwt和rsa说明|学习笔记

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 快速学习分布式整合之jwt和rsa说明

开发者学堂课程【Spring Security知识精讲与实战演示(三)分布式整合之jwt和rsa说明】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/732/detail/13067


分布式整合之jwt和rsa说明

 

内容介绍:

一、jwt的介绍

二、如何实现非对称加密

 

一、jwt的介绍

通过前面的学习,会发现单点登录的token令牌的制造非常关键,介绍一种新的技术叫jwt,全程为json web token,官网地址:http://jwt.io。

Token分三个部分,第一部分是头部,头部主要是放置一些声明信息,比如说将来起到至关重要作用的一部分签名就是安全性主要看的就是签名这一部分,这一部分是采用在头部中指定的加密方式来加密,载荷是我们token中放置我们用户最重要的部分,比如说用户名和角色和过期时间等都可以放到载荷中,但是载荷中切记不要放置密码,因为这个jwt也是可以被反编译出来的,如果密码在载荷,你的敏感信息就会暴露出来,所以说一般不放密码。

最后一部分签名决定了整个token是否安全,会把头部和载荷分别采用base64编法,然后用点相连,再加入盐。

最后在采用头部上面指定一个编码格式,也可以说加密格式对它进行加密或者进行编码就得到了签名。在这一些过程,其实头部意义不大,采用什么编码其实无关要紧,主要是在载荷和签名处。因为在a认证服务器认证完毕,他给你返回一个token,这个token中应该有一些可用的信息,那这些可用的信息就是用户名或者角色都在token。因此签名是至关重要的,整个令牌能否被伪造,安全性如何?全部依靠签名。

签名的来源可以发现头部和载荷的64位编码用点相连。这个部分就很容易伪造,因为头部和载荷根本就没有进行加密,只是采用base64编码,而这是很容易被反编译出来的。

如果仅仅是这个部分,根本就不能称安全,因此主要是往里边加盐,其实就是加入一个加密的一个加密套一个规则

发起认证请求的时候加的这个盐就在里边多放了一个IP黑马,那么在b系统,在其他系统在验证真伪的时候,同样要采用IP黑马这个加密串,进行一个反编译,但是需要注意的是:IP黑马的编译方式都是可以查询到的,gwt的算法是公开的,打开官网都可以去算,既然能拿这个进行加密,就可以用它来解密,但是要用它加密也可以,因为这个规则是已知的,这个规则之中的盐是一样的,那这个时候就无法验证安全

这是需要采用非常典型的非对称加密,就是在加密的时候用一种技术,在解密的时候用另外一种技术,这两个技术是有关系的。

 

二、如何实现非对称加密?

使用ras非对称加密,这个rsa非对称加密会生成两把密钥,一把私钥和一把公钥。

首先私钥是私有私钥,如果是私钥加密,只要用私钥公钥都可以解密。如果是公钥加密,只有私钥才可以解密,加密是两个密钥都可以,但是到底选哪一个进行加密呢?假如使用公钥加密,但如果使用公钥加密的话,也就是意味着a系统放的是公钥b系统放的私钥,那试想一下,b系统放私钥解密是没问题的,如果他不仅仅解密,要做其他不好的事情。

伪造一个密钥怎么办呢?好你自己啊,他伪造了一个密钥,那他伪造的要在别的服务器都可以用,而别人的服务放的都是是私钥,加密私钥是可以解密的,这个时候其实就伪造成功了。

那就推翻了这个假设,如果是私钥加密,那其他服务放的肯定都是公钥,那用公钥解密可以,但是要用公钥加密开始伪造,注意加密出来的东西,其他公钥是没有办法解密的,只有私钥才可以解,所以说拿到公钥想伪造是行不通的,只能进行解密操作,所以说最终的方案是采用私钥进行加密,换句话来说,就在上面认证的时候选择使用私钥,而在验证token真伪的时候选择使用公钥。

相关文章
|
5月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
145 0
|
5月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
250 0
|
5月前
使用JWT的服务分布式部署之后报错:JWT Check Failure:
使用JWT的服务分布式部署之后报错:JWT Check Failure:
103 1
|
5月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
149 1
|
5月前
|
SpringCloudAlibaba Java 测试技术
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(六)Hystrix(豪猪哥)的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(六)Hystrix(豪猪哥)的使用
139 1
|
5月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(三)Eureka服务注册中心
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(三)Eureka服务注册中心
99 1
|
5月前
|
SpringCloudAlibaba Java 持续交付
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(一)基础知识+各个组件介绍+聚合父工程创建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(一)基础知识+各个组件介绍+聚合父工程创建
753 1
|
5月前
|
消息中间件 SpringCloudAlibaba Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
970 0
|
5月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(五)OpenFeign的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(五)OpenFeign的使用
99 0
|
5月前
|
负载均衡 算法 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(四)Ribbon的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(四)Ribbon的使用
111 0

热门文章

最新文章