【网络与系统安全实验】口令破解及防御
口令的历史与现状
20世纪80年代,当计算机开始在公司里广泛应用时,人们很快就意识到需要保护计算机中的信息。仅用userID标识自己,很容易被其他人得到,出于这个考虑,用户登录时不仅要提供userID来标识自己是谁,还要提供只有自己才知道的口令来向系统证明自己的身份。
口令的作用
口令的作用就是向系统提供唯一标识个体身份的机制,只给个体所需信息的访问权,从而达到保护敏感信息和个人隐私的作用。
口令的出现提高了登陆系统时的安全性,但依然存在问题
1、口令过于简单,容易被破解;
2、过于复杂,不同记录口令的方式会增加口令的不安全性。
3、多数系统和软件有默认口令和内建帐号,而且很少有人去改动它们。主要是因为用户不知道有默认口令和帐号的存在;出于防止故障的观点,希望在产生重大问题时商家能访问系统;多数管理员想通过创建容易记忆的账号和口令或与其他用户共享口令的方法保证不被锁在系统之外,而以上两种都会给系统带来重大安全漏洞。
在这里还需要提到的是:口令必须定期更换。最基本的规则是口令的更换周期应当比强行破解口令的时间要短。
口令攻击方式
口令攻击方式概述
口令破解是入侵一个系统比较常用的方法。
有两种方法可以实现,第一种是手工破解,第二种是自动破解。
手工破解
攻击者要猜测口令必须手动输入且必须知道用户的userID并能进入被攻系统的登陆状态。这种方法虽然比较简单,但是费时间。
手工口令破解的步骤
1、产生可能的口令列表
2、按口令的可能性从高到低排序
3、输入每个口令
4、如果系统允许访问则成功,如果没有成功,则重试。不能超过口令的限制次数。
自动破解
只要得到了加密口令的副本,就可以离线破解。这种破解的方法是需要花一番功夫的,因为要得到加密口令的副本就必须得到系统访问权。但是一旦得到口令文件,口令的破解就会非常的快,而且不易被察觉出来,因为这是在脱机的情况下完成的。速度快的原因是因为使用了程序搜索一串单词来检查是否匹配,这样的话就能同时破解多个口令。
自动破解的步骤
1、找到可用的userID
2、找到所用的加密算法
3、获取加密口令
4、创建可能的口令名单
5、对每个单词加密
6、对所有的userID观察是否匹配
7、重复以上过程,直到找出所有口令为止
词典攻击
词典攻击使用的是一个包含大多数词典单词的文件,利用这些单词来猜测口令。在大多数系统中,和尝试所有的组合相比,词典攻击能在很短的时间内完成。
用词典攻击检查系统的安全性的好处是能针对用户或者公司制定。如果有一个词很多人都用来作为口令,就可以把它添加到词典中。
在Internet上有许多已经编好的词典,包括外文词典和针对特定类型公司的词典。
经过仔细的研究了解周围的环境,成功破解口令的可能性就会大大的增加。所以从安全的角度来讲,要求用户不要从周围环境中派生口令是很重要的。
强行攻击
很多人认为,如果使用足够长的口令或者使用足够完善的加密模式,就能有一个攻不破的口令。事实上,是没有攻不破的口令的,攻破只是一个时间的问题,哪怕是花上100年才能破解一个高级加密方式,起码是可以破解的,而且破解的时间会随着计算机速度的提高而减少。可能10年前花100年才能破解的口令现在只要花一星期就可以了。如果有速度足够快的计算机能尝试字母、数字、特殊字符所有的组合,将最终能破解所有的口令。这种攻击方式叫做强行攻击(也叫做暴力破解)。
使用强行攻击,基本上是 CPU 的速度和破解口令的时间上的矛盾。
还有一种强行攻击叫做分布式暴力破解,也就是说如果攻击者希望在尽量短的时间内破解口令,他不必购买大批昂贵的计算机,而是把一个大的破解任务分解成许多小任务,然后利用互联网上的计算机资源来完成这些小任务,就可以进行口令破解了。
组合攻击
词典攻击虽然速度快,但是只能发现词典单词口令;强行攻击能发现所有口令,但是破解的时间长。而且在很多情况下,管理员会要求用户的口令是字母和数字的组合,而这个时候,许多的用户就仅仅会在他们的口令后面添加几个数字,例如,把口令从 ericgolf 改成 ericgolf2324,而实际上这样的口令是很弱的。
有一种攻击是在使用词典单词的基础上为单词串接几个字母和数字,这种攻击就叫做组合攻击。
组合攻击是使用词典中的单词,但是对单词进行了重组,它介于词典攻击和强行攻击之间。
其它的攻击方式
即使口令很安全、无法破解,还是有人会通过其他途径得到口令。下面介绍其它的口令攻击方法。
社会工程学
公司的一些信息是只有雇员和合同方才允许访问的,而其他人是不被允许的,在多数的公司里,如果得到信任,就