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

Christian Huitema <huitema@huitema.net> Tue, 15 December 2020 04:18 UTC

Return-Path: <huitema@huitema.net>
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 593FD3A07BD for <last-call@ietfa.amsl.com>; Mon, 14 Dec 2020 20:18:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.011
X-Spam-Level:
X-Spam-Status: No, score=0.011 tagged_above=-999 required=5 tests=[HTML_MESSAGE=0.001, NICE_REPLY_A=-0.001, SPF_HELO_NONE=0.001, T_SPF_PERMERROR=0.01] 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 MiQDet1gqR8d for <last-call@ietfa.amsl.com>; Mon, 14 Dec 2020 20:18:43 -0800 (PST)
Received: from mx43-out1.antispamcloud.com (mx43-out1.antispamcloud.com [138.201.61.189]) (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 16C323A07D3 for <last-call@ietf.org>; Mon, 14 Dec 2020 20:18:42 -0800 (PST)
Received: from xse12.mail2web.com ([66.113.196.12] helo=xse.mail2web.com) by mx136.antispamcloud.com with esmtp (Exim 4.92) (envelope-from <huitema@huitema.net>) id 1kp1nI-000Wq5-Il for last-call@ietf.org; Tue, 15 Dec 2020 05:18:39 +0100
Received: from xsmtp21.mail2web.com (unknown [10.100.68.60]) by xse.mail2web.com (Postfix) with ESMTPS id 4Cw4kc068Tz2nJv for <last-call@ietf.org>; Mon, 14 Dec 2020 20:18:32 -0800 (PST)
Received: from [10.5.2.14] (helo=xmail04.myhosting.com) by xsmtp21.mail2web.com with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.92) (envelope-from <huitema@huitema.net>) id 1kp1nD-0001N9-St for last-call@ietf.org; Mon, 14 Dec 2020 20:18:31 -0800
Received: (qmail 5365 invoked from network); 15 Dec 2020 04:18:30 -0000
Received: from unknown (HELO [192.168.1.106]) (Authenticated-user:_huitema@huitema.net@[172.58.43.253]) (envelope-sender <huitema@huitema.net>) by xmail04.myhosting.com (qmail-ldap-1.03) with ESMTPA for <draft-gont-numeric-ids-sec-considerations@ietf.org>; 15 Dec 2020 04:18:29 -0000
To: Russ Housley <housley@vigilsec.com>, Ben Kaduk <kaduk@mit.edu>
Cc: Fernando Gont <fgont@si6networks.com>, last-call@ietf.org, draft-gont-numeric-ids-sec-considerations@ietf.org
References: <160735373732.25981.15176977559155786235@ietfa.amsl.com> <F438198F-34E2-4C9F-A32F-ACD58D9A6734@vigilsec.com> <20201209211455.GZ64351@kduck.mit.edu> <327D2176-1722-4F83-9ED1-205C575D67E6@vigilsec.com> <d64183b5-067b-5f6b-e5c8-0975311f2fbf@si6networks.com> <4A0B53B2-71D7-4623-90CC-E0E884101C31@vigilsec.com> <20201214025510.GS64351@kduck.mit.edu> <BDD8DC40-D615-4624-8D04-A9FC47E4F9FA@vigilsec.com>
From: Christian Huitema <huitema@huitema.net>
Message-ID: <d066ba38-694a-8462-4ffa-0662a224517c@huitema.net>
Date: Mon, 14 Dec 2020 20:18:29 -0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.5.1
MIME-Version: 1.0
In-Reply-To: <BDD8DC40-D615-4624-8D04-A9FC47E4F9FA@vigilsec.com>
Content-Type: multipart/alternative; boundary="------------E4CCB1E759C2EAD4FA455730"
Content-Language: en-US
X-Originating-IP: 66.113.196.12
X-Spampanel-Domain: xsmtpout.mail2web.com
X-Spampanel-Username: 66.113.196.12/32
Authentication-Results: antispamcloud.com; auth=pass smtp.auth=66.113.196.12/32@xsmtpout.mail2web.com
X-Spampanel-Outgoing-Class: unsure
X-Spampanel-Outgoing-Evidence: Combined (0.57)
X-Recommended-Action: accept
X-Filter-ID: Pt3MvcO5N4iKaDQ5O6lkdGlMVN6RH8bjRMzItlySaT8B5EDy8K2HPOYFqdxJCuXPPUtbdvnXkggZ 3YnVId/Y5jcf0yeVQAvfjHznO7+bT5wvKuiOW9RYjNkw0TNUM5iE6R/ulGLO1jX17vB/zloo0t7J K6m4gETwGj9DDq2huyvilbHtbFYVmmyNP/jzd7CCzPgfBgZM0FjuQW6Y55dUiQZmnW/XN+tohdLu D74c7RJNx42ZDcVA1w8uSfIKDJE6g8CBO1Snvm6qXHQp7O9kdXwidn7uUpGNTe0n0wl43vBZBppJ JpFwVMXFpG8AOA64V0BTl9HMz9DNBb38igffcAbwQK4LAQJrMLA4O04Xvw+LJASz52UZdQktZn4Z zTw2YG4yYBh/iFtUTfPc63fdkD2gKkld+E5nXejNCJWGPW5v21n4LnI5zZgAaRoQ/U07zOBo8aJ8 xjAJS95fyG85fuZE7YJwhBWCb1PmFojBOyjXs2KsRjKrCowEavDwQuKotTi65cSzlgdNUmHdZkDX HkwGrNHnZgdqv8gUap0GPVqZSjmmVb1jzWCjpHhh1WjZqXWvTtyZt5+E2rHRTxiOPQKf33qQtTYr DPixEr4D2aetI4g+l6rCWbY0MZcgnbHsc4N1Kqnuq+jWxirBypACOQC2twlkGSJSyjNsDP5CD9Uv CSuTE1Cgq9PSt/b0MgYcgSMWksNxLGjqk9ZmCWaRw4WmjRnWMeL9UbY4jdvO8Przg1zcjVdIhfBo dOedlBBe92PNDpgLsd6Ddd/s7VM53kxkCb4FrC6QJlhjpsvImEIFEtMYkDtPBfDm/HWcGTWmZgem B3dpwN1XkkAvmT1YYX61/PNMJctO11bt7Vd34YYOVcZv254a1SspgLrZBCX/pXnFvqRVH5gYL2Vp DDxJwcOpyKA69LF1Ge2GaGfxmfrJyhoTyYjBAsgJ9fPu1C1rkwISTdKXHHyl1YNiB/Uix7CYwtBS QxO5224/0gCm1v3y3deP8vNnmz84mDUvZqxnoc7bV0+nE+EwV843xuls19yArgxzoa+KPg4iBZtv Ir6fmwij1JB2C+QdO3OG/whb
X-Report-Abuse-To: spam@quarantine11.antispamcloud.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/last-call/m0XLciccHlL7xfQQssYHgA9Z5ZY>
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: Tue, 15 Dec 2020 04:18:45 -0000

On 12/14/2020 10:34 AM, Russ Housley wrote:
> Ben:
>
>>>>>>> I have to comments.
>>>>>>>
>>>>>>> 1) I do not see this document as a BCP.  Despite the inclusion of the boilerplate, there is not a single MUST in the document.  I have no objection to an Informational RFC.
>>>>>> The assumption/expectation was that this would become part of BCP 72 along
>>>>>> with RFC 3552.  Do you think it should be a standalone document, or can you
>>>>>> propose normative language that would make it more appropriate as a BCP?
>>>>> I'd advise an Informational document.
>>>> FWIW, our intent is to have a BCP document that is part of (i.e., updates) BCP72.  Given that flawed transient identifiers have plagued most IETF protocols we can think of, we believe the topic deserves a BCP.
>>>>
>>>>
>>>>> I think an additional section with normative text would be needed or additional normative paragraphs after each of the problem descriptions would be needed.
>>>> Could you please elaborate?
>>> It is not a Best Current Practice if the document does not provide MUST and SHOULD statements for implementers to follow.
>>>
>>> The current document provides information for implementers to consider in making their design choices, but it falls short if a BCP in my view.
>> RFC 3552 is pretty sparing with normative language, with most of the key
>> requirements living in its Section 5 ("Writing Security Considerations
>> Sections"), which boil down to "you are obligated to accurately depict the
>> security properties of your protocol, and here are a list of specific
>> things that are extra-mandatory to consider".  However, RFC 3552 also has a
>> substantial list of "Common Issues" in its Section 4 and subsections.  My
>> question to you, is what mechanism(s) you would consider appropriate to add
>> to the list of "Common Issues".  I think it's pretty clear that a full-on
>> "bis" document should be able to add to (or or remove from, I suppose) the
>> list, but what else?  Please consider that as a separate question from
>> whether these issues would merit inclusion in the RFC 3552 §5 list of
>> mandatory-to-consider topics -- we may well need to consider that question
>> as well, in the course of this IETF LC, but I would prefer to hear answers
>> to the first question at this point.
> I do not think the real message here is how to write security considerations regarding transient identifiers.
>
> I also agree with EKR's position.

I also think that EKR has a point.

I think there are two main issues in the document: it does not 
distinguish between identifiers that are "visible on the wire" and those 
that are only visible by the endpoints; and, it suggests an overly 
specific identifier generation algorithm. The document also suffers from 
trying to fit different kinds of protocol parameters in a single 
abstract category, the "Transient Numeric Identifier". This feels 
somewhat artificial.

Fixing the lack of distinction between "visible on the wire" and 
"visible by the end-points" would require fixing the section 3 regarding 
"issues". The current list of issues feels theoretical and detached from 
the actual attacks. It lists:

    o  Protocol specifications that under-specify the requirements for
       their identifiers

    o  Protocol specifications that over-specify their identifiers

    o  Protocol implementations that simply fail to comply with the
       specified requirements

That list of issues seems somewhat self-referential, another way of 
saying "protocols that do not comply with the recommendations in this 
document". If we want to provide guidance, we should instead look at 
categories of attacks enabled by classic mistakes, such as injection 
attacks, correlation attacks, or spoofing attacks. That's the point at 
which we can make a distinction between "visible on the wire" and not -- 
injection attacks, correlation attacks and spoofing attacks by third 
parties are mitigated if the identifier is not visible, but spoofing 
attacks by the connected peer are not.

EKR mentions how much the document is at odd with recent practice, like 
the design of QUIC. QUIC does use a number of identifiers: connection 
identifiers, packet numbers, stream numbers, data offsets within 
streams. If that document had been available before the design of QUIC, 
would it have help development? My personal opinion is no, it would not 
have make the protocol better. It might have created a hurdle during the 
last call reviews, forcing the developers to discuss why they would not 
comply with the recommendation in this draft, and creating additional 
delays in the process for little practical result.

I don't think that the document should be published as is.

-- Christian Huitema