Justificativa de Permissões da Extensão
SmartContentGuard Browser Extension v0.9.0 (Beta)
Data do documento: 5 de dezembro de 2025
Destinatário: Equipes de Revisão — Chrome Web Store, Mozilla Add-ons, Microsoft Edge Add-ons
Desenvolvedor: SmartContentGuard Team
Versão: 1.0
Visão Geral
Este documento fornece justificativa técnica detalhada para cada permissão declarada no manifest.json do SmartContentGuard v3.1.0. Cada permissão está vinculada a um ou mais recursos específicos da extensão e é utilizada apenas na medida necessária para cumprir a função de análise de segurança aviônica (NOTAM, METAR, TAF ).
Princípio orientador: Escopo mínimo necessário. Nenhuma permissão é usada para fins secundários, telemetria não consentida ou coleta de dados de navegação ampla.
Permissões Declaradas
json
{
"permissions": [
"activeTab",
"storage",
"scripting",
"tabs",
"contextMenus",
"downloads"
]
}1. activeTab
Descrição
Permite que a extensão acesse o conteúdo da aba ativa do navegador para realizar análise automática de informações aeronáuticas críticas (NOTAM, METAR, TAF).
Funcionamento Automatizado
O SmartContentGuard opera de forma proativa e automatizada para reduzir a carga cognitiva do operador aeronáutico:
Detecção Automática de Domínio
Usuário acessa página de portal aeronáutico oficial (ex: AISWEB, REDEMET)
Sistema verifica automaticamente se o domínio está na whitelist aprovada
Identifica o tipo de conteúdo esperado (NOTAM ou Meteorologia)
Análise em Tempo Real
Extensão monitora carregamento da página
Assim que DOM estiver pronto, inicia varredura de termos críticos
Realça automaticamente palavras-chave de segurança operacional
Processamento Contínuo
Sistema continua monitorando atualizações dinâmicas (NOTAMs novos, METARs atualizados)
Aplica destacamento visual sem intervenção manual
Atualiza tooltips e avisos conforme conteúdo muda
Casos de Uso Típicos
✅ Análise Automática (Modo Padrão)
Usuário abre
https://aisweb.decea.mil.br/?i=aerodromos&codigo=SBBRSistema detecta domínio whitelist + perfil NOTAM
Realça automaticamente termos críticos:
CLSD,INOP,EMERGENCYNenhuma ação manual necessária
✅ Análise sob Demanda (Opcional)
Usuário passa o mouse sobre o floating lateral e acessa popup
Usuário seleciona texto e usa menu de contexto “🔍 Busca Forçada”
Assim a analise sera forçada sobre a pagina atual e perfil de pesquisa ativo em configurações.
Justificativa do Modo Automático
🎯 Redução de Carga de Trabalho
Operadores aeronáuticos lidam com dezenas de NOTAMs e METARs por turno
Análise manual de cada documento é inviável operacionalmente
Sistema automatizado permite identificação instantânea de riscos críticos
⚡ Segurança Operacional
Informações críticas (pista fechada, equipamento inoperante) não podem ser perdidas
Destacamento automático garante que operador veja imediatamente termos de risco
Conformidade com ICAO Annex 15 (disseminação eficaz de informações aeronáuticas)
🔒 Escopo Controlado
Automação restrita a domínios whitelist (portais aeronáuticos oficiais)
Análise não ocorre em sites bancários, redes sociais ou páginas genéricas
SecurityWhitelistdesativa silenciosamente em contextos não aprovados
Detalhes Técnicos
// Fluxo de ativação automática
1. Content script carrega na página (manifest content_scripts)
2. security-whitelist.js verifica hostname
3. Se hostname ∈ APPROVED_DOMAINS:
a. Identifica perfil (NOTAM vs METAR vs TAF)
b. Carrega dicionário de termos críticos
c. Inicia análise DOM automática
d. Aplica realce visual
4. Se hostname ∉ APPROVED_DOMAINS:
a. Desativa silenciosamente
b. Nenhum processamento executado
Dados Acessados
✅ Conteúdo textual da página (apenas em domínios whitelist)
✅ Estrutura DOM para aplicação de realce visual
❌ Formulários, campos de senha ou dados de login
❌ Cookies ou tokens de autenticação
❌ Histórico de navegação ou abas em background
Por Que É Necessária
Identificação de risco: Detectar termos críticos sem análise manual
Eficiência operacional: Processar múltiplos documentos simultaneamente
Conformidade regulatória: Cumprir requisitos ICAO de processamento eficaz de informações
Impacto de Segurança
✅ Baixo risco com múltiplas camadas de mitigação:
Mitigação 1: Whitelist restritiva
Mitigação 2: Validação HTTPS obrigatória
Mitigação 3: Contexto seguro verificado (
window.isSecureContext)Mitigação 4: Content scripts Manifest V3 isolados (sem acesso a
windowglobal da página)Mitigação 5: Nenhuma transmissão de dados analisados para servidores externos
2. storage
Descrição
Permite que a extensão leia e escreva dados localmente usando as APIs chrome.storage.local e chrome.storage.sync (se aplicável).
Dados Armazenados
Os dados armazenados incluem:
Preferências de interface: Idioma selecionado (pt-BR, en-US, es-ES, fr-FR)
Perfis de análise: Configuração de quais órgãos aeronáuticos estão ativos
Opções visuais: Preferências de realce (cores, estilos), modo claro/escuro
Cache de validação: Domínios já verificados, para otimizar verificações futuras
Histórico de sessão: Estado da extensão entre recarregamentos
Dados NÃO Armazenados
❌ Histórico de navegação
❌ Dados de abas abertas
❌ Conteúdo de NOTAMs/METARs/TAFs analisados
❌ Identificadores de usuário ou endereços IP
❌ Cookies ou tokens de autenticação
❌ Qualquer informação pessoal identificável (PII)
Localização dos Dados
Todos os dados são armazenados localmente no dispositivo do usuário. Nenhum dado é transmitido a servidores SmartContentGuard durante armazenamento. Os dados permanecem no perfil local do navegador.
Detalhes Técnicos
javascript
// Exemplo de armazenamento local
chrome.storage.local.set({
'language': 'pt-BR',
'activeProfiles': ['NOTAM', 'METAR'],
'highlightColor': '#FFD700'
});
// Os dados não saem do dispositivo
// Nenhuma chamada para servidores externos
Por Que É Necessária
Persistência: Manter preferências do usuário entre sessões
Offline: Extensão funciona sem conexão (verificações locais continuam)
Eficiência: Cache de decisões reduz reprocessamento
Impacto de Segurança
✅ Baixo risco. Os dados são não-sensíveis (preferências UI) e permanecem no dispositivo. Usuários podem limpar dados acessando chrome://settings → Privacidade → Limpar dados de navegação.
3. tabs
Descrição
Permite que a extensão acesse informações sobre abas abertas, incluindo URLs, títulos e status.
Informações Acessadas
json
{
"url": "https://aisweb.decea.mil.br/AIS/",
"title": "AISWEB - Portal de Informações Aeronáuticas",
"status": "complete",
"active": true,
"windowId": 1,
"id": 123456
}
Uso Específico
1. Identificação de Domínio
javascript
// SecurityWhitelist verifica URL para saber se deve ativar
const urlObj = new URL(tab.url);
const hostname = urlObj.hostname;
const isApproved = APPROVED_DOMAINS.includes(hostname);
2. Validações de Segurança
javascript
// HTTPS_VALIDATION
const isHTTPS = tab.url.startsWith('https://');
// EXACT_DOMAIN_MATCH
const expectedDomain = 'aisweb.decea.mil.br';
const actualDomain = new URL(tab.url).hostname;
const matches = expectedDomain === actualDomain;
// SUBDOMAIN_AUTHORIZATION
const allowedSubdomains = ['aisweb', 'api'];
const subdomain = actualDomain.split('.');
const isSubdomainAllowed = allowedSubdomains.includes(subdomain);
3. Detecção de Homógrafos (Anti-Phishing)
javascript
// HOMOGRAPH_ATTACK_DETECTION
const suspiciousPatterns = [
/aisweb-decea\.mil\.br/, // com hífen (falso)
/aisweb.decea.mil.br.phishing.site/, // domínio injetado
/aisweԪ.decea.mil.br/ // caracter Unicode similar
];
const isSuspicious = suspiciousPatterns.some(pattern =>
pattern.test(tab.url)
);
Dados NÃO Acessados
❌ Conteúdo da página (acesso via
scripting, nãotabs)❌ Histórico de navegação passado
❌ Cookies ou sessões
❌ Informações de outras janelas/abas sem consentimento
❌ Download history
Por Que É Necessária
Identificação: Saber se página atual é domínio aeronáutico oficial
Segurança: Validar URL contra ataques de phishing e homógrafos
Escopo: Executar verificações sem fazer fetch externo
Impacto de Segurança
✅ Baixo risco. A permissão acessa apenas metadados da URL. Não permite leitura de conteúdo da página. As validações aumentam segurança contra phishing.
4. downloads
Descrição
A permissão downloads permite que a extensão inicie downloads automáticos de documentos de texto embarcados na própria extensão para a pasta padrão de downloads do sistema operacional, sem exibir diálogo “Salvar como…”.
Tipos de Arquivos Disponibilizados
A extensão disponibiliza exclusivamente arquivos legais e regulatórios estáticos, organizados por idioma (pt-BR, en-US, es-ES, fr-FR) e por contexto (núcleo legal geral e vertical de aviação).
Principais categorias:
Core / Geral (por locale) – diretório:
src/legal/core/<locale>/AVIATION_DISCLAIMER.txt– Aviso legal aeronáutico.LICENSE.txt– Termos de licença da extensão.QUICK_TERMS.txt– Termos resumidos / visão rápida.README_LEGAL.txt– Orientações legais e explicações de uso.
Vertical / Aviation (por locale) – diretório:
src/legal/vertical/aviation/<locale>/Exemplos:
EASA_COMPLIANCE.txtFAA_COMPLIANCE.txtICAO_STANDARDS.txtLATAM_COMPLIANCE.txtDECEA_INTEGRATION.txtRBAC_COMPLIANCE.txt
Características importantes:
100% dos arquivos são empacotados dentro da extensão.
Não há qualquer personalização com dados do usuário.
São textos de referência legal/regulatória e compliance aeronáutico.
Fluxo de Download Automatizado
Os downloads são disparados somente após ação explícita do usuário na UI da extensão (por exemplo, clicar em “Baixar Aviso Legal” ou “Exportar Documentos de Conformidade”).
Exemplo simplificado de implementação atual:
javascript
async initiateDownload(url, fileName) {
console.log(`📁 Iniciando download via Chrome API: ${url}`);
return new Promise((resolve, reject) => {
const downloadOptions = {
url: url, // chrome.runtime.getURL('src/legal/.../ARQUIVO.txt')
filename: fileName, // Nome simples do arquivo
saveAs: false, // Sem diálogo; vai direto para a pasta de downloads
conflictAction: 'uniquify', // Evita sobrescrever arquivos existentes
};
chrome.downloads.download(downloadOptions, downloadId => {
if (chrome.runtime.lastError) {
reject(new Error(chrome.runtime.lastError.message));
} else {
resolve(downloadId);
}
});
});
}
Comportamento observado:
O arquivo é gravado diretamente na pasta padrão de downloads do sistema (por exemplo,
~/Downloadsno macOS), sem criação de subdiretórios.Em caso de nomes repetidos, o navegador gera automaticamente um nome único (
conflictAction: 'uniquify').
Dados Transmitidos
❌ Nenhum dado do usuário é enviado a qualquer servidor.
❌ Nenhuma informação pessoal é incluída nos arquivos baixados.
✅ O download é puramente local: recurso empacotado → pasta de Downloads do usuário.
Não há chamadas HTTP externas associadas ao ato de baixar esses arquivos.
Por Que É Necessária
Transparência: garante que o usuário e equipes de compliance possam baixar e arquivar localmente:
Avisos legais aeronáuticos.
Termos de uso e licença.
Documentos de conformidade (ICAO, EASA, FAA, DECEA, RBAC etc.).
Conformidade regulatória: facilita auditorias, permitindo manter cópias datadas dos documentos legais e de compliance usados pela ferramenta.
Operação offline: os arquivos podem ser consultados sem conexão, diretamente a partir da pasta de downloads.
Impacto de Segurança
✅ Risco praticamente nulo:
Conteúdo baixado é estático, não sensível e independente de dados do usuário.
Não há transmissão de informações para terceiros.
A ação é sempre iniciada por interação explícita do usuário (cliques na UI da extensão), não ocorre de forma oculta ou em background sem contexto.
Resumo de Segurança
Matriz de Risco por Permissão
| Permissão | Risco | Mitigação | Status |
|---|---|---|---|
activeTab | ✅ Baixo | Ativação via gesto explícito | ✓ Aceito |
storage | ✅ Baixo | Dados locais não-sensíveis | ✓ Aceito |
scripting | ⚠️ Médio | Whitelist domínios, HTTPS, contexto seguro | ✓ Mitigado |
tabs | ✅ Baixo | Apenas metadados URL | ✓ Aceito |
downloads | ✅ Nulo | Arquivos locais públicos | ✓ Aceito |
Princípios Aplicados
✅ Princípio do Menor Privilégio
Cada permissão solicitada tem justificativa clara
Nenhuma permissão é usada para fins secundários
✅ Transparência Total
Usuário sabe exatamente o que cada permissão faz
Documentação completa disponível
✅ Controle do Usuário
Análise ocorre apenas em domínios aprovados
Usuário pode desabilitar extensão a qualquer momento
Dados locais podem ser limpos via navegador
✅ Segurança em Camadas
ContentDetector (runtime)
CSP (Content Security Policy)
Validação de estrutura
Sandboxing de content scripts
Validações de domínio/HTTPS
✅ Conformidade Regulatória
LGPD (Brasil)
GDPR (Europa)
Regulamentos aeronáuticos (ICAO, FAA, ANAC)
Casos de Uso Típicos
Caso 1: Operador Analisa NOTAM/METAR no AISWEB
Operador acessa https://aisweb.decea.mil.br.
O SmartContentGuard detecta automaticamente que o domínio está na whitelist aeronáutica (tabs + lógica interna).
Extensão valida HTTPS e contexto seguro e inicializa o Resource Manager (scripting + storage).
content-detector.jsidentifica se a página contém NOTAM, meteorologia ou ambos (scripting).Sistema executa análise automática e realça termos críticos diretamente no DOM (scripting).
Barra superior e floating lateral exibem contagem de riscos e status do domínio (scripting).
Operador pode usar os botões de REFRESH / LIMPAR / CONFIG para ajustar a análise e visualização (scripting + storage).
Caso 2: Operador Força Nova Análise em Página Dinâmica
Operador permanece em uma página dinâmica do AISWEB/REDEMET com NOTAM/METAR sendo atualizados em tempo real.
Após nova carga de conteúdo, clica no botão REFRESH da barra superior ou em Busca Forçada no floating lateral.
content-detector.jsrevarre o DOM, aplicando novamente as regras de detecção e destaque (scripting).Termos críticos recém-carregados são realçados, sem necessidade de recarregar a página.
Caso 3: Operador Baixa Documentação Legal
Operador abre o popup ou a UI de configurações da extensão.
Seleciona uma opção como “Baixar Aviso Legal” ou “Baixar Compliance ICAO/EASA/DECEA”.
A extensão resolve o arquivo correto com base no idioma atual (pt-BR, en-US, es-ES, fr-FR) e contexto (core/aviation).
É iniciado um download automático via
chrome.downloads.download, gravando o arquivo de texto diretamente na pasta padrão de downloads do sistema, sem diálogo “Salvar como…” (downloads).Nenhuma conexão externa é efetuada; o conteúdo vem exclusivamente de arquivos empacotados na própria extensão.
Conformidade com Políticas de Store
Chrome Web Store ✅
Manifest V3 obrigatório: ✓ Implementado
Permissões justificadas: ✓ Este documento
Sem enganação: ✓ Função clara
Sem dados coletados não consentidos: ✓ Storage apenas local
Mozilla Add-ons ✅
Content scripts auditados: ✓ Seguro
Sem comunicação não documentada: ✓ Apenas domínios aviônicos
Sem telemetria oculta: ✓ Storage local apenas
Microsoft Edge Add-ons ✅
Manifest V3 suportado: ✓ Sim
Permissões transparentes: ✓ Este documento
Segurança padrão: ✓ CSP, sandboxing, whitelist
FAQ para Reviewers (Atualizado)
P: Por que a extensão injeta content scripts em múltiplos domínios?
R: O SmartContentGuard utiliza content-detector.js como orquestrador central. O content script é carregado em páginas de navegação normal, mas a lógica de segurança interna só ativa análise completa em domínios aeronáuticos whitelist (AISWEB, REDEMET, Aviation Weather, etc.). Em outros domínios, o script apenas avalia o hostname para fins de status de domínio (floating lateral) e desativa qualquer análise de conteúdo. Isso é necessário para lidar com arquiteturas complexas de portais aeronáuticos (iframes, subdomínios dinâmicos) sem depender de patterns extremamente específicos que quebrariam com mudanças de infraestrutura.
P: Dados do usuário são enviados a servidores?
R: Não. A extensão usa chrome.storage.local e, quando aplicável, chrome.storage.sync apenas para preferências locais (idioma, tema, perfis ativos, chave ATIVO/DESATIVO). Nenhuma permissão é utilizada para enviar conteúdo de NOTAM/METAR/TAF, histórico de navegação ou qualquer dado pessoal para servidores SmartContentGuard ou terceiros.
P: Como a extensão protege contra phishing e domínios falsos?
R: A permissão tabs é usada para ler apenas metadados de URL (protocolo, hostname) e aplicar:
Validação de HTTPS e contexto seguro.
Comparação exata de domínio com whitelist aeronáutica.
Regras de detecção de homógrafos e domínios visualmente semelhantes a portais oficiais.
O módulo de análise de conteúdo (via
scripting) só é ativado se o domínio passar por essas validações e estiver na whitelist.
P: O que acontece se um site não está na whitelist?
R: Para domínios não whitelist:
O analisador de conteúdo é desativado silenciosamente.
Nenhuma varredura automática de DOM para NOTAM/METAR/TAF é executada.
Nenhum dado da página é coletado ou armazenado.
Opcionalmente, o floating lateral pode exibir apenas um status genérico (por exemplo, “Domínio não aeronáutico”) sem inspecionar conteúdo.
P: Posso revisar o código de segurança?
R: Sim. Todo o código da extensão (incluindo content-detector, analisadores e validações de domínio) é entregue em JavaScript legível como parte do pacote enviado à store. Revisores podem inspecionar diretamente o código-fonte empacotado durante o processo de revisão. Se ainda assim for necessário contexto adicional (diagramas, documentação técnica estendida), podemos fornecê-lo sob demanda via support@notamspot.com.
P: Há telemetria ou analytics?
R: Não. A extensão não implementa telemetria, não usa Google Analytics nem serviços de tracking.
Nenhum evento de uso (cliques, páginas visitadas, termos analisados) é enviado para servidores.
Todas as decisões de análise ocorrem localmente, no navegador.
O único uso de
downloadsé exportar documentos legais estáticos empacotados na extensão, por ação explícita do usuário.
Links de Teste da Extensão
Para validar a funcionalidade do SmartContentGuard em ambientes reais, os revisores podem clicar diretamente nos links abaixo após instalar a extensão. A análise será iniciada automaticamente.
AISWEB (Brasil — DECEA)
Link direto: https://aisweb.decea.mil.br/?i=aerodromos&codigo=SBGR
Testa detecção termos de NOTAMs brasileiros.
Aviation Weather Center (EUA — NOAA/NWS)
Link direto: https://aviationweather.gov/data/metar/?ids=SBGR%2CSBSP%2CSBBR%2CSBKP%2CSBGL%2CSBRF%2CSBSV%2CSBCT%2CSBPA%2CSBCF%2CSBRJ%2CSBFI%2CSBFZ%2CSBCY%2CSBBE%2CSBMQ%2CSBCG%2CSBJP%2CSBFL%2CSBMN%2CSBPV%2CSBVT%2CSBRB%2CSBJU%2CSBEG&taf=1
Testa análise de METARs/TAFs de 24 aeroportos brasileiros em formato internacional, validação HTTPS e realce de condições meteorológicas críticas.
FAA FNS NOTAM Search (EUA)
Portal oficial: https://notams.aim.faa.gov/notamSearch/nsapp.html#/
Para testes, utilize a seguinte sequência de indicativos ICAO:
KJFK, KLAX, KORD, KATL, KDFW, KDEN, KSFO, KLAS, KPHX, KIAH, KMIA, KSEA, KEWR, KMCO, KBOS, KDCA, KFLL, KBWI, KMDW, KPHL, KLGA, KDTW, KMSN, PANC, PHNL.
Este link permite validar a busca e a análise de NOTAMs emitidos pela FAA; após o carregamento da página, insira os códigos ICAO no campo apropriado e clique no botão “REFRESH” na parte superior para que os NOTAMs sejam exibidos e analisados pela extensão.
Contato para Revisores
Para dúvidas técnicas ou solicitar acesso a source code:
E-mail: support@notamspot.com
- Subject: [STORE_REVIEW] Permissões SmartContentGuard v0.9.0 (Beta).
Documento: Justificativa de Permissões da Extensão
Versão: 0.9.0 (Beta)
Data: 5 de dezembro de 2025
Responsável: SmartContentGuard Team
Status: Pronto para Submissão às Stores

