Table des matières
La troisième bêta d'iOS 16 a introduit une nouvelle fonctionnalité de confidentialité : le mode Isolement. Son principe est de désactiver certaines fonctionnalités d'iOS afin de réduire la surface d'attaque liée à la vie privée.
Apple publie une liste indicative des fonctionnalités désactivées, dont une retient immédiatement l'attention :
Navigation web : certaines technologies web complexes, comme la compilation JavaScript juste-à-temps (JIT), sont désactivées, sauf si l'utilisateur exclut un site de confiance du mode Isolement.
Désactiver la compilation JIT dans JavaScriptCore implique une chute de performances significative, étant donné la quantité de JavaScript présente dans les pages web modernes. Cet article mesure l'ampleur réelle de cet impact et recense les autres fonctionnalités bloquées.
Fonctionnalités désactivées
Par tests manuels et détection via Modernizr, les fonctionnalités suivantes sont désactivées en mode Isolement :
- WebAssembly
- Lecture MP3
- MathML
- API Gamepad
- Web Audio API
- WebGL
- JPEG 2000
- API de reconnaissance vocale
- MediaDevices.getUserMedia()
- RTCDataChannel
- Lecteur PDF
- Polices SVG
La plupart de ces désactivations visent à réduire les vecteurs de pistage passif des utilisateurs.
WebAssembly
WASM est extrêmement puissant, mais peut être utilisé pour empreinter rapidement les appareils via des divergences de rendu canvas ou du scan de ports locaux, tout en échappant plus facilement aux bloqueurs de publicité. Cela cassera les applications Blazor et autres frameworks dépendant de WebAssembly sans fallback JavaScript.
Lecture MP3
La prise en charge du MP3 est un cas particulier. La plupart des navigateurs le supportent, et sa désactivation pourrait identifier un appareil en mode Isolement. Une justification possible : éviter des attaques par décodage MP3 malveillant. Les sites utilisant du MP3 sans fallback AAC ou OGG ne fonctionneront pas.
MathML
Le rendu MathML varie légèrement d'un appareil à l'autre, ce qui permet un pistage via l'objet DOMRect d'un rendu MathML.
API Gamepad
Sans atténuation du fingerprinting, l'API Gamepad peut tracer les utilisateurs via les propriétés id et buttons après interaction avec la page. Les jeux en navigateur et les plateformes de streaming gaming utilisant une manette seront affectés.
Web Audio API
L'API Web Audio permet de créer une empreinte des utilisateurs Safari via l'interface webkitOfflineAudioContext et les variations de signal entre implémentations matérielles.
WebGL
Le fingerprinting WebGL est l'une des techniques de suivi les plus anciennes : il exploite les divergences de rendu entre appareils individuels, même sous matériel identique. Le WebGLRenderingContext expose également les capacités matérielles et les versions WebGL supportées.
JPEG 2000
La prise en charge du JPEG 2000 est aujourd'hui un identifiant fiable de Safari — c'est le seul navigateur grand public à le supporter.
API de reconnaissance vocale
Bien que l'API Web Speech fonctionne localement sur macOS et iOS, une page web peut y accéder pour enregistrer des utilisateurs sans indication claire. Cela est distinct de la dictée iOS et de Siri, qui continuent de fonctionner normalement.
MediaDevices.getUserMedia()
L'interface MediaDeviceInfo expose une propriété deviceId persistante pour les caméras, microphones et haut-parleurs, permettant un suivi inter-sessions sur une même origine. Les sites nécessitant l'accès au microphone ou à la caméra ne fonctionneront pas.
RTCDataChannel
L'API WebRTC peut divulguer les adresses IP publique et locale d'un appareil — même derrière un VPN — lors d'une communication avec un serveur STUN.
Lecteur PDF
Le lecteur PDF WebKit est désactivé. Cliquer sur un lien PDF déclenche un téléchargement. Les documents peuvent ensuite être ouverts via l'application Fichiers.
Polices SVG
Les polices SVG sont désactivées, probablement pour la même raison que le JPEG 2000 : elles sont exclusives à Safari et constituent donc un signal de fingerprinting.
Note : Ces modifications s'appliquent à tous les navigateurs iOS et iPadOS, puisqu'ils utilisent tous WebKit. Chrome, Firefox et Brave sur iOS sont affectés de manière identique.
Impact sur les performances
La désactivation de la compilation JIT dans JavaScriptCore impacte les performances sur pratiquement tous les sites web, avec un probable effet secondaire sur la consommation de batterie.
Les résultats ci-dessous sont des moyennes sur 10 exécutions, mesurés sur un iPhone 13 mini sous iOS 16 developer beta 3.
Octane
Octane n'est plus maintenu, mais reste une bonne référence relative pour mesurer les performances JavaScript au sein d'un même navigateur.
Résultat : baisse d'environ 95%. Ce chiffre est spectaculaire — et l'est effectivement pour les charges JS pures — mais le navigateur dans son ensemble n'est pas 95% plus lent, car le pipeline de rendu, la mise en page et le réseau ne sont pas affectés.
JetStream 2.0
JetStream n'a pas pu être exécuté jusqu'au bout : son fort accent sur WebAssembly provoque simplement un crash en mode Isolement.
Speedometer 2.0
Speedometer mesure les performances des frameworks JavaScript en conditions réelles, en simulant des interactions utilisateur sur plusieurs frameworks. Il donne une vision plus pratique de l'impact.
Résultat : baisse d'environ 65%. Significatif, mais moins extrême que le résultat Octane. Pour les utilisateurs ayant besoin de ce compromis de confidentialité, cela fait passer la décision de « impossible à utiliser » à « un compromis assumé ».
MotionMark 1.2
Contrairement à la plupart des benchmarks graphiques, MotionMark s'appuie principalement sur le rendu HTML et SVG via CSS et les opérations canvas, plutôt que sur WebGL.
Résultat : baisse d'environ 20% — imperceptible dans l'usage courant.
Conclusion
Pour les utilisateurs exposés à des attaques ciblées, le mode Isolement est une première ligne de défense pratique. Il est facile à activer et couvre un ensemble significatif de vecteurs de pistage et d'exploitation dans le navigateur, sans exiger de compétences techniques.
Il ne bloque pas tout fingerprinting. Apple a spécifiquement ciblé les API difficiles à contrôler par des moyens conventionnels pour les non-techniciens. La pénalité de 65% sur Speedometer est le coût réel — acceptable pour une personne à risque élevé, rédhibitoire pour un usage général.
Mise à jour 2026
Quatre ans plus tard, le mode Isolement a été renforcé dans iOS 17 et iOS 18. Apple a ajouté des protections en dehors du navigateur — restreignant certaines fonctionnalités FaceTime, les accessoires USB et les options de connectivité sans fil dans les scénarios de menace extrême.
Dans Safari, le compromis JIT est inchangé : la compilation JIT reste désactivée en mode Isolement, et l'écart de performance est approximativement le même sur le matériel moderne. La liste des API web bloquées s'est légèrement allongée ; WebGL2 et certaines fonctionnalités WebRTC avancées rejoignent désormais la liste noire.
La fonctionnalité n'est plus expérimentale. Elle est documentée, supportée et utilisée par des journalistes, des militants et des chercheurs en sécurité dans le monde entier. Si vous utilisez iOS 18 dans un contexte sensible, l'argument pour activer le mode Isolement — au moins sur un appareil secondaire — est plus fort qu'il ne l'était en 2022.