Subject: semantic diff of secs 3, 5 between 1510 and draft-07/-08

From: Tom Yu <[email-masked]>
Date: 19 Jul 2001 16:26:15 -0400

I previously sent an earlier form of this document to a smaller
audience; I am resending it here in an effort to explain the rationale
behind reversion of some changes that have snuck in between RFC 1510
and draft-07 of kerberos-revisions.

I will also send another message containing an initial analysis of
these differences and their impact on interoperability.

---Tom

Semantic differences between rfc1510 and kerberos-revisions
-----------------------------------------------------------

Note:

	The draft-08 version will be used for most things except for
	the ASN.1 syntax changes; those will come from draft-07.

	The primary focus of the diffs will be sections 3 and 5, which
	describe, respectively, the message exchanges and the ASN.1
	syntax.

Section 3:
----------

3.1. The Authentication Service Exchange

new elaboration on preauth, as well as mention of KRB-ERROR checksums

3.1.1. Generation of KRB_AS_REQ message

new references to name-canon and anonymous tickets

3.1.3. Generation of KRB_AS_REP message

new explicit mention of the KDC_ERR_C_PRINCIPAL_UNKNOWN error is made.

There is new mention of keys supporting multiple enctypes, which
should probably be removed, since it'll confuse things a la single-DES
madness.

new elaboration on preauth, including rudimentary stuff on
PA-ETYPE-INFO, PA-PW-SALT, PA-AFS3-SALT that needs to get fleshed out.

3.1.6 Receipt of KRB_ERROR message

new mention of KDC_ERR_WRONG_REALM error in name-canon case.

3.2.2 Generation of a KRB_AP_REQ message

text describing potential problems with sequence numbers and
unreliable transports moved to a footnote.

3.2.3. Receipt of KRB_AP_REQ message

parenthetical text re u2u auth moved to a footnote

additional text re possibly ignoring a replay cache if the app
protocol has some other means of protection.

new text re suggestion of sharing of replay caches between multiple
applications that use the same service principal.

new text re authentication != authorization

3.2.4. Generation of a KRB_AP_REP message

bracketed text comparing krb4 to krb5 has been moved to a footnote;
this is the one that implies the non-malleability requirement,
possibly.

3.2.5. Receipt of KRB_AP_REP message

parenthetical note re always using main session key has been moved to
a footnote

3.2.6. Using the encryption key

much new text re subkey negotiation, leaving it mostly up to the
application how to do this.  It probably wants to be aligned more
closely with the new sec 6.

3.3.1. Generation of KRB_TGS_REQ message

bracketed note re procedure for determining app server realm moved to
footnote.

new paragraphs re canonicalization for service principal name

parenthetical text re subsession key etc. moved to footnote?

3.3.2. Receipt of KRB_TGS_REQ message

final paragraph has new sentence re canonicalize.

3.3.3. Generation of KRB_TGS_REP message

new text re canonicalization.

paragraph re start time now specifies that start time within clockskew
w/o POSTDATE set results in defaulting of start time to KDC's current
time

parenthetical note re ENC-TKT-IN-SKEY being useful for u2u auth seems
to have been removed

[strangely enough, it appears that no provision for renewing TGTs is
made in either version]

3.3.3.1. Checking for revoked tickets

new subsection; largely identical text with old, but additional text
re implications for cross-realm.

3.3.3.2. Encoding the transited field

some parenthetical notes got moved to footnotes that don't exist!
These include [18] and [19], which probably were in a previous
revision, but got lost when the footnotes got renumbered.

3.4.1. Generation of a KRB_SAFE message

still references DES MAC, which should be removed.

3.4.2. Receipt of KRB_SAFE message

changed sender address verification to reflect optionality of that
field.

new footnote [20] on "any recently-seen (sent or received)" but no
corresponding text?

3.5.2. Receipt of KRB_PRIV message

similar change as in 3.4.2 for sender address

Section 5
---------

Note:

	This will be done by ASN.1 type for the most part, since much
	rearrangement has occured.

TicketExtensions:

	This is a new type.

TicketFlags: new bits:

	transited-policy-checked(12) -- basically allows the KDC to
	pre-validate the transited path so app server doesn't have
	to.

	ok-as-delegate(13) -- indicates to the client whether the
	service principal named in the ticket is a suitable recipient
	of credential delegation

	anonymous(14) -- [note: not in comments of TicketFlags
	bitstring] indicates client is anonymous user.

KDCOptions: new bits:

	requestanonymous(14)

	canonicalize(15)

	disable-transited-check(26)

LastReq:

	Actual values are now defined for lr-type.

Ticket.extensions:

	New field.

EncTicketPart.transited:

	Additional text involving CA names, etc. ref to RFC 2253

EncTicketPart.authtime:

	Parenthetical remark re hazards of setting client clock from
	the AS-REP value of this field has been moved to a
	nonexistent(?) footnote #24.

EncTicketPart.authorization-data:

	New text re poor naming of the field, and intent as restrictions

	New text explaining that a client may add entries to
	authdata.

	New text describing hazards of using authdata to augment
	privileges.

	2nd to last para of draft-07 describes a situation where an
	authorizing service may obtain a ticket in its own name and
	add authdata, then delegate via proxy to the actual client.

Authenticator.seq-number:

	New text constraining values to be unsigned 32 bit ints.

KDC-REQ.padata:

	New text re keyed checksums to bind padata to the req.

KDC-REQ-BODY.till:

	Now optional.

PA-ENC-TS-ENC:

	Changed to include pachecksum.  This probably wnats to be
	rethought.

PA-USE-SPECIFIED-KVNO:

	New padata.

KDC-REQ-BODY.nonce:

	Parenthetical note re using time as nonce moved to nonexistent
	footnote #25.

EncAPRepPart.seq-number:

	Description actually listed; was missing in 1510.

KRB-SAFE-BODY.s-address:

	Now optional.  Description also includes warnings re
	reflection/replay attacks.

EncKrbPrivPart.s-address:

	Now optional.

5.9.  Error message specification

new text re optionally integrity-protecting KRB-ERROR.

KRB-ERROR.e-data:

	Much new text re TypedData vs METHOD-DATA. It's not clear how
	this is exactly supposed to work; it may be an attempt to
	separate padata from other sorts of supplementary information
	that accompany a KRB-ERROR.

KRB-ERROR.e-cksum:

	New field.