Re: [nbs] NBS and TCP connection identification

Rémi Després <remi.despres@free.fr> Tue, 21 September 2010 14:22 UTC

Return-Path: <remi.despres@free.fr>
X-Original-To: nbs@core3.amsl.com
Delivered-To: nbs@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 8012928C0F0 for <nbs@core3.amsl.com>; Tue, 21 Sep 2010 07:22:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.325
X-Spam-Level:
X-Spam-Status: No, score=-1.325 tagged_above=-999 required=5 tests=[AWL=0.624, BAYES_00=-2.599, HELO_EQ_FR=0.35, MIME_8BIT_HEADER=0.3]
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 aRJCv2-LYZOU for <nbs@core3.amsl.com>; Tue, 21 Sep 2010 07:22:54 -0700 (PDT)
Received: from smtp22.services.sfr.fr (smtp22.services.sfr.fr [93.17.128.11]) by core3.amsl.com (Postfix) with ESMTP id 3FD503A6A50 for <nbs@ietf.org>; Tue, 21 Sep 2010 07:22:54 -0700 (PDT)
Received: from filter.sfr.fr (localhost [127.0.0.1]) by msfrf2222.sfr.fr (SMTP Server) with ESMTP id 52A71700008D; Tue, 21 Sep 2010 16:23:18 +0200 (CEST)
Received: from [192.168.0.20] (unknown [88.166.221.144]) by msfrf2222.sfr.fr (SMTP Server) with ESMTP id BED89700008F; Tue, 21 Sep 2010 16:23:17 +0200 (CEST)
X-SFR-UUID: 20100921142317781.BED89700008F@msfrf2222.sfr.fr
Mime-Version: 1.0 (Apple Message framework v1081)
Content-Type: text/plain; charset=iso-8859-1
From: =?iso-8859-1?Q?R=E9mi_Despr=E9s?= <remi.despres@free.fr>
In-Reply-To: <1285067950.2068.59.camel@bit>
Date: Tue, 21 Sep 2010 16:23:07 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <4BAD7BA5-F404-48BB-B20A-62811869D0BC@free.fr>
References: <4C97D9A8.2050001@oracle.com> <ACE9611A-9107-46EC-ADD2-56E553DC1C3A@ericsson.com> <4C9826D0.2060703@oracle.com> <1285067950.2068.59.camel@bit>
To: Javier Ubillos <jav@sics.se>
X-Mailer: Apple Mail (2.1081)
Cc: Christian Vogt <christian.vogt@ericsson.com>, nbs@ietf.org
Subject: Re: [nbs] NBS and TCP connection identification
X-BeenThere: nbs@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Name based sockets discussion list <nbs.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/nbs>, <mailto:nbs-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/nbs>
List-Post: <mailto:nbs@ietf.org>
List-Help: <mailto:nbs-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/nbs>, <mailto:nbs-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 21 Sep 2010 14:22:55 -0000

Le 21 sept. 2010 à 13:19, Javier Ubillos a écrit :
>> ...
> Perhaps I misunderstand your concern, but I'll try to answer.
> On the individual host, there is a change to the implementation in the
> sense that the 4-tuple is now 
> name, service (port), name service(port)
> instead of the prevous
> ip, port, ip port.

Whether names can be sufficient at the socket interface, in some circumstances, has IMHO to be investigated.
For example:
- a name resolved to an SRV record doesn't need an application-provided server port.
- ports of connection initiators
  . are in general not significant to server applications
  . may be changed by NATs in IPv4

> 
> There are no changes to the "on the wire" protocol.
> 
> There are two ways of doing this.
> 1. Hashing the name into something that fits into the ip-address field.
> 2. Having a specialized TCP implementation.
> 
> I promote alternative 2.

+1  on this choice
(as already expressed in another mail, with destination-AND-source names possibly conveyed by SYNs ).

Regards,
RD



> In fact, we already have that bit working in the prototype.
> 
>>> - Security-wise, the idea is to bind DNS names to IP addresses by
>>> means of a forward lookup in the DNS.  This gives the same level of
>>> security that we have for DNS-based applications today, except that
>>> the forward lookup would not just be done by the connection
>>> initiator, but also by the connection responder.  Where higher
>>> security is required, we recommend DNSSEC.  Thus we can avoid extra
>>> cryptographic identifiers.
>> 
>> If X can predict that A will talk to B (using port1/port2), then X can 
>> send a SYN claiming to have A's name (and port1) destined to B/port2.
>> Later when A sends its SYN something on B has to be able to resolve 
>> things. The easy way is to verify that the initiator actually "owns" the 
>> name A before creating the TCP state for A/port1.
>> 
>> I don't understand what you mean by the forward lookup being done by the 
>> responder. Clearly the responder can't do a forward lookup when it 
>> receives a SYN packet, because that can be used to DoS the responder out 
>> of existence.
> 
> Hmmm, you might have a point here.
> We're going to have to consider this more.
> 
> There are two ideas on the table:
> a) Do nothing. 
> b) When receiving a name in an option, resolve that name and compare
> IP's with the just received IP.
> 
> Case a) _will_ happen if the name is not a resolvable FQDN.
> Case b) ... perhaps this is an issue we need to look at.
> I need to do some readingup on the subject.
> 
>> 
>>> - Hosts that don't have a name registered in the DNS will derive a
>>> DNS name from their IP address.  This will give them session
>>> continuity, albeit no reachability.
>> 
>> But that doesn't allow them to use SHIM6 to move around.
>> A CBID as a name allows them to move around.
> 
> It does, in the most primitive scenario, one enters an IP into the
> name-based socket, and that IP is used just as a label.
> 
> // Javier
> _______________________________________________
> nbs mailing list
> nbs@ietf.org
> https://www.ietf.org/mailman/listinfo/nbs