Hi Phillip,

What clients are you trying to use this with? Browsers? This almost feels like 
a user-agent question: "What CA DN do you want the server to prompt for so that 
you put up the right certs in the popup?". Is there a CA DN that you can 
specify that will cause FF / Chrome to show the user all their loaded certs?

Note: back in 2018 I was fiddling around with this for a stackexchange question 
and found that (by default) Firefox politely waits for you to select a client 
cert from the popup, whereas Chrome just starts spamming client certs at the 
server until it accepts one. I feel like user-agent behaviour is going to 
affect the viability of your idea here.

https://security.stackexchange.com/a/199518/61443

---
Mike Ounsworth
Software Security Architect, Entrust

From: Spasm <spasm-boun...@ietf.org> On Behalf Of Phillip Hallam-Baker
Sent: June 14, 2022 2:58 PM
To: SPASM <sp...@ietf.org>; tls@ietf.org
Subject: [EXTERNAL] [lamps] Distinguished names for self certified TLS client 
authj

WARNING: This email originated outside of Entrust.
DO NOT CLICK links or attachments unless you trust the sender and know the 
content is safe.
________________________________________
[Yes, I am aware of the FIDO work and it is a completely different use case, 
does not apply to non web applications. TLS Client Auth is an IETF spec and 
thus within IETF scope.]

I have an infrastructure that makes private key management really simple for 
end users. They can manage private keys across devices without being aware they 
are doing it. This technology has obvious applications for existing public key 
authentication schemes including EAP, FIDO and TLS Client Auth.

When looking at TLS client auth it seems to me that it is much closer to being 
a viable replacement for some uses of passwords than experience leads us to 
believe. In particular, I have maybe 5 accounts I might use a hardware token to 
secure but I have several hundred Web accounts that all use the same password 
because when it's not my asset and I am not being paid, I don't use my brain 
power to remember the password.

So my basic idea here is that Alice connects all her devices to her personal 
Mesh and they are automatically provisioned with a device specific cert that is 
chained up to one of Alice's personal PKIX CAs. The CA in turn being 
(optionally) credentialed under Alice's personal Mesh via an extension if the 
goal is to establish that the 'Alice' visiting site A is the same as the Alice 
visiting site B. For cases where we want to prevent linkage, we develop a 
separate CA per site.

This is not how PKIX is intended to work of course. But the deployed 
infrastructure supports PKIX and so that is the framework we have to work 
within.


Looking at how TLS Client Auth works as deployed, a server sends a message back 
to a client saying 'client certificate required' and a list of distinguished 
names of CAs it will accept.

So what I want to know is not 'should I do this', but 'what is the string I 
should send when I do'. That is, this is something I am planning to do and so I 
am asking what approach is least likely to have unintended effects.

I see a need for two distinguished names:

A) 'Self signed CA speaking to any relying party'
B) 'Self signed CA speaking to a specific relying party'

The server is going to check the certificate chain itself on the other end of 
course.


And again, yes, I do fully understand the limitations of transport layer client 
auth. That is why I make use of my own authentication layer for Web Service 
transactions.

Any email and files/attachments transmitted with it are confidential and are 
intended solely for the use of the individual or entity to whom they are 
addressed. If this message has been sent to you in error, you must not copy, 
distribute or disclose of the information it contains. Please notify Entrust 
immediately and delete the message from your system.
_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to