参考:
Kerberos 是一种网络认证协议, 其设计目标是通过密钥系统为 客户端
服务端
应用程序
提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。在以上情况下, Kerberos 作为一 种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥) 执行认证服务的。
计算机名+$
表示的, 计算机账号和用户账号一样都有密码, 计算机账号密码每30天重新生成一次首先在上面的介绍中我提到了一个 Account Database
, 其中存储的内容为每个账户的 Hash 密钥, 并且为了索引方便每个人都有一个唯一的名字我们将其称为 principal
, 对于 安全个体(principal)
定义如下:
对于上面的内容理解起来可能还是有些问题, 我们来看一个实际的文件
root@debian:/home/JTZDC/zhansan# klist -k /etc/krb5.keytab -teK
Keytab name: FILE:/etc/krb5.keytab
KVNO Timestamp Principal
---- ------------------- ------------------------------------------------------
9 2023-11-26T12:21:31 restrictedkrbhost/[email protected] (aes256-cts-hmac-sha1-96) (0xdf61662b900f879a8aa6816740a5747dc437e9cf56c4568c85e5933001a78f71)
9 2023-11-26T12:21:31 restrictedkrbhost/[email protected] (aes256-cts-hmac-sha1-96) (0xdf61662b900f879a8aa6816740a5747dc437e9cf56c4568c85e5933001a78f71)
9 2023-11-26T12:21:31 restrictedkrbhost/[email protected] (aes128-cts-hmac-sha1-96) (0x7aa07f0b338ce7846e16cc8fcd7ebf92)
9 2023-11-26T12:21:31 restrictedkrbhost/[email protected] (aes128-cts-hmac-sha1-96) (0x7aa07f0b338ce7846e16cc8fcd7ebf92)
9 2023-11-26T12:21:31 restrictedkrbhost/[email protected] (DEPRECATED:arcfour-hmac) (0xe6d23e0cc102c73d833471500d138d49)
9 2023-11-26T12:21:31 restrictedkrbhost/[email protected] (DEPRECATED:arcfour-hmac) (0xe6d23e0cc102c73d833471500d138d49)
9 2023-11-26T12:21:31 host/[email protected] (aes256-cts-hmac-sha1-96) (0xdf61662b900f879a8aa6816740a5747dc437e9cf56c4568c85e5933001a78f71)
9 2023-11-26T12:21:31 host/[email protected] (aes256-cts-hmac-sha1-96) (0xdf61662b900f879a8aa6816740a5747dc437e9cf56c4568c85e5933001a78f71)
9 2023-11-26T12:21:31 host/[email protected] (aes128-cts-hmac-sha1-96) (0x7aa07f0b338ce7846e16cc8fcd7ebf92)
9 2023-11-26T12:21:31 host/[email protected] (aes128-cts-hmac-sha1-96) (0x7aa07f0b338ce7846e16cc8fcd7ebf92)
9 2023-11-26T12:21:31 host/[email protected] (DEPRECATED:arcfour-hmac) (0xe6d23e0cc102c73d833471500d138d49)
9 2023-11-26T12:21:31 host/[email protected] (DEPRECATED:arcfour-hmac) (0xe6d23e0cc102c73d833471500d138d49)
9 2023-11-26T12:21:31 [email protected] (aes256-cts-hmac-sha1-96) (0xdf61662b900f879a8aa6816740a5747dc437e9cf56c4568c85e5933001a78f71)
9 2023-11-26T12:21:31 [email protected] (aes128-cts-hmac-sha1-96) (0x7aa07f0b338ce7846e16cc8fcd7ebf92)
9 2023-11-26T12:21:31 [email protected] (DEPRECATED:arcfour-hmac) (0xe6d23e0cc102c73d833471500d138d49)
内容解释 :
- 9 : 版本号, 用于跟踪密钥的更新历史
- 2023-11-26T12:21:31 : 时间戳, 用于表明创建时间
- restrictedkrbhost/[email protected] : 安全主体的名称
- aes256-cts-hmac-sha1-96 : 加密密钥的类型, 如果你自己查看过关于 Kerberos 的流量内容你或许知道这是什么, 但是具体的作用我还不知道
- 0xdf61662b900f879a8aa6816740a5747dc437e9cf56c4568c85e5933001a78f71 : 密钥的哈希值
9 2023-11-26T12:21:31 restrictedkrbhost/[email protected] (aes256-cts-hmac-sha1-96) (0xdf61662b900f879a8aa6816740a5747dc437e9cf56c4568c85e5933001a78f71)
/etc/krb5.keytab
文件是 Kerberos 服务的关键组成部分,用于存储服务主体和密钥,提供服务的身份验证,生成安全通信的密钥,并支持自动密钥更新, 当然我们也可以将其理解为其就是存储我们的 principal
的文件,只不过这只是客户端的文件并不是服务端的文件, 其中每一行的内容都是一个 principal
restrictedkrbhost/[email protected]
这个 principal
以及使用对应 restrictedkrbhost/[email protected]
密码经过一系列的 Hash 算法得出的密钥, Kerberos 对数据加密是使用的就是这个密钥,而不是密码,但密码和密钥具有同等效力,因为密钥不可逆,能解密用密钥加密的数据的人,一定是有真实密码的人