Mot-clef « Extensions »

De la politique de signature des extensions dans Firefox

Mozilla, le Parti Socialiste du logiciel ?

La semaine passée, les utilisateurs de Firefox ont dû faire face à une désactivation de l’ensemble des extensions du navigateur (enfin presque, chez moi 5 sont restées, allez savoir pourquoi). Mozilla a fourni rapidement des solutions de contournement et travaillé à résoudre le problème (plus de détails ici) et je n’ai rien à redire là dessus.

Par contre ça révèle selon moi un gros problème de fond.

Je ne vais pas m’étendre sur la partie concernant le mécanisme d’« études » dont j’avais oublié l’existence et qui était finalement le seul moyen de contournement trouvé sur un Firefox standard : ce mécanisme permet à Mozilla d’installer silencieusement des trucs sur le navigateur et est fort heureusement désactivé par défaut… même si ça laisse songeur sur les potentielles failles de sécurité ouvertes par ce canal.

Non, ce qui me pose vraiment problème c’est cette gestion de la signature des modules. Non pas que le fait de signer les modules soit un problème en soi. C’est une réponse tout à fait valable à des attaques via des extensions malveillantes. Mais plutôt la manière dont c’est mis en œuvre.

En effet, cet épisode révèle que :

  • la vérification de la signature des modules est désactivable sur environ toutes les versions sauf la version grand public (donc sur ESR, Developer edition, Nightly) via la clé xpinstall.signatures.required (et extensions.langpacks.signatures.require pour les paquetages linguistiques), cf la documentation pour plus d’informations
  • les signatures des modules sont revérifiées une fois par jour (cf l’article technique évoqué plus haut) et si la vérification échoue, l’extension est désactivée d’autorité (et silencieusement je crois bien mais je ne suis plus certain de ce point, il y avait peut-être un petit message dans un coin)

Ces deux points sont pour moi hautement problématiques pour des raisons plutôt bien résumées dans les pouets suivants :

Sinon imaginez Linux avec le même genre de conception ?

Le certificat du dépôt expire, et tous les paquets sont invalidés et votre OS cesse de fonctionner ?

C'est pas juste une bourde, c'est une énorme connerie dès la conception. Une énorme FBI (Fausse Bonne Idée).

Mais c'est pour notre bien, c'est pour notre sécurité. Meh.

Non la pillule n'arrive pas à passer.

— sebsauvage (@sebsauvage@framapiaf.org) le 10 mai 2019 à 19:46

Le problème, c'est que Mozilla commence à faire comme Google : faire les choix à la place de l'utilisateur "pour son bien", non seulement en ne lui proposant pas de choisir, mais en allant jusqu'à rendre la désactivation de l'option IMPOSSIBLE.

À partir de quand c'est une bonne idée ?

Comme on peut considérer ça comme respectueux de l'utilisateur ?

— sebsauvage (@sebsauvage@framapiaf.org) le 10 mai 2019 à 20:12

Que les options par défaut protègent l'utilisateur OK, mais pourquoi empêcher les utilisateurs avancés de modifier l'option ?

— sebsauvage (@sebsauvage@framapiaf.org) le 10 mai 2019 à 20:41

On est là au cœur du problème : Mozilla a mis en place un système de signature des extensions pour protéger contre les extensions malveillantes (et c’est très bien) mais de telle manière que l’utilisateur n’ait aucune manière de contourner le système s’il le souhaite. Mozilla décide et l’utilisateur subit “pour son bien”.

Dans les versions du logiciel destinées à un publique technique ou professionnel on permet de désactiver le système mais pour le grand public, non. Quand je dis que c’est désactivable, on parle bien d’une configuration perdue dans about:config, donc un truc que l’utilisateur lambda n’a aucune chance de toucher par erreur (puisque les extensions ne le peuvent plus). Un truc déjà réservé à des utilisateurs avancés (ceux qui ont passé le message anxiogène et fait l’effort de trouver la clé à modifier). Donc pourquoi l’interdire sur la version grand public ?

Message anxiogène avant d'accéder à about:config
Message anxiogène avant d'accéder à `about:config`

Le second point relève de la même logique : on valide tous les jours et en cas d’échec on désactive. Sur le papier ça peut se tenir comme comportement par défaut mais une fois de plus c’est décider à la place de l’utilisateur.

Comment on peut considérer que faire tout d’autorité sans à aucun moment donner la main à l’utilisateur peut être une bonne idée ? Parce que virer les extensions ça veut dire casser des fonctionnalités (ce qui peut être un gros problème) mais surtout se balader à poil (vu le peu d’outils natifs de protection contre les traqueurs).

Le minimum aurait été de proposer un bouton permettant de réactiver l’extension (après moult messages anxiogènes si on veut) mais un truc qui permette de continuer à utiliser convenablement son navigateur même si un truc s’est mal passé.

Pour moi tout ça est assez symptomatique de la dérive de Mozilla ces dernières années qui se comporte de plus en plus comme un Google ou un Apple : je sais mieux que vous ce qu’il faut faire donc pour votre sécurité je vais décider à votre place.

Je suis désolé mais pour moi c’est très loin de l’idéal des logiciels libres. Mais vraiment très loin. C’est infantiliser l’utilisateur en lui déniant le droit de faire des choix (certes il peut toujours patcher son navigateur et le recompiler, hein, mais outre le fait que ça nécessite déjà un gros bagage technique, avec la mode des cycles de développement courts c’est devenu excessivement laborieux).

Encore une fois je ne dis pas qu’il faut laisser faire les pire conneries en deux clics mais juste laisser des solutions de contournement, a fortiori quand elle existent (puisque la clé de configuration existe dans les autres versions, ça n’introduirait même pas de coût de maintenance supplémentaire).

Tout ça me renforce dans mon impression de plus en plus forte que Mozilla tend à s’apparenter à un Parti Socialiste du logiciel : on fait valoir de grand idéaux mais finalement on va au même endroit que les autres, juste un peu plus lentement. Et ça, ça me déprime fortement parce qu’on n’a pas des masses d’alternatives viables en matière de navigateurs libres.


Carcassonne : extensions non-officielles

Depuis plusieurs années, le jeu de société que je joue le plus souvent (et de très loin) c’est Carcassonne. Ce jeu de Klaus-Jürgen Wrede est sorti pour sa première édition en 2000 et a depuis bénéficié de plusieurs rééditions, de plusieurs dizaines d’extensions et de plusieurs variantes autonomes.

La grande force de ce jeu est son extensibilité qui permet de grandement varier les parties (parce que bon, le jeu de base reste quand même limité). Les dizaines d’extensions existantes (pas toutes faciles à trouver par contre) permettent déjà beaucoup mais on peut également réaliser ses propres extensions même si ça demande un peu de boulot pour faire les choses bien, notamment pour que les tuiles perso ne soit pas trop différentes des tuiles officielles et donc reconnaissables.

C’est sur le site Carcassonne Central et notamment la rubrique dédiée « Fan-made Expansions » que j’ai trouvé la plupart de celles que j’utilise (il faut s’incrire pour accéder aux contenus). La qualité y est très inégale par contre, il faut vraiment faire du tri. Certaines ont des tuiles absolument dégueulasses, d’autres sont vraiment superbes. Idem pour les mécaniques, on va de truc absolument bidons à des truc très (voire trop) complexes, certaines s’avèrent très moyennes à l’usage tandis que d’autres sont vraiment très réussies.

Voilà une sélection parmi celles que je joue souvent.

Extensions n’ajoutant pas de nouvelles tuiles

Ces extensions ne nécessitent pas de fabriquer de nouvelles tuiles et sont donc faciles à mettre en œuvre.

  • Tactician : cette extension rajoute une nouvelle action possible pendant le tour d’un joueur : à la place de poser un partisan ou un autre pion, s’il n’en a pas encore, il peut choisir de prendre un jeton Tacticien. Ce jeton peut ensuite être utilisé durant le tour d’un autre joueur pour placer un partisan sur la tuile que celui-ci vient de jouer. Elle a l’avantage de réduire la frustration quand on pioche une tuile inutile en permettant de tout de même faire quelque chose.
  • The Kids are Growing Up : celle-ci ne nécessite pas de tuiles mais des nouveaux pions “enfants” (on peut notamment utiliser pour cela ceux de la version “voyage” de Carcassonne où les pions sont plus petits). Les enfants peuvent être joués à la place d’un partisan sur une ville ou une route où le joueur a déjà un partisan. Lorsque la structure est complétée, il rapporte un point supplémentaire par tuile dans la structure. La règle propose de faire +3 par tuile si les deux enfants sont présents dans la même structure mais à l’usage ça nous a paru trop puissant, on se limite donc à +1 par tuile et par enfant.

Extensions ajoutant de nouvelles tuiles

Ces extension nécessitent de fabriquer de nouvelles tuiles ce qui peut être fastidieux.

  • Lord of the Manor : une petite extension assez simple de 4 nouvelles tuiles se comportant comme des abbayes mais avec une zone de 5x5 au lieu de 3x3. Le manoir rapportant 50 points s’il est complété et 1 point par tuile en fin de partie (comme pour l’abbaye).
  • Fiefs : assez similaire à la précédente, cette extension ajoute 6 tuiles contenant chacune un Château Féodal. Il s’agit d’une nouvelle construction qui est complétée lorsque les 8 tuiles qui l’entoure sont placé et que toutes les villes présentes sur ces 8 tuiles sont complétées et rapporte ensuite un point par tuile de chacune de ces villes plus un point par bouclier.
  • Seasons : celle-ci ajouter une série de nouvelles tuilles qui lorsqu’elles sont piochées font “changer de saison”, ce qui active un modificateur sur les points rapportés lors de l’évaluation des structures (ex : “+2 points par ville”, “+1 point par tuile sur les routes”, “-2 points par abbaye”, etc).
  • Fortune teller : on a ici 8 nouvelles tuiles comportant une tente de voyante. Tant qu’un joueur a un partisan sur une tente de voyante, au début de son tour il pioche deux tuiles au lieu d’une seule et peut choisir parmi elles celle qu’il va jouer. La tente est complétée lorsque les 4 tuiles adjacentes sont posées, le joueur qui la complète marque alors des points mais pas celui qui avait son partisan dessus.
  • Family Feud : cette extension comporte 30 tuiles ce qui peut être beaucoup de boulot à fabriquer. Le concept est simple : les nouvelles tuiles comportent toutes des villes avec des bouclier rouge et jaunes. La contrainte étant que ces nouveaux boucliers ne doivent pas se retrouver dans les mêmes villes que les boucliers classiques bleus et blancs. À l’usage ça s’avère plutôt intéressant à jouer et ça a l’avantage de limiter un peu la taille des villes dans les parties longues.

Voilà il y en a beaucoup d’autres, je ne les ai de loin pas toutes testées.

J’ai également imaginé pas mal d’extensions et variantes perso qui feront l’objet de futurs articles.