Índice
A beta 3 do iOS 16 introduziu uma nova funcionalidade de privacidade: o Modo de Bloqueio. A ideia é desativar algumas funcionalidades no iOS para reduzir a possibilidade de ataques relacionados à privacidade.
A Apple fornece uma lista aproximada de funcionalidades desativadas no Modo de Bloqueio, incluindo uma que se destaca imediatamente:
Navegação na web: Certas tecnologias web complexas, como a compilação de JavaScript just-in-time (JIT), são desativadas a menos que o utilizador exclua um site de confiança do Modo de Bloqueio.
Desativar a compilação JIT no JavaScriptCore implica uma queda significativa no desempenho, dado o quão pesado em JavaScript é a web moderna. Este artigo mede quão grande é esse impacto realmente e cataloga o que mais é desativado.
Funcionalidades desativadas
Através de testes manuais e deteção de funcionalidades com Modernizr, as seguintes funcionalidades são desativadas no Modo de Bloqueio:
- WebAssembly
- Reprodução de MP3
- MathML
- API de Gamepad
- API de Áudio Web
- WebGL
- JPEG 2000
- API de Reconhecimento de Fala
- MediaDevices.getUserMedia()
- RTCDataChannel
- Visualizador de PDF
- Fontes SVG
A maioria destas são desativadas para reduzir vetores de rastreamento passivo do utilizador.
WebAssembly
WASM, embora incrivelmente poderoso, pode ser usado para rapidamente identificar clientes através de discrepâncias de renderização de canvas ou varredura de portas locais, e dificulta a deteção de rastreadores por bloqueadores de anúncios. Isso irá quebrar aplicações Blazor e outras estruturas dependentes de WASM que não têm uma alternativa em JavaScript.
Reprodução de MP3
O suporte a MP3 é uma exceção aqui. Como a maioria dos navegadores o suporta, desativá-lo poderia identificar o dispositivo como estando em Modo de Bloqueio. Uma justificativa: evitar exploits de decodificação de MP3 elaborados. Sites que dependem de MP3 sem alternativas AAC ou OGG irão falhar.
MathML
A renderização de MathML varia ligeiramente por dispositivo, o que pode permitir rastreamento através do objeto DOMRect de uma expressão MathML renderizada.
API de Gamepad
Sem mitigação de identificação, a API de Gamepad pode rastrear utilizadores através das propriedades id e buttons após interação do utilizador com a página. Jogos no navegador e plataformas de streaming de jogos que dependem de entrada de controladores irão falhar.
API de Áudio Web
A API de Áudio Web permite a identificação de utilizadores do Safari através da interface webkitOfflineAudioContext e variações de sinal entre implementações de hardware.
WebGL
A identificação por WebGL é uma das técnicas de rastreamento mais antigas, explorando discrepâncias de renderização entre dispositivos individuais, mesmo executando hardware idêntico. O WebGLRenderingContext também expõe capacidades de hardware e versões de WebGL suportadas.
JPEG 2000
O suporte a JPEG 2000 é hoje um identificador confiável do Safari — é o único navegador mainstream que o suporta.
API de Reconhecimento de Fala
Embora a API de Fala Web funcione no dispositivo no macOS e iOS, pode ser acedida por uma página web para gravar utilizadores sem indicação óbvia. Isto é separado da ditado do iOS e Siri, que permanecem totalmente funcionais.
MediaDevices.getUserMedia()
A interface MediaDeviceInfo expõe uma propriedade deviceId persistente para câmaras, microfones e altifalantes, permitindo rastreamento entre sessões numa única origem. Sites que requerem acesso a microfone ou câmara não irão funcionar.
RTCDataChannel
A API WebRTC pode vazar tanto endereços IP públicos quanto locais — mesmo atrás de uma VPN — ao comunicar com um servidor STUN.
Visualizador de PDF
O visualizador de PDF do WebKit está desativado. Clicar num link de PDF aciona um download em vez disso. Documentos ainda podem ser abertos através da aplicação Ficheiros após o download.
Fontes SVG
As fontes SVG estão desativadas, provavelmente pela mesma razão que o JPEG 2000: são uma funcionalidade exclusiva do Safari que pode ser usada como um sinal de identificação.
Nota: Estas alterações aplicam-se a todos os navegadores iOS e iPadOS, uma vez que todos são obrigados a usar o WebKit. Chrome, Firefox e Brave no iOS são igualmente afetados.
Impacto no desempenho
Desativar a compilação JIT no JavaScriptCore afeta o desempenho em praticamente todos os sites, com um provável efeito secundário na vida útil da bateria.
Os testes de desempenho abaixo são médias de 10 execuções, registadas num iPhone 13 mini executando a beta 3 do iOS 16 para desenvolvedores.
Octane
Octane já não é mantido, mas continua a ser uma linha de base relativa útil para o desempenho de JavaScript dentro do mesmo navegador.
Resultado: queda de ~95% no desempenho. Isto parece dramático — e é para cargas de trabalho puramente JS — mas o navegador como um todo não é 95% mais lento, uma vez que o pipeline de renderização, layout e rede não são afetados.
JetStream 2.0
JetStream não pôde ser concluído: seu foco pesado em WebAssembly significa que simplesmente falha no Modo de Bloqueio.
Speedometer 2.0
Speedometer avalia o desempenho de frameworks JavaScript do mundo real simulando interações do utilizador em vários frameworks. Isso dá uma visão mais prática do impacto.
Resultado: queda de ~65% no desempenho. Significativa, mas não tão extrema quanto o resultado do Octane. Para utilizadores que requerem a troca pela privacidade, isso muda a decisão de "completamente impraticável" para "um compromisso deliberado."
MotionMark 1.2
Ao contrário da maioria dos testes de desempenho gráfico, o MotionMark depende principalmente de renderização HTML e SVG através de operações CSS e canvas em vez de WebGL.
Resultado: queda de ~20% — largamente imperceptível no uso diário.
Conclusão
Para utilizadores em risco de ataques direcionados, o Modo de Bloqueio é uma primeira linha de defesa prática. É fácil de ativar e cobre um conjunto significativo de vetores de rastreamento e exploração baseados em navegador sem exigir conhecimentos técnicos.
Não bloqueará toda a identificação — o nosso verificação da realidade da prevenção de rastreamento do Safari detalha o que ainda escapa. A Apple especificamente direcionou APIs que são difíceis para utilizadores não técnicos controlarem por meios convencionais. A penalidade de 65% no Speedometer é o verdadeiro custo — aceitável para um indivíduo de alto risco, proibitivo para uso geral.
Atualização 2026
Quatro anos depois — a nossa retrospectiva de quatro anos do Modo de Bloqueio cobre todo o período — o Modo de Bloqueio foi ainda mais reforçado no iOS 17 e iOS 18. A Apple adicionou proteções fora do navegador — restringindo certas funcionalidades do FaceTime, acessórios USB e opções de conectividade sem fio em cenários de ameaça extrema.
No Safari, a troca do JIT permanece inalterada: o JIT continua desativado no Modo de Bloqueio, e a diferença de desempenho é aproximadamente a mesma em hardware moderno — os nossos testes de desempenho do JIT do WebKit de 2026 fornecem os números atuais. A lista de APIs web bloqueadas cresceu ligeiramente; WebGL2 e algumas funcionalidades avançadas do WebRTC agora juntam-se à lista de bloqueio.
A funcionalidade já não é experimental. Está documentada, suportada e usada por jornalistas, ativistas e investigadores de segurança em todo o mundo. Se você executa o iOS 18 e trabalha num contexto sensível, o caso para ativar o Modo de Bloqueio — pelo menos num dispositivo secundário — é mais forte do que era em 2022.