Mga teknikal nga detalye sa bag-o nga pag-disable sa mga add-on sa Firefox

Nota tighubad: alang sa kasayon ​​sa mga magbabasa, ang mga petsa gihatag sa panahon sa Moscow

Bag-ohay lang ming gimingaw ang pag-expire sa usa sa mga sertipiko nga gigamit sa pagpirma sa mga add-on. Kini miresulta sa mga add-on nga na-disable alang sa mga tiggamit. Karon nga ang problema kadaghanan naayo na, gusto nakong ipaambit ang mga detalye kung unsa ang nahitabo ug ang trabaho nga nahimo.

Background: mga pagdugang ug mga pirma

Bisan kung daghang mga tawo ang naggamit sa browser nga wala sa kahon, gisuportahan sa Firefox ang mga extension nga gitawag nga "mga add-on." Uban sa ilang tabang, ang mga tiggamit nagdugang lainlaing mga bahin sa browser. Adunay sobra sa 15 ka libo nga mga add-on: gikan sa pag-block sa ad sa pagdumala sa gatusan ka mga tab.

Ang mga na-install nga mga add-on kinahanglan adunay digital nga pirma, nga nanalipod sa mga tiggamit gikan sa malisyosong mga add-on ug nagkinahanglan og gamay nga pagrepaso sa mga add-on sa mga kawani sa Mozilla. Gipaila namo kini nga kinahanglanon sa 2015 tungod kay nasinati namo seryoso nga mga problema uban sa malisyosong mga add-on.

Giunsa kini pagtrabaho: Ang matag kopya sa Firefox adunay "root certificate". Ang yawe niini nga "gamut" gitipigan sa Hardware Security Module (HSM)walay access sa network. Matag pipila ka tuig, usa ka bag-ong "intermediate certificate" ang gipirmahan uban niini nga yawe, nga gigamit sa pagpirma sa mga add-on. Kung ang usa ka developer nagsumite usa ka add-on, maghimo kami usa ka temporaryo nga "end certificate" ug pirmahan kini gamit ang usa ka intermediate nga sertipiko. Ang add-on mismo gipirmahan sa katapusang sertipiko. Sa eskematiko murag mao ni.

Palihug timan-i nga ang matag sertipiko adunay usa ka "subject" (kang kinsa ang sertipiko gi-isyu) ug usa ka "issuer" (nga nag-isyu sa sertipiko). Sa kaso sa usa ka gamut nga sertipiko, "subject" = "issuer", apan alang sa ubang mga sertipiko, ang nag-isyu sa sertipiko mao ang hilisgutan sa sertipiko sa ginikanan diin kini gipirmahan.

Usa ka importante nga punto: ang matag add-on gipirmahan sa usa ka talagsaon nga sertipiko sa katapusan, apan hapit kanunay kini nga mga sertipiko sa katapusan gipirmahan sa parehas nga intermediate nga sertipiko.

Mubo nga sulat sa tagsulat: Ang eksepsiyon kay karaan kaayo nga mga pagdugang. Niadtong panahona, lainlain nga intermediate nga mga sertipiko ang gigamit.

Kini nga intermediate nga sertipiko nagpahinabog mga problema: ang matag sertipiko balido sa usa ka piho nga panahon. Sa wala pa o pagkahuman niini nga panahon, ang sertipiko dili balido ug ang browser dili mogamit mga add-on nga gipirmahan sa kini nga sertipiko. Ikasubo, ang intermediate certificate na-expire niadtong Mayo 4 sa alas 4 sa buntag.

Ang mga sangputanan wala dayon makita. Ang Firefox wala magsusi sa mga pirma sa mga na-install nga mga add-on kanunay, apan gibana-bana nga kausa sa matag 24 ka oras, ug ang oras sa pag-verify indibidwal alang sa matag tiggamit. Ingon nga resulta, ang pipila ka mga tawo nakasinati dayon og mga problema, samtang ang uban nakasinati og mga problema sa ulahi. Una namong nahibal-an ang problema sa panahon nga na-expire ang sertipiko ug nagsugod dayon sa pagpangita og solusyon.

Pagpakunhod sa kadaot

Sa dihang naamgohan na namo ang nahitabo, among gisulayan ang pagpugong sa sitwasyon nga mograbe.

Una, mihunong sila sa pagdawat ug pagpirma sa bag-ong mga pagdugang. Walay kapuslanan ang paggamit sa usa ka expired nga sertipiko alang niini. Sa paghinumdom, makaingon ko nga mahimo namong biyaan ang tanan nga ingon niini. Nagpadayon kami karon sa pagdawat sa mga suplemento.

Ikaduha, nagpadala dayon sila og ayo nga nagpugong sa mga pirma nga susihon matag adlaw. Sa ingon, among giluwas ang mga tiggamit kansang browser wala pa’y oras sa pagsusi sa mga add-on sa miaging 24 ka oras. Kini nga pag-ayo gibawi na karon ug dili na kinahanglan.

Parallel nga operasyon

Sa teorya, ang solusyon sa problema morag yano: paghimo og bag-ong balido nga intermediate nga sertipiko ug pagpirma pag-usab sa matag add-on. Ikasubo nga kini dili molihok:

  • dili dayon kami makapirma pag-usab sa 15 ka libo nga mga add-on sa usa ka higayon, ang sistema wala gidisenyo alang sa ingon nga load
  • Human namo pirmahan ang mga pagdugang, ang na-update nga mga bersyon kinahanglang ipadala ngadto sa mga tiggamit. Kadaghanan sa mga add-on gi-install gikan sa mga server sa Mozilla, mao nga ang Firefox makit-an ang mga update sa sunod nga 24 ka oras, apan ang pipila nga mga developer nag-apod-apod sa mga gipirmahan nga mga add-on pinaagi sa mga third-party nga channel, aron ang mga tiggamit kinahanglan nga mag-update sa ingon nga mga add-on nga mano-mano.

Hinuon, gisulayan namon ang paghimo og usa ka pag-ayo nga makaabot sa tanan nga mga tiggamit nga wala magkinahanglan og daghan o walay aksyon sa ilang bahin.

Dali ra nga nakaabut kami sa duha ka panguna nga mga estratehiya, nga parehas namon gigamit:

  • I-update ang Firefox aron mabag-o ang panahon sa validity sa sertipiko. Kini maghimo sa kasamtangan nga mga add-on nga magically magtrabaho pag-usab, apan magkinahanglan sa pagpagawas ug pagpadala sa usa ka bag-ong build sa Firefox
  • Paghimo usa ka balido nga sertipiko ug sa usa ka paagi kombinsihon ang Firefox nga dawaton kini imbis sa naglungtad nga usa nga na-expire na

Nakahukom kami nga gamiton una ang una nga kapilian, nga tan-awon nga magamit. Sa katapusan sa adlaw, gipagawas nila ang usa ka ikaduha nga pag-ayo (usa ka bag-ong sertipiko), nga atong hisgutan sa ulahi.

Pag-ilis sa usa ka sertipiko

Sama sa akong gihisgutan sa ibabaw, gikinahanglan kini:

  • paghimo og bag-ong balido nga sertipiko
  • i-install kini sa layo sa Firefox

Aron masabtan kung ngano nga kini molihok, atong tan-awon pag-ayo ang proseso sa pag-verify sa pagdugang. Ang add-on mismo moabut ingon usa ka set sa mga file, lakip ang usa ka kadena sa mga sertipiko nga gigamit alang sa pagpirma. Ingon usa ka sangputanan, ang add-on mahimong mapamatud-an kung nahibal-an sa browser ang root certificate, nga gitukod sa Firefox sa oras sa pagtukod. Bisan pa, ingon sa nahibal-an na naton, ang intermediate nga sertipiko na-expire na, mao nga imposible nga ma-verify ang add-on.

Kung ang Firefox mosulay sa pag-verify sa usa ka add-on, kini dili limitado sa paggamit sa mga sertipiko nga anaa sulod sa add-on mismo. Hinunoa, ang browser naningkamot sa paghimo sa usa ka balido nga kadena sa sertipiko, sugod sa katapusan nga sertipiko ug nagpadayon hangtud nga kini moabut sa gamut. Sa una nga lebel, magsugod kami sa sertipiko sa katapusan ug dayon pangitaon ang sertipiko kansang hilisgutan mao ang nag-isyu sa sertipiko sa katapusan (nga mao, ang intermediate nga sertipiko). Kasagaran kini nga intermediate nga sertipiko gihatag uban ang add-on, apan bisan unsang sertipiko gikan sa pagtipig sa browser mahimo usab nga magsilbi nga kini nga intermediate nga sertipiko. Kung mahimo namong idugang sa layo ang usa ka bag-ong balido nga sertipiko sa tindahan sa sertipiko, ang Firefox mosulay sa paggamit niini. Ang kahimtang sa wala pa ug pagkahuman sa pag-instalar sa usa ka bag-ong sertipiko.

Human ma-install ang bag-ong sertipiko, ang Firefox adunay duha ka kapilian sa pag-validate sa kadena sa sertipiko: gamita ang daan nga dili balido nga sertipiko (nga dili molihok) o ang bag-ong balido nga sertipiko (nga magamit). Mahinungdanon nga ang bag-ong sertipiko adunay parehas nga ngalan sa hilisgutan ug yawe sa publiko sama sa daan nga sertipiko, aron ang pirma niini sa katapusang sertipiko mahimong balido. Ang Firefox adunay igong kaalam aron sulayan ang duha nga mga kapilian hangtod makit-an ang usa nga molihok, aron ang mga add-on masulayan pag-usab. Timan-i nga kini ang parehas nga lohika nga among gigamit sa pag-validate sa mga sertipiko sa TLS.

Mubo nga sulat sa Awtor: Ang mga magbabasa nga pamilyar sa WebPKI makamatikod nga ang mga cross-certificate nagtrabaho sa parehas nga paagi.

Ang maayo nga butang bahin sa kini nga pag-ayo mao nga wala nimo kinahanglan nga pirmahan pag-usab ang mga naa na nga mga add-on. Sa diha nga ang browser makadawat sa bag-ong sertipiko, ang tanan nga mga add-on molihok pag-usab. Ang nahabilin nga hagit mao ang paghatud sa bag-ong sertipiko sa mga tiggamit (awtomatiko ug layo), ingon man ang pagkuha sa Firefox nga susihon pag-usab ang mga disabled nga mga add-on.

Normandy ug ang sistema sa panukiduki

Katingad-an, kini nga problema masulbad pinaagi sa usa ka espesyal nga add-on nga gitawag nga "sistema". Aron makahimo og panukiduki, naghimo kami og sistema nga gitawag og Normandy nga naghatod og panukiduki ngadto sa mga tiggamit. Kini nga mga pagtuon awtomatik nga gihimo sa browser, ug nakapauswag sa pag-access sa mga internal nga API sa Firefox. Ang panukiduki makadugang ug bag-ong mga sertipiko sa tindahan sa sertipiko.

Mubo nga sulat sa tagsulat: Wala kami magdugang usa ka sertipiko nga adunay bisan unsang espesyal nga mga pribilehiyo; kini gipirmahan sa root certificate, mao nga ang Firefox misalig niini. Gidugang ra namo kini sa pool sa mga sertipiko nga magamit sa browser.

Busa ang solusyon mao ang paghimo og pagtuon:

  • pag-instalar sa bag-ong sertipiko nga among gihimo alang sa mga tiggamit
  • pagpugos sa browser nga susihon pag-usab ang mga disabled nga mga add-on aron kini molihok pag-usab

"Apan paghulat," ingon nimo, "ang mga add-on dili molihok, unsaon nako paglansad ang usa ka add-on sa sistema?" Pirmahan nato kini gamit ang bag-ong sertipiko!

Ang paghiusa sa tanan... nganong nagdugay man?

Busa, ang plano: pag-isyu og bag-ong sertipiko aron mapulihan ang daan, paghimo og sistema nga add-on ug i-install kini sa mga tiggamit pinaagi sa Normandy. Ang mga problema, sama sa akong giingon, nagsugod sa Mayo 4 sa 4:00, ug na sa 12:44 sa samang adlaw, wala pay 9 ka oras, nagpadala kami og usa ka fix sa Normandy. Nagkinahanglan og laing 6-12 ka oras aron maabot kini sa tanang tiggamit. Dili daotan, apan ang mga tawo sa Twitter nangutana kung ngano nga dili kami makalihok nga mas paspas.

Una, nagkinahanglag panahon sa pag-isyu og bag-ong intermediate nga sertipiko. Sama sa akong gihisgutan sa ibabaw, ang yawe sa root certificate gitipigan offline sa hardware security module. Maayo kini gikan sa usa ka punto sa seguridad, tungod kay ang gamut gigamit nga panagsa ra ug kinahanglan nga masaligan nga mapanalipdan, apan kini gamay nga dili kombenyente kung kinahanglan nimo nga dali nga mopirma sa usa ka bag-ong sertipiko. Usa sa among mga inhenyero kinahanglang mobiyahe ngadto sa pasilidad sa pagtipig sa HSM. Unya adunay mga wala molampos nga pagsulay sa pag-isyu sa husto nga sertipiko, ug ang matag pagsulay nagkantidad ug usa o duha ka oras nga gigugol sa pagsulay.

Ikaduha, ang pag-uswag sa add-on sa sistema nagdugay. Sa konsepto kini yano ra kaayo, apan bisan ang yano nga mga programa nanginahanglan pag-atiman. Gusto namong siguroon nga dili na namo mograbe ang sitwasyon. Kinahanglang sulayan ang panukiduki sa dili pa ipadala sa mga tiggamit. Dugang pa, ang add-on kinahanglan nga pirmahan, apan ang among add-on nga sistema sa pagpirma gi-disable, mao nga kinahanglan namon nga mangita usa ka solusyon.

Sa katapusan, kung andam na kami sa panukiduki alang sa pagsumite, ang pag-deploy nagdugay. Gisusi sa browser ang mga update sa Normandy matag 6 ka oras. Dili tanan nga mga kompyuter kanunay nga on ug konektado sa Internet, mao nga magkinahanglan kini og panahon aron ang pag-ayo mokaylap sa mga tiggamit.

Katapusan nga mga lakang

Ang panukiduki kinahanglan nga ayohon ang problema alang sa kadaghanan sa mga tiggamit, apan dili magamit sa tanan. Ang ubang mga tiggamit nanginahanglan usa ka espesyal nga pamaagi:

  • mga tiggamit nga adunay kakulangan sa panukiduki o telemetry
  • tiggamit sa Android nga bersyon (Fennec), diin ang panukiduki wala gisuportahan sa tanan
  • tiggamit sa custom nga pagtukod sa Firefox ESR sa mga negosyo diin ang telemetry dili mahimo
  • mga tiggamit nga naglingkod sa luyo sa mga proxy sa MitM, tungod kay ang among add-on nga sistema sa pag-install naggamit sa yawe nga pinning, nga dili molihok sa ingon nga mga proxy
  • tiggamit sa kabilin nga mga bersyon sa Firefox nga wala mosuporta sa panukiduki

Wala kami'y mahimo bahin sa ulahi nga kategorya sa mga tiggamit - kinahanglan nga mag-update gihapon sila sa bag-ong bersyon sa Firefox, tungod kay ang mga karaan na adunay grabe nga wala’y patch nga mga kahuyangan. Nahibal-an namon nga ang pipila ka mga tawo nagpabilin sa mga daan nga bersyon sa Firefox tungod kay gusto nila nga magpadagan sa mga daan nga add-on, apan daghan sa mga karaan nga add-on na-port na sa mas bag-ong mga bersyon sa browser. Alang sa ubang mga tiggamit, naghimo kami usa ka patch nga mag-install usa ka bag-ong sertipiko. Gipagawas kini isip pagpagawas sa bugfix (nota sa tighubad: Firefox 66.0.5), aron makuha kini sa mga tawo - lagmit nakuha na kini - pinaagi sa regular nga channel sa pag-update. Kung naggamit ka usa ka naandan nga pagtukod sa Firefox ESR, palihug kontaka ang imong tigmentinar.

Atong nasabtan nga kini dili maayo. Sa pipila ka mga kaso, ang mga tiggamit nawad-an sa add-on nga data (pananglitan, add-on data Mga container nga Daghang Account).

Kini nga epekto dili malikayan, apan kami nagtuo nga sa mubo nga termino gipili namo ang pinakamaayo nga solusyon alang sa kadaghanan sa mga tiggamit. Sa taas nga termino, mangita kami alang sa uban pa, mas abante nga mga pamaagi sa arkitektura.

Ang mga leksyon

Una, ang among team nakahimo og talagsaon nga trabaho sa paghimo ug pagpadala og ayuhon sa wala pay 12 ka oras human madiskubre ang isyu. Ingong usa nga mitambong sa mga tigom, makaingon ko nga niining lisod nga kahimtang ang mga tawo nagtrabaho pag-ayo ug gamay ra nga panahon ang nausik.

Dayag nga walay usa niini nga angay mahitabo. Klaro nga angayan nga i-adjust ang atong mga proseso aron mamenosan ang posibilidad sa maong mga insidente ug mas sayon ​​ang remediation.

Sa sunod semana magmantala mi og opisyal nga post-mortem ug listahan sa mga kausaban nga among tuyo nga buhaton. Sa pagkakaron, akong ipaambit ang akong mga hunahuna. Una, kinahanglan adunay usa ka mas maayo nga paagi sa pag-monitor sa kahimtang sa kung unsa ang usa ka potensyal nga bomba sa oras. Kinahanglang siguroon nato nga dili nato makita ang atong kaugalingon sa usa ka sitwasyon diin ang usa kanila kalit nga nagtrabaho. Nagtrabaho pa kami sa mga detalye, apan sa labing gamay, kinahanglan nga tagdon ang tanan nga mga butang.

Ikaduha, nanginahanglan kami usa ka mekanismo aron dali nga mahatag ang mga update sa mga tiggamit, bisan kung—ilabi na kung—napakyas ang tanan. Nindot kaayo nga nakagamit kami sa "research" nga sistema, apan kini usa ka dili hingpit nga himan ug adunay pipila nga dili gusto nga mga epekto. Sa partikular, nahibal-an namon nga daghang mga tiggamit ang adunay awtomatikong pag-update nga gi-on, apan gusto nga dili moapil sa panukiduki (ako nga giangkon, gipalong ko usab sila!). Sa parehas nga oras, kinahanglan namon ang usa ka paagi aron ipadala ang mga update sa mga tiggamit, apan bisan unsa ang internal nga teknikal nga pagpatuman, ang mga tiggamit kinahanglan nga maka-subscribe sa mga update (lakip ang mga mainit nga pag-ayo) apan dili mopili sa tanan. Dugang pa, ang channel sa pag-update kinahanglan nga labi ka matubag kaysa sa karon. Bisan sa Mayo 6, adunay mga tiggamit nga wala magpahimulos sa bisan unsang pag-ayo o bag-ong bersyon. Nasulbad na kini nga problema, apan ang nahitabo nagpakita kung unsa kini ka hinungdanon.

Sa katapusan, atong tan-awon pag-ayo ang arkitektura sa seguridad sa add-on aron masiguro nga naghatag kini sa husto nga lebel sa seguridad nga adunay gamay nga peligro nga makaguba sa bisan unsang butang.

Sa sunod semana atong tan-awon ang mga resulta sa mas bug-os nga pagtuki sa nahitabo, apan sa kasamtangan malipay ko nga motubag sa mga pangutana pinaagi sa email: [protektado sa email]

Source: linux.org.ru

Idugang sa usa ka comment