正文
许多读者认为,只要使用它https,加密了http所有字段,整个通信过程都是安全的。众所周知,现在https通信不是端到端的(End to End), *** 往往夹杂在中间,包括客户 *** 和服务器 *** 。
*** 的存在使原本更加严格和安全https,存在安全隐患。
客户端 ***
通常用户不知道 *** 的存在,比如企业监控员工https流量肯定会在员工的电脑上下手脚,这样企业的 *** 管理就能完全看到员工https明文流量,包括用户的明文密码。
服务器 ***
通常有服务器的数字证书私钥,可以与客户端建立https加密通信自然可以看到用户https明文流量,包括用户的明文密码。
在上述两种情况下,用户的明文密码有泄露的风险。
用户密码一旦在前端加密,即使有 *** ,也无法获得用户的明文密码。
前端加密用户密码
- 不加盐的MD5加密密码
虽然中间 *** 无法获得明文密码,但仍可以截获MD5实现密码登录仍然是一个安全隐患。
- 一次性加盐密码OTP
每次加密用户密码时,同时添加随机码Nonce,如果只使用一次随机码,则每次生成的密码是一次性的、动态的。
即使被中间 *** 截获,也不能第二次登录用户账户。
即使没有中间 *** 的存在,目前很多https依然使用RSA算法实现认证环节和密钥交换(Key Exchange)链接。一旦服务器的私钥泄露,历史上就被截获了https用户的明文密码将很容易破解加密流量。
这就是为何TLS 1.3会完全抛弃RSA算法是密钥分发算法的原因,因为它不满意PFS要求。
PFS要求
PFS,Perfect Forward Secrecy,破解任何安全因素都不能破解所有数据。如果满足此条件,则为满足此条件PFS要求,否则不满足。
综上所述,前端加密用户密码是为了更好地保护安全和隐私,即使在https也可以完全破解!
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。