1.7: This also lead to -> This also led to

2.21.: EAP Failure cases are missing altogether. Also, the first paragraph says 
that if an auth failure occurs at the responder, AUTHENTICATION_FAILED is 
included in the protected response (to IKE_AUTH), while the last paragraph says 
it's a separate Informational exchange.

1.3.2 and 2.18 (IKE SA rekey) have lots of overlap. If we don't consolidate 
them, we should at least have them reference one another.

2.19: grammar: "it simply causes the Child SA creation *to* fail".

2.21.2: grammar: "in case an error happened *in* when processing"

2.23: what do we mean by this - "In addition, firewalls may be configured to 
pass IPsec traffic over UDP but not ESP/AH or vice versa"? This would be less 
confusing: "In addition, firewalls may be configured to pass UDP-encapsulated 
IPsec traffic but not plain, unencapsulated ESP/AH or vice versa".

2.23: "The recipient of either the NAT_DETECTION_SOURCE_IP or 
NAT_DETECTION_DESTINATION_IP notification MAY compare the supplied value to a 
SHA-1 hash of the SPIs, source IP address, and port, and if they don't match it 
SHOULD enable NAT traversal. In the case there is a mismatch of the 
NAT_DETECTION_SOURCE_IP hash with all of the NAT_DETECTION_SOURCE_IP payloads 
received, the recipient MAY reject the connection attempt if NAT traversal is 
not supported." In the first sentence, the comparison is not just with the 
source address/port. Also, while NAT-T is a MAY, once you decide that you 
implement NAT-T, this comparison becomes at least a SHOULD. "If they don't 
match it SHOULD enable NAT-T" contradicts an earlier MUST: "if a NAT is 
detected, both devices MUST send UDP encapsulated packets". And the second 
sentence doesn't make sense as pointed out before - if you recognize these 
payloads, then obviously you support NAT-T. Overall, the normative part of this 
section needs to be reworked.

2.23: replace the second-last bullet with a pointer to the subsequent 
subsection, on Transport Mode and NAT.

2.23: the last bullet (automatically updating the peer's IP address) is too 
important to be only mentioned as a side note. We should at least mention it in 
Sec. 2.6, following the sentence: "Incoming IKE packets are mapped to an IKE SA 
only using the packet's SPI, not using (for example) the source IP address of 
the packet."

2.24: what's this section (ECN) doing here? It is 100% IPsec, nothing to do 
with IKE. If there's a reason, let's explain it in the text.

3.1: "The Recipient SPI in the header identifies an instance of an IKE security 
association. It is therefore possible for a single instance of IKE to multiplex 
distinct sessions with multiple peers." In fact it's more than that, you can 
have multiple sessions with one peer! So I would rephrase: "The Recipient SPI 
in the header identifies an instance of an IKE security association. It is 
therefore possible for a single instance of IKE to multiplex distinct sessions 
with multiple peers, including multiple sessions per peer."

3.2: grammar: "by appending it" -> "by appending them" (or "each one").

3.2, "Next Payload": we say that the Encrypted payload gets a different Next 
Payload value. But then, we should also say (here or where describing the 
Encrypted payload) that the last *contained* payload gets a zero Next Payload 
value.

3.3.2: Tiger - we closed issue #33, but according to the text of the issue, 
should have left the algorithm "unspecified". Which I think would be much more 
accurate.

3.3.5: "Attributes described as fixed length MUST NOT be encoded using the 
variable-length encoding." This cannot be correct, a new 4-octet attribute will 
have to be encoded as variable-length. It won't fit into the other format.

3.3.6: "The initiator of an exchange MUST check that the accepted offer is 
consistent with one of its proposals, and if not that response MUST be 
rejected." We are not specifying how to reject such erroneous responses, so why 
not say: "The initiator of an exchange MUST check that the accepted offer is 
consistent with one of its proposals, and if not MUST terminate the exchange".

3.3.6: we somehow never say what you do when you receive a Transform ID (i.e. 
protocol) that you don't understand. This can be added to 3.3.6. E.g., change 
"Similarly, if the responder receives a transform that contains a Transform 
Attribute it does not understand..." to "Similarly, if the responder receives a 
transform that it does not understand, or one that contains a Transform 
Attribute it does not understand...".

3.5: "IPv6-only implementations MAY be configurable to send only ID_IPV6_ADDR." 
We probably don't mean it, but rather: "IPv6-only implementations MAY be 
configurable to send only ID_IPV6_ADDR, rather than ID_IPV4_ADDR, in addition 
to the other three types."

3.6: "DNS Signed Key" is marked Unspecified. Is it not RFC 4025? It's not used 
anywhere, but still...

3.6: [Hash and URL] "makes IKE less subject to denial of service attacks that 
become easier to mount when IKE messages are large enough to require IP 
fragmentation." This statement is hard to take seriously. When the certificate 
is NOT cached, this encoding eliminates a difficult-to-perform DOS attack, 
replacing it with a much easier one: stop the endpoint from obtaining the cert.

3.6: clarification, replace "Use the following ASN.1 definition for an X.509 
bundle" by "The "Hash and URL of a bundle" type uses the following ASN.1 
definition of an X.509 bundle:"

3.7: "If multiple CAs are trusted and the certificate encoding does not allow a 
list, then multiple Certificate Request payloads would need to be transmitted." 
This doesn't make sense: we are not sending the cert itself here. we're just 
sending an encoding on a CA. Moreover, the text further down indicates that the 
CA field is *always* a list - at least for the defined cert types (4, 12, 13). 
Overall, this looks like a placeholder, and I suggest to delete the sentence.

3.9: "The size of a Nonce" -> "The size of the Nonce Data".

3.10.1: "in any case where the offered proposal" -> "... proposals".

3.10.1: INVALID_SELECTORS is underspecified. It should be rate limited (I 
suppose), also, how long is the packet fragment included in the notification? 
In addition, Sec. 2.21.2 implies that it is sent during Child SA negotiation, 
which is not what 3.10.1 is saying.

3.14: "denoted SK{...} or E in this document" -> "denoted SK{...} in this 
document."

3.15: "type length values" -> "Type Length Value (TLV) structures".

3.15.1: "With IPv6, a requestor MAY supply the low-order address octets it 
wants to use." This means to me that you *don't* provide all 16 octets. But 
according to the table, the field is a fixed-length 16 octets!

3.15.2: "is in CFG_REQUESTs is unclear" - delete the first "is".

3.16: the text here, "...this field MAY be set to any value" implies that the 
Identifier field can be constant, e.g. always zero. But this would contradict 
RFC 3748, that says:

In order to avoid confusion between new Requests and retransmissions, the 
Identifier value chosen for each new Request need only be different from the 
previous Request, but need not be unique within the conversation.  One way to 
achieve this is to start the Identifier at an initial value and increment it 
for each new Request.  Initializing the first Identifier with a random number 
rather than starting from zero is recommended, since it makes sequence attacks 
somewhat more difficult.

4: what do we mean by "Ability to support various types of legacy 
authentication"? If we mean, "Ability to support EAP-based authentication", 
let's say so.

5: what do we mean by "leaves all SAs vulnerable to ... overrun of either 
endpoint"?

5: unfortunately we have to revise the text about group strengths - or remove 
it altogether. It is non-normative, so it's probably best to eliminate it.

6: the are not -> they are not.

B.1 (Group 1): We may want to add: "Use of this group is NOT RECOMMENDED."

C: I suggest to repeat at the top of this appendix this text from 2.5: 
"Although new payload types may be added in the future and may appear 
interleaved with the fields defined in this specification, implementations 
SHOULD send the payloads defined in this specification in the order shown in 
the figures in Sections 1 and 2; implementations MUST NOT reject as invalid a 
message with those payloads in any other order."
_______________________________________________
IPsec mailing list
IPsec@ietf.org
https://www.ietf.org/mailman/listinfo/ipsec

Reply via email to