跳到主要内容

6.2. 主体名称(Principal Names)

概述​

主体名称用于在 Kerberos 系统中标识实体(用户、服务、主机)。每个主体在其所属的 realm 内被唯一标识。

名称结构​

组成部分​

  • 名称类型(Name Type):标识名称组成部分的解释方式
  • 名称字符串(Name String):由一个或多个组成部分构成的序列
  • Realm:管理域

格式示例​

  • 用户:username@REALM
  • 服务:service/hostname@REALM
  • 实例:username/instance@REALM

名称类型​

NT-PRINCIPAL (1)​

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 节。