-
Filtrar y canalizar el tráfico de red con NetworkExtension
Obtén más información acerca de las API del marco NetworkExtension que proporcionan a tu app la potencia y la flexibilidad necesarias para ampliar las funcionalidades de red principales del sistema, como implementar filtros de contenido de red, crear y gestionar configuraciones de VPN, etc. En iOS, iPadOS y macOS 26, ahora puedes crear filtros de contenido sólidos que tomen decisiones sobre el tráfico usando toda la URL, no solo el nombre del host, sin comprometer la privacidad y la seguridad. Empezaremos por hablar brevemente sobre muchos de los casos de uso clave del marco NetworkExtension, incluidos los relés de red y VPN. A continuación, profundizaremos en la nueva API de filtro de URL y sus componentes clave, incluida la recuperación de información privada, el protocolo de Privacy Pass y más.
Capítulos
- 0:00 - Te damos la bienvenida
- 1:48 - Recorrido por NetworkExtension
- 3:21 - Acceder a recursos remotos
- 8:40 - Filtrar contenido
- 10:54 - Crear filtros de URL
Recursos
- verdict(for:)
- NEHotspotManager
- NEURLFilterManager
- TN3165: Packet Filter is not API
- TN3120: Expected use cases for Network Extension packet tunnel providers
- PIRService
- Filtering traffic by URL
- Network Extension
Videos relacionados
WWDC25
WWDC19
-
Buscar este video…
-
-
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 - Te damos la bienvenida
Obtén información sobre Network Extension, una estructura que puedes usar para crear apps que personalizan la red en las plataformas de Apple. En iOS y macOS 26, la estructura ofrece VPN, retransmisiones y filtros de contenido, además de nuevas capacidades de filtrado basadas en URL.
- 1:48 - Recorrido por NetworkExtension
La estructura Network Extension permite que las apps en iOS y macOS personalicen la red. Esto incluye administración de Wi-Fi, interacción con puntos de acceso, notificaciones push locales para redes restringidas, seguridad de DNS, filtrado de contenido y acceso seguro a recursos remotos.
- 3:21 - Acceder a recursos remotos
El acceso remoto seguro permite a las personas conectarse de forma segura a sistemas internos desde ubicaciones externas o proteger el tráfico personal en redes no seguras. Network Extension ofrece dos enfoques principales para tunelizar el tráfico: retransmisiones de red y VPN basadas en IP. Las retransmisiones de red, que utilizan el protocolo MASQUE, están optimizadas para el rendimiento y son adecuadas para tunelizar el tráfico TCP o UDP a apps específicas, como apps empresariales alojadas en la nube. Puedes configurar retransmisiones usando NERelayManager o a través de un perfil MDM. Las VPN basadas en IP son más apropiadas para hacer llegar las redes corporativas a los empleados, proporcionar acceso total a la red o para organizaciones muy controladas que necesitan enviar todo el tráfico a través de la red corporativa. Las personas también pueden utilizarlas para proteger su privacidad en redes no seguras. Puedes crear túneles VPN basados en IP usando la API NEVPNManager, aprovechando protocolos integrados como IKEv2 o IPsec, o protocolos personalizados. Network Extension permite que las apps apliquen rutas VPN, garantizando que tengan prioridad, y admite configuraciones de VPN de tunelización dividida y tunelización completa con excepciones configurables. Network Extension es la API recomendada y compatible para crear apps de VPN. Se desaconseja encarecidamente usar otros métodos, ya que puede generar problemas de compatibilidad. Migra tu app de VPN a Network Extension lo antes posible.
- 8:40 - Filtrar contenido
La API de filtro de contenido te permite crear firewalls personales y apps de monitoreo de tráfico empresarial. Permite que las apps inspeccionen los flujos de tráfico y proporcionen veredictos de “permitir” o “rechazar”.
- 10:54 - Crear filtros de URL
En iOS 26, puedes crear un filtro de URL para que las apps bloqueen recursos específicos en Internet en todo el sistema. Esta tecnología es particularmente útil para apps de control parental, escuelas y empresas, ya que restringen el acceso a contenido inapropiado o no relacionado con el trabajo. El filtro de URL usa técnicas criptográficas avanzadas para priorizar la privacidad del usuario. El sistema emplea una combinación de cuatro tecnologías clave: Filtros Bloom, recuperación de información privada (PIR), pase de privacidad y retransmisión de Oblivious HTTP. Tu app no se ejecuta en la ruta de filtrado y no tiene acceso al tráfico de URL. Además, ni Apple ni tu servidor tienen acceso al tráfico de URL ni a la información de identidad. Los filtros de URL son compatibles con dispositivos administrados y no administrados. Los filtros de URL utilizan una retransmisión de OHTTP alojado por Apple, que debes aplicar para configurar y usar para apps firmadas para su distribución. Las compilaciones firmadas para desarrollo están exentas de este requisito. Si estás creando una app que no usa WebKit o URLSession, pasa cada URL a la API NEURLFilter y respeta el veredicto devuelto. En el caso de implementaciones empresariales, el perfil de configuración del filtro de URL se puede enviar a través de la Administración de dispositivos móviles a los dispositivos administrados.