蛙蛙推荐:WEB安全入门

信息安全目标

常见攻击手段

HASH

随机数

对称加密

非对称加密

oauth

双因素认证,动态口令

用密钥加密用户密码

N 一个安全的大质数, 比如N=2q+1,q 是一个素数 g 一个以N为模的生成元,对任何X,有0 < X < N,存在一个值x,使得g^x % N == X。 k k = H(N,G) 在 SRP6 中 k = 3 s User’s Salt I 用户名 p 明文密码 H() 单向 hash 函数 ^ 求幂运算 u 随机数 a,b 保密的临时数字 A,B 公开的临时数字 x 私有密匙(从 p 和 s 计算得来) v 密码验证数字 N和g的值必须由双方讨论来达成一致。它们可以被提前设置好,或者主机把它们发送给客户端。 服务器存储如下信息 x = H(s, p) (s is chosen randomly) v = g^x (computes password verifier) 服务器的数据库保存 {I, s, v} 整个验证流程如下: User -> Host: I, A = g^a (标识自己是谁, a是随机数) Host -> User: s, B = kv + g^b (把salt发送给user, b是随机数) Both: u = H(A, B) User: x = H(s, p) (用户输入密码) User: S = (B - kg^x) ^ (a + ux) (计算会话密钥) User: K = H(S) Host: S = (Av^u) ^ b (计算会话密钥) Host: K = H(S) 这样双方都有一个会话密钥S, 后续的消息传输可以用S做加解密,从而保证安全。 为了完成认证过程,双方还得向对方证明自己拥有正确的S, S不能让第三方知道,所以不能直接传输给对方做比较,一个可能的办法是: User -> Host: M = H(H(N) xor H(g), H(I), s, A, B, K) Host -> User: H(A, M, K) 双方需要做如下保障 1. 如果客户端收到B == 0 (mod N) 或u == 0, 客户端停止认证。 2. 如果服务器发现 A == 0 (mod N)则停止认证。 3. 用户必须得证明自己拥有正确的K,否则服务器就会终止认证。 

原文链接:https://www.cnblogs.com/onlytiancai/p/3297525.html

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/18308

(0)
上一篇 2023年6月21日 07:48
下一篇 2023年6月21日 23:07

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml