Re: [lamps] Fwd: New Version Notification for draft-stjohns-csr-attest-00.txt

Mike Ounsworth <Mike.Ounsworth@entrust.com> Mon, 22 May 2023 19:24 UTC

Return-Path: <Mike.Ounsworth@entrust.com>
X-Original-To: spasm@ietfa.amsl.com
Delivered-To: spasm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 615FDC14CE25 for <spasm@ietfa.amsl.com>; Mon, 22 May 2023 12:24:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.696
X-Spam-Level:
X-Spam-Status: No, score=-2.696 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-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 (2048-bit key) header.d=entrust.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 hF4FAvTJXZ6B for <spasm@ietfa.amsl.com>; Mon, 22 May 2023 12:23:57 -0700 (PDT)
Received: from mx07-0015a003.pphosted.com (mx07-0015a003.pphosted.com [185.132.183.227]) (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 B02EBC14F73F for <spasm@ietf.org>; Mon, 22 May 2023 12:23:56 -0700 (PDT)
Received: from pps.filterd (m0242864.ppops.net [127.0.0.1]) by mx08-0015a003.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34MHlDoB001628; Mon, 22 May 2023 14:23:54 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=entrust.com; h=from : to : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=mail1; bh=N/SRK3mKnFyYWZcoySyPsaZtjPPHnr90D+waba13gnY=; b=J0hxVfoErl+TOTamhobrRsj/8WTEFNx1XpAQ5ANEAZyyAgYFzOfwIqt2+7+5C5/Anwns ImcgzEU4VXD85BCWP7v+K+JKK0h9/VdLXVw9+cH6qsfYK3fceX7P5xppUe+12/aKxxS+ f7lIe0ISJw4MvCCS2Hqy28BrTYM1G5elPjzXTU3tdqLH9RZf9STUChFboGEF72alT8VQ cMIhA0UCldBr6AsEv/A4BPRE49uWUjjwsGiPWpD2abP6MjT7Yr5WZzkkWSQKYRo+5rGC DiBVAQseBme0AJKdSHyKSdNrzxBFEaYBgEXCzEznSwwOAbacVYhNW8tp3F/8rIu7iBPx YA==
Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2173.outbound.protection.outlook.com [104.47.57.173]) by mx08-0015a003.pphosted.com (PPS) with ESMTPS id 3qptw1yumq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 22 May 2023 14:23:53 -0500
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nq6vuflLMM3fvBDMlNFiSVRp16PbGUyemjFHRkRf9YVUW3XF661eilT3n+IxhP8KIuWM8rGPfZrqeY5rJn7UJuuRqVE5gmbibc3fBkGkXccDBOoSk7YV8f3l27RTEW+j/hKgLnLX86mFWTdGPrIQCnbjhjeermeTGewv7zILYLKPgmD9r/fDoS0z1t61TbCTeCOyz0T3K2guea9lsqI7gLaMHP8zEnSXL8wwUe8dv6BtxmHCooTOCnUQ+xALGfmCpyPH1e7cZPORUY8zz52QiqkxkIA4i1g4f6qsI2EUxGPVxg4t36Z/v10nq8l6N2MCfSKtD6cRY0TVf7gSjuCGLQ==
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=N/SRK3mKnFyYWZcoySyPsaZtjPPHnr90D+waba13gnY=; b=kZXCKysLh1eaDYbYS3xvaj7e6Yco4SRtJFUc+H9KVDbco0B5TxX+ej2ZNQzndy/UAageOUVe2+M6qWb0TUC0IhGNkTKC33+H9erUMYhSwXgBS3tGO1cUZLoh9PzwA0ODmIUi3IWK7aaZdCQ6eAq+ba9qwOCMdML6DvA0oG0jJFBRtR6GcZMVrQAe9N3UWklxQ7sDmQQ1MVj28/1JOqYN9QNe+iAMiK2+mmgz0kb45OZnvjAlKhLs2an4PMeF2g0iC7mntcVpMq5W2q4GTFZM4QTaAOL1rP19+HV3QlkAG1vGZVNuXuTvtX+uauRCOeZgLRP6f9Kvdilsi8F9j8tmAw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=entrust.com; dmarc=pass action=none header.from=entrust.com; dkim=pass header.d=entrust.com; arc=none
Received: from CH0PR11MB5739.namprd11.prod.outlook.com (2603:10b6:610:100::20) by SJ1PR11MB6202.namprd11.prod.outlook.com (2603:10b6:a03:45b::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6411.28; Mon, 22 May 2023 19:23:44 +0000
Received: from CH0PR11MB5739.namprd11.prod.outlook.com ([fe80::6f08:9ebc:8857:74f7]) by CH0PR11MB5739.namprd11.prod.outlook.com ([fe80::6f08:9ebc:8857:74f7%6]) with mapi id 15.20.6411.028; Mon, 22 May 2023 19:23:44 +0000
From: Mike Ounsworth <Mike.Ounsworth@entrust.com>
To: Carl Wallace <carl@redhoundsoftware.com>, Michael StJohns <msj@nthpermutation.com>, "spasm@ietf.org" <spasm@ietf.org>
Thread-Topic: [lamps] Fwd: New Version Notification for draft-stjohns-csr-attest-00.txt
Thread-Index: AQHZjNbfKMUqGhnPPEiQZ2nos1p1Ma9mlTiQgAACGACAAAXEYIAAA4wAgAAAMaCAAAkXgIAAAEsQ
Date: Mon, 22 May 2023 19:23:44 +0000
Message-ID: <CH0PR11MB5739B2A44A1B583906F317E39F439@CH0PR11MB5739.namprd11.prod.outlook.com>
References: <168331537984.50127.1942970699665334403@ietfa.amsl.com> <3f1aadc9-90df-6399-8e58-6acf308badaf@nthpermutation.com> <3174C876-371F-4CB1-B185-1AEB6178443D@redhoundsoftware.com> <7d155459-9722-8cef-bc0d-aa76e876990d@nthpermutation.com> <F40CDA6E-61DB-4427-B868-7B471E4F1BF1@redhoundsoftware.com> <CH0PR11MB573949437C81CF6A4CB278FD9F439@CH0PR11MB5739.namprd11.prod.outlook.com> <11774436-6AD2-43B0-AC83-5DA2144662CE@redhoundsoftware.com> <CH0PR11MB5739719858D26A18A475C84A9F439@CH0PR11MB5739.namprd11.prod.outlook.com> <09E3756E-8851-4D29-A917-E2053627A813@redhoundsoftware.com> <CH0PR11MB5739629C96CD7E5B28FBAA6F9F439@CH0PR11MB5739.namprd11.prod.outlook.com> <A3C66718-1EA5-4C5F-A253-C90FE3E321F1@redhoundsoftware.com>
In-Reply-To: <A3C66718-1EA5-4C5F-A253-C90FE3E321F1@redhoundsoftware.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: CH0PR11MB5739:EE_|SJ1PR11MB6202:EE_
x-ms-office365-filtering-correlation-id: b83d59e8-5cff-4d40-7e22-08db5afa0f4f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: iLqf+OxIpFhqaHzfOKW7skA32IeBTwt7F4bNbdiGl1bLT7rdz/QMkfnAI2btKv4kWyQSPx8DOcA1SH6UA9Nk1QNoutXBn7Z8dTH8dUO9JXfcQj3f+aNMQThs75V2irqy8/rr+Z0IjZeYcwzsqN4XoApqQKHK3c3C7DPXOj0jP9FuXC+qMgpICdigkj4z56CEFfZGtyRmIQJDBPxqOJnKTUVbTs0BdSWRyZR6MpJiL6zoY6SYSeO/ie6luqqB19no7lCEdCMNXseDDm66ZTKXUQWxaGyutNc50KWEGDy1BdZVaFjrD2gt5aIL93oSMzuIbO475EY8r60EhedTvlcqU2GoThqNyvW8PJKthmGkqrR91/3rMAPJCd+0l2KKBu86OubD965nH8z1AN4fQa56ohywH/bxmVZi9fH2FqHpKcKqwQYvJAmgsUZMtIpyGAMoj+ZicmtuyvNmY1j2ji2kZOLJHiAouoOfwT5grpShyLKRit1etCgwzVMH8H0sZw3q3u4NQ1ceue+bm5gXK1qm3qD4QArkG9jO0+Ndo+yLEYRnWDnqHNk0uCrE8xVgNpws7t8Ffb1ORUxQKE1Jz7ycv4/43g0SIv38zcuM/LRF8rRhMk6JRf2NxbEFcXnT1NSMlHZ2xEpC1RhXiA1B6Zg4xw==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH0PR11MB5739.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(396003)(39860400002)(346002)(366004)(376002)(136003)(451199021)(66946007)(66556008)(66446008)(66476007)(64756008)(86362001)(76116006)(66899021)(2906002)(30864003)(15650500001)(52536014)(5660300002)(33656002)(8936002)(8676002)(55016003)(41300700001)(166002)(316002)(478600001)(38070700005)(110136005)(966005)(83380400001)(122000001)(7696005)(38100700002)(71200400001)(6506007)(9686003)(26005)(186003)(53546011)(66574015)(579004); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: ilfsBH0+7yEgioIp+TJK3ZRLVveUy/ScuRKJZ166KdC21FDxsguvY3NOweBlN/uyhW1f6P8vfcYGehgmwuCuJZ7SM9ghRnqHJemmnssfbQRn9xryP86Y6udj+KFDqdgMRxT8pwEHli6U0exxbLdOMs4CsFCl/TMmsCW+sS/7WgajnOO7kefxcxXWcZA1YYgSsfuaTcwFI9Vba+ZpwHZz3dOeE6a7x58yXsKsatk0F1jLwU7/n2S199ztY13DDkBz0A6f4Uk80Z2tsL3Zb0bSldftaiQAjtuOwmLBlFGk7XY1twlCKVH3x+Qi7+kDhyU+hG3cDuhMAmFFUjZh85DYHIwlUNpXAWD10pHeMRDxthk9Nize8QbI9UTvl5VmS45HdiFEFYNp1CHeHzo39yhpPgYZAb3p6BKFs1ermkGGM4VkjuSlgQtYKI4f0OSoPNWJNaliSY0w+538v5ThiQb1g2z6nxmeIQTe7yo8fjuH609RsqaYnf90RjO0cJH9htDhHotCGgw3d+0VZBiw2hNaweD+goGIdb4z0jSsEKt2goEu88gl+4n0wCZIBWATkOTNie5K3xthr2wBjDgj7dEUsbkAPBqBBASKuYuWYWTcJmmQLQdGc3NhntoyacboPybhS2mHrsbsmoODSnaW2qdvTxSZC6xUCQgPkqi9HdlF2sulW/xIQ/7YKcFuciFZDGXTuByavEWDyriR99eGobJU+Ir9Rk5nV5VgckSHZ64NSXPtOyK+NmZDDjz+biqKqU5IcSG1Dxf8Ss1BLgK7S9sYE6CtpigBBcQO6D6sc93J/rALMeqWqzXrZnNwU4ZIyhfkX0ur2ApHwhNez5fH8BVix1NyKgUyzu8+xZIB6eYNKcosXjU6F1b0vxozod5/uR7jZv4hXxNucYXODTtkDdB5y5E3rRXMmvr0V9hsTWnYFZU6Tkmkjnx7RfLRvFMNofw7Hl7ipHUbTFFwi+xaGxhC4C6N+PuePfm77ezVkhbr7qzQVGPk2Nl84ttGSdGH4NUQCNJyiMonCWlr8mxw4hIB3Rg2Zzxo6LoCAXc92xaaEwfPKa/wAKr/cov9PhINzjOiCrE6iIxXT35Gramx97OMAXjD6UpMi6YCgMfbJmp52sA+7XIodYftM7ju8LHHOnm4zqJ+FSw5GAx1qlkCFq+DnfAuLRF5OkAT7LrxlufBne4kDvfG7lB5t5ECZzZ4+2iRtRNMKXuNQNqDwHNUISp9+ZpliskNxkv20OzAsw94CinAcdMESY22edURbiQmflT9MpJ1JNAbN/hLPUTnytzmxuFijeZWLBdg3v4ShIPrpIh471dTneZoeMc2wJ+JCo+y74JWcwfrf80Sguv9hu3KkN49+ZgQ1ojlgrfCg/STDiLZrIL4p2lYiwfenHDt9WDmpKEeCq/sMv4XCia6JS2pt3nhiAUDX0OHz5YwpxYP5S74Zo3nhln7K9ltDSji09ENfNxhtgwe9diosfOt1cCmw4fKt2BFzGkHd/RqUBDN2NEjNP7bEamJ2UZR2ORyqAxWH0ONaxqtM78SUuimNq41ELT0p8W2khMPICn4BGBY1C8q5AV7g/z0D5yGW3mV189A
Content-Type: multipart/alternative; boundary="_000_CH0PR11MB5739B2A44A1B583906F317E39F439CH0PR11MB5739namp_"
MIME-Version: 1.0
X-OriginatorOrg: entrust.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: CH0PR11MB5739.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b83d59e8-5cff-4d40-7e22-08db5afa0f4f
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 May 2023 19:23:44.7772 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: f46cf439-27ef-4acf-a800-15072bb7ddc1
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: LDnTplpJ+g8ovAsiP62bpazmF7MeFgo1a+al9IkcpCyaDvk+eD/SukekEH0rLRhiwYt/PY2s2RCmhyNyFAch3J9DEh07Pk5VLdlceqlbCEg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR11MB6202
X-Proofpoint-GUID: _2bVK-cED57Eu4Vt8Cf-qtFruNyhAKAg
X-Proofpoint-ORIG-GUID: _2bVK-cED57Eu4Vt8Cf-qtFruNyhAKAg
X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-05-22_14,2023-05-22_03,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 priorityscore=1501 malwarescore=0 spamscore=0 adultscore=0 mlxlogscore=999 phishscore=0 clxscore=1015 impostorscore=0 suspectscore=0 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2304280000 definitions=main-2305220164
Archived-At: <https://mailarchive.ietf.org/arch/msg/spasm/o7EhYMZxHAWT4W9hLn8xtydmgAg>
Subject: Re: [lamps] Fwd: New Version Notification for draft-stjohns-csr-attest-00.txt
X-BeenThere: spasm@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "This is a venue for discussion of doing Some Pkix And SMime \(spasm\) work." <spasm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spasm>, <mailto:spasm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spasm/>
List-Post: <mailto:spasm@ietf.org>
List-Help: <mailto:spasm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spasm>, <mailto:spasm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 22 May 2023 19:24:01 -0000

> [CW] Sure. I don’t disagree one could omit the ignored stuff and arrive at the “pause work on an attestation statement and focus first on a CSR attr” point you referenced earlier but ignoring some parts doesn’t strike me as the way to go about it. If you ignore all the other bits you have a type and a bit bucket, which is what I was advocating for instead of this compound approach.

.. you know, at this rate, it would have saved everyone time if you’d just attended the meeting 👀

Yes, correct. 11/12 of us (ie the HSM and CA ppl) just want a type and bit bucket. MSJ wants to be able to unroll the structure to serve the TPM and WebAuthn use-cases. Fine. Tag them OPTIONAL so I can treat this as a {id, OCTET STRING} and then I don’t care.

---
Mike Ounsworth

From: Carl Wallace <carl@redhoundsoftware.com>
Sent: Monday, May 22, 2023 2:16 PM
To: Mike Ounsworth <Mike.Ounsworth@entrust.com>; Michael StJohns <msj@nthpermutation.com>; spasm@ietf.org
Subject: [EXTERNAL] Re: [lamps] Fwd: New Version Notification for draft-stjohns-csr-attest-00.txt

WARNING: This email originated outside of Entrust.
DO NOT CLICK links or attachments unless you trust the sender and know the content is safe.
________________________________
Inline…

From: Mike Ounsworth <Mike.Ounsworth@entrust.com<mailto:Mike.Ounsworth@entrust.com>>
Date: Monday, May 22, 2023 at 2:57 PM
To: Carl Wallace <carl@redhoundsoftware.com<mailto:carl@redhoundsoftware.com>>, Michael StJohns <msj@nthpermutation.com<mailto:msj@nthpermutation.com>>, "spasm@ietf.org<mailto:spasm@ietf.org>" <spasm@ietf.org<mailto:spasm@ietf.org>>
Subject: RE: [lamps] Fwd: New Version Notification for draft-stjohns-csr-attest-00.txt

Hey! It’s like you were at the meeting today! We also spent 20 minutes on that point!


I don’t think it does; the salient bits are:

[CW] This thread has a distinct “these aren’t the droids you’re looking for” flavor.


attestAttribute ATTRIBUTE ::= {
        TYPE AttestStatement
        COUNTS MAX 1
        IDENTIFIED BY id-at-attestForCSR
    }




-- algId, signature are OPTIONAL to allow for opaque key attestation statements that already include the signature.

-- ancillaryData is to accommodate TPM / WebAuthn statements that wish to be "unrolled" rather than bundle itself into an opaque octet string.

AttestStatement { ATTEST-STATEMENT:IOSet}  ::= SEQUENCE

  {

    type          ATTEST-STATEMENT.&id({IOSet}),

    value         ATTEST-STATEMENT.&Type({IOSet}{@type}),

    algId         [0] IMPLICIT  AlgorithmIdentifier OPTIONAL,

    signature     [1] ATTEST-STATEMENT.&sigType OPTIONAL -- NOT implicit

    ancillaryData [2] IMPLICIT  OCTET STRING OPTIONAL

  }


From there, I am free to register id-at-keyattest-entrust with a Type OCTET STRING, ignore those optional values, and I’m off to the races for putting my proprietary blob into a CSR.
[CW] Sure. I don’t disagree one could omit the ignored stuff and arrive at the “pause work on an attestation statement and focus first on a CSR attr” point you referenced earlier but ignoring some parts doesn’t strike me as the way to go about it. If you ignore all the other bits you have a type and a bit bucket, which is what I was advocating for instead of this compound approach.

PS; @Michael StJohns<mailto:msj@nthpermutation.com> – you have a “type” with type “id” and a “value” with type “Type”. I was expecting “type” to have type “Type”. We could probably de-confusingify that a bit.

---
Mike Ounsworth

From: Carl Wallace <carl@redhoundsoftware.com<mailto:carl@redhoundsoftware.com>>
Sent: Monday, May 22, 2023 1:42 PM
To: Mike Ounsworth <Mike.Ounsworth@entrust.com<mailto:Mike.Ounsworth@entrust.com>>; Michael StJohns <msj@nthpermutation.com<mailto:msj@nthpermutation.com>>; spasm@ietf.org<mailto:spasm@ietf.org>
Subject: [EXTERNAL] Re: [lamps] Fwd: New Version Notification for draft-stjohns-csr-attest-00.txt

WARNING: This email originated outside of Entrust.
DO NOT CLICK links or attachments unless you trust the sender and know the content is safe.
________________________________
Ok, but that’s not pausing work on attestation statement to focus on CSR. That draft does both (and more).

From: Mike Ounsworth <Mike.Ounsworth@entrust.com<mailto:Mike.Ounsworth@entrust.com>>
Date: Monday, May 22, 2023 at 2:30 PM
To: Carl Wallace <carl@redhoundsoftware.com<mailto:carl@redhoundsoftware.com>>, Michael StJohns <msj@nthpermutation.com<mailto:msj@nthpermutation.com>>, "spasm@ietf.org<mailto:spasm@ietf.org>" <spasm@ietf.org<mailto:spasm@ietf.org>>
Subject: RE: [lamps] Fwd: New Version Notification for draft-stjohns-csr-attest-00.txt

No changes proposed at this point. I think what MSJ wrote down is fine – overly verbose for the CA/B HSM -> CA need, but not in a way that interferes, so no objection.

---
Mike Ounsworth

From: Carl Wallace <carl@redhoundsoftware.com<mailto:carl@redhoundsoftware.com>>
Sent: Monday, May 22, 2023 1:09 PM
To: Mike Ounsworth <Mike.Ounsworth@entrust.com<mailto:Mike.Ounsworth@entrust.com>>; Michael StJohns <msj@nthpermutation.com<mailto:msj@nthpermutation.com>>; spasm@ietf.org<mailto:spasm@ietf.org>
Subject: [EXTERNAL] Re: [lamps] Fwd: New Version Notification for draft-stjohns-csr-attest-00.txt

WARNING: This email originated outside of Entrust.
DO NOT CLICK links or attachments unless you trust the sender and know the content is safe.
________________________________
Great. I will be interested to see how the AttestAttribute and AttestStatement structures change (or if the latter just goes away). Thanks.

From: Mike Ounsworth <Mike.Ounsworth@entrust.com<mailto:Mike.Ounsworth@entrust.com>>
Date: Monday, May 22, 2023 at 2:05 PM
To: Carl Wallace <carl@redhoundsoftware.com<mailto:carl@redhoundsoftware.com>>, Michael StJohns <msj@nthpermutation.com<mailto:msj@nthpermutation.com>>, "spasm@ietf.org<mailto:spasm@ietf.org>" <spasm@ietf.org<mailto:spasm@ietf.org>>
Subject: RE: [lamps] Fwd: New Version Notification for draft-stjohns-csr-attest-00.txt

Carl,

Noted that the appropriate homes are:

CSR Attr --> LAMPS
Attestation Statement --> RATS.

We met today and I am in the process of writing up a meeting summary for the list, but the sneak-peek is that we decided to pause work on an attestation statement and focus first on a CSR attr so that things that can already do attestations can start sending them to CAs ASAP (for which draft-stjohns-csr-attest is the defacto working draft). When we get back to a general-purpose key attestation statement, I hear you that RATS will probably be the right place.

---
Mike Ounsworth

From: Spasm <spasm-bounces@ietf.org<mailto:spasm-bounces@ietf.org>> On Behalf Of Carl Wallace
Sent: Monday, May 22, 2023 12:57 PM
To: Michael StJohns <msj@nthpermutation.com<mailto:msj@nthpermutation.com>>; spasm@ietf.org<mailto:spasm@ietf.org>
Subject: [EXTERNAL] Re: [lamps] Fwd: New Version Notification for draft-stjohns-csr-attest-00.txt

WARNING: This email originated outside of Entrust.
DO NOT CLICK links or attachments unless you trust the sender and know the content is safe.
________________________________
Replies inline prefaced by [CW]…

From: Michael StJohns <msj@nthpermutation.com<mailto:msj@nthpermutation.com>>
Date: Thursday, May 18, 2023 at 4:25 PM
To: Carl Wallace <carl@redhoundsoftware.com<mailto:carl@redhoundsoftware.com>>, "spasm@ietf.org<mailto:spasm@ietf.org>" <spasm@ietf.org<mailto:spasm@ietf.org>>
Subject: Re: [lamps] Fwd: New Version Notification for draft-stjohns-csr-attest-00.txt

On 5/18/2023 10:35 AM, Carl Wallace wrote:
I reviewed the draft. Below are some comments, questions and suggestions.

General

- Somewhere in this specification there should be a rule that governs the relationship between the public key that appears in the AttestAttribute and the public key that appears in the certificate request containing the AttestAttribute.

I'm of two minds on this.  If I've got a CSR with a bunch of attributes, I'm going to assume that the attributes apply in some manner to the CSR.  If I've got an attestation attribute, I'm going to assume that the attestation in some way applies to the key to be bound to a certificate.

But I guess that could be stated explicitly - but the idea here is that an attestAttribute might be used in things other than a PKCS10 CSR.  I don't know that I would characterize that as a rule per se.

[CW] If you don't check, what prevents substitution of a valid attestation for a different key?

Given that an attest statement may or may not contain the public key, a hash of the public key or some other pointer to the public key,  it may be more appropriate for the definition of a specific AttestationStatement to define what the mapping is between it and a given public key.

[CW] I've never seen a key attestation that does not contain a key. Do you have an example? If the goal is a general purpose attestation mechanism, then the work is probably better addressed in RATS.

- One complaint from some regarding draft-ietf-lamps-key-attestation-ext-00 was that it used CBOR. One alternative that has been discussed is to use an ASN.1 structure that contains a type value and a bit bucket. Why are the structures in this spec preferable to something simple like the below? You could even dispense with a wrapper structure like this and just define OIDs for various key attestation formats.

AttestationStatement ::= SEQUENCE {
                type OBJECT IDENTIFIER,
                statement OCTET STRING
}


I think I mentioned that the above is disfavored.  It's still used in things like the signature field and Extensions of an X.509 certificate because those definitions pre-date the deprecation of "ANY".   If you're wrapping non-ASN1 you stick it in an OCTET STRING.  If you're wrapping  ASN1 you do not encode the ASN1 and stick the bytes of that encoding in the body of an OCTET STRING, you place the object in the structure as-is.

[CW] The structure could be written using current ASN.1 syntax to tighten that up. Encoded ASN.1 appears in OCTET STRINGs all the time. Doing that here would make the whole concept much simpler (at the cost of a couple of bytes for tag and length).

WRT to CBOR etc - this is LAMPS so we're mostly talking about how to encode things for PKIX related items.  To the extent possible, at this level avoiding additional encoding regimes is highly desirable.

[CW] There is nothing about LAMPS that prohibits addressing CBOR. The horse has left the barn with regard to key attestation formats. Some are in CBOR and it'd be good to have a means of presenting those as evidence when requesting certificates. Defining an attestation or new certificate types seems to be on less solid ground charter-wise. Attestation statement work should likely be conducted in RATS (with CSR binding done in LAMPS). New certificate formats would likely be LAMPS but may need a charter mod.
Section 1

First paragraph

- I am assuming the two specifications you are offering a counter proposal to are draft-ietf-lamps-key-attestation-ext-00 and draft-ounsworth-pkix-key-attestation-02. These are really two different things and it is not obviously clear how this obviates both. The former has expired and, as a co-author, I am not aware of any plans to continue with it. More generally, I think a specification is needed to address conveyance of key attestations to RAs/CAs but I don't like the idea of defining a key attestation format in the same spec. These should be separate specs, in my opinion, but I'd expect the conveyance spec to support any format spec.

Yes, those were the two. And yes there needs to be a "HSM Key Attestation Statement Creation and Verification" document separate from what I wrote.

[CW] If this is not a counter proposal for the key attestation format draft, I'd drop this verbiage. It seems like it’s less of a counterproposal and more of just another attestation statement format.

Third paragraph

- This spec supports a blob (possibly containing a blob and type) and a signature. I suppose this can be viewed as "any type of certificate imaginable" but it's just a signature and some data. I'd drop this verbiage.

What you wrote isn't what that paragraph actually says.  I put it there because some folk have never seen a digital certificate that wasn't an X.509 certificate and it was important that they didn't read "certificate" as "only X.509 certificates".  It could be something that is an ASN1 SIGNED type, or it could be something that's a flat encoding similar to  Card Verifiable Certificates or CVCs - (one specification is used in passports and other travel documents) or for a zigbee implicit certificate.

The distinction between a signed object and a certificate is that a certificate always includes a public key bound by the signature, a signed object unless it is also a certificate need not include a public key.

[CW] OK. Adding more prose re: the goal of supporting !X.509 certificates as the draft is made more complete would be a good thing.


Section 2.2

- I think this section aims to serve as an alternative to draft-ounsworth-pkix-key-attestation-02. That should be made clear if so. The spec also includes a third significant unstated goal, i.e., defining new means to convey public keys to verify signed data. It's not clear to me that we need/want alternative certificate types in a spec that in its simplest form would define how to convey key attestations to a CA.

See above.  In any event, if the relying party doesn't support the different certificate types, then the sending party is out of luck.  AFAICT, those types will be somewhat bound to the type of attestation.  But you should be aware that at least one reason for this structure was to handle one of the constructs described in the webauthn attestation definitions where the TPM encoded public key being certified needed to be carried as well as the certificate containing the attestation key.

- There is already a CertificateChoices structure in CMS (that the structure in this spec imitates but conflicts with). If this structure is needed, refashioning as an extension of CertificateChoices might make sense, i.e., by using context specific tags that don't conflict, or by simply defining a few new "certificate" types for conveyance via the other field in the existing CertificateChoices.

This is mostly a "don't care" for me.  I'd prefer what I wrote because it provides a specific non-ASN1 encoding slot, but CertificateChoices would provide the escape I think is needed.

- The Certificate field is not "more or less" an X.509 certificate. It is an X.509 certificate. I would drop this verbiage.

No "X.509 certificate" is exactly a "standard X.509 certificate" as Peter G will explain.  And the Android attestation looks like an X.509 certificate but isn't really.  But I get your point.

[CW] I don't follow (and would still drop this verbiage).

- I agree with Russ' comments re: the lack of need for typedCert and typedFlatCert (but, as noted above, think all of this could be replaced with a type and statement object).

That's not what he said - he was asking why both opaqueCert and typedFlatCert were needed when the former could be encoded as the latter.  I pointed out that it was simply for encoding efficiency.

[CW] I'm not sure what he didn't say as I attributed nothing to him. The discussion above re: a definition with an OID and a bit bucket is all I was getting at here.
If object reuse was a goal,

It really isn't.
one could simply use a degenerate SignedData object with EncapculatedContentInfo playing the role of the AttestationStatement structure above and the certificates field playing the role of your AttestCertsAttribute. Under this approach, no new structures would be needed, but we'd need words to define how existing key attestations fit (and an IANA registry for those types).

Um. No?  I think you jumped from "how do we carry an attestation in a CSR" to "what does an attestation look like".  In the definition I proposed, its perfectly OK to carry a SIGNED object as the sole component of an AttestationStatement.value.  But the idea of the construct is to not have to require the attestation engine itself (inside the secure perimeter of an HSM or Secure Element) to know anything about ASN1 and to ideally be able to quickly stuff the data from the attestation into the structure for the CSR once its in user space.

[CW] I think I see the point now. AttestStatement aims to be a standalone key attestation and a wrapper for existing or future attestation types. As before, I'd prefer those functions be separated.

- The statement "it is possible to use this field to convey a bare public key as well" is at best confusing. It invites a common issue that crops up with current attestation formats (i.e., folks sticking random binary data into field that should feature ASN.1-defined structures). I think the least you could get away with here would be an OCTET STRING that contains a bare public key. I would drop the reference to "bare public key."


Nope.  As long as you type the field, its possible to carry an EC Public Key as "SubjectPublicKeyInfo",  as  a X9.63 public point, and in a raw X Y or sign-of-y plus X format.  The latter three would get stuffed in an OCTET STRING which in turn would be better off in the TypedFlatCert structure.  TypedCert could be as simple as an OCTET STRING, but the intent here was that non-ASN1 stuff got stuffed in TypedFlatCerts.

[CW] Nope? You are listing encoding the "bare public key" as either a SubjectPublicKeyInfo or an OCTET STRING, the latter being what I suggested was minimal. I'd drop this verbiage per your "as long as you type the field" caveat.
- Re: "think compact of implicit certificates", there is no need to be abstract here. You could give draft-ietf-cose-cbor-encoded-cert-05 as a concrete example.
Yup - but as mentioned above "intentionally incomplete draft".  Also, will avoid any drafts as references to the greatest extent possible.
[CW] I'd not avoid a reference where including the references adds clarity.

Section 2.5

- Why do we want key attestations that are inextricably bound to a CSR? Most of the structure here goes away if we discount that as a goal.

How does that follow?  I don't understand why you think this is the case.  This document is defining the format for an attestation attribute (per CSR), and for an attestation statement structure to go in that attribute.  It's a pretty simple model to take that attestation statement structure and define how it goes in SCEP or CMS I would think.  Should it be done in this document?  Or leave it to the folk that have more knowledge of those to write their own short document?

[CW] OK. As noted above, AttestStatement is both a attestation statement that could stand alone from the CSR as well as a wrapper of existing key attestation types that do stand alone. I'd still prefer a type/bit bucket approach.
- There seems to be several aspects of processing this structure that will rely on external knowledge to know what to do. For example, if the signature algorithm is absent in this structure then it may be encoded inside the type field or it may just be a fixed value. The format of the type field used for signature generation/verification is also left open ended with no way for the verifier to know. Similarly, the format of ancillary data is not signaled to a relying party.

TPM Attestations are different than ATECC608 attestations are different than NXP SE050 attestations are different than Android attestations are different than Webauthn attestations.  Ultimately, the relying party needs two things - the data for the attestation and an algorithm for verifying the attestation.  The way you get from an AttestationStatement attribute to that data is highly dependent on the type of attestation, and that level of detail needs to be part of the AttestationStatement definition.  See the TPM example.  This document won't tell you how to interpret the data in each of the attestationStatement fields, it will tell you that the ATTEST-STATEMENT defintion identified by the OID will give you that info.

[CW] That one would need to reference the definition of the attestation statement type to understand the content of the value field makes sense. That you must sometimes use it to understand the sibling fields of value does not seem right to me.

- The term "attestation engine" is not defined. It may be best to use vocabulary from the RFC9334.

Fair.

There's "attester" in that document which is probably covering both the attestation engine and the owner of the attestation key I think (and

How about (and I am being pedantic here - sorry):

[CW] This part of the discussion probably belongs in RATS.

"Attestation engine:  The secure hardware and firmware used to compose and sign an attestation".

"Attestation key: Either the private key used to sign an attestation statement, or the related public key used to verify the attestation statement, depending on context"

"Attester: The entity that directs the creation of an attestation statement and who owns, controls, or is permitted to use the private attestation key"

"Ancillary attestation data:  Any optional data  provided from a source external to the attestation engine as part of the creation of an attestation statement. This could be a relying party originated nonce, a time stamp, session information or other data meant to be bound in time to the attestation statement. The format of the ancillary information is not under the control of the attestation engine, but may need to be transformed, such as by hashing, before it may be incorporated within the attestation statement processing."

"Attestation statement: The object,  any optional ancillary data incorporated during the creation of that object, and the signature over that object,  created by an attestation engine at the request of an Attester to provide evidence of a fact or set of facts within the cognizance of the attestation engine at a particular point in time."  Sometimes referred to simply as an "attestation".

"Attestation: The implicit or explicit collection of an attestation statement, an attestation key, and a chain of trust for that key."

"Key attestation:  An attestation created with respect to a particular key or key pair."

The confidence in the attestation statement is not based on the trust of the attester, but on the trust of the attestation key, and the related attestation engine.  A certificate binding the attestation key (and the certificate's associated chain of trust and root of trust), implies or states the policy or evidence used to determine the trust both for the key and the related attestation engine.  Alternately, a relying party may be configured to associate a level of trust with a pre-shared attestation key.

Section 2.6

- Why do we need a CHOICE for signature encoding?

Mostly because PKIX uses the BIT STRING construct and that's rarely a better choice than OCTET STRING.  Not wedded to this, but the fall back would be BIT STRING, not OCTET STRING.  To be honest, after the change in the ATTEST-STATEMENT (see below) was also considering making this a Type'd field so that things like the elliptic curve R/S style signature -  SEQUENCE { r INTEGER, s INTEGER } structure could be placed in it directly rather than encoding it and wrapping it in a BIT STRING.

[CW] I think this gets at the overloading of this structure. If you left this detail to whatever is inside of the value field, this spec would be cleaner.

- What does "be consistent with" mean here? Does this mean the OBJECT IDENTIFIER used to identify the structure of the value field also indicates the structure of the signature field (and/or structure of the ancillary data field)? That makes the type field less like a type identifier and more like a profile identifier that describes the type of attestation, the algorithm and the signature format.

That's already resolved - see my discussion with Russ and my last response:
ATTEST-STATEMENT ::= CLASS {
  &id                 OBJECT IDENTIFIER UNIQUE,
  &Type,                  -- NOT optional
  &algidPresent       ParamOptions DEFAULT present,
  &sigPresent         ParamOptions DEFAULT present,
  &ancillaryPresent   ParamOptions DEFAULT present,
  &sigType            SignatureChoice DEFAULT OCTET STRING

} WITH SYNTAX {
  TYPE  &Type
  IDENTIFIED BY &id
  [ALGID IS &algidPresent]
  [SIGNATURE [TYPE &sigType] IS &sigPresent]
  [ANCILLARY IS %ancillaryPresent]
}

and

MikesAttest ATTEST-STATEMENT ::= (
    TYPE OCTET STRING
     IDENTIFIED BY id-mikes-attest-attribute
     ALGID IS absent
     SIGNATURE TYPE BIT STRING IS present
     ANCILLARY IS optional
}


That "consistent with" language will come out as the signature type will be enforced by the ASN1 declaration of the attestation statement.

Section 3

- As written, I think you only need one registry, i.e., for attestation statement types. This draft defines the CSR attribute and does not contemplate peer attributes or alternative attributes. The attribute in the spec could likely be registered in an existing PKIX registry.

I'll mostly leave that up to the chairs and IANA to decide.  I assume there will be a registry for attestation types, but there is no branch under IETF control for CSR attributes AFAICT.   Looking at the various SMI Security registries, it looks like the id-aa (S/Mime attributes)  branch has been used to stuff some SCEP and CMS enrollment attribute types.  If a reasonable place can't be found, then a new registry will be needed.

Thanks for the comments!

Mike


From: Spasm <spasm-bounces@ietf.org><mailto:spasm-bounces@ietf.org> on behalf of Michael StJohns <msj@nthpermutation.com><mailto:msj@nthpermutation.com>
Date: Friday, May 5, 2023 at 3:37 PM
To: "spasm@ietf.org"<mailto:spasm@ietf.org> <spasm@ietf.org><mailto:spasm@ietf.org>
Subject: [lamps] Fwd: New Version Notification for draft-stjohns-csr-attest-00.txt


FYI


-------- Forwarded Message --------
Subject:
New Version Notification for draft-stjohns-csr-attest-00.txt
Date:
Fri, 05 May 2023 12:36:19 -0700
From:
internet-drafts@ietf.org<mailto:internet-drafts@ietf.org>
To:
Michael StJohns <msj@nthpermutation.com><mailto:msj@nthpermutation.com>



A new version of I-D, draft-stjohns-csr-attest-00.txt
has been successfully submitted by Michael StJohns and posted to the
IETF repository.

Name: draft-stjohns-csr-attest
Revision: 00
Title: Attestation Attributes for use with Certificate Requests
Document date: 2023-05-05
Group: Individual Submission
Pages: 8
URL: https://www.ietf.org/archive/id/draft-stjohns-csr-attest-00.txt<https://urldefense.com/v3/__https:/www.ietf.org/archive/id/draft-stjohns-csr-attest-00.txt__;!!FJ-Y8qCqXTj2!YYotdbXXk6QbFC7ZKLnS4Tu6A8Dz1VVYRDOQsws8FIvzcKuYCniFxksNDuadxaTWjUCf0ZhCkmvAiw6uFkznio0AeEUZuwU$>
Status: https://datatracker.ietf.org/doc/draft-stjohns-csr-attest/<https://urldefense.com/v3/__https:/datatracker.ietf.org/doc/draft-stjohns-csr-attest/__;!!FJ-Y8qCqXTj2!YYotdbXXk6QbFC7ZKLnS4Tu6A8Dz1VVYRDOQsws8FIvzcKuYCniFxksNDuadxaTWjUCf0ZhCkmvAiw6uFkznio0ANim7b50$>
Html: https://www.ietf.org/archive/id/draft-stjohns-csr-attest-00.html<https://urldefense.com/v3/__https:/www.ietf.org/archive/id/draft-stjohns-csr-attest-00.html__;!!FJ-Y8qCqXTj2!YYotdbXXk6QbFC7ZKLnS4Tu6A8Dz1VVYRDOQsws8FIvzcKuYCniFxksNDuadxaTWjUCf0ZhCkmvAiw6uFkznio0Ay-QnZNI$>
Htmlized: https://datatracker.ietf.org/doc/html/draft-stjohns-csr-attest<https://urldefense.com/v3/__https:/datatracker.ietf.org/doc/html/draft-stjohns-csr-attest__;!!FJ-Y8qCqXTj2!YYotdbXXk6QbFC7ZKLnS4Tu6A8Dz1VVYRDOQsws8FIvzcKuYCniFxksNDuadxaTWjUCf0ZhCkmvAiw6uFkznio0A9ZJuofg$>


Abstract:
This document describes two ASN.1 Attribute definitions that may be
used to carry key attestation data in PKCS10 certificate requests and
in other circumstances.



The IETF Secretariat
_______________________________________________ Spasm mailing list Spasm@ietf.org<mailto:Spasm@ietf.org> https://www.ietf.org/mailman/listinfo/spasm<https://urldefense.com/v3/__https:/www.ietf.org/mailman/listinfo/spasm__;!!FJ-Y8qCqXTj2!YYotdbXXk6QbFC7ZKLnS4Tu6A8Dz1VVYRDOQsws8FIvzcKuYCniFxksNDuadxaTWjUCf0ZhCkmvAiw6uFkznio0AiuGC73k$>


Any email and files/attachments transmitted with it are confidential and are intended solely for the use of the individual or entity to whom they are addressed. If this message has been sent to you in error, you must not copy, distribute or disclose of the information it contains. Please notify Entrust immediately and delete the message from your system.