0

按照惯例, Kerberos 密钥表文件位于/etc/krb5/krb5.keytab非用户特定位置。该密钥表(和所有密钥表)可以包含多个条目。

假设一台计算机有三个用户:Alice、Bob 和 Eve。他们每个人都通过以下过程向共享密钥表添加一个条目,但使用各自的名称:

$ ktutil
ktutil:  addent -password -p alice@REALM.COM -e aes256-cts -k 1
Password for alice@REALM.COM:
ktutil:  list -e
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
   1    1            alice@REALM.COM (aes256-cts-hmac-sha1-96)
ktutil:  wkt krb5.keytab

稍后,Alice、Bob 和 Eve 都可以分别使用他们的 keytab 条目来验证脚本,如下所示:

> kinit alice@REALM.COM -k -t mykeytab; myscript

是什么让 Eve 无法在 keytab 中使用 Alice 或 Bob 的条目?我还没有找到任何明确涵盖如何保持具有多个条目的 keytab 安全的内容。如果我们不希望 Eve 使用 Alice 的条目,他们应该有单独的 keytabs 受文件权限保护吗?

或者,这是 Kerberos 信任模型吗?如果他们每个人都可以访问这个 keytab,那么我们隐含地信任他们使用任何条目?我们应该只让受信任的服务共享一个密钥表吗?

提前感谢您的提示。只是想确保我正确理解信任模型。

4

1 回答 1

3

密钥表文件包含一个(或多个)Kerberos 主体的密码,使用一个(或多个)密码进行预加密。实际上这是密码的历史,新密码被添加到旧密码的“顶部”。

Keytab 文件必须像任何其他密码文件一样受到保护,即具有严格的 FS 访问权限。

使用一个 keytab 文件作为多个主体的转储是没有意义的 - 除非所有这些主体都由在同一个Linux 帐户下运行的各种服务或作业使用。即便如此,这也可能是个坏主意。
例如,阅读有关 Ambari 如何管理各种 Hadoop 服务的密钥表(包括所有具有 HTTP 接口的服务共享的“spnego”密钥表)的信息,并关注chownchmod命令
https ://ambari.apache.org/1.2 .5/installing-hadoop-using-ambari/content/ambari-kerb-1-4.html

于 2019-11-20T14:46:00.737 回答