考虑到和口令相关的内容较多,俺分两部分来说:今天首先揭露攻击者的种种伎俩;下一帖再详述应对的措施。
★使用密码的场合(密码的类型)
为了便于后面的叙述,俺有必要先总结一下,使用口令的几种场合。
针对这几种不同的场合,攻击者会采取不同的攻击手法;因此,大伙儿也要采取针对性的防范手法。
◇操作系统用户的口令
这种场合应该好理解。目前主流的操作系统都具有口令验证的用户登录机制。
◇各种网络应用的口令
随着网络(尤其是 Web)的普及,这种场合越来越多。比如:电子邮件(Email)、即时通讯(IM)、论坛(BBS)、上网炒股、等,都需要有用户口令认证。
◇各种本地应用程序的口令
此种场合可能不如网络应用的口令那么常见。比如:用口令加密的压缩文件、用口令加密的 Office 文档、PGP 密钥的口令、Outlook 设置的启动口令......
◇其它
除了上述3种类型,其它那些比较少见、杂七杂八的,统统归为其它。比如:BIOS 的开机口令。
★攻击者如何通过技术手段搞定的你的密码?
前面列举了密码的不同使用场合。接着咱要介绍一下:攻击者会利用哪些技术手段,攻破你的密码。
◇木马盗取
如果你的电脑已经被攻击者安装了木马,那你的一举一动有可能都会被监视。在这种情况下,你在这台电脑上输入的任何密码,都将会被攻击者获取。所以,这种情况是很危险滴——不管是哪种类型的密码,都可能被盗。
至于如何防止自己的计算机被植入木马,【不是】本帖的重点。俺会在本系列后续的帖子中专门介绍木马的防范。
◇弱密码猜解
所谓的“弱密码猜解”,就是说:如果你的密码比较弱,攻击者就容易猜出来。这种攻击手法,对于操作系统用户口令、网络应用口令、本地应用口令,统统适用。
而且攻击者在盗取口令的时候,通常会先尝试进行弱口令猜测。为啥捏?因为大部分用户都不太具有安全意识,口令都会比较简单(比较弱)。并且,根据【二八原理】,绝大多数的傻瓜用户会使用极少数的弱口令。所以,攻击者先把最流行的那些个弱口令挨个试验一遍,没准就已经成功了。
为了让大伙明白弱口令的严重程度,来看看2009年底的“一个案例”。
话说国外一个小有名气的交友网站(RockYou)被黑客攻破。里面大约3260万用户数据被盗。更加杯具的是,RockYou 采用明文方式存储用户的口令。因此,这3260万用户的口令也统统暴露鸟。后来有好事者把被盗的用户口令拿来分析一番。结果发现,有相当多的用户在使用一些极其弱智的口令。
用的最多的 TOP 10 分别是:
1. 123456据说名列第一的口令(123456)有30万人使用,真是不看不知道,一看吓一跳啊!
2. 12345
3. 123456789
4. password
5. iloveyou
6. princess
7. rockyou
8. 1234567
9. 12345678
10. abc123
◇暴力破解
除了对弱密码进行猜解,攻击者还可以通过穷举的的方式,破解中等强度的密码。所谓的穷举法,就是把所有可能的字母/数字的组合都试验一遍,直到找到正确的密码。
现在 CPU 的计算能力日新月异,尤其是多核 CPU/GPU 普及之后,暴力破解的效果会越来越好。你的密码必须【很强】,才能彻底消除暴力的风险。
由于这种攻击手法,需要进行成千上万次的试错,所以比较适合针对本地应用的口令(比如破解加密的压缩文件),而不太适合对网络应用进行在线口令破解。
在下一个帖子,俺会介绍《如何构造安全的口令/密码》。
◇网络传输截获(嗅探)
在这种方式下,攻击者会通过【嗅探】的方式,分析你的上网数据。如果你在上网过程中,存在明文传输的口令,就会被截获。
非安全专业的网友,可能不太明白什么是“嗅探”,俺来稍微解释一下。攻击者会利用某些嗅探软件,收集网络上传输的所有数据。这个过程好比电话窃听。嗅探软件类似于窃听器;你的上网数据类似于电话的通话内容。
这几年,随着现在无线网络(WiFi)的普及,网络嗅探的风险大大增加,列位看官切不可掉以轻心哦。
◇客户端截获
所谓“客户端截获”,通常是针对网络应用的口令而言。举几个例子。
举例1:
很多网友上网时,为了免去输入口令的麻烦,会让浏览器帮忙记住口令。通常浏览器会把这些口令保存在某个文件中(可能以明文方式,也可能以密文方式)。如果某天你的电脑中了木马,那么木马程序有可能会盗走这个保存口令的文件。然后攻击者就可以通过分析该文件,破解出你保存过的所有网络应用的口令。
举例2:
如果你是软件公司的开发人员,多半你会使用某种源代码版本管理工具(比如 SVN、CVS、等)。为了免去每次操作时输入口令的麻烦。通常开发人员会让这些客户端软件记住用户名和口令。如果哪天你中了木马,或者笔记本电脑被盗,那么攻击者同样可以破解你保存下来的口令,进而用你的身份盗取源代码。
◇服务端截获
和“客户端截获”方式相对的,还有“服务端截获”。具体是啥意思捏?俺来解释一下。
凡是利用口令进行验证的软件系统,都需要存储和口令相关的信息。否则的话,软件系统就无法验证用户输入的口令。如果攻击者能够拿到这些口令的关联信息,那他/她就有可能分析出口令是啥。
(如果你不是搞 IT 专业滴,下面这段可能看不太明白。不过没关系,不影响你理解后续章节)
简而言之,通常有三种方式来存储口令的关联信息:1、存储口令的明文;2、存储口令经过加密后的密文;3、存储口令的散列值。
第一种方式是最土鳖的,稍微先进一些的系统,都不这么干了。后面两种方式,虽然看不到明文,但是攻击者还是有可能通过某种技术手段,反推出口令的明文。具体细节,本文就不再多说了。
那攻击者如何获得存储在软件系统的口令关联信息捏?其实前面提到的 RockYou 网站的杯具,就是一个很好的例子。俺再举另一个例子。
比如说:某个 Linux/Unix 服务器存在安全漏洞,攻击者利用此漏洞搞到了
/etc/shadow
文件。那么攻击者就可以采用上述提到的暴力破解的招数,攻破该服务器上所有强度较弱的口令。★攻击者如何通过【非技术】手段搞定的你的密码?
说完了技术手段,自然就得再说说【非】技术手段。所谓的非技术手法,也就是社会工程学手法(关于社会工程学的扫盲,请看“这里”)。用于盗取密码的社会工程学手法,大概有如下几种。
◇偷窥
偷窥是最简单的一种社会工程学攻击手法。虽然简单,但是有效。比如很多盗取银行卡的家伙,就是偷窥的手法,得到被害人的银行卡密码。
◇网络钓鱼(phishing)
另外一个骗取口令的方式,就是通过网络钓鱼。比如某些攻击者,会伪造一个银行的网站。其界面和真实的网站一模一样。然后通过某种方式(比如:虚假链接、欺诈邮件、DNS 欺骗 ...),引诱你到这个网站上。由于假网站和真网站的界面很像,你可能信以为真,然后在假网站中输入你的用户名和密码。
有些高明的钓鱼网站,会采用类似Web代理的技巧:把你的所有输入操作,转而提交给真网站;然后把真网站输出的界面,再转回给受害者看。这样的话,受害者就跟在真实网站进行插作,没啥区别,不易看出破绽。
更多关于网络钓鱼的介绍,可以参见维基百科的“这个页面”。
◇分析
如果攻击者对你比较了解,那么他有可能通过深入的分析,攻破你的口令防护。
有木有觉得很神奇?很匪夷所思?其实这种招数很常见,且不算太难。俺来举个例子。
相信很多网友都用过电子邮箱的找回口令功能。当你口令遗忘之后,可以通过回答事先预设的问题,来找回口令。很多不太专业的用户,预设的问题都很简单(比如:你的手机号是多少?比如:你的生日是哪天?)。对于这类过于简单的问题,攻击者可以很容易地找到答案,从而窃取到你的邮箱口令。
◇欺骗
最近几年,通过电话诈骗,骗取银行卡密码的案例越来越多。这种作案手法,就属于社会工程学中,“欺骗”的范畴。其实在IT领域,某些黑客也会利用这种手法来获取口令。具体的一些欺骗的伎俩,可以参见俺之前的“社会工程学系列”帖子。
★结尾
介绍到这里,列位看官对黑客盗取口令的手法,应该有一个初步的认识了。本系列的下一个帖子,具体介绍如何构造安全的口令/密码。
回到本系列的目录
版权声明
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者编程随想和本文原始网址:https://program-think.blogspot.com/2010/06/howto-prevent-hacker-attack-2.html