考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
  当前位置:操作系统 > Unix > 文章内容
  

Unix系统:UnixBSDLinux的口令机制初探

 [ 2017年8月25日 ] 【

  加密的口令条目包含B l o w f i s h版本号、算法重复次数以及s a l t和哈希口令的连结—每个之间由“ $”字符隔开。一个编码“ 8”将声明2 5 6次循环。一个有效的B l o w f i s h口令看起来如下:

  $2a$12$eIAq8PR8sIUnJlHaohxX209x9O1m2vk97LJ5dsXdmB.eXF42qjchC

  在这个例子中,初始的扩展进行4 0 9 6次。给出了很大的重复次数和长的口令, B l o w f i s h加密的口令比其他基于传统D E S机制加密的口令更难被攻击。给出由这些算法改进所提供的额外安全措施后,它被应用在其他U N I X系统中只是一个时间问题了。

  2.6----如何得知你的系统使用的加密算法

  方法可以有很多,本人简单列举几个:

  方法(1)你可以通过查看 libcrypt[._*]链接到/usr/lib下的哪些库文件来得知你的系统密码所使用的加密算法。如果链接到libcrypt*库,那么使用的为MD5,如果为libdescrypt*,就应该为DES了。具体操作如下:

  Í /usr/lib

  %ls -l libcrypt[._]*

  lrwxr-xr-x  1 root  wheel       11 Jun  9 06:18 /usr/lib/libcrypt.a@ ->

  libscrypt.a

  lrwxr-xr-x  1 root  wheel       12 Jun  9 06:19 /usr/lib/libcrypt.so@ ->

  libscrypt.so

  lrwxr-xr-x  1 root  wheel       14 Jun  9 06:21 /usr/lib/libcrypt.so.2@ ->

  libscrypt.so.2

  lrwxr-xr-x  1 root  wheel       13 Jun  9 06:22 /usr/lib/libcrypt_p.a@ ->

  libscrypt_p.a

  %

  FreeBSD4.4中,从FreeBSD 4.4开始就完全由login.conf来控制所使用的加密算法,并且默认已经设置为MD5,要改为DES,只须将其中:password_format段的md5替换成des。任何使修改生效,本文后面有详细的说明。

  附:我们强烈建议用户尽可能的使用MD5库而非DES.所以往往也很有必要将一些安装了DES加密算法的系统的DES库转换成MD5库,操作也很简单,只须先删除libcrypt[._*]链接,然后将它们重新链接到相应到md5库。(即以s代替des):

  Links DES MD5

  ----- --- ---

  libcrypt.a libdescrypt.a libscrypt.a

  libcrypt.so libdescrypt.so libscrypt.so

  libcrypt.so.2 libdescrypt.so.2 libscrypt.so.2

  libcrypt_p.a libdescrypt_p.a libscrypt_p.a

  方法(2)查看/etc/login.conf中的password_format段。其值md5,des,blf分别对应MD5,DES和blowfish.

  方法(3)查看密码文件/etc/passwd或者/etc/shadow(BSD 下相应为/etc/master.passwd),根据密码特征得知使用的加密算法。例如以$1$开头的为MD5,以$2$开头的为 blowfish.DES没有明显的特征,但它的密码段相对较短,且均为字母,没有$之类的字符,也很容易辨别!

  3.密码文件

  3.1概述:

  正如大家所熟悉的,Unix下都存在一个/etc/passwd文件以存放用户的密码文件,但是在不同的Unix,Linux,BSD 中它们所起的作用也不尽相同。某些Unix和Linux还使用shadow文件,但FreeBSD中相应的却为/etc/master.passwd文件。下面将对这些文件进行详细说明。

  3.2/etc/passwd文件

  传统的Unix中均使用该文件来存放用户密码。该文件以加密的方式保存口令,其中的口令必须通过passwd口令来生成(如果使用NIS,相应的为ypasswd),或者从另一账号中复制过来。

  P a s s w d文件中的每个条目看起来如下:

  n a m e : c o d e d - p a s s w d : U I D : G I D : u s e r - i n f o : h o m e - d i r e c t o r y : s h e l l

  7个域中的每一个由冒号隔开。空格是不允许的,除非在u s e r- i n f o域中使用。下面总结了

  每个域的含义:

  ①name—给用户分配的用户名,这不是私有信息。

  ② c o d e d - p a s s w d—经过加密的用户口令。如果一个系统管理员需要阻止一个用户登录,则经常用一个星号( : * :)代替。该域通常不手工编辑。用户应该使用p a s s w d命令修改他们的口令。值得注意的一点是许多最近的U N I X 产品依赖“影子口令” — 不在/ e t c / p a s s w d中保存的口令。

  ③ UID—用户的唯一标识号。习惯上,小于1 0 0的U I D是为系统帐号保留的。

  ④ G I D—用户所属的基本分组。通常它将决定用户创建文件的分组拥有权。在Red Hat L i n u x中,每个用户帐号被缺省赋予一个唯一分组。

  ⑤ u s e r- i n f o—习惯上它包括用户的全名。邮件系统和f i n g e r这样的工具习惯使用该域中的信息。该域也被称作G E C O S域。

  ⑥ home-directory—该域指明用户的起始目录,它是用户登录进入后的初始工作目录。

  ⑦ s h e l l—该域指明用户登录进入后执行的命令解释器所在的路径。有好几种流行的S h e l l,包括Bourne Shell (/bin/sh),C Shell (/bin/csh),Korn Shell (/bin/ksh)和Bash Shell( / b i n / b a s h )。注意可以为用户在该域中赋一个/ b i n / f a l s e值,这将阻止用户登录。

本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2007-2013 中华考试网(Examw.com) All Rights Reserved