久久首页
免费软件
网络时尚
网络学堂
专题讨论
网络资源
网络游戏
网络文档
网络产品
网站导航: 首页 > 操作系统 > Linux 学堂讨论 | 推荐文章

UNIX怎样存储口令


2004-05-25 金桥 
 

每个操作系统都维持了一些类型的口令数据库,用来检验用户的登录授权。UNIX将其口令数据库存储在/etc/passwd文件中。但该口令数据库并不直接存储口令,或加密口令,而是只存储了单向的用户口令的hash表。

从前面的介绍我们知道,单向的hash函数处理输入并将其转换为唯一的值。在UNIX中,操作系统将用户的文本口令转成字节序列,然后使用单向的hash算法将口令转化成单向的哈希值。

当用户试图注册进服务器时,UNIX工作站将用户的透明的文本注册请求发送给服务器,服务器将执行相同的转化过程,并将其生成的HASH值与口令数据库中的HASH值进行比较。也就是说,UNIX通过其单向HASH法传送口令。服务器然后将匹配用户输入的口令,如果匹配,用户将允许注册进系统。图1-12显示了透明文本在网络中的传输。

与WINDOWS NT和NETWARE不同的是,UNIX并不在传输的开始时将其加密,而是将口令传输(这很容易使UNIX受攻击)。更糟糕的是,与WINDOWS NT不同的是,UNIX没有利用较强的MD–4 HASH方法,而是仅简单地使用8位HASH,这将使口令很容易暴露。最后,由于口令文件是大家都可读的,而没有像WINDOWS NT 和NETWARE将其隐藏起来,相比之下,UNIX更容易受到BRUTE FORCE破译或字典式破译方法的攻击。

1.黑客怎样破译口令

为了破译UNIX网络中的口令,黑客必须访问网络本身,或至少有能力产生一个服务缺
陷(像SENDMAIL缺陷)来获得机会访问/etc/passwd文件。在黑客获得访问口令文件时,
黑客也需要UNIX的8位单向HASH方法。 黑客复制UNIX的口令数据库后,黑客将执行BRUTE FORCE破译或字典式破译方法。

由于/ect/passwd文件对于UNIX服务器中的用户都是可读的,黑客只要能进入系统就可以访问该文件,甚至不需要任何权限(只要黑客利用邮件发送产生的缺陷)。在后面章节中,将口令隐藏或使用改进的口令安全性程序几乎是UNIX系统的必需。

技术指导:隐藏口令文件

口令隐藏是可以利用第三方提供的DAEMON实现的安全性技术。在隐藏口令时,您可以用一个特殊的命令替换/etc/passwd文件中加密口令域或将口令存储于一般系统用户不可读的文件中。

在隐藏口令后,您等于在黑客与系统中间加入又一道防线。由于黑客无法直接得到口令文件,但他仍可进行在线攻击。因此有必要改变UNIX的注册过程,如图3。

2.使用 Brute Force 口令破译

在黑客攻击Unix时,黑客第一步是尝试低等级的口令。与WINDOWS NT 和NETWARE不同的是,Unix在一定量的注册失败时不会锁定用户帐号。由于UNIX如此宽宏大量,黑客可以在没有任何权限的情况下注册进系统。在黑客可以使用BRUTE FORE口令破译进入系统的情况下,一些自由软件使用不到10天的的时间就可破译16位口令(速度主要依靠连接速率)。在黑客获得低等级口令后,黑客将利用口令注册进系统并复制/etc/passwd文件。

黑客一旦拥有口令文件的备份,就可使用BRUTE FORCE口令破译获得UNIX网络的访问权限。黑客利用该技术自动地去猜测口令,这样的程序在INTERNET上被广泛地应用。它将从aa,ab等尝试起直到有一个合法的字符组合,最终将得到口令。

最好的防备该方法的方法是隐藏口令文件,黑客将只能访问到系统的令牌。如果将黑客与hash口令隔离开,黑客将无法使用 brute force口令破译。

3.防备字典式破译

由于 brute force口令破译需要较长时间,字典式破译也能顺利地获得UNIX访问权。但字典式破译也需要离线的口令文件备份。一般来说,字典式攻击要么是提交一些同通过网络传送服务器(如果使用在线式放击)或者一次提交一个词列表并使用散列算法及相同的UNIX加密算法(如果使用备份的口令文件离线攻击)。一旦匹配成功,将可以得到口令。

最好的防御方法是让用户定期更改其口令;定期地运行安全性网络分析管理工具(SATAN)。使用别的口令检查分析程序;让用户使用最少8字符的口令,并含有数字和符号。

在WEB上有几个软件可以让您制定一些规则强制用户定期改变其口令。可以访问JAMSA出版公司的网址http://www.jamsa.com来获得一些工具。

4.UNIX的文件和目录保护

在创建一个UNIX帐号时,操作系统将为帐号分配一个特定的用户号码组号。系统使用户号检验该用户。因此,系统把用户名不同但用户号相同的多个用户视为同一个用户。除了使用用户号和组号来检验用户(不需要注册信息报告),UNIX也使用用户号和组号来确定用户和组对一个目录的访问权限。

与NETWARE和WINDOWS NT不同的是,UNIX有三种不同的文件和目录许可:读、写、执行。如表1。

表3 显示了三个不同的许可如何影响用户对目录的访问。

UNIX将用户分为三类:用户(文件或目录的所有者),组(所有者所在的组成员),其他用户(除上两类以外的用户)。您可以据此推断每一类用户拥有的权限。

为了显示目录中文件的许可,您可以使用ls–l命令。例如下列命令将显示当前目录中的内容及其许可:

$ls–l
drwxrwxrwx 1 bin lklander sys 12345 Mar 10 01:30 bin
-rwxr–xr -l guest lklander users 256 Mar 20 02:25 happy

在前一个例子中,当前目录中包含了一个叫bin的子目录及一个叫happy的文件。ls-l命令所列的第一个域是文件的类型和许可权限。另一行中,drwxrwxrwx表明它是一个目录(最左端有一个“d”)。余下的表明目录的许可,ls-1命令将其分为三个部分。其分开的方法是按[user][group][other]方式划分,其中“r”代表“read”,“w”代表“write”,“x”代表“executive”在该例子中,所有的用户都可对bin目录进行读写和执行。

第二行,第一个字符是“-”,表明happy是一个文件。如果happy是设备文件。则第一个字符是“c”。后面的字符表明了三类用户的权限。文件的所有者有读写和执行的权限。同组用户可以读和执行该文件,而别的用户只有读权限。

第二个域表明该文件在系统上的备份数量。第三个域表明文件或目录的所有者的名字。第四个域表明文件的所有者的用户名。第五个域,在一些系统上可能不会显示出来,表明了所有者所在的工作组的名字。第六个域表明了文件的大小。第七个域表示时间和日期(文件最后一次被修改时的)。最后一个域表明文件或目录的名字。您可以依此限制用户对文件或目录的访问权限,当然他们在自己的目录中自己创建的除外。只有很少的情况用户才会要求对其他的文件具有读和执行权限。应当定期地检查文件和目录的各种权限。

5.掌握chown命令

在这部分以前,我们讨论了Unix怎样控制文件和目录的许可权。也许您可能时常要更改自己的文件许可权。chown命令可以让您更改文件和目录的许可权限。在使用chown时,您也可以指定或全部将其许可进行修改。

在您修改许可参数时(指定时),系统将只对您指定的许可进行增加或删除,而别的权限仍然保持不变。下面是chown的命令行选项。

Chown [u,g,or o] [+or-] [rwx] [file/directory name]
表4 讨论了chown命令的细节。

您可以使用u, g和o来定义您想改变的用户类别。要增加一个文件的许可权限可使用chown [class] + [permissions] [filename]。例如,要增加happy文件的写权限,使同组用户写该文件。
chown g + w happy
另一方面,要想删除其许可,可使用减号,例如,可删除属于对该文件的写权限,则按如下命令:chown u-w happy。

在全面设置文件的许可权时,您没有给文件和目录的权限都会被删除掉。它的格式是,chown [mode number] filename,您可以决定要给文件的模式串。表1-12列出了模式编号及他们的相应的说明。

另外还有两个只能在全面设置方式下使用的特定文件模式。他们是UID和GID。UID模式是指当您将其赋给一个可执行文件时,则若别的用户执行该文件他将在属于的用户号下执行,也就是说,他可以作为属于使用该文件。如果该文件具有GID模式设置,当某个用户执行该文件时,他具有与属于所在的组相同的组。GID模式的许可数为2000,UID模式的许可数是4000。如果UID被置位,在“x”的位置将“s”被代替。

6.理解UNIX中的特殊文件

Unix操作系统维持几个系统中的特殊文件类型。在理解操作系统工作原理时应掌握这些文件。表1-13列出了这些特殊文件及其用处。
 
发表评论 推荐文章 关闭窗口
 相关内容
- 在Linux操作系统上“跑”ISDN 2004-05-20
- 怎样做好linux的硬件配置 2004-05-19
- linux下读取光盘方法及技巧 2004-05-19
- linux的多种启动方式 2004-05-19
 
 学堂分类
网络知识操作系统
网络应用网络服务
网页开发网络编程
数据存储网络设备
 文章搜索
 
网站简介 | 广告服务 | 编程支持 | 设计服务 | 诚邀合作 | 访客留言
Copyright © 1999-2004 99NET. All Rights Reserved
版权所有 久久网络工作室
Email:webmaster@99net.net