Re: [tcpm] TCP-AO: Text for New_Key Process

Eric Rescorla <ekr@networkresonance.com> Mon, 02 February 2009 16:09 UTC

Return-Path: <tcpm-bounces@ietf.org>
X-Original-To: tcpm-archive@megatron.ietf.org
Delivered-To: ietfarch-tcpm-archive@core3.amsl.com
Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id E605F28C1A6; Mon, 2 Feb 2009 08:09:44 -0800 (PST)
X-Original-To: tcpm@core3.amsl.com
Delivered-To: tcpm@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id CF5013A6B99 for <tcpm@core3.amsl.com>; Mon, 2 Feb 2009 08:09:43 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.562
X-Spam-Level:
X-Spam-Status: No, score=-2.562 tagged_above=-999 required=5 tests=[AWL=0.037, BAYES_00=-2.599]
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 q1pttv+43azE for <tcpm@core3.amsl.com>; Mon, 2 Feb 2009 08:09:43 -0800 (PST)
Received: from romeo.rtfm.com (romeo.rtfm.com [74.95.2.173]) by core3.amsl.com (Postfix) with ESMTP id 03FF13A698A for <tcpm@ietf.org>; Mon, 2 Feb 2009 08:09:41 -0800 (PST)
Received: from romeo.rtfm.com (localhost.rtfm.com [127.0.0.1]) by romeo.rtfm.com (Postfix) with ESMTP id D178450822; Mon, 2 Feb 2009 08:26:02 -0800 (PST)
Date: Mon, 02 Feb 2009 08:26:02 -0800
From: Eric Rescorla <ekr@networkresonance.com>
To: Joe Touch <touch@ISI.EDU>
In-Reply-To: <498618DA.1070308@isi.edu>
References: <7.1.0.9.2.20081219010400.02bfd3d8@gmail.com> <496d9941.18038e0a.5558.ffffd3a6@mx.google.com> <497F7DDC.70309@isi.edu> <20090128162756.3799450822@romeo.rtfm.com> <B33C7F84-66B7-4F2C-9B04-2BC1716C7994@cisco.com> <498618DA.1070308@isi.edu>
User-Agent: Wanderlust/2.14.0 (Africa) Emacs/21.3 Mule/5.0 (SAKAKI)
MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka")
Message-Id: <20090202162602.D178450822@romeo.rtfm.com>
Cc: tcpm@ietf.org, Allison Mankin <mankin@psg.com>, skonduru@juniper.net
Subject: Re: [tcpm] TCP-AO: Text for New_Key Process
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://www.ietf.org/mailman/private/tcpm>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: tcpm-bounces@ietf.org
Errors-To: tcpm-bounces@ietf.org

At Sun, 01 Feb 2009 13:49:14 -0800,
Joe Touch wrote:
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> FYI - there's an important reason not to use a separate flag bit. Doing
> so requires parsing the bits of the incoming packet, i.e., this adds
> extra processing. It also indicates to everyone on the wire that a key
> change is pending; when using only the KeyID, no extra parsing is needed
> and the meaning of a changing key is opaque to those on the wire.

The extra parsing hardly strikes me as a severe burden and I don't
really understand why we would care if an observer knows that a key
change is imminent.


> Using a key flag means that one side can only ever tell the other end
> "ready to use the new key", not which key (if there could be more than
> one). That means that if you try it once and it fails and you want to
> try it again, you might have to wait MSL (a few minutes) to try it
> again, otherwise an old packet might indicate 'ready to receive the new
> key" for the wrong key.

Well, I don't really favor they ke flag approach, but it occurs to
me that this is easily fixed by replacing the key flag with a 
"ready to use" byte. Recall that the length of the MAC is tied
to the key so if you know the key-id you know the length of the
MAC. This makes the Length byte partly redundant. Accordingly,
you could have the following format:

 - Kind (1)
 - Length (1)
 - Key-ID (1)
 - Ready-keys [variable]
 - MAC

With ready-keys being a variable length field listing any keys which
are ready to use but haven't been used yet. This causes a slight
increase in the option size, but only during the transition period.


> Overall, using just the keyID value as the indicator seems much more
> flexible to and simple to me.

It's marginally simpler for the implementor of AO and a huge pain for
everyone else.

-Ekr
_______________________________________________
tcpm mailing list
tcpm@ietf.org
https://www.ietf.org/mailman/listinfo/tcpm