Meta-Conclusion (2026-07-08)
Après une analyse complète de l'empreinte navigateur — examinant FingerprintJS (44 vecteurs), BrowserLeaks (15+ outils), EFF Cover Your Tracks, les empreintes au niveau réseau (TCP, TLS, HTTP/2, QUIC), et les vecteurs au niveau matériel — les conclusions suivantes éclairent la conception d'Obscura.
Résumé de l'Inventaire des Vecteurs
| Catégorie | Vecteurs Totaux | Contrôlable par Proxy | Partiel | Incontrôlable |
|---|---|---|---|---|
| Réseau & Protocole | 13 | 3 | 6 | 4 |
| HTTP & En-têtes | 12 | 11 | 1 | 0 |
| API JavaScript / DOM | 44 | 29 | 13 | 2 |
| Fonctionnalités Navigateur | ~100+ | 0 | ~10 | ~90+ |
| Système & Matériel | 15 | 6 | 4 | 5 |
| Comportemental | 8 | 1 | 4 | 3 |
| Total Distinct | ~60+ uniques | ~50 | ~38 | ~100+ |
Couverture réaliste : Le proxy contrôle ~55% de la surface d'empreinte. Les ~45% restants sont matériels, comportementaux, ou des fonctionnalités inhérentes au navigateur.
Évaluation d'Impact par Couche
Couche 1 : Réseau & Protocole — IMPACT ÉLEVÉ, Contrôlable
| Vecteur | Contrôlable | Priorité pour Obscura | Méthode |
|---|---|---|---|
| Empreinte TLS (JA3/JA4) | Oui | Critique | utls (Go) / Rust TLS personnalisé |
| Empreinte HTTP/2 | Partiel | Élevée | Contrôle personnalisé des trames SETTINGS |
| En-têtes HTTP (12 vecteurs) | Oui | Élevée | Réécriture d'en-têtes au proxy |
| DNS | Oui | Élevée | Résolveur local + listes de blocage |
| Fuite IP WebRTC | Oui | Élevée | Injection JS pour bloquer RTCPeerConnection |
| Pile TCP/IP | Non | Faible | Pile du conteneur héritée |
| QUIC/HTTP/3 | Bloquer | Moyenne | Bloquer UDP 443 |
| Attaques temporelles | Partiel | Faible | Arrondir performance.now() |
Couche 2 : API JavaScript — IMPACT MOYEN, Partiellement Contrôlable
29 vecteurs entièrement usurpables via injection JS :
navigator.userAgent,platform,language,languagesnavigator.hardwareConcurrency,deviceMemoryscreen.width,height,colorDepth,pixelDepth,availTop/Leftnavigator.cookieEnabled,webdriver- Fuseau horaire
Intl.DateTimeFormat navigator.vendor,vendorFlavorsnavigator.architecture,pdfViewerEnabled- Apple Pay, Private Click Measurement
- Requêtes média (prefers-reduced-motion, color-gamut, etc.)
localStorage,sessionStorage,indexedDB,openDatabase
13 vecteurs partiellement usurpables :
- Canvas — l'injection de bruit est détectable
- WebGL — peut bloquer
debug_renderer_info, pas le rendu - Audio — peut aplatir la sortie, la variation matérielle persiste
- Polices — peut arrondir les mesures, pas éliminer l'énumération
- Plugins — peut surcharger, mais limité
- Bloqueurs DOM — détectables
2 vecteurs non usurpables :
- Empreinte FPU mathématique — comportement matériel en virgule flottante
- Latence de base audio — pile audio matérielle
Couche 3 : Fonctionnalités Navigateur — IMPACT FAIBLE, Incontrôlable
~100+ tests de support de fonctionnalités (WebGL, WebGPU, WebUSB, Service Workers, etc.) sont inhérents au navigateur. Ne peuvent pas être modifiés au niveau proxy.
Atténuation : Le blocage DNS des domaines d'empreinte connus empêche le chargement de nombreux scripts de détection de fonctionnalités.
Couche 4 : Matériel & Système — IMPACT FAIBLE, Incontrôlable
Modèle GPU, fonctionnalités CPU, matériel audio, disposition du clavier, polices installées — ce sont des propriétés système locales que le proxy ne peut pas modifier.
Couche 5 : Comportemental — HORS DE PORTÉE
Mouvements de souris, dynamique de frappe, motifs de défilement, durée de session — la biométrie comportementale est hors de contrôle de tout proxy.
Résultats Clés
1. L'Usurpation d'Empreinte TLS est Non Négociable
Si Obscura termine TLS (requis pour le MITM), le serveur voit la pile TLS du proxy. Sans usurpation, la destination détecte immédiatement qu'un proxy est utilisé. C'est la fonctionnalité la plus critique.
2. La Cohérence Interne est Obligatoire
Chaque signal doit correspondre au même profil :
Profil : "Chrome 120 / Windows 11"
User-Agent: Chrome 120 sur Win11
Sec-CH-UA-Platform: "Windows"
JA3: Chrome 120 Win11
Paramètres HTTP/2 SETTINGS : valeurs de Chrome
fuseau horaire : correspond à la locale Win11
écran : résolution typique Win11
platform: "Win32"
L'incohérence est elle-même une empreinte.
3. Le Blocage DNS est le Meilleur Retour sur Investissement
Bloquer fingerprintjs.com, *.metrics.*, et les domaines de suivi empêche le chargement des scripts d'empreinte. C'est la protection la plus simple et la plus efficace.
4. Canvas/WebGL/WebGPU sont les Problèmes Difficiles
Ces rendus s'effectuent sur le matériel local. Le proxy peut :
- Bloquer les API d'info de débogage (modèle GPU caché)
- Injecter du bruit dans la sortie canvas (détectable par comparaison)
- Ne pas contrôler le rendu réel des pixels
Tor Browser résout ce problème en rendant tous les utilisateurs identiques (casse complètement WebGL). Obscura ne peut pas égaler cela au niveau réseau.
5. QUIC/HTTP/3 Doit Être Bloqué
QUIC est chiffré de bout en bout. Si autorisé, le trafic contourne entièrement le proxy. Bloquer UDP 443.
6. WebRTC Doit Être Bloqué
WebRTC contourne le proxy via STUN. Bloquer via surcharge JS de RTCPeerConnection.
Principes de Conception
Cohérence sur exhaustivité : Un ensemble plus petit de signaux parfaitement cohérents bat une protection large mais incohérente.
Bloquer plutôt qu'usurper : Si un vecteur ne peut pas être usurpé de manière fiable (canvas, audio), le bloquer plutôt que de fuire des données partielles. Le blocage est détectable mais fuit moins d'informations.
Défense en profondeur : Blocage DNS (empêche les scripts de charger) + usurpation d'en-têtes (couche HTTP) + usurpation TLS (couche transport) + injection JS (couche API navigateur) — chaque couche ajoute une protection.
Échec sécurisé : En cas d'incertitude, bloquer. Toujours préférer la prévention des fuites de confidentialité à la fonctionnalité.
Mises à jour régulières des profils : Les navigateurs publient de nouvelles versions mensuellement, changeant les empreintes. Les profils doivent être mis à jour ou Obscura devient détectable.
Diversité des profils : Différents profils pour différents contextes (travail, personnel, incognito) empêche la corrélation inter-contextes.
Périmètre pour Obscura v1
[MVP]
Usurpation d'en-têtes HTTP (tous les en-têtes, 12 vecteurs)
Usurpation d'empreinte TLS (JA3/JA4 via utls)
Blocage DNS (gestion des listes de blocage)
Blocage WebRTC (injection JS)
Usurpation d'API Navigator (29 vecteurs JS)
Blocage QUIC (rejet UDP 443)
3-5 profils d'identité (Chrome, Firefox, Safari)
Interface Web (TS + CSS, gestion de profil)
[Post-MVP]
Injection de bruit Canvas (meilleur effort)
Blocage des infos de débogage WebGL (partiel)
Blocage AudioContext (partiel)
Usurpation d'empreinte HTTP/2 (SETTINGS personnalisé)
Éditeur de profil personnalisé (fonctionnalité UI)
Statistiques de trafic (tableau de bord)
Réduction d'énumération des polices (arrondi des mesures)
Évaluation Finale
| Aspect | Verdict |
|---|---|
| Viabilité | Viable comme amélioration significative de la confidentialité |
| Définitivité | Pas définitif — aucun outil ne peut l'être |
| Unicité | Unique — aucun outil réseau multi-couche anti-empreinte existant |
| Couverture des Vecteurs | ~55% contrôlable, ~45% hors périmètre |
| Maintenance | Moyenne-Élevée — les profils TLS/HTTP nécessitent des mises à jour |
| Impact sur les Performances | Faible-Moyen — le MITM ajoute de la latence |
| Expérience Utilisateur | Élevée — transparent pour les appareils finaux |
| Déploiement | Simple — conteneur Docker, configurer une fois |
Mot de la Fin
Obscura mérite d'être construit comme une couche de confidentialité pratique qui augmente significativement le coût de l'empreinte numérique, pas comme une solution miracle. Sa valeur unique est une protection multi-couche à l'échelle du réseau, sans configuration par appareil — ce qu'aucun outil existant ne fournit.
"La confidentialité parfaite est impossible. Une confidentialité significative ne l'est pas."