Podcast
Root Causes 331: Microsoft Restores Trust to VeriSign Code Signing Root


Hosted by
Tim Callan
Chief Compliance Officer
Jason Soroko
Fellow
Original broadcast date
September 13, 2023
Recent erroneous behavior for certain applications on Windows has drawn attention to the Microsoft trusted root store. It turns out that Microsoft removed - and then re-added - a legacy VeriSign root in its trusted roots list. We give you the details of what went on and why.
Podcast Transcript
Lightly edited for flow and brevity.
So I've seen a lot of confusion online, where people are saying, I don't understand. You can't revoke a certificate. How did they revoke the certificates and then they're freaking out and going, it was not a matter of revoke certificates being unrevoked. What happened was every browser has their operating system - we call them browsers in shorthand - has control over what's in the root store and anytime they are capable of updating their root store, which is a lot, they are capable of adding and removing roots. They could put in new roots tomorrow, they could take out roots that they already have, and they can change the status of roots. So, in this case, the root was always there, but it was about the status. A change in the status. And they can do that as often as they can push an auto update. You might see things on Twitter or around or people say, Microsoft unrevoked certs. They did not. You can't unrevoke a cert. But what they did was they moved a root out of trusted status, stuff broke, presumably that they didn't expect to break, and they moved it back.
And here's a good example, code signing being such a long term practice, software lasts a long time, and if there's a check on root certificates, then this would be effective. And so, I can definitely see how this can happen. I can also see how it would have been very easy to take it away thinking that was the right thing to do and then having to bring it back.
It’s amazing that this has happened, but, not shocking. But here it is. I guess it’s happening.
And what happened was they changed the status of that. This is part of how people manage their certs over time. And I'm looking for the specifics here, but they basically changed it from a this not before status to what is essentially a distrusted status, where they just said, ok, we're not going to trust this anymore. And you can imagine this too - you can imagine somebody who is running a root store, they want to clean things up, they want to get rid of the old stuff and so that's part of what they do. And they do this all the time. Old roots that are in the newest anymore with no active leaf certificates, they will go ahead and distrust them and knock them out. And there may have been an opinion that someone came to that it was the right time in the lifecycle to do this with that root. And so they went ahead and executed that. They may even have talked to the owner. I guess that would have been DigiCert. I don’t think it would be DigiCert. Well, that's kind of the problem. There isn't an owner there. But normally they would talk to the owner, and they would say is it okay for us to deprecate this root? Right? They might have contacted VeriSign for all I know, and VeriSign might have said, hey, no skin off my nose.
So then they move ahead, and all of a sudden, their tech support lines are ringing, and somebody realizes, gosh, this broke stuff and I want to unbreak it so they go in and they change the status back to what it was. And that's fine. Like on the one hand, it is okay to clean up your root store. Good idea. On the other hand, in this particular one, it doesn't seem to me like there's any particular deadline or any particular hurry. There's no reason why it has to happen now, as opposed to in a year or two or whatever. And so I have to suspect - I don't have any inside information here - that they all thought it was fine. They thought it wasn't in use. This was a really old thing. And it’s like, look, it's really old and it’s unsupported software. It's unsupported operating systems. It's time we can shut that off. And then they did and then people got upset, and they decided, oops, okay, maybe not. Let's let it keep running. And it seems to my eyes, that's what went on here.
The other thing that happens is that, in a lot of ways, security and backward compatibility are natural enemies in the wild, because you frequently see the argument where someone says, well, we want to be able to support things going back to the following systems and you're talking about versions of Android from 2004. And then somebody says, well, wait a minute, those versions of Android from 2004 are chocked full of known vulnerabilities. And are you doing somebody a favor by allowing them to use that old operating system? Or are they better off if you say, no, I'm not going to work with that operating system, get on something that isn't complete and utter Swiss cheese? And so that's a problem too. And where do you draw those lines? And, it's easy to have conversations that are all theoretical and on paper, and everybody is in agreement and Kumbaya and then you get down to brass tacks and it's messy. And I think this is an example of seeing that kind of messiness and that push/pull in action in the real world.

