技术的进步使密码越来越起不了防护作用
A:其实密码就是某种形式的授权,或者认证,人们用它来限制对给定资源的访问。密码应当是保密的,这样才能限制人们对重要信息的获取。但是由于当今社会技术的不断进步,密码的功能已经越来越弱了。现在情况已经演变成:如果你用密码作为唯一的授权方法,那么就等于没有使用任何保护措施。现在破译密码的时间已经成为缩短成几分钟,而不再是几周或者几个月。现在即使最普通的数字财产,人们也需要使用额外的保护措施了。
为什么密码存在风险
密码是用来识别身份并提供访问你计算机中资源的权限的。这是一种在系统中确定你的权限的必要的认证形式。数字认证通常可以分为如下3种:
你了解的一些东西:密码,密令或者PIN码。
你拥有的一些东西:安全随机验证码或者智能卡。
你的一些特征:生理的(比如指纹或者视网膜扫描)。
一旦只用这其中的一种认证方式,那么这些密码都是最弱的认证工具。为什么呢?我们得面对一个现实,很多人都懒于在他们的密码上花心思:
他们编造很简单的密码,比如用宠物的名字或者最喜欢的球队的名字作密码。他们还在很多系统中都用同样的密码。他们把密码写在便签纸上放在电脑旁边。一旦你的密码不再保密,你就不能用它唯一的识别你自己的方法了——这就是说它不能保护你那些有用的信息了。不幸的是,就算你很谨慎地保管你的密码,黑客们可以用很多方法来获得它。
截获你的信息
那些坏家伙们能够在你上网传输密码的时候,使用特殊硬件或者软件——用这些工具他们可以读取存网络传输——来窃取你的密码。
如果在网络中传输的密码未经过加密,那么黑客们就可以直接截获你的密码。目前,仍然还有很多技术、应用以及协议,它们直接用文本格式传输密码,根本没有任何保护措施。比如:
·网站(HTTP)
·电子邮件(POP)
·Telnet和Ftp
用纯文本发送验证,那么黑客们可以毫不费力地发起攻击。
加密:用暗语说话
给密码加密是保护密码的方法之一,加密后,黑客无法直接解读它。加密的方法有很多种,都有一定的安全保护功效。比如:
·Windows LAN Manager以及NT LAN Manager 哈希表(LM和NTLM):NTLM是微软的一种认证协议,它使用challenge-response序列要求客户端与服务器端发送3种信息。
·NTLM v2:NTLM的升级版,解决了NTLM实现起来会出现的弱点。
·Kerberos:一种网络认证协议,允许人们通过不安全的网络互相通信,从而用安全的方式互相证明身份。
以上每种方法都只对密码应用了单向加密算法,建立加密的哈希表。简单说来,算法就是一种非常复杂的数学算式,系统用它来给创建加密后的密码(密码哈希表)。一般人们认为,我们是无法用数学的方法对加密的哈希表进行逆运算来获得原始密码的,因此它被看作是一种单向的过程。黑客们仍然可以截获该加密的哈希表,但是他们无法使用加密形式的密码。
一般密码是储存在本地系统数据库中的。只有这样做,当用户希望访问系统的时候,系统才能够验证用户的权限。这些密码通常都是用前面讨论过的加密哈希表加密的。不幸的是,对那些想要访问你的信息系统的人来说,该数据库就相当于打开系统之门的金钥匙。
很多操作系统都将密码保存在一些众所周知的标准路径中。Unix操作系统将密码存储在\etc\passwd中,而Windows则将密码存储在本地安全帐户管理(SAM)数据库中。如果攻击者能够获得此类文件,那么为了获得(或者破解)密码,他们很容易就可以攻击这些信息的高速缓存。
用词库或者穷举方式攻击
密码攻击的形式多种多样,最简单的大概就是猜密码了吧。通常使用这种方法的话,攻击者会努力猜出密码,然后手动登陆进计算机系统。很多人为了方便记忆,使用很简单的密码——这就使其他人也很容易猜出这个密码。
人们还经常忘了修改默认系统或者帐户的密码。使用Google大概搜索就可以获得一大堆各种系统的默认密码。人工猜密码非常慢并且很枯燥,并且很多系统会在你尝试失败一定次数后锁定,这使情况变得更复杂。
那么自动猜密码如何?请看如下2个常用的自动猜密码的方法:
词库式攻击
穷举攻击
词库式攻击使用常用词语和名字的词库作为猜密码的参考。那么那些选容易记的简单密码的人,他们可能选择常用词语、名字、地方等等做密码。词库攻击就是利用这些常用词语来进行攻击的,这些词库下载下来就能用。
穷举攻击要相对复杂一些,它执行起来时间相对长一些。简单说起来,穷举攻击会尝试所有的字母组合,直到找到正确的密码。这些组合的综合被称为密钥空间。为了算出这种所有组合的数量,我们把可用字符的数量记为y,把密码长度记为x,那么所有可能的组合的数量就是y的x次方。例如,让我们来算算只用大写字母来创建8位的密码这种情况下,可能的组合的数量是多少。如下的例子就计算了26的8次方是多少:
大写字母
26
密码长度
8
keyspace (268)
208,827,064,576