6.2. 主体名称(Principal Names)
概述
主体名称用于在 Kerberos 系统中标识实体(用户、服务、主机)。每个主体在其所属的 realm 内被唯一标识。
名称结构
组成部分
- 名称类型(Name Type):标识名称组成部分的解释方式
- 名称字符串(Name String):由一个或多个组成部分构成的序列
- Realm:管理域
格式示例
- 用户:
username@REALM - 服务:
service/hostname@REALM - 实例:
username/instance@REALM
名称类型
NT-PRINCIPAL (1)
- 通用主体名称
- 对于用户通常为单组成部分
- 示例:
[email protected]
NT-SRV-INST (2)
- 带实例的服务
- 两个组成部分:服务名与实例名
- 示例:
krbtgt/[email protected]
NT-SRV-HST (3)
- 带主机名的服务
- 两个组成部分:服务名与主机名
- 示例:
host/[email protected]
其他名称类型
- NT-UID - 唯一标识符
- NT-X500-PRINCIPAL - X.500 名称
- NT-SMTP-NAME - SMTP 邮件名
- NT-ENTERPRISE - 企业主体
6.2.1. 服务器主体名称
服务主体命名约定
格式:service/hostname@REALM
常见服务类型:
host/- 主机服务HTTP/- Web 服务nfs/- NFS 服务imap/- 邮件服务
主机名规范化
需要注意的事项:
- 应使用完全限定域名(FQDN)
- 大小写保留因实现而异
- 不得依赖不安全的 DNS 进行规范化
- 名称映射存在安全影响
大小写敏感性
- 主体名称组成部分区分大小写
- Realm 名称区分大小写
- 比较为精确字符串匹配
- 实现应当保留大小写
安全考虑
- 正确的名称规范化可防止冒充攻击
- 避免信任不安全的名称解析(DNS)
- 服务名称应经过仔细校验
- 跨 realm 名称需要额外的验证
最佳实践
- 为服务使用完全限定主机名
- 保持一致的命名约定
- 记录主体命名策略
- 仔细管理服务主体名称
参考
完整规范请参阅 RFC 4120 第 6.2 节。