[Last-Call] draft-ietf-pquip-pqc-hsm-constrained-09 telechat Secdir review

Ionuț Mihalcea via Datatracker <noreply@ietf.org> Thu, 22 October 2026 10:06 UTC

Received: by mx.ietf.org (Postfix) id 0D75A46; Thu, 22 Oct 2026 10:06:09 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ietf.org; s=mail; t=1792663569; h=from:from:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sOW7TYdC4Cw0GJ9KIcJ26B0r9IGFxXjE5FEyXdlbejU=; b=E4DGtM6jdeM1CLh9oGSaVXYPNDdcQ/zfGtOPD8qBqqj4uskuISPiabVRXDh1QhbTc9G+Mj Jr+tL9UN0q7z8++KAiVsSyXYuaA2ZugECoQui4Cruddw5YzDbjeFhHSfMkbGV6yYzLvOD2 R5+poun3yosuVWROkrw7qTzmVi4xvEg=
Authentication-Results: ORIGINATING; auth=pass smtp.auth=mail2@ietf.org smtp.mailfrom=noreply@ietf.org
Received: from [10.244.8.185] (gaia.k8s.ietf.org [4.156.85.76]) by mail2.ietf.org (Postfix) with ESMTP id D0E0013AECF17; Thu, 22 Oct 2026 03:06:08 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
From: Ionuț Mihalcea via Datatracker <noreply@ietf.org>
To: secdir@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 12.81.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <179266356869.691829.16351021856751023549@dt-datatracker-7457c9c988-j45f7>
Date: Thu, 22 Oct 2026 03:06:08 -0700
Message-ID-Hash: 5MKSQIDPPYQB7WZNWPCKBDXZM2HPPCEC
X-Message-ID-Hash: 5MKSQIDPPYQB7WZNWPCKBDXZM2HPPCEC
X-MailFrom: noreply@ietf.org
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: draft-ietf-pquip-pqc-hsm-constrained.all@ietf.org, last-call@ietf.org, pqc@ietf.org
X-Mailman-Version: 3.3.10
Reply-To: Ionuț Mihalcea <ionut.mihalcea@arm.com>
Subject: [Last-Call] draft-ietf-pquip-pqc-hsm-constrained-09 telechat Secdir review
List-Id: IETF Last Calls <last-call.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/last-call/N54movzFMFtXF7WuEPwvDlHYj5s>
List-Archive: <https://mailarchive.ietf.org/arch/browse/last-call>
List-Help: <mailto:last-call-request@ietf.org?subject=help>
List-Owner: <mailto:last-call-owner@ietf.org>
List-Post: <mailto:last-call@ietf.org>
List-Subscribe: <mailto:last-call-join@ietf.org>
List-Unsubscribe: <mailto:last-call-leave@ietf.org>

Document: draft-ietf-pquip-pqc-hsm-constrained
Title: Adapting Constrained Devices for Post-Quantum Cryptography
Reviewer: Ionuț Mihalcea
Review result: Has Issues

I have reviewed this document as part of the security directorate's
ongoing effort to review all IETF documents being processed by the
IESG. These comments were written primarily for the benefit of the
security area directors. Document editors and WG chairs should treat
these comments just like any other last call comments.

I have previously reviewed -06 of this draft [1]. My summary of -09 is Almost
Ready.

My feedback from the previous review has been addressed - many thanks to the
authors for the effort of identifying and patching the sensible concerns.
Sharing some more observations below, with the caveat that I'm not that
familiar with the PQ primitives involved. Apologies for noticing these late in
the spec lifecycle.

In section 5, pre-hashing is offered as an option "for any PQC signature
algorithm, whether it is ML-DSA, SLH-DSA". SLH-DSA is brought up as an example:
"algorithms like SLH-DSA present challenges due to their construction, which
requires two passes over the message during the signing process". However, if I
understand slh_sign_internal in FIPS-205 [2] correctly, both those passes over
the message for pure SLH-DSA require access to (parts of) the secret key
signing the message. This means either those parts would need to be exported
from the cryptographic module (which is not recommended), or the message must
be provided in full for the signing process.

Staying on the topic of SLH-DSA, FIPS-205 makes the same point about hedged vs
deterministic signing as FIPS-204, regarding side-channel protection. 2nd
paragraph of section 9.1 could point to both ML-DSA and SLH-DSA.

I'm a bit confused about the messaging on misbinding attacks in section 2.1.1.
The paragraph discussing these attacks makes the point that this doesn't apply
when the protected environment is holding the private keys. However, the last
paragraph then goes on to talk about importing private keys. Should this last
paragraph also point to something like RFC9881 sec. 8.2 for required checks
when importing?

Section 3.2 advocates for use of Externalmu-ML-DSA, with mu computed in
software before being sent for signing to the protected environment that holds
the key. However, mu is a hash computed over more than just the message being
signed - M' contains the domain separator (pre-hash vs pure) and the context
string ctx [3]. If a device is expected to use both pre-hash and pure ML-DSA,
or if there are multiple context strings used by calling applications, this
interface could allow "impersonation" on those two dimensions. For example, an
authentication app could generate a mu with a "device-attestation" context or
vice-versa. The cryptographic module cannot check mu (though it might have
access to provenance metadata for mu), but it might be worth highlighting this
concern.

[1]
https://datatracker.ietf.org/doc/review-ietf-pquip-pqc-hsm-constrained-06-secdir-lc-mihalcea-2026-07-06/

[2] https://nvlpubs.nist.gov/nistpubs/fips/nist.fips.205.pdf

[3]
https://datatracker.ietf.org/doc/html/rfc9881#name-pre-hashing-external-ml-dsa