Re: [lamps] draft-gazdag-x509-hash-sigs-00

"Kampanakis, Panos" <kpanos@amazon.com> Tue, 31 January 2023 15:28 UTC

Return-Path: <prvs=3885fcdf0=kpanos@amazon.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 A3617C14F72D; Tue, 31 Jan 2023 07:28:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -11.899
X-Spam-Level:
X-Spam-Status: No, score=-11.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, 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, USER_IN_DEF_SPF_WL=-7.5] 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 3JDpbf14uGev; Tue, 31 Jan 2023 07:28:27 -0800 (PST)
Received: from smtp-fw-80006.amazon.com (smtp-fw-80006.amazon.com [99.78.197.217]) (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 91BDEC14EB1C; Tue, 31 Jan 2023 07:28:27 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1675178908; x=1706714908; h=from:to:cc:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version:subject; bh=GodUOI6lnHpe0jqvXnq4bpSaeZLhpXK6bglzRX8qlf8=; b=al95gF7p1RpWSB/xIsQ6dUTI96w/upF3oJR6+q7uIovfj7YZLILacb7f TGQiIE1Iw2tzV2sMAxZ3Qn1S/EB1pzGLoc/aQnZTMvalr9Du+NBn7VFlq U/7W8P/n5NmBRqA9qKItf04K0Tk9VC4NwspA9pmgHy+My+TtH1GXRKoGa Y=;
X-IronPort-AV: E=Sophos;i="5.97,261,1669075200"; d="scan'208";a="176879479"
Thread-Topic: [lamps] draft-gazdag-x509-hash-sigs-00
Received: from pdx4-co-svc-p1-lb2-vlan2.amazon.com (HELO email-inbound-relay-pdx-2c-m6i4x-d2040ec1.us-west-2.amazon.com) ([10.25.36.210]) by smtp-border-fw-80006.pdx80.corp.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jan 2023 15:28:25 +0000
Received: from EX13MTAUWB001.ant.amazon.com (pdx1-ws-svc-p6-lb9-vlan2.pdx.amazon.com [10.236.137.194]) by email-inbound-relay-pdx-2c-m6i4x-d2040ec1.us-west-2.amazon.com (Postfix) with ESMTPS id 849A341E74; Tue, 31 Jan 2023 15:28:24 +0000 (UTC)
Received: from EX19D001ANA001.ant.amazon.com (10.37.240.156) by EX13MTAUWB001.ant.amazon.com (10.43.161.207) with Microsoft SMTP Server (TLS) id 15.0.1497.45; Tue, 31 Jan 2023 15:28:23 +0000
Received: from EX19D001ANA001.ant.amazon.com (10.37.240.156) by EX19D001ANA001.ant.amazon.com (10.37.240.156) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1118.24; Tue, 31 Jan 2023 15:28:22 +0000
Received: from EX19D001ANA001.ant.amazon.com ([fe80::4f78:75cd:3117:8055]) by EX19D001ANA001.ant.amazon.com ([fe80::4f78:75cd:3117:8055%5]) with mapi id 15.02.1118.024; Tue, 31 Jan 2023 15:28:22 +0000
From: "Kampanakis, Panos" <kpanos@amazon.com>
To: "Vaira, Antonio" <antonio.vaira@siemens.com>
CC: LAMPS <spasm@ietf.org>, "draft-gazdag-x509-hash-sigs.authors@ietf.org" <draft-gazdag-x509-hash-sigs.authors@ietf.org>
Thread-Index: AQHZNXBGMY8wetjoI0+idv3BAYT51K64oazg
Date: Tue, 31 Jan 2023 15:28:22 +0000
Message-ID: <d86eb6d6b0be4f58a51377bde590c521@amazon.com>
References: <08C331ED-453C-4812-955A-F2161B960329@vigilsec.com> <3439f87bb3bb4a199f706b791cba6b6a@bsi.bund.de> <6828097d5b5b4beabb0c4243b150077f@amazon.com> <99a43b5f4620438a9cb7ca539f70dbcb@bsi.bund.de> <DU0PR10MB5244B1BC5E40204EDBD0AFD1E0D09@DU0PR10MB5244.EURPRD10.PROD.OUTLOOK.COM>
In-Reply-To: <DU0PR10MB5244B1BC5E40204EDBD0AFD1E0D09@DU0PR10MB5244.EURPRD10.PROD.OUTLOOK.COM>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.106.178.21]
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spasm/xU9jtisVzlnvDtN7iwpJfDKTv2k>
Subject: Re: [lamps] draft-gazdag-x509-hash-sigs-00
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: Tue, 31 Jan 2023 15:28:28 -0000

Hi Antonio, 

> - my understanding of stateful HBS schemes is that the state of the private key can be uniquely identified by the authentication path that is part of the signature. Could we think to derive a unique value, out of this authentication path and embed it into a certificate field? Maybe such certificate can be further published, for example on CT, to allow public scrutiny of the CA operations?

Interesting. Indeed, Stateful leaf HBS certs (which will include the tree verification path) could be published so auditors or verifiers could attest that state was not reused. For the Web there is CT so that would be relatively straightforward. But given these certs will not be used for the Web, it probably does not help much. In a code signing case, a signer vendor that signs its software would need to publish all HBS signatures basically for them to be auditable to confirm state/OTS public key was not reused. It would be operational overhead for vendors though to make all their signatures available.

There is the threat model that is important here as well. If I am the verifier of company X created by company X to verify company X's software signatures, do I need to audit company X's signing did not reuse SHBS state? Probably not because I trust the signer who is probably auditing internally. But still, a published code signing repo of all (Root signatures and ICA issued signatures and software signatures) could provide assurance to 3rd parties that want to be sure. It still is not perfect because someone could argue that some failure scenario while signing may have reused state but the signature did not show up in the published signatures, but it certainly raises trust. 



-----Original Message-----
From: Spasm <spasm-bounces@ietf.org> On Behalf Of Vaira, Antonio
Sent: Tuesday, January 31, 2023 7:33 AM
To: Kousidis, Stavros <stavros.kousidis=40bsi.bund.de@dmarc.ietf.org>; Kampanakis, Panos <kpanos=40amazon.com@dmarc.ietf.org>
Cc: LAMPS <spasm@ietf.org>; draft-gazdag-x509-hash-sigs.authors@ietf.org
Subject: RE: [EXTERNAL][lamps] draft-gazdag-x509-hash-sigs-00

CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.



Dear Stavros, Dear Panos,

I hope I am not intruding this conversation, I would like to add a couple of personal considerations:

- I believe that we will also need to have "stateful HBS ICAs", to at least sign "stateful HBS code-signing certificates". This would allow a relying party to validate the code-signing certificates, and its associated certificate chain, by verifying only one type of digital signatures, which in this case would be a stateful HBS scheme. This type of ICAs may be handled as RootCA, so probably there is not much to add to the security considerations.
- my understanding of stateful HBS schemes is that the state of the private key can be uniquely identified by the authentication path that is part of the signature. Could we think to derive a unique value, out of this authentication path and embed it into a certificate field? Maybe such certificate can be further published, for example on CT, to allow public scrutiny of the CA operations?
- on a more generic note, the recent publication of CNSA 2.0, despite applying only to NSS, may trigger other regulatory bodies, which may be transversal to the scope of NSS, to adopt similar guidelines. Therefore I think we might have to deal with stateful HBS sooner than later.

- @Stavros: it would be very interesting to know more about how you plan to handle the requirements from §7 of NIST SP 800-208.
    > in my understanding, to fulfil the requirements set forth in this section one would that initializing several hypertrees on different HSMs. One or more HSMs may be used immediately and the remaining should be securely stored for later use (as disaster recovery mechanism for example). I think this approach might prove to be quite cumbersome, at least over a long period of time (which is intended use of stateful HBS).
    > do you see additional approaches that would allow to comply with the requirements from §7 of NIST SP 800-208?


Many thanks
Antonio Vaira

-----Original Message-----
From: Spasm <spasm-bounces@ietf.org> On Behalf Of Kousidis, Stavros
Sent: Monday, 23 January 2023 09:33
To: Kampanakis, Panos <kpanos=40amazon.com@dmarc.ietf.org>
Cc: LAMPS <spasm@ietf.org>; draft-gazdag-x509-hash-sigs.authors@ietf.org
Subject: Re: [lamps] draft-gazdag-x509-hash-sigs-00

Dear Pano,

thank you for your comments and suggestions, and sorry for the late reply.

The typical use case we have in mind are root and (potentially also subordinate) CAs which are using an HSM for cert signing that ensures the secure handling of the state. When discussing this in the security considerations we would also stress on NISTs proposal to use "Distributed Multi-Tree Hash-Based Signatures" (see NIST SP 800-208 §7) as a design to further ensure that states are handled appropriately.

We have tracked the other use cases you mentioned as an issue in in our repository. I think Stefan Gazdag has some experience here and we will discuss how to incorporate your suggestions in the security considerations.

Best
Stavros

-----Ursprüngliche Nachricht-----
Von: Kampanakis, Panos <kpanos=40amazon.com@dmarc.ietf.org>
Gesendet: Donnerstag, 29. Dezember 2022 18:23
An: Kousidis, Stavros <stavros.kousidis@bsi.bund.de>
Cc: LAMPS <spasm@ietf.org>; draft-gazdag-x509-hash-sigs.authors@ietf.org
Betreff: RE: [lamps] draft-gazdag-x509-hash-sigs-00

One more comment regarding draft-gazdag-x509-hash-sigs.

Stateful HBS had come up previously for X.509 and some participants voiced serious concerns https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmailarchive.ietf.org%2Farch%2Fmsg%2Fspasm%2FDKPDfaQZxF5_De9BYuoWsRKp4gM%2F&data=05%7C01%7Cantonio.vaira%40siemens.com%7C42f367be82dd413a64ae08dafd1c9a04%7C38ae3bcd95794fd4addab42e1495d55a%7C1%7C0%7C638100596561496300%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=h25km8rodm9XTku1Chgjffe%2BEm9dORsXhMwrrDhcVzQ%3D&reserved=0 A summary of the counter-arguments could be that CAs have messed up before, how can we rest assured they will not reuse state.

I think your argument for Stateful HBS in this draft is only for root CAs which sign a few ICAs and then go to sleep and rarely wake up. Maybe another use is for code-signing EKU certs where the signer controls its signing process and the verifiers trust it.  The draft also mentions subordinate CA certificates. I don't think these are good use-cases for stateful HBS. I would suggest for the draft to clearly stress the potentially use-cases for Stateful HBS. Also I suggest for the security considerations section to stress the importance and how you envision these use-cases will be able to address the state concern. For example a Root CA uses an HSM and signs very few ICA certs and then goes offline. Another example is a code-signer keeps track of all its signatures and can go back and attest the state was not reused periodically and its verifiers usually trust the signer. Another one could be the state look ahead where you retrieve x states and change your pointer before you even start signing anything.



-----Original Message-----
From: Spasm <spasm-bounces@ietf.org> On Behalf Of Kousidis, Stavros
Sent: Saturday, December 24, 2022 12:11 AM
To: Russ Housley <housley@vigilsec.com>
Cc: LAMPS <spasm@ietf.org>; draft-gazdag-x509-hash-sigs.authors@ietf.org
Subject: RE: [EXTERNAL][lamps] draft-gazdag-x509-hash-sigs-00

CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.



Dear Russ,

thank you for the information.

In the next version we will adopt the "OCTET STRING" definition of RFC 8708 for HSS and apply this also to XMSS/XMSS^MT. The same applies to SPHINCS+ where we will adopt the definition of "draft-ietf-lamps-cms-sphincs-plus-01".

Best
Stavros

-----Ursprüngliche Nachricht-----
Von: Russ Housley <housley@vigilsec.com>
Gesendet: Freitag, 23. Dezember 2022 18:12
An: draft-gazdag-x509-hash-sigs.authors@ietf.org
Cc: LAMPS <spasm@ietf.org>
Betreff: [lamps] draft-gazdag-x509-hash-sigs-00

Dear I-D Authors:

RFC 8708 has this definition:

     HSS-LMS-HashSig-PublicKey ::= OCTET STRING

This will carry the bytes as defined in RFC 8554.

draft-gazdag-x509-hash-sigs-00 says:

    HSS-HashSig-PublicKey ::= SEQUENCE {
       levels     OCTET STRING, -- number of levels L
       tree       OCTET STRING, -- typecode of top-level LMS tree
       ots        OCTET STRING, -- typecode of top-level LM-OTS
       identifier OCTET STRING, -- identifier I of top-level LMS key pair
       root       OCTET STRING  -- root T[1] of top-level tree
    }

This will produce a different byte string than RFC 8554.  I think this is a problem.  There should only be one way to encode the HSS/LMS public key.

Russ

_______________________________________________
Spasm mailing list
Spasm@ietf.org
https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Fspasm&data=05%7C01%7Cantonio.vaira%40siemens.com%7C42f367be82dd413a64ae08dafd1c9a04%7C38ae3bcd95794fd4addab42e1495d55a%7C1%7C0%7C638100596561496300%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=BzfXk7IkssXiXjWumPeivk5qXUsPP2tXjqRJZXx3QB8%3D&reserved=0

_______________________________________________
Spasm mailing list
Spasm@ietf.org
https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Fspasm&data=05%7C01%7Cantonio.vaira%40siemens.com%7C42f367be82dd413a64ae08dafd1c9a04%7C38ae3bcd95794fd4addab42e1495d55a%7C1%7C0%7C638100596561496300%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=BzfXk7IkssXiXjWumPeivk5qXUsPP2tXjqRJZXx3QB8%3D&reserved=0

_______________________________________________
Spasm mailing list
Spasm@ietf.org
https://www.ietf.org/mailman/listinfo/spasm