关于密码泄露,相信很多人都会有各种深刻的教训。阿卡自己在进行各种应用时,也有过密码泄露的时候,比如很多年前玩RO就被盗了号……所以我们必须得想:密码作为一种最原始、最广泛使用的安全手段,到底应该如何设置?什么样的密码才是安全的?
这次我们就来简单普及一些为什么密码会泄露,什么样的密码才是最安全的。虽然不算新东西,但是的确是有用的东西,大家有兴趣或者曾经深受其害的话,不妨收藏一下!
密码是如何泄露的?
要知道自己密码是如何泄露的,就要知道自己的密码是放在什么地方的……一般而言,本地、传输和服务器端,就是你存放密码的三个地方,所以密码泄露被盗号,多半就是这三个地方出了问题!
本地泄露
本地泄露的可能通常是被盗的最大因素。因为本地泄露的方式实在太多了!常见的就是中毒或者木马。在你的设备中病毒后,有些病毒只会在后台监控着你键盘上,然后发送给黑客,你的密码就被盗了……这种在网游和金融端是非常常见的!
还有一种是伪造,伪造在 Android 平台上特别常见。比如有人开放了和支付宝一模一样的假平台,如果用户不知道点进去,将自己的密码输入,那对方就知道你的支付宝账号和密码了……我们近年来在新闻上行多次看到这种钓鱼行为,小白们上当的不在少数!
对于本地泄露,最好的办法就是不在公共或有潜在安全风险的设备上进行密码操作,最好别对手机越狱或者Root,同时别装未知源的APP。
传输过程泄露
即使你防护做得很好,本地的电脑和手机都很安全,如果密码还是泄漏的话,那么很可能是传输过程中泄露的,也就是你输入密码进行验证时,在这个过程出了一些问题。
比如很多网站在你登录的时候,是采用明文传输,看似加密的过程中,其实你的用户名和密码都已经显露了出来,这些加密普通人可能看不懂,但是对于黑客来说,这些加密都是可破解的,显示出原有的信息并不难。这种密码泄露常见在一些不安全的网络环境中。
此外,还有一些网站根本就采取不加密的措施,这下在传输过程中,用户所有信息都可能被黑客拦截。现在国外很多网站都强制使用了加密Https协议,而国内很多还是用Http协议,两者的区别就是是否使用了加密传输,安全性能也可见一斑了。
传输过程泄露密码很麻烦,也不好防备。推荐大家尽量不要在不安全的网络环境中上网,比如一些公共WiFi。如果遇到网站问题,尽量使用加密型网站,检查网站证书是否安全(系统会提示)。
服务器端泄露
本地泄露和传输过程泄露稍微好一些,但是服务器端泄露密码,作为用户的你就有点恼火了,因为这种对方出问题坑爹的事儿,很多时候作为客户端这边你的,是毫无办法的。
常见的有两种,一种是服务器端采用明文保存密码。比如你的密码是ABC,服务器端那边也明文用ABC保存,这样有人如果攻击服务器端,你的用户名和密码全部就赤裸裸地被黑客搞定了!唔,不要以为这些厂商都是聪明人,其实他们智商不低,就是懒而已,这种明文保存密码在服务器端的厂商不要太多……大家有兴趣去查查2011年轰动全球的CSDN泄露事件!
另外一种则是加密泄露。加密泄露其实也分好几种,比如说客户的密码是ABC,然后厂商就用了一套简单规则来定义,把A对应1,B对应2,C对应3,这样在服务器端,用户的密码显示为123,是不是看似没这么懒了?但是黑客可不是傻瓜啊,这么弱智的密码规则很容易破解!
好吧,厂商说这次我聪明了,也不懒了,我用哈希不可逆的加密。是的,这种加密不可能倒推,但是黑客也自己制定了一个彩虹暴力破解法,一个彩虹图表一共64GB的容量,具体原理不用多说,在现代机器计算能力如此强之际,黑客如果觉得有价值,完全可以靠暴力破解花时间搞定用户的密码……
嗯,遇到这种密码泄露的事儿怎么办呢?当然是原谅厂商了,顺便也原谅一下自己,谁让你自己这么倒霉遇到了这么懒的厂商和这么坚持的黑客呢……
怎么设置密码才安全?
使用密码位数、大小写和特殊符号
简单而言,密码越复杂,安全程度越高,当然如果中了病毒那也没辙,所以我们说安全的密码,至少要有一个安全的本地环境吧,没事多杀杀毒检查检查,平时开着防护机制还是很关键的。
建议大家的密码尽量保持在 14 位以上、存在大小写字母和数字、并混杂有特殊符号(理论上特殊符号当然是越不常见的越好)。简单密码虽然好记,但是真心不安全(虽然这样说,阿卡自己还是懒啊……),即使服务器端中遭到暴力破解,你密码越复杂,破解所消耗的精力和成本就越高,说不定黑客没耐心就放弃你了呢?
在密码中加入不同网站特征值
一般而言,我们的密码都是通用的,比如说A站和B站基本都是一个密码,这个很好理解,我们很难在每一个不同的平台上都更换一个新的账号和密码。但是这样显然很不安全,怎么办呢?
这时可以考虑一个非常简单的策略:使用一个通用的基础密码,针对不同的网站,在前后或中间插入对应该网站的一个特殊值。比如我们经常的密码是“阿卡”,那么在A站就用“帅哥阿卡”当密码,在B站就用“阿卡帅哥”当密码,这样安全性就提升了,同时还比较好记
当然特征值随便用户选了,最好选一个你自己容易记住,但是又不显得那么简单的特征值。
直接生成随机字符串
不知道到底设什么样的密码好?其实还有一个很简单的办法,像 Safari、Chrome 等浏览器就会在页面注册账号时智能地提供一个随机字符串作为密码选项。
好处就是,不需要考虑自己怎么去想密码,浏览器自动生成就可以了。不过缺点也很人恼火,如果你在不同的平台上登录,那是相当的麻烦,还要有一些备用的方案,要不让你登不上去也是很正常的。
采用验证机制
很多大型的互联网公司一般都提供了两步验证服务,如微软、Google、苹果、印象笔记等等。一旦开启了两步验证,只要是在非授信的设置上登录,除了常规的账号和密码外,网站还会要求你额外提供绑定手机的动态验证码,这样就确保了即使的密码泄露了,依然还有一道安全屏障阻碍黑客最终登录你的账号,保护你的数据财产安全。
此外谷歌还有专门的一套验证机制APP,非常复杂,非常麻烦,就算设定都很头疼,但是设定好了的确很有效,支持这套APP下的网站,除了登录要用户名和密码外,还必须输入APP随机生成的字符串,基本能做到自己的密码不会被泄露。阿卡自己在PT站MT上就试过,试了以后直接跪了……
定期更改密码
更改密码是所有手段中最轻松简单的,但是相对也是最重要的。因为密码泄露这个事儿,有的是可以预防的,但有的是你不可控的,比如说服务器端要真泄露了,黑客暴力破解了你的密码你也不知道……所以要有一个有忧患意识,没事改改密码总是好的。
比如阿卡没事就改改密码,平时存储几个密码,没事就改来改去,或许这种办法也不能保证自己的密码百分之百不泄露,但至少也给自己一点心理安慰不是?