【口令安全系列之一】带你认识弱口令的前世今生
发布时间: 2016-01-04 15:24:40
世界上本没有弱口令,使用的人多了,也就成了弱口令。——题记
在现代社会,随着信息化和互联网化的不断发展,用户口令作为鉴别用户身份的重要手段已经渗透到生活的方方面面,无论是日常办公、社交娱乐还是网上购物甚至外出旅游,我们在享受各种应用带来的便利的同时,也往往需要和各种各样的账号口令打交道,因此口令安全在保障个人和组织的信息安全方面有着重大的意义,了解弱口令的产生能够有效帮助大家提高安全意识,提高口令的安全性和信息安全水平。
一、弱口令的起源
“天王盖地虎”,“宝塔镇河妖”这两句对话大家想必耳熟能详,这是早年江湖匪帮用来确认彼此身份的黑话,这种某个团体通过事先约定的对话方式来确定双方身份的方法最早应用于军队等特殊机构,后来作为验证身份的方法被广泛使用,可以说也就是现在信息系统中账号口令的前身。正是由于古代采用口述信息的方法来验证,所以这些预先约定好的信息通常被称为“口令”,即使现代社会已经很少使用口试来提供验证身份的信息,这些信息仍然沿用口令这个名称,我们通常说的“密码”其实在专业领域应该被称为“口令”。
既然口令是验证身份的一种信息,那么当有人希望冒充他人身份来获取进行行为或谋取利益的时候,通过使用对方的口令来验证就是一种很自然会想到的方式。在古代,通常通过间谍、窃听等方式来获得他人的口令,而在现代社会,由于信息系统的特点,口令猜测则成为了一种可行和有效的方式。
口令猜测攻击是利用信息系统可以进行自动化身份验证的特点,采用手工或自动化工具多次尝试目标用户可能使用的口令,直到身份验证成功为止的一种攻击方式。口令猜测攻击最初的理论依据是由于信息系统组成口令的字符集是有限,因此只要采用穷举法的方式理论上一定能够找出正确的口令,也就是常说的暴力破解攻击。但是随着口令长度的增加,如果仅仅依靠穷举法来进行口令猜测,完成口令猜测花费的时间也会大大增加,当口令猜测花费的时间长到一定的程度时,由于无法及时获取口令或者投入过大很可能会导致攻击行为失去了原本的意义。为了解决这个问题,人们对口令猜测的结果进行了研究,发现有许多口令是经常被使用的,在进行暴力破解时如果先尝试这些口令,则有很大的可能性在较短的时间内成功完成身份验证。于是,人们将这些口令总结出来,形成一系列优先尝试的口令集合,也被称为“口令字典”,而这些字典中的口令由于容易受到口令猜测攻击,最终被称为“弱口令”。
二、常见的弱口令
了解了弱口令的来源,那么我们不禁想要问,什么样的口令算是弱口令呢?其实这个问题在业界还没有非常统一和明确的定义,不同级别和大小的字典库收录的弱口令数量并不相同,针对不同背景、环境的使用人群定义出的弱口令也会有所不同。虽然弱口令并没有严格统一的定义,但从弱口令的起源来看,我们可以看出弱口令通常有两个特点之一:1)使用穷举法进行暴力的难度低2)容易被猜测。
从穷举法的特点来看,口令包含的位数越少,包含的字符类型越少,则破解的难度越低,如纯数字的口令破解的难度低于数字、字母混合口令,而暴力破解6位口令需要花费的时间远小于破解8位口令花费的时间。因此,通常口令长度过短或仅包含单一类别字符的口令被认为是弱口令。
以下为某测试机构测试的本地破解需要的时间,可以看出口令长度和复杂度对于暴力破解难度的影响程度非常明显,当口令长度过短或包含的字符类型过少时破解口令花费的时间非常少,即使使用穷举法也不难破解,所以都被认为是弱口令。虽然实际环境中远程破解的情况远多于本地破解,而远程破解花费的时间通常也会比本地破解高许多,但口令复杂度对于口令破解时间的影响是基本一致的。因此以下数据还是比较具有参考意义。
然而,仅仅通过口令的长度和复杂度来判断弱口令是不准确的,一个好的弱口令字典还会加入大量的常用口令,而这些口令由于使用范围较广,口令猜测的成功率往往较高。这些常用口令通常是一些常见的可猜测的字符串或者由这些字符串组成,常见组成弱口令的元素如下:
●连续或重复的数字,如123、123456、987654、111、222333等;
●连续或重复的字母,如aaa、abc、abcdef、zyx等;
●键盘上常见的连续按键,如:1qaz@wsx、qwert、asdfghjkl;、!@#、147258369(数字键盘)等;
●日期或年份,如800128(生日)、2012、19251120等;
●与用户相关的名称信息,如newdoone(公司名称)、shaoyuanming(姓名全拼)、sym(姓名缩写)、oa(产品名称)、admin(用户名)、手机号等;
●具有特殊含义的字符串,如520、1314、woaini;
●其他常用的字符串:root、abc123!、administrator、test等。
以上元素被许多人用来构成好记的口令,而攻击者也会使用上述素材相互组合来生成弱口令字典。如newdoone123(公司名称+连续数字)、abc!@#(连续字母+键盘按键)、asdf520(键盘按键+特殊含义字符)、shaoyuanming2012(用户名+年份)等,符合上述规律的都可以认为是弱口令。
三、设置强口令
使用弱口令的危害不言而喻,在了解了弱口令的起源和常见弱口令之后,大家是不是想知道怎样才能设置一个不易破解的口令呢?结合上一章节的内容,我们对设置强口令的要求来做一个总结,如果设置的口令满足以下要求,口令强度就能满足我们大多数日常和办公的要求了:
●口令长度不小于8位,至少包含数字、大小写字母、符号中的三类;
●口令不得包含三个以上连续的数字或字母,包括正序和倒序(如包含abc、123、987、zyx);
●不同字符总数不小于4,(如1122AA 算3 个字符,111111算一个字符);
●口令不得为帐号一部分或包含账号;
●口令不应包含root、admin、公司名称、产品名称、姓名、手机号等常见的弱口令元素;
●不得使用常见的键盘按键位置口令:1qaz2wsx,1qaz@WSX,!QAZ2wsx等。
在完成口令设置以后可以到以下网址测试一下口令被破解的时间:
https://howsecureismypassword.net/
输入设置的口令,可以看到破解口令需要的时间和建议:
看完了今天的资讯,也许有人会问,我也知道弱口令的危害,但是设置太强的口令我又记不住怎么办呢?敬请期待口令安全系列之二——设置一个强大又好记的口令。