[Ssh] Re: Supporting pure ML-DSA as hostkey and authkey

Damien Miller <djm@mindrot.org> Mon, 27 April 2026 23:08 UTC

Return-Path: <djm@mindrot.org>
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 6668CE442E04 for <ssh@mail2.ietf.org>; Mon, 27 Apr 2026 16:08:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1777331295; bh=NBKElYaUoeavoVw9Y0FvZidHMFx2LH/lZ5nE7CY95xE=; h=Date:From:To:cc:Subject:In-Reply-To:References; b=SjYbsC1yG37ruOdIHQY4Gu+aJm/LiX29e6tTOWR/WEd3l1PaqAo/45fpWUvY4wBE9 OfXvEY/iYO0u9jLxyQOWPLl/Wg0GfPWpVDuj4U/NqMoaNjxHoq0IfGqKlJwC7SV52g tYnpUpvzWVhrvsqIZ5FSCf/+vbsA+48WzGdim7Ds=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 CVY_-orFPRj1 for <ssh@mail2.ietf.org>; Mon, 27 Apr 2026 16:08:13 -0700 (PDT)
Received: from plane.compute.dc.uq.edu.au (plane.compute.dc.uq.edu.au [130.102.188.57]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id AB2C7E442DF5 for <SSH@ietf.org>; Mon, 27 Apr 2026 16:08:12 -0700 (PDT)
Received: from smtp1.compute.dc.uq.edu.au (smtp1.compute.dc.uq.edu.au [10.208.11.2]) by plane.compute.dc.uq.edu.au (8.14.5/8.14.5) with ESMTP id 63RN86lq054371; Tue, 28 Apr 2026 09:08:06 +1000
Received: from mailhub.eait.uq.edu.au (holly.eait.uq.edu.au [130.102.79.58]) by smtp1.compute.dc.uq.edu.au (8.14.5/8.14.5) with ESMTP id 63RN86sE031922 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 28 Apr 2026 09:08:06 +1000
Received: from haru.mindrot.org (haru.mindrot.org [130.102.96.5]) by mailhub.eait.uq.edu.au (8.15.1/8.15.1) with ESMTPS id 63RN86ob008475 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 28 Apr 2026 09:08:06 +1000 (AEST)
Received: from localhost (localhost [127.0.0.1]) by haru.mindrot.org (OpenSMTPD) with ESMTP id 7e9ee690; Tue, 28 Apr 2026 09:08:06 +1000 (AEST)
Date: Tue, 28 Apr 2026 09:08:06 +1000
From: Damien Miller <djm@mindrot.org>
To: Watson Ladd <watsonbladd@gmail.com>
In-Reply-To: < CACsn0ckWAqtg5oFb-zAmJCgRJe319yQ9X6ZMLFshS6Ak7PGV_Q%mail.gmail.com@mailhub.eait.uq.edu.au>
Message-ID: <68bc138c-ccfc-2d97-0f25-64271655c23b@mindrot.org>
References: < CACsn0ckWAqtg5oFb-zAmJCgRJe319yQ9X6ZMLFshS6Ak7PGV_Q%mail.gmail.com@mailhub.eait.uq.edu.au>
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"
x-ms-reactions: disallow
X-Scanned-By: MIMEDefang 2.75 on 130.102.79.58
Message-ID-Hash: 4EMZ25HX4XAKXZB7PIA4Y4ZGEHE6WHCD
X-Message-ID-Hash: 4EMZ25HX4XAKXZB7PIA4Y4ZGEHE6WHCD
X-MailFrom: djm@mindrot.org
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: "ssh@ietf.org" <SSH@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Ssh] Re: Supporting pure ML-DSA as hostkey and authkey
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/8SQUrpXrNZg558ZldWIrS4EmR7M>
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>

On Mon, 27 Apr 2026, Watson Ladd wrote:

> Hello SSHM,
> 
> I would very much like to see adoption of the pure ML-DSA drafts for
> use as hostkey and authkey. Right now we have an issue where projects
> supporting SSH are reluctant to implement without an RFC due to a wish
> to only implement widely supported ciphers. There shouldn't be much of
> a problem in getting these drafts out given that ML-DSA drops in as a
> signature scheme. With recent news and the long time for customers and
> us to deploy and test this is pretty urgent for us.

FWIW I have a test implementation of hybrid ML-DSA 65 / Ed25519 for
OpenSSH using the draft-ietf-lamps-pq-composite-sigs construction
and was planning on writing it up as an I-D is anyone is interested.

https://github.com/djmdjm/openssh-portable-wip/pull/11

One thing that I think deserves some consideration for integrating
ML-DSA (and hybrids based on it) into SSH is the user of the context
parameter. Currently draft-sfluhrer-ssh-mldsa and my implementation
use the empty context string, but there might be some benefit to
using a context that relates to the role of the signature in the
SSH protocol, e.g. using "SSH-USERAUTH-PUBKEY" for public key
user authentication signatures, "SSH-HOST" for hostkey signatures
in KEX replies, etc.

This requires some more work in defining the specification, but
would improve SSH's mostly ad-hoc signature domain separation.

-d