Re: [tcpinc] Eric Rescorla's Discuss on draft-ietf-tcpinc-tcpeno-13: (with DISCUSS and COMMENT)

"Black, David" <David.Black@dell.com> Tue, 14 November 2017 03:03 UTC

Return-Path: <David.Black@dell.com>
X-Original-To: tcpinc@ietfa.amsl.com
Delivered-To: tcpinc@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A28B61286B1; Mon, 13 Nov 2017 19:03:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.72
X-Spam-Level:
X-Spam-Status: No, score=-2.72 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=dell.com header.b=imXRzeCT; dkim=fail (1024-bit key) reason="fail (message has been altered)" header.d=rsa.com header.b=X/ABDsvi
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 lW1V69SAxF2M; Mon, 13 Nov 2017 19:03:33 -0800 (PST)
Received: from esa8.dell-outbound.iphmx.com (esa8.dell-outbound.iphmx.com [68.232.149.218]) (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 EFC9E1242F7; Mon, 13 Nov 2017 19:03:32 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=dell.com; i=@dell.com; q=dns/txt; s=smtpout; t=1510628613; x=1542164613; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=3D7VEeGNPF3v/Nv3mqd8wcyeQqUWrweqNZvCehJJtqI=; b=imXRzeCT18MktdStS/9bOAo5APdsP3PluOWXvl/s1OsmedeEQo2D4Oiy 6vpjsSzUPdnd/WgsbZLAPh8sRI0PDnceDwPsvO5kN4QaRigg85OzIQy16 jXSHIiydi7yrhHR/qWdyRgLiNTEip/D269lTnDkw25zN7c+9EiCN1rFiz s=;
IronPort-PHdr: 9a23:yJoe/RC3IL6D4Cu7z6PvUyQJP3N1i/DPJgcQr6AfoPdwSP37r8WwAkXT6L1XgUPTWs2DsrQf2rqQ6/iocFdDyK7JiGoFfp1IWk1NouQttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBXdrXKo8DEdBAj0OxZrKeTpAI7SiNm82/yv95HJbQhFgDmwbaluIBmqsA7cqtQYjYx+J6gr1xDHuGFIe+NYxWNpIVKcgRPx7dqu8ZBg7ipdpesv+9ZPXqvmcas4S6dYDCk9PGAu+MLrrxjDQhCR6XYaT24bjwBHAwnB7BH9Q5fxri73vfdz1SWGIcH7S60/VC+85Kl3VhDnlCYHNyY48G7JjMxwkLlbqw+lqxBm3oLYfJ2ZOP94c6jAf90VWHBBU95RWSJfH428c4UBAekPPelaronyu1QBoACkCgWwAO7i0CNEimP00KA8zu8vERvG3AslH98WvnjZsdH1O70OXuC21KXD0DvNYOlI2Tf89YfEfA0qrPaCU71qb8rRyFQgGxnYg1WUs4PqIzCV2/8QvGeF6+pgUfijhHIgqwF0uzWiwNonhIrRho8Ny13J9j91zJg7KNGmUkJ3fN6pHZRKuyyeM4Z6Wt4uT31ytCon1rELuYS3cSsQxJg6yRPSa+SLc4aW7R/gSOqcJDJ1iXFqdb+7iRa/9EitxfDmWcWq1VtGszdJncLJu30C2RHe6ciKR/1g9Um7wzmPzRrc6uRcLEAxkqrUNoAuz6YrlpoWrUTDBij2mFjqjKOOdkUr5Oyo6+P/b7r4vZ+TLY55hhvjPaswnsy/Bf00Mg8TX2iH4uu806Dj/UvkT7lUlPE2k7HZsJDfJcUUvKK2HwhV0oM75xa+CTepzsgYkGEGIV9GYh6LkYbkN0/ULPzlDfqyjE6gnTNvyvzeO73uGJTNLnzNkLf7erZ97lZRxgQpwtBB5pJbF6sNLe/3WkDrqNPYDQQ0PBGqzObjDNVxzJ8RWWWKAqOBKqPdrUeI5v4zI+mLfIIapSz9JOIr5/7ylHM5mEESfbWn3ZcOdHC3AuxmI0SfYXXwm9sBDXsFvhIgQ+zsj12PSj9TaGiuX6Iy/D07D5imDYjbTIC3nLOBxDu7HoFRZm1eC1CDD2zod4qfVvcNdi2SPsFhniYDVbi7RI8rzQuuuxPiy7p7MurU/TUVtY7/29ht5u3Tkw09+SVoAMSdyW6NTnt0nngTSj83wq9/vUJ9xk2E0ahijPxSDcZT6O9RUgcmKZ7cyPR3C8zuVQLZf9eJTkqpT86nAT4vUtIxzcUCY0FnG9Wt3Vj/2H+HGb4e34aGH5cz6KbVlyz8JNxV0WrI0e8qiFxwBoNjPHOniuZa/hrSCpTEiA3Nm6PvcaUHwGvR/3+I13uWoGlDWxU2SrnMW34YfEeQoNjksBDsVbirXP4NNgJKyorKBqJUa9GjxQFqTeniNJL0Z2u6mE+8CBKMgLiLady5KC0mwCzBBR1cwEgo9nGcOF17X3/5rg==
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A2FHAABYXApah2Oa6ERaAQ4OAQEBBAEBCgEBgkQiIYECEG4nB4N3ih+PL4F9fpVSghEKhTsCGoRLPxgBAQEBAQEBAQEBAhABAQEKCwkIKC+COCQBDWg3KQIPQQEBGAEBAQECARoJChMfDA4BBAsCAQYCDgMEAQELDwIFBwMCAgIwFAkIAgQBDQUIDIkqXAgBjVedaIIngxCIAAEBAQEBAQEBAQEBAQEBAQEBAQEBARUIgzR9ERAYUYFWgWiCdTWFGQwoJwGCNzGCModgg1OGOpA8BgKPOZkLlXcCBAIEBQIagTkfgit6XoJkCYJSARAMGYEPP3eHOIERAQEB
X-IPAS-Result: A2FHAABYXApah2Oa6ERaAQ4OAQEBBAEBCgEBgkQiIYECEG4nB4N3ih+PL4F9fpVSghEKhTsCGoRLPxgBAQEBAQEBAQEBAhABAQEKCwkIKC+COCQBDWg3KQIPQQEBGAEBAQECARoJChMfDA4BBAsCAQYCDgMEAQELDwIFBwMCAgIwFAkIAgQBDQUIDIkqXAgBjVedaIIngxCIAAEBAQEBAQEBAQEBAQEBAQEBAQEBARUIgzR9ERAYUYFWgWiCdTWFGQwoJwGCNzGCModgg1OGOpA8BgKPOZkLlXcCBAIEBQIagTkfgit6XoJkCYJSARAMGYEPP3eHOIERAQEB
Received: from esa6.dell-outbound2.iphmx.com ([68.232.154.99]) by esa8.dell-outbound.iphmx.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Nov 2017 21:03:09 -0600
From: "Black, David" <David.Black@dell.com>
Received: from mailuogwhop.emc.com ([168.159.213.141]) by esa6.dell-outbound2.iphmx.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Nov 2017 09:02:55 +0600
Received: from maildlpprd05.lss.emc.com (maildlpprd05.lss.emc.com [10.253.24.37]) by mailuogwprd05.lss.emc.com (Sentrion-MTA-4.3.1/Sentrion-MTA-4.3.0) with ESMTP id vAE32jqH019864 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 13 Nov 2017 22:02:54 -0500
X-DKIM: OpenDKIM Filter v2.4.3 mailuogwprd05.lss.emc.com vAE32jqH019864
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=rsa.com; s=jan2013; t=1510628574; bh=E1UD8TZFPHxgOew6C9KKr4cn9hM=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=X/ABDsviuYtnTqiWDZtIkICDk1mNR5ypx12JJVyTlHgSzU6hYiGTK3VK1D/AurzVX tHqdVMHafqdql/q+c9tjjUexblNrGNzWAxp/clRoGO3V872hvE/G7CrX7YaYEIOgDm qub4d3p0hrHilCsvkv+LlnUDLAI2wjIfEmNGXYTo=
X-DKIM: OpenDKIM Filter v2.4.3 mailuogwprd05.lss.emc.com vAE32jqH019864
Received: from mailusrhubprd53.lss.emc.com (mailusrhubprd53.lss.emc.com [10.106.48.18]) by maildlpprd05.lss.emc.com (RSA Interceptor); Mon, 13 Nov 2017 22:02:17 -0500
Received: from MXHUB309.corp.emc.com (MXHUB309.corp.emc.com [10.146.3.35]) by mailusrhubprd53.lss.emc.com (Sentrion-MTA-4.3.1/Sentrion-MTA-4.3.0) with ESMTP id vAE326nD012208 (version=TLSv1.2 cipher=AES128-SHA256 bits=128 verify=FAIL); Mon, 13 Nov 2017 22:02:22 -0500
Received: from MX307CL04.corp.emc.com ([fe80::849f:5da2:11b:4385]) by MXHUB309.corp.emc.com ([10.146.3.35]) with mapi id 14.03.0352.000; Mon, 13 Nov 2017 22:02:21 -0500
To: Eric Rescorla <ekr@rtfm.com>, David Mazieres <dm-list-tcpcrypt@scs.stanford.edu>
CC: "tcpinc@ietf.org" <tcpinc@ietf.org>, Kyle Rose <krose@krose.org>, "tcpinc-chairs@ietf.org" <tcpinc-chairs@ietf.org>, "Mirja Kuehlewind (IETF)" <ietf@kuehlewind.net>, The IESG <iesg@ietf.org>, "draft-ietf-tcpinc-tcpeno@ietf.org" <draft-ietf-tcpinc-tcpeno@ietf.org>
Thread-Topic: [tcpinc] Eric Rescorla's Discuss on draft-ietf-tcpinc-tcpeno-13: (with DISCUSS and COMMENT)
Thread-Index: AQHTWpFI+r6/uZGf7EaERFdyZEp+YKMQLzowgABZgQCAACMUgIAAAKYAgAAE5YCAANlEoIAAWgoA//+w/FCAAKv8gP//vj6AgAD9N4CAACDegIAADGyQ
Date: Tue, 14 Nov 2017 03:02:20 +0000
Message-ID: <CE03DB3D7B45C245BCA0D243277949362FD4FC09@MX307CL04.corp.emc.com>
References: <151036581280.449.10740505473540594433.idtracker@ietfa.amsl.com> <CE03DB3D7B45C245BCA0D243277949362FD495EF@MX307CL04.corp.emc.com> <CABcZeBPfk6Pi=_UPvTBaS9jQBYjExUdqkdX5Q--iUuyCv_qZtw@mail.gmail.com> <CAJU8_nWpVhm4oTT+SLyG-nk=ww7nBU-DaVe86rUU-LGGqJvHvQ@mail.gmail.com> <CABcZeBO0TD0KnpTfe6CbHUoiS=FmGiGW6r_mFMH_9bYFWKqKLA@mail.gmail.com> <CABcZeBNp=1c1cx0+nJezjWy_Q4N9-PUeQuqOU_k7A7KhRj18EQ@mail.gmail.com> <CE03DB3D7B45C245BCA0D243277949362FD4BB57@MX307CL04.corp.emc.com> <CABcZeBPL2mVFtsL77Bdr=BUf7cb+qe_+Wxq42AtoohHmSmJaCg@mail.gmail.com> <CE03DB3D7B45C245BCA0D243277949362FD4BDAB@MX307CL04.corp.emc.com> <877euu7hy0.fsf@ta.scs.stanford.edu> <CE03DB3D7B45C245BCA0D243277949362FD4D450@MX307CL04.corp.emc.com> <87vaieow9k.fsf@ta.scs.stanford.edu> <CABcZeBPxOaK3DN5u0ohizt8rAQ+tShMuOcdpJBJ-2fmMJuQWgA@mail.gmail.com>
In-Reply-To: <CABcZeBPxOaK3DN5u0ohizt8rAQ+tShMuOcdpJBJ-2fmMJuQWgA@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.105.8.135]
Content-Type: multipart/alternative; boundary="_000_CE03DB3D7B45C245BCA0D243277949362FD4FC09MX307CL04corpem_"
MIME-Version: 1.0
X-Sentrion-Hostname: mailusrhubprd53.lss.emc.com
X-RSA-Classifications: public
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpinc/ilQq2yhoQhjmf7Oq8pzeNTbuuqc>
Subject: Re: [tcpinc] Eric Rescorla's Discuss on draft-ietf-tcpinc-tcpeno-13: (with DISCUSS and COMMENT)
X-BeenThere: tcpinc@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "Working group mailing list for TCP Increased Security \(tcpinc\)" <tcpinc.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpinc>, <mailto:tcpinc-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpinc/>
List-Post: <mailto:tcpinc@ietf.org>
List-Help: <mailto:tcpinc-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpinc>, <mailto:tcpinc-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Nov 2017 03:03:37 -0000

Trying to summarize …


--[1]-- TEP encryption security strength



> But what about my proposed wording, which says "permit the use of"
> instead of "permit the negotiation of"?


Ok, but “permit the ... of” is not needed – “TEPs MUST NOT use” is both direct and sufficient.



[…  snip …]



Beyond that, I concur with this point:



> When you are dealing with
> such small bit length differences, the constant factors and amount of
> human scrutiny against a big break are more important.


However, I still think that it’s a good idea to note that 128 bits is the preferred lower bound design target for security strength, although that can be done without a “SHOULD” keyword– e.g.:

TEPs MUST NOT use encryption algorithms with a security strength [@!SP800-57part1] of less than 120 bits.
TEP designs are encouraged to target a security strength of at least 128 bits to provide some headroom
above the 120 bit requirement to accommodate possible future attacks that remove a few  bits of security
strength without compromising the fundamental security of the encryption algorithm.

--[2]-- Cross-TEP security considerations for "vanity crypto"

> What about:
>
> Because TCP-ENO enables multiple different TEPs to coexist, security
> could potentially be only as strong as the weakest available TEP.  In
> particular, if TEPs use a weak hash function to incorporate the TCP-ENO
> transcript into session IDs, then an attacker can undetectably tamper
> with ENO options to force negotiation of a deprecated and vulnerable
> TEP.  To avoid such problems, session IDs SHOULD be computed using
> mainstream, well-studied, conservative hash functions.  That way, even
> if other parts of a TEP rely on more esoteric cryptography that turns
> out to be vulnerable, it is still intractable for an attacker to induce
> identical session IDs at both ends after tampering with ENO contents in
> SYN segments.

Ekr, Tero and I all appear to think that an RFC 2119 keyword is not appropriate here.  Try:

OLD
To avoid such problems, session IDs SHOULD be computed using
mainstream, well-studied, conservative hash functions.
NEW
Towards avoiding such problems, security reviewers of new TEPs
are expected to pay particular attention to the security strength and
state of cryptanalysis (including research into possible attacks) of the
session ID hash function, above and beyond checking that the hash
function meets the requirements stated in Section 6.

This proposed text also makes it clear that the concern here is in addition to the Section 6 requirements on the hash function.

--[3]-- IANA registry policy for TEP registry

At least my suggestion of IETF Review was in part to see whether more strict review would be appropriate – that appears not to be the case, so …

I like Amanda’s suggestion of: “Expert Review with RFC Required”   That should result in two security reviews of a new TEP, both of which could halt a weak one.  Looking at the Independent Submission track as the “path of least resistance” that would be the IETF Security Area (ADs and Directorate) as part of RFC publication plus an IANA expert review as part of codepoint assignment.  Thank you, Amanda.

I have to admit that Ekr is right that anyone can do arbitrarily stupid things on their own – what we can stop is misuse of IETF’s good name and IANA registration in support of that sort of stupidity.

Thanks, --David

From: Eric Rescorla [mailto:ekr@rtfm.com]
Sent: Monday, November 13, 2017 3:40 PM
To: David Mazieres <dm-list-tcpcrypt@scs.stanford.edu>
Cc: Black, David <david.black@emc.com>; tcpinc@ietf.org; Kyle Rose <krose@krose.org>; tcpinc-chairs@ietf.org; Mirja Kuehlewind (IETF) <ietf@kuehlewind.net>; The IESG <iesg@ietf.org>; draft-ietf-tcpinc-tcpeno@ietf.org
Subject: Re: [tcpinc] Eric Rescorla's Discuss on draft-ietf-tcpinc-tcpeno-13: (with DISCUSS and COMMENT)



On Mon, Nov 13, 2017 at 6:42 PM, David Mazieres <dm-list-tcpcrypt@scs.stanford.edu<mailto:dm-list-tcpcrypt@scs.stanford.edu>> wrote:
"Black, David" <David.Black@dell.com<mailto:David.Black@dell.com>> writes:

> This is entirely editorial about word choice - "permit the
> negotiation" sounds like a runtime requirement to me, whereas this
> section is entirely design requirements.  Using "support" instead of
> "permit the negotiation of" is among the ways to make this clearer,
> IMHO.

But what about my proposed wording, which says "permit the use of"
instead of "permit the negotiation of"?

* TEPs MUST NOT permit the use of encryption algorithms with a
  security strength [@!SP800-57part1] of less than 120 bits.  The
  intent of this requirement is to allow the use of algorithms such as
  AES-128 [@?AES] that are designed for 128-bit security and still
  widely considered secure even after losing a few bits of security to
  highly theoretical attacks.

>> Second, why make this more complicated with the SHOULD 128?  Can we
>> just have a 120-bit requirement?
>
> I think this is a "show your work" situation.  I'd expect a 120-bit requirement by itself to induce a fair amount of "where did that number of bits come from?" head scratching, starting from the inability to find a 120 bit security strength in SP 800-57.  Independent of wording and keyword choices, there appear to be two things going on:
>       a) We want TEPs designed to at least 128 bits of strength.
>       b) We're willing to accept a few bits less if necessary, but not many bits less.
> I think both need to be stated for clarity, although I'm not attached to the precise words used, e.g., lower case "should" instead of "SHOULD" seems reasonable for the 128 bit design requirement.  One advantage of using a "SHOULD" for the 128 bits of strength is that it invokes RFC 2119's requirement that "the full implications must be understood and carefully weighed before choosing a different course."

The proposed language explains the rationale.

Also, I'm not sure I agree that 128 bits are better than slightly fewer.
For example, tcpcrypt's MTI DH curve is curve25519.  If memory serves,
aren't the private keys for that something like 123 bits, because you
are supposed to fix the top bits as 01 and bottom as 000 or something?
It still seems like a perfectly fine choice of algorithm.  All else
equal, given implementation considerations, I think we might be more
likely to see mainstream 127-bit keys than 129-bit keys, and I'd rather
people choose algorithms with more scrutiny.  When you are dealing with
such small bit length differences, the constant factors and amount of
human scrutiny against a big break are more important.

> --[2]-- Cross-TEP security considerations for "vanity crypto"
>
>> The security considerations paragraph is trying to make a different
>> point from the one in section 5.1.  Section 5.1 says you MUST provide
>> all this stuff as an input to your hash function.  Section 10 says that
>> hash function MUST not be weird "vanity crypto."  In other words, it may
>> be reasonable to use vanity crypto for key negotiation or session data
>> encryption, because that only affects the security of one TEP.  However,
>> the session ID hash function potentially affects *all* TEPs because if
>> it's broken, it will permit negotiation rollback attacks to deprecated
>> TEPs--even when both sides prefer a more secure TEP.
>
> I would write what is meant/wanted here as opposed to assuming that
> the rationale behind the MUST will be clear to all future reviewers.

Obviously that is not coming through to readers, but that was the intent
of the language.  E.g.:

        In particular, if session IDs do not depend on the TCP-ENO
        transcript in a strong way, an attacker can undetectably tamper
        with ENO options to force negotiation of a deprecated and
        vulnerable TEP.

What about:

Because TCP-ENO enables multiple different TEPs to coexist, security
could potentially be only as strong as the weakest available TEP.  In
particular, if TEPs use a weak hash function to incorporate the TCP-ENO
transcript into session IDs, then an attacker can undetectably tamper
with ENO options to force negotiation of a deprecated and vulnerable
TEP.  To avoid such problems, session IDs SHOULD be computed using
mainstream, well-studied, conservative hash functions.  That way, even
if other parts of a TEP rely on more esoteric cryptography that turns
out to be vulnerable, it is still intractable for an attacker to induce
identical session IDs at both ends after tampering with ENO contents in
SYN segments.

To be honest, I think this document is working too hard in both cases to
try to legislate that people don't do things that we think are bad. The bottom
line is that in both cases the boundaries around what we think is OK and
what we think is not are kind of fuzzy (as you illustrate above with
Curve25519). Rather than try to write RFC 2919 language about this,
it would be better to simply describe the consequences of bad choices,
and say that the function must be collision resistant, and stop.

-Ekr



> --[3]-- IANA registry policy for TEP registry
>
>> Final point:  I only have a tcpcrypt review from Barry Leiba.  Should I
>> apply his suggestion of "IETF review" instead of "RFC Required"?  I
>> originally wanted "Specification Required" because I thought the
>> designated expert review it implied would be sufficient.  Mirja talked
>> me up to "RFC Required," which I thought was more strict.  However, does
>> the RFC Required not in fact demand any kind of expert review?  (Looking
>> at RFC8126, it doesn't seem to.)  I would be perfectly happy with an
>> IRTF or Independent Submission stream RFC so long as a designated expert
>> agrees the document is not a waste of a code point.
>
> This is somewhat in tension with the previous topic - how much review is sufficient to ensure that a weak TEP doesn't impact the security of all others?  The degree of review increases from Specification Required to RFC Required to IETF Review - if the need to ban potentially flawed vanity crypto hashes in TEPs is serious, then IETF Review seems justified, even though it imposes process costs on getting new TEPs approved.  In all cases, IANA will have a designated expert to advise on the registration, "RFC Required" adds the IESG taking a look, and IETF Review adds a lot more attention from the IETF security community.   More eyes tend to find more things ...

As long as "RFC required" involves a designated expert, that would be my
preference.  It's also what I think we arrived at after a bunch of
discussion with Mirja.  I don't think the choice of conservative hash
function requires more than a designated expert review, because it's not
controversial or hard to check.  So is the status quo okay on this
point?

David