[Cscwg-public] Subject name stability

Dean Coclin dean.coclin at digicert.com
Mon May 22 13:18:40 UTC 2023


Hello Mike,

 

This item was discussed at last week’s meeting. A response is being prepared and will be sent to you soon.


Best regards,

Dean Coclin

CSCWG Chair

 

 

From: Cscwg-public <cscwg-public-bounces at cabforum.org> On Behalf Of Mike Hearn via Cscwg-public
Sent: Monday, May 22, 2023 7:59 AM
To: Mike Hearn <mike at hydraulic.software>; cscwg-public at cabforum.org
Subject: Re: [Cscwg-public] Subject name stability

 

Hi,

 

No interest in this issue? If not, how come? It seems pretty central to code signing as a technology.

 

On Mon, 8 May 2023 at 12:55, Mike Hearn via Cscwg-public <cscwg-public at cabforum.org <mailto:cscwg-public at cabforum.org> > wrote:

Hello,

 

I'd like to start a discussion on possible changes to the CSWG rules for issuing certificates in the case that the subject name of the subscriber changes.

 

By way of introduction, I run a company that makes a tool to simplify desktop app distribution <https://url.avanan.click/v2/___https:/hydraulic.software/___.YXAzOmRpZ2ljZXJ0OmE6bzpiYTljNzM5OGZmOWQ0MTFmNDA4ODAzNTUyMmNiZmY3MTo2OjM5ZGE6YTY3Mzg4ZjIxMmIxOTAzNTRhYTNjZjBkZGUwOGI4OWU5NWViODZhZmE5MzAwYTRkM2Y0YWM4ZGY3MjNiNGI3MDpoOkY> , which for now focuses on out-of-store apps (support for app stores may arrive in future versions). The tool conforms to modern standards on the Windows platform, and thus creates MSIX packages. The MSIX system relies on code signing identities more heavily than Windows has done in the past. Apps distributed this way get "package identity", in which the app is treated as a coherent whole rather than a collection of files that might or might not be in the same directory. App files and data are namespaced under a short hash of the X.500 name of the signing certificate. Package identity is promoted by Microsoft as a core part of their platform strategy, and a similar system exists on Apple platforms too.

 

Unfortunately using subject names in this way (as a database key) exposes subscribers to subject name instability. If a CA changes the subject name it issues to subscribers then Windows thinks that's a new organization and:

1.	Software updates silently break. This is a critical issue.
2.	Apps lose access to any {files, keys, permissions, etc} linked to their subject name.
3.	Publisher reputations appear to reset (probably? it's a bit unclear what happens in this case).

Microsoft has added a mechanism that lets you preserve your old "package family name" (sn hash) when a certificate identity changes, but after some close examination we've unfortunately had to conclude that the mechanism isn't really usable and that's unlikely to change soon. I can go into the gritty details if anyone is interested. As such we've started developing workarounds, but they aren't ideal for neither developers nor end users (e.g. the end user will sometimes see the app uninstall and reinstall itself). Changes to the SN will therefore be somewhat disruptive and certainly for anyone who isn't using our tools but who adopts modern Windows packaging, SN changes can be fatal. Left unaddressed this situation will simply cause people to avoid anything that might look at their certificates beyond the basic "is there one" check (as indeed ~30% of developers already ignore code signing completely).

 

There are a couple of possible answers to this situation:

1.	Define it as out of scope. The public PKI does not make any claims about identity stability and it's up to users to realize this and develop use-case specific plans for identity migrations. If Microsoft's mechanisms for this aren't workable then that's a problem for Windows users and developers but not the CA system.
2.	Address it via policy changes.

I've signed the IPR agreement and joined the CSWG list in order to start a discussion about (2). I argue that there are several strong reasons to consider policy changes here, both pragmatic and theoretical:

1.	Subject name stability is a valuable and desirable service for any non-trivial use of a PKI.
2.	It is in practice quite difficult to both realize the need for identity migration ahead of time and then implement it in a way that's both usable and secure. Microsoft has much greater time and resources than most organizations that would consume certificates but has struggled with this, and most systems that try to do things with certificate identity simply lack any method at all for migration. Pushing the problem to developers isn't working out well because they tend to assume at first that these sorts of problems are already solved by the CA/B Forum and that's why they're outsourcing identity verification to CAs to begin with. By the time they realize it's not the case it's already too late and systems are deployed in the wild.
3.	SN changes are often administrative. Even when justified by improvements in security, the fact that they can break software updates and cause apps to lose access to keystore entries and permissions means the overall security change can be negative.
4.	Non-disruptive policy changes can be made relatively quickly compared to the time needed to update all the Windows installs in the wild, which  can take many years. And of course once developers make architectural decisions to avoid relying on SNs those decisions can last decades.

There are quite a few possible policy-based ways to improve this situation, but the simplest is just to allow people who got certificates for a specific SN in the past to continue buying the exact same SN in future. That is, policy changes that affect the SN would only be mandatory for developers who are  new to the CS ecosystem and opt-in otherwise. The SAN field would be used to store new versions of the SN. This opens up some other questions, for example, what happens if a company changes its name from X to Y and then a new company forms that uses the now-free name X, but I think these can be worked through.

 

There are other possible solutions. Apple run their own code signing PKI and part of the reason is so they can allocate stable "team IDs" from a central database. Likewise, for their store Microsoft doesn't use the public PKI either. That strategy is a complete fix except for the need to once again change the SNs on people, and for all CAs to collaborate on a central database of identities. Apple also have a system called the "designated requirement" which in theory allows for some degree of identity migration, but it's unused in practice, probably due to complexity.

 

I hope this message sparks some ideas for how the CS ecosystem can be improved in this regard. Without some approach to granting long term identities with trustworthy stability, developers will have no choice but to find workarounds and ultimately abandon attempts to connect more things to subscriber identities.

 

thanks,

-mike

_______________________________________________
Cscwg-public mailing list
Cscwg-public at cabforum.org <mailto:Cscwg-public at cabforum.org> 
https://lists.cabforum.org/mailman/listinfo/cscwg-public <https://url.avanan.click/v2/___https:/lists.cabforum.org/mailman/listinfo/cscwg-public___.YXAzOmRpZ2ljZXJ0OmE6bzpiYTljNzM5OGZmOWQ0MTFmNDA4ODAzNTUyMmNiZmY3MTo2OmIyNjk6N2QzNjU0M2IxMThlZWU0YTVlZmFkYjI5MmI0OWRmODMzOGM1MTBlOTIzZDViZDRkMzZjM2VkNjQ1MWU3OGIwYzpoOkY> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cabforum.org/pipermail/cscwg-public/attachments/20230522/8069784f/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5197 bytes
Desc: not available
URL: <http://lists.cabforum.org/pipermail/cscwg-public/attachments/20230522/8069784f/attachment-0001.p7s>


More information about the Cscwg-public mailing list