PiezÄ«me tulkotÄjs: lasÄ«tÄju ÄrtÄ«bÄm datumi norÄdÄ«ti pÄc Maskavas laika
MÄs nesen nokavÄjÄm viena sertifikÄta derÄ«guma termiÅu, kas tika izmantots pievienojumprogrammu parakstÄ«Å”anai. TÄ rezultÄtÄ lietotÄjiem tika atspÄjoti papildinÄjumi. Tagad, kad problÄma lielÄkoties ir novÄrsta, vÄlos padalÄ«ties ar notikuÅ”o un paveikto darbu.
PriekÅ”vÄsture: papildinÄjumi un paraksti
JÄbÅ«t instalÄtajiem papildinÄjumiem DigitÄlais paraksts, kas aizsargÄ lietotÄjus no ļaunprÄtÄ«gÄm pievienojumprogrammÄm un prasa minimÄlu Mozilla personÄla papildinÄjumu pÄrskatÄ«Å”anu. MÄs ieviesÄm Å”o prasÄ«bu 2015. gadÄ, jo piedzÄ«vojÄm nopietnas problÄmas ar ļaunprÄtÄ«giem papildinÄjumiem.
KÄ tas darbojas: katrÄ Firefox eksemplÄrÄ ir "saknes sertifikÄts". Å Ä«s āsaknesā atslÄga ir saglabÄta AparatÅ«ras droŔības modulis (HSM)bez piekļuves tÄ«klam. Ik pÄc dažiem gadiem ar Å”o atslÄgu tiek parakstÄ«ts jauns āstarpsertifikÄtsā, kas tiek izmantots pievienojumprogrammu parakstÄ«Å”anai. Kad izstrÄdÄtÄjs iesniedz papildinÄjumu, mÄs izveidojam pagaidu ābeigu sertifikÄtuā un parakstÄm to, izmantojot starpposma sertifikÄtu. PÄc tam pats papildinÄjums tiek parakstÄ«ts ar gala sertifikÄtu. Shematiski tas izskatÄs Å”Ädi.
LÅ«dzu, Åemiet vÄrÄ, ka katram sertifikÄtam ir "subjekts" (kam sertifikÄts tika izsniegts) un "izdevÄjs" (kurÅ” izsniedza sertifikÄtu). Saknes sertifikÄta gadÄ«jumÄ "subject" = "izdevÄjs", bet citiem sertifikÄtiem sertifikÄta izsniedzÄjs ir vecÄka sertifikÄta subjekts, ar kuru tas ir parakstÄ«ts.
SvarÄ«gs punkts: katrs papildinÄjums ir parakstÄ«ts ar unikÄlu beigu sertifikÄtu, taÄu gandrÄ«z vienmÄr Å”ie beigu sertifikÄti ir parakstÄ«ti ar vienu un to paÅ”u starpsertifikÄtu.
Autora piezÄ«me: IzÅÄmums ir ļoti veci papildinÄjumi. Tolaik tika izmantoti dažÄdi starpsertifikÄti.
Å is starpposma sertifikÄts radÄ«ja problÄmas: katrs sertifikÄts ir derÄ«gs noteiktu laiku. Pirms vai pÄc Ŕī perioda sertifikÄts ir nederÄ«gs, un pÄrlÅ«kprogramma neizmantos ar Å”o sertifikÄtu parakstÄ«tus papildinÄjumus. DiemžÄl starpapliecÄ«bas derÄ«guma termiÅÅ” beidzÄs 4. maijÄ pulksten 4 no rÄ«ta.
Sekas neparÄdÄ«jÄs uzreiz. Firefox nepÄrbauda instalÄto papildinÄjumu parakstus pastÄvÄ«gi, bet aptuveni reizi 24 stundÄs, un verifikÄcijas laiks katram lietotÄjam ir individuÄls. TÄ rezultÄtÄ dažiem cilvÄkiem problÄmas radÄs uzreiz, bet citiem daudz vÄlÄk. MÄs pirmo reizi uzzinÄjÄm par problÄmu ap laiku, kad beidzÄs sertifikÄta derÄ«guma termiÅÅ”, un nekavÄjoties sÄkÄm meklÄt risinÄjumu.
BojÄjumu samazinÄÅ”ana
Kad sapratÄm, kas noticis, centÄmies nepieļaut situÄcijas pasliktinÄÅ”anos.
PirmkÄrt, viÅi pÄrtrauca pieÅemt un parakstÄ«t jaunus papildinÄjumus. Å im nolÅ«kam nav jÄgas izmantot sertifikÄtu, kuram beidzies derÄ«guma termiÅÅ”. Atskatoties uz pagÄtni, es teiktu, ka varÄjÄm atstÄt visu, kÄ bija. Tagad esam atsÄkuÅ”i uztura bagÄtinÄtÄju pieÅemÅ”anu.
OtrkÄrt, viÅi nekavÄjoties izsÅ«tÄ«ja labojumu, kas neļÄva katru dienu pÄrbaudÄ«t parakstus. TÄdÄjÄdi mÄs saglabÄjÄm tos lietotÄjus, kuru pÄrlÅ«kprogramma pÄdÄjo XNUMX stundu laikÄ vÄl nebija paspÄjusi pÄrbaudÄ«t pievienojumprogrammas. Å is labojums tagad ir atsaukts un vairs nav vajadzÄ«gs.
ParalÄlÄ darbÄ«ba
TeorÄtiski problÄmas risinÄjums izskatÄs vienkÄrÅ”s: izveidojiet jaunu derÄ«gu starpsertifikÄtu un atkÄrtoti parakstiet katru papildinÄjumu. DiemžÄl tas nedarbosies:
- mÄs nevaram Ätri pÄrrakstÄ«t uzreiz 15 tÅ«kstoÅ”us papildinÄjumu, sistÄma nav paredzÄta Å”Ädai slodzei
- Kad esam parakstÄ«juÅ”i papildinÄjumus, atjauninÄtÄs versijas ir jÄpiegÄdÄ lietotÄjiem. LielÄkÄ daļa papildinÄjumu tiek instalÄti no Mozilla serveriem, tÄpÄc Firefox atradÄ«s atjauninÄjumus nÄkamo XNUMX stundu laikÄ, taÄu daži izstrÄdÄtÄji izplata parakstÄ«tos papildinÄjumus, izmantojot treÅ”o puÅ”u kanÄlus, tÄpÄc lietotÄjiem Å”Ädi papildinÄjumi bÅ«tu jÄatjaunina manuÄli.
TÄ vietÄ mÄs centÄmies izstrÄdÄt labojumu, kas sasniegtu visus lietotÄjus, neprasot viÅiem daudz vai nekÄdas darbÄ«bas.
Diezgan Ätri mÄs nonÄcÄm pie divÄm galvenajÄm stratÄÄ£ijÄm, kuras izmantojÄm paralÄli:
- Atjauniniet Firefox, lai mainÄ«tu sertifikÄta derÄ«guma termiÅu. TÄdÄjÄdi esoÅ”ie papildinÄjumi atkal maÄ£iski darbosies, taÄu bÅ«s jÄizlaiž un jÄnosÅ«ta jauna Firefox versija.
- Ä¢enerÄjiet derÄ«gu sertifikÄtu un kaut kÄdÄ veidÄ pÄrlieciniet Firefox pieÅemt to esoÅ”Ä sertifikÄta vietÄ, kuram ir beidzies derÄ«guma termiÅÅ”
MÄs nolÄmÄm vispirms izmantot pirmo iespÄju, kas izskatÄ«jÄs diezgan praktiski. Dienas beigÄs viÅi izlaida otru labojumu (jaunu sertifikÄtu), par kuru mÄs runÄsim vÄlÄk.
SertifikÄta aizstÄÅ”ana
KÄ jau minÄju iepriekÅ”, tas bija nepiecieÅ”ams:
- izveidot jaunu derÄ«gu sertifikÄtu
- instalÄjiet to attÄlinÄti pÄrlÅ«kprogrammÄ Firefox
Lai saprastu, kÄpÄc tas darbojas, sÄ«kÄk apskatÄ«sim pievienojumprogrammas verifikÄcijas procesu. Pati pievienojumprogramma ir failu kopa, tostarp parakstÄ«Å”anai izmantoto sertifikÄtu Ä·Äde. RezultÄtÄ pievienojumprogrammu var pÄrbaudÄ«t, ja pÄrlÅ«kprogramma zina saknes sertifikÄtu, kas ir iebÅ«vÄts Firefox izveides laikÄ. TaÄu, kÄ jau zinÄm, starpposma sertifikÄtam ir beidzies derÄ«guma termiÅÅ”, tÄpÄc nav iespÄjams pÄrbaudÄ«t papildinÄjumu.
Kad Firefox mÄÄ£ina pÄrbaudÄ«t pievienojumprogrammu, tas neaprobežojas tikai ar paÅ”Ä papildinÄjumÄ esoÅ”o sertifikÄtu izmantoÅ”anu. TÄ vietÄ pÄrlÅ«kprogramma mÄÄ£ina izveidot derÄ«gu sertifikÄtu Ä·Ädi, sÄkot ar beigu sertifikÄtu un turpinot, lÄ«dz tas nonÄk saknÄ. PirmajÄ lÄ«menÄ« mÄs sÄkam ar beigu sertifikÄtu un pÄc tam atrodam sertifikÄtu, kura priekÅ”mets ir beigu sertifikÄta (tas ir, starpsertifikÄta) izsniedzÄjs. Parasti Å”is starpposma sertifikÄts tiek piegÄdÄts kopÄ ar papildinÄjumu, taÄu jebkurÅ” sertifikÄts no pÄrlÅ«kprogrammas krÄtuves var kalpot arÄ« kÄ Å”is starpsertifikÄts. Ja mÄs varam attÄlinÄti pievienot jaunu derÄ«gu sertifikÄtu sertifikÄtu krÄtuvei, Firefox mÄÄ£inÄs to izmantot. SituÄcija pirms un pÄc jauna sertifikÄta instalÄÅ”anas.
PÄc jaunÄ sertifikÄta instalÄÅ”anas pÄrlÅ«kprogrammai Firefox bÅ«s divas iespÄjas, pÄrbaudot sertifikÄtu Ä·Ädi: izmantot veco nederÄ«go sertifikÄtu (kas nedarbosies) vai jauno derÄ«go sertifikÄtu (kas darbosies). Ir svarÄ«gi, lai jaunajÄ sertifikÄtÄ bÅ«tu tÄds pats priekÅ”meta nosaukums un publiskÄ atslÄga kÄ vecajam sertifikÄtam, tÄpÄc tÄ paraksts uz gala sertifikÄta bÅ«s derÄ«gs. Firefox ir pietiekami gudrs, lai izmÄÄ£inÄtu abas iespÄjas, lÄ«dz atrod vienu, kas darbojas, tÄpÄc pievienojumprogrammas tiek pÄrbaudÄ«tas vÄlreiz. Å emiet vÄrÄ, ka Ŕī ir tÄ pati loÄ£ika, ko izmantojam TLS sertifikÄtu apstiprinÄÅ”anai.
Autora piezÄ«me. LasÄ«tÄji, kas pÄrzina WebPKI, ievÄros, ka savstarpÄjie sertifikÄti darbojas tieÅ”i tÄpat.
LieliskÄ Å”Ä« labojuma priekÅ”rocÄ«ba ir tÄ, ka nav nepiecieÅ”ams atkÄrtoti parakstÄ«t esoÅ”os papildinÄjumus. TiklÄ«dz pÄrlÅ«kprogramma saÅems jauno sertifikÄtu, visi papildinÄjumi atkal darbosies. AtlikuÅ”ais izaicinÄjums ir nodroÅ”inÄt jauno sertifikÄtu lietotÄjiem (automÄtiski un attÄlinÄti), kÄ arÄ« panÄkt, lai Firefox atkÄrtoti pÄrbaudÄ«tu atspÄjotos papildinÄjumus.
Normandija un pÄtniecÄ«bas sistÄma
Ironiski, ka Å”o problÄmu atrisina Ä«paÅ”s papildinÄjums, ko sauc par āsistÄmuā. Lai veiktu pÄtÄ«jumus, mÄs izstrÄdÄjÄm sistÄmu ar nosaukumu Normandija, kas lietotÄjiem nodroÅ”ina pÄtÄ«jumus. Å ie pÄtÄ«jumi tiek automÄtiski veikti pÄrlÅ«kprogrammÄ, un tiem ir uzlabota piekļuve Firefox iekÅ”ÄjÄm API. PÄtÄ«jumi var pievienot jaunus sertifikÄtus sertifikÄtu krÄtuvei.
Autora piezÄ«me: MÄs nepievienojam sertifikÄtu ar Ä«paÅ”Äm privilÄÄ£ijÄm; to paraksta saknes sertifikÄts, tÄpÄc Firefox tam uzticas. MÄs vienkÄrÅ”i pievienojam to sertifikÄtu kopumam, ko var izmantot pÄrlÅ«kprogramma.
TÄtad risinÄjums ir izveidot pÄtÄ«jumu:
- instalÄjot jauno sertifikÄtu, ko izveidojÄm lietotÄjiem
- piespiežot pÄrlÅ«kprogrammu atkÄrtoti pÄrbaudÄ«t atspÄjotos papildinÄjumus, lai tie atkal darbotos
"Bet pagaidiet," jÅ«s sakÄt, "papildinÄjumi nedarbojas, kÄ es varu palaist sistÄmas papildinÄjumu?" ParakstÄ«sim to ar jaunu sertifikÄtu!
Saliekot to visu kopÄ... kÄpÄc tas prasa tik ilgu laiku?
TÄtad, plÄns: izsniedziet jaunu sertifikÄtu, lai aizstÄtu veco, izveidojiet sistÄmas papildinÄjumu un instalÄjiet to lietotÄjiem caur Normandiju. ProblÄmas, kÄ jau teicu, sÄkÄs 4. maijÄ pulksten 4:00, un jau tajÄ paÅ”Ä dienÄ pulksten 12:44, nepilnas 9 stundas vÄlÄk, mÄs nosÅ«tÄ«jÄm labojumu uz Normandiju. PagÄja vÄl 6ā12 stundas, lÄ«dz tas sasniedza visus lietotÄjus. Nemaz nav slikti, bet cilvÄki Twitter jautÄ, kÄpÄc mÄs nevarÄjÄm rÄ«koties ÄtrÄk.
PirmkÄrt, pagÄja laiks, lai izsniegtu jaunu starpposma sertifikÄtu. KÄ jau minÄju iepriekÅ”, saknes sertifikÄta atslÄga tiek saglabÄta bezsaistÄ aparatÅ«ras droŔības modulÄ«. Tas ir labi no droŔības viedokļa, jo sakne tiek izmantota ļoti reti un tai jÄbÅ«t droÅ”i aizsargÄtai, taÄu tas ir nedaudz neÄrti, ja jums steidzami jÄparaksta jauns sertifikÄts. Vienam no mÅ«su inženieriem bija jÄbrauc uz HSM noliktavu. PÄc tam bija neveiksmÄ«gi mÄÄ£inÄjumi izsniegt pareizo sertifikÄtu, un katrs mÄÄ£inÄjums maksÄja vienu vai divas pÄrbaudes stundas.
OtrkÄrt, sistÄmas papildinÄjuma izstrÄde prasÄ«ja zinÄmu laiku. KonceptuÄli tas ir ļoti vienkÄrÅ”i, taÄu pat vienkÄrÅ”Äm programmÄm ir nepiecieÅ”ama aprÅ«pe. MÄs vÄlÄjÄmies pÄrliecinÄties, ka nepasliktinÄsim situÄciju. Pirms nosÅ«tÄ«Å”anas lietotÄjiem pÄtÄ«jumi ir jÄpÄrbauda. TurklÄt pievienojumprogramma ir jÄparaksta, taÄu mÅ«su papildinÄjumu parakstÄ«Å”anas sistÄma tika atspÄjota, tÄpÄc mums bija jÄatrod risinÄjums.
Visbeidzot, kad izpÄte bija gatava iesniegÅ”anai, izvietoÅ”ana prasÄ«ja laiku. PÄrlÅ«kprogramma pÄrbauda Normandijas atjauninÄjumus ik pÄc 6 stundÄm. Ne visi datori vienmÄr ir ieslÄgti un savienoti ar internetu, tÄpÄc paies laiks, lÄ«dz labojums tiks izplatÄ«ts lietotÄjiem.
PÄdÄjie soļi
PÄtÄ«jumam vajadzÄtu atrisinÄt problÄmu lielÄkajai daļai lietotÄju, taÄu tas nav pieejams visiem. Dažiem lietotÄjiem nepiecieÅ”ama Ä«paÅ”a pieeja:
- lietotÄjiem, kuri ir atspÄjojuÅ”i pÄtniecÄ«bu vai telemetriju
- Android versijas (Fennec) lietotÄji, kur pÄtÄ«jumi vispÄr netiek atbalstÄ«ti
- Firefox ESR pielÄgoto bÅ«vÄjumu lietotÄji uzÅÄmumos, kuros telemetriju nevar iespÄjot
- lietotÄji, kas sÄž aiz MitM starpniekserveriem, jo āāmÅ«su pievienojumprogrammu instalÄÅ”anas sistÄma izmanto atslÄgu piesprauÅ”anu, kas nedarbojas ar Å”Ädiem starpniekserveriem
- mantoto Firefox versiju lietotÄji, kas neatbalsta izpÄti
Ar pÄdÄjo lietotÄju kategoriju mÄs neko nevaram darÄ«t ā viÅiem tomÄr vajadzÄtu atjauninÄt uz jauno Firefox versiju, jo novecojuÅ”ajÄm ir nopietnas neaizlÄptas ievainojamÄ«bas. MÄs zinÄm, ka daži cilvÄki izmanto vecÄkas Firefox versijas, jo vÄlas palaist vecus papildinÄjumus, taÄu daudzi vecie papildinÄjumi jau ir pÄrnesti uz jaunÄkÄm pÄrlÅ«kprogrammas versijÄm. Citiem lietotÄjiem esam izstrÄdÄjuÅ”i ielÄpu, kas instalÄs jaunu sertifikÄtu. Tas tika izlaists kÄ kļūdu labojuma laidiens (tulkotÄja piezÄ«me: Firefox 66.0.5), tÄpÄc cilvÄki to saÅems ā visticamÄk, jau ir ieguvuÅ”i ā, izmantojot parasto atjauninÄÅ”anas kanÄlu. Ja izmantojat pielÄgotu Firefox ESR bÅ«vÄjumu, lÅ«dzu, sazinieties ar savu uzturÄtÄju.
MÄs saprotam, ka tas nav ideÄli. Dažos gadÄ«jumos lietotÄji zaudÄja pievienojumprogrammas datus (piemÄram, pievienojumprogrammas datus VairÄku kontu konteineri).
No Ŕīs blakusparÄdÄ«bas nevarÄja izvairÄ«ties, taÄu mÄs uzskatÄm, ka Ä«stermiÅÄ esam izvÄlÄjuÅ”ies labÄko risinÄjumu lielÄkajai daļai lietotÄju. IlgtermiÅÄ mÄs meklÄsim citas, progresÄ«vÄkas arhitektÅ«ras pieejas.
Nodarbības
PirmkÄrt, mÅ«su komanda paveica pÄrsteidzoÅ”u darbu, izveidojot un nosÅ«tot labojumu mazÄk nekÄ 12 stundu laikÄ pÄc problÄmas atklÄÅ”anas. KÄ cilvÄks, kurÅ” apmeklÄja sanÄksmes, varu teikt, ka Å”ajÄ sarežģītajÄ situÄcijÄ cilvÄki strÄdÄja ļoti smagi un tika iztÄrÄts ļoti maz laika.
AcÄ«mredzot nekam no tÄ vispÄr nevajadzÄja notikt. Noteikti ir vÄrts pielÄgot mÅ«su procesus, lai samazinÄtu Å”Ädu incidentu iespÄjamÄ«bu un atvieglotu atlÄ«dzinÄÅ”anu.
NÄkamnedÄļ mÄs publicÄsim oficiÄlu pÄcnÄves ziÅojumu un to izmaiÅu sarakstu, kuras plÄnojam veikt. PagaidÄm padalÄ«Å”os ar savÄm domÄm. PirmkÄrt, ir jÄbÅ«t labÄkam veidam, kÄ pÄrraudzÄ«t potenciÄlÄs bumbas ar laika degli. Mums ir jÄbÅ«t pÄrliecinÄtiem, ka nenonÄkam situÄcijÄ, kad kÄds no tiem pÄkÅ”Åi iedarbojas. MÄs joprojÄm izstrÄdÄjam detaļas, bet vismaz ir jÄÅem vÄrÄ visas Å”Ädas lietas.
OtrkÄrt, mums ir nepiecieÅ”ams mehÄnisms, lai lietotÄjiem Ätri piegÄdÄtu atjauninÄjumus pat tad, ja ā it Ä«paÅ”i, ja viss pÄrÄjais neizdodas. Tas bija lieliski, ka varÄjÄm izmantot "pÄtÄ«jumu" sistÄmu, taÄu tas ir nepilnÄ«gs rÄ«ks un tam ir dažas nevÄlamas blakusparÄdÄ«bas. Jo Ä«paÅ”i mÄs zinÄm, ka daudziem lietotÄjiem ir ieslÄgti automÄtiskie atjauninÄjumi, taÄu viÅi nevÄlÄtos piedalÄ«ties pÄtÄ«jumos (atzÄ«stu, ka arÄ« man tie ir izslÄgti!). TajÄ paÅ”Ä laikÄ mums ir nepiecieÅ”ams veids, kÄ lietotÄjiem nosÅ«tÄ«t atjauninÄjumus, taÄu neatkarÄ«gi no iekÅ”ÄjÄs tehniskÄs ievieÅ”anas lietotÄjiem vajadzÄtu bÅ«t iespÄjai abonÄt atjauninÄjumus (tostarp karstos labojumus), bet atteikties no visa pÄrÄjÄ. TurklÄt atjauninÄÅ”anas kanÄlam vajadzÄtu bÅ«t atsaucÄ«gÄkam nekÄ paÅ”laik. Pat 6. maijÄ joprojÄm bija lietotÄji, kuri neizmantoja ne labojuma, ne jaunÄs versijas priekÅ”rocÄ«bas. Pie Ŕīs problÄmas jau ir strÄdÄts, taÄu notikuÅ”ais parÄdÄ«ja, cik tÄ ir svarÄ«ga.
Visbeidzot, mÄs sÄ«kÄk aplÅ«kosim papildinÄjuma droŔības arhitektÅ«ru, lai pÄrliecinÄtos, ka tas nodroÅ”ina pareizo droŔības lÄ«meni ar minimÄlu risku kaut ko uzlauzt.
NÄkamnedÄļ apskatÄ«sim notikuÅ”Ä rÅ«pÄ«gÄkas analÄ«zes rezultÄtus, bet tikmÄr labprÄt atbildÄÅ”u uz jautÄjumiem pa e-pastu: [e-pasts aizsargÄts]
Avots: linux.org.ru