> On Apr 26, 2017, at 12:50 PM, Tommy Pauly <tpa...@apple.com> wrote: > > Hi Ben, > > Thanks for the comments! Your point about the line in Section 6 not making > sense is definitely a good point. How about this text (changes in bold): > > If a TCP connection is being used to resume a previous IKE session, > the TCP Responder can recognize the session using either the IKE SPI > from an encapsulated IKE message or the ESP SPI from an encapsulated > ESP message. If the session had been fully established previously, > it is suggested that the TCP Originator send an UPDATE_SA_ADDRESSES > message if MOBIKE is supported, or an INFORMATIONAL message (a > keepalive) otherwise. [The TCP Responder MUST NOT accept any messages > for the existing IKE session on new an incoming connection unless that > connection > begins with the stream prefix. If either the TCP Originator or TCP > Responder > cannot parse valid IKE or ESP messages on a TCP encapsulation connection > that was started with a valid stream prefix, it MUST close the TCP > connection.] > If there is instead a syntax issue within an IKE > message, an implementation MUST send the INVALID_SYNTAX notify > payload and tear down the IKE SA as usual, rather than tearing down > the TCP connection directly. > > Thanks, > Tommy
That looks good to me. I will clear, with the assumption this or similar edits will make it into the draft. Thanks! Ben. > >> On Apr 26, 2017, at 8:35 AM, Ben Campbell <b...@nostrum.com> wrote: >> >> By the way, the DISCUSS vs COMMENT framing has gotten lost from the thread. >> Only the first point was part of the DISCUSS, the rest are non-binding >> comments. And I think the DISCUSS point is moving in the right direction, >> pending a text proposal. >> >> Thanks! >> >> Ben. >> >>> On Apr 26, 2017, at 8:57 AM, Kathleen Moriarty >>> <kathleen.moriarty.i...@gmail.com> wrote: >>> >>> On Tue, Apr 25, 2017 at 11:54 PM, Ben Campbell <b...@nostrum.com> wrote: >>>> >>>>> On Apr 25, 2017, at 9:38 PM, Kathleen Moriarty >>>>> <kathleen.moriarty.i...@gmail.com> wrote: >>>>> >>>>> Thanks for the quick response Paul, a few questions... >>>>> >>>>> On Tue, Apr 25, 2017 at 10:18 PM, Paul Wouters <p...@nohats.ca> wrote: >>>>>> On Tue, 25 Apr 2017, Kathleen Moriarty wrote: >>>>>> >>>>>>>> IIUC, the entire point of having the stream prefix is to allow the TCP >>>>>>>> responder to demux between this protocol, and some other protocol that >>>>>>>> would normally run on that port. Saying it MUST close the TCP session >>>>>>>> seems to completely remove that value. I assume people meant to allow >>>>>>>> the >>>>>>>> respondent to delegate a stream out to some other protocol handler if >>>>>>>> the >>>>>>>> prefix is not present? >>>>>>>> >>>>>>> >>>>>>> I believe that this is because there is presumed to be no other >>>>>>> service operating on the listening port (assuming a VPN concentrator), >>>>>>> but that's not explicitly stated either. >>>>>> >>>>>> >>>>>> Vendors tend to run TLS on the IKE/IPsec machine, either to offer one of >>>>>> the other kinds of SSL VPNs or as the administration interface or >>>>>> user interface. >>>>> >>>>> OK, sounds like I didn't help here, so the editors should propose text >>>>> to address this gap. >>>> >>>> I think we are on the right track here, pending proposed text. >>>> >>>>> >>>>>> >>>>>>>> -- 2nd to last paragraph: "This document leaves the selection of TCP >>>>>>>> ports up to implementations." >>>>>>>> I suspect "configurable local policy" would make more sense. Leaving it >>>>>>>> up to "implementations" leaves open the chance of different >>>>>>>> implementations making non-intersecting port choices, which doesn't >>>>>>>> help >>>>>>>> interoperability. >>>>>>> >>>>>>> >>>>>>> This may go more into unexplained assumptions... the clients >>>>>>> authorized to connect to the server would need to know the correct >>>>>>> port to establish a session and would be given that information >>>>>>> specific to the implementation. With this assumption, the above >>>>>>> should be fine... but editors/AD/WG, please correct me if I am wrong. >>>>>> >>>>>> >>>>>> I am pretty sure what is meant is "configuration" and not >>>>>> "implementation". >>>>> >>>>> Is that in response to me being wrong in my assumption or the draft >>>>> should say configuration (I think it's the latter, but important to >>>>> check)? >>>> >>>> We are probably splitting hairs on the meaning of “implementation” vs >>>> “configuration”. (and maybe “deployment”). I was thinking of >>>> “implementation” as being what developers do, and “configuring/deploying” >>>> as what operators do. But I am aware that operators sometimes talk about >>>> “implementing” a system. >>>> >>>> So my point was that I assume for purposes of interoperability that a >>>> general purpose client or server would allow the port to be changed in the >>>> field. >>>> >>>>> >>>>>> >>>>>>>> -4, first paragraph: What is the expected behavior from a peers that do >>>>>>>> not support this spec when they receive a TCP stream with the magic >>>>>>>> number on a port for some other protocol? >>>>>>> >>>>>>> >>>>>>> Maybe listing assumptions up front in the draft would help _IF_ the >>>>>>> assumption is that the listening server is a VPN concentrator that >>>>>>> wouldn't be listening for other services. >>>>>> >>>>>> >>>>>> Support for TCP would be based on preconfiguration, so the client knows >>>>>> this out-of-band. It cannot be discovered during negotiation, because >>>>>> it is assumed the regular UDP ports are blocked, which is the only >>>>>> reason to attempt TCP to begin with. >>>>> >>>>> I read the draft with this assumption in mind (see above), but this >>>>> should be clarified in the document to address this question from Ben. >>>> >>>> Imagine a misconfigured client opening a connection to an web server on >>>> port 80, expecting to find a VPN service. What happens? I think that a >>>> consequence of the design approach to allow this to run over ports >>>> assigned to other protocols is that you need to consider that sort of >>>> thing. >>>> >>>>>> >>>>>>>> - Appendix A: Doesn't the use of the NULL cipher invalidate one of the >>>>>>>> primary reasons to use TLS? (Namely to obscure the fact that this is >>>>>>>> not >>>>>>>> HTTP, or whatever other protocol is assigned to the port?) >>>>>>> >>>>>>> >>>>>>> Editors/AD correct me if I am wrong, but... >>>>>>> No, if TLS is used with a NULL cipher, it'll pass inspection of a >>>>>>> middle box validating the protocol. This doesn't need to use the >>>>>>> cipher as it's negotiating the IPsec connection. >>>>>> >>>>>> >>>>>> right, TLS happens to use encryption to get out, but it is not the >>>>>> encryption of the actual IKE/IPsec protocols, which keep using their >>>>>> own channel negotiations. >>>>> >>>>> I think clarifying this further in the draft would be helpful. >>>> >>>> I agree, because I’m still confused :-) >>>> >>>> To clarify my question: Assuming the case of TLS encapsulation to the >>>> HTTPS port across a DPI middle-box that hates that sort of thing. If TLS >>>> uses the NULL cipher, can the middlebox not tell that the protocol over >>>> TLS is not HTTP? (I will defer to the experts.) >>> >>> IPsec WG participants should chime in here, Yoav may know for sure >>> with his background, I'm sure others too. >>> >>> I'd guess that a DPI would not pick it up as the protocol inspection >>> most likely assumes when it sees TLS, that the traffic is encrypted >>> and looks no further for inspection/blocking purposes. The >>> middleboxes that do some protocol inspection aren't like the ones from >>> 15-20 years ago that dug into the protocol (blocking FTP commands, >>> etc.). >>> >>> The use of TCP 443 for this has been in place for a decade or two, >>> Google QUIC also uses TCP 443, and I'm sure other services do too. So >>> tunneling does work. >>> >>> For purity, are we worried if this is TLS or HTTP/TLS (as the port >>> usage specifies) or does that matter? >>> >>>> >>>> >>> >>> >>> >>> -- >>> >>> Best regards, >>> Kathleen >> > _______________________________________________ IPsec mailing list IPsec@ietf.org https://www.ietf.org/mailman/listinfo/ipsec