加密的口令条目包含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值,这将阻止用户登录。
2015年全国职称计算机考试教材(2007模 .. 定价:¥225 优惠价:¥213 更多书籍 | |
全国职称计算机考试速成过关系列套装:W .. 定价:¥133 优惠价:¥133.0 更多书籍 |