计算机安全:基于口令的认证

在开始我们这一这篇文章的正题之前,请允许我聒噪几句计算机安全中,关于用户认证的一些基本概念。

数字用户认证(以下简称“认证”),就是系统对于用户电子式提交的身份建立信任的过程。系统根据用户的身份判断其有无某种权限。认证的主要方法有四种,一个成熟安全的系统一般把它们组合起来,形成多因素认证:1、个人所知信息。2、个人所持物品(认证卡、电子钥匙等)。3、个人生理特征(指纹、脸部等)。4、个人行为特征(步态、语音等)。

基于口令的身份认证可以把它划为第一种方法。口令,俗称密码。在许多操作系统、网络操作系统、应用系统中都非常常见。它一般与用户提供的ID一起使用。系统对于用户的ID以及它们对应的口令,会生成一个口令文件,这个文件中会存储有关这个ID的口令信息。当这个用户登陆系统时,系统会自动将该用户输入的口令与口令文件中的口令信息进行比对,匹配成功才会允许用户进入系统。这是系统口令的大致工作机制。而对于攻击者来说,对于用户口令展开的攻击一般有如下几个手段:

1、特定账户攻击:攻击者吧目标锁定为某一用户。不断猜测,直到发现正确的口令即可进入系统。(此招对于拥有登录次数死锁机制的系统一般无效)

2、常用口令攻击:攻击者用一个常用的口令对大量ID进行试探。(比如曾用作美国陆基核导弹发射密码的00000000,还有很多web服务器的默认登录密码admin123,无线局域网接入密钥88888888。都是经典的密码,大家有兴趣的现在就可以试试。)

3、单用户口令猜测:尽可能多的收集某一用户的信息,利用这些信息来猜测密码。(GitHub上有一个开源工具名叫CUPP,是一款社会工程学攻击软件,它可以利用你收集到的目标信息,为这个目标连身打造一个字典来猜测密码,有兴趣的朋友可以利用Linux系统安装测试一下,安装脚本在下面)

apt-get install cupp

4、工作站劫持:攻击者趁站点管理人员疏忽,或者利用系统安全漏洞来攻占系统的服务器,在这个占领窗口就有获得用户口令的可能。

5、口令重复使用:这是一个很现实的问题。生活中人们往往懒得或者说根本记不住太多的口令。所以人们往往会让一个密码让多个系统分享。所以对于一个目标来说,掌握了一个密码往往可以拿下他很多个系统账户,可能是QQ、淘宝、甚至银行卡密码。

6、电子监视:一般发生在用户通过网络远程登陆系统时,其行为受到监听。

既然密码面对的安全形势如此严峻复杂,那么传统意义上的密码保护肯定是远远不够的。我们需要关于密码保护更加完善、科学的方案。让我们来看看现在关于口令加密的常见思路:加盐。

加盐的过程就是利用算法生成随机的字符串,并将密码口令混入其中,这个过程就称之为“加盐”,而进行插入所生成的字符串就称之为盐值。

加盐的具体过程是由是由散列函数来完成的。散列函数,又称散列算法、哈希函数。它的作用是将一组数据压缩并提取摘要,再把数据打乱重新组合,创建一个名叫散列值的指纹。

在口令认证系统中,盐值往往会和口令一起,作为散列函数的输入值,再有其中的散列算法进行处理,计算出一个新的指纹。这个新的指纹会和盐值明文一起保存在口令文件中。

以UNIX系统为例,系统的口令文件中包含盐值和加密后的口令(指纹),用户只需输入口令,系统会自动将这个口令和盐值一起输入到散列函数进行计算,最后将计算结果和口令文件中的指纹进行比对,如果比对成功,则允许用户进入系统。

关于破解口令:

传统方法一:开发一个口令字典让其中每一个口令都上去和口令文件中的盐值进行散列计算,并将计算结果和口令文件中的加密口令进行比对。

传统方法二:对于传统方法一来说,先生成一个庞大的口令字典,然后将字典中的内容和盐值进行计算然后进入文件比对,这样太费时间。所以有一种提升时间效率的方法。在口令字典的基础上,再找出可能的盐值,每一条口令匹配一个盐值进行散列计算,这就得出了一个很庞大的加密口令字典,再将其与口令文件中的加密口令进行比对。(以更大的空间换取更短的时间)

现代方法:1、提升口令破解的处理性能。(利用图形处理器进行计算)2、破解口令的成熟、高级算法。

关于口令文件的访问控制:

这种技术主要是拒绝攻击者访问你的口令文件。如果计算机中的散列口令只能被特权用户访问,那么对于攻击者来说,用户的口令文件对他就没什么价值了。散列后的口令保存在一个与用户ID分离的单独的文件中。这就时影子口令文件。(这个文件通常需要重点保护)

如何选择自己的口令:

在没有任何限制的情况下,用户自己选择的口令不是太短就是太简单很容易破解。如果能运用到一些小技巧,不仅可以使口令难以破解,而且很容易被记住。这里谈谈这些小技巧。

1、用户应该具有关于口令的安全意识,系统在用户注册选择密码时一般会给予用户相应的提示,但现实是大多数用户会忽略它们。个人认为最好的办法是可以利用一些句子的拼音首字母。它们可以是一句诗,一句经典台词。比如tryqtylrjzdscs(天若有情天亦老,人间正道是沧桑——《七律·人民解放军占领南京》),dqnkdmldta(杜秋,你看,多么蓝的天啊——《追捕》)

2、使用计算机自动生成口令。很多人并不接受这种方法,因为计算机自动生成随机性太高,不好记忆。但是对于一些特殊情况,计算机自动生成还是一种不可忽视的,可靠的方法。FIPS 181给出了一款口令生成器,这款开源工具包含了运行机制、设计方法的描述以及c语言的源代码。(页面如下但是好像需要登录)
http://www.pudn.com/Download/item/id/282660.html
3、后验与先验口令检查:后验口令检查时,系统会先运行自己的口令破解程序来找到容易攻破的口令,这种方法有不足,首先会占用大量的cpu计算资源。而且一个虚弱的口令在系统发现它之前都是易破解状态,这就导致用户一旦设置它,就可能在后验程序找到它之前就被人攻击了。所以相比之下先验口令检查策略往往更令人接受。这种方法是先让用户自己设置口令,然后系统会自动检验口令的虚弱性,如果虚弱,则不允许用户设置该口令。在系统的提示下,用户可以从大量的口令字典中选择那些不太会被利用而且容易记住的口令。

好了,关于口令认证的那点事就和各位分享到这里。有其他不同想法的欢迎留言讨论,错误不足之处敬请多多指教,在下感激不尽。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值