[Wimse] Runtime costs of multiple signatures?

"McAdams, Darin" <darinm@amazon.com> Tue, 23 July 2024 00:29 UTC

Return-Path: <prvs=9276a5586=darinm@amazon.com>
X-Original-To: wimse@ietfa.amsl.com
Delivered-To: wimse@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9CECEC14F721 for <wimse@ietfa.amsl.com>; Mon, 22 Jul 2024 17:29:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.248
X-Spam-Level:
X-Spam-Status: No, score=-7.248 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.148, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=amazon.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YSYJThgP05dZ for <wimse@ietfa.amsl.com>; Mon, 22 Jul 2024 17:29:42 -0700 (PDT)
Received: from smtp-fw-33001.amazon.com (smtp-fw-33001.amazon.com [207.171.190.10]) (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 A7936C14F713 for <wimse@ietf.org>; Mon, 22 Jul 2024 17:29:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1721694583; x=1753230583; h=from:to:subject:date:message-id:mime-version; bh=n6vG/aYm7LD0Vz02VFrYEra+gUB6NcbVE4neJYAfpDM=; b=sMacMDQVZzggWXvFibitj+v9xu/F7GefKZCyGKLCOe0XdLF8n7WhH325 F0QASsFu3oI7UyDY8J+nxOpjPzJM164KfmgFTci24fuyCD6tIXYbmpm1M 9yf2i2JvjHkqJHxB/dkdBP7067uSsDjRQkIkUloIMNsjmoyoVPMI4D564 U=;
X-IronPort-AV: E=Sophos;i="6.09,229,1716249600"; d="scan'208,217";a="358234618"
Received: from iad12-co-svc-p1-lb1-vlan3.amazon.com (HELO smtpout.prod.us-west-2.prod.farcaster.email.amazon.dev) ([10.43.8.6]) by smtp-border-fw-33001.sea14.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jul 2024 00:29:42 +0000
Received: from EX19MTAUWC001.ant.amazon.com [10.0.38.20:62371] by smtpin.naws.us-west-2.prod.farcaster.email.amazon.dev [10.0.49.138:2525] with esmtp (Farcaster) id 61a94334-1ef6-4c40-b336-887cef10f160; Tue, 23 Jul 2024 00:29:41 +0000 (UTC)
X-Farcaster-Flow-ID: 61a94334-1ef6-4c40-b336-887cef10f160
Received: from EX19D008UWA003.ant.amazon.com (10.13.138.241) by EX19MTAUWC001.ant.amazon.com (10.250.64.174) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34; Tue, 23 Jul 2024 00:29:37 +0000
Received: from EX19D008UWA004.ant.amazon.com (10.13.138.220) by EX19D008UWA003.ant.amazon.com (10.13.138.241) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34; Tue, 23 Jul 2024 00:29:36 +0000
Received: from EX19D008UWA004.ant.amazon.com ([fe80::d946:a53:e254:7768]) by EX19D008UWA004.ant.amazon.com ([fe80::d946:a53:e254:7768%5]) with mapi id 15.02.1258.034; Tue, 23 Jul 2024 00:29:36 +0000
From: "McAdams, Darin" <darinm@amazon.com>
To: "wimse@ietf.org" <wimse@ietf.org>
Thread-Topic: Runtime costs of multiple signatures?
Thread-Index: AQHa3JdlUl1sdZrzqUOfy00M4fylog==
Date: Tue, 23 Jul 2024 00:29:36 +0000
Message-ID: <D3970F56-238F-46C8-A1F0-89C43FA07132@amazon.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/16.86.24062313
x-originating-ip: [10.13.138.196]
Content-Type: multipart/alternative; boundary="_000_D3970F56238F46C8A1F089C43FA07132amazoncom_"
MIME-Version: 1.0
Message-ID-Hash: L7ZBOOQACGWM3PIPWSDXZFB32DPXTT6K
X-Message-ID-Hash: L7ZBOOQACGWM3PIPWSDXZFB32DPXTT6K
X-MailFrom: prvs=9276a5586=darinm@amazon.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc4
Precedence: list
Subject: [Wimse] Runtime costs of multiple signatures?
List-Id: WIMSE Workload Identity in Multi-Service Environment <wimse.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/wimse/hhRIbHp90CU4vUT5vAm7HRhXoSA>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wimse>
List-Help: <mailto:wimse-request@ietf.org?subject=help>
List-Owner: <mailto:wimse-owner@ietf.org>
List-Post: <mailto:wimse@ietf.org>
List-Subscribe: <mailto:wimse-join@ietf.org>
List-Unsubscribe: <mailto:wimse-leave@ietf.org>

Really appreciate all the work that the design teams have put into the WIMSE proposals.

I’ve been reading the docs in preparation for the IETF meeting and encountered a question I hadn’t seen discussed. The examples in service-to-service tokens<https://www.sheffer.org/wimse-s2s/draft-sheffer-wimse-s2s-protocol.html> appear to require a total of 3 or more tokens to be validated. This includes an OAuth access_token, the workload identity token, and the proof-of-possession token. The proliferation of tokens will have an impact on both the “bloat overhead” of each HTTP request, as well as the CPU and latency cost of running 3 or more asymmetric cryptographic operations. Perhaps it’s because I live in a world where a million requests per seconds is normal, but I found myself asking: “What will this cost?”. Has there been any discussion of the runtime costs of these proposals? It might be OK, or it might not, I simply don’t know and am curious.

If this approach were pursued, audiences with efficiency concerns could raise additional questions such as: Is it acceptable to cache the validation results for a workload identity token so it’s not necessary to re-validate the same token on every HTTP request? Or, if a particular implementation has the means to do so, is it OK to distribute the token out of band so it’s not necessary to pass on every request?

One other thing I noticed is that Figure 12<https://www.sheffer.org/wimse-s2s/draft-sheffer-wimse-s2s-protocol.html#name-signed-request> in the HTTP Message Signature example doesn’t include an Authorization header with a bearer-token, as in the DPoP variation. I wasn’t sure if that’s because it’s unnecessary when using HTTP Message Signatures, or if this was simply a mistake in the example. I was trying to wrap my head around the pros-and-cons of each option, and whether one requires fewer signatures.

-Darin