SN 956 - deleting expired CA certs

  • SpinRite v6.1 Release #3
    Guest:
    The 3rd release of SpinRite v6.1 is published and may be obtained by all SpinRite v6.0 owners at the SpinRite v6.1 Pre-Release page. (SpinRite will shortly be officially updated to v6.1 so this page will be renamed.) The primary new feature, and the reason for this release, was the discovery of memory problems in some systems that were affecting SpinRite's operation. So SpinRite now incorporates a built-in test of the system's memory. For the full story, please see this page in the "Pre-Release Announcements & Feedback" forum.
    /Steve.
  • Be sure to checkout “Tips & Tricks”
    Dear Guest Visitor → Once you register and log-in please checkout the “Tips & Tricks” page for some very handy tips!

    /Steve.
  • BootAble – FreeDOS boot testing freeware

    To obtain direct, low-level access to a system's mass storage drives, SpinRite runs under a GRC-customized version of FreeDOS which has been modified to add compatibility with all file systems. In order to run SpinRite it must first be possible to boot FreeDOS.

    GRC's “BootAble” freeware allows anyone to easily create BIOS-bootable media in order to workout and confirm the details of getting a machine to boot FreeDOS through a BIOS. Once the means of doing that has been determined, the media created by SpinRite can be booted and run in the same way.

    The participants here, who have taken the time to share their knowledge and experience, their successes and some frustrations with booting their computers into FreeDOS, have created a valuable knowledgebase which will benefit everyone who follows.

    You may click on the image to the right to obtain your own copy of BootAble. Then use the knowledge and experience documented here to boot your computer(s) into FreeDOS. And please do not hesitate to ask questions – nowhere else can better answers be found.

    (You may permanently close this reminder with the 'X' in the upper right.)

drwtsn32

Active member
Sep 19, 2020
44
15
I just finished listening to episode 956 and had a thought about deleting expired CA certs.

In the episode, Steve said that expired CA certificates would "never be valid anyway" so removing them should be "error free." I don't think this is true when it comes to code signing. As long as the code was signed (and countersigned by a timestamp server) during the certificate validity period, it is still considered valid even at a future date when the certs have expired.

So I think removing expired CA certs could cause issues.
 
@drwtsn32: THAT is a really interesting point.

We know that code signing with a timestamp server allows the signed code to be trusted past the expiration date of the signing certificate... But the signing certificate is still a certificate that chains up to a root CA:

1706151508081.png

I just checked... And while the immediately superior "G4 Code Signing" parent certificate has an expiration date at the end of April, 2036, the two certs it chains up to both expire on November 9th of 2031. That means that this chain will NOT be trusted past that 2031 expiration UNLESS, as you suggest, the signing timestamp is allowed to not only assert that validity of GRC's since-expired certificate, but ALSO the fact that those superior certs were all also valid at that time. And if that's the case, then I suppose that anyone who was being asked to trust this signed code after 2031 would need to have a copy of the chain, or at least any certs that are not in the chain that the code's signature might include, in their root store. But THAT requirement (of keeping expired roots around) seems like a bit of a stretch to me.

Interesting!
 
Good summary! I haven't actually tested my theory yet. The potential issue occurred to me while listening to the podcast.

It would be very interesting to test the theory by finding an executable signed by (ultimately) a root CA cert that has since expired, then moving that cert to the "untrusted" folder in the Windows Certificate Management mmc, and then testing signature validation of the executable.
 
  • Like
Reactions: Steve