Re: [OAUTH-WG] Call for adoption - SD-JWT

Mike Jones <Michael.Jones@microsoft.com> Tue, 02 August 2022 20:05 UTC

Return-Path: <Michael.Jones@microsoft.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 CA0D1C14CF08 for <oauth@ietfa.amsl.com>; Tue, 2 Aug 2022 13:05:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.692
X-Spam-Level:
X-Spam-Status: No, score=-7.692 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.582, 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_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] 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 ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id w2XTqpvCigFY for <oauth@ietfa.amsl.com>; Tue, 2 Aug 2022 13:05:51 -0700 (PDT)
Received: from NAM06-BL2-obe.outbound.protection.outlook.com (mail-bl2nam06on2118.outbound.protection.outlook.com [40.107.65.118]) (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 8D7EAC37DA2C for <oauth@ietf.org>; Tue, 2 Aug 2022 13:04:56 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DGo3AEDjfTiwmQuDyKui0EFROvMNli2SB2+zfb4vnTEmW0uLOmiYDeCJcNPkLiNCENtU/o9JumwlVQep9Rp71ov1fILIwqvmWlnMAPZAFsy1/Xfgxah1XLCpARHFi6I5eBXBC8zuymoyhwwv4UANplqb8h/VfZjlrxpK0clrB8uA4tL5334UtWUYs4VwRHEMd58wfWT1wukr324oJlH4AQm+u//+UyXXoYzNcmuj9R8dkqfnBE0vjc3JbJssPM83mGS+c/WwQLk9dL2YagYx7UVbvtYeTtOKMIMz+EgJNPq1IjOyyXmqjlQfkXnHYLOAt3FR1tuQwK+eJfNkQenH/A==
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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jUkhMP5hqiQK2Gv87oTJDENNL9bwJOwBUgQ/VGE6E3A=; b=HQ02RCTgCISaWnozwnk2r4FR6AsvPlKLKiAxfA+Ukct24Brytx9tJB46N+B7uRyvFZ7/6idq0DKZrw+Xci8ROHPYEVCb0rMFuY9l9GW9tcJiNqrgNDhzNbyZVXSPAJx3AUcJO/dj5UZahs9SjWX9QeyNXg2Nn6ItKSsLbEaKQM0vJqZnhNDyzu8y4wqJj8Wfyy+h5pyiCflDYxyOmnRsBhDWTyFJp1cVNxwnK3bVcM7B2zzwh9hqXYSMcWd+6emlgQmBjWx0UL9b4jdgwnQ5BXc7mxfDGVliUNMwMuxioge4fL9nv0QxPHFDTdXNiGEA+Uv3QBZP63jcl65RRSI1ZA==
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=jUkhMP5hqiQK2Gv87oTJDENNL9bwJOwBUgQ/VGE6E3A=; b=IBNK8xhgESpYNT2X2TLQs6KEC5u6kFeJlaz7ib+lxRQcH8pmfX/PrYO5uThZlc2rN02rzJnt0K4l5/iSlviBbn0ij1/5t5QEaWDRmv0Vu2uH3gEcFc1gO+u4WPT9NW5kW/9ZSO3DK1H6itY+i9YBxWUvB0MAacM5BR9vsM956o0=
Received: from SA2PR00MB1002.namprd00.prod.outlook.com (2603:10b6:806:11a::8) by PH0PR00MB0983.namprd00.prod.outlook.com (2603:10b6:510:43::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5536.0; Tue, 2 Aug 2022 20:04:53 +0000
Received: from SA2PR00MB1002.namprd00.prod.outlook.com ([fe80::94b8:8fe9:e43c:243f]) by SA2PR00MB1002.namprd00.prod.outlook.com ([fe80::94b8:8fe9:e43c:243f%5]) with mapi id 15.20.5536.000; Tue, 2 Aug 2022 20:04:53 +0000
From: Mike Jones <Michael.Jones@microsoft.com>
To: Neil Madden <neil.madden@forgerock.com>, Kristina Yasuda <Kristina.Yasuda=40microsoft.com@dmarc.ietf.org>
CC: oauth <oauth@ietf.org>
Thread-Topic: [OAUTH-WG] Call for adoption - SD-JWT
Thread-Index: AQHYouCTk9c8m0fE1E2G7eIrQZkPyK2a5zmAgAB0FYCAALQHMA==
Date: Tue, 02 Aug 2022 20:04:52 +0000
Message-ID: <SA2PR00MB10023E6A909909FB190E2C50F59D9@SA2PR00MB1002.namprd00.prod.outlook.com>
References: <CADNypP9xSXWKV=0nj803fW9xdqgguLWLOpMMQd0Uw3P16LQpfQ@mail.gmail.com> <MN2PR00MB08930D8DCA347979CB77E4D9E59D9@MN2PR00MB0893.namprd00.prod.outlook.com> <61F6B160-8CA8-4DB2-9F0A-DB81037AC495@forgerock.com>
In-Reply-To: <61F6B160-8CA8-4DB2-9F0A-DB81037AC495@forgerock.com>
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_Enabled=true; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2022-08-02T20:00:47Z; 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_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=8dbc2ade-556c-4a3b-9e69-45bce821e12e; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microsoft.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: f4ddac6e-1d08-40da-c865-08da74c24373
x-ms-traffictypediagnostic: PH0PR00MB0983:EE_
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: GqwIeGlTpwLNvUeQb5KTsgL0ZIFeP1TcmPusOq6jlPrscb7it+5kdyhGvqrZ+W6ialIb9ab35/UQBq7i3m8//ZOe32vaN1mVxgvi26uwNh6HBAsRQqKyUDvFipGGzRvL+Om/wfg+kTRamncZ4PT0zLydSMzRlkSF3aa95Sug6YKCN/LSDqBpgk1DQW1J/FxIdia9LtOSEy/uhHfGdKgpJqE3U970H9hqNexuujkXdBTxyfuiROcIyfyPdvobuRSmilFtYCeeDpc+vTaKNRn2AltT0U5chkgUTAEVesuWyL4oxX7j3+mBOZqHzK9YHwtRv3l3FKZr70WjLc/CiN3CvwrwC2Ep2UgKAACQMGoYQa5wAplYRWDVs6Xx2Kf1jM2VGZcw07mSDsYRFX+UnZ3QVIlaAUIk+1FpryA0tBSFXCB+rnjeTL56xrPNBuDNl6nG+Y2iuXJb2Ih20RnpCtFeo/DTRk3wXUl1qKjNxrq8jmtLw8m9NmoLf9diTPkSXwSoGlOwxnk102LaHRnb2PIyoHy+ekMbyPVxoJNnHbk9B+6AgzJ4WtgEZc6VMtIXW0S+JjMBGnvhGO8gbi6dFKNQdnWD09fPoTZWItkrVgMFMWYIGbWLXJhc6IQzObUafndPDDAsKs/z7Yr3pA/hjbDJ4+DZ1nmkl3pg0D+UtzI3JrRPRwn8SbcUh64CNVxANU3/052htI3/LKqeTtw4KryGAaLvLZ1OsrP10VRQUKlOG1TonmwU6J8/rBObgy7+hWI5zXFaR1NsFmh+v8IfD981JlPhen8iI3Vt90qblkkHiwY3vTj+dEBolP2fCfY8fRBDqqIe7wmbu0+oF1wharxgfn41sXSmOIhir73DUWw7W2E=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR00MB1002.namprd00.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(346002)(376002)(39860400002)(366004)(136003)(451199009)(5660300002)(122000001)(52536014)(8676002)(38100700002)(55016003)(4326008)(110136005)(76116006)(316002)(10290500003)(186003)(66574015)(64756008)(8936002)(66946007)(66446008)(66476007)(66556008)(86362001)(83380400001)(71200400001)(478600001)(9686003)(38070700005)(2906002)(82950400001)(82960400001)(8990500004)(41300700001)(33656002)(6506007)(53546011)(7696005); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: fNhKIHpBT1lxjgvRy6656CLkHgKQ5/tTQgM9JnW9HlIkWX7YkAwO6OCLVKqRgrR4fRnP6GVDovyXbMIR83OTV2iu8p8XWlAgBIK38ATrl359gKcHgo4kD1rzCmxsRjcoTEbkqzm9HZ6R3JSDANFyTLEIEAIDJOXqfGGYJU8K6kBAw6VA+3LUf8/sw/wl4wAJJE2zqcWF+plpk1ybRwOScEj8Bp1xTWKAR179FbdkwIC4nKSPLSqUB+jF/+FAlbx60TJsJj4/dWfEMHwfGEU5P1EhgUKhB+1wkCqVyVzeqNu3aAkWeiczes0KsqQ+iEogPNY1vRslxpjEyyuUfhuJT3GqO4mp7TV24gjsQ3DJCuZJrdINzaZK59XruLfa/wSUqvGcmD3wObN8nsma/i8bdSaCvYDM/vVkDoJIp/TBKrXYPNUCRa8Jh3vpdghVqiIKgbUVrZeZq2Ja54IgDP6oWQrrR+ULpaDdonRXHaaJibiqiaJNBva641dbtVZz9Mf07W1wsD8hD/nFOhACMzft+peaRZP2pcb68SQvDqmc/g0VOAe3d6hPl11zT3Z7Ea/qgnVwsEQ+1P1jMVjy8HxnDgQfEke1gjCwdWEcbbWNmTX5YtpVv8tvjBEVwKO3xjK172TdNoPRjs91We0gx7v9o8BYMsvowzV3Ajx51aTC/gahfNnDXskDm7i4NwqLj3E6IC1SJ2gNU4GJR7UiqdssDhhYRrYj1WAmy66D9v19OPUMBVCZsyde1GmhFA9uGKMWUJJlOrG2xK8Nzs2qqlgUdcXCaTCw7/8RP9ly8X4qE1o6AGIvSSyoF0TQGbuy2yJrd9Wkqw1Uny+azIJ/ZhibcbECNdGnwHmMjG0hcDWre/JBff3M1ku9lqdH9QaXNhFrfAmfn7Hmr1pUeGwxrY12hI2OvElg3bsZUyIpF9KUSVs4E8pALQOA8jTQfW5ffZYfPjdbcmg7cTaGOEk1A7SlLImJREzliL1mL8AZOV2M8bzl2ZKLMf6dYENAiDtevwqM3atjza0S1/4ehgUdB5L0MN/wH3RwrCpPSMczYMrSg3OvZSAUgcrj1T12P2fh7SREEgx5uVt8L5SEGmOtYztHXO3Gso7NwiMQdjcvvt8j+PSdjNvjeddlJIGrCUNcQz+MQgH6qMibBOAew0vxbR29enxkPpzitiWBPfPyFZcrlZZh/e+nGFKz0G30DQDnNr+BAxkaPF+ZeaCw1Rq9oJ3N8pdY9mXd9lc16p6AF4mBj6OG5KrpBBdYx3CZehovWWvXU+uK6GqX+owtaLfSmH6ZcdXVYj3jGnVzzAbVw2ThHn6VYcxZI+p7DZr61t1xBRlMmxOxtG9s3qEjre8xXTiu6EIJ1R+u918duDbtXzIP7SeRGO22YHr8haAKvHae5Di9100JvTJrHJcr3FCUcSyAgFWGtAgTQ3lRd6Tk7XKZTyAJIsyD1YgSA2LCBawfjPHBlRSC6SvXMgIN/cjRcAi8JF1JcL5S36xeGr7vVv0Ilfu86w6esLSfe1h3TtXz8f6I987opZu1MkCXWxRFjt08J5PmdExWwmF1PNG4x+c4iQoF8alIuqMQXa1HJ2/f2FILuyviUyQjRQqQ/vifffrcQTXgggluydk2y/3xGSJlfhbgOKMoeWcC1cVKg23ynQbq
Content-Type: multipart/alternative; boundary="_000_SA2PR00MB10023E6A909909FB190E2C50F59D9SA2PR00MB1002namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR00MB0983
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/CWkaa73XbiZz_sZNZgx1GnvqZMg>
Subject: Re: [OAUTH-WG] Call for adoption - SD-JWT
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.39
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: Tue, 02 Aug 2022 20:05:52 -0000

Neil, you wrote:
"SD-JWT is not simpler. Anyway, I think I have learnt enough from this thread, we don’t have to keep arguing the same points. I think the claims of combinatorial explosion are somewhat exaggerated and I don’t see compelling evidence of a real world need for selective disclosure in OAuth, so I don’t support this draft."

Speculatively issuing JWTs with combinations of claims because they might be used in the future might be a fine strawman proposal to score debating points but is hardly a practical engineering solution.  Whereas SD-JWT meets the needs of JSON-based use cases for selective disclosure using the issuer/holder/verifier pattern, including those for ISO Mobile Driver's Licenses.

That's why I support adoption.

                                                       -- Mike

From: OAuth <oauth-bounces@ietf.org> On Behalf Of Neil Madden
Sent: Tuesday, August 2, 2022 2:16 AM
To: Kristina Yasuda <Kristina.Yasuda=40microsoft.com@dmarc.ietf.org>
Cc: oauth <oauth@ietf.org>
Subject: Re: [OAUTH-WG] Call for adoption - SD-JWT


On 2 Aug 2022, at 03:20, Kristina Yasuda <Kristina.Yasuda=40microsoft.com@dmarc.ietf.org<mailto:Kristina.Yasuda=40microsoft.com@dmarc.ietf.org>> wrote:

I support adoption.

To add some color.

One of the use-cases is a flow where issuance of a user credential (collection of user claims) is decoupled from presentation (where both issuance and presentation of a user credential are done using extensions of OAuth flows). The goal of this decoupling is to avoid “issuer call home”, where the user can send a user credential directly to the RP, without RP needing to contact the Issuer directly.

So what’s the plan for revocation in this scenario? Something like OCSP Stapling? Short-lived tokens? Either way, the client will need to go back to the issuer regularly.


So the motivations are not limited to offline scenarios, but are applicable to the scenarios that want to recreate in the online environment, the user experience of presenting credentials in-person.

I’m not sure why this would be a goal. Presenting credentials in person is subject to many constraints that just don’t apply in the digital world.



Driver’s Licence just happens to be an example familiar to many, and there is no reason it cannot be a diploma, or an employee card, or a training certificate, etc. But it is worth highlighting that SD-JWT work becomes critical if we are to enable ISO-compliant mobile Driver Licences expressed in JSON to enable online scenarios and make life of the Web developers easier (as opposed processing data encoded as CBOR and signed as a COSE message). Selective disclosure is a requirement in many government issued credentials, while the usage of advanced cryptography is not always encouraged by the national cybersecurity agencies.

I’m not sure what any of this has to do with OAuth?


Regarding an approach where issuer issues multiple JWTs of a same type but with different subset of claims, it is not an ideal way to do selective disclosure with JWTs (type as a way to differentiate credential with one data structure/syntax from another). It complicates implementations that try to provide RP-U unlinkability (RPs cannot collude to track the user). The simplest way to achieve unlinkability with JWTs without using advanced cryptography is to issue multiple credentials of the same type but with varying use identifiers and enable pairwise identifiers per RP. Now there are multiple copies of each JWT with subset of claims of the same type. This greatly complicates presentation of these credentials too – since credentials are of the same type, now wallet needs to manage the combination of a subset of claims + pairwise identifier…

The same is needed in SD-JWT - the wallet needs to manage pairwise identifiers and which subset of claims to disclose.



What if the implementation also wants predicates property, where age_over_XX boolean is sent instead of a birthdate string? The simplest way to do predicates with JWTs without using advanced cryptography is to have issuers to issue multiple age_over_xx booleans so that an appropriate one can be selectively disclosed to the RP. How many “JWTs with subset of claims” does the issuer needs to issue to account for all possible age requirements? Note that it’s not just age_over_21 to start gambling, it’s also age_over_65 to get pension benefits.

Being over 65 also proves that you are over 21.


Managing the combinatorial explosion of sets of claims in speculatively issued JWTs, many of which will never be used, seems unwieldy, to say the least. "A conventional JWT with a subset of claims" approach could be taken in some implementations, but it should not prevent a simpler, extensible alternative of SD-JWT.

SD-JWT is not simpler. Anyway, I think I have learnt enough from this thread, we don’t have to keep arguing the same points. I think the claims of combinatorial explosion are somewhat exaggerated and I don’t see compelling evidence of a real world need for selective disclosure in OAuth, so I don’t support this draft.




Finally, as Giuseppe pointed out, an option to blind claim names is on the table. As discussed on this list previously, we should analyze privacy properties of the mechanism and decide if we want to mandate it – which can be discussed after the adoption.

Best,
Kristina


— Neil