
-
Filtre e redirecione o tráfego de rede com NetworkExtension
Saiba mais sobre as APIs no framework NetworkExtension que dão ao seu app o poder e a flexibilidade de ampliar os principais recursos de rede do sistema, como implementar filtros de conteúdo de rede, criar e gerenciar configurações de VPN e muito mais. No iOS, iPadOS e macOS 26, agora você pode criar filtros de conteúdo robustos que tomam decisões de tráfego usando todo o URL, não apenas o nome do host, tudo isso sem comprometer a privacidade e a segurança. Começaremos abordando brevemente muitos dos principais casos de uso do framework NetworkExtension, incluindo retransmissões de rede e VPN. Em seguida, vamos conferir a nova API de filtro de URL e seus principais componentes, incluindo Recuperação de Informações Privadas, Passe Privado e muito mais.
Capítulos
- 0:00 - Introdução
- 1:48 - Visão geral do NetworkExtension
- 3:21 - Acessar recursos remotos
- 8:40 - Filtrar conteúdo
- 10:54 - Criar filtros de URL
Recursos
- Filtering traffic by URL
- NEHotspotManager
- Network Extension
- NEURLFilterManager
- PIRService
- TN3120: Expected use cases for Network Extension packet tunnel providers
- TN3165: Packet Filter is not API
- verdict(for:)
Vídeos relacionados
WWDC25
WWDC19
-
Buscar neste vídeo...
Olá! Meu nome é Maria Alice dos Santos. aço parte da equipe Internet Technologies na Apple. Vou contar tudo sobre o framework Network Extension e os seus avanços mais recentes no iOS e macOS 26.
Network Extension é um framework que oferece um pacote de APIs para desenvolver apps que expandem e personalizam as capacidades de rede nas plataformas da Apple.
Os apps que usam o Network Extension funcionam em toda a pilha de rede, integrando-se com framework Network, CFNetwork, WebKit e a API Sockets, além de componentes de sistema como roteamento, política de tráfego e todos os tipos de gerenciamento do sistema. Isso permite que o Network Extension atinja as funcionalidades desejadas de modo otimizado, em termos de desempenho de rede e segurança.
Network Extension é um framework que permite alterar o comportamento da rede em todo o sistema. Para o app funcionar de modo consistente com outros apps e com o sistema, é essencial escolher a API certa para o tipo de app que você deseja criar.
Vou apresentar a ampla variedade de apps que você pode criar usando o framework Network Extension, e as maneiras de desenvolver apps que acessam recursos remotos por meio de retransmissões e VPNs. Vou falar sobre como criar filtros de conteúdo usando o Network Extension, incluindo uma nova forma de criar um filtro baseado em URL no iOS e macOS 26. O Network Extension oferece diversas maneiras para seus apps personalizarem e ampliarem as capacidades de rede.
No iOS, as APIs de Gerenciamento de Wi-Fi e Hotspots permitem que apps configurem o Wi-Fi e interajam com pontos de acesso. Isso inclui a nova API de extensão NEHotspotHelper no iOS 26.
Apps para iOS também podem usar a API Local Push. Essa API é para apps usados em redes sem acesso ao Apple Push Notification Service, como em navios de cruzeiro ou hospitais. Isso permite dar suporte a recursos como mensagens de texto e chamadas VoIP em redes restritas.
Crie um app de segurança para proteger o tráfego DNS contra ataques usando a API de Configuração e Proxy DNS. Você pode instalar uma configuração DNS e usar protocolos DNS criptografados ou fazer proxy do tráfego DNS pelo seu canal seguro.
Apps para Mac podem usar a API Transparent Proxy para redirecionar o tráfego de um site específico a um serviço de segurança na nuvem para autenticação e autorização. Você também pode criar apps que permitem acesso seguro a recursos remotos ou que protegem os usuários filtrando conteúdo de maneira segura e privada na rede.
Acesso Remoto Seguro é uma categoria ampla que engloba formas de se conectar com segurança a sistemas internos de fora ou proteger tráfego pessoal em redes não seguras, redirecionando o tráfego de um dispositivo para um servidor remoto. Com o Network Extension, há duas abordagens principais a considerar. Retransmissões de rede e VPN baseada em IP. Use a que melhor se adapta à sua necessidade, conforme o tipo de tráfego que quer redirecionar. Considere retransmissões de rede em vez de VPNs tradicionais ao redirecionar tráfego TCP ou UDP para acessar apps específicos. Apps corporativos em nuvem, como e-mail ou colaboração, são ideais para uso com retransmissões. O protocolo MASQUE permite proxy seguro, otimizado para desempenho. Ele pode ser integrado a ambientes de nuvem modernos. E, como a plataforma já tem suporte nativo a retransmissões, não é preciso criar sua própria extensão para usá-los. Basta configurar retransmissão e a autenticação com a API NERelayManager ou por meio de um perfil de configuração do servidor MDM. Para redirecionar o tráfego IP, use a opção de VPN baseada em IP. VPNs baseadas em IP podem ser usadas na empresa para estender a rede corporativa aos funcionários, dando acesso completo à rede como se estivessem no escritório. Essa solução é ideal para funcionários de longo prazo que precisam de acesso persistente ou totalmente redirecionado à rede da empresa.
Ou organizações altamente reguladas, com políticas rigorosas de segurança de rede, podem precisar enviar todo o tráfego dos dispositivos gerenciados pela rede corporativa.
As pessoas também podem querer proteger seu tráfego com VPN em redes não seguras para preservar a privacidade e o anonimato.
Para criar um túnel VPN baseado em IP, use a API NEVPNManager com um dos protocolos integrados IKEv2 ou IPsec, ou o NEPacketTunnelProvider para implementar protocolos de redirecionamento personalizados. Ao criar uma VPN baseada em IP, a implementação informa ao sistema quais tráfegos serão redirecionados, com rotas específicas incluídas e excluídas. No macOS, a tabela de roteamento pode ser alterada fora do app por um administrador ou outro processo. Rotas mais precisas podem interferir nas rotas da sua VPN. O Network Extension permite que o app imponha suas rotas VPN para garantir que elas tenham prioridade e sejam sempre respeitadas. O Network Extension facilita para seu app gerenciar os requisitos de roteamento dos túneis. Para VPN de túnel dividido, você pode ativar a opção enforceRoutes para aplicar rotas incluídas e excluídas. Para VPN de túnel completo, ative a opção includeAllNetworks para que todo o tráfego seja roteado pelo túnel. Quando essa opção está ativada, as excludedRoutes especificadas não têm efeito. Ambas as opções aceitam exceções configuráveis para permitir que um conjunto de tráfego definido pelo sistema saia do túnel, garantindo que serviços essenciais funcionem enquanto a VPN está ativa. Por exemplo, ative excludeLocalNetworks se quiser que serviços de rede locais como AirDrop e AirPlay contornem o túnel. Ou ative outras exceções para permitir que chamadas, mensagens, Apple Push Notification Service e comunicação do dispositivo contornem o túnel. A maioria das exceções vem ativada por padrão, mas permite personalização para atender às necessidades de segurança.
O Network Extension é a API compatível para criar um app de VPN. Ele funciona perfeitamente com outros componentes de rede e do sistema. Criar um app de VPN com outro método é desencorajado. Evite usar o Packet Filter ou modificar a tabela de roteamento no Mac. Isso não tem suporte e pode causar conflitos com regras de filtragem e roteamento instaladas pelo sistema ou outros apps. Se o app de VPN não usa o Network Extension, você deve migrar o quanto antes. Isso garante a compatibilidade do app com o sistema e as funcionalidades essenciais que os usuários esperam, como AirDrop, Mac Virtual Display, Xcode e recursos de Continuidade como o Sidecar. Use o NEPacketTunnelProvider apenas para redirecionar tráfego IP. Usá-lo para outros fins não é recomendado. O NEPacketTunnelProvider opera na camada IP e não recebe metadados de fluxo ou app necessários para outras funções, como proxy de solicitações DNS ou filtragem de conteúdo. Se seu objetivo é filtrar conteúdo, use a API Content Filter, que abordarei a seguir. A API Content Filter permite inspecionar o tráfego no dispositivo para monitorar ou tomar decisões de filtragem enquanto o tráfego passa pela pilha de rede. Um caso comum é o firewall pessoal, que analisa e bloqueia tráfegos considerados maliciosos para o dispositivo. Ou um app empresarial para monitorar todo o tráfego de rede que entra e sai de dispositivos gerenciados, para funcionários em ambientes altamente seguros.
Crie uma subclasse de um ou ambos os provedores de filtro de conteúdo para obter o tráfego desejado. O NEFilterDataProvider fornece fluxos TCP e UDP, além de outros tipos de tráfego IP, como ICMP.
Para apps Mac, uma subclasse de NEFilterPacketProvider obtém pacotes da Camada 2.
Os provedores de filtro não podem modificar o tráfego, só fornecem uma decisão para o sistema, permitindo ou bloqueando o fluxo. O filtro de conteúdo no sistema do iOS tem suporte só em dispositivos supervisionados.
Filtros de conteúdo usando NEFilterDataProvider e NEFilterPacketProvider são ótimos se o seu app precisa filtrar conteúdo com base no fluxo de tráfego ou por meio da inspeção de pacotes. Às vezes, convém filtrar com base em metadados no nível do app, como o URL. Com um filtro de conteúdo tradicional, seu app decide com base em informações no nível do tráfego, como o host e a porta dessa solicitação HTTPS.
Alguns apps podem preferir filtrar apenas recursos específicos, não sites inteiros. Solicitações HTTPS são criptografadas, portanto, um filtro de conteúdo tradicional não teria acesso aos detalhes necessários do URL para tomar uma decisão de filtragem precisa, como o recurso específico solicitado ou os parâmetros do URL. A partir do iOS 26, crie um tipo de filtro, o Filtro de URLs, que toma decisões de filtragem de conteúdo com base no URL completo. O Network Extension URL Filter permite filtrar solicitações HTTP e HTTPS em todo o sistema, comparando com o URL completo da solicitação. Essa tecnologia permite criar apps que bloqueiam recursos específicos na Internet. Você pode criar um app de controle parental para proteger crianças de sites nocivos. Um app para escolas pode usar um filtro para impedir que os alunos acessem redes sociais, jogos de azar ou conteúdo sensível em diversos sites. Ou empresas podem bloquear conteúdo não relacionado ao trabalho.
Na Apple, acreditamos que privacidade é um direito fundamental. O filtro de URLs usa criptografia avançada para você desenvolver apps que tomem decisões de filtragem com base no URL completo, sem comprometer a privacidade. Os URLs podem revelar informações confidenciais, como identificadores únicos, ou histórico de navegação. O Network Extension foi criado para você desenvolver um filtro de conteúdo capaz de tomar decisões precisas de filtragem com base no URL completo. O conteúdo do URL não é revelado ao app, e as consultas ao banco de dados nos servidores de back-end são anonimizadas para proteger a privacidade. A cadeia de servidores de back-end, tanto a da Apple quanto a sua, não terá acesso a nenhum conteúdo ou informação de identidade. O filtro de URLs é realizado com o seu conjunto de dados de URLs a serem bloqueados. Forneça um pré-filtro no dispositivo e um servidor de banco de dados fora do dispositivo para consultas de URLs. O sistema realiza o processo de filtragem em seu nome, usando seu conjunto de dados. Seu app não é executado no caminho de filtragem e não tem acesso ao tráfego. O sistema realiza um pré-filtro no dispositivo para melhorar o desempenho e faz consultas ao banco de dados fora do dispositivo para decisões finais. As trocas de dados com o banco de dados fora do dispositivo são protegidas para preservar a privacidade do conteúdo e a identidade. Com a preservação da privacidade, os filtros de URL são compatíveis em dispositivos gerenciados e não gerenciados. Antes de explicar como o recurso funciona, vou apresentar as tecnologias que servem como base. Há quatro tecnologias das quais o Filtro de URLs depende, que são: Filtros de Bloom, Recuperação de Informações Privadas, Privacy Pass e Retransmissão HTTP Oblivious.
Vou começar com os filtros de Bloom.
Para o filtro de URLs, o Network Extension usará o filtro de Bloom criado com o conjunto de dados contendo URLs a serem bloqueados. Um filtro de Bloom é criado de um conjunto de dados predefinido, aplicando várias funções hash a cada elemento e definindo os bits correspondentes em uma matriz de bits de tamanho fixo. Uma vez criado, você pode usar o filtro de Bloom para testar se um elemento pertence ao conjunto. Filtros de Bloom nunca produzem falsos-negativos, mas podem produzir falsos-positivos.
O filtro de Bloom será usado como um pré-filtro para uma verificação rápida. Se a verificação for negativa, o URL consultado não faz parte do conjunto de URLs e será liberado, sem necessidade de verificação adicional. Se a correspondência for positiva, o resultado não é definitivo devido à possibilidade de falsos-positivos. É necessária uma verificação adicional, como uma consulta ao banco de dados fora do dispositivo, para decidir.
Usar um filtro de Bloom como pré-filtro reduz as consultas fora do dispositivo, melhorando o desempenho.
A segunda tecnologia é a Recuperação de Informações Privadas. A Recuperação de Informações Privadas, ou PIR, permite que um cliente faça uma consulta em um banco de dados hospedado por um servidor sem revelar ao servidor a palavra-chave consultada nem o resultado da consulta. Ela se baseia em criptografia homomórfica para realizar cálculos sobre dados criptografados, permitindo que o servidor execute buscas no banco de dados usando consultas criptografadas. Assim, o servidor não tem acesso ao conteúdo da consulta nem à resposta.
Veja como funciona. O Cliente no dispositivo gera a chave de criptografia e a mantém privada, sendo essa chave usada para criptografar as consultas enviadas ao servidor. O servidor usa as consultas criptografadas para fazer buscas no banco de dados. O servidor não pode descriptografar a consulta em durante o processamento. O servidor envia respostas criptografadas de volta para o cliente. O Cliente recebe e descriptografa as respostas no dispositivo. Apenas o Cliente, nem mesmo o servidor, pode descriptografar a resposta do servidor. O Cliente usa os resultados da consulta. A Recuperação de Informações Privadas já é uma tecnologia usada em diversos recursos que preservam a privacidade, como a API Live Caller ID Lookup. Para o Filtro de URLs, o servidor de Recuperação de Informações Privadas realiza pesquisas de URLs com consultas criptografadas, permitindo que o servidor ofereça capacidades de filtragem sem saber os URLs solicitados e os resultados retornados. A terceira tecnologia é o Privacy Pass. A Recuperação de Informações Privadas utiliza o Privacy Pass para autenticação anônima ao seu servidor. Com isso, você garante que o servidor responda apenas a consultas de dispositivos autenticados e autorizados, sem a capacidade de rastrear o histórico individual das solicitações. Cada dispositivo passa por uma atestação inicial para obter uma credencial de longo prazo, que pode ser usada para recuperar uma coleção de tokens assinados cegamente por criptografia do Emissor do Privacy Pass. O dispositivo usa esses tokens para se autenticar no servidor sem revelar sua identidade. A última tecnologia é a Retransmissão HTTP Oblivious. A Retransmissão HTTP Oblivious é um proxy que preserva a privacidade ao ocultar o endereço IP de origem, impedido que o servidor rastreie e relacione as solicitações ao longo do tempo. Ela tem três entidades, o Cliente, a Retransmissão e o Gateway. O Cliente criptografa as solicitações usando a chave pública do Gateway. Ele envia a solicitação criptografada para a Retransmissão. A retransmissão remove o endereço IP do cliente das solicitações recebidas e redireciona essas solicitações para o Gateway. O Gateway descriptografa a solicitação e a envia para o recurso-alvo. A Retransmissão não obtém nenhuma informação sobre o conteúdo das solicitações, enquanto o Gateway e o recurso-alvo não sabem de onde o tráfego está vindo.
Apresentei as quatro tecnologias. Vou explicar como configurar a solução e como funciona o Filtro de URLs.
Seu app de Filtro de URLs instalado no dispositivo vai usar a Extensão de Rede, um conjunto de dados de URLs em formato de filtro de Bloom, e um banco de dados de URLs no seu servidor de Recuperação de Informações Privadas para fazer as consultas.
A configuração do servidor também inclui um Emissor do Privacy Pass para autenticação anônima.
O app de Filtro de URLs informa à Network Extension onde acessar o servidor de Recuperação de Informações Privadas e implementa uma nova extensão de app para buscar o filtro de Bloom no dispositivo.
As consultas ao banco de dados e as respostas são trocadas por meio da Retransmissão HTTP Oblivious hospedada pela Apple. Isso significa que o Gateway HTTP Oblivious será hospedado por você para encaminhar o tráfego para o seu servidor.
As solicitações usando HTTP Oblivious para o Filtro de URLs passam por uma Retransmissão HTTP Oblivious hospedada pela Apple.
Essa é uma funcionalidade para a qual você deve se inscrever, usando o formulário de solicitação na documentação. A Apple vai validar a configuração do servidor para a Retransmissão HTTP Oblivious. Isso deve ser concluído para distribuir seu app na App Store, v ia TestFlight, ad-hoc, com ID de desenvolvedor ou por builds assinados com certificado empresarial. Builds assinados para desenvolvimento estão isentos desse requisito, permitindo que você crie e teste seu app de filtragem imediatamente.
Com todos os itens prontos, vou apresentar um exemplo de como o Filtro de URLs funciona na prática. O Filtro de URLs será realizado apenas pelo sistema. O app e a extensão de app não são executados nesse caminho. O sistema analisará todas as solicitações de URL, verificando cada uma delas com base no conjunto de dados. Neste exemplo, um navegador inicia uma solicitação de URL para um recurso específico em example.com. O sistema verifica primeiro o URL solicitado usando o filtro de Bloom. Uma correspondência negativa no filtro de Bloom significa que o URL não está no conjunto de dados. O URL será permitido, e o navegador continuará com a solicitação HTTP.
O navegador inicia uma nova solicitação de URL para outro recurso em example.com, que resulta em uma correspondência positiva no filtro de Bloom. Por causa de falsos positivos, uma correspondência positiva indica que o URL pode estar no conjunto de dados. Nesse caso, o sistema fará uma consulta ao seu servidor de Recuperação de Informações Privadas, enviando uma consulta criptografada para o servidor. No servidor, é feita uma pesquisa ao banco de dados com a consulta criptografada para obter o resultado. O servidor não sabe o que está sendo consultado nem o que está sendo retornado. O servidor criptografa o resultado e responde.
O sistema no dispositivo descriptografa a resposta. Se o resultado indicar uma correspondência, o URL será bloqueado e o navegador não concluirá a solicitação.
O Filtro de URLs do Network Extension funciona no sistema. Verificando todas as solicitações HTTP enviadas por APIs de rede da Apple, como WebKit e URLSession. Mas, para apps que não usam essas APIs de rede, o tráfego HTTP não será verificado automaticamente pelo sistema. Para criar um navegador ou um app que não usa WebKit ou URLSession, adote a API de participação para verificar as solicitações de URL antes de enviá-las. Chame NEURLFilter verdictForURL com o URL da solicitação e respeite o veredito retornado, bloqueando a solicitação caso o URL seja negado. Agora que você sabe como funcionam os Filtros de URLs, vou explicar os passos para criar um. Você vai configurar o servidor de Recuperação de Informações Privadas e criar o filtro de Bloom. Depois, crie o app de Filtro de URLs e a extensão de app.
Vou começar pelo servidor de Recuperação de Informações Privadas. Comece com o código de exemplo, que inclui um servidor de Recuperação de Informações Privadas de amostra. No repositório do projeto, você encontrará exemplos de implementações do servidor de Recuperação de Informações Privadas, bem como um emissor de passe de privacidade. Para personalizar o servidor para o Filtro de URLs, crie um caso de uso com um formato de nome específico. O nome do caso de uso deve ter o identificador de pacote do seu app como prefixo, seguido da string url.filtering.
O servidor de Recuperação de Informações Privadas armazena os registros de dados no formato chave-valor. Para o Filtro de URLs do Network Extension, formate o conjunto de dados, definindo cada registro com a string de URL como chave/valor como o inteiro 1. O segundo passo é criar seu filtro de Bloom. Crie o filtro de Bloom com os dados de URLs usando as funções de hash e o método especificados na documentação da API NEURLFilterControlProvider. Sabendo se o conjunto de dados é estático ou dinâmico, decida como o filtro de Bloom será entregue ao dispositivo e a frequência de atualização. Para dados estáticos que não mudam, inclua o filtro de Bloom no pacote do app e permita que a extensão de app o acesse pelos recursos do pacote. Atualizações subsequentes do filtro de Bloom podem ser incluídas junto com as atualizações do app. Para dados dinâmicos que mudam com frequência, configure o sistema para acionar buscas periódicas. Quando o sistema aciona a busca, a extensão de app pode baixar o filtro de Bloom do servidor. Depois, desenvolva o app de Filtro de URLs. Adicione ao app o novo direito url-filter-provider do Network Extension, que permite utilizar as APIs de Filtro de URLs. Use a API NEURLFilterManager no app para criar a configuração e gerenciar seu Filtro de URLs. Importe o framework Network Extension e use a instância singleton compartilhada NEURLFilterManager. Configure e ative seu Filtro de URLs em poucos passos. Carregue do disco o snapshot mais recente da configuração do Filtro de URLs, se houver. Defina o atributo obrigatório na configuração para informar ao sistema como acessar seu servidor de Recuperação de Informações Privadas. Configure outros parâmetros para ajustar seu Filtro de URLs.
Por fim, ative e salve a configuração do Filtro de URLs. Agora seu Filtro de URLs estará ativo.
O Filtro de URLs aceita implantações para consumidores e para empresas. Para implantações em larga escala, distribua o perfil de configuração do Filtro de URLs via Mobile Device Management nos dispositivos gerenciados. O conteúdo do Filtro de Conteúdo existente agora dá suporte: uma nova chave para ativar o recurso de Filtro de URLs e um novo dicionário para configurar os URLFilterParameters. A configuração do Filtro de URLs via MDM exige que o dispositivo seja supervisionado.
Crie a Extensão do app de Filtro de URLs. Para criar a extensão de app, use o novo modelo de extensão do Filtro de URLs disponível no Xcode. Implemente o protocolo NEURLFilterControlProvider na extensão de app. O protocolo permite a sua extensão de app baixe o filtro de Bloom para o dispositivo. Importe o framework Network Extension e implemente o protocolo NEURLFilterControlProvider. A implementação da função fetchPrefilter será chamada pelo sistema para buscar seu filtro de Bloom, conforme o intervalo que você configurou. Na implementação, busque o filtro de Bloom e retorne-o ao sistema. A implementação pode obter os dados do filtro de Bloom dos recursos do pacote do app e baixando-os do servidor. Antes de enviar seu app para a App Store ou o TestFlight, verifique se sua solicitação de permissão foi enviada e aprovada, para que as solicitações possam ser redirecionado ao Gateway HTTP Oblivious. O Network Extension é um framework poderoso que permite redirecionar e filtrar tráfego e muito mais. Revise como você usa o Network Extension. Use a API apropriada que ajude a criar apps com a funcionalidade desejada e que funcionem de modo integrado com o sistema. Use retransmissores de rede para acesso remoto seguro ao tráfego TCP e UDP. Use o Network Extension para criar suas soluções de VPN. Crie filtros de conteúdo usando a API de Filtro de URLs do Network Extension. Para começar, confira o servidor e o app de exemplo. Agradeço sua participação.
-
-
22:15 - Use participation API to check URLs before sending requests
// Use participation API to check URLs before sending requests import NetworkExtension func checkURL(url: URL) async throws -> Bool { var passRequest : Bool = true let verdict = await NEURLFilter.verdict(for: url) if verdict == .deny { passRequest = false } return passRequest }
-
25:01 - Configure and manage URL Filter
// Configure and manage URL Filter import NetworkExtension let manager = NEURLFilterManager.shared try await manager.loadFromPreferences() try manager.setConfiguration( pirServerURL: URL(string:"https://pir.example.com")!, pirPrivacyPassIssuerURL: URL(string:"https://privacypass.example.com")!, pirAuthenticationToken: "1234", controlProviderBundleIdentifier: "com.example.myURLFilter.extension") manager.prefilterFetchInterval = 86400 // fetch every 1 day manager.shouldFailClosed = false manager.localizedDescription = "Alice's URL Filter" manager.isEnabled = true try await manager.saveToPreferences()
-
26:41 - Implement NEURLFilterControlProvider protocol
// Implement NEURLFilterControlProvider protocol import NetworkExtension class URLFilterControlProvider: NEURLFilterControlProvider { func fetchPrefilter() async throws -> NEURLFilterPrefilter? { // Fetch your Bloom filters data from your app bundle or from your server let data = NEURLFilterPrefilter.PrefilterData.temporaryFilepath(fileURL) let result = NEURLFilterPrefilter(data: data, bitCount: numberOfBits, hashCount: numberOfHashes, murmurSeed: murmurSeed) return result } }
-
-
- 0:00 - Introdução
Conheça o Network Extension, um framework que você pode usar para desenvolver apps que personalizam a rede nas plataformas da Apple. No iOS e no macOS 26, esse framework oferece VPNs, retransmissões e filtros de conteúdo, além de novos recursos de filtros baseados em URL.
- 1:48 - Visão geral do NetworkExtension
O framework Network Extension permite que os apps no iOS e no macOS personalizem a rede. Isso inclui gestão de Wi-Fi, interação com hotspots, notificações por push locais para redes restritas, segurança de DNS, filtros de conteúdo e acesso seguro a recursos remotos.
- 3:21 - Acessar recursos remotos
O Secure Remote Access possibilita que as pessoas se conectem com segurança aos sistemas internos a partir de locais externos ou protejam o tráfego pessoal em redes desprotegidas. O framework Network Extension oferece duas abordagens principais para o encaminhamento de tráfego: retransmissões de rede e VPNs baseadas em IP. As retransmissões de rede que usam protocolo MASQUE são otimizadas para desempenho e são adequadas para encaminhar o tráfego TCP ou UDP a apps específicos, como apps corporativos hospedados na nuvem. Você pode configurar as retransmissões usando o “NERelayManager” ou por meio de um perfil de MDM. As VPNs baseadas em IP são ideais para estender as redes corporativas aos funcionários, fornecendo acesso total à rede, ou para organizações altamente regulamentadas que precisam enviar todo o tráfego pela rede corporativa. Indivíduos também podem usá-las para proteger sua privacidade em redes desprotegidas. Você pode criar túneis de VPN baseados em IP usando a API NEVPNManager, aproveitando os protocolos integrados, como IKEv2 ou IPsec, ou protocolos personalizados. O framework Network Extension permite que os apps apliquem rotas de VPN, garantindo que elas tenham precedência, e é compatível com configurações de VPN de túnel dividido e de túnel completo com exceções configuráveis. O framework Network Extension é a API recomendada e compatível para o desenvolvimento de apps de VPN. O uso de outros métodos é altamente desaconselhável e pode causar problemas de compatibilidade. Migre seu app de VPN para o framework Network Extension o quanto antes.
- 8:40 - Filtrar conteúdo
A API Content Filter possibilita a criação de firewalls pessoais e apps de monitoramento de tráfego corporativo. Com ela, os apps podem inspecionar os fluxos de tráfego e fornecer decisões de “permitir” ou “descartar”.
- 10:54 - Criar filtros de URL
No iOS 26, é possível criar um filtro de URL para desenvolver apps que bloqueiam recursos específicos na internet em todo o sistema. Essa tecnologia é ainda mais útil para apps de controle parental, escolas e empresas a fim de restringir o acesso a conteúdo inadequado ou não relacionado ao trabalho. O filtro de URL utiliza técnicas criptográficas avançadas para priorizar a privacidade dos usuários. O sistema usa uma combinação de quatro tecnologias principais: Filtros de Bloom, Recuperação Privada de Informação (PIR), Privacy Pass e Retransmissão HTTP Oblivious. Seu app não é executado no caminho de filtragem e não tem acesso ao tráfego do URL. Além disso, nem a Apple nem o seu servidor têm acesso ao tráfego do URL ou às informações de identidade. Os filtros de URL são compatíveis com dispositivos gerenciados e não gerenciados. Os filtros de URL utilizam uma retransmissão OHTTP hospedada pela Apple, que você deve aplicar para configurar e utilizar nos apps assinados para distribuição. As compilações assinadas para desenvolvimento estão isentas desse requisito. Se estiver desenvolvendo um app que não use WebKit ou URLSession, envie cada URL à API NEURLFilter e honre a decisão retornada. Para implantações corporativas, o perfil de configuração de filtros de URL pode ser enviado aos dispositivos gerenciados via gerenciamento de dispositivos móveis.