[tcpm] possible NAT support for TCP-AO

Joe Touch <touch@ISI.EDU> Mon, 13 July 2009 20:58 UTC

Return-Path: <touch@ISI.EDU>
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 62FB328C36F for <tcpm@core3.amsl.com>; Mon, 13 Jul 2009 13:58:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.495
X-Spam-Level:
X-Spam-Status: No, score=-2.495 tagged_above=-999 required=5 tests=[AWL=0.104, 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 fFFlP02TtWaO for <tcpm@core3.amsl.com>; Mon, 13 Jul 2009 13:58:04 -0700 (PDT)
Received: from vapor.isi.edu (vapor.isi.edu [128.9.64.64]) by core3.amsl.com (Postfix) with ESMTP id 6E98E28C4BE for <tcpm@ietf.org>; Mon, 13 Jul 2009 13:58:04 -0700 (PDT)
Received: from [75.217.188.140] (140.sub-75-217-188.myvzw.com [75.217.188.140]) by vapor.isi.edu (8.13.8/8.13.8) with ESMTP id n6DKwKWJ003549; Mon, 13 Jul 2009 13:58:22 -0700 (PDT)
Message-ID: <4A5B9FEB.6080706@isi.edu>
Date: Mon, 13 Jul 2009 13:58:19 -0700
From: Joe Touch <touch@ISI.EDU>
User-Agent: Thunderbird 2.0.0.22 (Windows/20090605)
MIME-Version: 1.0
To: tcpm Extensions WG <tcpm@ietf.org>
X-Enigmail-Version: 0.95.7
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
Subject: [tcpm] possible NAT support for TCP-AO
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: <http://www.ietf.org/mail-archive/web/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>
X-List-Received-Date: Mon, 13 Jul 2009 20:58:05 -0000

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

Hi, all,

Based on a discussion on a different list with Dan Wing, I'd like to
revisit thinking about NATs in the context of the current AO, which uses
traffic keys derived from the socket pair and ISN pair. We might be able
to now support NATs as follows, e.g.:

	add the following flags to the MKT:

		localNAT flag - indicates whether the local IP/port are
			zeroed before MAC calculation

		remoteNAT flag - indicates whether the remote IP/port
			are zeroed before MAC calculation

	add steps to the incoming/outgoing processing:
		zero the corresponding IP/port when the flag indicates,
		both on outgoing and incoming MAC calculation

That's basically it. A client behind a NAT would have a MKT with
localNAT true, and a server for that client would need to have a MKT
with remoteNAT true. This does require careful MKT configuration.
Although I wouldn't expect both localNAT and remoteNAT to be true, there
isn't a particular reason it needs to be prohibited.

Here's the security impact:

	- no impact to other connections (AFAICT)

	- SYN/SYN-ACKs limited only as much as the MKT TCP connection
	ID is, i.e., as a small range or single value rather than
	wildcard for either address or port

	- connections are reasonably well-protected once established,
	much like BTNS (due to use of both ISNs in the traffic keys)

	- reduced entropy for the traffic keys from a given MKT,
	since their input could be limited to the ISN pair in the
	worst case

I did NOT include this in TCP-AO-05, but it's simple enough to add if
useful. I'd like to ask that we think about this before Stockholm, and
discuss it on the list if possible in advance.

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

iEYEARECAAYFAkpbn+sACgkQE5f5cImnZru8uwCeLaty+1z8+Qnrzg8L3G82SFO0
4WEAoJ00Ww9omlO9ggb58lW064tDMqxl
=3Z2o
-----END PGP SIGNATURE-----