[TLS] I-D Allow using serverAuth certificates for mutual TLS (mTLS) authentication in server-to-server usages - updates rfc5280 and rfc6066
Klaus Frank <draft-frank-mtls-via-serverauth-extension@frank.fyi> Mon, 16 June 2025 20:33 UTC
Return-Path: <draft-frank-mtls-via-serverauth-extension@frank.fyi>
X-Original-To: tls@mail2.ietf.org
Delivered-To: tls@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id AE69235A3E60 for <tls@mail2.ietf.org>; Mon, 16 Jun 2025 13:33:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.1
X-Spam-Level:
X-Spam-Status: No, score=-2.1 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, 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=frank.fyi
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 d52i6JdMzDxz for <tls@mail2.ietf.org>; Mon, 16 Jun 2025 13:33:55 -0700 (PDT)
Received: from mx01.frank.fyi (mx01.frank.fyi [IPv6:2a02:c207:2009:9794::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 1A91A35A3E5B for <tls@ietf.org>; Mon, 16 Jun 2025 13:33:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=frank.fyi; s=mail; t=1750106034; bh=tL/Lm8XjmehCqAZc5+5ihiXrl89SxlsHFvLETkJ1h6Y=; h=Date:From:To:Subject:From; b=jJzRvQ1DTQ1Hwv8cu9t9kcTWcp3Bo4uz9JhIYU+LvdTxeY3xU2D9zFj4PXy7JCHkN 2xfXoOkfkcXuEpT1ejQWevktuqVqTpUdRc5usykREcWSvZ5Knl2XniShE6kU0gUTfM VS832QDndfDCDAqTtqfFSu5K39K1K6x7XCfCkViYBU9MuMDGSLlMJ8oiQfdIN6PFHr iTm8W/W4rmRrHSTX4kv2gn4QlcSYaCWClWz03GNd4FAaEd7vjX9f0qdiEgyxTYWkyJ BQdcaBEd38p9+wpQr5Nsz5v3o1n2gVilU7NsOl9enM664o6ZmWvgum0zjLVifK18Z8 7NcP4FUQoPjQw==
Received: by mx01.frank.fyi (Postfix, from userid 1001) id 59AF31120305; Mon, 16 Jun 2025 22:33:54 +0200 (CEST)
Date: Mon, 16 Jun 2025 20:33:54 +0000
From: Klaus Frank <draft-frank-mtls-via-serverauth-extension@frank.fyi>
To: tls@ietf.org
Message-ID: <45jp5tle7ixk7xhc57j5extnhg772nhhguqp4arvuppjuotkdo@jq5vd74bdpbg>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
X-MailFrom: draft-frank-mtls-via-serverauth-extension@frank.fyi
X-Mailman-Rule-Hits: nonmember-moderation
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-tls.ietf.org-0
Message-ID-Hash: I6WTZ6R2CNUFY6GUHS6VLI3FYBVJQSQV
X-Message-ID-Hash: I6WTZ6R2CNUFY6GUHS6VLI3FYBVJQSQV
X-Mailman-Approved-At: Tue, 17 Jun 2025 06:16:50 -0700
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [TLS] I-D Allow using serverAuth certificates for mutual TLS (mTLS) authentication in server-to-server usages - updates rfc5280 and rfc6066
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/T6R6qjrao5bOi9fU4O6psk1keVE>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tls>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Owner: <mailto:tls-owner@ietf.org>
List-Post: <mailto:tls@ietf.org>
List-Subscribe: <mailto:tls-join@ietf.org>
List-Unsubscribe: <mailto:tls-leave@ietf.org>
Hi, because of recent events with policies of public CAs and associated "fallout" that removed the ability to get publicly trusted certificates with clientAuth for dNSName and ipAddress I've written this early draft of a now standard I'd like to propose. As this breaks any and all mutual TLS authentication between systems relying upon public trusted certificates (like XMPP, AD FS, or SMTP with mutual authentication, like e.g. the Microsoft Exchange Hybrid deployment uses) some solution is required. Within this draft I basically sharpen the definition of "id-pk-clientAuth" and "id-pk-serverAuth". "id-pk-clientAuth" should no longer be used for dNSName and ipAddress (aka device) certificates and instead a TLS-server should be allowed to accept a "id-pk-serverAuth" certificate. As long as it expects device-to-device authenticated sessions. This should also address the obscure and unspecified "security concerns" the Google Chrome team stated as reason for the policy change that caused any and all CAs to drop issuing clientAuth certificates. Even the ones that still issue certificates with the clientAuth flag set do NOT do so for devices and only for endusers and organizations (EV and OV). Besides that as also Lets Encrypt stopped including the clientAuth flag the only free and publicly trusted certificates available are of type id-pk-serverAuth". Therefore to keep systems relying upon the mutual authentication of TLS between servers operational it is necessary to allow servers to use id-pk-serverAuth certificates for TLS-Client Authentication. In addition I also tried to outline how a server should validate the received TLS certificates. The validation of the client certificate may currently be a bit too verbose and complex. The main goal is to do forward-confirmed reverse DNS lookup, allow for DANE/TLSA provided certificates, as well as services behind SVCB and SRV records (this part may be unnecessary and maybe can be scratched from the draft, I'm not entirely sure). I also provided steps for verifying the source port which may also be unnecessary. I would have hoped that we've more time on this matter, but as the first CAs already stopped issuing such certificate and the commonly used lets Encrypt certificates are not valid that long either this topic is kinda urgend. I'm open to alternative solutions though. It would be great to find some people to push this forward to at least have a standard to move over to. Instead of being left with a bunch of broken services. Sincerely, Klaus Frank Further links for the background of the above referenced policy change: * https://googlechrome.github.io/chromerootprogram/ * https://community.letsencrypt.org/t/do-not-remove-tls-client-auth-eku/237427 * https://github.com/processone/ejabberd/issues/4392 * https://github.com/cabforum/servercert/issues/599 A new version of Internet-Draft draft-frank-mtls-via-serverauth-extension-00.txt has been successfully submitted by Klaus Frank and posted to the IETF repository. Name: draft-frank-mtls-via-serverauth-extension Revision: 00 Title: Allow using serverAuth certificates for mutual TLS (mTLS) authentication in server-to-server usages. Date: 2025-06-16 Group: Individual Submission Pages: 10 URL: https://www.ietf.org/archive/id/draft-frank-mtls-via-serverauth-extension-00.txt Status: https://datatracker.ietf.org/doc/draft-frank-mtls-via-serverauth-extension/ HTML: https://www.ietf.org/archive/id/draft-frank-mtls-via-serverauth-extension-00.html HTMLized: https://datatracker.ietf.org/doc/html/draft-frank-mtls-via-serverauth-extension Abstract: This document aims to standardize the validation of mutual TLS authentication between servers (server-to-server). It outlines recommended validation flows as well as provides practical design recommendations. Basically the EKU id-kp-clientAuth and id-kp- serverAuth get more precisely defined to represent their common understanding by issuing CAs and browsers. id-kp-clientAuth aka. "TLS WWW client authentication" SHOULD mean authentication of a natural or legal entity. id-kp-serverAuth aka. "TLS WWW server authetnication" SHOULD mean authentication of a device. When two id- kp-clientAuth certificates are used this means E2E authentication between two users. Where as two id-kp-serverAuth certificates being used means server-to-server authentication. And one user and one server certificate within one TLS connection means client-to-server (or technically also server-to-client). The term "TLS-Client" SHOULD no longer be used and mean the party sending the initial package while establishing a TLS connection. This helps to avoid design issues moving forward as currently some people thought TLS-Client auth was only ever used in "client-to-server" and never within "server-to-server" context. Which sparked the demand for this document to begin with to keep server-to-server auth with public trusted certificates working.
- [TLS] I-D Allow using serverAuth certificates for… Klaus Frank
- [TLS] Re: I-D Allow using serverAuth certificates… David Benjamin
- [TLS] Re: [EXTERNAL] Re: I-D Allow using serverAu… Andrei Popov
- [TLS] Re: [EXTERNAL] Re: I-D Allow using serverAu… Klaus Frank
- [TLS] Re: [EXTERNAL] Re: I-D Allow using serverAu… Andrei Popov
- [TLS] Re: I-D Allow using serverAuth certificates… Klaus Frank
- [TLS] Re: I-D Allow using serverAuth certificates… Filippo Valsorda
- [TLS] Re: I-D Allow using serverAuth certificates… Klaus Frank
- [TLS] Re: I-D Allow using serverAuth certificates… Filippo Valsorda
- [TLS] Re: I-D Allow using serverAuth certificates… John Levine
- [TLS] Re: I-D Allow using serverAuth certificates… Viktor Dukhovni
- [TLS] Re: I-D Allow using serverAuth certificates… Sean Turner
- [TLS] Re: I-D Allow using serverAuth certificates… Viktor Dukhovni
- [TLS] Re: I-D Allow using serverAuth certificates… Filippo Valsorda
- [TLS] Re: I-D Allow using serverAuth certificates… Viktor Dukhovni
- [TLS] Re: I-D Allow using serverAuth certificates… Filippo Valsorda
- [TLS] Re: I-D Allow using serverAuth certificates… Nico Williams
- [TLS] Re: I-D Allow using serverAuth certificates… Viktor Dukhovni
- [TLS] Re: I-D Allow using serverAuth certificates… Nico Williams
- [TLS] Re: I-D Allow using serverAuth certificates… ml+ietf-tls
- [TLS] Re: I-D Allow using serverAuth certificates… Viktor Dukhovni
- [TLS] Re: I-D Allow using serverAuth certificates… Nico Williams
- [TLS] Re: I-D Allow using serverAuth certificates… Viktor Dukhovni
- [TLS] Re: I-D Allow using serverAuth certificates… Viktor Dukhovni
- [TLS] Re: I-D Allow using serverAuth certificates… Stephen Farrell
- [TLS] Re: I-D Allow using serverAuth certificates… Watson Ladd
- [TLS] Re: I-D Allow using serverAuth certificates… Viktor Dukhovni
- [TLS] Re: I-D Allow using serverAuth certificates… Mike Shaver
- [TLS] Re: I-D Allow using serverAuth certificates… Nico Williams
- [TLS] Re: I-D Allow using serverAuth certificates… David Benjamin
- [TLS] Re: I-D Allow using serverAuth certificates… Nico Williams
- [TLS] Re: I-D Allow using serverAuth certificates… Andrew Chen
- [TLS] Re: I-D Allow using serverAuth certificates… Klaus Frank
- [TLS] Re: I-D Allow using serverAuth certificates… Klaus Frank