Re: [Last-Call] Last Call: <draft-gont-numeric-ids-sec-considerations-06.txt> (Security Considerations for Transient Numeric Identifiers Employed in Network Protocols) to Best Current Practice

Fernando Gont <fgont@si6networks.com> Mon, 14 December 2020 17:41 UTC

Return-Path: <fgont@si6networks.com>
X-Original-To: last-call@ietfa.amsl.com
Delivered-To: last-call@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 079133A136A; Mon, 14 Dec 2020 09:41:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0
X-Spam-Level:
X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[NICE_REPLY_A=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 0gf5BTG69ier; Mon, 14 Dec 2020 09:41:07 -0800 (PST)
Received: from fgont.go6lab.si (fgont.go6lab.si [IPv6:2001:67c:27e4::14]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6C1B63A1367; Mon, 14 Dec 2020 09:41:04 -0800 (PST)
Received: from [10.0.0.129] (unknown [186.19.8.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by fgont.go6lab.si (Postfix) with ESMTPSA id B4FB728465E; Mon, 14 Dec 2020 17:41:00 +0000 (UTC)
To: Joseph Touch <touch@strayalpha.com>
Cc: Eric Rescorla <ekr@rtfm.com>, Last Call <last-call@ietf.org>, draft-gont-numeric-ids-sec-considerations@ietf.org
References: <CABcZeBPTk0zrm6iwJOiac6N7w_jYhtkoX3HeBci9tZ_Y8=uKVw@mail.gmail.com> <0FA1DBD3-8E38-4F0E-A8CC-725053B64CB8@strayalpha.com> <4c6de2b6-c79e-2c17-c977-cb183547f60a@si6networks.com> <4DD07928-5846-4C98-BEF8-C3F5C90E7955@strayalpha.com>
From: Fernando Gont <fgont@si6networks.com>
Message-ID: <59f49163-0901-6859-7681-1fbebb27868c@si6networks.com>
Date: Mon, 14 Dec 2020 14:40:44 -0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.1
MIME-Version: 1.0
In-Reply-To: <4DD07928-5846-4C98-BEF8-C3F5C90E7955@strayalpha.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Language: en-US
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/last-call/G616a2zOX8Zh57_aIM5HUQFLGos>
Subject: Re: [Last-Call] Last Call: <draft-gont-numeric-ids-sec-considerations-06.txt> (Security Considerations for Transient Numeric Identifiers Employed in Network Protocols) to Best Current Practice
X-BeenThere: last-call@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF Last Calls <last-call.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/last-call>, <mailto:last-call-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/last-call/>
List-Post: <mailto:last-call@ietf.org>
List-Help: <mailto:last-call-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/last-call>, <mailto:last-call-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Dec 2020 17:41:12 -0000

Hello, Joe,

On 14/12/20 13:51, Joseph Touch wrote:
[...]
>>> +1
>>> I don’t like the idea of over-specification to provide partial 
>>> privacy or security.
>>
>> Our document says:
>>
>>   1.  Clearly specify the interoperability requirements for the
>>       aforementioned identifiers (e.g., required properties such as
>>       uniqueness, along with the failure severity if such properties
>>       are not met).
>>
>>   2.  Provide a security and privacy analysis of the aforementioned
>>       identifiers.
>>
>>   3.  Recommend an algorithm for generating the aforementioned
>>       identifiers that mitigates security and privacy issues, such as
>>       those discussed in [I-D.irtf-pearg-numeric-ids-generation].
>>
>>
>> "1" asks specifications to spell out the interoperability requirements 
>> for the IDs.
>>
>> "2" explicitly  asks specifications to do an appropriate analysis of 
>> the security and privacy implications of the IDs.
>>
>> "3" means: "based on the analysis you did in #2, recommend an 
>> algorithm that mitigates the identified issues" (i.e., "do what you 
>> need to do, in the best way you can").
> 
> #3 jumps to an algorithm.

Of course! What's the point of having every implementer do the necessary 
work to come up with an algorithm to comply with the interoperability 
implications, without causing trouble?

Haven't we learned anything from history?

Every single ID I can think of has had a flawed recommendation in a 
spec, and/or a flawed implementation:

* ephemeral port numbers
* IPv6 IIDs
* IPv4 Frag ID
* IPv6 Frag ID
* TCP sequence numbers
* DNS TID

... you name them.


It's quite surprising that given the bad record, we are even discussing 
this. --  unless there's any interest in having vulnerable specs and/or 
implementations.




> In your other post, you say that:
> 
>    "in cases where protocols require cryptographic
>     algorithms to provide confidentiality and integrity (ie.
>     authenticated encryption) of the transient identifier fields some of
>     the inherent weaknesses in transient ID generation *may* be
>     mitigated.”
> 
> MAY - really? So basically you’re comfortable recommending these 
> pseudo-obfuscation methods, but refer to cryptographic algs as MAY?

Yes, may -- as in possibility (i.e., "could", should I say?).

QUIC employs cryptographic methods. Yet the connection-IDs are not 
encrypted.  And even if they were, if an implementation were to generate 
CIDs based on e.g., a global counter, that would leak out (to the remote 
endpoint) the number of connections that have been established.

So yes, crypto does not necessarily solve all problems, as it should be 
evident.



> What it ought to say, first line of the doc, is “if your protocol 
> expects or uses cryptographic protection means, stop reading here; 
> you’re fine.”

No. IMO, it needs to say what it says: "Do the right thing, because 
there's plenty of evidence that when you don't, you'll screw up. Allways 
fail on the safe side".

Thanks,
-- 
Fernando Gont
SI6 Networks
e-mail: fgont@si6networks.com
PGP Fingerprint: 6666 31C6 D484 63B2 8FB1 E3C4 AE25 0D55 1D4E 7492