RES240 / RES224 Les applications



Documents pareils
Divers éléments. Protocoles d'applications. Un agent Utilisateur. MUA - Agents Utilisateurs de Courriel. Simple Mail Transfer Protocol

Couche application 1

FTP & SMTP. File Transfert Protocol. Deux applications fondamentales pour le réseau Internet. Un protocole d échange de fichier «au dessus» de TCP :

Le protocole ARP (Address Resolution Protocol) Résolution d adresses et autoconfiguration. Les protocoles ARP, RARP, TFTP, BOOTP, DHCP

Couche application. La couche application est la plus élevée du modèle de référence.

FTP & SMTP. Deux applications fondamentales pour le réseau Internet.

Réseaux. 1 Généralités. E. Jeandel

Outils de l Internet

18 TCP Les protocoles de domaines d applications

DHCP et NAT. Cyril Rabat Master 2 ASR - Info Architecture des réseaux d entreprise

Chapitre : Les Protocoles

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement

Rappel: Le routage dans Internet. Contraintes. Environnement et contraintes. La décision dans IP du routage: - Table de routage:

Le spam introduction. Sommaire

L3 informatique TP n o 2 : Les applications réseau

L3 informatique Réseaux : Configuration d une interface réseau

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

Présentation du modèle OSI(Open Systems Interconnection)

Cours CCNA 1. Exercices

Mr. B. Benaissa. Centre universitaire Nâama LOGO

Introduction. Adresses

Services Réseaux - Couche Application. TODARO Cédric

Domain Name System. Schéma hiérarchique. Relation

Rappels réseaux TCP/IP

DHCP. Dynamic Host Configuration Protocol

SSH, le shell sécurisé

Dynamic Host Configuration Protocol

Administration Réseau sous Ubuntu SERVER Serveur DHCP

Configuration automatique

Culture informatique. Cours n 9 : Les réseaux informatiques (suite)

Le Protocole DHCP. Module détaillé

Applications. Applications. Le système de nommage d Internet: Domain Name System. Applications. service de noms

TR2 : Technologies de l'internet. Chapitre VII. Serveur DHCP Bootp Protocole, Bail Relais DHCP

Configuration automatique

II/ Le modèle OSI II.1/ Présentation du modèle OSI(Open Systems Interconnection)

Serveurs de noms Protocoles HTTP et FTP

Devoir Surveillé de Sécurité des Réseaux

L identité numérique. Risques, protection

GENERALITES. COURS TCP/IP Niveau 1

Protocole applicatif. Quel est le service de transport nécessaire à une application? Besoin en service de transport

Fonctionnement de Iptables. Exercices sécurité. Exercice 1

Administration réseau Résolution de noms et attribution d adresses IP

Applications en réseau

Oléane VPN : Les nouvelles fonctions de gestion de réseaux. Orange Business Services

Protection des protocoles

Tunnels et VPN. 22/01/2009 Formation Permanente Paris6 86

Installation et configuration d un serveur DHCP (Windows server 2008 R2)

Cisco Certified Network Associate

Hébergement WeboCube. Un système performant et sécurisé. Hébergement géré par une équipe de techniciens

Nmap (Network Mapper) Outil d exploration réseau et scanneur de ports/sécurité

Internets. Informatique de l Internet: le(s) Internet(s) Composantes de l internet R3LR RENATER

Quelques protocoles et outils réseaux

Démarrage à partir du réseau

Réseaux. Moyens de sécurisation. Plan. Evolutions topologiques des réseaux locaux

Internet Protocol. «La couche IP du réseau Internet»

UDP/TCP - Protocoles transport

Partie II PRATIQUE DES CPL

COMMANDES RÉSEAUX TCP/IP WINDOWS.

Présentation Internet

La VOIP :Les protocoles H.323 et SIP

Intérêt du NAT (Network Address Translation) Administration Réseau Niveau routage. Exemple d Intranet. Principe NAT

Principes de DHCP. Le mécanisme de délivrance d'une adresse IP à un client DHCP s'effectue en 4 étapes : COMMUTATEUR 1. DHCP DISCOVER 2.

Les serveurs. UE 103b. Guillaume Burel.

BAP E Gestionnaire de parc informatique et télécommunications MI2 / MI3 Ouverts au titre de 2010 Arrêté du 7/04/10 - J.

TP Protocoles SMTP et POP3 avec Pratiquer l algorithmique

RESEAUX TCP/IP: NOTIONS AVANCEES. Preparé par Alberto EscuderoPascual

Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A. TP réseau firewall

FTPS AVEC UNE APPLIANCE FAST360 EN COUPURE. Table des matières

Réseaux - Cours 3. BOOTP et DHCP : Amorçage et configuration automatique. Cyril Pain-Barre. IUT Informatique Aix-en-Provence

Protocoles IP (2/2) M. Berthet. Les illustrations sont tirées de l ouvrage de Guy Pujolle, Cours réseaux et Télécom Contributions : S Lohier

Sécurité des réseaux Les attaques

RCS : Rich Communication Suite. EFORT

Cours 4: TCP/IP Applications et Services

Serveur DHCP et Relais DHCP (sous Linux)

TP : Introduction à TCP/IP sous UNIX

pare - feu généralités et iptables

LINUX - Sécurité. Déroulé de l'action. - 3 jours - Contenu de formation

Sécuriser son réseau. Sécuriser son réseau Philippe Weill (IPSL/LATMOS) Frédéric Bongat (SSI/GOUV/FR)

1 DHCP sur Windows 2008 Server Introduction Installation du composant DHCP Autorisation d'un serveur DHCP...

Le service FTP. M.BOUABID, Page 1 sur 5

Télécommunications. IPv4. IPv4 classes. IPv4 réseau locaux. IV - IPv4&6, ARP, DHCP, DNS

Plan. École Supérieure d Économie Électronique. Plan. Chap 9: Composants et systèmes de sécurité. Rhouma Rhouma. 21 Juillet 2014

Club informatique Mont-Bruno Séances du 18 janvier et du 17 février 2012 Présentateur : Michel Gagné

Installation et utilisation d'un certificat

Tous les logiciels cités dans ce document sont des marques déposées de leurs propriétaires respectifs

Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN

SQUID P r o x y L i b r e p o u r U n i x e t L i n u x

Alexis Lechervy Université de Caen. M1 Informatique. Réseaux. Filtrage. Bureau S3-203

OpenBSD Spamd. Nicolas Greneche. Mathrice Rouen MAPMO Projet SDS

Cours de sécurité. Pare-feux ( Firewalls ) Gérard Florin -CNAM - - Laboratoire CEDRIC -

LES ACCES ODBC AVEC LE SYSTEME SAS

Mécanismes de configuration automatique d une interface réseau, aspects sécurité

TR2 : Technologies de l'internet. Chapitre VI. NAT statique et dynamique Overloading (PAT) Overlapping, port Forwarding Serveur Proxy, DMZ

Plan. Le système de transfert de fichiers d'internet. Introduction aux systèmes de transfert de fichiers Le protocole FTP.

Réseaux Locaux. Objectif du module. Plan du Cours #3. Réseaux Informatiques. Acquérir un... Réseaux Informatiques. Savoir.

Communiquer avec un ou plusieurs interlocuteurs. Michel Futtersack, Faculté de Droit, Université Paris Descartes, Sorbonne Paris Cité

Présentation du ResEl

LINUX REDHAT, SERVICES RÉSEAUX/INTERNET

Microsoft Hosted Exchange 2010 DOCUMENT D EXPLOITATION

Transcription:

RES240 / RES224 Les applications Dario ROSSI dario.rossi@enst.fr http://www.enst.fr/~drossi 1

PLAN Introduction et vocabulaire Les applications et leurs contraintes Les protocoles applicatifs Notion de programmation des sockets HTTP FTP Telnet/ssh SMTP / POP3/IMAP4 DHCP DNS P2P 2

Mail: SMTP, POP3, IMAP4 3

Sommaire Messagerie électronique : les principes Architecture de la messagerie Internet Le protocole SMTP Le format des messages Protocole d accès Le protocole POP Le protocole IMAP Examples Messages non sollicités ou SPAM 4

Mail: les principes Principes similaires au courrier postale Acheminement en fonction de l adresse de destination Incapacité d authentifier l adresse de l expéditeur Système asynchrone décorrélation entre l E/R L émetteur n attend pas la disponibilité du récepteur Le récepteur consulte sa boîte à son rythme Pas de garantie de remise des messages Acquittement sous le contrôle du récepteur Avantages/Desavantages Plus rapide que le courrier papier Meme pas besoin d un timbre Spam, usage excessif ça devient une cause de improductivité 5

Mail: Architecture MHS (Message Handling System) Proto. SMTP Proto. POP3/IMAP4 UA MTS MTA MTA Message Transfer Agent E/S User Agent MS MTA UA UA MTA MS Mailbox Storage MS MTA MS UA MTS: Message Transport System 6

Courrier électronique mail server user agent user agent 3 composants principaux : Agents utilisateurs Serveurs de mail SMTP Simple mail transfer protocol SMTP mail server outgoing message queue user agent SMTP SMTP mail server user agent Agent utilisateur mail reader Composition, édition, lecture des messages mail Ex : Thunderbird, Outlook, elm, Netscape Messenger Les messages entrants et sortants sont stockés sur un serveur user mailbox 7

Courrier électronique : serveurs de mail Serveurs de mail mail server SMTP mail server outgoing message queue SMTP SMTP mail server La boîte aux lettres contient les messages entrants (à lire) pour l'utilisateur File d'attente des messages mail sortants (à envoyer) Un message peut rester longtemps dans un serveur si la machine du destinataire n est pas branchée si le destinataire n a pas une machine particulière, alors ses emails sont stockés sur un serveur par défaut Lorsque l utilisateur se connecte à une machine, on peut interroger le serveur avec le Post Office Protocol (POP) ou IMAP (Internet Message Access Protocol) user mailbox 8

Courrier électronique : serveurs de mail mail server SMTP mail server outgoing message queue user mailbox SMTP SMTP mail server Protocole SMTP entre les serveurs de mail pour l envoi des messages Client : émetteur de mail Serveur : récepteur de mail Les démons échangent les messages en utilisant le protocole Simple Mail Transfer Protocol (SMTP) SMTP tourne au dessus de TCP Le démon d email est le bureau de poste pour les processus d une machine Ce processus reçoit de messages, les classifie et essaye de les envoyer aux destinataires 9

SMTP RFC 821, 822, Upgradés par RFC 2821, 2822, 5321 (Octobre 2008) Transfert fiable du message depuis un client vers un serveur Non seulement au niveau TCP, mais au niveau application Utilisation du port 25 Transfert direct entre le serveur émetteur et le serveur récepteur Historiquement, transfer en plusieurs etapes Example d implementation: sendmail 3 phases de transfert handshaking (établissement de la connexion) transfert des messages Fermeture de la connexion Interaction Commande / réponse Commande : texte ASCII Réponse : code d'état + phrase Les messages doivent être en ASCII En fait, 7bit ASCII 10

Envoi d un message avec SMTP 1) Alice utilise son mailer pour composer un message 2) Le mailer d Alice envoie le message à son serveur de mail, le message est mis dans une file 3) Le côté client de SMTP ouvre une connexion TCP avec le serveur mail de Bob Apres bien sur un DNS MX lookup 4) Le client SMTP envoit le message d Alice sur la connexion TCP 5) Le serveur mail de Bob place le message dans la boite aux lettres de Bob 6) Bob utilise son user agent pour lire le message 1 user agent mail server 2 3 4 mail server 5 6 user agent DNS 11

Envoi d un message en plusieurs etapes SMTP SMTP SMTP Relay SMTP Gateway SMTP XYZ Dans quels cas on a besoin de plusieurs etapes? Apres tout, grace au DNS on connait le destinataire finale.. Source routing (deprecated) Serveur SMTP peu puissants e.g., ne re-essayent pas la trasmission, mais deleguent par default à un Relay SMTP Different protocoles E.g., il faut passer par un Gateway qui connait les deux protocoles (SMTP et XYZ) A chaque passage, il y a une delegation de responsabilité pour la fiabilité de bout en bout 12

Protocole SMTP: requetes Les requêtes (en ASCII) se terminent par CR LF Requêtes minimales supportés par toutes les implantations) HELP : Renvoie les commandes disponibles HELO domaine : Identification du domaine MAIL FROM expéditeur : Identifie l'expéditeur par son adresse RCPT TO récepteur : Identifie le récepteur par son adresse DATA : Début du corps du message (se termine par un '.' sur la première colone seul sur une ligne) RSET : Reset VRFY : Vérifier l'adresse d'une personne QUIT : Fin 13

Protocole SMTP: reponses Les Réponses sont composées de trois digits : 2XX : Réponse positive 3XX : Réponse positive intermédiaire 4XX : Réponse négative transitoire 5XX : Réponse négative définitive Les deux derniers digits précisent le code retour dans chaque catégorie 14

Protocole SMTP : reponses Code Description Positive Completion Reply 211 214 220 221 250 251 System status or help reply Help message Service ready Service closing transmission channel Request command completed User not local the message will be forwarded Positive Intermediate Reply 354 Start mail input Transient Negative Completion Reply 421 450 Service not available Mailbox not available 15

Protocole SMTP : reponses 451 452 Command aborted: local error Command aborted; insufficient storage Permanent Negative Completion Reply 500 501 502 503 504 550 551 552 553 554 Syntax error; unrecognized command Syntax error in parameters or arguments Command not implemented Bad sequence of commands Command temporarily not implemented Command is not executed; mailbox unavailable User not local Requested action aborted; esceeded storage location Requested action not taken; mailbox name not allowed Transaction failed 16

Ex d'interaction SMTP S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <alice@crepes.fr> S: 250 alice@crepes.fr... Sender ok C: RCPT TO: <bob@hamburger.edu> S: 250 bob@hamburger.edu... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Do you like ketchup? C: How about pickles? C:. S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection 17

(escaping) Si on écrit un mail avec des lignes qui ne contiennent qu un seul point., comment on peut faire? SMTP va interpreter cela comme la fin du message Escape! En emission: si la ligne edité par l emetteur commence par., on y ajoute un. supplementaire au debut En reception: si la ligne commence par un., on l enleve; si il ne reste que CRLF, c est bien la fin de DATA Trick commun avec les protocoles de niveau 2 HDLC, PPP 18

Format de message mail SMTP : protocole pour échanger des messages mail RFC 822 : standard qui definit le format de messages: Lignes d'en-tête, ex : To : From : Subject : différentes des commandes SMTP Corps du message le message, caractères ASCII uniquement Pas de besoin de CRC, Checksum pourquoi? En-tête Corps du message Ligne blanche 19

Formats de messages RFC 822 Pour le protocole de mail, pas de difference entre To/Cc: Difference psychologique pour les usagers Difference entre To/Cc et Bcc (ce dernier est caché au 1ers) From/Sender peuvent differer (e.g., Boss/Secretaire ) 20

Formats de messages RFC 822 X- «custom» headers X-Confirm-reading-to: annoying feature «the sender wish to be notified» Maintenant beaucoup de header lines pour spam, virus X-spam-assassing, X-virus-guardian, 21

Dans la commande ou dans l entete? MAIL FROM: vs From:, RCPT TO: vs To: Pourquoi en double?! Examples: Dans le cas de destinataire multiples, le meme message est enovyé à plusieurs destinataires par differnet MAIL FROM commandes: comment pourrait-ils le savoir? Dans le cas de mailing list, on veut par exemple qu en cas d erreur, un message soit addressé à l administrateur de la liste et non pas à celui qui a envoyé le message: Le serveur SMTP en reception substitue le MAIL FROM: avec l administrateur, les erreurs lui seront addressé Le From: reste unchangé, les appartenant à la liste pourront repondre à celui qui a ecrit le message 22

Envoi de données non-ascii Un email se compose d un entête et d un corps L entête contient le To:, From:, Subject:, et la Date: Le corps du mail ne contient que de caractères ASCII Alphabets avec accents (Français, Allemand) D autres alphabets (Juif, Russe) Pas d alphabet du tout (Chinois, Japonais) Qu est ce que c est un alphabet? (audio, images, binaire Pour envoyer de données multimédia? Multi-purpose Internet Mail Extensions (MIME) Défini et mis en service en 1993, RFCs 1341,2045,2049 Le but du MIME est de coder tout attachement en caractères ASCII 23

Format de message : extensions multimedia Lignes supplémentaires dans l'en-tête du message pour déclarer un contenu de type MIME MIME version Méthode utilisée pour coder les données type, sous-type des données multimédia Déclaration de paramètres Données codées From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data.........base64 encoded data 24

MIME: Content-Type (original defs.) 25

Types MIME plus recents Content-Type: type/subtype; parameters Texte Ex de sous-types : plain, html Image Ex de sous-types : jpeg, gif Audio Ex de sous-types : basic (8-bit mu-law encoded), 32kadpcm (32 kbps coding), mpeg (i.e., mp3s) Vidéo Ex de sous-types : mpeg, quicktime Application D'autres données doivent être traitées par le reader avant d'être "visibles" Ex de sous-types : msword, octet-stream, postscript 26

MIME Multipart From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=startofnextpart --StartOfNextPart Dear Bob, Please find a picture of a crepe. --StartOfNextPart Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data.........base64 encoded data --StartOfNextPart Do you want the reciple? --StartOfNextPart-- Dernier 27

Problemes de SMTP Mail storm Reference circulaire dans les mailing lists l addresse de la mailing list B est dans la mailing list A et l addresse de la mailining list A est dans B Solution: limiter le nombre de passages de serveur en serveur (max 100 Received: champs dans l entete) Ca vous rappelle quelque chose? Difference d implementation (timeouts) Considerez les cas: A->B, A->Relay->B En cas de problemes transitoires à B, si A re-essaye pendant un temps TA, et Relay essaye pendant TR < TA On a des niveaux de fiabilité differents 28

SMTP vs HTTP Connexion utilise des connexions persistantes (plusieur messages) Messages demande que les messages (entête ET corps) soient en ASCII Certaines chaînes de caractères ne sont pas autorisées dans les messages (ex : CRLF.CRLF) Le serveur smtp utilise CRLF.CRLF pour reconnaître la fin du message Les messages doivent alors être codés (généralement en base-64) Comparaison avec HTTP Client HTTP client: PULL SMTP client: PUSH Interaction requete/reponse Les 2 ont des interactions commande/réponse ASCII et des codes d'état Encapsulation HTTP : chaque objet est encapsulé dans son propre message de réponse SMTP : Un message contenant plusieurs objets est envoyé dans un message "multipart" 29

Mail : Protocoles d'accès SMTP : livraison/stockage chez le serveur en réception Protocoles d'accès mail : lire des mails depuis le serveur POP : Post Office Protocol [RFC 1939] autorisation (agent <-->server) et téléchargement IMAP : Internet Mail Access Protocol [RFC 1730] Plus de caractéristiques (plus complexe) manipulation de messages stockés sur le serveur HTTP : Hotmail, Yahoo! Mail, etc. user agent SMTP SMTP POP3 ou IMAP user agent Serveur mail émetteur Serveur mail récepteur 30

Protocole POP3 POP3 : Post Office Protocol version 3 Retrait de message sur un serveur de messagerie RFC 1939, TCP port 110 Position du côté de l UA (Thunderbird, Outlook, ) Supporté par tous les serveurs de messagerie Characteristiques Les messages sont gérés et manipulés localement Peux flexible: un message ne peut être lu que s il a été récupéré entirement On peut laisser une copie des messages dans la MS du server Protocole Client/Server de type Req/Rep UA MTA PDU en ASCII 31

Protocole POP3 Protocole à état (3 phases): Authorization Transaction Update Format requête Req arg1 arg2 Format réponse -ERR arg1 arg2 +OK arg1 arg2 Authorization USER nom PASS passws QUIT Transaction STAT LIST [msg] RETR msg DELE msg NOOP RSET QUIT 32

Protocole POP3 Phase d'autorisation Commandes client : user: déclare username pass: password Réponses serveur : +OK -ERR Phase de transaction, client : list: liste les numéros de messages retr: rappatrie un message à partir de son numéro dele: efface quit S: +OK POP3 server ready C: user alice S: +OK C: pass hungry S: +OK user successfully logged on C: list S: 1 498 S: 2 912 S:. C: retr 1 S: <message 1 contents> S:. C: dele 1 C: retr 2 S: <message 1 contents> S:. C: dele 2 C: quit S: +OK POP3 server signing off 33

Protocole IMAP4 IMAP 4 : Interactive Mail Access Protocol ver. 4 Acces au serveur de messagerie TCP port 143, RFC 2060 Position du côté de l UA (Thunderbird, Outlook, ) Supporté par tous les serveurs de messagerie Characteristiques Initialement conçu pour les stations ayant peu de ressources, bien adapte pour les usageres en mobilité Gestion, stockage, etat du côté serveur Les messages possèdent différents états (vu, effacé et réponse faite) Flexible, IMAP4 donne accès aux entêtes des messages Protocole Client/Server de type Req/Rep UA MTA PDU en ASCII 34

Commande Protocole IMAP4 Réponse attendue Description LOGIN domaine_nt/compte_nt/ alias mot_de_passe SELECT dossier FETCH n _de_message STORE Indicateurs de message \indicateur EXPUNGE OK LOGIN Mode du dossier & OK SELECT Texte du message & OK FETCH OK STORE OK Se connecte à la boîte aux lettres. Sélectionne un dossier à afficher. Récupère le message à l aide du n de message. Marque un message en vue de sa suppression ou pour lui affecter l état Lu/Non lu. Supprime tous les messages marqués. LOGOUT OK Termine la session. 35

IMAP vs POP 36

POP3 et IMAP4 POP3 On ne peut pas relire le mail en changeant de client On peut ou non garder une copie sur le serveur POP3 est sans état IMAP Les messages restent sur le serveur Messages peuvent être organisés en dossiers IMAP garde des états: Noms des dossiers et correspondances entre l'identifiant d'un message et le nom d'un dossier 37

Messages non sollicités ou SPAM Attaques sur la messagerie Email bombing Emission du même message n fois vers un récipient Email spamming Emission du même message vers n récipient Email spoofing (forging) Emission d un message avec un identifiant usurpé Email phishing Email Spamming + Email Spoofing + Fausse URL Email infection Email Spamming + Email Spoofing + malaware (virus/backdoor/trojan ) 38

Messages non sollicités ou SPAM Comment Quel emetteur? Usurpation des adresses (ip, usagers, serveurs) Usurpation des comptes utilisateurs Usage des maileurs officiels et gratuits (yahoo, voila,hotmail, ) Usurpation des ressources de serveurs relais Outil de scan de plage d adresses pour trouver un service sur e port 25 Configuration de compte en forwarding Mise en place de serveur et domaine officiel pour une courte durée Individuer les recepteurs Récolte des adresses email par Web, news, irc, salon, exploration des domaines, robots, listes de discussions Achat/échanges de listes Sous-traitance, Marketing officiel 39

Messages non sollicités ou SPAM Conséquences Pour le reseau: saturation et occupation de ressources Bande passante Etablissement de la connexion TCP Serveur de messagerie Poste client Usager Pour les usagers Détournements des informations et code malicieux Non conformité aux mœurs (mineurs) Impact économique Depuis plus qu un an SPAM > mail normal 40

Messages non sollicités ou SPAM Classification des solutions Filtrage: sur l entête ou le contenu Blacklist, Withelist, Greylist, heuristiques, Theme de recherche: filtres Bayesien, de Bloom, Support Vector Machines (essayez «spam» dans http://scholar.google.com) Inconvénient: les faux positifs Identification & Authentification Domains Key, S/MIME, DNS RR Inconvénient: nécessite le déploiement d une infrastructure de distribution de clés Induire un coût à l émetteur Challenge, connexion TCP, cout en $ par message, enregistrement des MTA Inconvénient: pénalise tout le monde et nécessite de modifier les protocoles sous jacents. 41

(Email infection) VIRUS A LA MAIN Bonjour, vous venez d etre infecté par le terrible virus Sicilien. Comme nous ne sommes pas capables de programmer, nous avons besoin de votre aide. Donc, s il vous plait, envoyez ce mail à tous le votre repertoire, ensuite effacez tous le fichiers de votre disque C:. Merci. VIRUS A MANO Questo e' un virus a mano albanese. Siccome in Albania siamo poveri e non possiamo permetterci di sviluppare un vero virus, abbiamo bisogno del tuo aiuto. Quindi, per favore, manda questa mail a tutta la tua rubrica, poi formatta il tuo disco C:\. Grazie per l'aiuto. 42

(Email forging) Don t try this at home Btw, the server knows who you are 43

(Email forging) Don t try this at home Btw, the server knows who you are Pour limiter le probleme: Sender Policy Framework RFC4404 (april 2006) Le DNS est deja utile pour trouver le serveur responsable de recevoir les mails @example.com example.com. MX mail.example.com Le DNS peut etre utilisé aussi pour definir qui est authorisé à envoyer les mail de @example.com example.com. TXT "v=spf1 +mx a:mail.example.com -all" En reception, query TXT d example.com. Rejection d un message de la part de guy@example.com envoyé par d autre serveur que mail.example.com! 44

Allocation d'adresses dynamiques DHCP 45

Protocole DHCP Dynamic Host Configuration Protocol Dynamic Host Configuration Protocol Basé sur Bootp + des extensions Deux fonctionnalités mise en place de paramètres de configuration Example? allocation d adresses IP 46

Serveur DHCP DHCP : illustration Base de données Recherche infos de configuration Ton IP: 137.194.160.23 Client DHCP 47

Fonctionnement de DHCP Serveur DHCP : Distribue les adresses IP Déroulement : Le client émet en broadcast un paquet de type DHCPDISCOVER, pour identifier les serveurs DHCP disponibles ; Le serveur répond par un paquet DHCPOFFER (broadcast), qui contient les premiers paramètres ; Le client établit sa configuration et envoie un DHCPREQUEST pour valider son adresse IP ; Le serveur répond par un DHCPAK avec l adresse IP pour confirmer l attribution. 48

DHCP : fonctionnement Serveur DHCP 3. Request : Sélectionne une configuration 1. Discover : Recherche d un serveur 2. Offer : Envoie une config. Offer: envoie config Client DHCP 4. Ack :Init. du client 5. Release : Rend la config. Serveur DHCP 49

Client (C) Server (S) DHCP Discover DHCP Offer Eth IP macc 0.0.0.0 FF:FF:FF:FF:FF:FF 255.255.255.255 Discover Eth IP macs IPs macc IPoffered UDP 68 67 UDP 67 68 DHCP Eth IP UDP DHCP Type: Discover Transation ID: x Opts: Hostname, preferred IP macc 0.0.0.0 68 DHCP Request 67 Type: Request Transation ID: x FF:FF:FF:FF:FF:FF 255.255.255.255 Opts: Hostname, IPoffered, DHCP server IPs Offer Request Ack DHCP Eth IP UDP DHCP Type: Offer Transaction ID: x Params: netmask, gw, DNS, lease time, macs IPs 67 DHCP Ack Type: Ack macc IPc 68 Transaction ID: x Params: mask, gw, DNS, lease 50

Les baux DHCP DHCP lease Prêt d un adresse IP donnée pour une durée limitée Demande (par le client) de prolongation du bail : DHCPREQUEST ; Optimisation des adresses IP en jouant sur la durée des baux Courte durée pour les réseaux où les ordinateurs se branchent et se débranchent souvent, Longue durée pour les réseaux constitués en majorité de machines fixes. Mode Client/Serveur Les clients : machines disposant du protocole TCP/IP, et d une application DHCP (pump, dhclient) Les serveurs : machines ou routeurs configurés manuellement disposant du service serveur DHCP (dhcpd) Fonctionne au-dessus d UDP Les échanges sont à l initiative des clients 51

Algorithme du client DHCP INIT/ Reboot Request Rebooting NACK Nack Decline INIT Discover Selecting Request NACK NACK Collecte des messages Offers ACK Rejet des messages Offer/Ack/Nack Expiration bail Requesting ACK Bound ACK Rejet des messages Offer non valides Renewing ACK Rebinding Expiration du délai 52

DHCP : allocation d adresses IP Allocation d adresses IP Statique Dynamique Manuelle Adresse fixée par l administrateur Automatique Adresse fixée définitivement Dynamique Adresse prêtée pour une certaine durée (bail) 53

PLAN Introduction et vocabulaire Applications et protocoles applicatifs Les sockets Conclusion 54

Les sockets SNMP HTTP mailer DNS Tout programme en espace utilisateur est facilement lancé Les programmes communiquent avec l OS par des appels systèmes sur les sockets IP TCP Driver RSVP Le réseau UDP OS Frontière OS et espace utilisateur 55

Programmation de Sockets But : construire des applications client / serveur qui communiquent en utilisant des sockets Socket API Introduite dans BSD4.1 UNIX, 1981 Explicitement créée, utilisée et fermée par les applications Paradigme client/server 2 types de services de transport via l'api socket : Non fiable, orienté datagramme fiable, orienté flot d'octets socket Interface locale à l'hôte, créée par l'application, contrôlée par l'os. "Porte" par laquelle un processus applicatif peut à la fois envoyer et recevoir des messages à/depuis un autre processus applicatif (distant ou local) 56

Programmation de sockets avec TCP Socket : porte entre un processus applicatif et un protocole de transport de bout-en-bout (TCP ou UDP) Service TCP : transfert fiable d'octets d'un processus vers un autre processus Contrôlé par le développeur processus socket processus socket Contrôlé par le développeur Contrôlé par l OS TCP internet TCP Contrôlé par l OS Hôte ou serveur Hôte ou serveur 57

Programmation des sockets avec TCP Le client doit contacter le serveur Le processus serveur doit déjà tourner Le serveur doit avoir créé une socket (porte) qui accueille le client qui le contacte Le client contacte le serveur en : Créant une socket TCP locale au client Spécifiant une adresse IP, un numéro de port du processus serveur Quand le client crée une socket : le client TCP établit une connexion vers le serveur TCP Quand il est contacté par le client, le server TCP crée une nouvelle socket pour que le processus serveur puisse communiquer avec le client Permet au serveur de parler avec plusieurs clients Point de vue application TCP fournit un transfert d'octets fiable, dans l'ordre, entre le client et le serveur 58

Programmation de sockets avec TCP Exemple d'application client-server : Le client lit une ligne à partir de l'entrée standard (infromuser stream) et l'envoie vers le serveur via sa socket (outtoserver stream) Le serveur lit la ligne à partir de sa socket Le server convertit la ligne en majuscules et la renvoie au client Le client lit et écrit la ligne modifée à partir de sa socket (infromserver stream) Flux input: séquence d octets pour le processus Flux output: séquence d octets sortant du processus infromuser outtoserver iinfromserver client socket 59

Interaction des sockets Client/server: TCP Client Serveur (sur hostid) Crée socket, port=x, Requête : welcomesocket = ServerSocket() Attente de connection request connectionsocket = welcomesocket.accept() Lit requête de connectionsocket Écrit requête à connectionsocket fermeture connectionsocket TCP Établissement de connexion Crée socket, connecte à hostid, port=x clientsocket = Socket() Envoie requête en utilisant clientsocket Lit réponse de clientsocket fermeture clientsocket 60