跳到主要内容

5.3. 票据

本节描述票据和认证器的格式和加密参数。当票据或认证器包含在协议消息中时,它被视为不透明对象。票据是帮助客户端向服务进行认证的记录。

Ticket 结构

Ticket          ::= [APPLICATION 1] SEQUENCE {
tkt-vno [0] INTEGER (5),
realm [1] Realm,
sname [2] PrincipalName,
enc-part [3] EncryptedData -- EncTicketPart
}

字段说明

tkt-vno
此字段指定票据格式的版本号。本文档描述版本号 5。

realm
此字段指定发出票据的领域。它还用于标识服务器主体标识符的领域部分。由于 Kerberos 服务器只能为其领域内的服务器发出票据,因此两者将始终相同。

sname
此字段指定服务器身份的名称部分的所有组件,包括标识服务的特定实例的那些部分。

enc-part
此字段保存 EncTicketPart 序列的加密编码。它使用 Kerberos 和最终服务器共享的密钥(服务器的密钥)进行加密,使用的密钥用途值为 2。

票据加密部分 (EncTicketPart)

EncTicketPart   ::= [APPLICATION 3] SEQUENCE {
flags [0] TicketFlags,
key [1] EncryptionKey,
crealm [2] Realm,
cname [3] PrincipalName,
transited [4] TransitedEncoding,
authtime [5] KerberosTime,
starttime [6] KerberosTime OPTIONAL,
endtime [7] KerberosTime,
renew-till [8] KerberosTime OPTIONAL,
caddr [9] HostAddresses OPTIONAL,
authorization-data [10] AuthorizationData OPTIONAL
}

TransitedEncoding ::= SEQUENCE {
tr-type [0] Int32 -- must be registered --,
contents [1] OCTET STRING
}

TicketFlags ::= KerberosFlags
-- reserved(0),
-- forwardable(1),
-- forwarded(2),
-- proxiable(3),
-- proxy(4),
-- may-postdate(5),
-- postdated(6),
-- invalid(7),
-- renewable(8),
-- initial(9),
-- pre-authent(10),
-- hw-authent(11),
-- transited-policy-checked(12),
-- ok-as-delegate(13)

票据标志 (TicketFlags)

此字段指示发出票据时使用或请求了哪些各种选项。标志的含义如下:

名称描述
0reserved保留供将来扩展
1forwardable票据可用于获取具有不同网络地址的新 TGT
2forwarded票据已被转发
3proxiable票据可用于获取具有不同网络地址的非 TGT
4proxy票据是代理票据
5may-postdate可基于此 TGT 发出后期票据
6postdated票据已被后期
7invalid票据无效,必须由 KDC 验证后才能使用
8renewable票据可续订
9initial票据使用 AS 协议发出
10pre-authent客户端在初始认证期间已由 KDC 预认证
11hw-authent初始认证使用了硬件认证
12transited-policy-checkedKDC 已检查 transited 字段
13ok-as-delegate服务器适合作为委派的接收者
14-31reserved保留供将来使用

其他字段

key
此字段存在于票据和 KDC 响应中,用于将会话密钥从 Kerberos 传递到应用服务器和客户端。

crealm
此字段包含客户端注册所在的领域的名称以及初始认证发生的位置。

cname
此字段包含客户端主体标识符的名称部分。

transited
此字段列出了参与对向其发出此票据的用户进行认证的 Kerberos 领域的名称。

authtime
此字段指示指定主体的初始认证时间。

starttime
票据中的此字段指定票据有效的时间。与 endtime 一起,此字段指定票据的生命周期。

endtime
此字段包含票据不再被接受的时间(其到期时间)。

renew-till
此字段仅存在于 flags 字段中设置了 RENEWABLE 标志的票据中。它指示续订中可能包含的最大 endtime。

caddr
票据中的此字段包含零个(如果省略)或更多(如果存在)主机地址。这些是可以使用票据的地址。

authorization-data
authorization-data 字段用于将授权数据从向其发出票据的主体传递到应用服务。如果不包含授权数据,则此字段将被省略。