对称算法加密密码

最近有朋友在使劲研究如何不使用 HTTPS 的情况下保护用户密码安全。暂且不说研究过程,但结论是要保障安全必须后端参与,使用非对称加密算法 —— 如此一来,不如直接用 HTTPS 更简单便捷有保障。使用免费 SSL 证书,一年一换,运维稍微麻烦一点,访问稍微慢一点(证书认证过程好像会慢一些),但至少是专业的,比自己研究的没经过大量检验的算法靠谱多了。

假设已经做过必要的安全防范,目前唯一需要解决的问题是保障用户密码在 HTTP 的明文传输过程中不被窃取。为达此目的,研究过程如下:

对称算法加密密码

如果说,密码在明文传输过程中存在风险,最直接的解决办法是让密码不再是原来的样子。使用一个 KEY 来加密密码,再将加密后的结果传输到后台,由后台解密使用。

对称算法加密密码

看起来确实起作用,如果窃取到加密后的密码数据,没有 KEY 是不能解密出来的。然而KEY 要用于前端加密,就一定会存在于前端的某个地方,而前端的所有资源都是用户可以获取并分析的,甚至可以使用浏览器的开发者工具通过各种调试手段来分析获取。所以 KEY 本身并不能安全保存,安全性被打破。

此外,如果 secure_data 在传输过程被窃取,是可以重复使用的(因为 KEY 不变,加密结果就不会变),这也是一个不安全因素。


结论

猜你喜欢

转载自blog.51cto.com/jamesfancy/2499455