Re: Getting to consensus on packet number encryption

Gorry Fairhurst <gorry@erg.abdn.ac.uk> Wed, 02 May 2018 13:46 UTC

Return-Path: <gorry@erg.abdn.ac.uk>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DE075127076 for <quic@ietfa.amsl.com>; Wed, 2 May 2018 06:46:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3] autolearn=unavailable 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 qG4LB_23LdWT for <quic@ietfa.amsl.com>; Wed, 2 May 2018 06:46:48 -0700 (PDT)
Received: from pegasus.erg.abdn.ac.uk (pegasus.erg.abdn.ac.uk [139.133.204.173]) by ietfa.amsl.com (Postfix) with ESMTP id C560F126FB3 for <quic@ietf.org>; Wed, 2 May 2018 06:46:47 -0700 (PDT)
Received: from Gs-MacBook-Pro.local (fgrpf.plus.com [212.159.18.54]) by pegasus.erg.abdn.ac.uk (Postfix) with ESMTPA id F3A971B0021C; Wed, 2 May 2018 14:46:10 +0100 (BST)
Message-ID: <5AE9C122.7060408@erg.abdn.ac.uk>
Date: Wed, 02 May 2018 14:46:10 +0100
From: Gorry Fairhurst <gorry@erg.abdn.ac.uk>
Reply-To: gorry@erg.abdn.ac.uk
Organization: University of Aberdeen
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:12.0) Gecko/20120428 Thunderbird/12.0.1
MIME-Version: 1.0
To: "Roni Even (A)" <roni.even@huawei.com>
CC: Mirja Kühlewind <mirja.kuehlewind@tik.ee.ethz.ch>, Benjamin Kaduk <bkaduk=40akamai.com@dmarc.ietf.org>, Praveen Balasubramanian <pravb@microsoft.com>, IETF QUIC WG <quic@ietf.org>
Subject: Re: Getting to consensus on packet number encryption
References: <01AE46C6-682C-4A21-84CD-1D8DAD6F49D9@fb.com> <CACpbDcdnmHrWMCShYd1pEDBervRKfO1pMUM8hb4tkK9nqH1Mdw@mail.gmail.com> <MWHPR21MB06386100B48E17A059B5A04EB6800@MWHPR21MB0638.namprd21.prod.outlook.com> <20180502121018.GF5742@akamai.com> <4C049C27-FAB7-4CF4-8ABE-DABDE8CD0F8B@tik.ee.ethz.ch> <6E58094ECC8D8344914996DAD28F1CCD87F34A@DGGEMM506-MBS.china.huawei.com>
In-Reply-To: <6E58094ECC8D8344914996DAD28F1CCD87F34A@DGGEMM506-MBS.china.huawei.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/fppmc_fFPgWAVDYAv16o5xbLsCs>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 02 May 2018 13:46:52 -0000

As I see it, adding PNE adds complexity, and presents risks for the 
protocol.

I accept there could also be a future be risk of ossification around any 
packet header - although as said also, the incentives for a middlebox 
doing odd things with a PN in QUIC would seem to me to be quite 
different from the incentives to mangle TCP (where you can easily 
influence the receiver state machine). As Mirja stated, this also leaves 
me skeptical about the benefits of PNE in avoiding ossification, nor the 
downsides of this. The direct linakbility appears from a decision to 
continue the PN sequence in the clear part of the header across a 
migration, not because a PN was visible.

While we are summarising: the majority of IETF transports have to date 
included some form of sequence number in all transport segements. This 
has often been usefully harnessed by tools such as wireshark or similar 
for measurement, debugging, and as a basis for more in depth analysis 
and operational tools. We have decades of experience with this way of 
working - although it seems to me that this list has not proven a useful 
place to discuss that.

I didn't see strong consensus on the value of PNE, so I understand that 
this is just something that has to be decided to move on. And I do wish 
to move on.

Gorry

On 02/05/2018, 14:04, Roni Even (A) wrote:
> Hi,
> I strongly support Mirja's view.  At least we can move forward.
>
> I did not feel from the discussion that the benefits from PNE vs the PN were meaningful enough to make me support any direction too many variables (Ossification, linkability, complexity and processing requirements, PNE not needed for all cases so negotiate,...) with no way for evaluation.  If there was a hum I would probably hum for "not enough information" or "no opinion" but still hope that some decision will be made.
>
>
> Roni Even
>
>
> -----Original Message-----
> From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Mirja Kühlewind
> Sent: Wednesday, May 02, 2018 3:47 PM
> To: Benjamin Kaduk
> Cc: Praveen Balasubramanian; IETF QUIC WG
> Subject: Re: Getting to consensus on packet number encryption
>
> Hi Ben, hi all,
>
> at this point, I'm fine with moving on with a decision and I didn’t speak up recently because I did feel that just repeating my point of view over and over again (like other do) would bring the discussion forward but I have to say that I’m still skeptical about the benefits of PNE.
>
> I don’t think that it will help linkability as mitigation can be easy detected with simple traffic analysis (if you see both flows; if you don’t see both flows you can’t detect it no matter what) and I rate the risk of ossification on the packet number rather low (both in terms of the risk that it will happen and if even if it happens that it will hinder protocol evolution strongly) such that I simply don’t think that it is justified to spend ANY additional complexity on PNE.
>
> I might be wrong and I understand the fear of people about what can happen in a worst case scenario, however, I also learned during my time in the IEFT that complexity itself can be a barrier for deployment that should not be underestimated. If people don’t understand the specs we write, they will not be able to implement (and maintain) our protocols, or at least not be able to implement it correctly which might be even worse for deployment and security (than not using them at all).
>
> Independent of the decision on PNE, I would like people to please keep in mind that while increased security is preferable, it does not mean that this is a free ticket to add encryption wherever we can, even if there are no or maybe yet unknown benefits as it always comes with a cost.
>
> Mirja
>
>
>
>> Am 02.05.2018 um 14:10 schrieb Benjamin Kaduk<bkaduk=40akamai.com@dmarc.ietf.org>:
>>
>> Hi Praveen,
>>
>> On Wed, May 02, 2018 at 02:02:37AM +0000, Praveen Balasubramanian wrote:
>>> We can get (1) done but I disagree that we can decouple (2). It doesn’t make sense to require performance overhead all the time with no benefit. For the Internet, PNE can prevent ossification so it is seen as a reasonable trade-off. For the datacenter, there is no known benefit, only cost.
>> Most of why I am pushing back so hard on this point is that I am
>> having a
>> *really* hard time getting the statement of "no benefit" (i.e.,
>> exactly zero) to mesh with my understanding of the situation.  I don't
>> know the best way past this impasse -- it doesn't really seem right
>> for me to make a list of potential benefits and have you shoot them
>> down, for example.  I think maybe you are trying to make a slightly
>> different point involving something like ongoing operational benefits
>> (as opposed to cost of implementation/risk of bugs/ecosystem
>> benefits), but I'm not entirely sure.
>>
>>> We know that there is a CPU cost, this is not speculation. Doesn’t
>>> matter if the cost is 1% or 10%. Hardware implementers have also
>>> raised concerns. Every
>> Well, I think it rather does matter for 1% vs. 10%.  If it was 0.1%
>> (unlikely, I suppose), then that might be "in the noise" and not worth
>> doing anything about, ever.  For a 1% cost, that's significant enough
>> to make me want to address it in my long-term plans, but it is not
>> necessarily a big enough impact to require immediate attention.  10%,
>> on the other hand, probably would require immediate attention and be a
>> show-stopper.
>>
>>> CPU cycle we spend on things that add no value to the user should be
>>> questioned. Every extra instruction we execute in the hot data path
>>> leaves less CPU for workloads, burns more power and makes for a worse
>>> comparison with HTTPS over TCP. The same argument as privacy holes
>>> holds here – just
>> The "burns more power" argument can be applied to every single CPU
>> instruction; relative measures (i.e., percentage of total CPU) from
>> actual deployment are what I find to be most compelling.
>>
>>> because there are some existing perf bottlenecks doesn’t mean we add
>>> more, particularly ones we cannot mitigate. I said it before that
>>> there are lots of ways we can improve UDP perf but I don’t know of
>>> any technique for reducing crypto CPU cost other than hardware offload.
>> And I ask again, who is "we"?  (At this point I am mostly assuming
>> "all QUIC implementors", but it would be nice to be sure.)
>>
>>> The cost is certainly worth saving with something as simple as a
>>> negotiation mechanism. Am I missing something about a transport
>>> parameter being
>>>  From the rest of the discussion, I don't think you've really sold
>>> people
>> on "certainly", yet.
>>
>>> complicated to implement? Implementations are free to support only
>>> PNE and not negotiate anything else. There is actually an even
>>> simpler mechanism if a transport parameter is deemed as costly: if
>>> the peer sends PN = 0 in the CI, then its requesting no PNE and the
>>> receiver can choose to proceed or drop and force TCP fall back. This
>>> should take only an extra if check on the receiver CI processing
>>> logic to implement. I am assuming here that PNE on input of 0 will not produce 0 so it’s a safe sentinel value.
>> I think some people are worried not just about the
>> complexity/simplicity of the mechanism implemented, but broader-scope
>> ecosystem and architecture issues, whether that's a general complexity
>> reduction initiative or more subtle issues involving middleboxes
>> attempting to coerce certain sorts of behavior.
>>
>> -Ben
>>