[1876] in Kerberos_V5_Development

home help back first fref pref prev next nref lref last post

Re: bug in the rfc and in the kdc

daemon@ATHENA.MIT.EDU (Theodore Y. Ts'o)
Fri Oct 25 14:47:21 1996

Date: Fri, 25 Oct 1996 14:45:32 -0400
From: "Theodore Y. Ts'o" <tytso@MIT.EDU>
To: Marc Horowitz <marc@cygnus.com>
Cc: krbdev@MIT.EDU
In-Reply-To: Marc Horowitz's message of 24 Oct 1996 22:33:22 -0400,
	<t53vibz4vt9.fsf@rover.cygnus.com>

   From: Marc Horowitz <marc@cygnus.com>
   Date: 24 Oct 1996 22:33:22 -0400
   Lines: 36
   X-Mailer: Gnus v5.3/Emacs 19.34

   oh boy.  rfc1510 section 3.3.2 states: ...

   Thus, the checksum in the authenticator must be keyed and
   collision-proof.

   rfc1510 section 5.4.1 says:

				    The checksum in the authenticator
		(which must be collisionproof) is to be computed over the
		KDC-REQ-BODY encoding.

   Which just requires that it be collision-proof.  These two section
   conflict.

Well, if you take the union of the two constraints, it's not a
contradiction...  but yes, the text should be fixed to say that the
checksum must be keyed AND collision proof, per section 3.3.2.

   In addition, section 5.4.2 says:

		       For KRB_TGS_REP, the ciphertext is encrypted in the
      sub-session key from the Authenticator, or if absent, the session key
      from the ticket-granting ticket used in the request.  

   The "sub-session key from the Authenticator" is exactly what is
   referenced by the kdc implementation when verifying the checksum in
   the KDC-REQ.  So, in our implementation, this key must be present, or
   the kdc will core dump (hmm). The RFC says that this field in the
   request is OPTIONAL.

(from a later message)

   Ok, this is wrong; the key in the ticket is used to verify the
   checksum.  (Which key should be used for this is not specified; this
   is another bug in the rfc.)

Huh?  Section 5.4.2 is quite explicit.  Use the sub-session key if
present, otherwise use the ticket-granting ticket key.

Our implementation isn't checking the sub-session key in the
authenticator; this is a bug.  But adding this shouldn't be all that
difficult.  (We need to modify comp_cksum() in kdc_util.c)

						- Ted


home help back first fref pref prev next nref lref last post