[Ssh] Re: PQ signatures - where do we want to end up?
Ryan Appel <ryan.appel.333@gmail.com> Tue, 12 May 2026 04:10 UTC
Return-Path: <ryan.appel.333@gmail.com>
X-Original-To: ssh@mail2.ietf.org
Delivered-To: ssh@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 16886ECD407D for <ssh@mail2.ietf.org>; Mon, 11 May 2026 21:10:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1778559046; bh=arIkZBmzBM9FHK5oufmRMckX2w9RamcR1Ol/MfoX6No=; h=From:Subject:Date:References:Cc:In-Reply-To:To; b=aKfrUZNURmMU0PavwRKNP8BZ3GxlSTdn3JUHEyR7EkuEgFQI6kf6lpEHaD5BdUJel CVAL/Uv9jhclxIbDlO+MWR2L0ThS7Vkj3I8Il9hK4ub/ErBlM8WbUggq2qIoStLWqV LRMiR8vr78NnSHl8g8oGekLMvocEoyJ9K6w+eGmA=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.849
X-Spam-Level:
X-Spam-Status: No, score=-1.849 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id E-nLK4cOOZK2 for <ssh@mail2.ietf.org>; Mon, 11 May 2026 21:10:45 -0700 (PDT)
Received: from mail-ot1-x330.google.com (mail-ot1-x330.google.com [IPv6:2607:f8b0:4864:20::330]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 87E28ECD4013 for <ssh@ietf.org>; Mon, 11 May 2026 21:10:18 -0700 (PDT)
Received: by mail-ot1-x330.google.com with SMTP id 46e09a7af769-7d1872504cbso4714697a34.0 for <ssh@ietf.org>; Mon, 11 May 2026 21:10:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778559018; x=1779163818; darn=ietf.org; h=to:in-reply-to:cc:references:message-id:date:subject:mime-version :from:content-transfer-encoding:from:to:cc:subject:date:message-id :reply-to; bh=tXmcEOOd13UansWt/jCQTNN+DfB1AukSVKniy8UfawQ=; b=r3lAC/Py3kqBvPY6xP5puZlI/SZup0dN6lVU3qLwxL4xzZxdw+mXA9Ni3+QkxiV0/g RSUH6es5Fc6CW4dirMz+id2RtHxt/A8LiBPgDyxqN/DPJiidJPkGJQCZrCN16Y7t869/ YVVu/diKYtmxVvs1D43bmJzYkooYbgknnX+Fe6p4TN0vsAKD/U3jLE5ZCHPojJVofTQ1 bnYnjR1Z6j7Drvw9NA1sE46Rbwl7k9xqaLpFTmdPIp2RmagzFCUhQLbOCFKIqcC7oGzq oPov3pKoUZ9cx8tTaAqeEUJ9Tu+Khsait3rhWwMHZdwtf8ruM1lk+/HF9imgPoOxboWg U14Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778559018; x=1779163818; h=to:in-reply-to:cc:references:message-id:date:subject:mime-version :from:content-transfer-encoding:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=tXmcEOOd13UansWt/jCQTNN+DfB1AukSVKniy8UfawQ=; b=rZ7w5D0WbYkPcBTEKMzuqC/kiS8MhbU/kLJ6hHdxO/tdMSuT3u3zUEWt7o0exNBZLG vpGU1HDid+yg+IFMjUuxkmHIpYvWB2SVlrNh7etzh/o91K0C2e+kZO4uYUzzwJFMbK4s Xj7kIJwWfhFS1P+N87ccUAe6HnmyTkIHpShFZU0uKEZ8hrIUEgBJ9sQHaiOZct84FP0V qXeGcu1efC1DGGxaW3s+eprxo585334fTaAUDBOv+UXYv1TGkr/Re1vRHsJrZt3ZcKtU EWjwIoBQ/EgyvGcDTq5ax+v6duGMdlT0KfSxhKIrIAb9VHP3oVLqOig1daN8TXPGuhU+ aPDw==
X-Forwarded-Encrypted: i=1; AFNElJ+2YG7U7arhJGJQ4oHw132S9t41k8A8N05FDkkEw0P2hQGRw8nJJjsEwQ7aUBLASwG7F+U=@ietf.org
X-Gm-Message-State: AOJu0YxKBavtLrt2Wbpqjkfl9lFcl0mX1CkYyftvCsqPyhGPZdYTuv0k 9vxVgYoUTlTJ+pFRG7NxJiJ3fmBUHez9h6rmu0Ho4Tr/yXApgIXaziVV
X-Gm-Gg: Acq92OHE8T0L4FEEl/AhiEkwHiQ93ZC7Qak4AvsHiqILdNLNJpylUOsTw0Mh4tVJWxY lCRp1miw13IKlzAFBBtvWFKuEQeXwZRBYPqyF6ry8wIrIl3EUJvC3av3c+5fOdD6KM1GHWaqBI6 fhPIrpe5rbkE98KDwuZaOoEgepcu3jI0SjqIUECodQfXi7Jsvn1lxDw7IG2ffC7UtFC8WVNdHL1 uzcVY0Mmo5fhyXSrxtwcm7fRQDn1E5eQZuDmDR12r/2Ciww6aTUjXLojnVQzm2Ty57QLr40/s8j heRrxx1bG5rT+XLQRahS+zQte3dbYiYVIAW5C8qKeUZMKZKRBiXbsSHyYtviSOKRPhEEhoFJq6r /Y6L3/Fc4k2HBr0M5hKSAtY91++zLGWcxqxooc28Hm5rEIQPuWEbXtSb744DQNthw6/dHtM2CGI HDdB6Jzib93fVHWe++/HmZMyfqMI6AA1tY+zKU/6rreuBPSqWCIW3ztdi3ENrMSgU=
X-Received: by 2002:a05:6830:720e:b0:7e3:be56:e0e7 with SMTP id 46e09a7af769-7e3be57284bmr856838a34.11.1778559017790; Mon, 11 May 2026 21:10:17 -0700 (PDT)
Received: from smtpclient.apple ([107.198.162.244]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367c04e66sm8156715a34.8.2026.05.11.21.10.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 May 2026 21:10:17 -0700 (PDT)
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
From: Ryan Appel <ryan.appel.333@gmail.com>
Mime-Version: 1.0 (1.0)
Date: Mon, 11 May 2026 23:10:06 -0500
Message-Id: <9167FF3D-44B9-4F71-B696-694495290CC5@gmail.com>
References: <bd86a045-a63e-20a6-e3c7-ad3b62a0c302@mindrot.org>
In-Reply-To: <bd86a045-a63e-20a6-e3c7-ad3b62a0c302@mindrot.org>
To: Damien Miller <djm@mindrot.org>
X-Mailer: iPhone Mail (23E261)
Message-ID-Hash: OZX6H64YWO776YASCBW3VW3N7U2EZ4XB
X-Message-ID-Hash: OZX6H64YWO776YASCBW3VW3N7U2EZ4XB
X-MailFrom: ryan.appel.333@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Niels Möller <nisse@lysator.liu.se>, ssh@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Ssh] Re: PQ signatures - where do we want to end up?
List-Id: "The SSH mail list will allow discussions on improving aspects of the Secure Shell (SSH) protocol." <ssh.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/ssh/lK4nrBIembNoTpbwsNIW6RSiYEQ>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ssh>
List-Help: <mailto:ssh-request@ietf.org?subject=help>
List-Owner: <mailto:ssh-owner@ietf.org>
List-Post: <mailto:ssh@ietf.org>
List-Subscribe: <mailto:ssh-join@ietf.org>
List-Unsubscribe: <mailto:ssh-leave@ietf.org>
Personally,
I see the value both ways.
I personally like the separation down to the context level of the signature, because in order to validate you have to have the same context string.
I think there’s lots of moving parts to SSH that if not incorporated from the get-go makes it harder to add later.
I wish there were domain separation from all signature applications. It’s kind of funny that it’s existed in key exchange (ffdhe groups between Ike and TLS as an example) for a period of time, but signature applications haven’t taken the same separation.
Because there hasn’t been this separation in years past with any of the other signature algorithms and because the TLS and IPSEC groups have also not done any context strings for domain separation in their ML-DSA proposals, it makes me weary to add it to ML-DSA alone for SSH. It seems that the context has been generally been taken care of in higher levels of the protocols application of the signature scheme. For example, (again referencing TLS) RFC 8446 section 4.4.3 has a context string for the server signature that is used within any signature as part of the message input to be signed, which would make adding the same context in the context string of ML-DSA redundant.
If we want domain separation between signatures within SSH, it should probably be at a higher level, which would introduce a breaking change within the SSH protocol itself.
Thank you,
Ryan Appel
> On May 11, 2026, at 7:06 PM, Damien Miller <djm@mindrot.org> wrote:
>
> On Mon, 11 May 2026, Niels Möller wrote:
>
>> Damien Miller <djm@mindrot.org> writes:
>>
>>> 3. Use context-dependent strings, e.g. "SSH-USERAUTH", "SSH-HOSTAUTH"
>>
>> [...]
>>
>>> There is a security benefit to be had here though: in the case where
>>> signing is being performed by some separate entity, say a HSM or
>>> privilege-separated key signing oracle, then it becomes very easy to
>>> verifiably restrict it to making only signature operations of a
>>> particular type without having to teach it to directly inspect the
>>> data being signed.
>>
>> One place where this implies new complexity is in the ssh-agent
>> protocol. I'd like to be able to use the ssh-agent protocol both for ssh
>> publickey login (where the context would always be "SSH-USERAUTH"), and
>> for other purposes. Ideally, it would be nice to pass pubkey + context
>> to the SSH_AGENTC_SIGN_REQUEST (and then the agent might accept some
>> contexts and refuse others).
>
> This is a very good point. Fitting this into the agent protocol would
> require either an additional message or an extension to the existing
> SSH_AGENTC_SIGN_REQUEST message. (You'd think the author of the agent
> draft would have thought of this first).
>
> -d_______________________________________________
> Ssh mailing list -- ssh@ietf.org
> To unsubscribe send an email to ssh-leave@ietf.org
- [Ssh] PQ signatures - where do we want to end up? Stephen Farrell
- [Ssh] Re: PQ signatures - where do we want to end… Peter Gutmann
- [Ssh] Re: PQ signatures - where do we want to end… Simon Josefsson
- [Ssh] Re: PQ signatures - where do we want to end… Peter Gutmann
- [Ssh] Re: PQ signatures - where do we want to end… Appel, Ryan
- [Ssh] Re: PQ signatures - where do we want to end… Dmitry Belyavsky
- [Ssh] Re: PQ signatures - where do we want to end… Dmitry Belyavsky
- [Ssh] Re: PQ signatures - where do we want to end… Scott Fluhrer (sfluhrer)
- [Ssh] Re: PQ signatures - where do we want to end… Salz, Rich
- [Ssh] Re: PQ signatures - where do we want to end… Appel, Ryan
- [Ssh] Re: PQ signatures - where do we want to end… Matt Johnston
- [Ssh] Re: PQ signatures - where do we want to end… Damien Miller
- [Ssh] Re: PQ signatures - where do we want to end… Mouse
- [Ssh] Re: PQ signatures - where do we want to end… Deirdre Connolly
- [Ssh] Re: PQ signatures - where do we want to end… Appel, Ryan
- [Ssh] Re: PQ signatures - where do we want to end… Roumen Petrov
- [Ssh] Re: PQ signatures - where do we want to end… Appel, Ryan
- [Ssh] Re: PQ signatures - where do we want to end… Matt Johnston
- [Ssh] Re: PQ signatures - where do we want to end… Dmitry Belyavsky
- [Ssh] Re: PQ signatures - where do we want to end… Roumen Petrov
- [Ssh] Re: PQ signatures - where do we want to end… Appel, Ryan
- [Ssh] Re: PQ signatures - where do we want to end… Appel, Ryan
- [Ssh] Re: [EXTERNAL] PQ signatures - where do we … Dang, Quynh H. (Fed)
- [Ssh] Re: PQ signatures - where do we want to end… D. J. Bernstein
- [Ssh] Re: PQ signatures - where do we want to end… Peter Gutmann
- [Ssh] Re: PQ signatures - where do we want to end… Simon Josefsson
- [Ssh] Re: PQ signatures - where do we want to end… D. J. Bernstein
- [Ssh] Re: PQ signatures - where do we want to end… Peter Gutmann
- [Ssh] Re: PQ signatures - where do we want to end… D. J. Bernstein
- [Ssh] Re: PQ signatures - where do we want to end… Stephen Farrell
- [Ssh] Re: PQ signatures - where do we want to end… Damien Miller
- [Ssh] Re: PQ signatures - where do we want to end… Watson Ladd
- [Ssh] Re: PQ signatures - where do we want to end… Simon Josefsson
- [Ssh] Re: PQ signatures - where do we want to end… Scott Fluhrer (sfluhrer)
- [Ssh] Re: PQ signatures - where do we want to end… Niels Möller
- [Ssh] Re: PQ signatures - where do we want to end… Damien Miller
- [Ssh] Re: PQ signatures - where do we want to end… Ryan Appel
- [Ssh] Re: PQ signatures - where do we want to end… Marcus Brinkmann
- [Ssh] Re: PQ signatures - where do we want to end… Stephen Farrell
- [Ssh] Re: PQ signatures - where do we want to end… Simon Josefsson
- [Ssh] Re: PQ signatures - where do we want to end… Stephen Farrell
- [Ssh] Re: PQ signatures - where do we want to end… Dmitry Belyavsky
- [Ssh] Re: PQ signatures - where do we want to end… John Mattsson
- [Ssh] Re: PQ signatures - where do we want to end… D. J. Bernstein