高手对决——如何设计一个黑客搞不定的密码发表时间:2022-05-09 22:06 密码在我们日常生活中需要经常接触。邮箱密码、银行卡密码、电子锁密码、各种APP和网站的登录密码。好多人调侃,六位数的密码保护着我三位数的存款。我们也经常在新闻上看到,好多人的密码太简单,比如用123456、888888,结果银行卡丢了钱被取走。或者密码太复杂,以至于自己都忘记了。我们也经常听到,黑客攻击了某某网站,用户密码泄露了,个人数据被盗取。那么,我们该如何设计一个好的密码,才能有效应对黑客的攻击呢? 首先我们得来了解一下黑客破解密码的手段。了解了进攻的手段,我们就明白如何防守了。那么黑客有哪些手段呢? 一 暴力破解 暴力破解是黑客破译密码最简单、最无脑的方法。所谓暴力破解,就是用各种数字、字母、符号的排列组合挨个去尝试。比如你的密码是纯数字的982157,一共6位,每一位有0-9十种可能性,按照高中数学教过的排列组合原理,最多需要尝试10的6次方也就是1,000,000次就可以破解。有人说一百万次啊,就算一秒尝试一次,不吃不喝不睡一天连续工作24小时,那得花11.6天才能破解出来。黑客当然不会这么笨去手工破解,一百万分之一几率的暴力破解按照当下计算机的运算能力,破解出来需要多久呢?答案是1秒钟。 很可怕是不是?那怎么办呢?当然是增加密码的长度和复杂度。比如密码长度从6位增加到8位,那暴力破解难度会增加多少呢?100倍。如果八位密码的每一位不仅仅能使用10个数字,还能使用26个英文字母,那暴力破解难度又会增加多少呢?28,211倍。优秀的密码,首先一定要有足够的长度,要用数字、字母、符号、大小写等等方式确保密码的复杂度,增加黑客暴力破解的难度。下面我设计了这样一个密码,请大家看一下怎么样:ILoveU1234567890,大小写、英文数字混合,长度十六位,够复杂了吗?答案是不够。为什么呢?请往下看黑客的第二招。 二 密码字典 密码居然也有字典?其实就是黑客收集的常用密码组合表。比如八位生日组合,从19500101到20220505(今天)都在字典里。最基础的密码字典表也至少存储了两千多万个常用密码。黑客在暴力破解之前,会先用密码字典扫一遍做尝试。密码不够优秀的话,这一轮基本就暴露了。美国密码管理公司NordPass每年都会公布当年度最常用(糟糕)密码。以2021年报告为例,当年全球最常用密码榜单第一位依旧是123456,全球1.03 亿人在使用。排名第二的是123456789。其他还有password(英文密码的意思)、qwerty(键盘第一排前六个字母)、111111、123123等等。当然,这些常用密码都会被黑客列入到密码字典,再加上各类排列组合,比如qwerty1234,比如上面说到的ILoveU1234567890。顺便说一句,iloveu这个密码已经连续多年跌出常用密码排行榜前十了,这说明人们越来越不相信爱情了。 所以,好的密码除了要有一定长度和复杂度外,还要避免落入庸俗密码的窠臼,不要用太常用的简单密码做组合,比如生日加名字之类,否则你的密码用字典就破解了,都轮不到暴力破解机器开机,那也太可悲了。 那密码怎么跳出庸俗的窠臼,既足够复杂又不落俗套?最简单的方式就是用唐诗。比如有这样一个密码,曾经被程序员们评为年度最佳密码:ppnn13%dkstFeb.1st。有点晕是不是,这怎么记呢?其实就是杜牧的《赠别》诗中一句“娉娉袅袅十三余,豆蔻梢头二月初”做了变形,余用了“%”,二月初用了英文“Feb.1st”(二月一号),既好玩又有趣,确实称得上最佳密码担当。那么问题又来了,这么优秀的密码,为什么也会被破解出来呢? 三 撞库攻击 什么叫撞库?简单说,当黑客知道了你在某一个网站的账号密码后,拿它去其他网站尝试登录,这种手段就叫做撞库攻击。比如说你在某个安全性不高的热带鱼发烧友论坛注册过,黑客通过技术手段攻击了论坛,掌握全体会员的用户名和密码,再拿来尝试登录其他网站。恰巧你在两个网站用的用户名密码一样,这样你的密码就被破解了。 听起来很无辜是不是?明明我的密码设计得很好了,结果被其他网站给泄露了。上面说的那个最佳密码就是这么给泄露出来的。2018年苹果ID被大范围地锁定勒索,也是因为这些用户遭遇到撞库攻击。黑客们除了会自己攻击网站获取密码,也会在私下交易别人获取的密码。2019年4月,京东5000万用户的信息就在黑市售卖。如果你在别的网站/应用上使用了和在京东同样的账户密码,并且一直没有改过,那么就意味着你的密码已经泄漏了。所以这也就告诫我们,一定要给密码分级。对于不同安全等级的网站或应用,要分开设密码。尤其是涉及资产的比如银行卡密码、网银密码、支付密码等,一定要单独设立密码,不和其他密码混用。对于日常生活工作比较重要的应用,比如微信、支付宝、工作邮箱等等,也要单独设立密码,防止被撞库攻击造成资产损失、重要数据泄露。 当然,魔高一尺、道高一丈。黑客们在琢磨攻击网站/应用的用户数据库,网站/应用的管理者们也在应用各种技术手段提升自己的安全性。最基础的就是给用户的密码加密。加密有各种数学算法,如MD5、RSA等等。随着技术的不断进步,现在MD5算法也不安全了,黑客也有了针对MD5算法逆向破解的密码表,这类工具被称为彩虹表。关于彩虹表,请关注“成为网络安全工程师之路”系列课程,我们会做详细的介绍。RSA算法目前是国际上应用最广的不对称密码算法,所应用的数学原理其实非常简单,就是中学数学中学到的质数因式分解,密钥长度为1024-2048位。如果要用暴力破解,按照现在计算机的算力,需要几百万年。中国的密码学研究也处于国际领先地位。北京大学著名密码学家王小云教授团队通过对HASH碰撞问题的研究几乎破解了SHA-1算法,在国际上取得了极高的学术地位,并主持设计了中国第三代国产密码算法SM3。 RSA算法的三位创始人 随着密码学研究的不断进步,信息系统服务商会用越来越长、越来越复杂、越来越难破解的密码来保护你的账户资产和数据安全。答应我,你自己在设密码时,不要再那么随意了好吗? |