Re: [OAUTH-WG] [UNVERIFIED SENDER] RE: Cryptographic hygiene and the limits of jwks_uri

Dick Hardt <dick.hardt@gmail.com> Thu, 30 January 2020 19:27 UTC

Return-Path: <dick.hardt@gmail.com>
X-Original-To: oauth@ietfa.amsl.com
Delivered-To: oauth@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 23C7D1201B7 for <oauth@ietfa.amsl.com>; Thu, 30 Jan 2020 11:27:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 d3gODPZk9m_h for <oauth@ietfa.amsl.com>; Thu, 30 Jan 2020 11:27:40 -0800 (PST)
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com [IPv6:2a00:1450:4864:20::136]) (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 CBCC1120170 for <oauth@ietf.org>; Thu, 30 Jan 2020 11:27:39 -0800 (PST)
Received: by mail-lf1-x136.google.com with SMTP id v201so3053880lfa.11 for <oauth@ietf.org>; Thu, 30 Jan 2020 11:27:39 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=rEW6bBNJR+kAlzMdAM4T0ClIT86PaFA6tyyDoJ0fRtI=; b=V167uuo9fH8YqhcVBIRJmVC46vMHdgSjTV0joTCsOQ7WKTsoKLx4Xa/wp3Q/hkPJ6Q OU2HCPK4ORxdiunTn166Sl95q/UEVaVT9aHE4Id2CWa7bc23Y186/Oq7zHH+4QobcMAp 85rcOOI60K2aJGN+T631hCf1Eymm5oBzFlIUeHnELKtMfQ8waXA/WRpRYhxjx5mPXZXE KH5xW0OS0Hi/Eg1vLRsrPXtt38TBXjlFkISrVJJOQIxoonwx3LP6WnHALg5KKaqi8edn XY/fiQqbeKWb1Apb9vK2uJUparn4V5G8ZcZAv/xPT7477Q8LMFfqpz7ogdtMBysJtp/h 69aQ==
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=rEW6bBNJR+kAlzMdAM4T0ClIT86PaFA6tyyDoJ0fRtI=; b=G6F1res8GFvpqS9UsJgiulnlwPlrpTm43HZdT80RohNKvuiogyUVW1HsgdZYfMbv02 OZmi882SZWjyJkK56HXzk/2KzGT2B2TJdnFbMhzbg1Q9UjVZaA9xd0DYvfBQz+guS7By i+Gcdv8oYutNrbvaQ1uqMSN1DKNAOb8yApLzj4LRXCuqYCiHyZWeaAiVsu0nBpxwLFdI 7FMPWyBryAt4VZGy3I00GcbcfeYAJyQzAwwc4v4LDzUWOGDbKk5188/BXOpic01hF+fR PblPwu5gHvpv1AoARd6woFOyfLjVJoaDkrk32IGy/QoQB2v9LhFmyK5hgJ7vWWhuQG0w UjiA==
X-Gm-Message-State: APjAAAXdeNEGJh5fyPccjM2D8i5rDDcy3IibStbodwozCEepGg1dtbq4 v8v7dr69s2BFHik3TIxXbDJcU0R/akjAz99Vo9U=
X-Google-Smtp-Source: APXvYqwGxJYyVjnHZP+fyYQqmSPvv+Ohye4TY6D5uR5pkjGFz3qByB7oiEHaiGjS/ll25gkSG5uNGvZ2CzOiawcJvQI=
X-Received: by 2002:a19:7711:: with SMTP id s17mr3381100lfc.164.1580412457821; Thu, 30 Jan 2020 11:27:37 -0800 (PST)
MIME-Version: 1.0
References: <CAD9ie-vRsL9ey2LDNoaWkapRUewS_c1S0r3QCcqJLmJ5KqKsGw@mail.gmail.com> <5F7A3816-AC9B-4BA2-9D91-CF89109B6788@forgerock.com> <CAD9ie-uebUCw5vxELPXQvQSY3Z3T2dNJGOpzEQ8cMgZcCOu+tg@mail.gmail.com> <79DF80DA-6682-4F25-A02A-B4137053FD8A@mit.edu> <6fab97c9-e9bb-58f8-ba14-22307e35bfcf@connect2id.com> <7AAAB265-6D3C-4FA6-81DD-E809AA49F8E3@mit.edu> <ME2PR01MB3524A19AEE8C383C1F8FEF6BE5050@ME2PR01MB3524.ausprd01.prod.outlook.com> <C42BEE5B-C73C-4211-9ED7-656513A83C3D@amazon.com>
In-Reply-To: <C42BEE5B-C73C-4211-9ED7-656513A83C3D@amazon.com>
From: Dick Hardt <dick.hardt@gmail.com>
Date: Thu, 30 Jan 2020 11:27:10 -0800
Message-ID: <CAD9ie-v3r-gEaEuwfg+ZzMY+RvMxeFffgXjtkBn4HMVhTOszUQ@mail.gmail.com>
To: "Richard Backman, Annabelle" <richanna=40amazon.com@dmarc.ietf.org>
Cc: "Manger, James" <James.H.Manger@team.telstra.com>, "oauth@ietf.org" <oauth@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000025b47d059d6073e0"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/6upoUroOY6mpvsDx4UQISfo0nxg>
Subject: Re: [OAUTH-WG] [UNVERIFIED SENDER] RE: Cryptographic hygiene and the limits of jwks_uri
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/oauth>, <mailto:oauth-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/oauth/>
List-Post: <mailto:oauth@ietf.org>
List-Help: <mailto:oauth-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/oauth>, <mailto:oauth-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 30 Jan 2020 19:27:42 -0000

Rephrasing Annabelle's description to highlight the issue:

The AS says "here are the keys to use to verify all of the tokens that *we*
have signed"

Separating duties in a large system is good cryptographic hygiene, IE, one
component signs ID Tokens, another signs access tokens.


On Wed, Jan 29, 2020 at 1:36 PM Richard Backman, Annabelle <richanna=
40amazon.com@dmarc.ietf.org> wrote:

> This could be nice, but it’s solving a different problem. The issue I’m
> drawing attention to is about how an AS indicates that a given key is
> valid. That’s what the jwks_uri AS metadata property is for, and it does a
> great job. The problem is that it does not allow enough granularity.
> Currently all an AS can do is say “here are the keys to use to verify stuff
> I signed.” It can’t say “here are the keys to use to verify ID Tokens, and
> here is a different set of keys to use to verify access tokens.”
>
> —
> Annabelle Backman
> AWS Identity
>
> > On Jan 28, 2020, at 10:51 PM, Manger, James <
> James.H.Manger@team.telstra.com> wrote:
> >
> > 
> >>
> >>> It would’ve been nice if JWK could’ve agreed on a URL-based
> >>> addressing format for individual keys within the set, but that ship’s
> sailed.
> >
> > Using the fragment on a JWKS URL to indicate the key id would be good.
> > Then a single URL by itself can identify a specific key.
> >
> > https://example.com/keys.jwks#2011-04-29
> >
> > This would have worked particularly well if a JWKS was a JSON object
> with key-ids as the member names, instead of an array. That is presumably
> too late to fix. But defining the fragment format for
> application/jwk-set+json to be a kid value should be possible.
> >
> > If you put multiple keys with the same key-id in a JWKS you are asking
> for trouble -- just call that a non-interoperable corner for people to
> avoid.
> >
> > --
> > James Manger
> > _______________________________________________
> > OAuth mailing list
> > OAuth@ietf.org
> > https://www.ietf.org/mailman/listinfo/oauth
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>