美文网首页实用店铺智慧美文学习
你的账号总被泄露,专家教你正确设置密码。

你的账号总被泄露,专家教你正确设置密码。

作者: 刀背藏身 | 来源:发表于2016-11-28 16:55 被阅读4971次

    上次我们聊了「时光相册」这款 APP 对个人信息的威胁,而保护个人信息安全是必不可少的手段。

    那么今天我们就来谈一个严肃的话题:如何正确的设置密码。

    我们首先要明白的是,密码非常重要,它直接关系我们的个人隐私和财产安全。这可不是无病呻吟,因为密码泄露导致的悲剧每天都在我们身边上演着:

    • 你是否曾因好友QQ或微信被盗而收到各种垃圾信息和诈骗消息?
    • 你是否有亲朋好友因密码管理不善导致支付宝被盗刷?
    • 你是否听说过某iphone用户被骗子把手机锁定,不给骗子汇款就用不成手机的故事?

    这样的悲剧不胜枚举,原本想找一些“密码泄露”的新闻放在这里引起大家重视的,后来想想还是直接一点好,来给你看几张图,告诉你“社工库”有多强大,告诉你黑客手里有什么,重点已经用红色框出来了:


    你没看错,全国10亿身份证,1亿5千万163邮箱,5亿4千万QQ账号,850万百度账号……

    主流的互联网公司基本都在里面了,然而这还只是一个低级的社工库的部分信息截图,你还觉得安全离你很遥远么?猜猜你的信息和密码在不在里面?我猜有。

    所以,我们每个人都应当学会正确的设置密码,这是保障我们自身利益的最起码要求。当然,如果你愿意选择去过远离互联网的“田园生活”,那就当我啥都没说…

    不就是设置个密码么,有什么难的?这个看似不难的问题,其实还是挺讲究的。接下来我们会针对这个问题展开探讨,为了照顾那些不愿读“长文”的小伙伴,我们会首先给出正确设置密码的方法和建议,而后列出设置密码的常见错误认识,最后对“为什么这么做才安全”给出详细的解释。你可以根据自己的喜好,自行选择需要的部分来阅读,事关安全,你看着办~

    1. 一个好密码该有的样子


    首先要说明的是,安全的密码不等于好密码,请看下面的例子:

    • 密码1:U#LNPg!ZB]8MbHNLtD3d6zVf
    • 密码2:123321

    密码1很安全,但是估计没人会去用,因为很难记得住,密码2虽然好记,但却毫无安全性可言,所以说:真正的好密码,是既安全还好记的密码。


    单从安全性的角度讲,请参照下面的标准设置密码:

    • 秘钥长度不低于12位(至于为什么,后面我们会给出答案)。
    • 同时包含大写字母、小写字母、数字以及特殊符号
    • 尽量避免使用姓名拼音、缩写、生日、证件号码、手机号码等与个人信息相关的内容作为密码的一部分。
    • 对于不同的账号,尽可能依照1-3的建议设置不同的密码。
    • 如果你做不到4中的要求,觉得这样太麻烦,也至少要设置几个不同等级的密码,分别用于不同安全需求的账号。例如:涉及理财及金钱交易APP的用密码A,社交APP账号用密码B,相对次要的账号用密码C,更次要的用密码D,总之,在你能够接受的范围内,尽可能多分几级,越是重要的账号,越要避免密码重用。
    • 对于你在注册账号时所填写的用于找回密码的邮箱账号,务必使用高强度的独立密码
    • 每半年到一年将密码更换一次,更换时,避免使用在过去一年内曾经使用过的密码。

    相信我,如果能够做到以上这7点,你的密码将会很安全,至于为什么,我们会在第三部分给出详细的说明(我已尽可能隐去专业术语,相信聪明的你一定看得懂)。

    现在,安全密码的标准有了,可是为了安全要顾及这么多要求,记不住怎么办呀?下面就是要发挥你脑洞的时候了。

    其实复杂的密码未必就不好记,开动脑筋发挥你的聪明才智,就一定有办法,下面我抛砖引玉:

    机智的文艺青年版:


    示例1:FLZX3000cY4yhl9day
    这是什么鬼,哪里好记了,答案揭晓:飞流直下三千尺,疑似银河落九天。现在好记了吧?

    示例2:ppnn13%dkst-Feb.1st
    又没看懂吗,其实还是老套路:娉娉袅袅十三余,豆蔻梢头二月初。

    怎么样,对你有没有启发?如果你是程序员或者有一个程序员男朋友,你还可以采取下面的思路:

    心机的IT青年:


    示例3:han-shan4.location()!∈[gusucity]
    上面这行的意思就是“姑苏城外寒山寺”,我相信看个5分钟,你绝对不会忘。

    示例4:MZsay#hold?Fish:Palm
    至于这一行,是在说:“孟子曰:鱼和熊掌不可兼得”。(不是程序员,看不懂也没关系)

    作为反面教材,我们看两个不好的例子:

    • 示例5:ZMM19900908
    • 示例6:LoveMSS1314

    上面的两个例子,第一个把姓名缩写和生日进行了组合,第二个估计是想表白心仪的恋人,虽然看着都挺长,但是我必须很遗憾的告诉你,这样的密码在黑客眼里和123456没啥太大的差别,尤其第二个,你绝对想象不到我大中国使用类似密码的人会有多少。

    综上,好的密码就是在遵守安全原则的基础上,尽可能的大开脑洞,越匪夷所思越好。当然,还有一种更省事的解决方案,不过你需要额外付出人民币,我们会在文末提到它。

    2 常见的认知误区


    误区一:密码越长越安全

    为了说明这个问题,我们得先来谈谈,为什么人们会有密码越长越安全的错觉。假设你叫做Alice,现在有一个坏蛋Eve想要窃取你的密码,狡猾的Eve知道你不太懂如何设置正确的密码,打听到你的密码只是由数字组成,并且长度为6位,那么,理论上讲,最坏情况下Eve也只需要尝试:10×10×10×10×10×10=1000000次,就可以破解你的密码。如果把密码长度变成7位,Eve就需要尝试1000万次,如果是8位,就变成1亿次,所以,密码越长越安全嘛。

    上面的情境中,Eve需要遍历6位数字可能构成的全排列,这样的攻击方式称为“暴力破解”。然而,这个听起来很有道理的解释,其实是有问题的,因为绝大部分用户在选择数字作为密码时不会采用完全无意义的数字,而是与自己相关的数字,譬如生日、纪念日等等,在这种情况下,Eve可以预先从网络上收集与你相关的信息,并从这些信息中提取出所有可能的数字片段,做成一个字典,有针对性的进行尝试,如果你恰好用8位“年-月-日”格式的数字串做了密码,那你的密码是会被“秒破”的。事实上,如果只考虑还活在这个世界上的人,所有人的8位生日加起来也只有3万7千种不同的情况,根本无需暴力破解1亿次。

    这种把用户密码中可能出现的“片段”作为基本单元进行破解的攻击,称为“字典攻击”。

    所以,密码安全与否不能简单的用长度来衡量,而要看你密码的复杂程度。如果别人掌握了你的基本信息,在“字典攻击”面前,“19920908”这样所谓8位长度的生日密码,对计算机而言其实和“1234”是没有太大差别的。

    误区二:不愿意使用特殊符号

    明白了误区一的问题所在,误区二就非常好理解了,假设我们的密码足够杂乱,攻击者无法利用“字典”有效的破解,在这种情况下,如果你只用数字,那么N位密码的暴力破解难度是10N,如果你还使用大小写字母,那么N位密码的暴力破解难度是62N,由于是指数增长,所以字母+数字的破解难度就会比纯数字的难度大很多,如果再将键盘上常用的32个符号加入进来,自然破解难度就更大了。

    此外,使用符号还有一个最大的好处,那就是绝大部分密码中,为了方便记忆人们总会选取有意义的数字组合(纪念日等)和字母组合(单词,缩写等),这样就使得数字与数字,字母与字母之间存在关联性,从而使制作字典变得可能。但符号与之不同,符号之间是基本无关联的,在你的密码中插入几个符号,可以极大的增加你密码的强度,何乐而不为呢?

    误区三:好密码就要用一辈子

    上边的那张密码泄露的图,已经很说明问题了,你曾经长期使用的密码,一定确定以及肯定已经泄露了。

    定期更换密码安全性更高的道理其实所有人都懂,无非是一个懒字作祟,因为怕麻烦,所以懒得折腾,我想这是大多数人的心灵写照。可是,在安全问题面前,越是“怕麻烦”,越有可能造成更大的麻烦。

    建议:如果你就是怕麻烦,至少对于密保邮箱和支付宝之类的敏感应用的密码,应当做到每半年到一年更换一次。

    3. 为什么要这么做


    (注意:以下内容适合打破砂锅问到底的朋友们,涉及技术细节,不感兴趣可以跳过)

    接下来,我们对第一部分提到的7条安全性建议进行分析,阐明其背后的缘由,7条建议中的第2条和第3条已经在上一部分进行了解释,这里就不再啰嗦了,我们来重点看看其他几条建议。

    (1)为什么偏偏是12位?

    这个问题的答案是:为了防止通过“彩虹表”反查。(以下内容虽然有趣,但轻度烧脑)

    我们都知道,注册任何一个账号时,我们都会相应的指定一个密码,这个密码被用于登录验证,因此也被称为登录秘钥。

    打个比方,对于我们在某个网站注册账号,你要想登录,就必须输入密码来进行验证,这就好比你购买了一套高档住宅,要想进入房间,就必须要有房间的钥匙。在这里,“房间的钥匙”和“账号的密码”从本质上讲作用是相同的,都是进入的通行证,用来证明你的合法性,房间的钥匙是通过与锁的匹配来完成身份验证,我们的密码也是类似的道理,当你输入密码后,随着你点击登录按钮的那一刻,“密码”便被发送到了网站的服务器端,由于你之前已经注册过,网站的服务器把你发来的“密码”和数据库中的“密码”拿来比较一下,如果相同则放行,如果不同则拒绝。


    但是,这个过程存在一个巨大的问题,那就是,如果服务器端也存了你的密码,那不相当于小区物业也保存了一把你家的钥匙?万一小区物业保管不善把你家的钥匙丢了,那还得了?况且,在登录时,你需要把密码发给服务器,这个过程中如果你的密码被中途截获,不也相当于丢了钥匙吗?所以,这个方案是有问题的。

    好在数学上有这么一种神奇的函数,叫做“单向陷门函数”,它有一个神奇的特点,那就是:根据输入计算输出非常简单,而给定输出想反推输入却非常困难,并且,对于不同的输入,它会给出不同的输出。利用这样的函数,我们就可以完美的解决上述问题。

    首先,你输入登录密码(用M表示),在点击登录按钮后,浏览器并不会将你的密码M直接发送出去,而是把你的密码M输入这个“单向陷门函数”,得到一个输出值H,并将H发送给服务器,同样地,服务器端在注册时也不会保存你的密码M,而是保存M经过“单向陷门函数”计算得到的H,服务器把你发来的H和它保存的H比较一下,如果一致则登录成功,否则失败。

    在这个过程中,无论是掌管着服务器的公司还是网络中的其他攻击者,他们所能获取到的信息只有H,而根据“单向陷门函数”的性质,由H想倒推出M是几乎不可能的,所以谁都无法通过计算反推出你的密码。补充一句:这样的单向陷门函数又被称为Hash函数,与之相关算法称为Hash算法,密码学中著名的Hash算法有MD4、MD5、SHA1、SHA2、SHA3等等。

    有了数学作保障,一切看起来似乎都没什么问题了,然而不幸的是,依然有问题。正所谓道高一尺魔高一丈,我们前面提到过,Hash函数的特点是:给定输入M计算输出H很容易,但想从H反计算M则几乎不可能。
    由于Hash算法是公开的,全世界都在用,于是“黑客”们想出了这样的办法:对于一定长度的所有可能的密码,都利用Hash函数计算其输出,这样就制作了一张非常大的表格,称之为“彩虹表”,每次拿到一个值H,就在“彩虹表”中查找对应的M,从而获得你的密码。

    没错,就是这么简答粗暴的办法,计算一定长度的所有密码组合,这个工作人不可能完成,哪怕只考虑10位长度的纯数字密码,也有100亿种可能,但是计算机不怕这个,黑客们用计算力超强的服务器集群不断的算啊算,已经算了好多年了,虽然这个笨办法随着密码位数的增加其计算成本会越来越高,但就目前来看,对于MD5算法,12位长度以下的“彩虹表”已经完成了,至于其他算法的彩虹表,虽然查不到公开的数据,但迟早也会有这么一天的。
    所以,我们建议你在设置密码时,要保证长度在12位以上。

    (原谅我忍不住再多嘴一句,事实上,如果服务器端采取”Hash+盐”的方式进行存储,就可以有效的抵御彩虹表攻击,但是很多小公司都没有这么做,所以还是那个原则,能靠自己就靠自己,别总想着依靠别人)

    (2)为什么不鼓励密码重用?

    建议3-6其实本质上都在说一件事,那就是尽量不要在不同的账号上使用相同的密码,为什么呢?道理很简单,因为如果你不同的账号都使用同样的密码,那一旦泄露一个,就等于全泄露了。

    当下的中国互联网圈,许多企业就像顽皮任性的孩子,在为自己的“任性”付出代价之前,是不会认为“太任性”其实容易栽跟头的。

    虽然大家都明白安全的重要性,但从盈利的角度看,解决安全问题并不会为企业带来直接的经济效益,相反还要为此投入大量人力物力财力,因此,很多小公司在做大之前都不会给予安全问题太高的重视,他们会优先把资源投向研发、投向产品、投向宣传、投向销售,唯独不会优先投向安全。加之普遍存在的侥幸心理,安全问题的解决总是不可避免的带有滞后性。

    明白了这一点,你就明白“一个密码走天下”是多么的危险了,因为只要一家公司不靠谱,你便置身危险之中了。
    2011年12月,号称全球最大中文IT社区的CSDN的数据库遭到黑客攻击,于是,6428632用户的密码被公之于众,可笑的是,CSDN居然没有对用户密码做任何Hash处理,直接明文保存所有的密码(没错,这就好比一个很不厚道的物业公司在业主不知情的情况下复制了所有业主家的钥匙,还给一次性弄丢了),于是,那些“一个密码走天下”的人,其QQ、人人、邮箱、飞信等一系列账户也紧跟着被盗了个精光。

    当然这次事件也给业界敲响了警钟,我们很欣喜的看到许多企业在最近几年开始高度重视安全问题,然而安全问题毕竟积弊太久,非一朝一夕所能解决,所以,为了你自身的安全,请尽可能避免密码重用。

    (3)一个安全的好密码为什么不可以一直用下去?

    这个问题的答案是:虽然你设置了一个安全的好密码,但是如果企业的防御能力不够强,被黑客黑掉了服务器,那你的密码还是会有相当大的风险,如果遇上像当年CSDN一样明文存储的,你就可以直接打出GG了。

    其实,攻击服务器的“好戏”每天都在大量上演,只是企业为了自身声誉和利益着想,往往都不会将这种“丑事”自己曝光,你有见过哪个企业主动宣传自己被攻击的新闻吗?恐怕很少有,而那些能让普罗大众看到的曝光事件,其曝光者也都是黑客圈里的人。此外,那些真正的大牛黑客,完全可以做到“不留痕迹”的盗取,然后拿着数据卖给“黑产”闷声发大财,你又怎会看得到呢?

    所以说,再好的密码,也还是要定期改的。

    到这里,关于7条建议背后的理由我们就大体上说清楚了,如果你耐心的看到了这里,那就向你推荐一款神器吧。

    有这么一款软件,名为1password,该软件相当完美的解决了密码管理的难题,不过这并不是一款免费软件,所以用与不用还是要取决于你自己,该软件有30天的免费试用,如果你信任我的话不妨下载一个感受下,目前Windows和Mac下均可用,Android和ios下也有相应的版本。

    1password在提供巨大方便的同时,将最重要的一把钥匙(私钥)交到了你的手里,所以你大可放心使用,关于1password背后的原理我们今天就不分析了,下面是其官方宣传视频,时间不长只有2分钟,不妨来看下这款软件都有哪些功能吧。

    (我对天发誓,我不是做广告,这货绝对是神器,谁用谁知道)

    视频戳这里:1password 官方宣传视频

    保护个人信息安全的任务任重道远,我只希望每个人能够真正重视起来,企业也能够重视起来,真正保证我们在互联网上能够安心的浏览,不再担心那一天自己被扒个底朝天。还有什么想法,欢迎关注 为尔Vier (Vier111),也可以加我好友,与我私聊 ,是时候,真正关心自己了_

    相关文章

      网友评论

      • atomic_volatile:有文化真可怕~
      • BruceHurrican:感觉微信的开发要看看此文了,微信支付的加密算法就是 MD5,支付密码只有6位,估计已经在彩虹表里了。PS,1password 我没用过,我用的是自己开发的密码管理 app,算法和密文都是动态生成,随用随取,即使手机被盗也不当心密码被盗。ʅ(´◔౪◔)ʃ
      • 4121eb3e8df5:我所有的账号密码都相差不大,很少被人盗号,可能这就是人品吧
      • 可怜的牛:我想问一下,既然发给服务器的密码会被截获,那么,当黑客截获用户端发给服务器的H后,直接向服务器发送H不就可以了。。。。
      • c3a92f9c9fde:看完先麻溜的改密码去,哈哈
        刀背藏身:@彩色的泡沫 正是呢,最好有计划的替换密码
      • 834f65bae4f0:也不怕公开 我之前的密码就是0.0.0.
      • 834f65bae4f0:吓得我赶紧去改密码了
      • lavender21:举例真6 :+1:
        刀背藏身:@lavender21 谢谢~谢谢~
      • yarving:Use `$ date | md5sum` to generate a random password, then record it by Google Chrome or 1Password.
        yarving:@刀背藏身 Depends on whether the password is whether important, I kept all my account (except relate to finance) password on Google Chrome password manager, and sync by Google.
        刀背藏身:@yarving nice idea, but not easy to remember~
      • 3034a4bc9c7d:受用
        刀背藏身:@soniaapple 谢谢~
      • FAIRY猫小狸:长知识,收藏。
        刀背藏身:@笑痴了江南 谢谢~
      • JakerMan:1password原理分析什么时候更新一下啊.. :yum:
        JakerMan:@刀背藏身 嗯,等待你的更新哦..
        刀背藏身:@XTiffany 感兴趣嘛~可以的呀,不过其实原理并不复杂,它的主密码保护体制比较完善,所以值得信赖。
      • 8853a0735c6c:1password卖的有点贵啊,小400大洋呢,只用在手机上有没啥用- -
        刀背藏身:@小日子hz 淘宝上有代理的,mac 100块,PC+mac 300多,不过也有一些其他替代方案。
      • 96cf93a2fc07:keepass+坚果云,完美
        刀背藏身:@Eric_0201 恩,我用的是1password~
      • Rijkaa:老坟了
      • 好奇_:刚想说服务器端一般会采用“+盐”的方式处理密码,作者就说到了,可见是同行的可能性比较大
        刀背藏身:@好奇_ 加盐只能说是部分有效,毕竟有很多开源框架,盐是默认的数值,有些开发者懒得改。而有些时候,可以查看源码,了解他的随机盐生成函数。不过➕盐的确安全很多。
      • 小肚子丫头头:最近正想这密码这事来着
        刀背藏身:@小肚子丫头头 真的是建议一个网站一个密码~
      • 大Z哥:麻溜的改密码去
        刀背藏身:@zerver 搞信息安全专业,就是希望大家能多重视自己的信息安全
      • a392842c66d4:不错,多了解了一些,谢谢
        刀背藏身:@a392842c66d4 感谢关注~
      • a159ebd4b5b5:不错,我们最近正在搞加密的东西!感谢推荐
        刀背藏身:@a159ebd4b5b5 wow,加油
      • 九号咖啡屋:安全是安全了,但是太多了,谁记得住
        刀背藏身:@_九叔 我建议是,自己想一个有趣的前缀,然后根据该网站的特性,添加一个后缀,比如说网站名倒过来写之类的方法。。。
        九号咖啡屋: @刀背藏身 至少也有十个网站,全部不同每隔几个月还要换,吐血了。
        刀背藏身:@_九叔 其实有很多策略,重点就是要多想想办法,毕竟安全之事比其他都要重要
      • 醉酒肆之:读完,修改密码有了两个好方法了。感谢。视频英文字幕都没带,在地铁看不行。
        刀背藏身:@醉酒肆之 哈哈哈,可以看看有关评测,推这个软件的人很多
      • 2ca8523e79f3::smile:
        刀背藏身:@瞎看什么 :heart_eyes::heart_eyes:
      • 我想要一颗西柚:太牛了!大神
        刀背藏身:@我想要一颗西柚 感谢关注呢,还有我的公众号 为尔Vier ~
      • 生姜不辣:很多网站并不给你设那么多位密码。
        刀背藏身:@生姜不辣 除了手机和银行,一般服务密码至少也有10位以上可以发挥了吧~
      • Edmund2010:写的很好,谢谢
        刀背藏身:@Edmund2010 谢谢关注~
      • 妙法莲花1234:专业,厉害😄
        刀背藏身:@追风917 谢谢~
      • 金金大宝贝:有用
        刀背藏身:@金金大宝贝 大家能更重视安全,我的愿望就满足啦:smile:
        金金大宝贝: @刀背藏身 今早看完你的文章,早上上班第一件事:登录经常出现登录异常的论坛帐号,改密码。
        刀背藏身:@金金大宝贝 感谢关注,看到大家重视个人信息安全,我也很欣慰啦~

      本文标题:你的账号总被泄露,专家教你正确设置密码。

      本文链接:https://www.haomeiwen.com/subject/jqmopttx.html