Re: [COSE] Proposal for multiple keys / signatures in CBOR Certificates
Derek Atkins <derek@ihtfp.com> Mon, 26 September 2022 17:01 UTC
Return-Path: <derek@ihtfp.com>
X-Original-To: cose@ietfa.amsl.com
Delivered-To: cose@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E8E69C14CF04 for <cose@ietfa.amsl.com>; Mon, 26 Sep 2022 10:01:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.108
X-Spam-Level:
X-Spam-Status: No, score=-2.108 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, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, 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=ihtfp.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 HGpc_NW6_vIL for <cose@ietfa.amsl.com>; Mon, 26 Sep 2022 10:01:12 -0700 (PDT)
Received: from mail2.ihtfp.org (MAIL2.IHTFP.ORG [204.107.200.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7B7CAC14F74D for <cose@ietf.org>; Mon, 26 Sep 2022 10:01:11 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mail2.ihtfp.org (Postfix) with ESMTP id 26181E203F; Mon, 26 Sep 2022 13:01:10 -0400 (EDT)
Received: from mail2.ihtfp.org ([127.0.0.1]) by localhost (mail2.ihtfp.org [127.0.0.1]) (amavisd-maia, port 10024) with ESMTP id 05955-08; Mon, 26 Sep 2022 13:01:08 -0400 (EDT)
Received: by mail2.ihtfp.org (Postfix, from userid 48) id 505B3E2040; Mon, 26 Sep 2022 13:01:08 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ihtfp.com; s=default; t=1664211668; bh=DmZUuwlY0dqfIu6qdqwxd9h5Kjh4tRMPZSWy1aQhE1I=; h=In-Reply-To:References:Date:Subject:From:To:Cc; b=DybAYJZ8K+kZGa0PS6Fs6oNv3t8wSwoKk2tEpe32khhFdWVX60prEd5tXQ5coWQmt I0hVuynU12DwYeTHZ+j6j0lBKT2JDp0HqIrsfrWYP5Gpc8nAMQqkOkeyoIQMqrqRAo ZVCIrurF0oJlOHDw8Vj9PRVecLADjG8ofzN3BQuM=
Received: from 192.168.248.239 (SquirrelMail authenticated user warlord) by mail2.ihtfp.org with HTTP; Mon, 26 Sep 2022 13:01:08 -0400
Message-ID: <8e1b9e998a68bf7db0bf8f1fa5fe2ea9.squirrel@mail2.ihtfp.org>
In-Reply-To: <957512e0554c67559427f40c22e0f743.squirrel@mail2.ihtfp.org>
References: <cd7203f430896369ac39a6d435604447.squirrel@mail2.ihtfp.org> <1B05EE1E-398B-4D88-ADA4-89884813D784@vigilsec.com> <957512e0554c67559427f40c22e0f743.squirrel@mail2.ihtfp.org>
Date: Mon, 26 Sep 2022 13:01:08 -0400
From: Derek Atkins <derek@ihtfp.com>
To: Russ Housley <housley@vigilsec.com>
Cc: cose@ietf.org
User-Agent: SquirrelMail/1.4.22-14.fc20
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
X-Priority: 3 (Normal)
Importance: Normal
X-Virus-Scanned: Maia Mailguard 1.0.2a
Archived-At: <https://mailarchive.ietf.org/arch/msg/cose/qP6P5USk1o8b-keFRLrsOy3w9kU>
Subject: Re: [COSE] Proposal for multiple keys / signatures in CBOR Certificates
X-BeenThere: cose@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: CBOR Object Signing and Encryption <cose.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cose>, <mailto:cose-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cose/>
List-Post: <mailto:cose@ietf.org>
List-Help: <mailto:cose-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cose>, <mailto:cose-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 26 Sep 2022 17:01:17 -0000
Russ, I just perused the LAMPS archives for the last 6 weeks (back to August 12) and do not see anything related to multiple keys and/or multiple signatures in a certificate. Or at least none of the conversations or document titles are obviously on that topic. Could you please point me to the discussion thread? Thank you, -derek PS: I will say up front that I do not care about X509 here, I only care about native C509 certs. But I do agree that the semantics should carry over if at all possible. On Mon, September 26, 2022 12:41 pm, Derek Atkins wrote: > Thanks, Russ. > > I am happy to move conversation over there.. > > -derek > > On Mon, September 26, 2022 12:34 pm, Russ Housley wrote: >> This topic is being discussed on the LAMPS mail list. The C509 >> certificate has a one-to-one alignment with the X.509 certificate (see >> RFC >> 5280 for the syntax). The answer here needs to keep that alignment, so >> I >> hope we can have the discussion on one mail list. >> >> Russ >> >> >>> On Sep 26, 2022, at 10:19 AM, Derek Atkins <derek@ihtfp.com> wrote: >>> >>> Hi all, >>> >>> We are happily using the (currently draft) CBOR Certificates object in >>> our >>> code, but we're getting closer to having a requirement where a device >>> needs to support multiple PK Methods (think PQC). To that end, we are >>> looking at a way to extend CBOR Certificates to allow for multiple >>> subjectPublicKey and multiple signature entries. >>> >>> As a reminder, the current C509 structure is: >>> >>> C509Certificate = [ >>> TBSCertificate, >>> issuerSignatureValue : any, >>> ] >>> >>> TBSCertificate = ( >>> c509CertificateType: int, >>> certificateSerialNumber: CertificateSerialNumber, >>> issuer: Name, >>> validityNotBefore: Time, >>> validityNotAfter: Time, >>> subject: Name, >>> subjectPublicKeyAlgorithm: AlgorithmIdentifier, >>> subjectPublicKey: any, >>> extensions: Extensions, >>> issuerSignatureAlgorithm: AlgorithmIdentifier, >>> ) >>> >>> My straightforward proposal, which keeps some amount of backwards >>> compatibility (in the sense that the TBSCertificate still has the same >>> number of top-level entries), would be to modify this to allow either a >>> singleton or an array for subjectPublicKeyAlgorithm, subjectPublicKey, >>> issuerSignatureAlgorithm, and issuerSignatureValue. At a higher >>> level, >>> the restriction that both subjectPublicKeyAlgoritihm and >>> subjectPublicKey >>> must contain the same number of items and in the same order, and both >>> issuerSignatureAlgorithm and issuerSignatureValue must contain the same >>> number of items and in the same order. >>> >>> In CDDL this would boil down to: >>> >>> C509Certificate = [ >>> TBSCertificate, >>> issuerSignatureValue : any / [ any, +any ], >>> ] >>> >>> TBSCertificate = ( >>> c509CertificateType: int, >>> certificateSerialNumber: CertificateSerialNumber, >>> issuer: Name, >>> validityNotBefore: Time, >>> validityNotAfter: Time, >>> subject: Name, >>> subjectPublicKeyAlgorithm: AlgorithmIdentifier / [ >>> AlgorithmIdentier, +AlgorithmIdentifier ], >>> subjectPublicKey: any / [ any, +any ], >>> extensions: Extensions, >>> issuerSignatureAlgorithm: AlgorithmIdentifier / [ >>> AlgorithmIdentier, +AlgorithmIdentifier ], >>> ) >>> >>> I'm not a CDDL expert, so I do acknowledge that this specification does >>> not restrict the validation requirements of equivalent array lengths. >>> But >>> I'm not sure how one would actually encode that into CDDL. >>> >>> The benefit of this approach is that all signatures cover all keys and >>> all >>> SignatureAlgorithm identifiers, so you cannot go back and add a new >>> signature method (downgrade attack). >>> >>> Another benefit of this approach is that it requires only minimal >>> updates >>> to existing parsers. While it is true that a parser that expects a >>> single >>> entry would fail with the array with multiple Ids/Keys/Signatures, I >>> don't >>> see this as a bad thing because, most likely, the recipient would want >>> to >>> be able to validate both signatures. >>> >>> The only alternate approach would be an extension, but I'm not sure how >>> you could have multiple signatures using that approach. >>> >>> Any comments/suggestions? >>> >>> Oh... Having thrown this out there, I am offering to write it up if >>> there >>> is interest, either as a modification to the existing CBOR-Certs draft, >>> or >>> a companion draft. >>> >>> Thanks, >>> >>> -derek >>> >>> -- >>> Derek Atkins 617-623-3745 >>> derek@ihtfp.com www.ihtfp.com >>> Computer and Internet Security Consultant >>> >>> _______________________________________________ >>> COSE mailing list >>> COSE@ietf.org >>> https://www.ietf.org/mailman/listinfo/cose >> >> > > > -- > Derek Atkins 617-623-3745 > derek@ihtfp.com www.ihtfp.com > Computer and Internet Security Consultant > > -- Derek Atkins 617-623-3745 derek@ihtfp.com www.ihtfp.com Computer and Internet Security Consultant
- [COSE] Proposal for multiple keys / signatures in… Derek Atkins
- Re: [COSE] Proposal for multiple keys / signature… Michael Richardson
- Re: [COSE] Proposal for multiple keys / signature… Russ Housley
- Re: [COSE] Proposal for multiple keys / signature… Derek Atkins
- Re: [COSE] Proposal for multiple keys / signature… Derek Atkins
- Re: [COSE] Proposal for multiple keys / signature… Derek Atkins
- Re: [COSE] Proposal for multiple keys / signature… Michael Richardson
- Re: [COSE] Proposal for multiple keys / signature… Derek Atkins
- Re: [COSE] Proposal for multiple keys / signature… Russ Housley