Dans un an, le Manifest V2 de Chrome ne sera plus supporté, obligeant les développeurs d’extensions à s’adapter à la V3. Derrière ce changement, Chrome parle de sécurité et de performances. Mais la problématique est plus profonde et touche au blocage publicitaire. Explications.
En matière d’extensions, et par ricochets, Google fait un peu la pluie et le beau temps. Chrome dispose d’une imposante part de marché dans les navigateurs, et sa base open source Chromium sert de socle à de nombreux autres navigateurs.
Les règles de conception des extensions sont presque dictées par la firme de Mountain View, tant son influence est grande, avec plus ou moins d’adaptations selon les réactions de la communauté des développeurs.
Dans un an, ces règles changeront radicalement. Pour Google, c’est une question de sécurité et de performances. Pour d’autres, l’entreprise n’est pas sincère, car les nouvelles règles casseront les actuelles extensions dédiées au blocage de contenus, dont les « adblockers ».
Comprendre le cœur du problème
Pour saisir l’enjeu qui se joue actuellement dans les choix des éditeurs, il faut se pencher sur le manifeste, ou plutôt « Manifest », qui sert de norme et de soubassement aux extensions dans Chrome. En clair, il définit, au sein du navigateur, les droits des extensions. Elles ne peuvent pas sortir de ce périmètre, d’où l’intérêt crucial de le préparer avec soin.
Dans l’actuelle version 2, on trouve une API nommée Web Request. Dans les grandes lignes, elle permet d’examiner ce qui circule entre un site web et un navigateur et d’y agir. Cette interface de programmation est à la base de très nombreuses fonctions de blocage publicitaire, puisqu’elle permet de modifier à la volée les requêtes vers un domaine, y compris de les bloquer.
Les extensions spécialisées dans le blocage de contenu analysent ainsi les requêtes et les comparent à une liste de domaines. Si du contenu doit en être téléchargé, la requête est bloquée et rien n’est affiché. C’est bien sûr l’idée générale, car la guerre intense entre producteurs et bloqueurs de publicité passe par de nombreuses subtilités. On connaît le goût prononcé désormais de ces mêmes producteurs pour les techniques de fingerprinting, c’est-à-dire tout ce qui peut identifier de manière unique un navigateur.
Web Request est une API puissante dans ses capacités. Elle est également souple d’utilisation, ce qui a largement contribué à son succès. Cependant, cette puissance la rend potentiellement dangereuse, car elle peut être utilisée pour introduire des comportements malveillants.
Puisque Web Request peut examiner ce qui transite entre un site et un navigateur, il devient un outil de choix pour espionner ces mêmes communications ou introduire du contenu. Car oui, la même API peut servir à bloquer la publicité et à en ajouter. Quand elle n’est pas utilisée pour créer des botnets destinés au vol de cryptomonnaies, comme l’avait montré Trend Micro en avril 2018.
Même si les navigateurs ont augmenté les mesures de sécurité autour des extensions et lancé des programmes de certification, l’un des éléments centraux du manifeste reste incertain. On savait donc que la révision suivante introduirait de gros changements destinés à sécuriser les extensions. Cependant, puisque le manifeste est publié par Google, les objectifs véritables sont troubles.
Ce que propose le Manifest V3
C’est en septembre de l’année dernière que Google a partagé ses vues sur la V3 du Manifest et ses objectifs. Ceux-ci sont clairs quand ils sont présentés par la firme : des performances, de la sécurité et de la vie privée.
Parmi les changements prévus, la suppression de l’API Web Request, comme on pouvait s’en douter. Elle 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é. Hors de ce champ, point de salut.
Il est évident que 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.
Plus globalement, le passage à un manifeste beaucoup plus déclaratif est une avancée pour les internautes. De nombreux comportements d’extensions liés à l’actuelle version du manifeste 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.
C’est du moins tel que Google l’avait présenté.
Des intérêts contraires
Dès la publication du billet de l’entreprise, l’EFF (Electronic Frontier Foundation) avait réagi en critiquant les véritables objectifs de Google.
L’avis était tranché : « 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 ».
Pourquoi ? Parce que « sous Manifest V2, les extensions sont traitées comme des applications de première classe, avec leur propre environnement d’exécution persistant. Mais avec la V3, elles sont traitées comme des accessoires, avec des privilèges limités et ne peuvent s’exécuter qu’en réaction ».
Une semaine avant déjà, Daly Barnett, également de l’EFF, critiquait vertement l’entreprise, pour une raison plus précise encore : « Manifest V3 […] réduira les capacités des extensions web, tout particulièrement celles conçues pour surveiller, modifier et calculer en parallèle de la conversation que votre navigateur entretient avec le site que vous visitez. Avec ces nouvelles spécifications, de telles extensions – comme certains bloqueurs protecteurs de vie privée – auront des capacités largement réduites ».
Le remplacement de Web Request par Declarative Net Request impose de changer radicalement de méthode pour le blocage de contenus. Car cette V3 émane de Google, dont 90 % du chiffre d’affaires environ provient de la publicité. Et là, pas de secret puisque l’entreprise en parle dans des documents remis à la SEC (Securities and Exchange Commission) américaine. Elle se réfère ainsi à plusieurs reprises aux technologies nouvelles et actuelles de blocage publicitaire comme autant d’éléments pouvant affecter ses revenus.
Il est donc complexe d’afficher une volonté de booster la sécurité et la protection de la vie privée quand, en parallèle, la même technologie peut également servir à préserver le chiffre d’affaires. C’est cette ambiguïté que dénonçait déjà l’EFF à l’automne dernier, et la situation n’a pas évolué. Même si Eyeo, éditeur d'Adblock, avait indiqué apprécier les évolutions du Manifest V3, ses développeurs ont des liens financiers avec Google. Chez Ghostery, presque aussi célèbre, le son de cloche est déjà très différent.
Le Manifest V3 ne sera pas cantonné non plus à Chrome. Il est en fait accolé au projet Chromium et donc à tous les navigateurs qui s’en servent de base, comme Edge chez Microsoft, Brave, Opera ou encore Vivaldi.
Et Mozilla dans tout ça ? 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.
Le Manifest V3 oui, mais avec Web Request !
La fondation a donné son avis dans un billet publié le 18 mai. Elle y explique, dans les grandes lignes, qu’elle adoptera le Manifest V3 comme nouvelle base de fonctionnement des extensions. L’éditeur ne s’en cache pas : ce support est essentiel, pour des raisons très simples de compatibilité. Mozilla tient à ce que les développeurs puissent passer facilement de Chrome à Firefox.
Il y aura cependant une différence de taille : même si le Manifest V3 sera supporté en intégralité, l’API Web Request sera préservée. Son avenir ne dépendant pas de Google, rien n’empêche effectivement d’autres développeurs de s’en servir. La direction prise 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.
Une question de cohérence pour Mozilla, qui a fait de la vie privée l’un de ses chevaux de bataille. Firefox bloquant par défaut le tracking, il serait illogique d’empêcher les utilisateurs de bloquer les publicités s’ils souhaitent aller plus loin.
À quoi s’attendre l’année prochaine ?
Le Manifest V2 sera supporté pendant encore un an, jusqu’en juin 2023. Ensuite, le règne de la V3 commencera, bon an mal an. À partir de là, deux visions s’affronteront.
D’un côté, le projet Chromium et son Manifest V3 pur-sang, 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, Mozilla et sa vision hybride, avec son Manifest « V3+ ».
Il est évident que chacun milite pour sa paroisse. Mozilla y voit une manière de se distinguer dans ce qui sera potentiellement un « petit scandale entre initiés ». Le message sera alors clair : venez chez nous, vos extensions y fonctionneront comme avant. Du moins pas tout à fait, puisque Firefox abandonnera lui-aussi le support du Manifest V2 à la même date.
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é. En effet, le but derrière le support de la V3 par Firefox est justement de permettre aux développeurs de passer très rapidement de l’un à l’autre, presque sans modifications. Ajouter le support de Web Request requerrait forcément du travail, puisqu’il faudrait le greffer sur la nouvelle base du Manifest V3, qui réclamera déjà plus ou moins de travaux.
Le message sera bien là cependant : pour de vraies extensions de blocage publicitaire, mieux vaut aller sur Firefox. Suffisamment accrocheur pour que les utilisateurs reviennent vers lui ? Pas certain, d’autant que Mozilla est loin d’être seul à jouer sur la protection de la vie privée.
Les dérivés de Chromium ne sont en effet pas démunis face au changement annoncé. Brave, Opera et Vivaldi ont ainsi en commun d’inclure directement des mécanismes de blocage publicitaire dans leur code. Bien que cette fonction s’appuie toujours sur des listes (et continuera de le faire) elle n’a pas besoin d’un quelconque manifeste pour donner des résultats, car il ne s’agit – justement – pas d’une extension. Mais comme l'a résumé Microsoft dans une note technique sur la migration à venir, la compatibilité avec le Manifest V3 n'est pas une option.