SRP简化版:
函数(算法): F1(SHA(AES(SHA)), F2(MD5)
服务器端: S
客户端 : C
前提: 服务器段数据库已经存在用户帐号username,密码 p
使用流程:
客户端用户输入用户名username, 密码 p, 生成一个随机数 a
C (p, a)
客户端传输username, a 给服务器端
C(username, a) ==> S
服务器端生成随机数b,根据客户端传送过来用户名,从数据库从找出对应的密码 p
服务器端拥有数据: S (p, b, a)
服务器端传送 b 给 客户端
S(a) ==> C
客户端拥有数据: C(p, a, b)
客户端使用算法F2(F1(p), F1(a), F1(b)) = Rc
传送Rc给服务器端
Rc ==> S
服务器端使用算法F2(F1(p), F1(a), F1(b)) = Rs
比较Rs 跟 Rc
使用F1目的, 即使交换的随机数(a,b)被截取,也不能直接使用
使用F2目的,增加复杂度,压缩传输字节
整个过程密码p 不在网络上传输
函数(算法): F1(SHA(AES(SHA)), F2(MD5)
服务器端: S
客户端 : C
前提: 服务器段数据库已经存在用户帐号username,密码 p
使用流程:
客户端用户输入用户名username, 密码 p, 生成一个随机数 a
C (p, a)
客户端传输username, a 给服务器端
C(username, a) ==> S
服务器端生成随机数b,根据客户端传送过来用户名,从数据库从找出对应的密码 p
服务器端拥有数据: S (p, b, a)
服务器端传送 b 给 客户端
S(a) ==> C
客户端拥有数据: C(p, a, b)
客户端使用算法F2(F1(p), F1(a), F1(b)) = Rc
传送Rc给服务器端
Rc ==> S
服务器端使用算法F2(F1(p), F1(a), F1(b)) = Rs
比较Rs 跟 Rc
使用F1目的, 即使交换的随机数(a,b)被截取,也不能直接使用
使用F2目的,增加复杂度,压缩传输字节
整个过程密码p 不在网络上传输