Re: [Tcpcrypt] New version of the charter text

ianG <iang@iang.org> Sun, 27 April 2014 21:01 UTC

Return-Path: <iang@iang.org>
X-Original-To: tcpcrypt@ietfa.amsl.com
Delivered-To: tcpcrypt@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 884091A06B7 for <tcpcrypt@ietfa.amsl.com>; Sun, 27 Apr 2014 14:01:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham
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 4G9bFb-feOwv for <tcpcrypt@ietfa.amsl.com>; Sun, 27 Apr 2014 14:01:20 -0700 (PDT)
Received: from virulha.pair.com (virulha.pair.com [209.68.5.166]) by ietfa.amsl.com (Postfix) with ESMTP id 3643F1A07CB for <tcpcrypt@ietf.org>; Sun, 27 Apr 2014 14:01:20 -0700 (PDT)
Received: from tormenta.local (iang.org [209.197.106.187]) by virulha.pair.com (Postfix) with ESMTPSA id 12C806D48F; Sun, 27 Apr 2014 17:01:18 -0400 (EDT)
Message-ID: <535D701E.6030004@iang.org>
Date: Sun, 27 Apr 2014 22:01:18 +0100
From: ianG <iang@iang.org>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.4.0
MIME-Version: 1.0
To: tcpcrypt@ietf.org
References: <53576572.5030805@it.uc3m.es> <535D636D.8050108@iang.org> <535D6BF2.6040304@it.uc3m.es>
In-Reply-To: <535D6BF2.6040304@it.uc3m.es>
X-Enigmail-Version: 1.6
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
Archived-At: http://mailarchive.ietf.org/arch/msg/tcpcrypt/5P1rbNBQjluD0oGuZ1tDjRJiGyo
Subject: Re: [Tcpcrypt] New version of the charter text
X-BeenThere: tcpcrypt@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Discussion list for adding encryption to TCP." <tcpcrypt.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpcrypt>, <mailto:tcpcrypt-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tcpcrypt/>
List-Post: <mailto:tcpcrypt@ietf.org>
List-Help: <mailto:tcpcrypt-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpcrypt>, <mailto:tcpcrypt-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 27 Apr 2014 21:01:28 -0000

On 27/04/2014 21:43 pm, marcelo bagnulo braun wrote:

>>> The high-level requirements for the protocol for providing TCP
>>> unauthenticated
>>> encryption and integrity protection are:
>>>
>>> - Deployable and usable without significant changes to existing Internet
>>>    infrastructure, in particular it must be compatible with NATs (at the
>>>    very minimum with the NATs that comply with BEHAVE requirements as
>>> documented
>>>    in RFC4787, RFC5382 and RFC5508);
>>>
>>> - The protocol must be usable by unmodified applications.  This effort
>>> is complementary
>>>    to other security protocols developed in the IETF (such as TLS) as it
>>> protects
>>>    those applications and protocols that are difficult to change or may
>>> even not
>>>    be changed in a backward compatible way.  It also provides some
>>> protection in
>>>    scenarios where people are unwilling to do any change just for the
>>> sake of
>>>    security (e.g., like configure encryption in an application).
>>>
>>> - When encryption is enabled, it must at least provide protection
>>> against
>>>    passive eavesdropping by default,
>>
>> So, in the above, we see the "When encryption is enabled," which is
>> repeated through out.  I would suggest this immediate above para be
>> swapped with the below para, as then the flowchart is more clear.  Then,
>> that phrase be dropped because it is an implementation detail.
>>
>> Like this:
>>
>>
>> - If encryption cannot be achieved, must gracefully fall-back to TCP.
>>
>> - Elsewise,


Perhaps here, insert:

Elsewise, all the following apply:


>> must at least provide protection against passive
>> eavesdropping by default,
>>
>> - must ...
>>
> 
> In the first version of the charter it was not explict that these things
> were required when encryption is enabled, and i received several
> comments about it, so i made it explicit. I think it is more imprtnat
> for the charter to be clear than to read nicely, so i think we should
> keep it.


Well, the point of putting the fall-back first is that there are two
modes of operation:  passthru and ENCRYPTED.  On starting up, the
protocol can enter either of these two states, but not transition
between them.  This choice dominates all to follow [0].

Then, for ENCRYPTED mode, all of the additional points apply.  For
passthru mode, none of the additional points apply.  So it's easier to
have the passthru mode listed first, then disposed of as far as further
writing is concerned.


>>> - Must gracefully fall-back to TCP if the remote peer does not
>>> support the
>>>    proposed extensions
>>>
>>> - When encryption is enabled, it must always provide forward secrecy.
>>>
>>> - When encryption is enabled, it must always provide integrity
>>> protection of the
>>>    payload data (it is open for discussion for the WG if the TCP header
>>> should or
>>>    not be protected)
>>>
>>> - When encryption is enabled, it must always provide payload encryption.
>>>
>>> - Should attempt to use the least amount of TCP option space.
>>
>> All of those above, and some below, are the sort of thing that any
>> protocol is going to aim for anyway.  They could be simply collapsed
>> into something like:
>>
>> - should provide the best mix possible of the following features:
>>     - forward and backward secrecy
>>     - encryption and integrity protection over the payload
>>     - most efficient use of the TCP option space
>>     - efficient performance, including restart using previously exchanged
>> keys
>>     - minimise scope for linkability and fingerprinting
>>     - synergies with other aspects such as multipath and fast open.
> 
> mmm, but the problem si that you are not making distinctions between
> thing we want to be mandatory (encryption) and other things that we
> would like but it is not clear how much we will achieve (like efficient
> use of option space ). To make a very silly example, if we dont do
> encryption, we do a very optimal use of the option space, but that is
> not what we want.
> 
>> Otherwise you're sort of teaching grandma to suck eggs, which is right
>> to do in a WG but not in the charter... ;)


This bit above!  If we need to remind someone doing a mandatory
encryption in a security protocol, then we've got another problem and we
shouldn't be in the job :)

Hence the early objections to the kill switch.


...
>>> - Hooks for allowing upper layers to disable encryption must be made
>>> available.
>>>    The protocol may try to avoid redundant encryption when it is
>>> possible
>>> e.g.
>>>    by detecting encryption performed by upper layers (notably, when TLS
>>> is used).
>>
>> Disagree.  The protocol may have it in there (sad!), and devs will have
>> this in their code for development phase, but mandating it is just
>> opening a can of worms.  Especially in the charter.
> 
> You think this should be a should?


Well.  I think the RFC should list it as a MAY so that people who read
it can be alerted to the fact that they had better figure out how this
happens and make sure it never happens on their watch.

I don't think it should be a SHOULD because I've yet to see a valid
reason for it.  All of the reasons so far presented have been handwavy,
very edge-case or development only.

And I don't see its place in the Charter.  It seems like cursing the
baby before its been born.



iang


[0] I am assuming these two exlusive modes.  This could be challenged.