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

Eric Rescorla <ekr@networkresonance.com> Tue, 03 February 2009 17: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 2355928C19D; Tue, 3 Feb 2009 09:09:26 -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 045AF28C16A for <tcpm@core3.amsl.com>; Tue, 3 Feb 2009 09:09:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.566
X-Spam-Level:
X-Spam-Status: No, score=-2.566 tagged_above=-999 required=5 tests=[AWL=0.033, 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 JquCHw0BRwHb for <tcpm@core3.amsl.com>; Tue, 3 Feb 2009 09:09:24 -0800 (PST)
Received: from romeo.rtfm.com (romeo.rtfm.com [74.95.2.173]) by core3.amsl.com (Postfix) with ESMTP id 0204328C167 for <tcpm@ietf.org>; Tue, 3 Feb 2009 09:09:24 -0800 (PST)
Received: from romeo.rtfm.com (localhost.rtfm.com [127.0.0.1]) by romeo.rtfm.com (Postfix) with ESMTP id 9417450822; Tue, 3 Feb 2009 09:25:46 -0800 (PST)
Date: Tue, 03 Feb 2009 09:25:46 -0800
From: Eric Rescorla <ekr@networkresonance.com>
To: Joe Touch <touch@ISI.EDU>
In-Reply-To: <49887760.4030407@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> <20090202162602.D178450822@romeo.rtfm.com> <1233596612.498730c436efe@webmail.isi.edu> <20090203041052.83BCF50822@romeo.rtfm.com> <4987D110.7020804@isi.edu> <20090203152834.712B350822@romeo.rtfm.com> <4988722D.9070104@isi.edu> <20090203170910.69A7E50822@romeo.rtfm.com> <49887760.4030407@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: <20090203172546.9417450822@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 Tue, 03 Feb 2009 08:57:04 -0800,
Joe Touch wrote:
> 
> Eric Rescorla wrote:
> > At Tue, 03 Feb 2009 08:34:53 -0800,
> >> OK, let's call the place where the connection info is stored the STORE.
> >>
> >> Then the steps still become:
> >>
> >> - - get the keyID from the packet
> >> - - go to the STORE to find out how long the MAC is
> >> - - pass the keyID and (optionstart + len - maclen)
> >>
> >> Still three steps, vs one:
> >>
> >> - - pass the keyID and (optionstart + 2)
> >>
> >> Note that the second way doesn't need to go to a separate table of
> >> information to figure out how to finish parsing the packet. Regardless
> >> of what you call it or where you put it, this takes multiple steps and
> >> consulting the STORE before you can pass the required information to the
> >> verification algorithm.
> > 
> > Again, I wouldn't construct the system this way.
> > 
> > Rather, you hang the information required to process each connection
> > off the connection itself. This is how pretty much every SSL/TLS stack
> > works.
> 
> I don't think you're seeing the extra work;

You're right, I'm not.


> you're focusing too much on
> the assumption that the STORE is in a single place. OK, so let's call
> the place where the properties of a connection are in TCB++ (note that
> the TSAD isn't the place you go for every packet; you can easily keep
> connection info in the TCB++, and an implementation probably will, and
> we already note that in the ID).
> 
> So the steps are still:
> 
> - - get the keyID from the packet
> - - check the TCB++ to figure out where the MAC is
> - - pass the keyID and (optionstart + len - maclen) to the algorithm
>
> The point is that you can't parse the option without extra info that is
> stored elsewhere - i.e., not in the packet. Whether it's central or in
> the TCB++ is not the point.

And again, so what? You can't *verify* the option without having the
key that corresponds to the key-id. The problem here is that you're
assuming an odd encapsulation boundary, namely:


> - - pass the keyID and (optionstart + len - maclen) to the algorithm

But this is not how I would build things, because it's more helpful to
have the key-id->MAC mapping in a common place rather, I would do this:

1. Get the key-id from the packet.
2. Look up the key-id in XXX to get the relevant algorithm info, namely:
   - algorithm 
   - key
   - MAC length
3. Pass (key, <MAC input>) to the MAC function.
4. Compare the result to the MAC

With this design, it's trivial to add a step 2(b):

2(b): strip off the extra key-ids.


That said, I consider this discussion basically irrelevant: the right
question is whether it's important for this protocol to offer some
automatic mechanism for key switchover [and no, I don't think your
mechanism qualifies because it requires some external intervention
either from users or from some (nonexistent) key management system].
If the answer is yes, then we need to figure out what the best way
to do that is [and as it happens, I'm not that enamored of this
approach.] Certainly implementation complexity factors into what
the best way to do it is, but given the scale of complexity we're
talking about, I don't think it's a meaningful consideration for
whether we should add this type of functionality at all.

-Ekr


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