Journal Anonymat avec Firefox : multi-profils

Posté par . Licence CC by-sa
19
2
déc.
2013

Depuis longtemps, je me dis qu'il faut que je code un script shell à La Rache® utilisant les profils de Firefox pour pallier son manque (lamentable AMHA) d'isolation entre les sites dans une même instance. J'ai beau utiliser NoScript, Cookie Whitelist, etc, ce n'est pas suffisant pour permettre d'utiliser complètement, par exemple, Youtube sans autoriser les cookies et scripts de Google sur tous les autres onglets et fenêtres au (re)chargement de ceux-ci. Révoquer les permissions à chaque fois peut sembler être une option, mais on abandonne vite. De plus, ce n'est qu'un exemple des problèmes causés par le manque d'isolation. Concernant les protections intégrées au navigateur, le mode « navigation privée », bien que très insuffisant, n'arrive pas à la cheville du délicieux cynisme de l'option Télétubbies « Do Not Track ».

J'ai commis le micro-script ci-dessous que j'appelle avec un lanceur, spécifique à mon gestionnaire de bureau, qui me demande uniquement le nom du profil à créer. Il crée un profil à la volée en utilisant le profil par défaut de Firefox, lance une instance concurrente de Firefox avec ce nouveau profil puis le supprime à la fermeture de Firefox. On peut ainsi utiliser de nombreuses instances en même temps pour isoler les sites.

#!/bin/sh
# Pour le moment on supprime le profil même si firefox a planté, mais il serait facile 
# de tester pour éviter cela, et de récupérer le profil sans l'écraser, s'il existe déjà.
if [[ $1 != "" ]]
then profile=$1
else profile=`uuidgen`
fi
#echo $profile
mkdir /tmp/$profile && rsync -trlpgovDHq --exclude=bookmark* --exclude=urlclassifier3.sqlite --exclude=places.sqlite --exclude=sessionstore* --exclude=Cache/ $HOME/.mozilla/firefox/*.default/ /tmp/$profile/ && firefox -no-remote -profile /tmp/$profile && rm -Rf /tmp/$profile

Ce n'est pas terrible mais c'est mieux que rien et je suppose que ça peut inspirer, intéresser ou susciter des commentaires. Je conseille l'utilisation des modules suivants (ou équivalents) sur le profil copié : Adblock Plus, NoScript, Cookie Whitelist, BetterPrivacy, HTTPS Everywhere, ipFuck, Firegloves, Show Profile (indispensable pour savoir dans quel profil on est). En ajoutant Tor ou un proxy utilisé par de nombreuses autres personnes (et payant pour un meilleur débit) à cette artillerie lourde, on est probablement relativement anonyme si on n'est pas spécifiquement ciblé (ce n'est même pas sûr !). Cependant, ce n'est jamais parfait. Au rythme où vont les choses, je me demande s'il sera possible de protéger sa vie privée d'Internet dans le futur. Restera la possibilité de ne pas en avoir…

NB : Oui, je sais qu'il existe Chromium mais j'ai des doutes sur la capacité de la communauté à maintenir un fork quand Google serrera la vis. Quant à Google, j'aurai confiance en cette entreprise quand elle sera morte. Méfiance quand même concernant Firefox puisque Google finance Mozilla.

  • # Navigation privée

    Posté par . Évalué à 3.

    Quelle différence par rapport à la navigation privée, qui est accessible depuis le menu Fichier / "Nouvelle navigation privée" ? je dirais que dans ce cas, le profil de navigation est complètement vidé, y compris pour les marques pages. Ca peut être ennuyeux.

    • [^] # Re: Navigation privée

      Posté par . Évalué à 4.

      Je pense que rien n'enregistrer est différent de séparer complétement les onglets.

      Pour éviter de me faire pister, j'utilise requestpolicy, qui décide quel site à le droit d'aller chercher des pages sur quel autre site (c'est parfois chiant, surtout avec cloudfront et les url qui bougent). Cela permet de fonctionner en whitelist quand ghostery fonctionne en black list (si configuré, de base, il laisse tout passer).

      Mais de base, les onglets devrait être isolé.

      "La première sécurité est la liberté"

    • [^] # Re: Navigation privée

      Posté par . Évalué à 1.

      Oui et la plupart des modules comme NoScript ne prennent pas en compte la séparation avec la « navigation privée ». De plus, c'est inférieur niveau isolation. Si un script rame ou plante Firefox, toute l'instance est touchée. Idem pour la sécurité.

  • # RequestPolicy ?

    Posté par (page perso) . Évalué à 2. Dernière modification le 02/12/13 à 09:47.

    J'ai beau utiliser NoScript, Cookie Whitelist, etc, ce n'est pas suffisant pour permettre d'utiliser complètement, par exemple, Youtube sans autoriser les cookies et scripts de Google sur tous les autres onglets et fenêtres au (re)chargement de ceux-ci.

    RequestPolicy est un pas dans la bonne direction pour ces choses là : tu peux permettre seulement de tel sous-domaine à tel sous-domaine (par contre tu peux pas distinguer les onglets qui sont dans un même domaine).

    Révoquer les permissions à chaque fois peut sembler être une option, mais on abandonne vite.

    Ou alors ça devient un réflexe (c'est vrai). Perso, je vois ça positivement comme presque mon seul entraînement à la souris, sinon je vais finir par plus savoir l'utiliser ;)

    Mais sinon c'est vrai qu'a priori, l'idéal ce serait d'avoir quelque chose comme une instance de firefox par domaine, mais de façon un peu plus simple. Déjà, tu peux peut-être fabriquer les noms de profils automatiquement (au sens, sans intervention), ça te fera gagner du temps.

    Edit : grillé pour RequestPolicy juste au-dessus :)

    • [^] # Re: RequestPolicy ?

      Posté par (page perso) . Évalué à 1.

      Déjà, tu peux peut-être fabriquer les noms de profils automatiquement (au sens, sans intervention)

      J'ai l'impression que c'est déjà ce que tu fais, mais comme tu rajoute la possibilité de mettre le nom en argument, et que tu dis dans le texte que le programme te demande le nom, j'avais eu l'impression qu'il te fallait une étape supplémentaire, mais pas, en fait.

  • # Et le multinavigateur?

    Posté par . Évalué à 3.

    J'utilise une méthode plus simple: j'ai un firefox pour une catégorie de sites, un Chrome pour d'autres (en fait que les services google) et souvent je lance un seamonkey pour encore d'autre sites.

    Là, l'isolation est parfaite, et c'est en plus très visuel. Je ne vais pas ouvrir un gmail depuis firefox.

    • [^] # Re: Et le multiordinateur?

      Posté par (page perso) . Évalué à 10.

      Petit joueur, tu pourrais utiliser un système d'exploitation par catégorie de sites.
      Voire un ordinateur par catégorie de sites.
      Voire une connexion internet différente par catégorie de sites.
      Voire un cerveau différent par catégorie de sites (pour éviter le fingerprinting sur le fonctionnement de ton cerveau)…

      blog.rom1v.com

      • [^] # Re: Et le multiordinateur?

        Posté par . Évalué à 2.

        Voire un cerveau différent par catégorie de sites

        Tout le monde ne s'appelle pas Zaphod Beeblebrox…

      • [^] # Re: Et le multiordinateur?

        Posté par . Évalué à 1.

        Petit joueur, tu pourrais utiliser un système d'exploitation par catégorie de sites.

        Je n'en suis pas loin :-)
        Quand je me balade sur des sites commerciaux, je boote sur un live-CD comme la Slax.
        Comme ça, je peux laisser le navigateur écrire tout ce qu'il veut, au lancement suivant je suis sûr de repartir d'un système bien propre.
        De plus, la Slax est (assez) facilement personnalisable.

    • [^] # Re: Et le multinavigateur?

      Posté par . Évalué à 1.

      Certes, mais j'aime bien avoir mes réglages et nombreux plugins partout. J'en ai codé certains spécifiques à mon utilisation et il faudrait les porter. D'autres ne sont disponibles que sur Firefox. Je suis habitué à Firefox aussi.

  • # Moultifox

    Posté par . Évalué à 3.

    Je ne sais pas si c'est ce que tu cherches mais il y a des add-ons qui permettent d'utiliser plusieurs profils dans la même session firefox, par exemple Multifox

    • [^] # Re: Moultifox

      Posté par . Évalué à 0.

      Je ne savais même pas que ça existait. Je n'ai pas bien cherché. /o\
      D'après les commentaires, je ne suis pas sûr que l'isolation est suffisante néanmoins (avec NoScript en particulier). Je vais tester.

    • [^] # Re: Moultifox

      Posté par . Évalué à 1.

      Je viens de tester. Malheureusement, l'isolation reste assez faible. L'état de NoScript est bien séparé mais pas celui du module de gestion de cookies. Difficile de connaître l'étendue de l'isolation du coup. Trop risqué.

  • # Site sur la nature et la pêche aux gros

    Posté par . Évalué à 2. Dernière modification le 02/12/13 à 11:15.

    C’était une de mes méthodes pour garder des favoris/sessions/historique/… sur les sites à vocation personnelle (…) :

    je m'étais fait un alias dans ce style (de tête) :

    alias startXXX='cd ~/.secret/ && gpg profile.gpg -o profile.tar && tar profile.tar -C firefox/ && shred -zuf profile.tar profile.gpg && firefox -profile ~/.secret/firefox/'
    
    alias endXXX='cd ~/.secret/ && tar cvf profile.tar firefox/ && gpg -c profile.tar -o profile.gpg && find firefox/ -type f -exec shred -zuf {} \; && shred -zuf profile.tar && rm -rf firefox/'
    

    Ce n'est pas parfait, mais globalement ça fonctionnait pour séparer de manière sécurisée et discrète les profils.

  • # Ne serait-ce pas là le boulot de Mozilla Firefox, étandard du Libre?

    Posté par . Évalué à 0.

    Ou encore le fork Seamonkey qui se voudrait plus libre, l'un ou l'autre ont-ils cela sur leur feuille de route?

  • # TorBrowser

    Posté par (page perso) . Évalué à 1.

    Pourquoi pas utiliser TorBrowser pour tout ce qui est privé ?

    La réalité, c'est ce qui continue d'exister quand on cesse d'y croire - Philip K. Dick

    • [^] # Re: TorBrowser

      Posté par . Évalué à 1.

      Parce que pour moi tout doit être aussi anonyme que possible (parfois je veux justement être identifiable). Par principe. Et Tor est trop lent pour l'utiliser continuellement.

      • [^] # Re: TorBrowser

        Posté par . Évalué à -2.

        et puis TorBrowser est un navigateur dangereux … tout le monde sait que le TorTue … :D

  • # Utiliser le Web comme Minitel, et Internet pour le reste ?

    Posté par . Évalué à 0.

    (Note d'introduction : c'est un peu bateau comme réflexion. Il y a plein de failles)

    On peut utiliser le Web existant comme Minitel pour les sites réclamant intéractivité (magasin en ligne, impôts en ligne etc…) et passer par un réseau P2P chiffré pour le reste.

    Retroshare, sur le papier ça l'air puissant : il y a ce qu'il faut pour avoir un substitut chiffré et décentralisé pour le courrier électronique, le partage de fichiers, messagerie instantanée.

    Bon dans les soucis on a :
    – le traditionnel « effet réseau » (masse critique d'utilisateurs etc…)
    – la barrière de la compléxité à l'entrée (quand on pense aux Windows XP zombies vérolés dans la nature, et aux utilisateurs pour qui le courrier c'est le web de la multinationale locale, ou le outlook du travail).

    • [^] # Re: Utiliser le Web comme Minitel, et Internet pour le reste ?

      Posté par . Évalué à 1.

      J'utilise Retroshare mais il y a encore du travail. En particulier, je pense qu'il va falloir développer un système d'abstraction présentant un réseau IP classique via les tunnels Retroshare et avec une interface simple pour l'utilisateur. Ça permettrait de réutiliser les applications en réseau classiques (clients de visioconférences, etc) parce que tout redévelopper n'est pas possible et risque de transformer le logiciel en une usine à gaz impossible à maintenir. J'aimerais avoir le temps de faire ça moi-même mais il me faudrait des mois pour arriver à quelque chose.

      • [^] # Re: Utiliser le Web comme Minitel, et Internet pour le reste ?

        Posté par . Évalué à 0.

        @Yohan_B :
        Merci pour l'info… Il faut vraiment que je prenne un peu de temps pour faire fonctionner ça chez moi.

        @all :
        En attendant et au cas où mon premier message laisserait penser à une forme de « je-m'en-foutisme », pour utiliser le Web comme Minitel, autant « sortir couvert », comme on dit : duckduckgo + addblock, noscript, flashblock obligatoires.

        Self destructing cookies, découvert en lisant ce journal semble aussi bien prometteur…

  • # Politique concernant les cookies

    Posté par . Évalué à 4.

    Plutôt que d’utiliser Cookie Whitelist, qui est trop binaire, tu peux utiliser Self-destructing cookies, une extension qui efface automatiquement les cookies après utilisation. C’est moins restrictif et tu peux faire des réglages un peu plus fins.

  • # bash > bourne shell

    Posté par . Évalué à 2.

    C'est là qu'on voit que bash est agréable (même s'il n'est pas standard :) ) :

    #!/bin/sh
    # Pour le moment on supprime le profil même si firefox a planté, mais il serait facile 
    # de tester pour éviter cela, et de récupérer le profil sans l'écraser, s'il existe déjà.
    profile="${1:-$(uuidgen)}"
    
    #echo $profile
    
    set -e
    
    dirprofil="$(mktemp -d XXXXX-$profile)"
    
    trap 'rm -Rf "$dirprofil"' EXIT
    
    rsync -trlpgovDHq --exclude={bookmark*,urlclassifier3.sqlite,places.sqlite,sessionstore*,Cache/} $HOME/.mozilla/firefox/*.default/ "$dirprofil"
    firefox -no-remote -profile "$dirprofil"

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • # CetLL

    Posté par . Évalué à 10.

    rsync -trlpgovDHq

    "voyelle!"

  • # Profils différents

    Posté par (page perso) . Évalué à -2.

    Avoir des profils différents, voire même plusieurs machines virtuelles avec chacune leur browser, ça ne fait pas peur à des sites comme Youtube par exemple.

    Même sans te logguer, en utilisant des machines différentes (un PC, une tablette par exemple) ils peuvent toujours te proposer des vidéos "qui peuvent vous intéresser" (compte-tenu de celles que vous avez visionné). En se basant sur ton IP bien sûr.

    (avec Tor & co ce n'est plus le cas évidemment)

  • # Et NoScript ABE?

    Posté par . Évalué à 1.

    Personne n'a l'air d'avoir encore mentionné NoScript ABE:

    The NoScript browser extension improves web client security by applying a Default Deny policy to JavaScript, Java, Flash and other active content and providing users with an one-click interface to easily whitelist sites they trust for active content execution.

    Après il y a des règles un peu comme iptable: on autorise au cas par cas en fonction de la source, la target, etc…

    C'est avec ça que je bloque tous les widgets facebook et autre, avec quelques règles pour autoriser les accès croisés. En plus on peut autoriser un accès depuis un domaine sur un autre en anonymisant la requête: suppression des referers, cookies et autres…

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.