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)
此字段指示发出票据时使用或请求了哪些各种选项。标志的含义如下:
| 位 | 名称 | 描述 |
|---|---|---|
| 0 | reserved | 保留供将来扩展 |
| 1 | forwardable | 票据可用于获取具有不同网络地址的新 TGT |
| 2 | forwarded | 票据已被转发 |
| 3 | proxiable | 票据可用于获取具有不同网络地址的非 TGT |
| 4 | proxy | 票据是代理票据 |
| 5 | may-postdate | 可基于此 TGT 发出后期票据 |
| 6 | postdated | 票据已被后期 |
| 7 | invalid | 票据无效,必须由 KDC 验证后才能使用 |
| 8 | renewable | 票据可续订 |
| 9 | initial | 票据使用 AS 协议发出 |
| 10 | pre-authent | 客户端在初始认证期间已由 KDC 预认证 |
| 11 | hw-authent | 初始认证使用了硬件认证 |
| 12 | transited-policy-checked | KDC 已检查 transited 字段 |
| 13 | ok-as-delegate | 服务器适合作为委派的接收者 |
| 14-31 | reserved | 保留供将来使用 |
其他字段
key
此字段存在于票据和 KDC 响应中,用于将会话密钥从 Kerberos 传递到应用服务器和客户端。
crealm
此字段包含客户端注册所在的领域的名称以及初始认证发生的位置。
cname
此字段包含客户端主体标识符的名称部分。
transited
此字段列出了参与对向其发出此票据的用户进行认证的 Kerberos 领域的名称。
authtime
此字段指示指定主体的初始认证时间。
starttime
票据中的此字段指定票据有效的时间。与 endtime 一起,此字段指定票据的生命周期。
endtime
此字段包含票据不再被接受的时间(其到期时间)。
renew-till
此字段仅存在于 flags 字段中设置了 RENEWABLE 标志的票据中。它指示续订中可能包含的最大 endtime。
caddr
票据中的此字段包含零个(如果省略)或更多(如果存在)主机地址。这些是可以使用票据的地址。
authorization-data
authorization-data 字段用于将授权数据从向其发出票据的主体传递到应用服务。如果不包含授权数据,则此字段将被省略。