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安全的更多相关文章

  1. 记一次debug记录:Uncaught SyntaxError: Unexpected token ILLEGAL

    在使用FIS3搭建项目的时候,遇到了一些问题,这里记录下. 这里是发布搭建代码: // 代码发布时 fis.media('qa') .match('*.{js,css,png}', { useHash ...

  2. WebApi基于Token和签名的验证

    最近一段时间在学习WebApi,涉及到验证部分的一些知识觉得自己并不是太懂,所以来博客园看了几篇博文,发现一篇讲的特别好的,读了几遍茅塞顿开(都闪开,我要装逼了),刚开始读有些地方不理解,所以想了很久 ...

  3. 基于token的多平台身份认证架构设计

    基于token的多平台身份认证架构设计 1   概述 在存在账号体系的信息系统中,对身份的鉴定是非常重要的事情. 随着移动互联网时代到来,客户端的类型越来越多, 逐渐出现了 一个服务器,N个客户端的格 ...

  4. ASP.NET OAuth:解决refresh token无法刷新access token的问题

    最近同事用iOS App调用Open API时遇到一个问题:在access token过期后,用refresh token刷新access token时,服务器响应"invalid_gran ...

  5. ASP.NET OWIN OAuth:遇到的2个refresh token问题

    之前写过2篇关于refresh token的生成与持久化的博文:1)Web API与OAuth:既生access token,何生refresh token:2)ASP.NET OWIN OAuth: ...

  6. ASP.NET OWIN OAuth:refresh token的持久化

    在前一篇博文中,我们初步地了解了refresh token的用途——它是用于刷新access token的一种token,并且用简单的示例代码体验了一下获取refresh token并且用它刷新acc ...

  7. ASP.NET OAuth:access token的加密解密,client secret与refresh token的生成

    在 ASP.NET OWIN OAuth(Microsoft.Owin.Security.OAuth)中,access token 的默认加密方法是: 1) System.Security.Crypt ...

  8. Web API与OAuth:既生access token,何生refresh token

    在前一篇博文中,我们基于 ASP.NET Web API 与 OWIN OAuth 以 Resource Owner Password Credentials Grant 的授权方式( grant_t ...

  9. 在ASP.NET中基于Owin OAuth使用Client Credentials Grant授权发放Token

    OAuth真是一个复杂的东东,即使你把OAuth规范倒背如流,在具体实现时也会无从下手.因此,Microsoft.Owin.Security.OAuth应运而生(它的实现代码在Katana项目中),帮 ...

  10. 基于DotNetOpenAuth的OAuth实现示例代码: 获取access token

    1. 场景 根据OAuth 2.0规范,该场景发生于下面的流程图中的(D)(E)节点,根据已经得到的authorization code获取access token. 2. 实现环境 DotNetOp ...

随机推荐

  1. 用 wait-notify 解决生产者-消费者问题

    //生产者 package com.mzj.test; import java.util.Vector; import java.util.logging.Level; import java.uti ...

  2. 12-oauth密码模式identity server4实现

    1-服务端代码, 配置类,可加 RequireClientSecret=false, 这样调用端就不需要传入client_secret参数 using System.Collections; usin ...

  3. Nginx初体验(一):nginx介绍

    今天我们来介绍一下Nginx. Nginx是一款轻量级的Web服务器/反向代理服务器以及电子邮件(IMAP/POP3)代理服务器 特点: 反向代理,负载均衡,动静分离 首先我们来介绍一下正向代理服务器 ...

  4. BZOJ2330_糖果_KEY

    题目传送门 看题目可知这是一道差分约束的题目. 根据每种关系建边如下: 对于每种情况建边,然后跑一边SPFA.(最长路) 因为可能会有自环或环的情况,都不可能存在. 跑SPFA时记录入队次数,超过N弹 ...

  5. Codeforces431C_K-Tree_KEY

    题目传送门 题目大意:给定一棵K叉树,一个节点下的K个节点的分数为i,求包含大于等于D的边的总分数为N的方案总数,mod 1e9+7. 这是一道很好的树形DP题,首先看N和K两个条件,可以轻易的得到方 ...

  6. 北京Uber优步司机奖励政策(2月19日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  7. cc2541测试SimpleBLEPeripheral例程

    1. 修改工程选项,去掉CC2540_MINIDK,烧写CC2541代码 2. 打开手机软件TruthBlue2_7 3. 准备看下特征值4的通信,在周期处理里面,一直读取特征值3的值,然后由特征值4 ...

  8. .net MVC 图片水印,半透明

    filter:alpha(opacity=50):这个是为IE6设的,可取值在0-100,其它三个0到1.-moz-opacity:0.5; 这个是为了支持一些老版本的Mozilla浏览器.-khtm ...

  9. selenium,unittest——自动化执行多个py文件脚本并生成报告

    将多个py文件的自动化脚本顺序运行,并生成报告,运行run_all_case后会自动运行文件内所有test开头的py文件并在指定文件夹report生成由脚本时间命名的报告 脚本执行后结果: 生成报告并 ...

  10. Http的请求和响应

    请求有客户端发起:可分为4个部分,请求方法(Requestmethod).请求的网址(Request URL).请求头(Request Headers).请求体(Request Body) 1.请求方 ...