Urgent.News

What's breaking now, across thousands of outlets.

Tech

I’ve factored the RSA keys of a Certificate Authority…from the 90s

In the early days of the World Wide Web, RSA cryptography was used to secure SSL connections, but the strength of these keys varied greatly. While the Web PKI deprecated 1024-bit RSA keys a decade ago, and even the 2048-bit keys that are currently in use may soon be obsolete due to quantum computers, some RSA keys from the 1990s were small enough to be factored on a single desktop computer.

The author of the article, intrigued by the security of RSA, decided to explore this topic further. They downloaded archives of old root certificates from Internet Explorer and Netscape and set to work extracting all the roots. After finding a target, they focused on Netscape 4.51, which shipped a 512-bit RSA certificate authority trusted for SSL and another for S/MIME.

Using the CADO-NFS algorithm on a Ryzen 9 5950X desktop, the author factored the public keys in the root certificates. It took 32 hours to factor the E-Certify RSA 512 Gold Server for SSL and another 29 hours for the E-Certify RSA 512 Gold Client for S/MIME. These factored keys can be used to reconstruct the private key and issue certificates.

The author then demonstrated how to verify the issued certificates in Netscape 4.51, despite the significant differences in TLS capabilities between this old version and modern TLS stacks. They created a custom old-timey TLS server in Go to test the functionality.

The resulting private keys and tools are available in a GitHub repository (https://github.com/mcpherrinm/ancientroots) for anyone interested in exploring further or potentially misusing the old SSL certificates.

Written by urgent.news from Lobsters's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

This story

This is one outlet's version. Read the fullest account.

Read the original at mcpherrin.ca →

More in Tech

How Scale Should Change the Way You Think in Tech

Most engineers learn technology by asking: “How do I make this work?” That is the right question—at the beginning. But as systems grow, it becomes the wrong question.

  • Shift focus from "how to make it work" to "what happens when it works for everyone"
  • At scale, engineers must think about system interactions, not just features
  • At large scale, failures become the norm and require proactive preparation

Allowlist Every Path a Docs Generator May Write

Generated reference docs stay trustworthy when a generator may write only restatable files under an allowlisted path. Support windows, uptime figures, and deprecation calendars belong in a second tree…

  • Generator limited to allowlisted directory paths
  • Separate tree for Windows uptime and deprecation
  • Linter flags unauthorized boundary crossings

@supports named-feature() lets you branch on behavior, not syntax

The test you can't write today Say you want to branch a stylesheet on how an engine resolves anchor positioning around CSS transforms. Both browsers parse position-anchor . Both accept anchor() .

  • @supports named-feature() allows branching on browser behavior, not syntax.
  • Two keywords discussed: anchor-position-follows-transforms and single-axis-scroll-container.
  • @supports named-feature() resolves property support within the cascade, improving interop.

More from Tuesday 8 September →