IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Extensions Chrome : l'EFF s'insurge contre Manifest V3 de Google et estime qu'il est « trompeur et menaçant »
Firefox va l'adopter mais avec une approche différente de celle de Chrome

Le , par Stéphane le calme

6PARTAGES

17  0 
Dans moins d'un an, le Manifest V2 de Chrome ne sera plus supporté (jusqu'en juin 2023), obligeant les développeurs d’extensions à s’adapter à Manifest V3. L'équipe derrière Chrome parle du renforcement de la sécurité, des performances mais aussi de la confidentialité des utilisateurs. Toutefois, selon des éditeurs, Manifest V3 empêche les bloqueurs de publicité de jouer leur rôle dans le navigateur.

L'Electronic Frontier Foundation, un défenseur des droits numériques, s'est insurgé contre son utilisation : « Méfiez-vous des utilisateurs de Chrome*: Manifest V3 est trompeur et menaçant ». « Si l’on en croit Google, Manifest V3 améliorera la protection de la vie privée, la sécurité et les performances. Nous ne sommes absolument pas d’accord. Ces changements n’arrêteront pas les extensions malveillantes, mais ralentiront l’innovation, réduiront les capacités des extensions et heurteront les performances réelles ».

Il faut noter que Mozilla Firefox a aussi décidé d'adopter Manifest V3, mais avec une approche différente de celle de Chrome.


En novembre 2019, Google a commencé à tester Manifest V3, l'interface de programmation derrière les plans de sécurité Chrome. Le code suivant montre les champs Manifest pris en charge pour les extensions, avec des liens vers la page décrivant chaque champ.

Code JavaScript : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
{ 
  // Required 
  "manifest_version": 2, 
  "name": "My Extension", 
  "version": "versionString", 
 
  // Recommended 
  "default_locale": "en", 
  "description": "A plain text description", 
  "icons": {...}, 
 
  // Pick one (or none) 
  "browser_action": {...}, 
  "page_action": {...}, 
 
  // Optional 
  "action": ..., 
  "author": ..., 
  "automation": ..., 
  "background": { 
    // Recommended 
    "persistent": false, 
    // Optional 
    "service_worker": 
  }, 
  "chrome_settings_overrides": {...}, 
  "chrome_ui_overrides": { 
    "bookmarks_ui": { 
      "remove_bookmark_shortcut": true, 
      "remove_button": true 
    } 
  }, 
  "chrome_url_overrides": {...}, 
  "commands": {...}, 
  "content_capabilities": ..., 
  "content_scripts": [{...}], 
  "content_security_policy": "policyString", 
  "converted_from_user_script": ..., 
  "current_locale": ..., 
  "declarative_net_request": ..., 
  "devtools_page": "devtools.html", 
  "event_rules": [{...}], 
  "externally_connectable": { 
    "matches": ["*://*.example.com/*"] 
  }, 
  "file_browser_handlers": [...], 
  "file_system_provider_capabilities": { 
    "configurable": true, 
    "multiple_mounts": true, 
    "source": "network" 
  }, 
  "homepage_url": "http://path/to/homepage", 
  "import": [{"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}], 
  "incognito": "spanning, split, or not_allowed", 
  "input_components": ..., 
  "key": "publicKey", 
  "minimum_chrome_version": "versionString", 
  "nacl_modules": [...], 
  "oauth2": ..., 
  "offline_enabled": true, 
  "omnibox": { 
    "keyword": "aString" 
  }, 
  "optional_permissions": ["tabs"], 
  "options_page": "options.html", 
  "options_ui": { 
    "chrome_style": true, 
    "page": "options.html" 
  }, 
  "permissions": ["tabs"], 
  "platforms": ..., 
  "replacement_web_app": ..., 
  "requirements": {...}, 
  "sandbox": [...], 
  "short_name": "Short Name", 
  "signature": ..., 
  "spellcheck": ..., 
  "storage": { 
    "managed_schema": "schema.json" 
  }, 
  "system_indicator": ..., 
  "tts_engine": {...}, 
  "update_url": "http://path/to/updateInfo.xml", 
  "version_name": "aString", 
  "web_accessible_resources": [...] 
}

En novembre 2020, Google a indiqué que « Manifest V3 représente l'un des plus grands changements dans la plateforme d'extensions depuis son lancement il y a dix ans. Les extensions utilisant MV3 bénéficieront d'améliorations en matière de sécurité, de confidentialité et de performances; elles peuvent également utiliser des technologies Open Web plus contemporaines adoptées dans MV3, telles que les Services Workers et les Promises. Les développeurs peuvent mettre à jour leurs extensions dès aujourd'hui pour profiter de ces fonctionnalités MV3; cela deviendra obligatoire au fur et à mesure que nous éliminerons MV2 à l'avenir ».

Les extensions peuvent modifier le comportement de Chrome grâce aux capacités que Manifest v3 expose. Entre autres choses, Manifest v3 limite le nombre de « règles » que les extensions peuvent appliquer à une page Web lors de son chargement. Des règles sont utilisées, par exemple, pour vérifier si un élément de site Web provient du serveur d'un annonceur et doit donc être bloqué. Google a annoncé les changements en 2018.


La réduction du nombre de règles a déclenché la colère d'éditeurs d'extensions comme le bloqueur de publicités uBlock Origin et le bloqueur de suivi Ghostery. Ils ont déclaré que les limites des règles empêcheraient leurs extensions d'exécuter leurs listes complètes d'actions pour filtrer les publicités ou bloquer le suivi. Cela pourrait permettre aux sites Web de contourner les extensions - et les préférences des personnes qui les ont installées.

Google a défendu sa technologie et fait valoir que le fait d'accorder trop de liberté aux extensions invite à l'abus. L'entreprise affirme avoir écouté les développeurs et modifié Manifest v3 en réponse. Par exemple, Google a assoupli la limite de règles initialement proposée et ajouté un nouveau mécanisme pour appliquer certaines règles. Eyeo, le développeur de l'une des extensions Adblock Plus largement utilisées, a déclaré qu'il était satisfait de l'approche Manifest V3 de Google.

Le changement induit par Manifest V3 va s'étendre à tous les navigateurs, au détriment des logiciels de blocage des publicités, a estimé Andrey Meshkov, cofondateur et directeur de la technologie d'AdGuard, une extension de blocage des publicités.

« La principale victime du Manifest V3 est l'innovation », a déclaré Meshkov dans un communiqué. Auparavant, les développeurs de bloqueurs de publicités exploraient des idées telles que l'utilisation de la technologie d'intelligence artificielle (IA) pour améliorer leurs produits. « Ce n'est plus si pertinent. Maintenant, Chrome, Safari et Edge dictent ce qui peut ou ne peut pas être bloqué et comment cela doit être fait ».

Les changements qui vont accompagné Manifest V3

Parmi les changements prévus, Google parle de la suppression de l’API Web Request qui est remplacée par une autre interface, nommée Declarative Net Request. Elle introduit une modification radicale : l’impossibilité pour une extension de surveiller tout le trafic. Pour des raisons de sécurité, la nouvelle API oblige les concepteurs d’extensions à déclarer à l’avance comment un certain type de trafic sera géré.

Bien entendu, ce passage de Web Request à Declarative Net Request va apporter une amélioration notable de la sécurité, puisque les extensions auront des droits limités sur ce qui circule entre le navigateur et le site web. Et cette fois de manière inhérente. Parmi les autres changements importants, signalons l’impossibilité d’accéder à du code distant – toujours pour des questions de sécurité –, ou encore le remplacement des « background pages » persistantes par les services workers, pour des gains significatifs de performances.

De nombreux comportements d’extensions liés à Manifest V2 vont être rendus optionnels par la V3, avec un intérêt majeur : un contrôle plus strict par les sas de validation, et surtout par l’utilisateur qui pourra interdire certains comportements.

L'EFF hausse le ton

Manifest V3, le panier de changements définitif de Google Chrome dans le monde des extensions de navigateur Web, a été présenté par ses auteurs comme "un pas dans la direction de la confidentialité, de la sécurité et des performances". Mais nous pensons que ces changements sont une mauvaise opération pour les utilisateurs. Nous l'avons dit depuis l'annonce de Manifest V3, et continuons de le dire car sa mise en œuvre est désormais imminente. Comme FLoC et Privacy Sandbox avant lui, Manifest V3 est un autre exemple du conflit d'intérêts inhérent au fait que Google contrôle à la fois le navigateur Web dominant et l'un des plus grands réseaux publicitaires sur Internet.

Manifest V3, ou Mv3 en abrégé, est carrément nuisible aux efforts de confidentialité. Cela limitera les capacités des extensions Web, en particulier celles conçues pour surveiller, modifier et calculer parallèlement à la conversation de votre navigateur avec les sites Web que vous visitez. Selon les nouvelles spécifications, des extensions comme celles-ci – comme certains bloqueurs de suivi de la vie privée – auront des capacités considérablement réduites. Les efforts de Google pour limiter cet accès sont préoccupants, d'autant plus que Google a installé des trackers sur 75% du million de sites Web les plus importants.

Il est également peu probable que Mv3 fasse beaucoup pour la sécurité. Firefox maintient le plus grand marché d'extensions non basé sur Chrome, et la société a déclaré qu'elle adopterait Mv3 dans l'intérêt de la compatibilité entre navigateurs. Pourtant, lors du AdBlocker Dev Summit 2020, le responsable des opérations des modules complémentaires de Firefox a déclaré à propos du processus d'examen de la sécurité des extensions : « Pour les modules complémentaires malveillants, nous pensons que pour Firefox, il a été à un niveau gérable. ons sont principalement intéressés par la saisie de mauvaises données, ils peuvent toujours le faire avec l'API webRequest actuelle qui ne bloque pas. En clair, cela signifie que lorsqu'une extension malveillante se faufile dans le processus d'examen de la sécurité, elle est généralement intéressée à simplement observer la conversation entre votre navigateur et les sites Web que vous visitez. L'activité malveillante se produit ailleurs, après que les données ont déjà été lues. Un processus d'examen plus approfondi pourrait améliorer la sécurité, mais Chrome n'a pas dit qu'il le ferait. Au lieu de cela, leur solution consiste à restreindre les capacités de toutes les extensions.

Quant à l'autre justification de Chrome pour Mv3 - les performances - une étude réalisée en 2020 par des chercheurs de Princeton et de l'Université de Chicago a révélé que les extensions de confidentialité, celles-là mêmes qui seront entravées par Mv3, améliorent en fait les performances du navigateur.

Les spécifications de développement des extensions de navigateur Web peuvent sembler dans les mauvaises herbes, mais les implications plus larges devraient importer à tous les citoyens d'Internet*: c'est une autre étape vers Google définissant comment nous arrivons à vivre en ligne. Considérant que Google est la plus grande société de publicité au monde depuis des années, ces nouvelles limitations sont paternalistes et carrément effrayantes.

Pour donner plus de crédits à ses propos, l'EFF partage les réflexions de certaines entités qui épousent son point de vue

Mais ne vous contentez pas de nous croire sur parole. Voici quelques réflexions de technologues, de défenseurs de la vie privée et de développeurs d'extensions qui partagent notre inquiétude concernant Manifest V3*:

Citation Envoyé par Jonathan Mayer, Princeton University
Un navigateur Web est censé agir au nom de l'utilisateur et respecter les intérêts de l'utilisateur. Malheureusement, Chrome a maintenant des antécédents en tant qu'agent Google, et non en tant qu'agent utilisateur. C'est le seul navigateur Web majeur qui ne dispose pas de protections significatives de la vie privée par par défaut, pousse les utilisateurs à lier l'activité à un compte Google et met en œuvre de nouvelles fonctionnalités publicitaires invasives. Les dernières modifications de Google vont briser les extensions de confidentialité de Chrome, malgré des recherches universitaires démontrant qu'aucun changement n'est nécessaire. Ces décisions hostiles aux utilisateurs sont toutes directement attribuables à la surveillance de Google modèle d'entreprise et rendu possible par sa domination du marché des navigateurs de bureau.
Citation Envoyé par Helen Nissenbaum et Daniel Howe (créateurs d'AdNauseam et TrackMeNot)
Manifest V3 positionne Chrome comme l'arbitre tout-puissant de ce que les logiciels vivent et ce qui meurt, brisant l'idéal d'un éventail diversifié d'extensions servant les préférences et les valeurs légitimes d'utilisateurs tout aussi divers. En 2017, lorsque Google a banni AdNauseam de la boutique Chrome, il a sommairement coupé des dizaines de milliers d'utilisateurs des données qu'ils avaient accumulées et les a privés d'une extension gratuite et open source pour contrer le profilage et la manipulation en ligne. Avec le recul, AdNauseam était le canari dans la mine de charbon, car Mv3 est maintenant sur le point de couper les utilisateurs d'une gamme d'outils de confidentialité inestimables (y compris les bloqueurs de publicités) sur lesquels des milliers, voire des millions, comptent. Un navigateur qui joue les favoris pour faire avancer les intérêts de ses propriétaires étouffe efficacement les développeurs innovants et indépendants, tout en réduisant les options pour les individus de façonner leurs expériences en ligne
Citation Envoyé par Krzysztof Modras, directeur de l'ingénierie et des produits chez Ghostery
Manifest V3 est une spécification opiniâtre ; il applique des limitations pour améliorer l'expérience utilisateur. Cela paraît bien sur le papier, mais la réalité est tout autre. Chez Ghostery, nous pensons que Manifest V3 de Google nuit aux extensions de protection de la vie privée.

Au lieu d'exiger des service workers et de supprimer le blocage de webRequest, Google devrait rendre les service workers et declarativeNetRequest facultatifs, en fournissant des solutions adaptées à différents cas d'utilisation. En fin de compte, il s'agit de choix de l'utilisateur et d'innovation.

Au lieu de devoir réinventer la roue, chez Ghostery, nous aimerions nous concentrer sur la recherche de nouvelles façons d'empêcher le pistage. C'est après tout ce que les extensions de navigateur sont et devraient être, un terrain de jeu pour l'innovation et la voie express pour l'amélioration du navigateur.
Citation Envoyé par Giorgio Maone, auteur de NoScript
De toutes les révolutions de l'API d'extension de navigateur que j'ai vues en 16 ans de développement de NoScript, Manifest V3 est de loin le pire contrevenant*: un énorme pas en arrière et mal justifié. Manifest V3 réduit les capacités d'extension et la liberté des utilisateurs Web de personnaliser leur expérience de navigation.

Bien qu'il existe de nombreuses raisons de douter des améliorations de la confidentialité revendiquées et des gains de performances théoriques, la perturbation des extensions existantes est douloureusement réelle*: les extensions non triviales devront être réécrites, dans les cas où elles seront obligées d'abandonner des fonctionnalités fondamentales.

Mais pire encore, la capacité des développeurs d'extensions de navigateur à innover et, dans le cas des extensions de confidentialité et de sécurité, à répondre rapidement et de manière créative aux menaces émergentes est sévèrement restreinte. La perte nette est énorme, pour les développeurs mais surtout pour la sécurité en ligne et la liberté de choix des internautes
Firefox va adopter Manifest V3, mais va privilégier une autre approche

Bien que Firefox ne soit pas basé sur Chromium, le support du Manifest est un élément important, car il simplifie le travail des développeurs d’extensions : un module créé sur Chrome (ou l’un de ses dérivés) est facilement transposable à Firefox, une grande partie du socle étant identique. Mais face à cette version 3, Mozilla fera les choses à sa manière.

« Manifest V3 est la prochaine itération de WebExtensions et offre la possibilité d'introduire des améliorations qui ne seraient autrement pas possibles en raison de problèmes de compatibilité descendante. MV2 avait des contraintes architecturales qui rendaient certains problèmes difficiles à résoudre*; avec MV3, nous sommes en mesure d'apporter des modifications pour résoudre ce problème.

« Une partie essentielle de l'architecture de l'extension est la page d'arrière-plan, qui vit pour toujours de par sa conception. En raison de contraintes de mémoire ou de plate-forme (par exemple sur Android), nous ne pouvons pas garantir cet état, et la fermeture de la page d'arrière-plan (avec l'extension) est parfois inévitable. Dans MV3, nous introduisons une nouvelle architecture*: le script d'arrière-plan doit être conçu pour pouvoir être redémarré. Pour soutenir cela, nous avons retravaillé les API existantes et introduit de nouvelles, permettant aux extensions de déclarer comment le navigateur doit se comporter sans nécessiter le script d'arrière-plan.

« Une autre partie essentielle des extensions sont les scripts de contenu, pour interagir directement avec les pages Web. Nous bloquons les pratiques de codage dangereuses et proposons des alternatives plus sécurisées pour améliorer la sécurité de base des extensions*: l'exécution de code basé sur des chaînes a été supprimée des API d'extension. De plus, pour améliorer l'isolation des données entre différentes origines, les requêtes cross-origin ne sont plus possibles à partir de scripts de contenu, sauf si le site Web de destination opte via CORS ».

Cependant, Mozilla prévient que même si le Manifest V3 sera supporté en intégralité, l’API Web Request sera préservée. La direction prise par l'équipe sera donc hybride, avec à la fois la possibilité de récupérer la nouvelle génération d’extensions, tout en préservant Web Request et les capacités qui vont avec. Une version amendée du Manifest V3, en quelque sorte.

« L'un des changements les plus controversés de l'approche MV3 de Chrome est la suppression du blocage de WebRequest, qui offre un niveau de puissance et de flexibilité essentiel pour activer les fonctionnalités avancées de confidentialité et de blocage de contenu. Malheureusement, ce pouvoir a également été utilisé pour nuire aux utilisateurs de diverses manières. La solution de Chrome dans MV3 consistait à définir une API de portée plus étroite (declarativeNetRequest) en remplacement. Cependant, cela limitera les capacités de certains types d'extensions de confidentialité sans remplacement adéquat.

« Mozilla maintiendra la prise en charge du blocage de WebRequest dans MV3. Pour maximiser la compatibilité avec d'autres navigateurs, nous fournirons également un support pour declarativeNetRequest. Nous continuerons à travailler avec les bloqueurs de contenu et d'autres consommateurs clés de cette API pour identifier les alternatives actuelles et futures, le cas échéant. Le blocage de contenu est l'un des cas d'utilisation les plus importants pour les extensions, et nous nous engageons à faire en sorte que les utilisateurs de Firefox aient accès aux meilleurs outils de confidentialité disponibles ».

Manifest V2 sera supporté pendant encore un peu moins d'un an, jusqu’en juin 2023. Ensuite, ce sera le tour de Manifest V3 commencera. Dès lors, deux perspectives s’affronteront. D’un côté, le projet Chromium et son Manifest V3, avec une nouvelle génération d’extensions aux capacités certes réduites, mais contraintes par ce cadre strict à beaucoup plus de sécurité. De l’autre, la perspective de Mozilla et sa vision hybride de Manifest V3.

Rien n’empêchera donc les développeurs d’extensions de proposer une version pour Chrome, et une autre pour Firefox. Il n’est pas dit cependant que tout le monde fasse l’effort, selon le but recherché.

Sources : EFF, Mozilla

Voir aussi :

Après la colère de l'industrie du blocage de pub, Google modifie son API Manifest V3, qui limite le nombre de règles que les extensions peuvent appliquer à une page Web lors de son chargement
Extensions Chrome : Google a commencé les tests de Manifest V3 dans la version Canary de son navigateur. Les développeurs sont invités à consulter le guide de migration

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Mingolito
Membre extrêmement actif https://www.developpez.com
Le 18/07/2022 à 15:20
L'EFF à raison, ce qui se passe sous Chrome c'est totalement effarant. Moi je suis Sous Firefox c'est moins pire.
2  0