Sun 企业鉴别机制指南

口令管理

随着 SEAM 的安装,现在您就拥有两个口令: 您的常规 Solaris 口令,和一个 Kerberos 口令。您可以让两个口令一样,也可以让它们不一样。

非 Kerberized 命令,诸如 login,通常通过 PAM 来设置为与 Kerberos 和 UNIX 两者进行鉴别。如果您拥有不同的口令,则您必须提供两个口令才能得到适当的鉴别,进行登录。然而,如果两者口令相同,则您为 UNIX 录入的第一个口令也为 Kerberos 所接受。

不幸的是,为两者使用同一口令可能折衷安全。即,如果某人发现您的 Kerberos 口令,则您的 UNIX 口令不再是一个秘密。然而,为 UNIX 和 Kerberos 使用同一口令,依旧比一个没有 Kerberos 的站点更为安全,因为 Kerberos 环境中的口令并非跨越网络发送。通常,您的站点将拥有一个策略来帮助您确定您的选项。

您的 Kerberos 口令是 Kerberos 用来验证您的身份的唯一方法。如果某人发现您的 Kerberos 口令, 则 Kerberos 安全变得没有意义,因为此人可以假扮您- 发送来自于"您"的电子邮件,阅读、编辑或删除您的文件,或者以您的身份登录到其它的主机 - 而没有人能够加以区别。出于该原因,您选择一个好的口令并为之保守秘密,这一点至关重要。如果您必须给予他人对您的帐户的访问,则您可以通过 Kerberos 办到,且不透露您的口令 (请参见"授予对您的帐户的访问")。您 永远 都不应当将您的口令透露给其他任何人,即使是您的系统管理员。另外,您应当频繁地更改您的口令,特别是每当您相信某人可能业已发现时。

有关选择口令的忠告

您的口令可以包括您可以键入的几乎任何字符 (主要的例外是控制键和回车键)。一个好的口令便于您记住,但别人又无法轻易猜出。不良口令的示例包括:

一个好的口令至少为八个字符长。而且,一个口令应当包括混合字符,诸如大写和小写字母,数字以及标点符号。下列口令示例,如果没有出现在本手册中,就应当属于好的口令:


小心:小心:

不要使用这些示例。侵入者将最先尝试出现在手册中的口令。


更改您的口令

有两个方法您可以用来更改您的 Kerberos 口令:

您更改您的口令之后,让更改通过一个系统得到传播 (特别是跨越一个大型网络),需要花费一些时间。这取决于您的系统是如何设置的,可能会是从几分钟到一个小时或更长时间不等。如果您必须在更改您的口令之后不久就获得新的 Kerberos 票券,则请首先尝试新的口令。如果新的口令无效,则请再次尝试使用旧的口令。

Kerberos V5 允许系统管理员就所允许的口令,为每个用户设定范畴。此类范畴是通过为每个用户设定的 策略 加以定义的 (或通过一个默认的策略)- 请参见"管理策略",了解更多有关策略的信息。例如,假设 jennifer 的策略 (称之为 jenpol) 要求口令为至少八个字母长且包括至少两种字符的混合体。因而 kpasswd 将拒绝把 "sloth" 用作口令的企图:


% kpasswd
kpasswd: 更改 jennifer@ENG.ACME.COM 的口令。
旧的口令:<jennifer 录入其现有的口令> 
kpasswd: jennifer@ENG.ACME.COM 的口令由策略 jenpol 进行控制,
要求来自至少 2 个类的至少 8 个字符, (五类为小写,大写,数字,标点符号,以及所有其它的字符)。
新的口令: <jennifer 录入 'sloth'>
新的口令 (再次):<jennifer 重新录入 'sloth'>kpasswd: 新的口令太短。
请选择一个至少 4 个字符长的口令。

这里, jennifer 使用 "slothrop49" 作为一个口令。'slothrop49' 符合范畴,因为其为八个以上字母长且包含两个不同种类的字符 (数字和小写字母):


% kpasswd
kpasswd: 更改 jennifer@ENG.ACME.COM 的口令。
旧的口令:<jennifer 录入其现有的口令> 
kpasswd: jennifer@ENG.ACME.COM 的口令由策略 jenpol 进行控制,
要求来自至少 2 个类的至少 8 个字符, (五类为小写,大写,数字,标点符号,以及所有其它的字符)。
新的口令:<jennifer 录入 'slothrop49'>
新的口令 (再次):<jennifer 重新录入 'slothrop49'> 
Kerbero口令得到更改。

示例 - 更改您的口令

下列示例显示 david 借助 passwd,对其 UNIX 和 Kerberos 口令两者进行更改。


% passwd	
passwd:  更改 david 的口令
录入登录(NIS+) 口令:            <录入当前的 UNIX 口令>
新的口令:                      <录入新的 UNIX 口令>	
重新录入口令:                   <确认新的 UNIX 口令>	
旧的 KRB5 口令:                <录入当前的 Kerberos 口令>
新的KRB5 口令:                 <录入新的 Kerberos 口令>
重新录入新的 KRB5 口令:          <确认新的 Kerberos 口令>

在上面的示例中, passwd 询问 UNIX 和 Kerberos 口令两者; 然而,如果 try_first_pass 在 PAM 模块中得到设定,则 Kerberos 口令自动设定为与 UNIX 口令相同。(这是默认的配置。) 在这种情形下,david 必须使用 kpasswd,将其 Kerberos 口令设定为其它一些内容,如下所示。

该示例显示其借助 kpasswd,只更改其 Kerberos 口令:


% kpasswd
kpasswd: 更改的口令 david@ENG.ACME.COM.
旧的口令:                   <录入当前的 Kerberos 口令>
新的口令:                   <录入新的 Kerberos 口令>
新的口令 (再次):             <确认新的 Kerberos 口令> 
 Kerberos 口令得到更改。

在本示例中, david 变更 Kerberos 授权对象 david/admin 的口令 (而这并非一个有效的 UNIX 用户)。如要做到这一点,他必须使用 kpasswd


% kpasswd david/admink
kpasswd:  更改 david/admin 的口令。
旧的口令:                    <录入当前的 Kerberos 口令>	
新的口令:                    <录入新的 Kerberos 口令>
新的口令 (再次):              <确认新的 Kerberos 口令>  
Kerberos 口令得到更改。

授予对您的帐户的访问

如果您必须给予某人访问,使其可以登录到您的帐户 (以您的身份), 您借助 Kerberos, 而不透露您的口令就可以办到,通过在您的主目录中放置一个 .k5login 文件。 .k5login 文件是一个或多个 Kerberos 授权对象的一个列表,与您想向其授予访问的每个人相对应。(每个授权对象必须在单独一行上。)

假设用户 david 在其主目录保留有一个 .k5login 文件,该文件看似如下:


jennifer@ENG.ACME.COM
 joe@ACME.ORG  

该文件允许用户 jenniferjoe 假借 david的身份,条件是他们业已在其各自的区域内,拥有 Kerberos 票券。例如, jennifer 可以 rlogindavid的机器 (boston), 以他的身份,而不必给出他的口令:

图形 6-1 使用.k5login 文件

Graphic

(在 david的主目录是由 NFS 使用 Kerberos V5 协议,从另一 (第三个) 机器进行装配的情形下, jennifer 必须拥有一个可转发票券,以便可以访问他的主目录。请参见"如何创建一个票券",了解关于使用可转发票券的一个示例。)

如果您将跨越网络登录到其它的机器,则您将需要在这些机器上的 .k5login 文件中包含您自己的 Kerberos 授权对象。

使用一个 .k5login 文件要比给出您的口令安全得多:

使用 .k5login 文件的一个常见的方法就是将其放在 root 的主目录,将对该机器的 root 访问给予所列出的 Kerberos 授权对象。这允许系统管理员在本地变为 root,或者以 root 的身份远程进行登录,而不必给出 root 口令,且任何人都不必跨越网络键入 root 口令。

示例 - 使用.k5login 文件

假设 jennifer 决定作为 root 登录到机器 boston.acme.com。因为她在 boston.acme.comroot的主目录中的 .k5login 中,拥有一个针对她的授权对象名称的条目,她又不必键入她的口令了:


% rlogin boston.acme.com -l root -x
这一 rlogin 对话正在将 DES 加密用于所有的数据传输。
最近登录: Thu Jun 20 16:20:50 从 daffodil
SunOS 发行版 5.7 (类属) #2:Tue Nov 14 18:09:31 EST 1998   boston[root]%