Re: KINK issue list

Michael Thomas <[email protected]> Thu, 20 Jan 2005 10:11:05 -0800
Newsgroups gmane.ietf.kink
Organization Cisco Systems
Message-ID <[email protected]>
Thank you very much for compiling this list -- I have
been having a hard time following what are similar or the
same issues, and what the closure is if any. Maybe what
we can do is keep a master list here, the proposed 
resolution, or whether to close the issue due to it being
not a problem. From that, I can work on producing a new
draft.

		Mike 

On Wed, 2005-01-19 at 18:04, KAMADA Ken'ichi wrote:
> Here is a merged version of KINK issues expressed till now.
> If I missed some of them you noted, please let me know.
> 
> 
> [**] Indicates an issue considered substantive.
> [-] Indicates an editorial issue.
> 
> 
> [**] user-to-user (section 3 and 4.2)
> 
> 	It seems like the
> 	server tells the client what principal to authenticate to, but this
> 	principal is not properly authorized.  (Sam Hartman)
> 
> 	More examination of user-to-user case, especially situations where 
> 	it might *not* be two PKINIT clients, which section 3 says is possible. 
> 	(BTW, in the Kerberos docs, it's "user-to-user", not "user-user".)
> 	(Ken Raeburn)
> 
> 	Verifying remotely supplied identity, as Sam raised earlier.
> 	(Ken Raeburn)
> 
> 	In the user-to-user case with TGTs, I think the KINK draft may be 
> 	over-specifying things that should be dealt with at the Kerberos level. 
> 	If things are underspecified in Kerberos Clarifications, let's deal 
> 	with that.  (Ken Raeburn)
> 
> 	Section 4.2:
> 	[**] How will the initiator determine whether it will be able to get a
> 	TGT?  I think policy considerations of when to use u2u and
> 	authorization considerations of what u2u principals are authorized are
> 	underspecified in the draft.
> 	(Sam Hartman)
> 
> 	[**] Make sure the descriptions of u2u work correctly in the
> 	cross-realm case.
> 	(Sam Hartman)
> 
> 
> [**] CREATE Security Association from the aspect of 2401bis (section 4.3)
> 
> 	[**] I need explicit review from the IPsec reviewer of this section to
> 	make sure it is compatible with 2401bis.  IN addition, any differences
> 	between how this works and how IKE would set up the same SA need to be
> 	called out.  It is fine for there to be differences, but I want to
> 	make sure the working group explicitly decided the differences are a
> 	good thing.
> 
> 	I'm somewhat concerned that 4.3 is not specific enough to describe
> 	exactly what key gets set up.  I.E. I'm concerned it may not be
> 	detailed enough for interoperable implementations.
> 	(Sam Hartman)
> 
> 
> [*] When 3-way, is responder's nonce MUST or SHOULD? (section 4.3 and 7.3)
> 
> 	Sec 4.3 and 7.3 use SHOULD and MUST respectively regarding when the 
> 	nonce should be used.  If the circumstances they're describing are 
> 	different, that's okay, but if so, I missed it on first reading.
> 	(Ken Raeburn)
> 
> 
> [*] Half open (section 4.4)
> 
> 	IPsec does not allow half-open security associations any more as far
> 	as I can tell in 2401bis.  So it's not just for simplicity, but for
> 	model conformance.  (Sam Hartman)
> 
> 
> [**] Section 4.4.2
> 
> 	[**] Discuss status message, rebooting peers and u2u.  This looks a
> 	lot like the IKE case where you lose all cryptographic context to me.
> 
> 
> [*] CksumLen (section 5)
> 
> 	Diagram indicates one octet for cksumlen, but the text (and 
> 	kcrypto specifications) say it should be two.
> 
> 
> [**] etype does not directly indicate checksum type (section 5)
> 
> 	a key's encryption type does not directly indicate 
> 	a checksum type, it indicates an encryption(-with-integrity-protection) 
> 	scheme, which does include a required-to-implement checksum type
> 	(Ken Raeburn)
> 
> 
> [**] Kerberos allows variable length checksum (section 5)
> 
> 	I'd have to go back and check, but I don't think we require that 
> 	a given checksum type have a fixed output size, so "leave X amount of 
> 	space and fill it with zero for computing the checksum" is questionable 
> 	too.  (Ken Raeburn)
> 
> 
> [*] Kerberos checksum is not deterministic (section 5)
> 
> 	The Kink description of how to verify a checksum assumes that
> 	Kerberos checksums are deterministic; this is not strictly required.
> 	(Sam Hartman)
> 
> 	let kcrypto specify how 
> 	to verify a checksum, as they're not required to be deterministic, so 
> 	the "compute it again and compare" approach specified in section 5 is 
> 	wrong  (Ken Raeburn)
> 
> 	The spec should describe how to verify checksum as follows.
> 
> 	To verify the checksum, the checksum is saved, and the
> 	checksum field is zeroed out.  The resulting message and the saved
> 	checksum are passed to the verification function.  If the verification
> 	fails, the message MUST be dropped.
> 
> 
> [*] Subsession keys (section 5 and 8)
> 
> 	Are subsession keys ignored?  (Ken Raeburn)
> 
> 
> [**] Checksum when KRB-ERROR occured (section 5.1.4 and 7.1)
> 
> 	Section 7.1 says the checksum in the KRB-ERROR message is not used,
> 	but section 5.1.4 says that KINK implementation MUST make use of
> 	keyed Kerberos errors.  But KRB-ERROR does not have checksum in it (at
> 	least with RFC 1510 or kerberos-clarifications).
> 	I think a correct phrase here is "KINK implementations MUST make use of
> 	a KINK Cksum field when returning KINK_KRB_ERROR and the appropriate
> 	service key is available."
> 
> 
> [**] KINK_ENCRYPT format (section 5.1.8)
> 
> 	The format of the encrypted part of KINK_ENCRYPT (section 5.1.8) is
> 	vague.  I think of using the output of raw encryption algorithms
> 	(i.e. E(confounder | plaintext | pad)) or using EncryptedData.
> 
> 	treat "encryption with 
> 	integrity protection" output as a whole, don't peek under the covers to 
> 	find a "checksum" part you can throw away  (Ken Raeburn)
> 
> 	drop references to the initialization vector  (Ken Raeburn)
> 
> 
> [*] Kerberos PFS (section 6.8)
> 
> 	Sec 6.8: "Kerberos in general does not provide FPS so it is somewhat 
> 	questionable whether a system which is heavily relying on Kerberos 
> 	benefits from PFS."  First, that sounds like it might be Security 
> 	Considerations material.  Second, I don't follow; explain please?
> 	(Ken Raeburn)
> 
> 
> [*] MUST/SHOULD in clock skew (section 7.1)
> 
> 	The time difference MUST be computed and SHOULD be stored 
> 	and used?  Why the different requirement levels?  (And is this sort of 
> 	thing in the domain of KINK or Kerberos?)  (Ken Raeburn)
> 
> 
> [**] prf (section 8)
> 
> 	Section 8 says "prf is the same hash algorithm found in the session
> 	ticket's etype", but krb-wg-crypto-07 defines hash as unkeyed.
> 	Fortunately krb-wg-crypto-07 defines a PRF for each etype, so KINK
> 	should use this PRF.
> 
> 	Use a prf 
> 	from kcrypto, don't assume the checksum operations are deterministic 
> 	hash functions  (Ken Raeburn)
> 
> 
> 
> [*] Key derivation (section 8)
> 
> 	The key derivation seems inconsistent with the crypto framework
> 	document.  (Sam Hartman)
> 
> 
> [*] Key usage
> 
> 	Usage of  kink should specify the key usage numbers for kerberos
> 	encryption.  (Sam Hartman)
> 
> 
> [*] 2401bis
> 
> 	section 4.4.1:
> 	Please make sure this discussion is aligned with 2401bis.  I think it
> 	may change small details but they seem to have adopted much of the
> 	same strategy kink uses.  The area wher I believe they speak to this
> 	issue is when you should rekey (timers etc)
> 
> 
> [*] IKEv2
> 
> 	Should we adopt IKEv2?
> 
> 	If we should...
> 	- IKEv2 does not have DOI, so how to handle the DOI field in the KINK
> 	  packet header should be described.
> 	- Use TS (Traffic Selector) instead of ID (Identification).
> 	- KEYMAT calculation is changed.
> 	- How to handle REKEY_SA Notify type.
> 
> 
> [*] behavior on KINK_ERROR
> 
> 	In implementor's point of view, I'd like to see initiator's
> 	behavior in receiving KINK_ERROR to be defined.
> 	For example:
> 	- When KINK_OK is received, initiator MAY act as if the KINK_ERROR
> 	  payload was not included in the messaged.
> 	- When KINK_BADQMVERS is received and the Cksum is verified,
> 	  initiator MAY retry in other Quick Mode version.
> 	- When one of other error codes is received and the Cksum is verified,
> 	  initiator SHOULD abort the negotiation.
> 
> 
> [-] I-D nits
> 
> 	Review the I-D nits and RFC authors docs.  I spotted a lot of 
> 	mechanical things (number of lines per page; avoid hyphenation; use 
> 	ragged right margin; need two spaces after sentence-ending period; fix 
> 	page numbers in table of contents; add section numbers to TOC) most of 
> 	which I think are specified in one of those documents.
> 	(Ken Raeburn)
> 
> 	the document needs to meet all the ID nits when it is
> 	submitted.  (Sam Hartman)
> 
> 
> [-] IANA considerations
> 
> 	I think the correct terminology is "port 
> 	number", not "port", and they're "assigned", not "created".  This 
> 	section says no new registries are required in the first paragraph, and 
> 	the third one specifies that IANA must create one (but without the 
> 	associated procedural data that is required nowadays).  Are the KINK 
> 	payload types and ISAKMP payload types actually ever used in the same 
> 	field?  If not, I don't think they need to come out of the same 
> 	registry.  (Ken Raeburn)
> 
> 
> [-] Wording/Terminology
> 
> 	Section 2 and 10.1.
> 	Kerberos is now using the term user-user rather than user-to-user.
> 	(Sam Hartman)
> 
> 	Section 2.
> 	Principals are not either client or service principals;
> 	they can and often do fill both roles.  (Sam Hartman)
> 
> 	Section 2, last paragraph.  "Between" is generally non-directional, 
> 	but in this case, a direction seems to be intended to be inferred; try 
> 	"from...to" instead.  (Ken Raeburn)
> 
> 	Section 3, English usage/grammar problems with the first two paragraphs.
> 	(Sam Hartman)
> 
> 	Section 3.
> 	   which allows a final acknowledgment message when the respondent needs
> 	   a full three-way handshake. This is only needed when the optimistic
> 	   keying route is not taken, though it is expected that that will not
> 	   be the norm. KINK also provides rekeying and dead peer detection as
> 	What is expected not to be the norm?  Please reword.
> 	(Sam Hartman)
> 
> 	Section 4.3, discussing attributes, mixes singular and plural 
> 	indications.  The word "lone" appears to be popular with the author, 
> 	too. :-)  (Ken Raeburn)
> 
> 	Sec 8: "By optional, it is meant..." is badly worded.  (Ken Raeburn)
> 
> 
> [-] References
> 
> 	The reference to [PKCROSS] is unnecessary, and only happens once, in 
> 	the introduction.  I'd suggest dropping it.  That's one less 
> 	unpublished I-D in the references section.  (Ken Raeburn)
> 
> 	[KRBREVS] is referenced but not listed in the references section.
> 	(Ken Raeburn)
> 
> 	Sec 5.1.7, next to last paragraph on page 21, is "IKE" (the 
> 	protocol) fuzzy about use of different SAs, or is it "[IKE]" (the 
> 	document)?  (Ken Raeburn)
> 
> 	Section 1:
> 	Remove the reference to pkcross or cite something outside the IETF.
> 	It's an expired ID without and active editor.  (Sam Hartman)
> 
> 	Section 1:
> 	Add an informative reference to IKE.  (Sam Hartman)
> 
> 	Section 2:
> 	Cite a reference for DER.  (Sam Hartman)
> 
> 
> [-] Typos
> 
> 	4.4.2. Dead Peer Detection
> 	In the fourth paragraph, "loose" is to be "lose".
> 
> 	5.1.1. KINK Padding Rules
> 	In the second item, "other other" is to be "other".
> 
> 	5.1.1. KINK Padding Rules
> 	The first item in the list should end with a period like 
> 	the others.  (Ken Raeburn)
> 
> 	5.1.5. KINK_TGT_REQ Payload
> 	In the third item, "krbtgt/REALM/@REALM" is to be "krbtgt/REALM@REALM".
> 
> 	5.1.6. KINK_TGT_REP Payload
> 	In the caption of Figure 13, "KINK_TGT_REQ" is to be "KINK_TGT_REP".
> 
> 	7.3. CREATE
> 	"IPspec" is to be "IPsec".
> 
> 	7.5. STATUS
> 	In the last paragraph, "REPLY KINK Header" should be in one line.
> 	In the last paragraph, "[KRB_ERROR]" is to be "[KINK_ERROR]".
> 
> 	overall:
> 	"'s" is used in some places where I'd use "s" for a plural form.
>
signature.asc (application/pgp-signature, 307 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iQCVAwUAQe/0ObMsDAj/Eq++AQKyVQP/SYy7InTgSviTkwj5zD3cCuhJoCY59Ejv
31NIJ2XJXVZNiTjETUx5T+x60YMczai+hCvNK6mJCiD8s3Z9DnlyOkXa6q7a4NkQ
Tf+ornB+ZcSS2WOX0O/judmbK2UcHcI3y5sK4CfvNXlrYzUzP3hHfz10nCUnk48d
UjELuRGAxL4=
=b3OQ
-----END PGP SIGNATURE-----