在用户登录服务器时,是不会直接传递用户名和明文密码的,都要经过一些简单的处理:
最基本的不进行保护的authentication过程:
1)originate A 发送它的用户名和密码到 recipient B;
2)B直接发送用户名和密码到directory中,检索是否存在该记录;
3)Directory 发送valid或者invalid到B;
4)将authentication 的success或failure传送给A;
网站被脱库,怎么存储用户的登录密码:
1)登录过程中传递登录密码的消息认证码(HMAC函数),服务器端只进行校验;
2)加入随机的salt的哈希算法,来存储用户的密码;
简单的authentication过程:
1)origination A 发送protected identifying info给B,
Protected1 = f1(T1, Q1, PassWd)
AuthTag = t1, q1, A, Protected1
引入了timestampT1,随机数Q1;hash function F1
2)recipient B直接拿到directory中的PassWd,经过同样的运算之后,比较AuthTag值;
也可以对Protected1得到的值,在进行一次hash function操作,增加安全性。
认证过程在复杂一些,就必须要牵扯到证书,非对称加密的认证,签名
时间: 2024-10-10 20:19:41