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
[email protected]
https://www.ietf.org/mailman/listinfo/ipsec