Re: [tcpm] tcp-auth-opt issue: support for NATs

Joe Touch <touch@ISI.EDU> Sat, 02 August 2008 02:23 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 C2CDA28C1D9; Fri, 1 Aug 2008 19:23:57 -0700 (PDT)
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 CA5D928C1D9 for <tcpm@core3.amsl.com>; Fri, 1 Aug 2008 19:23:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.53
X-Spam-Level:
X-Spam-Status: No, score=-1.53 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, DATE_IN_PAST_06_12=1.069]
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 s4lDCQ2Gglyj for <tcpm@core3.amsl.com>; Fri, 1 Aug 2008 19:23:56 -0700 (PDT)
Received: from vapor.isi.edu (vapor.isi.edu [128.9.64.64]) by core3.amsl.com (Postfix) with ESMTP id F397028C1D4 for <tcpm@ietf.org>; Fri, 1 Aug 2008 19:23:55 -0700 (PDT)
Received: from [75.199.123.243] (243.sub-75-199-123.myvzw.com [75.199.123.243]) by vapor.isi.edu (8.13.8/8.13.8) with ESMTP id m722NWlh004283 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Fri, 1 Aug 2008 19:23:37 -0700 (PDT)
Message-ID: <48935FFD.4090805@isi.edu>
Date: Fri, 01 Aug 2008 12:11:57 -0700
From: Joe Touch <touch@ISI.EDU>
User-Agent: Thunderbird 2.0.0.16 (Windows/20080708)
MIME-Version: 1.0
To: Adam Langley <agl@imperialviolet.org>
References: <4890F4BE.6060302@isi.edu> <396556a20807301622l4cb33deuff73cd13d7a75ba1@mail.gmail.com> <4890FBE8.1020203@isi.edu> <396556a20807311700w1eda50b0o5da7ae52e6c1691a@mail.gmail.com>
In-Reply-To: <396556a20807311700w1eda50b0o5da7ae52e6c1691a@mail.gmail.com>
X-Enigmail-Version: 0.95.6
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
Cc: tcpm@ietf.org
Subject: Re: [tcpm] tcp-auth-opt issue: support for NATs
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-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: tcpm-bounces@ietf.org
Errors-To: tcpm-bounces@ietf.org

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1



Adam Langley wrote:
| On Wed, Jul 30, 2008 at 4:40 PM, Joe Touch <touch@isi.edu> wrote:
|> The current TSAD supports only a wildcard source port, which is
|> instantiated for the first connection received that matches. It expects
|> that the KMS installs additional keys as needed.
|
| I was assuming that the TSAD would support wildcards for source IPs
| and ports. I would also suggest that it's not a bad idea, although if
| it didn't happen, that's no problem.

My impression is that the overall system should support what TCP
supports, i.e., LISTEN on ANY in the same places TCP does. However, once
a connection is established, the connection key is fixed. Note that this
means the TSAD might allow wildcards in places the current draft doesn't
describe.

There are two possible solutions to work over NATs then:

1) install keys that are sufficiently wildcarded AND configure those
keys to ignore the addresses and ports

2) require the KMS to determine the appropriate keys to install on the
two ends, and compute the MAC based on the received socket pair

(I had thus far been assuming #2, FWIW)

<IHO>
#1 appears to have a few potential challenges:
	- once we omit the addresses and ports from the MAC,
	we can't assume that each connection's derived key
	is unique (it would depend only on the ISN pair) within
	a host

	- if keys are shared across a number of hosts,
	derived connection keys aren't unique across
	those hosts either. after an area reboot,
	non-randomized ISN generation might be leveraged
	to enable a replay attack

	- support for NATs assumes keys are installed in
	ways that support NATs
		i.e., the wildcards matter just as much
		as the 'ignore socket pair in MAC' setting

	- support for NATs appears to prohibit keys that
	depend on client addr or source ports, i.e., there
	would be no way to have different keys for different
	groups of clients

|> The above appears to require that the KMS deploy the same key for all
|> potentially overlapping NAT'd connections. This adds a requirement to
|> the KMS, but suggests that the pseudoheader is included or excluded for
|> all connections to a host from a given IP address. Is that what is
|> intended, or can you clarify? If that is what is intended, how can the
|> KMS enforce this?
|
| Indeed, something would have to arrange for the pseudoheader to be
| excluded from the MAC input when a packet matches a wildcard source IP
| rule. Also, the same key would indeed be used by many connections.
| Thus the key should rotate based on the time (once a minute would be
| reasonable.)

Key rotations (presumably you're talking about the master key) may
require some synchronization, which seems unlikely in the case of NATs
as well.

There are a few questions that may be useful to address to move forward:

	- is the use of wildcards/ingore addrs/ports compatible with
	the desire for unique per-connection keys?

	- is it OK to require that all NAT'd clients use the same
	key

	- is it OK to require that support for NATs means
	using wildcard'd keys?

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkiTX/0ACgkQE5f5cImnZrvanQCgmWWXXC76EzaTziol3sQUHavR
aNQAoOZ0qyS0NddQn4qMg5IAj85dFe41
=decj
-----END PGP SIGNATURE-----

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