什么是网络协议?网络协议指的是计算机网络中互相通信的对等实体之间交换信息时所必须遵守的规则的集合,是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通......
如何用安全的方式管理安全的密码
各大网站都开始以数百万,甚至上千万用户为批次,争先恐后泄漏明文方式保存的密码,你要不泄露个百八十万用户的密码,都不好意思说自己的网站受欢迎。
一时间,IT技术类网站、网上社区、电子商务网站、政府网站,甚至电信公司,都有或多或少的密码在外泄。更有趣的是,所有外泄的数据中密码都是明文保存的。这一点就很令人费解了,如果说只有一两家网站遇到这问题,还有可能是因为网站的程序员脑子进水,但如此大范围大规模的明文存储,似乎已经不仅仅是技术问题。这个话题没法说,当然也没证据,所以就不说了。本文主要想说说看其他问题:如何用安全的方式管理安全的密码。
密码外泄后的危害
还别说,这个问题真有必要拿出来说说。我看到很多人都在说,自己的帐户没啥重要数据,自己也只是个小人物,就算密码外泄也没啥大不了的,能找回密码最好,就算找不回来,很多地方直接重新注册就行,也不会有啥问题。
那好吧,这个可以说说看自己的亲身经历。我用某个MSN邮箱注册了天涯社区,而这个帐户正好在天涯的外泄范围内。这没啥,MSN邮箱本身的密码和天涯社区的不一样,并且我在天涯社区的活动也不太多,几年也不会上去一次。但问题就在于,我的Apple ID也是用这个MSN邮箱注册的,并且密码和天涯社区的密码一样。唉,历史遗留问题,虽然知道到处都用相同的密码并不好,但毕竟人都有惰性,一般情况下,只要没有啥被害妄想症,或者自己不是啥重要人物,恐怕很少会有人真正给自己的每个帐户使用不同的密码。
坏就坏在时间一长,自己也已经感觉习惯或者无所谓了,因此我的天涯社区和Apple ID都使用了相同的密码。然后前两天当我打算在App Store买个小程序的时候,就看到了下面这个页面:
看起来应该是有人使用我的这个MSN邮箱,并使用我在天涯注册时候使用的密码尝试登录Apple Store。幸亏Apple在这里有一步额外的安全措施,某个ID首次登录一台电脑或设备的时候,会要求输入该ID所捆绑信用卡的安全码,输入正确才能继续进行操作。如果没有这一个环节,对方恐怕已经可以直接用我的ID所捆绑的信用卡在App Store消费了。
因此这就是(哪怕不重要账户的)密码泄漏后的第一个危害:相同帐户,尤其是邮箱帐户,可能会被用作其他网站的用户名,因此一旦泄漏,可能会对其他网站的帐户造成威胁。
此外,最早在CSDN密码外泄后曾有人分析过中国网民(严格来说应该是中国搞IT技术的网民)的某些行为习惯。毕竟经过几个网站的泄漏,样本量恐怕已经上亿了,从中能分析出的信息可能还有很多。通过对这些数据进行进一步的挖掘,以后的字典编写、钓鱼攻击,哪怕垃圾广告,恐怕都会更加有迹可循。
因此无论你的帐户是否重要,只要还打算继续用,还是建议尽快修改一下密码。
如何创建足够安全的密码
其实这些都是一些很基本的信息,只不过平时很多人忽略了这个问题。一般来说,一个足够安全的密码需要符合下列要求:
- 有足够长的位数:这个主要取决于具体的应用或帐户重要程度,建议不要小于十位。但是也要注意,一些程序或网站可接受的密码位数有限,但一般十位都是可以接受的。
- 有足够多种类的组成字符:英文大小写字母、数字、特殊字符、ANSI字符等等等等,一个安全的密码至少要包含上述两种类型的字符。
- 不使用连贯字符,例如连续的升序或降序字符串(1234、4321、abcd、dcba),也不能使用键位连续的内容,例如键盘上的第一行字母qwerty(无论正序或逆序)。
- 不使用现成的英文单词,任何一个通过字典暴力破解密码的人,恐怕都会准备一个包含所有你能想象到的英文单词的字典。
- 不使用在现实世界中有一定含义的字符,例如生日、纪念日、电话号码等。
- 密码不仅要复杂,而且要好记,复杂到需要写在纸上的密码绝对不是安全的密码。
因此以往,我都是这样创建复杂密码的:首先选择一个自己比较喜欢的句子,例如“不以善小而不为”,首先将这句话转换为拼音全拼“buyishanxiaoerbuwei”,随后每个字的声母拼音用大写“BuYiShanXiaoErBuWei”,然后将其中的某些字母替换成形似的数字或符号,例如字母“i”换成数字“1”,字母“a”换成符号“@”。这样就有了一个足够长,足够复杂,但好记好输入的密码。
当然,为每个帐户这样生成一个复杂密码,就算你真的都能记住,使用的时候也会异常麻烦。因此CSDN密码外泄后的前几天,我是这样做的:将自己的所有帐户按照重要程度分为三个类别:不重要的,丢了也没关系;重要的,尽量不要丢;非常重要的,丢了会要命。然后分别设置三个安全的密码,用在这三个类型的帐户中。
然而后来密码外泄的网站越来越多,如果按照这样的分类,所有外泄过的网站已经完全涵盖了这三个类别,因此这种做法感觉也有些不靠谱。我随后的解决方法请参考下文。
不能忽略的密码找回问题
除了密码本身的安全问题外,还需要注意密码找回问题。这一点似乎很少有人注意。假设你真的为每个帐户都设置了安全的密码,但密码找回问题是“我的宠物叫啥名字”,然后你三天两头在微博上发“我家小狗旺旺的照片”、“我家小狗旺旺今天又…”之类的内容,那后果会是什么?
因此在设置密码找回问题的时候,建议还是选择使用自定义问题,而不要从预设的问题中选择。其实这一机制只适合上世纪那种“在网上,没人知道你是一条狗”的远古互联网时期;然而在社交网络大行其道的今天,你正在敲锣打鼓地告诉每个人你是一条狗,因此选择预设问题的做法已经非常不安全了。
其实就算使用自定义问题也不见得安全,为了确保能够在忘记密码后准确想出问题,很多人在选择密码找回问题的提问和答案的时候,还是会尽量从自己的日常生活中寻找素材。而一回头在社交网站上,巴不得把自己生活的点点滴滴都告诉全世界。因此如果有人打算对你进行针对性攻击,并且宁愿花很长时间分析你在网上留下的所有公开或非公开痕迹,你的密码依然处在危险之中(题外话:在社交网络上随意添加陌生人为好友,隐患出现了吧)。
相比密码,我觉得找回问题面临的风险更大。毕竟密码还可以加密保存,但各大网站针对密码找回问题是如何处理的?并且哪怕大家都愿意不同帐户使用不同的密码,但密码找回问题依然有可能就使用固定的一个。一旦这个问题和答案外泄,后果恐怕比某一个网站的密码外泄更严重。
给密码找个保险箱
最终我的密码管理策略是使用密码管理软件。这类软件的原理很简单,自己有一个数据库,其中保存了你的所有密码。随后你使用一个足够安全的密码对这个数据库加密,以后每次需要登录不同帐户的时候,只要打开这个数据库,然后找到要使用的帐号对应的密码,接着直接复制密码出来使用就行了。
这类软件挺多的,我用的是KeePass。这是一个免费的开源软件,有中文界面,支持Windows/Mac/Linux/Android/iOS/WP等各种平台(注意,只有Windows版是作者本人提供的,其他所有版本都是非官方版本)。使用这个软件建立密码数据库,然后用Dropbox之类的网络同步服务把数据库文件同步到自己的各种设备上,然后就可以在你的所有设备上使用了。
该软件自带密码生成器,可以根据预先指定的规则生成符合要求的密码。例如针对不同位数、需要包含的字符,以及是否过期等,都可以通过规则预先指定,随后只需要在生成密码的时候根据需要选择不同的规则,即可生成符合要求的密码。
创建好密码数据库后,根据你所使用的设备,安装不同平台对应版本的软件,然后通过网络同步服务把密码数据库同步到不同设备上,就可以在不同设备上使用同一套密码数据库。
除了官方的Windows版,我还使用了非官方的Android版KeePassDroid,以及非官方的iOS版MiniKeePass。这两个版本也都是免费的,但是要注意这个iOS版不支持iPad的高分屏,因此在iPad上无法全屏显示,不过这并不是个大问题。
该软件的Windows版功能非常多,例如浏览器集成,自动填写、自动记录和保存等。不过暂时我都还没有用,毕竟需要这样管理的密码不是太多,简单的复制粘贴完全可以满足需求。而且该软件有一点很贴心的设计,提供了受保护的剪贴板空间,在软件中直接把以星号形式显示的密码复制到剪贴板,粘贴一次后,剪贴板就会被自动清空,这一过程并不会把密码明文显示出来,因此就算系统中有屏幕截图软件也不怕。
此外,开源软件的另一个特性在这里非常突出:支持丰富多彩的插件。不过目前我还没用过任何一种插件,毕竟这软件的功能特殊,如果不是非常有必要,就是用原生的功能最好了。
有了如此简单易用的工具,还是免费的,为啥不试试看呢,快把你的密码管理流程彻底武装起来吧。
标签: 用安全的方式管理安全的密码
相关文章
- 详细阅读
-
区块链核心技术体系架构的网络层主要包括什么详细阅读
区块链核心技术体系架构的网络层主要包括:A、网络管理B、P2P网络C、HTD、发现节点E、心跳服务网络管理网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视......
2022-04-28 328 区块链核心技术
-
软件调试的目的是什么详细阅读
软件调试的目的是:改正错误。软件调试的概念软件调试是泛指重现软件缺陷问题,定位和查找问题根源,最终解决问题的过程。软件调试通常有如下两种不同的定义:定义1:软件调试是为了......
2022-04-28 359 软件调试
- 详细阅读
- 详细阅读