您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
Web前端密码加密是否有意义?
密码,后端,明文Web前端密码加密是否有意义?
发布时间:2016-12-08加入收藏来源:互联网点击:
回答于 2019-09-11 08:43:50
简单md5还是有必要的,至少被泄露了,别人啊知道原文,毕竟现在很容易被泄露
回答于 2019-09-11 08:43:50
https的意义不大,因为传输链路中很难窃听,。。。http的敏感信息如密码之类的,建议单向算法加密一下
回答于 2019-09-11 08:43:50
有意义,可以防小白,我们学校教务系统登陆的请求密码就是加密的,我想写个自动查成绩的(因为懒,不带要天天上去查,又想成绩出来第一时间知道),但是看不懂他的js,找不到加密方法,所以只能用selenium模拟登陆了
回答于 2019-09-11 08:43:50
这个话题现在是很有争议的。是否有意义肯定是从网站安全的角度,而安全又是个很广的概念,每个人心中都有一个哈姆雷特,我们后面再一一分析。先抛出我的观点:Web前端密码加密是有意义的。
反方观点一直从加解密的角度分析这个问题,认为加密密钥和算法都保存在前端,攻击者通过查看js源码就能得到算法和密钥,加密多此一举,还浪费性能。只要网站是https的,就能防止传输链路上的第三方监听导致的密码泄露,不需要额外在前端再来一层加密。另外还有人认为前端加密后还是防不住中间人重放攻击,攻击者还是能在不解密的情况下登录劫持到的用户账号。不知道我对反方观点总结的是否全面,欢迎大家持不同意见在评论进行补充。
我来阐述我的观点,安全问题要考虑的问题很多,除了自己其他都是假想敌,都不可信。整个系统的短板往往是攻击者最喜欢攻击的目标,这个就是安全最著名的理论——木桶原理。
用户登录密码从前端用户输入到后端入库会有哪些风险?
首先用户键盘敲的肯定是明文,这个登录框如果是钓鱼假冒网站,或者是网站本身存在xss漏洞被攻击者前端劫持了登录框,从我们这里讨论的加密技术上,怎么防都防不住的,攻击者肯定都能获得明文。我们就不讨论这个风险了,既然前端加密,我们默认前端可信。
然后接下来就是传输可信的问题了,从前端到后端,整个通道,可能要绕大半个中国。上面说了都可以依赖于https传输,解决的问题是第三方通过拦截数据包分析出明文密码的问题。这个没有什么好争辩的,https就是干这个事情的,前端不加密传输在https里面的数据第三方肯定拿不到的,否则整个密码学体系就崩溃了。
那我们是不是就不需要前端加密了呢?非也,因为在安全的角度,两端也是不可信的。不加密解决不了两端对明文密码的泄露。
我们先考虑用户不可信的问题。如果用户就是攻击者呢?这个现象存在于很多web测试代理抓包场景中,https网站想代理抓包,就需要设置浏览器代理并且信任代理软件ca证书,浏览器类似于把抓包软件作为后端,真正的后端把抓包软件作为前端,抓包软件作为用户主动设置的中间人能够成功在自己电脑上破掉https加密。这样做的好处是什么呢,只能看到自己输入的明文密码?那就图样图森破了,获取了整个登录请求的http包,如果有用户密码对字典,就可以很简单地对后端进行批量爆破了,安全界叫“撞库”,这几年这么多数据库被脱库,我们应该重视这个问题。
前端加密并不能完全解决撞库问题,但是能提高攻击成本。任何能提高攻击成本的方案都是有意义的,阻挡了小白黑客,那些高级黑客还是能利用前端的加密算法,对自己的字典密码进行处理。所以还要加入一次性验证码放入加密算法中进行防重放攻击,我看过一篇文章讲的是QQ密码的前端加密流程,非常复杂,要知道每天都有成千上万的黑客盯着QQ,也有各种奇葩的我们不知道的利用技术,多加一层保障总是好的。
我们再考虑的是后端的不可信问题。后端开发总认为自己比前端开发重要,有一句流传在坊间的话,“后端不信任任何来自前端的输入”,从安全角度,我认为前端也不应该信任任何敏感信息的输出。很多时候出事,恰恰就出在后端。我记得github就翻车过一次,在请求日志里面发现了明文密码。你不知道运维或者后台会不会记录包含post请求体的access log,如果不加密,log里面就是明文密码。公司后台可能有各种监控系统,到时候密码就满天飞了。黑客突破任何一台服务器,自己系统的密码就有泄露的风险。
还有后端的密码入库问题,这个正反方都没有异意,肯定不能明文存储,我就不多说了,主要是防止sql注入,直接被黑客撸到数据库里面来了,目前站库分离,黑客不知道后端代码用的什么加密方式就没辙了。顺便提一下,后面回答有些说md5是加密,明显是概念混淆,加密是可逆的,md5这些哈希散列算法是不可逆的。
综上所述,开发千万不要过度依赖https,认为上了https就天下太平了。任何安全措施在不过分影响用户体验和开发成本的情况下都是好的,有意义的。
我是一个正在学安全的开发,如有纰漏,欢迎指正!
回答于 2019-09-11 08:43:50
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |