随着 SEAM 的安装,现在您就拥有两个口令: 您的常规 Solaris 口令,和一个 Kerberos 口令。您可以让两个口令一样,也可以让它们不一样。
非 Kerberized 命令,诸如 login,通常通过 PAM 来设置为与 Kerberos 和 UNIX 两者进行鉴别。如果您拥有不同的口令,则您必须提供两个口令才能得到适当的鉴别,进行登录。然而,如果两者口令相同,则您为 UNIX 录入的第一个口令也为 Kerberos 所接受。
不幸的是,为两者使用同一口令可能折衷安全。即,如果某人发现您的 Kerberos 口令,则您的 UNIX 口令不再是一个秘密。然而,为 UNIX 和 Kerberos 使用同一口令,依旧比一个没有 Kerberos 的站点更为安全,因为 Kerberos 环境中的口令并非跨越网络发送。通常,您的站点将拥有一个策略来帮助您确定您的选项。
您的 Kerberos 口令是 Kerberos 用来验证您的身份的唯一方法。如果某人发现您的 Kerberos 口令, 则 Kerberos 安全变得没有意义,因为此人可以假扮您- 发送来自于"您"的电子邮件,阅读、编辑或删除您的文件,或者以您的身份登录到其它的主机 - 而没有人能够加以区别。出于该原因,您选择一个好的口令并为之保守秘密,这一点至关重要。如果您必须给予他人对您的帐户的访问,则您可以通过 Kerberos 办到,且不透露您的口令 (请参见"授予对您的帐户的访问")。您 永远 都不应当将您的口令透露给其他任何人,即使是您的系统管理员。另外,您应当频繁地更改您的口令,特别是每当您相信某人可能业已发现时。
您的口令可以包括您可以键入的几乎任何字符 (主要的例外是控制键和回车键)。一个好的口令便于您记住,但别人又无法轻易猜出。不良口令的示例包括:
可以在一本字典中找到的词语
任何常见的或流行的名称
一个著名人物或角色的名称
您的名称或用户名的任何形式 (例如: 反向,重复两次,等等.)
配偶、子女或宠物的名称
您的出生日期或一个亲属的出生日期
社会保障号码,驾驶执照号码,护照号码,或类似的识别号码
出现在本手册或任何其它的手册中的任何样本口令
一个好的口令至少为八个字符长。而且,一个口令应当包括混合字符,诸如大写和小写字母,数字以及标点符号。下列口令示例,如果没有出现在本手册中,就应当属于好的口令:
缩写,诸如 "I2LMHinSF" (回忆为 "I too left my Heart in San Francisco")
易于发音的没有意义的词语,比如 "WumpaBun" 或 "WangDangdoodle!"
故意拼错的短语,诸如 "6o'cluck" 或 "RrriotGrrrlsRrrule!"
不要使用这些示例。侵入者将最先尝试出现在手册中的口令。
有两个方法您可以用来更改您的 Kerberos 口令:
借助通常的 UNIX passwd 命令。当安装有 SEAM 时, Solaris passwd 命令还自动提示您录入一个新的 Kerberos 口令。
使用 passwd 而不是 kpasswd 的优势在于您可以同时设定两个口令 (UNIX 和 Kerberos) 。然而,一般来讲,您就不是 必须 借助 passwd 对两个口令进行更改了; 您经常可以只更改您的 UNIX 口令而使 Kerberos 口令保持不变,反之亦然。
passwd 的性能取决于 PAM 模块是如何配置的。在某些配置中,可能要求您对两个口令进行更改。对于某些站点, UNIX 口令必须得到更改,而其它站点则要求 Kerberos 口令得到更改。
借助 kpasswd 命令。 kpasswd 十分类似于 passwd。一个区别在于, kpasswd 只变更 Kerberos 口令 - 如果您想更改您的 UNIX 口令的话,您就必须使用 passwd。
另一区别在于, kpasswd 可以为一个并非有效 UNIX 用户的 Kerberos 授权对象更改口令。例如, david/admin 是一个 Kerberos 授权对象,但并非一个实际的 UNIX 用户,因而您必须使用 kpasswd,而不是 passwd。
您更改您的口令之后,让更改通过一个系统得到传播 (特别是跨越一个大型网络),需要花费一些时间。这取决于您的系统是如何设置的,可能会是从几分钟到一个小时或更长时间不等。如果您必须在更改您的口令之后不久就获得新的 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 |
该文件允许用户 jennifer 和 joe 假借 david的身份,条件是他们业已在其各自的区域内,拥有 Kerberos 票券。例如, jennifer 可以 rlogin 到 david的机器 (boston), 以他的身份,而不必给出他的口令:
(在 david的主目录是由 NFS 使用 Kerberos V5 协议,从另一 (第三个) 机器进行装配的情形下, jennifer 必须拥有一个可转发票券,以便可以访问他的主目录。请参见"如何创建一个票券",了解关于使用可转发票券的一个示例。)
如果您将跨越网络登录到其它的机器,则您将需要在这些机器上的 .k5login 文件中包含您自己的 Kerberos 授权对象。
使用一个 .k5login 文件要比给出您的口令安全得多:
任何时候您都可以通过从您的 .k5login 文件去除授权对象,将访问撤销。
尽管您的主目录中的 .k5login 文件中所命名的用户,在该机器 (或成套的机器,如果 .k5login 文件是共享的,例如跨越 NFS) 上对您的帐户拥有完全的访问,他们并不继承您的网络特权 - 即,任何 Kerberized 服务授权访问时,均将基于该用户的身份,而不是您的身份。因此 jennifer 可以登录到 joe 的机器并在那里进行任务,但如果她使用一个 Kerberized 程序,诸如 ftp 或 rlogin,则她以她自己的身份进行。
Kerberos 对谁获得票券保留有一个日志,因而如有必要,一个系统管理员就可以找出,谁能够在某一具体时间使用您的用户身份。
使用 .k5login 文件的一个常见的方法就是将其放在 root 的主目录,将对该机器的 root 访问给予所列出的 Kerberos 授权对象。这允许系统管理员在本地变为 root,或者以 root 的身份远程进行登录,而不必给出 root 口令,且任何人都不必跨越网络键入 root 口令。
假设 jennifer 决定作为 root 登录到机器 boston.acme.com。因为她在 boston.acme.com 上 root的主目录中的 .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]% |