Skip to content

Releases

Gilas Browser v0.1.5 (pré-lançamento)

Pre-release

Choose a tag to compare

@guilopes04 guilopes04 released this 18 Oct 07:06

Gilas Browser v0.1.5 (pré-lançamento), para Mac com Apple Silicon. App e .dmg assinados com Developer ID e notarizados pela Apple.

Pré-lançamento aprovado pelo crítico independente (revisão feita por CDP no app empacotado, sem falha encontrada no que foi declarado corrigido). Ele substitui a v0.1.4. Ainda falta a validação com teclas e mouse reais desta versão: use para testar, não como versão estável.

Abra o .dmg, arraste o Gilas Browser para Aplicativos e abra. O macOS não pede nada além de confirmar a abertura.

O que mudou desde a v0.1.4

Esta versão fecha os achados baixos que a v0.1.4 deixou abertos e os da terceira auditoria independente (que também passou por revisão do crítico).

Corrigidos da v0.1.4:

  • Página sem <title>: o rótulo da aba (depois de um erro de rede) e a linha do histórico da paleta não levam mais o nome formatado pelo Chromium; usam o nome tratado pelo app, o mesmo do campo de endereço.
  • A linha do histórico da paleta mostra também o site, ao lado do título.
  • Folha modal: enquanto houver uma folha do app na tela (por exemplo, "Limpar dados de navegação"), os atalhos do menu (como ⌘R) não agem na aba por trás dela.
  • Endereço recusado pelo Chromium (por exemplo, passado por --abas): o campo, a página de erro e a aba mostram o texto pedido, em vez de ficar vazios.
  • Downloads: o arquivo intermediário do Chromium nasce numa pasta de espera privada, nunca na pasta Downloads.
  • IDN: mais confusíveis cirílicos, gregos e armênios sob o domínio de topo da própria escrita; domínio de topo falso (como gov.bŕ); nomes fora da lista com um diacrítico quase invisível; mais 29 nomes muito visitados na comparação.
  • Os testes de página hostil (e2e) agora carregam os cenários https de verdade.
  • Documentação: o modo de janela invisível para testes não esconde as folhas nativas do macOS.

Da terceira auditoria (downloads, paleta de comandos, faixa de origem, privacidade):

  • Downloads: todo download grava numa pasta temporária privada, com a quarentena do macOS aplicada antes de chegar a Downloads; interrupção sem retomada é cancelada; download de uma aba em segundo plano espera a aba entrar na janela; arquivo http numa página https pergunta mesmo com gesto; nome de arquivo limitado.
  • Privacidade: o cache HTTP é separado por site; "Limpar dados" apaga mais vestígios (cache de código do preload); o cache de ícones (favicons) é esvaziado e separado por site; o ícone http de uma página https é pedido por https; um título que muda sem parar não enche o histórico; as pastas de cache ficam fora do Time Machine; o certificado de cliente é pedido por espaço.
  • WebRTC: com proxy configurado, o app não manda mais pacotes UDP por fora do proxy, também nas abas da abertura (as restauradas da sessão e as de --abas).
  • Endereço: o ponto final do host não tira a defesa do domínio de topo sósia; o texto digitado na paleta é a primeira linha e o ↵ o abre; domínio registrável sempre inteiro e em destaque; sufixo público falso no segundo nível (como cóm.mx) fica em punycode.
  • Janela estreita: a faixa com o endereço de origem continua visível quando a barra lateral fica compacta.

Conferência deste build: 628 testes de unidade passam; scripts/confere-build.sh passa (assinatura, hardened runtime, entitlements mínimas, fuses, integridade do app.asar, Gatekeeper, Info.plist com a quarentena de arquivos e abertura a partir do .dmg).

Todo o resto da v0.1.4 continua: file:// fechado, fuses do Electron, entitlements mínimas, bloqueador de pop-ups, domínio sempre visível na barra, Buscar na página (⌘F, ⌘G, ⇧⌘G), sem telemetria.

Limites conhecidos

  • O tratamento de IDN é mais rígido que o do Chrome: um nome legítimo de outra escrita sob .com, .net e semelhantes aparece em punycode, mesmo sendo verdadeiro. O campo mostra o domínio real e a falha é para o lado seguro. Na outra direção, a comparação com os sites muito visitados usa uma lista fechada: um nome fora da lista com uma letra latina legítima de outra língua ou um diacrítico aparece em Unicode.
  • Em um caso raro (um endereço que o Chromium aceita e o Node recusa, e que responde), uma linha intermediária do histórico pode guardar o título derivado do endereço, em Unicode. O campo de endereço continua mostrando o domínio real.
  • A impressão nativa ainda é possível depois de document.open() ou em shadow DOM declarativo; continua exigindo um clique.
  • O bloqueio do ponteiro (pointerLock) não mostra aviso.
  • O "Salvar como" de uma imagem e o painel de impressão do macOS não bloqueiam os atalhos do menu.
  • Cookies de terceiros continuam ativos e sem partição, como no padrão do Chrome; um formulário de página https enviado para http sai sem aviso.
  • Com proxy, o WebRTC foi medido com --proxy-server; o proxy do sistema (PAC ou Ajustes de Rede) não foi medido.
  • Não há atualização automática: acompanhe a página de Releases.

Pendências

  • Validação com teclas e mouse reais da v0.1.5.
  • Senhas do iCloud: aguardam a entitlement da Apple (pedido enviado).

SHA-256

fd6d3fcc451972c33333bcaa356cf535104d7cd042a4142d3c1c56bedbd9c4bc  Gilas-Browser-0.1.5-arm64.dmg
d49d1cb4a8cbaf62a6df7b93d66b8ee8086d3687cc100d34d891c5f782c8334a  Gilas-Browser-0.1.5-arm64.zip

Gilas Browser v0.1.4 (pré-lançamento)

Pre-release

Choose a tag to compare

@guilopes04 guilopes04 released this 17 Oct 23:43

Substituída pela v0.1.5. A v0.1.5 fecha os achados baixos desta versão e os da terceira auditoria independente. Use a v0.1.5.

Gilas Browser v0.1.4 (pré-lançamento), para Mac com Apple Silicon. App e .dmg assinados com Developer ID e notarizados pela Apple.

Pré-lançamento aprovado pelo crítico independente (3ª revisão, feita por CDP no app empacotado). Ele substitui a v0.1.3, que tinha um achado de gravidade alta (uma página podia abrir um pop-up e fazer a barra de endereço mostrar um endereço falso), corrigido aqui: não use a v0.1.3. Ainda não passou pela validação com teclas e mouse reais: use para testar, não como versão estável.

Abra o .dmg, arraste o Gilas Browser para Aplicativos e abra. O macOS não pede nada além de confirmar a abertura.

O que mudou desde a v0.1.3

Segurança (achados da segunda auditoria independente e das três revisões do crítico):

  • Barra de endereço falsa por pop-up: o pop-up aberto pela página nasce em branco e só mostra um endereço depois que a navegação confirma.
  • Nomes de site com letras de outras escritas (IDN): o campo de endereço só mostra Unicode quando a escrita do nome é a do domínio de topo (por exemplo, cirílico sob .ru). Nos demais casos mostra o nome em punycode, o que impede nomes parecidos com sites conhecidos. Letras latinas especiais só aparecem em Unicode sob o domínio do país que as usa. Marcas combinantes, símbolos e letras modificadoras ficam sempre em punycode. Antes de mostrar Unicode, o nome também é comparado com os sites mais visitados.
  • O ícone (favicon) baixado pelo app passa pela guarda de rede local.
  • Atrás de proxy, a guarda de rede local não consulta mais a DNS local.
  • "Limpar dados de navegação" apaga também o estado de rede, o HSTS, o cache de código e os dados de rastreamento do Chromium.
  • URL com usuário e senha não vai para o histórico, a sessão nem a paleta.
  • Os logs do app não levam mais a URL completa (pop-up bloqueado, download recusado).
  • Downloads: um gesto do usuário libera um download; o segundo pergunta se você permite vários arquivos. O nome do arquivo mantém a extensão, e "Abrir em outro app" atribui o pedido ao quadro que o fez.
  • Impressão e diálogos: window.print exige um clique, e a regra vale também em iframes vazios. alert e confirm respeitam o sandbox e o descarregamento da aba.
  • Links entregues pelo macOS: o app registrado para http e https abre o link que o sistema entrega.
  • O texto do pedido de rede local do macOS agora explica o motivo.
  • A documentação diz que NODE_OPTIONS é neutralizado pelo fuse do Electron, e não pela guarda da linha de comando.

Para testes: uma janela invisível e sem foco para validar o app por CDP sem atrapalhar quem usa o Mac. Só funciona onde a depuração já é permitida (--dev com perfil separado e keychain de mentira); não muda nada no uso normal.

Conferência deste build: 567 testes de unidade passam; scripts/confere-build.sh passa (assinatura, hardened runtime, entitlements mínimas, fuses, integridade do app.asar, Gatekeeper, Info.plist e abertura a partir do .dmg). O crítico testou 276 nomes de site no campo de endereço do build empacotado do mesmo código (commit 390fb42) e todos seguiram a regra.

Todo o resto da v0.1.3 continua: file:// fechado, fuses do Electron, entitlements mínimas, bloqueador de pop-ups, domínio sempre visível na barra, Buscar na página (⌘F, ⌘G, ⇧⌘G), sem telemetria.

Limites conhecidos

  • O tratamento de IDN é mais rígido que o do Chrome: um nome legítimo de outra escrita sob .com, .net e semelhantes aparece em punycode, mesmo sendo verdadeiro. O campo mostra o domínio real e a falha é para o lado seguro.
  • Quando a página não tem <title>, o título guardado (rótulo da aba depois de um erro de rede e linha do histórico da paleta) usa a formatação de nomes do Chromium, não a regra mais rígida do campo de endereço. Confie no campo de endereço, não no título. Já era assim desde a v0.1.0.
  • A impressão nativa ainda é possível depois de document.open() ou em shadow DOM declarativo; continua exigindo um clique.
  • O bloqueio do ponteiro (pointerLock) não mostra aviso.
  • Não há atualização automática: acompanhe a página de Releases.

Pendências

  • Validação com teclas e mouse reais da v0.1.4: em andamento.
  • Senhas do iCloud: aguardam a entitlement da Apple (pedido enviado).

SHA-256

aa72e8545717d351d20c99e717eb816b5ba24e9d4726543c8baa826b9e558e88  Gilas-Browser-0.1.4-arm64.dmg
25d40b49da1dd98ccefb5f0972716ae44154203bb556dc1977c6b4a833acb1a7  Gilas-Browser-0.1.4-arm64.zip

Gilas Browser v0.1.3 (pré-lançamento)

Pre-release

Choose a tag to compare

@guilopes04 guilopes04 released this 17 Oct 18:29

Substituída pela v0.1.4. Esta versão tem um achado alto corrigido na v0.1.4 (barra de endereço falsa por pop-up) e outros médios. Não instale a v0.1.3: use a v0.1.4.

Gilas Browser v0.1.3 (pré-lançamento), para Mac com Apple Silicon. App e .dmg assinados com Developer ID e notarizados pela Apple.

Pré-lançamento validado: o crítico independente, numa validação instalada por CDP a partir deste .dmg exato, não encontrou bug alto nem bloqueante. Ainda não passou por validação com teclas e mouse reais nem pela segunda auditoria independente: use para testar, não como versão estável. As versões anteriores (v0.1.0 a v0.1.2) foram retiradas das Releases: a v0.1.2 tinha uma falha de segurança corrigida aqui.

Abra o .dmg, arraste o Gilas Browser para Aplicativos e abra. O macOS não pede nada além de confirmar a abertura.

O que mudou desde a v0.1.2

Segurança (achados A1, A2 e A3 da revisão da v0.1.2, cada um reproduzido no app empacotado antes de corrigir):

  • Proteção contra processo local: --dev só vale com um perfil separado (--user-data-dir numa pasta diferente da do app); senão o app avisa e sai. Nesse modo ele usa sempre a keychain de mentira, então uma cópia do perfil real não entrega os cookies decifrados.
  • Opções perigosas do Chromium recusadas no app empacotado: certificados e origens inseguras, sandbox, resolução de nomes e proxy, consentimento automático de câmera e microfone, registro do tráfego (--ssl-key-log-file e a variável SSLKEYLOGFILE), entre outras. O aviso lista só os nomes, nunca os valores.
  • O app empacotado é reconhecido pelo caminho do app.asar, não pelo nome do executável: renomear o executável não desliga mais a guarda da linha de comando.
  • Diálogos nativos (alert, confirm) sempre desligados nas abas de página, mesmo sem o preload. O caso do alert de um iframe about:blank dentro de um pop-up não se reproduziu no app empacotado; a mudança é preventiva.
  • Validação instalada por CDP (crítico independente, a partir deste .dmg): A1 em 7 variantes, A2 com 188 de 188 opções recusadas, A3, as páginas hostis E1 a E17, uso (sessão restaurada, espaços isolados, ⌘F, suspensão), 263,8 MB com 10 abas e só a ativa carregada.
  • Conferência deste build: 510 testes de unidade passam; scripts/confere-build.sh passa (assinatura, hardened runtime, entitlements mínimas, fuses, integridade do app.asar, Gatekeeper e abertura a partir do .dmg).

Todo o resto da v0.1.2 continua: file:// fechado, fuses do Electron, entitlements mínimas, bloqueador de pop-ups, downloads com gesto, domínio sempre visível na barra, Buscar na página (⌘F, ⌘G, ⇧⌘G), sem telemetria.

Pendências conhecidas

  • Validação com teclas e mouse reais ainda não foi feita: toda a validação instalada foi por CDP.
  • NODE_OPTIONS=--inspect não é recusado pela guarda da linha de comando, embora a documentação diga que é. Sem exposição: o fuse do Electron desliga essa variável e o inspetor não abre. Ajuste de documentação na próxima versão.
  • Download sem gesto: na validação final, 15 de 15 rodadas pediram confirmação e nada foi gravado em Downloads. Uma medição anterior teve 2 gravações em 30 rodadas que não puderam ser separadas de uma tecla digitada no instante da abertura; fica em observação.
  • Senhas do iCloud: aguardam a entitlement da Apple (pedido enviado).

SHA-256

ef485cdbecdd63f6de0ff428d2cc7d4d9cfe1a1c8f29aa6f490b91a05609cc92  Gilas-Browser-0.1.3-arm64.dmg
cc4057040e752a795a2afe7328b49f2662f9fb77d40757f1046e9b5bc922649e  Gilas-Browser-0.1.3-arm64.zip