tag:linuxfr.org,2005:/users/mykii-0LinuxFr.org : les contenus de Michael Vergoz2014-07-05T18:54:21+02:00/favicon.pngtag:linuxfr.org,2005:News/355182014-07-02T17:20:52+02:002014-07-02T17:20:52+02:00gateGhost: Traque-moi si tu peuxLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Nous sommes sur LinuxFr.org et je pense qu'il n'est pas essentiel d'expliquer ô combien les <a href="http://fr.wikipedia.org/wiki/Audience_d%27un_site_Web">traqueurs</a> sont dangereux pour nous.</p>
<p><strong>gateGhost</strong> est un logiciel proxy anti-traqueur de publicité qui prévient les risques de tracking sur l'intégralité d'un réseau.</p>
<p>Il fonctionne comme plugin de <strong>gatejs</strong> et est distribué sous licence <strong>GPL v3</strong>.</p>
<p>Il est basé sur un système de détection de traqueurs qui fonctionne avec une base de données CSV. Celui-ci permet de bloquer lesdits traqueurs soit par une fermeture de connexion, soit avec un code d'erreur 403. Il est aussi possible d'ajouter d'autres bases de données.</p></div><ul><li>lien nᵒ 1 : <a title="https://github.com/binarysec/gateGhost" hreflang="en" href="https://linuxfr.org/redirect/90993">gateGhost sur Github</a></li><li>lien nᵒ 2 : <a title="https://github.com/binarysec/gate" hreflang="en" href="https://linuxfr.org/redirect/90994">gatejs sur Github</a></li></ul><div><h2 id="mode-de-fonctionnement">Mode de fonctionnement</h2>
<h3 id="les-cookies">Les cookies</h3>
<p>Le système d'inspection de cookie permet d'éliminer ceux qui n'ont pas été envoyés par le site consulté, ceux qui sont hors de son contrôle. Là aussi, il y a une base de données de noms de cookie à éviter. Le cookie de l'utilisateur est modifié puis forgé avant d'être renvoyé au serveur. Nous n'avons pas constaté d'impact sur la navigation en utilisant cette technique.</p>
<h3 id="le-referer">Le <em>Referer</em>
</h3>
<p>L'entête <code>Referer</code> trahit aussi nos mouvements sur la toile, il indique au site consulté d'où provient précisément la requête (le lien source).</p>
<p>L'utilisation de cet entête est tout à fait normale et même importante. Cependant, dans certains cas, il n'est pas souhaitable d'envoyer cette information.</p>
<p>gateGhost enlèvera systématiquement les <code>Referer</code> d'une requête quand le domaine n'est pas estimé comme proche.</p>
<p>En outre, une requête vers ads.tracker.com mais provenant de <a href="http://www.example.com">www.example.com</a> ne sera pas considérée comme de confiance puisque tracker.com ne correspond pas à example.com. Dans ce cas, l'entête <code>Referer</code> est supprimée.</p>
<h3 id="etag"><em>Etag</em></h3>
<p>Une autre technique, plus rare, consiste à faire passer des mouchards par l'entête ETag. Une petite recherche "tracking without cookie" vous permettra de comprendre le mécanisme.</p>
<p>En tout état de cause, et parce que le ETag ne sert plus réellement aux systèmes de cache, l'entête est systématiquement supprimé de la réponse du serveur. Cette option est activée par défaut.</p>
<p>Tout est activable et désactivable à volonté.</p>
<h3 id="le-ssl">Le SSL</h3>
<p>Côté inconvénient, gateGhost peut poser problème quand une application, en général pour smartphones, fait du « certificat pinning », c'est-à-dire que le CA de confiance est <em>hardcodé</em> dans l'application. Cela empêche l'interception SSL sans erreur par l'installation d'un CA de confiance.</p>
<p>J'ai encore pas mal de choses à ajouter au projet telles que l'interception « propre » du SSL et la détection d'envoi de données de géolocalisation. Je précise que les contributions sont ouvertes.</p>
<p>Il faut aussi savoir que gateGhost est complémentaire à l'utilisation d'ads blockers ou anti-tracker installés comme greffons sur le navigateur (tel que adblocks ou ghostery), sauf que ces derniers ne s'installent pas sur un réseau et ne protègent donc pas les smartphones. Aussi, gateGhost exécute plus vite les règles via un gestionnaire spécial de mémoire associative disponible dans gatejs sous le nom de NREG.</p>
<p>En tout état de cause le job est fait, et ce, de manière très performante. </p>
<h2 id="points-clefs">Points clefs</h2>
<ul>
<li>Conçu pour les grosses architectures</li>
<li>~1900 traqueurs enregistrés dans la base de données avec un système de recherche rapide</li>
<li>Système d'inspection des cookies avec jusqu'à 100 noms de cookie connus</li>
<li>Système de confiance sur l'entête Referer qui est enlevé quand il est non-voulu</li>
<li>Technique de blocage du "tracking without cookie" basée sur l'entête HTTP ETag</li>
<li>Possibilité d'ajouter vos traqueurs</li>
</ul></div><div><a href="https://linuxfr.org/news/gateghost-traque-moi-si-tu-peux.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/102659/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/gateghost-traque-moi-si-tu-peux#comments">ouvrir dans le navigateur</a>
</p>
Michael VergozclaudexBAudpalm123ZeroHeureAnonymeesdeemhttps://linuxfr.org/nodes/102659/comments.atomtag:linuxfr.org,2005:News/354942014-06-20T12:46:12+02:002014-06-20T16:35:41+02:00Proxy HTTP(s) gatejs<div><p>gatejs est un nouveau mandataire/proxy HTTP(s) (<em>forward & reverse</em>) qui a pour vocation de remplacer squid, nginx, varnish ou encore apache, dans leurs fonctions de proxy (<em>forward & reverse</em>). Il est publié sous licence GPLv3.</p>
<p>Il est développé en JavaScript (2/3) et en C++ (1/3). Il est prévu que la proportion de C++ se réduise au fil du temps. Ce proxy utilise le moteur Javascript V8 et nodejs.</p>
<p>Il a été initialement conçu pour offrir plus de flexibilité sur l'interception et le traitement d'informations en HTTP.</p>
<p>Pour ceux qui ne sont pas pro-JavaScript, il est important de préciser que les performances de gatejs sont proches, voire dans certains cas, supérieures à nginx.</p>
<p>De plus, l'utilisation de Javascript permet d'augmenter la lisibilité des codes, de les factoriser et de renforcer la sécurité, surtout pour des opérations complexes.</p>
<p>Les configurations sont écrites au moyen de la notation d'objets Javascript (JSON).</p></div><ul><li>lien nᵒ 1 : <a title="https://github.com/binarysec/gate" hreflang="en" href="https://linuxfr.org/redirect/90897">gatejs sur Github</a></li><li>lien nᵒ 2 : <a title="https://github.com/binarysec/gate/wiki" hreflang="en" href="https://linuxfr.org/redirect/90898">Wiki gatejs sur Github</a></li></ul><div><p>Ci-dessous une liste de fonctionnalités déjà implémentées :</p>
<ul>
<li>gestion de HTTP 0.9, 1.0, 1.1, Websocket, quic, spdy ;</li>
<li>gestion de <em>SSL forward & reverse</em> + SNI ;</li>
<li>
<em>reverse proxy</em>, <em>stream primary & secondary</em>, pondération, détection de panne, <em>load-sharing iphash</em> / round-robin ;</li>
<li>le <em>forward proxy</em> peut transmettre les requêtes en utilisant le champ <strong>Host</strong> HTTP, mais peut aussi utiliser l'adresse de destination directement ;</li>
<li>implémentation généralisée de TPROXY qui permet de spoofer les adresses IP (source ou destination) pour une utilisation totalement transparente ;</li>
<li>système de cache ACN (Associative Cache Network) qui permet de mettre en cache les données <em>HTTP forward</em> et/ou <em>reverse</em> et de les partager entre différents serveurs via du <em>multicast</em> ;</li>
<li>gestionnaire de greffons très simple mais scalable à souhait ;</li>
<li>traitement des requêtes HTTP par un système de pipeline et d'opcodes ;</li>
<li>gestion de l'exécution parallèle de plusieurs workers autonomes ;</li>
<li>gestion de l'utilisation simultanée des options forward et reverse proxy.</li>
</ul><p>Les sources de gatejs étaient fermées pendant plusieurs années, mais différentes raisons ont amené ses créateurs à rendre ouvert ce travail.</p>
<p>Aujourd'hui, gatejs est utilisable en production, les codes initiaux ont déjà vécu et vivent encore en production depuis plusieurs années.</p>
<p>Nous aimerions maintenant pousser gatejs plus loin avec une communauté de développeurs et utilisateurs fidèles.</p></div><div><a href="https://linuxfr.org/news/proxy-http-s-gatejs.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/102569/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/proxy-http-s-gatejs#comments">ouvrir dans le navigateur</a>
</p>
mykiiXavier TeyssierBenoît SibaudPierre Jarillonrootixhttps://linuxfr.org/nodes/102569/comments.atom