O que o Brave remove do mecanismo do Chromium? Seguir
(Observe que esta página é um trabalho em andamento e pode ser atualizada com frequência)
O Brave para PC foi desenvolvido com base no projeto Chromium de código aberto. Adicionamos recursos sobre o que já existe e também removemos recursos ou partes do código. Esses desvios que fazemos e que afetam o código principal do Chromium são feitos por meio de patches.
O Chromium não é o mesmo que o Google Chrome. Para conhecer algumas diferenças, consulte https://chromium.googlesource.com/chromium/src/+/master/docs/chromium_browser_vs_google_chrome.md.
Como funciona
Se você quisesse fazer uma auditoria do código, começaria pelo repositório brave-browser. Nosso wiki possui instruções sobre quais etapas precisam ser seguidas para realizar um build após clonar o código-fonte
A fonte de cromo é buscada
O utilitário gclient (parte das ferramentas do depot) buscará o código-fonte oficial do Chromium. A tag que é buscada é capturada em nosso package.json (por exemplo, 70.0.3538.35). O download de todo o código-fonte será feito na pasta ./src/
O código do Brave é buscado
Como parte do processo de configuração, também buscamos nosso próprio código. O repositório brave-core contém o código que torna o navegador Brave. O ramo que deve ser verificado também está contido no package.json. Há também um arquivo DEPS no brave-core que extrai subdependências (como a brave-extension)
Os ganchos são executados
Depois que a sincronização do gclient é executada e obtém todo o código (incluindo o brave-core), os hooks são executados. Um dos ganchos executados aplica os patches(que você pode ver aqui) que estão contidos no brave-core. Se quiser saber mais detalhes sobre COMO funciona a aplicação de patches, você pode ver nossa página wiki de aplicação de patches.
Quais recursos do Chromium foram removidos por motivos de privacidade/segurança?
Serviços & Recursos que desativamos totalmente
- Chrome Privacy Sandbox. Existem várias APIs agrupadas juntas no Privacy Sandbox e nosso objetivo é desativar todas devido às nossas preocupações.
- A integração de contas do Google ("GAIA") está desativada
- Todos os recursos que enviam dados ao Google são removidos das configurações
- A pré-busca de DNS está desativada
- O rastreador de URLs do Google Chrome está desativado
- A confiabilidade do serviço de domínio está desativada
- As extensões em linha estão desativadas
- A sincronização em segundo plano está desativada
- Hiperlink
pingatributo está desativado - Desativar a API da bateria
- Desativar a API do WebBluetooth
- O upload do registro de depuração do WebRTC está desativado
- O upload de configurações após a redefinição do perfil está desativado
- A recuperação das configurações padrão do OEM após a redefinição do perfil está desativada
- O upload do registro de falhas de rastreamento está desativado
- O Google Cloud Messaging está desativado
- O Firebase Cloud Messaging está desativado
- As atualizações do canal do cliente push estão desativadas
- O rastreador de tempo de rede está desativado
- A normalização de endereços assistida pelo Google está desativada
-
Recursos específicos são desativados na inicialização por meio da CLI (procure por
disabled_features) - Remover o repositório dl.google.com dos pacotes do Linux
- Desativar relatórios de métricas
- Desativar sugestões de navegação de URLs semelhantes
- Desativar observadores de relatórios e API de relatórios
- Desativar a rolagem para o fragmento de texto
- Desativar sensores de movimento
- Desativar navigator.credentials
- Desativar a integração do Android OTP
- Desativar o SXG
- Desativar NFC
- Desativar WebBundles
- Desativar dicas de cliente (lang)
- Desativar soquetes diretos / brutos
- Desativar a detecção de inatividade
- Desativar acionadores de notificação
- Desativar a API do sistema de arquivos
- Desativar a API de bens digitais
- Desativar a API serial
- Desativar o Aprendizado Federado de Coortes (FLoC)
- Desativar a API de informações de rede
- Auditoria de SCT
- Rastreador de afiliação de site (parte do Gerenciador de senha)
- Desativa kOptimizationGuideFetchingForSRP
- Desativar Web Environment Integrity
- Desativar Popular Sites (também conhecido como Top Sites)
- Desativar Trust Tokens / Private State Tokens
Serviços que você pode proxy através do Brave Servers
O Google não recebe nenhuma informação sobre qual cliente está realizando essas solicitações (nem mesmo o seu endereço IP).
- As solicitações do SafeBrowsing são enviadas por proxy
- As solicitações de geolocalização são proxies
- As atualizações de plug-ins são enviadas por proxy
- As solicitações de revogação de certificados são enviadas por proxy
- As solicitações de CRLSets são representadas
- As solicitações de atualizações de componentes são enviadas por proxy
- As solicitações de dicionários de verificação ortográfica são representadas
- As solicitações no devtools são proxied
- Solicitações de ícone de página do mecanismo de busca (Android) são feitas por proxy
Pontos de extremidade com proxy
https://dl.google.com/release2/chrome_component/*crl-set*https://*.gvt1.com/edgedl/release2/chrome_component/*https://*.gvt1.com/edgedl/chrome/dict/*.bdichttps://storage.googleapis.com/update-delta/hfnkpimlhhgieaddgfemjhofmfblmnib/.+crxdhttps://safebrowsing.googleapis.com/https://sb-ssl.google.com/https://safebrowsing.google.comhttps://ssl.gstatic.comhttps://gstatic.comhttps://update.googleapis.comhttps://chrome-devtools-frontend.appspot.comhttps://clients2.googleusercontent.comhttps://clients2.google.comhttps://clients4.google.comhttps://chrome-devtools-frontend.appspot.comhttps://accounts.google.comhttps://*.infura.iohttps://*.gvt1.com/edgel/chromewebstore/*/*https://*.gvt1.com/edgedl/release2/*/*http://dl.google.com/release2/*/*
Recursos e funcionalidades modificados
-
Cookies:
- Os cookies têm uma vida útil máxima de 7 dias para cookies definidos por meio de JavaScript e 6 meses para cookies definidos por meio de HTTP
- Os cookies de sessão são limpos ao reiniciar se o modo "Continuar de onde você parou" estiver ativado (que é o padrão no Brave).
- Cookies de terceiros são sempre bloqueados no nível do cabeçalho HTTP, mas oferecemos acesso a JavaScript para armazenamento efêmero particionado para páginas (saiba mais sobre armazenamento efêmero particionado).
- A Battery API sempre retorna um valor fixo.
- Os valores de referenciador são limitados a
strict-origin-when-cross-origine só podem ser reforçados pela política de encaminhamento, não enfraquecidos. Além disso, as solicitações de origem cruzada de um serviço.oniontêm um cabeçalhoReferervazio e um cabeçalhoOriginnulo, assim como o Navegador Tor. -
As entradas
.onionsão substituídas por"null"emdocument.location.ancestorOrigins(), a menos que essas entradas tenham a mesma origem que o frame mais interno. - A extensão Hangouts está desativada por padrão. Também desativamos o envio de logs aos servidores do Google: https://github.com/brave/brave-browser/issues/1993.
- O roteador de mídia (Chromecast) está desativado por padrão no desktop. Você pode ativá-lo alternando a chave em brave://settings.
- As pesquisas remotas de proteção de download omitem URLs e nomes de arquivos(https://github.com/brave/brave-core/pull/6763).
- Fazer com que o StorageManager.estimate informe um valor fixo (problema #11543)
- Muitos recursos têm aleatoriedade adicionada ou valores generalizados como uma defesa contra a impressão digital, incluindo:
- Métodos de readback de tela
- Agente do usuário, acompanhamentos nas edições #12097, #12638, #14740
- enumerateDevices
- Serialização de áudio da Web
- Depuração de WebGL
- Plugins
- hardwareConcurrency
- deviceMemory
- A lista de nomes de host com certificados CA fixados é substituída por uma específica do Brave.
- Restaurar o requisito de gesto para acesso de gravação assíncrona à área de transferência
- Avisos de download perigoso são sempre mostrados quando o Safe Browsing está DESATIVADO, mas um sinalizador para desativar os avisos está disponível para usuários avançados.
- A funcionalidade do painel lateral do Chromium foi mesclada na Barra Lateral do Brave.
- Web Serial API está DESATIVADA, mas um sinalizador para ativar está disponível para usuários avançados.
- Melhorado o diálogo de permissão de geolocalização para informar ao usuário se o site que está visitando solicitou dados de localização com a opção
enableHighAccuracy. - Os Reporting Observers estão ativados, mas não funcionam (a chamada será sem operação). Veja aqui para onde foi desativado e veja aqui para onde foi reativado, mas feito para não fazer nada.
- A adição de mecanismos de busca Open Search tem um alternador (
Indexar outros mecanismos de busca) e está desativada por padrão. - O acesso à API de Acesso ao Armazenamento é desativado no Brave sempre rejeitando a solicitação de permissão.
- Quando a política de grupo está em vigor, o Brave NÃO desativa o DNS seguro. O Chrome/Chromium desativará o DNS seguro na UI e forçará o administrador a definir uma política se quiser um valor diferente de
Off. Veja aqui e aqui.
Comentários
Alguns dos problemas acima (juntamente com outros problemas) foram rastreados anteriormente em https://github.com/brave/brave-browser/issues/13.
Você pode notar algumas solicitações para os domínios do Google. Alguns deles, como clients*.google.com e update.googleapis.com, são necessários para verificar se há atualizações de extensões, caso você as tenha instalado.
Como o Brave se compara ao ungoogled-chromium?
Descrição de ungoogled-chromium, de acordo com sua página no GitHub:
O ungoogled-chromium é o Google Chromium, sem integração com o Google. Ele também apresenta alguns ajustes para aprimorar a privacidade, o controle e a transparência (quase todos exigem ativação ou habilitação manual).
Temos um problema capturado para obter patches relevantes do projeto ungoogled-chromium. O projeto ungoogled-chromium também tem um problema capturado no qual eles mencionam a inclusão de patches do Brave.