{"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\/pt\/blog\/news\/tehnicheskie-podrobnosti-nedavnego-otklyucheniya-dopolnenij-v-firefox","title":{"rendered":"Detalhes t\u00e9cnicos da recente desativa\u00e7\u00e3o de extens\u00f5es no Firefox","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Nota do tradutor: para conveni\u00eancia dos leitores, as datas est\u00e3o em hor\u00e1rio de Moscovo.<\/i><\/p>\n<p>Recentemente, deixamos passar o momento de expira\u00e7\u00e3o de um dos certificados utilizados para assinar os complementos. Isso levou \u00e0 desativa\u00e7\u00e3o dos complementos para os usu\u00e1rios. Agora que, na maior parte, o problema foi corrigido, gostaria de compartilhar os detalhes do que ocorreu e do trabalho realizado.\n<\/p>\n<p><b>Contexto: complementos e assinaturas<\/b><\/p>\n<p><noindex>Embora muitos usem o navegador &#171;fora da caixa&#187;, o Firefox suporta extens\u00f5es chamadas &#171;complementos&#187;. Com a ajuda delas, os usu\u00e1rios adicionam v\u00e1rias funcionalidades ao navegador. Existem mais de 15 mil complementos: de <a rel=\"nofollow\" href=\"https:\/\/addons.mozilla.org\/en-US\/firefox\/addon\/ublock-origin\/\">bloqueio de an\u00fancios<\/a> at\u00e9 <a rel=\"nofollow\" href=\"https:\/\/addons.mozilla.org\/en-US\/firefox\/addon\/tree-style-tab\/\">gerenciamento de centenas de abas<\/a>.<\/noindex><\/p>\n<p>Os complementos instalados devem ter <a rel=\"nofollow\" href=\"https:\/\/blog.mozilla.org\/addons\/2015\/02\/10\/extension-signing-safer-experience\/\">uma assinatura digital<\/a>, que protege os usu\u00e1rios contra complementos maliciosos, e exige a verifica\u00e7\u00e3o m\u00ednima dos complementos pelos funcion\u00e1rios da Mozilla. Introduzimos essa exig\u00eancia em 2015, pois enfrent\u00e1vamos <a rel=\"nofollow\" href=\"https:\/\/blog.mozilla.org\/addons\/2015\/04\/15\/the-case-for-extension-signing\/\">s\u00e9rios problemas<\/a> com complementos maliciosos.<\/p>\n<p>Como isso funciona: cada c\u00f3pia do Firefox cont\u00e9m um &#171;certificado raiz&#187;. A chave para este &#171;raiz&#187; \u00e9 armazenada em <a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Hardware_security_module\">m\u00f3dulo de seguran\u00e7a de hardware (HSM)<\/a>, sem acesso \u00e0 rede. A cada alguns anos, essa chave assina um novo &#171;certificado intermedi\u00e1rio&#187;, que \u00e9 usado para assinar os complementos. Quando um desenvolvedor envia um complemento, criamos um &#171;certificado final tempor\u00e1rio&#187; e o assinamos usando o certificado intermedi\u00e1rio. Depois, o pr\u00f3prio complemento \u00e9 assinado com o certificado final. Esquematicamente, <a rel=\"nofollow\" href=\"https:\/\/hacks.mozilla.org\/files\/2019\/05\/Add-on-blog-post-visual-May-7-2019-768x859.png\">isso se parece com isso<\/a>.<\/p>\n<p>Observe que cada certificado tem um &#171;assunto&#187; (para quem o certificado foi emitido) e um &#171;emissor&#187; (quem emitiu o certificado). No caso do certificado raiz, &#171;assunto&#187; = &#171;emissor&#187;, mas para outros certificados, o emissor do certificado \u00e9 o assunto do certificado superior, que o assinou.<\/p>\n<p>Ponto importante: cada complemento \u00e9 assinado com um certificado final \u00fanico, mas quase sempre esses certificados finais s\u00e3o assinados pelo mesmo certificado intermedi\u00e1rio.<\/p>\n<p><i>Nota do autor: a exce\u00e7\u00e3o s\u00e3o os complementos muito antigos. Naquele tempo, usavam-se v\u00e1rios certificados intermedi\u00e1rios.<\/i><\/p>\n<p>Este certificado intermedi\u00e1rio causou problemas: cada certificado \u00e9 v\u00e1lido por um determinado per\u00edodo. Antes ou depois desse per\u00edodo, o certificado se torna inv\u00e1lido, e o navegador n\u00e3o usar\u00e1 complementos assinados por esse certificado. Infelizmente, a validade do certificado intermedi\u00e1rio expirou em 4 de maio \u00e0s 4 horas da manh\u00e3.<\/p>\n<p>As consequ\u00eancias n\u00e3o se manifestaram imediatamente. O Firefox verifica as assinaturas dos complementos instalados n\u00e3o constantemente, mas aproximadamente a cada 24 horas, com o hor\u00e1rio da verifica\u00e7\u00e3o sendo individual para cada usu\u00e1rio. Como resultado, algumas pessoas enfrentaram problemas imediatamente, enquanto outras muito mais tarde. Fomos informados do problema aproximadamente no momento em que o certificado expirou e come\u00e7amos a procurar uma solu\u00e7\u00e3o.<\/p>\n<p>\n<b>Minimizando os danos<\/b><\/p>\n<p>Assim que entendemos o que aconteceu, tentamos evitar que a situa\u00e7\u00e3o piorasse.<\/p>\n<p>Primeiro, paramos de aceitar e assinar novos complementos. N\u00e3o faz sentido usar um certificado expirado para isso. Olhando para tr\u00e1s, diria que poder\u00edamos ter deixado tudo como estava. Atualmente, a aceita\u00e7\u00e3o de complementos foi reiniciada.<\/p>\n<p>Em segundo lugar, enviamos imediatamente uma corre\u00e7\u00e3o que impediu a verifica\u00e7\u00e3o di\u00e1ria das assinaturas. Dessa forma, conseguimos salvar os usu\u00e1rios cujo navegador ainda n\u00e3o havia verificado os complementos nas \u00faltimas 24 horas. Atualmente, essa corre\u00e7\u00e3o foi revogada, pois n\u00e3o h\u00e1 mais necessidade dela.<\/p>\n<p>\n<b>Trabalho paralelo<\/b><\/p>\n<p>Teoricamente, a solu\u00e7\u00e3o do problema parece simples: criamos um novo certificado intermedi\u00e1rio v\u00e1lido e re-assinamos cada complemento. Infelizmente, isso n\u00e3o funcionar\u00e1:\n<\/p>\n<ul>\n<li>n\u00e3o conseguimos re-assinar rapidamente 15 mil complementos de uma s\u00f3 vez, o sistema n\u00e3o est\u00e1 preparado para essa carga\n<\/li>\n<li>depois que assinarmos os complementos, as vers\u00f5es atualizadas precisam ser entregues aos usu\u00e1rios. A maioria dos complementos \u00e9 instalada a partir dos servidores da Mozilla, portanto, nas pr\u00f3ximas 24 horas o Firefox encontrar\u00e1 atualiza\u00e7\u00f5es, mas alguns desenvolvedores distribuem complementos assinados por canais de terceiros, ent\u00e3o os usu\u00e1rios teriam que atualizar esses complementos manualmente<\/li>\n<\/ul>\n<p>Em vez disso, tentamos desenvolver uma corre\u00e7\u00e3o que chegasse a todos os usu\u00e1rios, sem exigir (ou quase sem exigir) a\u00e7\u00f5es de sua parte.<\/p>\n<p>Chegamos rapidamente a duas estrat\u00e9gias principais, que utilizamos em paralelo:\n<\/p>\n<ul>\n<li>Atualizar o Firefox para alterar o per\u00edodo de validade do certificado. Isso far\u00e1 com que as extens\u00f5es existentes funcionem novamente, mas exigir\u00e1 a libera\u00e7\u00e3o e entrega de uma nova vers\u00e3o do Firefox.\n<\/li>\n<li>Criar um certificado v\u00e1lido e, de alguma forma, convencer o Firefox a aceit\u00e1-lo em vez do existente, que est\u00e1 expirado.<\/li>\n<\/ul>\n<p>Decidimos primeiro usar a primeira op\u00e7\u00e3o, que parecia bastante funcional. No final do dia, lan\u00e7amos tamb\u00e9m a segunda corre\u00e7\u00e3o (novo certificado), que discutiremos a seguir.<\/p>\n<p>\n<b>Substitui\u00e7\u00e3o do certificado<\/b><\/p>\n<p>Como mencionei acima, era necess\u00e1rio:\n<\/p>\n<ul>\n<li>criar um novo certificado v\u00e1lido\n<\/li>\n<li>instal\u00e1-lo remotamente no Firefox\n<\/li>\n<\/ul>\n<p>Para entender por que isso funcionar\u00e1, vamos analisar mais detalhadamente o processo de verifica\u00e7\u00e3o da extens\u00e3o. A pr\u00f3pria extens\u00e3o \u00e9 fornecida como um conjunto de arquivos, incluindo a cadeia de certificados utilizados para assinatura. Como resultado, a extens\u00e3o pode ser verificada se o navegador conhece o certificado raiz, que \u00e9 embutido no Firefox durante a constru\u00e7\u00e3o. No entanto, como j\u00e1 sabemos, o certificado intermedi\u00e1rio est\u00e1 expirado, portanto, a verifica\u00e7\u00e3o da extens\u00e3o \u00e9 imposs\u00edvel.<\/p>\n<p>Quando o Firefox tenta verificar a extens\u00e3o, ele n\u00e3o se limita a usar os certificados contidos dentro da pr\u00f3pria extens\u00e3o. Em vez disso, o navegador tenta criar uma cadeia de certificados v\u00e1lida, come\u00e7ando pelo certificado final e continuando at\u00e9 chegar ao raiz. No primeiro n\u00edvel, come\u00e7amos com o certificado final e ent\u00e3o encontramos o certificado cujo sujeito \u00e9 o editor do certificado final (ou seja, o certificado intermedi\u00e1rio). Normalmente, esse certificado intermedi\u00e1rio \u00e9 fornecido com a extens\u00e3o, mas qualquer certificado do reposit\u00f3rio do navegador tamb\u00e9m pode desempenhar esse papel. Se conseguirmos adicionar remotamente um novo certificado v\u00e1lido ao reposit\u00f3rio de certificados, o Firefox tentar\u00e1 us\u00e1-lo. <a rel=\"nofollow\" href=\"https:\/\/hacks.mozilla.org\/files\/2019\/05\/Add-on-blog-post-visual-2-May-7-2019.png\">A situa\u00e7\u00e3o antes e depois da instala\u00e7\u00e3o do novo certificado<\/a>.<\/p>\n<p>Ap\u00f3s a instala\u00e7\u00e3o do novo certificado, o Firefox ter\u00e1 duas op\u00e7\u00f5es ao verificar a cadeia de certificados: usar o antigo certificado inv\u00e1lido (que n\u00e3o funcionar\u00e1) ou o novo certificado v\u00e1lido (que funcionar\u00e1). \u00c9 importante que o novo certificado contenha o mesmo nome de sujeito e chave p\u00fablica que o antigo, portanto, sua assinatura no certificado final ser\u00e1 v\u00e1lida. O Firefox \u00e9 inteligente o suficiente para tentar ambas as op\u00e7\u00f5es at\u00e9 encontrar uma que funcione, ent\u00e3o os complementos ser\u00e3o verificados novamente. Observe que esta \u00e9 a mesma l\u00f3gica que usamos para verificar certificados TLS.<\/p>\n<p><i>Nota do autor: leitores familiarizados com WebPKI notar\u00e3o que os certificados cruzados funcionam exatamente da mesma forma.<\/i><\/p>\n<p>O mais not\u00e1vel sobre essa corre\u00e7\u00e3o \u00e9 que ela n\u00e3o requer a re-assinatura dos complementos existentes. Assim que o navegador receber o novo certificado, todos os complementos voltar\u00e3o a funcionar. A complexidade permanece em entregar o novo certificado aos usu\u00e1rios (automaticamente e remotamente), al\u00e9m de fazer o Firefox re-verificar os complementos desativados.<\/p>\n<p>\n<b>Normandy e o sistema de pesquisas<\/b><\/p>\n<p>Por ironia do destino, esse problema \u00e9 resolvido por um complemento especial chamado &#171;system&#187;. Para realizar investiga\u00e7\u00f5es, desenvolvemos um sistema chamado Normandy, que entrega pesquisas aos usu\u00e1rios. Essas pesquisas s\u00e3o executadas automaticamente no navegador e t\u00eam acesso ampliado \u00e0s APIs internas do Firefox. As investiga\u00e7\u00f5es podem adicionar novos certificados ao reposit\u00f3rio de certificados.<\/p>\n<p><i>Nota do autor: n\u00e3o adicionamos o certificado com privil\u00e9gios especiais; ele \u00e9 assinado pelo certificado raiz, ent\u00e3o o Firefox confia nele. Estamos apenas adicionando-o ao pool de certificados que podem ser usados pelo navegador.<\/i><\/p>\n<p>Portanto, a solu\u00e7\u00e3o \u00e9 criar uma pesquisa:\n<\/p>\n<ul>\n<li>instalando para os usu\u00e1rios o novo certificado que criamos\n<\/li>\n<li>for\u00e7ando o navegador a re-verificar os complementos desativados para que funcionem novamente\n<\/li>\n<\/ul>\n<p>&#171;Mas espere&#187;, &#8212; voc\u00ea dir\u00e1, &#171;os complementos n\u00e3o funcionam, como iniciar um complemento do sistema?&#187;. Vamos assin\u00e1-lo com um novo certificado!<\/p>\n<p>\n<b>Juntando tudo... por que leva tanto tempo?<\/b><\/p>\n<p>Ent\u00e3o, o plano: lan\u00e7ar um novo certificado para substituir o antigo, criar um complemento do sistema e instal\u00e1-lo para os usu\u00e1rios atrav\u00e9s do Normandy. Os problemas, conforme mencionei, come\u00e7aram no dia 4 de maio \u00e0s 4:00, e j\u00e1 \u00e0s 12:44 do mesmo dia, em menos de 9 horas, enviamos a corre\u00e7\u00e3o ao Normandy. Levou mais 6-12 horas para que chegasse a todos os usu\u00e1rios. J\u00e1 n\u00e3o est\u00e1 mal, mas os usu\u00e1rios no Twitter est\u00e3o perguntando por que n\u00e3o conseguimos agir mais r\u00e1pido.<\/p>\n<p>Primeiro, levou tempo para emitir um novo certificado intermedi\u00e1rio. Como mencionei acima, a chave do certificado raiz \u00e9 armazenada de forma aut\u00f4noma em um m\u00f3dulo de seguran\u00e7a de hardware. Isso \u00e9 bom em termos de seguran\u00e7a, pois a raiz \u00e9 usada muito raramente e deve ser bem protegida, mas \u00e9 um pouco inconveniente quando \u00e9 necess\u00e1rio assinar um novo certificado de emerg\u00eancia. Um dos nossos engenheiros teve que ir ao armazenamento HSM. Em seguida, houve tentativas malsucedidas de emitir o certificado correto, e cada tentativa custou uma ou duas horas gastas em testes.<\/p>\n<p>Em segundo lugar, o desenvolvimento do complemento do sistema levou algum tempo. Conceitualmente \u00e9 muito simples, mas at\u00e9 mesmo programas simples exigem aten\u00e7\u00e3o. Quer\u00edamos garantir que n\u00e3o pior\u00e1ssemos a situa\u00e7\u00e3o. O complemento precisava ser testado antes de ser enviado aos usu\u00e1rios. Al\u00e9m disso, o complemento deve ser assinado, mas nosso sistema de assinatura de complementos estava desligado, tivemos que procurar uma solu\u00e7\u00e3o alternativa.<\/p>\n<p>Finalmente, depois de preparar o complemento para envio, foi necess\u00e1rio tempo para a implanta\u00e7\u00e3o. O navegador verifica atualiza\u00e7\u00f5es do Normandy a cada 6 horas. Nem todos os computadores est\u00e3o sempre ligados e conectados \u00e0 internet, ent\u00e3o leva tempo para que a corre\u00e7\u00e3o se espalhe entre os usu\u00e1rios.<\/p>\n<p>\n<b>Etapas finais<\/b><\/p>\n<p>O complemento deve corrigir o problema para a maioria dos usu\u00e1rios, mas n\u00e3o est\u00e1 dispon\u00edvel para todos. Alguns usu\u00e1rios exigem uma abordagem especial:\n<\/p>\n<ul>\n<li>usu\u00e1rios que desativaram complementos ou telemetria\n<\/li>\n<li>usu\u00e1rios da vers\u00e3o Android (Fennec), onde os complementos n\u00e3o s\u00e3o suportados\n<\/li>\n<li>usu\u00e1rios de vers\u00f5es personalizadas do Firefox ESR em empresas, onde n\u00e3o \u00e9 poss\u00edvel ativar a telemetria\n<\/li>\n<li>usu\u00e1rios atr\u00e1s de proxies MitM, j\u00e1 que nosso sistema de instala\u00e7\u00e3o de complementos usa vincula\u00e7\u00e3o de chaves (key pinning), que n\u00e3o funciona com esses proxies\n<\/li>\n<li>usu\u00e1rios de vers\u00f5es antigas do Firefox que n\u00e3o suportam pesquisas\n<\/li>\n<\/ul>\n<p>N\u00e3o podemos fazer nada em rela\u00e7\u00e3o \u00e0 \u00faltima categoria de usu\u00e1rios \u2014 eles ainda precisam atualizar para uma nova vers\u00e3o do Firefox, pois as vers\u00f5es antigas t\u00eam vulnerabilidades graves e n\u00e3o corrigidas. Sabemos que algumas pessoas permanecem em vers\u00f5es antigas do Firefox porque desejam rodar complementos antigos, mas muitos dos complementos antigos j\u00e1 foram portados para as novas vers\u00f5es do navegador. Para os demais usu\u00e1rios, desenvolvemos um patch que instalar\u00e1 um novo certificado. Ele foi lan\u00e7ado como uma vers\u00e3o de corre\u00e7\u00e3o de bugs (<i>nota do tradutor: Firefox 66.0.5<\/i>), portanto, as pessoas o receber\u00e3o \u2014 provavelmente j\u00e1 o receberam \u2014 pelo canal normal de atualiza\u00e7\u00e3o. Se voc\u00ea estiver usando uma vers\u00e3o personalizada do Firefox ESR, entre em contato com seu mantenedor.<\/p>\n<p>Compreendemos que tudo isso n\u00e3o \u00e9 perfeito. Em alguns casos, os usu\u00e1rios perderam dados de complementos (por exemplo, os dados do complemento <a rel=\"nofollow\" href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1549204\">Multi-Account Containers<\/a>).<\/p>\n<p>Esse efeito colateral n\u00e3o p\u00f4de ser evitado, mas acreditamos que, a curto prazo, escolhemos a melhor solu\u00e7\u00e3o para a maioria dos usu\u00e1rios. A longo prazo, buscaremos outras abordagens arquitet\u00f4nicas mais sofisticadas.<\/p>\n<p>\n<b>Li\u00e7\u00f5es<\/b><\/p>\n<p>Primeiro, nossa equipe fez um trabalho incr\u00edvel, criando e enviando uma corre\u00e7\u00e3o em menos de 12 horas ap\u00f3s a descoberta do problema. Como algu\u00e9m que esteve presente nas reuni\u00f5es, posso dizer que, nessa situa\u00e7\u00e3o complexa, as pessoas trabalharam muito arduamente e pouco tempo foi perdido em v\u00e3o.<\/p>\n<p>\u00c9 claro que tudo isso n\u00e3o deveria ter acontecido. \u00c9 evidente que devemos ajustar nossos processos para reduzir a probabilidade de incidentes semelhantes e facilitar a corre\u00e7\u00e3o das consequ\u00eancias.<\/p>\n<p>Na pr\u00f3xima semana, publicaremos o relat\u00f3rios p\u00f3s-morte oficial e uma lista de altera\u00e7\u00f5es que pretendemos implementar. Por enquanto, quero compartilhar meus pensamentos. Em primeiro lugar, deve haver uma maneira melhor de monitorar o estado do que pode ser uma bomba-rel\u00f3gio. Precisamos ter certeza de que n\u00e3o estaremos em uma situa\u00e7\u00e3o onde uma delas detone inesperadamente. Estamos ainda trabalhando nos detalhes, mas, no m\u00ednimo, precisamos fazer um invent\u00e1rio de todas essas coisas.<\/p>\n<p>Em segundo lugar, \u00e9 necess\u00e1rio um mecanismo de entrega r\u00e1pida de atualiza\u00e7\u00f5es aos usu\u00e1rios, mesmo quando \u2014 especialmente quando \u2014 todo o resto n\u00e3o est\u00e1 funcionando. Foi \u00f3timo que conseguimos usar o sistema de &#171;pesquisas&#187;, mas esse \u00e9 um instrumento imperfeito e possui alguns efeitos colaterais indesej\u00e1veis. Em particular, sabemos que muitos usu\u00e1rios t\u00eam a atualiza\u00e7\u00e3o autom\u00e1tica ativada, mas prefeririam n\u00e3o participar das pesquisas (confesso que eu tamb\u00e9m as desabilitei!). Ao mesmo tempo, precisamos de uma maneira de enviar atualiza\u00e7\u00f5es aos usu\u00e1rios, mas, seja qual for a implementa\u00e7\u00e3o t\u00e9cnica interna, os usu\u00e1rios devem ter a capacidade de assinar atualiza\u00e7\u00f5es (incluindo corre\u00e7\u00f5es operacionais), mas renunciar a todo o resto. Al\u00e9m disso, o canal de atualiza\u00e7\u00e3o precisa ser mais responsivo do que \u00e9 atualmente. Mesmo em 6 de maio, ainda havia usu\u00e1rios que n\u00e3o haviam utilizado nem a corre\u00e7\u00e3o nem a nova vers\u00e3o. J\u00e1 est\u00e1vamos trabalhando nessa quest\u00e3o, mas o que ocorreu mostrou o qu\u00e3o importante ela \u00e9.<\/p>\n<p>Finalmente, vamos revisar a arquitetura de seguran\u00e7a das extens\u00f5es para garantir que ela forne\u00e7a um n\u00edvel adequado de seguran\u00e7a com o m\u00ednimo risco de quebrar algo.<\/p>\n<p>Na pr\u00f3xima semana, vamos considerar os resultados de uma an\u00e1lise mais aprofundada do que aconteceu, mas, enquanto isso, ficarei feliz em responder a perguntas por e-mail: ekr-blog@mozilla.com<\/p>\n<p>Fonte: <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.3 - 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\/pt\/blog\/news\/tehnicheskie-podrobnosti-nedavnego-otklyucheniya-dopolnenij-v-firefox\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\/pt\/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\udd47Detalhes t\u00e9cnicos sobre a recente desativa\u00e7\u00e3o de extens\u00f5es no Firefox | ProHoster","description":"Nota do tradutor: Para conveni\u00eancia dos leitores, as datas est\u00e3o apresentadas no hor\u00e1rio de Moscovo. Recentemente, deixamos passar o momento de expira\u00e7\u00e3o de um dos certificados usados para assinar extens\u00f5es.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/tehnicheskie-podrobnosti-nedavnego-otklyucheniya-dopolnenij-v-firefox","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/33377","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=33377"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/33377\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=33377"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=33377"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=33377"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}