__:: Internet: Le m@il ::__ |
Nous avons déjà rencontré un certain nombre de fois le
modèle OSI et nous allons encore une fois l'utiliser pour le compléter
par le haut cette fois ci. De manière très simple, la couche qui
se situera au-dessus de TCP dans le modèle va dépendre du type
d'application que vous effectuez. Ainsi, si vous êtes en train de parcourir
une page web, le protocole utilisé au-dessus de TCP sera HTTP (nous l'avons
déjà vu). De même, si vous êtes en train d'utiliser
Outlook ou tout autre logiciel de gestion de messagerie éléctronique
vous allez pouvoir utiliser deux protocoles qui seront décris dans cette
section :
1) Le protocole SMTP (Simple Mail Transfer Protocol) sera utilisé pour envoyer un mail.
2) Le protocole POP3 (Post Office Protocol version 3) sera utilisé pour la réception de mails.
Avant de commencer, je tenais à vous expliquer un peu le fonctionnement d'une boite mail. La boite mail est en fait un espace mémoire qui vous est réservé sur un des disques d'un serveur de votre FAI (ou de votre fournisseur d'adresse e-mail comme hotmail, caramail ...). C'est ce serveur qui va recevoir vos mails 24h sur 24 et 7 jours sur 7 sans qu'il soit nécessaire que vous soyez connecté à internet. Vos mails sont stockés jusqu'à votre prochaine connexion. Lorsque vous ouvrez Outlook pour consulter votre courrier, le logiciel va se connecter au serveur en question et télécharger les éventuels mails qui n'ont pas encore été lus. De même quand vous envoyez un message, votre logiciel se connecte au serveur de mail pour lui envoyer votre message. Le serveur pourra ensuite transférer le message au serveur mail du destinataire.
Je l'ai déjà dit plus haut, ce protocole est celui qui est le
plus couramment utilisé pour procéder à l'envoi de courrier
électronique. Si vous avez encore en tête le tableau des ports
de la section IP, vous trouverez facilement le port associé au protocole
SMTP : il s'agit du port 25. Pour se connecter au serveur mail de votre FAI
il ne nous reste plus qu'à trouver, puisque nous avons déjà
le port, l'adresse (IP ou URL) de ce serveur. Et ça, c'est très
facile. Vous connaissez forcément l'adresse du site web de votre FAI.
Disons que cette dernière est www.fai.fr. Dans ce cas il y a plus que
de très fortes chances pour que l'adresse du serveur mail de votre FAI
soit mail.fai.fr.
Résumons : on a l'adresse du serveur et le numéro de port auquel
se connecter, il ne nous manque donc plus rien pour établir une connexion
avec ce dernier !!
Nous allons donc nous connecter au serveur mail de notre FAI et envoyer un mail
à la main sans passer par outlook.
Quoi de mieux pour comprendre le fonctionnement du protocole !!
Pour ce faire, nous allons utiliser un petit outil fort pratique qu'on a déjà
rencontré dans les chapitres précédents et qui est décrit
plus en détail dans la section outils : il s'agit de Telnet.
Vous allez donc lancer une session Telnet (vous savez faire maintenant) en spécifiant comme adresse celle du serveur mail de votre FAI et comme numéro de port 25. Ca donnera à peu près ceci (pour les flemmards ...) :
c:>telnet mail.fai.fr 25 |
Rem: Pensez tout de suite à activer l'echo local dans le menu "préférences" sinon vous ne verrez pas s'afficher à l'écran les caractères entrés au clavier .
Voici ce que nous allons faire :
220 mail.fai.fr ESMTP Sendmail 8.9.1 (1.1.20.3/07Jul00-0916AM)
Thu, 7 Dec 200017:18:50 +0530 (IST) |
Je vais maintenant détailler pas à pas chaque ligne, mais tout
d'abord veuillez noter que sont affichées ci dessus deux types de lignes
: les lignes que j'ai entrées à la main et les lignes qui ont
été envoyées par le serveur mail. Ces dernières
sont facilement reconnaissables car elles sont toujours précédées
d'un nombre. Pour des raisons de clarté, j'ai affiché en gras
les commandes entrées à la main.
Commençons. Dès que vous avez tapé entrée suite à la première commande, la première ligne s'est affichée à l'écran
220 mail.fai.fr ESMTP Sendmail 8.9.1 (1.1.20.3/07Jul00-0916AM) Thu, 7 Dec 200017:18:50 +0001 (IST) |
Il s'agit de ce qu'on appelle une bannière de bienvenue. Vous
en rencontrerez de nombreuses lors de vos connections. Elles contiennent souvent
une foule d'informations intéressantes. Dans notre cas, on nous confirme
que nous sommes bien connéctés sur mail.fai.fr. ESMTP est le protocole
utilisé par le serveur mail. Il s'agit d'une variante de SMTP (Extended
SMTP) qui comporte peu de différence. Sendmail 8.9.1 correspond au nom
et à la version du daemon SMTP qui est à l'écoute sur le
port 25 et avec qui nous sommes connectés. Les informations entre parenthèses
correspondent aux dernières dates de configuration ou d'upgrade logiciel
du sendmail. La date à l'exterieur des parenthèses correspond
à la date courante. Voilà le genre d'informations que l'on peut
récupérer simplement en se connectant au serveur.
Attention cependant, certains serveurs sont moins bavards, certains le sont
plus ... cela dépend de la politique de l'administrateur réseau
!
helo resolution.com |
Il s'agit là d'une commande : helo. Elle vous permet de vous introduire auprès de serveur. C'est la première commande à entrer. Vous devez préciser en principe en argument le nom d'hote de votre machine. Pour l'exemple j'ai mis résolution.com mais vous pouvez mettre bob.com ou pinguin.fr si vous voulez ....
250-mail.fai.fr Hello [213.44.233.91], pleased to meet you |
Petite réponse sympathique du serveur. Il vous donne votre adresse IP (zut, on est repéré ....) et vous dit bonjour.
mail from: resolution@club-internet.fr |
A vous de jouer avec la deuxième commande : mail from: [argument].
Pas très dur à comprendre celle-ci... Il s'agit de l'adresse qui
apparaîtra dans le champ expéditeur de votre mail. Vous pouvez
mettre votre vrai adresse (il vaut mieux sinon la personne ne pourra pas vous
répondre) mais aussi n'importe quelle autre adresse monboss@estnul.com
par exemple ....
250 resolution@club-internet.fr... Sender ok |
Le serveur répond : "C'est OK, j'ai bien enregistré l'émetteur du mail ! " (trop con ce serveur ...)
rcpt to: moi@fai.fr |
Troisième commande : rcpt to:[destinataire]
Pas trop dur non plus .... rcpt ça veut dire recipient en anglais abrégé
: c'est grâce à cette commande que vous précisez lez destinataires
du mail ... Vous pouvez réitérer cette commande à souhait
si il y a plusieurs destinataires ... et oui ! Une seule adresse par commande
!!
250 moi@fai.fr... Recipient ok |
Comme tout à l'heure, le serveur confirme (ou ne confirme pas si c'est
mal passé) avoir reçu l'adresse destination.
data |
Quatrième commande : data
Grâce à cette commande vous aller passer en mode édition
et pouvoir taper le contenu de votre mail.
354 Enter mail, end with "." on a line by itself |
Le serveur confirme. Il vous indique par ailleurs que pour repasser en mode commande et donc terminer et envoyer votre mail vous devez taper un point tout seul en début de ligne puis entrée (sinon entrée = retour à la ligne).
Vous pouvez maintenant entrer le contenu du mail :
Subject: Test de mail Ceci est le corps de mon mail fait à la main. . |
Vous vous en doutez, Subject:[Sujet du mail] permet de renseigner le champ
approprié ... Ce n'est pas obligatoire !
Le texte du mail, ça je vous laisse faire, vous êtes sûrement
très fort pour ça !
Pensez bien que pour terminer il faut un point tout seul en début de
ligne !!
250 RAA0000001693 Message accepted for delivery |
Et voilà !! Le message est parti !!! Vous pouvez quitter avec la commande d'échappement de telnet (en principe ctrl + $), tout simplement !!
Comme vous pouvez le voir, le protocole SMTP et les serveurs Sendmail ne sont
pas vraiment sécurisés ... Autant dire qu'ils ne le sont pas du
tout et que vous pouvez quand vous voulez et où vous voulez envoyer un
mail de la part de n'importe qui dont vous connaissez l'adresse mail. Le but
de cette rubrique est également de vous avertir une fois de plus : ne
faites aucune confiance aux mails. Il n'y a quasiment aucun moyen d'être
sur que le mail que vous êtes en train de lire est un original ou si il
a été envoyé par une autre personne que son expéditeur
présumé. Heureusement, tout le monde ne connaîit pas ce
fonctionnement. Imaginez un peu les dêgats que peuvent causer une série
de faux mails dans une entreprise par exemple !
Rassurez-vous cependant, les faux mails parfaits sont très difficiles
à réaliser et je vais vous montrer comment éviter de tomber
dans le panneau si jamais vous n'êtes pas sûr de la véracité
d'un mail.
Peut être ne le saviez vous pas mais les mails que vous recevez contiennent
une foule d'informations intéressantes qui sont par défaut masquées
par Outlook. Il s'agit une fois de plus des headers (en-têtes) du mail.
Pour y accéder, sélectionnez un message dans votre boite de réception
et tapez "alt + entrée". Une petite fenêtre s'ouvre alors
et vous propose d'afficher la source du message. Vous devriez arriver sur quelque
chose comme ca :
Return-Path: resolution@club-internet.fr Received: from resolution.com by mail.fai.fr (8.9.1/1.1.20.3/07Jul00-0916AM) id RAA0000001693 for moi@fai.fr; Thu, 7 Dec 2000 17:19:49 +0530 (IST) Date: Thu, 7 Dec 2000 17:19:49 +0530 (IST) From: resolution@club-internet.fr Message-Id: <200012071149.RAA0000001693@mail.fai.fr> Subject: Test de mail X-UIDL: 920156a3b926c5193036933e6d04efd5 Ceci est le corps de mon mail fait à la main. |
Si vous faites bien attention, il s'agit des headers et du mail que nous avions
envoyé à la main juste au dessus.
Etudions un peu ce que nous avons là ... Je tiens à vous prévenir
tout de suite, cet exemple est vraiment un exemple très simple ... Il
existe des headers bien plus complexes que nous verrons par la suite.
Tout d'abord, on distingue assez rapidement deux grandes parties : le corps
du message (en bas) et les headers (en haut). On va passer rapidement sur le
corps du message puisqu'il ne contient rien de plus que le message même
du mail et les pièces jointes (si il y en a). On reviendra dessus plus
tard si ça vous intéresse, vous me le direz !
Bon, les headers, c'est déja plus croustillant. Comme l'exemple est simple,
on va partir du haut (je vous conseille de faire l'inverse sur des headers de
taille importante, vous verrez pourquoi)
La première ligne est explicite : elle précise l'adresse à
utiliser lorsque vous faites une reponse au mail. Outlook utilisera automatiquement
celle-ci. Remarquez au passage que c'est aussi l'adresse que vous aviez précisé
après la commande "mail from: " lors de l'envoi.
La deuxième ligne commence par "Received:". Cette ligne va servir à décrire le trajet emprunté par le mail. Il se peut très bien que votre courrier ai traversé de nombreux serveurs et qu'il y ai plusieurs lignes qui commencent par received. Ce n'est pas le cas ici car dans mon exemple on s'est connécté directement au bon serveur mail, celui de notre fournisseur d'accès (fai.fr) et qui héberge donc aussi notre boîte mail. Toujours est-il que le format des lignes sera toujours le même :
Received: from xxxx by yyyy [for zzz@fai.fr]; date |
Où xxxx est le serveur ou le domaine source (émetteur), yyyy
est le domaine ou serveur cible (récepteur) et zzz le destinataire du
mail. Vous pouvez donc suivre très exactement le trajet d'un mail.
Rem: La ligne la plus haute (la première que l'on lit) correspond
à la dernière étape parcourue. C'est pourquoi en cas de
multiples transferts il vaut mieux partir du bas pour retrouver le trajet dans
un ordre chronologique.
Dans notre cas, cette ligne indique que le mail a été reçu
par mail.fai.fr (le serveur auquel on s'est connecté) et qu'il vient
de "resolution.com": c'est le nom de domaine que l'on a donné
à l'aide de la commande helo... On retrouve tout !
La troisième ligne correspond à la date de recéption du courrier par le serveur. C'est celle qui s'affiche sous Outlook.
La quatrième ligne précise l'expéditeur. En effet, il
peut être utile de préciser une adresse de retour qui soit différente
de l'adresse d'émission.
La cinquième ligne contient l'identifiant du message en question. C'est
le même que celui qui nous a été donné en fin d'envoi
de message. On peut remarquer que cet identifiant précise le nom du serveur
mail sur lequel le mail a été déposé. C'est un détail
d'importance.
Les autres lignes contiennent le sujet et le corps du mail ainsi qu'un nouvel identifiant.
Cet exemple était vraiment trop simple ....
Voici un petit exemple de header un peu plus complexe avec des renvois multiples :
Received: from smtp1.9tel.net (smtp1.9tel.net [212.30.96.108])
by front6m.grolier.fr (8.9.3/No_Relay+No_Spam_MGC990224) with SMTP id SAA01646
for xxx@yyyyy.com; Wed, 5 Sep 2001 18:34:09 +0200 (MET DST) Received: (qmail 26486 invoked from network); 5 Sep 2001 16:34:08 -0000 Received: from unknown (HELO get) (212.30.107.225) by 0 with SMTP; 5 Sep 2001 16:34:08 -0000 Message-ID: <000a01c13629$ac2a58e0$f39ffea9@up> From: "bozo le clown" zzzz@zzzz.com To: "bob martin" xxx@yyyy.com Subject: bonjour !!! Date: Wed, 5 Sep 2001 18:41:53 +0200 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0007_01C1363A.6EE9BE60" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.00.2615.200 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200 Status: X-Mmail: \Recent X-M-Uid: 0000235.999707651 This is a multi-part message in MIME format. ------=_NextPart_000_0007_01C1363A.6EE9BE60 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable |
Etudions ça un peu plus en détail. La partie qui nous intéresse est la suivante:
Received: from smtp1.9tel.net (smtp1.9tel.net
[212.30.96.108]) by front6m.grolier.fr (8.9.3/No_Relay+No_Spam_MGC990224)
with SMTP id SAA01646 for xxx@yyyyy.com; Wed, 5 Sep 2001 18:34:09 +0200
(MET DST) Received: (qmail 26486 invoked from network); 5 Sep 2001 16:34:08 -0000 Received: from unknown (HELO get) (212.30.107.225) by 0 with SMTP; 5 Sep 2001 16:34:08 -0000 |
On part donc de la fin. On apprend que "unknown" s'est connecté
au serveur "0" sous le nom de serveur "get" grâce
au protocole SMTP le 5 septembre 2001. On apprend aussi, et ça peut servir
alors faites-y attention, que l'adresse IP de "get" était à
cet instant 213.30.107.225. Ceci est une particularité de certains serveurs
mail, ils copient dans les headers les adresses IPs des personnes qui se sont
connéctées ... Sachez tout de même que c'est un moyen très
fiable de retrouver une personne. Les FAI sont en effet obligés de conserver
en mémoire les adresses IP et les personnes auxquelles elles ont été
attribuées durant un certain temps. Votre FAI possède en principe
vos noms et adresse, il peut de toute façon retrouver votre numéro
de téléphone si vous vous connectez par modem. Vous n'êtes
donc pas anonyme sur le réseau et sachez que de toute façon, c'est
très dur à réaliser !
La deuxième ligne indique qu'un serveur qmail a été utilisé
pour transférer le message. Il s'agit d'un type de serveur différent
de Sendmail et bien plus sécurisé.
La première ligne nous indique que le serveur front6m.grolier.fr a reçu
le message depuis le serveur smtp1.9tel.net dont l'adresse IP est 212.30.96.108.
Vous le voyez bien, certains serveurs sont plus bavards que les autres. Tout cela dépend une nouvelle fois de la stratégie et de la méfiance de l'administrateur réseau.
Les headers mail peuvent nous apprendre encore beaucoup de choses ... Je ne vais pas continuer longtemps mail dans ce mail, on apprend que l'expéditeur utilise Microsoft Outlook Express 5.00.2615.200, ce qui est tout de même assez précis. On peut tout de suite en déduire que sa machine tourne sous windows... Rien qu'en étudiant rapidement un en-tête de mail on peut donc trouver pas mal d'informations sur l'expéditeur : son système d'exploitation, son logiciel de mail, son adresse IP et donc son fournisseur d'accès et son point de connexion, et bien sur son nom et son prénom.... Alors faites bien attention !! On peut en apprendre beaucoup sur vous avec un simple mail !!
On a vu comment envoyer un mail sans passer par Outlook, on a compris comment déchiffrer un en-tête de mail ... il ne reste plus qu'à apprendre comment aller chercher ses mails à la main et on saura tout sur le mail non ???
Nous y voilà ! Tout d'abord, POP signifie Post Office Protocol et le 3 est là pour dire que c'est la troisième version du protocole ... Pas bien compliqué ! Le protocole permet à un client POP3 (un logiciel comme Outlook ou tout simplement Telnet et vous au clavier) d'échanger des commandes avec un serveur POP3 et de rapatrier localement les mails qui sont stockés sur ce serveur. Comme pour SMTP, on va utiliser telnet pour se connecter au serveur. Le port à utiliser est le port 110, le nom du serveur est simple à trouver : en principe il est de la forme pop.fai.fr. Allons-y !!
c:>telnet pop.fai.fr 110 |
Une fois connecté, vous êtes accueilli par une bannière. Celle de mon fournisseur est simpliste :
+OK POP3 server ready |
Cela signifie que le serveur est prêt à prendre une commande.
Vous pouvez essayer de demander de l'aide en tapant "help" ou encore
"h" ou "?" pour essayer d'obtenir la liste des commandes
disponibles. En principe ces commandes ont été bloquées
et le serveur coupe la connexion si vous essayez ... mais il faut le tenter
!!
Bon, on a vu que le protocole SMTP n'était pas tellement sécurisé,
voir même pas du tout; qu'en est-il de POP3 : tout le monde peut-il aller
lire vos mails personnels aussi facilement ? Heureusement pas tout à
fait ...
Pour notre sécurité, ce protocole est doté d'un processus
d'identification, vous devez donc fournir un nom d'utilisateur et un mot de
passe pour accéder au compte mail. Vous voilà rassuré j'espère.
Vous verrez cependant que ce n'est pas un moyen très fiable de sécuriser
une messagerie.
Vous devez donc préciser vos username et password. Ces derniers vous
ont été fournis par votre FAI.
USER mon_username |
Le serveur va répondre :
+OK mon_username please enter password |
Et on donne le password :
PASS ******* |
Si les donnés fournies sont incorrectes, vous obtenez un message du genre:
-ERR Bad login |
ou:
-ERR Password is incorrect |
Si les donnés sont exactes, vous êtes connecté au serveur. Ce dernier vous indique immédiatement le contenu de votre boite mail.
+OK mon_username has 1 message (1341 octets) |
Vous avez donc un nouveau message de 1341 octets.
Vous pouvez ensuite entrer plusieurs commandes :
Commande
|
Action
|
STAT
|
Donne le nombre de message et
la taille totale en octets
|
LIST
|
Donne une liste numérotée
des messages présents avec la taille de chacun en octets
|
RETR + N°
|
Affiche le message correspondant
avec la totalité des headers
|
DELE + N°
|
Efface du serveur le message correspondant
|
QUIT
|
Ferme la connexion avec le serveur.
|
Attention : Si vous voulez lire vos mails par cette méthode, pensez à sauvegarder l'intégralité de votre session telnet dans un fichier log. En effet, si vous oubliez, les messages vont défiler à l'écran sans que vous ayez le temps de les lire !!
Vous pouvez ainsi gérer votre boite mail sans l'aide d'un logiciel de messagerie ... C'est tout de même un peu plus compliqué, je l'avoue !!
Voilà ... C'est à peu près tout ce que j'ai à dire sur POP3. Si ! Un petit truc en plus : le login du compte POP3 correspond souvent à la première partie de l'adresse e-mail, située devant le signe @. Il ne reste plus qu'à trouver le mot de passe pour accéder au compte ... Et si vous saviez comme il est simple de trouver un mot de passe !! La plupart des gens, malgré les recommandations, utilisent le même partout pour ne pas avoir 15 mots de passe à retenir. Certain utilisent même le login comme mot de passe ... Enfin, tout ça pour dire que même si le serveur POP3 n'est pas bugé (et ça arrive, je vous promets !) il est possible d'accéder au compte mail de quelqu'un si vous arrivez à trouver son mot de passe .... C'est juste pour vous prévenir !!
[ Précédent | Accueil | Suivant ] | |
© 2001 RésoLution. Tous droits réservés. Contactez le Webmaster. |