Re: [btns] Minor connection-latch problem in AUTH48

Nicolas Williams <Nicolas.Williams@sun.com> Fri, 16 October 2009 17:37 UTC

Return-Path: <Nicolas.Williams@sun.com>
X-Original-To: btns@core3.amsl.com
Delivered-To: btns@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 4D9F328C133 for <btns@core3.amsl.com>; Fri, 16 Oct 2009 10:37:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.315
X-Spam-Level:
X-Spam-Status: No, score=-5.315 tagged_above=-999 required=5 tests=[AWL=0.731, BAYES_00=-2.599, HELO_MISMATCH_COM=0.553, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9Gcn-CFZaCgc for <btns@core3.amsl.com>; Fri, 16 Oct 2009 10:37:17 -0700 (PDT)
Received: from brmea-mail-2.sun.com (brmea-mail-2.Sun.COM [192.18.98.43]) by core3.amsl.com (Postfix) with ESMTP id 46D043A67B8 for <btns@ietf.org>; Fri, 16 Oct 2009 10:37:17 -0700 (PDT)
Received: from dm-central-02.central.sun.com ([129.147.62.5]) by brmea-mail-2.sun.com (8.13.6+Sun/8.12.9) with ESMTP id n9GHbKN5029233 for <btns@ietf.org>; Fri, 16 Oct 2009 17:37:20 GMT
Received: from binky.Central.Sun.COM (binky.Central.Sun.COM [129.153.128.104]) by dm-central-02.central.sun.com (8.13.8+Sun/8.13.8/ENSMAIL, v2.2) with ESMTP id n9GHbKgt053963 for <btns@ietf.org>; Fri, 16 Oct 2009 11:37:20 -0600 (MDT)
Received: from binky.Central.Sun.COM (localhost [127.0.0.1]) by binky.Central.Sun.COM (8.14.3+Sun/8.14.3) with ESMTP id n9GHPwQq002011; Fri, 16 Oct 2009 12:25:58 -0500 (CDT)
Received: (from nw141292@localhost) by binky.Central.Sun.COM (8.14.3+Sun/8.14.3/Submit) id n9GHPvsm002010; Fri, 16 Oct 2009 12:25:57 -0500 (CDT)
X-Authentication-Warning: binky.Central.Sun.COM: nw141292 set sender to Nicolas.Williams@sun.com using -f
Date: Fri, 16 Oct 2009 12:25:42 -0500
From: Nicolas Williams <Nicolas.Williams@sun.com>
To: Michael Richardson <mcr@sandelman.ca>
Message-ID: <20091016172542.GG892@Sun.COM>
References: <20091015221608.GC907@Sun.COM> <6903.1255654458@marajade.sandelman.ca>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <6903.1255654458@marajade.sandelman.ca>
User-Agent: Mutt/1.5.7i
Cc: btns@ietf.org
Subject: Re: [btns] Minor connection-latch problem in AUTH48
X-BeenThere: btns@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Better-Than-Nothing-Security Working Group discussion list <btns.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/btns>, <mailto:btns-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/btns>
List-Post: <mailto:btns@ietf.org>
List-Help: <mailto:btns-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/btns>, <mailto:btns-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 16 Oct 2009 17:37:18 -0000

On Thu, Oct 15, 2009 at 08:54:18PM -0400, Michael Richardson wrote:
> 
> >>>>> "Nicolas" == Nicolas Williams <Nicolas.Williams@sun.com> writes:
>     Nicolas> The third highlighted sentence is the correct one: the IKE
>     Nicolas> exchange need not be triggered until the ULP sends a
>     Nicolas> packet.  The IKE exchange _can_ be triggered before then
>     Nicolas> (since the key manager knows, from the fact that
>     Nicolas> CREATE_CONNECTION_LATCH() was used, that that packet is
>     Nicolas> coming, but it doesn't need to be.
> 
>     Nicolas> Now, if the key manager waits for the ULP to send a packet
>     Nicolas> then the latch that gets created cannot have all parameters
>     Nicolas> filled in.  That is, we have a "larval" state to consider.
> 
> Right.
> 
>     Nicolas> Comments?
> 
> I have no other solution.  It all makes sense to me.

Thanks!

I've beautified the state machine figure a bit (no arrows cross now),
clarified the trigger events in the figure, and restored dotted lines
that I'd accidentally made non-dotted.  The new figure is below.

Anyone else have comments?

   <CREATE_LISTENER_LATCH(3-tuple, ...)>
                 :
                 :    <CREATE_CONNECTION_LATCH(5-tuple, ...)>
                 V          :     :       :
            /--------\      :     :       :
      +-----|LISTENER|--+   :     :       :
      |     \--------/  |   :     :       :
      |       |         |   :     :       :
      |       |         |   :  /------\   :
      |       |         |   :  |LARVAL|   :  +--------------------+
      |       |         |   :  \------/   :  |Legend:             |
      |       |         |   :   |   |     :  | dotted lines denote|
      |    <matching child  : <matching   :  |    latch creation  |
      |      SAs installed> :  child SAs  :  |                    |
      |     [e.g., for TCP] : installed>  :  | solid lines denote |
      |     [ SYN soon to ] : [e.g., TCP] :  |    state transition|
      |     [ be received ] : [ SYN sent] :  |                    |
      |       |         |   :   |   |     :  | semi-solid lines   |
      |       |         v   v   v   |     :  |    denote async    |
      |       |       /-----------\ |     :  |    notification    |
      |       |       |ESTABLISHED| |     :  +--------------------+
      |   <conflict>  \-----------/ |     :
      |       |         ^       |   |     :
      |       |         |     <conflict   :
      |       |    <conflict   or DPD>    :
      |       |     cleared>    |   |     :
      |       |         |       |   |     :
      |       |         |       v   v     v
      |       |       /---------------------\
      |       +------>|       BROKEN        |-.-.-.-> <ALERT()>
      |               \---------------------/
      |                      |
   <RELEASE_LATCH()>   <RELEASE_LATCH()>
      |                      |
      |                      v
      |                    /------\
      +------------------->|CLOSED|
                           \------/


Nico
--