La couche Application. La couche application Plan Le modèle client-serveur – – HTTP – Résolution de noms – DHCP – Les applications P2P.

Slides:



Advertisements
Présentations similaires
Active Directory Windows 2003 Server
Advertisements

Installer un serveur FTP
Présentation de l’Internet
Serveur jeu Le serveur fait partie d'un logiciel de jeu en ligne multi joueur en architecture client serveur. Il répond à des demandes.
Services DNS.
SERVICE DHCP.
Internet.
- Couche 7 - Couche application. Sommaire 1)Introduction 1)DNS 1)FTP et TFTP 1)HTTP 1)SNMP 1)SMTP 1)Telnet.
IPv6 et la Mobilité DESS Réseaux 1-INTRODUCTION
Vue d'ensemble Implémentation de la sécurité IPSec
Module 6 : Gestion et analyse du système DNS
Module 2 : Allocation de l'adressage IP à l'aide du protocole DHCP
Sommaire: 1- Intro/ la raison d'être du FTP/petit historique
FLSI602 Génie Informatique et Réseaux
1 vidéogramme séance 2 du 13 février 2012 Micro Informatique au Cellier Joseph HOHN Séance du 13 février 2012 Sur le thème de Découverte de lordinateur.
SSH.
Active Directory Windows 2003 Server
Etude des Technologies du Web services
SECURITE DU SYSTEME D’INFORMATION (SSI)
Lycée Général et Technologique du Rempart - Marseille.
Analyse des protocoles de la couche application
Les instructions PHP pour l'accès à une base de données MySql
Les Services de Messagerie
Le protocole FTP.
Mise en place d'un serveur SSL
Les relations clients - serveurs
Module 4 : Création et gestion de comptes d'utilisateur
Création et gestion de comptes d'utilisateur
Vue d'ensemble Configuration d'adresses IP
Active Directory Windows 2003 Server
Domain Name System DNS. Le principe basé sur le modèle client / serveur le logiciel client interroge un serveur de nom; typiquement : –l’utilisateur associe.
PHP 5° PARTIE : LES COOKIES
Le protocole d’authentification
Les Services de Messagerie
Cours de programmation web
Les Réseaux Informatiques Serveurs réseau principaux DHCP - DNS Laurent JEANPIERRE DEUST AMMILoR.
OSI et TCP/IP CNAM
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Advisor Advanced IP Présentation Télémaintenance Télésurveillance.
Les Réseaux Informatiques Clients & Serveurs Le protocole FTP Laurent JEANPIERRE DEUST AMMILoR.
Yonel GRUSSON.
Développement d’application Web.  Internet  WWW  Client/Serveur  HTTP.
FTP : File Transfer Protocol (protocole de transfert de fichier ) est un protocole de communication destiné à l'échange informatique de fichiers sur.
Le protocole DHCP.
Création d’un domaine Il faut :
Module 3 : Création d'un domaine Windows 2000
Les Réseaux Informatiques
PHP 6° PARTIE : LES SESSIONS 1.Introduction 2.Identificateur de session 3.Variables de session 4.Client / Serveur 5.Principe 6.Ouverture de session 7.Enregistrement.
Configuration d'un serveur DNS
 Formulaires HTML : traiter les entrées utilisateur
COMPARAISON ENTRE GNUTELLA ET FREENET
Réseaux Informatiques
3.3 Communication et réseaux informatiques
JeanDo Lénard – Fondamentaux de l'Internet – Hetic –30 Janvier 2007 page 1 Fondamentaux de l'Internet (FDI) JeanDo Lénard
-7- Notions de Routage.
1 Windows 2003 Server Stratégie des comptes. 2 Windows 2003 Server Il faut tenir compte de ces 3 paramètres.
V- Identification des ordinateurs sur le réseau
Les bases du protocole Modbus
Fonctionnalité et protocole des couches applicatives
Couche réseau du modèle OSI
Yonel Grusson.
Architecture Client/Serveur
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
AFNOG POP3 et IMAP avec Dovecot
L. Gurret – M. Herve – P. Mignon – J. Prarioz. Introduction  Dernière étape d’analyse  Cahier des charges, spécifications et conception orientée objet.
Chapitre 8 Protection du trafic réseau à l'aide de la sécurité IPSec et de certificats Module S43.
Chapitre8 Configuration de l'adressage TCP/IP et de la résolution de noms Module S41.
Travailler dans un environnement numérique évolutif Domaine D1.
1 P ROTOCOLE DHCP Dynamic Host Configuration Protocol.
Transcription de la présentation:

La couche Application

La couche application Plan Le modèle client-serveur – – HTTP – Résolution de noms – DHCP – Les applications P2P

Le modèle client-serveur Client Server Réseau requêtes Réponses Client : processus demandant l’exécution d’une opération à un autre processus par envoi de message contenant le descriptif de l’opération à exécuter et attendant la réponse de cette opération par un message en retour. Serveur : processus accomplissant une opération sur demande d’un client, et lui transmettant le résultat. Requête : message transmis par un client à un serveur décrivant l’opération à exécuter pour le compte du client. Réponse : message transmis par un serveur à un client suite à l’exécution d’une opération, contenant le résultat de l’opération.

Les services transport  Les applications peuvent utiliser 2 types de service transport:  User Datagram Protocol (UDP)  Transmission Control Protocol (TCP)

Le service UDP UDP service Applic. 2 Applic. 1 Identification IP address : 101:86:05:68 Protocol : UDP Port : 53 Identification: IP address : Protocol : UDP Port : 1234

TCP service Applic. 2 Applic. 1 Identification IP address: Protocol : TCP Port : 80 Identification: IP address : Protocol : TCP Port : 9876

Plan – Le modèle client-serveur – – Résolution de noms – world wide web

Un modèle simplifié – Alice envoie un à Bob Alice’s server b.net ‘s server Envoyer l’ au serveur Envoyer l’ à b.net MX Bob récupère le message

Format d’un message From: To: Subject: Helloect: Hello Date : 27 Sept Salut, Text... Header Message body

Format d’un message (2) format de l’entête – Contient seulement US-ASCII (7bits) caractères – Fin de ligne marquée From: Date: – Ex:: 26 Aug EDT – Champs optionnels Subject: subject of message cc: Message-ID: Received: Info sur le chemin In-Reply-To:

Contenu des messages A l'origine – courrier électronique développé par des anglophones – message composé de lignes ASCII 7 bits chaque ligne est terminée par – pas de limite a priori sur la taille des lignes ou des messages, mais de nombreux serveurs en imposent Comment dans un transmettre ? – des caractères accentués – autre chose que du texte ASCII audio video programmes...

MIME Limitations – Seulement des caractères ASCII 7 bits – Pas de messages dans des alphabets non latins, pas des accents, pas des messages dans une langues sans alphabet (chinois, japonais) – Que du texte: Pas d’image, pas de audio, pas de vidéos Évolution MIME (Multipurpose Internet Mail Extentions) – Objectifs: Redéfinir le format des messages Rester Compatible avec RFC 822 Supporter des textes dans des langues autres que l’anglais (français, chinois, etc.) Transférer autres choses que du texte (image, audio, vidéo, etc.) Créer des messages composés de plusieurs parties (fichiers attachés, etc.) – Solution Ajouter des nouveaux champs optionnels dans l’en-tête Ajouter des nouveaux éléments, si nécessaire, dans le corps du message 12

Champs d’entête liés au transfert de message En-têteSignification MIME-VersionIdentification de la version de mime Content-DescriptionListe du contenu Content-IdIdentificateur unique Content-Transfert-EncodingFaçon dont le corps est emballé pour la transmission => codage base 64 (blindage ASCII), Quoted printable ou codage maison Content-TypeNature du message => Text (Plain, Richtext), Image, Audio, Vidéo, Application, message, Multipart 13

Codage base64 Problème à résoudre – Plusieurs serveurs ne sont capables de reconnaître que des caractères ASCII 7 bits – Comment transmettre à travers ces serveurs d’autres types de caractères (Unicode, ISO8859-1), de fichier binaire, etc. Solution – Utiliser l’encodage Base64 – Utiliser les caractères ASCII (A,B,..,Z,a,b,…z,…,+,/) pour définir les éléments de la Base64 A=0, B=1,…,+=62,/=63 – Un caractère ASCII est utilisé pour encoder 6 bits du message initial Idée faire tenir des octets (8 bits) dans 7 bits. – Prendre les octets 3 par 3 (24 bits) – Découper les 24 bits en paquets de 6 bits (4 paquets) – Convertir ces 6 bits en 7 bits. 14

Conclusion MIME MIME permet donc : – Des messages composés de plusieurs objets – Plusieurs alphabets – Des messages illimités – Des fichiers binaires ou spécifiques à une application – Des messages multimédia (audio, vidéo, image) – Du texte enrichi (plusieurs polices de caractères, couleur...) – Des liens 15

SMTP 16

SMTP: Simple Mail Transfert Protocol Rapide Historique : – 1971 : FTP utilisé en temps que support d’échange de mail. – 1982 : Première documentation officielle du protocole SMTP : RFC 821 & RFC 822. – 1986 : Normalisation MOTIS/ISO SMTP: – Protocole d’échange de messages électroniques indépendant du protocole de transport sou jacent. – Pour les réseaux IP, SMTP est implanté au dessus de TCP, port 25. – Un serveur SMTP est une machine « cible » qui se présente comme un « bureau de poste » vis à vis de clients SMTP. 17

SMTP : introduction 18 Echange de messages asynchrones à travers l’Internet – trois éléments de base : UA (User Agent) serveurs de mail ou MTA (Mail Transfer Agent) un protocole : SMTP

Le système global de messagerie MTA SMTP UA 19

Agent (utilisateur – transfert) Un agent utilisateur correspond a l’exécution d’un programme local sur le système d’un utilisateur. Via une variété de commandes propres, son rôle est de permettre la composition, l’envoi et la réception des messages. Un agent de transfert de message est un démon présent sur les serveurs de messageries électroniques. Sa tache est de transférer les messages vers d’autres agents.

Transfert de message But faire passer le message d’un émetteur à un destinataire. Du point de vue utilisateur le transfert de message est asymétrique : la réception et l’émission ne reposent pas sur le même protocole. Un protocole pour envoyer le courrier au serveur et pour échanger les courrier entre les serveurs (SMTP) Un protocole pour récupérer les courriers (POP) A B Serveur du courrier électronique de A Serveur du courrier électronique de B Envoie au serveur local Envoie au serveur distant Récupération du message SMTP POP 21

Transfert de messages : Protocole SMTP

1.Dans un premier temps, une connexion TCP est établie à la demande du serveur de messagerie de l’ULB via le port Il y a échange d’informations de présentation, comme le nom des serveurs. Les adresses destinataire et expéditrice sont également spécifiées. 3.Le client envoie le message à proprement parler. 4.Le client demande la fermeture de la connexion.

SMTP: Fonctionnement Étapes: trois phases – Établissement d’une association SMTP Ouverture d’une connexion SMTP Le serveur envoie le message de bienvenue Le client envoie la commande HELLO – Transfert des messages: pour chaque message, on exécute les commandes MAIL FROM: RCPT TO: DATA: – Transfert du message au complet (y compris l’en-tête) – Le caractère «.» sur une ligne vide pour indiquer la fin du message – Fermeture de l’association Le client exécute la commande QUIT Le serveur envoie un message de fin Fermeture de la connexion 24

SMTP : principes fondateurs 25

SMTP : les commandes de base HELO : Initialisation de la session SMTP MAIL FROM: : déclaration de l’émetteur du mail RCPT TO: : déclaration du destinataire du mail DATA : initialisation de la séquence de saisie des données RSET : initialisation de la séquence de saisie des données SEND FROM: : message direct plutôt que postage. VRFY : vérification de l’existence d’un destinataire HELP [ ] : demande d’aide (éventuellement sur une commande) NOOP : aucune opération QUIT : clôture de la session SMTP TURN : demande d’inversion des rôles d’émetteur et de récepteur Les réponses respectent un format comparable à celui de FTP. 26

SMTP Error msg Syntax error, command unrecognized 501 Syntax error in parameters or arguments 502 Command not implemented 503 Bad sequence of commands 220 Service ready 221 Service closing transmission channel 421 Service not available, closing transmission channel 250 Requested mail action okay, completed 450 Requested mail action not taken: mailbox unavailable 452 Requested action not taken: insufficient system storage 550 Requested action not taken: mailbox unavailable 354 Start mail input; end with.

SMTP : exemple 28  S: 220 smtp.example.com ESMTP MTA information  C: HELO mta.example.org  S: 250 Hello mta.example.org, glad to meet you  C: MAIL FROM:  S: 250 Ok  C: RCPT TO:  S: 250 Ok  C: DATA  S: 354 End data with.  C: Subject: Hello  C:  C: Hello Bob  C: This is a small message containing 4 lines of text.  C: Best regards,  C: Alice  C:.  S: 250 Ok: queued as  C: QUIT  S: 221 Bye : Mon, 9 Mar :22:

protocols IMAP signifie Internet Message Access Protocol. IMAP part du principe que les messages restent sur le serveur de courrier IMAP est un protocole plus complexe, possédant plus de fonctionnalités que POP3. Le serveur IMAP écoute sur le port TCP 143. IMAP permet, sur le serveur de messagerie, de disposer d’un gestionnaire de dossiers,…

POP 30 L’agent utilisateur établit une connexion TCP via le port 110 avec le serveur de messagerie POP3. Une fois établie, on distingue trois étapes: 1. Autorisation : authentification de l’utilisateur 2.Transaction : l’agent utilisateur charge les messages sur son poste local. Deux configurations possibles: – Télécharger et supprimer – Télécharger et conserver Mise a jour : commande ≪ quit ≫ de l’agent utilisateur

POP (Post Office Protocol) But: – Permet d’authentifier les utilisateurs pour récupérer les . Opération – POP utilise le service TCP. – POP server Host address + TCP + port number : 110 – Client send commands command : une ligne ASCII line + USER, PASS, STAT, RETR, DELE, QUIT – Serveur répond avec +OK if command was successful -ERR in case of errors

POP (2) Trois phases dans ce protocole: 1. Authorisation : checking the user credentials USER PASS 2. Transaction retrieval & removal STAT – RETR – Retrieval (le message #n) DELE 3. Update

POP (3) S: +OK POP3 server ready C: USER alice S: +OK C PASS 12345pass S: +OK alice’s maildrop has 2 messages (620 octets) C: STAT S: +OK C: LIST S: +OK 2 messages (620 octets) S: S: S:. C: RETR 1 S: +OK 120 octets S: S:. C: DELE 1 S: +OK message 1 deleted C: QUIT S: +OK POP3 server signing off (1 message left)

HTTP 34

35 HTTP HTTP: hypertext transfer protocol Un protocole couche application client/server model – client: Navigateur qui demande, reçoit, “affiche” les objets Web – server: Serveur web envoie les objets demandés PC running Explorer Server running Apache Web server Mac running Navigator HTTP request HTTP response

36 HTTP Utilise le protocole TCP: client initie la connexion TCP (crée socket) vers le serveur, le port 80 serveur accepte les connexions TCP du client Les messages HTTP (messages de protocole de couche application) échangés entre le navigateur (client HTTP) et le serveur Web (serveur HTTP) Connexion TCP fermés HTTP : “stateless” Le serveur ne conserve pas information sur les demandes des clients passées

37 les type de connections Nonpersistent HTTP Au plus un objet est envoyé via une connexion TCP. Persistent HTTP Plusieurs objets peuvent être envoyés via seule connexion une TCP entre le client et le serveur.

38 Nonpersistent HTTP Supposons que l'utilisateur demande l'URL 1a. Client HTTP initie la connexion TCP au serveur HTTP (processus) à sur le port 2. HTTP client envoie un message requête HTTP (contenant l'URL) et indique que le client veut someDepartment objet / home.index 1b. Serveur HTTP de qui attend une connexion TCP sur le port 80. «Accepte» la connexion, et informe le client 3. Le serveur HTTP reçoit le message de demande, constitue un message de réponse contenant l'objet demandé, et envoie le message Temps (contient des references text vers 10 images jpeg)

39 Nonpersistent HTTP (2) 5. HTTP client reçoit un message de réponse contenant le fichier html, html affiche. L'analyse du fichier html, trouve les 10 objets référencés jpeg 6. étapes 1-5 répetées pour chaque objet 4. Serveur HTTP ferme la connexion TCP. Temps

40 Non-Persistent HTTP: Response time Temps de transmission Établir connexion TCP RTT Demander le fichier RTT Fichier reçu Temps

41 Persistent HTTP Nonpersistent HTTP : nécessite 2 RTT pour 1 objet Un overhead pour chaque connexion TCP Les navigateurs ouvrent souvent des connexions TCP parallèles connexions pour récupérer les objets référencés Persistent HTTP Le serveur laisse la connexion ouverte après l'envoi de la réponse Les messages ultérieures HTTP entre le même client / serveur Le client envoie des demandes dès qu'il rencontre un objet référencé. Un nombre réduit de RTT pour tous les objets référencés

42 HTTP request message Deux types de messages HTTP: request, response HTTP request message: – ASCII (human-readable format) GET /somedir/page.html HTTP/1.1 Host: User-agent: Mozilla/4.0 Connection: close Accept-language:fr (extra carriage return, line feed) request line (GET, POST, HEAD commands) header lines Carriage return, line feed indicates end of message

43 HTTP request message: format général

44 HTTP response message HTTP/ OK Connection close Date: Thu, 06 Aug :00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 …... Content-Length: 6821 Content-Type: text/html data data data data data... status line (protocol status code status phrase) header lines data, e.g., requested HTML file

45 HTTP response status codes 200 OK 301 Moved Permanently 400 Bad Request 404 Not Found 505 HTTP Version Not Supported

46 Tester HTTP (coté client) telnet univ.nchaib.edu 80 GET /~univ/ HTTP/1.1 Host: cis.poly.edu

47 Web caches But: Satisfaire les requetes clients sans utiliser le serveur client Proxy server client HTTP request HTTP response HTTP request origin server origin server HTTP response

48 Caching example Serveur public Internet 10 Mbps LAN 1.5 Mbps Lien Cache local

49 Conditional GET cache serveur HTTP request msg If-modified-since: HTTP response HTTP/ Not Modified object non modifié HTTP request msg If-modified-since: HTTP response HTTP/ OK objet Modifié

Système LAMP

système LAMP : linux apache, Mysql, PHP En ligne de commande : sudo apt-get install apache2 php5 mysql-server libapache2-mod- php5 php5-mysql Description des paquets : Le paquet apache2 installe le serveur Apache 2. Le paquet php5 installe le langage PHP 5 Le paquet libapache2-mod-php5 (module d'intégration dans Apache) est installé automatiquement. Le paquet mysql-server installe le serveur MySQL. Le paquet php5-mysql installe le module d'interface avec PHP.

Système LAMP Une fois les paquets installés, ouvrez un des liens suivants dans votre navigateur : Si le message « It works! » s'affiche, votre serveur Lamp est correctement installé.

Système LAMP Deuxième approche: sudo aptitude install apache2 php5 mysql-server php5-mysql libapache2-mod-php5 Le mot de passe administrateur mySQL vous est demandé: Entrez-en un. sudo /etc/init.d/apache2 restart Pour verifier les liste des processus: pstree -p ouvrez dans votre navigateurhttp://localhost

Système LAMP Si vous verrez dans le navigateur le message Not Found The requested URL / was not found on this server. vous n’avez pas encore défini de page d’accueil par défaut (index.html) dans /var/www.

Système LAMP Simple page HTML ( par exmple index.html): Mon serveur Apache fonctionne Exemple d’un page html.

Système LAMP La racine de votre site web est située dans /var/www Tester php Créez le fichier /var/www/test.php contenant: et ouvrez dans votre navigateur.

Système DNS

Noms et adresses Il est difficile aux êtres humains de mémoriser L’idée – Remplacer Hostnames – Facile aux êtres humains de mémoriser les hostnames

Noms et adresses(2) # # Internet host table # localhost babbage leibniz routeur corneille backus arzach almin duke hosts.txt file

Hosts.txt est inadapté à grande échelle Fichier volumineux Nécessite d'être copié fréquemment sur tous les hôtes Uniformité toujours dépassé Unicité de nom Un seul point d’administration 60

Le Domain Name System Le DNS est une base de données distribuée qui fait correspondre le nom à une adresse IP ( et à d’autres informations) – Distribuée: Partage l’administration Partage la charge – robustesse et performance à travers : La réplication Le système cache – Une pièce critique de l’infrastructure Internet 61

Objectif Le but de la résolution des noms sur un réseau est d’assurer la conversion entre les noms d’hôtes et les adresses ip. Mais aussi, il faut un service associant un serveur de messagerie au nom d’un utilisateur. – Il faut qu’il soit stable, fiable et performant. 62 machine.domaine.dz résolution inverse

Le principe du DNS www. math-info.lagh-univ.dz identifie la machine www sur le réseau math-info.lagh- univ.dz Le système est mis en œuvre par une base de données distribuée au niveau mondial basé sur le modèle client / serveur le logiciel client interroge un serveur de noms 63

L’espace Nom de domaine Chaque unité de donnée dans la base DNS est indexée par un nom Les noms constituent un chemin dans un arbre appelé l’espace Nom de domaine Chaque nœud est identifié par un nom La racine (root) est identifiée par «.» Il y a 127 niveaux au maximum niveaux Au max

Le domaine Un domaine est un sous-arbre 65 Domaine complet Domaine dz dz Lagh-univ. ens Domaine math-info math-info Domaine Lagh-univ

Domaines racine Le système DNS impose peu de règles de nommage : – noms < 63 caractères – majuscules et minuscules non significatives – pas de signification imposée pour les noms Le premier niveau de l’espace DNS fait exception – 7 domaines racines prédéfinis : com : organisations commerciales ; ibm.com edu : organisations concernant l’éducation ; mit.edu gov : organisations gouvernementales ; nsf.gov mil : organisations militaires ; army.mil net : organisations réseau Internet ; worldnet.net org : organisations non commerciales ; eff.org int : organisations internationales ; nato.int – arpa : domaine réservé à la résolution de nom inversée – organisations nationales : dz. fr, uk, de, it, us, au, ca, se... 66

Lecture des noms de domaine A l’inverse de l’adressage IP la partie la plus significative se situe à gauche de la syntaxe : 67 vers le plus significatif diamant.ens.math-info.lagh-univ.dz domaine français (. d z) domaine de l’organisation lagh-univ sous-domaine math-info machine diamant du domaine ens.math- lagh-univ.dz sous-domaine ens vers le plus significatif

Délégation Le système DNS est entièrement distribué au niveau planétaire Le mécanisme sous-jacent est la délégation de domaine : à tout domaine est associé une responsabilité administrative Une organisation responsable d’un domaine peut – découper le domaine en sous-domaines – déléguer les sous-domaines à d’autres organisations : qui deviennent à leur tour responsables du (des) sous- domaine(s) qui leurs sont délégué(s) peuvent, à leur tour, déléguer des sous-domaines des sous- domaines qu’elles gèrent 68

Délégation Le domaine parent contient alors seulement un pointeur vers le sous-domaine délégué – lagh-univ.dz (en théorie) pourrait être géré par l’organisation responsable du domaine.dz qui gèrerait alors les données de lagh-univ.dz – lagh-univ.dz est délégué à l’organisation Université de Laghouat qui gère donc les données propres à son domaine – math-info. lagh-univ.dz est délégué à l’organisation Département de Mathématiques et Informatique qui gère donc les données propres à son domaine 69

DNS –Architecture Distribuée Le DNS est une application Client/Serveur Naturellement - il fonctionne à travers un Réseau Les requêtes et les réponses sont normalement envoyées dans des paquets UDP, port 53 De temps en temps utilise le TCP, port 53 70

Les serveurs de noms Les logiciels qui gèrent les données de l’espace nom de domaine sont appelés des serveurs de noms (name servers) Les serveurs de noms enregistrent les données propres à une partie de l’espace nom de domaine dans une zone. Le serveur de noms a une « autorité administrative » sur cette zone. Un serveur de noms peut avoir autorité sur plusieurs zones. Une zone contient les informations d’un domaine sauf celles qui sont déléguées. 71

Résolution de noms Les «resolvers» sont les processus clients qui contactent les serveurs de noms ils contactent un serveur (dont l’(les) adresse(s) est (sont) configurée(s) sur sa machine), interprète les réponses, retourne l’information au logiciel appelant et gère un cache (selon la mise en œuvre) Le serveur de noms interroge également d’autres serveurs de noms, lorsqu’il n’a pas autorité sur la zone requise (fonctionnement itératif ou récursif) récursif : la résolution se propage entièrement de serveur en serveur itératif : un serveur renvoie l'adresse du prochain serveur à contacter Si le serveur de noms est en dehors du domaine requis, il peut être amené à contacter un serveur racine 72

Serveurs racine Les serveurs racine connaissent les serveurs de nom ayant autorité sur tous les domaines racine Les serveurs racine connaissent au moins les serveurs de noms pouvant résoudre le premier niveau (.com,.edu,.fr,...) il est indispensable que les serveurs racine soient opérationnels sinon plus de communication sur l’Internet – multiplicité des serveurs racines – actuellement jusqu’à 13 machines éparpillées sur la planète – chaque serveur racine reçoit environ requêtes/heure 73

Serveurs racine 74

Types d’enregistrements 75 TypeSignificationContenu AAdresse de machineAdresse IP CNAMENom canoniqueAlias pour un nom d’hôte MINFOInformation boîte à lettreInformation relatives aux boîtes aux lettres MXServeur de messagerieNom DNS du serveur et n° de préférence NSNom du serveur de nomsNom DNS du serveur de nom responsable du domaine PTRPointeur sur un nom DNSAdresse IP et nom DNS correspondant SOAStart of Authority: indique que le serveur est la meilleure source de noms Nom DNS du serveur

DNS : Format de message IdentificationFlags 32 bits Number of additional Number of authority Number of answers 12 bytes Questions (variable number of resource records) Number of questions Answers (variable number of resource records) Authority (variable number of resource records) Additional information (variable number of resource records)

DHCP: Dynamic Host Configuration Protocol 77

Introduction L’initialisation d’une station est une phase importante et complexe : – les stations sans disque, les stations mobiles, la gestion d’un grand parc de stations, la disponibilité réduite de l’espace d’adressage nécessite un processus automatique de configuration. Propositions : – BOOTP (“Bootstrap protocol”) : rfc 951, 1084, 1123, – DHCP (“Dynamic Host Configuration protocol”) : rfc 1541, 1533 améliore et remplace BOOTP 78

Introduction DHCP “Dynamic Host Configuration protocol” règle les problèmes de configuration non résolus par RARP ou BOOTP : – RARP : protocole de bas niveau : le portage d’un serveur RARP est spécifique au système et au LAN manque de souplesse : l’identification de la station se fait uniquement à l’aide de l’adresse physique incomplet : il faut d’autres échanges pour configurer complètement une station – BOOTP : statique : affectation permanente d’une adresse à une station, la réaffectation d’adresses inutilisées est impossible jeu limité de paramètres de configuration 79

Présentation Dynamic Host Configuration Protocol RFC 1531, 2132, … Objectifs – Evolution du protocole RARP – Informations plus complètes – Non limité aux réseaux locaux – Configuration complète de la machine – Totalement automatique 80

Principe du DHCP Utilise UDP – Passe les routeurs – Ports 67 et 68 (Les requêtes sont transmises du client au port 67 du serveur. Les réponses sont transmises du serveur au port 68 du client). Plusieurs serveurs – Redondance – Chaque serveur « offre » une configuration – Le client choisit celle qui lui convient 81

Les services DHCP DHCP comporte deux éléments: 1.Un mécanisme d’allocation pour les adresses IP et autres paramètres TCP/IP Manuelle: L’administrateur réseau attribue lui-même une adresse IP pour le client DHCP en fonction de son adresse MAC. Automatique: L’adresse IP du client lui sera attribuée lorsqu’il contactera pour la première fois le serveur DHCP. Les adresses attribuées avec cette méthode sont définitives et ne pourront pas être utilisées par un autre client DHCP. Dynamique: permet d’attribuer une adresse temporaire au client DHCP. Cette méthode est utile lorsque le nombre d’adresses disponibles n’est pas suffisant. 2.Le protocole de négociation et de transmission entre le client et le serveur DHCP 82

Les messages DHCP Le protocole DHCP utilise 7 types de messages. Le type du message DHCP est codé dans le champ valeur de l’option “DHCP option” (code 53). nom de type du message valeurutilisation DHCPdiscover1diffusé par le client vers les serveurs locaux disponibles DHCPoffer2réponse du serveur au client DHCPrequest3diffusé par client, sélectionnant le serveur et refusant les autres DHCPdecline4refus du serveur DHCPack5accord du serveur DHCPnack6le client considère que les infos sont invalides DHCPrelease7le client relâche la location 83

Le client connaisse son adresse IP 84

Le client ne connaisse pas son adresse IP. 85

Fonctionnement Client : Etape 1 : DHCP Discover – détection en diffusion d’un serveur DHCP – Via service UDP, port 67 Etape 2 : DHCP Offer – message de proposition DHCP – Via service UDP Etape 3 : DHCP Request – choix du client et envoi requête DHCP en écho Etape 4 : DHCP ACK – acquittement DHCP 86

Fonctionnement Initialement, le client : – Pas IP – Pas de serveur connu – Possède MAC  Broadcast obligatoire – Broadcast Ethernet ( FF-FF-FF-FF-FF-FF ) – Broadcast IP ( ) 87

Découverte du serveur: DHCPDISCOVER Broadcast datagramme UDP – Port 68  Port 67 – Message: « DHCPDISCOVER » Routeurs spéciaux – DHCP/BOOTP relay – Ne transfère que les messages DHCP Chaque serveur reçoit la requête Chaque serveur peut faire une offre 88

Réponse du serveur: DHCPOFFER Le client est-il autorisé ? MAC connue ? – Politique gérée par l’administrateur Choix IP Validation de – Ping (ICMP echo) – Pas de réponse  OK Envoi de l’offre : « DHCPOFFER » 89

Choix d’une adresse IP 1.Le client a t’il déjà une IP ?  Réattribution de la même 2.Le client a t’il déjà eu une IP ? Encore disponible ?  Réattribution de la même 3.Le client demande t’il une IP particulière disponible ?  Attribution de demandée 4.Prendre IP libre quelconque  Stock utilisables 90

Réception des offres: DHCPREQUEST Le client reçoit plusieurs offres Choix d’une offre selon options Envoi d’un message « DHCPREQUEST » – Broadcast avec ID du serveur choisi – Tous les serveurs reçoivent choix Non – choisi  Annule offre Choisi  Valide offre 91

Validation offre L’IP a t’elle été attribuée entre temps ? – Oui  envoi message « DHCKNACK » – Non  envoi message « DHCPACK » Envoi par broadcast IP – Le client reçoit l’offre finale – Les serveurs retirent de leurs stocks Le client teste allouée Si erreur – envoi message « DHCPDECLINE » – Attend 10 secondes – Recommence  découverte des serveurs 92

Notion de bail Une adresse obtenue par DHCP est valide – Eternellement – Pour une période donnée (bail, lease) Durée pendant laquelle l’IP ne sera pas offerte En général, 48H Peut être prolongé Une adresse peut être rendue – Message « DHCPRELEASE » – Unicast au serveur bailleur 93

Le format général des messages DHCP Une partie fixe et une partie variable contenant les options, – taille minimale du message : 576 octets. – note : tous les champs sont de longueur fixe sauf le dernier ! – Pour les 3 avant-derniers champs une partie utile peut être distinguée. Format de message compatible avec BOOTP, sauf pour le dernier champ. 94

OPHTYPEHLENHOPS TRANSACTION ID SECONDSFLAGS CLIENT IP ADDRESS YOUR IP ADDRESS SERVER IP ADDRESS ROUTER IP ADDRESS CLIENT HARDWARE ADDRESS ( 16 OCTETS ) SERVER HOST NAME ( 64 OCTETS ) BOOT FILE NAME ( 128 OCTETS ) OPTIONS ( VARIABLE )

Les champs obligatoires : le champ “Operation” (1 octet) : le type du message – 1 = demande – 2 = réponse le champ “Hardware_type” (1 octet) : type du support employé – code utilisé par d’autres protocoles d’Internet (cf RFC 1700) – exemple : Ethernet = 1 le champ “Hardware address length” (1 octet) : longueur de l’adresse “physique” en octets – par exemple : Ethernet = 6 le champ “Hop count” (1 octet) : nombre d’agents DHCP (intermédiaires) ayant relayés le message entre le client et le serveur – initialement à 0 et incrémenté par chaque relais le champ “Identification” (4 octets) : associe la demande et sa(es) réponse(s) – permet de distinguer deux transactions différentes issues de la même machine puisque les mêmes numéros de port sont toujours utilisés le champ “Timestamp” (2 octets) : indique l’heure à laquelle le client à commencé à vouloir se configurer 96

Les champs obligatoires : le champ “Flags” (2 octets) : – le bit de poids fort “Broadcast response” : la réponse est diffusée (l’adresse du client n’est pas utilisée ou connue) le champ “Client_IP_address” (4 octets) : – l’adresse du client si le client la connaît le champs “Your_IP_address” (4 octets) : – l’adresse du client, si le serveur la connaît et si le champ client_IP_address était à zéro le champ “Gateway IP address” (4 octets) : – l’adresse de l’agent intermédiaire à utiliser lors de la configuration le champ “Hardware address” (6 octets) : – la longueur utile de ce champ est déterminée par le champ “Hardware address length”. le champ “IP_address server” (4 octets) et le champ “Name server” (64 octets) : – permettent au client de sélectionner un serveur parmi plusieurs 97

Les champs obligatoires : le champ “Bootstrap file name” (128 octets) – on distingue 2 phases lors de la configuration : échange des informations échange du fichier de démarrage (amorce), cette échange peut faire appel à un protocole de transfert de fichiers (par ex. TFTP). généralement ce fichier d’amorçage contient le code exécutable du noyau. lorsque ce champ est nul, le fichier à charger est déterminé localement. Note : Les clients utilisent les champs pour indiquer toutes les informations dont ils disposent déjà ou lorsqu’ils veulent utiliser un serveur particulier. Si les champs sont non renseignés (nuls) les serveurs qui reçoivent une telle demande peuvent y répondre. 98

Les options La longueur minimale du champ “Options” est de 312 octets. – une autre longueur peut être négociée (option de code 57). – on peut négocier la ré-utilisation de l’emplacement des 2 avant- derniers champs pour mémoriser les options (option de code 52). Le champ “Options” est formée d’une liste d’options, sauf le premier mot. Le premier mot doit contenir la valeur – par compatibilité avec BOOTP – il servait de “magic cookie” : “facilite” le décodage Chaque option : type de l’option sur 1 octet longueur du champ valeur de l’option sur 1 octet la valeur de l’option 99

Les options Les options servent à : – la configuration initiale de la station, – la configuration des protocoles (de haut et bas niveaux) : IP, ARP, Ethernet, TCP, NIS, NTP, NetBios, X window system, et ceux spécifiques à chaque constructeur, plus d’une soixantaine d’options ! 100

Quelques exemples d’options de DHCP type de l’optioncode de l’option longueur du champ valeur sémantique de l’option bourrage0sanspour l’alignement des options en frontière de mot masque14le “subnet mask” du client (obligatoire) heure de décalage24le décalage de l’horloge du client par rapport à l’heure universelle (UTC) routeurs34.nn adresses IP des routeurs [* : dans l’ordre de préférence] serveurs de noms64.nn adresses IP des serveurs de domaine de noms (DNS) [*] serveurs de traces74.nn adresses IP des serveurs de traces (logs) [*] serveurs d’imprimante94.nn adresses IP des serveurs d’imprimante (lpr) [*] serveurs de ressources114.nn adresses IP des serveurs de localisation des ressources (RLP)[*] 101

Quelques exemples d’options de DHCP type de l’option nom de la station12nle nom de la station longueur du fichier d’amorçage132en blocs de 512 octets extension du chemin18nle nom du fichier d’amorçage adresse demandée504adresse IP demandée par le client (DHCP discover message) duré de location514en s., durée demandée ou proposée (DHCP discover, request, offer) overload option521utilisation des 2 avant-derniers champs pour les options DHCP option531code le type du message DHCP (obligatoire) longueur maximum des messages572longueur maximum des messages DHCP (>576) fin de liste d’options255sansfin de la liste d’options (obligatoire) 102

Les applications P2P

Le P2P est un modèle de réseau informatique proche du modèle client- serveur mais où chaque client est aussi un serveur.

Les applications P2P Le p2P non seulement pour le partage de fichiers. Autres exemple d’applications: Adobe Systems intègre maintenant le P2P pour échanger le flux vidéo. Le service de stockage dans le nuage Amazon S3 Le calcule distribué (BOINC) Apt-P2P Réseaux sociaux décentralisés (Movim, Disapora) Moteurs de recherche décentralisés (seeks, yacy) Multiplayer games Ad hoc networks

Les réseaux P2P Réseau BitTorrent(BitTorrent, Vuze,Ktorrent) Réseau eDonkey2000 (A/Emule, mldonkey) Réseau Gnutella(Limewire,Gtk-Gnutella).

Architecture générale de P2P

Les caractéristiques des P2P Les clients sont des serveurs et routeurs Contribution: contenu, mémoire, traitement. Les nœuds sont autonomes Les réseau est dynamique Collaboration directe des nœuds Des capacités de ressources dynamique de chaque nœud.

Distribution de fichiers usus uNuN dNdN server Réseau fichier, taille F u s : server upload capacity u i : peer i upload capacity d i : peer i download capacity u2u2 d2d2 u1u1 d1d1 didi uiui

Distribution de fichiers client/Serveur usus Réseau didi uiui F Le temps de distribution de fichiers D c-s > max{NF/u s,,F/d min } Augmentation linaire

Distribution de fichiers P2P usus Réseau didi uiui F Le temps de distribution de fichiers ? D P2P > max{F/u s,,F/d min,,NF/( u s +  u i )}

Distribution de fichiers P2P client upload rate = u, F/u = 1 heur, u s = 10u, d min ≥ u s Application Layer

Distributed hash tables (DHT) k6,v6 k1,v1 k5,v5 k2,v2 k4,v4 k3,v3 containers Operations: insert(k,v) lookup(k,v) Table of containers

Naming/identification Espace de nommage clé noeuds Un noeud est responsable des clés proches (identificateurs) Les fonctions Hachage pour attribuer les IDs

DHT circulaire Chaque nœud connait son successeur et prédécesseur

DHT circulaire Who’s responsible for key 1110 ? C’est moi 1110

DHT circulaire avec raccourcis Qui est le responsable sur la clé 1110?

Maintenance de la topologie Solution?

Applications et couches de chiffrement Nous avions précédemment évoqué les applications suivantes correspondant à différentes couches réseau: Couche (2)Chiffrement PPP, WEP Couche (3)IPSEC Couche (4)TLS (SSL) Couche applicationSSH, PGP/GPG

SSH Des clients SSH et SCP pour Windows Authentification du serveur auprès du client (clés hôte / host keys) Implication du changement de la clé de l'hôte Authentification du client auprès du serveur par mot de passe Authentification du client auprès du serveurs par chiffrement à clé publique (RSA/DSA)

Préoccupations principales SSH vise directement les trois aspects de la sécurité: Confidentialité Authentification Authorisation

Des clients SSH pour windows Il y a plusieurs clients SSH, libres et Opensource, pour Windows: Voir pour une liste. Quelques uns qui implémentent SSH version: Putty: OpenSSH pour Windows (via Cygwin): Commerciaux: Client SSH de ssh.com (utilisation personnelle): SecureCRT: WRQ sur

Des clients SSH pour windows (suite) Voir aussi Filezilla pour le transfert SCP Un très bon livre à consulter:

Connexion SSH Un certain nombre de choses se passent quand vous utilisez SSH pour vous connecter depuis votre machine (client) vers une autre machine (serveur): La clé publique du serveur est renvoyée au client, et si elle ne s'y trouve pas déjà, ajoutée à.ssh/known_hosts. Sinon, elle y est consultée et vérifiée. Une fois le serveur vérifié, soit: Le mot de passe de l'utilisateur est demandé Si votre clé publique se trouve sur le serveur dans.ssh/authorized_keys, un échange de clé RSA/DSA prend place et vous devez taper votre phrase de code pour déchiffrer votre clé privée

Fichiers SSH Vous avez un choix pour les types de clé d'authentification – RSA ou DSA Les fichiers importants: /etc/ssh/ssh_config /etc/ssh/sshd_config ~/.ssh/id_dsa et id_dsa.pub ~/.ssh/known_hosts ~/.ssh/authorized_keys Et remarquer les clés de serveur /etc/ssh_host_* Lisez en entier les pages de manuel de ssh et sshd: man ssh, man sshd

Configuration SSH La clé privée peut-être protégée par une phrase code: Soit il faut la taper à chaque connexion Ou on peut utiliser “ssh-agent” qui garde une copie de la clé en mémoire pour éviter de devoir la taper Désactivez complètement les mots de passe: /etc/ssh/ssh_config # PasswordAuthentication yes PasswordAuthentication no

Attaque Man in the middle La première fois que vous vous connectez à une machine, sa clé est stockée dans ~/.ssh/known_hosts La prochaine fois que vous vous connectez, si la clé à changé, c'est peut-être que quelqu'un est en train d'intercepter la connexion! Ou peut-être que quelqu'un a réinstallé/mis à jour le serveur, et remplacé là clé. A vous de trouver la cause... Vous serez averti si la clé change.

Enregistrement des hosts connexion avec SSH: ssh The authenticity of host ( )' can't be established. DSA key fingerprint is 90:be:bf:e4:3a:ce:e3:9a:8f:d2:26:a4:5c:c4:eb:4a. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added ' ' (DSA) to the list of known hosts. password: A ce moment, le client ajoute dans ~/.ssh/known_hosts la clé publique de pc1.cctld.sn (qui se trouve dans /etc/ssh/ssh_host_dsa_key.pub sur le serveur) Connexion suivante: ssh password: La machine est mantenant “connue”.

Etablissement de connexion SSH Concept de base pour comprendre comment une connexion SSH est faite en utilisant une clé RSA/DSA Client X contacte le serveur Y sur le port 22. Y génère un nombre aléatoire et le chiffre en utilisant la clé publique de X. La clé publique de X déjà se trouver sur Y. Le nombre chiffré est renvoyé à X. X déchiffre le nombre aléatoire en utilisant sa clé privée et le renvoie à Y. Si le nombre déchiffré correspond au nombre chiffré d'origine, alors une connexion chiffrée est établie. Le nombre chiffré envoyé de Y to X est la “phrase magique” (“Magic Phrase”) Nous essayerons d'illustrer ceci...

Crypto quantique pour la sécurité des réseaux La sécurité est garantie non par des théorèmes mathématiques et les algorithmes, mais avec les règles fondamentales de la physique comme le principe d'incertitude d'Heisenberg qui affirme que certaines quantités ne peuvent pas être mesurées simultanément.

L’application de la mécanique quantique va permettre de résoudre ce problème transport de clé "quantique", l'information est transportée par les photons

BUT La difficulté essentielle à résoudre, pour utiliser concrètement ce moyen de cryptage But: réalisé un cryptage parfaitement sur transport des clés, qui doivent être aussi longues que le message qu'on envoie

Les photo composants élémentaires de la lumière Chaque photon peut être polarisé, c'est-à-dire que l'on impose une direction à son champ électrique

Principe Dans le transport de clé "quantique", l'information est transportée par les photons, ces composants élémentaires de la lumière. Chaque photon peut être polarisé, c'est-à- dire que l'on impose une direction à l’aide d’un champ électrique

4 valeurs : 0°, 45°, 90°, 135°

les photons polarisés de 0° à 90°, on parle de polarisation rectiligne Les photon polarisés de 45° à 135°, de polarisation diagonale :

Afin de pouvoir détecter la polarisation des photos. Pour cela, on utilise un filtre polarisant suivi d'un détecteur de photons 137

138

Alice envoie à Bob une clé secrète constituée de 0 et de 1; ils disposent de 2 canaux d'échange : un canal quantique, où ils peuvent s'échanger des photons polarisés, et un canal radio; non protégé, où ils peuvent discuter 139

140

Le cas d’une intrusion 141

Détection de l'espion et preuves de sécurité L'une des propriétés fondamentales de la cryptographie quantique est la capacité des deux interlocuteurs à détecter la présence de l'espion, mais aussi à évaluer précisément la quantité d'information que celui-ci a interceptée.quantité d'information Ceci résulte de deux aspects fondamentaux de la mécanique quantique : d'après le théorème de non-clonage:théorème de non-clonage il est impossible de dupliquer un objet quantique inconnu, La réduction du paquet d'onde entraîne que réaliser une mesure sur un objet quantique perturbe généralement l'objet en question.réduction du paquet d'onde 142

Si une troisième personne cherche à obtenir de l'information sur l'état de l'objet qui transite par le canal quantique, elle introduit des anomalies (bruit ou erreurs), qui peuvent être détectées par Alice et Bob. 143

144

END