Token安全
token相对安全加密算法
http://blog.csdn.net/q8649912/article/details/52370565
关于文章的理解
1 sessionid
这个名词应该理解为:一个http客户端在服务端的一个标识,仅此而已,他唯一性的标识了一个客户端,但是其作用却很关键,他的关键作用在于token的生成。
2 真实的http登陆请求详细过程(非前后端分离,如jsp,asp.net)
1)浏览器无论如何都会向服务器发送一次请求,服务器获取sessionid和token,判断有无登录。如果没有,那么生成密钥对,缓存sessionid,将公钥和sessionid发送到http响应中,也就是交给客户端,重定向到登陆页
2)浏览器提交登陆表单,携带sessionid,和使用公钥加密的密码,服务区接收到这些信息,这时候sessionid唯一性的标识客户端很关键,通过sessionid拿到缓存在服务器的私钥,进行密码解密,解密后完成用户名,密码验证。接下来降低sessionid的关键作用一步,在验证通过后生成token,使用token为关键点缓存登陆会话相关信息,如权限等。服务器将sessionid,使用客户端公钥加密token交给客户端
3)客户端用私钥解密token,由于rsa加密算法每次加密结果都不一样,所以这里在浏览器与服务器传输中的加密token一直处于变化中。客户端完成相关操作后向发服务器再次发生请求,私钥加密token,将sessionid和token一些其他起脚信息交给服务器,这个时候就算是黑客拿到token,sessionid也没有用
4)服务器接收将token解密,然后获取token映射的信息进行处理,即便是黑客能够拿到这一次的加密token,请求成功,服务器加密后返回给客户端,客户端需要正确解密和加密后才会进入下一次交互过程,如果服务端发现黑客还是拿着上一次的token来请求自然就会解密失败,自然的请求也就失败了
5)作为黑客来说吃亏就在于rsa每一次加密结果不一致造成的,那么黑客可以分析客户端的加解密程序,并拿到私钥才能进行伪装成功,但这也是比较费技术的,那么另外一种就是每一次都可以截取正常加密后的token就可以很好的伪装了
6)为了解决这个问题呢,引入证书了,由于证书的存在,即便是你每次能截取到加密token但是没有证书相关信息也是不行的
7)大魔法ssl可以非常有效解决这种问题,但是ssl非常复杂,我也不咋个了解,所以暂时就这样吧
3 sessionid的生命周期sessionid在密码验证,token生成过程中非常关键,也就是验证过程,但是之后就失去了这个关键作用了。这个作用失去就是在会话维持阶段基本没什么用了。
Token安全的更多相关文章
- 记一次debug记录:Uncaught SyntaxError: Unexpected token ILLEGAL
在使用FIS3搭建项目的时候,遇到了一些问题,这里记录下. 这里是发布搭建代码: // 代码发布时 fis.media('qa') .match('*.{js,css,png}', { useHash ...
- WebApi基于Token和签名的验证
最近一段时间在学习WebApi,涉及到验证部分的一些知识觉得自己并不是太懂,所以来博客园看了几篇博文,发现一篇讲的特别好的,读了几遍茅塞顿开(都闪开,我要装逼了),刚开始读有些地方不理解,所以想了很久 ...
- 基于token的多平台身份认证架构设计
基于token的多平台身份认证架构设计 1 概述 在存在账号体系的信息系统中,对身份的鉴定是非常重要的事情. 随着移动互联网时代到来,客户端的类型越来越多, 逐渐出现了 一个服务器,N个客户端的格 ...
- ASP.NET OAuth:解决refresh token无法刷新access token的问题
最近同事用iOS App调用Open API时遇到一个问题:在access token过期后,用refresh token刷新access token时,服务器响应"invalid_gran ...
- ASP.NET OWIN OAuth:遇到的2个refresh token问题
之前写过2篇关于refresh token的生成与持久化的博文:1)Web API与OAuth:既生access token,何生refresh token:2)ASP.NET OWIN OAuth: ...
- ASP.NET OWIN OAuth:refresh token的持久化
在前一篇博文中,我们初步地了解了refresh token的用途——它是用于刷新access token的一种token,并且用简单的示例代码体验了一下获取refresh token并且用它刷新acc ...
- ASP.NET OAuth:access token的加密解密,client secret与refresh token的生成
在 ASP.NET OWIN OAuth(Microsoft.Owin.Security.OAuth)中,access token 的默认加密方法是: 1) System.Security.Crypt ...
- Web API与OAuth:既生access token,何生refresh token
在前一篇博文中,我们基于 ASP.NET Web API 与 OWIN OAuth 以 Resource Owner Password Credentials Grant 的授权方式( grant_t ...
- 在ASP.NET中基于Owin OAuth使用Client Credentials Grant授权发放Token
OAuth真是一个复杂的东东,即使你把OAuth规范倒背如流,在具体实现时也会无从下手.因此,Microsoft.Owin.Security.OAuth应运而生(它的实现代码在Katana项目中),帮 ...
- 基于DotNetOpenAuth的OAuth实现示例代码: 获取access token
1. 场景 根据OAuth 2.0规范,该场景发生于下面的流程图中的(D)(E)节点,根据已经得到的authorization code获取access token. 2. 实现环境 DotNetOp ...
随机推荐
- mysql的数据类型与表约束
数据类型 (详细数据类型请参考:http://www.runoob.com/mysql/mysql-data-types.html) 数字 整型 tinyint int bigint 小数: flo ...
- java 异常与捕获
几乎所有的代码里面都会出现异常,为了保证程序在出现异常之后可以正常执行完毕,就需要进行异常处理. 先来看一下异常的继承类结构: 所有的异常都是由Throwable继承而来,我们来看他下面的两个子类Er ...
- 对fgets的理解
gets()函数 因为用gets函数输入数组时,只知道数组开始处,不知道数组有多少个元素,输入字符过长,会导致缓冲区溢出,多余字符可能占用未使用的内存,也可能擦掉程序中的其他数据,后续用fgets函数 ...
- express with bower in websotrm
0. To install bower , run the following command in webstorm terminal(alt+f12) npm install bower bowe ...
- 成都Uber优步司机奖励政策(3月18日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 人脸检测库libfacedetection介绍
libfacedetection是于仕琪老师放到GitHub上的二进制库,没有源码,它的License是MIT,可以商用.目前只提供了windows 32和64位的release动态库,主页为http ...
- QtChart 初体验
早就知道 Qt 5.7 中引入了 QtChart 模块.一直没时间试用.周末正好空闲,就简单的试了试 QtChart.QtChart 学起来还是挺简单的,基于 Qt Graphics View Fra ...
- Python之数据处理
一.CSV数据处理 CSV文件格式:逗号分隔值(Comma-Separated Value,CSV,有时也称为字符分隔值,因为分隔符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).纯文 ...
- spring cloud 服务注册中心eureka高可用集群搭建
spring cloud 服务注册中心eureka高可用集群搭建 一,准备工作 eureka可以类比zookeeper,本文用三台机器搭建集群,也就是说要启动三个eureka注册中心 1 本文三台eu ...
- 使用navicat连接Mysql8.0出现2059错误
一. 进入MySQL,打开要用navicat连接的数据库 二.打开运行以下代码: ALTER USER 'root'@'localhost' IDENTIFIED BY '你的mysql密码' PAS ...