[anonsec] Comments on connection latching draft

Sam Hartman hartmans-ietf at mit.edu
Thu Dec 6 16:08:36 PST 2007


>>>>> "Nicolas" == Nicolas Williams <Nicolas.Williams at sun.com> writes:

    Nicolas> On Thu, Dec 06, 2007 at 06:38:36PM -0500, Sam Hartman
    Nicolas> wrote:
    >> What is the purpose of the connection states?  I see them
    >> enumerated but never used.

    Nicolas> To help describe the process by which latches are created
    Nicolas> and torn down.

Then actually use the states in section 2 etc.

    >> Why must implementations make available nat state?  I'm
    >> unconvinced that is well enough defined to actually be useful.

    Nicolas> I think this is Michael's requirement.

    >> o Any IPsec channel created with a given peer while another
    >> distinct, established IPsec channel exists with the same source
    >> and destination addresses SHOULD be bound to the same peer.
    >> 
    >> 
    >> How does this interact with nats?

    Nicolas> Hmmm, badly :)

    >> Is it really desirable?

    Nicolas> It's a mitigation for BTNS clients using non-channel
    Nicolas> binding applications with multiple TCP connections.  It's
    Nicolas> not important to me, and I'll be glad to remove it.

    >> It seems like the BITS model plus proprietary extensions might
    >> work for channel binding.

    Nicolas> That's native IPsec built with BITS components.

    >> Section 2.1: What does it mean for connection latches to be
    >> broken?

    Nicolas> That ULPs (and applications) are informed.  ULPs are
    Nicolas> informed synchronously, so they can close/reset the
    Nicolas> connection before any subsequent packets can be accepted.

    >> Section 2.1: define what a conflicting latch is; you use the
    >> term several times but don't define it.  There is what I think
    >> is a definition but it is not associated with the term.

    Nicolas> Here:

    Nicolas>     o Create a connection latch object for a ULP 5-tuple
    Nicolas> (local and remote address, protocol and local and remote
    Nicolas> port numbers).  This operation succeeds when no
    Nicolas> conflicting connection latch objects exist and when there
    Nicolas> exist no child SAs encompassing the given 5-tuple or when
    Nicolas> all such SAs are with the same peer and equal quality of
    Nicolas> protection.  The key manager SHOULD attempt to create a
    Nicolas> suitable SA pair if one does not already exist; if it
    Nicolas> does then it MUST use the 5-tuple as the initial traffic
    Nicolas> selectors of the proposed child SAs.

    Nicolas> s/no conflicting connection latch objects exist/no
    Nicolas> connection latch exists already with the same 5-tuple/

    Nicolas> I.e., "conflicting connection latch" there means that a
    Nicolas> latch with the same 5-tuple as the proposed new latch
    Nicolas> already exists.  The latch manager can know this while
    Nicolas> the ULP cannot, which is why the latch manager checks
    Nicolas> this.

    Nicolas> So far I'm putting latch management in the same place as
    Nicolas> key management, but this is very abstract -- it need not
    Nicolas> translate into latch management being done by an IKE
    Nicolas> daemon.



More information about the ANONSEC mailing list