Re: Hardware acceleration and packet number encryption

Ian Swett <ianswett@google.com> Thu, 29 March 2018 00:39 UTC

Return-Path: <ianswett@google.com>
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 6200F126CC4 for <quic@ietfa.amsl.com>; Wed, 28 Mar 2018 17:39:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.709
X-Spam-Level:
X-Spam-Status: No, score=-2.709 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, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
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 v-EzYdCq9OyH for <quic@ietfa.amsl.com>; Wed, 28 Mar 2018 17:39:32 -0700 (PDT)
Received: from mail-io0-x22d.google.com (mail-io0-x22d.google.com [IPv6:2607:f8b0:4001:c06::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C6783126C25 for <quic@ietf.org>; Wed, 28 Mar 2018 17:39:31 -0700 (PDT)
Received: by mail-io0-x22d.google.com with SMTP id d5so5649667iob.9 for <quic@ietf.org>; Wed, 28 Mar 2018 17:39:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=a6zXGWmWNLcM8bLeB9XhpKnb/hoMNso7KsidneRM474=; b=YT6DJ0DVDrTA3ANd2FOou1ytw48AhoYkqB2wEVltG/cRv1h0qmWJpB+KcD3D4tmY7Y RLTic1Q33WMngcWmxt5WXaDCbJJbNANQoU7ViJF8jvxxmmxFZy2xjQeNaFJWFLmocBUV EVr5nJbjmKXzasNt94qlK0R6STd67UoPeqWFGAT5b1utcGxAjuLQrl1EJhA+BsdUJM5k fWmOZXIOusFy2sYATicvk5fofqFFdQXkdWZW6Xi6oa2Tl4XW2ogFedJUiiN0tNilA0Yh hfrlrb4Wv0svA+R2C9AM/o8RMyvooTJHuANIhk5ilWltPqE68cWZbsRt183OD76TRffU Cepg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=a6zXGWmWNLcM8bLeB9XhpKnb/hoMNso7KsidneRM474=; b=KZVGtXOGmVRGjTJyczH5UNUGpm373Wlp6VYxvu7qJUStvLSs00rGJY0EnXGsVNQYdg 0UQrBIkNfrhOIXAB9fTPg0T6mzUKJRCYN6AxEJKzpLEa0uCy8o58KXAveaLeR5DzuT+F BqfW4OhrtJ7aE44cPQXnyuYaxD5pr6/jEZRIv3836biMjnePMO+zPcm2A/u81Xg/VDdn jD6q2HFspFv3lOcev0UIe9f71KK7iEzxeh0gRLbsXp7ZuSr9wafIYcdfI646oxTzYeVE RYQehge8mCB7memqEjxQk+SWkj8Jh8zTGvsVnWhxBKgPf9DEJQ2A+Lerkk+LqEvCeFpL NfqA==
X-Gm-Message-State: AElRT7GH7pFl6M/03f9+gw0JijhzV/9/E+k22znmNGy+v2Wq4mdZ9r1o L0VvBJqA+MOsBWPcFqoByRwy3zuHoGeZR5eJ0bm6CQ==
X-Google-Smtp-Source: AIpwx4/D03G+oioKOCB1OdJ9JxxhzZCi6EQQ0RuHcl3zJWqCwEYpKt6eBqxayC57LPVBx3pJxwOQKRUmvXrMZ4gspR0=
X-Received: by 10.107.131.83 with SMTP id f80mr23709134iod.102.1522283970872; Wed, 28 Mar 2018 17:39:30 -0700 (PDT)
MIME-Version: 1.0
References: <7fd34142-2e14-e383-1f65-bc3ca657576c@huitema.net> <F9FCC213-62B9-437C-ADF9-1277E6090317@gmail.com> <CABcZeBM3PfPkqVxPMcWM-Noyk=M2eCFWZw2Eq-XytbHM=0T9Uw@mail.gmail.com> <CAN1APdfjuvd1eBWCYedsbpi1mx9_+Xa6VvZ3aq_Bhhc+HN67ug@mail.gmail.com> <CABcZeBMtQBwsAF85i=xHmWN3PuGRkJEci+_PjS3LDXi7NgHyYg@mail.gmail.com> <1F436ED13A22A246A59CA374CBC543998B5CCEFD@ORSMSX111.amr.corp.intel.com> <CABcZeBNfPsJtLErBn1=iGKuLjJMo=jEB5OLxDuU7FxjJv=+b=A@mail.gmail.com> <1F436ED13A22A246A59CA374CBC543998B5CDAD4@ORSMSX111.amr.corp.intel.com> <BBB8D1DE-25F8-4F3D-B274-C317848DE872@akamai.com> <CAN1APdd=47b2eXkvMg+Q_+P254xo4vo-Tu-YQu6XoUGMByO_eQ@mail.gmail.com> <CAKcm_gMpz4MpdmrHLtC8MvTf5uO9LjD915jM-i2LfpKY384O2w@mail.gmail.com> <HE1PR0702MB3611A67E764EE1C7D1644FAD84AD0@HE1PR0702MB3611.eurprd07.prod.outlook.com> <d8e35569-e939-4064-9ec4-2cccfba2f341@huitema.net> <CACpbDccqKoF-Y1poHMN2cLOK9GOuvtMTPsF-QEen3b30kUo9bg@mail.gmail.com>
In-Reply-To: <CACpbDccqKoF-Y1poHMN2cLOK9GOuvtMTPsF-QEen3b30kUo9bg@mail.gmail.com>
From: Ian Swett <ianswett@google.com>
Date: Thu, 29 Mar 2018 00:39:20 +0000
Message-ID: <CAKcm_gNffwpraF-H2LQBF33vUhYFx0bi_UXJ3N14k4Xj4NmWUw@mail.gmail.com>
Subject: Re: Hardware acceleration and packet number encryption
To: Jana Iyengar <jri.ietf@gmail.com>
Cc: Christian Huitema <huitema@huitema.net>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a113f998a5564920568825b85"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/2zI9g5DT_vaI7r36Rj5gr9d-uy0>
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: Thu, 29 Mar 2018 00:39:34 -0000

Thanks for the nice summary Jana.

As much as I'd love to have easier crypto HW acceleration, I've ended up
arriving at the same conclusion.  I don't want to bite off the work to do
proper multipath in QUIC v1, which I think is the only other reasonable
option of those Christian outlined.

If someone comes up with a way to transform packet number to make it
non-linkable, but doesn't have the downside of making hardware offload
difficult, then I'm open to it.  But we've been talking about this for 2
months without any notable improvements over Martin's PR.

Given we never talk about any issue only once in QUIC, I'm sure this will
come up again, but for the time being I think #1079 is the best option we
have.



On Wed, Mar 28, 2018 at 8:03 PM Jana Iyengar <jri.ietf@gmail.com> wrote:

> A few quick thoughts as I catch up on this thread.
>
> I spent some time last week working through a design using multiple PN
> spaces, and it is quite doable. I suspect we'll head towards multiple PN
> spaces as we consider multipath in the future. That said, there is
> complexity (as Christian notes). This complexity may be warranted when
> doing multipath in v2 or later, but I'm not convinced that this is
> necessary as a design primitive for QUICv1.
>
> We may want to creatively use the PN bits in v2, say to encode a path ID
> and a PN, for multipath. We want to retain flexibility in these bits going
> into v2. We've used encryption to ensure that we don't lose flexibility
> elsewhere in the header, and it follows that we should use PNE to retain
> flexibility in these bits as well. (Simplicity of design is the other value
> in using PNE, since handling migration linkability is non-trivial without
> it.)
>
> This leaves the question of HW acceleration being at loggerheads with the
> design in PR #1079. First, I expect that the primary benefit of
> acceleration will be in DC environments. Yes, there are some gains to be
> had in serving the public Internet as well, but I'm unconvinced that this
> is the driving use case for hardware acceleration. I understand that others
> may disagree with me here.
>
> AFAIK, QUIC has not been used in DC environments yet. I expect there are
> other things in the protocol that we'd want to change as we gain experience
> deploying QUIC in DCs. Spinning up a new version to try QUIC within DCs is
> not only appropriate, I would recommend it. This allows for rapid
> iterations internally, and the experience can drive subsequent changes to
> QUIC. It's what *I* would do if I was to deploy QUIC inside a DC.
>
> So, in short, I think we should go ahead with PR# 1079. This ensures that
> future versions are guaranteed the flexibility to change the PN bits for
> better support of HW acceleration or multipath or what-have-you.
>
> - jana
>
> On Mar 26, 2018 9:41 AM, "Christian Huitema" <huitema@huitema.net> wrote:
>
>
> On 3/26/2018 8:20 AM, Swindells, Thomas (Nokia - GB/Cambridge) wrote:
>
> Looking at
> https://en.wikipedia.org/wiki/AES_instruction_set#Intel_and_AMD_x86_architecture
> it seems to imply a large range of server, desktop and mobile chips all
> have a CPU instruction set available to do AES acceleration and other
> similar operations (other instruction sets are also available).
>
> If we are considering the AES instructions then it looks like it is (or at
> least will be in the near future) a sizeable proportion of the public
> internet have it to be used.
>
>
> Certainly, but that's not the current debate. PR #1079 is fully compatible
> with use of the AES instructions. The issue of the debate is that the
> mechanism in PR #1079 required double buffering, first encrypt the payload,
> then use the result of the encryption to encrypt the PN. This is not an
> issue in a software implementation that can readily access all bytes of the
> packet from memory, but it may be an issue in some hardware implementations
> that are designed to do just one pass over the data.
>
>
> -- Christian Huitema
>
>
>
>