Here is my AD review for draft-ietf-ipsecme-ikev2bis-08. I read this
from the perspective of: I just picked this up how do I implement this.
I found nothing wrong with the protocol, but there were lots of things
that could be done to make this a bit easier to read (at least from my
perspective of not having been eating and sleeping IPsec for years). As
such, I consider all of my comments as editorial/nits.
Sec 1: "exchange" is introduced in the 4th paragraph but abandoned in
the 6th and 7th: r/"request/response"/"exchange".
Sec 1.1: (IKE is deployed right) r/IKE is expected to be used to
negotiate/IKE is used to negotiate
Sec 1.1.3: At the end of the last paragraph add: (see Section 2.23)
Sec 1.2: Should the 2nd and 3rd paragraph be swapped? Could also remove
one of the two references to Section 2.14 for derived keys and then add
the reference in later when SKEYSEED is introduced.
Sec 1.2: Sometimes initiator and responder are split out in the
notation/payload table and sometime they are not. There's also some
notations missing that are used later (e.g., "Derived" for SK_d, as well
as SK_pi, SK_pr, SK_ai, SK_er, SK_ei, SK_er, g^ir). Should the table be
expanded to include these other notations? Also, N and CP always uses
() in the figures so should () be in the table?
Sec 1.2: r/DH/Diffie-Hellman or r/Diffie-Hellman exchange
[DH]/Diffie-Hellman (DH) exchange [DH]
Sec 1.2/1.3/3.3.4/3.4/D.9: D-H group, DH group, DH Group?
Sec 1.2/2.6.1/2.13/2.15/3.4: (1.2) r/Diffie-Hellman group/Diffie-Hellman
(DH) group. (elsewhere) r/Diffie-Hellman group/DH group and
Diffie-Hellman Group/DH group and DH Group/DH group
Sec 1.2: Should there be some discussion about traffic selectors after
message #3 and #4? All of the fields are discussed except the TSi and
TSr fields.
Sec 1.2: 2nd paragraph after the 4th message refers to messages by
number # (also occurs later in the document). Should we add text that
says "later we sometimes refer to this as message number 1, 2, 3, or 4"?
Sec 1.2: 3rd to last paragraph mentions responses that do not prevent an
IKE_SA from being set up. Should the list (or a pointer to a list) of
messages that do prevent a set up be listed here?
Sec 1.2, 3rd to last para: r/The list of responses/The list of Notify
Message Types
Sec 1.2, 2nd to last para: r/(for example, AUTHENTICATION_FAILED)/(for
example, the AUTHENTICATION_FAILED Notify Message Type error is returned)
General: It would be really nice if the Notify Message Type (error vs
status) was included every time a Notify Message Type is discussed.
Sec 1.2, 2nd to last para: r/notification has/notification message has
Sec 1.2, 2nd to last para: r/the error indication/the Notify Message
Type indicating the error
Sec 1.2/1.3: The third paragraph in 1.2 is repeated as the second
paragraph in 1.3. Was this intentional?
Sec 1.3: The fourth paragraph says that an implementation MAY refuse all
CREATE_CHILD_SA requests within an IKE SA. Is there text somewhere that
says doing so will result in x, y, z?
Sec 1.3: r/the INVALID_KE_PAYLOAD/the INVALID_KE_PAYLOAD Notify payload
Sec 1.3 (last para): r/This notify/This NOTIFY message
Sec 1.3.1 (3rd para after response): r/NOT/not
Sec 1.3.1: r/Failure of an attempt to create/A failed attempt to create
Sec 1.3.3: r/Notify type/Notify Message Type
Sec 1.4.1: r/delete payloads/Delete payloads X2
Sec 1.4.1: r/Informational exchange/INFORMATIONAL exchange
Sec 1.4.3: r/Note that this specification nowhere specifies time
periods/Note that this specification does not specifies time periods
Sec 1.5: A reply is sent to "whence it came". Is that a loop or should
"it" be replace the "the request"? Text as follows: The message is a
response message, and thus it is sent to the IP address and port from
whence it came with the same IKE SPIs and the Message ID and Exchange
Type are copied from the request.
Sec 1.7: Figures and references are "bit more regular - are we giving
them more fiber? :) Not sure what you mean by regular - maybe uniform?
Sec 1.7: What is GMAC. I searched in the document and couldn't find it.
Is it supposed to be HMAC?
Sec 1.7: r/All of Section 2.25 was added to/Added Section 2.25 to
Sec 2: r/oversize UDP messages/oversized UDP messages
Sec 2.3: r/This Notify/This Notify Message Type
Sec 2.3 (last pra): Should the optional be OPTIONAL?
Sec 2.4: r/unprotected notifications/unprotected Notify messages
Sec 2.4: r/This notification/This Notify Message Type
Sec 2.4: Should INFORMATIONAL message be informational message. The
earlier section differentiated between "INFORMATIONAL exchange" and
"informational message."
Sec 2.4: I noted the same thing Elwyn did about the 4th paragraph.
Sec 2.4: r/There is a denial of service attack on the initiator of an
IKE SA that can be avoided if the initiator takes the proper care./If
the initiator takes proper care, then a denial of service attack on the
initiator can be avoided.
Sec 2.4 (X2)/2.6/2.21.1/2.21.4/2.23/3.6/3.10.1/5: r/denial of service/DoS
Sec 2.5: r/notification message/Notify Message Type
Sec 2.2/2.6: In 2.2 it's (I)nitiator in 2.6 it's I(nitiator). They
ought to be consistent.
Sec 2.6: is state and CPU exhaustion one attack or two? r/An expected
attack against IKE is state and CPU exhaustion/Expected attacks against
IKE are state and CPU exhaustion
Sec 2.6: r/if an implementation of a responder /if a responder
Sec 2.6: r/DOS/DoS
Sec 2.6: r/this notification/this Notify Message Type
Sec 2.7: r/combined mode/combined-mode X2
Sec 2.8.3: r/notify payload/Notify payload
Sec 2.8.3: r/notify payloads/Notify payloads
Sec 2.9: r/TS_UNACCEPTABLE/a Notify payload that contains TS_UNACCEPTABLE.*
Sec 2.9: r/SINGLE_PAIR_REQUIRED/a Notify payload that contains
SINGLE_PAIR_REQUIRED.
Sec 2.11: Often times, I've seen DH qualified with
ephemeral-ephemeral/ephemeral-static/static-static. Should it just be
"ephemeral DH"?
Sec 2.11: r/Since the computing of/Since computation of
Sec 1.2/2.16/App C: If AUTH is optional in message 3, shouldn't AUTH be
included as [AUTH] in Section 1.2 message 3?
If you're not going to do the previous change:
Sec 2.16: r/from message 3/from message 3 (compared to message 3 in
Section 1.2 that does include the AUTH payload).
Sec 2.18: Is it "DH transform" or "D-H transform"?
Sec 2.19: Which message 3, #3 in 1.2 is different than 2.16 or does it
not matter?
Sec 1.2/2.19: Shouldn't "[CP()]" be in message 3 and 4 in Section 1.2?
Sec 2.21.2, last sentence: I have the same question Elwyn has.
Sec 2.23: Sometimes "traffic selectors" is "Traffic Selectors".
Sec 2.23.1: r/it may hve a/it may have a
Sec 2.23.1: r/normally looks the/normally looks at the
Sec 2.23.1: (I think Elwyn also noted this) spell out first instance of
PAD/SAD
Sec 3.1: R(esponse) is (R)esponse in Sec 2.2; shouldn't it match 2.2?
Sec 3.1: Version isn't set by senders (is there some subtlety about it
not be an initiator?) and is ignored by responders. What good is this
field?
Sec 3.3: Should "proposal" and "transform" always be capitalized?
Sec 3.3: Spell out ESN on first use.
Sec 3.5: r/component,the/component, the
Sec 3.5: Should [X.501] an [X.509] be replaced by [PKIX]? PKIX profiles
these and PKIX certificates are referenced in section 4.
Sec 3.10: Notification Data they're either status or error types:
r/Notification Data (variable length) - Informational or error
/Notification Data (variable length) - Status or error
Sec 4: "PKIX Certificates" is used in Section 4, but
Sec 8.1: Update reference for 3280 to 5280.
App B: I did not verify the DH groups.
App D: I did not verify all that was said that was done was.
spt
_______________________________________________
IPsec mailing list
IPsec@ietf.org
https://www.ietf.org/mailman/listinfo/ipsec