Attention : cette fonctionnalité est encore expérimentale et peut être amenée à évoluer :)

Pourquoi faire ?

« Mais dis-moi plutôt qui tu es ? », Rafiki, Le Roi Lion

Lorsque nous naviguons sur le Web, nous utilisons différents sites pour différents besoins. Notre identité numérique se compose parfois de différentes identités selon le contexte : personnel, professionnel, consommation, etc. En revanche, il était jusqu’à présent difficile d’organiser cette compartimentation via le navigateur web (utiliser différents navigateurs, la navigation privée, différents profils, etc.).

La fonctionnalité d’« onglet contextuel », implémentée dans Firefox Nightly, a été conçue pour répondre à ce besoin de séparation. Ainsi, au sein d’une même session et d’un même profil, on pourra se connecter, simultanément, sur un compte personnel et, par exemple, sur un compte professionnel (ou autre) d’un site donné (Twitter, Google, Facebook, Trello…).

Cette séparation permet également de limiter le pistage des différents sites en isolant les données créées par chacun. Nul besoin que les publicités (disons Facebook) laissent des traces à destination des autres sites (disons Amazon). En utilisant ces sites dans des contextes séparés, les cookies, entre autres, seront compartimentés. En plus de ces aspects relatifs à la vie privée, cela permet d’obtenir une meilleure sécurité : cela améliore la protection contre le vol de cookies de session d’un site bancaire par exemple.

Note : les onglets contextuels ne sont pas la réponse à toutes les questions, les profils ou Tor Browser ont toujours leurs raisons d’être.

Les différents contextes

La compartimentation ne se limite pas nécessairement au caractère personnel/professionnel. Pour cette fonctionnalité, Mozilla a prévu un premier ensemble de contextes :

  • Personnel
    • exemple d’utilisation : le compte Twitter personnel, la page Gmail sur une adresse électronique privée,
  • Professionnel
    • exemple d’utilisation : les documents Google des clients de l’entreprise (:]]), la page Facebook de la société maintenue à jour,
  • Bancaire
    • exemple d’utilisation : suivre mon compte bancaire, accéder à des documents privés sur le portail de mon assurance,
  • Achats en ligne
    • exemple d’utilisation : RedBubble, Amazon…

Par la suite, en plus de ces catégories prédéfinies, il est prévu de pouvoir ajouter des contextes personnalisés. Enfin, il y a un contexte par défaut, le contexte « normal » (ce qui vous permet d’utiliser Firefox sans nécessairement avoir recours aux contextes).

Lorsque vous cliquez sur un lien depuis un contexte « Personnel », le nouvel onglet sera automatiquement rattaché au contexte « Personnel » (idem pour les autres).

Comment les utiliser ?

Tout est expliqué dans cette vidéo :

Et si vous préférez lire, voici la suite :

Prérequis : À l’heure actuelle, cette fonctionnalité est uniquement disponible sur le canal Nightly de Firefox. Pour l’utiliser, vous pouvez télécharger cette version sur ce site de la communauté francophone ou encore sur ce nouveau site mozilla (NB : vous pouvez tout à fait utiliser une version « classique » de Firefox en parallèle d’une « Nightly » afin de tester :) ). Si vous souhaitez désactiver cette fonctionnalité, vous pouvez utiliser la préférence privacy.userContext.enabled avec la valeur false via sur la page about:config.

Pour ouvrir un nouvel onglet contextuel, vous disposez de différentes options.

1. Avec le menu hamburger

  1. Cliquer sur l’icône en haut à droite icône menu hamburger
  2. Cliquer sur « (+) Personnaliser » en bas
  3. Ensuite, vous pouvez glisser le bouton « Onglet contextuel » dans le menu (à droite) ou dans votre barre d’outils

Aperçu du bouton dans l'écran de personnalisation

L’écran de personnalisation

Aperçu du bouton d'onglet contextuel dans le menu

Accéder au bouton lorsqu’il est dans le menu

Aperçu du bouton dans la barre principale

Accéder au bouton lorsqu’il est dans la barre d’outils

2. Avec le menu « Fichier » de la barre de menus

Si vous utilisez la barre de menu, cette option est disponible dans le menu « Fichier » : Aperçu du menu via la barre de menus

2. Grâce à la liste d’onglets

Si vous naviguez avec de nombreux onglets, vous pourrez utiliser la liste d’onglets pour ajouter un nouvel onglet contextuel : Aperçu du menu via la liste d'onglets

Note : Cette option apparaît uniquement lorsque le navigateur n’a plus suffisamment d’espace pour afficher chacun des onglets.

3. Via les hyperliens

Une fois que vous avez ouvert un nouvel onglet contextuel, tout lien sur lequel vous cliquerez ouvrira un onglet rattaché (ex. je suis sur mon Twitter avec le contexte « Personnel », si je clique sur un lien vers lesjours.fr, celui-ci sera ouvert dans le contexte « Personnel »). Mais que se passe-t-il si je suis sur Twitter (perso) et que je vois un lien vers Amazon (achats) ? Lorsqu’on clique droit sur un lien, on dispose d’une nouvelle option permettant de choisir le contexte dans lequel on veut ouvrir le nouvel onglet :

Nouvelle option du menu contextuel via les liens

Quelques illustrations

Pour s’y retrouver, on dispose de deux indicateurs :

  • Une ligne colorée au-dessus de l’onglet
    • Bleue : contexte personnel
    • Orange : contexte professionnel
    • Verte : contexte bancaire
    • Rose : contexte pour les achats en ligne
    • Rien : le contexte par défaut Aperçu des indicateurs visuels
  • Pour l’onglet actif, un symbole à la fin de la barre d’adresse

Sous le capot

La technique

Les onglets contextuels ne sont pas des profils séparés. D’ailleurs, ils fonctionnent au sein d’un même profil (autrement dit, chaque profil embarque son propre ensemble de contextes).

Note : Pour en savoir plus, comme pour chaque fonctionnalité de Firefox, vous pouvez consulter Bugzilla. Les onglets contextuels sont poétiquement décrits dans le bug 1191418.

À l’origine

En fait, les contextes reposent principalement sur la notion d’origine. Une origine se définit par un schéma (ex. http/https), un hôte (le domaine) et le port. Cette origine est déjà employée par le navigateur pour décider si telle ressource provenant de telle origine est sécurisée et peut être chargée (cf. MDN). En ajoutant des informations à l’origine d’une page, on peut enrichir cette fonctionnalité (c’est ce que font déjà la navigation privée, le Tor Browser, etc.). Gecko utilise donc des informations complémentaires, appelées OriginAttributes pour déterminer si deux origines sont équivalentes.

Pour les onglets contextuels, un nouvel attribut : userContextId a été ajouté à ces informations. Chaque contexte aura son propre userContextId et les informations stockées par les sites seront compartimentées en tenant compte de cette information.

Les onglets contextuels ajoutent ainsi un nouvel élément de sécurité contre les attaques de type XSS et CSRF.

Pas touche à mes cookies

On vient de le voir, lorsque je navigue sur Twitter via un onglet contextuel « personnel », Firefox utilise l’origine combinée avec l’attribut userContextId afin de déterminer les informations auxquelles cet onglet Twitter aura accès. Il ne pourra pas, par exemple, accéder aux informations d’un autre onglet supersecurebanking.net, qui, elles, sont stockées avec un autre attribut userContextId. Ouf.

Mais qu’entend-on par donnée personnelle ? Qu’est-ce qui est compartimenté ? Qu’est-ce qui ne l’est pas ?

Ce qui est isolé :

Ce qui n’est pas isolé :

  • L’historique
  • Les marque-pages
  • Les mots de passe enregistrés
  • L’historique des recherches et des formulaires
  • Les permissions accordées aux sites web
  • Les exceptions de certificats de sécurité
  • Des trucs ésotériques comme les marqueurs HSTS et les réponses OCSP

Les limites

Les onglets contextuels augmentent la sécurité des données via cette compartimentation. Mais celle-ci n’est pas absolue, votre ordinateur aura toujours la même IP, le même agent utilisateur, le même système d’exploitation, etc. Si la séparation des cookies protège contre un pistage basique, il faut être conscient que le fingerprinting avancé est toujours possible, même avec les onglets contextuels. Selon les cas d’usage, le navigateur [Tor Browser] peut être une alternative pertinente. Ce dernier maximise l’anonymat en ligne quitte à casser certaines fonctionnalités des sites visités, les onglets contextuels visent à améliorer la vie privée tout en conservant les fonctionnalités des différents sites.

La suite

Voici quelques pistes pour l’avenir de cette fonctionnalité :

  • L’amélioration de l’ergonomie et de l’interface utilisateur : ce n’est pas parce que cette fonctionnalité concerne la sécurité et la vie privée, qu’elle ne doit pas être claire, accessible et attirante. Elle doit pouvoir bénéficier aux personnes qui ne maîtrisent pas ces enjeux.
  • Le nettoyage des données relatives à chaque contexte (qui a dit qu’il fallait passer en navigation privée pour acheter un cadeau ?)
  • Ouvrir un onglet contextuel en appuyant longtemps sur (+) lorsqu’on veut ouvrir un nouvel onglet
  • Les contextes personnalisés ou limités à un site
  • Régler quelques bugs relatifs
  • Recevoir votre avis grâce à ce sondage ou via containers@mozilla.com

Liens & sources