手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>操作系统>FreeBSD>列表

FreeBSD handbook中文版 10 安全

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

倒过来就不行了,所以MD5 库不能鉴别用DES 加密的密码。
鉴别你当前系统使用的是哪个库也是很容易的。任何使用crypt 的程序是与libcrypt
连接在一起的,每一种类型的库是与适当的执行程序有一个符号连接的。例如,在使用DES
的系统上:
% ls -l /usr/lib/libcrypt*
lrwxr-xr-x 1 root wheel 13 Mar 19 06:56 libcrypt.a -> libdescrypt.a
第11 页FreeBSD 使用手册
lrwxr-xr-x 1 root wheel 18 Mar 19 06:56 libcrypt.so.2.0 ->
libdescrypt.so.2.0
lrwxr-xr-x 1 root wheel 15 Mar 19 06:56 libcrypt_p.a -> libdescrypt_p.a
在使用MD5 库的系统上,同样的连接也会出现,但目标库是libscrypt 而不是
libdescrypt。如果你安装了DES 用的crypt 库libdescrypt,哪个密码格式将被用作新的密
码可以通过在/etc/login.conf 中设置passwd_format 来控制,要么使用DES,要么使用MD5。
看看login.conf 的联机手册了解更多信息。
10.5 S/Key
S/key 是基于单向hash 功能的一次性密码管理方式。FreeBSD 为了考虑兼容性,就使
用MD4 hash 函数,但其它系统则使用MD5 和DES-MAC。从1.1.5 版开始,S/key 已经成为
FreeBSD 的基本系统,同时也广泛应用于其他操作系统。S/key 是Bell Communications
Research, Inc 的注册商标。
下面将讨论三种不同的密码形式。第一种是你通常使用的Unix 风格或Kerberos 密码;
我们把它叫做Unix password。第二种是由S/key 程序产生,然后被keyinit 程序和登陆命
令接受的一次性密码;我们把它叫做one-time password。最后一种密码是由专门的密码生
成程序生成的秘密密码;我们把它叫做secret password 或绝对password。
秘密密码与unix password 毫无关系;他们也可能是一样的,但并不推荐使用。S/key
秘密密码不象unix 密码需要限制在8 位以内,它们可能会更长。一般都使用6 到7 位的长
度。另外,S/key 系统操作完全独立于unix password 系统。
除了密码,对于S/key 有两个数据很重要。一个是以seed 或key 出名,包含两个字母
和五个数字。其他的被叫做iteration count,在1 到100 之间。S/key 通过连接“种子”
(seed)和秘密密码来生成一次性密码,然后通过反复计算多次应用MD4 hash,再把结果
变成六个英文字。这六个英文字就是你的一次性密码。如果用户提供的密码的hash 值与先
前的密码相一致,那用户就通过了认证;每个成功的登陆确保用户和登陆程序保持同步之
后,计算的次数就不断减少。当反复计算的降到1 时,S/key 必须被重新初始化。
有四个程序被包含在S/key 系统中,我们下面会谈到。密码程序接受一个反复计算数,
一个种子,和一个秘密密码,然后产生一个一次性密码。Keyinit 程序被用来初始化S/key,
第12 页FreeBSD 使用手册
然后改变密码,反复计算数或种子;它不是接受一个秘密密码,就是一个反复计算数,种
子和一次性密码。Keyinfo 程序会检查文件,然后打印出被调用的当前反复计算数和种子。
最后,login 和su 程序包含了用于认证S/key 一次性密码的必需的逻辑性。login 程序也
可以不使用unix 密码。
我们将讲述四种不同的操作。第一种是首先通过一个安全连接设置S/key 使用keyinit
程序,或改变你的密码或种子。第二种操作是通过一个不安全的连接使用keyinit 程序,
通过一个安全的连接与密码程序相关联,同样能达到目的。第三种是使用密码程序产生许
多key,它可以被记录或打印出来。
10.5.1 安全连接的初始化
首先是当通过一个安全连接登陆时,初始化S/key,改变你的密码,或改变你的种子,
当你自己登陆时,使用不带任何参数的keyinit 程序:
% keyinit
Adding unfurl:
Reminder - Only use this method if you are directly connected.
If you are using telnet or rlogin exit with no password and use keyinit -s.
Enter secret password:
Again secret password:
ID unfurl s/key is 99 to17757
DEFY CLUB PRO NASH LACE SOFT
在键入秘密密码时:你必须键入一个密码或短语。记住,这不是你用来登陆的密码,
它只是用来产生一次性登陆密码。ID 行给出了你特定的S/key 实例的参数;你的登陆名,
反复计算数,和种子。当用S/key 登陆系统时,系统将记住这些参数,然后把它们返回给
你,所以你不必记住它们。最后一行给出了与那些参数和你的秘密密码相一致的特定的一
次性密码;如果你需要立刻重新登陆,这个一次性密码就是你使用的。
第13 页FreeBSD 使用手册
10.5.2 不安全连接初始化
通过一个不安全的连接来初始化S/key 或改变你的秘密密码,你必须已经有连接到可
以运行密码程序的地方的安全连接。这可以是在Macintosh 上桌面访问的方式,或是在你
信任的机器上的一个shell 命令。你也必须指定一个反复计算数(通常是100),你可以使
用你自己的种子,或使用一个随机产生的值。在一个不安全的连接上,可以使用keyinit -s
命令:
% keyinit -s
Updating unfurl:
Old key: to17758
Reminder you need the 6 English words from the key command.
Enter sequence count from 1 to 9999: 100
Enter new key [default to17759]:
s/key 100 to 17759
s/key access password:
要接受默认的种子,键入return。然后键入一个访问密码,转移到你的安全连接或S/key
桌面程序,给它指定一样的参数:
% key 100 to17759
Reminder - Do not use this program while logged in via telnet or rlogin.
Enter secret password: <secret password>
CURE MIKE BANE HIM RACY GORE
现在,切换到不安全的连接,拷贝一次性通过密码程序产生的一次性密码给keyinit
程序:
s/key access password:CURE MIKE BANE HIM RACY GORE
第14 页ID unfurl s/key is 100 to17759
CURE MIKE BANE HIM RACY GORE
10.5.3 产生一个简单的一次性密码
一旦你初始化你S/key,当你登陆时,你会看到下面的命令行:
% telnet example.com
Trying 10.0.0.1...

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!