In xul.dll (onderdeel van de Mozilla Firefox webbrowser) is een rootcertificaat ingebouwd, genaamd "root-ca-production-amo". Dit certficaat is niet zichtbaar in de certificate viewer van Firefox.
Elke door Mozilla gevalideerde Add-on wordt ondertekend met een leverancier-specifiek code-signing certificaat, uitgegeven door Mozilla zelf. Ook hier is echter sprake van een intermediate certificaat, genaamd "signingca1.addons.mozilla.org", dat in elke add-on (samen met het code signing certificaat) wordt meegeleverd.
Bijvoorbeeld de extensie "https everywhere" die ik gisteravond downloadde, bevat de volgende twee certificaten:
1) "https-everywhere@eff.org" - geldig van 02 May, 2019 23:35:08 tot 01 May, 2020 23:35:08
2) "signingca1.addons.mozilla.org" - geldig van 04 May, 2017 02:09:46 tot
04 May, 2019 02:09:46 <== whoops
Het is wel heel suf dat er nergens alarmbellen zijn gaan rinkelen, want een certificaat met een latere einddatum dan het bijbehorende intermediate certificaat, is natuurlijk onzinnig.
Overigens is het rootcertificaat ("root-ca-production-amo") geldig tot 15 March, 2025 00:53:57.
De fix die bij mij prima werkte is, in about:config,
xpinstall.signatures.required op
false zetten. Zo lang je geen nieuwe add-ons installeert (en malware geen toegang heeft tot jouw computer) kan dit, lijkt mij, geen kwaad.
Het "installeren" van "hotfix-update-xpi-intermediate@mozilla.com-1.0.2-signed.xpi" (
https://storage.googleapis.com/moz-fx-normandy-prod-addons/extensions/hotfix-update-xpi-intermediate%40mozilla.com-1.0.2-signed.xpi, bron: Anoniem in
https://www.security.nl/posting/607741/Mozilla+werkt+aan+update+voor+uitgeschakelde+Firefox-extensies#posting607780) werkte bij mij niet (nadat ik xpinstall.signatures.required weer op false had gezet).
Op basis van analyse van de source code lijkt deze XPI slechts een aangepaste versie van het intermediate certificaat "signingca1.addons.mozilla.org" toe te voegen aan de
zichtbare certificate store van Firefox. Inderdaad is er daarna een entry zichtbaar genaamd:
> Mozilla Corporation
signingca1.addons.mozilla.org Software Security Device
Dat certificaat bevat dezelfde public key als de vorige variant, maar heeft een ander serienummer (10 00 08 i.p.v. 10 00 04 - ik dacht toch echt dat ook Mozilla van anderen eist dat zij random serienummers gebruiken) en een andere geldigheidsduur, namelijk 04 April, 2015 02:00:00 tot 04 April, 2025 02:00:00.
Er lijkt echter
ook een code wijziging noodzakelijk te zijn om Firefox een intermediate certificaat in de "gewone" certificate store voorrang te laten geven op in add-ons meegestuurde intermediate certificaten, en die heb ik nog niet geïnstalleerd (afwijkende ervaringen zal ik hieronder melden).
M.b.t.de vraag van Luntrus: dit was een blunder, een design error die je wel meer ziet bij digitale certificaten. Iemand ontwerpt zo'n systeem en gaat iets anders doen. De implementers realiseren zich niet dat ze een tikkende tijdbom hebben. Extra pech is dat geen van de add-on ontwikkelaars dit lijkt te zijn opgevallen. Mocht dat wel geberud zijn en Mozilla de waarschuwing(en) hebben genegeerd, dan is dat wel zeer laakbaar.
Ik ga nog eens achter m'n oren krabben over mogelijke nieuwe risico's die deze spoedwijziging met zich meebrengt.