-
Filtrez et acheminez le trafic réseau avec NetworkExtension
Découvrez les API du framework NetworkExtension qui donnent à votre app la puissance et la flexibilité nécessaires pour étendre les fonctionnalités réseau de base du système, telles que l'implémentation de filtres de contenu réseau, la création et la gestion de configurations VPN, et bien plus encore. Sur iOS, iPadOS et macOS 26, vous pouvez désormais créer des filtres de contenu avancés, capables de prendre des décisions relatives au trafic en utilisant l'URL complète, et non plus seulement le nom d'hôte, sans compromettre la confidentialité et la sécurité. Nous commencerons par une vue d'ensemble des principaux cas d'utilisation du framework NetworkExtension, y compris les relais réseau et les VPN. Ensuite, nous nous pencherons sur la nouvelle API de filtrage d'URL et ses composants clés, notamment Private Information Retrieval, Privacy Pass, et bien plus encore.
Chapitres
- 0:00 - Bienvenue
- 1:48 - Présentation de NetworkExtension
- 3:21 - Accéder aux ressources distantes
- 8:40 - Filtrer le contenu
- 10:54 - Créer des filtres d’URL
Ressources
- 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
Vidéos connexes
WWDC25
WWDC19
-
Rechercher dans cette vidé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 - Bienvenue
Découvrez Network Extension, un framework qui permet de créer des apps pour personnaliser la mise en réseau sur les plateformes Apple. Sous iOS et macOS 26, ce framework propose des VPN, des relais et des filtres de contenu, ainsi que de nouvelles fonctionnalités de filtrage basées sur les URL.
- 1:48 - Présentation de NetworkExtension
Le framework Network Extension permet aux apps iOS et macOS de personnaliser la mise en réseau. Cela inclut la gestion du Wi-Fi, l’interaction avec les points d’accès, les notifications push locales pour les réseaux restreints, la sécurité DNS, le filtrage de contenu et l’accès sécurisé aux ressources à distance.
- 3:21 - Accéder aux ressources distantes
L’accès à distance sécurisé permet aux utilisateurs de se connecter en toute sécurité aux systèmes internes à partir d’emplacements externes ou de protéger le trafic personnel sur des réseaux non sécurisés. Network Extension propose deux approches principales pour la tunnellisation du trafic : les relais réseau et les VPN basés sur l’IP. Les relais réseau, utilisant le protocole MASQUE, sont optimisés pour les performances et conviennent à la tunnellisation du trafic TCP ou UDP vers des apps spécifiques, telles que les apps d’entreprise hébergées dans le cloud. Vous pouvez configurer des relais à l’aide de 'NERelayManager' ou via un profil MDM. Les VPN basés sur l’IP sont davantage adaptés à l’extension des réseaux d’entreprise aux employés, à la mise en place d’un accès complet au réseau ou aux organisations hautement réglementées qui ont besoin d’envoyer tout le trafic via le réseau d’entreprise. Les particuliers peuvent également les utiliser pour protéger leur vie privée sur les réseaux non sécurisés. Vous pouvez créer des tunnels VPN basés sur l’IP à l’aide de l’API NEVPNManager, en tirant parti de protocoles intégrés comme IKEv2 ou IPsec, ou de protocoles personnalisés. Network Extension permet aux apps d’appliquer des routes VPN, en veillant à ce qu’elles soient prioritaires, et prend en charge les configurations VPN à tunnel fractionné et à tunnel complet avec des exceptions configurables. Network Extension est l’API recommandée et prise en charge pour la création d’apps VPN. L’utilisation d’autres méthodes est fortement déconseillée et peut entraîner des problèmes de compatibilité. Migrez votre app VPN vers Network Extension dès que possible.
- 8:40 - Filtrer le contenu
L’API de filtrage de contenu vous permet de créer des pare-feux personnels et des apps de surveillance du trafic d’entreprise. Elle permet aux apps d’inspecter les flux de trafic et de fournir des verdicts 'allow' ou 'drop'.
- 10:54 - Créer des filtres d’URL
Dans iOS 26, vous pouvez créer un filtre d’URL pour que les apps qui bloquent des ressources spécifiques sur Internet s’étendent à l’ensemble du système. Cette technologie est particulièrement utile pour les apps de contrôle parental, les écoles et les entreprises afin de restreindre l’accès à des contenus inappropriés ou non liés au travail. Le filtre d’URL utilise des techniques cryptographiques avancées pour protéger la confidentialité des utilisateurs. Le système utilise une combinaison de quatre technologies clés : filtres de Bloom, Private Information Retrieval (PIR), Privacy Pass et Oblivious HTTP Relay. Votre app ne s’exécute pas dans le chemin de filtrage et n’a pas accès au trafic d’URL. En outre, ni Apple ni votre serveur n’ont accès au trafic d’URL ni aux informations d’identité. Les filtres d’URL sont pris en charge sur les appareils gérés et non gérés. Les filtres d’URL utilisent un relais OHTTP hébergé par Apple, dont vous devez configurer l’application et l’utilisation pour les apps signées pour la distribution. Les builds signés par le développement sont exemptés de cette obligation. Si vous compilez une app qui n’utilise pas WebKit ou URLSession, transmettez chaque URL à l’API NEURLFilter et respectez le verdict renvoyé. Pour les déploiements d’entreprise, le profil de configuration du filtre d’URL peut être transféré via la Gestion des appareils mobiles sur des appareils gérés.