Hi, Valery,

Thanks - I will confirm when the update is posted so this can be closed out.

Joe

—
Dr. Joe Touch, temporal epistemologist
www.strayalpha.com

> On May 24, 2022, at 4:27 AM, Valery Smyslov <s...@elvis.ru> wrote:
> 
> Hi Joe,
>  
> please see inline.
>  
> Regards,
> Valery.
>  
> From: to...@strayalpha.com <mailto:to...@strayalpha.com> 
> [mailto:to...@strayalpha.com <mailto:to...@strayalpha.com>] 
> Sent: Monday, May 23, 2022 6:14 PM
> To: Valery Smyslov
> Cc: tsv-art; draft-ietf-ipsecme-rfc8229bis....@ietf.org 
> <mailto:draft-ietf-ipsecme-rfc8229bis....@ietf.org>; ipsec@ietf.org 
> <mailto:ipsec@ietf.org>; last-c...@ietf.org <mailto:last-c...@ietf.org>
> Subject: [***SPAM***] Re: [Tsv-art] Tsvart last call review of 
> draft-ietf-ipsecme-rfc8229bis-06
>  
> Hi Valery,
>  
> Notes below.
>  
> Joe
> 
> 
> On May 23, 2022, at 4:53 AM, Valery Smyslov <s...@elvis.ru 
> <mailto:s...@elvis.ru>> wrote:
>  
> Hi Joseph,
> 
> thank for your review, much appreciated. More inline.
> 
> 
> Reviewer: Joseph Touch
> Review result: Ready with Issues
> 
> This document has been reviewed as part of the transport area review team's
> ongoing effort to review key IETF documents. These comments were written
> primarily for the transport area directors, but are copied to the document's
> authors and WG to allow them to address any issues raised and also to the IETF
> discussion list for information.
> 
> When done at the time of IETF Last Call, the authors should consider this
> review as part of the last-call comments they receive. Please always CC
> tsv-...@ietf.org <mailto:tsv-...@ietf.org> if you reply to or forward this 
> review.
> 
> Overall, this document adds useful clarifications to the original RFC on
> tunneling IPsec over TCP. There are a number of issues that should be 
> addressed
> as it proceeds, as noted below. All can be addressed relatively directly 
> (i.e.,
> none create new open issues).
> 
> General comments:
> 
> The document lacks (and would benefit from) a section providing details of the
> differences in this update.
> 
> Good point.
> 
> can add the following text at the end of 1.1:
> 
> In particular:
> o The interpretation of the Length field preceding every message is clarified
> o Use of NAT_DETECTION_*_IP notifications is clarified
> o Retransmission behavior is clarified
> o Using cookie and puzzles is described with more detail
> o Error handling is clarified
> o Implications of TCP encapsulation on IPsec SA processing are expanded
> o Interaction of TCP encapsulation with MOBIKE is clarified
> o Section describing interactions with other IKEv2 extensions is added
> o Recommendation for TLS encapsulation include using TLS 1.3
> 
> Is it OK?
>  
> Sure; it might also be useful to indicate the section where each is addressed 
> in most detail.
>  
>           Done.
>  
>> Figures should include captions.
> 
> I would leave this to RFC Editor (we tried to keep RFC 8229 text when 
> possible,
> and it doesn't have captions too).
>  
> The RFC Editor isn’t likely to care. These can be added without changing the 
> intent of RFC 8229; in most cases, the caption is fairly obvious from the 
> text.
>  
>           I’ve added titles for the figures defining headers and prefix 
> formats 
>           and removed anchors from figures in Appendix B (so they are now 
> “inline”).
>  
>> Given the new document adds primarily clarifications, it would be preferable 
>> if
>> the header numbering were not gratuitously modified vs. the original. The new
>> section 2 should be demoted to 1.2 as per the original; this would go a long
>> way to avoiding unnecessary confusion between the two.
> 
> OK, makes sense.
> 
> 
> Specific suggestions and concerns:
> 
> Section 3 clarifies the meaning of the 16-bit length field as including both
> the message and the message length field. This is counterintuitive and
> problematic, notably because ESP messages could be up to 65535 bytes long. 
> This
> possibility should be addressed (e.g., prohibit tunneling of messages over
> 65533 bytes).
> 
> This is a a good catch, we'll add this clarification.
> 
> 
> Section 4.2 claims the length cannot be 0 or 1 bytes; again, this suggests it
> might have been better to have the length field no include the length itself.
> 
> The design decision that length field includes both the message and the 
> message
> length was made back in 2016 when RFC 8229 was developed to align 
> it with 3GPP’s recommendation. We are not in a position to change this design.
>  
> Understood.
> 
> 
>> Regardless, it seems there are other lengths that are equally invalid (isn’t
>> there a min ESP header size? What about the IP packet header inside)? The 
>> true
>> min should be indicated.
> 
> TCP encapsulation is used for IKE too and "NAT keepalive" messages 
> may still be sent by IKE (even they are not needed for TCP), which are 1 byte 
> long.
>  
> It might be useful to mention that.
>  
>           This possibility is mentioned in Section 7.6. Added a clarification 
> referencing this section.
>  
> It's a good question whether empty messages (with Length = 2) are OK.
>  
>>> From receiver's point of view following the Postel's rule I'd simply ignore 
>>> them 
>> and don't tear down TCP...
>> 
>> Added a clarification for receiving empty messages.
>> 
>> 
>> Section 7.1 suggests closing idle TCP connections to clean up resources; this
>> is inconsistent with TCP’s basic premise (don’t clean it up until those
>> resources are used for a new connection). There should be a more direct 
>> reason
>> given for this change.
>> 
>> If a TCP connection is no more associated with any SA, then it SHOULD be 
>> deleted by TCP Originator. In some cases the TCP FIN/ACK messages 
>> will not reach the Responder (e.g. due to network problems), 
>> so this TCP connection will become an orphan on Responder, 
>> since no new traffic will ever be sent over it. 
>> We see no reason to waste Responder's resources in this case - this is the 
>> reason.
>> Note, that this recommendation is MAY, you are free to ignore it.
>  
> It might be useful to indicate that the reason is to conserve responder IPsec 
> resources, i.e., this is (to TCP) an application consideration, not a TCP one.
> 
> Done.
> 
> 
> Section 7.1 mentions a keep-alive; it would be useful to explain whether this
> is intended to use TCP keepalives or IPsec keepalives or both. It may also be
> important to indicate how these keepalives might interact. This might refer to
> the more detailed discussion in Section 7.6.
> 
> Section 7.1 talks about IKE keep-alive messages (more formally called 
> "liveness check" messages).
> The idea is that an encrypted and authenticated message must be received,
> so that the responder may learn new SPIs, so TCP keep-alives are not suited.
> 
> Will add clarification.
> 
> 
> Section 7.2 on retransmissions should explain the need for IPsec to continue 
> to
> retransmit messages even though the transport ensures reliable delivery (e.g.,
> that messages could be ignored or delayed elsewhere in receiver processing).
> 
> There is generally no need to do it (except for the situations when TCP 
> connection
> is replaced with a new one while waiting for the response). And Section 7.2 
> describes it very clear, we think. However, there is no harm if the initiator 
> retransmits 
> the request (following IKEv2 recommendations on exponential back-off between 
> retransmissions), 
> so some implementations might choose not to complicate retransmission logic 
> and always follow
> the same pattern regardless on the transport (note, that TCP encapsulation
> adds quite a lot of changes to IKE codebase, so it's a valid desire to 
> minimize them).
> Thus "SHOULD NOT" retransmit in the first button in 7.2.
>  
> It might be useful to indicate this rationale there.
> 
> Done.
> 
> 
> Section 7.7 discusses the relation of the IPsec DFs to the outer TCP DFs. As
> with all tunnels, there need be no direct relation. The outer TCP header acts
> as a link layer protocol and its frag/reassembly need have no correlation to
> the inner payload. Additionally, it is nonsensical to relate the two for TCP 
> as
> a tunnel because it does not preserve message boundaries of the carried IPsec
> traffic anyway. It might be useful to mention this, rather than indicating 
> this
> as “not possible”. (i.e., even if it were possible, it would be incorrect to 
> do
> so).
> 
> We believe that is exactly what Section 7.7 1-st bullet says.
> Do you want some specific text to be added here?
>  
> It might be useful to indicate that you’re doing what tunnels (not IPsec 
> tunnels) should be doing, not creating a new solution for this specific 
> approach.
>  
>           Added a clarification.
> 
> 
> (Note, that we are not in a position to discuss generic considerations
> of using tunnels, we just explain that what is required 
> by RFC 4301, is not possible with TCP. We don't want to discuss
> here whether RFC 4301 requirements are wrong).
>  
> RFC4301’s tunnels are not the tunnel you’re describing here; agreed that 
> those tunnel considerations are not relevant.
> 
> 
>> Section 10.1 indicates problems with TCP-in-TCP. It would probably be useful 
>> to
>> provide a citation with better treatment of this issue (e.g,,
>> https://www.spiedigitallibrary.org/conference-proceedings-of-spie/6011/1/Understanding-TCP-over-TCP--
>>  
>> <https://www.spiedigitallibrary.org/conference-proceedings-of-spie/6011/1/Understanding-TCP-over-TCP-->
>> effects-of-TCP-tunneling-on/10.1117/12.630496.short?SSO=1,
>> https://link.springer.com/chapter/10.1007/978-981-13-3329-3_32 
>> <https://link.springer.com/chapter/10.1007/978-981-13-3329-3_32>). This is 
>> more
>> commonly referred to as “TCP meltdown”; bufferbloat is a different phenomenon
>> with a different cause (in-network queuing that relies on tail-drop and/or
>> lacks ECN), and does not appear relevant to the issues presented in this
>> section.
> 
> We'd be happy to include good references, but It seems that both articles are 
> behind paywalls, 
> or at least require some subscription to be able to read. Do you have some 
> free references? 
> Or probably you can craft a proper text to be included in this section?
>  
> Being behind a paywall does not disqualify a document as an appropriate 
> citation, especially when that is the primary source.
>  
> Here’s from/to text:
>  
> FROM:
>    TCP-in-TCP can also lead to increased buffering, or bufferbloat.
>    This can occur when the window size of the outer TCP connection is
>    reduced and becomes smaller than the window sizes of the inner TCP
>    connections.  This can lead to packets backing up in the outer TCP
>    connection's send buffers.  In order to limit this effect, the outer
>    TCP connection should have limits on its send buffer size and on the
>    rate at which it reduces its window size.
> TO:
>  
>    TCP-in-TCP can also lead to “TCP meltdown”, where stacked instances 
>    of TCP can result in significant impacts to performance [Ho05].
>    For the case in this document, such meltdown can occur when the window 
> 
>    size of the outer TCP connection is smaller than the window sizes of the 
> inner TCP
>    connections.  The resulting interactions can lead to packets backing up in 
> the outer TCP
>    connection's send buffers.  In order to limit this effect, the outer
>    TCP connection should have limits on its send buffer size and on the
>    rate at which it reduces its window size.
> 
> Here’s the bibtex:
> @inproceedings{10.1117/12.630496,
> author = {Osamu Honda and Hiroyuki Ohsaki and Makoto Imase and Mika Ishizuka 
> and Junichi Murayama},
> title = {{Understanding TCP over TCP: effects of TCP tunneling on end-to-end 
> throughput and latency}},
> volume = {6011},
> booktitle = {Performance, Quality of Service, and Control of Next-Generation 
> Communication and Sensor Networks III},
> editor = {Mohammed Atiquzzaman and Sergey I. Balandin},
> organization = {International Society for Optics and Photonics},
> publisher = {SPIE},
> pages = {138 -- 146},
> keywords = {TCP, TCP over TCP, TCP tunnel, Performance Evaluation, Goodput, 
> Round-Trip Time},
> year = {2005},
> doi = {10.1117/12.630496},
> URL = {https://doi.org/10.1117/12.630496 <https://doi.org/10.1117/12.630496>}
> } 
>  
>               Thank you for the text!
>  
>>> Section 11 (security considerations) mentions the new vulnerability 
>>> introduced
>>> by the outer TCP layer, but only DoS via SYN-flooding. This connection is 
>>> also
>>> susceptible to RST and other spoofing attacks attacks (RFC4953), which 
>>> should
>>> be noted as well. Data injection attacks are not possible, but all the rest 
>>> of
>>> the TCP machinery remains vulnerable.
>> 
>> Good point, will add clarification and cite RFC 4953.
>> 
>> Regards,
>> Valery.
>> 
>> _______________________________________________
>> Tsv-art mailing list
>> tsv-...@ietf.org <mailto:tsv-...@ietf.org>
>> https://www.ietf.org/mailman/listinfo/tsv-art 
>> <https://www.ietf.org/mailman/listinfo/tsv-art>
>  
> -- 
> last-call mailing list
> last-c...@ietf.org <mailto:last-c...@ietf.org>
> https://www.ietf.org/mailman/listinfo/last-call 
> <https://www.ietf.org/mailman/listinfo/last-call>
_______________________________________________
IPsec mailing list
IPsec@ietf.org
https://www.ietf.org/mailman/listinfo/ipsec

Reply via email to