3.3.3.1. Encoding the transited field
Connected: An Internet Encyclopedia
3.3.3.1. Encoding the transited field
Up:
Connected: An Internet Encyclopedia
Up:
Requests For Comments
Up:
RFC 1510
Up:
3. Message Exchanges
Up:
3.3. The Ticket-Granting Service (TGS) Exchange
Up:
3.3.3. Generation of KRB_TGS_REP message
Prev: 3.3.3. Generation of KRB_TGS_REP message
Next: 3.3.4. Receipt of KRB_TGS_REP message
3.3.3.1. Encoding the transited field
3.3.3.1. Encoding the transited field
If the identity of the server in the TGT that is presented to the KDC
as part of the authentication header is that of the ticket-granting
service, but the TGT was issued from another realm, the KDC will look
up the inter-realm key shared with that realm and use that key to
decrypt the ticket. If the ticket is valid, then the KDC will honor
the request, subject to the constraints outlined above in the section
describing the AS exchange. The realm part of the client's identity
will be taken from the ticket-granting ticket. The name of the realm
that issued the ticket-granting ticket will be added to the transited
field of the ticket to be issued. This is accomplished by reading
the transited field from the ticket-granting ticket (which is treated
as an unordered set of realm names), adding the new realm to the set,
then constructing and writing out its encoded (shorthand) form (this
may involve a rearrangement of the existing encoding).
Note that the ticket-granting service does not add the name of its
own realm. Instead, its responsibility is to add the name of the
previous realm. This prevents a malicious Kerberos server from
intentionally leaving out its own name (it could, however, omit other
realms' names).
The names of neither the local realm nor the principal's realm are to
be included in the transited field. They appear elsewhere in the
ticket and both are known to have taken part in authenticating the
principal. Since the endpoints are not included, both local and
single-hop inter-realm authentication result in a transited field
that is empty.
Because the name of each realm transited is added to this field,
it might potentially be very long. To decrease the length of this
field, its contents are encoded. The initially supported encoding is
optimized for the normal case of inter-realm communication: a
hierarchical arrangement of realms using either domain or X.500 style
realm names. This encoding (called DOMAIN-X500-COMPRESS) is now
described.
Realm names in the transited field are separated by a ",". The ",",
"\", trailing "."s, and leading spaces (" ") are special characters,
and if they are part of a realm name, they must be quoted in the
transited field by preceding them with a "\".
A realm name ending with a "." is interpreted as being prepended to
the previous realm. For example, we can encode traversal of EDU,
MIT.EDU, ATHENA.MIT.EDU, WASHINGTON.EDU, and CS.WASHINGTON.EDU as:
"EDU,MIT.,ATHENA.,WASHINGTON.EDU,CS.".
Note that if ATHENA.MIT.EDU, or CS.WASHINGTON.EDU were endpoints,
that they would not be included in this field, and we would have:
"EDU,MIT.,WASHINGTON.EDU"
A realm name beginning with a "/" is interpreted as being appended to
the previous realm (For the purpose of appending, the realm preceding
the first listed realm is considered to be the null realm ("")). If
it is to stand by itself, then it should be preceded by a space ("
"). For example, we can encode traversal of /COM/HP/APOLLO, /COM/HP,
/COM, and /COM/DEC as:
"/COM,/HP,/APOLLO, /COM/DEC".
Like the example above, if /COM/HP/APOLLO and /COM/DEC are endpoints,
they they would not be included in this field, and we would have:
"/COM,/HP"
A null subfield preceding or following a "," indicates that all
realms between the previous realm and the next realm have been
traversed (For the purpose of interpreting null subfields, the
client's realm is considered to precede those in the transited field,
and the server's realm is considered to follow them.). Thus, ","
means that all realms along the path between the client and the
server have been traversed. ",EDU, /COM," means that that all realms
from the client's realm up to EDU (in a domain style hierarchy) have
been traversed, and that everything from /COM down to the server's
realm in an X.500 style has also been traversed. This could occur if
the EDU realm in one hierarchy shares an inter-realm key directly
with the /COM realm in another hierarchy.
Next: 3.3.4. Receipt of KRB_TGS_REP message
Connected: An Internet Encyclopedia
3.3.3.1. Encoding the transited field
|