用户登录  |  傲看软件园 用户注册
文章中心广告代码ASP源码PHP源码JSP源码.NET源码源码相关傲看留言板繁體中文
当前位置:傲看软件园文章中心电脑安全安防技术

网络安全教程-密码与Crack工具研究(1)

减小字体 增大字体 作者:无从考证,yuyu3007  来源:中国站长学院,不详  发布时间:2008-10-20 19:31:21
    由于Unix是Internet最流行的服务器操作系统,因此它的安全性倍受关注。这种安全主要靠口令实现。Unix的口令仅仅存储在一个加密后的文本文件中,文件一般储存在/etc目录下,名称为passwd。历史上,Unix口令加密算法曾经历过几次修正,现在普遍采用DES算法。用DES算法对口令文件进行25次加密。而对每次DES加密产生的结果,都要用2的56次方次查找与匹配才能进行一次遍历,所以理论上要破解这样的口令,其工作量是很大的。

  本文先介绍Unix 口令文件的格式以及口令加密的原理;接着讲述如何构造一个口令Crack程序;最后以John the Ripper做口令攻击的测试,分析实验结果,并给出口令安全的建议。

1.1 Unix 口令文件的格式及安全机制
  /etc/passwd文件是Unix安全的关键文件之一,在不同的Unix系统中,它的存储路径略有不同,参见表5.1。该文件用于用户登录时校验用户的口令,仅对root权限可写。

表1.1 不同Unix系统中口令文件的存储路径

Unix系统
路径

UNICOS /etc/udb
Ultrix4 /etc/auth
SystemV Release 4.2 /etc/security
SystemV Release 4.0 /etc/shadow
SunOS 5.0 /etc/shadow
SCOUnix /tcb/auth/files/
OSF/1 /etc/passwd
Linux1.1 /etc/shadow
HP-UX /.secure/etc/passwd
BSD4.3 /etc/master.passwd
AIX3 /etc/security/passwd
IRIX5 /etc/shadow


  口令文件中每行代表一个用户条目,格式为:
LOGNAME : PASSWORD : UID : GID : USERINFO : HOME : SHELL

  每行的头两项是登录名和加密后的口令,后面的两个数是UID和GID,接着的一项是系统管理员想写入的有关该用户的任何信息,最后两项是两个路径名:一个是分配给用户的Home目录,第二个是用户登录后将执行的shell(若为空格则缺省为/bin/sh)。例如,在口令文件中,它的Root用户的条目为:
root : xyDfccTrt180x,M.y8 : 0 : 0 : admin : / : /bin/sh
则,它的含义如表1.2所示。

表1.2 /etc/passwd文件中各个域的含义

含义

Root用户名
XyDfccTrt180x,M.y8 加密的口令
0 用户ID(UID)
0 用户的组ID(GID)
Admin 用户的全名
/ 用户的主目录
/bin/sh 用户的Shell


  在目前的多数Unix系统中,口令文件都做了Shadow变换,即把/etc/passwd文件中的口令域分离出来,单独存在/etc/shadow文件中,并加强对shadow的保护,以增强口令安全。因而,在破解时,需要做UnShadow变换,将/etc/passwd与/etc/shadow文件合二为一。

1.1.1 口令加密的机理
  Unix系统使用一个单向函数crypt(),来加密用户的口令。单向函数crypt()从数学原理上保证了从加密的密文得到加密前的明文是不可能的或是非常困难的。当用户登录时,系统并不是去解密已加密的口令,而是将输入的口令明文字符串传给加密函数,将加密函数的输出与/etc/passwd文件中该用户条目的PASSWORD域进行比较,若匹配成功,则允许用户登录系统。

  Crypt()的加密算法基于资料加密标准DES,它将用户输入的口令作为密钥,加密一个64bit的0/1串,加密的结果又使用用户的口令再次加密;重复该过程,一共进行25次。最后的输出为一个11byte的字符串,存放在/etc/passwd的PASSWORD域。

  Morris和Thompson修改了crypt()函数的实现。现在Unix系统中使用的加密函数原型如下:
Char *crypt(char *salt, char *passwd)

  Salt是一个12位长的数字,取值范围为0到4095。它略改变了DES的输出,4096个不同的salt值使同一个口令产生不同的输出。当改变口令时,系统选择当天的一个时间,得到一个salt数值。该salt被存放在加密口令的最前面。因此,passwd文件存放的密文口令是13位。一些Unix系统,例如:HP-UX,Ultrix和BSD4.4,使用了16位或更长的salt值,这种算法称为bigcrypt()或crypt16()。

Tags:

作者:无从考证,yuyu3007

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

精品栏目导航

关于本站 | 网站帮助 | 广告合作 | 下载声明 | 友情连接 | 网站地图
冀ICP备08004437号 | 客服Q:354766721 | 交流群83228313
傲看软件园 - 绿色软件,破解软件下载站! 源码网 源码之家 绿软之家
Copyright © 2003-2010 OkHan.Net. All Rights Reserved .
页面执行时间:10,453.13000 毫秒
Powered by:OkHan CMS Version 4.0.0 SP2