Technesch Detailer vum Firefox sengem rezenten Add-on auszeschalten

Note. Iwwersetzer: fir d'Kamoudheet vun de Lieser, d'Datume ginn zu Moskau Zäit

Mir hunn viru kuerzem den Verfallsdatum fir ee vun den Zertifikater verpasst, déi benotzt gi fir Add-ons z'ënnerschreiwen. Dëst huet dozou gefouert datt d'Add-ons fir d'Benotzer ausgeschalt goufen. Elo datt de gréissten Deel vum Problem fix ass, wëll ech d'Detailer deelen wat geschitt ass an d'Aarbecht gemaach.

Hannergrond: Ergänzunge an Ënnerschrëften

Wärend vill de Browser aus der Këscht benotzen, ënnerstëtzt Firefox Extensiounen genannt "Add-ons". Mat hirer Hëllef fügen d'Benotzer verschidde Funktiounen un de Browser. Et ginn iwwer 15 dausend Ergänzunge: vun Annonce blockéieren ze Honnerte vu Tabs managen.

Add-ons installéiert mussen hunn digital Ënnerschrëft, déi d'Benotzer vu béiswëllegen Add-ons schützt a minimal Iwwerpréiwung vun Add-ons vun Mozilla Mataarbechter erfuerdert. Mir hunn dës Fuerderung am Joer 2015 agefouert wéi mir getest hunn sérieux Problemer mat béiswëlleg Extensiounen.

Wéi et funktionnéiert: All Kopie vu Firefox enthält e "Root Zertifikat". De Schlëssel fir dës "root" ass gespäichert Hardware Sécherheetsmodul (HSM)dat net Zougang zum Netz huet. All puer Joer gëtt en neien "Zwëschenzertifika" mat dësem Schlëssel ënnerschriwwen, dee beim Ënnerschreiwe vun Add-ons benotzt gëtt. Wann en Entwéckler en Add-on ofstellt, kreéiere mir en temporäre "End-Zertifikat" an ënnerschreiwen et mat dem Zwëschenzertifika. Da gëtt den Add-on selwer vum finalen Zertifika ënnerschriwwen. schematesch et gesäit esou aus.

Bedenkt datt all Certificat e "Thema" huet (deen de Certificat ausgestallt gouf) an en "Emittent" (deen den Certificat erausginn huet). Am Fall vun engem Rootzertifika, "Thema" = "Emittent", awer fir aner Certificaten ass den Emittent vun engem Certificat d'Thema vum Elterendeel, deen et ënnerschriwwen huet.

E wichtege Punkt: all Zousatz gëtt vun engem eenzegaartegen Ennzertifika ënnerschriwwen, awer bal ëmmer sinn dës Ennzertifikater mam selwechten Zwëscherzertifika ënnerschriwwen.

Notiz vum Auteur: Ausnam ass ganz al Ergänzunge. Verschidde Zwëschenzertifikater goufen zu där Zäit benotzt.

Dësen Zwëschenzertifika huet Problemer verursaacht: all Zertifika ass fir eng gewëssen Zäit valabel. Virun oder no dëser Period ass den Zertifika ongëlteg an de Browser benotzt keng Add-ons déi mat dësem Zertifika ënnerschriwwe sinn. Leider war den Zertifikat zwëschen den 4. Mee um 4:XNUMX Auer ofgelaf.

D'Konsequenze koumen net direkt. Firefox kontrolléiert d'Ënnerschrëfte vun installéierten Add-ons net ëmmer, awer ongeféier eemol all 24 Stonnen, an d'Kontrollzäit ass individuell fir all Benotzer. Als Resultat hunn e puer Leit Problemer direkt, anerer vill méi spéit. Mir hu fir d'éischt de Problem bewosst ronderëm d'Zäit wou den Zertifika ofgelaf ass an hunn direkt ugefaang no enger Léisung ze sichen.

Mir reduzéieren Schued

Wa mir gemierkt hunn wat geschitt ass, hu mir probéiert d'Situatioun ze verschlechteren.

Als éischt hunn se opgehalen nei Ergänzunge z'akzeptéieren an z'ënnerschreiwen. Et mécht kee Sënn en ofgelaften Zertifika fir dëst ze benotzen. Wann ech zréckkucken, géif ech soen, et wier méiglech, alles esou ze loossen, wéi et ass. Elo akzeptéieren Ergänzunge weider.

Zweetens hunn se direkt eng Fix geschéckt, déi alldeeglech Verifizéierung vun den Ënnerschrëften verhënnert huet. Sou hu mir déi Benotzer gespuert, deenen hire Browser keng Zäit hat fir d'Add-ons fir déi lescht XNUMX Stonnen ze kontrolléieren. Dës Fix ass elo zréckgezunn an ass net méi gebraucht.

Parallel Aarbecht

Theoretesch gesäit d'Léisung vum Problem einfach aus: erstellt en neie gültege Mëttelzertifika an ënnerschreift all Zousatz. Leider geet dat net:

  • mir kënnen net séier 15 Add-ons op eemol nei ënnerschreiwen, de System ass net fir sou eng Laascht entworf
  • nodeems mir d'Ergänzunge ënnerschriwwen hunn, mussen déi aktualiséiert Versioune fir d'Benotzer geliwwert ginn. Déi meescht Add-ons gi vu Mozilla Server installéiert, sou datt Firefox Updates an den nächsten XNUMX Stonnen fënnt, awer e puer Entwéckler verdeelen ënnerschriwwene Add-ons iwwer Drëtt-Partei Channels, sou datt d'Benotzer sou Add-ons manuell musse aktualiséieren

Amplaz hu mir probéiert e Fix z'entwéckelen deen all Benotzer mat wéineg oder guer keng Handlung vun hirer Säit erreechen géif.

Zimlech séier si mir mat zwou Haaptstrategien erauskomm, déi mir parallel benotzt hunn:

  • Update Firefox fir d'Validitéitsperiod vum Zertifika z'änneren. Dëst wäert existent Add-ons magesch erëm schaffen, awer erfuerdert en neie Build vu Firefox fir verëffentlecht a verschéckt ze ginn.
  • Generéiere e gültege Certificat an iergendwéi iwwerzeegt Firefox et ze akzeptéieren amplaz vun engem ofgelaaften existenten

Mir hu beschloss fir d'éischt déi éischt Optioun ze benotzen, déi schéngt ganz gutt ze schaffen. Um Enn vum Dag gouf och déi zweet Fix (neien Zertifika) verëffentlecht, iwwer dee mir spéider schwätzen.

Zertifikat Ersatz

Wéi ech uewen ernimmt, et erfuerdert:

  • eng nei valabel Certificat schafen
  • installéiere se op afstand am Firefox

Fir ze verstoen firwat dëst funktionnéiert, loosst eis den Add-on Validatiounsprozess méi no kucken. Den Add-on selwer kënnt als Set vu Dateien, dorënner eng Kette vun Zertifikater, déi fir d'Ënnerschreiwe benotzt ginn. Als Resultat kann den Add-on verifizéiert ginn, wann de Browser de Rootzertifika kennt, deen a Firefox agebaut ass beim Bauzäit. Wéi och ëmmer, wéi mir scho wëssen, ass den Zwëschenzertifika ofgelaf, sou datt et net méiglech ass den Add-on z'iwwerpréiwen.

Wann Firefox probéiert en Add-on ze validéieren, ass et net limitéiert op d'Benotzung vun den Zertifikater am Add-on selwer. Amplaz probéiert de Browser eng gëlteg Zertifikatkette ze bauen, mam Enn Zertifikat unzefänken a weider bis et an d'Root kënnt. Um éischten Niveau fänke mir mam Blatzertifika un, a fanne dann den Zertifika, deem säin Thema den Emittent vum Blatzertifika ass (dat ass de Mëttelzertifika). Normalerweis kënnt dësen Zwëscherzertifika mam Add-on, awer all Zertifika aus dem Browser Store kann och als Zwëschenzertifika handelen. Wa mir en neie gültege Certificat an den Zertifikatgeschäft op afstand kënne addéieren, probéiert Firefox et ze benotzen. Situatioun virun an no engem neien Zertifikat installéiert.

Wann den neien Zertifika installéiert ass, huet Firefox zwou Méiglechkeeten wann Dir d'Zertifikatkette iwwerpréift: benotzt den alen ongëlteg Zertifika (deen net funktionnéiert) oder deen neie gültege (dee funktionnéiert). Et ass wichteg datt den neien Zertifika deeselwechten Thema Numm an ëffentleche Schlëssel enthält wéi den alen Zertifikat, sou datt seng Ënnerschrëft um finalen Zertifika gëlteg ass. Firefox ass intelligent genuch fir béid ze probéieren bis et een fënnt deen funktionnéiert, sou datt d'Add-ons erëm verifizéiert ginn. Notéiert datt dëst déiselwecht Logik ass déi mir benotze fir TLS Zertifikater ze validéieren.

Notiz vum Auteur: Lieser, déi mat WebPKI vertraut sinn, bemierken datt Kräizzertifikater déiselwecht funktionnéieren.

Déi super Saach iwwer dës Fix ass datt et net erfuerdert datt Dir existent Add-ons nei ënnerschreift. Soubal de Browser en neien Zertifika kritt, funktionnéieren all Add-ons erëm. Et bleift d'Erausfuerderung fir en neien Zertifika un d'Benotzer ze liwweren (automatesch an op afstand) an och Firefox ze kréien fir behënnert Add-ons nei z'iwwerpréiwen.

Normandie an de Fuerschungssystem

Ironescherweis gëtt dëse Problem vun engem speziellen Add-on genannt "System" geléist. Fir Fuerschung ze maachen, hu mir e System mam Numm Normandie entwéckelt, deen d'Benotzer Fuerschung liwwert. Dës Exploratioune ginn automatesch am Browser duerchgefouert an hunn e verstäerkte Zougang zu den internen APIen vun Firefox. Fuerschung kann nei Zertifikater an den Zertifikatgeschäft bäidroen.

Notiz vum Auteur: Mir addéieren keen Zertifika mat spezielle Privilegien; et ass mat engem Root Zertifika ënnerschriwwen, sou datt Firefox et vertraut. Mir addéieren et einfach an de Pool vun Certificaten déi vum Browser benotzt kënne ginn.

Also d'Léisung ass eng Etude ze kreéieren:

  • déi den neien Zertifika installéiert dee mir fir Benotzer erstallt hunn
  • de Browser forcéiere fir behënnert Add-ons nei z'iwwerpréiwen, sou datt se erëm funktionnéieren

"Awer waart," sot Dir, "Add-ons funktionnéieren net, wéi lafen ech de System Add-on?". Loosst eis et mat engem neien Zertifika ënnerschreiwen!

Alles zesumme setzen ... firwat dauert et sou laang?

Also, de Plang ass en neien Zertifika auszeginn fir deen alen z'ersetzen, e Systemadd-on erstellen an et fir Benotzer duerch d'Normandie installéieren. D'Problemer hunn, wéi gesot, den 4. Mee um 4:00 ugefaang, a schonn um 12:44 de selwechten Dag, manner wéi 9 Stonnen méi spéit, hu mir eng Fix an d'Normandie geschéckt. Et huet nach 6-12 Stonnen gedauert fir all Benotzer z'erreechen. Net schlecht schonn, mee Twitter Benotzer froe firwat mir net méi séier hätt kënnen handelen.

Als éischt huet et Zäit gedauert fir en neien Zwëschenzertifika auszeginn. Wéi ech uewen ernimmt, ass de Schlëssel aus dem Root Zertifikat offline am Hardware Sécherheetsmodul gespäichert. Dëst ass gutt aus Sécherheetssiicht, well d'Root selten benotzt gëtt a muss sécher sinn, awer et ass e bëssen onbequem wann Dir dréngend en neie Certificat ënnerschreiwe musst. Ee vun eisen Ingenieuren huet missen an den HSM Stockage goen. Dunn goufen et Mëssgléckt Versich de richtege Zertifikat auszeginn, an all Versuch war wäert eng oder zwou Stonnen op Testen verbruecht.

Zweetens huet d'Entwécklung vun engem System Add-on e bëssen Zäit gedauert. Konzeptuell ass et ganz einfach, awer och einfach Programmer erfuerderen Opmierksamkeet. Mir wollte sécherstellen, datt mir d'Saache net méi schlëmm maachen. D'Fuerschung muss getest ginn ier se un d'Benotzer geschéckt gëtt. Och den Add-on muss ënnerschriwwe ginn, awer eisen Add-on Signing System war behënnert, also hu mir no enger Léisung gesicht.

Schlussendlech, nodeems mir d'Studien fir d'Sendung virbereet hunn, huet et Zäit gedauert fir z'installéieren. De Browser iwwerpréift fir Normandie Aktualiséierungen all 6 Stonnen. Net all Computer sinn dauernd op a verbonne mam Internet, sou datt et Zäit brauch fir d'Fixatioun un d'Benotzer ze verbreeden.

Finale Schrëtt

D'Fuerschung soll de Problem fir déi meescht Benotzer fixen, awer ass net fir jiddereen verfügbar. E puer Benotzer erfuerderen eng speziell Approche:

  • Benotzer déi Fuerschung oder Telemetrie ausgeschalt hunn
  • Benotzer vun der Android Versioun (Fennec), wou Fuerschung guer net ënnerstëtzt gëtt
  • Benotzer vu personaliséierte Builds vu Firefox ESR an Entreprisen wou Telemetrie net aktivéiert ka ginn
  • Benotzer déi hannert MitM Proxies sëtzen, well eisen Add-on Installatiounssystem Schlësselpinning benotzt, wat net mat esou Proxyen funktionnéiert
  • Benotzer vun eelere Versioune vu Firefox déi keng Fuerschung ënnerstëtzen

Et gëtt näischt wat mir iwwer déi lescht Kategorie vu Benotzer maache kënnen - si sollten nach ëmmer op déi nei Versioun vu Firefox upgraden, well déi al déi eescht ongepatched Schwachstelle hunn. Mir wëssen, datt e puer Leit op eeler Versioune vu Firefox bleiwen, well se méi al Add-ons wëllen ausféieren, awer vill vun den eeler Add-ons si scho fir nei Versioune vum Browser portéiert. Fir aner Benotzer hu mir e Patch entwéckelt deen en neien Zertifika installéiere wäert. Et gouf als Bugfix Verëffentlechung verëffentlecht (Iwwersetzer Notiz: Firefox 66.0.5), sou datt d'Leit et kréien - héchstwahrscheinlech scho kritt - duerch den normale Updatekanal. Wann Dir e personaliséierte Build vu Firefox ESR benotzt, kontaktéiert w.e.g. Ären Ënnerhalter.

Mir verstinn datt dëst net ideal ass. A verschiddene Fäll hunn d'Benotzer Add-on-Daten verluer (zum Beispill Add-on-Daten Multi-Kont Behälter).

Dës Nebenwirkung konnt net vermeit ginn, awer mir gleewen datt mir kuerzfristeg déi bescht Léisung fir déi meescht Benotzer gewielt hunn. Laangfristeg wäerte mir aner, méi fortgeschratt architektonesch Approche sichen.

D'Lektiounen

Als éischt huet eis Team eng erstaunlech Aarbecht gemaach fir eng Fix ze kreéieren an ofzeginn a manner wéi 12 Stonnen no der Entdeckung vum Problem. Als een deen op de Versammlungen deelgeholl huet, kann ech soen datt an dëser schwiereger Situatioun d'Leit ganz haart geschafft hunn a ganz wéineg Zäit verschwonnen ass.

Natierlech sollt dat guer net geschéien. Et ass kloer derwäert eis Prozesser unzepassen fir d'Wahrscheinlechkeet vun esou Tëschefäll ze reduzéieren an et méi einfach ze maachen d'Konsequenzen ze korrigéieren.

D'nächst Woch publizéieren mir en offiziellen Postmortem an eng Lëscht vun Ännerungen déi mir wëlles maachen. Fir de Moment wäert ech meng Gedanken deelen. Als éischt muss et e bessere Wee sinn fir de Status ze verfolgen wat eng potenziell Zäitbomm ass. Mir mussen sécher sinn, datt mir eis net an enger Situatioun fannen, wou ee vun hinnen op eemol funktionnéiert. Mir schaffen nach un d'Detailer, awer op e Minimum musse mir all dës Saache berücksichtegen.

Zweetens brauche mir e Mechanismus fir séier Updates un d'Benotzer ze liwweren, och wann - besonnesch wann - alles anescht net funktionnéiert. Et war super datt mir de "Recherche" System benotze konnten, awer et ass net e perfekt Tool an huet e puer ongewollt Nebenwirkungen. Besonnesch wësse mir datt vill Benotzer automatesch Aktualiséierungen ageschalt hunn, awer si géifen léiwer net un der Fuerschung deelhuelen (ech ginn zou, ech hunn se och ausgeschalt!). Zur selwechter Zäit brauche mir e Wee fir Updates un d'Benotzer ze schécken, awer wat och ëmmer déi intern technesch Implementatioun, d'Benotzer sollten fäeg sinn op Updates ze abonnéieren (och Hot Fixes) awer opt aus alles anescht. Och den Updatekanal sollt méi reaktiounsfäeger sinn wéi et elo ass. Och de 6. Mee waren et nach ëmmer Benotzer déi weder vun der Fix nach vun der neier Versioun profitéiert hunn. Dëse Problem gouf scho geschafft, awer wat geschitt ass huet gewisen wéi wichteg et ass.

Schlussendlech wäerte mir d'Sécherheetsarchitektur vun den Add-ons kucken fir sécherzestellen datt et dee richtege Sécherheetsniveau mat minimalem Risiko ubitt fir eppes ze briechen.

D'nächst Woch kucke mir d'Resultater vun enger méi grëndlecher Analyse vun deem wat geschitt ass, awer mëttlerweil äntweren ech gären op Froen per E-Mail: [Email geschützt]

Source: linux.org.ru

Setzt e Commentaire