finds.dev

moxie0/Convergence

An agile, distributed, and secure alternative to the Certificate Authority system.

View on GitHubHomepage ↗

★ 634JavaScriptupdated Mar 2012

// the take

A 2011-era Firefox extension plus Python notary server that tries to replace the CA trust model: instead of trusting a fixed list of root CAs, the client asks one or more "notaries" to independently verify a site's certificate fingerprint and lets the user decide which notaries to trust. It's Moxie Marlinspike's answer to the CA-compromise problem (this was right after the DigiNotar breach), aimed at security researchers and privacy-minded users who wanted an alternative to browser-vendor-controlled trust.

The trust model itself is genuinely clever: notary trust is revocable and pluggable per-user instead of being baked into the browser, and the server-side verifier strategies (GoogleCatalogVerifier, NetworkPerspectiveVerifier) are cleanly separated so you can swap how a notary cross-checks a cert. The client bypasses Firefox's normal cert-verification path and talks directly to NSS/NSPR/SQLite via ctypes bindings (NSS.js, NSPR.js, SQLITE.js), which is a neat low-level trick for intercepting TLS validation from inside an extension.

Last commit is from March 2012 — it's built on Firefox's old XUL/XPCOM extension architecture (chrome.manifest, install.rdf, XUL dialogs), which Mozilla ripped out entirely in Firefox 57 (2017) for WebExtensions. This simply does not install or run in any Firefox released in the last ~9 years, so it's not a maintenance-lagging project, it's a non-functional artifact. The server is Python 2-era code with no sign of a Python 3 port. Architecturally, trusting notary servers over the network just relocates the trust problem to a new set of parties you now depend on for availability and honesty, and the industry ultimately solved this differently via Certificate Transparency rather than notary-based perspective — so this approach never got real adoption beyond the initial buzz.

We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →

// at a glance

Stars
634
Forks
108
Language
JavaScript
Last commit
7 Mar 2012

// nearby

If Convergence isn't quite it.

All repos →