mangos(二)认证登录基本流程
来源:互联网 发布:centos 软件选择 编辑:程序博客网 时间:2024/05/16 15:19
一、公钥基本概念
举个简单的例子就很清楚了,就好象例子中的任何人都知道用钱币(公钥)锁上存物箱,但仍然打不开存物箱。只有拥有钥匙或写有号码的纸条(私钥)的人才能打开存物箱。
上面的例子还有点问题,实际中私匙一般只有通信的解密方才知道,加密的人都不知道。
在举个例子:
(2^3) mod 11 =8
(8^7) mod 11= 2
在这里2是明文8是密文。
加密密钥是3解密钥匙是7,加密和减密钥匙不一样。这里2可以是用户密码,3为公钥,7是服务器端的保留的私钥(十分重要)。 这样
假设是A,和B
只要满足(A*B+1) mod 11 =0 就可以了。
这是简单的例子。如果把11变的很大。
知道B是算不出A来的。
简单说,就是这个道理公匙的应用不仅仅是加密,还可以是签名。需要签名的人先把自己个公司告诉别人,发信息的时候用自己的私匙加密(别人不知道,否则可以用你的名义发各种消息)。这条信息就有了你自己的“签名”。因为只有你的公匙能够解密该私匙,而你的公匙早就公布过了。
相对于对称加密,不对称加密往往需要运算量大。
二、mangos登录流程
SRP算法
登录验证使用了这算法,Secure Remote Password(安全远程密码),它是一个开放源代码认证协议。这个算法比较复杂,有点类似于公匙,服务器发送给客户端几个参数,有公匙,还有随机数(这个特别重要),和其他参数。有了随机数那么字典破解的方法难度就几何级别增长了。客户端根据发送过来的一堆参数,和自己发送的明文,运算出一个值,发送给服务器,服务器根据私匙,自己发的随机数和一些乱起八糟的参数和数据库中已经保存的明文(或明文的等价),也计算一个值,比较是否相等。如果相等就算验证成功。同时运算过程中双发都产生一个相等的值K。这个K后来用作认证后的对称加密。大致看了下基本流程,分配了专门的认证登录服务器,登录服务器使用公钥算法验证client的合法性,计算sessionkey并保存在MySQL里,以备后面的逻辑服务器使用。验证通过后,把逻辑服务器列表发给client。然后client请求特定的逻辑服务器,服务器发送消息再次请求身份认证使用对称加密,计算sha1值。(带着一个随机数,一个第一次生成的SessionK,还一些其他算法参数)注意这里计算sha1加密结果没有直接使用明文的密码,而是用了上一次公匙验证过程中生成的一个K。然后后面的通信都是使用K进行对称加密通信。
代码里主要都是加密的逻辑运算就没有在分析。
参考:
http://www.cnblogs.com/ychellboy/archive/2011/10/30/2229509.html
http://srp.stanford.edu/design.html
- mangos(二)认证登录基本流程
- Wow, Mangos登录时的SRP6认证
- Wow, Mangos登录时的SRP6认证
- mangos登录服务器-3-验证流程
- Openstack Keystone 认证流程(二)--门
- apache shiro 登录认证流程
- (二)HTTP协议的基本认证
- shiro的认证思路分析(即登录,流程)
- CAS项目登录流程介绍(二)
- CAS 服务端登录验证流程(二)
- MSNP18协议分析(二)--- MSN登录身份认证
- MSNP18协议分析(二)--- MSN登录身份认证
- java web 笔记(二):登录认证系统
- 第二章 身份验证 (二) 身份认证流程
- Mangos源码分析(二)
- HTTP协议 (二) 基本认证
- HTTP协议 (二) 基本认证
- HTTP协议 (二) 基本认证
- IOS学习之 NSNotificationCenter消息通信机制介绍
- 伸展树(Splay tree)图解与实现
- JAVA1.5新特性
- 测试文本中可能出现的空行
- 2015.06.23_截取字符串 and 获取字符串长度
- mangos(二)认证登录基本流程
- iOS开发:AutoLayout关于更新的几个方法
- NetCat
- Android RxJava使用方式及说明.
- javaMail发送电子邮件问题
- Spring MVC入门(2)---简单案例(1)
- AndroidManifest.xml文件解析
- Unity5 如何做资源管理和增量更新
- Hibernate 的事务与并发