Qookie Fix: Intro et prochaines étapes

Rendre à César

Comme ce billet est long et que je ne suis pas sûr que vous le lirez dans son ensemble, je commence par remercier Guénaël Pépin pour m’avoir mis l’idée en tête via son tweet. Un grand merci aussi à Nymous sans qui l’extension serait devenue un gouffre de mémoire.

Le RGPD est arrivé

Comme tout le monde, j’ai constaté que les bandeaux cookies recommençaient à pulluler à l’approche de l’été. Ce qui est peut-être moins commun, c’est que j’étais heureux car l’utilisateur semblait enfin pouvoir consentir au dépôt de cookies au lieu d’être mis devant le fait accompli comme il l’a été durant plusieurs années. J’ai rapidement déchanté en découvrant le périple qu’il fallait accomplir pour s’opposer au dépôt de cookies.

Le bandeau auquel j’ai été le plus confronté est celui de Quantcast. Il permet de consentir très facilement. Mais il n’offre pas vraiment de choix car si on souhait s’opposer, les choses se compliquent puisqu’il est souvent nécessaire de décocher les cases une par une. Le pire étant qu’il faut répéter l’opération presque quotidiennement car dès lors qu’on ne consent pas, le bouton réapparaît fréquemment.

Peut-être coupable mais pas responsable

En fait, ce bandeau propose par défaut aux éditeurs de mettre un bouton « je refuse » sur leur bandeau (et d’ailleurs, si vous allez sur le site de Quantcast, vous le verrez apparaître) mais très très peu de sites le proposent. La plupart des éditeurs configurent le module pour que le bouton de refus n’apparaisse pas car, évidemment, ça décourage les utilisateurs qui ne voudraient pas consentir. A noter qu’une autre option permet aux éditeurs de choisir à quelle fréquence le bandeau réapparaît en cas de refus, et par défaut c’est « une fois par jour ».

Paramétrage du bandeau depuis le site de Quantcast

 

Il n’est pas certain qu’un consentement obtenu de cette façon soit valable. Il me semble, par contre, que Quantcast n’est pas attaquable puisque l’outil proposé permet, selon le paramétrage choisi, d’obtenir un consentement valable. Ce sont donc les éditeurs de sites qui le configurent de manière à « forcer » le consentement. Par conséquent, pour régler le problème il faudrait attaquer les sites un par un.

Bien que Quantcast ne soit pas responsable, la société communique sur le taux de consentement qui atteint 90%, au point qu’on en viendrait à se demander quel est l’intérêt d’offrir un choix à l’utilisateur.

Des contournements peu efficaces

Comme il est compliqué de simplement ignorer ces bandeaux, j’ai d’abord cherché à les contourner en utilisant systématiquement le mode « lecture » du navigateur. Malheureusement cette approche n’est pas utilisable sur tous les sites, et elle n’envoie en plus aucun signal aux éditeurs. Or, comme Quantcast met en avant les taux de consentement élevés, il devient important de pouvoir signaler que l’on s’oppose au suivi et d’avoir une influence sur ces chiffres.

Twitter a fini de me convaincre que je n’étais pas le seul à me préoccuper de cette situation et j’ai donc commencé à réfléchir à une extension qui équilibrerait le choix. Ajouter le bouton sur le bandeau était la partie facile, mais il restait à matérialiser le choix des personnes qui clique sur le bouton “s’opposer”.

Une solution simple

Quand une personne consent ou s’oppose via un bandeau Quantcast, son choix est sauvegardé dans un cookie. J’ai voulu répliquer un cookie d’opt-out Quantcast pour matérialiser l’opt-out mais je n’ai pas réussi à créer un cookie d’opt-out générique.

Comme je voulais une solution simple, il m’a fallu explorer une autre piste et, en analysant un peu le code du bandeau, et surtout en allant sur le site de Quantcast, je me suis rendu compte qu’il était simple de faire appel à la fonction d’opt-out. C’est donc ce que fait l’extension, dès qu’elle détecte la présence d’un bandeau Quantcast, l’extension fait apparaître un bouton « Je refuse » et lui associe la fonction d’opt-out prévue par Quantcast. L’extension n’a pas pour objectif de bloquer techniquement les trackers mais simplement d’offrir un vrai choix aux utilisateurs là où les dark patterns tentent de forcer le consentement. Par la même occasion, elle permet d’envoyer un signal aux éditeurs de sites puisqu’il est probable que ceux-ci prêtent attention aux taux de consentement.

Le Framework de l’IAB “Consent & Transparency”

Techniquement, l’extension est donc assez simple. Là où les choses se compliquent, c’est qu’elle est spécifique au bandeau Quantcast et qu’il est compliqué de l’adapter aux autres bandeaux cookies. A minima, il faudrait pouvoir l’adapter à toutes les solutions compatibles avec le framework de l’IAB.

De ce que j’en comprends, tous les bandeaux compatibles avec ce framework utilisent le même cookie de consentement. Les informations contenues dans ces cookies sont codées selon un algo proposé par l’IAB.

A la simple lecture de ces cookies, il n’est pas possible pour un utilisateur de savoir à quelles finalités il a consenti. C‘est problématique puisque la seule solution mise à disposition des utilisateurs lambda pour savoir à quelles finalités ils ont consenti est de retrouver le bandeau. Pour décoder le contenu de ces cookies, il faut réutiliser les scripts proposés par l’IAB (réadaptés ici). Au passage, je salue le fait que ces scripts soient mis à disposition sur Github avec une licence MIT. Une alternative consiste à installer l’extension re:consent de Cliqz qui est aussi disponible sous Firefox et Chrome.

Une fois le cookie décodé, on ne peut lire que des numéros de finalités. Or si l’IAB fournit une nomenclature pour les finalité 1 à 5, certains éditeurs et/ou fournisseurs de bandeaux font référence à des finalités non définies. Le cookie contient la liste des finalité auxquelles l’utilisateur a consenti. Donc pour proposer un opt-out complet : il suffit d’encoder un cookie avec une liste vide de finalités.

Next steps

Pour améliorer l’extension, il faudrait qu’elle soit compatible avec plus de bandeaux. La solution qui me paraît la plus simple pour offrir un opt-out sur tous les sites utilisant le framework de l’IAB est donc d’encoder un cookie avec aucune finalité. Reste la partie un peu plus compliquée qui est celle de la détection de tous les bandeaux compatibles avec le framework IAB. A ma connaissance, il n’y a pas de solution simple, la meilleur solution serait de détecter le cookie après coup ce qui est moins pratique.

La prochaine amélioration apportée consistera à empêcher que le bandeau ne réapparaisse une fois que l’on s’est opposé. N’hésitez pas à contribuer au code ou à donner des idées ici : https://github.com/vtoubiana/QookieFix/issues

In fine, ça restera sans doute une solution temporaire. Les autorités de protection des données vont sans doute clarifier les règles sur ce qui est acceptable et ce qui ne l’est pas, et après Safari et Brave, Firefox va activer une protection anti-tracker par défaut. Compte tenu des récents développements du navigateur de Google,  je ne serais pas étonné que Chrome en face de même.