最近,京东公司的发展可谓不太平,公司频发各类新闻事件,近日又有传言“京东泄露5千万用户数据”一事,京东方面对此进行了紧急辟谣,确认这些数据并非京东数据。 固然,泄露的数据并非是京东的,但数据泄漏的事情实实在在发生了。 自'CSDN密码外泄门'事件发生后,国内就不断发生数据泄露的事件,涉及的网站也越来越大,我们用户的数据安全频频受到威胁。 奶酪就此打算谈谈如何做好密码管理。 一 你的密码是如何被盗的? 一般来说,要破解密码,最笨的方法是使用“暴力破解”,通过穷举一定长度的字符组合来破解密码。 为了提高成功率,黑客们还会使用“字典破解”,也就是将已破解了的密码编辑成一本“密码字典”,使用这份密码字典进行暴力破解,几率就会大大提高。 可尽管如此,成功率还是不高,于是黑客就会在下面三个阶段进行做文章,盗取你的密码。 一是用户输入密码时,比如监听键盘记录的盗号木马。二是密码传送到服务器时,比如仿造的钓鱼网站,比如公共WIFI抓包。 第三是破解网站的密码数据库,比如“CSDN密码外泄门”就是密码数据库的泄露。 (钓鱼网站 ↑) 对于第一种情况,我们只需要使用安全软件就能避免,当年的盗号木马猖獗现象也已经不复存在。第二种情况也只要提高防范意识,注意甄别网站的真实链接,不使用公共WIFI也能避免。 如果说前面两种情况,用户还是有主动权的,第三种情况则完全被动,你把账号密码交给了网站,如果网站保管不当就会被黑客攻击,你的密码就会泄漏出去。 业界通常把黑客窃取网站密码数据库的行为称为“拖库”。 (窃取网站密码数据库 ↑) 密码数据库一旦被攻陷,如果该网站的密码数据库未经加密,那你的密码就等同于裸露在黑客面前,之前爆出的“CSDN密码外泄门”就是明文储存密码的。 可即使网站做了加密处理,也同样有被破解的风险。 通常来说,大多数网站的密码数据库都会使用 MD5加密,MD5加密是将用户密码散列成32位字符的方法进行加密,比如「123456」会被加散列为E10ADC3949BA59ABBE56E057F20F883E 这个过程是单向不可逆的,理论上无法通过密文倒推出明文来。但 MD5 只是一种哈希算法,严格来说算不上是一种加密算法。 破解 MD5 难不倒黑客,一些经常被人们所使用的密码,比如 123456,黑客就会对这些密码进行穷举破解,并把得到密文做成一个索引表,由此来反推原始密码来,这个索引表也被称之为“彩虹表”。 业界通常把破解密码数据库的行为称为“洗库”。 在很多 MD5 解密查询的网站上(比如 www.cmd5.com),如果你的密码很简单,加密后的 MD5 密文都能反查出明文密码来。 (MD5解密 ↑) 你可能会问了,这是不是意味着所有网站的密码数据库都不安全了呢? 并不是的,有社会责任担当的网站都会使用 MD5+Salt (俗称加盐)的方法来进行双重加密,其过程为:MD5( MD5 ( 你的密码 ) + Salt )。 原理是将你的密码算出一个MD5值,然后再加上一个 Salt 随机数,再得出一个新的MD5值,这样处理可以增加额外的安全性。 一些网站还会使用 SHA-256、SHA-512、bcrypt 等安全性更高的加密方式,但对于大部分中小网站来说,MD5+Salt 已经足够安全,除非你犯了下面两个错误。 二 你的密码被盗的原因是什么? 你的密码之所以被盗,简单来说是:密码太简单 + 多个网站使用同样的密码。 密码太简单的安全隐患是显而易见的,黑客非常容易就能破解你的密码,从而“洗库”成功。 国外有一家叫 SplashData 的网站,每年都会从已遭泄漏的密码数据中取样分析出一个“最差密码”的排行榜。 不出意外,「123456」和「password」继续蝉联了榜单的第一二名,其他的密码也主要是单词和数字序列,属于易记但烂大街的密码。 (2018最差密码排行榜 ↑) 密码被盗的另外一个重要原因,是在多个网站上使用同样的密码。 这就好比一把钥匙可以开很多扇门。如果某个网站的密码数据库泄漏了,又或者黑客先找一些容易攻破的网站下手,在破解了这些网站的密码数据库后,黑客会拿着你在这些网站上的账号密码去其他的网站上测试登录。 业界把这个行为被称为“撞库”。 (多个网站使用同样的密码 ↑) 黑客还会将破解的密码数据库出售或者互换,久而久之形成的“社工库”会非常庞大,撞库成功的几率会非常高,你的密码被盗也就不奇怪了。 (黑客活动环节 ↑) 三 如何让你的密码安全? 想要保障密码的安全,不被黑客攻击,我们需要使用复杂密码来防止洗库,对密码分级,在不同网站使用不同的密码可以防止撞库。 1,使用复杂密码。 密码的强度与密码长度、字符范围、随机性相关。 密码自然是越长强度越高,8位是基本要求。字符范围是指是否包涵大小写字母、数字和特殊字符,每增加一种字符,密码的强度就会成几何倍数增加。随机性指的是密码不要有明显的特征,比如 123456,password,iloveyou 等。 在网站 HowSecureIsMyPassword 中测试 123456asd 、123456asdF、123456asdF! 的破解难度分别为 42秒、8个月、400年。 (42秒破解密码 123456asd ↑) 2,密码分级,在不同网站使用不同的密码。 对密码进行分级,在不同网站使用不同的密码最大的好处是,即使 A 网站发生了密码泄漏,我们在 B 网站上的密码也不受影响。 根据密码的使用场景,我们将把密码分为三个级别:财产级密码、重要级密码、一般性密码。 财产级密码: 与财产相关的密码。通常只能用数字做为密码,比如银行卡密码、支付密码、手机PIN码、保险箱密码等。 重要级密码: 与重要隐私相关的密码。比如邮箱、门户网站、社交网站、购物网站、密码管理工具主密码、加密文件密码等。 一般性密码: 财产级和重要级密码之外的密码都可以归为这类。包括小众网站、小众论坛,临时账号、共享账号、宽带WIFI等。 (密码分级 ↑) 四 如何让你的密码安全又好记? 为了保障密码的安全,人们通常会使用更长更复杂的密码,在经历多次忘记密码的痛苦后,人们又会转向于使用简单的密码,又会在多个网站上使用同样的密码,密码的安全性和易记性往往很难兼得。 所以,密码管理首先是策略的选择问题。 财产级密码,通常只有 6-8 位数字密码,简单不容易遗忘,我们完全可以用大脑去记 ,即使忘记了也可以用身份证找回。 只要别使用生日/电话做为密码就行,而且这类密码都有很强的防范机制,输入错误几次后就会锁定,还有短信提醒之类的。 一般性密码,通常都不怎么重要,即使丢失被盗也没啥大不了的,这类密码的网站通常防范措施较弱,如果你把重要密码用在这此网站上的话,黑客是能轻易破解的。 这也解释了为什么“最差密码排行榜”第13名里是'welcome',就像是在和黑客们隔空喊话一样,因为这类密码没什么重要的。 对于这类一般性密码,我们完全可以使用一个通用的密码,比如 123456asdF。 (密码管理 ↑) 我们真正需要管理的密码是重要级密码。 重要级密码通常是那些可以信任的大公司,这类网站都会有较强的密码保护机制,比如验证码登录,异地IP登录提醒,手机短信验证等。 我们要做的就是确保在这些网站上使用的是复杂密码,而且每个网站都不一样。 为了能容易地记住密码,我们可以设计一套密码规则:「基础密码 + 变化规则」 1、选定一个基础密码。 选择一句对自己有意义又能容易记住的话,它可以是一句古诗,一段歌词,一句名人名言,又或者是你生编硬造的话,只要你能记住就行,然后取这句话的拼音或者英文单词首字母做为基本密码。 比如“Nothing Gonna Change My Love For You”缩短为'ngcmlfy',又比如“人帅也要多读书”缩短为“rsyydds”。 我们以“高效方法论2019”转换为基础密码“gxffl2019”来举例。 密码的复杂度对于安全很重要,密码是否包含有大小写字母、数字、特殊符号的差别是巨大的。特殊符号因为没有意义,加入到密码中来会提高记忆难度。 一个好的应对方法是对原有密码里的字母进行变形,使用相似的特殊字符来替代部分字母。 比如把 a 变成 @,c 变成 (,h 变成 #,s 变成 $,l 变成 !,x 变成 * 等,原来是 password 的密码就变形为了 P@$$w0rd 基础密码转换过程: 高效方法论2019 --> gxffl2019 --> g*ff!2019 3、基础密码加入网站标识。 取网站域名的第1、2位字母和第3、4位字母,分别加入到基础密码的开头和结尾。 比如 baidu.com 就是 bag*ff!2019id,google.com 就是 gog*ff!2019og。 接着使用驼峰式大小写,也就是把密码的第 2 位字母和倒数第 2 位字母变成大写字母,也就是 bAg*ff!2019Id 和 gOg*ff!2019Og。 到目前为止,我们就得到了一份看似乱码,但极为安全且容易记的密码清单了。 基础密码转换过程: 高效方法论2019 --> gxffl2019 --> g*ff!2019 --> bag*ff!2019id --> bAg*ff!2019Id (基础密码转换过程 ↑) 五 密码管理工具可以取代人工管理吗? 近几年开始流行使用工具来做密码管理的方法。思路是将所有密码交由工具管理,我们只需要记住一个主密码,而生成密码、记忆密码和填写密码都由工具来自动完成。 比如知名的 Lastpass、KeePass 和 1PassWord。 就安全性而言,这些密码管理工具鼓励使用随机密码,也有多个网站使用同样密码的测试提醒,配合 AES-256 的加密算法,完全没有破解的可能。 LastPass 是一款将密码保存在云端的密码管理工具,KeePass 则是将密码保存在本地,开源免费,但上手难度较高,1PassWord 可以说是前两者的结合体,综合了两者的优点,但价格较贵,使用大约需要20元一个月。 总的来说,免费且易用的密码管理工具,LastPass 是目前更好的选择。 (LastPass ↑) 那把密码放在 LastPass 的服务器上安全吗? 答案是安全的。LastPass 的加密方法是把账号和主密码通过算法得到一个值,然后再用个值去加密用户的各个密码,然后储存在服务器上。 不用担心,黑客即使攻破了 LastPass 的服务器(有过被攻破的记录),因为无法破解你的数据库,黑客除了把你的密码数据库删除外,其他什么都做不了,况且 LastPass 加密解密的过程都是在本地进行。 那密码管理工具能完全取代人工管理密码吗? 答案是不能的。首先,密码管理工具都是要收费的,它们目前还不是一种基础性的工具。 1PassWord 需要大约 20元一个月,KeePass 虽然开源免费,但上手难度高。LastPass 虽然是免费的,但要在多个设备上同步就需要付费了,LastPass 的这种免费策略可以理解为一种变相的收费策略。 另外一个问题是,在一些安全性要求高的网站,密码工具的自动填写功能会失效,也无法直接复制粘贴,这时你需要手动输入一长串随机的复杂字符,想必你一定会抓狂吧。 所以,使用基础密码变形为主,密码管理工具为辅的密码管理方法更为明智。 |
|