RE: [EXTERNAL] Going STEK-less with QUIC?

Andrei Popov <Andrei.Popov@microsoft.com> Tue, 27 July 2021 22:44 UTC

Return-Path: <Andrei.Popov@microsoft.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 1F05A3A0CD1 for <quic@ietfa.amsl.com>; Tue, 27 Jul 2021 15:44:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.553
X-Spam-Level:
X-Spam-Status: No, score=-2.553 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.452, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.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 1AgHj2Th12nu for <quic@ietfa.amsl.com>; Tue, 27 Jul 2021 15:44:16 -0700 (PDT)
Received: from NAM06-BL2-obe.outbound.protection.outlook.com (mail-eopbgr650109.outbound.protection.outlook.com [40.107.65.109]) (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 B14103A0CDC for <quic@ietf.org>; Tue, 27 Jul 2021 15:44:16 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aIMfOd9BZ6uPFCvuG6CVGIXlmCpUJa/sAoCUFWBl0dCQNhU+B0wpQnwuvLI92pIsfhz6IQ84H9aR88UE4n9m/pS8B+dziFy0QIvYtVeSvqoSEqnBeoBHtgz2zDhF1GKxAsZl8sMq4AIBs2lBx8brVoVaXcZNjd9XSjL+icoBavhTyCp2UFeFalvZ5qWUPFymTgh4J6YhlTDUUpjPt7R0ZGyW+2tJd3JEigCZmTttfDQMaAE9yyqoBQKQOc8ZHC7bpBk8xxSEax6DDr3oS4lCAvGyXiYBjO7UQLsvVlyLWseHiDcJMHCY5Ltm06EAs+audW7HbMsmd7kJCIE7eNs0Dg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ytWqSYWeURV3ca0jM5S5Uny3AxPYF/e+jRD+drdTHW0=; b=YTW4O6MUsRSWLQNGcMdfEK3ks09MnBIsBODCFMutYwhQqznGga4z4Yh3zRSAsEOrxsnuu8SEgjCeSAjI2KELGrBLiF+PL0PJBDzPr36wv0rH3I4a6DuaOXKzLyTC9p4Z6/z0gLr11s8x9DYBaQ8FFVUS/b1cpaEpZWbhmHkk7mbScbca/LaIhAdHHeqo9WDQZOABTOKt8yI0P6sQbJZgziyw2+l1z+f5HnUkcz/U80RRIt2mcbRIMjlLcriLY+9VA5i1ycq9hG97B38Ltge9YIutP1roXM8SG9XnnWEQXIjbs5XTaVFmhb2cA7Lac+KtSLRlOU71wHg/2ZnFIoZWMw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ytWqSYWeURV3ca0jM5S5Uny3AxPYF/e+jRD+drdTHW0=; b=JieYLJoiu6OYEcQ7EdHKOmASjv/p+7eQiHRkKxmsXo5OdK1/nF2A52XVN6TvjkpiaoO8YyFllssgR15w4vH9jY1Pmu8boIGnc3Kwuv3b/1abiPRSySHFWEktXSaKbQZQ8rlvFdCswxrNKTLnda+EOC9CMLvRlYZCEHnhNg3DoMo=
Received: from BY5PR00MB0707.namprd00.prod.outlook.com (2603:10b6:a03:211::12) by SJ0PR00MB1336.namprd00.prod.outlook.com (2603:10b6:a03:3ff::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4410.0; Tue, 27 Jul 2021 22:44:13 +0000
Received: from BY5PR00MB0707.namprd00.prod.outlook.com ([fe80::f1fb:5765:e492:a082]) by BY5PR00MB0707.namprd00.prod.outlook.com ([fe80::f1fb:5765:e492:a082%5]) with mapi id 15.20.4410.000; Tue, 27 Jul 2021 22:44:12 +0000
From: Andrei Popov <Andrei.Popov@microsoft.com>
To: Christian Huitema <huitema@huitema.net>, "quic@ietf.org" <quic@ietf.org>
Subject: RE: [EXTERNAL] Going STEK-less with QUIC?
Thread-Topic: [EXTERNAL] Going STEK-less with QUIC?
Thread-Index: AQHXgytDouGJReVSIkqUndPpFM00QatXU5JAgAAUKACAAAGhEA==
Date: Tue, 27 Jul 2021 22:44:12 +0000
Message-ID: <BY5PR00MB070720AC659EF96DAF5CF1428CE99@BY5PR00MB0707.namprd00.prod.outlook.com>
References: <7265bac0-f54b-0e5b-d5b6-572550809f0f@huitema.net> <BY5PR00MB070737A84BC38992F2BFF1DA8CE99@BY5PR00MB0707.namprd00.prod.outlook.com> <8f87ecf8-1d47-02eb-fef3-1f33c7547b11@huitema.net>
In-Reply-To: <8f87ecf8-1d47-02eb-fef3-1f33c7547b11@huitema.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=e54702ab-790d-4a63-9555-813b00e7d400; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2021-07-27T22:36:31Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47;
authentication-results: huitema.net; dkim=none (message not signed) header.d=none;huitema.net; dmarc=none action=none header.from=microsoft.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 077c79a1-d95d-4362-a6a7-08d951500e5e
x-ms-traffictypediagnostic: SJ0PR00MB1336:
x-ld-processed: 72f988bf-86f1-41af-91ab-2d7cd011db47,ExtAddr
x-microsoft-antispam-prvs: <SJ0PR00MB1336CFABA15F170C6AE1088A8CE99@SJ0PR00MB1336.namprd00.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: wsvmCUrW37XmuXUmI+O8bVS0MuhsaKoLDpxEN+pkveWkq3YtWQNDuE6rnsdwjyM+1Nx2kDOoMJKEs2cij5Ua3xRT2zNuOafL/xDppOHKnRN9bBHvuSkH+EK+aEhn4KC1JWUlwuZY8ko5jK7lwH1kgtUOTGOg1GyDD6rHEalM7rPz/rlZutjVjyEJ4o7OQPBTiatrzYWEJnX5KPpFtdGWKQLeWB86O9X1FIlfuQxuPYqI1krxkpFLqRzmrl8p6iQCNWFfWe4wPWMkjvCRJ6pH41hVTT5frVHqt8Vq6gjacCbMCaN2GEYwOncSRtaa/buTVkHzds84m6SHX+CAQyZMb4sBiAcgnhvQ4tfNsiC/RNbHDv/WiHrgbjaMneQZqgAtCkr59k+zJ0qRm9XW64ePvohApFiKbv3NgtSMRovrGGHJVPpUdAycdjXJ9Ovc7lIIenabJgIEO559eTdsNhjOyJPfSJzNuXf96abkvOCDR9DZCWsVZx7vH9kXFWSZ0IlEp0XmvS71389vr2+LvM4E9p4vlUSU9yJ0kb2krN8X08/w8inu+XdTfHOy4WBwOkVas55wUOg3D6/aVfknA6TdqyGbtChPFWCF2E5/nNt2F9TCI7teWZBjTK7du61uUE6HHCizDe3DgalvEXBhSqMmrg3A1AbGI9vsmArhiD1+nFokn9pQfVAk3zvXUHou84QnwZPl9RoealH0IL42y/8moQ==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR00MB0707.namprd00.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(8936002)(71200400001)(82960400001)(2906002)(122000001)(38100700002)(6506007)(52536014)(316002)(53546011)(66446008)(66556008)(66946007)(66476007)(64756008)(76116006)(186003)(508600001)(8676002)(82950400001)(26005)(7696005)(10290500003)(9686003)(33656002)(86362001)(55016002)(8990500004)(83380400001)(5660300002)(38070700005)(110136005); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: W54AO3YWEXQD0heOThqyiraJCzdq18+Washm0D+o01iQj2cVcP69r3dqZQbqbOejf1rK8eCklxR/moCxbwR1CmOyHnCidtMaoes/fs05keD+uEjN6ScD4XFOuOE/1eIQzdBmXg4dn2EgxdBnUGjX8uXUhkLfm+/qx9JviEuocNZrBtJMTGTrDyX0wblF/5OkNl6Y/yN4Qnv5twm/v6mEaSVbL9a3HATwXooOv2UIGSx82ZONC1Lk91RyR1hfsOZf5AUnxxaOelkw7J6lV31gqFRqi8mImRRD7aCS8NQZNs1KH+EyX4bEjFkUGpjYa05EegWYPjW/9oSXHU2GTWPBSEXBHNWFZ6CSHkw5vwYUycczEy/kiO+7un8B4upL57A7ymf8/UAcKTcl7QrM3rN6ymaUIilV9/uGtXToAcSLRk3fwcM7HTrHnDas+JqnYsIh5wy82a+Dy2zi8KLEZrRok2U4SCUi5Abv4A78GH5txxwv9/8uSAffSfhOuiP7TW40JiPtEiA+4m24ML+hGofSS9ePJNQ2fJCDrH2k+4ObKvtitSBG4tj8sDhpb7VoC6USJdVh/B9YqMB7gOQwGz3Zi2dhlddwX8MhTAZwWP3MTc4PDbEnNXQF9X/wbiZGReeYFiEyuYh9OOoXw4eRqEXAU2ExR3o1bhvU/XmSpm4JybcBoc6386CjXAXYVqXKiNdZPJxK2BY81MB9HRrcgKaCCJfkJvHbwE9yGCGK1+Q9BwhQwJWpoXhNsdIoanJnechLVQhq1jUxU2D7fDNAsLn5RjZIC+daF39WnSoYvKW3dXLd9mQBosNdvkEhHzXvBWVW+XZnppkhDXe04ll+2Y6ItQ0Cxy+oLw0RRXjcE7RU1AZ/9b6A1HjYjCGIRg166mNQL5s7Cj7rcxEficyDdBwFAZRzIRgnfDZj6TDAlXA9Qncma7Z3LdJNyiR1LJ1GkTWEGbPVpVC2v2NqgVUsIRyHJHOVtRhFo3dm5wxBCryKgRXtLV7Hcf+FAkT8fMk3sGJlXjLQ32liuMYHOoAMB3EZvgpZNX4yOP0u/pEwklkk1SGKUB2gMA9IVAiZY7ifBE4xc/h0G9Qrg61YgRhWQrvvjGPT7Y0faVquoEpseb+AWqYwZykwJsMSo3+OxlKcrd/brN9zxsKA/3RkICIXFz4moY+UrZK3Sf8nBmkl8KHFeNDojZaz0JJqxmCgIiior5qtbGhKqVzqQ0dgQP3Q6u8fb2l2UycxkyIR6AS/PBbAkeXl2LYylHqnpsc91xFDhihpFnW8VHTj/CTvI43put3CgIm787jBx8AwmqPpVKR65zw=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BY5PR00MB0707.namprd00.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 077c79a1-d95d-4362-a6a7-08d951500e5e
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jul 2021 22:44:12.9445 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: T81qVM4qt9hfg/rxTeO3XD0yOyPVnOUt8G1ONXHl014dJ1XqVxsRZA24S2MA4rAbhNRmf/Qe4E+7rIPUcsSAUw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR00MB1336
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/92pwCRyikiz1iG6Snh9ORG4c6NQ>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
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: Tue, 27 Jul 2021 22:44:21 -0000

> Another related issue is ensuring that tickets are used exactly once for 0RTT. That's a lot easier if the resumption server is the same as the initial server.
Certainly, but this is not always achievable as server VMs rotate in and out of existence. Also, maintaining affinity between TLS clients and servers complicates load-balancing.

> Then for QUIC there is also the issue of clients remembering negotiated transport parameters from the initial session and reusing them in 0RTT, which breaks if the resumption server does not use the same parameters as the initial server.
This can be solved without creating affinity between TLS clients and servers. E.g., by including the negotiated QUIC parameters in the ticket.

Cheers,

Andrei

-----Original Message-----
From: Christian Huitema <huitema@huitema.net> 
Sent: Tuesday, July 27, 2021 3:31 PM
To: Andrei Popov <Andrei.Popov@microsoft.com>; quic@ietf.org
Subject: Re: [EXTERNAL] Going STEK-less with QUIC?

Negotiating psk_dhe_ke does mitigate some of the issues, but not all. 
For example, using DHE does not mitigate the secrecy issues with 0RTT. 
Another related issue is ensuring that tickets are used exactly once for 0RTT. That's a lot easier if the resumption server is the same as the initial server. Then for QUIC there is also the issue of clients remembering negotiated transport parameters from the initial session and reusing them in 0RTT, which breaks if the resumption server does not use the same parameters as the initial server.

-- Christian Huitema

On 7/27/2021 2:22 PM, Andrei Popov wrote:
>> if the STEK leaks, the attackers can decrypt all the sessions that were encrypted with that STEK, and might also be able to decrypt the initial sessions. In short, STEKs are convenient but risky.
> This is only a problem if the client and server negotiate psk_ke mode, rather than psk_dhe_ke, correct?
>
> Cheers,
>
> Andrei
>
> -----Original Message-----
> From: QUIC <quic-bounces@ietf.org> On Behalf Of Christian Huitema
> Sent: Tuesday, July 27, 2021 2:02 PM
> To: IETF QUIC WG <quic@ietf.org>
> Subject: [EXTERNAL] Going STEK-less with QUIC?
>
> In theory, TLS 1.3 provides strong future secrecy guarantees, but the handling of session tickets can compromise that. In theory, the session Ticket could be a simple identifier, used by the server to retrieve the context of a past session. In practice, many servers encode the relevant session context data in the session ticket itself, using a Session Ticket Encryption Key (STEK). For server farms, there is no guarantee that the resumed session will hit the same server as the initial session, so in practice all servers in the farm share the STEK. And then, we have a serious future secrecy issue: if the STEK leaks, the attackers can decrypt all the sessions that were encrypted with that STEK, and might also be able to decrypt the initial sessions. In short, STEKs are convenient but risky.
>
> The load balancing draft defines Connection ID formats that assure that packets get routed to the right server in a pool. I think that we could use these connection IDs to ensure that a resumed connection goes back to the same server as the initial server. The simplest implementation would be for the client to remember one of the "New connection IDs"
> received in the initial session, and use that as Initial Connection ID in the resumed session. Once we do that, we get options. The server could for example have a server specific STEK, which reduces the impact of leaking STEk to just the sessions handled by that server, instead of all the sessions by servers sharing the STEK. Or, the server could just remember contexts of past sessions locally, and just place an identifier of that context in the session ticket, effectively going STEK-less.
>
> Would there be any interest in pursuing that idea?
>
> -- Christian Huitema
>
>