关于Web前端密码加密是否有意义的总结!
来源:互联网 发布:大麻种子 淘宝 编辑:程序博客网 时间:2024/06/05 23:54
参考来源: Web前端密码加密是否有意义? http下是否有加密登陆密码的必要
起因:是一个90后团队搞的一个流氓公司,做 Mac 下的盗版应用商场,被骂了一通,同时调侃 http 协议明文传输用户名密码,太低级。后来有个人站出来,提出“前端对数据进行加密没有意义”这个观点。后来就是的骂战了。。。
无意义说:密码在前端加密完全没有意义,对密码系统的安全性不会有任何提高,反而会引发不必要的麻烦。
(1)加密了也无法解决重放的问题,你发给服务器端的虽然是加密后的数据,但是黑客拦截之后,把加密之后的数据重发一遍,依然是验证通过的。直接监听到你所谓的密文,然后用脚本发起一个http请求就可以登录上去了。
http在网络上是明文传输的,代理和网关都能够看到所有的数据,在同一局域网内也可以被嗅探到,你可以开个wireshark抓下局域网的包试试看。加密也没有提高什么攻击难度,因为攻击者就没必要去解密原始密码,能登录上去就表示目标已经实现了,所以,难度没有提高。
(2)既然是加密,那么加密用的密钥和算法肯定是保存在前端的,攻击者通过查看源码就能得到算法和密钥。除非你是通过做浏览器插件,将算法和密钥封装在插件中,然后加密的时候明文混淆上时间戳,这样即使黑客拦截到了请求数据,进行重放过程时,也会很快失效。
有必要说:
(1)明文传输的是第三方的密码:Apple ID 与密码。因为这个是用户在另一个网站的数据,如果加密之后,虽然攻击者可以通过重放攻击重新进行登录,但是加密情况下无法获取到原始的 Apple ID 的账号和密码。不加密的话如果HTTP请求被拦截的话就可以知道用户的原始密码了,这是一件要不得的事情。于你网站本身来说,这个问题应该不大,因为如果被拦截了,不管怎样拦截者只要查看源码,模拟请求之后都能登陆上。但是因为很多用户目前来说基本上来说不会一个网站一个密码,而是对应着多个账户的。所以如果知道了用户的原始密码,结合社会工程学,能干的事情就挺多了。
(2)加密更安全,不是为了完全阻挡攻击,而是为了提高攻击的成本,降低被攻下的概率。
QQ 网页上的登陆模块(全程HTTP/GET请求):
function getEncryption(password, uin, vcode, isMd5) { var str1 = hexchar2bin(isMd5 ? password : md5(password)); var str2 = md5(str1 + uin); var str3 = md5(str2 + vcode.toUpperCase()); return str3 }
password:密码
uin:用户名
vcode:验证码
白话就是: md5(md5(md5(密码) + 用户的QQ号) + 验证码)
验证码是一次性的, 所以,在你在网络层拿到本次的请求之后,无法做 重放攻击, 因为验证码是不正确的.加入验证码的作用:防止软件恶意注册,防止暴力破解密码,防止网络爬虫,Google利用验证码,让用户帮他实现图片的识别。
而当你获取新的验证码, 但你并不知道 组合之前的内容[md5(md5(密码) + 用户的QQ号)] 是什么 , 所以你无法重新发送本次请求实现登陆的目的.
安全点的方法:通过https协议提交登录数据,这样黑客抓包时得到的数据是加密的,而且无法反解。
- 关于Web前端密码加密是否有意义的总结!
- 关于Web前端密码加密是否有意义的总结!
- 关于tornado-web开发密码加密的使用
- 关于学习Web前端半个月的总结
- 前端遇到的知识点有意义的一些
- 关于不再使用的Java对象手工指null是否有意义
- 关于不再使用的Java对象手工指null是否有意义
- 关于读书:读XX书是否为时过早,是否有意义
- Web前端慢加密
- 关于nodejs中密码加密的处理
- 前端加密总结
- 关于前端的练习总结
- 关于前端分页的总结
- 密码加密方式总结
- WEB前端:关于项目管理的思考
- 关于web前端开发的资源
- Web前端新手、关于padding的使用!
- 关于WEB前端开发的工具
- 超级封装BaseAdapter,让你省下千万行代码
- Windows API实现窗口居中
- 自己成长路上
- 排序算法之插入排序
- 浅析CVE-2012-4220
- 关于Web前端密码加密是否有意义的总结!
- listview 中的不同 item 实现
- nyoj-139 我排第几个
- require include require_ones的区别
- UVA 116 Unidirectional TSP 求最小路线 DP
- Adobe 官方公布的 RTMP 规范
- 第26讲—项目4—本月有多少天
- 在Ubuntu 14.04 64bit上安装字体管理器font-manager
- win8.1 rJAVA和Rwordseg安装