{"id":33377,"date":"2019-10-31T21:52:15","date_gmt":"2019-10-31T18:52:15","guid":{"rendered":"https:\/\/prohoster.info\/blog\/tehnicheskie-podrobnosti-nedavnego-otklyucheniya-dopolnenij-v-firefox\/"},"modified":"2019-10-31T21:52:15","modified_gmt":"2019-10-31T18:52:15","slug":"tehnicheskie-podrobnosti-nedavnego-otklyucheniya-dopolnenij-v-firefox","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/news\/tehnicheskie-podrobnosti-nedavnego-otklyucheniya-dopolnenij-v-firefox","title":{"rendered":"Detalii tehnice despre recentul dezactiv\u0103ri a extensiilor \u00een Firefox","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Nota translatorului: pentru comoditatea cititorilor, datele sunt prezentate pe ora Moscovei<\/i><\/p>\n<p>Recent, am ratat momentul expir\u0103rii uneia dintre certific\u0103rile utilizate pentru semnarea extensiilor. Acest lucru a dus la dezactivarea extensiilor pentru utilizatori. Acum, c\u00e2nd problema a fost \u00een mare parte remediat\u0103, a\u0219 dori s\u0103 vorbesc despre detaliile \u00eent\u00e2mplate \u0219i despre munca depus\u0103.\n<\/p>\n<p><b>Subiect: extensii \u0219i semn\u0103turi<\/b><\/p>\n<p><noindex>De\u0219i mul\u021bi folosesc browserul &#171;din cutie&#187;, Firefox suport\u0103 extensii numite &#171;complemente&#187;. Acestea permit utilizatorilor s\u0103 adauge diverse func\u021bionalit\u0103\u021bi browserului. Exist\u0103 peste 15.000 de complemente: de la <a rel=\"nofollow\" href=\"https:\/\/addons.mozilla.org\/en-US\/firefox\/addon\/ublock-origin\/\">blocarea publicit\u0103\u021bii<\/a> la <a rel=\"nofollow\" href=\"https:\/\/addons.mozilla.org\/en-US\/firefox\/addon\/tree-style-tab\/\">gestionarea a sute de taburi<\/a>.<\/noindex><\/p>\n<p>Extensiile instalate trebuie s\u0103 aib\u0103 <a rel=\"nofollow\" href=\"https:\/\/blog.mozilla.org\/addons\/2015\/02\/10\/extension-signing-safer-experience\/\">semn\u0103tur\u0103 digital\u0103<\/a>, care protejeaz\u0103 utilizatorii de extensiile d\u0103un\u0103toare, \u0219i necesit\u0103 o verificare minim\u0103 a extensiilor din partea angaja\u021bilor Mozilla. Am introdus aceast\u0103 cerin\u021b\u0103 \u00een 2015, deoarece ne confruntam cu <a rel=\"nofollow\" href=\"https:\/\/blog.mozilla.org\/addons\/2015\/04\/15\/the-case-for-extension-signing\/\">probleme serioase<\/a> cu extensiile d\u0103un\u0103toare.<\/p>\n<p>Cum func\u021bioneaz\u0103: fiecare copie a Firefox con\u021bine &#171;certificatul r\u0103d\u0103cin\u0103&#187;. Cheia acestui &#171;r\u0103d\u0103cin\u0103&#187; este stocat\u0103 \u00een <a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Hardware_security_module\">un modul de securitate hardware (HSM)<\/a>, care nu are acces la re\u021bea. La fiecare c\u00e2\u021biva ani, aceast\u0103 cheie semneaz\u0103 un nou &#171;certificat intermediar&#187;, care este utilizat pentru semnarea complementelor. Atunci c\u00e2nd un dezvoltator trimite un complement, cre\u0103m un &#171;certificat final temporar&#187; \u0219i \u00eel semn\u0103m, folosind certificatul intermediar. Apoi, certificatul final semneaz\u0103 complementul \u00een sine. Schematic <a rel=\"nofollow\" href=\"https:\/\/hacks.mozilla.org\/files\/2019\/05\/Add-on-blog-post-visual-May-7-2019-768x859.png\">arat\u0103 astfel<\/a>.<\/p>\n<p>Re\u021bine\u021bi: fiecare certificat are un &#171;subiect&#187; (c\u0103rei entit\u0103\u021bi i-a fost emis certificatul) \u0219i un &#171;emittent&#187; (cine a emis certificatul). \u00cen cazul certificatului r\u0103d\u0103cin\u0103, &#171;subiectul&#187; = &#171;emittentul&#187;, dar pentru alte certificate emittentul certificatului este subiectul certificatului superior, de care acesta a fost semnat.<\/p>\n<p>Un aspect important: fiecare extensie este semnat\u0103 cu un certificat final unic, dar aproape \u00eentotdeauna aceste certificate finale sunt semnate de acela\u0219i certificat intermediar.<\/p>\n<p><i>Nota autorului: excep\u021bie fac extensiile foarte vechi. La acea vreme, erau utilizate diferite certificate intermediare.<\/i><\/p>\n<p>Acest certificat intermediar a generat probleme: fiecare certificat este valabil pentru o anumit\u0103 perioad\u0103. \u00cenainte sau dup\u0103 aceast\u0103 perioad\u0103, certificatul devine invalid \u0219i browserul nu va utiliza extensiile semnate cu acest certificat. Din p\u0103cate, termenul de valabilitate al certificatului intermediar a expirat pe 4 mai la ora 4 diminea\u021ba.<\/p>\n<p>Consecin\u021bele nu s-au manifestat imediat. Firefox verific\u0103 semn\u0103turile extensiilor instalate nu constant, ci aproximativ la fiecare 24 de ore, timpul de verificare fiind individual pentru fiecare utilizator. Ca urmare, unii utilizatori au avut probleme imediat, iar al\u021bii mult mai t\u00e2rziu. Am aflat pentru prima dat\u0103 despre problem\u0103 aproximativ \u00een momentul \u00een care a expirat termenul de valabilitate al certificatului \u0219i am \u00eenceput imediat s\u0103 c\u0103ut\u0103m o solu\u021bie.<\/p>\n<p>\n<b>Reducem daunele<\/b><\/p>\n<p>Odat\u0103 ce am \u00een\u021beles ce s-a \u00eent\u00e2mplat, am \u00eencercat s\u0103 nu l\u0103s\u0103m situa\u021bia s\u0103 se degradeze.<\/p>\n<p>\u00cen primul r\u00e2nd, am \u00eencetat s\u0103 accept\u0103m \u0219i s\u0103 semn\u0103m extensii noi. Nu are sens s\u0103 folosim un certificat expirat pentru asta. Privind \u00een urm\u0103, a\u0219 spune c\u0103 am fi putut l\u0103sa totul a\u0219a cum era. \u00cen prezent, acceptarea extensiilor a fost reluat\u0103.<\/p>\n<p>\u00cen al doilea r\u00e2nd, am trimis imediat o corectare care a \u00eempiedicat verificarea zilnic\u0103 a semn\u0103turilor. Astfel, am salvat utilizatorii care nu avuseser\u0103 timp s\u0103 verifice extensiile \u00een ultimele 24 de ore. Acum, aceast\u0103 corectare a fost retras\u0103, deoarece nu mai este nevoie de ea.<\/p>\n<p>\n<b>Lucr\u0103ri paralele<\/b><\/p>\n<p>Teoretic, solu\u021bia problemei pare simpl\u0103: cre\u0103m un nou certificat intermediar valid \u0219i semn\u0103m din nou fiecare extensie. Din p\u0103cate, aceasta nu va func\u021biona:\n<\/p>\n<ul>\n<li>nu putem semna rapid 15.000 de extensii simultan, sistemul nu este conceput pentru o astfel de \u00eenc\u0103rc\u0103tur\u0103\n<\/li>\n<li>dup\u0103 ce semn\u0103m extensiile, versiunile actualizate trebuie livrate utilizatorilor. Majoritatea extensiilor sunt instalate de pe serverele Mozilla, a\u0219a c\u0103 \u00een urm\u0103toarele 24 de ore Firefox va g\u0103si actualiz\u0103ri, dar unii dezvoltatori distribuie extensii semnate prin canale externe, deci utilizatorii ar trebui s\u0103 actualizeze manual aceste extensii.<\/li>\n<\/ul>\n<p>\u00cen loc de aceasta, am \u00eencercat s\u0103 dezvolt\u0103m o corectare care s\u0103 ajung\u0103 la to\u021bi utilizatorii, f\u0103r\u0103 a necesita (sau aproape f\u0103r\u0103 a necesita) ac\u021biuni din partea acestora.<\/p>\n<p>Am ajuns destul de repede la dou\u0103 strategii principale, pe care le-am folosit \u00een paralel:\n<\/p>\n<ul>\n<li>Actualizeaz\u0103 Firefox pentru a schimba perioada de valabilitate a certificatului. Acest lucru va face ca extensiile existente s\u0103 func\u021bioneze din nou, dar va necesita eliberarea \u0219i livrarea unei noi versiuni de Firefox.\n<\/li>\n<li>Creeaz\u0103 un certificat valid \u0219i convinge cumva Firefox s\u0103-l accepte \u00een locul celui existent, al c\u0103rui termen de valabilitate a expirat.<\/li>\n<\/ul>\n<p>Am decis s\u0103 folosim mai \u00eent\u00e2i prima op\u021biune, care p\u0103rea destul de func\u021bional\u0103. La sf\u00e2r\u0219itul zilei, am eliberat \u0219i a doua corectare (certificat nou), despre care vom vorbi mai departe.<\/p>\n<p>\n<b>\u00cenlocuirea certificatului<\/b><\/p>\n<p>A\u0219a cum am men\u021bionat mai sus, a fost necesar s\u0103:\n<\/p>\n<ul>\n<li>cre\u0103m un nou certificat valid\n<\/li>\n<li>s\u0103-l instal\u0103m la distan\u021b\u0103 \u00een Firefox\n<\/li>\n<\/ul>\n<p>Pentru a \u00een\u021belege de ce func\u021bioneaz\u0103 asta, s\u0103 analiz\u0103m mai \u00een detaliu procesul de verificare a extensiilor. Extensia este livrat\u0103 sub form\u0103 de set de fi\u0219iere, inclusiv lan\u021bul de certificate folosit pentru semnare. Drept urmare, extensia poate fi verificat\u0103 dac\u0103 browserul cunoa\u0219te certificatul r\u0103d\u0103cin\u0103, care este \u00eencorporat \u00een Firefox \u00een timpul construirii. Totu\u0219i, a\u0219a cum \u0219tim deja, certificatul intermediar este expirat, a\u0219a c\u0103 extensia nu poate fi verificat\u0103.<\/p>\n<p>C\u00e2nd Firefox \u00eencearc\u0103 s\u0103 verifice extensia, nu se limiteaz\u0103 la utilizarea certificatelor con\u021binute \u00een extensia \u00eens\u0103\u0219i. \u00cen schimb, browserul \u00eencearc\u0103 s\u0103 creeze un lan\u021b valid de certificate, \u00eencep\u00e2nd cu certificatul final \u0219i continu\u00e2nd p\u00e2n\u0103 ajunge la r\u0103d\u0103cin\u0103. La primul nivel \u00eencepem cu certificatul final, apoi g\u0103sim certificatul al c\u0103rui subiect este editorul certificatului final (adic\u0103, certificatul intermediar). De obicei, acest certificat intermediar este livrat \u00eempreun\u0103 cu extensia, dar oricare certificat din depozitul browserului poate s\u0103 \u00eendeplineasc\u0103 \u0219i aceast\u0103 func\u021bie. Dac\u0103 putem ad\u0103uga la distan\u021b\u0103 un nou certificat valid \u00een depozitul de certificate, Firefox va \u00eencerca s\u0103-l foloseasc\u0103. <a rel=\"nofollow\" href=\"https:\/\/hacks.mozilla.org\/files\/2019\/05\/Add-on-blog-post-visual-2-May-7-2019.png\">Situa\u021bia \u00eenainte \u0219i dup\u0103 instalarea noului certificat<\/a>.<\/p>\n<p>Dup\u0103 instalarea unui nou certificat, Firefox va avea dou\u0103 op\u021biuni la verificarea lan\u021bului de certificare: s\u0103 foloseasc\u0103 vechiul certificat invalid (care nu va func\u021biona) sau noul certificat valid (care va func\u021biona). Este important ca noul certificat s\u0103 con\u021bin\u0103 acela\u0219i nume al subiectului \u0219i aceea\u0219i cheie public\u0103 ca \u0219i vechiul certificat, astfel \u00eenc\u00e2t semn\u0103tura sa pe certificat s\u0103 fie valid\u0103. Firefox este suficient de inteligent pentru a \u00eencerca ambele op\u021biuni p\u00e2n\u0103 g\u0103se\u0219te una func\u021bional\u0103, astfel \u00eenc\u00e2t extensiile vor deveni din nou verificate. Re\u021bine\u021bi, aceasta este aceea\u0219i logic\u0103 pe care o folosim pentru a verifica certificatele TLS.<\/p>\n<p><i>Not\u0103 a autorului: cititorii familiariza\u021bi cu WebPKI vor observa c\u0103 certificarile \u00eencruci\u0219ate func\u021bioneaz\u0103 exact la fel.<\/i><\/p>\n<p>Ceea ce este remarcabil \u00een aceast\u0103 corectare este c\u0103 nu necesit\u0103 resemnarea extensiilor existente. Odat\u0103 ce browserul prime\u0219te noul certificat, toate extensiile vor func\u021biona din nou. R\u0103m\u00e2ne complexitatea de a livra noul certificat utilizatorilor (automatic \u0219i de la distan\u021b\u0103), precum \u0219i de a determina Firefox s\u0103 revizuiasc\u0103 extensiile dezactivate.<\/p>\n<p>\n<b>Normandy \u0219i sistemul de cercetare<\/b><\/p>\n<p>Ironia face c\u0103 aceast\u0103 problem\u0103 este rezolvat\u0103 de un complement special numit &#171;sistemic&#187;. Pentru a efectua cercet\u0103ri, am dezvoltat un sistem numit Normandy, care livra cercet\u0103rile utilizatorilor. Aceste cercet\u0103ri sunt efectuate automat \u00een browser \u0219i au acces extins la API-urile interne ale Firefox. Cercet\u0103rile pot ad\u0103uga noi certificate \u00een magazinul de certificate.<\/p>\n<p><i>Not\u0103 a autorului: nu ad\u0103ug\u0103m un certificat cu privilegii speciale; este semnat de un certificat r\u0103d\u0103cin\u0103, de aceea Firefox are \u00eencredere \u00een el. Pur \u0219i simplu, \u00eel ad\u0103ug\u0103m \u00een pool-ul de certificate care pot fi utilizate de browser.<\/i><\/p>\n<p>Astfel, solu\u021bia const\u0103 \u00een a crea un sondaj:\n<\/p>\n<ul>\n<li>care instaleaz\u0103 utilizatorilor noul certificat creat de noi\n<\/li>\n<li>care for\u021beaz\u0103 browserul s\u0103 revizuiasc\u0103 extensiile dezactivate, pentru a func\u021biona din nou\n<\/li>\n<\/ul>\n<p>&#171;Dar a\u0219teapt\u0103&#187;, &#8212; ve\u021bi spune, &#171;complementele nu func\u021bioneaz\u0103, cum putem lansa un complement sistemic?&#187;. \u00cel vom semna cu un nou certificat!<\/p>\n<p>\n<b>S\u0103 adun\u0103m totul \u00eempreun\u0103\u2026 de ce a durat at\u00e2t de mult?<\/b><\/p>\n<p>A\u0219adar, planul este: s\u0103 lans\u0103m un nou certificat pentru a \u00eenlocui pe cel vechi, s\u0103 cre\u0103m un addon de sistem \u0219i s\u0103-l instal\u0103m utilizatorilor prin Normandy. Problemele, a\u0219a cum am men\u021bionat, au \u00eenceput pe 4 mai la ora 4:00, iar deja la 12:44 \u00een aceea\u0219i zi, \u00een mai pu\u021bin de 9 ore, am trimis o solu\u021bie \u00een Normandy. A mai durat \u00eentre 6 \u0219i 12 ore ca aceasta s\u0103 ajung\u0103 la to\u021bi utilizatorii. Este un \u00eenceput bun, dar utilizatorii de pe Twitter \u00eentreab\u0103 de ce nu am putut ac\u021biona mai repede.<\/p>\n<p>\u00cen primul r\u00e2nd, a fost nevoie de timp pentru a emite un nou certificat intermediar. A\u0219a cum am men\u021bionat anterior, cheia certificatului r\u0103d\u0103cin\u0103 este stocat\u0103 \u00een mod autonom \u00een module hardware de securitate. Acest lucru este bine din punct de vedere al securit\u0103\u021bii, deoarece r\u0103d\u0103cina este utilizat\u0103 foarte rar \u0219i trebuie s\u0103 fie protejat\u0103 corespunz\u0103tor, dar este pu\u021bin inconfortabil atunci c\u00e2nd trebuie s\u0103 semn\u0103m de urgen\u021b\u0103 un nou certificat. Unul dintre inginerii no\u0219tri a trebuit s\u0103 mearg\u0103 la magazinul HSM. Apoi au existat \u00eencerc\u0103ri nereu\u0219ite de a emite certificatul corect, fiecare \u00eencercare cost\u00e2nd una sau dou\u0103 ore dedicate test\u0103rii.<\/p>\n<p>\u00cen al doilea r\u00e2nd, dezvoltarea addonului de sistem a durat ceva timp. Conceptual, este foarte simplu, dar chiar \u0219i programele simple necesit\u0103 aten\u021bie. Am dorit s\u0103 ne asigur\u0103m c\u0103 nu vom face situa\u021bia \u0219i mai dificil\u0103. Studiul trebuie testat \u00eenainte de a fi trimis utilizatorilor. \u00cen plus, addonul trebuie s\u0103 fie semnat, dar sistemul nostru de semnare a addonurilor era oprit, trebuind s\u0103 c\u0103ut\u0103m o solu\u021bie alternativ\u0103.<\/p>\n<p>\u00cen cele din urm\u0103, dup\u0103 ce am preg\u0103tit studiul pentru trimitere, a fost nevoie de timp pentru desf\u0103\u0219urare. Browserul verific\u0103 actualiz\u0103rile Normandy la fiecare 6 ore. Nu toate computerele sunt mereu pornite \u0219i conectate la internet, a\u0219a c\u0103 este nevoie de timp pentru ca solu\u021bia s\u0103 se r\u0103sp\u00e2ndeasc\u0103 printre utilizatori.<\/p>\n<p>\n<b>Pa\u0219ii finali<\/b><\/p>\n<p>Studiul ar trebui s\u0103 rezolve problema majorit\u0103\u021bii utilizatorilor, dar nu este disponibil pentru to\u021bi. Uneori, este necesar\u0103 o abordare special\u0103 pentru anumite categorii de utilizatori:\n<\/p>\n<ul>\n<li>utilizatorii care au dezactivat studiile sau telemetria\n<\/li>\n<li>utilizatorii versiunii Android (Fennec), unde studiile nu sunt deloc acceptate\n<\/li>\n<li>utilizatorii compunilor personalizate Firefox ESR \u00een medii unde nu este posibil s\u0103 activ\u0103m telemetria\n<\/li>\n<li>utilizatorii care se afl\u0103 \u00een spatele unui proxy MitM, deoarece sistemul nostru de instalare a extensiilor folose\u0219te legarea cheilor (key pinning), care nu func\u021bioneaz\u0103 cu astfel de proxy-uri.\n<\/li>\n<li>utilizatorii versiunilor mai vechi de Firefox, care nu suport\u0103 cercet\u0103rile.\n<\/li>\n<\/ul>\n<p>Nu putem face nimic \u00een leg\u0103tur\u0103 cu ultima categorie de utilizatori \u2014 ar trebui totu\u0219i s\u0103 se actualizeze la o versiune nou\u0103 de Firefox, deoarece versiunile vechi au vulnerabilit\u0103\u021bi grave nerezolvate. \u0218tim c\u0103 unii oameni r\u0103m\u00e2n cu versiuni vechi de Firefox pentru a rula extensii mai vechi, dar multe dintre extensiile vechi au fost deja portate pentru versiunile noi ale browserului. Pentru ceilal\u021bi utilizatori, am dezvoltat un patch care va instala un nou certificat. Acesta a fost lansat ca un fix de erori (<i>nota translatorului: Firefox 66.0.5<\/i>), a\u0219a c\u0103 oamenii \u00eel vor ob\u021bine \u2014 foarte probabil, l-au ob\u021binut deja \u2014 prin canalele obi\u0219nuite de actualizare. Dac\u0103 utiliza\u021bi o versiune personalizat\u0103 a Firefox ESR, v\u0103 rug\u0103m s\u0103 contacta\u021bi mentinatorul dumneavoastr\u0103.<\/p>\n<p>\u00cen\u021belegem c\u0103 toate acestea nu sunt perfecte. \u00cen unele cazuri, utilizatorii au pierdut datele extensiilor (de exemplu, datele extensiei <a rel=\"nofollow\" href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1549204\">Multi-Account Containers<\/a>).<\/p>\n<p>Acest efect secundar nu a putut fi evitat, dar consider\u0103m c\u0103 pe termen scurt am ales cea mai bun\u0103 solu\u021bie pentru majoritatea utilizatorilor. Pe termen lung, vom c\u0103uta alte abord\u0103ri arhitecturale mai avansate.<\/p>\n<p>\n<b>Lec\u021bii<\/b><\/p>\n<p>\u00cen primul r\u00e2nd, echipa noastr\u0103 a f\u0103cut o treab\u0103 uimitoare, cre\u00e2nd \u0219i trimiind un fix \u00een mai pu\u021bin de 12 ore dup\u0103 descoperirea problemei. Ca persoan\u0103 care a fost prezent la \u00eent\u00e2lniri, pot spune c\u0103 \u00een aceast\u0103 situa\u021bie complicat\u0103, oamenii au muncit din greu \u0219i foarte pu\u021bin timp a fost pierdut \u00een zadar.<\/p>\n<p>Este evident c\u0103 toate acestea nu ar fi trebuit s\u0103 se \u00eent\u00e2mple. Cu siguran\u021b\u0103 trebuie s\u0103 corect\u0103m procesele noastre pentru a reduce probabilitatea unor astfel de incidente \u0219i pentru a facilita corectarea consecin\u021belor.<\/p>\n<p>S\u0103pt\u0103m\u00e2na viitoare vom publica un raport oficial post-mortem \u0219i lista modific\u0103rilor pe care ne propunem s\u0103 le facem. P\u00e2n\u0103 atunci, voi \u00eemp\u0103rt\u0103\u0219i g\u00e2ndurile mele. \u00cen primul r\u00e2nd, trebuie s\u0103 existe o modalitate mai bun\u0103 de a urm\u0103ri starea lucrurilor care sunt o bomb\u0103 cu ceas poten\u021bial\u0103. Trebuie s\u0103 fim siguri c\u0103 nu ne vom afla \u00eentr-o situa\u021bie \u00een care una dintre ele s\u0103 explodeze brusc. Lucr\u0103m la detalii, dar, cel pu\u021bin, trebuie s\u0103 avem o eviden\u021b\u0103 a tuturor acestor lucruri.<\/p>\n<p>\u00cen al doilea r\u00e2nd, avem nevoie de un mecanism de livrare rapid\u0103 a actualiz\u0103rilor utilizatorilor, chiar \u0219i atunci c\u00e2nd \u2014 mai ales atunci c\u00e2nd \u2014 totul cel\u0103lalt nu func\u021bioneaz\u0103. A fost minunat c\u0103 am reu\u0219it s\u0103 folosim sistemul de &#171;anchete&#187;, dar acesta este un instrument imperfect \u0219i are unele efecte secundare nedorite. \u00cen special, \u0219tim c\u0103 mul\u021bi utilizatori au activat\u0103 actualizarea automat\u0103, dar ar prefera s\u0103 nu participe la anchete (recunosc, \u0219i eu le-am dezactivat!). \u00cen acela\u0219i timp, avem nevoie de un mod de a trimite actualiz\u0103ri utilizatorilor, dar, indiferent de implementarea tehnic\u0103 intern\u0103, utilizatorii trebuie s\u0103 aib\u0103 posibilitatea de a se abona la actualiz\u0103ri (inclusiv la corec\u021bii urgente), dar s\u0103 renun\u021be la tot restul. \u00cen plus, canalul de actualizare trebuie s\u0103 fie mai receptiv dec\u00e2t este \u00een prezent. Chiar \u0219i pe 6 mai, \u00eenc\u0103 existau utilizatori care nu au folosit nici corec\u021bia, nici noua versiune. Oamenii au lucrat deja la aceast\u0103 problem\u0103, dar ceea ce s-a \u00eent\u00e2mplat a ar\u0103tat c\u00e2t de important\u0103 este aceasta.<\/p>\n<p>\u00cen final, vom analiza arhitectura de securitate a extensiilor pentru a ne asigura c\u0103 aceasta ofer\u0103 un nivel adecvat de securitate, cu un risc minim de a rupere ceva.<\/p>\n<p>S\u0103pt\u0103m\u00e2na viitoare vom examina rezultatele unei analize mai atente a celor \u00eent\u00e2mplate, iar \u00eentre timp, voi fi bucuros s\u0103 r\u0103spund la \u00eentreb\u0103rile trimise pe email: ekr-blog@mozilla.com<\/p>\n<p>Sursa: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"http:\/\/www.linux.org.ru\/news\/mozilla\/14982826\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a\u0430: \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u0434\u0430\u0442\u044b \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u043f\u043e \u043c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u043e\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u043c\u044b \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u043c\u043e\u043c\u0435\u043d\u0442 \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u044f \u0441\u0440\u043e\u043a\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0434\u043b\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439. \u042d\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u043b\u043e \u043a \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044e \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439 \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430, \u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u0445 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0435\u0434\u0448\u0435\u0433\u043e \u0438 \u043e \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435. \u041f\u043e\u0434\u043e\u043f\u043b\u0451\u043a\u0430: \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0425\u043e\u0442\u044f \u043c\u043d\u043e\u0433\u0438\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-33377","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a\u0430: \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u0434\u0430\u0442\u044b \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u043f\u043e \u043c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u043e\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u043c\u044b \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u043c\u043e\u043c\u0435\u043d\u0442 \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u044f \u0441\u0440\u043e\u043a\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0434\u043b\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/news\/tehnicheskie-podrobnosti-nedavnego-otklyucheniya-dopolnenij-v-firefox\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043d\u0435\u0434\u0430\u0432\u043d\u0435\u0433\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439 \u0432 Firefox | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a\u0430: \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u0434\u0430\u0442\u044b \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u043f\u043e \u043c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u043e\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u043c\u044b \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u043c\u043e\u043c\u0435\u043d\u0442 \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u044f \u0441\u0440\u043e\u043a\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0434\u043b\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/news\/tehnicheskie-podrobnosti-nedavnego-otklyucheniya-dopolnenij-v-firefox\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:52:15+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:52:15+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Detalii tehnice despre recentul dezactiv\u0103rii extensiilor \u00een Firefox | ProHoster","description":"Not\u0103 a traduc\u0103torului: pentru confortul cititorilor, datele sunt prezentate pe ora Moscovei. Recent, am ratat momentul \u00een care a expirat unul dintre certificatele utilizate pentru semnarea extensiilor.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/news\/tehnicheskie-podrobnosti-nedavnego-otklyucheniya-dopolnenij-v-firefox","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043d\u0435\u0434\u0430\u0432\u043d\u0435\u0433\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439 \u0432 Firefox | ProHoster","og:description":"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a\u0430: \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u0434\u0430\u0442\u044b \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u043f\u043e \u043c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u043e\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u043c\u044b \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u043c\u043e\u043c\u0435\u043d\u0442 \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u044f \u0441\u0440\u043e\u043a\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0434\u043b\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439.","og:url":"https:\/\/prohoster.info\/ro\/blog\/news\/tehnicheskie-podrobnosti-nedavnego-otklyucheniya-dopolnenij-v-firefox","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:52:15+00:00","article:modified_time":"2019-10-31T18:52:15+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"33377","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 14:58:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:46:11","updated":"2026-01-21 14:58:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/33377","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=33377"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/33377\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=33377"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=33377"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=33377"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}