Cliquez pour atteindre la page correspondante...

La sécurité sur le Net

 

Les Traces :
comment ça marche ?

Introduction

Anonyme... ?

Cookies

Démonstration

Comment ?

Annexe
 
Cookies indigestes

 

Pour obtenir des informations sur votre configuration et l'URL précédemment visitée, les variables d'environnement sont utilisées elles sont définies dans votre navigateur et que ce dernier envoie systématiquement au serveur.

1) Théorie pour une communication

Si l'on tentait de schématiser l'ensemble des règles et procédures à suivre pour établir une communication téléphonique, on pourrait aisément distinguer deux niveaux de ce qu'il convient d'appeler des protocoles.

Le premier niveau, le plus bas, est indispensable à l'établissement physique de la communication, c'est le niveau le plus technique qui permet, entre autres, de composer le numéro d'un correspondant, de générer une sonnerie sur son poste, d'établir la communication, de maintenir le transfert de la voix dans les deux sens et en même temps au travers de la ligne et enfin de terminer la communication.

Le second niveau, supérieur au précédent car plus accessible aux locuteurs, n'est pas indispensable à la communication technique proprement dite mais à la communication humaine, il part d'un accord sur la langue utilisée par les deux locuteurs en passant par les conventionnels "Allô ?", "Qui est à l'appareil ?", etc.

Sur Internet, on pourrait faire la même observation. Pour que les informations soient correctement transférées de votre ordinateur au serveur, un protocole est nécessaire afin que les différents appareils situés entre vous et lui soient à même de les transporter. Il s'agit du protocole TCP/IP. On représente généralement l'architecture d'un protocole en couches. Tout en bas, la couche matérielle correspond (schématiquement) aux câbles et aux cartes utilisés (Ethernet par exemple), puis la couche réseau gère la circulation des paquets à travers le réseau (IP) , la couche transport gère le flux de données entre deux machines (TCP), enfin, la couche supérieure, la couche applicative, gère les détails de communication d'une application particulière entre le serveur et le client (HTTP, par exemple, si vous êtes "sur le web", ou bien FTP, pour le transfert de fichiers). La couche supérieure correspond au dialogue établit entre les deux applications client/serveur, comme par exemple votre navigateur et le serveur web.

2) HTTP, Javascript et Cie

Au niveau HTTP, donc, chacune de vos requêtes contient un certain nombre d'informations, à commencer par ce que vous avez à demander : l'adresse d'une page web généralement. Mais elle contient également de nombreuses informations sur l'environnement de votre ordinateur.

Ces informations sont systématiquement transmises dans chaque paquet qui part de votre ordinateur vers le serveur. Lorsque le paquet arrive sur le serveur, un processus système est créé sur la machine, processus qui intègre ces informations sous forme de variables d'environnement et exécute la requête demandée. Autant d'informations que le serveur peut ajouter à celles dont il pourrait disposer également par ailleurs. Concrètement, voici les variables d'environnement et leur contenu tel que nous l'avons reçu de votre navigateur, par exemple :

REMOTE_HOST = tnt1-196.dan.nan2.inetway.net
REMOTE_ADDR = 212.208.1.196
HTTP_USER_AGENT = Mozilla/4.02 [en] (Win95; I)
HTTP_REFERER = http://securinet.free.fr/traces.html

Un script sur le serveur peut les analyser pour vous les présenter plus clairement, par exemple :

Votre adresse DNS : tnt1-196.dan.nan2.inetway.net
Votre adresse IP : 212.208.1.196
Votre système d'exploitation : Microsoft Windows 98
Votre navigateur : Netscape Communicator 4.02 anglais
Votre page précédente : http://securinet.free.fr/traces.html

3)Adresse IP, adresse DNS et signature du navigateur

Un script CGI analyse les variables d'environnement suivantes (REMOTE_HOST, REMOTE_ADDR et HTTP_USER_AGENT). REMOTE_HOST et REMOTE_ADDR retournent au serveur l'adresse DNS et l'adresse IP de votre machine. Si l'adresse DNS n'y figure pas, c'est que votre machine n'a pas été enregistrée dans le serveur de DNS.

HTTP_USER_AGENT est la signature du navigateur client. A partir de celle-ci, nous déterminons quel est le système d'exploitation, quelles sont les caractéristiques du navigateur (marque, modèle et, éventuellement, numéro de version) et la version linguistique du navigateur. Pour obtenir ces informations, il faut utiliser une table de correspondance entre les éléments de la signature du navigateur et les signatures connues (par exemple, on sais que la chaîne de caractère "WinNT" est contenue dans la signature d'un navigateur Netscape tournant sous Microsoft Windows NT ou que "Windows 95" est contenue dans la signature d'un navigateur Internet Explorer tournant sous Microsoft Windows 95).

Il est également possible pour le serveur de récupérer ces variables à l'aide d'un Javascript.
Javascript est un langage de script dont les instructions s'intègrent sous forme textuelle à l'intérieure des pages HTML et que le navigateur exécute lorsqu'il charge la page. Attention, à ne pas confondre Javascript et applet Java.

4) Lien précédemment suivi

Un script CGI est chargé d'analyser la variable d'environnement HTTP_REFERER, et d'en extraire les informations suivantes sur la dernière page vue par le navigateur client : protocole utilisé, adresse DNS ou IP du serveur, chemin d'accès à la ressource, et ressource demandée (page, image, cgi ...).

Retour haut

Contact : securinet@free.fr

Dernière mise à jour :