Re: [dtn] Erik Kline's No Objection on draft-ietf-dtn-tcpclv4-23: (with COMMENT)

Benjamin Kaduk <kaduk@mit.edu> Thu, 03 December 2020 22:36 UTC

Return-Path: <kaduk@mit.edu>
X-Original-To: dtn@ietfa.amsl.com
Delivered-To: dtn@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B35173A0DCA; Thu, 3 Dec 2020 14:36:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.92
X-Spam-Level:
X-Spam-Status: No, score=-1.92 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2tdwIpjjUWnD; Thu, 3 Dec 2020 14:35:59 -0800 (PST)
Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E38413A0DCB; Thu, 3 Dec 2020 14:35:58 -0800 (PST)
Received: from kduck.mit.edu ([24.16.140.251]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id 0B3MZpbv024382 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 3 Dec 2020 17:35:55 -0500
Date: Thu, 03 Dec 2020 14:35:51 -0800
From: Benjamin Kaduk <kaduk@mit.edu>
To: Erik Kline <ek.ietf@gmail.com>
Cc: The IESG <iesg@ietf.org>, draft-ietf-dtn-tcpclv4@ietf.org, dtn-chairs@ietf.org, dtn@ietf.org, edward.birrane@jhuapl.edu
Message-ID: <20201203223551.GN64351@kduck.mit.edu>
References: <160697726664.8586.4102364235347318229@ietfa.amsl.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <160697726664.8586.4102364235347318229@ietfa.amsl.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/dtn/Sdff5YXYD_R4-vf5KdZWU9Cj9Xc>
Subject: Re: [dtn] Erik Kline's No Objection on draft-ietf-dtn-tcpclv4-23: (with COMMENT)
X-BeenThere: dtn@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Delay Tolerant Networking \(DTN\) discussion list at the IETF." <dtn.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dtn>, <mailto:dtn-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dtn/>
List-Post: <mailto:dtn@ietf.org>
List-Help: <mailto:dtn-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dtn>, <mailto:dtn-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 03 Dec 2020 22:36:01 -0000

On Wed, Dec 02, 2020 at 10:34:27PM -0800, Erik Kline via Datatracker wrote:
> 
> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
> 
> I'll not disagree with my predecessor, but "[[ discuss ]]" has some random
> thoughts that were rattling around in my head.
> 
> 
> [[ discuss ]]
> 
> [ section 4.* ]
> 
> * Instead of upgrading in-session to TLS after CH version and magic field
>   verification, Can the TLS session be negotiated first and perhaps quickly
>   closed based on some DTN-specific ALPN (perhaps "dtn")?
> 
>   Can the use of a DTN-specific ALPN be any help even with in-session TLS
>   upgrade (as currently described)?

This is an attractive idea, but seems like it would be quite messy in
practice -- it is (I assume) a goal to retain compatibility with older
TCPCL versions and negotiate the older one if needed, so even if you can
get away with trying TLS first, you still have to have a fall back to
plaintext; that, in turn, eliminates much of the security benefit of always
trying TLS.  What you end up with (AFAICT) ends up having the same
security properties as the current scheme, where you can have local policy
to always require CAN_TLS to be set, but otherwise you end up in a case
where you allow non-TLS connections based solely on unauthenticated traffic
on the wire (that is subject to tampering).

It's also tempting to define the "dtn" ALPN value, but then you have to
specify error handling for when you do the contact header exchange and
agree to start TLS, but then don't negotiate the "dtn" ALPN.  It just adds
another way to fail, and doesn't provide much value since the context of
the conact header already gives a strong indication of what you intend to
speak.

-Ben